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-logo{display:block;width:min(86vw,420px);height:auto;margin:0 auto}.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}.build-label{font-size:10px;letter-spacing:1.8px;color:#d0dcbd}.build-label i{font-style:normal;color:var(--muted);margin-left:8px}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,.build-label{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}.build-label{display:none}.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}.menu-logo>span{display:block;font-size:clamp(42px,5.4vw,70px);letter-spacing:1px;white-space:nowrap}.menu-logo>strong{display:block;font-size:clamp(80px,9vw,118px);font-weight:400;letter-spacing:5px;color:var(--gold)}#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}.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}.menu-logo img{display:block;width:100%;height:auto}.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}.congress-cue{font:210px Impact,Arial Narrow,sans-serif;text-anchor:middle;paint-order:stroke fill;letter-spacing:2px}.congress-cue.outer{fill:#f6f5dc;stroke:#082d4c;stroke-width:34px}.congress-cue.middle{fill:#f6f5dc;stroke:#badb16;stroke-width:22px}.congress-cue.inner{fill:#f6f5dc;stroke:#153d58;stroke-width:8px}.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 .phase-cue{font:700 11px Arial,sans-serif;color:#fff1a2}.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 .phase-cue{grid-column:1;white-space:nowrap}.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}#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:hidden;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%)}}.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{position:fixed;z-index:60;inset:0;overflow:auto;background:#e9e7cb;color:#153f3d;padding:clamp(20px,4vw,56px);font-family:Arial,Helvetica,sans-serif}.debug-desk:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.34;background-image:linear-gradient(#123f3b0b 1px,transparent 1px),linear-gradient(90deg,#123f3b08 1px,transparent 1px);background-size:24px 24px}.debug-desk-frame{position:relative;max-width:1180px;margin:auto;border-top:8px solid #153f3d}.debug-desk-header{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end;padding:30px 0 24px}.debug-desk-kicker{display:block;font:700 11px/1.2 Courier New,monospace;letter-spacing:2.2px;color:#416c61}.debug-desk h1{margin:10px 0 4px;font:400 clamp(48px,8vw,96px)/.88 Impact,"Arial Narrow",sans-serif;letter-spacing:-1px;color:#153f3d}.debug-desk-header p{margin:16px 0 0;font-size:15px;color:#4e6a63}.debug-desk-stamp{transform:rotate(-2deg);border:3px double #9d342b;color:#9d342b;padding:12px 17px;text-align:center;box-shadow:inset 0 0 0 2px #e9e7cb,inset 0 0 0 3px #9d342b}.debug-desk-stamp b,.debug-desk-stamp span{display:block}.debug-desk-stamp b{font:700 17px/1 Courier New,monospace;letter-spacing:2px}.debug-desk-stamp span{font:700 9px/1.2 Courier New,monospace;margin-top:6px;letter-spacing:1px}.debug-beat-rule{display:grid;grid-template-columns:repeat(4,1fr);height:13px;border-block:1px solid #6f8b7f}.debug-beat-rule i{border-left:1px solid #6f8b7f}.debug-beat-rule i:last-child{border-right:1px solid #6f8b7f}.debug-desk-toolbar{display:flex;justify-content:space-between;gap:28px;align-items:center;border-bottom:1px solid #789087;padding:16px 0}.debug-desk-toolbar nav{display:flex;flex-wrap:wrap;gap:4px}.debug-desk-toolbar nav button{border:0;border-radius:0;background:transparent;color:#46665e;padding:10px 12px;font-weight:800;text-transform:uppercase;font-size:11px;letter-spacing:.8px}.debug-desk-toolbar nav button span{display:inline-grid;place-items:center;width:28px;height:28px;margin-right:9px;border:1px solid currentColor;font:700 9px Courier New,monospace}.debug-desk-toolbar nav button:hover,.debug-desk-toolbar nav button[aria-current=page]{background:#153f3d;color:#f6dda0}.debug-desk-toolbar a{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;text-underline-offset:4px}.debug-loaded-cue{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;margin:22px 0 0;padding:14px 16px;background:#153f3d;color:#f4f0d7;border-left:7px solid #f6c84f}.debug-loaded-cue>span{font:700 9px Courier New,monospace;letter-spacing:1.6px;color:#f6c84f}.debug-loaded-cue p{margin:0}.debug-loaded-cue p b,.debug-loaded-cue p small{display:block}.debug-loaded-cue p b{font-size:14px}.debug-loaded-cue p small{margin-top:4px;color:#b9cec5}.debug-loaded-cue button,.debug-cue-actions button{border-radius:0;background:transparent;font-weight:800}.debug-loaded-cue button{color:#153f3d;background:#f6c84f;padding:11px 14px}.debug-cue-lists{padding:26px 0 60px}.debug-list-heading{display:flex;align-items:baseline;justify-content:space-between;border-bottom:3px solid #153f3d;padding-bottom:9px;text-transform:uppercase}.debug-list-heading span{font:400 28px Impact,Arial Narrow,sans-serif;letter-spacing:.8px}.debug-list-heading b{font:700 12px Courier New,monospace;color:#6b8279}.debug-cue-lists ol{list-style:none;padding:0;margin:0}.debug-cue-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:16px;align-items:center;min-height:94px;border-bottom:1px solid #9caa9b;padding:14px 2px}.debug-cue-row.is-selected{background:#f4f0d7}.debug-cue-mark{width:10px;height:10px;transform:rotate(45deg);border:2px solid #487066}.debug-cue-row:hover .debug-cue-mark,.debug-cue-row.is-selected .debug-cue-mark{background:#e5b936;border-color:#153f3d}.debug-cue-copy small,.debug-cue-copy strong,.debug-cue-copy span{display:block}.debug-cue-copy small{font:700 9px Courier New,monospace;text-transform:uppercase;letter-spacing:1.1px;color:#657d72}.debug-cue-copy strong{font-size:17px;margin-top:5px}.debug-cue-copy span{font-size:11px;color:#61756e;margin-top:5px}.debug-cue-actions{display:flex;align-items:center;gap:4px}.debug-cue-actions button{padding:10px 12px;color:#315952;font-size:11px}.debug-cue-actions button:hover{background:#d5d8ba}.debug-cue-actions button:last-child{border-left:1px solid #809589;color:#153f3d}.debug-cue-actions button:last-child span{color:#a57a00;margin-left:5px}.debug-desk footer{position:relative;display:flex;justify-content:space-between;gap:24px;padding:15px 0 30px;border-top:1px solid #789087;color:#5b756c;font-size:11px}.debug-desk footer code{font:10px 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:760px){.debug-desk{padding:18px}.debug-desk-header{grid-template-columns:1fr}.debug-desk-stamp{justify-self:start}.debug-desk-toolbar{align-items:flex-start;flex-direction:column}.debug-loaded-cue{grid-template-columns:1fr}.debug-cue-row{grid-template-columns:14px 1fr}.debug-cue-actions{grid-column:2;justify-content:flex-start}.debug-desk footer{flex-direction:column}.debug-desk h1{font-size:54px}}@media(prefers-reduced-motion:reduce){.debug-desk *{scroll-behavior:auto!important;transition:none!important}}
