:root{color-scheme:dark;--bg:#0b0c0e;--surface:#111315;--ink:#f3f3f2;--muted:#b5b7bc;--line:#34373c;--focus:#b7d5ff;--danger:#ffb5ae;font-family:Arial,Helvetica,sans-serif;font-synthesis:none;background:var(--bg);color:var(--ink)}
*{box-sizing:border-box}body{margin:0;min-width:280px}button,input{font:inherit}button,label,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}button:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:6px}::selection{color:var(--bg);background:var(--ink)}[hidden]{display:none!important}
.app{width:min(780px,calc(100% - 64px));margin:auto;padding:54px 0 40px}.topbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 0 32px}.topbar h1{font-size:26px;line-height:1.2;margin:0;font-weight:600}.gps-state{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--muted)}.status-dot{height:11px;width:11px;border-radius:50%;background:#8b8e94}.gps-state[data-status=ok] .status-dot{background:#b9d0b4}.gps-state[data-status=error] .status-dot{background:var(--danger)}
.drive{text-align:center;padding-top:50px}.drive h2{font-size:40px;line-height:1.2;letter-spacing:-.025em;margin:0 0 26px;font-weight:600}.speed{display:flex;flex-direction:column;align-items:center}.speed #speed{font-size:112px;line-height:1.05;font-weight:500;letter-spacing:-.035em;font-variant-numeric:tabular-nums}.unit{font-size:18px;color:var(--muted);margin-top:5px}.engine-state{font-size:15px;color:var(--muted);margin:26px 0 20px;font-variant-numeric:tabular-nums;min-height:18px}.engine-button{width:min(100%,500px);min-height:66px;background:var(--ink);color:var(--bg);border:0;border-radius:12px;font-size:21px;font-weight:600;padding:16px 24px;transition:background .16s ease}.engine-button:hover{background:#d9dade}.engine-button[aria-pressed=true]{background:#202328;color:var(--ink);box-shadow:inset 0 0 0 1px #73777e}.engine-button[aria-pressed=true]:hover{background:#2c3036}.message{font-size:14px;line-height:1.5;color:var(--muted);margin:14px auto 0;min-height:42px;max-width:520px}.message[data-error=true]{color:var(--danger)}
.sound-choice{border:0;padding:0;margin:44px 0 0;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:48px}.sound-choice legend{float:left;font-size:17px;font-weight:600;padding:0}.radio-options{display:flex;gap:42px}.radio-options label{display:flex;align-items:center;gap:13px;cursor:pointer;min-height:48px;font-size:18px}input[type=radio]{appearance:none;-webkit-appearance:none;margin:0;width:26px;height:26px;border:2px solid #a7aab0;border-radius:50%;background:transparent;position:relative;flex-shrink:0;cursor:pointer}input[type=radio]:checked{border-color:var(--ink)}input[type=radio]:checked:after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--ink)}
.cars{margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}.cars h2{margin:0 0 14px;font-size:17px;font-weight:600}.car-option{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #6d7178;border-radius:12px;min-height:86px;padding:17px 20px;cursor:pointer;transition:background .16s ease}.car-option:hover{background:var(--surface)}.car-option strong{font-size:20px;font-weight:600;display:block;line-height:1.25}.car-option small{font-size:14px;color:var(--muted);display:block;margin-top:6px}.test-panel{border-top:1px solid var(--line);margin-top:32px;padding-top:20px}.test-panel h2{font-size:18px}.test-panel input[type=range]{display:block;width:100%;margin:18px 0}.test-panel button{padding:12px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}.test-panel p{font-size:14px;color:var(--muted)}
.gate{min-height:100svh;display:grid;place-items:center;padding:30px 20px}.lock{width:min(340px,100%);text-align:center}.lock-icon{width:28px;height:28px;stroke:var(--muted);fill:none;stroke-width:1.6;margin-bottom:22px}.lock h1{font-size:28px;font-weight:600;letter-spacing:-.025em;margin:0 0 12px}.lock .intro{font-size:16px;color:var(--muted);margin:0}.pin-dots{display:flex;justify-content:center;gap:22px;margin:34px 0 24px}.pin-dots i{width:14px;height:14px;border:1.5px solid #acafb4;border-radius:50%;transition:background .1s}.pin-dots i.filled{background:var(--ink);border-color:var(--ink)}.pin-input{position:absolute;width:1px;height:1px;opacity:0}.pin-input:focus-visible+.pin-dots{outline:2px solid var(--focus);outline-offset:10px;border-radius:4px}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:24px auto 0;max-width:292px}.keypad button{width:76px;height:76px;justify-self:center;border:1px solid transparent;border-radius:50%;background:#202226;color:var(--ink);font-size:30px;font-weight:400;transition:background .12s}.keypad button:hover{background:#34373c}.keypad button:active{background:#50545b}.keypad .erase{background:transparent;font-size:17px}.keypad .erase svg{width:26px;stroke:var(--ink);stroke-width:1.6;fill:none;vertical-align:middle}.pin-feedback{height:42px;font-size:14px;line-height:1.5;color:var(--muted);margin:0}.pin-feedback[data-error=true]{color:var(--danger)}
@media(max-width:600px){.app{width:calc(100% - 40px);padding-top:28px;padding-bottom:28px}.topbar{padding-bottom:24px}.topbar h1{font-size:24px}.gps-state{font-size:14px}.drive{padding-top:36px}.drive h2{font-size:28px;margin-bottom:25px}.speed #speed{font-size:96px}.engine-state{margin-top:22px}.engine-button{font-size:19px;min-height:62px}.sound-choice{margin-top:28px}.radio-options{gap:22px}.radio-options label{font-size:16px;gap:10px}.cars{margin-top:32px;padding-top:26px}.car-option{padding:16px;min-height:86px}.car-option strong{font-size:18px}.message{font-size:13px;min-height:40px}}
@media(max-height:760px) and (min-width:601px){.app{padding-top:28px}.topbar{padding-bottom:22px}.drive{padding-top:26px}.drive h2{font-size:32px;margin-bottom:16px}.speed #speed{font-size:88px}.engine-state{margin-top:16px;margin-bottom:16px}.sound-choice{margin-top:24px}.cars{margin-top:28px;padding-top:22px}}
.engine-actions{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:12px;max-width:580px;margin:auto}.engine-actions .engine-button{width:100%;font-size:19px}.rev-button{min-height:66px;padding:16px 18px;border:1px solid #73777e;border-radius:12px;background:var(--surface);color:var(--ink);font-size:18px;font-weight:600;transition:background .16s ease}.rev-button:hover:enabled{background:#272a30}.rev-button[aria-pressed=true]{background:#34373c;border-color:var(--ink)}.rev-button:disabled{cursor:default;opacity:.45}
.equalizer{margin-top:22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.equalizer summary{min-height:62px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:17px;font-weight:600;list-style:none}.equalizer summary::-webkit-details-marker{display:none}.equalizer summary:after{content:"";height:8px;width:8px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg);margin-right:5px;margin-top:-5px}.equalizer[open] summary:after{transform:rotate(225deg);margin-top:5px}.equalizer summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.eq-controls{padding:0 0 22px}.eq-controls label{display:grid;grid-template-columns:120px minmax(0,1fr) 58px;gap:18px;align-items:center;min-height:58px;font-size:15px}.eq-controls label small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.eq-controls output{text-align:right;color:var(--muted);font-size:14px;font-variant-numeric:tabular-nums}.eq-controls input{width:100%;min-width:0;margin:0;height:44px;accent-color:var(--ink);cursor:pointer}.eq-reset{background:transparent;border:1px solid #73777e;color:var(--ink);padding:10px 15px;min-height:44px;border-radius:8px;margin-top:12px;font-size:14px}.eq-reset:hover{background:var(--surface)}.equalizer+.cars{margin-top:28px;padding-top:0;border-top:0}
@media(max-width:600px){.engine-actions{gap:10px}.engine-actions .engine-button{font-size:17px;padding:14px 12px}.rev-button{font-size:16px;min-height:62px;padding:14px 12px}.equalizer{margin-top:20px}.eq-controls label{grid-template-columns:85px minmax(0,1fr) 49px;gap:10px;font-size:14px}.equalizer+.cars{margin-top:26px}.gps-state{max-width:66%;text-align:right}.gps-state .status-dot{flex-shrink:0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}

.rev-button{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.rev-button small{display:block;font-size:12px;font-weight:400;line-height:1.3;margin-top:5px;color:var(--muted)}
.volume-control{display:grid;grid-template-columns:120px minmax(0,1fr) 60px;gap:18px;align-items:center;min-height:64px;margin-top:16px}.volume-control>span{font-size:17px;font-weight:600}.volume-control input{width:100%;min-width:0;margin:0;height:44px;accent-color:var(--ink);cursor:pointer}.volume-control output{text-align:right;color:var(--muted);font-size:14px;font-variant-numeric:tabular-nums}
@media(max-width:600px){.volume-control{grid-template-columns:100px minmax(0,1fr) 54px;gap:10px;margin-top:12px}.volume-control>span{font-size:16px}}
