:root{--ink:#193d38;--teal:#245b51;--gold:#bb9252;--paper:#faf7f0;--muted:#727c70;--line:#ded8c7;--shadow:0 18px 48px #38321d12}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 system-ui,-apple-system,"Noto Sans TC","Microsoft JhengHei",sans-serif}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #d6a854;outline-offset:4px}[hidden]{display:none!important}a{color:inherit;text-decoration:none}.nav{height:94px;max-width:1320px;margin:auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-weight:750;letter-spacing:1px;font-size:19px}.brand small{display:block;font-size:9px;letter-spacing:3.5px;font-weight:500;color:var(--muted);margin-top:0}.brandmark{color:var(--gold);font-size:32px;border:1px solid #c8af7c;border-radius:50%;width:47px;height:47px;display:grid;place-items:center}nav{display:flex;gap:24px}.navbtn,.textbtn{border:0;background:transparent;color:var(--ink);padding:8px 0;font-size:14px}.navbtn:hover,.textbtn:hover{color:#966d31}main{max-width:1320px;margin:auto;padding:0 48px}.hero{isolation:isolate;display:grid;grid-template-columns:1.05fr 1fr;min-height:620px;align-items:center;gap:30px;position:relative}.hero:before{content:"";position:absolute;inset:20px -48px 0;background:linear-gradient(90deg,#faf7f0 8%,#faf7f0c9 48%,#faf7f033),url(art/background.php) center/cover;opacity:.31;z-index:-1}.eyebrow{font-size:11px;font-weight:650;letter-spacing:2.5px;color:#9c7843}.eyebrow span{display:inline-block;width:24px;height:1px;background:var(--gold);vertical-align:middle;margin-right:7px}h1,h2,p{margin-top:0}.hero h1{font-family:"Noto Serif TC","PMingLiU",serif;font-size:clamp(32px,3.2vw,49px);line-height:1.65;letter-spacing:1px;margin:22px 0}.hero h1 span{color:#a67c3f}.intro{font-size:15px;color:#657269;line-height:2}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.primary,.secondary{border:1px solid var(--teal);border-radius:9px;padding:14px 24px;display:inline-flex;align-items:center;justify-content:center;gap:26px;font-size:15px;font-weight:600;min-height:52px}.primary{background:var(--teal);color:white;box-shadow:0 7px 15px #194b3820}.primary:hover{background:#163f38;transform:translateY(-1px)}.secondary{background:#fff9;color:var(--teal);gap:10px}.hero-meta{display:flex;gap:20px;font-size:11px;color:#778073;margin-top:25px}.hero-art{position:relative;height:470px}.orbit{position:absolute;border:1px solid #bc9a5f55;border-radius:50%;width:350px;height:350px;left:55px;top:40px}.o2{width:410px;height:410px;top:10px;left:25px;border-style:dashed;opacity:.6}.hero-card{position:absolute;width:190px;background:#fffaf0;border:1px solid #c4a46d;padding:8px 8px 12px;border-radius:16px;box-shadow:0 20px 40px #42341e30;text-align:center}.hero-card img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;display:block}.hero-card b{display:block;font-size:17px;margin-top:8px}.hero-card small{display:block;font-size:10px;color:#8a806e;letter-spacing:1.5px}.hc1{left:0;top:60px;transform:rotate(-12deg);z-index:2}.hc2{right:0;top:38px;transform:rotate(12deg)}.hc3{left:30%;top:180px;z-index:3;transform:rotate(3deg)}.art-star{position:absolute;color:#c9a15d;font-size:32px}.s1{left:45%;top:5px}.s2{right:2%;bottom:35px}.art-caption{position:absolute;bottom:4px;left:8%;font-size:12px;color:#92836b;letter-spacing:3px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:23px}.section-head h2{font-size:23px;margin:7px 0}.muted{color:var(--muted);font-size:13px}.chapter-list{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.chapter-tile{border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#fffaf4;box-shadow:0 5px 20px #382e1d06}.chapter-image{height:128px;overflow:hidden;position:relative}.chapter-image img{width:100%;height:100%;object-fit:cover;object-position:50% 32%;transition:transform .4s}.chapter-tile:hover img{transform:scale(1.06)}.chapter-image:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 60%,#193d3866)}.chapter-tile .chapter-text{padding:15px}.chapter-text small{font-size:10px;color:#a5814e;letter-spacing:2px}.chapter-text h3{font-size:16px;margin:5px 0}.chapter-text p{font-size:11px;color:var(--muted);margin:0}.home-note{display:flex;justify-content:center;gap:27px;color:#7f806e;font-size:12px;padding:45px 0}.home-note i{color:#bca57e}footer{max-width:1224px;margin:24px auto 0;border-top:1px solid var(--line);padding:24px 0 32px;display:flex;justify-content:space-between;color:#879083;font-size:11px;gap:20px}.game-top{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:34px 0 20px}.game-top h1{font-size:29px;margin:5px 0}.game-top p{margin:0}.stats{display:flex;gap:35px}.stats div{display:flex;flex-direction:column}.stats small{font-size:11px;color:var(--muted)}.stats b{font-size:26px;font-weight:650;color:#a37c43}.stats div:last-child b{font-size:19px;letter-spacing:4px}.progress{display:flex;gap:7px;margin-bottom:24px}.progress span{height:4px;background:#ddd8c9;flex:1;border-radius:4px}.progress .done{background:var(--teal)}.progress .current{background:#b89455}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start}.board{border:1px solid #d7c9aa;border-radius:18px;background:radial-gradient(ellipse at center,#fffdf8dd,#f0e8d5dd),url(art/background.php) center/cover;box-shadow:var(--shadow);padding:22px 25px;min-height:470px;position:relative;overflow:hidden}.board-heading{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#8d744e;margin-bottom:8px}.board-heading .textbtn{font-size:12px;color:#8a816d}.board-row{position:relative;display:flex;gap:40px;justify-content:center;padding-top:27px;margin-bottom:22px}.board-row:before{content:"";position:absolute;width:40%;height:1px;background:#b99b645e;top:12px;left:30%}.band{position:absolute;top:-2px;left:0;width:100%;text-align:center;font-size:11px;color:#927546;letter-spacing:2px}.band span{background:#f8f1e4;padding:0 12px}.board-row:not(:last-child):after{content:"";position:absolute;bottom:-20px;left:50%;width:1px;height:19px;background:#c0a675}.slot-wrap{width:135px;text-align:center;position:relative}.slot{height:157px;width:100%;padding:6px;border:1px dashed #bfa779;border-radius:12px;background:#fffaf180;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#ac9367;transition:box-shadow .18s,transform .18s;touch-action:manipulation}.slot.empty:before{content:"✧";font-size:33px;font-family:serif;color:#bba16f80}.slot.empty:after{content:"放入人物";font-size:11px;letter-spacing:2px}.slot.filled{border:1px solid #b89a60;background:#fffbf2;box-shadow:0 6px 16px #53401d13}.slot img{width:100%;height:116px;object-fit:cover;object-position:center 35%;border-radius:7px;pointer-events:none}.slot .name{font-size:13px;color:var(--ink);margin-top:3px;font-weight:650}.slot-label{font-size:12px;margin-top:6px;color:#7f7053}.slot:hover,.slot.dragover{border:1px solid var(--teal);background:#eaf0e7}.slot.selected,.person.selected{box-shadow:0 0 0 3px #d9b666,0 6px 20px #8c6f2c20;transform:translateY(-3px)}.board-help{text-align:center;font-size:11px;color:#a19176;margin:12px 0 0}.tray{border:1px solid var(--line);border-radius:16px;background:#fffaf4;padding:20px}.tray-head{display:flex;align-items:center;justify-content:space-between}.tray h2{font-size:16px;margin:0}.tray-head span{font-size:11px;color:#a78752}.tray-tip{color:#8b8d7c;font-size:12px;line-height:1.8;margin:12px 0 20px}.pool{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-height:80px}.person{padding:5px 5px 6px;background:#fffdf8;border:1px solid #d4c199;border-radius:11px;box-shadow:0 5px 12px #3a301512;touch-action:manipulation;color:var(--ink);min-width:0;transition:transform .18s}.person:hover{transform:translateY(-3px);border-color:#9f7e40}.person img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:7px;display:block;pointer-events:none}.person b{display:block;font-size:12px;margin-top:4px;font-weight:600}.tray-note{font-size:10px;line-height:1.9;color:#a09b8b;margin-top:22px;border-top:1px solid #e7e0d1;padding-top:15px}.pool-empty{grid-column:1/-1;color:#8b947f;font-size:13px;text-align:center;padding:30px 0}.game-bottom{display:flex;gap:22px;align-items:center;justify-content:space-between;margin-top:22px}.feedback{font-size:14px;color:#6e7e6f}.feedback.error{color:#ad5140}.feedback.success{color:#246c50;font-weight:650}.game-links{display:flex;justify-content:space-between;gap:12px;margin-top:10px}.game-links .textbtn{font-size:12px;color:#8e805f}.reading{border:1px solid #d6c8aa;background:#f4eddf;padding:17px 22px;border-radius:12px;margin-top:15px;font-size:13px}.reading a{color:var(--teal);text-decoration:underline}.result{text-align:center;padding:65px 0;max-width:700px;margin:auto}.result-medal{font-size:62px;color:#ba9459;margin-bottom:15px}.result h1{font-family:"PMingLiU",serif;font-size:35px;line-height:1.7;margin-top:18px}.result-stats{display:flex;justify-content:center;gap:80px;margin:25px 0}.result-stats div{display:flex;flex-direction:column}.result-stats small{color:#8c8c76;font-size:12px}.result-stats strong{font-size:44px;color:#aa8549;font-weight:500}.result-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin:25px 0}.result p{font-size:14px}dialog{border:1px solid #d4c4a3;border-radius:20px;background:#fffcf5;color:var(--ink);width:min(570px,calc(100% - 32px));padding:38px;box-shadow:0 35px 100px #162e3355;max-height:88dvh;overflow:auto}dialog::backdrop{background:#173d37a6;backdrop-filter:blur(6px)}dialog h2{font-size:25px;line-height:1.6;margin:14px 0}dialog p{font-size:13px;color:#788170}dialog label{display:block;font-size:13px;margin:20px 0 8px}dialog input{width:100%;padding:13px 15px;border:1px solid #d6c7a9;border-radius:8px;background:white;color:var(--ink)}dialog .primary{width:100%;margin-top:12px}.close{position:absolute;top:9px;right:16px;font-size:28px;color:#8b8f7c;border:0;background:transparent}.rules{padding-left:22px}.rules li{padding-left:6px;margin:18px 0}.rules p{margin:5px 0}.rank-tabs{display:flex;gap:12px;margin:20px 0}.rank-tabs button{border:1px solid #ded7c6;border-radius:30px;padding:7px 18px;color:#8c896e;background:transparent;font-size:13px}.rank-tabs .active{background:var(--teal);border-color:var(--teal);color:white}.rank-row{display:grid;grid-template-columns:26px minmax(0,1fr) 70px;gap:14px;padding:12px 0;border-bottom:1px solid #e7e1d3;align-items:center}.rank-row .rank-num{color:#bd9250}.rank-row b{font-size:14px;overflow-wrap:anywhere}.rank-row small{display:block;font-size:10px;color:#92917d}.rank-row strong{font-size:19px;color:#ae8545;text-align:right}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#193f38;color:white;padding:14px 24px;box-shadow:var(--shadow);z-index:1000;border-radius:12px;max-width:calc(100% - 30px);width:max-content;font-size:14px}.error{color:#b14d3a!important}.hint-slot{background:#fff4c9;border-radius:8px;padding:8px;font-size:12px;color:#8a6c32}.board.won .slot{box-shadow:0 0 0 2px #b7a060,0 0 25px #ddbd6d45;animation:glow 1s ease-out}.board.shake{animation:shake .3s}.confetti{position:fixed;top:-20px;z-index:100;pointer-events:none;width:7px;height:12px;animation:fall 1.8s ease-in forwards}@keyframes glow{from{transform:scale(.97)}to{transform:scale(1)}}@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}@keyframes fall{to{transform:translateY(105vh) rotate(500deg);opacity:0}}@media(min-width:1400px){.hero-art{margin-left:20px}.hc2{right:25px}}
@media(max-width:1050px){.nav{padding:0 28px}main{padding:0 28px}.hero{gap:12px;min-height:590px}.hero-card{width:158px}.hero-art{height:425px}.hc1{top:60px}.hc2{top:45px}.hc3{top:180px;left:27%}.orbit{width:270px;height:270px;left:30px;top:60px}.o2{width:320px;height:320px;left:5px;top:35px}.hero-meta{gap:10px}.workspace{grid-template-columns:minmax(0,1fr) 235px;gap:16px}.board{padding:18px}.board-row{gap:24px}.slot-wrap{width:119px}.slot{height:143px}.slot img{height:102px}.tray{padding:15px}.chapter-list{gap:10px}.chapter-tile .chapter-text{padding:12px 10px}.chapter-text h3{font-size:14px}.chapter-image{height:110px}footer{margin-left:28px;margin-right:28px}}
@media(max-width:720px){.nav{height:76px;padding:0 18px}.brand{font-size:15px;gap:8px}.brandmark{width:32px;height:32px;font-size:23px}.brand small{font-size:7px;letter-spacing:2px}nav{gap:12px}.navbtn{font-size:11px}#soundBtn{display:none}main{padding:0 18px}.hero{grid-template-columns:1fr;gap:0;padding-top:32px;min-height:auto}.hero-copy{text-align:center}.hero h1{font-size:33px;line-height:1.65;margin:15px 0}.eyebrow{font-size:10px;letter-spacing:1.8px}.intro{font-size:13px}.hero-actions{justify-content:center;margin-top:20px}.hero-meta{justify-content:center;font-size:10px;margin-top:20px}.hero-art{height:365px;max-width:390px;width:100%;margin:15px auto 22px}.hero-card{width:145px}.hc1{left:12px;top:32px}.hc2{right:12px;top:22px}.hc3{top:133px;left:32%}.orbit{left:40px;top:30px;width:270px;height:270px}.o2{left:20px;top:10px;width:310px;height:310px}.hero-card b{font-size:14px}.hero-card small{font-size:8px}.hero-card{padding:6px 6px 8px}.hero:before{inset:0 -18px}.art-caption{font-size:10px;left:12%;bottom:0}.art-star{font-size:25px}.section-head h2{font-size:21px}.section-head>.muted{font-size:10px}.chapter-list{grid-template-columns:repeat(2,1fr);gap:12px}.chapter-tile:last-child{grid-column:1/-1;display:flex}.chapter-tile:last-child .chapter-image{width:35%;height:105px}.chapter-tile:last-child .chapter-text{padding:18px}.chapter-image{height:120px}.chapter-text h3{font-size:15px}.home-note{gap:10px;font-size:10px;padding:30px 0}.home-note i{display:none}footer{margin:18px 18px 0;font-size:10px;flex-direction:column;gap:6px;padding:20px 0}.game-top{padding:23px 0 14px;gap:10px}.game-top h1{font-size:24px}.game-top p{font-size:11px}.stats{gap:16px}.stats b{font-size:23px}.stats small{font-size:10px}.stats div:last-child b{font-size:12px;letter-spacing:1px}.progress{margin-bottom:15px}.workspace{display:flex;flex-direction:column;gap:14px}.tray{order:-1;width:100%;position:sticky;top:0;z-index:5;padding:10px 12px;background:#fffaf5f5;backdrop-filter:blur(8px);border-radius:12px}.tray h2{font-size:12px}.tray-head{margin-bottom:7px}.tray-tip,.tray-note{display:none}.pool{display:flex;overflow-x:auto;gap:9px;min-height:0;padding:3px 2px 5px;scrollbar-width:thin}.person{flex:0 0 74px;padding:4px}.person b{font-size:10px;margin-top:2px}.pool-empty{padding:15px;width:100%;margin:0}.board{width:100%;min-height:330px;padding:12px 10px}.board-heading{font-size:11px}.board-row{gap:22px;padding-top:25px;margin-bottom:20px}.slot-wrap{width:115px}.slot{height:139px}.slot img{height:101px}.slot-label{font-size:11px}.board.siblings .board-row{gap:8px}.board.siblings .slot-wrap{width:calc((100% - 16px)/3);max-width:112px}.board.siblings .slot{height:132px}.board.siblings .slot img{height:94px}.board.siblings .slot-label{font-size:10px}.band{font-size:10px}.board-help{font-size:10px;margin:6px 0}.game-bottom{gap:12px;align-items:center;margin-top:17px}.feedback{font-size:12px}.game-bottom .primary{flex-shrink:0;font-size:13px;padding:12px 15px;gap:12px}.game-links{gap:8px;align-items:flex-start}.game-links .textbtn{font-size:10px;text-align:left}.result{padding:45px 0}.result h1{font-size:28px}.result-stats{gap:50px}.result-stats strong{font-size:37px}.result-actions .primary,.result-actions .secondary{font-size:13px;padding:12px 18px}dialog{padding:30px 24px}dialog h2{font-size:23px}.reading{padding:14px;font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.drag-ghost{position:fixed!important;z-index:9999!important;width:96px!important;pointer-events:none!important;opacity:.94;transform:rotate(5deg);box-shadow:0 18px 35px #183c3744!important}.drag-ghost img{height:82px!important;width:100%;object-fit:cover}.is-dragging{user-select:none;cursor:grabbing}.is-dragging *{cursor:grabbing!important}
/* Fifteen independent story groups */
.hero:before,.board{background-image:linear-gradient(90deg,#faf7f0e8,#faf7f088),url(art/background.php)}
.hero{min-height:570px}.hero-art{height:440px}.hero h1{font-size:clamp(32px,3.2vw,47px)}
.chapter-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}.chapter-tile{transition:transform .2s,box-shadow .2s}.chapter-tile:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.chapter-image{height:210px;background:#183e3b}.chapter-image img{object-position:50% 34%;height:100%;width:100%;object-fit:cover}.chapter-image:after{background:linear-gradient(transparent 50%,#123d3899)}.chapter-tile .chapter-text{padding:21px}.chapter-text h3{font-size:21px;margin:7px 0}.chapter-text p{font-size:11px;min-height:38px;line-height:1.7}.story-card-count{position:absolute;bottom:13px;right:14px;z-index:1;border:1px solid #f0dfb19c;border-radius:30px;padding:4px 11px;color:#fff4d8;background:#1e4e3ccc;font-size:11px;letter-spacing:1px}.story-play{border:0;border-radius:8px;background:var(--teal);color:white;font-size:13px;padding:10px 16px;display:block;width:100%;margin-top:17px;text-align:left}.story-play:hover{background:#173d36}.story-rank{background:none;border:0;color:#928064;font-size:11px;padding:13px 0 0}.story-filters{display:flex;gap:12px;margin:0 0 25px}.story-filters button{border:1px solid #d9cfb9;border-radius:25px;background:transparent;color:#8b8067;padding:8px 20px;font-size:12px}.story-filters .active{background:var(--teal);color:white;border-color:var(--teal)}
.progress-caption{display:flex;justify-content:space-between;font-size:11px;color:#8f805f;margin:4px 0 8px}.progress-caption b{font-weight:500}.workspace{grid-template-columns:minmax(0,1fr) 280px;align-items:start}.tray{position:sticky;top:15px;max-height:82vh;overflow-y:auto}.pool{gap:9px}.person img{aspect-ratio:1;object-position:50% 34%}.person b{font-size:11px;line-height:1.6;min-height:19px}.role-group{margin:7px 0 27px}.role-title{font-size:12px;color:#8e7346;letter-spacing:1px;text-align:center;margin:13px 0 18px;display:flex;align-items:center;gap:12px;justify-content:center}.role-title:before,.role-title:after{content:"";height:1px;flex:1;background:#c0a67555;max-width:70px}.role-grid{display:grid;grid-template-columns:repeat(var(--columns),minmax(0,1fr));gap:13px;align-items:start;justify-content:center}.role-grid .slot-wrap{width:100%;max-width:142px;margin:auto}.role-grid .slot{height:auto;min-height:143px;aspect-ratio:.84;padding:5px}.role-grid .slot img{height:auto;width:100%;aspect-ratio:1;object-fit:cover;object-position:50% 34%}.role-grid .slot .name{font-size:11px;line-height:1.5;min-height:32px;display:grid;align-items:center}.role-grid .slot-label{font-size:11px;line-height:1.7;min-height:40px;padding-top:5px;overflow-wrap:anywhere}.story-board{padding:20px;min-height:460px;background:linear-gradient(#fffaf1e8,#f7efdfdc),url(art/background.php) center/cover}.slot.filled{justify-content:flex-start}.slot.empty{min-height:143px}.story-board.won .slot{animation:glow .8s ease-out}.rank-select-label{display:block;color:#8d805f;font-size:11px;margin-bottom:6px}#rankStory{width:100%;padding:11px 14px;background:#fffdf8;border:1px solid #d9c9aa;border-radius:9px;color:var(--ink);font:inherit;font-size:13px}.result-story{color:#a78043;font-weight:600}.game-top h1{font-size:27px}.chapter-list .chapter-tile:last-child{display:block;grid-column:auto}.chapter-list .chapter-tile:last-child .chapter-image{width:100%}.chapter-list .chapter-tile:last-child .chapter-text{padding:21px}.drag-ghost{pointer-events:none!important}.game-top .stats{gap:22px}.game-top p{max-width:400px}.hero-meta{gap:15px}.hero-actions .primary{gap:18px}.game-links .textbtn{padding:12px 0}.reading{margin-bottom:5px}#gameSave{margin:8px 0;font-size:12px}
@media(max-width:1050px){.workspace{grid-template-columns:minmax(0,1fr) 240px}.role-grid{gap:8px}.role-grid .slot{min-height:116px}.role-grid .slot.empty{min-height:116px}.role-grid .slot-label{font-size:10px}.role-grid .slot .name{font-size:10px}.chapter-image{height:175px}.chapter-text h3{font-size:18px}.chapter-tile .chapter-text{padding:16px}.chapter-list .chapter-tile:last-child .chapter-text{padding:16px}}
@media(max-width:720px){.hero{min-height:0}.hero h1{font-size:33px}.hero-art{height:365px}.hero-meta{gap:9px;font-size:9px}.chapter-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.chapter-image,.chapter-list .chapter-tile:last-child .chapter-image{height:140px}.chapter-tile .chapter-text,.chapter-list .chapter-tile:last-child .chapter-text{padding:12px}.chapter-text h3{font-size:15px;line-height:1.6;min-height:48px}.chapter-text p{font-size:10px;min-height:54px}.story-play{font-size:11px;padding:9px 10px;margin-top:9px}.story-rank{font-size:10px}.story-card-count{font-size:9px;bottom:8px;right:8px;padding:3px 7px}.story-filters{gap:8px;margin-bottom:18px}.story-filters button{font-size:11px;padding:7px 13px}.section-head{align-items:flex-start;gap:10px}.section-head h2{font-size:20px}.section-head>.muted{font-size:9px;max-width:85px;text-align:right}.workspace{display:flex;gap:12px}.tray{position:sticky;top:0;width:100%;max-height:none;overflow:visible;z-index:6;padding:10px 11px;background:#fffbf4fa}.pool{overflow-x:auto;display:flex;overscroll-behavior-x:contain;padding-bottom:6px;gap:8px}.person{flex:0 0 76px}.person b{font-size:9px;min-height:29px;line-height:1.5;display:grid;align-items:center}.tray-head{margin-bottom:5px}.tray-tip,.tray-note{display:none}.role-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px 9px}.role-grid .slot-wrap{max-width:116px}.role-grid .slot,.role-grid .slot.empty{min-height:124px;aspect-ratio:auto}.role-grid .slot .name{min-height:30px;font-size:9px}.role-grid .slot-label{font-size:10px;line-height:1.6;min-height:48px;padding:4px 1px 0}.story-board{padding:12px 10px}.role-group{margin:0 0 24px}.role-title{font-size:11px;margin:12px 0 14px;letter-spacing:0}.role-title:before,.role-title:after{max-width:25px}.game-top{align-items:start;padding-top:22px}.game-top h1{font-size:22px}.game-top .stats{gap:12px}.game-top .stats b{font-size:22px}.game-top .stats div:last-child b{font-size:11px}.game-top p{font-size:10px;max-width:220px}.progress-caption{font-size:9px}.game-bottom{position:fixed;bottom:10px;left:18px;right:18px;z-index:8;background:#fffcf4f7;backdrop-filter:blur(10px);padding:11px 12px;border:1px solid #d9c9a6;border-radius:12px;box-shadow:0 -4px 25px #2d342012;margin:0;gap:10px}.game-bottom .feedback{font-size:10px;line-height:1.6;max-width:56%}.game-bottom .primary{font-size:12px;padding:10px 12px;min-height:45px}#game{padding-bottom:105px}.reading{padding:13px;font-size:11px}.game-links .textbtn{font-size:10px}.story-filters{scroll-margin-top:20px}.result-stats{gap:35px}.result-stats strong{font-size:35px}.result h1{font-size:27px}.hero-actions{margin-top:20px}.home-note{font-size:9px;gap:8px}}
@media(max-width:380px){.role-grid{gap:11px 6px}.role-grid .slot,.role-grid .slot.empty{min-height:113px}.role-grid .slot-label{font-size:9px}.chapter-list{gap:9px}.chapter-text h3{font-size:14px}.hero h1{font-size:29px}.nav{padding:0 12px}.brand{font-size:14px}nav{gap:9px}.navbtn{font-size:10px}}

/* Distinct story scenes and server-timed scoring */
.chapter-image img{object-position:50% 42%}.hero-card img{aspect-ratio:16/10;object-position:center}.hero-card{width:218px}.hero-card b{font-size:15px}.hc1{top:60px}.hc2{top:40px}.hc3{top:215px;left:28%}.stats .clock-stat b{font-variant-numeric:tabular-nums;font-size:24px;color:#466b60}.score-breakdown{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;padding:15px;border:1px solid #ded1b7;border-radius:12px;background:#fffaf1}.score-breakdown span{font-size:12px;color:#8d8066}.score-breakdown b{display:block;font-size:21px;color:#a77d3b;font-weight:600}.result-stats{margin-bottom:18px}.game-top .stats{gap:20px}
@media(max-width:1050px){.hero-card{width:168px}.hc3{top:205px}.game-top .stats{gap:14px}.stats .clock-stat b{font-size:21px}}
@media(max-width:720px){.hero-card{width:155px}.hero-card b{font-size:11px}.hero-card small{font-size:8px}.hc1{top:45px}.hc2{top:22px}.hc3{top:165px;left:28%}.hero-art{height:335px}.game-top{flex-wrap:wrap}.game-top>div:first-child{width:100%}.game-top .stats{width:100%;justify-content:space-between;margin-top:6px}.stats .clock-stat b{font-size:22px}.game-top .stats div:last-child b{font-size:15px}.score-breakdown{gap:20px 25px}.score-breakdown b{font-size:18px}}
