:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#f7f8ff;--muted:#a9afd0;--panel:#0e112bc7;--panel-strong:#0c0e22f0;--border:#b1c1ff2e;--cyan:#68f6e4;--blue:#4f8cff;--violet:#9d62ff;--pink:#ff59bd;--gold:#ffd66f;--danger:#ff6f91;--safe:min(1680px, calc(100vw - 56px));color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;background:#060713;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{background:#060713;overflow-x:hidden}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #68f6e4d9}h1,h2,h3,h4,p{margin-top:0}p{color:var(--muted);line-height:1.55}.boot-screen{background:radial-gradient(circle at 50% 30%,#16214d,#060713 60%);place-content:center;justify-items:center;gap:14px;min-height:100dvh;display:grid}.boot-screen strong{letter-spacing:.18em;font-size:clamp(2rem,6vw,5rem)}.boot-screen small{color:var(--muted)}.spinner{border:3px solid #ffffff29;border-top-color:var(--cyan);border-radius:50%;width:44px;height:44px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.screen-shell{isolation:isolate;min-height:100dvh;padding-bottom:88px;position:relative;overflow:hidden auto}.stage-background:before{content:"";pointer-events:none;opacity:.25;z-index:-2;background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-size:52px 52px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 86%);mask-image:linear-gradient(#000,#0000 86%)}.ambient-orb{filter:blur(90px);opacity:.22;pointer-events:none;z-index:-1;border-radius:50%;animation:9s ease-in-out infinite alternate float;position:fixed}.orb-a{background:#3c43c7;width:32vw;height:32vw;top:10vh;left:-8vw}.orb-b{background:#1cbea8;width:28vw;height:28vw;animation-delay:-3s;top:18vh;right:-6vw}@keyframes float{to{transform:translate(4vw,5vh)scale(1.08)}}.content-safe{width:var(--safe);margin-inline:auto}.glass-panel{border:1px solid var(--border);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:linear-gradient(160deg,#191d45db,#080a1be0);border-radius:26px;box-shadow:0 22px 80px #00000052,inset 0 1px #ffffff0f}.eyebrow{color:var(--cyan);letter-spacing:.14em;text-transform:uppercase;font-size:.76rem;font-weight:800}.helper-text{font-size:.9rem}.text-button{color:var(--cyan);cursor:pointer;background:0 0;border:0;padding:10px;font-weight:700}.button-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.game-button{min-height:48px;color:var(--ink);letter-spacing:.045em;cursor:pointer;background:#1c2049d9;border:1px solid #aec2ff3d;border-radius:14px;padding:12px 22px;font-weight:850;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s;position:relative;overflow:hidden}.game-button:after{content:"";background:linear-gradient(110deg,#0000 20%,#ffffff38,#0000 70%);transition:transform .5s;position:absolute;inset:0;transform:translate(-120%)}.game-button:hover:after{transform:translate(120%)}.game-button:hover:not(:disabled){border-color:#82ffeea6;transform:translateY(-2px)scale(1.015);box-shadow:0 14px 32px #00000047}.game-button:active:not(:disabled){transform:translateY(1px)scale(.985)}.game-button.primary{color:#05101a;background:linear-gradient(135deg,#49e4d0,#4b83ff 58%,#9c62ff);border-color:#ffffff8c;box-shadow:0 12px 38px #4ddbe040}.game-button.danger{background:#7f2245cc}.game-button:disabled{opacity:.42;cursor:not-allowed}.game-button.icon-button{min-width:48px;padding:0;font-size:1.45rem}.top-bar{z-index:10;width:var(--safe);justify-content:space-between;align-items:center;gap:20px;min-height:94px;margin:0 auto;display:flex;position:relative}.top-bar-left{align-items:center;gap:16px;display:flex}.top-bar h1{letter-spacing:-.035em;margin:0;font-size:clamp(1.45rem,2.4vw,2.3rem)}.top-bar p{margin:4px 0 0;font-size:.92rem}.midi-pill{border:1px solid var(--border);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;background:#111431db;border-radius:999px;align-items:center;gap:9px;max-width:38vw;padding:9px 14px;font-size:.83rem;display:flex;overflow:hidden}.status-dot{background:#707594;border-radius:50%;flex:none;width:9px;height:9px;box-shadow:0 0 0 4px #70759421}.midi-pill.connected{color:#d7fff8;border-color:#53ffdb57}.midi-pill.connected .status-dot{background:var(--cyan);box-shadow:0 0 14px var(--cyan)}.attract-screen{background:radial-gradient(circle at 50% 25%,#1b265b,#070817 55%,#03040c);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.attract-grid{transform-origin:bottom;opacity:.75;background-image:linear-gradient(#74b0ff0d 1px,#0000 1px),linear-gradient(90deg,#74b0ff0d 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:0;transform:perspective(620px)rotateX(58deg)scale(1.35)translateY(33%)}.attract-glow{filter:blur(100px);opacity:.24;border-radius:50%;width:48vw;height:48vw;position:absolute}.glow-left{background:#6048e8;top:8vh;left:-18vw}.glow-right{background:#1bdcc4;top:3vh;right:-14vw}.falling-field{perspective:900px;position:absolute;inset:0 0 19vh;overflow:hidden}.attract-note{opacity:.8;border-radius:8px;width:clamp(9px,.8vw,18px);animation:linear infinite attractFall;position:absolute;top:-160px;box-shadow:0 0 18px,inset 0 0 0 1px #ffffff8c}.attract-note.cyan{color:#56f4dd;background:linear-gradient(#edffff,#38d8c8)}.attract-note.violet{color:#a56cff;background:linear-gradient(#fff,#8157ff)}@keyframes attractFall{0%{opacity:0;transform:translateY(-10vh)scaleY(.7)}9%{opacity:.8}88%{opacity:.9}to{opacity:0;transform:translateY(94vh)scaleY(1.2)}}.attract-piano{background:#f8f9ff;grid-template-columns:repeat(22,1fr);height:19vh;display:grid;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -8px 40px #53f7e242}.attract-key{background:linear-gradient(#fff,#dfe5ff);border-left:1px solid #272b44;position:relative}.attract-key:nth-child(7n+2):after,.attract-key:nth-child(7n+3):after,.attract-key:nth-child(7n+5):after,.attract-key:nth-child(7n+6):after,.attract-key:nth-child(7n+7):after{content:"";z-index:2;background:linear-gradient(#16182b,#292e54);border-radius:0 0 5px 5px;width:58%;height:61%;position:absolute;top:0;right:-29%}.attract-screen.music-live .attract-piano{animation:.92s ease-in-out infinite alternate pianoPulse}@keyframes pianoPulse{to{box-shadow:0 -8px 70px #53f7e280}}.attract-content p{color:#e1e6ff;max-width:650px;margin:18px auto 28px;font-size:clamp(1rem,1.7vw,1.3rem)}.attract-actions{justify-content:center;align-items:center;gap:14px;display:flex}.attract-actions .game-button{min-width:min(330px,75vw);padding-block:17px;font-size:1.08rem}.attract-hint{color:#aeb7df;margin-top:14px;font-size:.86rem}.build-marker{color:#dee5ff99;letter-spacing:.1em;font-size:.7rem;position:absolute;top:22px;right:24px}.onboarding-grid{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);align-items:stretch;gap:26px;display:grid}.hero-panel{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:570px;padding:clamp(28px,5vw,68px);display:flex}.hero-panel h2{letter-spacing:-.05em;margin:18px 0 8px;font-size:clamp(2rem,4vw,4.2rem)}.hero-panel p{max-width:650px}.connection-orb{color:#747b9c;background:radial-gradient(circle,#2a2e59,#12142d);border:1px solid #ffffff1f;border-radius:50%;place-items:center;width:126px;height:126px;font-size:3rem;display:grid;box-shadow:0 0 0 18px #ffffff05,0 25px 70px #00000059}.connection-orb.connected{color:#08221f;background:radial-gradient(circle at 35% 30%,#d8fff9,#4cebd5 48%,#37f);animation:1.5s ease-in-out infinite alternate connectedPulse;box-shadow:0 0 0 18px #51f4da12,0 0 80px #51f4da61}@keyframes connectedPulse{to{transform:scale(1.04)}}.live-note-readout{border:1px solid var(--border);color:#dffef8;letter-spacing:.08em;background:#0405108f;border-radius:14px;place-items:center;width:min(520px,100%);min-height:54px;margin:20px 0;font-weight:800;display:grid}.setup-list{gap:16px;display:grid}.setup-step{opacity:.66;background:#0d1027b8;border:1px solid #acbbff1c;border-radius:22px;align-items:center;gap:20px;min-height:160px;padding:24px;display:flex}.setup-step strong{background:#22274f;border-radius:50%;flex:none;place-items:center;width:54px;height:54px;font-size:1.35rem;display:grid}.setup-step h3{margin:0 0 5px}.setup-step p{margin:0;font-size:.9rem}.setup-step.active{opacity:1;border-color:#60f5de5c;transform:translate(-6px)}.setup-step.done{opacity:1}.setup-step.done strong{background:var(--cyan);color:#071614}.mapping-prompt{text-align:center;padding:20px}.mapping-prompt>span{width:48px;height:48px;color:var(--cyan);background:#67f3e224;border-radius:50%;place-items:center;font-weight:900;display:inline-grid}.mapping-prompt h3{font-size:1.65rem}.mapping-prompt em{color:var(--cyan);font-style:normal}.mapping-summary{gap:10px;display:grid}.mapping-summary>div{text-transform:capitalize;background:#ffffff0a;border-radius:12px;justify-content:space-between;align-items:center;padding:14px;display:flex}kbd{color:#171a2c;background:#f6f7ff;border-radius:7px;padding:5px 9px;font-weight:900;display:inline-block;box-shadow:inset 0 -3px #0000002e}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#02030ac2;place-items:center;padding:20px;animation:.18s fadeIn;display:grid;position:fixed;inset:0}.modal-panel{background:linear-gradient(160deg,#202556,#0c0e25);border:1px solid #b0c6ff40;border-radius:26px;width:min(620px,100%);animation:.24s cubic-bezier(.2,.8,.2,1) modalIn;box-shadow:0 40px 110px #00000094}.modal-heading{justify-content:space-between;align-items:center;padding:24px 26px 0;display:flex}.modal-heading h2{margin:0}.modal-heading button{color:#fff;cursor:pointer;background:0 0;border:0;font-size:2rem}.modal-body{padding:18px 26px 24px}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:0 26px 26px;display:flex}@keyframes fadeIn{0%{opacity:0}}@keyframes modalIn{0%{opacity:0;transform:translateY(18px)scale(.97)}}.calibration-layout{grid-template-columns:1.15fr .85fr;gap:26px;display:grid}.calibration-stage,.calibration-controls{padding:clamp(26px,4vw,54px)}.calibration-stage{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:590px;display:flex}.calibration-pulse{place-items:center;width:190px;height:190px;margin-bottom:28px;display:grid;position:relative}.calibration-pulse:before,.calibration-pulse:after{content:"";border:2px solid #6bf5e140;border-radius:50%;position:absolute;inset:0}.calibration-pulse:after{inset:25px}.calibration-pulse span{background:radial-gradient(circle,#fff,#6cf6e3 38%,#4683ff);border-radius:50%;width:68px;height:68px;transition:transform 80ms,box-shadow 80ms;box-shadow:0 0 45px #6bf5e173}.calibration-pulse.active span{transform:scale(1.85);box-shadow:0 0 90px #6bf5e1f2}.calibration-pulse.active:before{animation:.45s ease-out ring}@keyframes ring{to{opacity:0;transform:scale(1.5)}}.calibration-meter{background:#ffffff14;border-radius:999px;width:min(430px,100%);height:10px;margin:18px 0 30px;overflow:hidden}.calibration-meter span{background:linear-gradient(90deg, var(--cyan), var(--blue));height:100%;transition:width .2s;display:block}.calibration-controls{flex-direction:column;justify-content:center;gap:24px;display:flex}.offset-control>div,.range-row>div{justify-content:space-between;margin-bottom:8px;display:flex}.offset-control output,.range-row output{color:var(--cyan);font-weight:800}input[type=range]{width:100%;accent-color:var(--cyan)}.hub-layout{grid-template-columns:minmax(0,1fr) 350px;gap:26px;display:grid}.hub-welcome{justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px;display:flex}.hub-welcome h2{letter-spacing:-.055em;margin:4px 0 0;font-size:clamp(2rem,4vw,4.2rem)}.mode-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.mode-card{text-align:left;cursor:pointer;background:linear-gradient(150deg,#1a1e46d6,#080a1beb);border:1px solid #b5c4ff26;border-radius:24px;min-height:260px;padding:28px;transition:transform .2s,border-color .2s,box-shadow .2s;position:relative;overflow:hidden}.mode-card:before{content:"";opacity:0;background:radial-gradient(circle,#4defdb3d,#0000 63%);height:100%;transition:opacity .2s;position:absolute;inset:auto -25% -55% 25%}.mode-card:hover,.mode-card.selected{border-color:#63f5e0ad;transform:translateY(-5px);box-shadow:0 24px 70px #0000005c,inset 0 0 40px #4defdb0a}.mode-card.selected:before{opacity:1}.mode-card.featured{background:radial-gradient(circle at 82% 48%,#47e2d038,#0000 30%),linear-gradient(130deg,#2f2f7ff2,#0c0e26f2);grid-column:1/-1;min-height:300px}.mode-card h3{margin:8px 0;font-size:clamp(1.7rem,2.7vw,3rem)}.mode-card p{max-width:680px}.mode-icon{color:#76fbe873;font-size:3.2rem;position:absolute;top:20px;right:26px}.card-cta{color:#d8fff8;letter-spacing:.08em;font-weight:900;position:absolute;bottom:24px;left:28px}.profile-snapshot{align-self:start;padding:24px;position:sticky;top:20px}.snapshot-heading{justify-content:space-between;align-items:center;margin-bottom:26px;display:flex}.bpm-badge{background:radial-gradient(circle,#65f7e138,#222857b3);border-radius:50%;align-content:center;place-items:center;width:90px;height:90px;font-size:1.5rem;font-weight:900;display:grid}.bpm-badge small{color:var(--muted);font-size:.58rem}.profile-snapshot h4{color:#dbe0ff;margin:24px 0 12px}.skill-bar{margin-bottom:16px}.skill-bar-label{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.skill-bar-label span{color:#e8eaff}.skill-bar-label strong{color:var(--cyan)}.skill-track{background:#ffffff14;border-radius:999px;height:10px;overflow:hidden}.skill-track span{border-radius:inherit;background:linear-gradient(90deg,#4a72ff,#58f3da);height:100%;display:block;box-shadow:0 0 18px #53f5da47}.skill-bar small{color:#858cac}.skill-bar.compact{margin-bottom:11px}.skill-bar.compact .skill-track{height:7px}.piano-nav-legend{z-index:30;border:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#070816e6;border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;max-width:calc(100vw - 24px);padding:9px 16px;font-size:.75rem;display:flex;position:fixed;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 12px 35px #00000059}.piano-nav-legend span{color:var(--muted);align-items:center;gap:6px;display:flex}.song-select-screen{overflow:hidden}.song-browser{grid-template-rows:minmax(330px,46vh) 1fr;min-height:calc(100dvh - 94px);display:grid}.song-carousel{perspective:1200px;background:radial-gradient(circle at 50% 70%, color-mix(in srgb, var(--song-primary) 34%, transparent), transparent 40%);justify-content:center;align-items:center;gap:clamp(8px,1.5vw,28px);display:flex;position:relative;overflow:hidden}.album-card{text-align:center;cursor:pointer;background:0 0;border:0;width:clamp(150px,17vw,300px);transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .32s,filter .32s}.album-card.offset-0{z-index:5;transform:translateZ(120px)scale(1.06)}.album-card.offset--1,.album-card.offset-1{transform:rotateY(var(--angle,16deg)) scale(.83);opacity:.7;filter:saturate(.7)}.album-card.offset--1{--angle:24deg}.album-card.offset-1{--angle:-24deg}.album-card.offset--2,.album-card.offset-2{opacity:.27;filter:blur(1px);transform:scale(.64)}.album-art{aspect-ratio:1;background:linear-gradient(135deg, var(--cover-a), var(--cover-b));border:1px solid #ffffff4d;border-radius:22px;place-items:center;display:grid;position:relative;overflow:hidden;box-shadow:0 25px 65px #00000061,inset 0 1px #ffffff40}.album-lines{background:repeating-linear-gradient(120deg,#0000 0 18px,#ffffff1f 18px 20px);position:absolute;inset:-20%;transform:rotate(9deg)}.album-note{text-shadow:0 12px 30px #0000004d;font-size:clamp(3rem,8vw,7rem);position:relative}.album-title{margin-top:13px;font-size:1.05rem;font-weight:900;display:block}.album-composer{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;display:block;overflow:hidden}.carousel-arrow{z-index:10;border:1px solid var(--border);cursor:pointer;background:#090b1cb8;border-radius:16px;width:58px;height:96px;font-size:3rem;position:absolute;top:50%;transform:translateY(-50%)}.carousel-arrow.left{left:24px}.carousel-arrow.right{right:24px}.song-detail{grid-template-columns:minmax(0,1fr) 380px;gap:28px;padding-block:26px 72px;display:grid}.song-copy h2{letter-spacing:-.06em;margin:8px 0 0;font-size:clamp(2.2rem,5vw,5rem)}.song-copy .composer{color:#e7eaff;margin-bottom:18px}.song-badges{flex-wrap:wrap;gap:8px;display:flex}.song-badges span{color:#d6fff9;background:#72f5e01a;border:1px solid #72f5e033;border-radius:999px;padding:6px 10px;font-size:.72rem;font-weight:800}.difficulty-row{flex-wrap:wrap;gap:8px;margin:24px 0 10px;display:flex}.difficulty-row button,.option-grid button{border:1px solid var(--border);cursor:pointer;background:#101330c2;border-radius:10px;padding:10px 14px;font-weight:850}.difficulty-row button.active,.option-grid button.active{background:linear-gradient(135deg, var(--cyan), #7295ff);color:#08131a;border-color:#fff;box-shadow:0 8px 24px #4fe1d338}.arrangement-description{min-height:28px}.song-stats{padding:24px}.mini-stat{grid-template-columns:130px 1fr 32px;align-items:center;gap:10px;margin-bottom:13px;font-size:.8rem;display:grid}.mini-stat>div{background:#ffffff14;border-radius:99px;height:8px;overflow:hidden}.mini-stat i{background:linear-gradient(90deg,#5b79ff,#54edda);height:100%;display:block}.best-grade{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:25px;padding-top:20px;display:flex}.stars{white-space:nowrap;color:#ffffff26;letter-spacing:.08em}.stars .filled{color:var(--gold);text-shadow:0 0 14px #ffd66f73}.tour-map{grid-template-columns:repeat(4,1fr);align-items:center;gap:28px;min-height:310px;padding:42px 0;display:grid;position:relative}.tour-path{opacity:.35;background:linear-gradient(90deg,#52e9d7,#5a75ff,#ae5eff,#ff4aad);height:6px;position:absolute;top:50%;left:8%;right:8%;transform:translateY(-50%);box-shadow:0 0 24px #60d9ff42}.venue-node{z-index:2;text-align:center;background:linear-gradient(145deg, color-mix(in srgb, var(--venue-a) 52%, #151831), color-mix(in srgb, var(--venue-b) 24%, #090b1e));cursor:pointer;border:1px solid #ffffff29;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:188px;padding:24px 14px;transition:transform .2s,box-shadow .2s,filter .2s;display:flex;position:relative}.venue-node.selected{box-shadow:0 25px 70px color-mix(in srgb, var(--venue-b) 25%, transparent);border-color:#ffffff85;transform:translateY(-12px)scale(1.04)}.venue-node.locked{filter:grayscale(.9)brightness(.5)}.venue-number{color:#fff9;font-weight:900;position:absolute;top:10px;left:12px}.venue-light{background:radial-gradient(circle, #fff, var(--venue-b) 42%, transparent 70%);width:52px;height:52px;box-shadow:0 0 34px var(--venue-b);border-radius:50%}.venue-node strong{font-size:1.25rem}.venue-node small{color:#d7dcf7}.tour-detail{grid-template-columns:minmax(0,1fr) 390px;gap:28px;padding-bottom:70px;display:grid}.tour-detail>section h2{letter-spacing:-.06em;margin:8px 0;font-size:clamp(2.7rem,5vw,5rem)}.set-list{gap:10px;margin-top:22px;display:grid}.set-song{background:#111432b3;border:1px solid #ffffff14;border-radius:14px;grid-template-columns:42px 1fr auto auto;align-items:center;gap:13px;padding:14px 16px;display:grid}.set-song>span{background:#2a2f64;border-radius:50%;place-items:center;width:34px;height:34px;font-weight:900;display:grid}.set-song small{color:var(--muted);display:block}.set-song em{color:var(--cyan);font-size:.78rem;font-style:normal}.tour-controls{padding:24px}.stacked-options{gap:9px;margin-bottom:20px;display:grid}.stacked-options button{text-align:left;border:1px solid var(--border);cursor:pointer;background:#ffffff08;border-radius:12px;padding:14px}.stacked-options button strong,.stacked-options button span{display:block}.stacked-options button span{color:var(--muted);margin-top:4px;font-size:.78rem}.stacked-options button.active{border-color:var(--cyan);background:#5ef3dc1a;box-shadow:inset 0 0 22px #5ef3dc0f}.practice-layout{grid-template-columns:1fr 1fr;gap:26px;display:grid}.practice-song,.practice-controls{padding:clamp(24px,4vw,50px)}.practice-song{text-align:center}.practice-selector{grid-template-columns:52px minmax(180px,340px) 52px;justify-content:center;align-items:center;gap:12px;margin:24px 0;display:grid}.practice-selector>button{border:1px solid var(--border);cursor:pointer;background:#ffffff0d;border-radius:14px;height:90px;font-size:2.5rem}.practice-cover{aspect-ratio:1;background:linear-gradient(135deg, var(--cover-a), var(--cover-b));border-radius:28px;place-items:center;font-size:6rem;display:grid;box-shadow:0 25px 70px #0006}.practice-controls{flex-direction:column;gap:22px;display:flex}.control-group>label{color:#dce1ff;margin-bottom:10px;font-weight:800;display:block}.option-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.dual-range{gap:8px;display:grid}.profile-layout{gap:24px;padding-bottom:70px;display:grid}.profile-hero{align-items:center;gap:30px;padding:34px;display:flex}.level-orb{color:#071616;background:radial-gradient(circle at 35% 30%,#eafffb,#55e6d1 36%,#466bff 70%,#7b46ce);border-radius:50%;flex:none;align-content:center;place-items:center;width:145px;height:145px;display:grid;box-shadow:0 0 80px #52e7d147}.level-orb strong{font-size:4rem;line-height:.9}.level-orb span{font-size:.7rem;font-weight:900}.profile-hero h2{margin:4px 0;font-size:clamp(2.2rem,4vw,4rem)}.profile-highlights{grid-template-columns:1fr 1fr;gap:24px;display:grid}.profile-highlights>div,.all-skills,.history{padding:26px}.skills-grid{grid-template-columns:repeat(3,1fr);gap:12px 22px;display:grid}.history-row{border-bottom:1px solid #ffffff14;grid-template-columns:56px 1fr auto;align-items:center;gap:16px;padding:13px 0;display:grid}.history-row small{color:var(--muted);margin-top:4px;display:block}.history-row time{color:var(--muted);font-size:.8rem}.grade{background:#282d5e;border-radius:12px;place-items:center;width:48px;height:48px;font-weight:950;display:grid}.grade-s{color:#291a00;background:linear-gradient(135deg,#fff6aa,#f4ad3d)}.grade-a{color:#06211b;background:linear-gradient(135deg,#8fffe8,#45bfa9)}.grade-b{background:#5577d8}.grade-c{background:#7359a7}.grade-d{background:#63394e}.profile-reveal-screen{place-items:center;padding:60px 0;display:grid}.profile-reveal{text-align:center;position:relative}.profile-reveal h1{letter-spacing:-.065em;margin:10px 0;font-size:clamp(2.8rem,6vw,6.5rem)}.reveal-burst{filter:blur(30px);z-index:-1;background:radial-gradient(circle,#5cf5df52,#0000 68%);border-radius:50%;width:500px;height:500px;position:absolute;top:-200px;left:50%;transform:translate(-50%)}.reveal-level{color:#071515;background:radial-gradient(circle at 35% 30%,#f1fffc,#5ff0da 30%,#4b74ff 63%,#6d3ba5);border-radius:50%;align-content:center;place-items:center;width:240px;height:240px;margin:30px auto;display:grid;box-shadow:0 0 100px #56edd859}.reveal-level strong{font-size:6rem;line-height:.8}.reveal-level span{font-size:.72rem;font-weight:950}.reveal-level em{margin-top:8px;font-size:.78rem;font-style:normal}.reveal-columns{text-align:left;grid-template-columns:1fr 1fr;gap:24px;margin:32px 0;display:grid}.reveal-columns>section{padding:26px}.settings-layout{grid-template-columns:repeat(2,1fr);gap:24px;padding-bottom:60px;display:grid}.settings-group{padding:28px}.settings-group h2{margin-bottom:24px}.toggle-row{cursor:pointer;border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;gap:16px;padding:13px 0;display:flex}.toggle-row input{opacity:0;position:absolute}.toggle-row i{background:#303557;border-radius:999px;flex:none;width:52px;height:28px;transition:background .2s;position:relative}.toggle-row i:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s;position:absolute;top:3px;left:3px}.toggle-row input:checked+i{background:linear-gradient(90deg,var(--cyan),#5b7aff)}.toggle-row input:checked+i:after{transform:translate(24px)}.range-row{margin-bottom:22px;display:block}.device-summary{background:#ffffff0a;border-radius:14px;align-items:center;gap:14px;margin-bottom:18px;padding:16px;display:flex}.device-summary>span{background:#7b819d;border-radius:50%;width:14px;height:14px}.device-summary>span.connected{background:var(--cyan);box-shadow:0 0 18px var(--cyan)}.device-summary small{color:var(--muted);display:block}.player-screen{background:#050612;position:fixed;inset:0;overflow:hidden}.highway-host{width:100vw;height:100dvh;position:absolute;inset:0;overflow:hidden}.pixi-canvas{display:block;width:100%!important;height:100%!important}.player-hud{z-index:10;pointer-events:none;background:linear-gradient(#03040eeb,#03040e73,#0000);grid-template-columns:1fr auto 1fr;align-items:start;gap:16px;min-height:82px;padding:14px 22px;display:grid;position:absolute;top:0;left:0;right:0}.hud-left,.hud-right{pointer-events:auto;align-items:center;gap:14px;display:flex}.hud-right{justify-content:flex-end}.hud-left strong,.hud-left span{display:block}.hud-left span{color:var(--muted);margin-top:3px;font-size:.72rem}.hud-button{cursor:pointer;background:#0d1028cc;border:1px solid #ffffff2e;border-radius:10px;padding:9px 12px;font-size:.72rem;font-weight:850}.hud-center{text-align:center;color:#dce3ff;min-width:360px;font-size:.78rem;font-weight:850}.hud-metric{text-align:center;min-width:64px}.hud-metric strong{text-shadow:0 0 18px #6bf6e259;font-size:1.35rem;line-height:1;display:block}.hud-metric span{color:var(--muted);letter-spacing:.08em;font-size:.58rem}.flow-meter{z-index:11;background:#ffffff0f;height:4px;position:absolute;top:0;left:0;right:0}.flow-meter span{background:linear-gradient(90deg,#4f73ff,#5cf4dc,#ff64c4);height:100%;transition:width .16s;display:block;box-shadow:0 0 18px #5cf4dc}.segmented-progress{gap:4px;width:min(430px,36vw);margin:7px auto 0;display:flex}.segmented-progress span{background:#ffffff1c;border-radius:99px;flex:1;height:6px}.segmented-progress span.complete{background:#55e8d4}.segmented-progress span.current{background:#fff;animation:.8s ease-in-out infinite alternate stagePulse;box-shadow:0 0 14px #72f5e2}@keyframes stagePulse{to{transform:scaleY(1.6)}}.countdown{z-index:20;pointer-events:none;text-shadow:0 0 50px #66f5e2a6;align-content:center;place-items:center;display:grid;position:absolute;inset:0}.countdown span{font-size:clamp(7rem,20vw,18rem);font-weight:950;line-height:.8}.countdown small{letter-spacing:.3em;margin-top:18px;font-weight:900}.judgement{z-index:18;letter-spacing:-.05em;text-shadow:0 4px #00000059,0 0 35px;pointer-events:none;font-size:clamp(2rem,5vw,5rem);font-style:italic;font-weight:950;animation:.58s cubic-bezier(.2,1.4,.3,1) both judgePop;position:absolute;top:29%;left:50%;transform:translate(-50%,-50%)}.judgement-perfect{color:#f6ffff}.judgement-great{color:#67ffe6}.judgement-good{color:#86a9ff}.judgement-caught,.judgement-partial{color:#ffd470}.judgement-miss{color:#9da4c6;opacity:.7;font-size:clamp(1.4rem,3vw,2.6rem)}@keyframes judgePop{0%{opacity:0;transform:translate(-50%,-30%)scale(.6)rotate(-4deg)}25%{opacity:1;transform:translate(-50%,-50%)scale(1.16)rotate(1deg)}to{opacity:0;transform:translate(-50%,-70%)scale(.94)}}.pause-title{z-index:15;letter-spacing:.1em;background:#03040d7a;place-items:center;font-size:clamp(3rem,10vw,9rem);font-weight:950;display:grid;position:absolute;inset:0}.loading-overlay{z-index:40;background:#060714;place-content:center;justify-items:center;gap:14px;display:grid;position:absolute;inset:0}.error-detail{color:var(--muted);word-break:break-word;background:#ffffff0f;border-radius:8px;margin-top:10px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem}.demo-piano{z-index:24;border:1px solid var(--border);background:#050612db;border-radius:16px;align-items:end;padding:26px 12px 8px;display:flex;position:absolute;bottom:170px;left:50%;transform:translate(-50%);box-shadow:0 15px 50px #00000059}.demo-piano>span{color:var(--muted);font-size:.58rem;position:absolute;top:7px;left:12px}.demo-piano button{color:#111429;cursor:pointer;background:#f7f8ff;border:1px solid #282c45;justify-content:center;align-items:end;width:34px;height:76px;padding-bottom:5px;font-size:.55rem;display:flex}.demo-piano button.black{z-index:2;color:#fff;background:#16192d;align-self:start;width:25px;height:49px;margin-inline:-12px}.results-screen{place-items:center;padding:54px 0;display:grid}.results-content{text-align:center}.result-grade{color:#071514;background:radial-gradient(circle,#fff,#7cefdc 30%,#4d70ff 65%,#6136aa);border-radius:50%;align-content:center;place-items:center;width:190px;height:190px;margin:0 auto 20px;animation:.6s cubic-bezier(.2,1.2,.2,1) gradeIn;display:grid;box-shadow:0 0 100px #59ebd54d}.result-grade span{font-size:7rem;font-weight:950;line-height:.8}.result-grade small{letter-spacing:.16em;font-weight:950}.result-grade.grade-b,.result-grade.grade-c,.result-grade.grade-d{filter:saturate(.7)}@keyframes gradeIn{0%{opacity:0;transform:scale(.5)rotate(-10deg)}}.results-title h1{letter-spacing:-.06em;margin:6px 0;font-size:clamp(2.5rem,5vw,5rem)}.results-grid{grid-template-columns:repeat(6,1fr);gap:12px;margin:28px 0;display:grid}.result-stat{background:#121534b8;border:1px solid #ffffff1a;border-radius:16px;padding:18px 12px}.result-stat span{color:var(--muted);font-size:.7rem;display:block}.result-stat strong{margin-top:6px;font-size:1.45rem;display:block}.results-lower{text-align:left;grid-template-columns:1fr 1fr;gap:20px;display:grid}.results-lower>section{padding:24px}.result-skill{grid-template-columns:150px 1fr 34px;align-items:center;gap:10px;margin-bottom:13px;display:grid}.result-skill>div{background:#ffffff14;border-radius:99px;height:9px;overflow:hidden}.result-skill i{background:linear-gradient(90deg,#5579ff,#5cf2dc);height:100%;display:block}.results-profile h2{margin:8px 0;font-size:3rem}.results-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:26px;display:flex}@media (min-width:2100px){:root{--safe:min(1900px, calc(100vw - 120px))}.top-bar{min-height:112px}.song-browser{min-height:calc(100dvh - 112px)}.player-hud{padding-inline:48px}}@media (max-width:1100px){:root{--safe:calc(100vw - 32px)}.onboarding-grid,.calibration-layout,.hub-layout,.song-detail,.tour-detail,.practice-layout,.profile-highlights{grid-template-columns:1fr}.profile-snapshot{position:static}.song-stats,.tour-controls{width:100%}.tour-map{grid-template-columns:repeat(2,1fr)}.tour-path{display:none}.skills-grid{grid-template-columns:repeat(2,1fr)}.results-grid{grid-template-columns:repeat(3,1fr)}.player-hud{grid-template-columns:1fr auto}.hud-center{order:3;grid-column:1/-1;min-width:0}.hud-right .hud-metric:nth-of-type(2){display:none}}@media (max-width:700px){:root{--safe:calc(100vw - 22px)}.top-bar{align-items:flex-start;min-height:82px;padding-top:12px}.top-bar p{display:none}.midi-pill{max-width:42vw;font-size:.68rem}.mode-grid,.settings-layout,.reveal-columns,.results-lower{grid-template-columns:1fr}.mode-card.featured{grid-column:auto}.mode-card{min-height:230px}.profile-hero{text-align:center;flex-direction:column}.level-orb{width:120px;height:120px}.level-orb strong{font-size:3rem}.skills-grid{grid-template-columns:1fr}.tour-map{align-items:stretch;padding-inline:10px;display:flex;overflow-x:auto}.venue-node{min-width:210px}.song-carousel{gap:4px}.album-card{width:38vw}.album-card.offset--2,.album-card.offset-2{display:none}.carousel-arrow{width:42px;height:70px}.carousel-arrow.left{left:6px}.carousel-arrow.right{right:6px}.song-detail{padding-inline:0}.practice-selector{grid-template-columns:42px 1fr 42px}.results-grid{grid-template-columns:repeat(2,1fr)}.result-grade{width:150px;height:150px}.result-grade span{font-size:5.5rem}.player-hud{padding:10px}.hud-left>div{display:none}.hud-right{gap:5px}.hud-metric{min-width:48px}.hud-metric strong{font-size:1rem}.hud-button{padding:7px}.hud-center{font-size:.66rem}.demo-piano{max-width:96vw;bottom:110px;overflow-x:auto}.piano-nav-legend{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.player-screen.flow-hot:after{content:"";z-index:5;pointer-events:none;animation:1.1s ease-in-out infinite alternate flowHot;position:absolute;inset:0;box-shadow:inset 0 0 120px #56f5dc29}@keyframes flowHot{to{box-shadow:inset 0 0 190px #56f5dc4a,inset 0 -60px 130px #8549ff1a}}.stage-intro{z-index:22;text-align:center;pointer-events:none;animation:2.2s both stageIntro;position:absolute;top:17%;left:50%;transform:translate(-50%)}.stage-intro span{color:var(--cyan);letter-spacing:.18em;font-size:.75rem;font-weight:900;display:block}.stage-intro strong{text-shadow:0 0 42px #5ef5df66;margin:6px 0;font-size:clamp(2rem,5vw,5.5rem);line-height:1;display:block}.stage-intro em{color:#e3e8ff;font-size:clamp(.9rem,1.7vw,1.3rem);font-style:normal}@keyframes stageIntro{0%{opacity:0;transform:translate(-50%,22px)scale(.94)}16%,66%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-25px)scale(1.02)}}.combo-milestone{z-index:23;color:#061516;letter-spacing:.06em;pointer-events:none;background:linear-gradient(135deg,#53f4dcf2,#5a70fff2);border-radius:14px;padding:15px 22px;font-weight:950;animation:1.1s cubic-bezier(.2,1.3,.2,1) both milestone;position:absolute;top:22%;right:5vw;box-shadow:0 15px 50px #49e2d259}@keyframes milestone{0%{opacity:0;transform:translate(60px)scale(.7)rotate(3deg)}20%,70%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(-20px)scale(.94)}}.song-carousel:after{content:"";pointer-events:none;background:repeating-radial-gradient(circle at 50% 70%,#0000 0 24px,#ffffff06 25px 27px);animation:2.1s linear infinite previewBeat;position:absolute;inset:0}@keyframes previewBeat{to{opacity:.45;transform:scale(1.06)}}.mode-card.selected .mode-icon,.venue-node.selected .venue-light{animation:.75s ease-in-out infinite alternate selectedIcon}@keyframes selectedIcon{to{filter:brightness(1.25);transform:translateY(-5px)scale(1.08)}}.high-contrast{--muted:#d9def5;--border:#ffffff61}.high-contrast .glass-panel,.high-contrast .mode-card{background:#0b0d22}.reduced-motion *,.reduced-motion :before,.reduced-motion :after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.attract-screen{isolation:isolate;background:linear-gradient(#0305131a,#030510c7),radial-gradient(circle at 50% 16%,#26377e 0,#111633 35%,#050713 72%);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.attract-screen:before{content:"";z-index:-3;background:repeating-linear-gradient(90deg,#0000 0 9.8%,#7aabff0b 10% 10.15%),linear-gradient(#7859ff1f,#0000 42%);position:absolute;inset:0}.attract-scanlines{z-index:10;pointer-events:none;opacity:.16;mix-blend-mode:screen;background:repeating-linear-gradient(#0000 0 3px,#ffffff0a 4px 5px);position:absolute;inset:0}.attract-stage-light{opacity:.18;filter:blur(18px);transform-origin:top;pointer-events:none;background:linear-gradient(#64f5e0bf,#0000 76%);width:34vw;height:92vh;animation:5.2s ease-in-out infinite alternate titleSpotlight;position:absolute;top:-20vh}.attract-stage-light.light-a{left:4vw;transform:rotate(19deg)}.attract-stage-light.light-b{background:linear-gradient(#975effb8,#0000 76%);animation-delay:-2.6s;right:4vw;transform:rotate(-19deg)}@keyframes titleSpotlight{to{opacity:.3;transform:rotate(9deg)translate(5vw)}}.attract-highway{z-index:1;position:absolute;inset:0;overflow:hidden}.attract-lane-grid{opacity:.28;background:repeating-linear-gradient(90deg,#7da2ff24 0 1px,#0000 1px 5%),linear-gradient(#0000,#5beedd14);position:absolute;inset:0 0 20vh;-webkit-mask-image:linear-gradient(#0000,#000 18%,#000);mask-image:linear-gradient(#0000,#000 18%,#000)}.attract-note-field{position:absolute;inset:0 0 20vh;overflow:hidden}.synced-attract-note{z-index:2;border-radius:5px 5px 2px 2px;min-width:3px;transition:filter 60ms linear,opacity 60ms linear;position:absolute;transform:translateZ(0);box-shadow:0 0 14px,inset 0 0 0 1px #ffffff7a}.synced-attract-note.white-note{color:#5dffe3;background:linear-gradient(#ecffff,#56e9d6 45%,#2ba99e)}.synced-attract-note.black-note{color:#a979ff;background:linear-gradient(#fff,#a579ff 40%,#6441c8)}.synced-attract-note.at-hit{filter:brightness(1.8);opacity:.92}.attract-strike-line{z-index:5;background:linear-gradient(90deg,#0000,#63f7e2 10%,#fff 50%,#7a72ff 90%,#0000);height:5px;position:absolute;bottom:20vh;left:0;right:0;box-shadow:0 0 18px #5cf7e2e6,0 0 55px #6663ff85}.attract-impact{background:#fff;width:70vw;height:4px;animation:.2s ease-out both titleImpact;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 24px #fff,0 0 70px #55f5df}@keyframes titleImpact{0%{opacity:1;transform:translate(-50%,-50%)scaleX(.1)}to{opacity:0;transform:translate(-50%,-50%)scaleX(1)}}.attract-keyboard{z-index:4;background:#eef2ff;height:20vh;min-height:130px;max-height:230px;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -10px 50px #45f8de47}.attract-white-key,.attract-black-key{transform-origin:top;transition:transform 55ms,filter 55ms,background 55ms;position:absolute;top:0}.attract-white-key{background:linear-gradient(#fff,#e8edff 68%,#cfd8f2);border-left:1px solid #34384d;bottom:0}.attract-white-key:last-of-type{border-right:1px solid #34384d}.attract-black-key{z-index:3;background:linear-gradient(#0a0c18,#242842 74%,#111426);border:1px solid #ffffff1f;border-radius:0 0 6px 6px;height:62%;box-shadow:0 8px 9px #00000070}.attract-white-key.active{filter:drop-shadow(0 0 17px #62ffe8);background:linear-gradient(#fff,#b9fff5 58%,#55e3ce);transform:scaleY(.965)}.attract-black-key.active{filter:drop-shadow(0 0 16px #9a78ff);background:linear-gradient(#eaffff,#745fff 35%,#27215a);transform:scaleY(.94)}.attract-content{z-index:8;text-align:center;text-shadow:0 9px 34px #000000d1;width:min(820px,100vw - 42px);margin-bottom:16vh;position:relative}.attract-content h1{letter-spacing:-.075em;color:#0000;filter:drop-shadow(0 18px 30px #1fe1cf33);background:linear-gradient(#fff,#bafff5 43%,#6ca6ff 72%,#b575ff);-webkit-background-clip:text;background-clip:text;margin:8px 0;font-size:clamp(4.6rem,13vw,11rem);line-height:.82}.attract-actions .game-button{min-width:min(350px,78vw);min-height:62px;font-size:1.12rem}.attract-actions .game-button.primary{animation:1.25s ease-in-out infinite alternate titleButtonPulse}@keyframes titleButtonPulse{to{transform:scale(1.035);box-shadow:0 0 0 3px #fff3,0 16px 56px #4ce5d57a}}.attract-screen.is-leaving .attract-content{animation:.72s cubic-bezier(.4,0,.2,1) both titleContentLeave}.attract-screen.is-leaving .attract-highway{animation:.88s cubic-bezier(.2,.8,.2,1) both titleHighwayLaunch}@keyframes titleContentLeave{to{opacity:0;filter:blur(10px);transform:scale(1.14)}}@keyframes titleHighwayLaunch{to{filter:brightness(1.7)blur(4px);opacity:.12;transform:scale(1.12)}}.attract-transition{z-index:50;color:#08111f;background:#f7ffff;place-items:center;animation:.92s cubic-bezier(.7,0,.2,1) both titleTransition;display:grid;position:absolute;inset:0}.attract-transition span{letter-spacing:-.07em;font-size:clamp(3rem,12vw,10rem);font-weight:950}@keyframes titleTransition{0%{opacity:0;clip-path:inset(49% 0)}25%{opacity:1;clip-path:inset(0)}65%{color:#cafff6;background:#111836}to{opacity:0;transform:scale(1.08)}}.ambient-orb{display:none!important}.stage-background{background:radial-gradient(circle at 50% -10%,#3d53b433,#0000 42%),linear-gradient(160deg,#08091a,#050611 64%)}.ddr-song-select{overflow-x:hidden}.quickplay-stage{isolation:isolate;background:linear-gradient(180deg,color-mix(in srgb,var(--song-primary) 24%,#080a1b),#050611 88%);border-block:1px solid #ffffff14;height:clamp(430px,55dvh,680px);min-height:430px;position:relative;overflow:hidden}.song-color-wash{z-index:-2;background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--song-secondary) 42%,transparent),transparent 38%), linear-gradient(125deg,color-mix(in srgb,var(--song-primary) 26%,transparent),transparent 45%,color-mix(in srgb,var(--song-tertiary) 18%,transparent));filter:saturate(1.2);animation:.46s both songWashIn,2.8s ease-in-out .46s infinite alternate songWashPulse;position:absolute;inset:-12%}@keyframes songWashIn{0%{opacity:0;transform:scale(1.08)}}@keyframes songWashPulse{to{filter:saturate(1.35)brightness(1.08);transform:scale(1.04)}}.quickplay-stage:after{content:"";z-index:12;pointer-events:none;background:linear-gradient(90deg,#040612b8,#0000 18% 82%,#040612b8),linear-gradient(#0000 55%,#03040dbf);position:absolute;inset:0}.preview-highway{z-index:0;perspective:760px;opacity:.78;pointer-events:none;width:min(48vw,760px);height:108%;position:absolute;top:-4%;left:50%;transform:translate(-50%)}.preview-highway-surface{transform-origin:bottom;clip-path:polygon(29% 0,71% 0,98% 100%,2% 100%);border-inline:2px solid color-mix(in srgb,var(--song-secondary) 42%,transparent);box-shadow:inset 0 0 80px #0000005c,0 0 70px color-mix(in srgb,var(--song-primary) 25%,transparent);background:linear-gradient(90deg,#ffffff09,#0f123580,#ffffff09);position:absolute;inset:0;overflow:hidden;transform:rotateX(17deg)}.preview-lanes{opacity:.42;background:repeating-linear-gradient(90deg,#0000 0 calc(8.33333% - 1px),#ffffff21 calc(8.33333% - 1px) 8.33333%);position:absolute;inset:0}.preview-falling-note{z-index:2;border-radius:4px;width:2.5%;min-width:5px;position:absolute;transform:translate(-50%);box-shadow:0 0 13px,inset 0 0 0 1px #fff9}.preview-falling-note.right{color:#60f4df;background:linear-gradient(#f4ffff,#52dccb)}.preview-falling-note.left{color:#b078ff;background:linear-gradient(#fff,#9569ff)}.preview-falling-note.hitting{filter:brightness(1.8)}.preview-target-line{background:linear-gradient(90deg,#0000,#63ffe8 15%,#fff 50%,#9d71ff 85%,#0000);height:4px;position:absolute;bottom:10%;left:0;right:0;box-shadow:0 0 25px #5ff6df}.preview-now-playing{z-index:4;text-align:center;text-shadow:0 4px 18px #000;width:90%;position:absolute;top:5%;left:50%;transform:translate(-50%)}.preview-now-playing span,.preview-now-playing small{letter-spacing:.16em;color:#d9defa;font-size:.66rem;display:block}.preview-now-playing strong{margin:4px 0;font-size:clamp(1.15rem,2.5vw,2rem);display:block}.ddr-song-wheel{z-index:7;perspective:1400px;place-items:center;display:grid;position:absolute;inset:0}.wheel-card-field{width:min(1220px,88vw);height:330px;transform-style:preserve-3d;position:relative}.song-wheel-card{--position-x:calc(var(--wheel-offset) * 24%);text-align:center;cursor:pointer;width:clamp(150px,15vw,260px);transform-style:preserve-3d;background:0 0;border:0;transition:transform .38s cubic-bezier(.18,.84,.18,1),opacity .28s,filter .28s;position:absolute;top:50%;left:50%}.song-wheel-card.offset-0{z-index:10;transform:translate(-50%,-50%)translateZ(190px)scale(1.1)}.song-wheel-card.offset--1{z-index:6;opacity:.82;transform:translate(calc(-50% - 24vw),-47%)translateZ(-40px)rotateY(42deg)scale(.82)}.song-wheel-card.offset-1{z-index:6;opacity:.82;transform:translate(calc(24vw - 50%),-47%)translateZ(-40px)rotateY(-42deg)scale(.82)}.song-wheel-card.offset--2{z-index:3;opacity:.3;filter:saturate(.55)blur(.6px);transform:translate(calc(-50% - 40vw),-44%)translateZ(-220px)rotateY(59deg)scale(.59)}.song-wheel-card.offset-2{z-index:3;opacity:.3;filter:saturate(.55)blur(.6px);transform:translate(calc(40vw - 50%),-44%)translateZ(-220px)rotateY(-59deg)scale(.59)}.song-wheel-card.selected .album-art{box-shadow:0 0 0 3px color-mix(in srgb,var(--song-secondary) 55%,transparent),0 28px 75px #0000008c,0 0 65px color-mix(in srgb,var(--song-primary) 42%,transparent);border-color:#fff}.song-wheel-card .album-art{border-radius:16px}.song-wheel-card .cover-shine{background:linear-gradient(110deg,#0000 32%,#ffffff6b 48%,#0000 62%);position:absolute;inset:-25%;transform:translate(-80%)}.song-wheel-card.selected .cover-shine{animation:2.4s ease-in-out infinite coverSweep}@keyframes coverSweep{0%,45%{transform:translate(-80%)}75%,to{transform:translate(80%)}}.ddr-song-wheel.turn-left .wheel-card-field{animation:.34s cubic-bezier(.2,.8,.2,1) wheelKickLeft}.ddr-song-wheel.turn-right .wheel-card-field{animation:.34s cubic-bezier(.2,.8,.2,1) wheelKickRight}@keyframes wheelKickLeft{45%{transform:rotateY(-5deg)translate(18px)}}@keyframes wheelKickRight{45%{transform:rotateY(5deg)translate(-18px)}}.ddr-song-wheel .carousel-arrow{border-color:color-mix(in srgb,var(--song-secondary) 42%,#ffffff2e);box-shadow:0 0 28px color-mix(in srgb,var(--song-primary) 20%,transparent);background:#050714c7;transition:transform .12s,background .12s;top:50%}.ddr-song-wheel .carousel-arrow:active{background:var(--song-secondary);transform:translateY(-50%)scale(.9)}.ddr-song-detail{z-index:3;padding-top:28px;position:relative}.ddr-song-detail .song-copy h2{animation:.4s cubic-bezier(.2,.9,.2,1) both songTitleIn}@keyframes songTitleIn{0%{opacity:0;transform:translate(-28px)skew(-5deg)}}.difficulty-label{letter-spacing:.15em;color:var(--muted);align-items:center;gap:12px;margin-top:22px;font-size:.7rem;display:flex}.difficulty-label strong{color:#fff;font-size:1rem}.ddr-difficulty-row button{text-align:left;min-width:104px;transition:transform .14s,box-shadow .14s;position:relative;overflow:hidden}.ddr-difficulty-row button span,.ddr-difficulty-row button i{display:block}.ddr-difficulty-row button i{color:#ffffff80;letter-spacing:.08em;margin-top:4px;font-size:.64rem;font-style:normal}.ddr-difficulty-row button.active{box-shadow:0 12px 32px color-mix(in srgb,var(--song-primary) 30%,transparent);transform:translateY(-4px)skew(-3deg)}.song-launch-transition{z-index:80;text-align:center;background:radial-gradient(circle,color-mix(in srgb,var(--song-secondary) 45%,#fff),#090b23 58%,#02030a);place-content:center;animation:.6s cubic-bezier(.7,0,.2,1) both songLaunch;display:grid;position:fixed;inset:0}.song-launch-transition span{text-shadow:0 0 55px #fff;font-size:clamp(4rem,15vw,13rem);font-style:italic;font-weight:950;line-height:.8}.song-launch-transition strong{letter-spacing:.08em;margin-top:20px;font-size:clamp(1.2rem,3vw,2.6rem)}@keyframes songLaunch{0%{opacity:0;clip-path:inset(49% 0)}35%{opacity:1;clip-path:inset(0)}to{opacity:1;transform:scale(1.06)}}@media (min-width:2100px){.preview-highway{width:min(42vw,980px)}.wheel-card-field{width:min(1780px,92vw);height:390px}.song-wheel-card{width:clamp(210px,12vw,320px)}.song-wheel-card.offset--1{transform:translate(calc(-50% - 19vw),-47%)translateZ(-30px)rotateY(39deg)scale(.86)}.song-wheel-card.offset-1{transform:translate(calc(19vw - 50%),-47%)translateZ(-30px)rotateY(-39deg)scale(.86)}.song-wheel-card.offset--2{transform:translate(calc(-50% - 33vw),-44%)translateZ(-210px)rotateY(55deg)scale(.64)}.song-wheel-card.offset-2{transform:translate(calc(33vw - 50%),-44%)translateZ(-210px)rotateY(-55deg)scale(.64)}}@media (max-width:900px){.attract-keyboard{height:17vh}.attract-note-field,.attract-strike-line{bottom:17vh}.preview-highway{opacity:.48;width:80vw}.wheel-card-field{width:94vw}.song-wheel-card.offset--1{transform:translate(calc(-50% - 30vw),-47%)translateZ(-70px)rotateY(42deg)scale(.7)}.song-wheel-card.offset-1{transform:translate(calc(30vw - 50%),-47%)translateZ(-70px)rotateY(-42deg)scale(.7)}.song-wheel-card.offset--2,.song-wheel-card.offset-2{display:none}}@media (prefers-reduced-motion:reduce){.attract-stage-light,.song-color-wash,.cover-shine,.attract-actions .game-button.primary{animation:none!important}}.stage-background,.attract-screen,.quickplay-stage{background:linear-gradient(#070918 0%,#04050d 100%)!important}.attract-stage-light,.song-color-wash,.preview-highway,.quickplay-stage:after,.attract-highway,.attract-screen:before{display:none!important}.shared-highway-screen{isolation:isolate}.shared-highway-backdrop{z-index:0;pointer-events:none;width:100%;height:100%;transition:opacity .34s,filter .34s;position:absolute;inset:0;overflow:hidden}.shared-highway-backdrop.dimmed{opacity:.58;filter:saturate(.78)brightness(.72)}.shared-highway-backdrop .pixi-canvas{display:block;width:100%!important;height:100%!important}.attract-shared-highway{z-index:0}.attract-screen-vignette,.quickplay-vignette{z-index:2;pointer-events:none;background:linear-gradient(90deg,#02030a57,#0000 18% 82%,#02030a57),linear-gradient(#02030a3d,#0000 38%,#02030a33);position:absolute;inset:0}.attract-content{z-index:5}.fixed-action-stack{flex-direction:column;gap:0;width:min(360px,82vw);min-height:104px;margin-inline:auto}.fixed-action-stack .game-button{flex:none;width:100%}.stop-theme-slot{place-items:center;height:38px;font-size:.86rem;display:grid}.stop-theme-slot>span{visibility:hidden}.stop-theme-slot .text-button{padding:6px 14px}.unified-preview-stage{height:clamp(520px,66dvh,820px);min-height:520px;overflow:hidden}.quickplay-shared-highway{z-index:0;opacity:.76}.quickplay-vignette{z-index:2;background:linear-gradient(90deg,#03040e91,#0000 23% 77%,#03040e91),linear-gradient(#03040e33,#03040e14 55%,#03040ea3)}.preview-now-playing{z-index:8;top:3%}.smooth-wheel{z-index:9}.smooth-wheel .wheel-card-field{width:96vw;max-width:2100px;height:370px;transform-style:preserve-3d}.smooth-wheel .song-wheel-card{transform:translate(-50%, -50%) translateX(var(--wheel-x)) translateZ(var(--wheel-z)) rotateY(var(--wheel-rotate)) scale(var(--wheel-scale));opacity:var(--wheel-opacity);filter:blur(var(--wheel-blur)) saturate(var(--wheel-saturation));will-change:transform, opacity, filter;transition:transform .72s cubic-bezier(.16,.84,.18,1),opacity .52s,filter .52s}.smooth-wheel .song-wheel-card.selected{pointer-events:auto}.smooth-wheel .song-wheel-card.selected .album-art{transform:translateY(-7px)rotateX(2deg)}.smooth-wheel .song-wheel-card .album-art{transition:transform .42s cubic-bezier(.18,.9,.2,1),box-shadow .35s}.smooth-wheel .carousel-arrow{z-index:40}.tour-chord-console,.results-chord-prompt{z-index:45;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);text-align:center;background:#050714e6;border:1px solid #ffffff2e;border-radius:18px;width:min(940px,100vw - 28px);padding:12px 18px;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 16px 55px #0000006b,0 0 30px #5af5dd17}.continue-chord{justify-content:center;align-items:center;gap:16px;display:flex}.continue-chord span,.results-chord-prompt span{letter-spacing:.14em;color:var(--muted);font-size:.68rem}.continue-chord strong{gap:7px;display:flex}.tour-chord-console kbd,.results-chord-prompt kbd{color:#12100a;background:linear-gradient(#fffbe6,#ffd66b);border:1px solid #fff;border-radius:7px;place-items:center;min-width:42px;padding:7px 9px;display:inline-grid;box-shadow:inset 0 -3px #754b0047,0 0 17px #ffd66b38}.tour-chord-legend{color:#c9cfea;flex-wrap:wrap;justify-content:center;gap:18px;margin-top:8px;font-size:.72rem;display:flex}.tour-chord-legend kbd{min-width:auto;padding:2px 5px;font-size:.68rem}.results-chord-prompt{margin:18px auto 0;position:relative;bottom:auto;left:auto;transform:none}.results-chord-prompt strong,.results-chord-prompt small{margin-top:7px;display:block}.results-chord-prompt small{color:var(--muted)}@media (min-width:2100px){.unified-preview-stage{height:70dvh}.smooth-wheel .wheel-card-field{height:430px}.smooth-wheel .song-wheel-card{width:clamp(230px,11vw,360px)}}@media (max-width:900px){.unified-preview-stage{height:590px}.quickplay-shared-highway{opacity:.56}.smooth-wheel .song-wheel-card{width:clamp(145px,30vw,230px)}.tour-chord-legend{display:none}.continue-chord{flex-direction:column;gap:7px}}.tune-up-screen{grid-template-rows:94px minmax(0,1fr);height:100dvh;min-height:100dvh;padding-bottom:0;display:grid;overflow:hidden}.tune-up-layout{grid-template-columns:minmax(0,1.65fr) minmax(300px,.72fr);gap:20px;height:100%;min-height:0;padding-bottom:24px;display:grid}.falling-tune-stage{grid-template-rows:minmax(0,1fr) auto;min-height:0;padding:0;display:grid;overflow:hidden}.calibration-highway-wrap{background:#050713;border-radius:25px 25px 0 0;min-height:320px;position:relative;overflow:hidden}.calibration-shared-highway{z-index:1;opacity:1;position:absolute;inset:0}.tune-up-idle-overlay{z-index:4;text-align:center;pointer-events:none;background:linear-gradient(#0407121f,#04071294);place-content:center;justify-items:center;gap:8px;display:grid;position:absolute;inset:0}.tune-up-idle-overlay strong{letter-spacing:.08em;font-size:clamp(1.5rem,3vw,3.4rem)}.tune-up-idle-overlay span{color:var(--muted)}.tune-up-copy{z-index:5;border-top:1px solid var(--border);background:#07091bf0;padding:18px 24px 22px;position:relative}.tune-up-copy h2{margin-bottom:5px;font-size:clamp(1.25rem,2vw,2rem)}.tune-up-copy p{margin-bottom:8px}.tune-up-copy .calibration-meter{margin:10px 0 16px}.tune-up-screen .calibration-controls{min-height:0;padding:24px;overflow:auto}.quickplay-viewport{grid-template-rows:94px minmax(0,1fr) clamp(230px,31vh,330px);height:100dvh;min-height:100dvh;padding-bottom:0;display:grid;overflow:hidden!important}.quickplay-viewport>.top-bar{grid-row:1}.quickplay-viewport>.quickplay-stage{grid-row:2;height:100%;min-height:0}.quickplay-viewport>.quickplay-detail-panel{grid-row:3;height:100%;min-height:0;padding-block:10px 14px;overflow:hidden}.quickplay-detail-panel{grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:center;gap:20px}.quickplay-detail-panel .song-copy{min-width:0}.quickplay-detail-panel .song-copy h2{margin-top:5px;font-size:clamp(1.9rem,3.4vw,4.1rem);line-height:.92}.quickplay-detail-panel .song-copy .composer{margin-bottom:7px}.quickplay-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:7px;display:-webkit-box;overflow:hidden}.quickplay-detail-panel .difficulty-row{margin:8px 0 4px}.quickplay-detail-panel .arrangement-description{min-height:20px;margin-bottom:8px;font-size:.86rem}.quickplay-detail-panel .song-stats{max-height:100%;padding:16px 18px;overflow:hidden}.quickplay-detail-panel .song-stats h3{margin-bottom:10px}.quickplay-detail-panel .mini-stat{margin-bottom:8px}.quickplay-detail-panel .best-grade{margin-top:10px;padding-top:10px}.quickplay-viewport .piano-nav-legend{bottom:8px}.preview-now-playing span{color:var(--gold)}.procedural-cover{isolation:isolate;background:linear-gradient(145deg,var(--cover-a),var(--cover-b))}.procedural-cover .cover-sky{background:radial-gradient(circle at 68% 18%,color-mix(in srgb,var(--cover-c) 75%,transparent),transparent 18%),linear-gradient(165deg,#ffffff24,transparent 40%);position:absolute;inset:0}.procedural-cover .cover-grid{transform:perspective(320px) rotateX(63deg) rotateZ(var(--cover-angle)) translateY(42%);background-image:linear-gradient(#ffffff29 1px,#0000 1px),linear-gradient(90deg,#ffffff29 1px,#0000 1px);background-size:var(--cover-density) var(--cover-density);position:absolute;inset:-30%;-webkit-mask-image:linear-gradient(#0000 20%,#000);mask-image:linear-gradient(#0000 20%,#000)}.procedural-cover .cover-horizon{background:linear-gradient(90deg,transparent,var(--cover-c),transparent);height:4px;box-shadow:0 0 25px var(--cover-c);position:absolute;bottom:23%;left:-10%;right:-10%;transform:rotate(-4deg)}.procedural-cover .cover-emblem{color:#fff;text-shadow:0 0 16px var(--cover-c),0 18px 30px #0006;font-size:clamp(3.2rem,6vw,7rem);font-weight:900;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}.procedural-cover .cover-kicker{letter-spacing:.16em;color:#ffffffc7;font-size:.55rem;font-weight:900;position:absolute;top:11px;left:12px}.procedural-cover .cover-title-mark{text-align:left;text-transform:uppercase;letter-spacing:-.025em;text-shadow:0 2px 10px #000000a6;font-size:clamp(.72rem,1.25vw,1.05rem);font-weight:950;line-height:.95;position:absolute;bottom:12px;left:13px;right:13px}.cover-variant-1 .cover-emblem{transform:translate(-50%,-50%)rotate(16deg)}.cover-variant-2 .cover-horizon{bottom:42%;transform:rotate(7deg)}.cover-variant-3 .cover-grid{transform:perspective(320px)rotateX(70deg)rotate(-32deg)translateY(35%)}.cover-variant-4 .cover-sky{background:repeating-radial-gradient(circle at 50% 38%,#ffffff24 0 3px,#0000 4px 17px),linear-gradient(145deg,#ffffff14,#0000)}.cover-variant-5 .cover-emblem{font-size:clamp(3rem,5.4vw,6rem);top:44%}@media (max-width:960px){.tune-up-screen{height:auto;min-height:100dvh;padding-bottom:80px;display:block;overflow:auto}.tune-up-layout{grid-template-columns:1fr;height:auto}.falling-tune-stage{min-height:680px}.quickplay-viewport{grid-template-rows:86px minmax(0,1fr) 250px}.quickplay-detail-panel{grid-template-columns:1fr;padding-inline:14px}.quickplay-detail-panel .song-stats,.quickplay-description{display:none}}@media (max-height:820px) and (min-width:961px){.quickplay-viewport{grid-template-rows:82px minmax(0,1fr) 236px}.quickplay-detail-panel .quickplay-description,.quickplay-detail-panel .song-stats .mini-stat:nth-of-type(n+4){display:none}.quickplay-detail-panel .song-copy h2{font-size:clamp(1.6rem,3vw,3.1rem)}.quickplay-detail-panel .game-button{min-height:42px;padding-block:8px}.tune-up-screen{grid-template-rows:82px minmax(0,1fr)}}.demo-piano{display:none!important}.demo-keyboard-legend{z-index:26;left:50%;bottom:calc(var(--player-keyboard-height,150px) + 18px);color:#eef4ff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;white-space:nowrap;background:#050712db;border:1px solid #ffffff26;border-radius:999px;align-items:center;gap:12px;max-width:calc(100vw - 28px);padding:8px 14px;font-size:.72rem;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 10px 28px #00000047}.demo-keyboard-legend strong{color:var(--cyan);letter-spacing:.1em}.demo-keyboard-legend span{color:#dce3ff}.demo-keyboard-legend em{color:var(--muted);font-style:normal}.demo-keyboard-legend kbd{color:#fff;min-width:20px;font:inherit;background:#ffffff14;border:1px solid #ffffff38;border-bottom-width:2px;border-radius:5px;place-items:center;padding:2px 5px;font-weight:900;display:inline-grid}.player-screen.flow-hot:after,.song-carousel:after{animation:none!important;display:none!important}.shared-highway-backdrop,.player-screen,.attract-screen,.quickplay-stage{filter:none}@media (max-width:760px),(max-height:700px){.demo-keyboard-legend{gap:7px;font-size:.62rem;bottom:112px}.demo-keyboard-legend em{display:none}}.tutorial-hint{z-index:4;color:#fff;text-align:center;pointer-events:none;background:#10152bea;border:1px solid #66f4df88;border-radius:12px;width:min(90%,560px);padding:12px 18px;position:absolute;top:88px;left:50%;transform:translate(-50%)}
