@font-face{font-family:Alata;src:url(/Alata.ttf) format("truetype");font-display:swap}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Alata,system-ui,sans-serif;color:#263354;background:#f7f5f2}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button,a,input,textarea,select,summary{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #bd6cbe}button{transition:transform .15s,background .15s,box-shadow .15s}button:not(:disabled):active{transform:translateY(1px)}a{color:#276782;text-underline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400;line-height:1.2}p{line-height:1.55}strong,b{font-weight:600}button svg{flex-shrink:0}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid #e4e2e9;background:#fffefa}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#263354;font-size:23px;line-height:1.15}.brand-mark{display:grid;place-items:center;background:#e9dcf3;border-radius:13px;color:#6f518c;width:40px;height:40px;transform:rotate(-7deg)}.brand small{display:block;font-size:9px;letter-spacing:2.1px;color:#7d7389;margin-top:5px}.top-actions{display:flex;align-items:center;gap:13px}.language,.icon-btn,.teacher-button{border:0;background:transparent;color:#424963}.language{font-size:13px}.icon-btn{padding:8px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px}.icon-btn:hover{background:#eee9f3}.teacher-button{display:flex;align-items:center;gap:8px;background:#f2edf7;border:1px solid #ddd2e7;padding:10px 13px;border-radius:12px;font-size:12px}.bottom-bar{display:flex;justify-content:space-between;padding:13px 32px;color:#7c7b8c;font-size:11px}.welcome{min-height:calc(100vh - 116px);position:relative;display:grid;grid-template-columns:minmax(0,1fr) 390px;align-items:center;padding:60px max(6vw,32px);gap:80px;isolation:isolate;overflow:hidden}.welcome-art,.welcome-shade{position:absolute;inset:0;z-index:-2}.welcome-art{background:url(/art/town.png) center 43%/cover}.welcome-shade{background:linear-gradient(90deg,#1e2544e0,#1f2545a3 43%,#2727411f);z-index:-1}.welcome-copy{color:#fffaf3;max-width:620px}.welcome-kicker{display:inline-flex;align-items:center;letter-spacing:2.4px;font-size:11px;color:#f4d995;border-bottom:1px solid #debb7b55;padding-bottom:15px;margin-bottom:26px}.welcome h1{font-size:clamp(40px,5.3vw,72px);line-height:1.05;letter-spacing:-2px;margin-bottom:24px}.welcome h1 em{color:#f6d48e;font-style:normal}.welcome-copy>p{font-size:17px;max-width:470px;line-height:1.65;color:#f2ecf7}.welcome-tags{display:flex;flex-wrap:wrap;gap:18px;margin-top:33px}.welcome-tags span{display:flex;align-items:center;gap:7px;font-size:12px;color:#eee5f6}.start-card{background:#fffdf7f7;padding:25px;border:1px solid #fff9ee;border-radius:24px;box-shadow:0 18px 70px #181a374a}.eyebrow{display:block;font-size:10px;text-transform:uppercase;letter-spacing:1.7px;color:#81748e;line-height:1.5;margin-bottom:10px}.character-select{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 24px}.character-select button{position:relative;border:2px solid #e9e4ec;border-radius:17px;background:#faf8fb;padding:5px 8px 13px;display:flex;flex-direction:column;align-items:center}.character-select button.selected{border-color:#a584c6;background:#efe7f8;box-shadow:0 0 0 3px #e8dff2}.character-select strong{font-size:19px;margin-top:-7px}.character-select small{font-size:10px;color:#736c80;line-height:1.35;margin-top:4px}.character-check{position:absolute;top:10px;right:9px;color:#8662a5}.sprite{display:block;width:76px;height:101.33px;background-size:400% 200%;background-repeat:no-repeat;flex-shrink:0;filter:drop-shadow(0 5px 2px #14143226);pointer-events:none}.sprite.portrait{width:87px;height:116px}.field{display:flex;flex-direction:column;gap:7px;font-size:13px;color:#40465e;margin:18px 0}.field input,.field textarea,.field select{background:#fff;border:1px solid #cbc9d7;border-radius:10px;padding:11px 12px;min-width:0;width:100%;color:#263354}.field textarea{line-height:1.65;resize:vertical;background:#f1f7fc}.field input:focus,.field textarea:focus,.field select:focus{border-color:#a684c5}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:11px;min-height:44px;padding:12px 19px;font-size:13px;text-decoration:none}.primary{background:#70528f;border:1px solid #70528f;color:#fff;box-shadow:0 4px #513869;font-weight:500}.primary:hover{background:#61447f}.secondary{background:#f4f1f7;border:1px solid #d6cde0;color:#57466d}.secondary:hover{background:#e8dfef}.wide{width:100%}.fine{font-size:11px;color:#767185;line-height:1.5;margin:13px 0 4px}.chapter-strip{padding:12px 28px;display:flex;align-items:center;gap:20px;background:#f5f0f8;font-size:9px;letter-spacing:1.5px;color:#80708f}.chapter-strip>div{display:flex;align-items:center;gap:6px}.chapter-strip>div>span{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;border:1px solid #d5c9df;font-size:11px;letter-spacing:0}.chapter-strip .current{background:#806096;color:#fff;border-color:#806096}.chapter-strip .done{background:#dcebe5;border-color:#b7d6cb;color:#457f72}.saved-status{margin-left:auto;display:flex;gap:6px;align-items:center;font-size:10px;letter-spacing:0}.play-layout{max-width:1700px;margin:auto;padding:22px 28px 10px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:23px;align-items:start}.world-column{min-width:0}.town-world{position:relative;aspect-ratio:1.5;max-height:calc(100vh - 310px);min-height:340px;border:6px solid #fff;border-radius:24px;overflow:hidden;box-shadow:0 4px 23px #2934481c;isolation:isolate;background:#d5dcea;cursor:crosshair}.town-image,.town-tint{position:absolute;inset:0;z-index:-2;pointer-events:none}.town-image{background:url(/art/town.png) center/100% 100%;transition:filter 1s}.town-tint{z-index:-1;background:transparent;transition:background 1s;pointer-events:none}.after-dark .town-image{filter:brightness(.72) saturate(.88)}.after-dark .town-tint{background:#30366922}.cloudy .town-tint{background:#45466128}.world-header{position:absolute;top:12px;left:12px;right:12px;display:flex;justify-content:space-between;align-items:start;pointer-events:none}.world-header>span{display:flex;align-items:center;gap:6px;background:#fffaf5ee;border:1px solid #ddd9e7;border-radius:9px;padding:7px 10px;font-size:10px}.time-switch{display:flex;gap:3px;background:#fffaf5ef;border:1px solid #ddd9e7;padding:3px;border-radius:10px;pointer-events:auto}.time-switch button{border:0;background:transparent;color:#69647f;border-radius:7px;padding:6px 8px;display:flex}.time-switch button.active{background:#e7d9f1;color:#674884}.landmark{position:absolute;transform:translate(-50%,-100%);display:flex;align-items:center;gap:5px;border:1px solid #ddd3c7;border-bottom:3px solid #beaaa0;background:#fffbf1f5;color:#3f3c57;border-radius:8px;padding:7px 9px;font-size:11px;white-space:nowrap;box-shadow:0 4px 10px #2233472b;z-index:3;cursor:pointer}.landmark:not(:disabled):active{transform:translate(-50%,-96%)}.landmark:after{content:"";position:absolute;bottom:-9px;left:calc(50% - 5px);border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid #beaaa0}.landmark.destination{border-color:#d5aa57;background:#fff4c6;border-bottom-color:#b88c35;box-shadow:0 0 0 4px #ffeaa36e,0 4px 10px #2233472b}.landmark i{display:grid;place-items:center;position:absolute;right:-9px;top:-9px;width:20px;height:20px;background:#9874b5;color:#fff;border:2px solid #fff4df;border-radius:50%;font-style:normal;font-size:12px}.player{position:absolute;transform:translate(-50%,-86%);z-index:4;pointer-events:none;display:flex;align-items:center;flex-direction:column}.player>span:last-child{font-size:9px;background:#fff9edeb;border:1px solid #e3ceac;color:#6d577f;border-radius:8px;padding:2px 8px;margin-top:-6px}.companion{position:absolute;left:52%;top:55%;z-index:2;pointer-events:none;animation:companionStroll 18s ease-in-out infinite alternate}.companion .sprite{width:51px;height:68px}.firefly{position:absolute;pointer-events:none;width:4px;height:4px;border-radius:50%;background:#ffffb5;box-shadow:0 0 9px 3px #f8d67399;animation:fireflyFloat 5s ease-in-out infinite}.map-caption{position:absolute;bottom:11px;left:50%;transform:translate(-50%);background:#fffdf4e8;border:1px solid #e3d8e3;border-radius:8px;display:flex;gap:6px;align-items:center;font-size:10px;color:#73657c;padding:6px 10px;white-space:nowrap;pointer-events:none}.cloud-ribbon{position:absolute;top:52px;left:12px;background:#5a627ce8;color:#fff;display:flex;align-items:center;gap:7px;font-size:10px;padding:6px 9px;border-radius:8px;pointer-events:none}.celebrate .town-image{filter:brightness(1.13) saturate(1.08)}.celebrate .firefly{animation-duration:2s;box-shadow:0 0 13px 5px #f8d673bb}.town-hud{margin-top:14px;padding:15px 18px 7px;background:#fffdf9;border:1px solid #e5deea;border-radius:16px}.hud-title{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#615671;margin-bottom:12px}.hud-title>span:first-child{display:flex;gap:7px;align-items:center}.hud-title>span:last-child{font-size:10px;color:#89808d}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:13px 0}.stats-row>div{border:1px solid #ddd7e7;border-radius:10px;padding:12px;background:#faf8fc;min-width:0}.stats-row>div>span{display:block;font-size:11px;color:#776f85}.stats-row strong{display:block;font-size:25px;line-height:1.4;color:#443957;font-weight:400}.stats-row strong small{font-size:10px}.stats-row small{font-size:10px;color:#82778e}.meter{height:5px;background:#e4dced;overflow:hidden;border-radius:5px;margin:5px 0}.meter i{display:block;height:100%;background:#a487c4;border-radius:5px;transition:width .35s}.stats-row .good{border-color:#a7cdbb;background:#f1f8f4}.stats-row .good .meter i{background:#69aa8e}.stats-row .needs{border-color:#dfb18a;background:#fff5e9}.stats-row .needs .meter i{background:#d39d63}.town-hud .stats-row{margin:0;gap:16px}.town-hud .stats-row>div{border:0;background:transparent;padding:0}.town-hud .stats-row strong{font-size:22px}.town-hud>p{font-size:9px;color:#9a91a1;margin:8px 0 1px}.mission-panel{padding:21px 23px 16px;background:#fffdf8;border:1px solid #e4dce8;border-radius:19px;box-shadow:0 5px 14px #3b2a4a05}.mission-number{display:flex;gap:11px;align-items:center;color:#af95c4;font-size:34px;line-height:1.1;margin-bottom:17px}.mission-number span{font-size:9px;letter-spacing:1.5px;max-width:90px;line-height:1.5;color:#92869c}.mission-panel h1{font-size:25px;letter-spacing:-.5px;margin-bottom:12px}.mission-panel>p{font-size:12px;color:#7a7283;line-height:1.7}.mission-panel>.primary{margin-top:3px;padding:11px 12px}.guide-message{display:flex;align-items:center;gap:2px;border-top:1px solid #eae4ed;border-bottom:1px solid #eae4ed;margin:23px 0 17px;padding:10px 0}.guide-message .sprite{width:65px;height:87px;margin-left:-10px}.guide-message strong{font-size:11px;color:#8766a2}.guide-message p{font-size:11px;line-height:1.55;color:#7b7186;margin:4px 0}.mission-list{display:flex;flex-direction:column;gap:12px}.mission-list>div{display:flex;align-items:center;gap:10px;font-size:10px;color:#a297ad}.mission-list>div>span{display:grid;place-items:center;min-width:20px;height:20px;border-radius:50%;border:1px solid #ddd3e6;font-size:9px}.mission-list .active{color:#70518b}.mission-list .active>span{background:#eee3f6;border-color:#bfa5d0}.mission-list .complete{color:#659180}.mission-list .complete>span{background:#e8f3ed;border-color:#b8d3c4}.text-btn{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:#7a648c;padding:8px 0;font-size:11px;text-decoration:underline;text-underline-offset:3px}.mission-panel>.text-btn{margin-top:17px}.danger{color:#a46066}.modal-backdrop{position:fixed;inset:0;background:#1e213b95;backdrop-filter:blur(5px);z-index:30;display:flex;align-items:center;justify-content:center;padding:26px}.dialog{position:relative;max-width:830px;width:100%;max-height:calc(100dvh - 52px);overflow:auto;border-radius:23px;background:#fffdf8;border:1px solid #fff8ed;box-shadow:0 24px 100px #13173180;padding:36px 40px;scroll-behavior:smooth}.teacher-dialog{max-width:960px}.close-button{position:sticky;float:right;top:0;margin:-18px -22px 0 10px;z-index:5;display:grid;place-items:center;padding:7px;border:1px solid #ddd3e6;border-radius:50%;background:#fffdf8;color:#7d6c89}.dialog-title{margin-bottom:22px}.dialog-title h2{font-size:30px;letter-spacing:-.6px;margin-bottom:12px}.dialog-title>p{font-size:14px;color:#776e80;line-height:1.6;margin-bottom:0}.dialog p{font-size:14px}.muted{color:#7d7485}.dialog h3{font-size:18px;margin:20px 0 10px}.dialog details{border-top:1px solid #e2dce8;padding:13px 0;margin:14px 0}.dialog summary{cursor:pointer;font-size:13px;color:#6e587f;padding:3px 0}.graph-wrap{border:1px solid #dfe3ec;border-radius:14px;padding:15px;background:#fff}.graph-wrap svg{width:100%;max-height:300px;display:block}.graph-wrap svg text{font-family:Alata,sans-serif;font-size:13px}.graph-wrap svg .chart-label{font-size:12px}.graph-wrap details{margin:0;padding:7px 0 0}.graph-wrap .fine{font-size:10px}table{border-collapse:collapse;width:100%;margin:12px 0;font-size:12px}td,th{padding:11px 10px;border:1px solid #dddbe5;text-align:left;vertical-align:top;overflow-wrap:anywhere}th{background:#e9eef5;color:#48536b;font-weight:400}tbody tr:nth-child(2n){background:#f7f5fa}.practice{margin:18px 0}.choice-row,.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:15px 0}.choice-row button,.source-tabs button,.final-tabs button{border:1px solid #d8d0e2;background:#f6f3f9;border-radius:9px;padding:10px 13px;font-size:12px;color:#6b5c7d}.choice-row .chosen,.source-tabs .chosen,.final-tabs .chosen{border-color:#a684c2;background:#e9ddf4;color:#60467d}.feedback{padding:12px 15px;border-left:3px solid #c59a5f;background:#fcf3e5;border-radius:0 9px 9px 0;color:#85673f!important;font-size:12px!important;line-height:1.6}.feedback.ok{border-left-color:#66a38b;background:#edf7f0;color:#477961!important}.local-map{margin:22px 0 12px;padding:16px;border:1px solid #dce2e9;border-radius:13px;background:#f2f8fa}.local-map svg{width:100%;font-family:Alata,sans-serif}.contract-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:20px 0}.contract{border:1px solid #dbd5e0;border-radius:13px;background:#fff;overflow:hidden;border-top:5px solid var(--source);box-shadow:0 2px 3px #34294c05}.contract.selected{border-color:#9b80b7;border-top-color:var(--source);background:#faf6ff;box-shadow:0 0 0 2px #ceb9df}.inspect{display:flex;align-items:center;gap:8px;text-align:left;background:none;border:0;width:100%;padding:12px 10px 8px;color:#41394f}.inspect span{display:block;min-width:0}.inspect strong{font-size:13px;display:block}.inspect small{font-size:10px;display:block;color:#807489;margin-top:4px}.contract-numbers{display:flex;align-items:center;justify-content:space-around;gap:5px;padding:6px 8px 10px;font-size:11px;color:#6c6279}.contract-numbers span{display:flex;align-items:center;gap:4px}.reserve{width:100%;border:0;border-top:1px solid #e6ddeb;background:#f0eaf5;color:#75578e;display:flex;align-items:center;justify-content:center;gap:5px;padding:8px;font-size:11px}.selected .reserve{background:#dac9e9;color:#604476}.source-detail{border:1px solid #ded8e8;border-left:5px solid var(--source);border-radius:14px;padding:18px;margin:18px 0;background:#fff}.source-head{display:flex;align-items:center;gap:13px}.source-head>div{flex:1}.source-head h3{font-size:23px;margin:0}.source-head .eyebrow{font-size:9px;margin-bottom:3px}.source-detail>p{font-size:13px}.flow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:14px 0 17px;padding:13px 0;border-top:1px solid #eee9f1;border-bottom:1px solid #eee9f1}.flow>span{display:flex;align-items:center;gap:8px;font-size:11px;flex:1}.flow b{font-weight:400}.flow svg{flex-shrink:0;color:#a293af}.fact{font-size:12px!important;color:#6f5881}.pros-cons{display:grid;grid-template-columns:1fr 1fr;gap:18px}.pros-cons p{font-size:12px;margin-bottom:0;color:#6f657d}.pros-cons strong{display:block;margin-bottom:5px;color:#453951;font-size:11px}.source-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:15px 0}.saved-plan{display:flex;justify-content:space-between;gap:12px;padding:12px 15px;border-radius:9px;background:#edf2f5;color:#607085;font-size:12px!important}.talk{display:flex;align-items:center;gap:10px;margin:12px 0}.talk .sprite{width:74px;height:99px}.talk p{font-size:13px;color:#7b648d;font-style:italic;margin:0}.weather-alert{display:flex;gap:16px;background:#e7edf7;padding:19px;border-radius:13px;margin:14px 0;color:#586887}.weather-alert svg{flex-shrink:0}.weather-alert strong{font-size:14px}.weather-alert p{font-size:12px;margin:7px 0 0}.final-tabs{display:flex;gap:6px;position:sticky;top:-36px;z-index:4;background:#fffdf8;padding:13px 0;border-bottom:1px solid #e7dfea;flex-wrap:wrap}.question{border:0;padding:0;margin:24px 0 30px;min-width:0}.question legend{font-size:15px;line-height:1.5;padding:0;margin-bottom:12px;color:#3f3c55}.question legend>span{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#e8dcf2;color:#7d5a9d;font-size:12px;margin-right:10px}.answer{display:flex;align-items:flex-start;gap:10px;margin:9px 0;padding:13px 14px;border:1px solid #dcd7e3;border-radius:10px;cursor:pointer;background:#fff;font-size:13px;line-height:1.55;color:#6b6379}.answer.chosen{border-color:#ad8bc6;background:#f0e8f8;color:#5e4778}.answer input{accent-color:#855ca1;margin-top:4px;flex-shrink:0}.confirmation{position:sticky;bottom:-36px;background:#eee3f7;border:2px solid #b391cb;border-radius:15px;padding:21px;box-shadow:0 -10px 30px #33214125;z-index:10}.confirmation h3{margin-top:0}.result-hero{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:20px;border-radius:16px;background:linear-gradient(120deg,#ede4f6,#fbefd5);margin:20px 0}.result-hero>div>span{font-size:11px;color:#80678e;display:block}.result-hero strong{display:block;font-size:46px;line-height:1.3;font-weight:400;color:#77528f}.result-hero strong small{font-size:19px}.result-hero strong.plan-result{font-size:19px;max-width:180px}.domain-scores{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:20px 0}.domain-scores>div{display:flex;justify-content:space-between;gap:9px;padding:11px 12px;border:1px solid #e1dbe9;border-radius:9px;font-size:12px}.domain-scores b{color:#77568e}.review-item{padding:13px 0;border-bottom:1px solid #e6e0e9}.review-item strong{font-size:13px}.review-item p{font-size:12px;margin:6px 0 0;color:#7d7287}.preserve{white-space:pre-wrap}.table-scroll{overflow:auto}.teacher-dialog li{font-size:13px;line-height:1.6;margin:8px 0}.teacher-dialog details p{font-size:13px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid #e4dce9;font-size:14px}.toggle-row input{width:21px;height:21px;accent-color:#855da1}.glossary>div{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid #e3dce8;font-size:13px;line-height:1.6}.glossary dt{color:#7a5990}.glossary dd{margin:0;color:#766a81}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%);background:#403452;color:#fff;padding:14px 22px;border:1px solid #9c85b0;border-radius:13px;max-width:90vw;font-size:13px;z-index:60;box-shadow:0 7px 28px #2619364a}.loading{min-height:100vh;display:grid;place-content:center;text-align:center;color:#7f5a9a}.firefly-logo{font-size:55px;color:#cb9b62}.print-report{display:none}@keyframes companionStroll{0%,15%{transform:translate(0)}45%,60%{transform:translate(-100px,65px)}90%,to{transform:translate(25px,85px)}}@keyframes fireflyFloat{0%,to{opacity:.3;transform:translate(0)}50%{opacity:1;transform:translate(8px,-17px)}}.reduce-motion *{animation:none!important;scroll-behavior:auto!important;transition:none!important}@media(min-width:1500px){.town-world{max-height:660px}.play-layout{grid-template-columns:minmax(0,1fr) 330px}.mission-panel{padding:27px}.mission-panel>p{font-size:14px}.mission-list>div{font-size:12px}.landmark{font-size:13px}.player .sprite{width:90px;height:120px}}@media(max-width:1050px){.play-layout{grid-template-columns:minmax(0,1fr) 260px;gap:15px;padding:16px}.topbar{padding:0 20px}.mission-panel{padding:17px}.mission-panel h1{font-size:22px}.town-world{min-height:340px}.landmark{font-size:9px;padding:6px}.landmark svg{width:13px}.welcome{gap:35px;grid-template-columns:1fr 340px;padding:45px 35px}.welcome h1{font-size:48px}.welcome-tags{gap:10px}.welcome-tags span{font-size:10px}.start-card{padding:20px}.town-hud .stats-row{gap:9px}.stats-row>div>span{font-size:10px}.bottom-bar{padding:12px 20px}}@media(max-width:780px){.topbar{height:65px;padding:0 15px}.brand{font-size:19px}.brand small{font-size:8px;letter-spacing:1.4px}.brand-mark{width:33px;height:33px}.top-actions{gap:3px}.teacher-button{padding:9px}.teacher-button span{display:none}.welcome{grid-template-columns:1fr;padding:35px 22px;gap:28px}.welcome-copy{max-width:100%}.welcome h1{font-size:45px}.welcome-copy>p{font-size:14px;max-width:90%}.welcome-tags{margin-top:15px}.welcome-kicker{margin-bottom:18px}.start-card{max-width:430px;width:100%;margin:auto}.welcome-shade{background:linear-gradient(180deg,#252947dd,#25294777)}.character-select{margin:12px 0 18px}.chapter-strip{padding:10px 16px;gap:12px}.chapter-strip>span:first-child{display:none}.play-layout{grid-template-columns:1fr;padding:12px;gap:12px}.town-world{min-height:0;max-height:none;aspect-ratio:1.35}.mission-panel{display:grid;grid-template-columns:1fr auto;gap:6px 15px}.mission-number{grid-column:1/-1;margin:0;font-size:23px;gap:10px}.mission-number span{max-width:none}.mission-panel h1{margin:5px 0}.mission-panel>p{grid-column:1/-1;margin:0 0 8px}.mission-panel>.primary{grid-column:1/-1}.guide-message{grid-column:1/-1;margin:8px 0;max-width:none}.mission-list{display:none}.mission-panel>.text-btn{margin-top:0;grid-column:1/-1}.bottom-bar>span:last-child{display:none}.dialog{padding:26px 21px;border-radius:18px;max-height:calc(100dvh - 24px)}.modal-backdrop{padding:12px}.close-button{margin:-10px -10px 0 10px}.dialog-title h2{font-size:26px}.dialog-title>p{font-size:13px}.contract-grid{grid-template-columns:repeat(2,1fr)}.final-tabs{top:-26px;gap:4px}.final-tabs button{font-size:10px;padding:9px 7px;flex:1}.stats-row{gap:7px}.stats-row>div{padding:9px}.stats-row strong{font-size:24px}.pros-cons{grid-template-columns:1fr;gap:9px}.flow{gap:6px}.flow>span{font-size:10px;gap:5px}.source-head h3{font-size:21px}.domain-scores{grid-template-columns:1fr}.result-hero{gap:8px;padding:16px}.result-hero .sprite{width:60px;height:80px}.result-hero strong{font-size:38px}.result-hero strong.plan-result{font-size:15px}.weather-alert{gap:10px;padding:15px}.weather-alert>svg{width:27px}.confirmation{bottom:-26px}.landmark span{font-size:9px}.landmark svg{width:13px}.world-header>span{font-size:9px}.player .sprite{width:59px;height:79px}.companion .sprite{width:40px;height:54px}.map-caption{font-size:8px;padding:5px 8px}.glossary>div{grid-template-columns:95px 1fr;gap:10px}.toast{font-size:12px;text-align:center;width:max-content;max-width:90vw}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}@media print{body{background:#fff;color:#000}.game>*{display:none!important}.game>.print-report{display:block!important;padding:25px}.print-report p{white-space:pre-wrap}.print-report h1{font-size:22px}.print-report h2{font-size:18px}}@keyframes companionSteps{0%,to{background-position:0% 0%}25%{background-position:33.333% 0%}50%{background-position:66.667% 0%}75%{background-position:100% 0%}}.companion .sprite.walking{animation:companionSteps .64s steps(1) infinite}.reduce-motion .companion .sprite{animation:none}textarea[readonly]{background:#f5f7fa;color:#35465b}.story-screen{min-height:100dvh;background:#f7f4ee;color:#263354}.story-top{min-height:68px;padding:12px 5vw;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#fffdf7}.story-top>span{font-size:21px}.story-top small{display:block;font-size:12px;color:#626079;margin-top:3px}.story-top>div{display:flex;gap:9px}.story-top button{display:flex;gap:6px;align-items:center;border:1px solid #d9d0e4;border-radius:12px;background:#f5effa;color:#49345f;padding:10px 13px;font-size:14px}.story-stage{position:relative;max-width:1280px;margin:auto;height:350px;overflow:hidden;isolation:isolate}.story-town{position:absolute;inset:-4%;background:url(/art/town.png) center 45%/cover;animation:storyCamera 16s ease-in-out infinite alternate;z-index:-2}.story-vignette{position:absolute;inset:0;background:linear-gradient(90deg,#222d53e8,#25315287 50%,#28365b26);z-index:-1}.story-brand{position:absolute;top:45px;left:6%;max-width:44%;color:#fff9ef}.story-brand>span{font-size:13px;color:#ffe09b;letter-spacing:2px}.story-brand h1{font-size:clamp(34px,4.2vw,62px);margin:10px 0 13px;line-height:1}.story-brand small{font-size:17px;line-height:1.5;display:block;max-width:330px}.story-actor{position:absolute;left:13%;bottom:15px;text-align:center;animation:storyStroll 7s ease-in-out infinite alternate}.story-actor.story-friend{left:31%;animation-delay:-3s}.story-actor .sprite{width:125px;height:166.67px;background-position:0% 0%;animation:companionSteps .8s steps(1) infinite;filter:drop-shadow(0 4px 2px #191c4366)}.story-actor b{display:inline-block;position:relative;top:-20px;background:#fff9e9;color:#463657;padding:4px 10px;border-radius:8px;font-size:13px}.story-callout,.story-demo,.story-route{position:absolute;right:5%;top:58px;width:42%;border:1px solid #fff5d4;background:#fffdf4f2;box-shadow:0 10px 40px #15183038;color:#2e3653;padding:22px;border-radius:20px}.story-callout{top:140px;display:flex;align-items:center;gap:14px;font-size:24px;animation:storyFloat 4s ease-in-out infinite}.story-callout svg{color:#8b6728;flex-shrink:0}.story-demo>b{font-size:27px}.story-demo>div{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0}.story-demo>div>span{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:5px;background:#ede7f7;padding:12px 8px;border-radius:12px;font-size:21px}.story-demo small{display:block;font-size:14px;line-height:1.5;width:100%}.story-demo p{font-size:17px;line-height:1.5;margin:10px 0}.story-route{display:flex;align-items:center;justify-content:center;gap:9px;top:130px}.story-route>span{display:grid;justify-items:center;gap:9px;text-align:center;font-size:14px}.story-route>svg{flex-shrink:0;width:16px}.story-captions{max-width:1050px;margin:0 auto;padding:22px 32px 28px}.story-step{color:#6f5289;font-size:13px;letter-spacing:1px;margin-bottom:8px}.story-captions h2{font-size:29px;margin-bottom:13px;outline:none}.story-captions>p{font-size:18px;line-height:1.55;margin-bottom:12px}.story-captions>small{display:block;color:#66647a;font-size:13px;margin-top:14px}.story-nav{display:flex;justify-content:space-between;align-items:center;margin-top:22px;gap:15px}.story-nav>div{display:flex;gap:8px}.story-nav>div>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#e7e0ed;font-size:12px;color:#665970}.story-nav .active{background:#775795;color:#fff}.story-nav .done{background:#c7e6d9}.story-check{padding:15px 18px;background:#eee9f7;border:1px solid #d6c8e7;border-radius:16px;margin:15px 0}.story-check>p{margin:0 0 10px;font-size:16px}.story-check>div{display:flex;gap:8px;flex-wrap:wrap}.story-check button{background:#fff;border:1px solid #cdbddd;border-radius:10px;padding:10px;font-size:15px;color:#41324e}.story-check button[aria-pressed=true]{background:#72538d;color:#fff}.story-check p[role=status]{margin:12px 0 0}.story-finish-note{background:#e5f2ee;padding:12px 16px;border-radius:12px}.story-paused *{animation-play-state:paused!important;scroll-behavior:auto!important}@keyframes storyCamera{to{transform:scale(1.05) translate(-.6%)}}@keyframes storyStroll{to{transform:translate(25px)}}@keyframes storyFloat{50%{transform:translateY(-7px)}}.mission-steps{border:1px solid #d7dfeb;background:#f0f5fc;border-radius:14px;padding:15px 17px;margin:17px 0}.mission-steps h3{display:flex;gap:8px;align-items:center;font-size:16px;margin:0 0 10px!important;color:#364e6f}.mission-steps ol{padding-left:22px;margin:0}.mission-steps li{font-size:15px;line-height:1.5;margin:7px 0;padding-left:3px}.mission-panel .mission-steps{margin-top:16px}.mission-panel .mission-steps li{font-size:13px}.word-help summary{display:flex;align-items:center;gap:8px}.word-help dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:10px 0}.word-help dt{font-size:15px;color:#4f3f67}.word-help dd{margin:5px 0 0;font-size:15px;line-height:1.5}.writing-support{background:#f2f5fb;border-radius:12px;padding:12px 16px!important}.writing-support li{font-size:16px;line-height:1.6;margin:8px 0}.question-nav{position:sticky;top:-36px;z-index:6;background:#fffdf8;padding:13px 0;display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-bottom:1px solid #e4deea;margin-bottom:18px}.question-nav>span{font-size:15px;margin-right:auto}.question-nav button{border:1px solid #d8ccdf;background:#f5eff9;padding:9px 16px;border-radius:10px;color:#604475}.question-nav button.chosen{background:#73528e;color:#fff}.dialog .question legend{font-size:17px}.dialog .answer{font-size:16px}.dialog p,.dialog-title>p,.dialog .field{font-size:16px}.dialog summary{font-size:15px}.dialog .fine{font-size:13px}.dialog textarea,.dialog select{font-size:16px}.dialog .feedback h3{margin:0 0 8px}.dialog .feedback p{margin-bottom:8px}.dialog .feedback small{font-size:13px}.town-friends{position:absolute;inset:0;pointer-events:none;z-index:5}.town-friend{position:absolute;transform:translate(-50%,-50%);background:none;border:none;padding:0;pointer-events:auto;display:flex;align-items:center;flex-direction:column;border-radius:12px}.town-friend:active{transform:translate(-50%,-50%)!important}.npc-sheet{display:block;width:64px;height:85.33px;background:url(/art/frogs.png) no-repeat;background-size:400% 200%;animation:frogWork 1.8s steps(1) infinite;filter:drop-shadow(0 2px 1px #1d294f33)}.npc-sheet.jebu{animation-name:jebuWork}.npc-sheet.namir{width:82px;height:82px;background-image:url(/art/namir.png);background-size:200% 200%;animation-name:namirWork;animation-duration:2.4s}.npc-name{font-size:10px;position:relative;top:-13px;background:#fff8e9e8;color:#47365d;padding:2px 5px;border-radius:7px;opacity:0;transition:opacity .2s}.town-friend:hover .npc-name,.town-friend:focus-visible .npc-name{opacity:1}.npc-bubble{position:absolute;right:2%;bottom:10%;width:min(340px,92%);background:#fffdf5;border:2px solid #c9b5de;box-shadow:0 8px 24px #17224944;border-radius:16px;padding:15px 20px;pointer-events:auto;color:#263354}.npc-bubble>button{float:right;border:0;background:#efe6f7;border-radius:50%;padding:4px}.npc-bubble p{font-size:15px;margin:9px 0;line-height:1.5}.npc-bubble small{font-size:11px;color:#72647e}.friends-paused *{animation-play-state:paused!important}.reduce-motion .npc-sheet{animation:none!important}@keyframes frogWork{0%,to{background-position:0 0}25%{background-position:33.333% 0}50%{background-position:66.667% 0}75%{background-position:100% 0}}@keyframes jebuWork{0%,to{background-position:0 100%}25%{background-position:33.333% 100%}50%{background-position:66.667% 100%}75%{background-position:100% 100%}}@keyframes namirWork{0%,to{background-position:0 0}25%{background-position:100% 0}50%{background-position:0 100%}75%{background-position:100% 100%}}@media(max-width:780px){.story-top{padding:10px 16px}.story-top>span{font-size:18px}.story-top button{font-size:12px;padding:8px}.story-stage{height:310px}.story-brand{top:22px;left:5%;max-width:42%}.story-brand small{font-size:14px}.story-brand h1{font-size:36px}.story-brand>span{font-size:10px;letter-spacing:1px}.story-actor{left:3%;bottom:0}.story-actor.story-friend{left:22%}.story-actor .sprite{width:90px;height:120px}.story-callout,.story-demo,.story-route{right:3%;width:49%;padding:14px}.story-demo{top:30px}.story-demo>div{gap:6px}.story-demo>div>span{font-size:16px;padding:8px 4px}.story-demo p{font-size:14px}.story-demo small{font-size:12px}.story-callout{font-size:19px}.story-route{gap:4px}.story-route>span{font-size:12px}.story-captions{padding:20px}.story-captions h2{font-size:25px}.story-captions>p{font-size:17px}.story-nav>div{gap:4px}.story-nav>div>span{width:21px;height:21px}.story-nav .primary,.story-nav .secondary{font-size:13px;padding:11px}.word-help dl{grid-template-columns:1fr}.question-nav{top:-26px}.npc-sheet{width:47px;height:62.67px}.npc-sheet.namir{width:58px;height:58px}.npc-bubble{bottom:12%;padding:10px 14px}.npc-bubble p{font-size:13px}}@media(prefers-reduced-motion:reduce){.story-screen *,.npc-sheet{animation:none!important}}.npc-sheet.jebu{background-position:0% 100%}.language-choice{border:0;padding:0;margin:0 0 20px;display:flex;gap:10px}.language-choice legend{font-size:14px;margin-bottom:9px;color:#584568}.language-choice button{border:1px solid #cdbfdd;border-radius:10px;padding:9px 18px;background:#f7f1fc;color:#4b365d;font-size:14px}.language-choice button[aria-pressed=true]{background:#75538d;color:#fff}.prediction-field{background:#eef4fc;border:1px solid #cfdbeb;border-radius:13px;padding:15px;margin-top:18px}.prediction-field input{max-width:160px}.prediction-field small{font-size:13px;font-weight:400;color:#5a6580}.task-open .firefly,.task-open .companion,.task-open .companion .sprite{animation-play-state:paused!important}.task-open .town-world{scroll-behavior:auto}.prediction-error{display:block;margin-top:10px;color:#81314e;font-size:15px;line-height:1.5}.restart-button{display:flex;align-items:center;gap:6px;background:#f4edf8;border:1px solid #d8cbe4;color:#62447b;border-radius:10px;padding:9px 12px;font-size:13px;white-space:nowrap}.restart-actions{margin-top:24px}@media(max-width:520px){.topbar{height:auto;min-height:65px;flex-wrap:wrap;gap:10px;padding:12px 15px}.top-actions{margin-left:auto}.restart-button{padding:8px;font-size:12px}}.story-scene-0{height:420px}.story-scene-0 .story-brand{top:26px;left:50%;width:90%;max-width:none;text-align:center;transform:translate(-50%)}.story-scene-0 .story-brand h1{font-size:clamp(48px,6.5vw,84px);letter-spacing:-2px;margin:10px 0}.story-scene-0 .story-brand small{max-width:none;font-size:17px}.story-scene-0 .story-vignette{background:linear-gradient(180deg,#202444d9,#26324d68 55%,#202844b3)}.story-scene-0 .story-actor{left:28%;bottom:5px;animation-duration:8s}.story-scene-0 .story-actor.story-friend{left:48%;animation-delay:-4s}.story-scene-0 .story-actor .sprite{width:140px;height:186.67px}.opening-credit-stack{position:absolute;left:10%;right:10%;top:184px;height:40px;text-align:center;color:#fff4cf;font-size:17px}.opening-credit-stack>span{position:absolute;inset:0;opacity:0;animation:openingCredit 6s ease-in-out forwards;text-shadow:0 2px 5px #1a1838}.opening-credit-stack>span:nth-child(2){animation-delay:6s}.opening-credit-stack>span:nth-child(3){animation:openingLastCredit 2s ease-in-out 12s forwards}.opening-cameos{position:absolute;inset:0;pointer-events:none}.opening-cameos>div{position:absolute;bottom:34px;text-align:center}.opening-cameos .opening-tinta{left:10%}.opening-cameos .opening-jebu{left:69%}.opening-cameos .opening-namir{right:5%;bottom:26px}.opening-cameos .npc-sheet{width:80px;height:106.67px}.opening-cameos .namir{width:116px;height:116px}.opening-cameos small{font-size:12px;background:#fff8eae8;border-radius:8px;padding:4px 8px;color:#493859;display:inline-block;position:relative;top:-7px}.opening-lights{position:absolute;left:0;right:0;bottom:15px;height:15px;pointer-events:none}.opening-lights i{position:absolute;width:8px;height:8px;border-radius:50%;background:#ffe68a;box-shadow:0 0 12px 3px #ffdd8455;animation:openingLantern 4s ease-in-out infinite alternate}.story-paused .opening-credit-stack>span{animation:none;opacity:0}.story-paused .opening-credit-stack>span:last-child{opacity:1}@keyframes openingCredit{0%{opacity:0;transform:translateY(6px)}18%,80%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-5px)}}@keyframes openingLastCredit{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes openingLantern{0%{opacity:.5}to{opacity:1}}@media(max-width:780px){.story-scene-0{height:410px}.story-scene-0 .story-brand{top:26px}.story-scene-0 .story-brand h1{font-size:clamp(42px,9vw,66px);letter-spacing:-1px}.story-scene-0 .story-brand small{font-size:14px;max-width:340px;margin:auto}.story-scene-0 .story-actor{left:22%;bottom:20px}.story-scene-0 .story-actor.story-friend{left:46%}.story-scene-0 .story-actor .sprite{width:105px;height:140px}.opening-credit-stack{top:170px;font-size:14px;left:8%;right:8%}.opening-cameos .opening-tinta{left:2%;bottom:30px}.opening-cameos .opening-jebu{left:auto;right:2%;bottom:30px}.opening-cameos .opening-namir{right:6%;bottom:115px}.opening-cameos .npc-sheet{width:58px;height:77.33px}.opening-cameos .namir{width:75px;height:75px}.opening-cameos small{font-size:10px}.opening-lights{bottom:10px}}.pocket-calculator{border:1px solid #d5c6e5;border-radius:14px;background:#faf5ff;margin:16px 0}.pocket-calculator>summary{display:flex;align-items:center;gap:9px;padding:13px 16px;cursor:pointer;color:#60477e}.calculator-body{padding:0 16px 14px}.calculator-body p{font-size:14px}.calculator-controls{display:grid;grid-template-columns:minmax(80px,1fr) 90px minmax(80px,1fr) 48px;align-items:end;gap:10px}.calculator-controls label{font-size:13px;display:grid;gap:7px}.calculator-controls input,.calculator-controls select{width:100%;min-width:0;border:1px solid #ab9dbc;border-radius:8px;padding:10px;background:#fff;color:#263354}.calculator-controls button{min-height:44px;justify-content:center}.calculator-result{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:12px}.calculator-result output{background:#fff;min-height:42px;padding:9px 12px;border-radius:8px;flex:1;overflow-wrap:anywhere}.evidence-nav{display:flex;gap:8px;margin:16px 0}.evidence-nav button{display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid #c6d4dc;background:#fff;padding:10px 12px;border-radius:11px;color:#354963;flex:1}.evidence-nav button.chosen{background:#e1f2f1;border-color:#328a90;color:#17545b}.evidence-task-title{font-size:22px;margin:24px 0 12px}.evidence-visuals{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}.rehearsal-figure{margin:0;background:#f6fafb;border:1px solid #d5e4e8;border-radius:14px;padding:15px}.rehearsal-figure figcaption,.rehearsal-table caption{text-align:left;font-size:16px;margin-bottom:12px;color:#25465a}.rehearsal-figure svg{display:block;width:100%;max-height:310px}.rehearsal-figure svg text{font-family:Alata,system-ui;font-size:15px;fill:#344b60}.rehearsal-figure .fine{margin:10px 0 0}.graph-key{display:flex;flex-wrap:wrap;gap:15px;font-size:13px}.graph-key span{display:flex;align-items:center;gap:7px}.graph-key i{width:10px;height:10px;border-radius:50%;background:#087a89;display:inline-block}.graph-key .estimate{background:#fff9e6;border:2px solid #8f589e}.rehearsal-table table{width:100%;margin:0}.rehearsal-table th,.rehearsal-table td{padding:11px 8px;font-size:14px;text-align:center}.rehearsal-table th:first-child{text-align:left}.rehearsal-table th small{display:block;font-size:12px;font-weight:400;margin-top:5px}.rehearsal-table .fine{margin:12px 0}.estimate-inputs{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:end;margin-top:20px}.estimate-inputs .field{margin:0}.slider-label input[type=range]{accent-color:#885a9b;min-height:46px;padding:0;cursor:pointer}.evidence-decision{margin-top:12px}.library-mission .actions{margin-top:18px}.local-reference{margin-top:25px}.final-evidence-brief ol{padding-left:23px}.final-evidence-brief li{padding:5px 0;line-height:1.5}.annual-probe{border-top:1px solid #dde5eb;padding-top:12px}.annual-probe label{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.annual-probe select{border:1px solid #99aebc;padding:7px 12px;border-radius:8px;color:#263354;background:#fff}.annual-probe output{display:block;margin:12px 0;font-size:14px}.teacher-rubric th,.teacher-rubric td{vertical-align:top}.teacher-rubric td{font-size:14px}@media(min-width:760px){.evidence-visuals.two-sources{grid-template-columns:1.05fr 1fr}.two-sources .rehearsal-figure{padding:10px}.two-sources .rehearsal-table th,.two-sources .rehearsal-table td{padding:10px 5px}}@media(max-width:480px){.calculator-controls{grid-template-columns:1fr 65px 1fr}.calculator-controls button{grid-column:1/-1}.estimate-inputs{grid-template-columns:1fr;gap:10px}.evidence-nav button{font-size:13px;padding:10px 5px}.rehearsal-figure{padding:8px}.rehearsal-table th,.rehearsal-table td{font-size:13px}.rehearsal-figure svg text{font-size:16px}}.festival-repair{margin:20px 0;padding:20px;border:1px solid #dfc38c;border-radius:15px;background:#fff9e9}.festival-repair ol{padding-left:22px;line-height:1.5}.repair-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0}.repair-offers label{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #c9d7de;border-radius:10px;padding:12px}.repair-offers input{width:19px;height:19px;accent-color:#276e82}.repair-offers small{display:block;font-size:12px;margin-top:6px}.repair-total{background:#fff;padding:12px;border-radius:9px}.question legend{white-space:pre-line;line-height:1.5}@media(max-width:480px){.repair-offers{grid-template-columns:1fr}}.rehearsal-figure svg text{font-size:22px}.forecast-card,.ballot-card{background:#fbf9f3;border:1px solid #d9d7ce;border-radius:16px;padding:clamp(14px,2.5vw,24px);margin:20px 0}.forecast-card h3,.ballot-card h3{font-size:1.35rem;line-height:1.25;margin:6px 0 12px}.forecast-evidence{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(130px,1fr);gap:12px;align-items:start}.forecast-evidence figure{margin:0;background:#fff;padding:10px;border-radius:10px}.forecast-evidence figcaption,.forecast-evidence caption{font-weight:700;text-align:left;margin:2px 0 8px}.forecast-evidence svg{width:100%;display:block}.forecast-evidence svg text{font:15px Alata,sans-serif;fill:#263746}.cloud-marker{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:.87rem}.cloud-marker button{padding:4px 7px;border:1px solid #97a9ad;border-radius:6px;background:#fff}.cloud-marker button[aria-pressed=true]{background:#185765;color:#fff}.forecast-input{display:flex;align-items:center;gap:12px}.forecast-input input{width:6em;background:#e9f4fe;border:1px solid #799aa7;border-radius:8px;padding:8px}.ballot-heading{display:flex;align-items:center;gap:16px}.ballot-card fieldset{border:0;padding:0;min-width:0}.ballot-card legend{font-weight:700}.ballot-card table{width:100%}.bid-option{display:flex;gap:7px;align-items:center;cursor:pointer}.bid-option input{width:auto;flex:none}.pinned-fact{border-left:4px solid #348988;background:#e9f4ed;margin:8px 0 14px;padding:10px 14px}.meter-row{margin:12px 0}.meter-row strong,.meter-row small{display:block}.meter-track{display:flex;gap:2px;max-width:460px;margin:5px 0;background:#fff;overflow:hidden;border-radius:6px}.meter-track span{text-align:center;padding:6px 2px;font-size:.9rem;white-space:nowrap;color:#192c38}.meter-sun{background:#f7d17d}.meter-water{background:#8cd4d2}.meter-gas{background:#ebb698}@media(prefers-reduced-motion:no-preference){.game:not(.reduce-motion) .meter-track{animation:meter-reveal .8s ease-out both}.game:not(.reduce-motion) .meter-row:nth-of-type(2) .meter-track{animation-delay:.35s}@keyframes meter-reveal{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}}@media(max-width:620px){.forecast-evidence{grid-template-columns:1fr}.ballot-card th,.ballot-card td{font-size:.85rem;padding:5px}.ballot-heading{align-items:start}}.council-portrait{margin:14px 0 18px;border:1px solid #cdbaa8;border-radius:14px;background:#f3e6cf;overflow:hidden}.council-portrait img{display:block;width:100%;height:auto}.council-portrait figcaption{font-size:.86rem;line-height:1.4;padding:7px 12px;color:#473b3a;background:#fbf1db}.library-mission .rehearsal-figure svg text{font-size:18px}.library-mission .rehearsal-figure svg{max-height:335px}.library-retry{color:#633e15;border-left:3px solid #b77d34;padding:6px 12px;margin:0 0 12px}.rehearsal-update{padding:12px 16px;background:#eef3f8;border-radius:12px;margin-bottom:16px}.rehearsal-update p{margin:0 0 8px}.lesson-in-town{margin:clamp(12px,4vw,42px) auto;background:#fffdf8;border:1px solid #d7cce1;border-radius:22px;box-shadow:0 8px 25px #392b5910;max-width:880px}.story-lesson .story-step{font-weight:700}.story-lesson h2{line-height:1.2}.lesson-two{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;align-items:start}.lesson-steps{padding:0;list-style:none;counter-reset:lessons}.lesson-steps li{counter-increment:lessons;position:relative;padding:6px 0 12px 39px;font-size:17px;line-height:1.55}.lesson-steps li:before{content:counter(lessons);position:absolute;left:0;top:6px;border-radius:50%;background:#e5eff0;color:#23515e;font-weight:700;width:27px;line-height:27px;text-align:center}.term-link{text-decoration:underline dotted;text-underline-offset:4px;font:inherit;color:#564075;background:transparent;border:0;padding:0}.term-dialog{position:fixed;inset:0;margin:auto;padding:20px;max-width:min(95vw,630px);max-height:85dvh;overflow:auto;border:2px solid #b6a4d0;border-radius:18px;background:#fffaf2;color:#253449}.term-dialog::backdrop{background:#19263cb8}.term-dialog form{margin-top:15px}.word-buttons{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.word-buttons button{background:#fff;border:1px solid #8c819a;padding:9px 15px;min-height:42px;font:inherit;border-radius:12px;color:#3b3458}.word-buttons button[aria-pressed=true]{background:#51426b;color:#fff;border-color:#51426b}.teacher-definition{background:#f1edf9;border:1px solid #d7cbe3;border-radius:16px;display:grid;grid-template-columns:112px minmax(0,1fr);grid-template-areas:"teacher heading" "teacher meaning" "example example";align-items:start;column-gap:14px;padding:16px}.mcdonald-portrait{grid-area:teacher;display:block;width:100%;height:auto}.definition-heading{grid-area:heading;align-self:end}.definition-meaning{grid-area:meaning}.definition-example{grid-area:example}.teacher-definition h3,.try-offer h3,.impact-text h3,.council-evidence h3{margin:.25rem 0 .5rem}.teacher-name{font-weight:700;color:#634579}.teacher-definition p,.impact-text p,.radio-line p{line-height:1.5;margin:.45rem 0}.definition-example{border-top:1px solid #d4cadf;padding-top:8px}.word-match{display:grid;gap:10px}.word-match>.secondary{justify-self:start}.match-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,185px);align-items:center;gap:6px 18px;padding:13px;background:#f2f5f3;border:1px solid #d3dedb;border-radius:12px}.match-row small{grid-column:1/-1;color:#354e5d}.match-row select,.office-step input{background:#fff;color:#243448;border:1px solid #9eacb9;padding:8px;border-radius:8px;font:inherit}.match-row select:disabled{opacity:1;background:#e4f0e8}.try-offer,.council-evidence,.office-step{padding:18px;border:1px solid #cddadd;border-radius:16px;margin:12px 0;background:#fffdf8}.try-offer{background:#fff6dd;border-color:#ddc488}.try-offer h3,.impact-text p:has(svg){display:flex;align-items:center;gap:8px;flex-wrap:wrap}.try-offer>p{margin:8px 0}.offer-output{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.offer-output span{display:grid;gap:3px;background:#fffaf0;border-radius:10px;padding:7px}.offer-output svg{width:18px}.night-example table{width:100%;border-collapse:collapse;text-align:left}.night-example caption,.council-evidence figcaption{font-weight:700;text-align:left;padding:8px 0}.night-example th,.night-example td{border-bottom:1px solid #c3d4d3;padding:8px}.night-example thead,.night-example tbody tr:last-child{background:#e2ece9}.radio-line{display:flex;align-items:center;gap:12px;margin:10px 0 14px;background:#eef1e7;border-radius:12px;padding:6px 13px}.radio-line>.npc-sheet{flex:0 0 auto;width:49px;height:65px}.radio-line>.namir{width:68px;height:68px}.radio-line p{margin:0}.office-brief .office-targets{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.office-targets span,.mix-receipt,.priority-brief{background:#edf4f0;border:1px solid #c4d7cd;padding:9px 13px;border-radius:10px}.office-targets b{margin-left:4px}.office-step>h3{font-size:21px;margin:0 0 6px}.office-step>p{line-height:1.5}.office-step .labeled-output{display:grid;gap:5px}.labeled-output span{display:flex;align-items:center;gap:5px}.labeled-output span b{margin-left:auto}.source-dialog .source-detail{margin:0}.mix-receipt{margin:12px 0 0}.priority-brief p{margin:4px 0}.plan-graph-scale{display:flex;justify-content:space-between;margin:4px 54px 2px 64px;font-size:12px}.plan-graph-row{display:grid;grid-template-columns:58px minmax(10px,1fr) 48px;align-items:center;gap:6px;margin:7px 0}.plan-graph-row>b{font-size:14px}.plan-track{height:22px;position:relative;border-left:1px solid #657488;background:repeating-linear-gradient(90deg,#e2e7e7 0 1px,transparent 1px 25%)}.plan-track span{display:block;height:100%;background:#167780;border-radius:0 5px 5px 0}.plan-graph-row:last-child .plan-track span{background:#8a5b8b}.plan-track i{position:absolute;top:-3px;bottom:-3px;border-left:2px dashed #263346;filter:drop-shadow(0 0 1px white)}.council-evidence p{margin:12px 0 6px}.forecast-sky{position:relative;background:linear-gradient(100deg,#ffdd84,#a8d5e8);height:17px;border-radius:10px;overflow:hidden}.forecast-sky i{display:block;height:100%;background:repeating-radial-gradient(ellipse at 50% 120%,#7c899e 0 10px,#afb8c6 11px 21px);transition:width .35s}.impact-card{margin:12px 0 18px;border:1px solid #b6a9b5;border-radius:16px;overflow:hidden;background:#f9f4ed}.impact-scene{position:relative;height:clamp(96px,17vw,145px);background:#342c4a;overflow:hidden}.impact-town,.impact-sky,.impact-wire{position:absolute;inset:0}.impact-town{background:url(/art/town.png) center 54%/cover}.impact-sky{background:#1b20427a}.power-short .impact-sky{animation:town-dims 1.2s ease-out both}.power-back .impact-sky{animation:town-brightens .85s ease-out both}.impact-wire{display:flex;align-items:flex-start;justify-content:space-around;inset:10px 0 auto;border-top:2px solid #26203d}.impact-wire i{border-radius:50%;width:12px;height:16px;background:#ffe6a4;box-shadow:0 0 15px 5px #ffcf69}.power-short .impact-wire i{animation:lamps-out .65s ease both}.impact-jebu{position:absolute;bottom:-9px;left:12%}.impact-sign{position:absolute;bottom:9px;right:12px;background:#271f3e;color:#ffebba;padding:6px 12px;border-radius:8px;font-weight:700}.impact-text{padding:10px 16px}.impact-text svg{flex-shrink:0}.impact-still *,.reduce-motion .impact-card *{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important}@keyframes town-dims{0%{background:#24274233}to{background:#171930df}}@keyframes town-brightens{0%{background:#171930df}to{background:#49325230}}@keyframes lamps-out{to{background:#7b7989;box-shadow:none}}@media(max-width:650px){.lesson-in-town{margin:10px;border-radius:16px}.lesson-two,.match-row{grid-template-columns:1fr}.teacher-definition{grid-template-columns:76px minmax(0,1fr);grid-template-areas:"teacher heading" "meaning meaning" "example example";column-gap:8px;padding:10px}.definition-heading{align-self:center}.story-lesson .story-nav>div{display:none}.office-step{padding:12px}.word-buttons button{padding:8px 10px}}@media(prefers-reduced-motion:reduce){.impact-card *{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important}.forecast-sky i{transition:none}}.story-screen:has(.lesson-in-town){min-height:100dvh;padding-bottom:20px;background:linear-gradient(#f8f5eee6,#f0ece2ec),url(/art/town.png) center 42%/cover fixed}.source-detail .pros-cons{margin-top:12px}.source-detail .pros-cons p,.source-detail .pros-cons strong{font-size:15px;line-height:1.55}.source-risk .teacher-definition{grid-template-columns:68px minmax(0,1fr);grid-template-areas:"teacher heading" "meaning meaning" "example example";column-gap:8px;margin-top:8px}.source-risk .definition-heading{align-self:center}.office-step .inspect strong{text-decoration:underline dotted;text-underline-offset:3px}.festival-finale{min-height:100dvh;background:#100d25;color:#fff8eb;font-family:inherit}.finale-header{position:relative;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 4vw;background:#17132df5;border-bottom:1px solid #554467}.finale-header>div{display:flex;gap:12px;align-items:center;color:#ffdf9d}.finale-header>div>span{font-size:20px}.finale-header small{display:block;font-size:12px;line-height:1.5;color:#cfc0e6;margin-top:3px}.finale-header nav{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.festival-finale button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #73638b;border-radius:12px;background:#2e2448;color:#fff5e7;padding:10px 13px;font:inherit;font-size:14px;cursor:pointer}.festival-finale button:hover{background:#49355e}.festival-finale button:focus-visible{outline:3px solid #ffdc80;outline-offset:3px}.festival-finale button[aria-pressed=true]{background:#c4efdf;color:#173a36;border-color:#c4efdf}.festival-finale button:disabled{opacity:.35;cursor:default}.festival-finale button.finale-exit{background:#f6d58c;color:#2f243e;border-color:#f6d58c}.finale-arena{position:relative;isolation:isolate;overflow:hidden;height:clamp(460px,59vh,700px);max-width:1700px;margin:auto;background:#170f38}.finale-scenery{position:absolute;inset:0;background:url(/art/town.png) center 52%/cover;filter:brightness(.3) saturate(.9);z-index:-5}.finale-wash{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 48%,#6a187934,transparent 45%),linear-gradient(180deg,#100b2dcc,#170e3b20 40%,#100b2d9c);z-index:-4}.finale-starfield{position:absolute;inset:0;background-image:radial-gradient(#e8bcff99 1px,transparent 1.7px),radial-gradient(#8de6ec88 1px,transparent 2px);background-size:71px 67px,113px 99px;background-position:20px 15px,48px 65px;z-index:-3}.finale-arch{position:absolute;left:50%;top:16%;width:52%;height:63%;transform:translate(-50%);border:3px solid #f29afa;border-bottom:0;border-radius:50% 50% 0 0;box-shadow:0 0 22px #f26fe977,inset 0 0 18px #f26fe933;z-index:-1}.finale-arch i{position:absolute;inset:13px;border:2px solid #7aede5;border-bottom:0;border-radius:inherit;box-shadow:0 0 13px #7aede555}.finale-arch i+i{inset:27px;border-color:#fbd991;box-shadow:0 0 12px #fbd99144}.finale-lasers{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none}.finale-lasers i{position:absolute;left:calc(12% + var(--beam)*8.4%);bottom:12%;width:clamp(75px,11vw,190px);height:130%;transform-origin:50% 100%;background:linear-gradient(0deg,var(--beam-color),transparent 92%);clip-path:polygon(47% 100%,53% 100%,100% 0,0 0);opacity:.26;mix-blend-mode:screen;animation:finaleSweep calc(7s + var(--beam)*.5s) ease-in-out infinite alternate;animation-delay:calc(var(--beam)*-.8s)}.finale-floor{position:absolute;left:0;right:0;height:44%;bottom:-8%;background:repeating-linear-gradient(0deg,transparent 0 54px,#72e0ee54 55px 57px),repeating-linear-gradient(90deg,transparent 0 69px,#ce8cf652 70px 72px),radial-gradient(ellipse,#512a7266,#20143333);transform:perspective(330px) rotateX(39deg);transform-origin:bottom;box-shadow:0 -5px 45px #db76fa44;z-index:0}.finale-speaker{position:absolute;top:45%;width:clamp(50px,7.5vw,112px);height:35%;background:linear-gradient(100deg,#33264e,#131329);border:3px solid #af7be3;border-radius:12px;box-shadow:0 0 18px #c17ced55;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:space-evenly;transform:rotate(-4deg)}.speaker-left{left:5%}.speaker-right{right:5%;transform:rotate(4deg);border-color:#68d8d5}.finale-speaker i{width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#d1a1f0 0 13%,#2d2246 15% 31%,#9f81be 33% 36%,#151525 38% 66%,#5d4476 68% 72%,#171325 74%);animation:finaleWoofer 1.2s ease-in-out infinite alternate}.finale-speaker span{width:60%;height:5px;background:#80e4d5;border-radius:8px}.festival-cutout{display:block;width:100%;height:100%;background-image:url(/art/festival-cast.png);background-repeat:no-repeat;background-size:300% 200%;filter:drop-shadow(0 7px 5px #06081b66)}.cast-cell-5{background-position:100% 100%}.finale-disco{position:absolute;top:-1%;left:50%;width:clamp(92px,12vw,170px);aspect-ratio:1;transform:translate(-50%);z-index:4;animation:finaleDisco 5s ease-in-out infinite alternate}.finale-disco:before{content:"";position:absolute;left:50%;bottom:93%;width:2px;height:100px;background:#e7c1fc}.finale-dj{position:absolute;left:50%;top:23%;width:clamp(175px,22vw,320px);transform:translate(-50%);z-index:5;text-align:center}.dj-cutout{display:block;aspect-ratio:1;background:url(/art/dj-mcdonald.png) no-repeat;background-size:200% 200%;animation:finaleDJ 2.4s steps(1) infinite;filter:drop-shadow(0 3px 18px #e985e94d)}.dj-name{background:#24163ce8;border:1px solid #e6acff;border-radius:5px;color:#ffe1a7;letter-spacing:2px;text-transform:uppercase;font-size:clamp(11px,1.3vw,19px);padding:5px;margin:-8px 8px 0;position:relative}.dj-equalizer{height:28px;margin:0 8px;display:flex;gap:4px;align-items:flex-end;justify-content:center;padding:4px;background:#1e1539;border:1px solid #75519d;border-top:0;border-radius:0 0 8px 8px}.dj-equalizer i{width:5%;height:90%;background:linear-gradient(#f2b1ff,#7aead7);transform-origin:bottom;animation:finaleEQ calc(.9s + var(--bar)*.07s) ease-in-out infinite alternate;animation-delay:calc(var(--bar)*-.2s)}.finale-confetti{position:absolute;inset:0;overflow:hidden;z-index:10;pointer-events:none}.finale-confetti i{position:absolute;top:-20px;width:7px;height:13px;border-radius:2px;background:var(--confetti-color);opacity:.8;animation:finaleConfetti 7s linear infinite}.finale-comic{position:absolute;left:4%;top:8%;max-width:27%;z-index:11;padding:10px 17px;background:#f8d683;color:#301f46;border:3px solid #fff1ba;box-shadow:5px 5px #8a478f;border-radius:3px 15px 4px;transform:rotate(-5deg);font-size:clamp(11px,1.3vw,19px);font-weight:700;text-align:center;line-height:1.3;animation:finaleComic 6s ease-in-out infinite}.finale-orbit{position:absolute;right:4%;top:10%;display:flex;gap:12px;z-index:2;font-size:36px;color:#b5fae0;animation:finaleFloat 5s ease-in-out infinite}.finale-orbit span:nth-child(2){color:#f0a6ff}.finale-credit-panel{position:relative;z-index:15;display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,320px);align-items:center;gap:25px;padding:22px max(5vw,24px) 27px;border-top:1px solid #765087;background:linear-gradient(110deg,#211335,#17132c)}.finale-credit-kicker{text-transform:uppercase;letter-spacing:3px;font-size:11px;color:#c5eddc}.finale-credit-copy h1{font-size:clamp(30px,4vw,47px);margin:4px 0 6px;line-height:1.1;color:#ffe3a5;outline:none}.finale-credit-copy h2{font-size:19px;color:#e9c4f2;line-height:1.35;margin:0 0 7px}.finale-credit-copy p{font-size:16px;line-height:1.45;margin:0;color:#eee7f7;max-width:750px}.finale-credit-actions>span{font-size:12px;color:#d2c4df;display:block;text-align:right;line-height:1.5}.finale-credit-nav{display:flex;gap:16px;justify-content:flex-end;align-items:center;margin:12px 0;font-size:14px}.finale-credit-nav button{padding:7px}.finale-progress{height:4px;background:#4a365f;border-radius:8px;overflow:hidden}.finale-progress i{display:block;height:100%;background:#94e9d5}.finale-end-actions{display:flex;gap:9px;justify-content:flex-end}.finale-scene-2 .line-maka,.finale-scene-3 .line-rosa,.finale-scene-4 .line-namir,.finale-scene-5 .line-tinta,.finale-scene-5 .line-jebu{filter:drop-shadow(0 0 15px #f8c5eb99)}.finale-scene-6 .finale-disco{animation-name:finaleBroccoliEntrance}.finale-paused *{animation-play-state:paused!important}.finale-calm *{animation:none!important;transition:none!important}.finale-calm .finale-confetti,.finale-calm .finale-orbit{display:none}.finale-calm .finale-lasers{opacity:.3}.finale-calm .finale-disco{transform:translate(-50%)}.finale-calm .finale-comic{transform:none}@keyframes finaleSweep{0%{transform:rotate(-33deg)}to{transform:rotate(33deg)}}@keyframes finaleWoofer{0%{transform:scale(.94)}to{transform:scale(1.03)}}@keyframes finaleDisco{0%{transform:translate(-50%) rotate(-8deg)}to{transform:translate(-50%) rotate(8deg) translateY(7px)}}@keyframes finaleBroccoliEntrance{0%,to{transform:translate(-50%) rotate(-10deg) scale(1)}50%{transform:translate(-50%) rotate(12deg) scale(1.3)}}@keyframes finaleDJ{0%,to{background-position:0 0}25%{background-position:100% 0}50%{background-position:0 100%}75%{background-position:100% 100%}}@keyframes finaleEQ{0%{transform:scaleY(.2)}to{transform:scaleY(1)}}@keyframes finaleConfetti{0%{transform:translateY(-40px) rotate(0)}to{transform:translateY(760px) translate(35px) rotate(400deg)}}@keyframes finaleComic{0%,to{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(-2deg) translateY(-5px)}}@keyframes finaleFloat{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(14px) rotate(5deg)}}@media(max-width:780px){.finale-header{padding:12px 16px;flex-wrap:wrap;gap:12px}.finale-header nav{justify-content:flex-start;gap:6px}.festival-finale button{font-size:12px;padding:8px 10px}.finale-arena{height:490px}.finale-dj{top:24%;width:205px}.finale-disco{width:105px;top:3%}.finale-arch{top:19%;width:77%;height:60%}.finale-speaker{width:50px;top:47%;height:25%}.speaker-left{left:1%}.speaker-right{right:1%}.finale-comic{max-width:29%;padding:8px;top:6%;font-size:11px}.finale-orbit{font-size:23px;right:3%;gap:4px}.finale-credit-panel{grid-template-columns:1fr;padding:20px;gap:16px}.finale-credit-copy h1{font-size:31px}.finale-credit-copy h2{font-size:17px}.finale-credit-copy p{font-size:15px}.finale-credit-actions{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}.finale-credit-actions>span{text-align:left}.finale-credit-nav{margin:0;gap:12px}.finale-progress,.finale-end-actions{grid-column:1/-1}.finale-credit-nav button{padding:5px}}@media(prefers-reduced-motion:reduce){.festival-finale *{animation:none!important;transition:none!important}}.festival-launch{display:flex;gap:24px;align-items:center;justify-content:space-between;padding:22px;margin:0 0 24px;background:linear-gradient(125deg,#ece6fa,#fff1cf);border:1px solid #c9b3e0;border-radius:18px}.festival-launch h3{font-size:21px;margin:7px 0 10px;line-height:1.35}.festival-launch p{margin:0!important;font-size:14px!important}.festival-launch button{flex-shrink:0}.teacher-finale-preview{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin:0 0 22px;padding:15px;border:1px solid #d9c9e6;background:#f5f0fb;border-radius:12px}.teacher-finale-preview small{font-size:12px;color:#64516e}@media(max-width:680px){.festival-launch{align-items:stretch;flex-direction:column;gap:16px;padding:18px}.festival-launch button{align-self:flex-start}}.showcase-screen{min-height:100dvh;display:grid;place-items:center;background:radial-gradient(ellipse at 30% 20%,#5a3476,#17132d 70%);padding:30px;color:#30334f}.showcase-card{position:relative;max-width:460px;width:100%;background:#fffaf1;border:1px solid #d6bfe8;border-radius:24px;padding:40px;box-shadow:0 20px 90px #09081766}.showcase-card>svg{color:#8a579e;display:block;margin-bottom:20px}.showcase-card h1{font-size:31px;line-height:1.2;margin:8px 0 16px}.showcase-card p{font-size:16px;line-height:1.5}.showcase-card form{margin-top:24px}.showcase-card input{display:block;width:100%;padding:13px 15px;border:1px solid #bda9cd;border-radius:10px;background:#eef4fc;font-size:20px;letter-spacing:2px;margin:8px 0 18px;color:#293353}.showcase-card input:focus{outline:3px solid #d9c3ed;outline-offset:2px}.showcase-card p[role=alert]{color:#a42d4b;font-size:14px;margin:-7px 0 15px}.showcase-close{position:absolute;right:17px;top:17px;border:0;border-radius:50%;background:#ede3f2;padding:7px;color:#654376}.showcase-card>.text-btn{margin-top:16px}.finale-dj .dj-name{position:absolute;left:100%;top:10%;width:max-content;margin:0 0 0 8px;transform:rotate(7deg);font-size:13px;padding:7px 12px;border-radius:8px}@media(max-width:780px){.finale-dj .dj-name{display:none}}.festival-dance-line{position:absolute;z-index:8;bottom:45px;left:50%;transform:translate(-50%);width:min(96%,1260px);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;pointer-events:none}.line-dancer{min-width:0;text-align:center;filter:drop-shadow(0 3px 3px #0a082699)}.line-dancer svg{display:block;width:100%;max-height:208px;margin:0 auto -3px;overflow:visible}.line-dancer-name{display:inline-block;border-radius:20px;border:1px solid #efd5ae78;color:#fff1cd;background:#251431eb;font-size:clamp(10px,1.05vw,15px);padding:2px .7em;line-height:1.35}.dance-call-strip{position:absolute;z-index:12;inset:auto 0 0;display:flex;justify-content:center;align-items:baseline;gap:14px;min-height:33px;padding:6px 12px;border-top:1px solid #ac85b2;background:#1c1536f5;color:#e5fff7;font-size:clamp(12px,1.2vw,17px);line-height:1.35}.dance-call-strip span:first-child{border-right:1px solid #ae95ba;padding-right:14px;color:#ffe3a5}.finale-credit-copy .dance-credit{font-size:12px;color:#c7dadc;margin-top:10px}.finale-dj{top:13%;width:clamp(165px,min(19vw,29vh),240px)}.finale-disco{left:73%;width:clamp(73px,8vw,119px)}.finale-confetti{z-index:7}@media(max-width:780px){.finale-arena{height:clamp(348px,56vw,455px)}.finale-dj{top:11%;width:clamp(122px,28vw,170px)}.finale-disco{left:76%;top:1%;width:clamp(56px,13vw,90px)}.finale-speaker{top:39%;height:28%}.finale-orbit{display:none}.festival-dance-line{width:100%;bottom:40px}.line-dancer svg{margin-bottom:0}.line-dancer-name{font-size:10px}.dance-call-strip{gap:8px}.dance-call-strip span:first-child{padding-right:8px}}.stage-trusses{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.stage-trusses:after{content:"";position:absolute;bottom:4%;left:var(--sweep-x);width:30%;height:10%;transform:translate(-50%);border-radius:50%;background:radial-gradient(ellipse,#ffd9a144,transparent 70%);filter:blur(5px)}.stage-trusses i{position:absolute;left:9%;top:-4%;width:22%;height:95%;transform:rotate(-19deg);transform-origin:top center;background:linear-gradient(180deg,#ffc96c44,#ffc96c08 85%);clip-path:polygon(48% 0,50% 0,100% 100%,0 100%);animation:stageFollow 10s ease-in-out infinite alternate}.stage-trusses i:nth-child(2){left:45%;background:linear-gradient(#77dfd644,#77dfd606);animation-delay:-4.2s}.stage-trusses i:nth-child(3){left:80%;background:linear-gradient(#df87f144,#df87f10a);animation-direction:alternate-reverse}@keyframes stageFollow{to{transform:rotate(23deg)}}.finale-speaker i{animation:none;transform:scale(calc(.95 + .055 * var(--downbeat)))}.finale-arch{filter:drop-shadow(0 0 calc(4px + 7px * var(--fan-hit)) #be79db)}.fan-salute{position:absolute;pointer-events:none;z-index:5;inset:0;opacity:var(--fan-hit)}.fan-salute i{position:absolute;bottom:35%;left:calc(9% + var(--petal)*9%);width:3px;height:clamp(20px,5vw,55px);border-radius:100%;background:linear-gradient(transparent,#fff2ae,transparent);transform:rotate(calc(-30deg + var(--petal)*7deg)) translateY(calc(-12px * var(--fan-hit)))}.finale-calm .fan-salute,.finale-calm .stage-trusses{display:none}@media(prefers-reduced-motion:reduce){.fan-salute,.stage-trusses{display:none}}.finale-credit-panel{grid-template-columns:minmax(250px,360px) minmax(220px,1fr) minmax(170px,260px);align-items:start}.finale-soundtrack{min-width:0}.finale-soundtrack .track-title{margin:0 0 .55rem;font-weight:700;color:#fff4e2}.official-player{width:100%;height:auto;aspect-ratio:16/9;min-height:200px;background:#171429;border-radius:6px}.official-player iframe{width:100%;height:100%;min-height:200px;border:0;display:block}.finale-soundtrack p[role=status]{font-size:.92rem;line-height:1.4;margin:.5rem 0}.finale-soundtrack a{display:inline-block;color:#b9ebe6;text-decoration:underline;text-underline-offset:.15em;margin:.55rem 0}.finale-soundtrack button{margin:0 .55rem 0 0}@media(max-width:860px){.finale-credit-panel{grid-template-columns:minmax(200px,1fr) minmax(190px,1fr)}.finale-soundtrack{grid-row:span 2}}@media(max-width:560px){.finale-credit-panel{grid-template-columns:1fr}.finale-soundtrack{grid-row:auto}}
