.brand-logo{position:relative;container-type:inline-size}.brand-logo img{display:block;width:100%;height:auto}.startup-logo{display:block;width:min(86vw,420px);margin:0 auto}.brand-logo .beta-tag{position:absolute;right:3%;bottom:13%;color:#fddc01;font:400 max(12px,6.4cqi)/1 Impact,"Arial Narrow",sans-serif;letter-spacing:.06em;-webkit-text-stroke:.2em #00246e;paint-order:stroke fill;text-shadow:none;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none}html,body{background:#f4f2db}.startup{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f4f2db;color:#164c3c;text-align:center;font-family:Arial,sans-serif;transition:opacity .45s ease;overflow:hidden}.startup[hidden]{display:none}.startup-beats{display:flex;gap:9px;margin-top:6px;height:7px}.startup-beats i{width:26px;height:5px;background:#147a4c;animation:startup-beat 1.2s ease-in-out infinite}.startup-beats i:nth-child(2){animation-delay:.3s}.startup-beats i:nth-child(3){animation-delay:.6s}.startup-beats i:nth-child(4){animation-delay:.75s}.startup a{color:#164c3c;font-weight:900;text-decoration:underline;text-underline-offset:5px;margin-top:22px;padding:12px}.startup a:focus-visible{outline:3px solid #16648b;outline-offset:4px}.startup.is-leaving{opacity:0;pointer-events:none}.startup.is-failed .startup-beats{display:none}#app[data-startup=loading] .menu{visibility:hidden}#app[data-startup=ready][data-phase=menu] .menu-logo{animation:menu-arrive .7s .12s both cubic-bezier(.2,.7,.2,1)}#app[data-startup=ready][data-phase=menu] .menu-actions{animation:menu-arrive .6s .32s both cubic-bezier(.2,.7,.2,1)}#app[data-startup=ready][data-phase=menu] .menu-more{animation:menu-arrive .6s .46s both cubic-bezier(.2,.7,.2,1)}@keyframes startup-beat{0%,75%,to{opacity:.28;transform:scaleY(1)}25%{opacity:1;transform:scaleY(1.8)}}@keyframes menu-arrive{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.startup,.startup *{animation:none!important;transition:none!important}#app[data-startup=ready] .menu>*{animation:none!important}}.startup.reduced-motion,.startup.reduced-motion *{animation:none!important;transition:none!important}#app.reduced-motion[data-startup=ready] .menu>*{animation:none!important}:root{font-family:Arial,Helvetica,sans-serif;color:#ecf0dc;background:#173b42;font-synthesis:none;--gold:#ffdc76;--navy:#142f3f;--muted:#a3b9b5;--line:#4b696a;--paper:#eef0d8;--c0:#ffbcb0;--c1:#b4dfb2;--c2:#ffdc76;--c3:#9ed4f4}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 70% 0,#376263 0,transparent 65%),#173b42}button,a,input,select{-webkit-tap-highlight-color:transparent}button,select,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8cebea;outline-offset:4px}button{border:0;border-radius:7px}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}a{color:inherit}.topbar{max-width:1248px;margin:0 auto;padding:25px 24px 23px;display:flex;justify-content:space-between;gap:16px;align-items:center}.wordmark{display:flex;align-items:center;gap:13px;text-decoration:none;font-family:Impact,Arial Narrow,sans-serif;letter-spacing:1.1px;font-size:20px;line-height:1.04}.wordmark>b{font-weight:400}.wordmark>span:last-child{max-width:130px}.wordmark b{color:var(--gold);display:block;font-weight:400}.crest{border:2px solid #b8c69b;transform:skew(-7deg);padding:9px 6px;font-size:14px;letter-spacing:-1px;color:var(--gold)}.crest span{font-size:23px}.top-actions{display:flex;gap:18px;align-items:center}kbd{font:10px/1.4 Courier New,monospace;border:1px solid currentColor;padding:2px 5px;border-radius:4px;opacity:.65}.quiet{color:var(--paper);background:#ffffff09;padding:10px 13px;border:1px solid #728b7b55;font-size:12px}.quiet:hover{background:#ffffff15}.quiet kbd,.quiet span{margin-left:6px}main{max-width:1248px;margin:auto;padding:0 24px}.game-shell{border:1px solid #8aa69966;border-radius:14px;overflow:hidden;box-shadow:0 20px 60px #071e2955;background:#14313d}.scene-wrap{position:relative;isolation:isolate;aspect-ratio:1200/440;min-height:370px;overflow:hidden;background:#bedecf}canvas{width:100%;height:100%;object-fit:cover;display:block;image-rendering:pixelated}.menu{position:absolute;inset:38px auto auto 42px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--gold)}.menu h1{font-family:Impact,Arial Narrow,sans-serif;font-size:clamp(38px,4.5vw,62px);font-weight:400;line-height:.98;letter-spacing:.3px;margin:17px 0 16px;text-shadow:0 3px 0 #102d39}.menu h1 em{font-style:normal;color:var(--gold)}.menu p{font-size:13px;color:#e2e9d8;line-height:1.7;margin:0 0 18px}.menu-actions{display:flex;gap:9px}.primary{background:var(--gold);color:#273d38;font-weight:700;padding:13px 20px;border:1px solid #ffe9a8;box-shadow:0 3px #b89545;font-size:13px}.primary:hover{background:#ffe7a0}.primary span{margin-left:14px}.secondary{background:#294f56;color:#f3f1d4;border:1px solid #698782;padding:12px 16px;font-size:12px}.secondary:hover{background:#3b6569}.menu-meta{display:block;font:10px/1.5 Courier New,monospace;color:#b9cdbb;letter-spacing:1px;margin-top:19px}.scene-label{position:absolute;right:20px;bottom:15px;color:#f8f4da;background:#15333eb3;font:9px Courier New,monospace;letter-spacing:1px;padding:7px 9px;border-radius:3px}.menu-bottom{display:grid;grid-template-columns:1.25fr 1fr;gap:40px;padding:28px 38px;background:linear-gradient(120deg,#203e48,#15343e)}.tiny-label{font-size:9px;letter-spacing:1.8px;color:var(--gold);font-weight:700}.menu-bottom p{font-size:12px;line-height:1.65;color:#cbd8c8;margin:10px 0 13px}.menu-bottom b{color:#f3f3df}.mini-pads{display:flex;align-items:center;gap:14px}.mini-pads>span{font-size:20px;display:flex;align-items:center;gap:6px}.mini-pads small{font-size:10px;color:var(--muted)}.vignettes{border-left:1px solid #68807855;padding-left:35px}.vignettes .tiny-label{display:block;margin-bottom:9px}.vignettes button{display:flex;width:100%;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #5c777755;border-radius:0;padding:11px 0;font-size:12px;color:#e4ebd9;background:none;text-align:left}.vignettes button:hover{color:var(--gold)}.vignettes button span{font:10px Courier New,monospace;color:var(--muted)}.page-footer{display:flex;justify-content:space-between;gap:15px;padding:18px 2px 28px;font-size:10px;color:#b0c2b6}.text-button{background:none;color:#d7dfc6;text-decoration:underline;text-underline-offset:3px;font-size:10px;padding:0}.hud{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;padding:24px 30px;background:linear-gradient(#132f42eb,#14334798,transparent);gap:20px;min-height:130px}.hud h1{font:400 25px Impact,Arial Narrow,sans-serif;margin:9px 0 12px;letter-spacing:.4px;text-shadow:0 2px 0 #233}.hud .eyebrow{font-size:9px}.route{height:4px;background:#bdd3c544;width:250px;border-radius:5px;overflow:hidden}.route i{display:block;height:100%;background:var(--gold);transition:width .4s}.combo-box{text-align:right}.combo-box small{display:block;font:10px Courier New,monospace;margin-top:6px}.speech{position:absolute;z-index:2;left:30px;bottom:27px;width:min(470px,65%);border:1px solid #a0b5a3;border-left:4px solid var(--gold);background:#173c49f5;padding:18px 22px;box-shadow:0 8px 25px #16343a44;border-radius:5px}.speech p{font-size:15px;line-height:1.55;margin:11px 0 17px;color:#f2f2de}.speech .primary{padding:10px 15px;font-size:12px}.overlay{position:absolute;inset:0;z-index:4;background:#102a3bcc;display:grid;place-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding:25px}.overlay-card{text-align:center;max-width:670px;width:100%}.overlay-card h2{font:400 40px/1.1 Impact,Arial Narrow,sans-serif;letter-spacing:.5px;color:#f1f0d4;margin:14px 0}.overlay-card p{font-size:13px;line-height:1.6;color:#cadacd;max-width:550px;margin:0 auto 21px}.overlay-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.result-stats{display:flex;justify-content:center;gap:38px;flex-wrap:wrap;margin:18px 0 24px}.result-stats strong{display:block;color:var(--gold);font:30px Impact,Arial Narrow,sans-serif}.result-stats span{font-size:9px;letter-spacing:1.5px}.result-stats small{width:100%;font-size:10px;color:#baceb8}.rhythm-panel{padding:17px 28px 10px;background:#142f3f}.rhythm-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;font:10px Courier New,monospace;color:#a9c2bf}.phase-label{font:700 12px Arial,sans-serif;letter-spacing:1.4px;color:var(--gold)}[data-phase=response] .phase-label{color:#b4dfb2}.bpm{margin-left:15px}.practice-badge{margin-left:15px;background:#486364;color:#f4f3d7;padding:5px}.lane{position:relative;display:grid;grid-template-columns:repeat(4,1fr);padding:12px 6%;height:106px}.lane-track{position:absolute;top:43px;left:6%;right:6%;height:2px;background:#4f677155}.lane-track i{position:absolute;left:0;top:-24px;width:2px;height:56px;background:#f0e2a4;opacity:.25;pointer-events:none}.note{position:relative;text-align:center;opacity:.74;transition:transform .1s,opacity .1s}.note-shape{font-size:26px;line-height:34px;background:#142f3f;padding:0 12px;text-shadow:0 2px 0 #0004}.note-key{display:block;font:700 12px Arial,sans-serif;letter-spacing:1.5px;margin:3px 0 4px;color:#e1e9d5}.judgment{font:9px Courier New,monospace;color:#7e9a9c}.note.active{opacity:1;transform:translateY(-4px)}.note.active .note-shape{filter:drop-shadow(0 0 8px currentColor)}.note.perfect .judgment{color:#b4dfb2}.note.good .judgment{color:#ffdc76}.note.miss .judgment{color:#ffbcb0}.controls-row{display:grid;grid-template-columns:1fr 1.45fr 1fr;gap:24px;align-items:center;margin-top:6px}.resolve>span{font-size:9px;letter-spacing:1.5px;color:#b4cbbf;display:flex;justify-content:space-between}.resolve>span b{color:#dcedce;font:12px Courier New,monospace;letter-spacing:0}.meter{height:6px;margin:8px 0;border-radius:4px;background:#3f5b62;overflow:hidden}.meter i{background:#add894;display:block;height:100%;transition:width .2s}.resolve>small{font-size:10px;line-height:1.4;display:block;min-height:28px;color:#adc3b6}.pads{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.pad{position:relative;display:flex;justify-content:center;align-items:center;height:66px;touch-action:none;user-select:none;-webkit-user-select:none;color:var(--paper);border:1px solid currentColor;border-bottom-width:5px;background:#234250}.pad>span{font-size:31px;line-height:1}.pad kbd{position:absolute;bottom:5px;right:5px;font-size:8px;padding:0 3px}.pad-0,.c0{color:var(--c0)}.pad-1,.c1{color:var(--c1)}.pad-2,.c2{color:var(--c2)}.pad-3,.c3{color:var(--c3)}.pad:hover{background:#315363}.pad.pressed{background:currentColor;border-bottom-width:1px;transform:translateY(3px)}.pad.pressed span,.pad.pressed kbd{color:#173542}.helper{background:#243e4c;border:1px solid #6b7f7966;display:flex;align-items:center;gap:9px;text-align:left;color:#d0ddc6;padding:12px}.helper-icon{font-size:27px}.helper b{font-size:10px;display:block}.helper small{display:block;font-size:9px;margin-top:5px;line-height:1.5;min-height:22px;color:#a5bfb7}.helper kbd{margin-left:auto;font-size:8px}.helper.ready{border-color:#d9c775;box-shadow:inset 0 0 25px #ccb53b0a}.play-footer{display:flex;justify-content:space-between;gap:15px;padding-top:16px;margin-top:13px;border-top:1px solid #4a616944;font-size:9px;color:#86a2a4}.rotate{position:fixed;z-index:20;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#163544f5;text-align:center}.rotate>span{font-size:80px;color:var(--gold)}.rotate h2{font:34px Impact,Arial Narrow,sans-serif;font-weight:400;margin:20px}.rotate p{font-size:14px;line-height:1.7;color:#b7cbbc}dialog{max-width:550px;width:calc(100% - 32px);max-height:90dvh;background:#edf0de;color:#244443;border:1px solid #94b0a2;border-radius:12px;padding:28px;box-shadow:0 25px 80px #071c3588}dialog::backdrop{background:#0a2537bb;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}dialog h2{font:36px Impact,Arial Narrow,sans-serif;font-weight:400;margin:8px 0 20px}dialog .eyebrow{color:#63814c}dialog p{font-size:13px;line-height:1.65}dialog label{display:block;font-size:12px;font-weight:700;margin:17px 0}dialog select{width:100%;margin-top:8px;padding:10px;border:1px solid #a3b5a1;background:#fcfbed;border-radius:6px;color:#224241}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between}.close{background:#dbe3cd;color:#365347;font-size:24px;width:32px;height:32px}.check{display:flex;align-items:center}.check input{margin-right:9px;width:16px;height:16px;accent-color:#527554}input[type=range]{display:block;width:100%;margin-top:12px;accent-color:#688950}output{float:right;font:12px Courier New,monospace}.offset-row{display:flex;align-items:center;gap:20px}.offset-row label{flex:1}.offset-row .secondary{font-size:10px;padding:9px}.field-help{font-size:10px!important;color:#61776b}fieldset{border:1px solid #adbdab;border-radius:6px;margin:18px 0}legend{font-size:11px}.key-fields{display:flex;gap:17px}.key-fields label{flex:1;text-align:center;font-size:19px;margin:7px 0}.key-fields input{display:block;width:100%;text-align:center;padding:8px;background:#fcfbed;color:#325247;border:1px solid #a3b5a1;border-radius:5px;margin-top:5px;text-transform:uppercase}#settings-error{font-size:11px;color:#963f3b}#about-dialog .close{float:right}@media(min-width:1400px){.topbar{padding-top:35px;padding-bottom:30px}main{padding-bottom:25px}}@media(max-width:900px){.topbar{padding:15px 18px}main{padding:0 16px}.scene-wrap{min-height:350px}.menu{inset:28px auto auto 28px}.menu h1{font-size:44px}.menu p{font-size:12px}.menu-bottom{padding:22px;gap:22px}.controls-row{grid-template-columns:.9fr 1.3fr 1fr;gap:14px}.rhythm-panel{padding:15px 19px 10px}.helper{padding:8px}.helper-icon{display:none}.pad{height:62px}.speech{left:20px}.hud{padding:18px 23px}.vignettes{padding-left:22px}}@media(max-width:1000px)and (max-height:600px)and (orientation:landscape){.topbar{padding:8px 16px}.wordmark{font-size:13px;gap:9px}.crest{padding:4px;font-size:9px}.crest span{font-size:15px}.wordmark>span:last-child{max-width:100px}.top-actions{gap:8px}.quiet{padding:7px 10px;font-size:10px}main{padding:0 12px}.game-shell{border-radius:9px}.scene-wrap{height:calc(100dvh - 210px);min-height:155px;aspect-ratio:auto}.menu{inset:14px auto auto 24px}.menu h1{font-size:32px;margin:8px 0}.menu p{display:none}.menu .eyebrow{font-size:7px}.menu .primary,.menu .secondary{padding:8px 13px;font-size:10px}.menu-meta{font-size:7px;margin-top:10px}.menu-bottom{padding:12px 22px;gap:20px}.menu-bottom p{font-size:10px;margin:7px 0}.mini-pads>span{font-size:14px}.vignettes button{font-size:10px;padding:6px 0}.tiny-label{font-size:8px}.page-footer{font-size:8px;padding:8px 0}.hud{padding:10px 17px;min-height:85px}.hud h1{font-size:18px;margin:4px 0 7px}.hud .eyebrow{font-size:7px}.combo-box small{font-size:8px}.route{width:165px}.scene-label{font-size:6px;padding:4px;right:10px;bottom:8px}.rhythm-panel{padding:8px 14px 7px}.rhythm-heading{font-size:8px}.phase-label{font-size:10px}.bpm{margin-left:8px}.lane{height:61px;padding:4px 6%}.note-shape{font-size:18px;line-height:22px}.note-key{font-size:9px;margin:0}.judgment{font-size:7px}.lane-track{top:24px}.lane-track i{top:-10px;height:36px}.controls-row{margin-top:0;gap:16px;grid-template-columns:1fr 1.5fr 1fr}.pad{height:44px;border-bottom-width:3px}.pad>span{font-size:24px}.pad kbd{font-size:6px;bottom:2px;right:3px}.resolve>span{font-size:7px}.resolve>small{font-size:8px;min-height:20px}.meter{margin:4px 0;height:4px}.helper{padding:7px}.helper b{font-size:9px}.helper small{font-size:7px;min-height:14px;margin-top:2px}.helper kbd{display:none}.play-footer{font-size:7px;padding-top:5px;margin-top:7px}.speech{bottom:12px;left:16px;padding:11px 14px;width:55%}.speech .eyebrow{font-size:7px}.speech p{font-size:11px;margin:6px 0 9px;line-height:1.4}.speech .primary{font-size:10px;padding:7px 10px}.overlay{padding:12px}.overlay-card h2{font-size:26px;margin:7px 0}.overlay-card p{font-size:10px;margin:0 auto 10px}.overlay-card .eyebrow{font-size:8px}.overlay-actions button{font-size:9px;padding:8px 11px}.result-stats{gap:25px;margin:8px 0 10px}.result-stats strong{font-size:22px}.result-stats span,.result-stats small{font-size:7px}.result-stats small{margin-top:-15px}}@media(max-width:600px)and (orientation:portrait){.wordmark{font-size:15px}.scene-wrap{min-height:470px}.menu{inset:34px 22px auto}.menu h1{font-size:46px}.menu p{font-size:12px}.menu .eyebrow{font-size:8px}.scene-label{font-size:7px}.menu-bottom{grid-template-columns:1fr;gap:24px}.vignettes{border-left:0;border-top:1px solid #68807855;padding:20px 0 0}.page-footer{font-size:8px;line-height:1.7}.text-button{font-size:8px}.menu-actions{flex-wrap:wrap}.offset-row{display:block}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}@media(max-width:1000px)and (max-height:600px)and (orientation:landscape){.scene-wrap canvas{object-fit:contain;background:#8bb8bd}.scene-wrap:has(.menu:not([hidden])){min-height:220px}.scene-wrap:has(.menu:not([hidden])) canvas{object-fit:cover}}.difficulty-field{border:0;padding:0;margin:12px 0 24px;min-width:0}.difficulty-field legend{font-size:12px;font-weight:700;padding:0;margin-bottom:10px}.difficulty-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.difficulty-field .difficulty-option{position:relative;margin:0;cursor:pointer;min-width:0}.difficulty-option input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.difficulty-card{display:flex;flex-direction:column;min-height:110px;padding:14px 12px;background:#fcfbed;border:1px solid #a3b5a1;border-radius:8px;transition:background .15s,border-color .15s,box-shadow .15s}.difficulty-card strong{font-size:14px;line-height:1.2}.difficulty-card small{font-size:10px;line-height:1.5;font-weight:400;color:#61776b;margin-top:6px}.choice-mark{display:grid;place-items:center;width:18px;height:18px;margin-top:auto;align-self:flex-end;border:1px solid #a3b5a1;border-radius:50%;font-size:11px;color:transparent}.difficulty-option:hover .difficulty-card{border-color:#527554;background:#f3f5e4}.difficulty-option input:checked+.difficulty-card{background:#244b50;color:#f4f2da;border-color:#244b50;box-shadow:inset 0 -3px #ffdc76}.difficulty-option input:checked+.difficulty-card small{color:#d0dfce}.difficulty-option input:checked+.difficulty-card .choice-mark{color:#244b50;border-color:#ffdc76;background:#ffdc76}.difficulty-option input:focus-visible+.difficulty-card{outline:3px solid #337d7c;outline-offset:3px}dialog label.check{display:flex;gap:12px;align-items:center;min-height:44px;cursor:pointer;line-height:1.5;margin:10px 0}.check input{appearance:none;-webkit-appearance:none;position:relative;flex:0 0 38px;width:38px;height:22px;margin:0;border:1px solid #829b90;border-radius:20px;background:#c2cdbb;cursor:pointer;transition:background .15s}.check input:before{content:"";display:block;width:16px;height:16px;position:absolute;top:2px;left:2px;border-radius:50%;background:#fffdf1;box-shadow:0 1px 2px #163b4333;transition:transform .15s}.check input:checked{background:#244b50;border-color:#244b50}.check input:checked:before{transform:translate(16px);background:#ffdc76}.check input:focus-visible{outline:3px solid #337d7c;outline-offset:3px}@media(max-width:400px){.difficulty-card{padding:12px 9px;min-height:116px}.difficulty-card strong{font-size:12px}.difficulty-options{gap:6px}}@media(forced-colors:active){.difficulty-option input:checked+.difficulty-card{outline:2px solid Highlight}.choice-mark{forced-color-adjust:none}.difficulty-option input:checked+.difficulty-card .choice-mark{background:Highlight;color:HighlightText}.check input{appearance:auto;flex-basis:24px}.check input:before{display:none}}.joining-notice{position:absolute;z-index:3;top:18px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:9px;max-width:min(460px,70%);padding:9px 14px;border:1px solid #e6d27a;background:#173c49ed;box-shadow:0 5px 18px #071e2966;color:#f4f1d7;pointer-events:none}.joining-notice>span{color:var(--gold);font:700 18px/1 Arial}.joining-notice p{margin:0;font-size:11px;font-weight:700;letter-spacing:.25px}html,body{width:100%;height:100%;overflow:hidden;background:#173b42}#app{--world-frame-width:min(100%,calc(100dvh * 21 / 9));--world-frame-inset:max(0px,calc((100% - var(--world-frame-width)) / 2));height:100dvh;position:relative;isolation:isolate}#app main{position:absolute;inset:0;max-width:none;padding:0}.game-shell{position:absolute;inset:0;border:0;border-radius:0;box-shadow:none;overflow:hidden;background:transparent}.game-shell .scene-wrap,.game-shell .scene-wrap:has(.menu:not([hidden])){position:absolute;inset:0;aspect-ratio:auto;width:100%;height:100%;min-height:0;overflow:hidden;background:radial-gradient(ellipse at 50% 38%,#426e76 0,#183f4d 58%,#0a2636)}.game-shell .world-frame{position:absolute;z-index:0;inset:0 auto 0 50%;width:var(--world-frame-width);height:100%;transform:translate(-50%);overflow:hidden;background:#82b8c4;box-shadow:0 0 70px #061b2c66}.game-shell .world-frame canvas{width:100%;height:100%;object-fit:fill;background:#82b8c4}.game-shell .world-frame:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 80px #09243544}.topbar{position:absolute;z-index:8;inset:0 var(--world-frame-inset) auto;max-width:none;margin:0;padding:max(16px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 12px;background:linear-gradient(#0b273c88,transparent);pointer-events:none}.topbar a,.topbar button{pointer-events:auto}.top-actions{gap:8px}.wordmark{font-size:14px;gap:10px}.crest{padding:6px}.crest span{font-size:18px}.topbar .quiet{background:#15333bbd;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-color:#dbe5c533;min-height:40px}.hud{inset:78px max(0px,calc((100% - var(--world-frame-width)) / 2)) auto;padding:10px 28px;min-height:0;background:none;pointer-events:none;text-shadow:0 2px 4px #0d263bcc}.hud h1{font-size:25px;margin:7px 0 10px}.route{width:180px;height:3px}.scene-label{display:none}.page-footer{position:absolute;z-index:6;right:24px;bottom:16px;padding:0}.page-footer>span{display:none}#app:not([data-phase=menu]) .page-footer{display:none}.menu{inset:23% auto auto 7%;max-width:520px}.menu h1{font-size:clamp(48px,6vw,84px);margin:16px 0 24px}.menu p{font-size:15px;display:block}.menu-meta{margin-top:20px}.menu-bottom{position:absolute;z-index:2;left:7%;right:7%;bottom:40px;background:#102f3adb;border:1px solid #a3b79744;border-radius:8px;padding:20px 26px;max-width:950px;gap:32px}.menu-bottom p,.vignettes button{font-size:12px}.menu-bottom .tiny-label{font-size:9px}.speech{left:50%;top:112px;bottom:auto;transform:translate(-50%);width:min(620px,calc(100% - 360px));padding:12px 16px;display:grid;grid-template-columns:1fr auto;gap:5px 18px;background:#123641d9;border:0;border-radius:4px;box-shadow:none}.speech .eyebrow{font-size:9px;grid-column:1}.speech p{font-size:13px;line-height:1.5;margin:0;grid-column:1}.speech .primary{grid-column:2;grid-row:1 / 3;align-self:center;min-height:44px;font-size:11px;padding:10px 12px;box-shadow:none}.rhythm-panel{position:absolute;z-index:5;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);width:min(760px,calc(100% - 48px));padding:0;background:none;border:0;border-radius:0;text-shadow:0 1px 3px #102c3c,0 0 5px #102c3c}.rhythm-heading{font-size:9px;min-height:18px}.phase-label{font-size:11px}.rhythm-heading .bpm{display:none}.lane{height:60px;padding:3px 6%}.lane-track{top:21px;background:#d9e4c955}.lane-track i{top:-11px;height:33px}.note-shape{font-size:21px;line-height:26px;background:none;border-radius:0;padding:1px 9px}.note-key{font-size:10px;letter-spacing:1px;margin:2px 0 0}.judgment{font-size:9px;color:#f3f3df}.controls-row{grid-template-columns:minmax(0,1fr) 280px minmax(0,1fr);gap:24px;margin-top:2px;align-items:center}.pads{gap:8px}.pad{height:48px;background:#173f4fbf;border-bottom-width:2px;-webkit-backdrop-filter:none;backdrop-filter:none}.pad>span{font-size:25px}.pad kbd{font-size:9px;opacity:1}.pad-number{text-shadow:none}.resolve>small{font-size:10px;min-height:28px;color:#f3f3df}.resolve>span{font-size:8px;color:#f3f3df}.meter{height:4px;margin:5px 0}.helper{background:#153c4899;-webkit-backdrop-filter:none;backdrop-filter:none;padding:7px 9px;min-height:48px;text-shadow:inherit}.helper-icon{display:none}.helper small{min-height:0;font-size:9px;color:#f3f3df;margin-top:3px}.helper b{font-size:10px}.helper:disabled{opacity:.8}.play-footer{padding:0;margin:6px 0 0;font-size:9px;border:0;color:#e0e8ce}.play-footer #input-help{display:none}.play-footer #save-status{margin-left:auto}#app[data-phase=dialogue] .rhythm-heading,#app[data-phase=dialogue] .lane,#app[data-phase=dialogue] .pads,#app[data-phase=dialogue] #feedback{display:none}#app[data-phase=dialogue] .helper{grid-column:3}#app:not([data-phase=menu]) .wordmark{display:none}#app:not([data-phase=menu]) .topbar{justify-content:flex-end;background:none}#app:not([data-phase=menu]) .hud{top:20px;padding:0 24px}#app:not([data-phase=menu]) .combo-box{padding-top:54px}.overlay{background:#0b2838a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:35px 24px 180px}.overlay-card h2{font-size:42px}@media(max-height:600px)and (orientation:landscape){.topbar{padding:9px 18px}.wordmark{font-size:11px}.crest{padding:3px}.crest span{font-size:14px}.topbar .quiet{padding:7px 10px;min-height:32px;font-size:10px}.hud{top:54px;padding:0 20px}.hud h1{font-size:18px;margin:3px 0 6px}.hud .eyebrow{font-size:7px}.combo-box small{font-size:8px}.route{width:130px}.rhythm-panel{bottom:max(6px,env(safe-area-inset-bottom));width:min(700px,calc(100% - 32px));padding:0}.rhythm-heading{font-size:8px;min-height:14px}.phase-label{font-size:10px}.lane{height:43px;padding:0 6%}.lane-track{top:13px}.lane-track i{top:-7px;height:25px}.note-shape{font-size:17px;line-height:20px;padding:1px 8px}.note-key{font-size:9px;margin:0}.judgment{font-size:8px}.controls-row{gap:16px;grid-template-columns:minmax(0,1fr) 248px minmax(0,1fr)}.pad{height:44px}.pad>span{font-size:22px}.resolve>span{font-size:8px}.resolve>small{font-size:9px;min-height:25px}.helper{min-height:44px}.helper small{font-size:8px}.helper b{font-size:9px}.helper kbd{display:none}.play-footer{font-size:8px;margin-top:3px}#app:not([data-phase=menu]) .hud{top:12px;padding:0 18px}#app:not([data-phase=menu]) .combo-box{padding-top:43px}.topbar .quiet{min-height:44px}.speech{left:50%;top:80px;bottom:auto;width:min(540px,calc(100% - 300px));padding:9px 12px;gap:4px 12px}.speech p{font-size:11px;margin:0}.speech .eyebrow{font-size:8px}.speech .primary{padding:8px 10px;font-size:10px}.overlay{padding-bottom:120px}.overlay-card h2{font-size:28px}.overlay-card p{font-size:11px}.menu{inset:20% auto auto 6%}.menu h1{font-size:38px;margin:8px 0 15px}.menu p{display:none}.menu-meta{font-size:8px;margin-top:12px}.menu-bottom{left:auto;right:4%;bottom:40px;width:31%;display:block;padding:16px}.menu-bottom>div:first-child{display:none}.vignettes{border:0;padding:0}.vignettes button{font-size:11px}.vignettes button span{font-size:8px}.page-footer{bottom:12px}}@media(max-width:600px)and (orientation:portrait){.menu{inset:18% 24px auto;max-width:85%}.menu h1{font-size:50px}.menu p{font-size:13px}.menu-bottom{left:24px;right:24px;bottom:48px;padding:16px;display:block}.menu-bottom>div:first-child{display:none}.vignettes{padding:0;border:0}.page-footer{right:24px}.topbar{padding:16px 20px}}.command-call{margin-left:14px;color:#f2efdb;font:12px Arial,sans-serif}.pad-number{position:absolute;left:6px;top:4px;font:9px Courier New,monospace;opacity:.8}@media(max-height:600px)and (orientation:landscape){.command-call{margin-left:10px;font-size:10px}.pad-number{font-size:8px}}@media(max-width:700px)and (orientation:landscape){.speech{top:72px;width:calc(100% - 180px);gap:4px 8px}.speech .primary{max-width:105px}.controls-row{grid-template-columns:minmax(0,1fr) 216px minmax(0,1fr);gap:10px}.helper{padding:5px}.rhythm-heading #phrase-count{font-size:8px}.command-call{margin-left:8px}}.lane .note{position:absolute;top:3px;width:64px;transform:translate(-50%)}.lane .note.active{transform:translate(-50%,-4px)}.note-duration{position:absolute;top:0;right:3px;font:10px Arial,sans-serif;color:#f3f3df}@media(max-height:600px)and (orientation:landscape){.lane .note{top:0;width:56px}.note-duration{font-size:9px;right:2px}}.lane-rest{position:absolute;top:4px;transform:translate(-50%);text-align:center;color:#e0e8ce;font:20px/22px Arial,sans-serif;opacity:.85}.lane-rest small{display:block;font:9px/12px Arial,sans-serif}@media(max-height:600px)and (orientation:landscape){.lane-rest{top:0;line-height:20px}.lane-rest small{font-size:8px}}.rhythm-heading{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:12px;height:24px;min-height:24px;line-height:16px}.rhythm-heading>div{display:grid;grid-template-columns:240px minmax(0,1fr) 124px;align-items:center;gap:8px;min-width:0}.rhythm-heading .phase-label,.rhythm-heading .command-call,.rhythm-heading #phrase-count{white-space:nowrap}.rhythm-heading .command-call{margin-left:0;overflow:hidden;text-overflow:ellipsis;line-height:16px}.rhythm-heading #phrase-count{text-align:right;font-variant-numeric:tabular-nums}.rhythm-heading .practice-badge{margin-left:0;padding:3px 0;text-align:center;white-space:nowrap}.rhythm-heading .practice-badge[hidden]{display:block!important;visibility:hidden}#feedback{height:42px;min-height:42px;overflow:hidden}@media(max-height:600px)and (orientation:landscape){.rhythm-heading{grid-template-columns:minmax(0,1fr) 90px;gap:10px}.rhythm-heading>div{grid-template-columns:218px minmax(0,1fr) 108px;gap:6px}#feedback{height:38px;min-height:38px}}#app[data-phase=menu] .topbar{display:none}#app[data-phase=menu] .menu{inset:30% auto auto 8%;width:min(480px,42vw);max-width:none;text-align:center}#app[data-phase=menu] .menu-logo{margin:0 0 38px;font-family:Impact,Arial Narrow,sans-serif;font-weight:400;line-height:.9;text-shadow:0 4px 0 #102d39,0 8px 22px #102d3966}#app[data-phase=menu] .menu-actions{justify-content:center}#app[data-phase=menu] .menu-actions .primary{min-width:176px;min-height:48px;font-size:14px}.menu-more{display:block;margin:15px auto 0;padding:10px 22px;min-height:44px;background:none;color:#f1eed6;font-size:12px;text-shadow:0 1px 3px #102d39}.build-version{position:fixed;z-index:9;right:max(16px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));font:10px/1 Courier New,monospace;letter-spacing:1px;color:#f1eed6;opacity:.6;text-shadow:0 1px 2px #102d39}#app:not([data-phase=menu]):not([data-phase=paused]) .build-version{display:none}.menu-more:hover{text-decoration:underline;text-underline-offset:5px}.menu-option-list{display:grid;gap:8px}.menu-option-list button{padding:13px 16px;min-height:44px;text-align:left;background:#dae3cf;color:#244443;font-size:13px}.menu-option-list button:hover{background:#cbd9be}.chapter-options{margin-top:22px;border-top:1px solid #adbdab;padding-top:16px}.chapter-options .menu-option-list{margin-top:12px}#scene{image-rendering:auto}.legacy-scene{position:absolute;inset:0;width:100%;height:100%}#app[data-phase=menu] #asset-status{display:block;font-size:12px;line-height:1.5;color:#f4ecca;margin:16px auto 0;max-width:320px;text-shadow:0 1px 3px #173b42}#app[data-phase=menu] .menu{inset:25% auto auto calc(var(--world-frame-inset) + clamp(24px,7vw,140px));width:min(520px,43vw)}#app[data-phase=menu] .menu-logo{margin-bottom:22px;line-height:0}.lane.illustrated{height:168px}.illustrated .lane-track{top:138px}.illustrated .lane-track i{top:-126px;height:146px}.lane .chant-note{width:160px;opacity:.78}.chant-note .note-shape{display:flex;align-items:center;justify-content:center;height:98px;padding:0;background:none;filter:none}.chant-art,.chant-art.attack-art,.chant-art.opening-art,.chant-art.congress-attack-art{display:block;flex:none;height:92px;width:auto;max-width:none;overflow:hidden;transform-origin:50% 85%;transition:filter .1s}.chant-note .note-key{position:absolute;top:143px;left:50%;transform:translate(-50%);margin:0;color:#fff8c7;font:700 15px/18px Courier New,monospace;letter-spacing:1px;text-shadow:0 1px 2px #102c3c,0 0 4px #102c3c}.chant-note .note-duration{top:47px;right:0;font-size:9px}.chant-note .judgment{display:block;height:12px;line-height:12px}.illustrated .lane-rest{top:96px}.lane .chant-note.active{transform:translate(-50%);opacity:1}.chant-note.active .note-shape{filter:none}.chant-note.active .chant-art{filter:brightness(1.25) drop-shadow(0 0 5px #ffdc76)}.chant-note.perfect,.chant-note.good,.chant-note.miss{opacity:1}.chant-note.perfect .chant-art{filter:brightness(1.12) drop-shadow(0 0 4px #b4dfb2);animation:chant-hit .24s ease-out both}.chant-note.good .chant-art{filter:drop-shadow(0 0 3px #ffdc76);animation:chant-hit .24s ease-out both}.chant-note.miss .chant-art{filter:grayscale(.7) brightness(.75) drop-shadow(0 0 3px #ff8f81);animation:chant-miss .26s ease-out both}@keyframes chant-hit{0%{transform:rotate(0) scale(1)}35%{transform:rotate(-6deg) scale(1.12)}to{transform:rotate(-3deg) scale(1)}}@keyframes chant-miss{0%{transform:rotate(0)}40%{transform:rotate(7deg) translateY(2px)}to{transform:rotate(4deg) translateY(1px)}}.reduced-motion .chant-art{animation:none!important;transform:none!important;transition:none}@media(prefers-reduced-motion:reduce){.chant-art{animation:none!important;transform:none!important;transition:none}}.sr-only{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}.hud .route{display:none}.status-cluster{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:14px;width:168px;pointer-events:auto}.status-cluster .resolve{width:100%}.status-cluster .resolve>span{font-size:9px;letter-spacing:1px;color:#f4f5df}.status-cluster .meter{height:5px;margin:5px 0;background:#163b4c99}.status-cluster .helper{width:168px;min-height:44px;gap:9px;padding:6px 9px;background:#153c488a;border:1px solid #dbe5c52b}.status-cluster .helper-icon{display:block;font-size:22px}.status-cluster .helper>span:nth-child(2){flex:1}.status-cluster .helper b{font-size:10px}.status-cluster .helper small{font-size:9px;line-height:12px;margin-top:2px}.status-cluster .helper kbd{display:block;margin-left:auto}.rhythm-panel{bottom:18px;width:min(900px,calc(var(--world-frame-width) - 48px));height:190px}.rhythm-heading{display:block;height:22px;min-height:22px}.rhythm-heading>div{display:grid;grid-template-columns:100px 1fr 100px;gap:10px;align-items:center;height:22px}.rhythm-heading .command-call{font:13px Arial,sans-serif;text-align:center;justify-self:center;overflow:visible}.rhythm-heading .practice-badge{font-size:8px;background:none;padding:0}.rhythm-heading #phrase-count{display:none}.lane .note{appearance:none;background:none;border:0;border-radius:0;color:inherit;padding:0;cursor:pointer;touch-action:manipulation}.lane .note:active{transform:translate(-50%)}.lane .note:focus-visible{outline:2px solid #ffdf00;outline-offset:2px}.lane .note.c0{color:var(--c0)}.lane .note.c1{color:var(--c1)}.lane .note.c2{color:var(--c2)}.lane .note.c3{color:var(--c3)}.lane .note-key{font:9px/12px Courier New,monospace;letter-spacing:0;color:#eef3de}.lane .note-duration{display:none}.rhythm-panel .lane{height:168px}.rhythm-panel .chant-note{height:166px}.rhythm-heading .command-call{grid-column:2}.rhythm-heading .practice-badge{grid-column:3}#app[data-phase=dialogue] .rhythm-heading{display:block}#app[data-phase=dialogue] .lane{display:grid}.rhythm-panel .lane{--beat-width:18%;--timeline-start:calc(50% - 2 * var(--beat-width))}.rhythm-panel .lane.hospital-phrase{--beat-width:22%}.hospital-phrase .hospital-recovery-art,.hospital-phrase .hospital-battle-art{height:76px}.rhythm-panel .lane .note,.rhythm-panel .lane-rest{left:calc(var(--timeline-start) + var(--beat) * var(--beat-width))}.rhythm-panel .lane-track{left:var(--timeline-start);right:auto;width:calc(4 * var(--beat-width))}.rhythm-panel .lane-track:before{content:"";position:absolute;inset:-4px 0;pointer-events:none;background:repeating-linear-gradient(to right,#d9e4c955 0 1px,transparent 1px 25%);border-right:1px solid #d9e4c955}.rhythm-panel .lane.charted-phrase{--beat-width:22%}.rhythm-panel .charted-phrase .chant-note{width:min(160px,calc(var(--beat-width) * var(--note-spacing,var(--cue-spacing)) * .86))}.charted-phrase .chant-art{width:100%;height:auto;max-height:92px}.charted-phrase .note-duration{display:block;top:114px;left:0;right:0;font:12px/16px Courier New,monospace;color:#eee8b5}.rehearsal-info{display:none}#app.phrase-rehearsal .scene-wrap{background:radial-gradient(ellipse at 50% 75%,#174753,#0b2634 72%)}#app.phrase-rehearsal :is(.world-frame,.scene-label,.status-cluster,.combo-box){visibility:hidden}#app.phrase-rehearsal .hud{background:none}#app.phrase-rehearsal .topbar{padding-right:190px}#app.phrase-rehearsal .rehearsal-info{display:block;position:absolute;inset:38% 24px auto;text-align:center;color:#dfe8d0}.rehearsal-info p:first-child{font:13px/1.6 Courier New,monospace;letter-spacing:1px;color:#e4cf79}.rehearsal-info p:last-child{font:18px/1.6 Arial,sans-serif;min-height:30px}#app.phrase-rehearsal .practice-badge{visibility:hidden}.charted-phrase .powers-cue-art{width:100%;height:auto;max-height:92px;min-width:0}.review-beat-band{position:absolute;pointer-events:none;left:calc(var(--timeline-start) + (var(--group) - .16) * var(--beat-width));width:calc(var(--beat-width) * .97);top:14px;height:103px;border:1px solid #d9e4c94a;border-top:3px solid #e4cf79;background:#d9e4c90a;z-index:0}.review-beat-band b{position:absolute;top:-22px;left:5px;font:12px Courier New,monospace;color:#e4cf79}.review-grouped .note{z-index:1}#review-rehearsal{margin:auto;max-width:760px}#review-notation{font:700 17px/1.5 Courier New,monospace;letter-spacing:1px}#review-bars{display:flex;justify-content:center;gap:6px;margin:10px 0}#review-bars span{border-bottom:3px solid #718885;padding:6px 10px;font:10px/1.4 Courier New,monospace;color:#c9d6cc}#review-bars .active{border-color:#f6c84f;color:#f6c84f;background:#f6c84f14}#review-rehearsal button{display:inline-block;margin:0 8px;padding:8px 10px;background:none;border:0;border-radius:0;color:#f6c84f;font:700 12px Arial,sans-serif}#review-rehearsal button:focus-visible{outline:2px solid #f6c84f}#review-rehearsal .review-audio-note{font:11px/1.4 Arial,sans-serif;min-height:0;color:#b6c9c6;margin-top:8px}#app.phrase-rehearsal:has(#review-rehearsal:not([hidden])) .rehearsal-info{top:27%}.has-spoken-cues .note-shape{align-items:center}.spoken-cue{position:absolute;left:calc(var(--timeline-start) + var(--beat) * var(--beat-width));top:37px;transform:translate(-50%);width:calc(var(--beat-width) * .25);height:30px;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:2;opacity:.9}.spoken-cue .spoken-art{width:100%;height:30px;max-width:100%;animation:none!important;transform:none!important;filter:none}#app .game-action{position:relative;isolation:isolate;min-height:44px;padding:10px 26px;border:0;border-radius:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:#f6f9ea;font:400 24px/1.15 Impact,Arial Narrow,sans-serif;text-transform:uppercase;letter-spacing:1px;text-decoration:none;text-shadow:0 2px 0 #002776,-1px 0 #002776,1px 0 #002776;transition:color .12s,filter .12s}#app .game-action:before{content:"";position:absolute;left:5px;top:50%;width:10px;height:10px;transform:translateY(-50%);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);background:#ffdf00;opacity:0}#app .game-action:is(:hover,:focus-visible){color:#ffdf00;filter:drop-shadow(0 0 6px #ffdf004d);outline:none;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}#app .game-action:is(:hover,:focus-visible):before{opacity:1}#app .game-action:active:not(:disabled){color:#fff;transform:translateY(1px)}#app .game-action:disabled{color:#a8bac2;opacity:.65;filter:none}#app .game-action:disabled:before{opacity:0}#app[data-phase=menu] .menu .game-action{min-width:210px;min-height:52px;font-size:34px;padding:9px 28px}#app[data-phase=menu] .menu-actions{flex-direction:column;align-items:center;gap:2px}#app[data-phase=menu] .menu #new-game.secondary{font-size:25px;min-height:44px}#app[data-phase=menu] .menu .menu-more{width:max-content;min-width:150px;min-height:44px;margin:8px auto 0;font-size:23px}#app .topbar .game-action{font-size:17px;padding:8px 19px}#app .topbar .game-action kbd{font:10px Arial,sans-serif;opacity:.7;border:0}#app .speech .game-action{font-size:19px;padding:9px 23px;max-width:170px}#app .overlay-actions{flex-direction:column;align-items:center;gap:3px}#app .overlay-actions .game-action{font-size:25px}#app .overlay-actions .primary{font-size:30px}.results-hero-stage{display:none}#app[data-phase=results] .hud,#app[data-phase=results] .rhythm-panel,#app[data-phase=results] #pause{display:none!important}#app[data-phase=results] .overlay{grid-template-columns:minmax(0,56%) minmax(390px,44%);place-items:stretch;padding:clamp(32px,5vw,76px);padding-left:clamp(44px,7vw,110px);background:linear-gradient(90deg,#0623370a 0 42%,#062337b8 55%,#062337f2 72%);-webkit-backdrop-filter:none;backdrop-filter:none;inset:0 auto 0 50%;width:var(--world-frame-width);transform:translate(-50%)}#app[data-phase=results] .results-hero-stage{display:flex;grid-column:1;grid-row:1;align-self:start;justify-self:start;flex-direction:column;align-items:flex-start;padding:clamp(52px,8vh,92px) 0 0;color:#f8f3d9;text-shadow:0 2px 8px #062337;pointer-events:none}#app[data-phase=results] .results-hero-stage strong{color:transparent;-webkit-text-stroke:2px #ffdf00;font:400 clamp(50px,5.6vw,82px)/.82 Impact,"Arial Narrow",sans-serif;letter-spacing:.035em;opacity:.72}#app[data-phase=results] .overlay-card{grid-column:2;grid-row:1;align-self:center;justify-self:stretch;max-width:560px;padding:clamp(28px,4vw,54px);text-align:left;background:#082c42e8;border-left:5px solid #ffdf00;box-shadow:0 22px 60px #00172d66}#app[data-phase=results] .overlay-card h2{font-size:clamp(44px,5vw,74px);line-height:.93;margin:12px 0 18px}#app[data-phase=results] .overlay-card p{max-width:500px;margin:0 0 22px;font-size:14px;line-height:1.55}#app[data-phase=results] .result-stats{justify-content:flex-start;gap:42px;margin:18px 0 24px;padding:16px 0;border-top:1px solid #83a3a155;border-bottom:1px solid #83a3a155}#app[data-phase=results] .result-stats strong{font-size:36px}#app[data-phase=results] .overlay-actions{align-items:flex-start;gap:1px}#app[data-phase=results] .overlay-actions .game-action{padding-left:26px;text-align:left}@media(max-width:820px){#app[data-phase=results] .overlay{grid-template-columns:44% 56%;padding:24px;background:linear-gradient(90deg,#06233712,#062337ed 48%)}#app[data-phase=results] .results-hero-stage strong{font-size:48px}#app[data-phase=results] .overlay-card{padding:24px}#app[data-phase=results] .overlay-card h2{font-size:38px}}#app .status-cluster .helper{background:none;border:0;border-radius:0;box-shadow:none;padding-left:0}#app .status-cluster .helper:is(:hover,:focus-visible):not(:disabled){color:#ffdf00;outline:2px solid #ffdf00;outline-offset:2px}#app .status-cluster .helper b{font:400 17px Impact,Arial Narrow,sans-serif;letter-spacing:.6px;text-transform:uppercase}#app dialog{background:#092c43f5;color:#eef5e7;border:0;border-top:3px solid #009c3b;border-radius:0;box-shadow:0 12px 50px #00172d66}#app dialog::backdrop{background:#061b30b8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}#app dialog h2{color:#ffdf00;text-transform:uppercase;letter-spacing:1px}#app dialog .eyebrow{color:#b4d9b4}#app dialog .close{width:44px;height:44px;background:none;color:#eff5e4;border-radius:0;font-size:30px}#app dialog .close:is(:hover,:focus-visible){color:#ffdf00;outline:2px solid #ffdf00;outline-offset:0}#app .menu-option-list{gap:3px}#app .menu-option-list .game-action{text-align:left;font-size:23px}#app dialog .field-help{color:#b5c8cd}#app dialog fieldset{border-color:#6394a14d;border-radius:0}#app dialog legend{color:#c5d6da}#app dialog .difficulty-card{background:none;color:#eff5e4;border:0;border-bottom:2px solid #6394a14d;border-radius:0;box-shadow:none}#app dialog .difficulty-card strong{font:400 20px Impact,Arial Narrow,sans-serif;letter-spacing:.6px;text-transform:uppercase}#app dialog .difficulty-card small{color:#b5c8cd}#app dialog .difficulty-option input:checked+.difficulty-card{background:none;color:#ffdf00;border-color:#ffdf00;box-shadow:none}#app dialog .difficulty-option input:checked+.difficulty-card small{color:#e3eacf}#app dialog .difficulty-option input:focus-visible+.difficulty-card{outline:2px solid #ffdf00;outline-offset:3px}#app dialog .choice-mark{border:0;background:none;color:transparent}#app dialog .difficulty-option input:checked+.difficulty-card .choice-mark{background:none;color:#ffdf00;border:0}#app dialog .key-fields input{background:#123c50;color:#ffdf00;border-color:#6394a1;border-radius:0}#app dialog input[type=range]{accent-color:#ffdf00}#app dialog .check input{flex-basis:24px;width:24px;height:24px;border:1px solid #95adb6;border-radius:0;background:none;transition:none}#app dialog .check input:before{content:"✓";display:grid;place-items:center;inset:0;width:auto;height:auto;border-radius:0;background:none;box-shadow:none;transform:none;color:transparent;font:700 18px Arial,sans-serif;transition:none}#app dialog .check input:checked{border-color:#ffdf00;background:none}#app dialog .check input:checked:before{color:#ffdf00;background:none;transform:none}#app dialog .check input:focus-visible{outline:2px solid #ffdf00;outline-offset:3px}#app dialog #settings-error{color:#ffafa0}#app.reduced-motion .game-action{transition:none}@media(prefers-reduced-motion:reduce){#app .game-action{transition:none}}@media(forced-colors:active){#app .game-action:focus-visible{outline:2px solid Highlight}#app .game-action:before{background:Highlight}}#app #settings-dialog{width:calc(100% - 64px);max-width:1000px;max-height:calc(100dvh - 48px);padding:24px 32px}#settings-form .dialog-heading h2{margin:4px 0 18px}.settings-columns{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px}.settings-column{min-width:0}#settings-form h3{font-size:12px;margin:0 0 18px;color:#c5d6da}#settings-form fieldset{margin:0 0 16px;min-width:0}#settings-form .check{margin:14px 0}#settings-form .key-fields{gap:12px}#settings-form .key-fields label{margin:4px 0}#settings-form .offset-row{display:block}#settings-form .offset-row label{margin:20px 0 8px}#settings-form #calibrate{font-size:21px;padding:10px 24px;margin-left:-5px}#settings-form .settings-audio>label{margin-top:0}#settings-form .field-help{margin:10px 0 0}.settings-footer{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-top:10px;padding-top:16px;border-top:1px solid #6394a14d}.settings-footer>div{max-width:580px}#settings-form .settings-footer .field-help{margin:0}#settings-form .settings-footer .primary{flex:none}#settings-error:empty{display:none}@media(max-width:800px){#app #settings-dialog{width:calc(100% - 32px);padding:20px}.settings-columns{grid-template-columns:1fr;gap:20px}.settings-footer{flex-wrap:wrap;gap:12px}}@media(min-width:601px)and (orientation:landscape){#app[data-phase=menu] .menu{left:calc(var(--world-frame-inset) + clamp(24px,7vw,140px));width:min(520px,43vw)}}@media(max-width:600px)and (orientation:portrait){#app[data-phase=menu] .menu{left:24px;right:24px;width:auto}}.story-scene{--story-position:50% 50%;--story-figure-shift:0%;position:absolute;z-index:8;inset:0 auto 0 50%;width:var(--world-frame-width);height:100%;transform:translate(-50%);overflow:clip;background:#061e2e;color:#f8f4da}.story-scene[hidden]{display:none}.story-frame{position:absolute;inset:0;overflow:hidden;animation:story-camera 18s ease-in-out both}.story-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--story-position);filter:saturate(1.06) contrast(1.03);transition:object-position 1.1s ease}.story-scene:before{content:"";position:absolute;z-index:3;inset:0;background:linear-gradient(270deg,#071b2be8 0,#071b2bb8 31%,transparent 65%),linear-gradient(0deg,#061624b8 0,transparent 43%);pointer-events:none}.story-scene:after{content:"";position:absolute;z-index:4;inset:0;box-shadow:inset 0 0 80px #020b16aa;pointer-events:none}.story-figure{position:absolute;z-index:2;inset:0;transform:translate(var(--story-figure-shift));transition:transform 1.1s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(10px 12px 12px #02081066)}.story-figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center bottom;pointer-events:none}.story-figure-base{animation:story-breath 4.8s ease-in-out infinite;transform-origin:18% 70%}.story-figure-head,.story-figure-arm{display:none}.story-topline{position:absolute;z-index:6;top:22px;left:28px;right:28px;display:flex;align-items:center;justify-content:space-between;gap:24px}.story-load-status{display:flex;max-width:min(62%,620px);align-items:center;gap:9px;padding:7px 11px;border:1px solid #f7d94166;background:#061624c7;color:#f8f4da;font-size:12px;font-weight:700;letter-spacing:.025em;box-shadow:0 8px 24px #0005;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.story-load-status[hidden]{display:none}.story-load-spinner{width:12px;height:12px;flex:0 0 auto;border:2px solid #ffffff3d;border-top-color:#ffdf00;border-radius:50%;animation:story-load-spin .8s linear infinite}.story-skip{font-size:16px!important;min-height:40px!important;padding:6px 20px!important}.story-copy{position:absolute;z-index:6;right:36px;bottom:31px;width:min(42%,530px)}.story-copy.is-entering{animation:story-copy-in .45s ease-out both}.story-copy .eyebrow{display:block;margin-bottom:8px;color:#ffdf00}.story-copy h2{margin:0;max-width:500px;font:400 clamp(38px,5vw,68px)/.92 Impact,"Arial Narrow",sans-serif;letter-spacing:.4px;text-wrap:balance;text-shadow:0 3px 0 #002776,0 8px 28px #000b}.story-copy>p{max-width:470px;margin:14px 0 12px;font-size:14px;line-height:1.55;color:#edf1db;text-shadow:0 2px 5px #001b}.story-controls{display:flex;align-items:center;gap:22px;margin-top:14px}.story-progress{display:flex;gap:7px;align-items:center}.story-progress i{display:block;width:28px;height:3px;background:#90a89e66}.story-progress i[aria-current=step]{background:#ffdf00;box-shadow:0 0 8px #ffdf0080}.story-next{font-size:24px!important}#app[data-phase=story] .topbar{visibility:hidden;pointer-events:none}@keyframes story-camera{0%{transform:scale(1)}to{transform:scale(1.018)}}@keyframes story-breath{0%,to{transform:translateY(0)}50%{transform:translateY(-.12%)}}@keyframes story-copy-in{0%{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}@keyframes story-load-spin{to{transform:rotate(360deg)}}.story-scene.reduced-motion *{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){.story-scene *{animation:none!important;transition:none!important}}@media(max-width:1000px)and (max-height:600px)and (orientation:landscape){.story-copy{right:25px;bottom:18px;width:44%}.story-copy h2{font-size:37px}.story-copy>p{font-size:11px;margin:8px 0}.story-controls{margin-top:7px}.story-topline{top:10px;left:16px;right:16px;gap:12px}.story-load-status{max-width:68%;padding:5px 8px;font-size:10px}.story-next{font-size:18px!important}}@media(max-width:600px)and (orientation:portrait){.story-copy{left:22px;right:auto;bottom:24px;width:82%}.story-copy h2{font-size:42px}.story-copy>p{font-size:12px}.story-scene:before{background:linear-gradient(0deg,#071b2bf5 0,#071b2bc0 45%,transparent 76%)}}.story-frame{animation:none;transform-origin:var(--shot-origin,50% 50%);transform:scale(var(--shot-scale,1.03));transition:transform 3.4s cubic-bezier(.3,.1,.25,1),transform-origin 3.4s cubic-bezier(.3,.1,.25,1)}.story-background{animation:story-drift 17s ease-in-out infinite alternate}.story-scene.is-cutting .story-frame{animation:story-cut .75s ease-out}.story-bar{position:absolute;z-index:5;left:0;right:0;height:5.5%;background:#020a12;pointer-events:none;animation:story-bar-in .8s cubic-bezier(.2,.8,.2,1) both}.story-bar-top{top:0;transform-origin:50% 0}.story-bar-bottom{bottom:0;transform-origin:50% 100%}.story-copy.is-entering{animation:none}.story-copy.is-entering>*{animation:story-line-in .55s cubic-bezier(.2,.8,.2,1) both}.story-copy.is-entering>:nth-child(2){animation-delay:.08s}.story-copy.is-entering>:nth-child(3){animation-delay:.16s}.story-copy.is-entering>:nth-child(4){animation-delay:.24s}.story-scene{transition:opacity .32s ease}.story-scene.is-leaving{opacity:0;pointer-events:none}@keyframes story-drift{0%{transform:scale(1.015) translate(0)}to{transform:scale(1.045) translate(-.5%,-.35%)}}@keyframes story-cut{0%{filter:brightness(.5) saturate(.8)}to{filter:none}}@keyframes story-bar-in{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes story-line-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.story-source{display:block;max-width:470px;margin:8px 0;color:#e6d57b;font-size:11px;line-height:1.45;text-underline-offset:3px}.story-source[hidden]{display:none}.story-source:focus-visible{outline:2px solid #ffdf00;outline-offset:4px}.story-scene[data-story-kind=history] .story-background{animation:none;filter:saturate(.6) contrast(.94)}.story-scene[data-story-kind=history] .story-frame{transition:none}.story-scene[data-story-kind=history] .story-copy .eyebrow{color:#f4e4a3}.story-scene[data-story-kind=preview]:before{background:linear-gradient(270deg,#072832f2 0,#072832d6 35%,#07283235 62%,transparent 80%)}.story-scene[data-story-kind=preview] .story-copy{bottom:14%;right:5%;width:43%;border-top:4px solid #ffdf00;padding-top:22px}.story-scene[data-story-kind=preview] .story-copy h2{font-size:clamp(38px,4.8vw,66px);line-height:1.02}.story-scene[data-story-kind=preview] .story-copy>p{font-size:clamp(14px,1.4vw,18px);line-height:1.55;margin:22px 0}.story-scene[data-story-kind=preview] .story-copy .eyebrow{letter-spacing:.18em}.analytics-consent{position:absolute;z-index:30;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));width:min(430px,calc(100% - 48px));padding:22px 24px 20px;color:#eef5e7;background:#092c43f5;border:0;border-top:3px solid #ffdf00;box-shadow:0 16px 50px #00172d99}.analytics-consent h2{margin:5px 0 9px;color:#ffdf00;font:400 28px/1 Impact,Arial Narrow,sans-serif;letter-spacing:.7px;text-transform:uppercase}.analytics-consent p{margin:0;color:#d6e2df;font-size:13px;line-height:1.5}.analytics-consent .eyebrow{color:#b4d9b4}.analytics-consent-actions{display:flex;align-items:center;gap:4px;margin-top:12px}#app .analytics-consent .game-action{font-size:19px;padding:9px 22px}#app .analytics-consent .game-action:first-child{color:#ffdf00}#app .analytics-consent .game-action:last-child{font-size:16px}.analytics-preference{padding-top:14px;border-top:1px solid #6394a14d}.analytics-preference small{display:block;margin:7px 0 0 38px;color:#b5c8cd;line-height:1.45}@media(max-width:600px){.analytics-consent{right:16px;bottom:16px;width:calc(100% - 32px);padding:18px}.analytics-consent-actions{align-items:flex-start;flex-direction:column}}.debug-desk{--desk-paper:#e9e7cb;--desk-ink:#153f3d;--desk-muted:#4e6a63;--desk-line:#9caa9b;--desk-gold:#f6c84f;--desk-blue:#30617b;position:fixed;z-index:60;inset:0;overflow:auto;background:var(--desk-paper);color:var(--desk-ink);padding:28px clamp(20px,4vw,56px);font-family:Arial,Helvetica,sans-serif}.debug-desk-frame{max-width:1240px;margin:auto;border-top:6px solid var(--desk-ink)}.debug-desk button{border:0;border-radius:0;background:transparent;color:inherit;text-align:left}.debug-desk button:focus-visible,.debug-desk a:focus-visible{outline:3px solid var(--desk-blue);outline-offset:3px}.debug-desk-header{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:24px 0 30px}.debug-desk-kicker{display:block;font:700 10px/1.5 Courier New,monospace;letter-spacing:1.5px;color:var(--desk-muted)}.debug-desk h1{margin:10px 0 0;font:400 clamp(46px,5vw,68px)/1 Impact,"Arial Narrow",sans-serif;letter-spacing:-.5px}.debug-desk-header p{margin:12px 0 0;font-size:14px;color:var(--desk-muted)}.debug-desk-stamp{border-left:3px solid var(--desk-ink);padding:8px 0 8px 16px;flex-shrink:0}.debug-desk-stamp b,.debug-desk-stamp span{display:block;font:700 11px/1.5 Courier New,monospace;letter-spacing:1px}.debug-desk-stamp span{font-size:9px;color:var(--desk-muted);margin-top:4px}.debug-release-summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 20px;margin:0 0 28px;border-left:5px solid #187345;background:#d9e3c9}.debug-release-summary p{margin:0;font-size:14px}.debug-release-summary strong,.debug-release-summary span{display:block}.debug-release-summary span{margin-top:5px;color:var(--desk-muted);font-size:12px}.debug-release-summary button{font-size:13px;font-weight:700;padding:12px;flex-shrink:0}.debug-release-summary button:hover{background:#f5f2dc}.debug-chapter-index nav .debug-index-copy{color:var(--desk-ink)}.debug-index-copy small{display:block;margin-top:5px;font-size:10px;font-weight:400}.debug-desk [data-availability=public]:is(strong,small){color:#17643c}.debug-desk [data-availability=review]:is(strong,small){color:#81571e}.debug-desk [data-availability=production]:is(strong,small){color:#80502d}.debug-chapter-status{display:flex;align-items:baseline;gap:12px;margin:0;padding:13px 0 13px 54px;border-bottom:1px solid var(--desk-line);font-size:11px;line-height:1.5}.debug-chapter-status strong{font-size:11px;white-space:nowrap;text-transform:uppercase;letter-spacing:.05em}.debug-chapter-status span{color:var(--desk-muted)}.debug-timeline-chapter[data-availability=review] .debug-chapter-node,.debug-timeline-chapter[data-availability=production] .debug-chapter-node{background:#d8b668;color:#493b21}.debug-upcoming{margin:38px 0;padding:22px;border:1px dashed var(--desk-muted);background:#e4e2c8}.debug-upcoming h2{margin:7px 0;font:400 27px/1.15 Impact,Arial Narrow,sans-serif}.debug-upcoming p{font-size:13px;color:var(--desk-muted);margin:10px 0 0}.debug-desk-layout{display:grid;grid-template-columns:224px minmax(0,1fr);gap:40px;align-items:start}.debug-chapter-index{position:sticky;top:24px;padding-top:17px;border-top:1px solid var(--desk-line)}.debug-chapter-index nav{display:grid;gap:5px;margin:16px 0 22px}.debug-chapter-index nav button{display:flex;gap:10px;padding:12px 8px;font-size:12px;font-weight:700;line-height:1.4;border-left:3px solid transparent}.debug-chapter-index nav button span{color:var(--desk-muted)}.debug-chapter-index nav button:hover,.debug-chapter-index nav button[aria-current]{background:#d8dcc1;border-left-color:var(--desk-ink)}.debug-chapter-index nav button[aria-current] span{color:var(--desk-ink)}.debug-chapter-index p{font-size:12px;color:var(--desk-muted);line-height:1.6;max-width:200px;margin:0 0 20px}.debug-chapter-index>a{font-size:11px;font-weight:700;text-underline-offset:4px}.debug-desk-filters{position:sticky;top:0;z-index:3;background:var(--desk-paper);display:flex;gap:3px;flex-wrap:wrap;padding:8px 0 14px;border-block:1px solid var(--desk-line);margin-bottom:24px}.debug-desk-filters button{padding:10px 13px;font-size:12px;font-weight:700}.debug-desk-filters button:hover{background:#d8dcc1}.debug-desk-filters button[aria-pressed=true]{background:var(--desk-ink);color:var(--desk-paper)}.debug-timeline-chapter{scroll-margin-top:82px;margin-bottom:36px}.debug-chapter-heading{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;border-bottom:2px solid var(--desk-ink);padding:8px 0 12px}.debug-chapter-node{width:36px;height:36px;display:grid;place-items:center;background:var(--desk-ink);color:var(--desk-paper);font:700 16px Courier New,monospace}.debug-chapter-heading h2{margin:0;font-size:20px}.debug-chapter-heading h2 button{padding:8px 4px;width:100%}.debug-chapter-heading strong,.debug-chapter-heading h2 span{display:block}.debug-chapter-heading strong{font:400 26px/1.15 Impact,Arial Narrow,sans-serif;letter-spacing:.3px}.debug-chapter-heading h2 span{font:400 11px/1.5 Arial,sans-serif;margin-top:7px;color:var(--desk-muted)}.debug-chapter-heading h2 b{margin-left:6px;color:var(--desk-ink)}.debug-chapter-heading h2 button:hover,.debug-chapter-heading.is-selected{background:#f5f2dc}.debug-chapter-heading.is-selected .debug-chapter-node{background:var(--desk-gold);color:var(--desk-ink)}.debug-timeline-chapter ol{list-style:none;padding:0;margin:0}.debug-cue-row{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:0;border-bottom:1px solid #9caa9b66;min-height:88px}.debug-cue-row:before{content:"";position:absolute;top:0;bottom:-1px;left:17px;width:2px;background:var(--desk-line)}.debug-cue-mark{position:relative;z-index:1;justify-self:start;margin-left:12px;width:12px;height:12px;background:var(--desk-paper);border:2px solid var(--desk-muted);border-radius:50%}.debug-cue-row[data-cue-group=story] .debug-cue-mark{border-radius:0;border-color:var(--desk-blue);box-shadow:inset 0 0 0 2px var(--desk-paper);background:var(--desk-blue)}.debug-cue-row[data-cue-group=fight] .debug-cue-mark{border-radius:0;transform:rotate(45deg);border-color:#97552f}.debug-cue-row[data-cue-group=victory] .debug-cue-mark{border-radius:0;background:var(--desk-ink);border-color:var(--desk-ink)}.debug-cue-launch{display:flex;align-items:center;justify-content:space-between;gap:16px;align-self:stretch;width:100%;min-width:0;padding:14px 8px 14px 4px}.debug-cue-copy small,.debug-cue-copy strong,.debug-cue-copy>span{display:block}.debug-cue-copy small{font:700 9px/1.4 Courier New,monospace;letter-spacing:1px;text-transform:uppercase;color:var(--desk-muted)}.debug-cue-copy strong{font-size:16px;line-height:1.3;margin-top:4px}.debug-cue-copy>span{font-size:11px;line-height:1.5;color:var(--desk-muted);margin-top:4px}.debug-cue-play{font-size:12px;color:var(--desk-muted)}.debug-cue-row[data-cue-group=story] small{color:var(--desk-blue)}.debug-cue-row[data-cue-group=fight] small{color:#884624}.debug-cue-row:hover,.debug-cue-row:focus-within{background:#f5f2dc}.debug-cue-row.is-selected{background:#f7ecc3}.debug-cue-row.is-selected .debug-cue-mark{background:var(--desk-gold);border-color:var(--desk-ink)}.debug-cue-row.is-selected .debug-cue-play{color:var(--desk-ink)}.debug-desk .debug-copy-cue{font-size:10px;font-weight:700;white-space:nowrap;padding:10px;color:var(--desk-muted)}.debug-desk .debug-copy-cue:hover{background:#d8dcc1;color:var(--desk-ink)}.debug-empty-chapter,.debug-archive-note{font-size:12px;line-height:1.5;color:var(--desk-muted);margin:16px 0 16px 58px}.debug-archive-note{border-left:2px solid var(--desk-line);padding-left:12px}.debug-phrase-previews{scroll-margin-top:82px;margin:44px 0 36px}.debug-phrase-previews>header{padding:18px 0;border-block:2px solid var(--desk-ink)}.debug-phrase-previews h2{margin:8px 0;font:400 26px/1.15 Impact,Arial Narrow,sans-serif;letter-spacing:.3px}.debug-phrase-previews p{margin:8px 0 0;font-size:12px;line-height:1.5;color:var(--desk-muted)}.debug-phrase-previews ol{list-style:none;padding:0;margin:0}.debug-phrase-previews .debug-cue-row:before{display:none}.debug-cue-row[data-cue-group=phrase] .debug-cue-mark{border-radius:0;border-color:var(--desk-blue);background:var(--desk-blue);transform:rotate(45deg)}.debug-cue-row[data-cue-group=phrase] small{color:var(--desk-blue)}.debug-desk footer{display:flex;justify-content:space-between;gap:24px;padding:18px 0 10px;border-top:1px solid var(--desk-line);color:var(--desk-muted);font:10px/1.5 Courier New,monospace}.debug-return{position:fixed;z-index:40;right:max(18px,env(safe-area-inset-right));top:max(18px,env(safe-area-inset-top));border:1px solid #f6c84f;border-radius:0;background:#153f3de8;color:#f6dda0;padding:10px 13px;font:700 10px Courier New,monospace;letter-spacing:1px;text-transform:uppercase;box-shadow:0 5px 20px #061b2c55}@media(max-width:1000px){.debug-desk-layout{grid-template-columns:180px minmax(0,1fr);gap:22px}.debug-desk-stamp{display:none}.debug-chapter-heading strong{font-size:23px}.debug-desk-filters button{padding-inline:10px}.debug-chapter-index nav button{font-size:11px}}@media(max-width:700px){.debug-desk{padding:20px}.debug-desk-layout{grid-template-columns:1fr}.debug-chapter-index{position:static}.debug-chapter-index nav{grid-template-columns:repeat(2,minmax(0,1fr));margin:10px 0}.debug-chapter-index p{display:none}.debug-chapter-index>a{display:inline-block;margin:10px 0}.debug-cue-row,.debug-chapter-heading{grid-template-columns:28px minmax(0,1fr) auto;gap:8px}.debug-cue-row:before{left:13px}.debug-cue-mark{margin-left:8px}.debug-chapter-node{width:28px;height:32px;font-size:14px}.debug-cue-copy strong{font-size:14px}.debug-desk .debug-copy-cue{font-size:9px;padding:8px 3px}.debug-desk footer{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.debug-desk *{scroll-behavior:auto!important;transition:none!important}}.perf-overlay{position:fixed;z-index:2000;left:8px;bottom:8px;white-space:pre;font:11px/1.35 ui-monospace,Menlo,Consolas,monospace;color:#d8f7c8;background:#061624d9;padding:6px 8px;border:1px solid #d8f7c833;pointer-events:none}.phrase-review-card{padding:26px 0;border-bottom:2px solid var(--desk-ink)}.phrase-review-card header>small{font:700 11px/1.5 Courier New,monospace;letter-spacing:.05em}.phrase-review-card h3{font:400 30px/1.2 Impact,Arial Narrow,sans-serif;margin:8px 0}.review-beat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:20px 0 12px;border:1px solid var(--desk-line);background:#f4f2db}.review-beat-grid>div{padding:12px 8px;border-right:1px solid var(--desk-line);min-width:0}.review-beat-grid>div:last-child{border:0}.review-beat-grid small{font:10px Courier New,monospace;display:block;color:var(--desk-muted)}.review-beat-grid code{display:block;font-size:14px;font-weight:700;margin-top:8px;white-space:nowrap}.review-beat-art{display:flex;align-items:center;gap:3px;min-height:65px}.review-art-slot{flex:1;min-width:0;display:flex;align-items:center;justify-content:center}.review-beat-art .chant-art{flex:none;width:auto;height:auto;max-width:100%;max-height:62px;margin-top:8px}.review-rest{font-size:12px;color:var(--desk-muted)}.review-chart-meta{font:11px/1.8 Courier New,monospace!important}.review-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}.review-actions>span{display:flex;align-items:center;gap:5px}.review-actions .game-action{font:700 12px Arial,sans-serif;padding:10px}.review-actions .game-action:hover,.review-actions .game-action:focus-visible,.review-actions .is-selected{background:#f7ecc3}.review-section-table{width:100%;border-collapse:collapse;margin:18px 0;font-size:12px}.review-section-table th,.review-section-table td{text-align:left;padding:10px;border-bottom:1px solid var(--desk-line)}.review-section-table summary{cursor:pointer}.review-section-table ol{padding:12px 20px;list-style:decimal;line-height:1.8}.review-beat-art:has(.spoken-slot){align-items:center}.review-beat-art .spoken-slot{flex:.55;align-self:center}.review-beat-art .spoken-slot .chant-art{max-height:36px;margin-top:8px}.game-shell .world-frame:before,.game-shell .world-frame .frame-floor-scrim{content:"";position:absolute;z-index:1;left:0;right:0;pointer-events:none;opacity:0;transition:opacity .35s ease}.game-shell .world-frame:before{top:0;height:clamp(112px,19vh,176px);background:linear-gradient(#041726d9,#04172677 52%,transparent)}.game-shell .world-frame .frame-floor-scrim{bottom:0;height:clamp(120px,22vh,210px);background:linear-gradient(transparent,#04172655 48%,#041726a8)}#app:is([data-phase=countin],[data-phase=call],[data-phase=response],[data-phase=resolve],[data-phase=paused],[data-phase=failed],[data-phase=loading]) .world-frame:before,#app:is([data-phase=countin],[data-phase=call],[data-phase=response],[data-phase=resolve],[data-phase=paused],[data-phase=failed],[data-phase=loading]) .frame-floor-scrim{opacity:1}.hud h1{text-shadow:0 2px 0 #0a2334,0 3px 12px #04172699}.hud .eyebrow{font-size:10px;letter-spacing:2.2px;text-shadow:0 1px 2px #041726}.status-cluster .resolve>span{font-size:10.5px;font-weight:700;letter-spacing:1.4px;color:#f4f5df}.status-cluster .resolve>span b{font:700 12px Courier New,monospace;color:#fff6c4}.status-cluster .meter{height:7px;border-radius:4px;background:#041726a6;box-shadow:inset 0 0 0 1px #f4f5df2e}.status-cluster .meter i{border-radius:4px;background:linear-gradient(90deg,#1f9d57,#9fd46a 60%,#ffdf00);box-shadow:0 0 8px #9fd46a88}.combo-box small{font-weight:700;letter-spacing:1px;color:#f4f5dfcc}.lane-track .phase-cue{position:absolute;right:calc(100% + 20px);top:50%;transform:translateY(-50%);white-space:nowrap;pointer-events:none;font:700 11px/14px Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#f4f5dfcc;text-shadow:0 1px 2px #041726,0 0 6px #041726}.lane-track .phase-cue:empty{visibility:hidden}#app[data-phase=call] .lane-track .phase-cue{color:#9fe3ff}#app[data-phase=response] .lane-track .phase-cue{color:#ffdf00;animation:turn-cue .32s ease-out both}#app[data-phase=resolve] .lane-track .phase-cue{color:#c6d4c9}.hospital-phrase .lane-track .phase-cue{right:calc(100% + 14px);letter-spacing:.08em}@keyframes turn-cue{0%{opacity:.3}to{opacity:1}}#app.reduced-motion[data-phase=response] .lane-track .phase-cue{animation:none}@media(prefers-reduced-motion:reduce){#app[data-phase=response] .lane-track .phase-cue{animation:none}}.chant-note .note-key{min-width:24px;padding:0 6px;border:1.5px solid #fff8c799;border-bottom-width:3px;border-radius:5px;background:#041726b3;font:700 13px/18px Courier New,monospace;text-align:center;letter-spacing:0;text-shadow:none}.chant-note.active .note-key,#app[data-phase=response] .chant-note .note-key{border-color:#ffdf00;color:#ffdf00}.rhythm-panel .lane-track{height:3px;border-radius:2px;background:#e9f0dc59}.lane-track i{will-change:transform;opacity:.5;background:linear-gradient(#fff3b000,#fff3b0 30% 70%,#fff3b000);box-shadow:0 0 10px #ffdf0080}#app[data-phase=response] .lane-track i{opacity:.85}.joining-notice:not([hidden]){animation:notice-in .38s cubic-bezier(.2,.8,.2,1) both}@keyframes notice-in{0%{opacity:0;translate:0 -14px}to{opacity:1;translate:0 0}}.beat-frame{position:absolute;z-index:2;inset:0 auto 0 50%;width:var(--world-frame-width);transform:translate(-50%);pointer-events:none;opacity:0;--beat-color:#e8f6ff;box-shadow:inset 0 0 0 3px var(--beat-color),inset 0 0 70px color-mix(in srgb,var(--beat-color) 45%,transparent)}#app[data-phase=response] .beat-frame{--beat-color:#ffdf00}#app:not(:is([data-phase=countin],[data-phase=call],[data-phase=response],[data-phase=resolve])) .beat-frame,.reduced-motion .beat-frame{display:none}@media(prefers-reduced-motion:reduce){.beat-frame{display:none}}#app[data-phase=results] .results-hero-stage strong{color:#ffdf00;-webkit-text-stroke:0;opacity:1;text-shadow:0 4px 0 #0b3a5b,0 0 26px #ffdf0055,0 12px 30px #0009;transform:rotate(-3deg);transform-origin:20% 80%;animation:victory-stamp .62s cubic-bezier(.2,1.4,.4,1) both}@keyframes victory-stamp{0%{opacity:0;transform:scale(1.7) rotate(-8deg)}to{opacity:1;transform:rotate(-3deg)}}.reduced-motion .results-hero-stage strong{animation:none!important}@media(prefers-reduced-motion:reduce){#app[data-phase=results] .results-hero-stage strong{animation:none}}#app[data-phase=menu] .menu-actions,#app[data-phase=menu] .menu-more{position:relative}#app[data-phase=menu] .menu-actions:before{content:"";position:absolute;z-index:-1;inset:-38px -90px -70px;background:radial-gradient(closest-side,#04172699,transparent);pointer-events:none}.rhythm-panel{transform:translate(-50%) scale(var(--ui-scale,1));transform-origin:50% 100%}#app:not([data-phase=menu]) .hud>div:first-child{transform:scale(var(--ui-scale,1));transform-origin:0 0}#app:not([data-phase=menu]) .hud>.combo-box{transform:scale(var(--ui-scale,1));transform-origin:100% 0}.topbar .top-actions{transform:scale(var(--ui-scale,1));transform-origin:100% 0}.joining-notice{transform:translate(-50%) scale(var(--ui-scale,1));transform-origin:50% 0}#app:is([data-phase=paused],[data-phase=failed],[data-phase=calibration]) .overlay-card{transform:scale(var(--ui-scale,1))}#app{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}#app :is(input,textarea){-webkit-user-select:text;user-select:text}@media(hover:none)and (pointer:coarse){#app kbd,#app .chant-note .note-key{display:none}}#app:not(:is([data-phase=countin],[data-phase=call],[data-phase=response],[data-phase=resolve],[data-phase=paused],[data-phase=loading])) .rotate-paused{display:none}.rhythm-panel{width:min(900px,calc((var(--world-frame-width) - 48px) / var(--lane-scale,1)));transform:translate(-50%) scale(var(--lane-scale,var(--ui-scale,1)))}@media(max-height:600px)and (orientation:landscape){#app[data-phase=menu] .menu{top:50%;transform:translateY(-50%);width:min(43vw,calc((100dvh - 200px)*2))}#app[data-phase=menu] .menu-logo{margin-bottom:12px}.topbar{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}#app:not([data-phase=menu]) .hud{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}.story-topline{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right))}.story-copy{right:max(25px,env(safe-area-inset-right))}.joining-notice{left:auto;right:max(16px,env(safe-area-inset-right));top:78px;max-width:min(380px,calc(100% - 340px));transform:none}#app:is([data-phase=paused],[data-phase=failed]) .rhythm-panel{visibility:hidden}#app:is([data-phase=paused],[data-phase=failed]) .overlay{padding:12px max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left))}#app:is([data-phase=paused],[data-phase=failed]) .overlay-card{max-height:100%;overflow-y:auto}#app:is([data-phase=paused],[data-phase=failed]) .overlay-card h2{font-size:30px;margin:4px 0 6px}#app:is([data-phase=paused],[data-phase=failed]) .overlay-card p{margin:0 auto 8px}#app[data-phase=results] .overlay{padding:12px max(16px,env(safe-area-inset-right)) 12px max(24px,env(safe-area-inset-left))}#app[data-phase=results] .results-hero-stage{padding-top:20px}#app[data-phase=results] .overlay-card{max-height:100%;overflow-y:auto;padding:14px 20px}#app[data-phase=results] .overlay-card h2{font-size:28px;margin:4px 0 8px}#app[data-phase=results] .overlay-card p{font-size:12px;line-height:1.4;margin:0 0 6px}#app[data-phase=results] .result-stats{gap:28px;margin:6px 0 8px;padding:6px 0}#app[data-phase=results] .result-stats strong{font-size:24px}#app .overlay-actions .game-action{font-size:20px;padding-top:6px;padding-bottom:6px}#app .overlay-actions .primary{font-size:24px}}.recording-launch{display:none;position:fixed;z-index:55;right:28px;bottom:25px;padding:12px 20px;background:#ffdf65;color:#102f42;border:0;font:800 14px Arial;cursor:pointer}.debug-desk-open .recording-launch{display:block}.recording-dialog{max-width:520px;width:calc(100% - 48px);background:#102f42;color:#f6f1d7;border:1px solid #ffe16a;padding:28px;max-height:90dvh}.recording-dialog::backdrop{background:#00101ccc}.recording-dialog h2{margin:0 0 8px;font:900 32px Arial}.recording-dialog p{font:14px/1.5 Arial;color:#cad8d0}.recording-dialog label{display:flex;align-items:center;gap:12px;padding:9px 0;margin:0;line-height:1.2;min-height:36px;font:700 15px Arial}.recording-dialog input{accent-color:#ffdf65;width:18px;height:18px;margin:0;flex:0 0 18px}.recording-dialog .recording-options{border-block:1px solid #ffffff30;padding:12px 0;margin:14px 0}.recording-dialog .recording-actions{display:flex;gap:22px;flex-wrap:wrap;align-items:center;margin-top:18px}.recording-dialog button,.recording-dialog a{border:0;background:none;color:#ffdf65;font:800 14px Arial;padding:8px 0;cursor:pointer;text-underline-offset:5px}.recording-dialog :focus-visible,.recording-launch:focus-visible{outline:3px solid #ffdf65;outline-offset:5px}body[data-recording=true] #app:is([data-phase=countin],[data-phase=call],[data-phase=response],[data-phase=resolve],[data-phase=ending],[data-phase=results]) :is(.topbar,#debug-return,#build-version,#joining-notice,#scene-label,.rehearsal-info){visibility:hidden!important}body[data-recording=true] .perf-overlay{display:none!important}body[data-recording=true][data-recording-hud=false] :is(#hud,#result-stats,.results-hero-stage,.overlay-card){visibility:hidden!important}body[data-recording=true] #app[data-phase=results] #overlay{background:none;pointer-events:none}body[data-recording=true][data-recording-keys=false] :is(.note-key,kbd){visibility:hidden!important}body[data-recording=true][data-recording-border=false] #beat-frame{display:none!important}body[data-recording=true][data-recording-timeline=false] :is(.lane-track,.lane-rest,.rhythm-heading,.note-duration){visibility:hidden!important}body[data-recording=true][data-recording-phrases=false] #rhythm-panel{visibility:hidden!important}body[data-recording=true] .frame-floor-scrim{opacity:0}body[data-recording=true] .world-frame:after{box-shadow:none}body[data-recording=true] #app[data-phase=paused] .overlay-card{visibility:visible!important}
