:root{color-scheme:dark;--ink:#10151a;--muted:#7f898f;--line:#ffffff16;--accent:#dcff58}*{box-sizing:border-box}body{margin:0;background:#0c1014;color:#f3f5ed;font-family:Arial,Helvetica,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button:disabled{cursor:wait;opacity:.5}[hidden]{display:none!important}.race-app{max-width:1700px;margin:auto}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 3.8%;border-bottom:1px solid var(--line);background:#11171b}.back{color:#b1b7b7;text-decoration:none;font-size:10px;font-weight:800;letter-spacing:2px;display:flex;gap:15px;align-items:center}.wordmark{font-size:26px;font-weight:950;letter-spacing:-1.7px;font-style:italic;position:relative}.wordmark>span{color:var(--accent)}.wordmark i{display:block;text-align:center;font-size:6px;font-style:normal;letter-spacing:3.8px;color:#8c979a;margin-top:4px}.icon-button{border:1px solid #ffffff24;background:transparent;padding:11px 13px;font-size:9px;letter-spacing:1px;border-radius:3px}.race-stage{height:clamp(450px,53vw,650px);position:relative;overflow:hidden;background:linear-gradient(#111a2b 0%,#635467 42%,#bd8273 65%,#272e31 100%)}#viewport,#viewport canvas,.vignette{position:absolute;inset:0;width:100%;height:100%;display:block}.vignette{pointer-events:none;background:linear-gradient(0deg,#0e141bf2,transparent 22%,transparent 68%,#0e141b44),linear-gradient(90deg,#0e141b55,transparent 35%)}.event-heading{position:absolute;top:32px;left:3.8%;pointer-events:none}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--accent);font-weight:700}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:8px;box-shadow:0 0 12px #dcff5888}h1{font-size:clamp(28px,3.5vw,50px);font-style:italic;letter-spacing:-2px;margin:10px 0 8px;font-weight:950}h1 em{color:var(--accent)}.event-heading p{font-size:11px;color:#c0c6c8;margin:0}.session-tag{position:absolute;right:3.8%;top:35px;font-size:8px;letter-spacing:1.6px;color:#e3e5df;text-align:right}.session-tag span{display:block;font-size:7px;color:#a8b0b8;margin-top:8px}.timing{position:absolute;top:169px;left:3.8%;width:170px;background:#101820bb;backdrop-filter:blur(14px);border:1px solid #ffffff13;border-radius:4px;overflow:hidden}.timing-title{display:flex;justify-content:space-between;padding:12px 9px;background:#1c262e;font-size:7px;letter-spacing:.7px}.timing-title b{color:var(--accent);white-space:nowrap}.timing ol{margin:0;padding:3px 0;list-style:none}.timing li{display:flex;align-items:center;gap:8px;height:25px;font-size:9px;padding:0 9px;border-bottom:1px solid #ffffff08}.timing li:last-child{border:0}.timing li.mine{background:#dfff5813}.position{color:#89969e;width:10px;font-size:8px}.rank-number{width:19px;text-align:center;font-weight:900;border-left:2px solid var(--car);color:#fff}.rank-name{font-size:8px;letter-spacing:1px}.rank-gap{margin-left:auto;font:8px monospace;color:#a3aeb5}.track-caption{position:absolute;bottom:29px;left:3.8%;display:flex;gap:12px;align-items:center;font-size:9px;letter-spacing:1px}.track-outline{font-size:44px;line-height:1;transform:scaleX(1.5) rotate(-25deg);margin-right:8px;color:#83959e}.track-caption small{display:block;font-size:7px;color:#84929a;margin-top:7px;letter-spacing:1px}.telemetry{position:absolute;right:3.8%;bottom:27px;width:118px;text-align:right}.telemetry strong{font-size:42px;line-height:1;font-style:italic;font-variant-numeric:tabular-nums;letter-spacing:-2px}.telemetry>span{font-size:8px;color:#91a0a9;margin-left:7px}.rev-bar{height:3px;background:#ffffff20;margin:9px 0}.rev-bar i{display:block;background:var(--accent);height:100%;width:0}.telemetry small{font-size:7px;letter-spacing:2px;color:#8e9da4}.garage{padding:27px 3.8% 0;background:linear-gradient(#151c21,#11171b)}.garage-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:21px}.garage-heading .eyebrow{font-size:8px;color:#8c999e}.garage-heading h2{font-size:21px;margin:8px 0 0;letter-spacing:-.6px}.garage-heading>span{font-size:8px;letter-spacing:1px;color:var(--accent)}.drivers{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:9px}.driver{position:relative;border:1px solid #ffffff16;background:linear-gradient(160deg,#ffffff06,#ffffff01);border-radius:5px;text-align:left;padding:12px 11px 10px;overflow:hidden;transition:background .2s,border-color .2s,transform .2s}.driver:hover:not(:disabled){transform:translateY(-3px);background:#ffffff0b}.driver.selected{border-color:var(--accent);background:linear-gradient(150deg,#dfff5814,#dfff5804);box-shadow:0 0 20px #dcff5806}.driver.selected:after{content:'✓';position:absolute;right:9px;top:10px;font-size:10px;color:var(--accent)}.driver:disabled{cursor:default;opacity:.7}.driver.selected:disabled{opacity:1}.driver .number{font-size:27px;font-style:italic;font-weight:900;color:#c1cbcf;letter-spacing:-2px}.driver.selected .number{color:var(--accent)}.driver svg{display:block;width:100%;height:47px;margin:4px 0 8px;filter:drop-shadow(0 7px 4px #0008)}.driver .name{display:block;font-weight:800;font-size:9px;letter-spacing:1px}.driver .team{display:block;font-size:7px;color:#718189;margin-top:5px;letter-spacing:.5px}.driver .color-line{display:block;height:2px;background:var(--car);margin-top:12px;width:25px}.race-action{display:flex;align-items:center;gap:25px;margin-top:24px;padding:20px 0;border-top:1px solid var(--line)}.selected-driver{display:flex;gap:12px;align-items:center;min-width:190px}.selected-driver>span{display:block;background:var(--car);width:4px;height:33px}.selected-driver small{display:block;color:#7e8c94;font-size:7px;letter-spacing:1.5px}.selected-driver strong{display:block;font-size:15px;font-style:italic;margin-top:6px;letter-spacing:.5px}.race-action p{font-size:10px;line-height:1.7;color:#b4bdc1;margin:0}.race-action p span{color:#70808a}.race-action>button{margin-left:auto;min-width:240px;background:var(--accent);color:#1b2310;border:0;border-radius:4px;padding:21px 24px;display:flex;justify-content:space-between;gap:26px;font-size:12px;font-weight:900;letter-spacing:1px}.race-action>button span{font-size:17px;line-height:12px}footer{display:flex;justify-content:space-between;padding:17px 3.8% 22px;font-size:7px;letter-spacing:1.5px;color:#53616b;border-top:1px solid #ffffff08;background:#11171b}.start-sign{position:absolute;left:50%;top:36%;transform:translate(-50%,-50%);text-align:center;padding:25px;background:#080f18dd;border:1px solid #ffffff30;border-radius:7px;box-shadow:0 20px 100px #0009}.start-lights{display:flex;gap:12px;margin-bottom:17px}.start-lights i{width:24px;height:24px;border-radius:50%;background:#31373b;border:3px solid #050a0e}.start-lights i.on{background:#ff493d;box-shadow:0 0 22px #ff493d88}.start-sign strong{font-size:12px;letter-spacing:3px}.result{position:absolute;top:28%;left:50%;transform:translateX(-50%);width:330px;text-align:center;padding:30px;background:#101920ee;border:1px solid #dcff5855;box-shadow:0 15px 90px #0008;border-radius:5px}.result h2{font-size:35px;font-style:italic;letter-spacing:-1px;margin:15px 0 12px}.result p{font-size:12px;color:#c6cece}.result-note{font-size:8px;color:#7e939b}.loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#111a24;z-index:5;font-size:11px;letter-spacing:2px}.loading span{font-size:10px;color:#84949e;letter-spacing:0}.loading.error{padding:30px;text-align:center;line-height:1.7}.loading.error a{color:var(--accent)}
@media(min-width:1500px){.race-stage{height:680px}}@media(max-width:800px){.topbar{height:70px}.back span{font-size:8px;letter-spacing:1px}.wordmark{font-size:22px}.icon-button{font-size:7px;padding:10px}.race-stage{height:520px}.event-heading{top:23px}.session-tag{top:28px;font-size:6px;max-width:105px;line-height:1.6}.timing{top:145px;width:137px}.timing li{height:23px;gap:5px;padding:0 7px}.timing-title{font-size:6px}.rank-name{font-size:7px}.rank-gap{font-size:7px}.track-caption{bottom:76px;font-size:7px}.track-caption small{font-size:6px}.track-outline{font-size:28px}.telemetry{bottom:75px;width:92px}.telemetry strong{font-size:34px}.drivers{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.driver{padding:10px}.driver svg{height:39px;margin:0 0 5px}.driver .number{font-size:23px}.driver .color-line{margin-top:8px}.garage{padding-top:22px}.garage-heading h2{font-size:19px}.garage-heading>span{font-size:7px}.race-action{flex-wrap:wrap;gap:17px;margin-top:20px}.selected-driver{min-width:150px}.race-action p{font-size:9px;margin-left:auto}.race-action>button{width:100%;padding:19px 22px}.result{top:30%;width:280px;padding:24px}.result h2{font-size:30px}.start-sign{top:40%}.timing{background:#101820ad}footer{font-size:6px;letter-spacing:.7px}}@media(prefers-reduced-motion:reduce){.driver{transition:none}}@media(max-width:380px){.back span{display:none}.garage-heading h2{font-size:17px}.driver .name{font-size:8px}.race-action p{font-size:8px}.selected-driver{min-width:135px}.session-tag{display:none}}

@media(max-width:800px){.race-stage{scroll-margin-top:0}.driver{min-height:126px}.driver .team{min-height:18px}.race-action{padding-bottom:calc(20px + env(safe-area-inset-bottom))}}

/* V3: dedicated chase view and mesh-rendered garage portraits. */
.driver-focus{position:absolute;bottom:29px;left:50%;transform:translateX(-50%);text-align:center;min-width:145px;border-bottom:2px solid #dfff5877;padding:8px 18px;background:linear-gradient(transparent,#0d1723aa);pointer-events:none}.driver-focus span{display:block;font-size:7px;letter-spacing:2px;color:#98a6b0}.driver-focus strong{display:block;font-size:12px;font-style:italic;margin-top:6px}.car-portrait{display:block;width:calc(100% + 20px);margin:0 -10px;height:66px}.car-portrait img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 3px #0007)}.driver .team{font-size:6.5px;letter-spacing:.25px;min-height:14px;line-height:1.6}.race-stage.racing .event-heading h1{font-size:23px;letter-spacing:-.8px;margin:7px 0}.race-stage.racing .event-heading p{display:none}.race-stage.racing .timing{top:110px}.race-stage.racing .event-heading{top:24px}.vignette{background:linear-gradient(0deg,#0e141bee,transparent 20%,transparent 80%,#0e141b44)}
@media(max-width:800px){.race-stage{height:560px}.driver-focus{bottom:24px;padding:7px 12px}.track-caption{bottom:31px;max-width:95px}.track-caption small{font-size:5px}.track-outline{display:none}.telemetry{bottom:27px;width:76px}.telemetry strong{font-size:30px}.driver-focus strong{font-size:10px}.driver-focus span{font-size:6px}.driver-focus{min-width:108px}.race-stage.racing .timing{top:107px;width:106px}.race-stage.racing .rank-gap{display:none}.race-stage.racing .timing li{height:20px}.car-portrait{height:54px}.driver .team{font-size:6px;min-height:22px}.event-heading h1{font-size:28px}.race-stage.racing .event-heading h1{font-size:20px}.session-tag{font-size:5px}.driver{padding:10px 8px}.driver .name{font-size:8px}}

button,a{touch-action:manipulation}.bet-panel{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:22px;font-size:10px}.bet-panel>span{letter-spacing:1px;color:#b7c4ca}.bet-panel>div{display:flex;gap:8px}.bet-panel button{min-width:68px;min-height:44px;border:1px solid #ffffff24;background:#19232b;border-radius:5px;font-weight:bold}.bet-panel button.active{border-color:var(--accent);color:var(--accent)}.bet-panel small{color:#82949f;font-size:9px}.driver{transition:border-color .08s,background .08s}.timing{contain:layout style}.race-stage{contain:layout paint}@media(max-width:800px){.race-stage{height:min(560px,72svh);min-height:420px}.timing{backdrop-filter:none}.bet-panel{gap:12px}.bet-panel small{width:100%}.icon-button{min-height:44px}.race-action p{max-width:190px}.result p{line-height:1.6}.topbar{padding-top:env(safe-area-inset-top)}}

.bet-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.bet-types button{padding:10px 6px;font-size:11px}@media(max-width:400px){.bet-types button{font-size:9px}}

.bet-panel>div[role=group]{display:flex;flex-wrap:wrap;gap:6px}.race-wallet{display:flex;justify-content:space-between;color:#bdc9c8;padding:15px;border:1px solid #ffffff22}.race-wallet strong{color:#e2eea5}
