:root{color-scheme:light;--cp-bg: #f7f4ef;--cp-bg-elevated: #fcfbf8;--cp-surface: #ffffff;--cp-surface-soft: #f5f5f5;--cp-border: #dedede;--cp-border-strong: #919191;--cp-text: #242424;--cp-text-muted: #5c5c5c;--cp-text-soft: #6f6f6f;--cp-accent: #b11f4b;--cp-accent-hover: #9a1a41;--cp-accent-soft: rgba(177, 31, 75, .08);--cp-accent-fg: #ffffff;--cp-success: #16a34a;--cp-danger: #dc2626;--cp-warning: #f59e0b;--cp-link: #0078d4;--cp-shadow: 0 18px 48px rgba(0, 0, 0, .12);--cp-overlay: rgba(255, 255, 255, .8);--cp-panel: rgba(255, 255, 255, .86);--cp-panel-strong: rgba(255, 255, 255, .96);--cp-sheen: rgba(255, 255, 255, .55);--cp-highlight: rgba(177, 31, 75, .12)}html[data-theme=dark]{color-scheme:dark;--cp-bg: #3d3b3a;--cp-bg-elevated: #343231;--cp-surface: #292929;--cp-surface-soft: #2e2e2e;--cp-border: #474747;--cp-border-strong: #5f5f5f;--cp-text: #dedede;--cp-text-muted: #919191;--cp-text-soft: #b0b0b0;--cp-accent: #fd8ea1;--cp-accent-hover: #fb7b91;--cp-accent-soft: rgba(253, 142, 161, .14);--cp-accent-fg: #1a1a1a;--cp-success: #4ade80;--cp-danger: #f87171;--cp-warning: #fbbf24;--cp-link: #4da6ff;--cp-shadow: 0 18px 48px rgba(0, 0, 0, .32);--cp-overlay: rgba(41, 41, 41, .88);--cp-panel: rgba(41, 41, 41, .72);--cp-panel-strong: rgba(41, 41, 41, .96);--cp-sheen: rgba(255, 255, 255, .04);--cp-highlight: rgba(253, 142, 161, .12)}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{font-family:Segoe UI,Aptos,Calibri,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--cp-bg);color:var(--cp-text)}button,select,input{font:inherit}button,select{color:var(--cp-text);border:1px solid var(--cp-border-strong);border-radius:10px;background:var(--cp-panel-strong);padding:12px 19px;cursor:pointer}button:hover{border-color:var(--cp-accent);background:var(--cp-surface-soft)}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--cp-accent);outline-offset:4px}button.primary{background:var(--cp-accent);color:var(--cp-accent-fg);border-color:var(--cp-accent);font-weight:700}button.primary:hover{background:var(--cp-accent-hover)}button.flat{background:var(--cp-panel);border-color:var(--cp-border)}button.small{padding:7px 12px;font-size:12px}button[aria-pressed=true]{border-color:var(--cp-accent);background:var(--cp-highlight)}#world{position:fixed;inset:0;width:100%;height:100%;display:block}#app{position:relative;width:100%;height:100%;pointer-events:none}#app button,#app select,#app input,#app label,#app .garage-list{pointer-events:auto}h1,h2,h3,p{margin:0}.mono,.eyebrow,kbd,.speed,.place,.timer{font-family:Consolas,Courier New,Courier,monospace}.eyebrow{font-size:12px;letter-spacing:.24em;color:var(--cp-accent);text-transform:uppercase}.topbar{display:flex;justify-content:space-between;align-items:center;position:absolute;top:28px;left:36px;right:36px;gap:16px}.brand{font-size:14px;font-weight:750;letter-spacing:.16em}.brand,.garage-head>div,.garage-head>p,.race-right,.race-controls,.garage-actions>.keys,.bottom{background:var(--cp-panel-strong);padding:10px 14px;border-radius:10px}.brand span{color:var(--cp-accent)}.tools{display:flex;gap:8px;align-items:center}.title-copy{position:absolute;left:6%;top:23%;max-width:520px}.title-copy h1{font-size:clamp(48px,6.2vw,100px);font-weight:850;letter-spacing:-.065em;line-height:.9;margin:20px 0 24px}.title-copy h1 span{color:var(--cp-accent)}.title-copy p{color:var(--cp-text-soft);font-size:15px;line-height:1.8}.title-copy .primary{margin-top:32px;padding:16px 32px;min-width:240px;text-align:left}.title-copy .primary span{float:right;margin-left:40px}.title-shade{position:absolute;inset:0;background:linear-gradient(90deg,var(--cp-panel-strong),var(--cp-panel) 28%,var(--cp-sheen) 70%)}.title-meta{position:absolute;right:5%;bottom:15%;text-align:right;border-right:3px solid var(--cp-accent);padding-right:18px}.title-meta h2{font-size:22px;margin:8px 0}.title-meta p{color:var(--cp-text-soft);font-size:13px}.bottom{position:absolute;left:36px;right:36px;bottom:24px;display:flex;justify-content:space-between;align-items:end;gap:24px;font-size:12px;color:var(--cp-text-soft)}.keys{display:flex;gap:16px;flex-wrap:wrap}kbd{padding:2px 5px;border:1px solid var(--cp-border-strong);border-radius:4px;font-size:11px;background:var(--cp-panel)}.garage-head{position:absolute;top:94px;left:36px;right:36px;display:flex;justify-content:space-between;align-items:end}.garage-head h1{font-size:26px;margin-top:4px}.garage-panel{position:absolute;top:179px;left:36px;bottom:100px;width:330px;display:flex;flex-direction:column;background:var(--cp-panel-strong);border:1px solid var(--cp-border);border-radius:16px;padding:16px}.garage-panel select{width:100%;margin-bottom:12px}.garage-list{overflow:auto;display:flex;flex-direction:column;gap:6px;padding:4px;scrollbar-width:thin}.vehicle-option{display:flex;justify-content:space-between;text-align:left;padding:12px 10px;font-size:13px;gap:10px}.vehicle-option strong{display:block;margin-bottom:4px}.vehicle-option span{font-size:11px;color:var(--cp-text-soft)}.vehicle-option .index{font-family:Consolas,monospace;color:var(--cp-accent);padding-top:2px}.car-details{position:absolute;right:36px;bottom:112px;width:min(460px,42vw);padding:22px 24px;background:var(--cp-panel);border:1px solid var(--cp-border);border-radius:16px}.car-details h2{font-size:25px;margin:8px 0 10px}.car-details p{font-size:13px;line-height:1.7;color:var(--cp-text-soft)}.specs{display:flex;gap:20px;margin:18px 0}.specs small{display:block;color:var(--cp-text-muted);font-size:10px;letter-spacing:.12em;margin-bottom:5px}.specs strong{font-size:15px}.ratings{display:flex;gap:15px;margin-bottom:12px;font-size:11px;color:var(--cp-text-soft)}.ratings meter{width:55px;height:6px;accent-color:var(--cp-accent)}.garage-actions{position:absolute;bottom:26px;left:36px;right:36px;display:flex;align-items:center;justify-content:space-between;gap:14px}.garage-actions .primary{min-width:230px}.preview-tools{position:absolute;right:36px;top:180px;display:flex;gap:8px}.inspector-tools{top:150px;max-width:640px;display:flex;flex-direction:column;align-items:flex-end;padding:12px;background:var(--cp-panel);border-top:2px solid var(--cp-accent)}.inspector-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;margin-top:7px}.inspector-tools button{padding:6px 9px;background:var(--cp-panel-strong)}.inspector-tools button.fired{border-color:#ff9b49;box-shadow:0 0 18px #ff6a2a}.hud{position:absolute;inset:0}.race-top{position:absolute;top:26px;left:32px;right:32px;display:flex;justify-content:space-between;align-items:start}.position-panel{display:flex;align-items:center;gap:17px;background:var(--cp-panel);border-left:3px solid var(--cp-accent);padding:12px 18px}.place{font-size:48px;line-height:1}.place small{font-size:18px;color:var(--cp-text-soft)}.gaps{font-size:11px;line-height:1.8;min-width:180px;color:var(--cp-text-soft)}.progress-panel{width:32%;max-width:420px;text-align:center;padding:12px 18px;background:var(--cp-panel);border-radius:10px}.progress-panel .route-name{font-size:13px;letter-spacing:.1em}.progress-panel progress{display:block;width:100%;height:4px;margin:10px 0;accent-color:var(--cp-accent)}.progress-panel .distance{font:12px Consolas,monospace;color:var(--cp-text-soft)}.race-right{text-align:right}.timer{font-size:20px;margin-bottom:10px}.speed-panel{position:absolute;right:38px;bottom:30px;min-width:235px;border-bottom:3px solid var(--cp-accent);padding:16px 20px;background:var(--cp-panel);border-radius:10px}.speed{font-size:78px;line-height:1;letter-spacing:-.08em}.speed small{font-size:13px;letter-spacing:.1em;color:var(--cp-text-soft);margin-left:12px}.gear{display:flex;justify-content:space-between;font-size:12px;margin-top:10px}.rpm{width:100%;height:5px;accent-color:var(--cp-accent);margin:10px 0 0}.map-panel{position:absolute;left:32px;bottom:28px;padding:14px;background:var(--cp-panel);border-radius:10px}.map-panel svg{width:102px;height:175px;display:block}.map-path{fill:none;stroke:var(--cp-text-muted);stroke-width:2}.map-dot{fill:var(--cp-accent);stroke:var(--cp-text);stroke-width:1}.map-dot.player{fill:var(--cp-text);stroke:var(--cp-accent);stroke-width:2}.map-label{font:8px Consolas;fill:var(--cp-text)}.race-controls{position:absolute;left:173px;bottom:30px;font-size:11px;color:var(--cp-text-soft);line-height:1.9}.rival-tag{position:absolute;transform:translate(-50%,-100%);font-size:11px;white-space:nowrap;padding:5px 8px;background:var(--cp-panel-strong);border-top:2px solid var(--cp-accent)}.rival-tag b{color:var(--cp-accent);margin-right:5px}.radio-callout{position:absolute;top:118px;left:50%;transform:translate(-50%,-12px);width:min(620px,55vw);display:flex;align-items:center;gap:16px;padding:12px 18px;background:#0c121ce0;border-left:3px solid #fd8ea1;color:#f1ece4;opacity:0;transition:opacity .18s,transform .18s;pointer-events:none}.radio-callout.visible{opacity:1;transform:translate(-50%)}.radio-callout b{display:block;font:11px Consolas,monospace;letter-spacing:.14em;color:#fd8ea1;margin-bottom:4px}.radio-callout span{font-size:13px}.radio-wave,.dialogue-wave,.waveform{display:flex;align-items:center;gap:3px;height:34px}.radio-wave i,.dialogue-wave i,.waveform i{display:block;width:3px;height:calc(7px + (var(--wave, 3) * 2px));background:currentColor;animation:wave-pulse .75s ease-in-out infinite alternate;animation-delay:calc(var(--delay, 0) * -45ms);transform-origin:center}.radio-wave{color:#fd8ea1}.radio-wave i{--wave:4}.center-count{position:absolute;top:35%;left:50%;transform:translate(-50%);text-align:center}.center-count strong{font:100px Consolas;display:block}.center-count span{font-size:12px;letter-spacing:.2em}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:var(--cp-panel);pointer-events:auto}.dialog{width:min(590px,88vw);padding:34px;background:var(--cp-panel-strong);border:1px solid var(--cp-border-strong);border-radius:16px;box-shadow:var(--cp-shadow)}.dialog h1{font-size:40px;margin:10px 0 12px;letter-spacing:-.035em}.dialog p{font-size:14px;line-height:1.6;color:var(--cp-text-soft)}.dialog .actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.options{display:flex;flex-wrap:wrap;gap:16px;margin:22px 0;font-size:13px;align-items:center}.options label{display:flex;gap:7px;align-items:center}.results{width:100%;border-collapse:collapse;margin:22px 0;font-size:13px}.results td{padding:12px 8px;border-bottom:1px solid var(--cp-border)}.results tr.player{color:var(--cp-accent)}.results td:last-child{text-align:right;font-family:Consolas,monospace}.stats{display:flex;gap:24px;font-size:12px;color:var(--cp-text-soft)}#notice{position:fixed;bottom:20px;left:50%;transform:translate(-50%);max-width:650px;padding:12px 20px;background:var(--cp-panel-strong);border:1px solid var(--cp-warning);border-radius:10px;color:var(--cp-text);font-size:13px;z-index:10;display:none}#notice.visible{display:block}.warning{color:var(--cp-warning)}@media(max-width:1000px){.garage-panel{width:280px}.car-details{width:350px}.title-copy{max-width:420px}.gaps{min-width:125px}.progress-panel{width:29%}}@media(max-height:750px){.car-details{padding:14px;bottom:95px}.car-details h2{font-size:21px}.garage-panel{top:157px}.garage-head{top:82px}.specs{margin:10px 0}.map-panel svg{height:130px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}.title-shade{background:linear-gradient(90deg,var(--cp-panel-strong),var(--cp-panel) 22%,var(--cp-sheen) 58%)}.title-copy{top:22%;left:5%;max-width:450px}.title-copy h1{font-size:clamp(54px,5.3vw,88px);letter-spacing:-.055em;line-height:.95}.title-copy .primary{border-radius:2px;min-width:255px}.brand{padding:8px 0;background:none;border-radius:0}.garage-head{top:91px;align-items:center}.garage-head>div,.garage-head>p{background:var(--cp-panel-strong);padding:8px 12px;border-radius:0}.garage-head h1{font-size:23px;font-weight:450;letter-spacing:.02em}.garage-panel{top:164px;bottom:104px;width:292px;background:var(--cp-panel);border:none;border-left:1px solid var(--cp-border-strong);border-radius:0;padding:12px 0 8px 16px}.garage-panel select{border-radius:2px;padding:9px 12px;font-size:12px}.vehicle-option{border:none;border-bottom:1px solid var(--cp-border);border-radius:0;background:none;padding:11px 9px}.vehicle-option[aria-pressed=true]{border-left:2px solid var(--cp-accent);background:var(--cp-accent-soft)}.vehicle-option strong{font-size:12px;font-weight:500}.car-details{bottom:111px;right:36px;width:450px;background:var(--cp-panel);border:none;border-top:1px solid var(--cp-border-strong);border-radius:0;padding:18px 0 0 20px}.car-details h2{font-weight:500;font-size:28px;letter-spacing:-.035em}.ratings{display:none}.preview-tools{top:151px}.garage-actions .primary{border-radius:2px}.garage-actions>.keys{background:var(--cp-panel);font-size:11px;border-radius:2px}.race-right,.race-controls{background:var(--cp-panel)}.position-panel,.progress-panel,.speed-panel,.map-panel{border-radius:2px}html[data-theme=light] .brand,html[data-theme=light] .garage-head>div,html[data-theme=light] .garage-head>p{background:var(--cp-panel-strong);padding:10px}.story-title-en{display:block;font-size:clamp(16px,1.6vw,28px);letter-spacing:.18em;margin-top:20px}.story-title-note{font-size:13px!important;color:var(--cp-text-soft)!important}.story-page{position:absolute;inset:84px 0 0;padding:32px max(32px,7vw) 48px;overflow:auto;background:var(--cp-bg-elevated);color:var(--cp-text)}.story-page,.story-dialogue{pointer-events:auto}.story-page header{max-width:780px;margin-bottom:24px}.story-page h1{font-size:48px;margin:8px 0 16px}.story-page p{line-height:1.7;color:var(--cp-text-soft)}.chapter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:24px 0}.chapter-card{padding:24px;background:var(--cp-surface);border:1px solid var(--cp-border);border-top:3px solid var(--cp-accent)}.chapter-card h2{margin:12px 0;font-size:25px}.chapter-card.locked{border-top-color:var(--cp-border-strong)}.chapter-card button:disabled{opacity:.5;cursor:not-allowed}.chapter-challenge{font-size:13px}.story-warning{padding:16px;border:1px solid var(--cp-warning);background:var(--cp-surface);color:var(--cp-text)}.story-ending{padding:28px;margin-bottom:24px;background:var(--cp-surface);border-left:4px solid var(--cp-accent)}.story-page details{padding:16px 0;border-top:1px solid var(--cp-border)}.story-dialogue{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:40px 7vw;background:var(--cp-overlay)}.story-dialogue-heading{align-self:flex-start;background:var(--cp-panel-strong);padding:20px 28px;border-left:4px solid var(--cp-accent)}.story-dialogue-heading h1{margin:8px 0 0;font-size:32px}.dialogue-box{padding:28px 36px;background:var(--cp-panel-strong);border:1px solid var(--cp-border);box-shadow:var(--cp-shadow);max-width:1200px;width:100%;align-self:center}.dialogue-box h2{margin:8px 0;font-size:25px;color:var(--cp-accent)}.speaker-lockup{display:flex;align-items:center;gap:14px}.speaker-lockup small{font:11px Consolas,monospace;color:var(--cp-text-muted);letter-spacing:.12em}.speaker-badge{display:grid;place-items:center;width:54px;height:54px;border:1px solid var(--cp-accent);border-radius:50%;font-size:24px;color:var(--cp-accent)}.dialogue-wave{color:var(--cp-accent);height:24px;margin:14px 0 -2px}.dialogue-box p{font-size:clamp(20px,2vw,30px);line-height:1.8;min-height:100px;color:var(--cp-text)}.dialogue-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;color:var(--cp-text-muted)}.tape-archive{margin:34px 0;padding:28px;background:#111821;color:#e7e2d8;border-top:3px solid #b11f4b}.tape-archive header{margin-bottom:20px}.tape-archive h2{margin-top:8px}.tape-layout{display:grid;grid-template-columns:minmax(240px,340px) 1fr;gap:24px}.tape-list{display:flex;flex-direction:column;gap:6px}.tape-list button{text-align:left;border-radius:2px;background:#19232e;color:#e7e2d8;border-color:#394756;padding:11px}.tape-list button small{display:block;margin-top:5px;color:#91a1b1}.tape-reader{display:grid;grid-template-columns:220px 1fr;gap:26px;align-items:center;min-height:235px}.tape-reader h3{font-size:24px;margin:7px 0}.tape-reader p{color:#b9c2ca}.cassette{position:relative;width:220px;height:140px;border:2px solid #7d8792;border-radius:12px;background:linear-gradient(145deg,#313a44,#121820);box-shadow:inset 0 0 0 8px #202a34}.reel{position:absolute;top:39px;width:58px;height:58px;border:8px dotted #c8baa2;border-radius:50%;animation:tape-spin 3s linear infinite}.reel.left{left:28px}.reel.right{right:28px}.tape-window{position:absolute;left:78px;top:55px;width:64px;height:28px;border:1px solid #8b99a6;background:#0a0f15}.waveform{color:#fd8ea1;height:44px}@keyframes tape-spin{to{transform:rotate(360deg)}}@keyframes wave-pulse{to{transform:scaleY(.28);opacity:.55}}@media(max-width:1100px){.chapter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.story-page{padding:24px}.dialogue-footer{flex-wrap:wrap}.story-dialogue{padding:24px}}@media(max-width:1100px){.tape-layout,.tape-reader{grid-template-columns:1fr}.cassette{display:none}.inspector-tools{max-width:500px}.car-details{display:none}}@media(prefers-reduced-motion:reduce){.reel,.waveform i,.dialogue-wave i,.radio-wave i{animation:none}.radio-callout{transition:none}}
