@import"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;500;600;700;800&family=DM+Sans:wght@400;500;600;700&display=swap";:root{font-family:DM Sans,sans-serif;color:#f3eddf;background:#192824;font-synthesis:none;--cream:#f3eddf;--red:#db4935;--muted:#abb5a8}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #f4d492;outline-offset:5px}button{color:inherit}#world,#vignette{position:fixed;inset:0;width:100%;height:100%}#vignette{pointer-events:none;background:linear-gradient(90deg,rgba(14,28,24,.97),rgba(14,28,24,.77) 28%,transparent 65%),linear-gradient(0deg,#172622 0%,transparent 42%);opacity:1;transition:opacity .5s}#masthead{position:absolute;top:0;left:0;right:0;padding:30px 4.1%;display:flex;justify-content:space-between;align-items:center;z-index:3}.brand{display:flex;align-items:center;gap:18px;text-decoration:none;color:inherit}.brand-mark{font-family:Barlow Condensed,Impact,sans-serif;font-size:48px;font-weight:700;line-height:1;letter-spacing:-2px}.brand-mark span{color:#db4935}.brand-description{font-size:9px;line-height:1.6;letter-spacing:2px;border-left:1px solid #617064;padding-left:18px}.header-right{display:flex;align-items:center;gap:36px}.edition{font-size:9px;letter-spacing:2px;color:#c0c5b7}.icon-button{border:1px solid #ffffff30;background:#18292360;padding:11px 14px;font-size:9px;letter-spacing:1.3px}.icon-button span{color:#e6b78e;margin-left:8px}#menu{position:absolute;inset:0;padding:145px 4.1% 24px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}#menu button{pointer-events:auto}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:600;display:flex;align-items:center;gap:10px}.eyebrow i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--red)}h1{font-family:Barlow Condensed,Impact,sans-serif;font-size:clamp(72px,7.3vw,118px);font-weight:600;letter-spacing:-1.5px;line-height:.95;margin:24px 0 20px;text-transform:uppercase}h1 em{font-family:Georgia,serif;font-size:.73em;text-transform:none;letter-spacing:-4px;font-weight:400;color:#e2be8a}p{font-size:12px;line-height:1.8;color:#bec4b5}.car-spec{margin-top:26px}.spec-label{font-size:8px;letter-spacing:2px;color:#aab3a4}.car-spec strong{display:block;font-family:Barlow Condensed,sans-serif;font-size:25px;font-weight:500;margin:5px 0 8px}.car-spec strong span{color:var(--red);margin:0 6px}.car-spec div{font-size:8px;letter-spacing:1.5px;color:#a5afa1}.car-spec b{color:var(--red);margin:0 8px}.car-caption{position:absolute;right:6%;top:62%;font-size:9px;letter-spacing:1.8px;display:flex;gap:15px;line-height:2}.car-caption b{font-size:10px;font-weight:400;letter-spacing:0;color:#b8c0b0}.hairline{width:50px;height:1px;background:#c6bd9a;margin-top:8px}.race-setup{width:100%;padding-top:22px}.section-label{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.8px;margin-bottom:14px}.section-label span:last-child{color:#a5afa1}.setup-row{display:flex;gap:20px}.circuits{display:flex;flex:1;gap:10px}.circuit{display:flex;align-items:center;gap:20px;flex:1;text-align:left;padding:15px 20px;min-height:94px;border:1px solid #bac6ad30;background:#1a2b2699;transition:background .2s,border-color .2s}.circuit:hover{background:#334138}.circuit.selected{border-color:#d7bd8c;background:#d7bd8c13}.circuit svg{width:76px;height:55px;fill:none;stroke:#8e9d8b;stroke-width:2.4;flex-shrink:0}.circuit.selected svg{stroke:#e1c49a}.circuit small{display:block;font-size:8px;color:#a4af9f;letter-spacing:1.6px;margin-bottom:5px}.circuit strong{font-family:Barlow Condensed,sans-serif;font-size:26px;font-weight:500;letter-spacing:.4px}.circuit .circuit-detail{font-size:8px;color:#aab6a4;margin-top:5px}.start-button{display:flex;justify-content:space-between;align-items:center;gap:45px;background:var(--red);border:0;padding:25px 30px;font-size:12px;font-weight:700;letter-spacing:2px;min-width:236px;transition:background .2s,transform .2s}.start-button:hover{background:#ef5841;transform:translateY(-2px)}.start-button span:last-child{font-size:24px}.setup-footer{display:flex;justify-content:space-between;align-items:center;margin-top:19px;color:#aab3a4;font-size:9px}.controls-hint{display:flex;gap:24px;align-items:center}.controls-hint>span{display:flex;align-items:center;gap:5px}kbd{font:9px DM Sans,sans-serif;min-width:20px;height:20px;padding:2px 5px;border:1px solid #d8dfc83b;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;color:#d8decd}.footnote{font-size:8px;color:#8d9b89}[hidden]{display:none!important}body.racing #vignette{opacity:0}body.racing #masthead{padding:22px 3%}body.racing .brand-description,body.racing .edition{display:none}body.racing .brand-mark{font-size:35px}#hud{position:fixed;inset:0;pointer-events:none;text-shadow:0 2px 8px #0006}.race-top{position:absolute;left:13%;right:13%;top:23px;display:flex;justify-content:space-between}.race-top small{font-size:9px;letter-spacing:2px;color:#e7e9d8}.race-place strong{display:block;font:600 52px Barlow Condensed,sans-serif;line-height:1.05}.race-place strong span{font-size:22px;color:#d1d5c5;margin-left:8px}.race-lap{text-align:center}.race-lap strong{display:block;font:500 32px Barlow Condensed,sans-serif;margin-top:5px}.race-lap i{font-size:22px;font-style:normal;color:#c3cbb9;margin-left:6px}.race-times{text-align:right}.race-times strong{display:block;font:500 29px Barlow Condensed,sans-serif;font-variant-numeric:tabular-nums}.race-times>span{font-size:9px;letter-spacing:1px;color:#d1d7c7}.race-times b{font-weight:400;margin-left:8px}.race-bottom{position:absolute;bottom:30px;left:3%;right:3%;display:flex;justify-content:space-between;align-items:end}.map-panel{background:#142821aa;border:1px solid #dae5c822;padding:12px 16px 10px;border-radius:3px}.map-panel canvas{width:180px;height:135px;display:block}.map-panel>span{font-size:8px;letter-spacing:1.5px;display:block;text-align:center}.map-panel i{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--red);margin-right:3px}.map-panel b{color:#ddd5bc;margin:0 8px 0 16px}.speedometer{background:#132720c9;padding:20px 25px;min-width:225px}.speed-line{display:flex;align-items:center;gap:15px}.speed-line>span{font:500 28px Barlow Condensed;border:1px solid #a7bba455;padding:0 10px;color:#e8c28c}.speed-line strong{font:500 70px Barlow Condensed;line-height:1;font-variant-numeric:tabular-nums;width:93px;text-align:right}.speed-line small{font-size:8px;letter-spacing:1px;align-self:end;margin-bottom:9px}.rpm{height:3px;background:#c7d0b22b;margin:13px 0}.rpm i{display:block;height:100%;background:#dc553c;width:0;transition:width .08s}.speed-meta{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;color:#aabda6}.driving-hints{display:flex;gap:20px;font-size:9px;color:#fff}.driving-hints kbd{margin-right:4px;background:#18302588}#countdown{position:absolute;inset:30% 0 auto;text-align:center;font:600 140px Barlow Condensed;color:#f5e5c6}#race-message{position:absolute;top:145px;text-align:center;width:100%;font-size:11px;letter-spacing:2px;color:#fff1c9}#overlay{position:fixed;inset:0;z-index:5;background:#0c1d19c9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center}.modal{width:min(440px,90vw);padding:40px;border:1px solid #e7dab737;background:#1a2b25}.modal h2{font:500 55px/.95 Barlow Condensed;margin:24px 0 18px}.modal .start-button{width:100%;margin-top:28px;padding:20px;font-size:10px}.secondary-button{width:100%;padding:17px;margin-top:12px;background:transparent;border:1px solid #ddd0b844;font-size:10px;letter-spacing:1.5px}.text-button{width:100%;padding:18px 0 0;background:transparent;border:0;font-size:9px;letter-spacing:1.5px;color:#b4bcaa}#results{font-size:11px;line-height:2;color:#d9dfca}.result-row{display:flex;justify-content:space-between;border-bottom:1px solid #ffffff15;padding:2px 0}.result-row.you{color:#edb38e}#loading{position:fixed;inset:0;z-index:9;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#192824}#touch-controls{display:none;position:fixed;left:14px;right:14px;bottom:15px;justify-content:space-between;pointer-events:none}#touch-controls>div{display:flex;gap:8px}#touch-controls button{pointer-events:auto;touch-action:none;width:54px;height:54px;border:1px solid #f3eddf77;background:#153328b0;font-size:24px;border-radius:6px}@media(min-width:1500px){#menu{padding-top:17vh}.race-setup{margin-bottom:14px}}@media(max-height:780px)and (min-width:901px){#menu{padding-top:118px}h1{font-size:83px;margin-top:18px}.car-spec{margin-top:15px}.intro p{margin:10px 0}.circuit{min-height:80px;padding:10px 16px}.car-caption{top:58%}}@media(max-width:1100px){.circuit{gap:10px;padding:12px}.circuit svg{width:54px}.start-button{min-width:190px;padding:20px}.controls-hint{gap:14px}.footnote,.edition{display:none}}@media(max-width:760px){#masthead{padding:22px}.brand-mark{font-size:40px}.brand-description{font-size:7px}.header-right{gap:0}#menu{padding:115px 22px 20px}h1{font-size:70px;line-height:.9;margin:17px 0}h1 em{letter-spacing:-2px}.intro p{font-size:10px;max-width:260px}.eyebrow{font-size:8px}.car-spec,.car-caption{display:none}.setup-row{flex-direction:column;gap:12px}.circuit{padding:10px 8px;min-width:0;display:block}.circuit svg{width:60px;height:35px}.circuit small{font-size:7px}.circuit strong{font-size:22px}.circuit-detail{display:none}.section-label{font-size:7px}.start-button{padding:16px 22px;width:100%;font-size:11px}.setup-footer{margin-top:12px}.controls-hint{gap:9px;font-size:7px;flex-wrap:wrap}kbd{font-size:8px;min-width:17px;height:17px}.race-top{left:24%;right:22%;top:24px}.race-place strong{font-size:35px}.race-top small{font-size:7px}.race-lap strong{font-size:24px}.race-times{position:fixed;right:22px;top:100px}.race-times strong{font-size:24px}.driving-hints{display:none}.race-bottom{bottom:85px}.map-panel{padding:5px}.map-panel canvas{width:115px;height:87px}.map-panel>span{font-size:6px}.speedometer{min-width:160px;padding:12px}.speed-line{gap:6px}.speed-line strong{font-size:48px;width:65px}.speed-line>span{font-size:20px}.speed-meta{font-size:6px}.race-bottom{left:15px;right:15px}body.racing #touch-controls{display:flex}#race-message{top:160px;font-size:9px}#countdown{font-size:100px}}@media(max-height:660px)and (max-width:760px){#menu{padding-top:95px}h1{font-size:52px}.intro p{display:none}.circuit svg{display:none}.race-setup{padding-top:5px}}#pause-button{display:none}body.racing #pause-button{display:block}body.racing .header-right{gap:8px}body.racing .race-top{right:21%}.icon-button{background:#182923a6}@media(max-width:760px){body.racing .race-top{left:24%;right:27%}.race-lap small{font-size:6px}.race-times{top:95px}body.racing .icon-button{font-size:7px;padding:9px}body.racing .brand-mark{font-size:30px}}@media(max-width:760px){body.racing .race-top{top:87px;left:22px;right:22px}.race-times{top:140px}.race-lap{text-align:right}.race-lap small{font-size:8px}#race-message{top:199px}.intro p{max-width:280px}.icon-button{white-space:nowrap}.brand-description{padding-left:12px;letter-spacing:1.5px}.brand{gap:12px}}@media(min-width:761px){body.racing .race-top{right:26%}}.control-picker{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:13px;border-top:1px solid #d2d9bf25;gap:10px}.control-picker>span{font-size:8px;letter-spacing:1.8px;color:#aab9a5}.control-picker>div{display:flex;gap:7px}.control-picker button{background:#192d27b3;border:1px solid #dae0cb35;padding:9px 13px;font-size:9px;letter-spacing:1px;color:#b7c2b0}.control-picker button[aria-pressed=true]{background:#d7bd8c1a;color:#eed3a4;border-color:#d7bd8c}.setup-footer{margin-top:10px}.pause-controls{display:flex;flex-wrap:wrap;gap:10px;font-size:10px;color:#d1dbc6}.pause-controls>span{display:flex;gap:4px;align-items:center}#touch-controls button:active{background:#aa422fe8;border-color:#f4dcaa}@media(max-width:760px){.control-picker{margin-top:10px;padding-top:9px;gap:5px}.control-picker>span{font-size:6px;letter-spacing:1px}.control-picker button{padding:8px;font-size:7px;letter-spacing:.5px}.control-picker>div{gap:5px}.controls-hint{gap:8px}.race-setup{padding-top:8px}.circuit svg{height:27px}.circuit{padding:9px 7px}.circuit strong{font-size:20px}h1{font-size:64px}}@media(max-height:700px){.control-picker{margin-top:8px;padding-top:7px}.control-picker button{padding:6px 8px}#menu{padding-bottom:15px}.intro p{display:none}.car-spec{margin-top:9px}}#touch-controls .touch-brake{font-size:10px;letter-spacing:.5px}.control-picker button:hover{border-color:#ebd3a6;color:#ebd3a6}.difficulty-picker{display:grid;grid-template-columns:auto minmax(170px,240px) 1fr;align-items:center;gap:12px;margin-top:13px;padding-top:12px;border-top:1px solid #d2d9bf25;pointer-events:auto}.difficulty-picker label{font-size:8px;letter-spacing:1.5px;color:#aab9a5}.difficulty-picker select{width:100%;min-width:0;padding:9px 11px;background:#21372e;border:1px solid #d7bd8c88;border-radius:0;color:#eed3a4;font:11px DM Sans,sans-serif;cursor:pointer;color-scheme:dark}.difficulty-picker select:focus-visible{outline:2px solid #f4d492;outline-offset:3px}.difficulty-picker p{font-size:10px;line-height:1.5;margin:0;color:#c3cbb9}.modal-difficulty{grid-template-columns:1fr 1.5fr;margin-top:17px}.modal-difficulty p,.modal-difficulty small{grid-column:1/-1;font-size:10px}.modal-difficulty small{color:#aab9a5;font-size:9px}.modal{max-height:calc(100dvh - 32px);overflow-y:auto}#grid-level{color:inherit}@media(min-width:761px){#car-hero{bottom:335px}}@media(max-height:780px)and (min-width:761px){#car-hero{bottom:315px}.difficulty-picker{margin-top:8px;padding-top:8px}}@media(max-width:760px){.difficulty-picker{grid-template-columns:auto 1fr;gap:6px 12px;margin-top:9px;padding-top:9px}.difficulty-picker label{font-size:7px;letter-spacing:1px}.difficulty-picker select{padding:7px 9px;font-size:10px}.difficulty-picker p{grid-column:1/-1;font-size:9px}#menu{min-height:850px}#car-hero{bottom:365px}}@media(max-width:760px)and (max-height:760px){#menu{min-height:780px}#car-hero{top:196px;bottom:360px}}@media(max-height:640px)and (min-width:761px){body:not(.racing){overflow-y:auto}#menu{min-height:780px}#car-hero{top:110px;bottom:340px}}@media(max-width:760px)and (max-height:860px){body:not(.racing){overflow-y:auto}}@media(min-width:761px){#menu #car-hero{bottom:335px}}@media(max-width:760px){#menu #car-hero{top:260px;bottom:375px;min-height:200px}#menu .intro h1{font-size:40px}#menu .intro h1 br:first-child{display:initial}#menu .hero-viewport{min-height:100px}}@media(max-width:760px)and (max-height:860px){body #menu{min-height:900px}}@media(max-height:640px)and (min-width:761px){body #menu{min-height:780px}#menu #car-hero{top:110px;bottom:340px}}@media(max-width:760px){#menu #car-hero{bottom:395px}body #menu .intro h1{font-size:40px}body #menu .intro h1 br:first-child{display:initial}}#arcade-bar{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;position:static;pointer-events:auto;margin-bottom:18px;padding:0 0 14px;border-bottom:1px solid #d2d9bf25;font-size:12px;letter-spacing:.04em}#arcade-bar a,#arcade-result a{color:#edcf9e;text-decoration:none;pointer-events:auto}#arcade-bar a:hover,#arcade-result a:hover{text-decoration:underline;text-underline-offset:4px}#arcade-player-button{border:1px solid #d7bd8c66;background:#21372e;color:#eed3a4;border-radius:4px;padding:10px 12px;font-size:12px;max-width:100%;overflow-wrap:anywhere}#arcade-status{font-size:12px;color:#bec4b5;margin-left:auto;letter-spacing:0}#arcade-result{border:1px solid #6a796d;padding:14px;margin:15px 0;font-size:14px}#arcade-result p{font-size:14px;margin:0 0 10px}#arcade-result a{font-size:13px}#arcade-result .secondary-button{margin:8px 0 14px}#arcade-player-dialog{width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:32px;border:1px solid #e7dab755;background:#1a2b25;color:#f3eddf;overflow-y:auto;box-sizing:border-box}#arcade-player-dialog::backdrop{background:#0c1d19c9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#arcade-player-dialog h2{font:500 44px/1.05 Barlow Condensed,sans-serif;margin:18px 0 24px}#arcade-player-dialog label{display:block;font-size:14px;margin-bottom:8px}#arcade-player-dialog input{width:100%;box-sizing:border-box;padding:13px 14px;background:#11231b;border:1px solid #d7bd8c88;border-radius:4px;color:#fff3dc;font:16px DM Sans,sans-serif}#arcade-player-dialog input:focus-visible{outline:2px solid #f4d492;outline-offset:3px}#arcade-player-note{font-size:14px;line-height:1.6;margin:16px 0}#arcade-player-error{color:#ffb69e;font-size:14px;line-height:1.5}#arcade-player-error:empty{display:none}#arcade-player-dialog .start-button{width:100%;min-width:0;margin-top:20px;padding:18px;font-size:13px}#arcade-player-dialog .text-button{font-size:12px;min-height:44px}#arcade-player-dialog button:disabled{opacity:.6;cursor:wait}@media(max-width:760px){#arcade-bar{gap:10px 16px;margin-bottom:0}#arcade-status{margin-left:0;width:100%}#arcade-status:empty{display:none}#arcade-player-dialog{padding:24px}}#arcade-player-dialog{width:min(520px,calc(100vw - 32px))}#arcade-player-dialog h2{margin:10px 0 12px}#arcade-player-note{margin:0 0 18px}#arcade-driver-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;border:0;padding:0;margin:0;min-width:0}#arcade-driver-list legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#arcade-driver-list .driver-option{position:relative;margin:0;cursor:pointer}#arcade-driver-list input{position:absolute;opacity:0;width:1px;height:1px;padding:0}#arcade-driver-list span{display:flex;align-items:center;justify-content:center;min-height:48px;border:1px solid #889d8866;border-radius:6px;background:#11231b;font-size:14px}#arcade-driver-list input:checked+span{background:#ecd19e;color:#192b23;border-color:#ecd19e;font-weight:700}#arcade-driver-list input:focus-visible+span{outline:2px solid #f4d492;outline-offset:3px}#arcade-driver-list:disabled{opacity:.6}.driver-dialog-actions{display:flex;align-items:center;gap:16px;margin-top:16px}#arcade-player-dialog .driver-dialog-actions .start-button{margin:0;flex:1;min-height:48px}#arcade-player-dialog .driver-dialog-actions .text-button{flex:1;margin:0}@media(max-height:430px){#arcade-player-dialog{padding:16px 20px}#arcade-player-dialog h2{font-size:30px;margin:4px 0 8px}#arcade-player-note{font-size:12px;line-height:1.4;margin-bottom:12px}#arcade-player-dialog .eyebrow{font-size:10px}.driver-dialog-actions{margin-top:12px}#arcade-player-dialog .start-button{padding:12px}#arcade-player-error{margin:4px 0;font-size:12px}}body.arcade-connected #masthead{pointer-events:none}body.arcade-connected #masthead :is(a,button){pointer-events:auto}@media(max-height:320px){#arcade-player-dialog{padding:12px 20px}#arcade-player-dialog .eyebrow{display:none}#arcade-player-dialog h2{font-size:28px;margin:0 0 6px}#arcade-player-note{margin-bottom:8px}#arcade-driver-list span{min-height:44px}.driver-dialog-actions{margin-top:8px}}@media(max-height:320px){#arcade-player-dialog .driver-dialog-actions .start-button{height:48px;min-height:48px;line-height:1}#arcade-player-dialog .driver-dialog-actions .start-button span{line-height:1}}.phone-setup{display:none;pointer-events:auto;border-top:1px solid #d2d9bf25;margin-top:12px;padding-top:12px}.phone-setup strong{font-size:10px;letter-spacing:1.5px;color:#edcf9e}.phone-setup p{font-size:11px;line-height:1.5;margin:8px 0;color:#c0cdbb}.phone-setup-actions{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.phone-setup button,.phone-setup select{min-height:44px;background:#243e32;border:1px solid #c6cfb355;color:#eadbc2;border-radius:5px;padding:9px 12px;font:11px DM Sans,sans-serif;touch-action:manipulation}.phone-setup button[data-phone-enable]{background:#ad4633;border-color:#cc755e;font-weight:700}.phone-setup button:disabled{opacity:.5}.phone-setup label{font-size:11px;margin-right:8px}.phone-setup select{font-size:16px}body #touch-controls{bottom:calc(12px + env(safe-area-inset-bottom));left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));grid-template-columns:minmax(90px,135px) minmax(108px,1fr) minmax(90px,135px);gap:12px;align-items:end;z-index:4;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}body #touch-controls .pedal{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;height:108px;min-height:80px;font-size:12px;font-weight:700;letter-spacing:.8px;border-radius:14px;border:1px solid #f4dec07a;box-shadow:inset 0 1px #fff3,0 4px 15px #0003;touch-action:none}body #touch-controls .pedal span{font-size:25px;line-height:1}body #touch-controls .pedal small{font-size:8px;opacity:.7;letter-spacing:2px}body #touch-controls .pedal-brake{background:#823d35df}body #touch-controls .pedal-gas{background:#356a48e6}body #touch-controls .held{background:#c3a35be8!important;border-color:#ffe7a8;transform:translateY(2px)}body #touch-controls .phone-middle{display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}body #touch-controls .manual-steering,body #touch-controls .phone-tools{display:flex;justify-content:center;gap:8px}body #touch-controls .manual-steering button{width:48px;height:48px;font-size:26px}body #touch-controls .phone-tools button,body #touch-controls [data-phone-center]{width:49px;height:44px;font-size:9px;border-radius:6px;background:#203d32e6;touch-action:manipulation}body #touch-controls [data-phone-center]{width:104px;height:44px}.tilt-live{display:none;pointer-events:auto}body.tilt-controls #touch-controls .manual-steering{display:none!important}body.tilt-enabled #touch-controls .tilt-live{display:block}#tilt-indicator{position:relative;width:104px;height:10px;margin-bottom:6px;background:#e3e4cc30;border-radius:6px;overflow:hidden}#tilt-indicator:after{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:#f0dbc4}#tilt-indicator i{position:absolute;top:1px;left:calc(50% - 4px + var(--steer,0)*43px);width:8px;height:8px;border-radius:50%;background:#f4d795}body.touch-device.racing{overscroll-behavior:none}body.touch-device.racing #world{touch-action:none}body.touch-device.racing #touch-controls{display:grid}body.touch-device .phone-setup{display:block}body.touch-device:not(.racing){overflow-y:auto;overscroll-behavior-y:contain;height:100dvh}body.touch-device #menu{position:relative;inset:auto;min-height:100svh;padding:calc(100px + env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));gap:24px}body.touch-device #menu .intro h1{font-size:48px;margin:12px 0}body.touch-device #menu .intro p,body.touch-device #menu .car-spec{display:none}body.touch-device #menu #car-hero:not([data-exploded=true]){position:relative;inset:auto;min-height:230px;height:260px;width:100%;flex:none}body.touch-device #menu .race-setup{position:static;width:100%;margin:0;padding:0}body.touch-device #menu .hero-inspection{position:static}body.touch-device .race-bottom{bottom:calc(138px + env(safe-area-inset-bottom))}body.touch-device.racing #masthead{padding:calc(12px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left))}body.touch-device.racing .icon-button{min-height:44px;padding:10px 12px}body.touch-device .driving-hints{display:none}body.touch-device #overlay{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}body.touch-device .modal{max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px);padding:25px;overscroll-behavior:contain}@media(max-width:760px){body.racing #touch-controls{display:grid}body .race-bottom{bottom:calc(140px + env(safe-area-inset-bottom))}}@container game (min-aspect-ratio:1/1) and (max-height:550px){body.touch-device.racing .race-top{top:calc(61px + env(safe-area-inset-top));left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right))}body.touch-device.racing .race-place strong{font-size:30px}body.touch-device.racing .race-top small{font-size:8px}body.touch-device.racing .race-lap{text-align:center}body.touch-device.racing .race-lap strong{font-size:25px}body.touch-device.racing .race-times{position:static}body.touch-device.racing .race-times strong{font-size:23px}body.touch-device.racing #race-message{top:115px;font-size:9px}body.touch-device.racing .map-panel{display:none}body.touch-device.racing .race-bottom{left:max(14px,env(safe-area-inset-left));right:auto;bottom:calc(120px + env(safe-area-inset-bottom));transform:none}body.touch-device.racing .speedometer{padding:8px;min-width:115px;width:115px;border-radius:8px}.touch-device .speed-line strong{font-size:30px;width:46px}body.touch-device.racing .speed-line{gap:4px}body.touch-device.racing .speed-line>span{font-size:20px;padding:0 4px}body.touch-device.racing .speed-line small{font-size:7px;letter-spacing:0;margin-bottom:4px}body.touch-device.racing .rpm{margin:7px 0}body.touch-device.racing .speed-meta{font-size:6px;letter-spacing:0}body.touch-device.racing #touch-controls{grid-template-columns:115px 1fr 115px;gap:24px}body.touch-device.racing #touch-controls .phone-middle{position:absolute;left:130px;bottom:0}body.touch-device.racing #touch-controls .pedal-gas{grid-column:3}body.touch-device.racing #touch-controls .pedal{height:95px}body.touch-device.racing #countdown{inset:26% 0 auto;font-size:90px}}@media(prefers-reduced-motion:reduce){#touch-controls button{transition:none}}body.touch-device #menu #car-hero:not([data-exploded=true]){bottom:auto!important}@media(max-width:360px){body #touch-controls{grid-template-columns:80px minmax(96px,1fr) 80px;gap:8px}body #touch-controls .pedal{font-size:10px}}body.touch-device #menu .race-setup{display:flex;flex-direction:column;gap:12px}body.touch-device #menu .phone-setup{order:-1;margin-top:0}body.touch-device #menu .control-picker,body.touch-device #menu .setup-footer{display:none}body.touch-device #menu #arcade-bar{position:static;padding:0;flex-shrink:0}#phone-rotate{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#192b24;padding:calc(28px + env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left));outline:none;overflow-y:auto}#phone-rotate h2{font:500 42px/1.05 Barlow Condensed,sans-serif;max-width:290px;margin:20px 0 12px;color:#f3eddf}#phone-rotate p{font-size:15px;line-height:1.6;margin:0 0 24px}#phone-rotate small{font-size:12px;line-height:1.6;max-width:285px;color:#b4c1b0}.rotate-phone-icon{width:102px;height:58px;border:3px solid #e2be8a;border-radius:12px;color:#e2be8a;font-size:40px;line-height:48px;margin-bottom:36px}body.phone-portrait #touch-controls{display:none!important}#game-shell{position:fixed;left:0;top:0;width:100vw;height:100dvh;transform:translate(0);transform-origin:0 0;container:game / size;overflow:hidden}#phone-settings{display:none}body.touch-device:not(.racing) #phone-settings{display:block}#phone-settings-dialog{width:min(460px,92vw);max-height:90dvh;overflow:auto;padding:20px;background:#192e25;color:#f3eddf;border:1px solid #bfad8055;border-radius:14px}#phone-settings-dialog::backdrop{background:#0c1c19d9}#phone-settings-dialog .phone-setup{margin:0;padding:0;border:0}body.touch-device:not(.racing){overflow:hidden;height:100dvh}body.touch-device #menu{position:absolute;inset:0;min-height:0;height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,1.05fr);grid-template-rows:minmax(0,1fr);align-items:center;padding:calc(56px + env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));gap:22px;overflow:hidden}body.touch-device #menu .intro{display:none}body.touch-device:not(.racing) #masthead{padding:calc(6px + env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 6px max(18px,env(safe-area-inset-left));height:calc(52px + env(safe-area-inset-top))}body.touch-device:not(.racing) .brand-description,body.touch-device:not(.racing) .edition{display:none}body.touch-device:not(.racing) .brand-mark{font-size:34px}body.touch-device:not(.racing) .header-right{gap:8px}body.touch-device:not(.racing) .icon-button{min-height:44px;padding:10px 12px;font-size:10px;border-radius:7px}body.touch-device #menu #car-hero:not([data-exploded=true]){grid-column:1;grid-row:1;position:relative;inset:auto;bottom:auto!important;min-height:0;height:100%;width:100%;transition:none;padding-bottom:48px}body.touch-device #menu .hero-viewport{min-height:0}body.touch-device #menu .hero-heading{height:20px;font-size:8px;letter-spacing:.4px}body.touch-device #menu #hero-status,body.touch-device #menu #hero-instructions,body.touch-device #menu .hero-reset{display:none}body.touch-device #menu .hero-toolbar{padding:0;border:0;justify-content:center}body.touch-device #menu .hero-toggle{min-height:44px;padding:0 10px;font-size:9px;border-radius:7px}body.touch-device #menu .race-setup{grid-column:2;grid-row:1;position:static;width:100%;height:100%;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:10px;padding:0;margin:0}body.touch-device #menu .section-label{order:0;margin:0;font-size:9px;letter-spacing:.6px}body.touch-device #menu .setup-row{display:contents}body.touch-device #menu .circuits{order:1;flex:none;gap:7px;height:70px;min-height:52px}body.touch-device #menu .circuit{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;flex:1;gap:3px;min-height:44px;min-width:0;padding:8px;border-radius:8px}body.touch-device #menu .circuit svg,body.touch-device #menu .circuit-detail{display:none}body.touch-device #menu .circuit small{font-size:7px;letter-spacing:.5px}body.touch-device #menu .circuit strong{font-size:22px;letter-spacing:0}body.touch-device #menu .difficulty-picker{order:2;display:grid;grid-template-columns:1fr 1.6fr;align-items:center;gap:8px;margin:0;padding:0;border:0;min-height:44px}body.touch-device #menu .difficulty-picker label{font-size:9px;letter-spacing:.4px}body.touch-device #menu .difficulty-picker select{font-size:14px;min-height:44px;border-radius:7px;padding:6px;width:100%;min-width:0}body.touch-device #menu .difficulty-picker p{display:none}body.touch-device #menu #start{order:3;min-height:52px;height:52px;min-width:0;width:100%;padding:10px 16px;border-radius:8px;font-size:12px}body.touch-device #menu #arcade-bar{position:absolute;left:max(18px,env(safe-area-inset-left));bottom:max(10px,env(safe-area-inset-bottom));width:calc(47% - 26px);display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:6px;margin:0;padding:0;font-size:8px;line-height:1.3}body.touch-device #menu #arcade-bar a,body.touch-device #menu #arcade-player-button{display:flex;align-items:center;justify-content:center;min-height:44px;flex:1;font-size:8px;padding:4px;text-align:center}body.touch-device #menu #arcade-status{display:none}body.touch-device #menu #car-hero[data-exploded=true]{left:18px;right:18px;top:56px;bottom:12px!important;min-height:0;width:auto;height:auto;padding:0}body.touch-device #menu #car-hero[data-exploded=true] .hero-inspection{position:absolute;top:20px;right:0;max-width:50%}@container game (max-height:310px){body.touch-device #menu{gap:12px;padding-top:50px;padding-bottom:8px;grid-template-columns:minmax(0,1fr) minmax(270px,1.15fr)}body.touch-device #menu .race-setup{gap:6px}body.touch-device #menu .circuits{height:52px}body.touch-device #menu #start{height:44px;min-height:44px}body.touch-device #menu .circuit small{display:none}body.touch-device #menu .circuit strong{font-size:20px}body.touch-device #menu .hero-heading{font-size:7px}}body.touch-device:not(.racing) #vignette{opacity:0}body.touch-device #game-shell .modal{width:min(440px,90cqw);max-height:calc(100cqh - 20px)}.race-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:520px;margin:0 0 6px;pointer-events:auto}.race-modes button{padding:10px 14px;min-height:54px;text-align:left;border:1px solid #899b8260;border-radius:8px;background:#192d27;color:#cfdbc8}.race-modes strong{display:block;font-size:11px;letter-spacing:1px}.race-modes small{display:block;font-size:10px;margin-top:4px;color:#abbca4}.race-modes [aria-pressed=true]{border-color:#e5c48d;background:#d9bb7824;color:#ffe3b8;box-shadow:inset 3px 0 #e5c48d}#race-mode-note{margin:0 0 12px;font-size:11px;line-height:1.4;color:#b9c9b1}body.competition-mode [data-difficulty]{opacity:1;color:#f5d89e;border-color:#e5c48d66;cursor:default}body.touch-device #menu .race-modes{order:-2;width:100%;max-width:none;margin:0;gap:7px}body.touch-device #menu .race-modes button{min-height:48px;padding:7px 9px}body.touch-device #menu .race-modes strong{font-size:10px;letter-spacing:.5px}body.touch-device #menu .race-modes small{font-size:8px;margin-top:3px}body.touch-device #menu #race-mode-note{order:-1;margin:0;font-size:9px;line-height:1.3}body.touch-device #menu .race-setup{gap:7px}@container game (max-height:310px){body.touch-device #menu .section-label,body.touch-device #menu #race-mode-note{display:none}body.touch-device #menu .race-setup{gap:4px}body.touch-device #menu .circuits{height:44px}}@media(min-width:901px)and (max-height:820px){body:not(.touch-device) #menu .intro h1{font-size:62px}body:not(.touch-device) #menu .car-spec,body:not(.touch-device) #menu .intro p{display:none}}body:not(.competition-mode) #arcade-player-button,body:not(.competition-mode) #arcade-status{display:none!important}body.arcade-connected .edition{display:none}body:not(.touch-device) #menu #arcade-bar{position:fixed;top:22px;left:33%;right:180px;width:auto;min-height:44px;display:flex;align-items:center;justify-content:flex-start;gap:16px;border:0;padding:0;margin:0;font-size:10px}body:not(.touch-device) #menu #arcade-status{display:none}@media(min-width:761px){body:not(.touch-device) #menu{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.65fr);grid-template-rows:minmax(min-content,1fr) auto;column-gap:32px;row-gap:24px;align-items:center;min-height:0;padding:clamp(90px,12vh,130px) 4.1% 24px;overflow-y:auto;pointer-events:auto}body:not(.touch-device) #menu .intro{grid-column:1;grid-row:1;min-width:0;align-self:center}body:not(.touch-device) #menu .intro h1{font-size:clamp(44px,min(6.3vw,9vh),104px);margin:18px 0}body:not(.touch-device) #menu .intro p{margin:12px 0 0}body:not(.touch-device) #menu #car-hero:not([data-exploded=true]){position:relative;inset:auto;bottom:auto!important;grid-column:2;grid-row:1;align-self:stretch;width:auto;height:auto;min-height:220px;transition:none}body:not(.touch-device) #menu .hero-viewport{min-height:100px}body:not(.touch-device) #menu .race-setup{position:static;inset:auto;grid-column:1/-1;grid-row:2;width:100%;margin:0;padding:0;align-self:end}}html,body{height:100%;overflow:hidden}body{position:fixed;width:100%;inset:0}#car-hero{position:absolute;inset:115px 3.4% 255px 37%;min-height:270px;pointer-events:none;display:flex;flex-direction:column;isolation:isolate;transition:left .5s ease,right .5s ease,top .5s ease,bottom .5s ease}#menu #car-hero[data-exploded=true]{position:fixed;left:4.1%;right:4.1%;top:105px;bottom:26px!important;min-height:0}#menu .intro,#menu .race-setup{transition:opacity .25s ease}body:has(#car-hero[data-exploded=true]) #menu .intro,body:has(#car-hero[data-exploded=true]) #menu .race-setup{opacity:0;visibility:hidden;pointer-events:none}body:has(#car-hero[data-exploded=true]) #vignette{opacity:.15}#car-hero[data-exploded=true] .hero-heading{font-size:9px;letter-spacing:1.7px}#car-hero[data-exploded=true] .hero-toggle{min-height:44px}.hero-heading{display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:1.5px;gap:15px;color:#9dab98;height:24px;flex-shrink:0}.hero-heading b{font-weight:500;color:#f0d6a5}#hero-status{font-size:7px;letter-spacing:1.4px;color:#bac8af;text-align:right}.hero-viewport{position:relative;flex:1;min-height:140px;pointer-events:auto;cursor:grab;touch-action:none;outline:none;border-radius:3px}.hero-viewport:active{cursor:grabbing}.hero-viewport:focus-visible{outline:1px solid #e3c191;outline-offset:-4px}.hero-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;padding:0 0 8px;border-bottom:1px solid #c7d0b324}.hero-toggle{display:flex;align-items:center;gap:14px;min-height:40px;padding:0 17px 0 11px;background:#d7bd8c12;border:1px solid #d7bd8c75;color:#e9d7b2;font:500 9px DM Sans,sans-serif;letter-spacing:1.6px;transition:background .2s}.hero-toggle i{display:grid;place-items:center;width:23px;height:23px;border:1px solid #d7bd8c65;border-radius:50%;font:300 19px/1 sans-serif;font-style:normal}.hero-toggle:hover{background:#d7bd8c28}.hero-reset{background:none;border:0;font-size:8px;letter-spacing:1.3px;color:#a7b5a0;padding:12px 0 12px 12px}.hero-reset:hover{color:#eed6ae}#car-hero button:focus-visible,#hero-component:focus-visible{outline:2px solid #e3c191;outline-offset:3px}#car-hero button:disabled{opacity:.45;cursor:wait}#hero-instructions{margin:8px 0 0;font-size:8px;line-height:1.3;letter-spacing:.5px;color:#a5b29c;text-align:center;flex-shrink:0}.hero-inspection{position:absolute;top:30px;right:0;width:min(340px,66%);pointer-events:auto;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:7px 12px;padding:8px 10px;background:#203329ec;border:1px solid #b9c4a830;z-index:2}.hero-inspection label{font-size:7px;letter-spacing:1.1px;color:#cab18b}#hero-component{min-width:0;width:100%;border:1px solid #b9c4a83b;background:#26372f;color:#e0d6be;padding:6px 8px;font:10px DM Sans,sans-serif;border-radius:0}#hero-detail{grid-column:1/-1;font-size:9px;line-height:1.45;margin:0;min-height:26px;color:#b8c4af}.hero-part-label{position:absolute;left:0;top:0;pointer-events:none;white-space:nowrap;font-size:7px;letter-spacing:1px;text-transform:uppercase;background:#21352ae0;border:1px solid #d2bd9259;color:#f0d6a5;padding:5px 8px;box-shadow:0 3px 12px #0002}.hero-part-label:after{content:"";position:absolute;left:50%;top:100%;width:1px;height:17px;background:#d2bd9280}@media(min-width:1500px){#car-hero{top:17vh;bottom:275px}}@media(min-width:761px){#menu .race-setup{position:absolute;left:4.1%;right:4.1%;bottom:18px;width:auto}#menu .car-spec{display:none}}@media(max-height:780px)and (min-width:761px){#car-hero{top:105px;bottom:255px}.hero-heading{font-size:7px}.hero-toolbar{padding-bottom:6px}.hero-toggle{min-height:34px}.hero-inspection{padding-top:6px}#menu .intro h1{font-size:69px;margin:16px 0}#menu .intro p{font-size:11px;margin:10px 0}#menu .car-spec{margin-top:12px}}@media(max-width:1000px)and (min-width:761px){#car-hero{inset:110px 3% 245px 43%}.hero-heading>span:first-child{max-width:145px;line-height:1.7}.hero-toggle{letter-spacing:.7px;padding-right:9px;gap:8px}.hero-reset{font-size:7px}.hero-heading{gap:4px}}@media(max-width:760px){#menu{padding-top:100px;min-height:750px}#menu .intro h1{font-size:47px;line-height:.9;margin:12px 0 0}#menu .intro h1 br:first-child,#menu .intro p,#menu .intro .car-spec{display:none}#car-hero{inset:224px 22px 290px;min-height:230px}.hero-heading{font-size:7px;letter-spacing:.8px;height:22px}#hero-status{font-size:6px;letter-spacing:.7px}.hero-toolbar{padding-bottom:5px}.hero-toggle{min-height:34px;font-size:8px;letter-spacing:.8px;padding:0 12px 0 8px;gap:10px}.hero-toggle i{width:20px;height:20px;font-size:17px}.hero-reset{font-size:7px;letter-spacing:.7px}#hero-instructions{font-size:7px;margin-top:6px}.hero-inspection{gap:5px 8px;padding:5px;top:23px;width:205px}#hero-detail{display:none}#hero-component{font-size:9px;padding:4px 6px}#menu .race-setup{position:absolute;left:22px;right:22px;bottom:16px;width:auto}#menu #car-hero[data-exploded=true]{left:18px;right:18px;top:100px;bottom:20px!important;min-height:0}#car-hero[data-exploded=true] .hero-heading{font-size:7px;letter-spacing:.8px}}@media(max-width:760px)and (max-height:760px){#menu{min-height:660px}#menu .intro h1{font-size:38px;margin-top:9px}#car-hero{top:196px;bottom:252px;min-height:200px}.hero-viewport{min-height:110px}.hero-heading>span:first-child{font-size:6px}.hero-inspection label{display:none}.hero-inspection{grid-template-columns:1fr}#hero-detail{display:none}}@media(max-height:640px)and (min-width:761px){#car-hero{top:88px;bottom:204px;min-height:240px}.hero-viewport{min-height:100px}#menu .intro h1{font-size:60px}#menu .car-spec,#hero-detail{display:none}}@media(prefers-reduced-motion:reduce){#car-hero,#menu .intro,#menu .race-setup{transition:none}}
