:root{--bg:#030707;--panel:#050a0bd1;--panel-strong:#030707f0;--trim:#141b1c;--trim-soft:#222b2c;--green:#37e58f;--cyan:#38bdf8;--amber:#f5b84b;--red:#ff5b5b;--text:#f5fffa;--muted:#93a8a4;--border:#a4bcb53d}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;height:100%;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}button{font:inherit}.simulator-shell{background:linear-gradient(#061011 0%,#030707 68%,#020404 100%),#030707;width:100vw;height:100vh;min-height:100svh;position:relative;overflow:hidden}@supports (height:100dvh){.simulator-shell{height:100dvh}}.canvas-stage{position:absolute;inset:0}.canvas-stage canvas{display:block}.cockpit-hud{pointer-events:none;z-index:2;position:absolute;inset:0}.sim-toolbar{right:20px;top:max(18px, env(safe-area-inset-top));z-index:9;gap:10px;display:flex;position:absolute}.icon-button{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:var(--text);cursor:pointer;pointer-events:auto;background:#050a0bb8;border:1px solid #a4bcb547;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;transition:transform .12s,border-color .12s,background .12s;display:flex}.icon-button:hover,.icon-button:focus-visible{background:#0a1616eb;border-color:#37e58f7a;outline:0;transform:translateY(-1px)}.info-button span{border:2px solid;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:17px;font-weight:900;line-height:1;display:flex}.info-button--active{color:var(--green);border-color:#37e58f9e}.device-icon{border:2px solid;display:block;position:relative}.mode-toggle--pc .device-icon{border-radius:3px;width:24px;height:17px}.mode-toggle--pc .device-icon:before{content:"";background:currentColor;width:10px;height:2px;position:absolute;bottom:-7px;left:7px}.mode-toggle--pc .device-icon:after{content:"";background:currentColor;width:16px;height:2px;position:absolute;bottom:-11px;left:4px}.mode-toggle--touch{color:var(--cyan);border-color:#38bdf875}.mode-toggle--touch .device-icon{border-radius:5px;width:18px;height:25px}.mode-toggle--touch .device-icon:after{content:"";background:currentColor;border-radius:50%;width:3px;height:3px;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.control-help{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);pointer-events:auto;z-index:9;background:#050a0be6;border:1px solid #a4bcb547;border-radius:10px;gap:12px;width:min(360px,100vw - 40px);padding:18px;display:grid;position:absolute;top:72px;right:20px;box-shadow:0 26px 80px #00000061}.control-help div{border-left:3px solid #37e58f94;gap:4px;padding-left:12px;display:grid}.control-help p,.control-help strong{margin:0}.control-help p{color:var(--green);text-transform:uppercase;font-size:11px;font-weight:900}.control-help strong{color:var(--text);font-size:13px;line-height:1.35}.control-help-close{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#ffffff0f;border-radius:50%;width:28px;height:28px;position:absolute;top:10px;right:10px}.windshield-strip{grid-template-columns:minmax(180px,.74fr) minmax(260px,1fr) minmax(180px,.74fr);align-items:start;gap:18px;width:min(1180px,100vw - 34px);padding-top:12px;display:grid;position:absolute;top:0;left:50%;transform:translate(-50%)}.rearview-mirror,.drive-event,.reward-flash,.driver-cluster,.center-display,.touch-control-well{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:var(--panel);border:1px solid var(--border)}.rearview-mirror{border-radius:0 0 14px 14px;justify-self:start;min-width:216px;padding:12px 16px}.rearview-mirror span,.drive-event span,.reward-flash span,.cluster-topline,.cluster-metrics span,.meter span{color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:11px;font-weight:800}.rearview-mirror strong,.drive-event strong,.reward-flash strong{margin-top:4px;font-size:15px;line-height:1.25;display:block}.drive-event{text-align:center;border-radius:0 0 14px 14px;justify-self:center;width:100%;max-width:480px;padding:12px 18px}.drive-event strong{color:var(--green)}.drive-event--warning{border-color:#ff5b5b8c;box-shadow:inset 0 0 32px #ff5b5b1f}.drive-event--warning strong{color:var(--red)}.reward-flash{opacity:0;border-color:#37e58f85;border-radius:0 0 14px 14px;justify-self:end;width:min(290px,100%);padding:12px 16px;transition:opacity .18s,transform .18s;transform:translateY(-14px)}.reward-flash strong{color:var(--green)}.reward-flash--active{opacity:1;transform:translateY(0)}.ev-cabin{pointer-events:none;height:min(46vh,430px);min-height:300px;position:absolute;bottom:0;left:0;right:0}.roof-liner{background:linear-gradient(#000000db,#0000);height:26vh;position:absolute;top:-100vh;left:0;right:0}.a-pillar{background:linear-gradient(#0a0f10,#151d1e 58%,#0d131440);width:clamp(38px,5vw,74px);height:118%;position:absolute;bottom:52%}.a-pillar--left{left:-18px;transform:skew(-10deg)}.a-pillar--right{right:-18px;transform:skew(10deg)}.windshield-glass{border-bottom:1px solid #f5fffa1f;height:34%;position:absolute;bottom:66%;left:clamp(34px,7vw,120px);right:clamp(34px,7vw,120px)}.windshield-glass:before,.windshield-glass:after{content:"";background:#f5fffa17;width:38%;height:1px;position:absolute;top:42%}.windshield-glass:before{left:4%;transform:rotate(-7deg)}.windshield-glass:after{right:4%;transform:rotate(7deg)}.dashboard-shelf{background:linear-gradient(#1f2728f5,#0b0f10fa 34%,#030707),#101617;border-top:1px solid #f5fffa21;border-radius:54% 54% 0 0/22% 22% 0 0;height:68%;position:absolute;bottom:-24px;left:-6%;right:-6%;box-shadow:0 -26px 80px #0000009e}.dash-ambient{background:linear-gradient(90deg,#0000,#37e58f9e,#0000);width:34%;height:2px;position:absolute;top:22%}.dash-ambient--left{left:11%}.dash-ambient--right{right:12%}.driver-cluster{border-color:#38bdf852;border-radius:8px;gap:10px;width:clamp(220px,20vw,310px);padding:15px;display:grid;position:absolute;bottom:clamp(144px,29%,190px);right:clamp(82px,12vw,210px);box-shadow:0 24px 60px #0000005c}.cluster-topline{justify-content:space-between;align-items:center;display:flex}.cluster-topline span:first-child{color:var(--green);text-align:center;border:1px solid #37e58f73;border-radius:6px;min-width:36px;padding:4px 7px;font-size:15px}.cluster-speed{align-items:baseline;gap:9px;display:flex}.cluster-speed strong{font-size:clamp(56px,7vw,96px);line-height:.84}.cluster-speed span{color:var(--cyan);text-transform:uppercase;font-size:13px;font-weight:900}.cluster-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.cluster-metrics p{background:#ffffff0b;border:1px solid #a4bcb529;border-radius:6px;gap:5px;margin:0;padding:9px;display:grid}.cluster-metrics strong{overflow-wrap:anywhere;font-size:17px}.center-display{aspect-ratio:16/9;pointer-events:auto;z-index:4;background:#020404;border-color:#a4bcb55c;border-radius:14px;width:clamp(340px,34vw,560px);padding:8px;position:absolute;bottom:clamp(34px,9%,74px);left:45%;overflow:hidden;transform:translate(-50%)perspective(900px)rotateX(1.5deg)rotateY(-3deg);box-shadow:0 28px 80px #00000080,inset 0 0 0 8px #090e0f}.display-camera{z-index:2;background:#162021;border:1px solid #f5fffa29;border-radius:50%;width:7px;height:7px;position:absolute;top:4px;left:50%;transform:translate(-50%)}.display-viewport{background:#050909;border-radius:8px;width:100%;height:100%;position:relative;overflow:hidden}.display-viewport iframe{height:var(--dashboard-frame-height,1059px);max-width:none;transform:scale(var(--dashboard-frame-scale,.216));transform-origin:0 0;width:var(--dashboard-frame-width,1920px);background:#050909;border:0;display:block}.side-mirror{background:linear-gradient(#38bdf829,#050a0bd1),#0a1213;border:1px solid #a4bcb538;border-radius:28px 9px;width:clamp(86px,12vw,140px);height:clamp(44px,6vw,70px);position:absolute;bottom:58%}.side-mirror--left{left:clamp(42px,7vw,112px);transform:rotate(-6deg)}.side-mirror--right{right:clamp(42px,7vw,112px);transform:rotate(6deg)scaleX(-1)}.steering-module{pointer-events:none;width:clamp(230px,26vw,330px);height:clamp(230px,26vw,330px);position:absolute;bottom:-70px;right:clamp(26px,7vw,120px)}.steering-wheel{height:100%;transform:rotate(var(--wheel-angle));border:clamp(16px,2vw,24px) solid #090d0e;border-color:#090d0e #090d0e #172020 #111819;border-radius:50%;width:100%;transition:transform 90ms linear;position:relative;box-shadow:inset 0 0 0 2px #f5fffa14,0 32px 70px #00000094}.wheel-hub{color:var(--green);background:linear-gradient(#202829,#080d0e),#101617;border:1px solid #a4bcb533;border-radius:38% 38% 44% 44%;justify-content:center;align-items:center;width:42%;height:34%;font-size:clamp(20px,2vw,30px);font-weight:900;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.wheel-spoke{transform-origin:0;background:#0a0f10;border-radius:999px;width:35%;height:8%;position:absolute;top:51%;left:50%}.wheel-spoke--left{transform:rotate(202deg)}.wheel-spoke--right{transform:rotate(-22deg)}.wheel-spoke--bottom{width:27%;transform:rotate(90deg)}.console-bridge{z-index:2;background:linear-gradient(#1f2728d6,#090d0efa),#0b1011;border:1px solid #a4bcb521;border-radius:42px 42px 0 0;width:clamp(230px,23vw,340px);height:46%;position:absolute;bottom:-86px;left:45%;transform:translate(-50%);box-shadow:0 -16px 44px #0006}.console-pad{background:#ffffff0b;border:1px solid #a4bcb524;border-radius:8px;width:48%;height:38%;position:absolute;top:18%;left:50%;transform:translate(-50%)}.console-dial{background:conic-gradient(from 0deg, var(--green), var(--cyan), var(--amber), var(--green));border:8px solid #0b1011;border-radius:50%;width:54px;height:54px;position:absolute;bottom:18%;left:50%;transform:translate(-50%)}.touch-control-well{bottom:calc(18px + env(safe-area-inset-bottom,0px));pointer-events:auto;z-index:8;width:min(720px,100vw - 42px);transition:opacity .18s,transform .18s;position:absolute;left:50%;transform:translate(-50%)}.touch-control-well--hidden{opacity:0;pointer-events:none;transform:translate(-50%,24px)}.touch-gamepad{justify-content:space-between;align-items:end;gap:20px;display:flex}.steer-pad,.action-pad{gap:12px;display:flex}.steer-pad{position:relative}.steer-pad:after{content:"";height:4px;left:var(--steer-force,50%);pointer-events:none;background:#38bdf8b8;border-radius:999px;width:46px;position:absolute;top:-12px;transform:translate(-50%);box-shadow:0 0 20px #38bdf88c}.steer-button,.action-button{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:var(--text);cursor:pointer;pointer-events:auto;touch-action:none;background:linear-gradient(#ffffff14,#ffffff05),#050a0bc2;border:1px solid #a4bcb547;transition:transform 90ms,border-color 90ms,background 90ms;position:relative;box-shadow:inset 0 0 0 1px #ffffff08,0 18px 50px #00000061}.steer-button:active,.action-button:active{transform:translateY(3px)scale(.98)}.steer-button{border-radius:18px;justify-content:center;align-items:center;width:112px;height:96px;display:flex}.steer-button span{border-top:18px solid #0000;border-bottom:18px solid #0000;width:0;height:0;display:block}.steer-button--left span{border-right:25px solid var(--cyan)}.steer-button--right span{border-left:25px solid var(--cyan)}.action-pad{align-items:end}.action-button{border-radius:50%;justify-content:center;align-items:center;width:112px;height:112px;display:flex;overflow:hidden}.action-button:after{content:"";height:var(--press-force,0%);background:linear-gradient(#0000,#ffffff38);transition:height 80ms linear;position:absolute;bottom:0;left:0;right:0}.action-button span{letter-spacing:0;text-transform:uppercase;z-index:1;font-size:11px;font-weight:900;position:relative}.action-button--brake{color:#ffd7d7;border-color:#ff5b5b8f}.action-button--gas{color:#d9ffee;border-color:#37e58f8f}.edge-warning{pointer-events:none;z-index:3;border:0 solid #ff5b5b00;transition:border-width .14s,border-color .14s;position:absolute;inset:0}.edge-warning--active{border-width:14px;border-color:#ff5b5bc7;box-shadow:inset 0 0 90px #ff5b5b52}.scanlines{mix-blend-mode:soft-light;pointer-events:none;z-index:4;background:linear-gradient(#ffffff05 50%,#0000 50%) 0 0/100% 4px,linear-gradient(#0000 0%,#0000003d 100%) 0 0/100% 100%;position:absolute;inset:0}@media (max-width:1100px){.windshield-strip{grid-template-columns:minmax(180px,.8fr) minmax(260px,1fr)}.reward-flash{display:none}.center-display{width:clamp(320px,39vw,500px);left:43%}.driver-cluster{right:clamp(54px,8vw,100px)}}@media (max-width:820px){.windshield-strip{grid-template-columns:1fr;gap:10px;width:calc(100vw - 20px);padding-top:8px}.rearview-mirror{display:none}.drive-event{justify-self:center;width:min(520px,100%);padding:10px 12px}.ev-cabin{height:min(48vh,420px);min-height:340px}.side-mirror{display:none}.center-display{width:min(520px,100vw - 28px);bottom:150px;left:50%;transform:translate(-50%)}.driver-cluster{width:min(260px,47vw);bottom:92px;left:16px;right:auto}.cluster-speed strong{font-size:clamp(44px,11vw,68px)}.steering-module{width:min(260px,46vw);height:min(260px,46vw);bottom:-46px;right:10px}.console-bridge{display:none}.touch-control-well{bottom:calc(10px + env(safe-area-inset-bottom,0px));width:calc(100vw - 24px)}.touch-gamepad{gap:12px}.steer-button{border-radius:15px;width:72px;height:76px}.action-button{width:82px;height:82px}}@media (pointer:coarse) and (orientation:landscape){.windshield-strip{padding-top:max(8px, env(safe-area-inset-top))}.ev-cabin{height:min(42dvh,360px);min-height:260px}.center-display{bottom:clamp(112px,19dvh,150px)}.driver-cluster{bottom:clamp(76px,13dvh,112px)}.steering-module{opacity:.72;bottom:-66px}.touch-control-well{bottom:calc(8px + env(safe-area-inset-bottom,0px));width:calc(100vw - 24px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px))}.touch-gamepad{gap:12px}.steer-button{border-radius:15px;width:84px;height:74px}.action-button{width:84px;height:84px}}@media (pointer:coarse) and (orientation:landscape) and (max-height:650px){.windshield-strip{gap:8px;width:calc(100vw - 20px)}.rearview-mirror,.reward-flash{display:none}.drive-event{grid-column:1/-1;justify-self:center;width:min(520px,100%);padding:8px 12px}.drive-event strong{font-size:13px}.center-display{width:min(480px,100vw - 280px);bottom:104px}.driver-cluster{width:210px;bottom:72px;left:14px}.cluster-speed strong{font-size:48px}.cluster-metrics{gap:6px}.steering-module{bottom:-84px;right:8px}.steer-button{width:76px;height:64px}.action-button{width:72px;height:72px}.action-button span{font-size:9px}}@media (max-width:560px){.drive-event strong{font-size:13px}.center-display{bottom:170px}.driver-cluster{display:none}.steering-module{opacity:.72;right:-42px}.touch-gamepad{align-items:end}.steer-pad,.action-pad{gap:8px}.steer-button{width:56px;height:64px}.steer-button span{border-top-width:13px;border-bottom-width:13px}.steer-button--left span{border-right-width:18px}.steer-button--right span{border-left-width:18px}.action-button{width:72px;height:72px}.action-button span{font-size:9px}}
