:root{color-scheme:dark;--bg:#050608;--surface:#111519;--line:#2a3138;--text:#f2f5f7;--muted:#8b96a0;--faint:#56616d;--accent:#ff4a40;--brightness:1;--ease:cubic-bezier(.2,.75,.25,1);font-family:Manrope,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden}button,input{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none;touch-action:manipulation;transition:color .2s,background .2s,opacity .2s,border-color .2s}button:focus-visible,input:focus-visible{outline:2px solid #b7c8d8;outline-offset:5px}button:disabled{opacity:.25;cursor:default}[hidden]{display:none!important}.icon-library{position:absolute;width:0;height:0;overflow:hidden}.icon{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;pointer-events:none;width:24px;height:24px;}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.icon-button{display:flex;align-items:center;justify-content:center;border-radius:50%;width:48px;height:48px;color:#a4b1bd;}.icon-button:hover{color:#fff;background:#ffffff08}.cluster-shell{
 min-height:100svh;display:flex;flex-direction:column;background-color:var(--bg);
 background-image:radial-gradient(ellipse at 50% 43%,#05060830 15%,#05060800 65%),linear-gradient(180deg,#05060870 0%,#05060820 48%,#05060880 100%),url('../images/cockpit-carbon.webp');
 background-position:center;background-size:cover;background-repeat:no-repeat;
}.cluster-header{flex-shrink:0;padding:0 4%;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2;height:80px;}.wordmark{display:flex;align-items:center;gap:14px;font-size:15px;font-weight:600;letter-spacing:6px;color:#b5bec6}.brand-symbol{display:flex;gap:3px;transform:skew(-24deg)}.brand-symbol i{display:block;width:3px;height:14px;background:var(--accent)}.brand-symbol i:first-child{height:8px;align-self:flex-end;opacity:.4}.brand-symbol i:nth-child(2){height:11px;align-self:flex-end;opacity:.7}.drive-status{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;white-space:nowrap;font-size:14px;letter-spacing:1px;color:#a1afbb;min-height:48px;}.drive-status #cluster-mode{color:var(--accent);font-weight:700}.mode-indicator{width:5px;height:5px;background:var(--accent);transform:rotate(45deg)}.drive-status-divider{width:1px;height:10px;background:#3a454f;margin:0 2px}.header-tools{display:flex;align-items:center;gap:12px}.source-badge{display:flex;align-items:center;gap:8px;padding:0 8px;font-size:14px;min-height:48px;letter-spacing:1px;color:#a1afbb;}.source-badge .icon{width:18px;height:18px;}.status-dot{width:4px;height:4px;border:1px solid #a6b3bd;border-radius:50%}.cluster-main{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;padding:0 2%}.tachometer{position:relative;aspect-ratio:1600/820;container-type:inline-size;filter:brightness(var(--brightness));transition:filter .25s;isolation:isolate;width:min(100%,calc((100svh - 168px)*1.95122));}.tach-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.dial-guide{fill:none;stroke:url(#rim-gradient);stroke-width:1}.dial-track{fill:none;stroke:#262e37;stroke-width:6;stroke-linecap:butt}.dial-progress{fill:none;stroke:url(#arc-gradient);stroke-width:6;stroke-linecap:butt}.dial-progress-glow{fill:none;stroke:#c6d8e7;stroke-width:8;opacity:.2}.dial-redline{fill:none;stroke:var(--accent);stroke-width:6;opacity:.7}.dial-tick{stroke:#2d3640;stroke-width:4}.dial-tick.major{stroke-width:5}.dial-tick.is-lit{stroke:#d4dfe7}.dial-tick.is-red{stroke:#a23430}.dial-tick.is-red.is-lit{stroke:#ff554b}.dial-number{font-family:Barlow,sans-serif;font-weight:400;text-anchor:middle;dominant-baseline:middle;font-size:36px;fill:#a6b2be;}.dial-number.red{fill:var(--accent)}.needle-line{fill:none;stroke:var(--accent);stroke-width:5;stroke-linecap:butt}.needle-halo{fill:none;stroke:var(--accent);stroke-width:13;opacity:.8}.instrument-label{font-weight:500;white-space:nowrap;font-size:clamp(15px,1cqw,18px);letter-spacing:.8px;color:#a2afbb;}.speed-readout{position:absolute;top:33%;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center}.speed-digits{display:flex;align-items:center;font-family:Barlow,sans-serif;font-weight:300;font-size:16cqw;line-height:.93;letter-spacing:-.055em;font-variant-numeric:tabular-nums;text-shadow:0 0 70px #b8d9f10b;transform:translateX(-.028em)}.speed-leading-zero{color:#252e38;text-shadow:none}.speed-unit{line-height:1;margin-top:1.35cqw;font-size:clamp(18px,1.3cqw,23px);color:#afbdc8;letter-spacing:1px;}.rpm-readout{position:absolute;left:0;right:0;display:flex;align-items:baseline;justify-content:center;font-family:Barlow,sans-serif;font-weight:400;letter-spacing:1px;color:#c0cad3;font-variant-numeric:tabular-nums;font-size:clamp(36px,3cqw,52px);top:69%;gap:10px;}.rpm-unit{font-family:Manrope,sans-serif;letter-spacing:.5px;font-size:clamp(15px,1cqw,18px);color:#98a8b6;}.gear-readout{position:absolute;left:12%;top:35%;width:15%;display:flex;flex-direction:column;align-items:center}.gear-display{display:flex;align-items:center;gap:1.15cqw;margin-top:10px;}.gear-number{font-family:Barlow,sans-serif;font-size:10cqw;font-weight:300;line-height:1.03;font-variant-numeric:tabular-nums;display:block;min-width:5.2cqw;text-align:center}.gear-mode{font-family:Barlow,sans-serif;border-left:1px solid #3c4956;padding-left:1cqw;display:flex;align-items:center;font-size:clamp(22px,1.7cqw,30px);color:#a5b4c2;height:38px;}.paddle-controls{width:100%;display:flex;align-items:center;justify-content:center;gap:16px;margin-top:14px;}.paddle-controls button{background:#17212b;border:1px solid #3b4956;border-radius:3px;color:#d2dce5;width:52px;height:48px;font-size:28px;}.dynamics-instrument{position:absolute;left:73%;width:16%;display:flex;flex-direction:column;align-items:center;top:31%;}.g-meter{width:86%;margin:12px 0 8px;}.g-meter svg{width:100%;display:block}.g-ring{fill:none;stroke:#3b4957;stroke-width:1;opacity:.8}.g-ring:first-of-type{stroke:#4d5b68}.g-axis{fill:none;stroke:#596977;stroke-width:1;stroke-dasharray:2 6;opacity:.75}.g-trail{fill:none;stroke:var(--accent);stroke-width:2;opacity:.45}.g-point{fill:var(--accent)}.g-point-ring{fill:none;stroke:var(--accent);opacity:.3}.g-values{display:flex;align-items:baseline;justify-content:center;gap:1.2cqw;width:100%;font-family:Barlow,sans-serif;font-variant-numeric:tabular-nums}.g-values strong{font-weight:300;white-space:nowrap;font-size:clamp(38px,3.2cqw,52px);}.g-values strong>span{font-size:18px;margin-left:6px;color:#a5b4c2;}.shift-lights{position:absolute;left:50%;top:29.5%;transform:translateX(-50%);display:flex;gap:.4cqw}.shift-lights span{width:1.5cqw;background:#25303a;transform:skew(-20deg);transition:background .08s,box-shadow .08s;height:6px;}.shift-lights span.is-green{background:#173526}.shift-lights span.is-amber{background:#3c311c}.shift-lights span.is-red{background:#391b1d}.shift-lights span.is-green.is-lit{background:#79ef9b;box-shadow:0 0 9px #63ef9470,0 0 3px #a1ffba75}.shift-lights span.is-amber.is-lit{background:#ffcb69;box-shadow:0 0 9px #ffc35770,0 0 3px #ffe0a575}.shift-lights span.is-red.is-lit{background:#ff5149;box-shadow:0 0 10px #ff4a4080,0 0 3px #ff9c9675}.shift-lights.is-at-limit span.is-lit{background:#ff5149;box-shadow:0 0 12px #ff4a4090;animation:rev-limit .6s steps(2,end) infinite}@keyframes rev-limit{0%,100%{opacity:1}50%{opacity:.38}}.acceleration-instrument{position:absolute;left:11.5%;width:17%;top:75%;}.acceleration-number{display:flex;align-items:baseline;gap:8px;margin-top:8px;}.acceleration-number strong{font-family:Barlow,sans-serif;font-weight:300;font-variant-numeric:tabular-nums;font-size:clamp(40px,3.3cqw,56px);}.acceleration-number>span{font-size:16px;color:#a5b4c2;}.mini-chart{width:90%;display:block;overflow:visible;height:28px;margin-top:6px;}.chart-baseline{fill:none;stroke:#3b4652;stroke-width:1;stroke-dasharray:2 5}.chart-line{fill:none;stroke:#bb655e;stroke-width:1.3;stroke-linejoin:round;vector-effect:non-scaling-stroke}.load-instrument{position:absolute;top:84%;left:36.5%;width:27%;}.load-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}.load-heading .instrument-label{font-size:clamp(15px,1cqw,18px);letter-spacing:.8px;}.load-value{font-family:Barlow,sans-serif;font-size:clamp(26px,2cqw,34px);color:#d0dbe4;}.load-value small{font:15px Manrope,sans-serif;color:#a5b4c2;margin-left:6px;}.load-track{display:flex;gap:.25cqw;height:clamp(9px,.8cqw,14px);}.load-track span{flex:1;transform:skew(-20deg);background:#273440;border-radius:1px}.load-track span.is-lit{background:#a4b7c6}.load-track span.is-lit:last-child{background:var(--accent)}.reset-button{display:flex;align-items:center;justify-content:center;height:48px;width:auto;gap:10px;padding:0 18px;border:1px solid #465462;border-radius:5px;font-size:14px;color:#c3d0da;flex-shrink:0;}.reset-button .icon{height:20px;width:20px;}.reset-button:hover{color:white}
.cluster-dock{margin:0 4%;position:relative;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #303d493d;height:88px;}.cluster-dock:before{content:"";position:absolute;top:-1px;left:40%;right:40%;height:1px;background:linear-gradient(90deg,transparent,#b9463e75,transparent)}.engine-control{display:flex;align-items:center;gap:14px;text-align:left;padding:9px 0;color:#8d9eac;min-height:48px;}.engine-control>.icon{height:24px;width:24px;}.engine-control strong{display:block;font-weight:500;letter-spacing:.4px;font-size:18px;color:#d0dbe4;}.engine-control .chevron{margin-left:7px;height:20px;width:20px;color:#99aab8;}.engine-control:hover strong{color:#fff}.transport-controls{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:16px}.demo-button{display:flex;align-items:center;justify-content:center;gap:12px;font-weight:600;color:#d1dce5;border:1px solid #4b5a67;border-radius:4px;background:linear-gradient(180deg,#202c3540,#10171f20);padding:0 20px;min-height:48px;min-width:184px;font-size:14px;letter-spacing:1px;}.demo-button .icon{height:20px;width:20px;}.demo-button:hover{border-color:#adbbc6;background:#d7eaff0a}.demo-button use[href="#i-play"]{fill:currentColor;stroke:none}.throttle-button{display:flex;align-items:center;gap:8px;touch-action:none;height:48px;padding:0 16px;font-size:14px;letter-spacing:.5px;color:#c8a09c;}.throttle-button .icon{height:22px;width:22px;}.throttle-button:hover,.throttle-button.is-held{color:var(--accent);background:#ff4a4007}.throttle-button.is-held{box-shadow:inset 0 -1px 0 var(--accent)}.sound-control[aria-pressed="true"]{color:#d4dfe9}.dock-tools{display:flex;gap:10px;align-items:center}.is-immersed .cluster-header>:not(.header-tools),.is-immersed .header-tools>:not(.immersion-button){opacity:0;pointer-events:none}.is-immersed .cluster-dock>.engine-control,.is-immersed .cluster-dock .prototype-label,.is-immersed .cluster-dock .dock-tools>[data-dialog],.is-immersed .cluster-dock .transport-controls{opacity:0;pointer-events:none}.is-immersed .cluster-dock{border-color:transparent}.is-immersed .cluster-dock:before{opacity:0}.is-immersed .immersion-button{color:#f0f4f7;width:48px;min-width:48px;padding:0}
.is-immersed .immersion-button>span{display:none}.cluster-header>:not(.header-tools),.header-tools>*,.cluster-dock>*{transition:opacity .35s}.section-kicker{letter-spacing:.2px;color:var(--muted);font-size:14px;}h2{font-weight:500;letter-spacing:-.7px}.control-caption{color:var(--muted);font-size:15px;}.segmented{display:flex;background:#0b1014;border:1px solid #2d3943;border-radius:5px;padding:4px}.segmented button{color:var(--muted);border-radius:3px;min-height:44px;font-size:15px;padding:0 15px;}.segmented button.is-active{background:#283540;color:#e1e9ee}.mode-segments button.is-active{color:var(--accent)}.performance-dialog{width:min(1000px,calc(100% - 40px))!important}.performance-summary{display:grid;grid-template-columns:repeat(4,1fr);margin:30px 0}.performance-summary>div{padding:0 20px;border-left:1px solid var(--line)}.performance-summary>div:first-child{padding-left:0;border:0}.performance-summary strong{display:block;font-family:Barlow,sans-serif;font-weight:300;font-size:45px;margin-top:10px}.performance-summary small{font-family:Manrope,sans-serif;color:var(--muted);margin-left:8px;font-size:15px;}.performance-chart-wrap svg{width:100%;height:230px}.perf-grid path{fill:none;stroke:#354452;stroke-width:1;stroke-dasharray:3 5;vector-effect:non-scaling-stroke}.perf-y-labels text{fill:var(--muted);font-family:Barlow,sans-serif;font-size:17px;}.performance-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;vector-effect:non-scaling-stroke}.perf-x-labels{display:flex;justify-content:space-between;padding-left:4%;color:var(--muted);font-size:13px;}.engine-preview{display:flex;align-items:center;justify-content:center;height:160px;margin-top:-18px;position:relative}.engine-preview img{height:100%;width:auto}.engine-preview-specs{position:absolute;right:0;bottom:28px;color:var(--muted);display:flex;flex-direction:column;gap:6px;text-align:right;font-size:15px;max-width:50%;}.engine-preview-specs strong{color:#dce5ed;font-weight:400}
.app-dialog{max-height:calc(100svh - 48px);padding:30px;background:#111519;color:var(--text);border:1px solid #353c43;border-radius:16px;box-shadow:0 30px 130px #000b;overflow-y:auto;width:min(720px,calc(100% - 32px));}.app-dialog::backdrop{background:#020405c9;backdrop-filter:blur(12px)}.app-dialog[open]{animation:dialog-in .28s var(--ease)}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:25px}.dialog-header h2{margin:9px 0 0;line-height:1.3;font-size:28px;}.dialog-header .icon-button{flex-shrink:0;margin:-6px -8px 0 0}.engine-options{display:grid;gap:10px}.engine-option{display:flex;align-items:center;gap:22px;width:100%;padding:20px 18px;border:1px solid #2f363d;border-radius:9px;text-align:left;background:#151a1e}.engine-option:hover{border-color:#77818b}.engine-option.is-selected{border-color:#a35751;background:linear-gradient(120deg,#fa4c430c,#151a1e)}.engine-option-number{font-family:Barlow,sans-serif;font-weight:300;font-size:43px;line-height:1;color:#606a74;min-width:47px}.engine-option.is-selected .engine-option-number{color:var(--accent)}.engine-option-description{display:flex;flex-direction:column;gap:6px}.engine-option-description strong{font-weight:600;font-size:18px;}.engine-option-description>span{color:var(--muted);font-size:15px;}.engine-choice-indicator{margin-left:auto;width:22px;height:22px;border:1px solid #4a545e;border-radius:50%;display:flex;justify-content:center;align-items:center;flex-shrink:0}.engine-choice-indicator .icon{width:13px;height:13px;opacity:0}.is-selected .engine-choice-indicator{color:var(--accent);border-color:var(--accent)}.is-selected .engine-choice-indicator .icon{opacity:1}.dialog-footnote{color:var(--muted);margin:23px 0 0;font-size:14px;line-height:1.65;}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:24px 0;border-top:1px solid var(--line)}.setting-row label{;font-size:17px;}.setting-row p{color:var(--muted);margin:7px 0 0;font-size:14px;line-height:1.5;}.range-control{display:flex;align-items:center;gap:12px;width:210px;flex-shrink:0;}.range-control input{accent-color:var(--accent);min-width:0;cursor:pointer;min-height:44px;width:150px;}.range-control output{white-space:nowrap;color:var(--muted);font-size:14px;width:48px;}.switch-input{appearance:none;flex-shrink:0;background:#343d45;border-radius:20px;cursor:pointer;position:relative;transition:background .2s;width:48px;height:30px;}.switch-input:after{content:"";position:absolute;background:#bec5cb;border-radius:50%;transition:transform .2s;width:22px;height:22px;left:4px;top:4px;}.switch-input:checked{background:var(--accent)}.switch-input:checked:after{background:#fff;transform:translateX(18px);}.settings-info{display:flex;align-items:flex-start;gap:10px;margin-top:10px;padding:17px;background:#1a2025;border-radius:7px;color:var(--muted)}.settings-info .icon{margin-top:2px;width:20px;height:20px;}.settings-info p{margin:0;font-size:14px;line-height:1.6;}.source-option{padding:22px 0;display:flex;gap:17px;align-items:center;border-top:1px solid var(--line)}.source-option-icon{color:var(--muted)}.source-option.is-selected .source-option-icon{color:var(--accent)}.source-option strong{font-weight:500;font-size:18px;}.source-option p{line-height:1.5;color:var(--muted);margin:6px 0 0;font-size:14px;}.source-tag{margin-left:auto;color:#dfc2be;background:#fa4c4312;border:1px solid #633f3d;border-radius:4px;white-space:nowrap;font-size:13px;padding:5px 8px;}.source-tag.is-muted{color:var(--muted);background:#1a2025;border-color:#343d45}.toast{position:fixed;bottom:108px;left:50%;transform:translate(-50%,10px);border:1px solid #414b55;border-radius:8px;padding:12px 20px;background:#1b232bf5;box-shadow:0 8px 30px #0007;color:var(--text);z-index:20;max-width:calc(100vw - 32px);width:max-content;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;font-size:15px;line-height:1.5;}.toast.is-visible{opacity:1;transform:translate(-50%,0)}@keyframes dialog-in{from{transform:translateY(8px)}to{transform:translateY(0)}}@keyframes gear-shift{from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.gear-number.is-shifting{animation:gear-shift .2s var(--ease)}

/* Virtual engine temperature: replaces the secondary session information. */
.temperature-instrument{position:absolute;left:75%;top:75%;width:15%;color:#c6d6e2}
.temperature-readout{display:flex;align-items:baseline;gap:8px;margin-top:8px}
.temperature-readout>.icon{width:24px;height:24px;align-self:center;color:#91aabc;margin-right:2px}
.temperature-readout strong{font-family:Barlow,sans-serif;font-size:clamp(40px,3.3cqw,56px);font-weight:300;font-variant-numeric:tabular-nums;line-height:1.2}
.temperature-readout>span{font-size:19px;color:#a5b4c2}
.temperature-track{height:5px;margin-top:15px;width:90%;background:linear-gradient(90deg,#3e688435,#536c7a55 65%,#a749423d);position:relative;overflow:hidden}
.temperature-track>span{position:absolute;inset:0;background:currentColor;transform:scaleX(.525);transform-origin:left;transition:transform 1s linear}
.temperature-instrument[data-thermal="cool"]{color:#83bada}
.temperature-instrument[data-thermal="warm"]{color:#efb965}
.session-actions{display:flex;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid var(--line);margin-top:25px;padding-top:20px}
.session-actions .dialog-footnote{margin:0;max-width:560px}
@media(min-aspect-ratio:2/1){.cluster-header{height:68px}.cluster-dock{height:76px}.tachometer{width:min(100%,calc((100svh - 144px)*1.95122))}}
@media(max-width:1100px){
 .cluster-header{height:72px;padding:0 3%}.wordmark{font-size:14px;letter-spacing:4px;gap:10px}.header-tools{gap:3px}.drive-status{font-size:13px;letter-spacing:.5px;gap:9px}.cluster-dock{height:80px;margin:0 3%}.transport-controls{gap:8px}.engine-control{gap:8px}.engine-control strong{font-size:16px}.engine-control>.icon{display:none}.demo-button{min-width:158px;font-size:13px;padding:0 15px}.throttle-button{font-size:13px;padding:0 12px}.dock-tools{gap:3px}.tachometer{width:min(100%,calc((100svh - 152px)*1.95122))}.instrument-label,.load-heading .instrument-label{font-size:14px;letter-spacing:.4px}.temperature-readout>.icon{display:none}.acceleration-number strong,.temperature-readout strong{font-size:38px}.g-values strong{font-size:36px}.acceleration-number>span{font-size:14px}
}
@media(max-width:700px) and (orientation:portrait){
 .cluster-header{height:72px;padding:0 18px}.wordmark{font-size:13px;letter-spacing:3px;gap:10px}.drive-status{top:78px;font-size:13px;z-index:4}.header-tools{gap:0}#fullscreen-button{display:none}.source-badge{font-size:13px;letter-spacing:.5px;gap:6px;padding:0 6px}.source-badge .icon{display:none}.header-tools .icon-button{width:44px}.cluster-main{padding:48px 0 0;overflow:hidden}.tachometer{width:100%;height:750px;aspect-ratio:auto}.tach-svg{width:178%;max-width:none;height:auto;left:-39%;top:0;aspect-ratio:1600/820}.speed-readout{top:112px}.speed-digits{font-size:32cqw;line-height:1}.speed-unit{font-size:16px;margin-top:5px}.shift-lights{top:92px;gap:5px}.shift-lights span{width:14px;height:5px}.rpm-readout{top:277px;font-size:30px;gap:9px}.rpm-unit{font-size:14px}.gear-readout{top:365px;left:10%;width:25%}.instrument-label,.load-heading .instrument-label{font-size:12px;letter-spacing:.5px}.gear-number{font-size:80px;min-width:44px}.gear-mode{font-size:21px;height:32px;padding-left:10px}.gear-display{gap:12px;margin-top:8px}.dynamics-instrument{top:365px;left:58%;width:30%}.g-meter{width:100px;margin:8px 0 4px}.g-values strong{font-size:30px}.g-values strong>span{font-size:15px;margin-left:5px}.acceleration-instrument{left:8%;top:570px;width:34%}.acceleration-number{gap:7px;margin-top:8px}.acceleration-number strong{font-size:31px}.acceleration-number>span{font-size:13px}.mini-chart{height:20px;margin-top:7px}.temperature-instrument{left:62%;top:570px;width:31%}.temperature-readout{margin-top:8px;gap:6px}.temperature-readout strong{font-size:32px}.temperature-readout>span{font-size:16px}.temperature-track{height:4px;margin-top:17px;width:100%}.load-instrument{top:674px;left:20%;width:60%}.load-heading{margin-bottom:10px}.load-value{font-size:25px}.load-value small{font-size:14px}.load-track{height:8px;gap:3px}.cluster-dock{height:140px;flex-wrap:wrap;margin:0 18px;align-content:flex-end;padding:0 0 14px}.transport-controls{left:0;right:0;top:12px;transform:none;justify-content:center;gap:5px}.demo-button{min-width:144px;font-size:12px;padding:0 14px;letter-spacing:.6px}.throttle-button{font-size:12px;letter-spacing:0;padding:0 8px}.throttle-button .icon{width:18px}.sound-control{width:44px;flex-shrink:0}.engine-control strong{font-size:16px}.engine-control{gap:4px;padding:5px 0}.cluster-dock>.dock-tools{margin-left:auto}.paddle-controls{margin-top:10px;width:118px;gap:14px}.paddle-controls button{width:48px;height:44px;font-size:26px}.app-dialog{padding:24px 20px}.dialog-header h2{font-size:25px}.setting-row{flex-wrap:wrap;gap:15px;padding:20px 0}.range-control{width:100%}.range-control input{width:100%}.setting-row .segmented{width:100%}.setting-row .segmented button{flex:1;padding:0 10px}.engine-option{padding:17px 12px;gap:12px}.engine-option-number{font-size:34px;min-width:35px}.engine-option-description strong{font-size:15px}.engine-option-description>span{font-size:14px}.source-option{gap:11px;flex-wrap:wrap}.source-option strong{font-size:16px}.source-option p{font-size:14px}.source-option>div{flex:1}.source-tag{margin-left:35px}.performance-summary{grid-template-columns:1fr 1fr;gap:25px 0}.performance-summary>div{padding:0 12px}.performance-summary>div:nth-child(3){padding-left:0;border:0}.performance-summary .control-caption{font-size:14px}.performance-summary strong{font-size:36px}.performance-chart-wrap svg{height:170px}.engine-preview-specs{font-size:13px;max-width:55%}.engine-preview{justify-content:flex-start;height:140px}.engine-preview img{max-width:60%;object-fit:contain}.session-actions{align-items:flex-start;flex-direction:column;gap:17px}.is-immersed .cluster-header{height:128px}.is-immersed .cluster-dock{height:56px}.is-immersed .cluster-main{padding-top:0}
}
@media(max-width:900px) and (orientation:landscape){
 .cluster-header{height:56px;padding:0 3%}.wordmark{font-size:13px;letter-spacing:3px}.header-tools{gap:0}.drive-status{font-size:12px;gap:7px;letter-spacing:.5px}.source-badge{font-size:12px}.cluster-dock{height:64px}.tachometer{width:min(100%,calc((100svh - 120px)*1.95122))}.engine-control strong{font-size:14px}.demo-button{min-width:138px;font-size:12px;padding:0 12px;gap:8px}.demo-button .icon{width:18px;height:18px}.transport-controls{gap:5px}.throttle-button{font-size:12px;gap:5px;padding:0 8px}.throttle-button .icon{width:19px;height:19px}.instrument-label{font-size:12px}.gear-mode{font-size:18px;height:27px}.g-values strong{font-size:28px}.g-values strong>span{font-size:14px}.rpm-readout{font-size:25px}.rpm-unit{font-size:13px}.speed-unit{font-size:15px}.acceleration-instrument,.load-instrument,.temperature-instrument{display:none}.shift-lights span{height:5px}.paddle-controls{gap:9px;margin-top:8px}.paddle-controls button{width:44px;height:44px;font-size:24px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.shift-lights.is-at-limit span.is-lit{animation:none!important}}
body.reduce-motion *,body.reduce-motion *::before,body.reduce-motion *::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
body.reduce-motion .shift-lights.is-at-limit span.is-lit{animation:none!important}
body:not(.is-running) .shift-lights.is-at-limit span.is-lit{animation-play-state:paused}

/* The backdrop fades away at phone height; the instruments keep priority. */
@media(max-width:700px) and (orientation:portrait){
 .cluster-shell{background-image:linear-gradient(#050608b8,#050608b8),url('../images/cockpit-carbon.webp');background-position:center;background-size:auto 100%;}
}

/* ============================================================================
   Functional application (brief 11): additions to the visual direction.
   Sizes readable from a metre away (≥ 16 px while driving, 20 px for states), portrait of pre-2021 S/X,
   touch pedals, quick toggles, settings panel, first run, license, probe.
   ============================================================================ */
:root{--ok:#79ef9b;--warn:#ffcb69;--bad:#ff5149;--info:#83bada}
.instrument-label,.load-heading .instrument-label{font-size:clamp(16px,1.05cqw,19px)}
.instrument-label .estimated{font-size:.75em;letter-spacing:.3px;color:#6f7d89;text-transform:none;margin-left:4px}
.speed-unit{font-size:clamp(19px,1.35cqw,24px)}
.rpm-unit{font-size:clamp(16px,1.05cqw,19px)}
.acceleration-number>span,.temperature-readout>span{font-size:18px}
.dial-number{font-size:38px}
.wordmark{font-size:16px}.drive-status{font-size:16px}.source-badge{font-size:16px}
.section-kicker,.control-caption,.setting-row p,.dialog-footnote,.settings-info p,.source-option p,.source-tag,.perf-x-labels,.range-control output,.reset-button,.demo-button,.engine-option-description>span{font-size:16px}
.setting-row label{font-size:19px}
.segmented button{font-size:17px;min-height:48px}
.g-values{flex-direction:row;align-items:baseline;justify-content:center;gap:1.1cqw}
.g-lat{font-family:Barlow,sans-serif;font-size:clamp(17px,1.3cqw,22px);color:#a5b4c2;white-space:nowrap}
.engine-state{position:absolute;left:50%;top:75.5%;transform:translateX(-50%);font-size:clamp(18px,1.4cqw,22px);letter-spacing:2.5px;color:#a5b4c2;text-transform:uppercase;white-space:nowrap;min-height:1.4em}
.engine-state[data-state="limiter"],.engine-state[data-state="gpsLost"],.engine-state[data-state="gpsDenied"]{color:var(--accent)}
.engine-state[data-state="overrun"]{color:#83bada}.engine-state[data-state="tunnel"],.engine-state[data-state="degraded"]{color:var(--warn)}
.downshift-hint{position:absolute;left:50%;bottom:6%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;color:#6f7d89;font-size:16px;letter-spacing:.5px;pointer-events:none}
.downshift-hint .icon{width:20px;height:20px}
.tachometer{touch-action:manipulation}
.is-manual-touch .tachometer{cursor:pointer}

/* Source badge: the dot colour follows the state */
.source-badge .status-dot{transition:background .3s,border-color .3s,box-shadow .3s}
.source-badge[data-state="active"] .status-dot,.source-badge[data-state="demo"] .status-dot,.source-badge[data-state="replay"] .status-dot{background:var(--ok);border-color:var(--ok);box-shadow:0 0 8px #79ef9b80}
.source-badge[data-state="searching"] .status-dot,.source-badge[data-state="fallback"] .status-dot,.source-badge[data-state="background"] .status-dot{background:var(--warn);border-color:var(--warn)}
.source-badge[data-state="tunnel"] .status-dot{background:var(--warn);border-color:var(--warn);animation:pulse 1.2s ease-in-out infinite}
.source-badge[data-state="denied"] .status-dot,.source-badge[data-state="unavailable"] .status-dot,.source-badge[data-state="lost"] .status-dot,.source-badge[data-state="timeout"] .status-dot{background:var(--bad);border-color:var(--bad)}
.source-badge[data-state="denied"],.source-badge[data-state="lost"]{color:#f2b5b0}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* Main button and quick toggles */
.power-button{display:flex;align-items:center;justify-content:center;gap:12px;font-weight:600;color:#d1dce5;border:1px solid #4b5a67;border-radius:4px;background:linear-gradient(180deg,#202c3540,#10171f20);padding:0 22px;min-height:52px;min-width:210px;font-size:16px;letter-spacing:1px}
.power-button .icon{width:22px;height:22px}
.power-button.is-on{border-color:#a35751;color:#fff;background:linear-gradient(180deg,#ff4a4022,#10171f20)}
.power-button:disabled{opacity:.6}
.quick-toggle{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 14px;border:1px solid #303d49;border-radius:4px;color:#98a8b6;font-size:15px;letter-spacing:.5px}
.quick-toggle .icon{width:20px;height:20px}
.quick-toggle[aria-pressed="true"]{color:#e1e9ee;border-color:#5b6b79;background:#ffffff08}
#cabin-button[aria-pressed="true"]{color:#83bada}
.engine-tag{display:inline-block;white-space:nowrap;margin-left:8px;font-size:13px;letter-spacing:.5px;text-transform:uppercase;padding:2px 7px;border-radius:3px;border:1px solid #3a4652;color:#8b96a0;vertical-align:middle}
.engine-tag.is-free{color:var(--ok);border-color:#2e6b44}.engine-tag.is-unlocked{color:#83bada;border-color:#2f5a70}.engine-tag.is-locked{color:var(--warn);border-color:#6b5426}
.engine-option .engine-tag{margin-left:auto;margin-right:12px}
.engine-options.compact .engine-option{padding:14px}
.preview-button{display:flex;align-items:center;gap:8px;margin-top:8px;border:1px solid #465462;border-radius:5px;padding:8px 14px;color:#c3d0da;font-size:15px;align-self:flex-end}
.preview-button .icon{width:18px;height:18px}

/* Touch pedals of the demo */
.pedals{position:absolute;inset:0;pointer-events:none;display:flex;justify-content:space-between;align-items:flex-end;padding:0 2% 2%;z-index:3}
.pedal{pointer-events:auto;touch-action:none;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:12px;width:clamp(96px,11vw,160px);height:clamp(180px,34vh,320px);border:1px solid #3a4652;border-radius:14px;background:linear-gradient(180deg,#11161b,#1a2127);color:#a5b4c2;font-size:15px;letter-spacing:1px;padding-bottom:22px;box-shadow:inset 0 2px 0 #ffffff0a,0 10px 30px #0008}
.pedal .icon{width:34px;height:34px}
.pedal-accelerator{color:#c8a09c}.pedal-accelerator.is-held{color:var(--accent);border-color:var(--accent);background:linear-gradient(180deg,#ff4a4014,#1a2127)}
.pedal-brake{color:#9cb8cc}.pedal-brake.is-held{color:#83bada;border-color:#83bada;background:linear-gradient(180deg,#83bada14,#1a2127)}
.cluster-main{position:relative}

/* Photographable status line */
.status-line{position:fixed;left:0;right:0;bottom:0;padding:6px 12px;background:#050608e0;color:#c0cad3;font:14px/1.4 ui-monospace,Menlo,monospace;z-index:15;border-top:1px solid #2a3138;white-space:pre-wrap}

/* Update banner and compatibility blocker */
.update-banner{position:fixed;top:12px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding:10px 12px 10px 16px;background:#1b232bf5;border:1px solid #414b55;border-radius:8px;z-index:30;font-size:16px;box-shadow:0 8px 30px #0007}
.update-banner .icon{width:20px;height:20px;color:#83bada}
.update-banner button:not(.icon-button){border:1px solid #5b6b79;border-radius:5px;padding:8px 14px;color:#e1e9ee;font-size:15px}
.compat-blocker{position:fixed;inset:0;display:grid;place-items:center;background:#050608f2;z-index:40;padding:24px}
.compat-blocker>div{max-width:640px;text-align:center;color:var(--text)}
.compat-blocker .icon{width:48px;height:48px;color:var(--warn)}
.compat-blocker h2{font-size:28px;margin:12px 0}.compat-blocker p{font-size:18px;line-height:1.6;color:#c0cad3}
.compat-blocker button{margin-top:18px;border:1px solid #5b6b79;border-radius:6px;padding:12px 22px;font-size:16px;color:#e1e9ee}

/* Focus mode: controls hidden, revealed on touch */
.is-immersed.is-peek .cluster-header>:not(.header-tools),.is-immersed.is-peek .header-tools>:not(.immersion-button),.is-immersed.is-peek .cluster-dock>.engine-control,.is-immersed.is-peek .cluster-dock .transport-controls,.is-immersed.is-peek .cluster-dock .dock-tools>[data-dialog]{opacity:1;pointer-events:auto}
.is-immersed .status-line{opacity:.7}

/* Economy rendering (MCU2): no SVG blurs or animated shadows */
.eco-render .dial-progress-glow,.eco-render .needle-halo{display:none}
.eco-render .shift-lights span{box-shadow:none!important}
.eco-render .tachometer{transition:none}
.reduce-motion .shift-lights.is-static-limit span.is-lit{animation:none!important;background:#ff5149}

/* Generated settings panel */
.settings-dialog{width:min(900px,calc(100% - 32px))!important;padding:0 30px 30px}
.dialog-header.sticky{position:sticky;top:0;background:#111519;padding:26px 0 14px;z-index:2;margin-bottom:0}
.advanced-toggle{display:flex;align-items:center;gap:10px;margin-left:auto;margin-right:14px;font-size:15px;color:var(--muted);white-space:nowrap}
.settings-nav{position:sticky;top:96px;z-index:2;display:flex;gap:8px;overflow-x:auto;padding:10px 0 12px;background:#111519;scrollbar-width:none;border-bottom:1px solid var(--line)}
.settings-nav::-webkit-scrollbar{display:none}
.settings-nav button{flex-shrink:0;border:1px solid #2d3943;border-radius:20px;padding:0 16px;min-height:44px;font-size:15px;color:var(--muted)}
.settings-nav button.is-active{color:#e1e9ee;border-color:#5b6b79;background:#283540}
.settings-group{padding-top:26px}
.settings-group h3{font-size:22px;font-weight:500;margin:0 0 4px;letter-spacing:-.3px}
.settings-group .group-help{margin:0 0 6px;color:var(--muted);font-size:15px;line-height:1.5}
.setting-row.is-block{flex-direction:column;align-items:stretch;gap:14px}
.setting-row.is-block .setting-ui{width:100%}
.setting-text{min-width:0;flex:1}
.setting-ui{display:flex;align-items:center;gap:12px;flex-shrink:0}
.range-control{width:auto;gap:10px}
.range-control input[type=range]{width:200px;min-height:48px}
.step-button{width:48px;height:48px;border:1px solid #3b4956;border-radius:4px;background:#17212b;color:#d2dce5;font-size:26px;line-height:1}
.range-control output{width:auto;min-width:78px;text-align:right;color:#e1e9ee;font-family:Barlow,sans-serif;font-size:19px}
.auto-toggle{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--muted)}
.switch-input.small{width:40px;height:26px}.switch-input.small:after{width:18px;height:18px}.switch-input.small:checked:after{transform:translateX(14px)}
.setting-ui select{min-height:48px;font-size:17px;color:#e1e9ee;background:#0b1014;border:1px solid #2d3943;border-radius:5px;padding:0 12px;max-width:100%}
.vehicle-info{margin:0;color:var(--muted);font-size:15px;line-height:1.5}
.status-text{margin:0;white-space:pre-wrap;font:14px/1.5 ui-monospace,Menlo,monospace;color:#c0cad3;background:#0b1014;border:1px solid #2d3943;border-radius:6px;padding:12px;max-width:100%;overflow-x:auto}
.settings-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:26px;padding-top:20px}
.settings-footer .dialog-footnote{margin:0;text-align:right}
.setting-help{color:var(--muted);font-size:15px;line-height:1.5;margin:8px 0 0}
.primary-button{border:1px solid #a35751;border-radius:6px;padding:0 22px;min-height:52px;font-size:17px;font-weight:600;color:#fff;background:linear-gradient(180deg,#ff4a4030,#10171f20)}
.primary-button:disabled{opacity:.4}

/* First run: the same instrumentation as the cockpit. */
.choice-list{display:grid;gap:8px}
.onboarding-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px}
.onboarding-dialog{
 width:min(1040px,calc(100% - 40px))!important;max-height:calc(100svh - 40px);padding:0;
 background:var(--surface);border:1px solid #3b4650;border-radius:14px;overflow:hidden;
 box-shadow:0 32px 100px #000b,inset 0 1px #c2d4e70a;
}
.onboarding-dialog[open]{display:flex;flex-direction:column}
.onboarding-dialog::backdrop{background:#020405b8;backdrop-filter:blur(7px)}
.onboarding-header{flex-shrink:0;padding:26px 32px 0;background:linear-gradient(115deg,#1b242a70,transparent 70%)}
.onboarding-topline{display:flex;align-items:center;justify-content:space-between;gap:16px}
.onboarding-topline .wordmark{font-size:15px;letter-spacing:4px;gap:12px}
.onboarding-kicker{font-size:14px;color:#9aa8b4}
.onboarding-progress{margin-top:26px}
.onboarding-progress ol{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;padding:0;margin:0;gap:18px}
.onboarding-progress li{border-bottom:1px solid #303a44;position:relative}
.onboarding-progress li.is-current{border-color:var(--accent)}
.onboarding-progress li.is-complete{border-color:#738696}
.onboarding-progress button{display:flex;align-items:center;gap:10px;min-height:46px;padding:0 0 12px;width:100%;text-align:left;color:#83929f;font-size:14px}
.onboarding-progress button:disabled{opacity:1;cursor:default}
.onboarding-step-number{font:400 19px/1 Barlow,sans-serif;color:#82909d;width:25px;height:24px;display:grid;place-items:center}
.onboarding-step-number .icon{width:18px;height:18px}
.is-current .onboarding-step-number{color:var(--accent)}
.is-current>button{color:var(--text);font-weight:600}
.is-complete>button{color:#b8c7d3}
.onboarding-progress button:not(:disabled):hover{color:#fff}
.onboarding-heading{padding:25px 0 24px}
.onboarding-heading h2{font-family:Barlow,Manrope,sans-serif;font-size:clamp(29px,3.1vw,38px);font-weight:400;letter-spacing:-.5px;line-height:1.15;margin:0;color:#f2f5f7;outline:none}
.onboarding-heading p{color:#a2afba;font-size:15px;line-height:1.6;margin:10px 0 0;max-width:72ch}
#onboarding-body{display:flex;flex-direction:column;min-height:0}
.onboarding-step{display:flex;flex-direction:column;min-height:0}
.onboarding-content{padding:0 32px 24px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#40505c transparent;min-height:0}
.model-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.onboarding-dialog .choice{color:var(--text);border:1px solid #35404a;border-radius:7px;background:linear-gradient(155deg,#202a334d,#10151b);text-align:left;min-width:0}
.model-choice{display:flex;flex-direction:column;justify-content:flex-end;padding:17px 14px 16px;min-height:164px;gap:15px;position:relative}
.vehicle-art{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;flex-shrink:0;pointer-events:none;user-select:none}
.model-choice .vehicle-art{margin:auto 0 0;filter:drop-shadow(0 9px 4px #0005);transition:transform .2s var(--ease)}
.model-choice-name{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px}
.model-choice-name strong{font:400 26px/1.2 Barlow,sans-serif;white-space:nowrap}
.model-choice-name .icon{width:18px;height:18px;color:#8297a7;transition:color .2s}
.onboarding-dialog .choice.is-selected{border-color:#b75d56;background:linear-gradient(140deg,#ff4a4010,#151c23)}
.onboarding-explainer{display:flex;align-items:center;gap:14px;padding:20px 0 0;color:#a2afba;max-width:740px}
.onboarding-explainer>.icon{color:#a6bacb;width:22px;height:22px}
.onboarding-explainer p{font-size:14px;line-height:1.65;margin:0}
.onboarding-dialog .onboarding-actions{flex-shrink:0;margin:0;padding:18px 32px;border-top:1px solid #2b3540;background:#0d1217;gap:20px}
.onboarding-footer-note{display:flex;align-items:center;gap:9px;margin:0;flex:1;color:#94a4b2;font-size:12px;line-height:1.6}
.onboarding-footer-note .icon{width:17px;height:17px;color:#728797}
.onboarding-dialog .reset-button{margin:0;min-height:48px;border-color:#3b4a56;border-radius:5px;font-size:14px}
.onboarding-back .icon{transform:rotate(180deg);width:18px;height:18px}
.onboarding-dialog .primary-button{display:flex;align-items:center;justify-content:center;gap:12px;min-height:50px;border:1px solid #e0655c;background:linear-gradient(#bd423a,#a6332d);box-shadow:inset 0 1px #ffb6ae26;color:#fff;border-radius:5px;font-size:15px;white-space:nowrap}
.onboarding-dialog .primary-button .icon{width:20px;height:20px}
.variant-layout{display:grid;grid-template-columns:200px minmax(0,1fr);align-items:start;gap:28px}
.vehicle-preview{position:sticky;top:0;display:flex;flex-direction:column;align-items:center;padding:24px 12px;border:1px solid #2e3943;border-radius:8px;background:linear-gradient(160deg,#1e283180,#10151a);text-align:center}
.vehicle-preview .vehicle-art{margin:6px 0 22px}
.vehicle-preview>strong{font:400 32px/1.2 Barlow,sans-serif}
.vehicle-preview>span{color:#95a6b3;font-size:12px;line-height:1.6;margin-top:8px}
.variant-groups{min-width:0;display:grid;gap:22px}
.variant-group h3{display:flex;align-items:center;gap:12px;margin:0 0 10px;font:400 18px/1.3 Barlow,sans-serif;color:#b0c0cd;letter-spacing:.4px}
.variant-group h3::after{content:"";height:1px;background:#2e3943;flex:1}
.variant-choice{display:flex;align-items:center;gap:18px;padding:13px 16px;min-height:79px;width:100%}
.variant-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.variant-copy>strong{font-size:15px;font-weight:600;line-height:1.4}
.variant-meta{color:#98a9b7;font-size:12px;line-height:1.5}
.variant-performance{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.variant-performance>strong{font:300 29px/1 Barlow,sans-serif;font-variant-numeric:tabular-nums;color:#dce6ee}
.variant-performance small{font-size:17px;color:#9dafbf}
.variant-performance>span{font-size:10px;letter-spacing:.2px;color:#8e9eac}
.variant-choice>.icon{width:18px;height:18px;color:#8b9eae}
.onboarding-dialog .choice:disabled{opacity:.5}
.variant-unavailable{font-size:12px;color:#d6b47d}
.onboarding-vehicle{display:flex;align-items:center;gap:20px;padding:14px 18px;border:1px solid #35424c;border-radius:7px;background:linear-gradient(110deg,#222e374d,#141a20);margin-bottom:24px}
.onboarding-vehicle>.vehicle-art{width:125px}
.onboarding-vehicle>div{flex:1;min-width:0}
.onboarding-vehicle>div>span{font-size:11px;color:#9cb0bf}
.onboarding-vehicle strong{display:block;margin:4px 0;font-size:17px;font-weight:600;line-height:1.5}
.onboarding-vehicle strong span{font-weight:400;color:#bfccd6;margin-left:6px}
.onboarding-vehicle p{margin:0;font-size:12px;color:#9caebb}
.onboarding-change{font-size:13px;min-height:48px;padding:0 12px;color:#c1cfd9;text-decoration:underline;text-decoration-color:#566978;text-underline-offset:5px}
.onboarding-setup{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:32px}
.onboarding-controls .setting-row{padding:20px 0;gap:16px}
.onboarding-controls .setting-row:first-child{border-top:0;padding-top:0}
.onboarding-controls .setting-row:last-child{padding-bottom:0}
.onboarding-controls .setting-row label{font-size:16px;font-weight:500}
.onboarding-controls .setting-row p{font-size:13px;color:#a0afbc;line-height:1.65;margin-top:7px}
.onboarding-controls .setting-row.is-block{gap:16px}
.onboarding-controls .segmented{width:100%;flex-wrap:wrap;gap:4px;padding:5px;background:#0b1116;border-color:#35424e}
.onboarding-controls .segmented button{flex:1;min-height:48px;padding:0 15px;font-size:15px;color:#9cafbe;border:1px solid transparent}
.onboarding-controls .segmented button.is-active{background:#2c3945;border-color:#5b7082;color:#fff;box-shadow:inset 0 1px #d1e9ff0a}
.onboarding-switch{display:flex;align-items:center;justify-content:center;min-width:56px;min-height:48px;cursor:pointer}
.onboarding-switch input{margin:0}
.onboarding-notes{border-left:1px solid #303b44;padding-left:26px;display:flex;flex-direction:column;gap:20px}
.onboarding-notice{display:flex;align-items:flex-start;gap:12px}
.onboarding-notice>.icon{color:#9eb6c8;width:21px;height:21px;margin-top:1px}
.onboarding-notice h3{font-size:14px;font-weight:500;margin:0 0 7px;color:#d1dde6;line-height:1.5}
.onboarding-notice p{font-size:12px;line-height:1.8;color:#99aab8;margin:0}
.onboarding-dialog button:focus-visible,.onboarding-dialog input:focus-visible{outline:2px solid #d2e3ef;outline-offset:3px}
@media(hover:hover){
 .onboarding-dialog .choice:not(:disabled):hover{border-color:#92a7b8;background:linear-gradient(155deg,#2c394585,#16202a)}
 .model-choice:hover .vehicle-art{transform:translateY(-3px)}
 .model-choice:hover .model-choice-name .icon{color:var(--accent)}
 .onboarding-dialog .primary-button:hover{background:linear-gradient(#d04b42,#b53a32);border-color:#fc877d}
 .onboarding-change:hover{color:#fff;text-decoration-color:#b9cddc}
}
@media(max-width:800px){
 .onboarding-header{padding:22px 24px 0}
 .onboarding-content{padding:0 24px 22px}
 .onboarding-dialog .onboarding-actions{padding:16px 24px}
 .model-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
 .model-choice{grid-column:span 2;min-height:142px;gap:8px}
 .model-choice:nth-child(4){grid-column:2/span 2}
 .model-choice .vehicle-art{max-height:74px}
 .variant-layout{grid-template-columns:150px minmax(0,1fr);gap:18px}
 .onboarding-setup{gap:22px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .onboarding-notes{padding-left:20px}
 .onboarding-dialog[data-step="2"] .onboarding-footer-note{display:none}
}
@media(max-width:560px){
 .onboarding-dialog{width:calc(100% - 20px)!important;max-width:calc(100% - 20px);max-height:calc(100svh - 20px);border-radius:10px}
 .onboarding-header{padding:20px 18px 0}
 .onboarding-topline .wordmark{font-size:13px;letter-spacing:3px}
 .onboarding-kicker{font-size:11px}
 .onboarding-progress{margin-top:18px}
 .onboarding-progress ol{gap:12px}
 .onboarding-progress button{font-size:12px;gap:5px;min-height:44px;padding-bottom:10px}
 .onboarding-step-number{font-size:16px;width:20px}
 .onboarding-heading{padding:20px 0}
 .onboarding-heading h2{font-size:29px}
 .onboarding-heading p{font-size:13px;margin-top:8px}
 .onboarding-content{padding:0 18px 20px}
 .model-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .model-choice{grid-column:auto;min-height:136px;padding:12px;gap:10px}
 .model-choice:nth-child(4){grid-column:auto}
 .model-choice:last-child{grid-column:1/-1;flex-direction:row;align-items:center;min-height:90px;gap:18px}
 .model-choice:last-child .vehicle-art{width:45%;margin:0}
 .model-choice-name strong{font-size:24px}
 .model-choice:last-child .model-choice-name{flex:1}
 .onboarding-explainer{padding-top:18px;gap:10px}
 .onboarding-explainer p{font-size:12px}
 .onboarding-dialog .onboarding-actions{padding:14px 18px;gap:12px}
 .onboarding-footer-note{font-size:11px}
 .onboarding-dialog .reset-button{padding:0 12px;font-size:13px}
 .onboarding-dialog .primary-button{font-size:13px;padding:0 16px;gap:8px}
 .variant-layout{display:block}
 .vehicle-preview{display:none}
 .variant-choice{padding:12px;gap:10px}
 .variant-copy>strong{font-size:14px}
 .variant-meta{font-size:11px}
 .variant-choice>.icon{width:15px;height:15px}
 .variant-performance>strong{font-size:26px}
 .variant-performance>span{font-size:9px}
 .onboarding-vehicle{display:grid;grid-template-columns:72px minmax(0,1fr);gap:4px 12px;padding:12px;margin-bottom:22px}
 .onboarding-vehicle>.vehicle-art{width:72px;grid-row:span 2}
 .onboarding-vehicle strong{font-size:14px}
 .onboarding-vehicle strong span{display:block;margin:0}
 .onboarding-change{grid-column:2;justify-self:start;min-height:44px;padding:0}
 .onboarding-setup{grid-template-columns:1fr;gap:24px}
 .onboarding-notes{padding:20px 0 0;border-left:0;border-top:1px solid #303b44;gap:20px}
 .onboarding-notice p{font-size:12px}
}
@media(max-height:650px) and (min-width:801px){
 .onboarding-header{padding-top:18px}
 .onboarding-progress{margin-top:14px}
 .onboarding-heading{padding:18px 0}
 .model-choice{min-height:140px}
 .onboarding-dialog .onboarding-actions{padding-top:12px;padding-bottom:12px}
}

.check-row{display:flex;align-items:center;gap:12px;padding:12px 0;font-size:17px}
.source-suboptions{padding:0 0 12px 60px;border-top:1px solid var(--line)}
.source-option{width:100%;text-align:left;color:inherit}
.source-option.is-disabled{opacity:.6}
.source-detail{white-space:pre-wrap;font:14px/1.5 ui-monospace,Menlo,monospace;color:#c0cad3;background:#0b1014;border:1px solid #2d3943;border-radius:6px;padding:12px;margin-top:16px}

/* Scroll-wheel help, help and compatibility, notes, license */
.wheel-illustration{display:block;width:min(100%,420px);height:auto;margin:0 auto 20px}
.gesture-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.gesture-list li{display:grid;grid-template-columns:minmax(150px,1fr) 2fr;gap:14px;padding:12px 0;border-top:1px solid var(--line);font-size:16px;line-height:1.5}
.gesture-list strong{font-weight:600;color:#e1e9ee}.gesture-list span{color:var(--muted)}
.help-dialog,.notes-dialog,.license-dialog{width:min(900px,calc(100% - 32px))!important}
.help-dialog h3,.notes-entry h3{font-size:20px;font-weight:600;margin:22px 0 8px}
.help-dialog p,.notes-entry li{font-size:16px;line-height:1.6;color:#c0cad3}
.table-wrap{overflow-x:auto}
.compat-table{width:100%;border-collapse:collapse;font-size:15px}
.compat-table th,.compat-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.compat-table th{color:var(--muted);font-weight:500}
.compat-table tr.is-unsupported td{color:#8b96a0}
.notes-entry small{color:var(--muted);font-weight:400;font-size:15px;margin-left:8px}
.license-state{font-size:20px;font-weight:600;margin:0 0 6px}
.license-state[data-status="active"]{color:var(--ok)}.license-state[data-status="beta"]{color:#83bada}.license-state[data-status="free"]{color:var(--warn)}
.license-pair{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;margin:20px 0;padding:20px;background:#0b1014;border:1px solid #2d3943;border-radius:9px}
.qr-box svg{display:block;width:180px;height:180px}
.qr-placeholder{width:180px;height:180px;display:grid;place-items:center;text-align:center;color:var(--muted);font-size:14px;border:1px dashed #3a4652;border-radius:6px;padding:12px}
.pair-code strong{font-family:Barlow,sans-serif;font-size:30px;letter-spacing:4px;color:#e1e9ee;margin-left:8px}
.license-form label{display:block;font-size:17px;margin-bottom:10px}
.license-form input{flex:1;min-height:52px;font:20px Barlow,sans-serif;letter-spacing:3px;text-transform:uppercase;color:#e1e9ee;background:#0b1014;border:1px solid #2d3943;border-radius:6px;padding:0 14px}
.license-box .reset-button{margin-top:12px}

/* Sonde */
body.sonde{background:var(--bg);color:var(--text);min-height:100svh}
.sonde-header{display:flex;flex-wrap:wrap;align-items:center;gap:20px;padding:18px 4%;border-bottom:1px solid #303d49}
.sonde-header .wordmark{text-decoration:none}
.sonde-header h1{font-size:24px;font-weight:500;margin:0}
.sonde-header h1 small{font-size:15px;color:var(--muted);margin-left:8px}
.sonde-actions{display:flex;gap:10px;margin-left:auto;flex-wrap:wrap}
.sonde-actions .reset-button{text-decoration:none}
.sonde-main{padding:20px 4% 60px;max-width:1200px;margin:0 auto}
.sonde-intro{font-size:17px;line-height:1.6;color:#c0cad3}
.sonde-card{background:#0f1418;border:1px solid #2a3138;border-radius:12px;padding:22px;margin-top:18px}
.sonde-card h2{font-size:22px;font-weight:500;margin:0 0 14px}
.sonde-card h3{font-size:18px;font-weight:500;margin:22px 0 8px;color:#c0cad3}
.sonde-card pre{white-space:pre-wrap;font:15px/1.6 ui-monospace,Menlo,monospace;color:#c0cad3;margin:0;background:#0b1014;border:1px solid #2d3943;border-radius:6px;padding:14px;overflow-x:auto}
.sonde-card pre.report{font-size:16px;color:#f2f5f7}
.sonde-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:16px}
.sonde-grid div{display:flex;flex-direction:column;gap:4px}
.sonde-grid span{color:var(--muted);font-size:15px}
.sonde-grid strong{font-family:Barlow,sans-serif;font-weight:400;font-size:26px}
.sonde-card canvas{width:100%;height:auto;display:block;background:#0b1014;border:1px solid #2d3943;border-radius:6px;margin:8px 0}
.sonde-note{color:var(--muted);font-size:15px;line-height:1.6;margin:10px 0 0}
.sonde-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px}
.sonde-row input[type=url]{flex:1;min-width:220px;min-height:48px;font-size:16px;color:#e1e9ee;background:#0b1014;border:1px solid #2d3943;border-radius:6px;padding:0 12px}
.tone-test{display:flex;align-items:center;gap:8px}
.tone-test select{min-height:44px;font-size:16px;color:#e1e9ee;background:#0b1014;border:1px solid #2d3943;border-radius:5px;padding:0 10px}

/* Portrait with no width limit (pre-2021 Model S/X 17"): dial on top, controls at the bottom */
@media (orientation:portrait) and (min-width:701px){
 .cluster-shell{background-image:linear-gradient(#050608c0,#050608c0),url('../images/cockpit-carbon.webp');background-size:auto 100%}
 .cluster-main{align-items:center}
 .tachometer{width:100%}
 .cluster-dock{height:auto;min-height:96px;flex-wrap:wrap;gap:12px;padding:12px 0}
 .transport-controls{position:static;transform:none;order:3;width:100%;justify-content:center;flex-wrap:wrap}
 .pedals{align-items:flex-end;padding-bottom:4vh}
 .pedal{height:clamp(180px,24vh,300px);width:clamp(120px,14vw,190px)}
 .toast{bottom:190px}
 .engine-state{font-size:clamp(20px,1.7cqw,26px)}
}
@media (max-width:1100px){.power-button{min-width:176px;font-size:15px;padding:0 16px}.quick-toggle span{display:none}.quick-toggle{padding:0 12px}}
@media (max-width:900px) and (orientation:landscape){.engine-state{font-size:15px;top:77%;letter-spacing:1.5px}.g-lat{display:none}.downshift-hint{display:none}.toast{bottom:80px}}

/* Demo scenarios (?demo=true) and location permission card */
.scenario-banner{position:fixed;top:88px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:16px;padding:12px 16px 16px 18px;background:#1b232bf5;border:1px solid #414b55;border-radius:10px;z-index:30;min-width:min(720px,calc(100vw - 32px));box-shadow:0 8px 30px #0007}
.scenario-banner>.icon{width:24px;height:24px;color:var(--accent);flex-shrink:0}
.scenario-banner-text{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.scenario-banner-text strong{font-size:18px;font-weight:600}
.scenario-banner-text span{font-size:15px;color:var(--muted)}
.scenario-banner-time{font-family:Barlow,sans-serif;font-size:32px;font-weight:300;font-variant-numeric:tabular-nums;min-width:64px;text-align:right}
.scenario-banner .reset-button{height:44px}
.scenario-progress{position:absolute;left:18px;right:18px;bottom:6px;height:3px;background:#2a3138;border-radius:2px;overflow:hidden}
.scenario-progress span{display:block;height:100%;width:0;background:var(--accent);transition:width .2s linear}
.scenario-banner.is-done .scenario-progress span{background:var(--ok)}
.scenario-dialog{width:min(820px,calc(100% - 32px))!important}
.scenario-dialog .choice-list{gap:8px}
.scenario-dialog .onboarding-actions{justify-content:flex-end;margin-top:16px}
.dialog-footnote.top{margin:0 0 18px}
.scenario-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;text-align:left;padding:14px 18px;border:1px solid #2f363d;border-radius:9px;background:#151a1e;color:var(--text)}
.scenario-card .engine-option-number{min-width:44px}
.scenario-card strong{display:block;font-size:19px;font-weight:600;margin-bottom:4px}
.scenario-card span{display:block;color:var(--muted);font-size:15px;line-height:1.5}
.scenario-card .scenario-engine{color:#dce5ed;font-size:15px;margin-top:6px}
.scenario-card em{font-family:Barlow,sans-serif;font-style:normal;font-size:26px;font-weight:300;color:#a5b4c2;white-space:nowrap}
.scenario-card.is-selected{border-color:#a35751}
.scenario-button{color:var(--accent)}
.permission-card{position:fixed;top:92px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:16px;padding:14px 12px 14px 18px;background:#1b232bf5;border:1px solid #414b55;border-radius:10px;z-index:25;max-width:min(760px,calc(100vw - 32px));box-shadow:0 8px 30px #0007}
.permission-card>.icon{width:26px;height:26px;color:var(--warn);flex-shrink:0}
.permission-card[data-state="denied"]>.icon{color:var(--bad)}
.permission-text{flex:1;min-width:0}
.permission-text strong{display:block;font-size:18px;font-weight:600;margin-bottom:4px}
.permission-text p{margin:0;font-size:15px;line-height:1.5;color:#c0cad3}
.permission-card .primary-button{min-height:48px;white-space:nowrap}
.is-immersed .permission-card,.is-immersed .scenario-banner{opacity:.85}
@media (max-width:900px){.scenario-banner{flex-wrap:wrap;min-width:0;width:calc(100vw - 32px)}.permission-card{flex-wrap:wrap}.permission-card .primary-button{width:100%}}

/* The dial and the instruments keep independent spacing.
   The wrappers stay neutral on compact formats. */
.dial-core,.telemetry-row{display:contents}
@media(min-width:1101px){
 .dial-core{display:block;position:absolute;inset:0;transform:translateY(-3%) scale(.88);transform-origin:center}
 .gear-readout,.dynamics-instrument{top:30%;width:16%}
 .gear-readout{left:5%}
 .dynamics-instrument{left:79%}
 .gear-display{margin-top:18px;min-height:12cqw}
 .g-meter{margin:18px 0 12px}
 .g-values{gap:12px}
 .telemetry-row{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:8%;position:absolute;left:8%;right:8%;top:82%}
 .telemetry-row>.acceleration-instrument,.telemetry-row>.load-instrument,.telemetry-row>.temperature-instrument{position:static;width:auto;min-width:0;display:grid;grid-template-rows:24px 60px 22px;align-items:center}
 .telemetry-row .acceleration-number,.telemetry-row .temperature-readout{margin:0;gap:8px}
 .telemetry-row .load-heading{display:contents}
 .telemetry-row .load-value{align-self:center}
 .telemetry-row .mini-chart{width:100%;margin:0}
 .telemetry-row .load-track{align-self:end;margin-bottom:3px}
 .telemetry-row .temperature-track{width:100%;align-self:end;margin:0 0 3px}
 .dial-core .downshift-hint{bottom:11%}
}
@media(min-width:1101px) and (max-height:750px){
 .telemetry-row{top:81%;gap:7%}
 .telemetry-row>.acceleration-instrument,.telemetry-row>.load-instrument,.telemetry-row>.temperature-instrument{grid-template-rows:20px 44px 16px}
}

/* A control that stays reachable even when the other menus are hidden. */
.immersion-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 4px;color:#e5edf3;font-size:14px;font-weight:600;line-height:1.3;flex-shrink:0}
.immersion-button .icon{width:24px;height:24px;stroke-width:1.8}
.immersion-button:hover{color:#fff}
@media(min-width:701px) and (max-width:1500px){
 .drive-status{position:static;transform:none}
}
@media(min-width:701px) and (max-width:1100px){
 .immersion-button{gap:7px;font-size:13px;max-width:135px}
}
@media(max-width:700px) and (orientation:portrait){
 .cluster-header{height:128px;align-items:flex-start;padding-top:12px}
 .wordmark{min-height:48px}
 .drive-status{left:18px;transform:none}
 .immersion-button{position:absolute;top:76px;right:18px;font-size:13px;gap:8px}
 .cluster-main{padding-top:0}
}
@media(max-width:380px) and (orientation:portrait){
 .immersion-button{max-width:135px;font-size:12px}
}

/* Access setup follows the instrument panel: legible at arm's length, one action at a time. */
.license-dialog{width:min(880px,calc(100% - 32px));}
.license-dialog .dialog-header h2{max-width:24ch;font-size:clamp(26px,3.1vw,37px);letter-spacing:-1px;}
.commerce-intro{font-size:19px;line-height:1.65;color:#d1dbe3;max-width:60ch;}
.commerce-mode{padding:12px 15px;background:#ffcb6910;border-left:3px solid var(--warn);color:#ffe1a6;line-height:1.5;}
.commerce-code-form{margin-top:30px;}
.commerce-code-form>label{font-size:22px;font-weight:600;}
.commerce-code-form>p,.commerce-trial-note,.commerce-footnote,.commerce-terms{font-size:16px;line-height:1.65;color:#aab7c2;}
.commerce-code-row{display:flex;gap:12px;margin:18px 0 14px;}
.commerce-code-row input{min-width:0;flex:1;min-height:58px;background:#080c10;border:1px solid #5c6d7b;border-radius:5px;color:#f2f5f7;padding:12px 16px;font-size:22px;letter-spacing:2px;}
.commerce-code-row input::placeholder{font-size:17px;letter-spacing:0;color:#8b96a0;}
.license-dialog a{color:#c8deef;text-underline-offset:5px;line-height:1.65;}
.license-dialog a:focus-visible{outline:2px solid #b7c8d8;outline-offset:5px;}
.commerce-recovery{display:inline-block;font-size:15px;min-height:44px;padding:8px 0;}
.commerce-start-here{border-top:1px solid #384550;margin-top:24px;padding-top:22px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.commerce-start-here p{color:#c0cbd3;line-height:1.5;}
.commerce-offer{margin:24px 0;padding:24px 0;border-top:1px solid #384550;border-bottom:1px solid #384550;}
/* A compact offer highlight, with the deadline and discount read together. */
.commerce-discount{display:flex;align-items:center;gap:22px;margin:0 0 24px;padding:18px 22px;border:1px solid #a85b52;border-left:3px solid #ff8a7d;border-radius:7px;background:#ff78600c;color:#f0e5e2;}
.commerce-discount-value{flex-shrink:0;color:#ffab9e;font-family:Barlow,sans-serif;font-size:44px;font-weight:600;letter-spacing:-1.5px;line-height:1.1;white-space:nowrap;}
.commerce-discount-value span{font-size:.7em;letter-spacing:-.5px;}
.commerce-discount-copy{display:grid;gap:3px;min-width:0;line-height:1.45;}
.commerce-discount-copy>span{font-size:18px;font-weight:600;color:#ffab9e;}
.commerce-discount-copy>strong{font-size:17px;font-weight:500;}
.commerce-discount-copy>small{font-size:14px;color:#bcb1af;}
.commerce-ownership{font-size:24px;font-weight:700;margin:6px 0;letter-spacing:-.5px;}
.commerce-price{display:flex;align-items:baseline;gap:15px;flex-wrap:wrap;margin:12px 0;}
.commerce-price s{color:#a0aeb9;font-size:24px;font-family:Barlow,sans-serif;}
.commerce-price strong{font-family:Barlow,sans-serif;font-size:68px;font-weight:500;line-height:1.1;letter-spacing:-2px;}
.commerce-price>span{font-size:21px;}
.commerce-offer>p:last-child{margin-bottom:0;color:#d3dce3;}
.commerce-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
.commerce-actions .primary-button,.commerce-code-row .primary-button{min-height:58px;}
.commerce-trial-note{max-width:75ch;font-size:15px;margin-top:20px;}
.commerce-existing{margin-top:26px;border-top:1px solid #384550;padding-top:14px;}
.commerce-existing summary{min-height:48px;cursor:pointer;display:list-item;padding:13px 0;color:#c8deef;}
.commerce-existing summary:focus-visible{outline:2px solid #b7c8d8;outline-offset:4px;}
.commerce-pair{display:grid;grid-template-columns:208px 1fr;gap:25px;align-items:start;margin:28px 0;padding-top:24px;border-top:1px solid #384550;}
.commerce-qr{background:#fff;border-radius:7px;padding:7px;line-height:0;}
.commerce-qr svg{width:100%;height:auto;}
.commerce-pair h3{font-size:22px;margin:0 0 12px;}
.commerce-pair p{line-height:1.6;color:#b9c8d3;font-size:16px;}
.commerce-pair p.commerce-pair-code{color:#fff;font-size:29px;font-weight:600;letter-spacing:4px;margin:12px 0;}
.commerce-pair .commerce-waiting{color:#bce5cd;margin-bottom:0;}
.commerce-feedback{min-height:1.5em;color:#ffcb69;line-height:1.6;overflow-wrap:anywhere;margin:18px 0;}
.commerce-footnote{font-size:14px;border-top:1px solid #303d49;padding-top:17px;margin-bottom:0;}
.commerce-footnote strong{color:#e0e8ee;}
@media(max-width:600px){.commerce-code-row{flex-direction:column;}.commerce-start-here{align-items:stretch;flex-direction:column;gap:4px;}.commerce-start-here p{margin:0 0 10px;}.commerce-pair{grid-template-columns:1fr;}.commerce-qr{max-width:210px;}.commerce-actions{align-items:stretch;flex-direction:column;}.commerce-price strong{font-size:58px;}.commerce-price>span{font-size:18px;}.commerce-offer{padding:20px 0;}}
@media(max-width:600px){.commerce-discount{gap:16px;padding:16px;}.commerce-discount-value{font-size:36px;}.commerce-discount-copy>span{font-size:17px;}.commerce-discount-copy>strong{font-size:16px;}.commerce-discount-copy>small{font-size:13px;}}
