:root{--font-body:"Avenir Next", Avenir, ui-rounded, system-ui, sans-serif;--font-display:Georgia, "Times New Roman", serif;--ink:#17131c;--paper:#fff8e7;--muted-paper:#d8ccd9;--lane:#2e2733;--lane-edge:#b9acb8;--cue:#fff2c7;--cue-edge:#34252b;--focus:#65d9ff;--warning:#f3bc79;--berry:#81455b;--copper:#b46f3e;--teal:#75d6d0}*{box-sizing:border-box}button,input,select{font:inherit}button,label,input[type=range]{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,fieldset:focus-visible{outline:3px solid var(--focus);outline-offset:3px;box-shadow:0 0 0 2px var(--ink)}h1,h2,p{margin-top:0}h1[tabindex="-1"]:focus{outline:none}.eyebrow,.section-kicker{color:#e7d8c9;letter-spacing:.15em;text-transform:uppercase;margin-bottom:6px;font-size:.72rem;font-weight:800}.primary-button,.secondary-button,.text-button,.icon-button,.pause-button{cursor:pointer;border-radius:999px;min-height:48px}.primary-button{border:2px solid var(--ink);width:100%;color:var(--ink);background:var(--cue);padding:12px 20px;font-weight:850;box-shadow:0 0 0 2px #fff8e7b8,0 10px 26px #00000038}.primary-button:hover{background:#fff8df}.secondary-button{width:100%;color:var(--paper);background:#17131cb8;border:1px solid #fff8e77a;padding:11px 18px;font-weight:760}.secondary-button.compact{width:auto;min-width:104px}.text-button{color:var(--paper);text-underline-offset:4px;background:0 0;border:0;padding:10px 14px;text-decoration:underline}.icon-button{width:48px;min-width:48px;color:var(--paper);background:#ffffff14;border:1px solid #fff8e766;font-size:1.55rem}.button-row{flex-wrap:wrap;gap:10px;display:flex}.button-row>*{flex:160px}.menu-screen,.tutorial-screen,.results-screen{min-height:100dvh;color:var(--paper);font-family:var(--font-body), ui-rounded, "Avenir Next", system-ui, sans-serif;background:radial-gradient(circle at 10% 12%,#c57b433d,#0000 24%),radial-gradient(circle at 92% 76%,#5b76834d,#0000 27%),linear-gradient(135deg,#352735,#17131c 52%,#252d38)}.menu-screen:before,.tutorial-screen:before,.results-screen:before,.game-runtime:before{content:"";pointer-events:none;opacity:.16;background-image:repeating-linear-gradient(115deg,#0000 0 17px,#ffffff1a 18px,#0000 19px),radial-gradient(circle at 30% 30%,#ffffff24 0 1px,#0000 1.5px);background-size:auto,14px 14px;position:fixed;inset:0}.menu-shell{z-index:1;width:min(1180px,100%);padding:max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));margin:0 auto;position:relative}.menu-header,.runtime-header{justify-content:space-between;align-items:center;gap:18px;display:flex}.menu-header h1,.runtime-header h1{font-family:var(--font-display), Georgia, serif;letter-spacing:-.04em;margin:0;font-size:clamp(2rem,6vw,3.5rem);font-weight:760;line-height:.92}.selection-intro{max-width:640px;margin:42px 0 28px}.selection-intro h2,.tutorial-card h1,.results-card h1,.dialog-card h2{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;margin-bottom:10px;font-size:clamp(1.85rem,4vw,3rem);line-height:1}.touch-test-card{max-width:680px}.touch-test-instructions{color:#f8ebd8;background:#3e2620b8;border:2px solid #ffd89a;border-radius:18px;gap:10px;margin:22px 0;padding:16px;line-height:1.45;display:grid}.touch-test-instructions span{color:#e7d9e5}.screen-subheading{color:#f0e2d3;letter-spacing:.08em;text-transform:uppercase;margin:8px 0 12px;font-size:clamp(1.05rem,2.4vw,1.35rem);font-weight:820}.selection-intro p:last-child,.tutorial-lead,.results-message{color:#ddd1dd;font-size:1.02rem;line-height:1.55}.selection-grid{grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);align-items:start;gap:24px;display:grid}.selection-panel,.route-card,.tutorial-card,.results-card,.dialog-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#ffffff14,#0000 18%),#17131ccc;border:1px solid #fff8e747;box-shadow:inset 0 1px #ffffff29,0 24px 70px #00000042}.selection-panel{border-radius:32px;padding:clamp(16px,3vw,28px)}.selection-panel fieldset{border:0;min-width:0;margin:0 0 30px;padding:0}.selection-panel fieldset:last-child{margin-bottom:0}.selection-panel legend{color:#f4e7d7;letter-spacing:.11em;text-transform:uppercase;width:100%;margin-bottom:12px;font-size:.8rem;font-weight:820}.choice-grid{gap:10px;display:grid}.choice-grid--three{grid-template-columns:repeat(3,1fr)}.choice-card{min-width:0;min-height:72px;color:var(--paper);cursor:pointer;background:#ffffff0b;border:1px solid #fff8e738;border-radius:18px;padding:13px 14px;display:flex;position:relative}.choice-card:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:3px}.choice-card.is-selected{border-color:var(--cue);background:#fff2c71f;box-shadow:inset 0 0 0 1px #fff2c761}.choice-card input{opacity:0;width:1px;height:1px;position:absolute}.choice-card span{align-content:center;gap:5px;display:grid}.choice-card strong{font-size:.96rem}.choice-card small{color:#cfc3d0;font-size:.76rem;line-height:1.35}.compact-choices .choice-card{min-height:56px}.setting-choice-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.setting-choice-grid .choice-card{min-height:58px}.hard-inline{border-left:3px solid var(--warning);color:var(--warning);margin:10px 0 0;padding:9px 12px;font-size:.82rem}.route-card{border-radius:30px;padding:24px;position:sticky;top:18px}.route-card ol{gap:8px;margin:18px 0 20px;padding:0;list-style:none;display:grid}.route-card li{background:#ffffff0e;border-radius:14px;align-items:center;gap:11px;min-height:46px;padding:8px 10px;display:flex}.route-card li span{width:28px;height:28px;color:var(--cue);border:1px solid #fff8e773;border-radius:50%;place-items:center;font-weight:850;display:grid}.route-card li strong{font-family:var(--font-display), Georgia, serif;font-size:1.02rem}.route-summary,.result-route,.mode-chips,.mobile-status-row{flex-wrap:wrap;gap:7px;display:flex}.route-summary span,.result-route span,.mode-chips span,.mobile-status-row span{color:#f6e7d5;background:#ffffff12;border:1px solid #fff8e74d;border-radius:999px;padding:6px 9px;font-size:.72rem;font-weight:750}.mobile-status-row span{color:#fff8e9;text-shadow:0 1px 2px #000000b8;background:#17131cdb;border-color:#fff8e77a}.controls-note{color:#cfc3d0;margin:18px 0;font-size:.78rem;line-height:1.45}.route-card .secondary-button{margin-top:10px}.private-footer{color:#bfb3c0;text-align:center;margin-top:18px;font-size:.72rem}.production-credit{z-index:2;color:#bfb3c0;letter-spacing:.02em;text-align:center;justify-content:center;align-items:center;gap:8px;min-height:24px;font-size:.66rem;display:flex;position:relative}.credit-mark{object-fit:contain;flex:none;height:20px;display:block}.credit-mark--codex{width:20px}.credit-mark--sites{width:44px}.tutorial-screen,.results-screen{padding:max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));grid-template-rows:minmax(0,1fr) auto;place-items:center;gap:12px;display:grid}.tutorial-card,.results-card{z-index:1;border-radius:34px;width:min(780px,100%);padding:clamp(22px,5vw,42px);position:relative}.tutorial-actions{grid-template-columns:repeat(2,1fr);gap:10px;margin:26px 0;display:grid}.tutorial-actions article{background:#ffffff0b;border:1px solid #fff8e733;border-radius:18px;align-items:center;gap:14px;min-height:92px;padding:14px;display:flex}.tutorial-actions article>div{min-width:0}.tutorial-actions .action-glyph--slide{margin-right:24px}.tutorial-actions p{color:#cfc3d0;margin:4px 0 0;font-size:.78rem;line-height:1.35}.action-glyph,.miss-glyph,.pause-glyph,.results-glyph{border:3px solid var(--cue-edge);width:52px;height:52px;color:var(--cue-edge);background:var(--cue);border-radius:42%;flex:none;place-items:center;font-weight:900;display:grid;position:relative;box-shadow:0 0 0 2px #fff8e799}.action-glyph i{background:var(--cue-edge);border-radius:99px;width:5px;height:18px}.action-glyph--hold:before{border-inline:2px solid var(--cue-edge);content:"";background:var(--teal);width:17px;height:18px;position:absolute;bottom:47px}.action-glyph--slide:before{border-top:4px solid var(--cue);content:"";width:30px;height:18px;filter:drop-shadow(0 -2px 0 var(--cue-edge));border-radius:50% 50% 0 0;position:absolute;left:42px}.action-glyph--slide-right:after{border-top:6px solid #0000;border-bottom:6px solid #0000;border-left:9px solid var(--cue);content:"";width:0;height:0;filter:drop-shadow(-2px 0 0 var(--cue-edge));position:absolute;left:63px}.action-glyph--slide-left:before{left:-20px}.action-glyph--slide-left:after{border-top:6px solid #0000;border-right:9px solid var(--cue);content:"";width:0;height:0;filter:drop-shadow(2px 0 0 var(--cue-edge));border-bottom:6px solid #0000;position:absolute;left:-29px}.results-card{width:min(720px,100%)}.result-route{margin:18px 0}.result-stats{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.result-stat{text-align:center;background:#ffffff0b;border:1px solid #fff8e72e;border-radius:17px;gap:4px;min-height:88px;padding:14px;display:grid}.result-stat.primary{background:#fff2c717}.result-stat span{color:#cfc3d0;letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:780}.result-stat strong{font-family:var(--font-display), Georgia, serif;align-self:center;font-size:1.5rem}.cleared-card{background:#ffffff0d;border-radius:18px;margin-top:18px;padding:16px}.cleared-card h2{letter-spacing:.09em;text-transform:uppercase;margin-bottom:10px;font-size:.78rem}.cleared-card ul{flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none;display:flex}.cleared-card li{border:1px solid #fff8e740;border-radius:999px;padding:6px 9px;font-size:.76rem}.cleared-card p{color:#cfc3d0;margin:0}.best-status{background:#ffffff0b;border-left:3px solid #b9acb8;border-radius:10px;justify-content:space-between;gap:16px;margin:14px 0 20px;padding:13px 16px;display:flex}.best-status.is-best{border-left-color:var(--teal)}.best-status span{color:#d7cbd8}.game-dialog{width:min(560px,100% - 24px);max-height:calc(100dvh - 24px);color:var(--paper);background:0 0;border:0;margin:auto;padding:0;overflow:visible}.game-dialog::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#09070cc7}.dialog-card{border-radius:28px;max-height:calc(100dvh - 24px);padding:24px;overflow-y:auto}.dialog-header{justify-content:space-between;align-items:start;gap:16px;display:flex}.dialog-header h2{margin-bottom:0}.settings-group{background:#ffffff0d;border-radius:16px;margin:18px 0;padding:14px}.setting-heading-row{justify-content:space-between;align-items:center;gap:14px;display:flex}.setting-heading-row>label:first-child{font-weight:780}.check-control{cursor:pointer;align-items:center;gap:8px;min-height:48px;display:flex}.check-control input,.preference-card input{width:24px;height:24px;accent-color:var(--focus)}.volume-slider{width:100%;min-height:48px;accent-color:var(--focus)}.audio-test-button{min-height:48px;color:var(--paper);background:#110e14b8;border:1px solid #fff8e757;border-radius:999px;margin-top:8px;padding:0 16px;font-weight:790}.audio-test-button:disabled{cursor:not-allowed;opacity:.45}.preference-card{cursor:pointer;background:#ffffff0a;border:1px solid #fff8e72e;border-radius:16px;align-items:center;gap:14px;min-height:74px;margin:10px 0;padding:14px;display:flex}.preference-card span{gap:4px;display:grid}.preference-card small,.local-note{color:#cfc3d0;font-size:.76rem;line-height:1.4}.local-note{text-align:center;margin:16px 0}.pause-card{text-align:center}.pause-emblem{border:3px solid var(--cue-edge);width:72px;height:72px;color:var(--cue-edge);background:var(--cue);border-radius:50%;place-items:center;margin:0 auto 16px;font-size:1.5rem;font-weight:900;display:grid;box-shadow:0 0 0 3px #fff8e794}.pause-card p{color:#d8ccd9}.dialog-actions{gap:10px;margin-top:22px;display:grid}.game-runtime{--kit-base:#ddd0ba;--kit-mid:#635f75;--kit-dark:#171921;--kit-accent:#85c6c3;--kit-hit:#dffcf6;--hit-scale:1.06;--hit-filter:brightness(1.15);--cue-material:linear-gradient(145deg, #fff7dc, #c8bca7);--cue-material-edge:#302832;--cue-material-ink:#302832;--kit-art:none;min-height:100dvh;color:var(--paper);background:radial-gradient(circle at 11% 14%, color-mix(in srgb, var(--kit-accent) 28%, transparent) 0 8%, transparent 18%), radial-gradient(circle at 88% 74%, color-mix(in srgb, var(--kit-mid) 54%, transparent) 0 12%, transparent 25%), linear-gradient(135deg, var(--kit-dark), #1b1720 54%, color-mix(in srgb, var(--kit-dark) 70%, black));font-family:var(--font-body), ui-rounded, "Avenir Next", system-ui, sans-serif;position:relative;overflow:hidden}.kit-midnight-bakery{--kit-base:#f2dfbd;--kit-mid:#84475d;--kit-dark:#3f2935;--kit-accent:#c57b43;--kit-hit:#ffd9a3;--hit-scale:1.06;--hit-filter:brightness(1.18) saturate(1.08);--cue-material:linear-gradient(145deg, #fff4d1 0 52%, #d1935d 54% 61%, #f2d0a0 63%);--cue-material-edge:#55302f;--cue-material-ink:#713f35;--kit-art:url(/assets/environment-kits/midnight-bakery-17943b21.webp)}.kit-tiny-titans{--kit-base:#b8b5a1;--kit-mid:#58664d;--kit-dark:#2d3335;--kit-accent:#b9ad7b;--kit-hit:#e6f0c9;--hit-scale:1.035;--hit-filter:brightness(1.1) contrast(1.08);--cue-material:linear-gradient(132deg, #f0ecd9 0 39%, #aeb6aa 41% 64%, #d9d0ad 66%);--cue-material-edge:#33403d;--cue-material-ink:#405049;--kit-art:url(/assets/environment-kits/tiny-titans-c55749f3.webp)}.kit-tidal-trinkets{--kit-base:#b6d6d2;--kit-mid:#b46e66;--kit-dark:#273c46;--kit-accent:#d8c4ad;--kit-hit:#d9ffff;--hit-scale:1.08;--hit-filter:brightness(1.2) saturate(.92);--cue-material:radial-gradient(circle at 35% 28%, #f1ffff 0 13%, transparent 14%), linear-gradient(145deg, #bce4df, #e6cfb9 63%, #c57b72);--cue-material-edge:#294d54;--cue-material-ink:#385e60;--kit-art:url(/assets/environment-kits/tidal-trinkets-6e4588a2.webp)}.kit-lattice-wilds{--kit-base:#ddd0ba;--kit-mid:#635f75;--kit-dark:#171921;--kit-accent:#85c6c3;--kit-hit:#d7fff6;--hit-scale:1.045;--hit-filter:brightness(1.14) contrast(1.14);--cue-material:repeating-linear-gradient(123deg, #efe7d6 0 8px, #94a4a8 9px 13px, #d8c9de 14px 17px, #eff5e8 18px 27px);--cue-material-edge:#20232d;--cue-material-ink:#2e3d42;--kit-art:url(/assets/environment-kits/lattice-wilds-3433e60f.webp)}.kit-oddball-workshop{--kit-base:#b88445;--kit-mid:#397c76;--kit-dark:#332927;--kit-accent:#b64b3f;--kit-hit:#ffe1a6;--hit-scale:1.09;--hit-filter:brightness(1.13) saturate(1.18);--cue-material:linear-gradient(145deg, #e1bb70 0 44%, #4a8a80 46% 69%, #bd4f42 71%);--cue-material-edge:#402d27;--cue-material-ink:#4a3228;--kit-art:url(/assets/environment-kits/oddball-workshop-69aafbdf.webp)}.kit-starloom{--kit-base:#aeb9cd;--kit-mid:#52698f;--kit-dark:#1d2942;--kit-accent:#c4ccd4;--kit-hit:#e4f2ff;--hit-scale:1.055;--hit-filter:brightness(1.22) saturate(.9);--cue-material:radial-gradient(circle at 34% 34%, #58709b 0 9%, transparent 10%), linear-gradient(145deg, #e8edf0, #8191a8 53%, #ccdae8);--cue-material-edge:#283954;--cue-material-ink:#364b6c;--kit-art:url(/assets/environment-kits/starloom-010f8f1a.webp)}.game-shell{z-index:1;width:min(100%,1180px);height:100dvh;padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));grid-template-rows:auto minmax(0,1fr) auto;gap:10px;margin:0 auto;display:grid;position:relative}.runtime-header{min-height:60px;padding-inline:4px}.runtime-header h1{font-size:clamp(1.75rem,5vw,2.7rem)}.pause-button{min-width:96px;color:var(--paper);background:#17131cbd;border:1px solid #fff8e780;justify-content:center;align-items:center;gap:8px;padding:0 16px;display:inline-flex;box-shadow:inset 0 1px #ffffff26,0 8px 26px #00000038}.pause-button span{letter-spacing:-.2em;font-weight:900}.pause-button:disabled{cursor:default;opacity:.65}.runtime-layout{grid-template-columns:minmax(180px,1fr) minmax(360px,520px) minmax(180px,1fr);align-items:center;gap:clamp(18px,3vw,44px);min-height:0;display:grid}.runtime-rail{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#17131c9e;border:1px solid #fff8e738;border-radius:26px;align-self:center;padding:22px;box-shadow:inset 0 1px #ffffff1f,0 18px 50px #0000002e}.rail-label{color:#c8bbca;letter-spacing:.13em;text-transform:uppercase;margin:20px 0 4px;font-size:.72rem;font-weight:760}.rail-label:first-child{margin-top:0}.rail-value{font-family:var(--font-display), Georgia, serif;margin:0;font-size:1.35rem;font-weight:700;line-height:1.1}.rail-value.small{font-size:1.1rem}.mode-chips{margin-top:24px}.runtime-stage{background-image:linear-gradient(180deg, #fff8e71a, #17131c38 28%, #17131c6b), var(--kit-art), linear-gradient(180deg, #fff8e71f, transparent 25%);background-color:#17131ce6;background-position:50%;background-size:cover;border:1px solid #fff8e761;border-radius:clamp(24px,5vw,36px);grid-template-rows:auto auto minmax(0,1fr) auto;width:520px;min-height:min(690px,100dvh - 126px);max-height:760px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff38,inset 0 -1px #00000073,0 28px 80px #00000059}.runtime-stage,.runtime-stage *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}.runtime-stage.is-touch-test{grid-template-rows:auto auto auto minmax(0,1fr) auto}.mobile-status-row{align-items:center;padding:10px 12px 0;display:none}.compact-hud{grid-template-columns:repeat(4,1fr);gap:8px;padding:12px 14px 8px;display:grid}.compact-hud div{text-align:center;background:#17131ccc;border:1px solid #fff8e73d;border-radius:12px;gap:1px;min-width:0;padding:7px 8px;display:grid}.compact-hud span{color:#f0e5ef;letter-spacing:.06em;text-transform:uppercase;font-size:.66rem;font-weight:720}.compact-hud strong{color:#fff8e9;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;overflow:hidden}.objective-strip{color:#f5e8d6;background:#17131ce0;border:1px solid #fff8e72e;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;min-height:38px;margin:0 14px 8px;padding:7px 10px;font-size:.8rem;font-weight:690;display:flex;box-shadow:inset 0 1px #ffffff14,0 4px 12px #0000002e}.mobile-action-chip{color:#e7dbe7;white-space:nowrap;background:#17131cf5;border:1px solid #fff8e747;border-radius:999px;padding:3px 8px;font-size:.7rem;display:none}.mobile-action-chip.is-ready{border-color:var(--focus);color:var(--paper);background:#164e60fa}.touch-test-panel{color:#fff8e9;background:#1f141df0;border:2px solid #ffd89a;border-radius:14px;gap:4px;margin:0 12px 8px;padding:9px 11px;display:grid;box-shadow:0 5px 18px #00000047}.touch-test-panel__heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.touch-test-panel strong{color:#bcefff;letter-spacing:.01em;font-size:.9rem}.touch-test-panel span,.touch-test-panel small{color:#ffd89a;font-variant-numeric:tabular-nums;font-size:.68rem}.touch-test-panel p{color:#f2e7ef;margin:0;font-size:.72rem;line-height:1.25}.touch-test-panel .touch-test-panel__event{color:#c8bdca;font-size:.66rem}.touch-test-panel .touch-test-panel__game{color:#fff8e9;font-weight:740}.touch-test-panel .touch-test-panel__next{color:#ffd89a;font-weight:760}.touch-test-panel .touch-test-panel__hold{color:#17131c;background:#bcefff;border-radius:8px;padding:4px 7px;font-weight:820}.touch-test-panel .touch-test-panel__instruction{color:#e8dce9}.beat-guide{flex:none;gap:5px;display:flex}.beat-guide i{border:1px solid var(--paper);opacity:.5;border-radius:50%;width:7px;height:7px}.beat-guide .is-current{opacity:1;background:var(--paper)}.runtime-playfield{--arrival-ring-size:72px;--arrival-ring-radius:36px;--arrival-row-bottom:54px;--arrival-center-offset:calc(var(--arrival-row-bottom) + var(--arrival-ring-radius));contain:layout paint;background:#211c26;border:1px solid #fff8e74d;border-radius:24px;min-height:0;margin:0 12px;position:relative;overflow:hidden}.lane-grid{grid-template-columns:repeat(3,1fr);gap:4%;padding-bottom:72px;display:grid;position:absolute;inset:0 10px}.lane{border-inline:2px solid var(--lane-edge);background:var(--lane);position:relative;overflow:hidden;box-shadow:inset 0 0 20px #00000047}.lane-texture{opacity:.16;background-size:12px 12px;position:absolute;inset:0}.lane--0 .lane-texture{background-image:radial-gradient(circle, var(--paper) 0 1px, transparent 1.3px)}.lane--1 .lane-texture{background-image:repeating-linear-gradient(90deg,#0000 0 7px,#fff8e773 8px,#0000 9px)}.lane--2 .lane-texture{background-image:repeating-linear-gradient(45deg,#0000 0 8px,#fff8e757 9px,#0000 10px)}.measure-mark{background:#fff8e745;border-radius:2px;height:2px;position:absolute;left:13%;right:13%}.measure-mark--one{top:21%}.measure-mark--two{top:42%}.measure-mark--three{top:63%}.cue-flow-region{z-index:10;top:8%;right:0;bottom:var(--arrival-center-offset);pointer-events:none;position:absolute;left:0}.play-cue{--cue-size:clamp(64px, 18vw, 72px);z-index:1;top:var(--cue-progress);left:var(--cue-left);width:28.9%;height:var(--cue-size);pointer-events:none;position:absolute;transform:translateY(-50%)}.play-cue.is-current,.play-cue.is-pending{z-index:4;opacity:1}.play-cue:not(.is-current):not(.is-pending):not(.is-miss){opacity:.78}.cue-head,.hold-cap,.slide-destination{z-index:3;width:var(--cue-size);height:var(--cue-size);border:3px solid var(--cue-material-edge);background:radial-gradient(circle at 50% 46%, color-mix(in srgb, var(--cue-material) 82%, #fff) 0 48%, var(--cue-material) 72%);border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #fff8e7b8,0 7px 14px #0000004d,inset 0 2px #ffffffa6}.hold-cap:after{content:"";background:var(--cue-material-ink);border-radius:999px;width:5px;height:20px}.cue-head .cue-character{content:"";background-image:var(--character-image);background-repeat:no-repeat;background-position:calc(var(--character-column) * 25%) calc(var(--character-row) * 100%);filter:drop-shadow(0 3px 2px #0000006b);background-size:500% 200%;border-radius:50%;width:auto;height:auto;position:absolute;inset:-1px}.cue--hold .cue-head{border-radius:50%}.hold-trail{z-index:2;width:calc(var(--cue-size) * .48);height:clamp(90px, calc(20vh * var(--hold-ratio)), 170px);position:absolute;bottom:50%;left:50%;transform:translate(-50%)}.hold-trail__fill{height:var(--hold-tail-remaining);border-inline:3px solid var(--cue-edge);background:repeating-linear-gradient(0deg, #fff8e733 0 3px, transparent 3px 7px), var(--kit-accent);position:absolute;bottom:0;left:0;right:0;box-shadow:0 0 0 2px #fff8e78c,0 8px 16px #00000038}.hold-cap{top:calc(100% - var(--hold-tail-remaining));width:calc(var(--cue-size) * .74);height:calc(var(--cue-size) * .48);border-radius:999px}.hold-cap:after{width:16px;height:4px}.slide-arc{z-index:2;border-top:7px solid var(--cue);width:113%;height:42px;filter:drop-shadow(0 -3px 0 var(--cue-edge)) drop-shadow(0 3px 0 #fff8e799);border-radius:50% 50% 0 0;position:absolute;top:50%;left:50%}.slide-arc--right{--slide-guide-shift:5px;transform-origin:0;transform:translateY(-8%)}.slide-arc--left{--slide-guide-shift:-5px;transform-origin:100%;transform:translate(-100%,-8%)}.slide-destination{width:calc(var(--cue-size) * .72);height:calc(var(--cue-size) * .48);border-radius:999px;top:-7px;transform:translate(-50%,-50%)}.slide-arc--right .slide-destination{left:100%}.slide-arc--left .slide-destination{left:0}.slide-destination:after{content:"";background:var(--cue-material-ink);border-radius:999px;width:16px;height:4px}.slide-direction{z-index:5;filter:drop-shadow(0 2px #fff8e7ad)drop-shadow(0 3px 2px #00000061);border-top:8px solid #0000;border-bottom:8px solid #0000;width:0;height:0;position:absolute;top:-11px}.slide-arc--right .slide-direction{border-left:12px solid var(--cue);left:68%}.slide-arc--left .slide-direction{border-right:12px solid var(--cue);left:26%}.play-cue.is-current .slide-direction,.play-cue.is-pending .slide-direction{animation:.72s ease-in-out infinite slide-direction-guide}.play-cue.is-pending .cue-head{box-shadow:0 0 0 3px var(--ink), 0 0 0 7px var(--focus), 0 7px 14px #0000004d}.play-cue.is-perfect .cue-head,.play-cue.is-good .cue-head{--hit-bloom:var(--kit-hit);animation:.13s ease-out both material-hit}.play-cue.is-miss{animation:.18s ease-out both calm-miss}.arrival-row,.lane-controls{z-index:9;grid-template-columns:repeat(3,1fr);gap:4%;display:grid;position:absolute;left:10px;right:10px}.arrival-row{bottom:var(--arrival-row-bottom);place-items:center}.arrival-ring{width:var(--arrival-ring-size);height:var(--arrival-ring-size);border:3px solid var(--paper);color:inherit;touch-action:none;background:#17131ce0;border-radius:50%;place-items:center;padding:0;display:grid;position:relative;box-shadow:inset 0 0 0 7px #fff2c71f,0 8px 16px #00000057}.arrival-ring[aria-disabled=true]{opacity:.58}.arrival-ring.is-target-lane{border-color:color-mix(in srgb, var(--focus) 58%, var(--paper));box-shadow:inset 0 0 0 4px #65d9ff3d,inset 0 0 0 9px #fff2c71a,0 8px 16px #00000057}.arrival-ring.is-ready,.arrival-ring.is-holding,.arrival-ring.is-slide-target{border-color:var(--focus);background:color-mix(in srgb, var(--kit-accent) 28%, #17131c);box-shadow:inset 0 0 0 5px var(--focus), inset 0 0 0 11px #fff8e72e, 0 8px 16px #00000057}.arrival-ring.is-holding{border-color:#ffd89a;box-shadow:inset 0 0 0 5px #ffd89a,inset 0 0 0 11px #fff8e72e,0 8px 16px #00000057}.arrival-ring:not([aria-disabled=true]):active,.arrival-ring.is-input-seen{border-color:var(--focus);background:color-mix(in srgb, var(--kit-accent) 24%, #17131c)}.arrival-ring.is-input-seen{box-shadow:inset 0 0 0 5px #ffd45f,inset 0 0 0 12px #fff8e747,0 8px 16px #00000057}.arrival-ring.is-input-seen .ring-core{background:#ffd45f;border-color:#fff8e7;box-shadow:inset 0 3px 8px #0000003d,0 0 18px #ffd45f}.ring-core{border:3px solid color-mix(in srgb, var(--kit-accent) 70%, var(--paper));background:color-mix(in srgb, var(--kit-accent) 38%, var(--ink));border-radius:50%;width:34px;height:34px;box-shadow:inset 0 3px 8px #0000006b}.lane-controls{bottom:3px}.lane-controls div{color:#f5e8d6;place-items:center;min-height:47px;line-height:1;display:grid}.lane-controls strong{font-size:.74rem}.lane-controls span{color:#bfb2c0;font-size:.62rem}.phase-overlay{z-index:12;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#17131cc7;place-content:center;justify-items:center;gap:10px;padding:24px;display:grid;position:absolute;inset:0}.phase-overlay span{color:#e6d9e6;letter-spacing:.08em;text-transform:uppercase;font-size:.84rem;font-weight:760}.phase-overlay strong{font-family:var(--font-display), Georgia, serif;font-size:clamp(3rem,16vw,5.2rem)}.transition-card strong{font-size:clamp(1.8rem,8vw,3rem)}.feedback-strip{background:#ffffff0e;border:1px solid #fff8e73b;border-radius:16px;align-items:center;gap:10px;min-height:58px;margin:8px 12px 12px;padding:8px 10px;display:flex}.feedback-strip>div{gap:2px;min-width:0;display:grid}.feedback-strip strong{font-size:.83rem}.feedback-strip span:not(.feedback-mark){color:#d2c7d3;font-size:.74rem;line-height:1.25}.feedback-strip .sound-off-help{color:#f3e2b9}.feedback-strip>.form-status{text-align:right;flex:none;gap:1px;max-width:116px;margin-left:auto;display:grid}.feedback-strip>.form-status strong{color:#f2d9a7;letter-spacing:.06em;text-transform:uppercase;font-size:.66rem}.feedback-strip>.form-status span{color:var(--paper);text-overflow:ellipsis;white-space:nowrap;font-size:.73rem;font-weight:790;overflow:hidden}.feedback-strip.is-touch-test-feedback{background:#17131cd6;border-color:#ffd89a61}.feedback-strip.is-touch-test-feedback strong{color:#ffd89a}.feedback-mark{border:3px solid var(--ink);background:var(--cue);width:30px;height:30px;box-shadow:0 0 0 2px var(--focus);border-radius:50%;flex:none}.feedback-mark.is-miss{box-shadow:0 0 0 2px var(--warning)}.mobile-hard-warning{display:none}.action-callout{align-items:center;gap:14px;min-height:72px;display:flex}.action-callout .action-glyph{width:46px;height:46px}.action-callout .action-glyph--slide-left{margin-left:24px}.action-callout .action-glyph--slide-right{margin-right:24px}.action-callout>div{gap:4px;min-width:0;display:grid}.action-callout span:not(.action-glyph){color:#d1c5d2;font-size:.76rem;line-height:1.35}.hard-warning{border-left:3px solid var(--warning);color:#f4dfc1;background:#f3bc7917;border-radius:8px;margin:18px 0 0;padding:12px;font-size:.78rem}.rotate-recommendation{display:none}.sr-only{white-space:nowrap;clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@keyframes material-hit{0%{filter:brightness();transform:translate(-50%,-50%)scale(1)}55%{box-shadow:0 0 0 2px #fff8e7d1, 0 0 0 9px var(--hit-bloom), 0 7px 14px #0000004d;filter:var(--hit-filter);transform:translate(-50%, -50%) scale(var(--hit-scale))}to{filter:brightness();transform:translate(-50%,-50%)scale(1)}}@keyframes calm-miss{0%{opacity:1}to{opacity:.18}}@keyframes slide-direction-guide{0%,to{transform:translate(0)}50%{transform:translateX(var(--slide-guide-shift))}}@media (width<=920px){.selection-grid{grid-template-columns:1fr}.route-card{position:static}}@media (width<=860px){.game-shell{gap:6px}.runtime-layout{min-height:0;display:block}.runtime-rail{display:none}.runtime-stage{width:min(100%,520px);height:calc(100dvh - 118px - max(12px, env(safe-area-inset-bottom)));grid-template-rows:auto auto auto minmax(0,1fr) auto;min-height:0;margin:0 auto}.runtime-stage.is-touch-test{grid-template-rows:auto auto auto auto minmax(0,1fr) auto}.mobile-status-row{display:flex}.objective-strip{flex-wrap:wrap}.mobile-action-chip{margin-left:auto;display:inline-flex}.mobile-hard-warning{font-weight:760;display:block;color:var(--warning)!important}.feedback-strip.has-hard-warning{min-height:72px}}@media (width<=620px){.choice-grid--three,.setting-choice-grid,.tutorial-actions{grid-template-columns:1fr}.choice-card{min-height:58px}.selection-intro{margin-top:28px}.result-stats{grid-template-columns:repeat(2,1fr)}.best-status{display:grid}}@media (width<=420px){.menu-shell{padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right))}.menu-header h1{font-size:2.15rem}.selection-panel,.route-card,.tutorial-card,.results-card{border-radius:24px}.menu-header .secondary-button.compact{min-width:96px}.game-shell{padding-left:max(10px, env(safe-area-inset-left));padding-right:max(10px, env(safe-area-inset-right))}.runtime-header{min-height:58px}.runtime-header h1{font-size:1.9rem}.eyebrow{font-size:.62rem}.pause-button{min-width:88px;padding-inline:12px}.runtime-stage{height:calc(100dvh - 106px - max(10px, env(safe-area-inset-bottom)));border-radius:25px}.mobile-status-row{padding-top:8px}.compact-hud{gap:4px;padding:7px 9px 6px}.compact-hud div{padding:5px 4px}.compact-hud span{font-size:.68rem}.compact-hud strong{font-size:.88rem}.mobile-action-chip{font-size:.72rem}.lane-controls span{font-size:.68rem}.objective-strip{min-height:34px;margin:0 9px 6px;padding:5px 8px;font-size:.72rem}.touch-test-panel{margin:0 8px 6px;padding:7px 9px}.touch-test-panel__heading{align-items:flex-start}.runtime-playfield{--arrival-ring-size:72px;--arrival-ring-radius:36px;--arrival-row-bottom:50px;border-radius:19px;margin-inline:8px}.lane-grid,.arrival-row,.lane-controls{left:7px;right:7px}.play-cue{--cue-size:68px;left:var(--cue-left);width:28.9%}.feedback-strip{min-height:52px;margin:6px 8px 8px;padding:6px 8px}.feedback-strip span:not(.feedback-mark){font-size:.74rem}.feedback-strip>.form-status{max-width:96px}.dialog-card{padding:20px}}@media (orientation:landscape) and (pointer:coarse){.game-runtime .game-shell{visibility:hidden}.game-runtime .rotate-recommendation{z-index:30;padding:max(28px, env(safe-area-inset-top)) max(28px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(28px, env(safe-area-inset-left));color:var(--paper);text-align:center;background:#1b1720;place-content:center;gap:12px;display:grid;position:fixed;inset:0}.rotate-recommendation strong{font-family:var(--font-display), Georgia, serif;font-size:2rem}}.is-reduced-motion:before{opacity:0}.is-reduced-motion .play-cue.is-perfect .cue-head,.is-reduced-motion .play-cue.is-good .cue-head,.is-reduced-motion .play-cue.is-miss,.is-reduced-motion .play-cue.is-current .slide-direction,.is-reduced-motion .play-cue.is-pending .slide-direction{animation:none}.is-reduced-motion .phase-overlay{-webkit-backdrop-filter:none;backdrop-filter:none}@media (prefers-reduced-motion:reduce){.game-runtime:before,.menu-screen:before,.tutorial-screen:before,.results-screen:before{opacity:0}.play-cue.is-perfect .cue-head,.play-cue.is-good .cue-head,.play-cue.is-miss,.play-cue.is-current .slide-direction,.play-cue.is-pending .slide-direction{animation:none}}
