@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(./vendor/fonts/barlow-400.ttf) format('truetype');
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(./vendor/fonts/barlow-500.ttf) format('truetype');
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(./vendor/fonts/barlow-600.ttf) format('truetype');
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(./vendor/fonts/barlow-700.ttf) format('truetype');
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(./vendor/fonts/barlow-condensed-700-italic.ttf) format('truetype');
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url(./vendor/fonts/barlow-condensed-800-italic.ttf) format('truetype');
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(./vendor/fonts/barlow-condensed-600.ttf) format('truetype');
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(./vendor/fonts/barlow-condensed-700.ttf) format('truetype');
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(./vendor/fonts/barlow-condensed-800.ttf) format('truetype');
}


:root{--lime:#d7fc70;--ink:#101917;--white:#f4f4e9;--muted:#aeb9ad;--line:rgba(240,248,236,.19);--sans:'Barlow',Arial,sans-serif;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif;--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#101917;color:var(--white);font-family:var(--sans);-webkit-font-smoothing:antialiased}body{touch-action:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:0}button:focus-visible{outline:2px solid white;outline-offset:6px}button:disabled{opacity:.55;cursor:wait}button:hover{filter:brightness(1.08)}button:active{transform:translateY(1px)}.hidden{display:none!important}#game-canvas{position:fixed;inset:0;display:block;width:100%;height:100%;outline:0}.screen-vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(5,14,13,.38),transparent 30%,transparent 75%,rgba(5,14,13,.12));z-index:1}.menu-screen{position:fixed;inset:0;z-index:5;padding:34px 44px 26px;display:flex;flex-direction:column;background:linear-gradient(90deg,rgba(8,20,18,.88) 0%,rgba(8,20,18,.72) 23%,rgba(8,20,18,.26) 48%,rgba(8,20,18,0) 72%),linear-gradient(0deg,rgba(7,17,15,.92) 0%,rgba(7,17,15,0) 27%)}.menu-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.brand{display:flex;gap:13px;align-items:center;color:var(--white);text-decoration:none}.brand-mark{font-size:39px;font-weight:900;font-style:italic;letter-spacing:-7px;line-height:1;position:relative;width:45px;transform:skew(-8deg)}.brand-mark span{font-size:29px;color:var(--lime);position:absolute;right:-4px;top:-5px;letter-spacing:0}.brand-name{font-family:var(--display);font-size:25px;font-weight:700;line-height:.9;letter-spacing:1px}.brand-name i{font-style:normal;color:var(--lime);margin:0 4px}.brand-name small{display:block;font-family:var(--sans);font-size:7px;letter-spacing:2.2px;margin-top:8px;font-weight:600}.circuit-tag{font-family:var(--mono);font-size:10px;letter-spacing:1.3px;display:grid;grid-template-columns:8px auto;align-items:center;column-gap:11px;padding-top:5px;text-shadow:0 1px 8px #102222}.circuit-tag b{margin:0 8px;font-weight:400;opacity:.5}.tag-line{grid-column:2;font-size:8px;letter-spacing:1.9px;opacity:.7;margin-top:7px}.live-dot{display:inline-block;width:6px;height:6px;background:var(--lime);border-radius:50%;box-shadow:0 0 12px #d7fc7055}.menu-content{margin-top:auto;margin-bottom:auto;padding-top:25px;max-width:480px;width:43%;}.eyebrow{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:2px;font-weight:600;color:var(--lime)}.short-line{width:27px;height:2px;background:var(--lime);display:block}h1{margin:20px 0 19px;font-family:var(--display);font-size:clamp(82px,8.6vw,140px);line-height:.8;letter-spacing:-2.5px;font-weight:800;font-style:italic;transform:translateX(-4px)}h1 span{color:var(--lime)}.intro{font-size:14px;line-height:1.6;color:#d2dbce;margin:0 0 25px;letter-spacing:.2px}.mode-selector{display:flex;gap:0;border:1px solid var(--line);width:360px;max-width:100%;margin-bottom:12px}.mode-btn{position:relative;flex:1;background:rgba(10,24,22,.2);min-height:55px;padding:13px 12px 12px 30px;text-align:left;font-size:10px;font-weight:700;letter-spacing:1.1px;color:#c1cac1;white-space:nowrap}.mode-btn+.mode-btn{border-left:1px solid var(--line)}.mode-btn small{display:block;font-size:7px;letter-spacing:1px;opacity:.6;margin-top:5px}.mode-indicator{position:absolute;left:13px;top:17px;width:6px;height:6px;border:1px solid #86968a;border-radius:50%}.mode-btn.active,.mode-btn.selected,.mode-btn[aria-pressed=true]{color:var(--white);background:rgba(215,252,112,.08)}.mode-btn.active .mode-indicator,.mode-btn.selected .mode-indicator,.mode-btn[aria-pressed=true] .mode-indicator{background:var(--lime);border-color:var(--lime);box-shadow:0 0 8px #d7fc7044}.start-button{width:360px;max-width:100%;height:61px;display:flex;align-items:center;justify-content:space-between;background:var(--lime);color:#182316;padding:0 22px;font-size:13px;letter-spacing:1.4px;font-weight:800;transition:background .15s,transform .15s;box-shadow:0 4px 22px #0b1e1922}.button-arrow{font-size:31px;line-height:1;font-weight:400}.start-caption{margin-top:14px;display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:8px;letter-spacing:1px;color:#aab8a9}.tiny-square{width:4px;height:4px;background:#95a98a}.caption-separator{opacity:.5;padding:0 4px}.car-nameplate{position:absolute;bottom:157px;right:46px;text-align:right;text-shadow:0 2px 16px #05120f99}.car-edition{display:block;font-size:8px;font-weight:600;letter-spacing:2px;opacity:.7;margin-bottom:9px}.car-name{font-family:var(--display);font-size:17px;letter-spacing:3px;font-weight:700}.car-name span{display:block;font-size:39px;letter-spacing:-.5px;font-style:italic;font-weight:700;line-height:1.1}.car-paint{font-family:var(--mono);font-size:7px;letter-spacing:.7px;margin-top:10px;opacity:.8}.car-paint span{display:inline-block;vertical-align:middle;width:7px;height:7px;background:var(--lime);margin-right:5px}.car-paint b{font-weight:400;opacity:.4;padding:0 5px}.menu-footer{border-top:1px solid var(--line);padding-top:21px;display:flex;justify-content:space-between;align-items:center;gap:25px;min-height:83px}.car-specs{display:flex;gap:38px;flex-shrink:0}.spec strong{font-family:var(--display);font-size:32px;font-weight:600;line-height:1;letter-spacing:-.5px}.spec strong span{font-family:var(--sans);font-weight:500;font-size:10px;letter-spacing:.3px;margin-left:5px;opacity:.65}.spec small{display:block;font-size:7px;letter-spacing:1.2px;opacity:.58;margin-top:9px}.control-guide{display:flex;flex-wrap:wrap;gap:9px 14px;justify-content:flex-end;max-width:440px;color:#b5bfb4;font-size:7px;letter-spacing:.75px;line-height:1.8}.control-guide span{white-space:nowrap}.control-guide kbd{margin-right:4px}kbd{font-family:var(--mono);font-size:8px;letter-spacing:0;display:inline-block;line-height:1.3;padding:4px 5px;border:1px solid #b8cbb044;border-bottom-color:#b8cbb066;color:#d7e0d3;background:#0b201c30;border-radius:2px}
.hud{position:fixed;inset:0;z-index:4;pointer-events:none;text-shadow:0 2px 12px rgba(0,15,12,.7);background:linear-gradient(180deg,rgba(2,14,15,.32),transparent 22%,transparent 70%,rgba(2,14,15,.22))}.race-top-left{position:absolute;top:30px;left:36px;display:flex;align-items:center;gap:24px}.hud-label{font-size:9px;letter-spacing:1.6px;font-weight:600}.race-stat .hud-label{display:block;margin-bottom:5px}.race-stat strong{font-family:var(--display);font-style:italic;font-weight:700;font-size:47px;line-height:1;letter-spacing:-.8px}.position-stat strong{color:var(--lime)}.stat-total{font-family:var(--display);font-size:21px;font-style:italic;color:#e6ebdfaa;margin-left:7px}.hud-divider{height:40px;width:1px;background:#e5efde55}.hud-brand{position:absolute;top:31px;left:50%;transform:translateX(-50%);font-family:var(--display);font-size:21px;letter-spacing:2px;font-weight:600}.hud-brand span{color:var(--lime);margin:0 5px}.race-top-right{position:absolute;top:29px;right:36px;width:206px}.timer-row{display:flex;align-items:center;justify-content:space-between;gap:15px}.timer-row strong{font-family:var(--mono);font-weight:400;font-size:17px;font-variant-numeric:tabular-nums;letter-spacing:-1px}.best-row{margin-top:10px;opacity:.75}.best-row .hud-label{font-size:7px;letter-spacing:1px}.best-row strong{font-size:13px;letter-spacing:0}.hud-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:15px}.icon-btn{pointer-events:auto;min-width:32px;min-height:29px;padding:5px 9px;border:1px solid #e5efde44;background:rgba(5,18,17,.25);backdrop-filter:blur(6px);font-size:9px;letter-spacing:1px;font-weight:700}.icon-btn:last-child{font-size:14px;padding-top:3px}.race-message{position:absolute;top:19%;left:50%;transform:translateX(-50%);font-family:var(--display);font-size:24px;font-style:italic;letter-spacing:1px;color:var(--lime);text-align:center;white-space:nowrap}.countdown{position:absolute;left:50%;top:41%;transform:translate(-50%,-50%);font-family:var(--display);font-size:140px;font-weight:800;font-style:italic;line-height:1;letter-spacing:-4px;color:var(--lime);text-shadow:0 4px 40px #0c211288}.track-display{position:absolute;left:35px;bottom:30px;width:180px}.track-heading{font-size:9px;font-weight:700;letter-spacing:1.3px;display:flex;align-items:center;gap:8px}.track-heading>span:last-child{margin-left:auto;color:#dfe7dc66;font-family:var(--mono);font-size:9px}.track-heading .live-dot{height:4px;width:4px}#minimap{display:block;width:180px;height:180px;margin-top:4px;opacity:.95}.track-caption{font-size:7px;letter-spacing:2px;opacity:.7;margin-top:2px}.speed-display{position:absolute;bottom:34px;right:38px;width:238px}.speed-main{display:flex;justify-content:flex-end;align-items:center;gap:14px}.gear-block{display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:8px}.gear-block span{font-size:7px;letter-spacing:1.6px;opacity:.7}.gear-block strong{font-family:var(--display);font-style:italic;font-size:33px;line-height:1;font-weight:600;color:var(--lime);border:1px solid #f0f4df55;min-width:35px;text-align:center;padding:2px 4px 4px}.speed-number{display:flex;flex-direction:column;align-items:flex-end}.speed-number strong{font-family:var(--display);font-style:italic;font-weight:700;font-size:100px;line-height:.88;letter-spacing:-3px;font-variant-numeric:tabular-nums;min-width:157px;text-align:right}.speed-number>span{font-size:9px;letter-spacing:2px;margin-top:8px;padding-right:3px;opacity:.85}.rev-lines{display:flex;gap:4px;margin-top:16px}.rev-lines i{height:6px;flex:1;background:#ecf0e69c;transform:skew(-15deg)}.rev-lines i:nth-child(n+9){background:var(--lime)}.rev-lines i:nth-child(n+12){background:#f49b74}.boost-label{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;font-weight:700;margin-top:12px;margin-bottom:7px}.boost-label span:last-child{font-size:7px;opacity:.75}.boost-label b{color:var(--lime);font-size:10px;margin-left:4px}.boost-track{height:4px;background:#ffffff33;overflow:hidden}.boost-track>div{height:100%;width:100%;background:var(--lime);transition:width .08s linear;box-shadow:0 0 12px #d7fc7099}.race-help{position:absolute;bottom:27px;left:50%;transform:translateX(-50%);font-size:7px;letter-spacing:1px;color:#e1e7dbb3;white-space:nowrap}.race-help kbd{font-size:7px;padding:2px 4px;margin-right:3px}.race-help span{margin:0 8px;opacity:.5}
.modal-overlay{position:fixed;z-index:20;inset:0;display:grid;place-items:center;background:rgba(7,19,17,.7);backdrop-filter:blur(14px);padding:28px}.modal-card{width:370px;max-width:100%;text-align:left}.modal-card h2{font-family:var(--display);font-weight:800;font-style:italic;font-size:83px;line-height:.82;letter-spacing:-1.5px;margin:24px 0 20px}.modal-card h2 span{color:var(--lime)}.modal-card p{font-size:14px;line-height:1.6;color:#c1cec0;margin-bottom:29px}.modal-card .start-button{width:100%}.secondary-button{width:100%;height:49px;margin-top:11px;background:#d7fc7009;border:1px solid #d7fc7044;font-size:10px;letter-spacing:1.5px;font-weight:700;display:flex;align-items:center;justify-content:space-between;padding:0 19px}.secondary-button span{font-size:21px;color:var(--lime)}.text-button{display:block;margin:19px auto 0;padding:8px 0;color:#c1cec0;background:none;font-size:9px;letter-spacing:1.4px;border-bottom:1px solid #c1cec02a}.finish-card{width:440px}.finish-card h2{font-size:76px}.result-stats{display:grid;grid-template-columns:.7fr 1.2fr 1.2fr;padding:22px 0 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:27px 0 25px;gap:15px}.result-stats span{display:block;font-size:8px;letter-spacing:1.4px;margin-bottom:9px;color:#d9e5d2aa}.result-stats strong{font-family:var(--mono);font-size:17px;font-weight:400;letter-spacing:-1px}.result-stats>div:first-child strong{font-family:var(--display);font-style:italic;color:var(--lime);font-size:26px;line-height:.9}
.loading-screen{position:fixed;inset:0;z-index:100;background:#0c1916;display:flex;align-items:center;justify-content:center;flex-direction:column}.loading-logo{font-family:var(--display);font-size:48px;font-weight:800;font-style:italic;letter-spacing:1px}.loading-logo span{color:var(--lime);margin:0 6px}.loading-track{width:190px;height:2px;background:#d7fc7020;margin-top:25px;overflow:hidden}.loading-track>span{display:block;width:40%;height:100%;background:var(--lime);animation:warmup 1.5s ease-in-out infinite}.loading-screen p{font-family:var(--mono);font-size:8px;letter-spacing:1.7px;margin-top:17px;color:#c4d5bc}.loading-screen small{position:absolute;bottom:38px;font-size:8px;letter-spacing:3px;color:#6b8779}@keyframes warmup{0%{transform:translateX(-110%)}100%{transform:translateX(370%)}}.touch-controls{position:fixed;inset:0;z-index:8;pointer-events:none;display:none;align-items:flex-end;justify-content:space-between;padding:20px max(20px,env(safe-area-inset-right)) 22px max(20px,env(safe-area-inset-left));gap:12px}.touch-steering,.touch-pedals{display:flex;align-items:flex-end;gap:10px}.touch-controls button{pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;width:58px;height:58px;display:flex;align-items:center;justify-content:center;background:#0a1e18a8;border:1px solid #ebf2e554;backdrop-filter:blur(8px);font-size:11px;font-weight:700;letter-spacing:.8px;border-radius:4px}.touch-steering button{font-family:Arial,sans-serif;font-size:47px;font-weight:400}.touch-controls .touch-accelerate{background:#d7fc70d9;color:#11200f;border-color:#d7fc70;width:67px;height:74px}.touch-controls .touch-boost{position:absolute;bottom:105px;right:max(20px,env(safe-area-inset-right));width:102px;height:37px;color:var(--lime);font-size:9px}.touch-controls button.pressed{background:#d7fc70;color:#11200f}
@media(min-width:1600px){.menu-screen{padding:44px 64px 36px}.menu-content{max-width:550px;width:45%}.mode-selector,.start-button{width:410px}.car-nameplate{right:67px;bottom:173px}.intro{font-size:16px}.eyebrow{font-size:11px}.menu-footer{min-height:94px}.car-specs{gap:55px}.spec strong{font-size:37px}.control-guide{font-size:8px;max-width:520px}.car-name span{font-size:46px}}
@media(max-width:1100px){.menu-screen{padding:26px 30px 20px}.menu-content{width:49%;padding-top:20px}h1{font-size:clamp(74px,9.5vw,110px)}.intro{font-size:13px;margin-bottom:19px}.car-nameplate{right:30px;bottom:144px}.car-specs{gap:24px}.spec small{font-size:6px;letter-spacing:.8px}.control-guide{max-width:330px;font-size:6px;gap:5px 10px}.menu-footer{min-height:78px;padding-top:17px}.brand-name{font-size:23px}.start-caption{font-size:7px;letter-spacing:.8px}.circuit-tag{font-size:8px}.car-paint{font-size:6px}.race-top-left{top:25px;left:25px}.race-top-right{top:25px;right:25px}.track-display{left:25px;bottom:25px}.speed-display{right:25px;bottom:25px}}
@media(max-height:720px) and (min-width:769px){.menu-screen{padding-top:22px;padding-bottom:16px}.menu-content{padding-top:10px}h1{font-size:clamp(76px,8vw,106px);margin-top:17px;margin-bottom:15px}.intro{font-size:12px;line-height:1.45;margin-bottom:17px}.mode-btn{min-height:49px;padding-top:10px;padding-bottom:9px}.mode-indicator{top:14px}.start-button{height:53px}.start-caption{margin-top:10px}.menu-footer{min-height:65px;padding-top:13px}.spec strong{font-size:28px}.spec small{margin-top:6px}.car-nameplate{bottom:123px}.car-name span{font-size:34px}.brand-name{font-size:22px}.brand-mark{font-size:34px}.brand-mark span{font-size:25px}.track-display{width:150px}#minimap{height:150px;width:150px}.speed-number strong{font-size:86px}.speed-display{width:214px}.modal-card h2{font-size:70px}.hud-brand{top:26px}}
@media(max-width:768px){.menu-screen{padding:23px 25px 22px;background:linear-gradient(90deg,rgba(8,20,18,.80),rgba(8,20,18,.3) 68%,rgba(8,20,18,.03)),linear-gradient(0deg,rgba(7,17,15,.94),transparent 55%)}.brand-name{font-size:21px}.brand-name small{font-size:6px;letter-spacing:1.5px}.brand-mark{font-size:31px;width:37px}.brand-mark span{font-size:25px}.circuit-tag{font-size:7px;letter-spacing:.6px;gap:6px}.circuit-tag b{margin:0 3px}.tag-line{font-size:6px;letter-spacing:.7px}.menu-content{width:100%;max-width:360px;margin-top:30px;margin-bottom:auto;padding-top:0}.eyebrow{font-size:8px;letter-spacing:1.4px;gap:8px}.short-line{width:18px}h1{font-size:88px;line-height:.79;margin:20px 0 15px;letter-spacing:-2px}.intro{font-size:12px;margin-bottom:21px}.mode-selector,.start-button{width:316px}.mode-btn{font-size:9px;min-height:49px;letter-spacing:.9px;padding-left:27px}.mode-btn small{font-size:6px}.start-button{height:55px;font-size:11px;padding:0 17px}.start-caption{font-size:6px;gap:5px}.car-nameplate{bottom:124px;right:25px}.car-edition{font-size:6px;letter-spacing:1.5px;margin-bottom:6px}.car-name{font-size:11px;letter-spacing:2px}.car-name span{font-size:28px}.car-paint{font-size:6px;max-width:200px;line-height:1.8}.menu-footer{min-height:71px;padding-top:15px;gap:15px}.car-specs{gap:27px}.spec strong{font-size:27px}.spec strong span{font-size:8px}.spec small{font-size:5px;letter-spacing:.7px}.control-guide{display:none}.race-top-left{left:20px;top:22px;gap:14px}.race-stat strong{font-size:36px}.race-stat .hud-label{font-size:7px;letter-spacing:1.3px}.stat-total{font-size:17px;margin-left:5px}.hud-divider{height:32px}.hud-brand{display:none}.race-top-right{top:23px;right:20px;width:163px}.timer-row strong{font-size:14px}.timer-row .hud-label{font-size:7px;letter-spacing:.7px}.best-row strong{font-size:10px}.best-row .hud-label{font-size:6px}.hud-actions{margin-top:12px}.icon-btn{font-size:8px;min-height:28px}.track-display{left:20px;bottom:27px;width:126px}#minimap{width:126px;height:126px}.track-heading{font-size:7px;letter-spacing:.8px}.track-caption{font-size:5px;letter-spacing:1.3px}.speed-display{right:21px;bottom:28px;width:174px}.speed-number strong{font-size:75px;min-width:117px;letter-spacing:-2px}.speed-main{gap:9px}.gear-block strong{font-size:26px;min-width:28px}.gear-block span{font-size:6px}.speed-number>span{font-size:7px;letter-spacing:1.7px;margin-top:6px}.rev-lines{gap:3px;margin-top:12px}.rev-lines i{height:4px}.boost-label{font-size:6px;margin-top:10px;margin-bottom:6px}.boost-label span:last-child{font-size:6px}.race-help{display:none}.race-message{font-size:21px;top:23%}.countdown{font-size:110px}.modal-card h2{font-size:74px}.finish-card h2{font-size:67px}.result-stats strong{font-size:14px}.result-stats{gap:11px}}
@media(pointer:coarse){.touch-controls{display:flex}.hud .track-display{bottom:99px}.hud .speed-display{bottom:161px}.track-caption{display:none}.control-guide{display:none}.race-help{display:none}}
@media(max-width:480px){.menu-screen{padding:22px 22px}.menu-content{margin-top:41px}h1{font-size:85px}.circuit-tag{max-width:148px}.tag-line{font-size:5px}.menu-footer{min-height:72px}.car-nameplate{bottom:119px;right:23px}.car-specs{gap:25px}.spec strong{font-size:26px}.spec small{font-size:5px}.race-top-left{left:16px;top:18px;gap:10px}.race-stat strong{font-size:33px}.race-top-right{right:16px;top:19px;width:150px}.timer-row strong{font-size:13px}.timer-row{gap:7px}.best-row{margin-top:7px}.best-row strong{font-size:9px}.hud-divider{height:30px}.hud-actions{margin-top:9px}.track-display{left:16px;width:115px}#minimap{width:115px;height:115px}.speed-display{right:17px;width:150px}.speed-number strong{font-size:67px;min-width:102px}.gear-block strong{font-size:23px;min-width:25px}.gear-block{gap:5px}.boost-label{font-size:6px}.modal-card h2{font-size:70px}.finish-card h2{font-size:59px}.result-stats strong{font-size:12px}.result-stats span{font-size:7px}.touch-controls{padding-left:16px;padding-right:16px;gap:9px}.touch-controls button{width:51px;height:55px}.touch-steering,.touch-pedals{gap:8px}.touch-controls .touch-accelerate{width:59px;height:69px}.touch-controls .touch-boost{right:16px}.hud .speed-display{bottom:158px}.hud .track-display{bottom:99px}}
@media(max-height:650px) and (max-width:768px) and (orientation:portrait){.menu-content{margin-top:24px}h1{font-size:70px;margin-top:15px}.intro{font-size:11px;margin-bottom:15px}.mode-btn{min-height:44px;padding-top:8px;padding-bottom:8px}.mode-indicator{top:12px}.mode-btn small{margin-top:4px}.start-button{height:49px}.car-nameplate{display:none}.menu-footer{min-height:60px}.start-caption{margin-top:9px}}
@media(max-height:500px) and (orientation:landscape){.menu-screen{padding:18px 24px 14px}.brand-name{font-size:18px}.brand-name small{font-size:5px;margin-top:5px}.brand-mark{font-size:27px;width:32px}.brand-mark span{font-size:21px}.menu-content{width:49%;max-width:340px;margin-top:auto;margin-bottom:auto;padding-top:13px}.eyebrow{font-size:7px}h1{font-size:64px;margin:12px 0 10px;letter-spacing:-1px}.intro{font-size:10px;line-height:1.4;margin-bottom:12px}.mode-selector{margin-bottom:8px;width:287px}.mode-btn{min-height:39px;font-size:8px;padding:7px 10px 7px 24px}.mode-indicator{top:11px;left:11px;width:5px;height:5px}.mode-btn small{font-size:5px;margin-top:3px}.start-button{height:44px;width:287px;font-size:10px}.start-caption{margin-top:8px;font-size:6px}.menu-footer{display:none}.car-nameplate{bottom:26px;right:26px}.car-name span{font-size:28px}.car-paint{font-size:5px}.menu-header .circuit-tag{font-size:7px}.modal-card{width:330px}.modal-card h2{font-size:55px;margin-top:17px;margin-bottom:15px}.modal-card p{font-size:12px;margin-bottom:16px}.modal-card .start-button{height:44px}.secondary-button{height:39px;font-size:8px}.text-button{margin-top:10px;font-size:8px}.result-stats{margin:17px 0;padding:16px 0}.finish-card h2{font-size:51px}.race-top-left{top:16px;left:21px}.race-stat strong{font-size:32px}.race-top-right{top:16px;right:21px}.timer-row strong{font-size:12px}.hud-brand{font-size:18px;top:17px}.race-message{top:25%;font-size:20px}.countdown{font-size:91px}.track-display{width:104px;bottom:20px}#minimap{width:104px;height:104px}.track-heading{font-size:6px}.track-caption{display:none}.speed-display{width:150px;bottom:20px}.speed-number strong{font-size:62px;min-width:93px}.gear-block strong{font-size:22px}.gear-block span{font-size:5px}.speed-number>span{font-size:6px}.rev-lines{margin-top:8px}.boost-label{font-size:6px;margin-top:8px}.touch-controls{padding-bottom:15px}.touch-controls button{height:48px;width:49px}.touch-controls .touch-accelerate{height:61px;width:59px}.touch-controls .touch-boost{bottom:86px;height:31px;width:95px}.hud .track-display{bottom:77px;left:23px}.hud .speed-display{bottom:130px;right:23px}.hud-actions{margin-top:8px}.icon-btn{min-height:24px}.track-heading{display:none}.touch-controls .touch-steering{gap:9px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.loading-track>span{animation-duration:3s}.boost-track>div{transition:none}}
/* Keep the driving controls available in narrow browser windows too. */
@media(max-width:768px){.touch-controls{display:flex}.hud .track-display{bottom:100px}.hud .speed-display{bottom:158px}}
.boosting .screen-vignette{background:radial-gradient(ellipse at center,transparent 40%,rgba(176,232,101,.12) 100%)}
#webgl-error:not(.hidden){text-align:center;align-content:center;gap:18px}#webgl-error h2{font-family:var(--display);font-size:42px;margin:0}#webgl-error p{max-width:500px;margin:auto}#webgl-error button{background:var(--lime);color:var(--ink);padding:17px 35px;margin:auto}
/* Keep the car visible on portrait displays; shade the menu text and footer only. */
@media(max-width:768px) and (orientation:portrait){.menu-screen{background:linear-gradient(180deg,rgba(5,17,18,.65),rgba(5,17,18,.32) 28%,transparent 49%),linear-gradient(0deg,rgba(5,17,18,.87),transparent 19%)}}
.asset-credit{color:var(--white);font:8px var(--mono);letter-spacing:1px;text-decoration:none;opacity:.7;display:inline-block;margin-top:10px;border-bottom:1px solid #ffffff44;padding-bottom:3px}.asset-credit:hover{opacity:1}
