:root{--bg:#101111;--panel:#1a1b1b;--muted:#92958f;--line:#30332e;--lime:#c5ff4a;--purple:#b7a0ff;--white:#f5f5ed;font-family:Arial,Helvetica,sans-serif;color:var(--white);background:var(--bg);font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--lime);outline-offset:5px}button{color:inherit}a{color:inherit;text-decoration:none}#app{max-width:1600px;margin:auto;padding:0 48px}header{height:103px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:18px;align-items:center}.brand-mark{font-size:46px;letter-spacing:-5px;font-weight:950;font-style:italic;line-height:1}.brand-mark span{font-size:12px;letter-spacing:0;vertical-align:top;display:inline-block;margin:3px 0 0 5px}.brand-caption{border-left:1px solid #555b4d;padding-left:18px;font-size:11px;font-weight:800;letter-spacing:1.6px;line-height:1.4}.header-right{display:flex;gap:24px;align-items:center}.header-tag{font-size:10px;letter-spacing:2px;color:#acb09f}.icon-button{background:transparent;border:1px solid var(--line);border-radius:50%;width:40px;height:40px;font-size:22px;display:grid;place-items:center}.icon-button:hover{border-color:var(--lime);color:var(--lime)}.home-screen{padding-top:44px;display:grid;grid-template-columns:44% 56%}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;display:flex;gap:10px;align-items:center;line-height:1.5}.eyebrow i,.live-tag i{width:7px;height:7px;background:var(--lime);border-radius:50%;display:inline-block}h1{font-size:clamp(56px,6.4vw,98px);font-weight:950;line-height:.99;letter-spacing:-5px;margin:29px 0 22px}h1 span{color:var(--lime)}.hero-copy h1{position:relative;white-space:nowrap}.hero-copy h1 b{font-size:68px;font-weight:400;position:absolute;margin:0 0 0 12px;color:var(--lime);transform:rotate(5deg)}.intro{font-size:16px;line-height:1.6;color:#a8ada2}.play-row{display:flex;gap:22px;align-items:center;margin-top:32px}.primary{min-height:57px;background:var(--lime);border:0;padding:0 26px;color:#10150a;display:inline-flex;align-items:center;justify-content:space-between;gap:40px;font-size:13px;font-weight:800;letter-spacing:.6px;transition:background .15s,transform .15s}.primary:hover{background:#d9ff89;transform:translateY(-2px)}.primary span{font-size:25px;font-weight:400}.play-note{font-size:11px;color:var(--muted);line-height:1.7}.home-control{display:flex;gap:16px;margin-top:32px;align-items:center;font-size:11px;line-height:1.6;color:var(--muted)}.mini-keys{font-size:21px;color:#ddd;letter-spacing:5px;white-space:nowrap}.hero-art{position:relative;margin-left:35px;min-height:450px;overflow:hidden;background:#1b1e19;border:1px solid #363d2f}.hero-art canvas{position:absolute;width:100%;height:100%;inset:0}.art-label,.art-bottom{position:absolute;z-index:1;display:flex;justify-content:space-between;left:22px;right:22px;font-size:9px;letter-spacing:1.3px}.art-label{top:24px}.art-label span+span{color:#acb696;font-size:8px}.art-bottom{bottom:22px;color:#adba9c}.hero-stamp{position:absolute;right:27px;top:85px;transform:rotate(7deg);border:1px solid #a6ba7a;padding:12px;font-size:10px;letter-spacing:2px;line-height:1.4;color:var(--lime)}.hero-stamp span{position:absolute;left:-34px;top:0;font-size:33px}.home-bottom{grid-column:1/-1;display:flex;justify-content:space-between;gap:32px;padding:28px 0 30px;margin-top:34px;border-top:1px solid var(--line)}.small-label{font-size:9px;letter-spacing:1.5px;color:var(--muted)}#avatars{display:flex;gap:7px;margin-top:12px}.avatar{display:flex;align-items:center;gap:8px;background:transparent;border:1px solid #3d4038;padding:7px 14px;font-size:11px}.avatar.selected{border-color:var(--lime);background:#c5ff4a0b}.avatar-head{font-size:25px}.green{color:var(--lime)}.purple{color:var(--purple)}.white{color:var(--white)}.stage-select{display:flex;gap:12px;align-items:center;flex:1;max-width:700px}.stage-card{background:none;position:relative;text-align:left;border:0;border-left:1px solid var(--line);padding:5px 18px;min-height:62px;flex:1}.stage-card.selected:after{content:'';position:absolute;bottom:-13px;height:2px;background:var(--lime);left:18px;right:18px}.stage-card small{font-size:9px;color:var(--muted);display:block;letter-spacing:1px;margin-bottom:7px}.stage-card b{font-size:13px}.stage-card em{font-style:normal;display:block;font-size:10px;color:var(--lime);margin-top:6px}.stage-card:disabled{opacity:.35}.site-footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:21px 0;font-size:8px;letter-spacing:1.4px;color:#767e70}.hidden{display:none!important}.game-screen{padding-top:22px}.game-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}h2{font-size:34px;letter-spacing:-1px;margin:6px 0 0}.stats{display:flex;gap:42px}.stats>div{text-align:right}.stats span{font-size:9px;letter-spacing:2px;color:var(--muted);display:block;margin-bottom:5px}.stats strong{font-size:30px;font-variant-numeric:tabular-nums;letter-spacing:1px}.stats strong span{font-size:18px;display:inline;color:var(--lime)}.arena{height:min(65vh,610px);min-height:370px;position:relative;border:1px solid #373b31;background:#171b17;overflow:hidden}#sceneCanvas{position:absolute;inset:0;width:100%;height:100%}.stage-watermark{position:absolute;top:55px;left:38px;max-width:42%;font-size:clamp(36px,6vw,82px);line-height:.9;font-weight:950;letter-spacing:-3px;color:#ffffff12;pointer-events:none}.live-tag{position:absolute;top:23px;left:27px;font-size:9px;letter-spacing:2px;text-transform:uppercase;display:flex;align-items:center;gap:9px}.highway{position:absolute;right:5%;top:0;bottom:0;width:36%;min-width:300px;background:linear-gradient(180deg,#111713c9,#080d09f5);border-left:1px solid #65744a55;border-right:1px solid #65744a55}#notesCanvas{height:100%;width:100%;position:absolute;inset:0}.touch-keys{position:absolute;bottom:14px;left:4%;right:4%;display:flex;height:43px;gap:4px}.touch-keys button{flex:1;background:#c5ff4a0c;border:1px solid #66735355;font-size:27px;touch-action:none;color:#d9e8c4}.touch-keys button.down{color:#111;background:var(--lime)}.judgement{position:absolute;top:58%;left:0;right:0;text-align:center;font-weight:900;font-size:22px;color:var(--lime);pointer-events:none;text-shadow:0 2px 12px #000;opacity:0}.tutorial-hint{position:absolute;left:10px;right:10px;top:20%;padding:15px;background:#161c14f5;border:1px solid #7d954f;font-size:15px;line-height:1.6;text-align:center}.tutorial-hint b{color:var(--lime);font-size:25px;display:block}.scene-caption{position:absolute;bottom:29px;left:28px;max-width:40%;display:flex;flex-direction:column;gap:8px}.scene-caption b{font-size:10px;letter-spacing:2px}.scene-caption span{font-size:11px;color:#9da78f}.drive-badge{position:absolute;left:27px;top:62px;background:var(--lime);color:#141d08;padding:12px 15px;font-size:10px;font-weight:800;letter-spacing:1px;z-index:2;transform:rotate(-2deg)}.drive-badge b{font-size:20px;margin-left:10px}.game-footer{display:flex;gap:20px;align-items:center;padding:18px 0;font-size:9px;letter-spacing:1px;color:var(--muted)}.progress{flex:1;height:3px;background:#343a2d}.progress>div{height:100%;background:var(--lime);width:0}.text-button{border:0;background:none;color:var(--muted);font-size:11px;padding:12px 5px}.text-button:hover{color:var(--lime)}kbd{border:1px solid #505748;border-radius:3px;padding:2px 4px;font-size:9px;margin-left:8px}.result-screen,.final-screen{text-align:center;padding:44px 0 38px;min-height:650px;position:relative}.result-screen .eyebrow,.final-screen .eyebrow{justify-content:center}.stars{font-size:42px;letter-spacing:12px;color:var(--lime);margin:25px 0 0}.stars .empty{color:#383e31}.result-screen h1{font-size:67px;margin:15px 0 20px}.result-screen p,.final-screen p{color:var(--muted);font-size:14px}.result-stats{display:flex;justify-content:center;gap:65px;margin:30px 0}.result-stats strong{display:block;font-size:38px;letter-spacing:-1px}.result-stats span{font-size:9px;letter-spacing:2px;color:var(--muted);display:block;margin-top:9px}.result-details{font-size:11px;color:var(--muted)}p.record-label{color:var(--lime);font-size:11px;margin:20px 0}.result-actions{display:flex;gap:14px;justify-content:center}.secondary{border:1px solid #59624c;background:transparent;padding:17px 24px;min-height:52px;font-size:12px}.secondary:hover{border-color:var(--lime);color:var(--lime)}.final-logo{font-size:140px;font-weight:950;font-style:italic;letter-spacing:-15px;margin-top:10px}.final-logo span{font-size:75px;display:inline-block;color:var(--lime);margin-left:25px;font-style:normal}.final-screen h1{font-size:clamp(30px,4vw,56px);letter-spacing:-2px;line-height:1.12;margin-top:10px}.final-results{display:flex;justify-content:center;gap:45px;margin:30px 0}.final-results>div{text-align:left;border-left:1px solid #505940;padding-left:15px}.final-results b{display:block;font-size:12px}.final-results span{display:block;color:var(--lime);font-size:13px;margin-top:8px}dialog{background:#181c16;color:var(--white);border:1px solid #505e40;width:min(470px,calc(100vw - 30px));padding:30px;max-height:90vh;overflow-y:auto}dialog::backdrop{background:#050705dc;backdrop-filter:blur(7px)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.range-label{display:flex;flex-wrap:wrap;justify-content:space-between;font-size:13px;gap:15px;margin:25px 0 15px}.range-label output{color:var(--lime)}input[type=range]{width:100%;accent-color:var(--lime)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--lime)}.toggle-label{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:13px 0;border-bottom:1px solid #30372a}.setting-help{font-size:11px;line-height:1.6;color:var(--muted)}.rules{border-top:1px solid #414c36;margin-top:24px;padding-top:19px;font-size:12px;line-height:1.6;color:var(--muted)}.rules b{color:#dbe6ca}.full{width:100%;margin-top:12px}#pauseDialog h2{font-size:55px;margin-top:15px}#pauseDialog>p{color:var(--muted)}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--lime);color:#17210b;padding:16px 24px;font-size:13px;max-width:90%;z-index:10}
@media(min-width:1450px){.hero-art{min-height:510px}.hero-copy h1{margin-top:40px}.play-row{margin-top:40px}}
@media(max-width:1100px){#app{padding:0 28px}.hero-copy h1{font-size:69px}.hero-copy h1 b{font-size:43px}.hero-art{margin-left:25px;min-height:425px}.art-label span+span{display:none}.home-bottom{gap:15px}.stage-card{padding-left:13px;padding-right:7px}.play-row{gap:13px}.play-note{font-size:10px}.highway{width:40%;right:2%}.stage-watermark{font-size:55px}}
@media(max-width:760px){#app{padding:0 18px}header{height:78px}.brand-mark{font-size:38px}.brand-caption{font-size:9px}.header-tag{display:none}.home-screen{padding-top:28px;grid-template-columns:1fr}.hero-copy{position:relative;z-index:1}.hero-copy h1{font-size:72px;letter-spacing:-4px;margin-top:22px}.hero-copy h1 b{font-size:53px}.hero-art{margin:28px 0 0;min-height:330px}.home-bottom{flex-direction:column;margin-top:24px;padding-top:20px}.stage-select{max-width:none;margin:9px 0;gap:0}.stage-card{min-height:75px}.stage-card b{font-size:12px}.site-footer>span:nth-child(2){display:none}.site-footer{font-size:7px;gap:10px}.home-control{margin-top:24px}.game-head{margin-bottom:13px}.game-head h2{font-size:25px}.game-head .eyebrow{font-size:8px;letter-spacing:1px}.stats{gap:17px}.stats strong{font-size:23px}.stats span{font-size:7px}.arena{height:65vh;min-height:400px}.highway{width:52%;min-width:0;right:0}.stage-watermark{left:13px;font-size:29px;letter-spacing:-1px;top:67px}.live-tag{top:19px;left:13px;font-size:8px;letter-spacing:.5px}.scene-caption{left:12px;bottom:25px}.scene-caption b{font-size:8px;letter-spacing:1px;line-height:1.6}.scene-caption span{font-size:9px}.drive-badge{left:8px;top:50px;font-size:8px;padding:7px;max-width:46%}.drive-badge b{font-size:16px;display:block;margin:4px 0 0}.game-footer{gap:10px;font-size:8px}.game-footer>span:first-child{display:none}.judgement{font-size:16px}.touch-keys{height:42px;bottom:12px}.touch-keys button{font-size:22px}.tutorial-hint{font-size:12px;padding:9px}.result-screen{padding-top:30px;min-height:620px}.result-screen h1{font-size:53px;letter-spacing:-3px}.result-stats{gap:25px}.result-stats strong{font-size:28px}.result-stats span{font-size:8px;letter-spacing:1px}.result-details{font-size:10px}.final-logo{font-size:110px}.final-results{gap:15px}.final-results b{font-size:10px}.final-screen .eyebrow{font-size:8px}.final-screen h1{font-size:30px;letter-spacing:-1px}.result-actions{gap:10px}.result-actions .primary{gap:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
