@font-face{font-family:Bravura;src:url(/font/Bravura.woff2)format("woff2");font-display:swap}:root{color:#171813;font-synthesis:none;text-rendering:optimizelegibility;--ink:#171813;--paper:#f4f0e7;--paper-deep:#ebe5da;--lime:#d9f253;--coral:#ff6647;--violet:#8b7cff;--mint:#3ad7c8;--line:#17181329;--muted:#6d6c64;--radius:22px;background:#f4f0e7;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;min-height:100vh;overflow-x:hidden}button,input{font:inherit}button{color:inherit}button,input[type=range],input[type=checkbox]{touch-action:manipulation}button:focus-visible,input:focus-visible{outline:3px solid var(--violet);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2{letter-spacing:-.045em}.app-screen{background:var(--paper);min-height:100vh}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.brand{letter-spacing:-.06em;align-items:center;gap:12px;font-size:27px;font-weight:900;display:inline-flex}.brand-compact{gap:9px;font-size:23px}.brand-mark{border:7px solid;border-radius:50%;width:31px;height:31px;display:inline-block;position:relative}.brand-mark:after{content:"";background:currentColor;border-radius:9px;width:7px;height:25px;position:absolute;top:-17px;left:17px;transform:rotate(20deg)}.brand-mark span{background:var(--coral);border-radius:50%;width:5px;height:5px;position:absolute;top:6px;left:6px}.brand-compact .brand-mark{border-width:6px;width:25px;height:25px}.brand-compact .brand-mark:after{width:6px;height:20px;top:-14px;left:14px}.brand-compact .brand-mark span{top:4px;left:4px}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;height:76px;padding:0 clamp(22px,4vw,60px);display:flex}.topbar-transparent{border-bottom:0}.topbar-actions{align-items:center;gap:12px;display:flex}.midi-pill{border:1px solid var(--line);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;background:#ffffff80;border-radius:999px;align-items:center;gap:9px;min-height:42px;padding:0 16px;font-size:12px;font-weight:800;display:flex}.midi-pill.is-connected{background:var(--ink);color:#fff}.status-dot{background:var(--coral);border-radius:50%;width:8px;height:8px;display:inline-block;box-shadow:0 0 0 4px #ff664724}.is-connected .status-dot{background:var(--lime);box-shadow:0 0 0 4px #d9f25324}.icon-button{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:50%;width:42px;height:42px}.player-chip{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:9px;min-height:44px;padding:4px 14px 4px 5px;font-weight:800;display:flex}.player-chip span{border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.static-chip{cursor:default}.back-button{cursor:pointer;background:0 0;border:0;min-height:44px;font-weight:800}.eyebrow{letter-spacing:.16em;margin:0 0 13px;font-size:12px;font-weight:900}.button{border:1px solid var(--line);cursor:pointer;border-radius:999px;min-height:52px;padding:0 25px;font-weight:900;transition:transform .16s,background .16s}.button:hover:not(:disabled){transform:translateY(-2px)}.button:disabled{opacity:.45;cursor:wait}.button-primary{background:var(--ink);color:#fff;border-color:var(--ink)}.button-primary:hover:not(:disabled){background:#303128}.button-secondary{background:var(--lime);border-color:var(--ink);color:var(--ink)}.button-ghost{background:0 0}.button-danger{background:var(--coral);border-color:var(--ink);color:var(--ink)}.loader{border:3px solid #1718132e;border-top-color:var(--coral);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.boot-screen{background:var(--paper);align-content:center;place-items:center;gap:26px;min-height:100vh;display:grid}.boot-screen p{color:var(--muted)}.profile-screen{background:radial-gradient(circle at 10% 100%, #ff664733, transparent 30%), radial-gradient(circle at 92% 10%, #d9f25347, transparent 31%), var(--paper);position:relative;overflow:hidden}.profile-screen:before{content:"";pointer-events:none;border:1px solid #17181314;border-radius:50%;width:520px;height:520px;position:absolute;top:170px;right:-250px;box-shadow:0 0 0 75px #17181306,0 0 0 150px #17181305}.profile-hero{text-align:center;max-width:720px;margin:clamp(50px,10vh,110px) auto 40px;padding:0 28px;position:relative}.profile-hero h1{margin:0 0 18px;font-size:clamp(42px,6vw,80px);line-height:.96}.profile-hero>p:last-child{color:var(--muted);font-size:18px}.profile-grid{flex-wrap:wrap;justify-content:center;gap:18px;width:min(1050px,100% - 48px);margin:0 auto;display:flex;position:relative}.profile-card{border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;background:#ffffff7a;flex-direction:column;align-items:center;gap:14px;width:210px;min-height:245px;padding:24px;transition:transform .18s,box-shadow .18s;display:flex;box-shadow:0 14px 30px #1718130a}.profile-card:hover{transform:translateY(-6px)rotate(-.5deg);box-shadow:0 20px 35px #17181317}.avatar{border:2px solid var(--ink);width:104px;height:104px;box-shadow:6px 6px 0 var(--ink);border-radius:50%;place-items:center;font-size:43px;font-weight:950;display:grid}.profile-name{font-size:20px;font-weight:900}.profile-action{letter-spacing:.13em;margin-top:auto;font-size:11px;font-weight:900}.avatar-add{box-shadow:none;background:0 0;border-style:dashed;font-size:40px;font-weight:400}.add-profile{background:0 0;border-style:dashed}.empty-card{border:1px dashed var(--line);border-radius:var(--radius);min-width:330px;min-height:210px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.empty-card strong{color:var(--ink);font-size:20px}.empty-drum{color:var(--coral);font-size:35px}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#11120f8f;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog{background:var(--paper);border:1px solid var(--ink);width:min(500px,100%);box-shadow:10px 10px 0 var(--ink);border-radius:28px;padding:34px}.dialog h2{margin-bottom:28px;font-size:34px}.dialog label,.dialog legend{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:900}.dialog input[type=text],.dialog input:not([type]){border:1px solid var(--line);background:#fff;border-radius:12px;width:100%;height:54px;margin-top:8px;padding:0 15px;font-size:18px}.dialog fieldset{border:0;margin:24px 0;padding:0}.color-picker{gap:13px;margin-top:12px;display:flex}.color-picker button{cursor:pointer;border:2px solid #0000;border-radius:50%;width:42px;height:42px}.color-picker button.selected{border-color:var(--ink);box-shadow:inset 0 0 0 4px var(--paper)}.dialog-actions{justify-content:flex-end;gap:10px;display:flex}.library-heading{justify-content:space-between;align-items:flex-end;gap:20px;padding:58px clamp(24px,6vw,90px) 28px;display:flex}.library-heading h1{margin:0;font-size:clamp(42px,5vw,68px)}.library-heading>p{color:var(--muted);font-size:13px}.song-list{gap:15px;padding:0 clamp(24px,6vw,90px) 70px;display:grid}.song-card{border:1px solid var(--line);background:#ffffff7a;border-radius:20px;overflow:hidden}.song-main{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:48px 96px minmax(250px,1fr) auto 54px;align-items:center;gap:24px;width:100%;min-height:145px;padding:18px 25px;display:grid}.song-main:hover{background:#ffffff80}.song-number{color:var(--muted);font:800 13px ui-monospace,monospace}.album-art{border:1px solid var(--ink);width:90px;height:90px;box-shadow:4px 4px 0 var(--ink);border-radius:15px;position:relative;overflow:hidden}.album-ring{border:13px solid var(--ink);opacity:.9;border-radius:50%;width:69px;height:69px;position:absolute;bottom:-14px;left:-15px}.album-stick{background:var(--paper);border:1px solid var(--ink);width:8px;height:68px;position:absolute;top:5px;right:20px;transform:rotate(24deg)}.song-copy{flex-direction:column;gap:3px;display:flex}.song-title{letter-spacing:-.04em;font-size:28px;font-weight:950}.song-artist{font-weight:650}.song-meta{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:9px;font-size:12px}.stars{color:#1718132b;letter-spacing:3px;white-space:nowrap;font-size:22px;display:inline-flex}.stars .star-earned{color:var(--ink)}.stars-small{letter-spacing:1px;font-size:13px}.round-arrow{border:1px solid var(--line);border-radius:50%;place-items:center;width:46px;height:46px;font-size:21px;display:grid}.song-difficulties{border-top:1px solid var(--line);grid-template-columns:repeat(5,1fr);margin-left:188px;display:grid}.song-difficulties button{border:0;border-right:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;grid-template-columns:70px 1fr auto;align-items:center;min-height:48px;padding:0 18px;display:grid}.song-difficulties button:last-child{border-right:0}.song-difficulties span:first-child{text-transform:uppercase;font-size:12px;font-weight:900}.song-difficulties strong{font:700 12px ui-monospace,monospace}.song-management{border-top:1px solid var(--line);background:#3ad7c80f;justify-content:flex-end;align-items:center;gap:8px;min-height:48px;padding:7px 18px 7px 24px;display:flex}.song-management>span{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-right:auto;font-size:9px;font-weight:900}.song-management button{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;min-height:34px;padding:0 13px;font-size:10px;font-weight:850}.song-management button:hover:not(:disabled){border-color:var(--ink);background:#fff}.song-management button:disabled{opacity:.45;cursor:wait}.song-management .song-delete-button{color:#8b241a;border-color:#a82f1a59}.pregame-screen{height:100dvh;min-height:0;overflow:hidden}.pregame-layout{grid-template-columns:minmax(270px,31%) 1fr;height:calc(100dvh - 76px);min-height:0;display:grid}.song-poster{background:var(--poster-color);border-right:1px solid var(--ink);flex-direction:column;justify-content:flex-end;min-height:0;padding:clamp(26px,3.2vw,48px);display:flex;position:relative;overflow:hidden}.poster-art{width:84%;height:46%;position:absolute;top:2%;left:8%}.poster-ring{border:clamp(32px, 4vw, 58px) solid var(--ink);opacity:.94;border-radius:50%;width:clamp(190px,25vw,330px);height:clamp(190px,25vw,330px);position:absolute;left:-25%}.poster-stick{background:var(--paper);border:2px solid var(--ink);width:18px;height:300px;position:absolute;top:-75px;left:60%;transform:rotate(27deg)}.song-poster h1{max-width:500px;margin:0 0 10px;font-size:clamp(40px,4.8vw,68px);line-height:.9}.song-poster>p:not(.eyebrow){margin-bottom:0;font-size:16px;font-weight:750}.song-poster dl{border-top:1px solid #1718134d;flex-wrap:wrap;gap:14px 24px;margin:20px 0 0;padding-top:15px;display:flex}.song-poster dl div{flex-direction:column;gap:5px;display:flex}.song-poster dt{text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:900}.song-poster dd{margin:0;font-weight:850}.setup-panel{flex-direction:column;min-height:0;padding:clamp(18px,2.4vw,34px);display:flex;overflow:hidden}.setup-section{border-bottom:1px solid var(--line);margin-bottom:14px;padding-bottom:15px}.step-label{letter-spacing:.1em;align-items:center;gap:8px;min-height:24px;margin-bottom:9px;font-size:10px;font-weight:950;display:flex}.step-label span{background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;display:grid}.difficulty-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.difficulty-grid button{border:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;border-radius:13px;flex-direction:column;align-items:flex-start;min-height:84px;padding:10px 11px;display:flex}.difficulty-grid button.selected{background:var(--ink);color:#fff;box-shadow:4px 4px 0 var(--coral)}.difficulty-grid button:disabled{opacity:.42;cursor:not-allowed}.difficulty-grid strong{font-size:16px}.difficulty-grid span{color:var(--muted);margin-top:3px;font-size:10px;line-height:1.3}.difficulty-grid .selected span{color:#ffffffa6}.difficulty-grid small{margin-top:auto;font-size:9px;font-weight:800}.tempo-control{grid-template-columns:105px minmax(0,1fr);align-items:center;gap:15px;display:grid}.tempo-kit-grid{grid-template-columns:minmax(270px,.8fr) minmax(360px,1.2fr);gap:20px;display:grid}.tempo-kit-grid>div{min-width:0}.tempo-readout{flex-direction:column;gap:0;display:flex}.tempo-readout strong{letter-spacing:-.05em;font-size:30px;line-height:1}.tempo-readout span{color:var(--muted);font-size:11px;font-weight:700}.tempo-slider{min-width:0}.range{accent-color:var(--ink)}.tempo-section .range{width:100%;height:25px}.range-labels{color:var(--muted);text-transform:uppercase;justify-content:space-between;font-size:10px;font-weight:750;display:flex}.score-note{color:#b23b25;margin:5px 0 0 120px;font-size:10px;font-weight:750}.kit-filter .step-label{justify-content:flex-start}.kit-filter .step-label small{color:var(--muted);letter-spacing:.04em;text-transform:none;margin-left:auto;font-size:8px}.kit-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;display:grid}.kit-filter-grid button{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;justify-content:space-between;align-items:center;gap:4px;min-width:0;min-height:29px;padding:4px 7px;display:flex}.kit-filter-grid button[aria-pressed=true]{background:var(--ink);color:#fff}.kit-filter-grid button[aria-pressed=false]{color:var(--muted);opacity:.72;border-style:dashed}.kit-filter-grid button:disabled{cursor:not-allowed;opacity:.55}.kit-filter-grid strong{text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.kit-filter-grid small{color:var(--lime);font:800 7px ui-monospace,monospace}.kit-filter-grid button[aria-pressed=false] small{color:var(--coral)}.setup-options-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.setup-options-grid .setup-section{border:1px solid var(--line);background:#ffffff61;border-radius:13px;min-width:0;margin:0;padding:12px 14px}.setup-options-grid .step-label{margin-bottom:8px}.toggle-row{cursor:pointer;justify-content:space-between;align-items:center;gap:20px;display:flex}.toggle-row span{flex-direction:column;gap:5px;display:flex}.toggle-row small{color:var(--muted);font-size:10px;line-height:1.35}.toggle-row input{appearance:none;cursor:pointer;background:#c9c5bb;border-radius:999px;flex:none;width:53px;height:30px;padding:3px;transition:background .2s}.toggle-row input:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .2s;display:block;box-shadow:0 2px 5px #0003}.toggle-row input:checked{background:var(--ink)}.toggle-row input:checked:after{background:var(--lime);transform:translate(23px)}.toggle-row-disabled{cursor:default;opacity:.58}.toggle-row input:disabled{cursor:not-allowed}.premixed-audio-note{flex-direction:column;justify-content:center;gap:3px;min-height:52px;display:flex}.premixed-audio-note small{color:var(--muted);font-size:10px;line-height:1.3}.pregame-actions{grid-template-columns:minmax(0,1fr) minmax(210px,250px);align-items:stretch;gap:10px;min-height:58px;margin-top:auto;display:grid}.pregame-actions.kit-ready{grid-template-columns:minmax(210px,250px);justify-content:end}.connection-banner{border:1px solid var(--line);background:#d9f2533d;border-radius:13px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;min-width:0;margin:0;padding:9px 12px;display:grid}.connection-banner>span{color:var(--coral)}.connection-banner strong{font-size:13px}.connection-banner p{color:var(--muted);margin:3px 0 0;font-size:11px}.connection-banner button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:999px;padding:9px 14px;font-size:11px;font-weight:850}.connection-banner.is-error{background:#ff66471f;border-color:#ff664780}.start-button{border-radius:15px;justify-content:space-between;align-items:center;width:100%;height:100%;min-height:58px;padding:0 22px;font-size:16px;display:flex}.game-screen{width:100%;height:100dvh;min-height:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);color:#fff;background:#11120f;grid-template-rows:72px minmax(0,1fr) 42px auto;display:grid;position:fixed;inset:0;overflow:hidden}.game-topbar{border-bottom:1px solid #ffffff24;grid-template-columns:150px minmax(180px,1fr) auto 52px;align-items:center;gap:18px;height:72px;padding:0 24px;display:grid}.game-topbar .brand-mark span{background:var(--lime)}.game-song-title{flex-direction:column;min-width:0;display:flex}.game-song-title strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.game-song-title span{color:#ffffff8c;font-size:11px}.hud{height:52px;display:flex}.hud>div{border-left:1px solid #ffffff24;flex-direction:column;min-width:112px;padding:6px 20px;display:flex}.hud span{letter-spacing:.13em;color:#ffffff80;font-size:9px;font-weight:900}.hud strong{font:850 24px/1.15 ui-monospace,monospace}.hud small{font-size:13px}.hud .combo-hot strong{color:var(--lime)}.game-menu-button{color:#fff;cursor:pointer;background:#ffffff17;border:1px solid #ffffff2e;border-radius:50%;width:46px;height:46px}.keyboard-hint{color:#ffffffc2;background:#d9f25329;border-radius:10px;margin:14px 0 0;padding:10px 12px;font-size:11px;line-height:1.45}.keyboard-hint strong{color:var(--lime)}.game-playfield{grid-template-rows:minmax(120px,27%) minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.score-stage{background:#f8f5ee;min-height:0;position:relative;overflow:hidden}.notation-shell,.notation-viewport{width:100%;height:100%}.notation-shell{position:relative}.notation-viewport{scrollbar-width:none;background:#f8f5ee;align-items:stretch;display:flex;position:relative;overflow:auto hidden}.notation-viewport::-webkit-scrollbar{display:none}.alphatab-score{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.uniform-drum-score{flex:none;height:100%;min-height:130px;margin:0 47vw;position:relative}.uniform-drum-score canvas{position:absolute;top:0}.notation-measure-overlay,.notation-geometry-probe{z-index:4;pointer-events:none;position:absolute;inset:0}.notation-measure-overlay>span{color:#171813b3;border-left:2px solid #1718137a;height:27px;position:absolute;top:5px}.notation-measure-overlay b{font:850 9px/1 ui-monospace,monospace;position:absolute;top:0;left:5px}.notation-geometry-probe{visibility:hidden}.notation-geometry-probe i{width:0;height:1px;position:absolute;top:0}.notation-playhead{z-index:5;background:var(--coral);pointer-events:none;width:2px;height:90%;position:absolute;top:5%;left:50%;box-shadow:0 0 0 1px #ff66472e}.notation-playhead:before{content:"";border-left:7px solid #0000;border-right:7px solid #0000;border-top:10px solid var(--coral);position:absolute;top:-1px;left:-6px}.notation-loading{z-index:10;color:var(--ink);background:#f8f5ee;justify-content:center;align-items:center;gap:13px;font-weight:750;display:flex;position:absolute;inset:0}.notation-error{color:#a82f1a}.at-cursor-bar{background:#d9f2531f!important}.at-cursor-beat{opacity:.28;background:var(--coral)!important;width:3px!important}.judgment-pop{z-index:8;letter-spacing:.08em;color:var(--ink);text-shadow:0 2px #fff;pointer-events:none;font-size:25px;font-weight:950;animation:.55s ease-out both judge;position:absolute;top:12%;left:50%;transform:translate(-50%)}.judgment-pop small{text-align:center;font:800 10px ui-monospace,monospace;display:block}.judgment-perfect{color:#228f61}.judgment-good{color:#d47d00}.judgment-miss,.judgment-overhit{color:#d93e2c}@keyframes judge{0%{opacity:0;transform:translate(-50%,16px)scale(.8)}35%{opacity:1;transform:translate(-50%)scale(1.05)}to{opacity:.2;transform:translate(-50%,-22px)scale(1)}}.timing-legend{z-index:6;color:var(--ink);text-transform:uppercase;gap:13px;font-size:9px;font-weight:850;display:flex;position:absolute;bottom:12px;right:18px}.timing-legend span{align-items:center;gap:5px;display:flex}.perfect-dot,.good-dot,.miss-dot,.extra-dot{background:#2bb673;border-radius:50%;width:8px;height:8px;display:inline-block}.good-dot{background:#f5a623}.miss-dot{background:var(--coral)}.extra-dot{background:var(--violet)}.drum-highway{color:#fff;background:radial-gradient(circle at 28%,#d9f2531a,#0000 27%),#171914;border-top:1px solid #ffffff3d;grid-template-rows:38px minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.highway-heading{border-bottom:1px solid #ffffff1c;justify-content:center;align-items:center;gap:14px;padding:0 16px;display:flex}.highway-heading span{letter-spacing:.16em;color:var(--lime);font-size:11px;font-weight:950}.highway-heading small{color:#ffffff7a;font-size:10px}.highway-grid{grid-template-rows:repeat(9,minmax(18px,1fr));min-height:0;display:grid;position:relative;overflow:hidden}.highway-lane{border-bottom:1px solid #ffffff17;grid-template-columns:112px minmax(0,1fr);min-height:0;display:grid;position:relative}.highway-lane:last-child{border-bottom:0}.highway-lane-label{z-index:8;color:#ffffffab;letter-spacing:.05em;background:#11120ff0;border-right:1px solid #ffffff24;justify-content:flex-end;align-items:center;padding:0 15px;font:850 9px ui-monospace,monospace;display:flex}.highway-track{background:linear-gradient(90deg,#ffffff06,#0000 34%);min-width:0;position:relative}.highway-track:after{content:"";z-index:0;background:#ffffff1a;height:1px;position:absolute;top:50%;left:0;right:0}.highway-beats{z-index:1;pointer-events:none;position:absolute;inset:0 0 0 112px;overflow:hidden}.highway-target-overlay{z-index:2;pointer-events:none;position:absolute;inset:0 0 0 112px}.highway-beat-motion{will-change:transform;contain:layout style;display:block;position:absolute;inset:0;transform:translate(0,0)}.highway-note-canvas{z-index:4;pointer-events:none;contain:strict;width:calc(100% - 112px);height:100%;display:block;position:absolute;top:0;bottom:0;left:112px}.highway-beats i{background:#ffffff14;width:1px;position:absolute;top:0;bottom:0;transform:translate(-50%)}.highway-beats i.measure-marker{background:#ffffff30;width:2px}.highway-strike-line{background:var(--lime);width:3px;position:absolute;top:0;bottom:0;transform:translate(-50%);box-shadow:0 0 18px #d9f2536b}.highway-strike-line:before{content:"";border-left:6px solid #0000;border-right:6px solid #0000;border-top:7px solid var(--lime);position:absolute;top:0;left:-5px}.highway-note,.highway-receptor{z-index:4;border:3px solid var(--note-color);background:color-mix(in srgb, var(--note-color) 72%, #10110e);color:#fff;text-shadow:0 2px 2px #0000008c;width:clamp(30px,4.8vh,48px);height:clamp(30px,4.8vh,48px);box-shadow:inset 0 2px 3px #ffffff4d, 0 3px 8px #0009, 0 0 13px color-mix(in srgb, var(--note-color) 38%, transparent);border-radius:50%;place-items:center;font:950 clamp(18px,2.8vh,28px)/1 ui-monospace,monospace;display:grid;position:absolute;top:50%;transform:translate(-50%,-50%)}.highway-note:before,.highway-receptor:before{content:"";border-radius:inherit;border:1px solid #ffffff3d;position:absolute;inset:3px}.highway-note{filter:saturate(1.15)}.highway-receptor{z-index:3;color:var(--note-color);opacity:.78;box-shadow:inset 0 0 0 2px #ffffff14, 0 0 14px color-mix(in srgb, var(--note-color) 28%, transparent);background:#11120feb}.highway-note.note-ghost{opacity:.52;border-style:dashed}.highway-note.note-perfect,.highway-receptor.receptor-perfect{animation:.58s cubic-bezier(.2,.9,.25,1) both highway-perfect}.highway-note.note-good,.highway-receptor.receptor-good{animation:.58s cubic-bezier(.2,.9,.25,1) both highway-good}.highway-note.note-miss,.highway-receptor.receptor-miss,.highway-receptor.receptor-overhit{animation:.58s ease-out both highway-miss}.highway-quality{z-index:7;color:#fff;letter-spacing:.07em;white-space:nowrap;box-shadow:0 0 16px color-mix(in srgb, currentColor 45%, transparent);pointer-events:none;background:#0a0b09f5;border:2px solid;border-radius:999px;align-items:baseline;gap:7px;padding:6px 11px;font:950 clamp(10px,1.6vh,15px)/1 ui-monospace,monospace;animation:.85s ease-out both highway-quality;display:flex;position:absolute;top:50%;left:calc(28% + clamp(27px,4.5vh,46px));transform:translateY(-50%)}.highway-quality small{opacity:.72;letter-spacing:0;font-size:.72em}.quality-perfect{color:var(--lime)}.quality-good{color:#ffc14f}.quality-miss{color:var(--coral)}.quality-overhit{color:var(--violet)}@keyframes highway-perfect{0%{transform:translate(-50%,-50%)scale(.85)}30%{color:var(--ink);box-shadow:0 0 0 9px #d9f2532e, 0 0 28px var(--lime);background:#fff;transform:translate(-50%,-50%)scale(1.52)}to{transform:translate(-50%,-50%)scale(1.04)}}@keyframes highway-good{0%{transform:translate(-50%,-50%)scale(.88)}35%{color:var(--ink);background:#fff;transform:translate(-50%,-50%)scale(1.34);box-shadow:0 0 0 7px #f5a62329,0 0 22px #f5a623}to{transform:translate(-50%,-50%)scale(1.02)}}@keyframes highway-miss{0%{transform:translate(-50%,-50%)scale(1)}35%{border-color:var(--coral);color:var(--coral);opacity:.55;transform:translate(-50%,-50%)scale(.72)rotate(-9deg)}65%{transform:translate(-50%,-50%)scale(.88)rotate(7deg)}}@keyframes highway-quality{0%{opacity:0;transform:translate(12px,-50%)scale(.72)}22%{opacity:1;transform:translateY(-50%)scale(1.08)}72%{opacity:1;transform:translateY(-50%)scale(1)}to{opacity:0;transform:translate(-8px,-50%)scale(.92)}}.game-progress{color:#ffffff9e;grid-template-columns:44px 1fr 50px 45px;align-items:center;gap:10px;height:42px;padding:0 22px;font:650 10px ui-monospace,monospace;display:grid}.game-progress>div{background:#ffffff29;border-radius:99px;height:4px;overflow:hidden}.game-progress i{background:var(--lime);border-radius:inherit;height:100%;display:block}.game-progress strong{color:var(--lime)}.virtual-pads{background:#171914;border-top:1px solid #ffffff1f;grid-template-columns:repeat(8,1fr);gap:7px;min-height:92px;padding:8px 18px 13px;display:grid}.virtual-pad{color:#fff;letter-spacing:.05em;cursor:pointer;background:#ffffff12;border:1px solid #ffffff38;border-radius:10px;min-height:66px;font-size:9px;font-weight:900}.virtual-pad:active{background:var(--lime);color:var(--ink);transform:translateY(2px)}.virtual-pad:disabled{opacity:.35}.pad-kick{border-color:var(--coral);border-radius:50%}.pad-snare{border-color:#fff}.pad-crash,.pad-ride,.pad-hiHatClosed{border-color:var(--lime);border-radius:50%}.game-curtain{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#11120fa8;place-items:center;padding:20px;display:grid;position:absolute;inset:72px 0 0}.game-dialog{background:var(--paper);width:min(570px,100%);color:var(--ink);box-shadow:8px 8px 0 var(--lime);border:1px solid #fff;border-radius:24px;padding:38px}.game-dialog h1{margin:0 0 10px;font-size:45px}.game-dialog>p:not(.eyebrow){color:var(--muted);line-height:1.55}.game-dialog-actions{justify-content:flex-end;gap:9px;margin-top:27px;display:flex}.pause-delay-controls{border:1px solid var(--line);background:#ffffff61;border-radius:14px;grid-template-columns:minmax(0,1fr);align-items:center;gap:10px;margin-top:18px;padding:14px;display:grid}.pause-delay-controls>div:first-child{flex-direction:column;gap:3px;margin-bottom:2px;display:flex}.pause-delay-controls>div:first-child strong{font-size:12px}.pause-delay-controls>div:first-child small{color:var(--muted);font-size:9px;line-height:1.35}.pause-delay-row{grid-template-columns:32px minmax(0,1fr) 32px;align-items:center;gap:6px;min-width:0;display:grid}.pause-delay-row>span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;grid-column:1/-1;font-size:8px;font-weight:900}.pause-delay-row button{border:1px solid var(--ink);background:var(--paper);width:32px;height:32px;color:var(--ink);cursor:pointer;border-radius:7px;font-size:16px;font-weight:900}.pause-delay-row button:disabled{opacity:.3;cursor:not-allowed}.pause-delay-row output{border:1px solid var(--line);background:#fff;border-radius:7px;grid-area:2/2;place-items:center;min-width:0;min-height:32px;font:750 10px ui-monospace,monospace;display:grid}.game-notice{z-index:70;background:var(--coral);color:var(--ink);border:1px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:999px;padding:11px 19px;font-size:12px;font-weight:850;position:fixed;top:88px;left:50%;transform:translate(-50%)}.results-screen{background:radial-gradient(circle at 50% -30%, #d9f25366, transparent 45%), var(--paper);padding-bottom:38px}.results-header{border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;height:76px;padding:0 clamp(24px,5vw,70px);display:grid}.result-song{text-align:center;flex-direction:column;display:flex}.result-song span,.saved-state{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:11px}.saved-state{justify-self:end}.result-hero{text-align:center;max-width:700px;margin:38px auto 28px}.result-kicker{letter-spacing:.18em;margin-bottom:10px;font-size:11px;font-weight:950}.result-hero .stars{font-size:31px}.result-hero h1{letter-spacing:-.08em;margin:12px 0 0;font:900 clamp(62px,10vw,118px)/.9 ui-monospace,monospace}.result-hero>p{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin:0 0 18px;font-size:10px;font-weight:900}.score-meter{border:1px solid var(--ink);background:#1718131a;border-radius:999px;width:min(470px,80%);height:9px;margin:0 auto 8px;padding:1px;overflow:hidden}.score-meter i{background:var(--lime);border-radius:inherit;height:100%;display:block}.result-hero small{color:var(--muted)}.result-grid{grid-template-columns:1fr 1fr 1.35fr;gap:14px;width:min(1080px,100% - 48px);margin:0 auto;display:grid}.result-stat{border:1px solid var(--line);background:#ffffff73;border-radius:18px;min-height:165px;padding:24px}.result-stat>span{letter-spacing:.12em;font-size:10px;font-weight:950}.result-stat>strong{letter-spacing:-.06em;font:900 55px ui-monospace,monospace;display:block}.result-stat>strong small{font-size:23px}.result-stat>p{color:var(--muted);font-size:11px}.featured-stat{background:var(--lime);border-color:var(--ink);box-shadow:4px 4px 0 var(--ink)}.judgment-breakdown{flex-direction:column;justify-content:center;display:flex}.judgment-breakdown div{border-bottom:1px solid var(--line);grid-template-columns:16px 1fr auto;align-items:center;gap:8px;min-height:28px;font-size:12px;display:grid}.judgment-breakdown div:last-child{border:0}.drum-breakdown{grid-column:1/-1;grid-template-columns:120px repeat(5,minmax(120px,1fr));align-items:center;gap:10px;min-height:120px;display:grid;overflow-x:auto}.drum-breakdown>div{border-left:1px solid var(--line);flex-direction:column;gap:4px;padding-left:16px;display:flex}.drum-breakdown>div strong{font-size:12px}.drum-breakdown>div span{color:var(--muted);font-size:11px}.drum-breakdown>div em{font:700 11px ui-monospace,monospace}.results-actions{justify-content:flex-end;gap:9px;width:min(1080px,100% - 48px);margin:25px auto 0;display:flex}.results-actions .button:first-child{margin-right:auto}.watch-results{align-content:center;place-items:center;gap:40px;display:grid}.watch-complete{text-align:center;max-width:650px}.watch-complete h1{margin:0 0 18px;font-size:64px}.watch-complete>p:last-of-type{color:var(--muted);font-size:17px}.watch-complete .results-actions{justify-content:center;width:auto}.watch-complete .results-actions .button:first-child{margin:0}.settings-heading{padding:48px clamp(24px,7vw,100px) 30px}.settings-heading h1{margin:0 0 12px;font-size:clamp(42px,5vw,70px)}.settings-heading>p:last-child{color:var(--muted)}.settings-layout{gap:16px;padding:0 clamp(24px,7vw,100px);display:grid}.settings-card{border:1px solid var(--line);background:#ffffff73;border-radius:20px;padding:27px}.section-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.section-heading>div{gap:16px;display:flex}.section-heading>div>span{background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:33px;height:33px;font:800 10px ui-monospace,monospace;display:grid}.section-heading h2{margin:0;font-size:27px}.section-heading p{color:var(--muted);margin:3px 0 0;font-size:12px}.section-heading em{color:#26835e;font-size:11px;font-style:normal;font-weight:800}.mapping-grid{grid-template-columns:repeat(5,1fr);gap:9px;display:grid}.mapping-grid button{border:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;border-radius:13px;flex-direction:column;align-items:flex-start;min-height:96px;padding:13px;display:flex}.mapping-grid button>span{color:var(--muted);letter-spacing:.08em;font-size:9px}.mapping-grid button strong{margin-top:2px;font-size:13px}.mapping-grid button small{margin-top:auto;font:650 9px ui-monospace,monospace}.mapping-grid button.learning{background:var(--lime);border-color:var(--ink);animation:.8s ease-in-out infinite alternate learnPulse}@keyframes learnPulse{to{box-shadow:0 0 0 5px #d9f25352}}.device-calibration{border:1px solid var(--ink);background:var(--paper-deep);box-shadow:4px 4px 0 var(--ink);border-radius:18px;overflow:hidden}.calibration-stepper{border-bottom:1px solid var(--line);background:#ffffff59;grid-template-columns:repeat(4,1fr);align-items:center;min-height:46px;padding:0 20px;display:grid}.calibration-stepper span{color:var(--muted);letter-spacing:.1em;text-align:center;text-transform:uppercase;font:850 9px ui-monospace,monospace;position:relative}.calibration-stepper span:before{content:"";vertical-align:0;border:1px solid;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.calibration-stepper span.is-current{color:var(--ink)}.calibration-stepper span.is-current:before{background:var(--coral);border-color:var(--ink);box-shadow:0 0 0 4px #ff664729}.calibration-stepper span.is-done{color:#176a60}.calibration-stepper span.is-done:before{background:var(--mint);border-color:#176a60}.calibration-intro{grid-template-columns:minmax(280px,1fr) auto;align-items:center;gap:25px 38px;min-height:220px;padding:28px;display:grid}.calibration-copy h3,.calibration-instruction h3,.calibration-result h3{letter-spacing:-.035em;margin:0 0 8px;font-size:clamp(22px,3vw,34px);line-height:1.02}.calibration-copy>p:not(.eyebrow),.calibration-instruction>p:not(.eyebrow),.calibration-result>div>p:not(.eyebrow),.calibration-explanation{max-width:720px;color:var(--muted);margin:0 0 10px;font-size:12px;line-height:1.5}.calibration-copy small,.calibration-result small{color:var(--muted);font:700 10px/1.5 ui-monospace,monospace}.calibration-current,.calibration-values{border:1px solid var(--line);background:#ffffff6b;border-radius:14px;grid-template-columns:repeat(3,minmax(88px,1fr));display:grid}.calibration-current span,.calibration-values span{border-right:1px solid var(--line);flex-direction:column;justify-content:center;gap:4px;min-height:68px;padding:13px;display:flex}.calibration-current span:last-child,.calibration-values span:last-child{border-right:0}.calibration-current small,.calibration-values small{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;font-size:8px;font-weight:850}.calibration-current strong,.calibration-values strong{font:850 13px ui-monospace,monospace}.calibration-primary-actions{grid-column:1/-1;justify-content:flex-end;align-items:center;gap:14px;display:flex}.calibration-primary-actions p{color:#8b241a;margin:0;font-size:11px;font-weight:750}.calibration-running{padding:26px}.calibration-instruction{text-align:center}.calibration-instruction>p:not(.eyebrow){margin-left:auto;margin-right:auto}.calibration-track{border:1px solid var(--ink);background:repeating-linear-gradient(90deg,#0000 0 calc(12.5% - 1px),#17181314 calc(12.5% - 1px) 12.5%),#ffffff73;border-radius:17px;height:clamp(130px,22vw,210px);margin:22px 0;position:relative;overflow:hidden}.calibration-track:after{content:"";z-index:1;background:#1718132b;height:1px;position:absolute;top:50%;left:0;right:0}.calibration-target{z-index:2;background:var(--ink);width:3px;position:absolute;top:10px;bottom:10px;left:76%;transform:translate(-50%)}.calibration-target:before{content:"";border:2px solid var(--ink);background:#d9f25333;border-radius:50%;width:112px;height:112px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.calibration-target span{background:var(--ink);color:#fff;letter-spacing:.12em;border-radius:999px;padding:4px 8px;font:850 8px ui-monospace,monospace;position:absolute;top:8px;left:50%;transform:translate(-50%)}.calibration-moving-hit{z-index:3;border:3px solid var(--ink);background:var(--coral);width:82px;height:82px;box-shadow:5px 5px 0 var(--ink);will-change:left;border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;left:6%;transform:translate(-50%,-50%)}.calibration-moving-hit span{font-size:31px;line-height:1}.calibration-moving-hit.is-hit{animation:.22s ease-out calibrationHit}@keyframes calibrationHit{45%{background:var(--lime);transform:translate(-50%,-50%)scale(1.22)}}.calibration-listen{border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:17px;justify-content:center;align-items:center;gap:10px;height:clamp(130px,22vw,210px);margin:22px 0;display:flex}.calibration-listen span{color:var(--lime);margin-right:17px;font-size:72px;font-weight:950}.calibration-listen i{background:var(--coral);border-radius:50%;width:10px;height:10px;animation:1.2s ease-in-out infinite alternate listenBeat}.calibration-listen i:nth-of-type(2){animation-delay:-.4s}.calibration-listen i:nth-of-type(3){animation-delay:-.8s}@keyframes listenBeat{to{opacity:.45;transform:translateY(-14px)}}.calibration-running-footer{align-items:center;gap:14px;min-height:64px;display:flex}.calibration-running-footer strong{font-size:13px}.calibration-running-footer>span{color:var(--muted);margin-right:auto;font:700 10px ui-monospace,monospace}.tap-pad{border:2px solid var(--ink);background:var(--lime);cursor:pointer;border-radius:50%;width:64px;height:64px;font-weight:950}.tap-pad:active{transform:scale(.92)}.calibration-result{grid-template-columns:74px minmax(240px,1fr) auto;align-items:center;gap:22px;min-height:230px;padding:30px;display:grid}.calibration-result-mark{border:2px solid var(--ink);background:var(--coral);width:68px;height:68px;box-shadow:4px 4px 0 var(--ink);border-radius:50%;place-items:center;font:900 18px ui-monospace,monospace;display:grid}.calibration-result-mark.quality-great{background:var(--lime)}.calibration-result-mark.quality-good{background:var(--mint)}.calibration-result-actions{justify-content:flex-end;gap:9px;display:flex}.calibration-result-actions .button{white-space:nowrap}.calibration-proposal{grid-template-columns:74px minmax(230px,1fr) minmax(270px,auto)}.calibration-proposal .calibration-values{min-width:280px}.calibration-proposal .calibration-explanation{grid-column:2/-1;margin:-10px 0 0}.calibration-proposal .calibration-result-actions{grid-column:2/-1}.calibration-error{color:#8b241a;background:#ff664721;border-top:1px solid #a82f1a;margin:0;padding:12px 20px;font-size:11px;font-weight:800}.delay-help-row{justify-content:space-between;align-items:center;gap:16px;margin-top:12px;display:flex}.delay-help-row .delay-help{margin:0}.button-small{min-height:38px;padding:0 16px;font-size:10px}.delay-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.delay-field{border:1px solid var(--line);border-radius:13px;justify-content:space-between;align-items:center;gap:16px;padding:15px;display:flex}.delay-field>span:first-child{flex-direction:column;gap:3px;display:flex}.delay-field small{color:var(--muted);font-size:10px;line-height:1.35}.delay-input{align-items:center;gap:5px;display:flex}.delay-input input{border:1px solid var(--ink);background:var(--paper);text-align:right;border-radius:9px;width:80px;padding:9px;font:750 12px ui-monospace,monospace}.delay-input em{color:var(--muted);font:700 10px ui-monospace,monospace}.delay-help{color:var(--muted);margin:12px 2px 0;font-size:11px}.volume-card,.player-display-card{padding-bottom:18px}.volume-row{border-bottom:1px solid var(--line);grid-template-columns:150px 1fr 52px;align-items:center;gap:14px;min-height:46px;font-size:12px;font-weight:800;display:grid}.volume-row input{width:100%}.volume-row strong{text-align:right;font:700 11px ui-monospace,monospace}.settings-toggle{padding-top:18px}.settings-footer{border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f4f0e7e6;justify-content:flex-end;align-items:center;gap:9px;min-height:80px;margin-top:25px;padding:12px clamp(24px,7vw,100px);display:flex;position:sticky;bottom:0}.global-toast{z-index:200;background:var(--coral);border:1px solid var(--ink);box-shadow:4px 4px 0 var(--ink);border-radius:999px;align-items:center;gap:14px;padding:12px 12px 12px 20px;font-size:12px;font-weight:800;display:flex;position:fixed;top:18px;left:50%;transform:translate(-50%)}.global-toast button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:50%;width:27px;height:27px}.library-actions{align-items:center;gap:14px;display:flex}.library-actions p{color:var(--muted);font-size:12px}.song-sort{border:1px solid var(--line);background:#ffffff73;border-radius:12px;align-items:center;gap:8px;min-height:43px;padding:5px 10px 5px 12px;display:flex}.song-sort span{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:900}.song-sort select{min-width:160px;color:var(--ink);cursor:pointer;background:0 0;border:0;font-size:11px;font-weight:800}.song-import{border:1px solid var(--ink);background:var(--lime);width:min(1120px,100% - 48px);box-shadow:4px 4px 0 var(--ink);border-radius:18px;gap:16px;margin:0 auto 18px;padding:22px;display:grid}.song-import h2{margin:3px 0;font-size:25px}.song-import-intro>p:last-child{color:#171813b3;margin:0;font-size:11px}.song-import-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;display:grid}.song-import label{flex-direction:column;gap:6px;font-size:11px;font-weight:850;display:flex}.song-import label>span em{color:var(--muted);font-weight:650}.song-import label>small{color:var(--muted);font-size:9px}.song-import input[type=file]{background:#ffffff52;border:1px dashed #17181373;border-radius:9px;width:100%;min-height:39px;padding:8px;font-size:10px}.song-import input[type=text],.song-import input[type=number],.song-import select{background:#ffffff8c;border:1px solid #17181373;border-radius:9px;width:100%;min-height:42px;padding:0 11px}.song-import input:disabled{opacity:.58;cursor:not-allowed}.score-source-note{background:#ffffff59;border:1px solid #17181352;border-radius:10px;flex-direction:column;justify-content:center;gap:4px;min-height:63px;padding:10px 12px;display:flex}.score-source-note strong{font-size:11px}.score-source-note small{color:var(--muted);font-size:9px;line-height:1.4}.timing-automation{grid-template-columns:1fr 1fr;gap:10px;display:grid}.song-import .timing-automation>label{background:#ffffff59;border:1px solid #17181352;border-radius:11px;flex-direction:row;align-items:center;min-height:58px;padding:11px 13px}.timing-automation input{width:19px;height:19px;accent-color:var(--ink);flex:none}.timing-automation label>span{flex-direction:column;gap:3px;display:flex}.timing-automation small{color:#171813a6;font-size:9px;font-weight:650}.song-import .import-rights{flex-direction:row;justify-self:start;align-items:center;font-weight:700}.import-rights input{width:18px;height:18px;accent-color:var(--ink)}.song-import-actions{justify-content:space-between;align-items:center;gap:16px;display:flex}.song-import-actions>small{color:#171813b3;font-weight:750}.song-import .import-error{color:#8b241a;margin:0;font-size:11px;font-weight:800}.import-success{color:#14564e;background:#3ad7c824;border:1px solid #176a60;border-radius:12px;width:min(1120px,100% - 48px);margin:0 auto 18px;padding:13px 16px;font-size:11px;font-weight:750;line-height:1.45}.management-error{color:#8b241a;background:#ff66471f;border:1px solid #a82f1a;border-radius:12px;width:min(1120px,100% - 48px);margin:0 auto 18px;padding:13px 16px;font-size:11px;font-weight:800}.song-edit-dialog{width:min(760px,100%);max-height:calc(100vh - 40px);overflow-y:auto}.song-edit-dialog h2,.delete-song-dialog h2{margin:0 0 22px}.song-edit-grid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.song-edit-grid label{flex-direction:column;gap:6px;display:flex}.song-edit-grid label>span em{color:var(--muted);font-weight:650}.song-edit-grid input[type=text],.song-edit-grid input[type=number],.song-edit-grid select{border:1px solid var(--line);background:#fff;border-radius:11px;width:100%;height:48px;margin:0;padding:0 13px;font-size:15px}.song-edit-grid small{color:var(--muted);letter-spacing:0;text-transform:none;font-size:9px;font-weight:650}.audio-analysis-card{background:#3ad7c81a;border:1px solid #176a60;border-radius:12px;justify-content:space-between;align-items:center;gap:14px;margin-top:16px;padding:13px 14px;display:flex}.audio-analysis-card>div{flex-direction:column;gap:4px;display:flex}.audio-analysis-card small{color:var(--muted);font-size:10px}.audio-analysis-card .button{white-space:nowrap;min-height:38px}.analysis-info{color:#14564e;background:#3ad7c824;border-radius:10px;margin:12px 0 0;padding:11px 13px;font-size:11px;font-weight:750;line-height:1.45}.edit-song-help,.delete-song-dialog>p:not(.eyebrow):not(.import-error){color:var(--muted);margin:18px 0;font-size:12px;line-height:1.5}.song-edit-dialog .import-error,.delete-song-dialog .import-error{color:#8b241a;font-size:11px;font-weight:800}.delete-song-dialog{width:min(560px,100%)}@media (width<=900px){.topbar{padding:0 20px}.brand-name{display:none}.library-heading{padding-top:38px}.song-main{grid-template-columns:35px 74px 1fr 46px;gap:14px}.album-art{width:70px;height:70px}.song-main>.stars{display:none}.song-difficulties{grid-template-columns:repeat(3,1fr);margin-left:123px}.pregame-layout{grid-template-columns:28% 1fr}.song-poster{padding:20px}.song-poster h1{font-size:38px}.poster-art{opacity:.58}.setup-panel{padding:14px 16px}.setup-section{margin-bottom:10px;padding-bottom:11px}.difficulty-grid{gap:6px}.difficulty-grid button{min-height:78px;padding:8px}.difficulty-grid strong{font-size:13px}.difficulty-grid span{font-size:8px}.tempo-kit-grid{grid-template-columns:minmax(220px,.75fr) minmax(330px,1.25fr);gap:12px}.tempo-control{grid-template-columns:82px minmax(0,1fr);gap:8px}.score-note{margin-left:90px}.setup-options-grid{margin-bottom:10px}.pregame-actions,.start-button{min-height:52px}.game-topbar{grid-template-columns:45px 1fr auto 46px}.game-topbar .brand-name{display:none}.hud>div{min-width:88px;padding:6px 12px}.hud strong{font-size:20px}.highway-lane{grid-template-columns:92px minmax(0,1fr)}.highway-beats,.highway-target-overlay{left:92px}.result-grid{grid-template-columns:1fr 1fr}.judgment-breakdown{grid-column:1/-1}.drum-breakdown{grid-template-columns:repeat(5,minmax(120px,1fr))}.drum-breakdown>span{display:none}.mapping-grid{grid-template-columns:repeat(3,1fr)}.delay-grid,.calibration-intro{grid-template-columns:1fr}.calibration-current{width:min(100%,410px)}.calibration-primary-actions{justify-content:space-between}.calibration-result,.calibration-proposal{grid-template-columns:74px 1fr}.calibration-result-actions,.calibration-proposal .calibration-result-actions,.calibration-proposal .calibration-explanation{grid-column:2}.calibration-proposal .calibration-values{grid-column:1/-1;width:100%}.song-import-grid{grid-template-columns:1fr 1fr}.timing-automation{grid-template-columns:1fr}}@media (height<=620px) and (width>=651px){.pregame-screen>.topbar{height:60px;padding-top:env(safe-area-inset-top)}.pregame-layout{height:calc(100dvh - 60px)}.song-poster{padding:16px 20px}.song-poster h1{font-size:32px}.song-poster dl{margin-top:10px;padding-top:9px}.setup-panel{padding:8px 14px}.setup-section{margin-bottom:7px;padding-bottom:7px}.step-label{min-height:20px;margin-bottom:4px}.step-label span{width:19px;height:19px}.difficulty-grid button{min-height:54px;padding:6px 8px}.difficulty-grid span{display:none}.difficulty-grid small{margin-top:3px}.tempo-control{grid-template-columns:86px minmax(0,1fr)}.tempo-kit-grid{grid-template-columns:minmax(205px,.7fr) minmax(330px,1.3fr);gap:10px}.tempo-readout strong{font-size:24px}.tempo-section .range{height:20px}.range-labels{display:none}.setup-options-grid{margin-bottom:7px}.setup-options-grid .setup-section{padding:7px 9px}.setup-options-grid .step-label{margin-bottom:4px}.premixed-audio-note{min-height:36px}.connection-banner{min-height:48px;padding:6px 10px}.connection-banner p{display:none}.pregame-actions,.start-button{min-height:48px}}@media (width<=650px){.midi-pill{padding:0 10px;font-size:10px}.player-chip{padding-right:5px;font-size:0}.profile-hero{margin-top:40px}.profile-card{width:155px;min-height:205px}.avatar{width:80px;height:80px}.library-heading{flex-direction:column;align-items:flex-start}.song-main{grid-template-columns:65px 1fr 42px}.song-number{display:none}.song-title{font-size:22px}.song-difficulties{grid-template-columns:1fr;margin-left:0}.song-difficulties button{border-right:0;border-bottom:1px solid var(--line)}.pregame-screen{height:auto;overflow:visible}.pregame-layout{height:auto;display:block}.song-poster{border-right:0;border-bottom:1px solid var(--ink);min-height:260px}.poster-art{opacity:.35;height:70%}.setup-panel{overflow:visible}.difficulty-grid{grid-template-columns:1fr 1fr}.difficulty-grid button{min-height:92px}.tempo-kit-grid{grid-template-columns:1fr}.tempo-control{grid-template-columns:85px 1fr}.score-note{margin-left:100px}.setup-options-grid,.pregame-actions,.pregame-actions.kit-ready{grid-template-columns:1fr}.pregame-actions{margin-top:0}.game-topbar{grid-template-columns:35px 1fr 44px;padding:0 12px}.hud{display:none}.virtual-pads{grid-template-columns:repeat(4,1fr)}.game-screen{grid-template-rows:72px minmax(0,1fr) 42px auto}.game-playfield{grid-template-rows:minmax(105px,24%) minmax(0,1fr)}.drum-highway{grid-template-rows:34px minmax(0,1fr)}.highway-heading{padding:0 9px}.highway-heading small{display:none}.highway-lane{grid-template-columns:70px minmax(0,1fr)}.highway-lane-label{padding:0 7px;font-size:7px}.highway-beats,.highway-target-overlay{left:70px}.highway-quality{padding:3px 5px}.game-dialog{padding:25px}.game-dialog-actions{flex-wrap:wrap}.results-header{grid-template-columns:30px 1fr;gap:14px}.result-song{text-align:left}.saved-state{display:none}.result-grid{grid-template-columns:1fr}.judgment-breakdown,.drum-breakdown{grid-column:auto}.drum-breakdown{grid-template-columns:1fr}.results-actions{flex-wrap:wrap}.results-actions .button:first-child{margin:0}.mapping-grid{grid-template-columns:repeat(2,1fr)}.volume-row{grid-template-columns:105px 1fr 45px}.calibration-stepper{padding:0 7px}.calibration-stepper span{font-size:7px}.calibration-stepper span:before{display:none}.calibration-intro,.calibration-running,.calibration-result{padding:20px}.calibration-primary-actions,.calibration-running-footer,.calibration-result-actions{flex-direction:column;align-items:stretch}.calibration-primary-actions .button,.calibration-running-footer .button,.calibration-result-actions .button{width:100%}.calibration-primary-actions p{text-align:center}.calibration-running-footer>span{margin:0}.calibration-result,.calibration-proposal{grid-template-columns:1fr}.calibration-result-mark{width:56px;height:56px}.calibration-result-actions,.calibration-proposal .calibration-result-actions,.calibration-proposal .calibration-explanation,.calibration-proposal .calibration-values{grid-column:1}.calibration-proposal .calibration-values{min-width:0}.calibration-target:before{width:86px;height:86px}.calibration-moving-hit{width:68px;height:68px}.delay-help-row{flex-direction:column;align-items:stretch}.library-actions{flex-wrap:wrap;justify-content:space-between;width:100%}.library-actions>p{width:100%;margin:0}.song-sort{flex:1}.song-sort select{width:100%;min-width:0}.song-import-grid,.song-edit-grid{grid-template-columns:1fr}.song-import-actions{flex-direction:column;align-items:stretch}.song-import-actions .button{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.highway-quality{opacity:1;animation:none!important}}
