@charset "UTF-8";
:root{color-scheme:dark;--bg:#15171b;--surface:#202329;--paper:#f3eee5;--muted:#b1b3ba;--line:#3c3f47;--acid:#dfff7f;--coral:#ff7965;--lilac:#bbb1ef;--mint:#88dfc0;--yellow:#f4d67a;--font:Inter,"Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html{min-width:320px}body{margin:0;background:var(--bg);color:var(--paper);font-family:var(--font);font-size:16px;-webkit-font-smoothing:antialiased}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;color:inherit;transition:background .18s,color .18s,border-color .18s,opacity .18s}button:disabled{cursor:wait;opacity:.5}button,a,input,summary{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--acid)}h1:focus{outline:none}[hidden]{display:none!important}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.icon-library{position:absolute;width:0;height:0;overflow:hidden}a{color:var(--acid)}.app-shell{max-width:1440px;margin:auto;padding:0 48px}.site-header{height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;font-size:29px;font-weight:900;letter-spacing:-1.6px;line-height:1}.brand-symbol{width:28px;height:29px;display:flex;gap:4px;align-items:center;margin-right:13px;transform:skew(-13deg)}.brand-symbol i{display:block;width:6px;height:24px;background:var(--acid)}.brand-symbol i:nth-child(2){height:16px}.brand-symbol i:nth-child(3){height:9px}.brand-cn{font-size:14px;letter-spacing:4px;margin-left:18px;font-weight:500;border-left:1px solid #686a70;padding-left:19px}.header-right{display:flex;align-items:center;gap:30px}.edition{font-size:10px;letter-spacing:2px;color:var(--muted)}.toolbar{display:flex;align-items:center;gap:6px}.icon-button{display:grid;place-items:center;background:transparent;border:1px solid transparent;border-radius:4px;width:44px;height:44px}.icon-button svg{width:21px;height:21px}.icon-button:hover{background:#2c3038;border-color:var(--line)}.icon-button[aria-pressed="true"]{color:var(--coral)}.eyebrow{font-size:12px;letter-spacing:2.5px;font-weight:600;color:var(--acid);margin:0 0 18px}.micro-label{font-size:11px;line-height:1.4;letter-spacing:1.3px;color:var(--muted)}

/* Selection is a single decision: choose either large start button. */
.select-screen{display:grid;grid-template-columns:minmax(300px,.95fr) minmax(350px,1fr);gap:clamp(48px,7.4vw,108px);align-items:center;max-width:1136px;margin:0 auto;padding:58px 0 50px;min-height:calc(100svh - 164px)}.record-presentation{min-width:0}.record-sleeve{position:relative;isolation:isolate;background:var(--lilac);color:#24242e;aspect-ratio:1/1;overflow:hidden;border-radius:3px;box-shadow:0 24px 70px #0002;transform:rotate(-3deg);margin:0 10px 28px 6px}.sleeve-topline,.sleeve-bottomline{position:absolute;z-index:3;left:25px;right:25px;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:1.5px;font-weight:600}.sleeve-topline{top:23px;padding-bottom:14px;border-bottom:1px solid #24242e50}.sleeve-bottomline{bottom:22px;font-size:11px;border-top:1px solid #24242e50;padding-top:13px}.record-title{position:absolute;z-index:2;top:75px;left:24px;font-size:clamp(74px,9.7vw,140px);line-height:.83;letter-spacing:-8px;font-weight:900}.record-title>span{display:block;margin:17px 0 0 7px;letter-spacing:2px;font-size:10px;font-weight:600;line-height:1.2}.record-disc{position:absolute;z-index:1;width:79%;height:79%;top:39%;right:-25%;border:1px solid #5c5867;border-radius:50%;background:repeating-radial-gradient(circle at center,#292a33 0px,#292a33 4px,#3c3a47 5px,#292a33 6px);box-shadow:-13px -6px 0 #28273317}.record-label{position:absolute;inset:31%;background:var(--acid);border-radius:50%;display:grid;place-items:center}.record-label:before{content:"F/P";font-size:23px;letter-spacing:-2px;font-weight:900;position:absolute;top:25%}.record-label i{display:block;width:8px;height:8px;border-radius:50%;background:#262731}.record-sticker{position:absolute;z-index:3;right:24px;top:76px;width:91px;height:104px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--acid);border:1px solid #282b26;transform:rotate(11deg);box-shadow:4px 4px 0 #25252e17}.record-sticker>span{font-size:7px;letter-spacing:.9px;font-weight:600}.record-sticker strong{font-size:48px;font-weight:800;line-height:1.05;letter-spacing:-4px;margin:3px 4px 5px 0}.record-star{position:absolute;left:28px;bottom:81px;width:48px;height:48px;stroke-width:3px}.track-caption{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 4px}.track-caption h2{font-size:23px;letter-spacing:2px;margin:0 0 9px;font-weight:600}.track-caption p{font-size:13px;margin:0;color:var(--muted);letter-spacing:.5px}.track-facts{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);white-space:nowrap}.track-facts b{color:var(--paper);font-size:17px;font-weight:500}.track-facts>span{display:block;height:16px;width:1px;background:var(--line);margin:0 6px}.selection-content{min-width:0}.selection-content h1{font-size:clamp(42px,4.3vw,62px);font-weight:650;line-height:1.19;letter-spacing:-2px;margin:0}.select-copy{font-size:15px;color:#b8bbc2;line-height:1.9;margin:22px 0 28px}.start-options{display:flex;flex-direction:column;gap:12px}.start-button{min-height:88px;border-radius:4px;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;text-align:left}.start-button>span{display:flex;flex-direction:column;gap:7px}.start-button strong{font-size:24px;font-weight:600;letter-spacing:1px;line-height:1.2}.start-button small{font-size:13px;font-weight:400;letter-spacing:.3px}.start-button svg{width:28px;height:28px;stroke-width:1.8;flex-shrink:0}.start-primary{background:var(--acid);color:#27301d;border:1px solid var(--acid)}.start-primary:hover{background:#edffbb;border-color:#edffbb}.start-secondary{background:#21242b;color:var(--paper);border:1px solid #5d626c}.start-secondary small{color:#bfc2c8}.start-secondary:hover{background:#2e323b;border-color:#b0b3bd}.start-secondary svg{color:var(--lilac)}.select-status{font-size:13px;line-height:1.6;min-height:0;color:var(--acid);margin:12px 0 0}.select-status:empty{display:none}.selection-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:21px;font-size:12px;color:var(--muted)}.best-label{display:flex;align-items:center;gap:12px}.best-label strong{color:var(--paper);font-variant-numeric:tabular-nums;font-size:14px;font-weight:500;letter-spacing:1px}.headphone-note{font-size:12px;white-space:nowrap}.how-to-play{border-top:1px solid var(--line);margin-top:22px}.how-to-play summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:50px;font-size:14px;color:#dededc}.how-to-play summary::-webkit-details-marker{display:none}.details-plus{font-size:22px;font-weight:300;color:var(--muted)}.how-to-play[open] .details-plus{transform:rotate(45deg)}.instructions{padding:4px 0 4px}.mechanic-legend{display:flex;align-items:center;justify-content:space-between;gap:10px}.mechanic-legend>span{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}.mechanic-legend svg{width:20px;height:20px}.dodge{color:var(--coral)}.soak{color:var(--mint)}.hit{color:var(--yellow)}.instructions>p{font-size:12px;line-height:1.8;color:var(--muted);margin:17px 0}.controls-list{display:grid;grid-template-columns:1.2fr 1fr;gap:13px 18px;margin:0}.controls-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted)}.controls-list dd{margin:0;white-space:nowrap;font-size:11px}kbd{font-family:var(--font);font-size:11px;line-height:1;padding:4px 6px;border:1px solid #656a73;border-radius:3px;color:#dedfdc;background:#24272d;white-space:nowrap}.instructions>.touch-instruction{display:none}

/* Once started, only the performance is shown. */
.play-screen{max-width:1140px;margin:0 auto;padding:21px 0 20px}.game-hud{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 2px 15px;min-height:64px}.phase-block{display:flex;flex-direction:column;gap:7px}.phase-block strong{font-size:16px;font-weight:500}.hud-stats{display:flex;gap:45px;align-items:center}.hud-stats>div{display:flex;flex-direction:column;gap:7px;min-width:48px}.hud-stats strong{font-size:25px;line-height:1;font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.5px}.score-stat{min-width:100px!important}.combo-stat strong{color:var(--acid)}.combo-stat small{font-size:16px;font-weight:400;margin-left:4px}.miss-stat strong{color:#c8cbd0}.stage{position:relative;isolation:isolate;display:block;width:100%;height:min(65svh,680px);min-height:320px;border:1px solid #50565d;border-radius:3px;overflow:hidden;background:#14171b}.stage canvas{display:block;width:100%;height:100%;object-fit:contain;touch-action:none}.stage canvas:focus-visible{outline-offset:-4px;outline:2px solid #dfff7f66}.game-overlay{position:absolute;inset:0;display:grid;place-items:center;padding:35px;z-index:4;background:#14171be8;backdrop-filter:blur(5px)}.pause-content{text-align:center;max-width:520px}.pause-content h2{font-size:clamp(30px,4vw,48px);font-weight:600;line-height:1.3;letter-spacing:-1px;margin:0}.pause-content>p:not(.eyebrow){font-size:15px;line-height:1.8;color:var(--muted);margin:20px 0 28px;overflow-wrap:anywhere}.button-primary,.button-secondary{min-height:66px;border-radius:4px;font-size:18px;font-weight:600;padding:18px 30px;display:inline-flex;align-items:center;justify-content:center;gap:30px;letter-spacing:.5px}.button-primary{background:var(--acid);border:1px solid var(--acid);color:#27301d}.button-primary:hover{background:#edffbb;border-color:#edffbb}.button-secondary{background:#24272f;border:1px solid #626873;color:var(--paper)}.button-secondary:hover{background:#343944;border-color:#b0b3bd}.button-primary svg{width:23px;height:23px}.pause-content .button-primary{min-width:245px}.music-timeline{padding-top:17px}.timeline-top{display:flex;align-items:center;gap:22px}.timeline-title{flex:1;font-size:13px;letter-spacing:.5px}.timeline-title>span{font-size:11px;color:var(--muted);margin-left:13px}.beat-dots{display:flex;gap:7px;align-items:center}.beat-dots i{display:block;width:6px;height:6px;background:#626773;border-radius:50%}.beat-dots i.active{background:var(--acid);box-shadow:0 0 12px #dfff7f35}.time-display{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.time-divider{margin:0 8px;color:#787e88}#duration{color:var(--muted)}.progress-track{height:4px;position:relative;background:#3f444d;margin-top:13px;border-radius:1px;overflow:hidden}.progress-fill{position:absolute;left:0;top:0;height:100%;width:0;background:var(--acid)}.play-hint{display:flex;align-items:center;justify-content:center;gap:25px;margin:17px 0 0;font-size:11px;color:var(--muted)}.play-hint>span{display:flex;align-items:center;gap:7px}.play-hint kbd{font-size:10px;padding:3px 5px}.touch-controls{display:none}

/* Finishing a full song has a separate, quiet result screen. */
.results-screen{max-width:980px;margin:auto;padding:38px 0 52px;text-align:center;min-height:calc(100svh - 164px);display:flex;flex-direction:column;align-items:center;justify-content:center}.results-art{position:relative;width:76px;height:76px;margin-bottom:27px}.results-art>span{display:block;width:66px;height:66px;border:1px solid #555347;border-radius:50%;background:repeating-radial-gradient(circle at center,#272c2c 0px,#272c2c 4px,#42453d 5px,#272c2c 6px)}.results-art>span:after{content:"";position:absolute;width:20px;height:20px;background:var(--acid);border-radius:50%;left:23px;top:23px}.results-art svg{position:absolute;right:-10px;bottom:-2px;width:36px;height:36px;color:var(--lilac);stroke-width:2px}.results-screen .eyebrow{margin-bottom:15px}.results-screen h1{font-size:clamp(36px,4vw,58px);line-height:1.25;letter-spacing:-1.5px;font-weight:600;margin:0;max-width:100%;overflow-wrap:anywhere}.results-copy{font-size:16px;color:var(--muted);line-height:1.8;margin:18px 0 38px}.result-stats{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;width:100%;max-width:850px;padding:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.result-stats>div{display:flex;flex-direction:column;gap:15px;padding:0 20px;border-left:1px solid var(--line)}.result-stats>div:first-child{border-left:0}.result-stats>div>span{font-size:13px;color:var(--muted);letter-spacing:1px}.result-stats strong{font-size:44px;line-height:1;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-1.5px}.result-score-block strong{color:var(--acid)}.result-extras{display:flex;gap:36px;align-items:center;justify-content:center;margin:20px 0 38px;font-size:13px;color:var(--muted)}.result-extras b{font-weight:500;font-size:17px;color:var(--paper);margin-left:12px}.result-actions{display:flex;gap:14px;width:100%;max-width:540px}.result-actions>button{flex:1}.result-actions .button-primary{flex:1.3}.site-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid var(--line);min-height:76px;font-size:10px;letter-spacing:1.5px;color:var(--muted)}.site-footer button{min-height:44px;background:transparent;border:0;padding:12px 0;font-size:12px;letter-spacing:.5px;color:#c9cbd0}.site-footer button:hover{color:var(--acid)}.site-footer button>span{margin-left:4px}.footer-edition{font-size:11px;letter-spacing:1px}

.modal{max-width:calc(100vw - 32px);width:460px;background:#202329;color:var(--paper);border:1px solid #606671;border-radius:7px;padding:28px;box-shadow:0 30px 100px #0008}.modal::backdrop{background:#090b11bc;backdrop-filter:blur(7px)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:27px}.modal-header h2{font-size:24px;font-weight:600;margin:8px 0 0;letter-spacing:-.4px}.modal-header .icon-button{margin-right:-9px;align-self:start;color:#c2c6ca}.setting-row{display:flex;flex-direction:column;margin:26px 0;gap:13px}.setting-row label{font-size:15px;display:flex;align-items:center;justify-content:space-between}.setting-row output{font-size:14px;color:var(--acid);font-variant-numeric:tabular-nums}.setting-row input{width:100%;height:26px;accent-color:var(--acid);cursor:pointer;margin:0}.setting-hint{color:#b4b9c3;font-size:13px;line-height:1.7}.checkbox-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-top:1px solid #464b55;cursor:pointer}.checkbox-row>span{display:flex;flex-direction:column;gap:7px}.checkbox-row strong{font-size:15px;font-weight:500}.checkbox-row small{font-size:13px;line-height:1.5;color:#b4b9c3}.checkbox-row input{accent-color:var(--acid);width:20px;height:20px;cursor:pointer;flex-shrink:0}.modal-footnote{margin:13px 0 0;font-size:12px;color:#aab0bd;line-height:1.7}.credits-content h3{font-size:18px;font-weight:500;line-height:1.5}.credits-content p{color:#bec2cb;font-size:14px;line-height:1.9;margin:20px 0}.credits-signature{border-top:1px solid var(--line);margin-top:28px;padding-top:18px;display:flex;align-items:center;justify-content:space-between;font-size:22px;font-weight:800;letter-spacing:-1px}.credits-signature span{font-size:9px;letter-spacing:1px;color:var(--acid);font-weight:500}

@media(max-width:1100px){.app-shell{padding-inline:30px}.select-screen{gap:48px;padding-block:44px;grid-template-columns:minmax(260px,.85fr) minmax(340px,1fr)}.record-title{font-size:102px;top:65px;letter-spacing:-6px}.record-title>span{font-size:8px;letter-spacing:1px}.record-sticker{width:70px;height:83px;top:61px;right:17px}.record-sticker strong{font-size:37px}.record-sticker>span{font-size:5px}.record-star{width:38px;height:38px;bottom:69px;left:23px}.sleeve-topline,.sleeve-bottomline{left:21px;right:21px;font-size:8px}.track-caption{gap:12px}.track-caption h2{font-size:21px}.track-caption p{font-size:11px}.track-facts{font-size:11px;gap:5px}.track-facts b{font-size:15px}.track-facts>span{margin-inline:3px}.selection-content h1{font-size:47px}.select-copy{font-size:14px}.start-button{padding-inline:22px}.start-button strong{font-size:23px}.selection-bottom{font-size:11px}.headphone-note{font-size:11px}.mechanic-legend>span{font-size:11px;gap:4px}.mechanic-legend svg{width:18px}.controls-list{grid-template-columns:1fr}.stage{height:min(64svh,680px)}}
@media(max-width:760px){.app-shell{padding-inline:24px}.site-header{height:76px}.wordmark{font-size:27px}.brand-cn{font-size:12px;letter-spacing:3px;padding-left:14px;margin-left:14px}.header-right{gap:0}.edition{display:none}.select-screen{display:flex;flex-direction:column;gap:32px;max-width:490px;padding:34px 0 30px;min-height:calc(100svh - 145px)}.record-presentation{width:100%}.record-sleeve{width:210px;height:210px;aspect-ratio:1;float:left;margin:6px 27px 5px 6px;transform:rotate(-5deg)}.record-title{font-size:67px;top:48px;left:14px;letter-spacing:-4px}.record-title>span{font-size:6px;margin:10px 0 0 3px;letter-spacing:.7px}.sleeve-topline,.sleeve-bottomline{left:14px;right:14px;font-size:6px}.sleeve-topline{top:13px;padding-bottom:9px}.sleeve-bottomline{bottom:12px;padding-top:9px}.record-sticker{width:46px;height:55px;right:12px;top:44px}.record-sticker strong{font-size:25px;letter-spacing:-2px;margin:1px 2px 3px 0}.record-sticker>span{font-size:3px;letter-spacing:.4px}.record-star{width:27px;height:27px;bottom:41px;left:16px}.record-label:before{font-size:13px;letter-spacing:-1px}.record-label i{width:5px;height:5px}.track-caption{display:flex;min-height:220px;flex-direction:column;justify-content:center;align-items:start;gap:23px;padding:0}.track-caption h2{font-size:25px;letter-spacing:1px;margin-bottom:11px}.track-caption p{font-size:12px}.track-facts{font-size:12px;gap:6px}.track-facts b{font-size:17px}.selection-content{width:100%}.eyebrow{font-size:11px;letter-spacing:2px;margin-bottom:16px}.selection-content h1{font-size:45px;line-height:1.17;letter-spacing:-1.5px}.selection-content h1 br{display:none}.select-copy{font-size:14px;margin:18px 0 24px;line-height:1.85}.select-copy br{display:none}.start-button{min-height:84px;padding:17px 22px}.start-button strong{font-size:24px}.start-button small{font-size:13px}.selection-bottom{margin-top:19px;font-size:12px}.headphone-note{font-size:12px}.how-to-play{margin-top:19px}.how-to-play summary{font-size:14px;min-height:50px}.mechanic-legend>span{font-size:12px;gap:6px}.mechanic-legend svg{width:20px}.controls-list{grid-template-columns:1fr 1fr}.site-footer{min-height:68px;font-size:9px;gap:16px}.footer-edition{display:none}.site-footer button{font-size:11px}.play-screen{padding-top:17px}.game-hud{min-height:62px}.phase-block strong{font-size:14px}.micro-label{font-size:10px}.hud-stats{gap:26px}.hud-stats strong{font-size:23px}.score-stat{min-width:85px!important}.stage{height:auto;aspect-ratio:1000/680;min-height:0}.play-hint{gap:15px;flex-wrap:wrap;font-size:10px}.results-screen{padding-top:40px;min-height:calc(100svh - 145px)}.results-screen h1{font-size:42px}.results-copy{font-size:14px;margin:17px 0 28px}.results-art{margin-bottom:24px}.result-stats{grid-template-columns:1.3fr 1fr;padding:0;border-bottom:0}.result-stats>div{padding:23px 10px;border-bottom:1px solid var(--line);gap:12px}.result-stats>div:nth-child(3){border-left:0}.result-stats strong{font-size:39px}.result-stats>div>span{font-size:12px}.result-extras{gap:28px;margin:20px 0 30px;font-size:12px}.result-actions{max-width:490px}.button-primary,.button-secondary{min-height:66px;font-size:17px;padding:18px 22px;gap:19px}.pause-content>p:not(.eyebrow){font-size:13px;margin:15px 0 21px}.pause-content .eyebrow{font-size:10px;margin-bottom:12px}}
@media(max-width:440px){.app-shell{padding-inline:18px}.site-header{height:68px;gap:12px}.wordmark{font-size:24px}.brand-symbol{width:22px;gap:3px;margin-right:10px}.brand-symbol i{width:5px;height:21px}.brand-symbol i:nth-child(2){height:14px}.brand-symbol i:nth-child(3){height:8px}.brand-cn{font-size:11px;letter-spacing:2px;margin-left:12px;padding-left:12px}.toolbar{gap:0}.icon-button{width:40px;height:44px}.icon-button svg{width:20px;height:20px}.select-screen{gap:29px;padding-top:30px;min-height:calc(100svh - 137px)}.record-sleeve{width:153px;height:153px;margin:5px 24px 3px 3px}.record-title{font-size:50px;top:35px;left:10px;letter-spacing:-3px}.record-title>span{font-size:4px;margin-top:8px;letter-spacing:.5px}.sleeve-topline,.sleeve-bottomline{left:10px;right:10px;font-size:4px;letter-spacing:.7px}.sleeve-topline{top:10px;padding-bottom:6px}.sleeve-bottomline{bottom:9px;padding-top:6px}.record-sticker{width:34px;height:41px;right:9px;top:33px}.record-sticker strong{font-size:19px;letter-spacing:-1px;margin:1px 0 2px}.record-sticker>span{font-size:2.3px;letter-spacing:.3px}.record-star{width:21px;height:21px;left:11px;bottom:29px}.record-label:before{font-size:10px}.record-label i{width:4px;height:4px}.track-caption{min-height:163px;gap:20px}.track-caption h2{font-size:23px;margin-bottom:9px}.track-caption p{font-size:11px;line-height:1.4}.track-facts{font-size:10px;gap:5px}.track-facts b{font-size:15px}.track-facts>span{height:12px;margin-inline:2px}.selection-content h1{font-size:37px;letter-spacing:-1.5px;line-height:1.22}.selection-content h1 br{display:block}.selection-content .eyebrow{font-size:10px;margin-bottom:14px}.select-copy{font-size:13px;line-height:1.9;margin:17px 0 22px}.start-options{gap:10px}.start-button{min-height:84px;padding:18px 21px}.start-button strong{font-size:23px}.start-button small{font-size:13px}.start-button svg{width:25px;height:25px}.selection-bottom{font-size:11px;gap:10px;margin-top:19px}.headphone-note{font-size:11px}.best-label{gap:9px}.best-label strong{font-size:13px}.how-to-play{margin-top:18px}.mechanic-legend{gap:5px}.mechanic-legend>span{font-size:11px;gap:4px}.mechanic-legend svg{width:18px}.instructions>p{font-size:12px}.controls-list{grid-template-columns:1fr}.site-footer{font-size:8px;letter-spacing:1px;gap:10px}.site-footer button{font-size:10px}.play-screen{padding-top:14px}.game-hud{gap:13px;padding-bottom:13px;min-height:60px}.phase-block{gap:6px}.phase-block strong{font-size:12px}.phase-block .micro-label{font-size:8px;letter-spacing:1px}.hud-stats{gap:19px}.hud-stats>div{min-width:30px;gap:7px}.hud-stats .micro-label{font-size:9px}.hud-stats strong{font-size:20px}.combo-stat small{font-size:13px;margin-left:2px}.score-stat{min-width:73px!important}.stage{aspect-ratio:1000/680;min-height:245px}.music-timeline{padding-top:16px}.timeline-top{gap:16px}.timeline-title{font-size:12px}.timeline-title>span{font-size:10px;margin-left:8px}.time-display{font-size:11px}.beat-dots{gap:5px}.beat-dots i{width:5px;height:5px}.time-divider{margin-inline:5px}.play-hint{gap:12px;font-size:10px;row-gap:13px;margin-top:18px}.play-hint>span{gap:6px}.play-hint kbd{font-size:9px}.game-overlay{padding:20px}.pause-content h2{font-size:29px}.pause-content>p:not(.eyebrow){font-size:12px;line-height:1.7;margin:13px 0 19px}.pause-content .button-primary{min-width:215px;min-height:64px;font-size:17px}.results-screen{padding:34px 0;min-height:calc(100svh - 137px)}.results-screen .eyebrow{font-size:10px}.results-screen h1{font-size:35px;letter-spacing:-1px}.results-copy{font-size:13px;line-height:1.85;max-width:300px;margin:16px 0 27px}.results-art{margin-bottom:20px}.result-stats strong{font-size:35px}.result-stats>div{padding:22px 8px}.result-stats>div>span{font-size:12px}.result-extras{gap:23px;font-size:12px}.result-extras b{font-size:16px;margin-left:9px}.result-actions{flex-direction:column;gap:11px}.result-actions>button{width:100%;min-height:66px;font-size:18px}.modal{padding:23px;max-width:calc(100vw - 28px)}.modal-header h2{font-size:22px}.modal-header .micro-label{font-size:9px}.credits-signature span{font-size:7px;letter-spacing:.8px}.credits-content p{font-size:13px}.credits-signature{font-size:21px}}

@media(pointer:coarse){.instructions>.touch-instruction{display:block}.touch-controls{display:flex;align-items:center;gap:12px;padding:18px 8px 0;touch-action:none;user-select:none}.joystick{position:relative;width:90px;height:90px;border-radius:50%;background:#252a33;border:1px solid #626978;touch-action:none;flex-shrink:0}.joystick:after{content:"";position:absolute;inset:14px;border:1px dashed #596171;border-radius:50%;pointer-events:none}.joystick-knob{position:absolute;left:50%;top:50%;width:42px;height:42px;border-radius:50%;transform:translate(-50%,-50%);background:#868c9a;border:1px solid #b6bbc6;box-shadow:0 3px 9px #0005;z-index:1;pointer-events:none}.joystick-cross:before,.joystick-cross:after{content:"";position:absolute;left:50%;top:50%;background:#555d6b;transform:translate(-50%,-50%)}.joystick-cross:before{width:64px;height:1px}.joystick-cross:after{height:64px;width:1px}.touch-hint{font-size:12px;color:var(--muted)}.touch-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.touch-actions button{display:grid;place-items:center;border-radius:50%;width:70px;height:70px;font-size:16px;touch-action:none}.touch-dash{background:#303640;border:1px solid #7a8394;color:var(--paper)}.touch-actions .touch-attack{background:var(--acid);border:1px solid var(--acid);color:#26301b;font-weight:600;width:84px;height:84px;font-size:18px}.touch-actions button:active{background:var(--lilac);color:#252b32}.play-hint{display:none}}
@media(pointer:coarse) and (max-width:440px){.touch-controls{padding-inline:2px;gap:10px}.touch-hint{font-size:11px}.joystick{width:84px;height:84px}.joystick-knob{width:40px;height:40px}.touch-actions{gap:10px}.touch-actions button{width:64px;height:64px}.touch-actions .touch-attack{width:78px;height:78px}}
@media(pointer:coarse) and (orientation:landscape) and (max-height:600px){.app-shell{padding-inline:20px}.site-header{height:55px}.wordmark{font-size:24px}.brand-cn{font-size:11px}.play-screen{position:relative;padding:10px 110px 12px}.game-hud{min-height:43px;padding-bottom:9px}.phase-block .micro-label{display:none}.phase-block strong{font-size:12px}.hud-stats{gap:22px}.hud-stats>div{flex-direction:row;align-items:center;gap:8px}.hud-stats strong{font-size:19px}.hud-stats .micro-label{font-size:9px}.score-stat{min-width:auto!important}.stage{height:calc(100svh - 159px);min-height:180px;aspect-ratio:auto}.music-timeline{padding-top:11px}.timeline-title{font-size:11px}.timeline-title>span{font-size:10px}.progress-track{margin-top:10px}.time-display{font-size:11px}.touch-controls{position:absolute;inset:56px 0 48px;pointer-events:none;justify-content:space-between;align-items:center;padding:0}.joystick,.touch-actions{pointer-events:auto}.touch-hint{display:none}.touch-actions{margin-left:0;flex-direction:column;gap:13px}.joystick{width:88px;height:88px}.touch-actions button{width:66px;height:66px}.touch-actions .touch-attack{width:78px;height:78px}.game-overlay{padding:18px}.pause-content h2{font-size:27px}.pause-content .eyebrow{display:none}.pause-content>p:not(.eyebrow){font-size:12px;line-height:1.6;margin:10px 0 14px}.pause-content .button-primary{min-height:60px;font-size:16px}.selection-content h1{font-size:40px}.select-screen{padding-block:28px}.results-screen{min-height:0}.results-art{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body.reduce-motion *,body.reduce-motion *:before,body.reduce-motion *:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}

/* Soft record shapes carry through the interface, while the arena stays crisp. */
.icon-button{width:44px;height:44px;border-radius:50%;background:#23272e;border-color:#363c45;box-shadow:inset 0 1px 0 #ffffff07}
.icon-button:hover{background:#363c46;border-color:#747c8a}
.start-button,.button-primary,.button-secondary{border-radius:999px;box-shadow:inset 0 1px 0 #ffffff24,0 5px 16px #090b101c;transition:background .18s,color .18s,border-color .18s,box-shadow .18s,transform .12s}
.start-button{padding-inline:28px;min-height:88px}
.start-primary{box-shadow:inset 0 2px 0 #ffffff58,0 7px 22px #090b1029}
.start-secondary{background:#242932;border-color:#606976;box-shadow:inset 0 1px 0 #ffffff0d}
.start-button>svg{width:46px;height:46px;padding:12px;border-radius:50%;background:#26301d13;flex-shrink:0}
.start-secondary>svg{background:#bbb1ef15;color:#d3caf9}
.button-primary>svg{width:35px;height:35px;padding:7px;border-radius:50%;background:#26301d13;flex-shrink:0}
.start-button:hover,.button-primary:hover{box-shadow:inset 0 2px 0 #ffffff6b,0 7px 22px #090b1033}
.start-secondary:hover,.button-secondary:hover{box-shadow:inset 0 1px 0 #ffffff19}
.start-button:active:not(:disabled),.button-primary:active:not(:disabled),.button-secondary:active:not(:disabled),.icon-button:active:not(:disabled),.touch-actions button:active{transform:translateY(2px);box-shadow:inset 0 2px 3px #10151a13}
.button-primary,.button-secondary{padding-inline:30px;min-height:68px}
.record-sleeve{border-radius:32px;box-shadow:inset 0 2px 0 #ffffff35,0 24px 70px #0003}
.record-sticker{border-radius:18px;box-shadow:inset 0 1px 0 #ffffff88,4px 5px 0 #25252e17}
.record-disc{box-shadow:inset 0 1px 0 #ffffff12,-13px -6px 0 #28273317}
.track-facts{border:1px solid #414750;background:#20252b;border-radius:999px;padding:11px 14px}
.stage{border-radius:28px;border-color:#58616d;box-shadow:inset 0 1px 0 #ffffff10,0 15px 45px #090b101c}
.stage canvas{border-radius:27px}
.game-overlay{border-radius:27px}

.progress-track,.progress-fill{border-radius:999px}
.progress-track{height:6px;background:#414852}
kbd{border-radius:7px;background:#2a3039;border-color:#68717f;box-shadow:0 1px 0 #11151b}
.result-stats{border:1px solid #424a55;border-radius:28px;background:#20262e;overflow:hidden;box-shadow:inset 0 1px 0 #ffffff09}
.result-stats>div{border-color:#434b57}
.result-score-block{background:linear-gradient(90deg,#dfff7f07,transparent)}
.result-extras>span{border:1px solid #3d4651;border-radius:999px;background:#20262e;padding:9px 17px}
.result-extras{gap:14px}
.modal{border-radius:28px;border-color:#68717f;box-shadow:inset 0 1px 0 #ffffff10,0 30px 100px #0008}
.modal-header .icon-button{flex-shrink:0}
.site-footer button{border-radius:999px;padding-inline:15px}
.site-footer button:hover{background:#242a32}
.how-to-play{border:1px solid #404751;border-radius:23px;background:#20252c;margin-top:21px;overflow:hidden}
.how-to-play summary{min-height:54px;padding:0 19px;font-size:14px}
.how-to-play summary:hover{background:#292f38}
.how-to-play .instructions{padding:5px 19px 14px}
.how-to-play summary:focus-visible{outline-offset:-4px;border-radius:22px}
.details-plus{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;font-size:20px;line-height:1;background:#343c48;color:#d9dfeb;flex-shrink:0}

/* The move catalog is optional, and stays behind one collapsed disclosure. */
.mechanic-codex{margin-top:12px;border:1px solid #404751;border-radius:23px;background:#20252c;overflow:hidden}
.mechanic-codex summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:0 19px;cursor:pointer;font-size:14px;color:var(--paper)}
.mechanic-codex summary::-webkit-details-marker{display:none}
.mechanic-codex summary:hover{background:#292f38}
.mechanic-codex summary:focus-visible{outline-offset:-4px;border-radius:22px}
.mechanic-codex summary:after{content:"+";width:25px;height:25px;display:grid;place-items:center;flex-shrink:0;border-radius:50%;font-size:20px;line-height:1;font-weight:300;background:#343c48;color:#d9dfeb}
.mechanic-codex[open] summary:after{content:"−"}
.mechanic-codex summary:has(.details-plus):after{display:none}
.mechanic-codex[open] summary .details-plus{transform:rotate(45deg)}
.select-screen:has(.mechanic-codex[open]){align-items:start}
#mechanic-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:3px 12px 12px}
.codex-item{min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr);column-gap:9px;row-gap:5px;align-items:center;padding:15px 12px 13px;border:1px solid #4c5664;border-radius:19px;background:#292f39;box-shadow:inset 0 1px 0 #ffffff08}
.codex-icon{grid-column:1;grid-row:1 / span 2;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#bbb1ef14;color:var(--lilac);align-self:start}
.codex-icon svg{width:25px;height:25px;stroke-width:1.7}
.codex-item>strong{grid-column:2;font-size:13px;line-height:1.4;font-weight:600;color:var(--paper);overflow-wrap:anywhere}
.codex-item>span:not(.codex-icon),.codex-item>small{grid-column:2;font-size:10px;line-height:1.4;color:#c7ccd5;letter-spacing:.5px}
.codex-item>p{grid-column:1 / -1;margin:6px 0 0;font-size:12px;line-height:1.75;color:#c2c8d2;overflow-wrap:anywhere}
.codex-item[data-kind="dodge"] .codex-icon,.codex-item.dodge .codex-icon{color:var(--coral);background:#ff796512}
.codex-item[data-kind="soak"] .codex-icon,.codex-item.soak .codex-icon{color:var(--mint);background:#88dfc012}
.codex-item[data-kind="target"] .codex-icon,.codex-item.hit .codex-icon{color:var(--yellow);background:#f4d67a12}
.mechanic-codex>p,.codex-note,.codex-learning,.codex-stage-note{font-size:12px;line-height:1.8;color:#b9c0cc;margin:4px 18px 17px;overflow-wrap:anywhere}
.mechanic-codex+.codex-note,.mechanic-codex+.codex-learning,.mechanic-codex+.codex-stage-note{margin:12px 3px 0}
@media(max-width:1100px){.track-facts{padding:9px 11px;gap:5px}.track-facts>span{margin-inline:2px}.start-button{padding-inline:25px}.record-sleeve{border-radius:28px}}
@media(max-width:760px){.record-sleeve{border-radius:25px}.record-sticker{border-radius:11px}.track-facts{padding:10px 12px}.start-button{min-height:86px}.result-stats{border-bottom:1px solid #424a55}.result-stats>div:nth-last-child(-n+2){border-bottom:0}.result-extras{gap:11px}.result-extras>span{padding:9px 13px}.how-to-play .instructions{padding-inline:15px}.mechanic-legend>span{font-size:11px}.codex-item{padding:15px 14px}.stage{border-radius:24px}.stage canvas,.game-overlay{border-radius:23px}}
@media(max-width:440px){.icon-button{width:44px;height:44px}.brand-cn{margin-left:10px;padding-left:10px}.wordmark{font-size:23px}.record-sleeve{border-radius:21px}.record-sticker{border-radius:8px}.track-facts{padding:9px 10px;gap:4px}.track-facts b{font-size:14px}.track-facts>span{margin-inline:1px}.start-button{min-height:86px;padding:18px 24px;gap:14px}.start-button>svg{width:43px;height:43px;padding:11px}.start-button strong{font-size:23px}.button-primary,.button-secondary{min-height:68px;padding-inline:25px}.stage{border-radius:21px}.stage canvas,.game-overlay{border-radius:20px}.how-to-play summary,.mechanic-codex summary{font-size:14px;padding-inline:17px;min-height:55px}.mechanic-legend{flex-wrap:wrap;justify-content:flex-start;gap:12px 15px}.mechanic-legend>span{font-size:12px}.how-to-play .instructions{padding-inline:17px}.result-stats{border-radius:24px}.result-extras{gap:10px}.result-extras>span{font-size:11px;padding:9px 11px}.result-extras b{font-size:15px;margin-left:6px}.modal{border-radius:25px}.site-footer button{padding-inline:12px}#mechanic-catalog{grid-template-columns:1fr;padding:3px 10px 10px;gap:9px}.codex-item{grid-template-columns:40px minmax(0,1fr);padding:15px 16px;column-gap:12px;row-gap:3px}.codex-icon{width:40px;height:40px}.codex-item>strong{font-size:15px}.codex-item>span:not(.codex-icon),.codex-item>small{font-size:11px}.codex-item>p{font-size:12px;margin-top:8px}.mechanic-codex>p,.codex-note,.codex-learning,.codex-stage-note{font-size:12px}}
@media(max-width:365px){.brand-cn{display:none}.track-caption h2{font-size:21px}.track-facts{flex-wrap:wrap;font-size:9px;padding:8px;gap:3px}.track-facts b{font-size:13px}.track-facts>span{display:none}}
@media(prefers-reduced-motion:reduce){.start-button:active:not(:disabled),.button-primary:active:not(:disabled),.button-secondary:active:not(:disabled),.icon-button:active:not(:disabled),.touch-actions button:active{transform:none}}
body.reduce-motion .start-button:active,body.reduce-motion .button-primary:active,body.reduce-motion .button-secondary:active,body.reduce-motion .icon-button:active,body.reduce-motion .touch-actions button:active{transform:none}

/* Reward feedback lives outside the arena. Its pulses follow the music clock. */
.reward-band{--reward-pulse:0;--reward-accent:0;--reward-rgb:187,193,205;--reward-color:#bbc1cd;--reward-strength:1;position:relative;isolation:isolate;contain:paint;overflow:hidden;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;column-gap:15px;width:100%;height:64px;min-height:64px;margin:0 0 12px;padding:8px 19px;border:1px solid rgba(var(--reward-rgb),calc(.25 + var(--reward-pulse)*.26 + var(--reward-accent)*.12));border-radius:23px;background:#222830;box-shadow:inset 0 1px 0 #ffffff0a,inset 0 0 calc(12px + var(--reward-pulse)*22px) rgba(var(--reward-rgb),calc(var(--reward-pulse)*.065 + var(--reward-accent)*.035));pointer-events:none}
.reward-band:before{content:"";position:absolute;z-index:-1;inset:-75% -5%;background:repeating-conic-gradient(from 11deg at 8% 50%,transparent 0deg 23deg,rgba(var(--reward-rgb),.8) 23.5deg 24.5deg,transparent 25deg 42deg);opacity:calc((var(--reward-pulse)*.085 + var(--reward-accent)*.035)*var(--reward-strength));transform:rotate(calc(var(--reward-pulse)*2deg));transform-origin:8% 50%}
.reward-band:after{content:"";position:absolute;z-index:-1;inset:0;border-radius:inherit;background:linear-gradient(100deg,rgba(var(--reward-rgb),.13),transparent 55%);opacity:calc(.2 + var(--reward-pulse)*.65 + var(--reward-accent)*.2)}
.reward-band[data-kind="perfect"]{--reward-rgb:223,255,127;--reward-color:var(--acid)}
.reward-band[data-kind="good"]{--reward-rgb:187,177,239;--reward-color:var(--lilac)}
.reward-band[data-kind="core"]{--reward-rgb:244,214,122;--reward-color:var(--yellow)}
.reward-band[data-kind="combo"]{--reward-rgb:223,255,127;--reward-color:var(--acid)}
.reward-band[data-kind="soak"]{--reward-rgb:136,223,192;--reward-color:var(--mint)}
.reward-band[data-kind="hurt"]{--reward-rgb:255,121,101;--reward-color:var(--coral)}
.reward-band[data-kind="offbeat"]{--reward-rgb:196,194,218;--reward-color:#c4c2da}
.reward-band[data-tier="2"]{--reward-strength:1.2}
.reward-band[data-tier="3"]{--reward-strength:1.45}
.reward-mark{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;border-radius:50%;color:var(--reward-color);border:1px solid rgba(var(--reward-rgb),.22);background:rgba(var(--reward-rgb),.07);transform:scale(calc(1 + var(--reward-pulse)*.1 + var(--reward-accent)*.035)) rotate(calc(var(--reward-pulse)*-8deg));filter:saturate(calc(1 + var(--reward-pulse)*.18))}
.reward-mark svg{width:30px;height:30px;stroke-width:1.6;fill:rgba(var(--reward-rgb),calc(.07 + var(--reward-pulse)*.12))}
.reward-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding-block:1px}
.reward-band .judgement{position:static;inset:auto;z-index:auto;display:block;max-width:100%;margin:0;padding:0;border:0;border-radius:0;background:none;color:var(--reward-color);font-size:22px;font-weight:750;line-height:1.08;letter-spacing:.6px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform:scale(calc(1 + var(--reward-pulse)*.025));transform-origin:left center;text-shadow:0 0 calc(var(--reward-pulse)*15px) rgba(var(--reward-rgb),calc(var(--reward-pulse)*.18));pointer-events:none}
.reward-detail{max-width:100%;font-size:11px;line-height:1.2;color:#c6cbd4;letter-spacing:.15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reward-score{min-width:74px;max-width:120px;display:block;justify-self:end;padding:8px 13px;border:1px solid rgba(var(--reward-rgb),.28);border-radius:999px;background:rgba(var(--reward-rgb),.08);color:var(--reward-color);font-size:19px;font-weight:650;line-height:1.1;letter-spacing:.3px;font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform:scale(calc(1 + var(--reward-pulse)*.045))}
.reward-score:empty{visibility:hidden;min-width:0;max-width:0;padding:0;border:0}
.combo-stat strong{font-size:30px}
#combo{display:inline-block;transform:scale(calc(1 + var(--combo-pulse,0)*.12));transform-origin:center 65%;text-shadow:0 0 calc(var(--combo-pulse,0)*14px) rgba(223,255,127,calc(var(--combo-pulse,0)*.25));font-variant-numeric:tabular-nums}
.play-screen .stage{height:min(65svh,calc(100svh - 354px),680px)}
@media(max-width:760px){.reward-band{height:60px;min-height:60px;grid-template-columns:36px minmax(0,1fr) auto;column-gap:12px;padding:8px 15px;border-radius:22px}.reward-mark{width:36px;height:36px}.reward-mark svg{width:26px;height:26px}.reward-band .judgement{font-size:21px}.reward-detail{font-size:11px}.reward-score{min-width:68px;padding:8px 11px;font-size:17px}.combo-stat strong{font-size:27px}.play-screen .stage{height:auto}}
@media(max-width:440px){.reward-band{height:58px;min-height:58px;margin-bottom:10px;padding:8px 12px;grid-template-columns:30px minmax(0,1fr) auto;column-gap:10px;border-radius:20px}.reward-mark{width:30px;height:30px}.reward-mark svg{width:24px;height:24px;stroke-width:1.7}.reward-copy{gap:4px}.reward-band .judgement{font-size:19px;letter-spacing:.25px;line-height:1.1}.reward-detail{font-size:10px;letter-spacing:0}.reward-score{min-width:60px;max-width:83px;padding:7px 9px;font-size:16px;letter-spacing:0}.combo-stat strong{font-size:25px}.combo-stat small{font-size:13px}.hud-stats{gap:17px}}
@media(max-width:365px){.reward-band{column-gap:8px;padding-inline:10px;grid-template-columns:27px minmax(0,1fr) auto}.reward-mark{width:27px;height:27px}.reward-band .judgement{font-size:17px}.reward-score{min-width:54px;padding:7px 7px;font-size:15px}.reward-detail{font-size:9px}}
@media(pointer:coarse) and (orientation:landscape) and (max-height:600px){.reward-band{height:58px;min-height:58px;margin-bottom:10px;border-radius:20px;grid-template-columns:30px minmax(0,1fr) auto;padding:7px 13px;column-gap:10px}.reward-mark{width:30px;height:30px}.reward-mark svg{width:24px;height:24px}.reward-band .judgement{font-size:19px}.reward-detail{font-size:10px}.reward-score{font-size:16px;min-width:62px;padding:7px 10px}.combo-stat strong{font-size:22px}.play-screen .stage{height:calc(100svh - 227px);min-height:160px}.touch-controls{top:124px}}
@media(prefers-reduced-motion:reduce){.reward-mark,.reward-band .judgement,.reward-score,#combo{transform:none!important;filter:none!important;text-shadow:none!important}.reward-band:before{display:none}.reward-band:after{opacity:.2}.reward-band{box-shadow:inset 0 1px 0 #ffffff0a}}
body.reduce-motion .reward-mark,body.reduce-motion .reward-band .judgement,body.reduce-motion .reward-score,body.reduce-motion #combo{transform:none!important;filter:none!important;text-shadow:none!important}body.reduce-motion .reward-band:before{display:none}body.reduce-motion .reward-band:after{opacity:.2}body.reduce-motion .reward-band{box-shadow:inset 0 1px 0 #ffffff0a}

/* A record collection: the cover is the choice, controls appear only when opened. */
.select-screen{display:block;max-width:1230px;min-height:calc(100svh - 164px);padding:38px 0 34px;margin-inline:auto}
.library-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:31px}
.library-heading .eyebrow{font-size:10px;letter-spacing:2px;margin:0 0 12px}
.library-heading h1{font-size:39px;line-height:1.25;letter-spacing:-1px;font-weight:600;margin:0}
.library-copy{font-size:14px;line-height:1.7;color:var(--muted);margin:13px 0 0}
.gallery-hint{display:flex;align-items:center;gap:12px;margin:0 0 4px;font-size:12px;line-height:1.6;color:#c1c6cf;white-space:nowrap}
.gallery-hint svg{width:20px;height:20px;transform:rotate(45deg);color:var(--lilac)}
.gallery-touch-hint{display:none}
.song-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;align-items:start}
.song-card{min-width:0;--album-accent:var(--acid)}
.song-ragtime{--album-accent:#efc994}
.song-mountain{--album-accent:#a4e7e4}
.cover-frame{position:relative;isolation:isolate;aspect-ratio:1;overflow:hidden;border-radius:28px;background:#202630;box-shadow:0 15px 40px #080b121f}
.cover-toggle{position:relative;z-index:1;display:block;width:100%;height:100%;padding:0;border:0;border-radius:28px;background:none;cursor:pointer;overflow:hidden}
.cover-toggle:focus-visible{outline:3px solid #ffffff;outline-offset:-7px}
.album-illustration{display:block;width:100%;height:100%;fill:none;stroke:none;transition:transform .22s ease;transform-origin:center 35%}
.song-card[data-open="true"] .album-illustration{transform:scale(1.035) translateY(-3px)}
.song-actions{position:absolute;z-index:2;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:10px;padding:44px 18px 18px;background:linear-gradient(0deg,#111721eb 0%,#111721df 55%,#11172100 100%);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);transition:opacity .18s ease,transform .18s ease,visibility .18s}
.song-card[data-open="true"] .song-actions{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.song-actions .start-button{width:100%;min-height:78px;padding:15px 23px;gap:13px}
.song-actions .start-button>span{gap:6px;min-width:0}
.song-actions .start-button strong{font-size:21px;letter-spacing:.5px;white-space:nowrap}
.song-actions .start-button small{font-size:12px;letter-spacing:.2px;white-space:nowrap}
.song-actions .start-button>svg{width:41px;height:41px;padding:10px}
.song-actions .start-primary{background:var(--album-accent);border-color:var(--album-accent);color:#22291e}
.song-actions .start-primary:hover{background:#f2f8df;border-color:#f2f8df}
.song-actions .start-secondary{background:#242c36f5;border-color:#7c8697;color:var(--paper)}
.song-actions .start-secondary:hover{background:#374251;border-color:#cad1db}
.song-actions .start-secondary>svg{color:var(--album-accent);background:#ffffff09}
.song-caption{padding:19px 3px 0}
.song-caption-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.song-caption h2{font-size:23px;font-weight:550;letter-spacing:.6px;line-height:1.3;margin:0}
.song-number{font-size:11px;font-variant-numeric:tabular-nums;letter-spacing:1.5px;color:#929cae}
.song-artist{font-size:12px;color:#adb5c1;line-height:1.5;margin:6px 0 13px}
.song-meta{display:flex;align-items:center;justify-content:space-between;gap:9px;font-size:11px;color:#bec6d3;line-height:1.4}
.song-meta>span:last-child{display:flex;align-items:center;gap:9px;white-space:nowrap;font-variant-numeric:tabular-nums}
.song-meta i{display:block;width:3px;height:3px;border-radius:50%;background:#7c8798}
.song-genre{color:var(--album-accent);border:1px solid #414c5b;border-radius:999px;padding:5px 10px;white-space:nowrap;letter-spacing:.3px}
.library-meta{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:30px 3px 19px;padding-top:22px;border-top:1px solid var(--line);font-size:12px;line-height:1.6;color:#abb4c2}
.library-meta>span:nth-child(2){font-size:12px;letter-spacing:.2px}
.selection-help{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px}
.selection-help>.how-to-play,.selection-help>.mechanic-codex{margin-top:0}
.selection-help .controls-list{grid-template-columns:1fr 1fr;gap:13px 20px}
.selection-help .instructions{padding-top:7px}
.select-screen>.select-status{margin:19px 3px 0}
.timeline-title>#track-title{margin:0;font-size:inherit;color:var(--paper)}
.timeline-title>#track-bpm{color:var(--muted)}
.result-track{font-size:13px;color:var(--lilac);line-height:1.6;letter-spacing:.8px;margin:14px 0 0}
.result-track+.results-copy{margin-top:9px}
#track-credits>section,#track-credits>article{padding:17px 0;border-top:1px solid var(--line)}
#track-credits h3{font-size:17px;margin:0 0 8px}
#track-credits p{font-size:13px;line-height:1.8;margin:8px 0}
#track-credits a{font-size:12px;text-underline-offset:3px}
@media(min-width:1200px) and (min-height:950px){.select-screen{padding-top:51px}.library-heading{margin-bottom:37px}.library-heading h1{font-size:43px}.song-gallery{gap:30px}.song-actions .start-button{min-height:84px}.song-caption{padding-top:23px}}
@media(max-width:1100px){.select-screen{padding-top:33px}.song-gallery{gap:18px}.library-heading h1{font-size:35px}.song-caption h2{font-size:20px}.song-actions{padding:35px 14px 14px;gap:9px}.song-actions .start-button{min-height:76px;padding:15px 18px;gap:10px}.song-actions .start-button strong{font-size:19px}.song-actions .start-button small{font-size:11px}.song-actions .start-button>svg{width:37px;height:37px;padding:9px}.song-meta{font-size:10px;gap:7px}.song-meta>span:last-child{gap:6px}.song-genre{font-size:10px;padding:5px 8px}.selection-help .controls-list{grid-template-columns:1fr}.library-meta>span:nth-child(2){font-size:11px}}
@media(min-width:700px) and (max-width:880px){.song-gallery{gap:15px}.cover-frame,.cover-toggle{border-radius:23px}.song-caption{padding-top:16px}.song-caption h2{font-size:18px;letter-spacing:0}.song-artist{font-size:11px}.song-meta{align-items:flex-start;flex-direction:column;gap:9px}.song-meta>span:last-child{padding-left:3px;font-size:11px}.song-actions{padding:30px 10px 10px;gap:8px}.song-actions .start-button{min-height:70px;padding:13px 14px;gap:8px}.song-actions .start-button strong{font-size:17px}.song-actions .start-button small{font-size:10px}.song-actions .start-button>svg{width:31px;height:31px;padding:7px}.library-heading{gap:20px}.gallery-hint{font-size:11px;gap:8px}.gallery-hint svg{width:17px;height:17px}.library-meta{gap:13px;font-size:11px}.library-meta .headphone-note{font-size:11px}.library-meta>span:nth-child(2){display:none}}
@media(max-width:699px){.select-screen{display:block;max-width:440px;min-height:calc(100svh - 145px);padding:29px 0 31px}.library-heading{display:block;margin-bottom:25px}.library-heading .eyebrow{font-size:9px;letter-spacing:1.8px;margin-bottom:13px}.library-heading h1{font-size:34px;letter-spacing:-.7px;line-height:1.3}.library-copy{font-size:13px;margin-top:10px}.gallery-hint{font-size:11px;margin-top:17px;gap:9px}.gallery-hint svg{width:17px;height:17px}.song-gallery{grid-template-columns:1fr;gap:32px}.cover-frame,.cover-toggle{border-radius:28px}.song-caption{padding:17px 4px 0}.song-caption h2{font-size:24px;letter-spacing:.5px}.song-number{font-size:12px}.song-artist{font-size:13px;margin:7px 0 12px}.song-meta{font-size:12px;gap:13px}.song-genre{font-size:11px;padding:6px 12px}.song-meta>span:last-child{gap:10px}.song-actions{padding:45px 22px 22px;gap:11px}.song-actions .start-button{min-height:84px;padding:18px 26px;gap:18px}.song-actions .start-button strong{font-size:23px}.song-actions .start-button small{font-size:13px}.song-actions .start-button>svg{width:43px;height:43px;padding:11px}.library-meta{display:flex;flex-wrap:wrap;gap:13px 20px;margin-top:29px;padding-top:20px;font-size:12px}.library-meta>span:nth-child(2){order:3;width:100%;font-size:12px}.library-meta .headphone-note{font-size:12px}.selection-help{grid-template-columns:1fr;gap:11px}.selection-help .controls-list{grid-template-columns:1fr 1fr}.selection-help #mechanic-catalog{grid-template-columns:1fr 1fr}}
@media(max-width:440px){.select-screen{padding-top:25px;min-height:calc(100svh - 137px)}.library-heading h1{font-size:30px}.library-heading .eyebrow{font-size:8px;letter-spacing:1.7px}.library-copy{font-size:12px}.gallery-hint{font-size:11px;margin-top:15px}.song-gallery{gap:30px}.cover-frame,.cover-toggle{border-radius:25px}.song-caption h2{font-size:22px}.song-artist{font-size:12px}.song-meta{font-size:11px}.song-meta>span:last-child{gap:8px}.song-genre{font-size:11px;padding:6px 10px}.song-actions{padding:38px 18px 18px;gap:10px}.song-actions .start-button{min-height:84px;padding:18px 24px;gap:13px}.song-actions .start-button strong{font-size:22px}.song-actions .start-button small{font-size:12px}.song-actions .start-button>svg{width:41px;height:41px;padding:10px}.library-meta{font-size:11px;margin-top:27px}.library-meta .headphone-note{font-size:11px}.library-meta>span:nth-child(2){font-size:11px}.selection-help .controls-list,.selection-help #mechanic-catalog{grid-template-columns:1fr}.result-track{font-size:12px;letter-spacing:.4px;max-width:95%}}
@media(pointer:coarse){.gallery-hover-hint{display:none}.gallery-touch-hint{display:inline}}
@media(prefers-reduced-motion:reduce){.album-illustration,.song-actions{transition:none!important}.song-card[data-open="true"] .album-illustration,.song-actions{transform:none!important}}
body.reduce-motion .album-illustration,body.reduce-motion .song-actions{transition:none!important}body.reduce-motion .song-card[data-open="true"] .album-illustration,body.reduce-motion .song-actions{transform:none!important}

/* Let the artwork speak. Extra information belongs to the opened record drawer. */
.select-screen{max-width:1230px;min-height:calc(100svh - 144px);padding:42px 0 32px}
.library-heading{display:block;text-align:center;margin:0 0 34px}
.library-heading h1{font-size:42px;line-height:1.25;font-weight:550;letter-spacing:1px}
.song-gallery{gap:26px}
.song-card{scroll-snap-align:center;scroll-snap-stop:normal}
.cover-frame{border-radius:28px;background:#27372c;box-shadow:0 17px 45px #080b122c}
.song-cancan .cover-frame{background:linear-gradient(135deg,#4c5e80,#668363 60%,#b4bb77)}
.song-ragtime .cover-frame{background:linear-gradient(135deg,#a27755,#503a2e 70%,#b09369)}
.song-mountain .cover-frame{background:linear-gradient(145deg,#1a314e,#21465e 65%,#527a84)}
.cover-toggle{border-radius:28px}
.album-illustration{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.035);filter:brightness(.96) saturate(.98);transition:transform .32s ease,filter .32s ease;user-select:none;-webkit-user-drag:none}
.song-card[data-open="true"] .album-illustration{transform:scale(1.005) translateY(-4px);filter:brightness(1.035) saturate(1.03)}
.song-actions{left:12px;right:12px;bottom:12px;display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid #e3edf329;border-radius:23px;background:#15212ee8;box-shadow:0 8px 25px #050c1733,inset 0 1px 0 #ffffff0d;backdrop-filter:blur(17px);-webkit-backdrop-filter:blur(17px);transform:translateY(12px);opacity:0;visibility:hidden;pointer-events:none;transition:transform .22s ease,opacity .18s ease,visibility .18s}
.song-ragtime .song-actions{background:#2b211be8;border-color:#f2d6b339}
.song-mountain .song-actions{background:#102434e8;border-color:#a8d6e137}
.song-card[data-open="true"] .song-actions{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto}
.song-details{display:flex;flex-direction:column;gap:6px;min-width:0;padding:0 3px}
.song-drawer-artist{font-size:12px;line-height:1.35;color:#e1e5e8;letter-spacing:.1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.song-drawer-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;line-height:1.3;color:#c2ccd5;white-space:nowrap}
.song-drawer-meta>span:first-child{color:var(--album-accent)}
.song-action-buttons{display:flex;align-items:stretch;gap:9px;min-width:0}
.song-actions .start-button{display:flex;align-items:center;justify-content:center;min-width:0;min-height:52px;padding:12px 18px;font-size:16px;line-height:1.2;font-weight:600;letter-spacing:.3px;white-space:nowrap}
.song-actions .start-primary{flex:1}
.song-actions .start-secondary{flex:0 0 77px;background:#eef4fa09;border-color:#c8d6e657;color:#e4eaf0;font-size:14px;font-weight:500;box-shadow:inset 0 1px 0 #ffffff0a}
.song-actions .start-secondary:hover{background:#eef4fa16;border-color:#dae8f3b0}
.song-caption{padding:15px 5px 0;text-align:center}
.song-caption h2{font-size:18px;line-height:1.4;font-weight:500;letter-spacing:1px;margin:0;color:#dededb}
.select-screen>.select-status{margin:20px 0 0;text-align:center;font-size:13px}
.library-help{margin:30px auto 0;max-width:100%;text-align:center}
.library-help>summary{display:inline-flex;align-items:center;justify-content:center;gap:12px;list-style:none;cursor:pointer;border:1px solid #444e5d;border-radius:999px;min-height:45px;padding:10px 16px 10px 20px;font-size:12px;color:#b8c2ce;background:#20262e;transition:color .18s,background .18s,border-color .18s}
.library-help>summary::-webkit-details-marker{display:none}
.library-help>summary:hover{background:#29323d;border-color:#7f8c9e;color:#f0f1ed}
.library-help>summary .details-plus{width:21px;height:21px;font-size:17px;background:#343f4d}
.library-help[open]>summary .details-plus{transform:rotate(45deg)}
.library-help-content{text-align:left;margin:24px auto 0;max-width:1050px}
.library-record{font-size:12px;color:#aeb9c8;display:flex;justify-content:center;align-items:center;gap:14px;margin:0 0 18px;line-height:1.5}
.library-record strong{font-size:14px;font-weight:500;color:#e8ebe8;font-variant-numeric:tabular-nums;letter-spacing:1px}
.site-footer{justify-content:center;min-height:56px;border-top:0;padding:0 0 10px}
.site-footer button{font-size:11px;letter-spacing:1px;color:#8f9bac;padding:10px 17px;min-height:42px}
.site-footer button:hover{color:var(--paper)}
@media(min-width:1200px) and (min-height:950px){.select-screen{padding-top:56px}.library-heading{margin-bottom:43px}.library-heading h1{font-size:46px}.song-gallery{gap:30px}.library-help{margin-top:37px}.song-actions .start-button{min-height:54px}}
@media(min-width:700px) and (max-width:1000px){.select-screen{padding-top:35px}.library-heading{margin-bottom:28px}.library-heading h1{font-size:36px}.song-gallery{gap:18px}.cover-frame,.cover-toggle{border-radius:24px}.song-caption{padding-top:13px}.song-caption h2{font-size:16px;letter-spacing:.4px}.song-actions{left:8px;right:8px;bottom:8px;gap:9px;padding:10px;border-radius:18px}.song-details{gap:4px;padding-inline:1px}.song-drawer-artist{font-size:10px}.song-drawer-meta{font-size:9px;gap:4px}.song-action-buttons{gap:7px}.song-actions .start-button{min-height:48px;padding:11px 10px;font-size:14px;letter-spacing:0}.song-actions .start-secondary{flex-basis:52px;font-size:12px}.library-help{margin-top:27px}}
@media(max-width:699px){.select-screen{max-width:none;min-height:calc(100svh - 132px);padding:28px 0 22px}.library-heading{margin-bottom:24px}.library-heading h1{font-size:33px;letter-spacing:1px}.song-gallery{display:grid;grid-auto-flow:column;grid-auto-columns:82%;grid-template-columns:none;align-items:start;gap:18px;margin:0 -24px;padding:7px 24px 16px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:24px;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.song-gallery::-webkit-scrollbar{display:none}.song-card{width:auto;min-width:0;scroll-snap-align:center}.cover-frame,.cover-toggle{border-radius:27px}.song-caption{padding-top:14px}.song-caption h2{font-size:18px;letter-spacing:.6px}.song-actions{left:12px;right:12px;bottom:12px;padding:15px;gap:12px;border-radius:22px}.song-details{gap:6px;padding-inline:2px}.song-drawer-artist{font-size:12px}.song-drawer-meta{font-size:11px;gap:8px}.song-action-buttons{gap:9px}.song-actions .start-button{min-height:52px;padding:12px 16px;font-size:16px}.song-actions .start-secondary{flex-basis:72px;font-size:14px}.library-help{margin-top:19px}.library-help>summary{font-size:12px;min-height:44px}.library-help-content{margin-top:22px}.site-footer{min-height:56px;padding-bottom:9px}}
@media(max-width:440px){.select-screen{min-height:calc(100svh - 124px);padding-top:25px}.library-heading{margin-bottom:21px}.library-heading h1{font-size:31px;letter-spacing:1.2px}.song-gallery{grid-auto-columns:86%;gap:15px;margin-inline:-18px;padding:6px 18px 14px;scroll-padding-inline:18px}.cover-frame,.cover-toggle{border-radius:25px}.song-caption{padding-top:13px}.song-caption h2{font-size:17px}.song-actions{left:10px;right:10px;bottom:10px;padding:13px;gap:11px;border-radius:20px}.song-drawer-artist{font-size:11px}.song-drawer-meta{font-size:10px}.song-actions .start-button{min-height:50px;padding:11px 14px;font-size:15px}.song-actions .start-secondary{flex-basis:62px;font-size:13px}.library-help{margin-top:17px}.site-footer button{font-size:10px}}
@media(max-width:365px){.song-gallery{grid-auto-columns:90%;gap:13px}.song-actions{padding:11px}.song-drawer-meta{font-size:9px;gap:4px}.song-actions .start-button{min-height:48px;font-size:14px;padding-inline:10px}.song-actions .start-secondary{flex-basis:54px;font-size:12px}.library-heading h1{font-size:29px}}
@media(prefers-reduced-motion:reduce){.album-illustration,.song-card[data-open="true"] .album-illustration{transform:none!important;filter:none!important}.song-actions{transition:none!important;transform:none!important}.song-gallery{scroll-behavior:auto}}
body.reduce-motion .album-illustration,body.reduce-motion .song-card[data-open="true"] .album-illustration{transform:none!important;filter:none!important}body.reduce-motion .song-actions{transition:none!important;transform:none!important}

/* Local artwork motion never moves the cover hit area or its choice drawer. */
.cover-art,.cover-art .cover-motion-art,.cover-art .cover-motion-part{pointer-events:none}
.cover-art .cover-static-image{display:inline}
.cover-art .cover-motion-art{display:none}
.cover-art .cover-motion-part{animation:none;transform:none;transform-box:view-box}
.song-card:is([data-cover-motion="playing"],[data-cover-motion="fading"],[data-cover-motion="settling"]) .cover-static-image{display:none}
.song-card:is([data-cover-motion="playing"],[data-cover-motion="fading"],[data-cover-motion="settling"]) .cover-motion-art{display:inline}
.cover-record-dance{transform-origin:627px 627px}
.cover-key-one{transform-origin:400px 300px}
.cover-key-two{transform-origin:490px 430px}
.cover-crown-float{transform-origin:627px 320px}
@media(prefers-reduced-motion:reduce){.cover-art .cover-motion-part{animation:none!important;transform:none!important}.cover-art .cover-static-image{display:inline!important}.cover-art .cover-motion-art{display:none!important}}
body.reduce-motion .cover-art .cover-motion-part{animation:none!important;transform:none!important}
body.reduce-motion .cover-art .cover-static-image{display:inline!important}
body.reduce-motion .cover-art .cover-motion-art{display:none!important}

/* Preview feedback stays inside the existing drawer, without moving controls. */
.song-drawer-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.song-drawer-heading .song-drawer-artist{min-width:0}
.preview-status{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;color:var(--album-accent);font-size:10px;line-height:1.35;white-space:nowrap;pointer-events:none}
.preview-status[hidden]{display:none}
.preview-meter{display:flex;align-items:center;gap:2px;height:11px}
.preview-meter i{width:2px;height:9px;border-radius:2px;background:currentColor;transform:scaleY(.45)}
.preview-meter i:nth-child(2){height:11px}
.preview-meter i:nth-child(3){height:7px}
.song-card[data-preview="blocked"] .preview-meter,.song-card[data-preview="error"] .preview-meter{display:none}
@media(min-width:700px) and (max-width:1000px){.preview-status{font-size:9px}}
@media(prefers-reduced-motion:reduce){.preview-meter i{animation:none!important;transform:none}}
body.reduce-motion .preview-meter i{animation:none!important;transform:none}

/* The performance is the screen: no dashboard competes with the floor. */
body[data-screen="play"]{overflow:hidden;background:#11161b}
body[data-screen="play"] .app-shell{max-width:none;padding:0;margin:0}
body[data-screen="play"] .site-header,body[data-screen="play"] .site-footer{display:none}
.play-screen{position:fixed;inset:0;display:grid;grid-template-columns:92px minmax(0,1fr);max-width:none;margin:0;padding:0;height:100svh;height:100dvh;overflow:hidden}
.play-screen .stage{grid-column:2;position:relative;inset:auto;width:100%;height:100%;min-height:0;aspect-ratio:auto;border:0;border-radius:0;box-shadow:none;overflow:hidden;background:#11161b}
.play-screen .stage canvas{width:100%;height:100%;object-fit:fill;border-radius:0;outline-offset:-4px}
.controls-rail{grid-column:1;grid-row:1;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;padding:24px 8px;background:#12171b;border-right:1px solid #ffffff09;user-select:none}
.rail-control{display:flex;flex-direction:column;align-items:center;gap:10px;color:#b7c1c7;font-size:12px;letter-spacing:1px}
button.rail-control{width:76px;min-height:70px;padding:8px 0;background:none;border:0;border-radius:16px}
button.rail-control:hover{background:#ffffff08;color:var(--paper)}
.rail-control kbd{display:inline-grid;place-items:center;border:1px solid #4b565e;border-bottom-width:2px;border-radius:7px;background:#222b31;color:#e5e9e6;font:500 12px var(--font);padding:0;min-width:20px;height:24px;box-shadow:none}
.key-cluster{display:flex;flex-direction:column;align-items:center;gap:3px}
.key-cluster>span{display:flex;gap:3px}
.rail-control .key-wide{height:31px;min-width:55px;padding:0 8px;font-size:13px}
.settings-edge{position:fixed;z-index:5;right:0;top:calc(50% - 60px);width:44px;height:120px;border:0;background:transparent;border-radius:24px 0 0 24px;display:grid;place-items:center;padding:0;transition:background .18s}
.settings-edge span{width:4px;height:44px;border-radius:999px;background:#b9d3c36b;transition:height .18s,background .18s;pointer-events:none}
.settings-edge:hover,.settings-edge:focus-visible{background:#ffffff08}
.settings-edge:hover span,.settings-edge:focus-visible span{height:58px;background:var(--acid)}
.settings-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(360px,88vw);max-width:none;height:100svh;height:100dvh;max-height:none;overflow-y:auto;padding:32px 28px;color:var(--paper);background:#1b2228f7;border:0;border-left:1px solid #6d83734a;border-radius:26px 0 0 26px;box-shadow:-18px 0 70px #0004;transform:translateX(100%);transition:transform .2s cubic-bezier(.2,.7,.2,1);overscroll-behavior:contain}
.settings-drawer[data-open="true"]{transform:translateX(0)}
.settings-drawer::backdrop{background:#07101920;backdrop-filter:none}
.drawer-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:42px}
.drawer-header h2{font-size:26px;font-weight:600;margin:0;letter-spacing:1px}
.drawer-header .icon-button{border-radius:50%;background:#ffffff06}
.settings-drawer .setting-row{margin:28px 0;gap:14px}
.settings-drawer .setting-row input{height:38px}
.settings-drawer .checkbox-row{min-height:64px;border-color:#ffffff12}
.settings-drawer .checkbox-row:first-of-type{border-top:0}
.settings-drawer .checkbox-row strong{font-size:15px;font-weight:500}
.settings-drawer .checkbox-row input{width:23px;height:23px}
.drawer-resume{width:100%;margin-top:42px;min-height:58px;padding:14px 24px;font-size:18px;border-radius:999px}
.result-details{margin:26px auto;max-width:720px}
.result-details summary{width:max-content;min-height:44px;margin:auto;cursor:pointer;color:var(--muted);padding:12px 24px;border:1px solid var(--line);border-radius:999px;font-size:13px;list-style:none}
.result-details summary::-webkit-details-marker{display:none}
.result-details .result-stats{margin-top:22px}
.result-details .result-extras{margin-bottom:0}
.results-screen #result-kicker:empty{display:none}
@media(max-width:760px){.play-screen{grid-template-columns:72px minmax(0,1fr)}.controls-rail{gap:26px;padding-inline:4px}.rail-control{font-size:11px}.rail-control kbd{min-width:17px;height:21px;font-size:10px}.rail-control .key-wide{min-width:49px;height:29px;font-size:12px}button.rail-control{width:64px}.settings-drawer{padding:25px 22px}}
@media(max-height:520px){.controls-rail{gap:15px;padding-block:12px}.rail-control{gap:5px}.settings-drawer{padding:18px 24px}.drawer-header{margin-bottom:10px}.settings-drawer .setting-row{margin:14px 0;gap:8px}.settings-drawer .checkbox-row{min-height:48px;padding:10px 0}.drawer-resume{margin-top:14px}}
@media(pointer:coarse){.play-screen{grid-template-columns:1fr}.play-screen .stage{grid-column:1}.controls-rail{display:none}.play-screen .touch-controls{position:absolute;inset:auto 18px 20px;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:0;pointer-events:none}.play-screen .touch-actions{margin-left:auto;flex-direction:row;gap:12px}.play-screen .joystick,.play-screen .touch-actions{pointer-events:auto;opacity:.8}.play-screen .joystick{width:80px;height:80px}.play-screen .touch-actions button{width:62px;height:62px;font-size:14px}.play-screen .touch-actions .touch-attack{width:76px;height:76px;font-size:16px}}
@media(prefers-reduced-motion:reduce){.settings-drawer,.settings-edge,.settings-edge span{transition:none}}
body.reduce-motion .settings-drawer,body.reduce-motion .settings-edge,body.reduce-motion .settings-edge span{transition:none}
