html,body{margin:0;height:100%;overflow:hidden;background:#1c2733;font-family:system-ui,sans-serif;color:#eef3f8}#app{position:fixed;top:0;right:0;bottom:0;left:0}#app canvas{display:block}.mono{font-family:ui-monospace,monospace}.panel{position:absolute;background:#101821eb;border:1px solid #3a4a5c;border-radius:10px;padding:18px 22px}.btn{background:#2c3e52;color:#eef3f8;border:1px solid #4a6076;border-radius:6px;padding:8px 14px;font-size:14px;cursor:pointer}.btn:hover:not(:disabled):not(.pick-card){background:#3a506b}.btn:disabled{opacity:.45;cursor:default}.btn.big{font-size:17px;padding:12px 18px}.btn.active{outline:2px solid #7db2e8}.menu{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);width:360px;display:flex;flex-direction:column;gap:10px;z-index:1}.menu-cover{display:none;position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.menu.open~.menu-cover{display:block}.menu-cover-layer{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity 1.6s ease;background-position:center;background-size:cover;background-repeat:no-repeat}.menu-cover:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(#0a101c2e,#0a101c61)}.menu-sticker{display:none;position:absolute;left:calc(50% + 215px);top:45%;width:clamp(120px,15vw,200px);transform:translateY(-50%) rotate(-4deg);z-index:1;pointer-events:none;filter:drop-shadow(0 6px 14px rgba(0,0,0,.45))}.menu.open~.menu-sticker{display:block}.menu-sticker img{display:block;width:100%;height:auto}@media (max-width: 700px){.menu-sticker{left:auto;right:8px;top:8px;width:clamp(109px,34vw,172px);transform:rotate(-4deg);z-index:2}}@media (min-width: 701px) and (orientation: landscape) and (max-height: 520px){.menu-sticker{left:auto;right:10px;width:clamp(140px,27vw,320px);z-index:2}}.menu h1{margin:0 0 6px;text-align:center}.menu-buttons{display:flex;flex-direction:column;gap:8px}.menu-buttons .btn.selected{background:#3f5a78;border-color:#8fc2f2;box-shadow:0 0 0 2px #8fc2f28c}.hint{font-size:12px;color:#9db1c5;text-align:center}.menu-discord{position:absolute;top:100%;left:0;right:0;margin-top:12px;text-align:center}.menu-discord-link{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border-radius:6px;font-size:13px;color:#b9c9da;text-decoration:none;background:#101821b8;border:1px solid rgba(88,101,242,.35);transition:color .15s ease,border-color .15s ease}.menu-discord-link:hover,.menu-discord-link:focus-visible{color:#8ea1ff;border-color:#5865f2d9}.menu-discord-mark{display:block}@media (max-height: 520px){.menu-discord{top:auto;bottom:2px;margin-top:0}}.test-runner{top:12px;left:12px;width:420px;max-height:calc(100% - 24px);overflow-y:auto;display:none}.tr-header{display:flex;justify-content:space-between;align-items:center}.tr-header h2{margin:0;font-size:17px}.tr-body{display:flex;flex-direction:column;gap:10px;margin-top:10px}.tr-scenarios{display:flex;flex-direction:column;gap:4px}.scenario-btn{text-align:left}.tr-desc{font-size:13px;color:#c9d6e2}.tr-desc .expected{color:#9ae6a0}.tr-controls{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tr-speed{font-size:12px;display:inline-flex;gap:4px;align-items:center}.spd{padding:3px 7px;font-size:12px}.tr-telemetry{white-space:pre-line;font-size:12px;background:#101820;padding:8px;border-radius:6px;min-height:76px}.tr-banner{font-size:18px;font-weight:700;text-align:center;min-height:24px}.tr-banner.pass{color:#69d97b}.tr-banner.fail{color:#ff7b6b}.tr-criteria{display:flex;flex-direction:column;gap:4px;font-size:13px}.criterion .c-status{display:inline-block;width:44px;font-weight:700}.criterion.pass .c-status{color:#69d97b}.criterion.fail .c-status{color:#ff7b6b}.criterion.pending .c-status{color:#d8b13a}.criterion .c-detail{color:#9db1c5;font-size:12px}.fps-warning{position:absolute;top:54px;right:12px;background:#96281ed9;color:#ffe4de;border:1px solid #d9846f;border-radius:6px;padding:6px 12px;font:700 14px ui-monospace,monospace;pointer-events:none;transition:opacity .4s linear;z-index:20}.fps-metrics{position:absolute;top:8px;left:50%;transform:translate(-50%);background:#0a121cbf;color:#bfe3c9;border:1px solid #33526b;border-radius:6px;padding:4px 10px;font:600 12px ui-monospace,monospace;white-space:nowrap;pointer-events:none;z-index:20}.fps-metrics.low{color:#ffe4de;border-color:#d9846f;background:#96281ecc}.fps-panel{top:12px;left:12px;width:440px;max-height:calc(100% - 24px);overflow-y:auto}.fps-body{margin-top:10px;display:flex;flex-direction:column;gap:10px}.fps-grid{display:grid;grid-template-columns:1fr auto;gap:4px 14px;font-size:13px;background:#101820;padding:10px;border-radius:6px}.fps-grid div:nth-child(odd){color:#9db1c5}.fps-progress{height:10px;background:#101820;border-radius:5px;overflow:hidden}.fps-bar{height:100%;background:#7db2e8;transition:width .2s linear}.fps-regions{margin:0;padding-left:20px;font:12px ui-monospace,monospace;color:#c9d6e2}.tc-row{font-size:13px;padding:2px 0}.tc-row .c-status{display:inline-block;width:44px;font-weight:700}.tc-row.pass .c-status{color:#69d97b}.tc-row.fail .c-status{color:#ff7b6b}.tc-row.pending .c-status{color:#d8b13a}.finish-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:center;justify-content:center;background:#0a101673;z-index:30}.finish-dialog{position:static;text-align:center;min-width:260px;padding:26px 36px}.finish-heading{font-size:22px;font-weight:700;margin-bottom:6px}.finish-stars{font-size:52px;letter-spacing:6px;line-height:1.1;margin:4px 0 8px}.finish-stars .fstar.on{color:#f0c04a;text-shadow:0 0 12px rgba(240,192,74,.55)}.finish-stars .fstar.off{color:#3a4a5c}.finish-time{font-size:20px;color:#cbd8e6;margin-bottom:14px}.finish-actions{display:flex;gap:14px;justify-content:center;margin-bottom:14px}.finish-btn{font-size:26px;line-height:1;padding:8px 18px}.unlock-notice{margin:0 0 14px;padding:10px 14px;border:1px solid rgba(240,192,74,.45);border-radius:8px;background:#f0c04a1a;animation:unlock-pop .32s ease-out}.unlock-heading{font-size:15px;font-weight:700;color:#f0c04a}.unlock-trophy{font-size:20px;text-shadow:0 0 12px rgba(240,192,74,.55)}.unlock-list{margin:6px 0 0;padding:0;list-style:none;font-size:15px;color:#e8f0f8}.unlock-list li{line-height:1.4}@keyframes unlock-pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.bigair-notice{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:flex-start;justify-content:center;padding-top:14vh;pointer-events:none;font-size:62px;font-weight:800;letter-spacing:3px;color:#ffd98a;text-shadow:0 2px 22px rgba(0,0,0,.75);opacity:1;transform:scale(1);transition:opacity .52s ease,transform .52s ease;z-index:26}.bigair-notice.fade{opacity:0;transform:scale(1.18)}.spin-notice{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:flex-start;justify-content:center;padding-top:26vh;pointer-events:none;font-size:54px;font-weight:800;letter-spacing:3px;color:#9fe4ff;text-shadow:0 2px 22px rgba(0,0,0,.75);opacity:1;transform:scale(1);transition:opacity .52s ease,transform .52s ease;z-index:26}.spin-notice.fade{opacity:0;transform:scale(1.18)}.note-notice{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:flex-end;justify-content:center;padding:0 8vw 16vh;pointer-events:none;text-align:center;font-size:30px;font-weight:600;letter-spacing:1px;line-height:1.35;color:#eaf4ff;text-shadow:0 2px 18px rgba(0,0,0,.85);opacity:1;transform:scale(1);transition:opacity .52s ease,transform .52s ease;z-index:26}.note-notice.fade{opacity:0;transform:scale(1.06)}@media (max-width: 700px){.note-notice{font-size:22px;padding-bottom:20vh}}.track-splash{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:center;justify-content:center;padding-bottom:28vh;pointer-events:none;font-size:54px;font-weight:800;letter-spacing:2px;color:#f2f6fa;text-shadow:0 2px 18px rgba(0,0,0,.65);opacity:1;transition:opacity .6s ease;z-index:25}.track-splash.fade{opacity:0}.track-splash{flex-direction:column;gap:10px}.countdown{position:absolute;top:0;right:0;bottom:0;left:0;display:none;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:52vh;gap:14px;pointer-events:none;z-index:26}.cd-lights{display:flex;gap:12px}.cd-lamp{width:22px;height:22px;border-radius:50%;background:#26303c;box-shadow:inset 0 0 0 2px #ffffff1f;transition:background .15s ease,box-shadow .15s ease}.cd-lamp.on{background:#e6483c;box-shadow:0 0 14px #e6483ccc}.cd-lamp.go{background:#46c96a;box-shadow:0 0 16px #46c96ae6}.cd-number{font-size:72px;font-weight:800;letter-spacing:3px;color:#f2f6fa;text-shadow:0 2px 18px rgba(0,0,0,.65);opacity:0}.cd-number.pop{animation:cd-pop .78s ease-out forwards}@keyframes cd-pop{0%{opacity:0;transform:scale(1.35)}18%{opacity:1;transform:scale(1)}70%{opacity:.9}to{opacity:0;transform:scale(.92)}}.flip-notice{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:flex-end;justify-content:center;padding-bottom:16vh;pointer-events:none;font-size:38px;font-weight:800;letter-spacing:2px;color:#f2f6fa;text-shadow:0 2px 18px rgba(0,0,0,.7);z-index:25}.flip-notice.tick{animation:flip-tick .9s ease-out}@keyframes flip-tick{0%{opacity:.55;transform:scale(1.12)}20%{opacity:1;transform:scale(1)}to{opacity:.9;transform:scale(1)}}.rotate-gate{position:absolute;top:0;right:0;bottom:0;left:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:0 24px;pointer-events:none;color:#ffd98a;text-shadow:0 2px 18px rgba(0,0,0,.75);z-index:27}.rotate-gate .rg-icon{font-size:64px;line-height:1;animation:rg-turn 2.6s ease-in-out infinite}.rotate-gate .rg-text{font-size:26px;font-weight:800;letter-spacing:1px}.rotate-gate .rg-sub{font-size:16px;font-weight:600;color:#f2f6fa;opacity:.85}@keyframes rg-turn{0%,15%{transform:rotate(0)}55%,85%{transform:rotate(-90deg)}to{transform:rotate(0)}}.hud{position:absolute;top:10px;right:12px;display:flex;gap:10px;align-items:center}.hud .speed,.hud .time{font-size:22px;background:#101821b3;padding:6px 12px;border-radius:8px}.hud .time{color:#a8c2da}.touch-pad{position:absolute;bottom:0;height:21%;width:25.5%;display:none;align-items:flex-end;justify-content:center;padding-bottom:18px;font-size:18px;font-weight:700;color:#ffffffbf;-webkit-user-select:none;user-select:none;touch-action:none}.touch-pad.brake{left:0;background:linear-gradient(to top,rgba(200,60,50,.35),transparent)}.touch-pad.gas{right:0;background:linear-gradient(to top,rgba(60,170,70,.35),transparent)}.touch-pad.active{background-color:#ffffff1f}.back-fab{position:absolute;top:10px;left:12px;z-index:6;width:40px;height:40px;border-radius:50%;border:1px solid #3a4a5c;background:#101821b3;color:#eef3f8;font-size:26px;line-height:1;padding:0 0 4px;cursor:pointer;opacity:.5}.back-fab:hover{opacity:1}.back-fab.small{width:30px;height:30px;font-size:19px;padding-bottom:3px}.account{top:50%;left:50%;transform:translate(-50%,-50%);width:380px;display:none}.auth-forms{display:flex;gap:18px}.auth-forms form,.coupon-form{display:flex;flex-direction:column;gap:8px;flex:1}.account input{background:#101820;color:#eef3f8;border:1px solid #3a4a5c;border-radius:6px;padding:8px}.account .error{color:#ff9a8a;min-height:16px}.account .row{display:flex;gap:8px;margin-top:10px}.affiliate input{width:100%;box-sizing:border-box}.account-card{display:flex;flex-direction:column;gap:8px;background:#ffffff0b;border:1px solid #33445a;border-radius:8px;padding:12px 14px;margin:12px 0}.account-card h3{margin:0;font-size:15px}.account-card p{margin:0}.account-card .btn{align-self:flex-start}.account-card.danger-card{border-color:#7b2c2c;background:#781e1e1f}.account-card.danger-card h3{color:#ff8d8d}.account-card.danger-card .btn{border-color:#a44;color:#ffdcdc}.account-card.danger-card .btn:hover{background:#8b1f1f;color:#fff}.account{max-height:86vh;overflow-y:auto}@media (max-height: 520px){.account{box-sizing:border-box;width:min(94vw,700px);max-height:94vh}}.terms-accept{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#c3d3e3;line-height:1.4}.terms-accept input{margin-top:2px;flex:none}.terms-gist,.terms-card .hint{text-align:left}.linkish{background:none;border:none;padding:0;font:inherit;color:#8fc2f2;text-decoration:underline;cursor:pointer}.forgot-password{align-self:flex-start;font-size:12px}.verify-form{display:flex;gap:8px;align-items:center}.account .code-input{flex:1;font-size:24px;letter-spacing:8px;text-align:center;font-family:ui-monospace,monospace}.verify-msg{color:#ffcf8a;min-height:16px}.picker{top:0;right:0;bottom:0;left:0;margin:auto;width:min(1180px,94vw);max-height:88vh;overflow-y:auto}@media (max-height: 520px){.picker{box-sizing:border-box;width:100vw;height:100%;max-height:100vh;border:none;border-radius:0}}.picker-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.picker-header h2{margin:0}.picker-list{margin:12px 0}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.picker-group{margin:26px 0 10px;font-size:15px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#9cc7f0;border-bottom:1px solid #33465c;padding-bottom:6px}.picker-group:first-child{margin-top:4px}.pick-item{display:flex;flex-direction:column;gap:6px}.pick-card{display:flex;flex-direction:column;gap:4px;text-align:left;padding:12px 14px}.pick-card.current{background:#3f5a78;border-color:#9cc7f0}.pick-card.locked{filter:grayscale(.7);opacity:.5;cursor:default}.pick-test{font-size:13px;padding:6px 10px;align-self:flex-start}.pick-name{font-size:17px;font-weight:600}.pick-stars{color:#f0c04a;font-size:14px;letter-spacing:1px}.pick-blurb{font-size:13px;color:#cbd8e6}.pick-traits{font-size:12px;color:#8fa8c0}.pick-add{align-items:center;justify-content:center;text-align:center;gap:2px;border-style:dashed;border-color:#4a6076;background:#16212c}.pick-add-plus{font-size:40px;font-weight:300;line-height:1.1;color:#8fa8c0}.pick-add .pick-blurb{color:#8fa8c0}.picker-status{min-height:18px;font-size:13px}.picker-status .error{color:#ff9a8a}.picker-status .ok{color:#9ae6a0}.garage{position:absolute;top:0;right:0;bottom:0;left:0;display:none;flex-direction:column;justify-content:space-between;padding:12px;gap:10px;pointer-events:none;z-index:1}.garage>*{pointer-events:auto}.garage-showroom{flex:1;pointer-events:auto;touch-action:none}.garage-top{position:static;padding:10px 14px}.garage-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-bottom:8px}.garage-header h2{margin:0;grid-column:2;text-align:center}.garage-strip{display:flex;align-items:stretch;gap:8px;padding:0 44px}.strip-window{flex:1;overflow:hidden;padding:4px 0}.strip-reel{position:relative;display:flex;gap:8px;width:max-content;transition:transform .22s ease-out}.strip-frame{flex:0 0 auto;width:132px;display:flex;flex-direction:column;gap:4px;padding:4px;background:#1b2836;color:#cbd8e6;border:2px solid #3a4a5c;border-radius:8px;cursor:pointer;opacity:.65;transition:opacity .15s ease,transform .15s ease}.strip-frame:hover{opacity:1}.strip-frame.current{opacity:1;border-color:#7db2e8;box-shadow:0 0 0 2px #7db2e859;transform:translateY(-2px)}.strip-frame.chosen .strip-label:after{content:" ✓";color:#6fcf7f}.strip-frame.locked .strip-thumb{filter:grayscale(1) brightness(.6)}.strip-frame.locked .strip-label:before{content:"🔒 "}.strip-thumb{width:100%;height:74px;object-fit:cover;border-radius:4px}.strip-add{box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:300;line-height:1;color:#8fa8c0;background:#16212c;border:1px dashed #4a6076}.strip-label{font-size:12px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.garage-bottom{display:flex;flex-direction:column;align-items:center;gap:8px}.garage-info{position:relative;width:min(680px,96vw);display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 18px;text-align:center;padding:10px 16px}@media (max-width: 620px){.garage-info{grid-template-columns:1fr}}.garage-test{position:absolute;left:6px;bottom:4px;width:26px;height:26px;border-radius:50%;border:1px solid #3a4a5c;background:#101821b3;color:inherit;font-size:13px;line-height:1;cursor:pointer;opacity:.45}.garage-test:hover:not(:disabled){opacity:1}.garage-test:disabled{opacity:.15;cursor:default}.garage-name{font-size:20px;font-weight:600}.garage-blurb{font-size:13px;color:#cbd8e6;margin-top:2px}.garage-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:4px 14px;margin-top:8px}.stat{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 8px;font-size:12px}.stat-label{color:#8fa8c0;text-align:left}.stat-value{color:#eef3f8}.stat-bar{grid-column:1 / -1;height:4px;border-radius:2px;background:#2c3e52;overflow:hidden}.stat-bar i{display:block;height:100%;background:#7db2e8}.garage-actions{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px}.garage-lock-note{max-width:200px;text-align:center;font-size:13px;color:#cbd8e6;min-height:18px}.garage-select{background:#2f7d43;border-color:#48b264;font-weight:600;min-width:160px}.garage-select:hover:not(:disabled){background:#3a9a53}@media (max-height: 520px){.garage{padding:8px 8px 4px;gap:6px}.garage-bottom{gap:4px}.garage-bottom .picker-status{min-height:0}.garage-top{padding:6px 10px}.garage-header{margin-bottom:4px}.garage-header h2{font-size:15px}.garage-strip,.strip-reel{gap:6px}.strip-frame{width:84px;border-width:1px}.strip-thumb{height:40px}.strip-add{font-size:22px}.strip-label{font-size:10px}.garage-info{padding:6px 12px;gap:2px 14px}.garage-name{font-size:15px}.garage-blurb{font-size:11px}.garage-stats{gap:2px 10px;margin-top:4px}.stat{font-size:11px}.garage-lock-note{font-size:11px;min-height:14px}}.test-fab-wrap{display:none;position:absolute;right:14px;bottom:14px;flex-direction:column;align-items:flex-end;gap:8px;z-index:5}.menu.open~.test-fab-wrap{display:flex}.test-fab{width:36px;height:36px;border-radius:50%;border:1px solid #3a4a5c;background:#101821b3;font-size:17px;line-height:1;cursor:pointer;opacity:.5}.test-fab:hover{opacity:1}.test-pop{position:static;flex-direction:column;gap:8px;padding:12px 14px}.test-pop h3{margin:0 0 2px;font-size:14px}.pick-thumb{width:100%;max-height:120px;object-fit:cover;border-radius:6px;margin-bottom:4px}.update-notice{display:none;position:absolute;top:14px;left:50%;transform:translate(-50%);z-index:6;background:#7a4030;color:#ffe9d6;border:1px solid #c86a4a;border-radius:8px;padding:9px 16px;font-size:14px;cursor:pointer}.menu.open~.update-notice.open{display:block}
