@import"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=Barlow:ital,wght@0,400;0,500;0,600;0,700;0,800;1,800;1,900&family=Noto+Sans+SC:wght@400;450;500;550;600;650;700;750;800;900&display=swap";:root{font-family:Barlow,Noto Sans SC,sans-serif;color:#dce5db;background:#101b1d;font-synthesis:none;font-weight:400;--lime:#c6ed69;--muted:#83958e;--line:#34423e;--panel:#1c2a29;--mono:"Barlow Condensed","Arial Narrow",monospace;--progress:50%}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{color:inherit;cursor:pointer;border:0;background:none}button:disabled{cursor:not-allowed;opacity:.4}button,a,input{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--lime)}button{transition:background .18s,color .18s,border-color .18s,transform .18s}button:active:not(:disabled){transform:translateY(1px)}button svg{flex-shrink:0;width:18px;height:18px;vertical-align:middle}a{color:inherit;text-decoration:none}button[hidden],[hidden]{display:none!important}#app{min-height:100dvh;display:flex;flex-direction:column}.topbar{height:76px;min-height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 29px;border-bottom:1px solid #2e3b36;z-index:20;background:#121f20;gap:20px}.brand{display:flex;align-items:center;gap:11px}.brand-mark{height:34px;width:34px;display:grid;place-items:center}.brand-mark svg{width:35px;fill:var(--lime)}.wordmark{font-family:Barlow,sans-serif;font-weight:900;font-style:italic;font-size:27px;letter-spacing:-1px;display:flex;align-items:center;gap:17px;white-space:nowrap}.brand-separator{font-size:22px;color:#4b5b53;font-style:normal;font-weight:400}.brand-sub{font-family:Noto Sans SC,sans-serif;font-size:13px;letter-spacing:1px;font-style:normal;font-weight:500;color:#b3bfb3}.main-nav{display:flex;gap:31px;align-self:stretch;margin-left:auto;margin-right:auto}.nav-button{position:relative;font-size:13px;font-weight:500;color:#8c9c94;display:flex;align-items:center;gap:8px;padding:0 2px}.nav-button svg{width:16px}.nav-button.active{color:#e2ebd4}.nav-button.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--lime)}.nav-button:hover{color:var(--lime)}.new-tag{background:#35452d;color:#b5d778;font-family:Barlow,sans-serif;font-size:8px;font-weight:700;letter-spacing:.5px;padding:3px 5px;border-radius:3px}.header-actions{display:flex;gap:11px;align-items:center}.icon-button{display:grid;place-items:center;width:32px;height:32px;color:#a1b1a4;border-radius:5px}.icon-button:hover{background:#35443b;color:#e0edca}.divider{height:22px;width:1px;background:#3a463e;margin:0 5px}.save-button{display:flex;align-items:center;gap:8px;border:1px solid #536049;padding:9px 13px;border-radius:5px;font-size:12px;color:#d6e1ca}.save-button svg{width:15px}.save-button:hover{background:#2c3c30;border-color:var(--lime)}.workspace{height:calc(100dvh - 113px);min-height:660px;display:flex;flex:1;position:relative;overflow:hidden}.viewport{flex:1;min-width:0;position:relative;background:#b2c1ac;overflow:hidden}#scene-container{position:absolute;inset:0}#scene-container canvas{display:block;width:100%;height:100%;touch-action:none}.view-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#dae1cf66 0,transparent 45%,transparent 65%,#172b2966 100%)}.viewport-top{position:absolute;top:25px;left:30px;right:30px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#344b3b;pointer-events:none}.live-badge{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:1.5px;font-weight:700}.live-dot,.status-dot{width:5px;height:5px;background:#b9dd6e;border-radius:50%;display:inline-block;flex-shrink:0}.viewport-top .live-dot{background:#4e7750;box-shadow:0 0 0 3px #496a4d15}.badge-separator{margin:0 3px;color:#86947c}.live-badge #scene-label{font-family:Noto Sans SC,sans-serif;letter-spacing:1px;font-size:10px;font-weight:500}.weather{font-size:11px;display:flex;gap:9px;align-items:center;color:#5d715c}.weather svg{width:16px;height:16px;stroke-width:1.5}.weather-line{height:11px;width:1px;background:#98a88d;margin:0 1px}.hero-copy{position:absolute;top:78px;left:35px;pointer-events:none;color:#1c3a30}.eyebrow{display:flex;align-items:center;gap:8px;font-size:9px;font-weight:700;letter-spacing:2.1px;color:#657958}.tiny-line{width:20px;height:1px;background:#526f44}.hero-copy h1{font-family:Noto Sans SC,sans-serif;letter-spacing:-2px;line-height:1.25;font-size:clamp(34px,3.35vw,53px);font-weight:750;margin:16px 0 14px}.hero-copy h1 span:not(.heading-period){position:relative;z-index:0}.hero-copy h1 span:not(.heading-period):after{content:"";position:absolute;bottom:3px;left:0;right:0;height:12px;background:#c6e384;z-index:-1}.hero-copy p{font-size:12px;color:#657e62;letter-spacing:1.5px}.session-card{position:absolute;left:30px;bottom:101px;display:flex;align-items:center;gap:18px;padding:16px 18px;background:#132725ee;color:#edf2da;border:1px solid #839d6345;box-shadow:0 8px 26px #162a281a;border-radius:7px;backdrop-filter:blur(14px);min-width:435px;max-width:calc(100% - 60px)}.session-number{font-family:var(--mono);font-size:38px;font-weight:600;line-height:.9;border-right:1px solid #53634c;padding-right:18px}.session-number>span{display:block;font-family:Barlow,sans-serif;font-size:7px;letter-spacing:1.4px;color:#97ad89;font-weight:500;margin-top:8px;white-space:nowrap}.session-info{flex:1}.session-title-row{display:flex;align-items:center;gap:8px}.session-info h2{font-size:16px;font-weight:550;margin:0;letter-spacing:1px}.difficulty-dot{height:4px;width:4px;background:var(--lime);border-radius:50%;margin-left:2px}.difficulty-label{font-size:9px;color:#a7bc88;white-space:nowrap}.session-info p{display:flex;align-items:center;gap:8px;font-size:10px;color:#9bab94;margin:8px 0 0;white-space:nowrap}.drive-button{background:var(--lime);color:#213027;font-size:12px;font-weight:600;align-self:stretch;display:flex;gap:14px;align-items:center;justify-content:center;border-radius:4px;padding:0 15px;white-space:nowrap;min-height:45px}.drive-button:hover,.generate-button:hover{background:#daf78c;box-shadow:0 0 24px #c6ed6910}.drive-button svg{width:16px}.kart-spec{position:absolute;right:31px;bottom:110px;color:#2c4934;text-align:right}.spec-label{font-size:8px;font-weight:600;letter-spacing:2px;color:#5a7454}.kart-title{font-family:var(--mono);font-size:29px;font-weight:700;letter-spacing:-.3px;margin-top:2px}.kart-title>span{font:600 8px Barlow,sans-serif;letter-spacing:1.5px;border:1px solid #7f9771;padding:3px 4px;vertical-align:middle;margin-left:6px}.kart-details{display:flex;align-items:center;justify-content:flex-end;gap:14px;font-family:var(--mono);font-weight:600;font-size:16px;margin-top:6px}.kart-details small{font:9px Barlow,sans-serif;color:#5c7556;margin-left:2px}.color-options{display:flex;gap:7px;align-items:center;margin-left:0;padding-left:13px;border-left:1px solid #8da37c}.color-swatch{width:12px;height:12px;border-radius:50%;background:var(--swatch);position:relative}.color-swatch.selected:after{content:"";position:absolute;inset:-3px;border:1px solid #46623d;border-radius:50%}.controls-hint{position:absolute;bottom:61px;left:30px;display:flex;align-items:center;gap:19px;font-size:10px;color:#e5edcc;pointer-events:none;text-shadow:0 1px 6px #122c2966}.controls-hint>span{display:flex;align-items:center;gap:7px}.controls-hint svg{width:13px;height:13px}.controls-hint .hint-extra{color:#cfdbc2;gap:5px}kbd{font-family:Barlow,Noto Sans SC,sans-serif;font-size:9px;line-height:1;min-width:19px;padding:4px 6px;border:1px solid #d6e2c166;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;color:#eef5de;font-weight:500;background:#304b3820}.viewport-footer{height:43px;position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 29px;background:#1b302bd9;backdrop-filter:blur(16px);border-top:1px solid #92ac7524}.render-status{display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:.2px;color:#b8c9aa;white-space:nowrap}.render-status .status-dot{width:4px;height:4px}.status-slash{color:#677e59;padding:0 3px}.render-status #fps{color:#90a984;font-family:var(--mono);font-size:11px;letter-spacing:.4px}.camera-switch{display:flex;align-items:center;gap:5px}.camera-switch button{font-size:10px;padding:5px 8px;min-height:26px;color:#a7b99a;border:1px solid transparent;border-radius:3px}.camera-switch button.selected{color:#e3eecc;border-color:#718a5a;background:#50663b40}.camera-switch button:hover{background:#647c4944}.camera-switch>span{height:13px;width:1px;background:#657b524d;margin:0 7px}.camera-switch svg{width:13px;height:13px}.editor-panel{width:360px;min-width:360px;background:var(--panel);display:flex;flex-direction:column;border-left:1px solid #243a2f;z-index:10}.panel-heading{padding:23px 24px 18px;border-bottom:1px solid #34433a}.panel-eyebrow{display:flex;align-items:center;gap:7px;font-size:8px;letter-spacing:1.4px;font-weight:600;color:#9eb184}.panel-eyebrow .live-dot{width:4px;height:4px}.panel-eyebrow>span:last-child{margin-left:auto;font-family:var(--mono);font-size:10px;letter-spacing:1.3px;color:#7d9278}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-top:13px}.panel-title h2{font-size:20px;letter-spacing:.2px;font-weight:550;margin:0;color:#e2ead6}.panel-title .icon-button{width:26px;height:26px;border:1px solid #52614a;border-radius:4px}.panel-title svg{width:13px}.panel-heading p{font-size:10px;color:#869b7e;margin:7px 0 0;letter-spacing:.5px}.panel-scroll{flex:1;overflow-y:auto;padding:19px 24px 10px;scrollbar-width:thin;scrollbar-color:#52604b transparent}.panel-scroll::-webkit-scrollbar{width:3px}.panel-scroll::-webkit-scrollbar-thumb{background:#536247}.section-label{font-size:11px;font-weight:500;color:#c5d1b7;display:flex;align-items:center;justify-content:space-between;min-height:25px}.section-label>b,.section-label span>b{color:#8fa47c;font-family:var(--mono);font-size:12px;margin-right:10px;font-weight:500}.section-label>svg{width:13px;height:13px;color:#819776}.preset-label{font-size:10px;min-height:12px;margin-bottom:10px}.preset-label>span:last-child{font-size:9px;color:#6f876e;font-weight:400;display:flex;align-items:center;gap:4px}.preset-label svg{width:11px;height:11px}.presets{display:flex;gap:7px;margin-bottom:19px}.preset{border:1px solid #3a4b3d;border-radius:5px;flex:1;min-width:0;padding:3px 3px 9px;color:#6f8b78;position:relative;background:#20302b}.preset svg{width:100%;height:52px;display:block}.preset>span{font-size:9px;white-space:nowrap;letter-spacing:.3px;color:#9bb18d;display:block}.preset.selected{border-color:#a6c55d;background:#3f522e30;color:#c7df87}.preset.selected:after{content:"";width:4px;height:4px;background:var(--lime);position:absolute;right:6px;top:6px;border-radius:50%}.preset.selected>span{color:#d1e5ad}.preset:hover{border-color:#7b955d;color:#b9cf95}.editor-section{padding-bottom:17px;margin-bottom:16px;border-bottom:1px solid #35443a}.canvas-tools{display:flex;align-items:center;gap:2px}.canvas-tools>.tool{width:25px;height:25px;display:grid;place-items:center;color:#829b79;border-radius:3px;border:1px solid transparent}.canvas-tools>.tool.selected{color:#cadc9c;background:#42573866;border-color:#536942}.canvas-tools>.tool:hover{background:#46583a;color:var(--lime)}.canvas-tools svg{width:12px;height:12px}.canvas-tools>span{height:12px;width:1px;background:#45573f;margin:0 3px}.canvas-wrap{position:relative;border:1px solid #4a5b43;border-radius:5px;overflow:hidden;margin-top:10px;background:#172526}#track-canvas{width:100%;aspect-ratio:4/3;display:block;touch-action:none;cursor:grab}.canvas-badge{position:absolute;top:10px;left:10px;font-size:8px;color:#a9c18c;display:flex;align-items:center;gap:4px;pointer-events:none;background:#20322caa;padding:4px 6px;border:1px solid #4f65383d;border-radius:3px}.canvas-badge svg{width:10px;height:10px}.canvas-corner{position:absolute;top:13px;right:11px;color:#738c76;font-family:var(--mono);font-size:9px;pointer-events:none}.canvas-legend{display:flex;align-items:center;gap:11px;font-size:8px;color:#8fa485;margin-top:10px}.canvas-legend>span{display:flex;align-items:center;gap:4px}.legend-dot{display:inline-block;width:5px;height:5px;border-radius:50%}.legend-dot.straight{background:#a4cac4}.legend-dot.curve{background:#70c7a6}.legend-dot.hairpin{background:#d0ec73}.canvas-legend .auto-close{margin-left:auto;color:#96b77f}.auto-close svg{width:9px;height:9px}.editor-status{font-size:9px;color:#748e70;line-height:1.7;margin:11px 0 0;min-height:15px}.editor-status.error{color:#e9a282}.settings-section{padding-bottom:2px}.range-label{display:flex;align-items:center;justify-content:space-between;margin-top:13px;font-size:10px;color:#96ac8c}.range-label output{font-family:var(--mono);font-size:18px;font-weight:600;color:#d0dfb8;letter-spacing:.5px}.range-label output small{font-family:Barlow,sans-serif;font-size:10px;font-weight:400;margin-left:2px;color:#809575}input[type=range]{display:block;width:100%;height:3px;appearance:none;background:linear-gradient(to right,#c1df7a var(--progress),#3d503b var(--progress));border-radius:5px;cursor:pointer;margin:12px 0 0}input[type=range]::-webkit-slider-thumb{appearance:none;width:10px;height:10px;border-radius:50%;background:#d0e6a0;border:2px solid #24372a;box-shadow:0 0 0 1px #a4be78}input[type=range]::-moz-range-thumb{width:9px;height:9px;border-radius:50%;background:#d0e6a0;border:2px solid #24372a}.range-extents{font-size:8px;color:#657e62;display:flex;justify-content:space-between;margin-top:9px}.smooth-label{margin-top:18px;margin-bottom:0}.toggle-row{display:flex;justify-content:space-between;align-items:center;margin:18px 0}.toggle-row+.toggle-row{margin-top:0}.toggle-row label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:10px;color:#a9be9b}.toggle-row label svg{width:15px;height:15px;color:#829d76}.toggle-row label small{display:block;font-size:8px;margin-top:4px;color:#698363}.switch{appearance:none;width:28px;height:16px;background:#43543b;border:1px solid #597046;border-radius:20px;position:relative;cursor:pointer;margin:0;transition:background .2s;flex-shrink:0}.switch:after{content:"";position:absolute;width:10px;height:10px;top:2px;left:2px;background:#91aa7c;border-radius:50%;transition:transform .2s}.switch:checked{background:#b7d76a;border-color:#bfdc7b}.switch:checked:after{background:#263927;transform:translate(12px)}.analysis-section{border-bottom:0;padding-bottom:0;margin-bottom:15px}.analysis-badge{display:flex;gap:4px;align-items:center;color:#86a672;font-size:8px;font-weight:400}.analysis-badge .status-dot{width:3px;height:3px}.analysis-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:12px;border:1px solid #3b4d3c;border-radius:5px;background:#20302a}.analysis-grid>div{padding:11px 14px;min-height:66px}.analysis-grid>div:nth-child(odd){border-right:1px solid #3b4d3c}.analysis-grid>div:nth-child(-n+2){border-bottom:1px solid #3b4d3c}.analysis-grid>div>span{font-size:8px;color:#87a07a;display:block;margin-bottom:3px}.analysis-grid strong{font-family:var(--mono);font-size:26px;font-weight:500;line-height:1.1;color:#d3e0b9}.analysis-grid strong small{font-family:Noto Sans SC,sans-serif;font-size:9px;color:#7c9471;font-weight:400;margin-left:4px}.file-actions{display:flex;align-items:center;justify-content:center;gap:16px;padding:3px 0 12px}.file-actions button{display:flex;align-items:center;gap:5px;font-size:9px;color:#8ea882}.file-actions button:hover{color:var(--lime)}.file-actions svg{width:11px;height:11px}.file-actions>span{height:12px;width:1px;background:#3d5239}.panel-footer{padding:16px 24px 12px;border-top:1px solid #3c4b3c;background:#1d2c29}.generate-button{width:100%;height:43px;display:flex;align-items:center;justify-content:space-between;border:1px solid #c5e77d;border-radius:4px;color:#213126;background:var(--lime);padding:0 15px;font-size:12px;font-weight:600;gap:12px}.generate-button>span{display:flex;align-items:center;gap:7px}.generate-button svg{width:15px;height:15px}.panel-footer p{display:flex;align-items:center;justify-content:center;gap:6px;font-size:8px;color:#708d68;margin:9px 0 0;letter-spacing:.5px}.panel-footer .status-dot{height:3px;width:3px;background:#719d5b}.bottom-bar{height:37px;min-height:37px;display:flex;align-items:center;justify-content:space-between;padding:0 29px;background:#101d1d;border-top:1px solid #2c4035;font-size:9px;color:#778b76;gap:10px;letter-spacing:.4px}.bottom-bar>div{display:flex;gap:15px;align-items:center}.footer-brand{font:italic 800 13px Barlow,sans-serif;color:#b3c397;letter-spacing:-.3px}.footer-divider{height:10px;width:1px;background:#3a4e38}.bottom-bar .engine-label{display:flex;align-items:center;gap:6px;font:600 8px Barlow,sans-serif;letter-spacing:.9px;color:#9eb88a}.bottom-bar .status-dot{width:3px;height:3px;background:#9fc16b}.bottom-bar .footer-version{font:10px var(--mono);color:#587252}.toast{position:fixed;bottom:57px;left:50%;transform:translate(-50%,12px);background:#152a26f5;border:1px solid #6b8b4e;color:#d8e9bf;box-shadow:0 10px 40px #001d2333;padding:12px 20px;z-index:90;border-radius:6px;font-size:12px;max-width:calc(100% - 35px);opacity:0;pointer-events:none;transition:opacity .22s,transform .22s;line-height:1.7;text-align:center}.toast.visible{opacity:1;transform:translate(-50%)}.loading-screen{position:absolute;inset:0;background:#243d32;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .6s;z-index:30;color:#c6e97c}.loading-screen.loaded{opacity:0;pointer-events:none}.loading-mark{font:italic 900 70px Barlow,sans-serif;letter-spacing:-6px}.loading-mark span{color:#e0e9cd}.loading-line{height:2px;width:100px;background:#728c52;margin-top:15px;overflow:hidden;position:relative}.loading-line:after{content:"";position:absolute;width:50%;height:100%;background:var(--lime);animation:loading .8s ease-in-out infinite alternate}.loading-screen p{font-size:10px;letter-spacing:2px;color:#91aa7a;margin-top:20px}@keyframes loading{to{transform:translate(100%)}}.drive-mode .editor-panel{display:none}.is-driving .viewport-top{top:24px}.is-driving .viewport-top .weather{margin-left:auto}.is-driving .live-badge{display:none}.is-driving .view-vignette{background:linear-gradient(180deg,#18322766,transparent 28%,transparent 60%,#102c26c9 100%)}.is-driving .weather{color:#ecf3d9;text-shadow:0 1px 5px #243b28}.is-driving .weather-line{background:#b8cba0}.is-driving .controls-hint{bottom:49px;left:50%;transform:translate(-50%);white-space:nowrap;gap:20px;font-size:10px}.session-top{position:absolute;left:30px;top:25px;pointer-events:none}.session-chip{display:flex;gap:9px;align-items:center;color:#f0f3dd;font-size:11px;text-shadow:0 1px 5px #21372855}.session-chip .live-dot{width:5px;height:5px}.session-divider{color:#adc292;margin:0 4px}.session-chip #race-track-name{font-size:10px;color:#d7e5c4}.lap-clock{margin-top:27px;border-left:2px solid var(--lime);padding-left:14px}.lap-clock>span{font-size:9px;letter-spacing:1px;color:#d0dfbd}.lap-clock>strong{display:block;font:500 43px var(--mono);font-variant-numeric:tabular-nums;letter-spacing:1px;color:#f5f5e7;margin-top:2px;line-height:1.1;text-shadow:0 3px 10px #21422955}.lap-clock>div{display:flex;gap:7px;font-size:9px;color:#c1d4ac;margin-top:8px;align-items:center}.lap-clock b{font-family:var(--mono);font-weight:500;font-size:12px;color:#eef2d8;letter-spacing:.4px}.lap-clock>div>span{margin-left:12px}.lap-clock>div>span>b{margin-left:5px;color:#c5dd9c}.race-actions{position:absolute;top:68px;right:30px;display:flex;gap:7px;align-items:center}.round-action{height:32px;width:32px;display:grid;place-items:center;background:#17392ccd;border:1px solid #88a86b77;color:#dbe8bb;backdrop-filter:blur(10px);border-radius:4px}.round-action svg{width:14px;height:14px}.round-action:hover{background:#536c39}.exit-button{font-size:10px;display:flex;align-items:center;gap:6px;background:#183a2ddd;border:1px solid #88a86b77;border-radius:4px;padding:8px 11px;color:#dbe8bb;height:32px;backdrop-filter:blur(10px)}.exit-button svg{width:12px;height:12px}.exit-button:hover{background:#536c39}.driving-hud{position:absolute;bottom:94px;left:30px;right:30px;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none}.speedometer{position:absolute;left:50%;bottom:0;transform:translate(-50%);width:254px}.rpm-bars{display:flex;gap:3px;height:12px;align-items:flex-end;border-bottom:1px solid #bdcf9c55;padding-bottom:6px;height:20px}.rpm-bars span{height:7px;flex:1;background:#bfd39933;transform:skew(-20deg);transition:background .1s}.rpm-bars span:nth-child(n+17){height:10px}.rpm-bars span.lit{background:#c7ee69;box-shadow:0 0 7px #c7ee6933}.rpm-bars span.lit:nth-child(n+19){background:#eaac6d}.speed-value{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:0}.speed-value>strong{font-family:var(--mono);font-size:100px;font-weight:600;font-style:italic;letter-spacing:-4px;color:#f2f4e3;font-variant-numeric:tabular-nums;line-height:1.03;text-shadow:0 3px 15px #2a463144;min-width:115px;text-align:center}.speed-value>div{display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:8px}.speed-value>div>b{font-family:var(--mono);font-size:27px;line-height:1;display:grid;place-items:center;border:1px solid #c5e58b99;border-radius:3px;width:35px;height:36px;color:#d8f28b;font-weight:500}.speed-value>div>span{font-size:9px;letter-spacing:1.3px;color:#c5d7af}.speed-meta{display:flex;justify-content:space-between;align-items:center;color:#9db78c;font-size:8px;letter-spacing:.6px;border-top:1px solid #98b17344;padding-top:10px;margin-top:5px}.speed-meta>span:first-child{display:flex;gap:5px;align-items:center}.speed-meta .status-dot{height:3px;width:3px}.g-meter{color:#c5d7af;display:flex;flex-direction:column;align-items:center;gap:7px;font-size:8px;letter-spacing:1px}.g-circle{width:67px;height:67px;border:1px solid #a0bc7966;border-radius:50%;position:relative;background:#16382933;backdrop-filter:blur(10px)}.g-circle:after{content:"";position:absolute;inset:14px;border-radius:50%;border:1px solid #a0bc7926}.g-horizontal{position:absolute;left:0;right:0;top:50%;height:1px;background:#a0bc7933}.g-vertical{position:absolute;top:0;bottom:0;left:50%;width:1px;background:#a0bc7933}.g-circle>b{height:6px;width:6px;position:absolute;top:calc(50% - 3px);left:calc(50% - 3px);background:#d3ef8b;border-radius:50%;box-shadow:0 0 10px #bded6044;z-index:1;transition:transform .07s}.g-meter>span:last-child{color:#c6e58c;font-size:8px}.center-message{position:absolute;left:50%;top:41%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;color:#eff7ce;text-align:center;pointer-events:none;text-shadow:0 4px 30px #16342177}.countdown-number{font:italic 700 120px var(--mono);line-height:1}.countdown-go{font:italic 700 100px var(--mono);line-height:1;letter-spacing:-2px;color:var(--lime)}.center-message small{font-size:12px;letter-spacing:2px;white-space:nowrap}.pause-title{font-size:50px;font-weight:700;white-space:nowrap;margin-bottom:10px}.mobile-controls{position:absolute;left:20px;right:20px;bottom:90px;display:none;align-items:flex-end;justify-content:space-between;pointer-events:none}.mobile-controls>div{display:flex;gap:9px;align-items:flex-end}.mobile-controls button{pointer-events:auto;touch-action:none;width:60px;height:58px;border:1px solid #c7e08e88;border-radius:9px;background:#193d2b99;backdrop-filter:blur(5px);color:#dfefba;font-size:20px;user-select:none}.mobile-controls button.gas-pedal{height:84px;background:#bde16abf;color:#203b20;font-size:13px;font-weight:600}.mobile-controls button.brake-pedal{height:66px;font-size:12px}.mobile-controls button.pressed{background:#cfed82;color:#1c3820}.viewport:fullscreen{width:100vw;height:100dvh}.viewport:fullscreen .controls-hint{bottom:60px}dialog{background:#1c3029;color:#d3e3bf;border:1px solid #637b49;border-radius:10px;max-width:690px;width:calc(100% - 36px);padding:28px;box-shadow:0 30px 150px #06190bb3}dialog::backdrop{background:#0a211ac9;backdrop-filter:blur(8px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.dialog-head .eyebrow{color:#95b379;font-size:8px}.dialog-head h2{font-size:23px;margin:10px 0 22px;font-weight:600;letter-spacing:.3px}.dialog-head .icon-button{border:1px solid #51653e;flex-shrink:0}.help-columns{display:grid;grid-template-columns:1fr 1fr;gap:38px;padding-bottom:13px}.help-columns h3{font-size:12px;font-weight:500;color:#c3da9b;margin:0 0 16px}.help-columns p{font-size:11px;line-height:1.9;display:flex;align-items:center;gap:6px;margin:10px 0}.help-columns p>span{margin-left:8px;color:#9bb58b}.help-columns .help-text{display:block;font-size:11px;color:#9fb594;line-height:1.9;margin:10px 0 16px}.help-columns kbd{border-color:#71895577;background:#395032;font-size:10px;min-width:24px;padding:5px;color:#d4e6b3}.physics-note{display:flex;gap:10px;background:#2e472d88;border:1px solid #536f3d55;border-radius:5px;padding:12px;color:#8fac7c;font-size:9px;line-height:1.8;margin-bottom:20px}.physics-note svg{height:18px;width:18px;flex-shrink:0;margin-top:3px}.error-overlay{position:fixed;inset:76px 360px 37px 0;background:#1e382def;z-index:70;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:30px}.error-overlay h2{font-size:24px;color:#d1ebaa}.error-overlay p{font-size:12px;color:#9bb48a;max-width:450px;line-height:1.9}.error-overlay button{margin-top:20px;border:1px solid #b6d77b;padding:10px 20px;border-radius:4px;color:#d0e6ac}@media(min-width:1600px){.editor-panel{width:386px;min-width:386px}.panel-scroll,.panel-heading,.panel-footer{padding-left:26px;padding-right:26px}.hero-copy{top:100px;left:45px}.hero-copy h1{font-size:59px}.viewport-top{left:42px;right:42px}.session-card{left:42px;bottom:112px}.kart-spec{right:42px;bottom:120px}.controls-hint{left:42px;bottom:67px}.viewport-footer{padding:0 41px}.presets .preset svg{height:60px}}@media(max-width:1200px){.topbar{padding:0 21px;gap:18px}.main-nav{gap:20px}.brand-sub,.brand-separator{display:none}.wordmark{font-size:26px}.editor-panel{width:330px;min-width:330px}.panel-heading,.panel-scroll,.panel-footer{padding-left:21px;padding-right:21px}.hero-copy{left:26px;top:77px}.hero-copy h1{font-size:40px}.viewport-top{left:25px;right:25px}.viewport-top .weather{font-size:9px;gap:6px}.weather>span:last-child,.weather-line{display:none}.session-card{left:25px;right:25px;bottom:105px;min-width:0;max-width:100%;padding:15px;gap:15px}.kart-spec{bottom:205px;right:27px}.kart-title{font-size:25px}.kart-details{font-size:14px}.spec-label{font-size:7px}.session-info h2{font-size:15px}.session-info p{font-size:9px;gap:6px}.difficulty-label,.difficulty-dot{display:none}.drive-button{padding:0 12px;gap:6px}.controls-hint{left:25px;bottom:67px;gap:12px}.controls-hint .hint-extra{display:none}.viewport-footer{padding:0 22px}.camera-switch{gap:2px}.camera-switch button{padding:4px 6px;font-size:9px}.camera-switch>span{margin:0 3px}.render-status{font-size:8px;gap:5px}.bottom-bar{padding:0 23px}.error-overlay{right:330px}}@media(max-width:900px){.editor-panel{width:310px;min-width:310px}.panel-heading{padding:20px 18px 16px}.panel-scroll{padding:16px 18px 8px}.panel-footer{padding:13px 18px 10px}.panel-title h2{font-size:18px}.canvas-legend{gap:9px}.hero-copy h1{font-size:34px}.hero-copy{top:75px;left:21px}.hero-copy p{font-size:10px;letter-spacing:1px}.viewport-top{left:20px;right:20px}.weather{display:none}.session-card{left:18px;right:18px;bottom:105px;gap:10px;padding:13px}.session-number{font-size:32px;padding-right:12px}.session-info h2{font-size:12px}.session-info p{font-size:8px;gap:4px}.drive-button{font-size:10px;padding:0 10px;gap:7px}.drive-button svg{width:13px}.kart-spec{right:21px;bottom:205px}.kart-title{font-size:24px}.controls-hint{left:20px;font-size:8px;gap:10px}.controls-hint kbd{font-size:8px;padding:3px 4px}.viewport-footer{padding:0 15px}.render-status .status-slash,.render-status #fps{display:none}.camera-switch button{font-size:8px;padding:4px 5px}.camera-switch>span{display:none}.bottom-bar{font-size:8px}.bottom-bar>div{gap:10px}.header-actions{gap:6px}.save-button{font-size:10px;padding:8px 10px}.nav-button{font-size:11px}.main-nav{gap:19px}.new-tag{display:none}.error-overlay{right:310px}}@media(max-width:700px){.topbar{height:62px;min-height:62px;padding:0 14px;gap:10px;flex-wrap:nowrap}.brand{gap:6px}.brand-mark,.brand-mark svg{height:27px;width:27px}.wordmark{font-size:23px}.main-nav{gap:16px;margin:0 auto}.nav-button{font-size:10px;gap:5px}.nav-button svg{width:13px}.header-actions{gap:3px}.header-actions .divider{display:none}.header-actions .icon-button{width:26px;height:28px}.header-actions .icon-button svg{width:15px}.save-button{font-size:0;padding:6px;border:0}.save-button span{display:none}.save-button svg{width:16px}.workspace{height:auto;min-height:0;display:block;overflow:visible;flex:1}.viewport{height:650px;min-height:500px}.hero-copy{top:73px;left:22px}.hero-copy h1{font-size:39px;line-height:1.28;letter-spacing:-1.5px}.hero-copy p{font-size:11px}.eyebrow{font-size:8px}.viewport-top{top:23px;left:23px;right:23px}.weather{display:flex!important}.live-badge{font-size:8px;gap:7px}.live-badge #scene-label{font-size:8px}.weather svg{width:13px}.viewport-top .weather{font-size:8px}.session-card{left:20px;right:20px;bottom:106px;padding:13px;gap:14px}.session-number{font-size:34px}.session-info h2{font-size:14px}.session-info p{font-size:9px;gap:6px}.drive-button{font-size:11px;padding:0 13px}.kart-spec{bottom:209px;right:23px}.kart-title{font-size:26px}.kart-details{font-size:14px}.controls-hint{left:23px;bottom:66px;font-size:9px;gap:18px}.controls-hint kbd{font-size:9px}.viewport-footer{padding:0 22px}.render-status{font-size:8px}.render-status .status-slash,.render-status #fps{display:initial}.camera-switch button{font-size:9px;padding:4px 6px}.camera-switch{gap:4px}.editor-panel{width:100%;min-width:0;border-left:0;border-top:1px solid #4e6342}.panel-heading{padding:25px 24px 20px}.panel-title{margin-top:15px}.panel-title h2{font-size:23px}.panel-heading p{font-size:11px;margin-top:8px}.panel-eyebrow{font-size:9px}.panel-scroll{overflow:visible;padding:21px 24px 3px}.panel-footer{padding:18px 24px}.preset-label{font-size:11px;margin-bottom:11px}.preset-label>span:last-child{font-size:10px}.presets{gap:10px;margin-bottom:24px}.preset{padding:8px 6px 13px}.preset svg{height:67px}.preset>span{font-size:11px}.section-label{font-size:12px}.section-label>span>b{font-size:13px}.canvas-tools>.tool{height:29px;width:29px}.canvas-tools svg{height:14px;width:14px}.canvas-wrap{margin-top:12px}.canvas-badge{font-size:9px;top:13px;left:13px;padding:5px 7px}.canvas-corner{top:17px;right:14px;font-size:11px}.canvas-legend{font-size:10px;gap:14px;margin-top:12px}.editor-status{font-size:10px;margin-top:11px}.editor-section{padding-bottom:20px;margin-bottom:20px}.range-label{font-size:12px;margin-top:17px}.range-label output{font-size:22px}input[type=range]{height:4px;margin-top:15px}input[type=range]::-webkit-slider-thumb{height:15px;width:15px}.range-extents{font-size:9px;margin-top:12px}.smooth-label{margin-top:23px}.toggle-row{margin:24px 0}.toggle-row label{font-size:12px;gap:12px}.toggle-row label small{font-size:10px;margin-top:6px}.toggle-row label svg{height:17px;width:17px}.switch{width:34px;height:20px}.switch:after{height:12px;width:12px;left:3px;top:3px}.switch:checked:after{transform:translate(14px)}.analysis-grid>div{padding:14px 18px;min-height:79px}.analysis-grid>div>span{font-size:10px}.analysis-grid strong{font-size:30px}.analysis-grid strong small{font-size:10px}.analysis-badge{font-size:9px}.file-actions{padding:4px 0 20px;gap:25px}.file-actions button{font-size:11px;gap:7px}.file-actions svg{height:14px;width:14px}.generate-button{height:48px;font-size:13px}.panel-footer p{font-size:9px;margin-top:13px}.bottom-bar{padding:0 20px;height:42px;min-height:42px;font-size:8px}.bottom-bar .engine-label{font-size:7px;letter-spacing:.6px}.bottom-bar>div{gap:9px}.bottom-bar>div:last-child>span:nth-last-child(2){display:none}.bottom-bar>div:last-child>.footer-divider{display:none}.footer-version{display:none}.drive-mode .workspace{height:calc(100dvh - 99px);min-height:520px;display:flex}.drive-mode .viewport{height:auto;min-height:0}.drive-mode .editor-panel{display:none}.is-driving .viewport-top .weather{display:flex}.session-top{left:21px;top:22px}.lap-clock{margin-top:25px;padding-left:11px}.lap-clock>strong{font-size:34px}.lap-clock>span{font-size:8px}.session-chip{font-size:9px;gap:6px}.session-chip #race-track-name{font-size:8px}.session-divider{margin:0 1px}.race-actions{top:65px;right:20px;gap:5px;flex-direction:row}.round-action{width:28px;height:29px}.round-action svg{height:12px;width:12px}.exit-button{height:29px;padding:6px 8px;font-size:9px;gap:5px}.exit-button svg{width:11px}.driving-hud{left:20px;right:20px;bottom:205px;align-items:flex-end}.speedometer{width:166px;bottom:-130px}.speed-value{gap:12px}.speed-value>strong{font-size:72px;min-width:82px;letter-spacing:-3px}.speed-value>div>b{font-size:20px;height:29px;width:29px}.speed-value>div>span{font-size:7px}.rpm-bars{gap:2px;height:15px}.rpm-bars span{height:5px}.rpm-bars span:nth-child(n+17){height:7px}.speed-meta{font-size:6px;letter-spacing:.2px;padding-top:7px;margin-top:2px}.g-meter{gap:5px;font-size:7px}.g-circle{height:51px;width:51px}.g-meter>span:last-child{font-size:7px}.is-driving .controls-hint{bottom:48px;gap:9px;font-size:7px}.is-driving .controls-hint kbd{font-size:7px;padding:3px 4px;min-width:15px}.is-driving .controls-hint>span{gap:4px}.is-driving .controls-hint .hint-extra{display:none}.is-driving .viewport-footer{padding:0 16px}.mobile-controls{display:flex}.countdown-number{font-size:100px}.countdown-go{font-size:80px}.center-message small{font-size:10px;letter-spacing:1px}.pause-title{font-size:38px}.center-message{top:44%}.help-columns{gap:22px}.dialog-head h2{font-size:20px}.help-columns .help-text,.help-columns p{font-size:10px}.help-columns p>span{margin-left:2px}.help-columns kbd{font-size:9px;min-width:20px;padding:4px}.physics-note{font-size:9px}.error-overlay{inset:62px 0 auto;height:650px}.drive-mode .error-overlay{bottom:37px;height:auto}dialog{padding:23px}.toast{font-size:11px;bottom:56px;padding:10px 16px}}@media(max-width:380px){.main-nav{gap:10px}.nav-button svg{display:none}.header-actions #help-button{display:none}.wordmark{font-size:21px}.brand-mark,.brand-mark svg{width:24px;height:24px}.session-card{gap:10px;padding:12px}.session-info h2{font-size:12px}.session-info p{font-size:8px;gap:5px}.session-number{font-size:31px;padding-right:10px}.drive-button{font-size:10px;padding:0 11px;gap:5px}.hero-copy h1{font-size:35px}.panel-scroll,.panel-heading,.panel-footer{padding-left:20px;padding-right:20px}.camera-switch{gap:0}.render-status #fps,.render-status .status-slash{display:none}.race-actions .exit-button>span{display:none}.mobile-controls{left:14px;right:14px}.mobile-controls button{width:53px}.speedometer{width:142px}.speed-value>strong{font-size:65px}.speed-value{gap:7px}}@media(pointer:coarse)and (min-width:701px){.mobile-controls{display:flex;bottom:110px}.driving-hud .g-meter{display:none}.speedometer{bottom:8px}.is-driving .controls-hint{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(min-width:701px){#app{height:100dvh;min-height:740px;overflow:hidden}.workspace{height:auto;min-height:0}.editor-panel,.panel-scroll{min-height:0}}@media(max-width:700px){#app{height:auto;overflow:visible}.drive-mode #app{height:100dvh;min-height:620px;overflow:hidden}.drive-mode .workspace{height:auto;flex:1;min-height:0}}.library-block{border:1px solid #4e6140;padding:12px;border-radius:5px;margin-bottom:20px;background:#23362c}.library-badge{font:8px Barlow,sans-serif;color:#bfd58c}.library-select-row{margin-top:9px}.library-block select{width:100%;background:#172a24;color:#d2e4b9;border:1px solid #526642;border-radius:4px;padding:9px 6px;font-size:11px;max-width:100%}.library-load-row{display:flex;gap:7px;margin-top:8px}.library-load-row select{width:55%}.library-load-row button{flex:1;font-size:10px;background:#bfdc77;color:#223923;border-radius:4px;padding:6px}.library-block p,.library-credit{font-size:9px;line-height:1.7;color:#99b083}.library-credit{text-decoration:underline}.layer-tabs{display:flex;align-items:center;gap:4px;margin-top:10px}.layer-tabs button{font-size:10px;padding:7px;color:#91aa81;border-bottom:2px solid transparent}.layer-tabs button.selected{color:#d3eb9c;border-color:#c7e780}.layer-tabs label{margin-left:auto;display:flex;align-items:center;font-size:8px;color:#93ab83;gap:3px}.layer-tabs input{accent-color:#c6ed69;width:11px;height:11px}.canvas-wrap{isolation:isolate}#reference-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}#track-canvas{position:relative;z-index:1}#height-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;touch-action:none}.canvas-badge,.canvas-corner{z-index:4;pointer-events:none}.terrain-tools{padding:12px 0 4px}.brush-modes{display:flex;gap:5px}.brush-modes button{flex:1;font-size:10px;border:1px solid #536640;border-radius:3px;padding:7px 3px}.brush-modes .selected{background:#b8d875;color:#203823}.terrain-tools output{font-size:13px}.terrain-tools p{font-size:9px;color:#99ae86;line-height:1.8}.terrain-actions{display:flex;align-items:center;justify-content:space-between;font-size:8px;margin-top:15px;color:#a9bd94}.terrain-actions button{font-size:9px;color:#d3e5ad}.terrain-actions svg{width:10px;height:10px}.free-boundary{display:flex;gap:10px;align-items:center;color:#b4c99c;font-size:11px;margin:20px 0}.free-boundary svg{width:17px}.free-boundary small{display:block;font-size:8px;color:#829d73;margin-top:5px}.pedal-panel{position:absolute;left:30px;bottom:95px;width:290px;background:#142c24d9;border:1px solid #799d5555;border-radius:5px;padding:11px 10px 5px;pointer-events:none;backdrop-filter:blur(7px)}.pedal-heading{font-size:10px;display:flex;justify-content:space-between;color:#d4e5b6}.pedal-heading small{font-size:8px;color:#8ea67c;margin-left:5px}.pedal-heading>div{display:flex;gap:11px;font-size:9px}.throttle-key{color:#c6ed69}.brake-key{color:#f4937c}.pedal-heading b{font-weight:400;margin-left:3px}#pedal-chart{width:100%;height:100px;display:block}.is-driving .g-meter{position:absolute;bottom:175px;left:0}.is-driving .controls-hint{bottom:270px}.sector-bars{position:absolute;left:50%;transform:translate(-50%);width:min(490px,85%);bottom:49px;display:flex;gap:8px;pointer-events:none}.sector-bar{flex:1;display:grid;grid-template-columns:20px 1fr 32px;align-items:center;gap:5px;font:10px Barlow,sans-serif;color:#dbe7bd;--sector:#dec66b}.sector-bar.green{--sector:#8edb8e}.sector-bar.purple{--sector:#c99ce7}.sector-bar>b{font-weight:500}.sector-bar>span{height:7px;background:#334835;border:1px solid #75856055;border-radius:2px;overflow:hidden}.sector-bar i{display:block;height:100%;width:0;background:var(--sector)}.sector-bar small{font-size:9px;text-align:right;color:var(--sector)}.lap-history{position:absolute;left:30px;top:218px;background:#132a22b3;border:1px solid #849d5e33;border-radius:4px;min-width:205px;padding:9px 12px;color:#caddb0;pointer-events:none;font-size:9px}.lap-history>span{font-size:9px;color:#b5ce94}.lap-history ol{padding:0;list-style:none;margin:8px 0 0}.lap-history li{display:flex;gap:12px;align-items:center;padding:4px 0;border-top:1px solid #9bbc6a20}.lap-history b{font:500 14px Barlow Condensed,monospace;color:#e5efce}.lap-history small{font-size:7px;color:#96ad7c}.reference-image-controls{font-size:9px;margin:8px 0;color:#93ac7c}.reference-image-controls input[type=file]{max-width:100%;font-size:9px}.reference-image-controls button{font-size:9px;color:#cce4a5}.reference-image-opacity-label{font-size:9px}.reference-image-opacity-label input{max-width:110px}@media(max-width:700px){.pedal-panel{left:15px;bottom:248px;width:180px;padding:7px}.pedal-heading{font-size:8px;flex-direction:column;gap:4px}#pedal-chart{height:65px}.pedal-heading small{font-size:7px}.is-driving .g-meter{display:none}.sector-bars{bottom:48px;width:92%;gap:5px}.sector-bar{font-size:8px;grid-template-columns:15px 1fr 24px;gap:3px}.sector-bar small{font-size:7px}.is-driving .controls-hint{display:none}.lap-history{top:175px;left:20px;min-width:150px;padding:6px 8px}.lap-history li{padding:2px 0;gap:7px}.lap-history small{display:none}.lap-history b{font-size:11px}.library-block select{font-size:12px}.library-load-row button{font-size:11px}.library-block p{font-size:10px}.layer-tabs button{font-size:11px;padding:9px}.brush-modes button{padding:10px 3px}.terrain-tools p{font-size:10px}}.cockpit-view .speedometer{left:auto;right:0;bottom:170px;transform:none;width:140px}.cockpit-view .speed-value>strong{font-size:62px;min-width:72px;letter-spacing:-2px}.cockpit-view .speed-value{gap:8px}.cockpit-view .speed-value>div>b{width:28px;height:29px;font-size:21px}.cockpit-view .speed-value>div>span{font-size:7px}.cockpit-view .speed-meta{font-size:6px;letter-spacing:0}.cockpit-view .rpm-bars{height:15px;gap:2px}.cockpit-view .rpm-bars span{height:5px}.cockpit-view .g-meter,.cockpit-view .controls-hint{display:none}@media(max-width:700px){.cockpit-view .speedometer{width:106px;bottom:145px}.cockpit-view .speed-value>strong{font-size:48px;min-width:53px}.cockpit-view .speed-value>div>b{width:22px;height:24px;font-size:18px}.cockpit-view .speed-meta{display:none}}:root{--lime:#d6c16d;--muted:#899393;--line:#303a3b;--panel:#101617;--mono:"Bahnschrift","DIN Alternate","Barlow Condensed",monospace;color:#e7edeb;background:#030708;font-family:Bahnschrift,Noto Sans SC,sans-serif}button,input,select,a,dialog,.session-card,.canvas-wrap,.library-block,.analysis-grid,.preset,.panel-footer,.lap-history,.pedal-panel,.toast{border-radius:0!important}.topbar{background:#060b0c;border-color:#293335}.brand-mark svg{fill:var(--lime)}.wordmark{color:#f1f3ed}.brand-sub{color:#abb7b7}.brand-separator{color:#4e6466}.main-nav .active{color:#f2f4ed}.nav-button{color:#99a6a6}.new-tag{color:#d6c16d;background:#28291e}.icon-button{color:#c4cecd}.icon-button:hover{background:#263032;color:#fff}.save-button{border-color:#72705a;color:#e5dbad}.save-button:hover{background:#2b2c25;border-color:var(--lime)}.editor-panel,.panel-footer{background:#0d1314;border-color:#303b3b}.panel-heading,.editor-section,.settings-section{border-color:#2b3536}.panel-eyebrow,.panel-eyebrow>span:last-child{color:#668d91}.panel-title h2{color:#f1f4ed;font-weight:500}.panel-heading p{color:#8c9e9f}.panel-scroll{scrollbar-color:#536264 transparent}.section-label{color:#dce4df}.section-label span>b{color:#6c8b8f}.preset-label>span:last-child{color:#81999c}.presets .preset{color:#879a9c;background:#121b1d;border-color:#354244}.preset>span{color:#a4b3b3}.preset.selected{border-color:#bcaf73;background:#27291f;color:#e5d792}.preset.selected>span{color:#e6d69a}.preset:hover{border-color:#b5c3c1;color:#fff}.library-block{background:#141d1e;border-color:#3e4a4b}.library-badge{color:#d6c16d}.library-block select{background:#0b1213;border-color:#3a494a;color:#e5ece9}.library-load-row button{background:#d2c078;color:#111918}.library-block p,.library-credit{color:#8fa4a6}.canvas-wrap{background:#070c0d;border-color:#445456}.canvas-badge{color:#c5d1ce;background:#121c1edb;border-color:#334447}.canvas-corner{color:#6b969b}.canvas-legend{color:#acbabb}.legend-dot.straight{background:#ecf0ee}.legend-dot.curve{background:#c3cdcc}.legend-dot.hairpin{background:#d6c16d}.canvas-legend .auto-close{color:#d2c078}.editor-status{color:#829fa2}.editor-status.error{color:#ed9482}.canvas-tools>.tool{color:#829c9f}.canvas-tools>.tool.selected{background:#2b3027;border-color:#9e965d;color:#eadca4}.canvas-tools>.tool:hover{background:#293638;color:#fff}.layer-tabs button{color:#859fa2}.layer-tabs button.selected{border-color:#d6c16d;color:#e5d795}.layer-tabs label{color:#94a8a8}.range-label{color:#b6c4c1}.range-label output{color:#edf1e9}.range-label output small{color:#8da3a4}.range-extents{color:#6a8b8f}input[type=range]{background:linear-gradient(to right,#cbb86b var(--progress),#334346 var(--progress))}input[type=range]::-webkit-slider-thumb{background:#d6c16d;border-color:#131c1e;box-shadow:0 0 0 1px #9a8d56}.toggle-row label{color:#c4cfca}.toggle-row label small,.free-boundary small{color:#7f9a9d}.toggle-row label svg,.free-boundary svg{color:#819a9d}.switch{background:#2d3c3e;border-color:#4d6466}.switch:checked{background:#d0bd73;border-color:#dfd49b}.switch:checked:after{background:#11191a}.free-boundary{color:#cbd5cf}.analysis-badge{color:#8da8a8}.analysis-grid{background:#141d1e;border-color:#354346}.analysis-grid>div:nth-child(odd),.analysis-grid>div:nth-child(-n+2){border-color:#354346}.analysis-grid>div>span{color:#90a8aa}.analysis-grid strong{color:#eaf0e9}.analysis-grid strong small{color:#90a3a3}.generate-button{background:#cfbd72;border-color:#d6c787;color:#10191a}.generate-button:hover,.drive-button:hover{background:#e8d999}.panel-footer p{color:#78969a}.file-actions button,.reference-image-controls,.reference-image-controls button{color:#a6babc}.brush-modes button{border-color:#5a6968}.brush-modes .selected{background:#d6c16d;color:#11191a}.terrain-tools p,.terrain-actions{color:#94a9a9}.terrain-actions button{color:#e3d591}.viewport-top{color:#ecf1ec}.live-badge,.weather{background:#111a1bde;padding:9px 11px;color:#cdd8d4}.weather-line{background:#718487}.viewport-top .live-dot{background:#d6c16d;box-shadow:none}.live-badge #scene-label{color:#a7b9b8}.view-vignette{background:linear-gradient(180deg,#07111314,transparent 55%,#000b 100%)}.hero-copy{top:83px;left:30px;background:#10191ad9;padding:16px 20px;color:#f0f3ed;border-left:3px solid #d6c16d}.hero-copy .eyebrow{font-size:9px;color:#678f94;letter-spacing:2px}.tiny-line{background:#89aaad}.hero-copy h1{font-family:Bahnschrift,Barlow,sans-serif;font-size:30px;letter-spacing:2px;line-height:1.1;font-weight:500;margin:12px 0 6px}.hero-copy p{font-size:10px;letter-spacing:1px;color:#a1b3b2;margin-bottom:0}.hero-copy h1 span:after{display:none}.session-card{background:#111a1bed;border-color:#53605c;box-shadow:none;backdrop-filter:blur(3px)}.session-number{font-family:var(--mono);font-weight:400;color:#eef2eb;border-color:#4c5b5c}.session-info h2{color:#e2d18a;font-weight:500}.session-info p{color:#9aaead}.session-number>span,.difficulty-label{color:#9aacac}.drive-button{background:#cfbd72;color:#131c1b}.kart-spec{color:#eef2e8;background:#111a1bd9;padding:10px 12px}.spec-label,.kart-details small{color:#8eaaad}.kart-title>span{border-color:#627b7e;color:#d6c16d}.color-options{border-color:#526a6d}.controls-hint{color:#c6d5d0}kbd{border-color:#74818070;background:#15202180}.viewport-footer{background:#0b1213ed;border-color:#3a4848}.render-status{color:#b5c7c5}.render-status #fps{color:#6e9196}.camera-switch button{color:#9bb0b0}.camera-switch button.selected{color:#ece5c8;border-color:#9b905f;background:#373829}.camera-switch button:hover{background:#293a3c}.status-dot,.live-dot{background:#d6c16d}.bottom-bar{background:#050a0b;border-color:#2f3a3b;color:#7c9699}.footer-brand{color:#e2e9df}.bottom-bar .engine-label{color:#aab9b4}.footer-divider{background:#405457}.footer-version{color:#6e8a8e}.loading-screen{background:#070d0e;color:#d6c16d}.loading-screen p{color:#7d9b9f}.loading-mark span{color:#f0f3ed}.toast{background:#111b1df5;border-color:#9b905f;color:#eee5bd}.is-driving .view-vignette{background:linear-gradient(180deg,#02080988,transparent 25%,transparent 55%,#000b 100%)}.session-chip{color:#e8eee8}.session-chip #race-track-name{color:#a3babd}.lap-clock{border-color:#d6c16d}.lap-clock>span{font-size:10px;color:#e1e8e2;letter-spacing:1.8px}.lap-clock>strong{font:400 47px var(--mono);letter-spacing:2px;color:#f2f6ee}.lap-clock>div{color:#b9c8c5}.lap-clock b{color:#edf1e8}.lap-clock>div>span>b{color:#d6c16d}.race-actions .round-action,.exit-button{background:#111a1be6;border-color:#66706b;color:#dae3db}.round-action:hover,.exit-button:hover{background:#353a2c}.lap-history{background:#101819e6;border-color:#4b5c5e;padding:12px}.lap-history>span{color:#819fa3;letter-spacing:1px}.lap-history li{border-color:#354243;background:#1b242480;padding:5px}.lap-history li:nth-child(2n){background:#10181988}.lap-history b{font-family:var(--mono);color:#f0f3e8}.lap-history small{color:#8fa8aa}.driving-hud{bottom:154px}.speed-value>strong{font-family:var(--mono);font-style:normal;font-weight:400;letter-spacing:0;color:#f0f4ed}.speed-value>div>b{border-color:#929b83;color:#e1d38e}.speed-meta{border-color:#7d89824a;color:#9aacab}.rpm-bars{border-color:#7d89824a}.rpm-bars span{background:#9cae9e2e;border-radius:0}.rpm-bars span.lit{background:#d6c16d;box-shadow:none}.rpm-bars span.lit:nth-child(n+19){background:#efede2}.speed-value>div>span{color:#a8bcbd}.g-circle{border-color:#82928b80;background:#101b1b88}.g-circle>b{background:#e6d28c;box-shadow:none}.g-meter>span:last-child{color:#a4b8b8}.pedal-panel{left:24px;bottom:154px;width:290px;background:#111b1ddd;border-color:#5d6e70;box-shadow:none;backdrop-filter:blur(3px)}.pedal-heading{color:#e5ece4;font-weight:400;letter-spacing:.6px}.pedal-heading small{color:#799da2}.throttle-key{color:#d6c16d}.brake-key{color:#eb8976}.is-driving .controls-hint{display:none}.sector-bars{position:absolute;bottom:49px;left:50%;transform:translate(-50%);width:min(960px,calc(100% - 48px));display:grid;grid-template-columns:1.08fr repeat(3,1fr) 1.2fr;gap:5px;align-items:end;pointer-events:none}.timing-driver,.sector-bar,.timing-total{min-width:0;display:grid;grid-template-columns:1fr;gap:4px;color:#e9eee6}.timing-driver>b,.sector-bar>b,.timing-total>b{background:#1c2423e8;display:flex;align-items:center;justify-content:center;height:27px;font:400 12px var(--mono);letter-spacing:1.8px;color:#e3e8e1}.timing-driver>div{display:grid;grid-template-columns:38px 1fr;gap:4px;background:none;height:47px}.timing-driver>div>span,.timing-driver strong{display:flex;align-items:center;justify-content:center;background:#1b2423e8;font-family:var(--mono);font-size:25px;font-weight:400;color:#e6ece5}.timing-driver strong{font-size:25px;color:#d6c16d;letter-spacing:1px}.sector-value{height:47px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#1b2423e8;border-left:4px solid #737d73}.sector-value i{height:100%;max-width:100%;width:0;position:absolute;left:0;bottom:0;background:var(--sector);opacity:.15;transition:width .08s linear}.sector-value small{position:relative;z-index:1;font:400 31px var(--mono);letter-spacing:1.2px;color:#e6ece5;font-variant-numeric:tabular-nums;white-space:nowrap}.sector-bar{--sector:#aab6ae}.sector-bar.active{--sector:#e5e9df}.sector-bar.pending .sector-value small{color:#6c7873}.sector-bar.pending .sector-value{border-color:#34423d}.sector-bar.purple{--sector:#b77bff}.sector-bar.green{--sector:#74e4a5}.sector-bar.yellow{--sector:#d6c16d}.sector-bar.purple>b,.sector-bar.green>b,.sector-bar.yellow>b{color:var(--sector)}.sector-bar.purple .sector-value,.sector-bar.green .sector-value,.sector-bar.yellow .sector-value{border-color:var(--sector)}.sector-bar.purple small,.sector-bar.green small,.sector-bar.yellow small{color:var(--sector)}.timing-total>strong{font:400 31px var(--mono);height:47px;background:#1b2423e8;display:flex;align-items:center;justify-content:center;letter-spacing:1px;color:#eef2e9;white-space:nowrap;font-variant-numeric:tabular-nums}.countdown-number,.countdown-go{font-family:var(--mono);font-style:normal;font-weight:400}.countdown-go{color:#d6c16d}.pause-title{font-weight:500}.center-message small{color:#e5e9db}.mobile-controls button{border-color:#9b9f86;background:#172123c9;color:#e9e9da}.mobile-controls button.gas-pedal{background:#d0bf76dc;color:#101b1b}.mobile-controls button.pressed{background:#e5d99b;color:#111b1b}dialog{background:#0e1617;border-color:#657575;color:#e2e9de}.dialog-head .eyebrow{color:#74979d}.help-columns h3{color:#d6c16d}.help-columns p>span,.help-columns .help-text{color:#a6bab9}.help-columns kbd{background:#273536;border-color:#788a83;color:#ece9d8}.physics-note{background:#192526;border-color:#4e6263;color:#a1b5b4}@media(max-width:1200px){.sector-bars{width:calc(100% - 40px)}.sector-value small,.timing-total>strong{font-size:27px}.timing-driver strong{font-size:23px}.hero-copy{left:25px}.hero-copy h1{font-size:26px}}@media(max-width:700px){.hero-copy{left:20px;top:76px;padding:12px 15px}.hero-copy h1{font-size:22px;letter-spacing:1px}.hero-copy p{font-size:9px}.viewport-top{left:20px;right:20px}.live-badge,.weather{padding:6px 7px}.kart-spec{padding:8px 10px;bottom:205px}.sector-bars{bottom:48px;width:calc(100% - 24px);gap:3px;grid-template-columns:58px repeat(3,minmax(0,1fr)) 82px}.timing-driver>b,.sector-bar>b,.timing-total>b{height:21px;font-size:8px;letter-spacing:.4px}.timing-driver>div,.sector-value,.timing-total>strong{height:33px}.timing-driver>div{grid-template-columns:18px 1fr;gap:2px}.timing-driver>div>span{font-size:12px}.timing-driver strong{font-size:13px;letter-spacing:.3px}.sector-value{border-left-width:2px}.sector-value small{font-size:16px;letter-spacing:0}.timing-total>strong{font-size:17px;letter-spacing:0}.driving-hud{bottom:225px}.speedometer{bottom:-80px}.pedal-panel{left:15px;bottom:263px;width:180px}.pedal-heading{font-size:8px}.mobile-controls{bottom:116px}.lap-clock>strong{font-size:34px}.lap-clock>div{font-size:8px}.lap-history{padding:6px 8px}.lap-history li{padding:3px}.lap-history b{font-size:12px}.is-driving .g-meter{display:none}.cockpit-view .speedometer{bottom:130px}}@media(prefers-reduced-motion:reduce){.sector-value i{transition:none}}.viewport-top{justify-content:flex-end}.error-overlay{bottom:0}.pedal-assist-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:5px 0 2px;font:9px var(--mono);color:#a4b4b2}.brake-demand-key{display:flex;align-items:center;gap:5px;white-space:nowrap}.brake-demand-key:before{content:"";width:12px;border-top:1px dashed #cad2cd}.brake-demand-key small{color:#7f9495;font-size:8px}.pedal-assist-row #abs-status{font-weight:500;white-space:nowrap;font-size:9px;color:#78938c;border:1px solid #3d534b;padding:2px 4px}.pedal-assist-row #abs-status.active{color:#141a16;background:#e5c06b;border-color:#e5c06b}.pedal-heading>div{white-space:nowrap}#vehicle-source{font-size:9px;color:#b8c8c1}@media(max-width:700px){.brake-demand-key small{display:none}.pedal-assist-row{gap:4px;font-size:8px}.pedal-assist-row #abs-status{font-size:8px;padding:1px 3px}}.reference-image-controls{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem}.reference-image-controls input[type=file]{max-width:15rem}.reference-image-opacity-label{display:inline-flex;align-items:center;gap:.45rem}.reference-image-opacity-label input[type=range]{width:7rem}#lap-history.lap-history{left:30px;top:88px;width:340px;min-width:0;max-width:calc(100% - 92px);padding:0;border:0;background:transparent;overflow:visible;backdrop-filter:none}.lap-times-card{position:relative;width:100%;padding:0;background:#172323ef;color:#f0f4ef;overflow:visible;font-variant-numeric:tabular-nums}.lap-times-current{position:relative;padding:18px 0 15px;display:flex;align-items:center;justify-content:center;min-height:85px;border-bottom:1px solid #778f8c44}.lap-times-current>output{font-family:Bahnschrift,Barlow Condensed,monospace;font-size:46px;font-weight:650;line-height:1.1;letter-spacing:.3px;white-space:nowrap;font-variant-numeric:tabular-nums}.lap-times-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.lap-result-row{position:relative;display:grid;grid-template-columns:39px 105px minmax(0,1fr);align-items:center;column-gap:5px;min-height:41px;padding:0;border-bottom:1px solid #778f8c33;background:#14202075}.lap-result-row:nth-child(2n){background:#1c2a2988}.lap-result-row:last-child{border-bottom:0}.lap-result-number{padding-left:8px;font:500 12px Bahnschrift,monospace;color:#cbdba5;white-space:nowrap}.lap-result-time{font:650 21px Bahnschrift,Barlow Condensed,monospace;color:#edf1e8;letter-spacing:-.25px;white-space:nowrap;font-variant-numeric:tabular-nums}.lap-result-sectors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding-right:8px;color:#82aeb5;font:400 10px Bahnschrift,monospace;font-variant-numeric:tabular-nums;white-space:nowrap}.lap-result-sectors>span{position:relative;text-align:right;min-width:0}.lap-result-sectors>span:not(:last-child):after{content:"/";position:absolute;right:-5px;color:#6c9196}.lap-result-badges{position:absolute;left:calc(100% + 6px);top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px;width:max-content;z-index:3;pointer-events:auto}.lap-result-badge{display:grid;place-items:center;width:24px;height:26px;flex:none;color:#fff}.lap-result-badge--fastest{background:#8b36d4}.lap-result-badge--invalid{background:#c63b40}.lap-result-badge>svg{width:16px;height:18px}@media(max-width:700px){#lap-history.lap-history{left:16px;top:77px;width:310px;max-width:calc(100% - 88px);padding:0}.lap-times-current{min-height:72px;padding:15px 0 12px}.lap-times-current>output{font-size:39px}.lap-result-row{grid-template-columns:32px 88px minmax(0,1fr);column-gap:4px;min-height:35px}.lap-result-number{font-size:10px;padding-left:6px}.lap-result-time{font-size:18px}.lap-result-sectors{font-size:8px;gap:4px;padding-right:6px}.lap-result-sectors>span:not(:last-child):after{right:-4px}.lap-result-badges{left:calc(100% + 5px);gap:3px}.lap-result-badge{width:22px;height:24px}.lap-result-badge>svg{width:15px;height:16px}}.lap-result-row{min-height:clamp(18px,calc(10dvh - 58px),38px)}.lap-result-time{font-size:clamp(13px,calc(3dvh - 5px),21px);line-height:1}.lap-result-number,.lap-result-sectors{line-height:1}@media(max-width:700px){.lap-result-row{min-height:clamp(16px,calc(10dvh - 65.5px),32px)}.lap-result-time{font-size:clamp(10px,calc(3dvh - 10px),18px);line-height:1}.pedal-panel{bottom:243px}}.vehicle-picker__silhouette svg.vehicle-picker__silhouette--kart{stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round}.vehicle-picker__silhouette svg.vehicle-picker__silhouette--rb20{stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}.vehicle-picker{--vehicle-picker-bg: #111315;--vehicle-picker-panel: #1a1d1f;--vehicle-picker-line: #34383a;--vehicle-picker-muted: #92999b;--vehicle-picker-text: #f1f2ee;--vehicle-picker-accent: #f4d21f;box-sizing:border-box;width:100%;margin-bottom:24px;color:var(--vehicle-picker-text);font-family:Inter,Arial Narrow,Arial,sans-serif}.vehicle-picker *,.vehicle-picker *:before,.vehicle-picker *:after{box-sizing:border-box}.vehicle-picker__header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px;color:var(--vehicle-picker-muted);font-size:10px;font-weight:800;letter-spacing:.16em}.vehicle-picker__kicker{color:var(--vehicle-picker-accent)}.vehicle-picker__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.vehicle-picker__card{position:relative;display:flex;min-width:0;flex-direction:column;padding:13px 13px 11px;border:1px solid var(--vehicle-picker-line);border-radius:0;background:var(--vehicle-picker-panel);color:var(--vehicle-picker-text);text-align:left;cursor:pointer;transition:border-color .14s ease,background-color .14s ease}.vehicle-picker__card:hover{border-color:#777d7d}.vehicle-picker__card:focus-visible{outline:2px solid var(--vehicle-picker-accent);outline-offset:3px}.vehicle-picker__card--selected{border-color:var(--vehicle-picker-accent);background:#20211b;box-shadow:inset 3px 0 0 var(--vehicle-picker-accent)}.vehicle-picker__card-top,.vehicle-picker__meta,.vehicle-picker__select{display:flex;align-items:center;justify-content:space-between;gap:8px}.vehicle-picker__eyebrow,.vehicle-picker__number{color:var(--vehicle-picker-muted);font-size:9px;font-weight:800;letter-spacing:.14em}.vehicle-picker__number{color:#606768}.vehicle-picker__silhouette{display:flex;height:62px;align-items:center;justify-content:center;margin:5px 0 7px;color:#d4d8d3}.vehicle-picker__silhouette svg{display:block;width:100%;max-width:220px;height:100%;overflow:visible;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:square;stroke-linejoin:miter}.vehicle-picker__silhouette circle{fill:var(--vehicle-picker-panel)}.vehicle-picker__card--selected .vehicle-picker__silhouette{color:var(--vehicle-picker-accent)}.vehicle-picker__card--selected .vehicle-picker__silhouette circle{fill:#20211b}.vehicle-picker__name{overflow:hidden;color:var(--vehicle-picker-text);font-size:clamp(12px,1.3vw,15px);font-weight:900;letter-spacing:.035em;text-overflow:ellipsis;white-space:nowrap}.vehicle-picker__meta{justify-content:flex-start;min-height:25px;color:var(--vehicle-picker-muted);font-size:9px}.vehicle-picker__weight{color:#d5d8d3;font-size:10px;font-weight:800;white-space:nowrap}.vehicle-picker__detail{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vehicle-picker__select{margin-top:6px;padding-top:8px;border-top:1px solid var(--vehicle-picker-line);color:var(--vehicle-picker-muted);font-size:9px;font-weight:800;letter-spacing:.13em}.vehicle-picker__card--selected .vehicle-picker__select{border-color:#635b20;color:var(--vehicle-picker-accent)}@media(max-width:420px){.vehicle-picker__grid{gap:7px}.vehicle-picker__card{padding:10px 9px}.vehicle-picker__meta{flex-wrap:wrap;gap:2px 6px}}
