:root{color-scheme:dark;--bg:#101112;--panel:#181a1c;--line:#303236;--ink:#f4f4ef;--muted:#939699;--lime:#e9ef83;--pink:#f17f9d;--mint:#83d9d0;--yellow:#e8e984;--purple:#ab98eb;--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace;--font:Inter,'Arial',"Noto Sans JP",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;-webkit-font-smoothing:antialiased}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{border:0;color:inherit}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--lime);outline-offset:5px}button{transition:background .16s,transform .16s,opacity .16s}button:active:not(:disabled){transform:translateY(1px)}a{color:inherit;text-decoration:none}svg{width:22px;height:22px;display:block}[hidden]{display:none!important}.header{height:100px;max-width:1440px;margin:auto;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:900;letter-spacing:-1.2px;line-height:1}.brand-light{font-weight:400;letter-spacing:-1px;margin-left:5px}.brand small{display:block;font-size:9px;font-weight:500;letter-spacing:2.8px;margin-top:7px;color:var(--muted)}.brand-mark{display:grid;grid-template-columns:repeat(2,10px);gap:4px;transform:rotate(-9deg)}.brand-mark i{height:10px;background:var(--pink);border-radius:2px}.brand-mark i:nth-child(2){background:var(--mint)}.brand-mark i:nth-child(3){background:var(--yellow)}.brand-mark i:nth-child(4){background:var(--purple)}.header-center{font-family:var(--mono);font-size:12px;letter-spacing:1.8px;color:#797b7e}.header-center span{color:var(--ink)}.header-actions{display:flex;gap:24px;align-items:center}.text-button{background:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:14px;padding:9px 0;color:#c1c3c5}.text-button:hover{color:white}.circle-icon{border:1px solid #73777a;border-radius:50%;width:19px;height:19px;line-height:18px;font:12px/18px var(--mono);text-align:center}.icon-button{background:transparent;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;font-size:28px;border-radius:8px;color:#c8cacb}.icon-button:hover{background:#ffffff12}.app{max-width:1280px;padding:34px 40px 20px;margin:auto}.track-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.eyebrow{font:11px/1.5 var(--mono);letter-spacing:1.7px;color:var(--lime);display:flex;align-items:center;gap:10px}.tiny-bars{display:flex;align-items:center;gap:2px;height:12px}.tiny-bars i{width:3px;height:7px;background:var(--lime)}.tiny-bars i:nth-child(2){height:12px}.tiny-bars i:nth-child(3){height:9px}.track-number{color:#71767a;margin-left:12px;letter-spacing:1px}h1{font-size:clamp(38px,4.4vw,58px);margin:6px 0 0;font-weight:900;letter-spacing:-2.5px;line-height:1.05}.title-dot{color:var(--lime)}.track-facts{display:flex;align-items:center;gap:36px}.track-facts>div:not(.mode-tag){display:flex;flex-direction:column;gap:5px}.track-facts strong{font-family:var(--mono);font-size:24px;font-weight:500}.track-facts span{font:10px var(--mono);letter-spacing:1.5px;color:var(--muted)}.mode-tag{border:1px solid #40443b;color:var(--lime);padding:10px 33px 10px 13px;position:relative;font:11px/1.45 var(--mono);letter-spacing:1.5px;border-radius:6px}.mode-tag span{position:absolute;right:10px;top:10px;color:var(--lime);font-size:18px}.game-layout{display:grid;grid-template-columns:minmax(250px,340px) minmax(0,1fr);gap:28px;align-items:stretch}.phone{border:1px solid #55544e;border-radius:22px;position:relative;overflow:hidden;min-height:590px;background:#c2bf98;isolation:isolate}.phone:after{content:"";position:absolute;inset:0;border:6px solid #ffffff09;pointer-events:none;border-radius:22px;z-index:4}#dancer-stage{position:absolute;inset:0}#dancer-stage canvas{width:100%;height:100%;display:block}.phone-shade{pointer-events:none;position:absolute;inset:0;background:linear-gradient(180deg,#11111235,transparent 20%,transparent 58%,#16171b55 76%,#16171bcc);z-index:1}.stream-top{position:absolute;top:23px;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between;z-index:2}.live-badge{display:flex;align-items:center;gap:7px;font:10px var(--mono);letter-spacing:1px;color:#fff;background:#15171960;border:1px solid #ffffff44;border-radius:5px;padding:7px 9px;backdrop-filter:blur(8px)}.live-badge b{height:5px;width:5px;border-radius:50%;background:var(--lime)}.camera-button{background:none;padding:5px;color:white}.stream-side{position:absolute;right:18px;bottom:151px;display:flex;align-items:center;flex-direction:column;gap:10px;z-index:2}.stream-avatar{border:2px solid #fff9;background:var(--purple);color:#242033;font-size:16px;font-weight:900;border-radius:50%;width:33px;height:33px;display:grid;place-items:center}.heart{font-size:35px;line-height:1;color:white;transition:transform .1s,color .1s}.heart.hit{transform:scale(1.35);color:var(--pink)}.side-label{font:8px var(--mono);color:#f4f4eb;letter-spacing:.5px}.record-icon{margin-top:5px;width:35px;height:35px;border-radius:50%;border:6px solid #282832;background:var(--lime);color:#222;display:grid;place-items:center;font-size:16px;box-shadow:0 0 0 1px #ffffff42}.stream-bottom{position:absolute;bottom:27px;left:23px;right:23px;z-index:2}.dancer-pill{font:9px var(--mono);letter-spacing:1.1px;color:#f0f1cc}.stream-bottom h2{font-size:39px;line-height:1;margin:9px 0;font-weight:800;letter-spacing:-1.5px}.stream-bottom h2 span{font-size:20px;color:var(--lime);margin-left:10px;vertical-align:middle}.stream-bottom p{font-size:12px;color:#e3e3df;margin:9px 0 16px}.music-tag{font:10px var(--mono);letter-spacing:1.2px;display:flex;align-items:center;gap:8px;color:#e0e1df}.music-tag>span:first-child{font-size:18px}.music-dots{margin-left:auto;font-size:16px;letter-spacing:2px}.phone-progress{height:3px;background:#ffffff25;position:absolute;bottom:0;left:0;right:0;z-index:4}.phone-progress i{display:block;background:var(--lime);height:100%;width:0}#stage-fallback{position:absolute;inset:100px 24px auto;padding:20px;background:#171717e8;z-index:4;font-size:14px;border-radius:10px}#stage-fallback p{line-height:1.8;color:#ddd}.console{border:1px solid var(--line);border-radius:17px;overflow:hidden;background:var(--panel);display:flex;flex-direction:column}.score-strip{display:flex;padding:22px 25px;align-items:center;border-bottom:1px solid var(--line);gap:30px;background:#1c1e20}.score-strip>div{display:flex;flex-direction:column;gap:5px}.score-strip span{font:9px var(--mono);letter-spacing:1.3px;color:var(--muted)}.score-block strong{font:32px var(--mono);letter-spacing:1px}.combo-block{border-left:1px solid #34363a;padding-left:28px}.combo-block strong{font:27px var(--mono);color:var(--lime)}.best-block{margin-left:auto;text-align:right}.best-block strong{font:16px var(--mono);color:#d0d2d0}.play-area{position:relative;min-height:348px;flex:1;background:#111315;overflow:hidden}.arena-top{display:flex;justify-content:space-between;align-items:center;position:absolute;top:18px;left:23px;right:23px;z-index:1;pointer-events:none;font:9px var(--mono);letter-spacing:1.1px;color:#777e7e}.arena-top>div{display:flex;align-items:center;gap:6px}.beat-dot{width:4px;height:4px;background:var(--lime);border-radius:50%}#notes-canvas{display:block;position:absolute;inset:0;width:100%;height:100%}.chart-guide{position:absolute;bottom:18px;left:13px;right:13px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;text-align:center;font:700 12px var(--mono);letter-spacing:1px;pointer-events:none}.chart-guide>span:nth-child(1){color:var(--pink)}.chart-guide>span:nth-child(2){color:var(--mint)}.chart-guide>span:nth-child(3){color:var(--yellow)}.chart-guide>span:nth-child(4){color:var(--purple)}.ready-panel{position:relative;z-index:2;width:min(410px,100%);margin:0 auto;padding:58px 27px 39px;text-align:center}.ready-kicker{font:10px var(--mono);color:var(--lime);letter-spacing:2px}.ready-panel h2{font-size:30px;letter-spacing:-.7px;margin:14px 0 12px}.ready-panel>p{font-size:13px;color:#8f9496;margin:0 0 25px;line-height:1.7}.difficulty{display:flex;gap:5px;padding:4px;border:1px solid #35383a;border-radius:9px;background:#1a1d1e;margin:0 0 16px}.difficulty label{flex:1;position:relative}.difficulty input{position:absolute;inset:0;opacity:0;cursor:pointer}.difficulty label>span{display:block;border:1px solid transparent;border-radius:5px;padding:10px 5px 8px;font:11px var(--mono);letter-spacing:.8px;color:#888e90;transition:all .2s}.difficulty small{display:block;font:9px var(--font);margin-top:5px;letter-spacing:0}.difficulty input:checked+span{background:var(--lime);color:#20251b;border-color:var(--lime)}.difficulty input:focus-visible+span{outline:2px solid white;outline-offset:2px}.start-button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 21px;background:var(--lime);color:#24271c;border-radius:7px;font-size:14px;font-weight:700;letter-spacing:.3px;min-height:52px}.start-button:hover:not(:disabled){background:#f3f8a0;box-shadow:0 0 22px #e9ef8315}.play-icon{font-size:13px}.ready-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:13px;font-size:10px;color:#73797c}.demo-button{font-size:11px;background:transparent;padding:4px;color:#b2b8b8}.demo-button:hover{color:var(--lime)}.error-text{font-size:12px!important;color:#ff9cb1!important;line-height:1.6!important;margin:12px 0 0!important}.pads{padding:13px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;border-top:1px solid #303236;background:#191c1d;z-index:4}.pad{position:relative;min-height:96px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;border-radius:8px;background:var(--pad);color:#1e292b;box-shadow:inset 0 -6px 0 #00000020;border:1px solid #ffffff30;user-select:none;touch-action:none;transition:filter .08s,transform .06s,box-shadow .1s}.pink{--pad:var(--pink)}.mint{--pad:var(--mint)}.yellow{--pad:var(--yellow)}.purple{--pad:var(--purple)}.pad:hover{filter:brightness(1.07)}.pad:active,.pad.pressed{transform:translateY(3px)!important;filter:brightness(1.35);box-shadow:inset 0 -2px 0 #0002,0 0 28px color-mix(in srgb,var(--pad) 45%,transparent)}.pad-symbol{font-size:27px;line-height:1}.pad kbd{font:13px var(--mono);position:absolute;top:10px;left:12px}.pad-name{font:8px var(--mono);letter-spacing:1.3px;opacity:.65}.transport{display:flex;align-items:center;gap:13px;padding:0 16px 8px;font:10px var(--mono);color:#888f91;min-height:36px}.song-progress{height:3px;flex:1;background:#363c3d;border-radius:2px;overflow:hidden}.song-progress i{display:block;background:var(--lime);width:0;height:100%;border-radius:2px}.transport .icon-button{width:22px;height:23px;border-left:1px solid #363b3d;padding-left:7px;margin-left:1px;border-radius:0}.transport svg{width:16px;height:16px}.transport button:disabled{cursor:default}.game-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 0 0;color:#7e8386;font-size:11px}.keyboard-tip{display:flex;align-items:center;gap:9px}.keyboard-icon{font-size:19px;color:#b1b6b7}.keyboard-tip kbd{font:10px var(--mono);border:1px solid #424749;border-radius:3px;padding:2px 4px;color:#bac0c1}.keyboard-tip em{font-style:normal;color:#484e51;margin:0 3px}.game-footer p{margin:0;font-size:11px}.local-save{font:8px var(--mono);letter-spacing:.6px;color:#5e6468}.judgment{position:absolute;left:0;right:0;top:48%;text-align:center;z-index:2;pointer-events:none;font-size:31px;font-weight:900;letter-spacing:1px;opacity:0;transform:scale(.8);text-shadow:0 2px 30px currentColor}.judgment.show{animation:judge-pop .5s ease-out forwards}.judgment small{display:block;font:10px var(--mono);letter-spacing:1px;margin-top:6px;color:#c7cbcc}.countdown{position:absolute;z-index:6;inset:0;background:#10131699;backdrop-filter:blur(4px);display:grid;place-items:center;font:900 110px var(--font);color:var(--lime)}.interstitial{position:relative;z-index:5;min-height:100%;padding:48px 35px 28px;text-align:center;background:#141718f5}.interstitial>.eyebrow{justify-content:center}.interstitial h2{font-size:42px;letter-spacing:-1.8px;margin:14px 0 8px}.interstitial h2>span{color:var(--lime)}.interstitial p{font-size:13px;color:#939b9d;line-height:1.6}.interstitial .start-button{margin-top:24px}.interstitial>.text-button{margin-top:12px}.result-panel{padding:22px 28px 16px}.result-topline{display:flex;justify-content:space-between;font:9px var(--mono);letter-spacing:1px;color:#9aa0a2}.result-topline span:last-child{color:var(--lime)}.result-heading{display:flex;align-items:center;justify-content:space-between;text-align:left;margin-top:7px}.result-heading h2{font-size:23px;letter-spacing:-.7px;margin:5px 0}.result-heading p{font-size:11px;margin:5px 0}.rank{font-size:70px;line-height:1;font-style:italic;color:var(--lime);letter-spacing:-5px}.result-score{text-align:left;font:34px var(--mono);letter-spacing:-1px;margin:9px 0 14px}.result-metrics{display:flex;gap:34px;text-align:left}.result-metrics>div{display:flex;gap:8px;align-items:center}.result-metrics strong{font:18px var(--mono)}.result-metrics span{font:8px var(--mono);color:#8b9396;letter-spacing:.6px}.judgment-counts{display:grid;grid-template-columns:repeat(4,1fr);margin-top:15px;border-top:1px solid #363b3d;padding-top:11px;font:8px var(--mono);gap:8px;color:#939c9d}.judgment-counts b{display:block;margin-top:5px;font-size:16px;color:#dce0df}.judgment-counts>span:first-child{color:var(--lime)}.judgment-counts>span:last-child{color:var(--pink)}.result-panel .start-button{margin-top:16px;padding:12px 17px;min-height:42px}.result-panel>.text-button{margin-top:5px;font-size:12px}.game-layout.playing .phone{border-color:#bdc078}.game-layout.playing .record-icon{animation:spin 5s linear infinite}.game-layout.playing .arena-top{color:#9ba59e}.game-layout.playing .beat-dot{animation:beat .375s infinite}.game-layout.playing .play-area{min-height:348px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{color:var(--ink);background:#1b1e20;border:1px solid #464b4e;border-radius:18px;padding:27px 30px 30px;width:min(500px,calc(100% - 28px));max-height:calc(100dvh - 36px);box-shadow:0 30px 120px #0007}dialog::backdrop{background:#090b0dc9;backdrop-filter:blur(8px)}.dialog-top{display:flex;justify-content:space-between;align-items:center}dialog h2{font-size:24px;line-height:1.45;margin:17px 0 25px;letter-spacing:-.5px}.help-steps{padding:0;list-style:none}.help-steps li{display:flex;gap:19px;margin:22px 0}.help-steps li>b{font:17px var(--mono);color:var(--lime);margin-top:2px}.help-steps strong{font-size:14px}.help-steps p,.help-note{font-size:12px;line-height:1.8;color:#a4adb0;margin:7px 0}.help-note{border-top:1px solid #353b3f;padding-top:16px;margin-bottom:23px}.setting-row{display:block;margin:23px 0}.setting-row>span{display:flex;justify-content:space-between;font-size:14px}.setting-row output{color:var(--lime);font:14px var(--mono)}input[type=range]{width:100%;margin:18px 0 0;accent-color:var(--lime);cursor:pointer;height:6px}.setting-hint{font-size:12px;line-height:1.8;color:#9ca6aa;margin-top:-8px}#reset-settings{display:flex;margin:0 auto 12px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(20px);opacity:0;background:var(--lime);color:#242719;border-radius:8px;padding:12px 20px;font-size:13px;z-index:20;transition:all .2s;pointer-events:none;max-width:90%;text-align:center}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}@keyframes judge-pop{0%{opacity:1;transform:scale(1.12)}20%{opacity:1;transform:scale(1)}70%{opacity:1}100%{opacity:0;transform:scale(.96)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes beat{50%{opacity:.3}}@media(min-width:1450px){.app{padding-top:42px}.phone{min-height:650px}.play-area{min-height:400px}.ready-panel{padding-top:83px}.pads{padding:16px}.pad{min-height:106px}}@media(max-width:1050px){.app{padding:28px 26px 18px}.game-layout{grid-template-columns:minmax(225px,30%) minmax(0,1fr);gap:19px}.phone{min-height:576px}.score-strip{gap:18px;padding:20px}.combo-block{padding-left:18px}.score-block strong{font-size:28px}.best-block strong{font-size:13px}.local-save{display:none}.track-facts{gap:27px}.header{height:86px}.ready-panel{padding:58px 24px 38px}.game-footer p{font-size:10px}.pad{min-height:90px}}@media(max-width:720px){.header{height:72px;padding:0 20px}.header-center{display:none}.header-actions{gap:14px}.brand{font-size:21px}.brand small{font-size:8px;letter-spacing:2.1px}.header-actions .text-button{font-size:12px}.app{padding:22px 18px 18px}.track-heading{margin-bottom:19px}.track-heading h1{font-size:40px;letter-spacing:-1.7px}.eyebrow{font-size:9px;gap:7px}.track-number{font-size:8px;margin-left:3px}.track-facts{gap:20px}.track-facts strong{font-size:19px}.track-facts span{font-size:8px}.mode-tag{display:none}.game-layout{grid-template-columns:1fr;gap:15px;position:relative}.phone{position:absolute;top:84px;right:0;width:31%;height:275px;min-height:0;border-radius:0 0 0 15px;border:0;z-index:2}.phone:after{border:0}.stream-top{top:9px;left:9px;right:9px}.live-badge{font-size:6px;letter-spacing:0;padding:4px;gap:4px}.live-badge b{width:3px;height:3px}.camera-button{display:none}.stream-side{display:none}.stream-bottom{left:12px;right:8px;bottom:12px}.dancer-pill{font-size:6px;letter-spacing:0}.stream-bottom h2{font-size:25px;margin:5px 0}.stream-bottom h2 span{font-size:12px;margin-left:5px}.stream-bottom p,.music-tag{display:none}.phone-shade{background:linear-gradient(transparent 55%,#17191ab9)}.phone-progress{display:none}.console{border-radius:13px;min-height:588px}.score-strip{height:84px;padding:16px 18px;gap:25px}.score-block strong{font-size:29px}.combo-block strong{font-size:24px}.best-block strong{font-size:13px}.score-strip span{font-size:8px}.play-area{min-height:366px}.arena-top{left:15px;top:15px;right:calc(31% + 14px);font-size:7px;letter-spacing:.4px}.arena-top>div{display:none}.ready-panel{width:69%;margin:0;padding:58px 16px 25px}.ready-kicker{font-size:7px;letter-spacing:.8px}.ready-panel h2{font-size:22px;margin:12px 0}.ready-panel>p{font-size:10px;line-height:1.8;margin-bottom:19px}.difficulty{gap:1px;padding:3px;margin-bottom:12px}.difficulty label>span{font-size:8px;padding:9px 2px}.difficulty small{font-size:7px}.ready-panel .start-button{padding:14px 12px;font-size:12px;min-height:46px}.ready-bottom{gap:3px;align-items:center;flex-direction:column;margin-top:10px;font-size:8px}.demo-button{font-size:10px}.pads{gap:7px;padding:10px;grid-template-columns:repeat(4,1fr)}.pad{min-height:86px}.pad kbd{font-size:10px;left:8px;top:8px}.pad-name{font-size:7px;letter-spacing:.7px}.pad-symbol{font-size:26px}.transport{font-size:9px;gap:9px;padding-bottom:8px}.game-footer{padding-top:13px;gap:8px;flex-wrap:wrap;justify-content:center}.game-footer p{display:none}.keyboard-tip{font-size:9px;gap:6px}.game-layout.playing .phone{height:235px;width:27%;opacity:.82;pointer-events:none}.game-layout.playing .arena-top{right:calc(27% + 10px)}.interstitial{padding:58px 24px 28px}.result-panel{padding:24px 19px 15px;width:100%}.game-layout.results .phone,.game-layout.paused .phone{visibility:hidden}.result-heading h2{font-size:26px}.result-score{font-size:39px;margin:18px 0}.result-metrics{gap:30px}.result-panel .start-button{margin-top:23px}.judgment-counts{margin-top:20px}dialog{padding:22px}dialog h2{font-size:21px}.help-steps strong{font-size:13px}}@media(max-width:370px){.app{padding:17px 10px}.track-facts{gap:13px}.score-strip{gap:13px;padding:15px 13px}.score-block strong{font-size:25px}.combo-block{padding-left:13px}.best-block strong{font-size:11px}.ready-panel{padding-left:12px;padding-right:12px}.ready-panel h2{font-size:19px}.header{padding:0 14px}}@media(prefers-reduced-motion:reduce){button{transition:none}.record-icon,.beat-dot{animation:none!important}.judgment.show{animation:judge-pop .25s linear forwards}}

@media(max-width:720px){.game-layout.playing .phone{height:365px;top:84px;width:100%;opacity:.28;z-index:1;pointer-events:none;border-radius:0}.game-layout.playing .phone .stream-top,.game-layout.playing .phone .stream-bottom{display:none}.game-layout.playing #notes-canvas{z-index:2}.game-layout.playing .judgment{z-index:3}.game-layout.playing .arena-top{z-index:3;right:15px}.game-layout.playing .chart-guide{z-index:3}.game-layout.playing .phone-shade{background:linear-gradient(transparent,#101112c9)}.countdown{z-index:6}.game-layout.playing .phone #dancer-stage{left:15%;right:15%}}
/* Readable control labels; microtype is reserved for ornamental stage details. */
.header-center{font-size:12px}.eyebrow{font-size:12px}.track-facts span{font-size:12px}.score-strip span{font-size:11px}.ready-kicker{font-size:11px}.ready-panel>p{font-size:14px}.difficulty label>span{font-size:13px}.difficulty small{font-size:11px}.ready-bottom{font-size:11px}.demo-button{font-size:12px}.pad kbd{font-size:14px}.pad-name{font-size:10px}.game-footer,.game-footer p{font-size:12px}.local-save{font-size:10px}.transport{font-size:12px}.arena-top{font-size:10px}.stream-bottom p{font-size:13px}.help-steps p,.help-note,.setting-hint{font-size:14px}.help-steps strong{font-size:16px}.help-steps{margin-top:0}.result-heading p{font-size:13px}.result-metrics span,.judgment-counts{font-size:10px}.result-panel>.text-button{font-size:14px}.ready-panel{padding-top:55px;padding-bottom:34px}.phone{min-height:608px}
@media(min-width:1450px){.phone{min-height:650px}.ready-panel{padding-top:79px}}@media(max-width:1050px){.phone{min-height:604px}.ready-panel{padding-left:20px;padding-right:20px}.score-strip{gap:16px}.combo-block{padding-left:16px}.score-strip span{font-size:10px}.header-center{font-size:11px}}@media(max-width:720px){.phone{min-height:0;height:280px}.eyebrow{font-size:10px}.track-facts span{font-size:10px}.track-facts{gap:15px}.track-facts strong{font-size:18px}.track-heading h1{font-size:38px}.track-number{font-size:9px}.ready-panel{padding:54px 14px 27px}.ready-panel>p{font-size:12px}.ready-kicker{font-size:9px;letter-spacing:.5px}.difficulty label>span{font-size:10px;letter-spacing:0}.difficulty small{font-size:9px}.ready-panel .start-button{font-size:14px}.ready-bottom{font-size:10px}.demo-button{font-size:12px}.pads .pad kbd{font-size:12px}.pad-name{font-size:9px}.score-strip{gap:15px}.score-strip span{font-size:9px}.score-block strong{font-size:27px}.best-block strong{font-size:12px}.combo-block{padding-left:15px}.arena-top{font-size:9px}.transport{font-size:11px}.game-footer{font-size:12px}.keyboard-tip{font-size:11px}.keyboard-tip kbd{font-size:11px}.local-save{display:none}.result-metrics span{font-size:9px}.help-steps strong{font-size:15px}.help-steps p,.help-note,.setting-hint{font-size:13px}}@media(max-width:370px){.score-strip{gap:10px}.score-block strong{font-size:23px}.combo-block{padding-left:10px}.score-strip span{font-size:8px}.track-heading h1{font-size:34px}.track-facts{gap:11px}.ready-panel{padding-left:10px;padding-right:10px}.ready-panel h2{font-size:19px}}
.track-heading>div:first-child{min-width:0;flex:1;padding-right:20px}.track-heading h1{overflow-wrap:anywhere}.track-heading h1:has(#track-title){font-size:clamp(32px,4vw,55px)}.track-select{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border:0;padding:0;margin:0 0 22px;min-width:0}.track-select legend{padding:0;margin:0 0 10px;font-size:14px;color:#b8bdbf}.track-select legend>span{font:11px var(--mono);color:#6f777b;margin-left:10px;letter-spacing:1px}.track-choice{position:relative;min-width:0}.track-choice input{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}.track-card{display:flex;align-items:center;gap:14px;min-height:66px;padding:12px 16px;border:1px solid #353a3c;border-radius:9px;background:#181c1d;transition:border-color .15s,background .15s}.track-index{font:14px var(--mono);color:#7e888b}.track-card-info{min-width:0;flex:1;display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}.track-card-info strong{font-size:16px;font-weight:600;overflow-wrap:anywhere}.track-card-info small{font:12px var(--mono);color:#9aa3a5}.track-check{color:var(--lime);opacity:0;font-size:17px}.track-choice input:checked+.track-card{background:#252b20;border-color:#bec76b}.track-choice input:checked+.track-card .track-index{color:var(--lime)}.track-choice input:checked+.track-card .track-check{opacity:1}.track-choice input:focus-visible+.track-card{outline:2px solid var(--lime);outline-offset:3px}.track-choice input:hover:not(:disabled)+.track-card{border-color:#7d8980}.track-select:disabled .track-choice input{cursor:default}.track-select:disabled .track-choice input:not(:checked)+.track-card{opacity:.55}.game-layout.playing .beat-dot{animation-duration:var(--beat-duration,.375s)}#stream-track-title{font-size:11px;letter-spacing:.8px}#pause-select-button{display:flex;margin:0 auto;font-size:14px}.track-facts{flex-shrink:0}
@media(max-width:1050px){.track-card{gap:10px;padding:12px}.track-card-info strong{font-size:14px}.track-card-info{display:block}.track-card-info small{display:block;margin-top:5px}.track-heading h1:has(#track-title){font-size:clamp(28px,4.7vw,48px)}}@media(max-width:720px){.track-select{gap:7px;margin-bottom:17px}.track-card{padding:10px;min-height:80px;gap:0;align-items:start;position:relative}.track-index{display:none}.track-card-info strong{font-size:14px;line-height:1.35;font-weight:600}.track-card-info small{font-size:12px;margin-top:8px}.track-check{position:absolute;right:7px;bottom:7px;font-size:13px}.track-heading>div:first-child{padding-right:14px}.track-heading h1:has(#track-title){font-size:clamp(26px,5.7vw,38px);letter-spacing:-1px}.track-heading{align-items:end}.track-number{margin-left:0}.track-select legend{font-size:14px}.track-facts{gap:11px}.track-facts strong{font-size:16px}.track-facts span{font-size:9px}}

/* Keep judgment feedback above the note travel area. */
.judgment{top:34px;left:12px;right:12px;font-size:18px;line-height:1;letter-spacing:.8px;text-shadow:0 1px 12px currentColor}
.judgment small{display:inline;margin-left:10px;font-size:10px;letter-spacing:.3px}
@media(max-width:720px){.judgment{font-size:17px}.judgment small{font-size:9px;margin-left:8px}}
/* An opaque ready surface also protects loading and error messages. */
.ready-panel{background:#111315}
.ready-panel>p{color:#b1b9bc}
.ready-bottom{color:#a1aaae}
.ready-panel .error-text{overflow-wrap:anywhere}
.play-area:has(>.ready-panel:not([hidden])) #notes-canvas,
.play-area:has(>.ready-panel:not([hidden])) .chart-guide{visibility:hidden}
