@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap";:root{font-family:Inter,system-ui,sans-serif;color:#f2eff9;background:#161627;font-synthesis:none;--bg:#161627;--surface:#222132;--panel:#272438;--line:#484254;--ink:#f2eff9;--muted:#b0a9bf;--accent:#c4afff;--accent-ink:#261f3a;--r:12px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s6:24px;--s8:32px;--s12:48px;--s16:64px}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button,a,input,summary{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent)}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}a{color:inherit;text-decoration:none}button{color:inherit}button svg{vertical-align:middle}.app{min-height:100svh;position:relative;isolation:isolate;overflow-x:clip}.world{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;touch-action:none}.world canvas{display:block;width:100%;height:100%}.app:not(.is-playing):before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:#0f0e1b38;pointer-events:none}.topbar{height:104px;padding:0 4.2%;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:5}.brand{font-size:24px;font-weight:600;letter-spacing:-1px;display:flex;align-items:center;gap:0}.brand-light{font-weight:400;color:#c3bbd5}.brand-mark{margin-right:12px;background:var(--accent);color:var(--accent-ink);height:34px;width:34px;border-radius:9px;font-size:28px;position:relative;line-height:36px;text-align:center}.brand-mark span{position:absolute;font-size:20px;right:-2px;top:-9px}.brand sup{font-size:9px;border:1px solid var(--line);padding:3px 5px;border-radius:4px;letter-spacing:1px;margin-left:10px;align-self:start;margin-top:4px;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:24px}.ranking-link{font-size:13px}.ranking-link span{margin-left:12px;color:var(--accent)}.iconbutton{border:1px solid var(--line);border-radius:50%;width:42px;height:42px;background:#1e1c2ca6;font-size:18px;display:grid;place-items:center}.iconbutton:hover{background:var(--panel)}.home{margin-left:8.3%;padding-top:6.5vh;width:430px;padding-bottom:120px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--accent);font-weight:600;display:flex;align-items:center;gap:8px}.live-dot{width:5px;height:5px;background:var(--accent);border-radius:50%}h1{font-size:clamp(48px,5.2vw,76px);line-height:1.06;font-weight:500;letter-spacing:-3.5px;margin:24px 0}p{line-height:1.65}.intro{color:var(--muted);font-size:15px;margin:0 0 32px}.course-facts{display:flex;gap:28px;margin-bottom:32px}.course-facts>span{font-size:20px}.course-facts small{display:block;font-size:10px;color:var(--muted);margin-top:7px}.launch{width:304px}.launch label{display:block;color:var(--muted);font-size:9px;letter-spacing:1.6px;margin-bottom:10px}.nickname-field{height:48px;border:1px solid var(--line);background:#1d1b2bd1;border-radius:8px;display:flex;align-items:center;padding:0 14px;gap:10px}.nickname-field>span{color:var(--muted);font-size:14px}.nickname-field input{min-width:0;width:100%;background:none;border:0;outline:0;color:var(--ink);font-size:13px;height:100%}.nickname-field:focus-within{border-color:var(--accent)}.nickname-field input::placeholder{color:#9990aa}.primary{background:var(--accent);color:var(--accent-ink);border:0;border-radius:8px;min-height:48px;padding:12px 22px;font-weight:600;font-size:13px;display:inline-flex;align-items:center;justify-content:space-between;gap:24px}.primary:hover{background:#d3c4ff}.start{width:100%;margin-top:12px}.start span{font-size:22px;font-weight:400}.textbutton{background:none;border:0;min-height:40px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;padding:10px 12px}.textbutton:hover{color:var(--ink)}.practice-link{width:100%;gap:16px;margin-top:6px}.best-mini{display:flex;align-items:center;gap:12px;margin-top:28px;border-top:1px solid var(--line);padding-top:20px;width:350px}.best-mini .trophy{color:var(--accent);font-size:24px}.best-mini small{font-size:8px;letter-spacing:1.1px;color:var(--muted);display:block}.best-mini strong{font-size:12px;font-weight:400;display:block;margin-top:6px}.trained{font-size:9px;color:var(--accent);margin-left:auto;max-width:60px}.course-caption{position:absolute;right:7%;bottom:15%;display:flex;gap:16px;align-items:start}.caption-line{height:44px;border-left:1px solid var(--accent)}.course-caption div{display:grid;gap:8px}.course-caption small{font-size:8px;letter-spacing:2px;color:var(--accent)}.course-caption b{font-size:18px;font-weight:500}.course-caption span{font-size:11px;color:var(--muted)}.home-footer{position:absolute;bottom:28px;left:4.2%;right:4.2%;display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.home-footer>span:first-child{letter-spacing:2px;font-size:8px}.hud{position:absolute;top:100px;left:50%;transform:translate(-50%);display:flex;gap:40px;background:#1a1828e6;border:1px solid var(--line);padding:16px 28px;border-radius:var(--r);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);white-space:nowrap}.hud small{font-size:8px;letter-spacing:1.6px;display:block;color:var(--muted);margin-bottom:5px}.hud strong{font-size:24px;font-weight:500;font-variant-numeric:tabular-nums}.hud em,.result-stats em{font-style:normal;font-size:14px;color:var(--muted)}.progress{height:3px;background:var(--line);position:absolute;top:184px;width:220px;left:50%;transform:translate(-50%);border-radius:2px;overflow:hidden}.progress>div{height:100%;background:var(--accent)}.game-bottom{position:fixed;bottom:28px;left:4.2%;right:4.2%}.controls-hint{font-size:9px;letter-spacing:1px;text-align:center;margin-bottom:14px}.controls-hint span{color:var(--muted);margin:0 18px 0 5px;letter-spacing:0}.touch-controls{display:flex;justify-content:space-between;gap:12px}.touch-controls>div{display:flex;gap:8px}.touch-controls button{height:48px;min-width:48px;border:1px solid var(--line);border-radius:8px;background:#1e1c2ce0;font-size:18px}.touch-controls button:active{background:var(--accent);color:var(--accent-ink)}.touch-controls button span{font-size:12px;margin-right:8px}.touch-controls .run-control{font-size:11px;padding:0 16px}.practice-panel{position:absolute;top:220px;left:4.2%;width:280px;border:1px solid var(--line);background:#1e1c2ced;border-radius:var(--r);padding:24px}.practice-panel .eyebrow{font-size:8px;letter-spacing:1px}.practice-panel h2{font-weight:500;letter-spacing:-1px;margin:16px 0 8px;font-size:28px}.practice-panel p{font-size:12px;color:var(--muted);margin:0}.practice-panel ul{list-style:none;padding:0;margin:20px 0;font-size:11px;line-height:2.4;color:var(--muted)}.practice-panel .done{color:var(--accent)}.practice-panel .primary{width:100%;font-size:11px;min-height:42px;padding:12px}.practice-panel .textbutton{width:100%}.slow-badge{position:fixed;top:210px;left:50%;transform:translate(-50%);font-size:12px;padding:10px 16px;background:#594334;border:1px solid #cfa075;border-radius:999px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#0e0d19bf;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:grid;place-items:center;padding:24px}.pause-card{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:32px}.pause-card h1{font-size:42px;letter-spacing:-2px}.pause-card p{font-size:13px;color:var(--muted)}.pause-card button{width:100%;margin-top:12px}.pause-time{padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.secondary{min-height:44px;border:1px solid var(--line);background:transparent;border-radius:8px;display:inline-flex;justify-content:center;align-items:center;padding:10px 16px;font-size:12px}.secondary:hover{background:var(--panel)}.sheet{width:min(760px,calc(100% - 48px));margin:28px auto 64px;background:#1d1b2bf5;border:1px solid var(--line);border-radius:var(--r);padding:40px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.sheet h1{font-size:48px;letter-spacing:-2px}.muted{color:var(--muted);font-size:13px}.result-stats{display:grid;grid-template-columns:2fr 1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin:28px 0;gap:16px}.result-stats small{font-size:8px;letter-spacing:1.5px;color:var(--muted);display:block;margin-bottom:8px}.result-stats strong{font-size:28px;font-weight:500}.result-detail{display:flex;justify-content:space-between;gap:16px;font-size:11px;color:var(--muted);margin-bottom:24px}.result-detail b{display:block;color:var(--ink);margin-top:8px;font-weight:500}.best-banner{font-size:12px;color:var(--accent);background:var(--panel);padding:12px 16px;border-radius:8px}.domain-row{display:flex;align-items:center;gap:16px;min-height:66px;border-bottom:1px solid var(--line);font-size:13px}.domain-row small{display:block;color:var(--muted);font-size:8px;letter-spacing:1px;margin-top:5px}.domain-row b{margin-left:auto;font-weight:500}.gem-symbol{font-size:28px;color:var(--accent)}.value-note{font-size:10px;color:var(--muted);margin:20px 0}.sheet-actions{display:flex;gap:12px;flex-wrap:wrap}.small{font-size:10px}.back{display:block;font-size:11px;color:var(--muted);margin-bottom:32px}.board-label{display:flex;align-items:center;justify-content:space-between;margin-top:32px;margin-bottom:20px;gap:12px}.board-label b{font-size:13px;font-weight:500}.board-label span{font-size:8px;letter-spacing:1px;color:var(--muted)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}th{text-align:left;color:var(--muted);font-size:8px;font-weight:500;letter-spacing:1px;padding:12px 10px}td{border-top:1px solid var(--line);padding:20px 10px}td:nth-child(4){color:var(--accent)}.references{border-top:1px solid var(--line);margin-top:28px;padding-top:20px;font-size:12px;color:var(--muted)}summary{cursor:pointer;min-height:40px;list-style:none;display:flex;justify-content:space-between;color:var(--ink);gap:12px}summary span{color:var(--accent)}.references p{font-size:11px}.references a{display:block;color:var(--accent);font-size:11px;line-height:2}.reference-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.reference-grid>div{display:grid;grid-template-columns:1fr auto;border:1px solid var(--line);padding:12px;border-radius:8px;font-size:10px;gap:8px}.reference-grid small{grid-column:1/-1;line-height:1.6}.empty,.skeleton{padding:32px;text-align:center;border:1px dashed var(--line);border-radius:8px;font-size:14px}.empty p{color:var(--muted);font-size:12px}.toast{position:fixed;bottom:104px;left:50%;transform:translate(-50%);z-index:30;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:14px 20px;font-size:12px;max-width:calc(100% - 32px);text-align:center;pointer-events:none}.error{position:relative;z-index:15;width:min(650px,calc(100% - 32px));margin:0 auto 16px;border:1px solid #cfa075;background:#493a3d;border-radius:8px;padding:12px 16px;font-size:12px}.error button{background:none;border:0;text-decoration:underline;margin-left:12px;font-size:12px}@media(min-width:1500px){.home{padding-top:10vh}.course-caption{right:12%}}@media(max-width:760px){.topbar{height:80px;padding:0 24px}.brand{font-size:21px}.brand sup{display:none}.brand-mark{width:30px;height:30px;font-size:25px;line-height:32px}.top-actions{gap:16px}.ranking-link{font-size:11px}.ranking-link span{margin-left:4px}.home{margin-left:32px;padding-top:6vh;width:calc(100% - 64px);padding-bottom:100px}.home h1{font-size:56px;letter-spacing:-3px}.intro{font-size:13px}.home .eyebrow{font-size:8px;letter-spacing:1.5px}.course-facts{gap:24px;margin-bottom:28px}.course-facts small{font-size:9px}.launch{width:min(304px,100%)}.best-mini{width:min(350px,100%)}.course-caption{display:none}.home-footer{left:24px;right:24px;bottom:24px}.home-footer>span:last-child{display:none}.app:not(.is-playing):before{background:#0f0e1b85}.hud{top:90px;gap:20px;padding:12px 20px;width:calc(100% - 40px);justify-content:space-between}.hud strong{font-size:20px}.hud small{font-size:7px;letter-spacing:1px}.progress{top:165px;width:180px}.game-bottom{left:16px;right:16px;bottom:20px}.controls-hint{display:none}.touch-controls{gap:8px}.touch-controls button{height:52px;min-width:48px}.touch-controls .run-control{padding:0 12px;font-size:10px}.touch-controls button span{font-size:10px;margin-right:4px}.practice-panel{top:190px;left:20px;width:230px;padding:16px}.practice-panel h2{font-size:24px}.practice-panel p{font-size:11px}.practice-panel ul{font-size:10px;margin:12px 0;line-height:2.2}.practice-panel .eyebrow{font-size:7px}.practice-panel .primary{font-size:10px;min-height:40px}.practice-panel .textbutton{min-height:32px;padding:6px}.slow-badge{top:180px;font-size:10px}.sheet{width:calc(100% - 32px);padding:24px;margin:16px auto 32px}.sheet h1{font-size:38px;letter-spacing:-2px}.sheet .eyebrow{font-size:8px;letter-spacing:1px}.result-stats{gap:10px;padding:20px 0}.result-stats strong{font-size:21px}.result-stats small{font-size:7px;letter-spacing:1px}.result-stats em{font-size:11px}.sheet-actions{gap:8px}.sheet-actions .primary,.sheet-actions .secondary{flex:1;white-space:nowrap;font-size:11px;padding:10px 12px}.sheet-actions .textbutton{width:100%}.board-label{align-items:start}.board-label span{font-size:6px;letter-spacing:.6px;margin-top:4px}.board-label b{font-size:12px}th{font-size:6px;padding:10px 4px;letter-spacing:0}td{font-size:9px;padding:16px 4px}.reference-grid{grid-template-columns:1fr}.pause-card{padding:24px}.pause-card h1{font-size:36px}.toast{bottom:90px;font-size:11px;min-width:220px}}@media(max-height:730px)and (min-width:761px){.home{padding-top:16px;padding-bottom:80px}.home h1{font-size:58px;margin:20px 0}.intro,.course-facts{margin-bottom:20px}.best-mini{margin-top:16px}.topbar{height:80px}}@media(max-height:750px)and (max-width:760px){.home{padding-top:12px}.home h1{font-size:48px;margin:20px 0}.intro{margin-bottom:20px}.best-mini{margin-top:16px}.course-facts{margin-bottom:20px}.practice-panel{top:180px}.practice-panel h2{margin-top:10px}.practice-panel p{display:none}}.game-bottom{pointer-events:none}.game-bottom button{pointer-events:auto}@media(max-height:730px)and (min-width:761px){.practice-panel{top:205px;padding:16px;width:260px;max-height:calc(100svh - 300px);overflow:auto}.practice-panel h2{font-size:24px;margin:12px 0 8px}.practice-panel p{display:none}.practice-panel ul{font-size:10px;line-height:2;margin:12px 0}.practice-panel .primary{min-height:40px}.practice-panel .textbutton{min-height:32px;padding:6px}}:root{--accent:#8ef5df;--accent-ink:#153c3d;--muted:#c2bfd4;--line:#514b71}.primary:hover{background:#b1ffec}.world{background:#161637}.home h1{font-size:clamp(44px,4.8vw,70px)}.home{padding-top:4vh;width:510px}.music-mini{display:flex;align-items:center;gap:10px;width:350px;margin-top:20px;font-size:11px}.music-mini small{display:block;color:var(--muted);font-size:9px;margin-top:5px}.music-mini a{margin-left:auto;font-size:10px;color:var(--accent);white-space:nowrap}.music-dot{width:6px;height:6px;background:#ff95c9;border-radius:50%;box-shadow:0 0 15px #fc7ab2;flex-shrink:0}.home .best-mini small+small{margin-top:6px}.distance-readout{position:absolute;top:192px;left:50%;transform:translate(-50%);font-size:10px;color:#e2e0fa;white-space:nowrap;max-width:90%;overflow:hidden;text-overflow:ellipsis;text-align:center}.distance-readout>span{color:#9cdccd;margin:0 4px}.clock-low{border-color:#ff8b98}.clock-low>div:first-child strong{color:#ffacb8}.audio-unlock{position:fixed;bottom:245px;left:50%;transform:translate(-50%);background:#282448;z-index:5}.collection{max-height:350px;overflow:auto}.music-sheet{width:min(800px,calc(100% - 48px))}.music-sheet h2{font-size:18px;font-weight:500;letter-spacing:-.4px;margin:0 0 16px}.music-sheet label{display:flex;flex-direction:column;gap:10px;font-size:11px;color:var(--muted);margin-top:18px}.music-sheet input:not([type=checkbox]),.music-sheet textarea{border:1px solid var(--line);background:#191a2e;color:var(--ink);border-radius:8px;min-height:46px;padding:12px;font-size:13px;min-width:0;max-width:100%;width:100%}.music-sheet textarea{font-family:ui-monospace,monospace;font-size:11px;line-height:1.9;resize:vertical}.owner-form{max-width:390px;border-top:1px solid var(--line);padding-top:28px;margin-top:28px}.owner-form .primary{margin-top:24px}.music-section{border-top:1px solid var(--line);padding:28px 0}.music-section audio{width:100%;margin-top:20px;height:44px}.section-title{display:flex;align-items:center;justify-content:space-between}.section-title h2{margin:0}.music-sheet .upload-zone{position:relative;display:flex;justify-content:center;align-items:center;min-height:105px;border:1px dashed #8ca7ab;border-radius:10px;background:#1d303c;color:var(--accent);cursor:pointer;font-size:14px}.upload-zone small{font-size:10px;color:var(--muted)}.music-sheet .upload-zone input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.upload-zone:focus-within{outline:2px solid var(--accent);outline-offset:4px}.music-fields{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:12px 20px}.music-fields button{min-height:46px}.music-fields label{margin-top:0}.music-sheet .check-label{flex-direction:row;align-items:center;line-height:1.6}.check-label input{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}.inline-error{color:#ffcad0;border:1px solid #a16777;border-radius:8px;padding:12px;font-size:12px}.is-playing .toast{bottom:110px}.practice-panel .done:before{content:"✓ ";color:var(--accent)}@media(max-width:760px){.home{width:calc(100% - 64px);padding-top:4vh}.home h1{font-size:48px}.music-mini{width:100%;max-width:350px;flex-wrap:wrap;font-size:10px}.music-mini a{font-size:9px}.distance-readout{top:169px;font-size:8px}.hud{gap:10px;padding:12px 15px}.hud strong{font-size:18px}.hud .speed-stat strong{font-size:16px}.hud em{font-size:9px}.hud small{font-size:6px;letter-spacing:.5px}.touch-controls{gap:4px}.touch-controls>div{gap:5px}.touch-controls button{min-width:42px}.touch-controls button span{margin:0 3px 0 0}.touch-controls .run-control{padding:0 9px}.music-sheet{width:calc(100% - 32px)}.course-facts{gap:25px}.music-fields{gap:12px}.practice-panel{max-height:calc(100svh - 290px);overflow:auto}.audio-unlock{bottom:250px;font-size:10px;white-space:nowrap}.result-detail{flex-wrap:wrap}.domain-row{gap:10px;font-size:11px}.domain-row small{font-size:7px}.music-sheet .upload-zone{font-size:12px}}@media(max-height:750px){.home{padding-top:10px}.home h1{margin:16px 0;font-size:48px}.home .intro,.home .course-facts{margin-bottom:22px}.music-mini{margin-top:14px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}@media(max-width:380px){.topbar{padding:0 16px}.top-actions{gap:10px}.brand{font-size:19px}.brand-mark{margin-right:8px}.home{margin-left:24px;width:calc(100% - 48px)}.home h1{font-size:43px}.hud{width:calc(100% - 24px);padding:12px}.hud strong{font-size:16px}.hud .speed-stat strong{font-size:14px}.touch-controls button span{display:none}.touch-controls button{min-width:44px}.music-mini a{margin-left:16px}.home .eyebrow{font-size:7px;letter-spacing:1px}}.top-actions .ranking-link{display:inline-flex;align-items:center;min-height:42px}@media(max-width:760px){.topbar{height:auto;min-height:80px;flex-wrap:wrap;gap:8px;padding-top:12px;padding-bottom:12px}.top-actions{margin-left:auto;flex-wrap:wrap}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.result-detail{flex-wrap:wrap;gap:16px 24px}.challenge-readout{position:absolute;top:218px;left:50%;transform:translate(-50%);display:flex;gap:18px;align-items:center;font-size:11px;color:var(--accent);white-space:nowrap}.challenge-readout small{font-size:10px;color:var(--muted);margin-left:6px}.lane-warning{position:absolute;top:252px;left:50%;transform:translate(-50%);padding:10px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--ink);font-size:12px;text-align:center;max-width:calc(100% - 32px);width:max-content}.is-playing .slow-badge{top:304px}@media(max-width:760px){.challenge-readout{top:195px;font-size:9px;gap:12px}.challenge-readout small{font-size:8px}.lane-warning{top:225px;font-size:10px}.is-playing .slow-badge{top:273px}.practice-panel{top:310px;max-height:calc(100svh - 410px)}}.finish-celebration{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:flex-start;padding:120px 24px 24px;pointer-events:none;text-align:center;background:linear-gradient(180deg,#161637bb,transparent 65%)}.finish-celebration section{pointer-events:auto;max-width:520px;color:var(--ink)}.finish-celebration .eyebrow,.finish-banner{color:#ffe5a0}.finish-celebration h1{font-size:clamp(40px,8vw,76px);margin:12px 0;letter-spacing:-2px}.finish-celebration p{font-size:15px;margin:12px 0;color:#ffe5a0}.finish-celebration strong{display:block;font-size:clamp(26px,5vw,40px);margin:16px 0 22px;font-variant-numeric:tabular-nums}.finish-celebration button{margin:auto}.finish-banner{padding:16px 0;border-top:1px solid var(--line);font-size:12px;line-height:1.7}@media(max-width:760px){.challenge-readout{white-space:normal;width:calc(100% - 32px);justify-content:center;gap:10px}.challenge-readout>span:last-child{max-width:50%;text-align:right}.finish-celebration{padding-top:125px}.finish-celebration h1{letter-spacing:-1px}}@media(max-height:550px){.finish-celebration{padding-top:85px}.finish-celebration h1{font-size:36px;margin:6px 0}.finish-celebration strong{font-size:24px;margin:8px 0}.finish-celebration p{margin:6px 0}}.partner-readout{position:fixed;bottom:180px;left:50%;transform:translate(-50%);display:flex;justify-content:center;gap:16px;width:max-content;max-width:calc(100% - 32px);pointer-events:none}.partner-readout>span{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:10px 16px;text-align:center;min-width:0}.partner-readout b{display:block;font-size:11px;font-weight:500;color:var(--accent)}.partner-readout small{display:block;font-size:10px;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}.lane-warning>span{display:block;line-height:1.6}.shot-callout{color:#ffcad0}.is-playing .slow-badge{top:auto;bottom:246px}@media(max-width:760px){.partner-readout{bottom:170px;gap:8px;width:calc(100% - 32px)}.partner-readout>span{padding:8px 10px;flex:1}.partner-readout b,.partner-readout small{font-size:9px}}:root{--race-surface:rgba(26,24,40,.94);--race-shield:#84e7fa;--race-registry:#ffe09a;--race-danger:#ffcad0}.race-readouts{position:fixed;z-index:4;top:24px;left:50%;transform:translate(-50%);width:min(480px,calc(100% - 32px));display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.race-readouts .hud{position:static;transform:none;width:100%;gap:20px;padding:12px 20px;justify-content:space-between;background:var(--race-surface)}.race-readouts .hud strong{font-size:22px}.race-readouts .hud small{font-size:8px;letter-spacing:1px}.race-readouts .hud .value-stat{flex:1;text-align:center}.race-status{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;max-width:100%;font-size:12px;font-variant-numeric:tabular-nums}.race-status:empty{display:none}.race-status>span{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:6px 10px;border-radius:8px;background:var(--race-surface);white-space:nowrap}.race-status b{font-size:11px;font-weight:500}.race-status small{font-size:10px;color:var(--muted)}.chain-chip{color:var(--accent)}.shield-chip{color:var(--race-shield)}.registry-chip{color:var(--race-registry)}.boost-chip svg{flex:none}.race-readouts .lane-warning{position:static;transform:none;max-width:100%;margin:0;padding:8px 12px;border-color:var(--line);background:var(--race-surface);font-size:12px;line-height:1.5}.race-readouts .lane-warning span{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.lane-warning b{font-weight:500;color:var(--ink)}.shot-callout,.collision-warning{color:var(--race-danger)}.finale-cue{font-size:12px;color:var(--race-registry);background:var(--race-surface);border-radius:8px;padding:8px 12px;text-align:center}.run-feedback{position:fixed;z-index:4;bottom:112px;left:50%;transform:translate(-50%);width:max-content;max-width:min(360px,calc(100% - 32px));padding:10px 16px;border-radius:var(--r);background:var(--race-surface);text-align:center;pointer-events:none}.run-feedback strong{display:block;font-size:18px;font-weight:600;color:var(--accent);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.run-feedback span{display:block;margin-top:4px;font-size:12px;color:var(--muted);line-height:1.4}.run-feedback.bonus strong{color:var(--race-registry)}.run-feedback.hit strong{color:var(--race-danger)}.is-playing .toast{bottom:112px;width:max-content;max-width:min(420px,calc(100% - 32px));line-height:1.5}.pause-details{font-variant-numeric:tabular-nums}.is-playing .practice-panel{top:200px;max-height:calc(100svh - 300px)}@media(max-width:1100px){.race-readouts{top:88px}}@media(max-width:760px){.is-playing .topbar{min-height:64px;padding:10px 16px;flex-wrap:nowrap}.is-playing .brand{font-size:18px}.is-playing .brand-mark{width:28px;height:28px;line-height:30px;font-size:23px;margin-right:8px}.is-playing .top-actions{gap:8px;flex-wrap:nowrap}.race-readouts{top:72px;width:calc(100% - 24px);gap:6px}.race-readouts .hud{gap:12px;padding:10px 12px}.race-readouts .hud .speed-stat{display:none}.race-readouts .hud strong{font-size:clamp(16px,5vw,22px)}.race-readouts .hud small{font-size:8px;letter-spacing:.5px}.race-status{gap:4px;font-size:11px}.race-status>span{gap:4px;padding:5px 7px;min-height:28px}.race-status small{display:none}.race-status b{font-size:10px}.boost-chip svg{width:14px;height:14px}.race-readouts .lane-warning{font-size:11px;padding:7px 10px}.race-readouts .lane-warning span{gap:8px}.finale-cue{font-size:11px;padding:7px 10px}.run-feedback,.is-playing .toast{bottom:calc(86px + env(safe-area-inset-bottom,0px));padding:8px 12px}.run-feedback strong{font-size:16px}.run-feedback span{font-size:11px}.game-bottom{bottom:calc(16px + env(safe-area-inset-bottom,0px))}.is-playing .practice-panel{top:218px;max-height:calc(100svh - 310px)}}@media(max-height:500px)and (min-width:761px){.is-playing .topbar{height:64px}.race-readouts{top:12px;width:360px}.race-readouts .hud{padding:8px 12px;gap:12px}.race-readouts .hud strong{font-size:18px}.race-readouts .hud .speed-stat{display:none}.run-feedback{bottom:84px;padding:6px 12px}.controls-hint{display:none}.game-bottom{bottom:16px}}@media(max-height:500px)and (max-width:760px)and (orientation:landscape){.is-playing .brand{font-size:0}.is-playing .brand-mark{font-size:23px}.race-readouts{top:12px;width:min(360px,calc(100% - 200px))}.race-readouts .hud{padding:6px 10px}.race-readouts .hud strong{font-size:16px}.run-feedback{bottom:76px}.is-playing .practice-panel{top:165px;max-height:calc(100svh - 245px)}}.app:not(.is-playing){display:flex;flex-direction:column}.app:not(.is-playing)>.topbar{flex-shrink:0}.legal-footer{margin-top:auto;padding:16px 24px max(24px,env(safe-area-inset-bottom));color:var(--muted);text-align:center;font-size:10px;line-height:1.65}.legal-footer p{max-width:760px;margin:0 auto}.legal-footer p+p{margin-top:4px}
