:root{color-scheme:dark;--bg:#10191c;--panel:#162125;--lime:#d3ff69;--muted:#8e9c9e;--line:#ffffff14}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:#edf3ed}.app{height:100%;height:100dvh;max-width:1920px;margin:auto;padding:0 32px;display:grid;grid-template-rows:76px minmax(0,1fr) 44px}.header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:11px;color:#edf3ed;text-decoration:none}.brand-icon{position:relative;width:43px;height:38px;background:var(--lime);color:#111b17;font-weight:900;font-size:23px;letter-spacing:-3px;display:grid;place-content:center;transform:skew(-8deg);padding-right:5px}.brand-icon span{position:absolute;font-size:11px;right:4px;top:1px;letter-spacing:0}.brand-name{font-weight:800;font-size:10px;letter-spacing:1.4px;line-height:1.4}.edition{font-size:10px;letter-spacing:2px;color:#b7c3c3;margin-left:auto}.edition span{color:#6d7d7f;margin-left:25px}.tools{display:flex;gap:7px;margin-left:25px}.icon-btn{width:35px;height:35px;border:1px solid #ffffff20;background:transparent;color:#c2cfce;border-radius:7px;font-size:21px;cursor:pointer;position:relative}.icon-btn:hover{color:var(--lime);border-color:var(--lime)}.off{font-size:13px;position:absolute;right:3px;bottom:3px}.main{min-height:0;display:grid;grid-template-columns:234px minmax(0,1fr);gap:28px;padding-top:22px}.rail{display:flex;flex-direction:column;min-height:0;padding:9px 0 0}.eyebrow{font-size:9px;font-weight:700;letter-spacing:2px;display:flex;align-items:center;gap:7px;color:var(--lime)}.eyebrow i,.live-dot{height:5px;width:5px;border-radius:50%;background:var(--lime);display:inline-block;flex-shrink:0}h1{font-size:clamp(42px,5.3vh,66px);font-weight:950;line-height:.88;letter-spacing:-3px;margin:23px 0 0;font-style:italic}h1 span{color:var(--lime)}h1 small{font-style:normal;font-size:10px;letter-spacing:6px;display:block;color:#aab6b6;margin:15px 0 0 4px}.tagline{font-size:16px;line-height:1.4;color:#b6c2c1;margin:20px 0}.record{padding:19px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:8px}.label{font-size:9px;letter-spacing:1.8px;color:var(--muted)}.record strong{font-family:'Courier New',monospace;font-size:30px;letter-spacing:1px;display:block;margin:5px 0}.record small{font-size:10px;color:#8b999b}.guide{margin-top:20px}h2{margin:0}.guide h2{font-size:9px;letter-spacing:1.7px;color:#8e9c9e;margin-bottom:17px}.guide>div{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}.rule-icon{width:27px;height:27px;border:1px solid #ffffff20;border-radius:7px;display:grid;place-content:center;font-size:19px;color:#b7c6c4;flex-shrink:0}.fuel-icon{color:var(--lime)}.police-icon{color:#9dbaff}.guide p{font-size:11px;line-height:1.55;color:#829394;margin:0}.guide b{display:block;color:#dce6e1;font-size:11px;margin-bottom:2px;font-weight:500}.rail-bottom{margin-top:auto;padding:14px 0 8px}.primary{border:0;background:var(--lime);color:#13200d;font-size:11px;font-weight:800;letter-spacing:1.2px;padding:17px 19px;display:flex;align-items:center;justify-content:space-between;gap:22px;width:100%;border-radius:4px;cursor:pointer;transition:background .2s,transform .2s}.primary:hover{background:#e4ffac;transform:translateY(-1px)}.primary span{font-size:19px;font-weight:400}.keys{display:flex;align-items:center;gap:4px;margin-top:13px}.keys span{font-size:10px;color:#819293;margin-left:5px}kbd{border:1px solid #ffffff25;border-radius:3px;min-width:21px;text-align:center;font-size:11px;color:#abbab7;padding:3px}.game-shell{display:grid;grid-template-rows:63px minmax(0,1fr) 40px;min-width:0;min-height:0;border:1px solid #ffffff1b;border-radius:8px;overflow:hidden;background:#121e20}.hud{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 25px;background:#19262a;border-bottom:1px solid #ffffff0c}.hud span{display:block;font-size:8px;letter-spacing:1.7px;color:#93a5a4}.hud-score strong{font-family:'Courier New',monospace;font-size:25px;letter-spacing:2px;line-height:1.3}.hud-fuel{width:30%;max-width:240px}.hud-fuel span{display:flex;justify-content:space-between}.hud-fuel b{font-size:9px;font-weight:400;color:var(--lime);letter-spacing:0}.fuel-track{height:6px;background:#ffffff12;margin-top:9px;overflow:hidden;border-radius:3px}.fuel-track i{display:block;height:100%;background:var(--lime);width:100%;transition:width .15s linear,background .2s}.hud-lives strong{display:block;font-size:16px;letter-spacing:5px;color:var(--lime);margin-top:6px;white-space:nowrap}.viewport{position:relative;min-height:0;overflow:hidden;isolation:isolate;touch-action:none;background:#223a35}canvas{display:block;width:100%;height:100%;touch-action:none}.corner{position:absolute;width:15px;height:15px;top:14px;pointer-events:none;border-top:1px solid #ffffff45}.top-left{left:14px;border-left:1px solid #ffffff45}.top-right{right:14px;border-right:1px solid #ffffff45}.telemetry{position:absolute;bottom:14px;left:22px;right:22px;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none;color:#ecf2de;font-size:8px;letter-spacing:1.2px;text-shadow:0 1px 6px #000}.telemetry b{font-size:16px;letter-spacing:0;font-family:'Courier New',monospace}#region{font-size:8px;color:#cee5ca;background:#0b151b99;padding:6px 8px;border-radius:3px}.game-bottom{padding:0 18px;display:flex;align-items:center;gap:8px;font-size:8px;letter-spacing:1.4px;background:#19262a;color:#9eafad}.bottom-right{margin-left:auto;color:#697f7e;font-size:8px}.overlay{position:absolute;inset:0;background:linear-gradient(110deg,#091617ed,#0c1c23c9);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;text-align:center;backdrop-filter:blur(4px)}.intro-mark{width:70px;height:70px;color:var(--lime);margin-bottom:12px}.intro-mark svg{width:100%;height:100%}.overlay .eyebrow{font-size:8px;letter-spacing:2.3px}.overlay h2{font-size:clamp(40px,7.5vh,79px);font-weight:900;line-height:.99;letter-spacing:-2.5px;margin:18px 0}.overlay em{color:var(--lime);font-style:italic}.overlay p{font-size:13px;line-height:1.8;color:#aebfba;margin:0 0 23px}.overlay .primary{max-width:285px}.overlay-hint{font-size:9px;letter-spacing:1px;margin-top:21px;color:#d1ded8}.overlay-hint span span{color:#7d9690;margin:0 5px}.mobile-hint{display:none}.hidden{display:none!important}.chase{position:absolute;top:17px;left:50%;transform:translateX(-50%);padding:10px 15px;display:flex;align-items:center;gap:11px;white-space:nowrap;font-size:10px;font-weight:bold;letter-spacing:1.6px;background:#151d2cf2;border:1px solid #d7ddff33;border-radius:5px;color:#f0f2ff;box-shadow:0 0 40px #2262ff33}.chase i{width:7px;height:7px;background:#ff5858;border-radius:50%;animation:flash .5s infinite alternate}.chase i:last-child{background:#6b9fff;animation-delay:.5s}@keyframes flash{to{opacity:.15;box-shadow:0 0 10px currentColor}}.toast{position:absolute;left:50%;top:37%;transform:translateX(-50%);color:var(--lime);font-weight:800;font-size:17px;letter-spacing:.5px;background:#11201ce8;border:1px solid #d3ff6944;padding:12px 20px;border-radius:5px;white-space:nowrap;pointer-events:none}.results{display:flex;gap:30px;justify-content:center;margin:0 0 24px}.results span{display:block;font-size:9px;letter-spacing:1.6px;color:#8fa49c;margin-bottom:6px}.results strong{font-family:'Courier New',monospace;font-size:25px;color:var(--lime)}.touch-controls{display:none}footer{display:flex;align-items:center;gap:25px;font-size:9px;color:#708380}footer a{color:#acbcb6;text-decoration:none}footer a:hover{color:var(--lime)}footer>span:nth-child(2){margin-left:auto}.version{font-size:8px;letter-spacing:1px}button:focus-visible,a:focus-visible{outline:2px solid var(--lime);outline-offset:4px}button:disabled{opacity:.4;cursor:default}.damage{animation:damage .35s}@keyframes damage{0%,100%{box-shadow:inset 0 0 0 #ff444400}40%{box-shadow:inset 0 0 100px #ff4444bb}}@media(max-height:800px) and (min-width:761px){.app{grid-template-rows:62px minmax(0,1fr) 35px}.main{padding-top:16px}.tagline{margin:15px 0;font-size:14px}.record{padding:12px 0;margin-top:0}.record strong{font-size:25px}.guide{margin-top:16px}.guide>div{margin-bottom:10px}.guide h2{margin-bottom:10px}h1{font-size:46px;margin-top:16px}.rail{padding-top:4px}.rail-bottom{padding-top:8px}.intro-mark{height:48px;width:48px}.overlay h2{font-size:56px;margin:13px 0}.overlay p{margin-bottom:17px}.overlay-hint{margin-top:15px}}@media(max-height:640px) and (min-width:761px){.tagline,.record small,.guide h2{display:none}.guide{margin-top:12px}.guide p{font-size:10px}.guide>div{margin-bottom:8px}.record{margin-top:18px}.main{gap:20px;grid-template-columns:210px minmax(0,1fr)}.intro-mark{display:none}.overlay h2{font-size:46px}.app{grid-template-rows:52px minmax(0,1fr) 30px}.hud{padding:8px 20px}.game-shell{grid-template-rows:55px minmax(0,1fr) 32px}}
@media(max-width:760px){.app{padding:0 12px;grid-template-rows:54px minmax(0,1fr) 30px;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.header{gap:10px}.brand-icon{width:35px;height:30px;font-size:19px}.brand-name{font-size:8px;letter-spacing:1px}.edition{font-size:0;letter-spacing:0}.edition span{display:none}.edition:after{content:'VIPER RALLY';font-size:12px;font-style:italic;font-weight:900;color:var(--lime);white-space:nowrap}.tools{margin-left:0;gap:5px}.icon-btn{width:29px;height:29px;font-size:18px}#fullscreen{display:none}.main{display:block;padding-top:9px}.rail{display:none}.game-shell{height:100%;grid-template-rows:54px minmax(0,1fr) 51px}.hud{padding:8px 13px;gap:12px}.hud-score strong{font-size:21px;letter-spacing:1px}.hud span{font-size:7px;letter-spacing:1px}.hud-fuel{width:29%}.hud-lives strong{font-size:14px;letter-spacing:2px}.hud-lives span{text-align:right}.overlay h2{font-size:clamp(40px,7vh,65px)}.overlay p{font-size:12px}.intro-mark{height:55px;width:55px}.desktop-hint{display:none}.mobile-hint{display:block}.overlay-hint{font-size:9px;letter-spacing:0}.game-bottom{padding:0 10px}.game-bottom>.live-dot,.game-bottom>.bottom-right{display:none}#bottom-status{font-size:7px;letter-spacing:.7px;max-width:34%;line-height:1.5}.touch-controls{display:flex;gap:12px;align-items:center;margin-left:auto}.touch-controls span{font-size:7px;letter-spacing:1px;color:#7f9690}.touch-controls button{height:36px;width:53px;border-radius:5px;border:1px solid #d3ff6933;background:#d3ff6910;color:var(--lime);font-size:22px;touch-action:none;user-select:none;-webkit-user-select:none}.touch-controls button:active{background:#d3ff6940}.telemetry{left:12px;right:12px;bottom:11px}.telemetry b{font-size:14px}#region{font-size:7px}.chase{font-size:8px;padding:9px 10px;gap:8px;letter-spacing:1px}.toast{font-size:13px;padding:11px 13px}footer{font-size:8px;justify-content:center;gap:10px}footer>span:nth-child(2),footer .version{display:none}.results{gap:24px}.results strong{font-size:23px}.overlay .primary{max-width:265px}}
@media(max-height:520px) and (max-width:760px){.app{grid-template-rows:40px minmax(0,1fr) 22px}.main{padding-top:5px}.game-shell{grid-template-rows:43px minmax(0,1fr) 38px}.intro-mark,.overlay-kicker,.overlay-hint{display:none}.overlay{padding:8px}.overlay h2{font-size:29px;line-height:1;margin:6px 0}.overlay h2 br{display:none}.overlay p{font-size:10px;line-height:1.4;margin-bottom:10px}.primary{padding:10px 15px}.results{margin-bottom:10px}.touch-controls button{height:29px}.overlay .eyebrow{font-size:6px}.tools .icon-btn{height:26px}}
@media(prefers-reduced-motion:reduce){.chase i{animation:none}.primary{transition:none}.damage{animation:none}}

/* Incident scene stays visible; the player explicitly chooses when to resume. */
.crash-overlay{inset:22px 22px auto;padding:23px 20px;background:#101c22ed;backdrop-filter:blur(5px);border:1px solid #ffae7755;border-radius:8px;box-shadow:0 12px 40px #0005}
.crash-overlay h2{font-size:38px;margin:14px 0 10px;letter-spacing:-1.2px}.crash-overlay h2 br{display:none}.crash-overlay h2 em{color:#ffb482;margin-left:8px}.crash-overlay p{font-size:12px;margin-bottom:17px;max-width:400px}.crash-overlay .eyebrow{color:#ffb482}.crash-overlay .primary{background:#ffb482}
@media(max-width:760px){.touch-controls{gap:6px}.touch-controls button{width:40px;height:36px}.crash-overlay{inset:12px 10px auto;padding:18px 13px}.crash-overlay h2{font-size:29px}.crash-overlay p{font-size:11px;line-height:1.6}.overlay p{max-width:330px}.overlay-hint{font-size:8px}}

/* iOS Safari: no text-selection handles or long-press callouts during play. */
.app,.app *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.game-shell,.viewport,canvas,.touch-controls,.touch-controls button{touch-action:none;-webkit-user-drag:none}
button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none}
