:root{--surface:#f3f4ef;--surface-raised:#fcfcf8;--surface-sunken:#edf2e5;--surface-map:#e9eee3;--text:#263c33;--text-strong:#244f37;--text-muted:#55664c;--border-subtle:#e4e9dc;--border:#dce2d1;--border-strong:#bdcdb2;--primary:#2c5440;--primary-hover:#224632;--on-primary:#fcfff6;--action:#ffc83d;--action-hover:#ffb81a;--action-border:#d99c00;--action-tint:#fff1c2;--on-action:#1e3a2a;--hint-surface:#fff0d6;--hint-border:#e09a45;--hint-accent:#c96f1c;--on-hint:#4a2c0e;--brand:#244f3d;--brand-mark:#cfe6a0;--brand-mark-window:#244f3d;--success:#3f7a3a;--success-surface:#e2efd3;--success-border:#9fbf8a;--danger:#a53928;--danger-strong:#843322;--danger-surface:#fff0e4;--danger-border:#c8aa80;--warning:#785b32;--accent:#9d5e2d;--focus:#527e43;--predict:#70508f;--control:#78925b;--control-ring:#b8c7a7;--text-disabled:#6a7a60;--border-emphasis:#93a38b;--surface-overlay:#fcfcf8ee;--shadow-raised:0 4px 16px #263c3320;--shadow-overlay:0 12px 48px #263c3330;--radius-xs:4px;--radius-s:8px;--radius-m:12px;--radius-l:18px;--radius-pill:999px;color:var(--text);background:var(--surface);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400}*{box-sizing:border-box}body{margin:0}#root,#root *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}button,input,select{font:inherit}button,select,input[type=checkbox],input[type=range]{cursor:pointer}button{color:inherit}button:disabled{cursor:default;opacity:.5}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}button{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}.app-shell{max-width:1440px;margin:0 auto;padding:0 54px}.text-button{background:0 0;border:none;align-items:center;gap:8px;padding:4px 0;font-size:12px;display:inline-flex}.eyebrow{color:var(--text-muted);align-items:center;gap:8px;font-size:12px;font-weight:650;display:flex}.small-line{background:#839565;width:19px;height:2px;display:inline-block}h1{letter-spacing:-1.4px;margin:12px 0 9px;font-size:clamp(28px,3vw,39px);font-weight:500}.help-panel{background:var(--border-subtle);border-radius:var(--radius-m);margin-bottom:22px;padding:18px 24px;font-size:13px;line-height:1.6}.help-panel p:last-child{margin-bottom:0}.lab-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"view""controls""settings";align-items:start;gap:20px;display:grid}.settings-card[hidden]{display:none}.view-actions{align-items:center;gap:20px;display:flex}.settings-toggle{border:1px solid var(--border);border-radius:var(--radius-s);padding:7px 9px;font-size:11px}.collision-banner{background:var(--danger-surface);border-top:2px solid var(--danger);color:var(--danger-strong);align-items:flex-start;gap:14px;padding:16px 22px;display:flex}.collision-banner strong{font-size:15px;font-weight:650}.collision-banner p{margin:6px 0 0;font-size:12px;line-height:1.5}.collision-symbol{border:2px solid;border-radius:50%;flex-shrink:0;place-items:center;width:26px;height:26px;font-weight:700;display:grid}.simulation-card{grid-area:view}.settings-card{grid-area:settings}.controls-card{grid-area:controls}.simulation-card,.settings-card,.controls-card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-m);overflow:hidden;box-shadow:0 3px 6px #344c2910}.view-toolbar{justify-content:space-between;align-items:center;height:56px;padding:17px 22px;display:flex}.view-name{align-items:center;gap:9px;font-size:12px;display:flex}.view-name svg{color:#7c8e6e}.live-status{color:var(--text-muted);align-items:center;gap:7px;font-size:12px;display:flex}.live-status>span{background:#6a9652;border-radius:50%;width:5px;height:5px}.live-status.is-paused{color:var(--warning)}.live-status.is-paused>span{background:#b49152}.live-status.is-contact{color:var(--danger)}.live-status.is-contact>span{background:var(--danger)}.map-container{background:var(--surface-map);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);position:relative}.overhead{width:100%;height:clamp(280px,52vh,560px);min-height:0;display:block}.map-label{fill:var(--text-muted);letter-spacing:.04px;font-family:inherit;font-size:.36px}.map-caption{max-width:70%;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-s);pointer-events:none;background:#fbfcf1d9;padding:8px 10px;font-size:10px;position:absolute;top:16px;left:20px}.view-options{border-bottom:1px solid var(--border-subtle);align-items:center;gap:17px;padding:13px 20px;font-size:10px;display:flex}.view-options label{white-space:nowrap;align-items:center;gap:6px;display:flex}input[type=checkbox]{accent-color:var(--primary);width:12px;height:12px;margin:0}.view-hint{color:var(--text-muted);margin-left:auto;font-size:10px}.measurements-toggle,.phone-help{display:none}.telemetry{grid-template-columns:repeat(4,1fr);padding:19px 0 16px;display:grid}.telemetry>div{border-right:1px solid var(--border-subtle);padding:0 19px}.telemetry>div:last-child{border:none}.telemetry>div>span{color:var(--text-muted);margin-bottom:8px;font-size:10px;display:block}.telemetry strong{letter-spacing:-.6px;font-variant-numeric:tabular-nums;font-size:23px;font-weight:450}.telemetry strong small{letter-spacing:0;color:var(--text-muted);margin-left:5px;font-size:10px;font-weight:400}.coordinate-strip{color:var(--text-muted);background:var(--surface);border-top:1px solid var(--border-subtle);gap:7px;padding:12px 20px;font-size:10px;display:flex}.coordinate-strip>span:last-child{color:var(--text-muted);margin-left:auto}.settings-card{padding:21px}.card-heading{align-items:center;gap:9px;margin-bottom:22px;display:flex}.card-heading h2{margin:0;font-size:13px;font-weight:550}.card-heading svg{color:#7f926e}.field-label{color:var(--text-muted);margin:15px 0 8px;font-size:10px;display:block}select{border:1px solid var(--border);background:var(--surface-raised);border-radius:var(--radius-s);width:100%;color:var(--text-strong);padding:10px 12px;font-size:11px}.vehicle-spec{border-bottom:1px solid var(--border-subtle);align-items:center;gap:13px;padding:14px 0 18px;display:flex}.vehicle-spec strong{font-size:11px;font-weight:550;display:block}.vehicle-spec span{color:var(--text-muted);margin-top:5px;font-size:10px;display:block}.mini-car{border-radius:var(--radius-s);background:#d3e3bd;border:1px solid #708858;width:57px;height:25px;position:relative}.mini-car:before{content:"";border-radius:var(--radius-xs);background:#91a88a;position:absolute;inset:4px 17px 4px 12px}.mini-car span{background:#596c4d;width:8px;height:3px;position:absolute;top:-7px;left:9px;box-shadow:0 26px #596c4d}.mini-car span:last-child{left:42px}.setting-range{margin-top:19px}.setting-range label{color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:9px;font-size:10px;display:flex}.setting-range strong{color:var(--text-strong);font-size:11px;font-weight:550}input[type=range]{appearance:none;background:linear-gradient(var(--border), var(--border)) center / 100% 4px no-repeat;border-radius:var(--radius-xs);width:100%;height:24px;accent-color:var(--control);touch-action:pan-y;margin:0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--control);border:2px solid var(--surface-raised);width:13px;height:13px;box-shadow:0 0 0 1px var(--control-ring);border-radius:50%}input[type=range]::-moz-range-thumb{background:var(--control);border:2px solid var(--surface-raised);border-radius:50%;width:10px;height:10px}.range-labels{color:var(--text-muted);justify-content:space-between;margin-top:5px;font-size:10px;display:flex}.units-choice{border:0;flex-wrap:wrap;align-items:center;gap:0 16px;margin:12px 0 0;padding:0;font-size:12px;display:flex}.units-choice legend{float:left;margin-right:4px;padding:0;font-weight:600}.units-choice label{cursor:pointer;align-items:center;gap:6px;min-height:44px;display:inline-flex}.settings-note{color:var(--text-muted);margin:20px 0;font-size:10px;line-height:1.6}.insight{border-radius:var(--radius-s);background:var(--surface-sunken);border:1px solid var(--border);padding:14px}.insight .eyebrow{font-size:12px}.insight p{color:var(--text-muted);margin:8px 0 0;font-size:10px;line-height:1.65}.controls-card{grid-template-columns:minmax(250px,1.1fr) minmax(230px,1fr) 142px;align-items:center;gap:28px;height:184px;margin-top:0;padding:23px;display:grid}.steering-title{justify-content:space-between;align-items:center;margin-bottom:10px;font-size:11px;display:flex}.steering-title strong{font-variant-numeric:tabular-nums;font-size:14px;font-weight:550}.steering-title strong span{color:var(--text-muted);margin-left:3px;font-size:10px;font-weight:400}.steering-bottom{color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:9px;font-size:10px;display:flex}.steering-bottom .text-button{color:var(--text-muted);font-size:10px}kbd{font:inherit;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xs);min-width:19px;height:19px;color:var(--text-muted);justify-content:center;align-items:center;font-size:10px;display:inline-flex}.movement-control{gap:10px;display:flex}.drive-button{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-s);text-align:left;touch-action:none;-webkit-user-select:none;user-select:none;flex:1;align-items:center;gap:8px;padding:15px 12px;font-size:11px;display:flex}.drive-button small{color:var(--text-muted);margin-top:5px;font-size:10px;display:block}.drive-button>kbd{margin-left:auto}.drive-button.forward{background:var(--border-subtle);border-color:#cbdaba}.drive-button:active{background:#d7e6c1}.drive-button>span:first-child{display:inline-flex}.drive-button.left,.drive-button.right,.pad-center{display:none}.session-control{border-left:1px solid var(--border-subtle);flex-direction:column;gap:8px;padding-left:20px;display:flex}.session-button{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-s);align-items:center;gap:7px;padding:8px 10px;font-size:10px;display:flex}.session-button kbd{min-width:16px;height:16px;margin-left:auto;font-size:10px}.session-button svg{width:13px;height:13px}.reset-button{color:var(--text-muted);border-color:#0000}.feedback-row{color:var(--text-muted);justify-content:space-between;gap:20px;padding:16px 3px;font-size:10px;line-height:1.6;display:flex}.feedback-row strong{color:var(--text-muted);font-weight:500}.notice-message{color:var(--accent)}@media (max-width:1100px){.app-shell{padding:0 30px}.lab-layout{gap:16px}.controls-card{grid-template-columns:minmax(200px,1fr) minmax(220px,1fr) 120px;gap:18px;padding:20px}.session-control{padding-left:12px}.drive-button{padding:13px 8px}.coordinate-strip{flex-wrap:wrap}.coordinate-strip>span:last-child{margin-left:0}}@media (max-width:900px){.app-shell{padding:0 24px}.lab-layout{grid-template-columns:1fr;grid-template-areas:"view""controls""settings"}.settings-card{grid-template-columns:1fr 1fr;gap:10px 24px;display:grid}.card-heading{grid-column:1/-1;margin-bottom:0}.field-label{margin:5px 0 -4px}.settings-card .field-label,.settings-card select{grid-column:1/-1}.vehicle-spec{border:none}.setting-range{margin-top:10px}.settings-note{margin:10px 0}.insight{grid-column:1/-1}.controls-card{grid-template-columns:1fr 1fr;height:232px}.steering-control{grid-column:1/-1}.session-control{border:none;flex-direction:row;padding:0}.session-button{flex:1;justify-content:center;min-height:44px}.drive-button{min-height:60px}}@media (pointer:coarse){input[type=range]{height:36px}input[type=range]::-webkit-slider-thumb{width:20px;height:20px}input[type=range]::-moz-range-thumb{width:17px;height:17px}input[type=checkbox]{width:18px;height:18px}}@media (max-width:560px){.app-shell{padding:0 14px}h1{letter-spacing:-1px;font-size:29px}.view-toolbar{padding:15px}.view-actions{gap:8px}.view-actions .live-status{display:none}.collision-banner{gap:10px;padding:14px}.live-status{font-size:10px}.map-caption{max-width:78%;font-size:10px;top:10px;left:10px}.view-options{gap:13px;padding:13px}.view-hint{display:none}.telemetry{grid-template-columns:1fr 1fr;gap:18px 0}.telemetry>div:nth-child(2){border:none}.coordinate-strip{padding:11px 13px;font-size:10px}.settings-card{gap:12px 16px;padding:18px}.controls-card{grid-template-columns:1fr;padding:18px}.steering-control{grid-column:auto}.session-control{gap:10px}.session-button{min-height:38px}.feedback-row{flex-direction:column;gap:5px}}@media (max-width:600px),(max-height:500px) and (pointer:coarse){.app-shell{--phone-dock-height:184px;padding:env(safe-area-inset-top,0px) max(10px, env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(10px, env(safe-area-inset-left,0px))}main{padding-top:8px}.lab-layout{grid-template-areas:"view""controls""settings";gap:0 8px;padding-bottom:8px}.simulation-card{height:calc(100vh - var(--phone-dock-height) - 72px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));height:calc(100dvh - var(--phone-dock-height) - 72px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));border-radius:var(--radius-m) var(--radius-m) 0 0;min-height:160px;box-shadow:none;border-bottom:0;flex-direction:column;display:flex;position:relative}.view-toolbar{gap:8px;height:44px;min-height:44px;padding:0 10px}.view-name{gap:5px;font-size:11px}.view-actions{gap:8px}.view-actions .live-status{display:none}.settings-toggle{min-height:44px;padding:6px;font-size:10px}.map-container{flex:1;min-height:0}.overhead{height:100%;min-height:0;position:absolute;inset:0}.map-caption{max-width:78%;padding:5px 6px;font-size:10px;top:6px;left:6px}.view-options{flex-shrink:0;gap:10px;height:44px;padding:2px 8px;font-size:10px}.view-options label{gap:5px;min-height:40px}.view-hint{display:none}.measurements-toggle{min-height:40px;margin-left:auto;font-size:10px;display:inline-flex}.measurements-panel{display:none}.measurements-panel.expanded{z-index:7;background:var(--surface-raised);border-top:1px solid var(--border);max-height:calc(100% - 88px);display:block;position:absolute;bottom:44px;left:0;right:0;overflow:auto;box-shadow:0 -4px 16px #263c3320}.controls-card{z-index:10;height:var(--phone-dock-height);border-radius:0 0 var(--radius-m) var(--radius-m);box-shadow:none;border-top:0;grid-template:"pad angle"48px"pad session"1fr/minmax(0,1fr) 80px;grid-area:controls;align-items:stretch;gap:8px;padding:10px;position:relative}.steering-control{grid-area:angle;min-width:0}.steering-title{text-align:center;flex-direction:column;align-items:center;gap:4px;height:auto;margin:0;font-size:10px;display:flex}.steering-title strong{font-size:13px}.steering-title strong span{margin:0;display:block}.controls-card input[type=range],.steering-bottom,.controls-card kbd{display:none}.movement-control{grid-area:pad;grid-template-rows:repeat(3,48px);grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:".forward.""left center right"".reverse.";align-content:center;gap:4px;display:grid}.drive-button.forward{grid-area:forward}.drive-button.reverse{grid-area:reverse}.drive-button.left{grid-area:left}.drive-button.right{grid-area:right}.drive-button,.drive-button.left,.drive-button.right{text-align:center;flex-direction:column;justify-content:center;gap:2px;min-width:0;min-height:48px;padding:3px 1px;font-size:11px;display:flex}.drive-button>span:first-child svg{width:14px;height:14px}.drive-button small{display:none}.pad-center{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface-raised);color:var(--text-muted);grid-area:center;min-height:48px;padding:2px;font-size:11px;display:block}.session-control{border:none;flex-direction:column;grid-area:session;justify-content:center;gap:6px;padding:0}.session-button{flex:0;justify-content:center;gap:4px;min-height:44px;padding:6px;font-size:11px}.session-button svg{display:none}.reset-button{border-color:var(--border)}.feedback-row{display:none}.feedback-row.has-notice{z-index:30;top:calc(108px + env(safe-area-inset-top,0px));pointer-events:none;background:var(--danger-surface);border:1px solid var(--danger-border);border-radius:var(--radius-s);padding:10px 12px;font-size:11px;display:block;position:fixed;left:10px;right:10px}.feedback-row>span{display:none}.collision-banner{z-index:5;background:#fff0e4f5;gap:8px;padding:9px 10px;position:absolute;top:44px;left:0;right:0}.collision-banner strong{font-size:12px}.collision-banner p{margin-top:3px;font-size:10px}.collision-symbol{width:20px;height:20px;font-size:12px}.has-contact .map-caption{display:none}.help-panel{z-index:20;top:calc(64px + env(safe-area-inset-top,0px));max-height:calc(100vh - 260px);max-height:calc(100svh - 260px);padding:14px;font-size:12px;position:fixed;left:10px;right:10px;overflow:auto;box-shadow:0 4px 20px #263c3330}.keyboard-help{display:none}.phone-help{display:block}.settings-card{margin-top:8px;padding-bottom:20px}}@media (min-width:601px) and (max-height:500px) and (pointer:coarse){.lab-layout{grid-template-columns:minmax(0,1fr) 240px;grid-template-areas:"view controls""settings settings";column-gap:0;padding-bottom:8px}.simulation-card{height:calc(100vh - 72px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));height:calc(100dvh - 72px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));border-radius:var(--radius-m) 0 0 var(--radius-m);border-right:0;border-bottom:1px solid var(--border);min-height:180px}.controls-card{height:calc(100vh - 72px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));height:calc(100dvh - 72px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));border-radius:0 var(--radius-m) var(--radius-m) 0;border-top:1px solid var(--border);grid-area:controls;grid-template-rows:48px 104px;grid-template-columns:minmax(0,1fr) 64px;align-content:center;min-height:250px;position:relative;inset:auto}.steering-title{font-size:10px}.feedback-row.has-notice{top:calc(100px + env(safe-area-inset-top,0px))}}@media (min-width:601px) and (max-height:340px) and (pointer:coarse){.simulation-card,.controls-card{height:calc(100vh - 56px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));height:calc(100dvh - 56px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));min-height:210px}.controls-card{grid-template-rows:48px 104px;gap:6px;padding:8px;top:auto}.drive-button{min-height:48px}.session-button{min-height:44px}.feedback-row.has-notice{top:calc(92px + env(safe-area-inset-top,0px))}}.activity-switch{border-radius:var(--radius-s);background:var(--surface-sunken);gap:4px;padding:3px;display:flex}.activity-switch button{border-radius:var(--radius-s);min-height:38px;color:var(--text-muted);background:0 0;border:0;padding:6px 14px;font-size:12px}.activity-switch button[aria-pressed=true]{background:var(--surface-raised);color:var(--text-strong);box-shadow:0 1px 4px #263c3318}.simulation-card{position:relative}.simulation-card .view-options{height:44px;padding:0 10px;position:relative}.aids-toggle,.simulation-card .measurements-toggle{align-items:center;min-height:44px;padding:4px 8px;display:inline-flex}.simulation-card .measurements-toggle{margin-left:auto}.aids-menu{z-index:8;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-m);min-width:180px;box-shadow:var(--shadow-raised);padding:8px 12px;display:grid;position:absolute;bottom:48px;left:8px}.aids-menu[hidden]{display:none}.aids-menu label{min-height:44px;font-size:12px}.simulation-card .measurements-panel{display:none}.simulation-card .measurements-panel.expanded{z-index:7;background:var(--surface-raised);border-top:1px solid var(--border);max-height:calc(100% - 88px);display:block;position:absolute;bottom:44px;left:0;right:0;overflow:auto;box-shadow:0 -4px 16px #263c3320}.map-caption{pointer-events:none}.overhead[data-editing=true]{touch-action:none;cursor:crosshair}.overhead[data-editing=true]:focus-visible{outline-offset:-4px}.prediction-aid-hint{color:var(--text-muted);font-size:10px}.controls-card.prediction-controls{padding:10px;display:block}.prediction-panel{align-content:center;gap:4px;max-width:560px;height:100%;margin:0 auto;display:grid}.exercise-heading h2{margin:0;font-size:14px;font-weight:550;line-height:16px}.exercise-heading p{color:var(--text-muted);margin:2px 0 0;font-size:11px;line-height:14px}.exercise-hint{color:var(--text-muted);margin:0;font-size:10px;line-height:13px}.rotation-row{grid-template-columns:1fr 38px 1fr;align-items:center;gap:4px;display:grid}.prediction-controls .session-button{justify-content:center;min-height:44px;padding:4px;font-size:11px}.rotation-row>span{text-align:center;font-variant-numeric:tabular-nums;font-size:13px}.rotation-row small{color:var(--predict);font-size:10px;display:block}.primary-action{border:1px solid var(--action-border);border-radius:var(--radius-s);background:var(--action);min-height:44px;color:var(--on-action);padding:6px 10px;font-size:12px;font-weight:650}.primary-action:not(:disabled):hover{background:var(--action-hover)}.primary-action:disabled{background:var(--border-subtle);border-color:var(--border);color:var(--text-disabled);opacity:1}.exercise-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.prediction-errors{grid-template-columns:1fr 1fr;gap:12px;display:grid}.prediction-errors span{color:var(--text-muted);font-size:10px;display:block}.prediction-errors strong{font-variant-numeric:tabular-nums;font-size:22px;font-weight:500}.prediction-errors small{margin-left:4px;font-size:11px;font-weight:400}.prediction-panel progress{width:100%;height:12px;accent-color:var(--predict);margin:12px 0}.parking-panel progress{accent-color:var(--accent);margin:3px 0}.recovery-panel{overscroll-behavior:contain;align-content:start;gap:6px;overflow-y:auto}.recovery-choices{gap:4px;display:grid}.recovery-done{color:var(--success);margin-left:6px;font-weight:650}.path-shortcut{border:1.5px solid var(--action-border);background:var(--action-tint);min-height:36px;color:var(--on-action);white-space:nowrap;gap:0;font-weight:700}.path-shortcut:hover{background:var(--action)}.path-shortcut-short{display:none}@media (max-width:400px){.simulator-shell .view-toolbar .view-actions{gap:5px}.simulator-shell .view-toolbar .activity-switch button{padding:4px 6px}.simulator-shell .view-toolbar .settings-toggle{padding:6px 5px}}@media (max-width:340px){.toolbar-long{display:none}.simulator-shell .view-toolbar .view-actions{gap:3px}.simulator-shell .view-toolbar .activity-switch button{padding:4px}.simulator-shell .view-toolbar .path-shortcut{padding:6px 4px}}@media (max-width:600px){.path-shortcut-long{display:none}.path-shortcut-short{display:inline}}@media (max-width:600px),(max-height:500px) and (pointer:coarse){.path-shortcut{min-height:44px}}.action-button{border:1px solid var(--action-border);border-radius:var(--radius-s);background:var(--action);min-height:44px;color:var(--on-action);font:inherit;cursor:pointer;padding:0 16px;font-size:14px;font-weight:650}.action-button:hover{background:var(--action-hover)}.learn-offer{border-radius:var(--radius-m);background:var(--surface-sunken);flex-wrap:wrap;align-items:center;gap:8px 14px;margin:10px 0 4px;padding:10px 12px;display:flex}.learn-offer p{color:var(--text-strong);flex:220px;margin:0;font-size:13px}@media (max-width:600px),(max-height:500px) and (pointer:coarse){.learn-offer{background:0 0;margin:4px 0 0;padding:0}.learn-offer p{display:none}}.scroll-cue{background:linear-gradient(#fcfcf800, var(--surface-raised) 70%);pointer-events:none;justify-content:center;align-items:flex-end;height:52px;margin-top:-52px;padding-bottom:2px;display:flex;position:sticky;bottom:0}.scroll-cue button{border:1px solid var(--border-strong);border-radius:var(--radius-l);background:var(--surface-raised);min-height:44px;color:var(--text-strong);pointer-events:auto;padding:0 16px;font-size:12px;box-shadow:0 3px 10px #263c3322}.recovery-picker-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;column-gap:12px;display:flex}.recovery-count{color:var(--text-muted);margin:0;font-size:12px}@media (max-width:600px){.recovery-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.recovery-choices .session-button{padding:4px 8px;font-size:12px;line-height:1.25}}@media (min-width:601px){.recovery-choices{grid-template-columns:repeat(auto-fit,minmax(195px,1fr));gap:6px}}@media (max-width:420px){.recovery-panel .exercise-actions.three-actions{grid-template-columns:1fr}}.recovery-panel .session-button{white-space:normal;min-height:44px}.recovery-measurements span{display:block}.recovery-measurements strong{color:var(--text-strong)}.parking-driving-hint{color:var(--text-strong);grid-column:1/-1;margin:0;font-size:11px;line-height:14px}.parking-short-cue{display:none}.parking-driving-hint.is-cue,.map-caption.is-cue,.exercise-hint.cue-strip{border:1px solid var(--hint-border);border-left:4px solid var(--hint-accent);border-radius:var(--radius-s);background:var(--hint-surface);color:var(--on-hint)}.parking-driving-hint.is-cue{align-items:center;min-height:28px;padding:0 10px;font-size:13px;font-weight:500;line-height:13px;display:flex;overflow:hidden}.parking-driving-hint.is-cue>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.parking-driving-hint.is-cue>.parking-short-cue{display:none}@media (max-width:900px),(max-height:500px) and (pointer:coarse){.parking-driving-hint.is-cue{padding:0 8px;font-size:12px;line-height:14px}}.parking-driving-hint.is-cue strong{font-weight:700}.exercise-hint.cue-strip{padding:6px 10px;font-size:13px;font-weight:500;line-height:17px}@media (max-width:600px),(max-height:500px) and (pointer:coarse){.exercise-hint.cue-strip{padding:3px 8px;font-size:12px;line-height:15px}}.exercise-heading .exercise-move{color:var(--text-strong);font-size:13px;font-weight:700}.map-caption.is-cue{max-width:min(78%,420px);box-shadow:var(--shadow-raised);padding:8px 12px;font-size:14px;font-weight:600;line-height:1.35}.parking-driving-hint.is-cue .parking-full-cue,.parking-driving-hint.is-cue .parking-short-cue{animation:.9s ease-out cue-arrive}@keyframes cue-arrive{0%{background:#ffd59a;box-shadow:0 0 0 6px #ffd59a}to{background:0 0;box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.parking-driving-hint.is-cue .parking-full-cue,.parking-driving-hint.is-cue .parking-short-cue{animation:none}}.controls-card.parking-driving{grid-template-rows:28px minmax(0,1fr);row-gap:8px}@media (min-width:601px) and (max-width:900px) and (min-height:501px){.controls-card.parking-driving{grid-template-rows:28px auto auto;padding:14px}}.parking-actions{gap:8px;min-width:0;margin-left:auto;display:flex}.parking-actions button{min-height:44px;padding:4px 8px;font-size:11px}.parking-results{grid-template-columns:1fr 1fr;gap:4px 14px;font-size:11px;display:grid}.parking-results span{justify-content:space-between;gap:5px;display:flex}.parking-results strong{color:var(--text-strong);font-weight:550}@media (max-width:600px),(max-height:500px) and (pointer:coarse){.activity-switch{gap:0;padding:0}.activity-switch button{min-height:44px;padding:4px 9px;font-size:11px}.parking-actions{gap:3px}.parking-actions button{padding:3px 6px;font-size:10px}.parking-panel{gap:4px}.controls-card.parking-driving{grid-template-rows:28px 40px 96px;grid-template-areas:"hint hint""pad angle""pad session";gap:4px;padding:6px}.parking-driving-hint{grid-area:hint;font-size:10px}.parking-full-cue{display:none}.parking-short-cue{display:inline}.parking-driving-hint.is-cue>.parking-full-cue{display:none}.parking-driving-hint.is-cue>.parking-short-cue{display:-webkit-box}.parking-driving .movement-control{grid-template-rows:repeat(3,44px)}.parking-driving .drive-button,.parking-driving .pad-center{min-height:44px}.parking-driving .steering-title label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.parking-driving .steering-title{gap:0}.parking-driving .session-control{gap:4px}.parking-panel .exercise-actions{gap:3px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.view-stage{width:100%;height:clamp(280px,52vh,560px);display:flex;position:relative}.view-pane{flex:1;min-width:0;height:100%;position:relative;overflow:hidden}.view-pane .overhead{height:100%}.view-compare .view-pane+.view-pane{border-left:1px solid var(--border-strong)}.driver-view,.driver-view canvas{width:100%;height:100%;display:block}.driver-view{position:relative}.camera-look{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface-overlay);min-width:44px;min-height:44px;color:var(--text-strong);padding:6px 10px;font-size:11px;position:absolute;top:8px;right:8px}.driver-dashboard{color:#eef3e8;pointer-events:none;background:linear-gradient(#0000,#273d38ed 35%);align-items:flex-end;gap:12px;height:92px;padding:8px 20px;display:flex;position:absolute;bottom:0;left:0;right:0}.steering-wheel{flex-shrink:0;width:76px;height:76px}.driver-dashboard span{padding-bottom:8px;font-size:11px}.driver-dashboard small{color:#d0d9ce;margin-top:4px;font-size:10px;display:block}.camera-loading{place-items:center;height:100%;font-size:12px;display:grid}.view-toggle{white-space:nowrap;min-height:44px;padding:0 4px}.camera-menu{z-index:9;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-m);width:180px;box-shadow:var(--shadow-raised);padding:6px;display:grid;position:absolute;bottom:48px;left:8px}.camera-menu[hidden]{display:none}.camera-menu button{text-align:left;border-radius:var(--radius-s);min-height:44px;color:var(--text-strong);background:0 0;border:0;padding:8px 12px}.camera-menu button[aria-pressed=true]{background:var(--border-subtle)}.inset-toolbar{display:none}.path-progress-hint{color:var(--text-strong)}.exercise-actions.three-actions{grid-template-columns:repeat(3,1fr)}.three-actions .primary-action{padding:4px;font-size:11px}@media (max-width:600px),(max-height:500px) and (pointer:coarse){.view-stage{height:100%}.simulation-card .view-options{gap:4px}.view-options .text-button{padding-left:4px;padding-right:4px;font-size:10px}.prediction-aid-hint{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.view-compare .is-main{position:absolute;inset:0}.view-compare .is-inset{z-index:2;border:1px solid var(--border-emphasis);border-radius:var(--radius-s);background:var(--surface-map);width:34%;min-width:120px;height:min(70%,220px);padding-top:44px;position:absolute;top:8px;right:8px;box-shadow:0 3px 10px #263c3330}.view-compare .view-pane+.view-pane{border-left:0}.view-compare .is-inset .inset-toolbar{background:var(--surface-overlay);z-index:3;justify-content:flex-end;align-items:center;height:44px;display:flex;position:absolute;top:0;left:0;right:0}.inset-toolbar span{display:none}.inset-toolbar button{min-width:44px;min-height:44px;color:var(--text-strong);background:0 0;border:0;font-size:20px}.view-compare .is-inset .overhead{height:calc(100% - 44px);top:44px}.view-compare .is-inset .driver-dashboard{display:none}.view-compare .is-inset .camera-look{padding:4px;font-size:10px;top:auto;bottom:0;right:0}.driver-dashboard{gap:8px;height:78px;padding:6px 10px}.steering-wheel{width:64px;height:64px}.driver-dashboard span,.driver-dashboard small{font-size:10px}.view-driver+.map-caption,.view-compare+.map-caption{max-width:52%}}@media (max-height:340px) and (pointer:coarse){.view-compare .is-inset{display:none}}@media (max-width:600px),(max-height:500px) and (pointer:coarse){.view-compare .is-main .camera-look{top:44px;left:8px;right:auto}}.has-contact .driver-view:after{content:"";border:3px solid var(--danger);pointer-events:none;position:absolute;inset:0}@media (max-width:600px),(max-height:500px) and (pointer:coarse){.inset-toolbar span{background:var(--surface-overlay);border-radius:var(--radius-xs);pointer-events:none;padding:2px 4px;font-size:10px;display:block;position:absolute;top:44px;left:4px}}.camera-tour-action{margin-top:4px;border-top:1px solid var(--border)!important}.camera-tour-action small{color:var(--text-muted);margin-top:4px;font-size:10px;display:block}.view-stage.is-travelling{display:block}.is-travelling .view-pane{border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.is-travelling .driver-pane{z-index:3}.is-travelling .overhead-pane{pointer-events:none}.camera-travelling canvas{opacity:var(--travel-opacity,1)}.camera-travelling .driver-dashboard,.is-travelling+.map-caption{display:none}.camera-travel-note{background:var(--surface-overlay);max-width:calc(100% - 130px);color:var(--text-strong);border-radius:var(--radius-s);pointer-events:none;margin:0;padding:8px;font-size:11px;position:absolute;top:8px;left:8px}.camera-travel-note small{margin-top:4px;font-size:10px;display:block}[inert]{pointer-events:none}.controls-card[inert]{opacity:.65}@media (max-width:600px),(max-height:500px) and (pointer:coarse){.camera-travel-note,.camera-travel-note small{font-size:10px}.is-travelling .is-inset .overhead{height:100%;top:0}.camera-travelling .camera-look{top:8px;bottom:auto}}.screen-reader-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.camera-travelling{touch-action:none}@media (max-width:600px),(max-height:500px) and (pointer:coarse){.camera-menu{max-height:min(240px, calc(100vh - var(--phone-dock-height) - 124px));max-height:min(240px, calc(100dvh - var(--phone-dock-height) - 124px));overscroll-behavior:contain;overflow:auto}}@media (min-width:601px) and (max-height:500px) and (pointer:coarse){.camera-menu{max-height:min(240px,100vh - 124px);max-height:min(240px,100dvh - 124px)}}.mirror-controls{z-index:5;position:absolute;top:60px;right:8px}.mirror-toggle{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface-overlay);min-width:44px;min-height:44px;color:var(--text-strong);padding:6px 10px;font-size:11px}.mirror-menu{width:170px;max-height:calc(var(--driver-height,400px) - 116px);overscroll-behavior:contain;border:1px solid var(--border-strong);border-radius:var(--radius-s);background:var(--surface-raised);padding:6px;display:grid;position:absolute;top:48px;right:0;overflow:auto;box-shadow:0 3px 12px #263c3320}.mirror-menu>span{color:var(--text-muted);padding:6px;font-size:10px}.mirror-menu button{min-height:44px;color:var(--text-strong);border-radius:var(--radius-s);text-align:left;background:0 0;border:0;padding:6px;font-size:11px}.mirror-menu button[aria-pressed=true]{background:var(--border-subtle)}.mirror-panel{border:1px solid var(--border-emphasis);border-radius:var(--radius-s);width:min(210px,44%);position:absolute;top:60px;left:8px;overflow:hidden;box-shadow:0 2px 8px #263c3330}.mirror-heading{background:var(--surface-overlay);height:44px;color:var(--text-strong);justify-content:space-between;align-items:center;padding-left:8px;font-size:10px;display:flex}.mirror-heading button{min-width:44px;min-height:44px;color:var(--text-strong);background:0 0;border:0;padding:0;font-size:20px}.mirror-window{pointer-events:none;height:68px}.driver-view[data-mirror-mode=full] .mirror-panel{width:100%;height:100%;box-shadow:none;border:0;border-radius:0;inset:0}.driver-view[data-mirror-mode=full] .mirror-window{height:calc(100% - 44px)}.driver-view[data-mirror-mode=full] .mirror-controls{top:0;left:auto;right:48px}.driver-view[data-mirror-mode=full] .mirror-menu{max-height:calc(var(--driver-height,160px) - 52px)}.driver-view[data-mirror-mode=full] .camera-look,.driver-view[data-mirror-mode=full] .driver-dashboard,.camera-travelling .mirror-panel,.camera-travelling .mirror-controls{display:none}@media (max-width:600px),(max-height:500px) and (pointer:coarse){.view-compare .is-main .mirror-controls{top:92px;left:8px;right:auto}.view-compare .is-main .mirror-menu{max-height:calc(var(--driver-height,400px) - 148px);left:0;right:auto}.view-compare .is-main .mirror-panel{top:144px}.view-compare .is-inset .mirror-controls,.view-compare .is-inset .mirror-panel{display:none}.view-compare:has(.is-main .driver-view[data-mirror-mode=full]) .overhead-pane.is-inset{display:none}.view-compare .is-main .driver-view[data-mirror-mode=full] .mirror-panel{top:0}.view-compare .is-main .driver-view[data-mirror-mode=full] .mirror-controls{top:0;left:auto;right:48px}.view-compare .is-main .driver-view[data-mirror-mode=full] .mirror-menu{max-height:calc(var(--driver-height,160px) - 52px);left:auto;right:0}}.view-stage:has(.driver-view[data-mirror-mode=full])+.map-caption{display:none}.driver-view[data-compact=true][data-mirror-mode=preview]:not(.camera-travelling) .mirror-controls{top:8px;left:8px;right:auto}.driver-view[data-compact=true][data-mirror-mode=preview]:not(.camera-travelling) .camera-look{top:8px;left:80px;right:auto}.driver-view[data-compact=true][data-mirror-mode=preview]:not(.camera-travelling) .mirror-menu{max-height:calc(var(--driver-height,160px) - 64px);left:0;right:auto}.view-stage:has(.driver-view[data-compact=true])+.map-caption{display:none}.windshield-frame{pointer-events:none;border-radius:var(--radius-l) var(--radius-l) 0 0;background:linear-gradient(90deg,#203c354d,#0000 3% 97%,#203c354d);border-top:5px solid #344e4766;position:absolute;inset:0}.driver-view[data-mirror-mode=full] .windshield-frame{display:none}.feedback-tip{color:var(--primary);margin-top:3px;display:block}.lesson-step{white-space:nowrap;text-overflow:ellipsis;max-width:280px;overflow:hidden}.lesson-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.lesson-actions button{white-space:nowrap;min-height:44px;padding:6px 10px;font-size:11px}.lesson-backdrop{z-index:100;padding:calc(16px + env(safe-area-inset-top,0px)) 16px calc(16px + env(safe-area-inset-bottom,0px));background:#172c2670;place-items:center;display:grid;position:fixed;inset:0}.lesson-dialog{width:min(440px,100%);max-height:calc(100vh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overscroll-behavior:contain;border-radius:var(--radius-l);background:var(--surface-raised);padding:24px;overflow:auto;box-shadow:0 12px 48px #182c2640}.lesson-kicker{color:var(--text-muted);font-size:12px}.lesson-dialog h2{margin:12px 0;font-size:23px;line-height:1.2}.lesson-dialog p{font-size:15px;line-height:1.5}.lesson-dialog .lesson-pause-note{color:var(--text-muted);font-size:12px}.lesson-dialog-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:18px;display:grid}@media (max-width:600px),(max-height:500px) and (pointer:coarse){.lesson-step-name{display:none}.lesson-dialog{padding:18px}.lesson-dialog h2{font-size:20px}.lesson-actions{gap:4px}.lesson-actions button{padding:4px 8px}}.is-mirror-lesson.view-compare{grid-template-columns:1.35fr 1fr;display:grid}.is-mirror-lesson .mirror-driver{order:0}.is-mirror-lesson .mirror-overhead{background:var(--surface-map);order:1;padding-top:24px}.mirror-map-label{background:var(--surface-raised);height:24px;color:var(--text-strong);padding:4px 8px;font-size:10px;position:absolute;top:0;left:0;right:0}.driver-view[data-mirror-lesson] .mirror-window{width:min(100%, calc((var(--driver-height,200px) - 44px) * 2));max-height:calc(var(--driver-height,200px) - 44px);aspect-ratio:2;height:auto;margin:auto}.driver-view[data-mirror-lesson][data-mirror-mode=full] .mirror-panel{flex-direction:column;display:flex}.driver-view[data-mirror-lesson] .mirror-heading,.driver-view[data-mirror-lesson] .mirror-window{flex-shrink:0}.driver-view[data-mirror-lesson][data-mirror-mode=preview] .mirror-panel{width:min(320px,52%);top:8px}.driver-view[data-mirror-lesson] .mirror-heading{justify-content:center}@media (max-width:600px) and (min-height:501px){.is-mirror-lesson.view-compare{grid-template-rows:1fr 1fr;grid-template-columns:1fr}.is-mirror-lesson.view-compare .view-pane{border:0;min-height:0}.is-mirror-lesson.view-compare .mirror-overhead{border-top:1px solid var(--border-strong)}}.is-mirror-lesson .mirror-overhead .overhead{height:calc(100% - 24px);position:absolute;inset:24px 0 0}.is-mirror-lesson .driver-view canvas{position:absolute;inset:0}.simulator-shell{--simulator-dock-height:184px;max-width:1500px;padding:max(12px, env(safe-area-inset-top,0px)) max(12px, env(safe-area-inset-right,0px)) max(12px, env(safe-area-inset-bottom,0px)) max(12px, env(safe-area-inset-left,0px))}.simulator-shell[hidden]{display:none}.simulator-shell>main{outline:none;padding:0}.simulator-shell .lab-layout{gap:0}.simulator-shell .simulation-card{height:calc(100vh - var(--simulator-dock-height) - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));height:calc(100dvh - var(--simulator-dock-height) - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));border-radius:var(--radius-m) var(--radius-m) 0 0;min-height:220px;box-shadow:none;border-bottom:0;flex-direction:column;display:flex}.simulator-shell .view-toolbar{gap:8px;height:48px;min-height:48px;padding:0 12px}.simulator-shell .view-actions{gap:8px}.simulator-shell .map-container{flex:1;min-height:0}.simulator-shell .view-stage,.simulator-shell .map-container>.overhead,.simulator-shell .view-pane .overhead{height:100%}.simulator-shell .controls-card{border-radius:0 0 var(--radius-m) var(--radius-m);box-shadow:none;border-top:0}.simulator-shell .collision-banner{z-index:5;position:absolute;top:48px;left:0;right:0}.simulator-shell .feedback-row:not(.has-notice){clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;display:block;position:absolute;overflow:hidden}.simulator-shell .feedback-row.has-notice{top:auto;bottom:calc(var(--simulator-dock-height) + 60px + env(safe-area-inset-bottom,0px));z-index:40;pointer-events:none;position:fixed;left:16px;right:16px}.simulator-shell .help-panel{width:min(600px,100vw - 32px);max-height:calc(100vh - 82px);z-index:60;border:1px solid var(--border-strong);max-height:calc(100dvh - 82px);box-shadow:var(--shadow-overlay);margin:0;position:fixed;top:66px;left:auto;right:16px;overflow:auto}.simulator-shell .settings-card{width:min(380px,100vw - 32px);max-height:calc(100vh - 82px);overscroll-behavior:contain;z-index:55;border:1px solid var(--border-strong);max-height:calc(100dvh - 82px);box-shadow:var(--shadow-overlay);margin:0;position:fixed;top:66px;right:16px;overflow:auto}.path-panel{z-index:56;width:min(400px,100vw - 32px);max-height:calc(100vh - 82px);overscroll-behavior:contain;border:1px solid var(--border-strong);border-radius:var(--radius-m);background:var(--surface-raised);max-height:calc(100dvh - 82px);box-shadow:var(--shadow-overlay);padding:18px 20px;position:fixed;top:66px;right:16px;overflow:auto}.path-panel .card-heading{margin-bottom:8px}.path-summary,.path-note{color:var(--text-muted);margin:0 0 12px;font-size:12px;line-height:1.5}.path-continue{width:100%;min-height:44px;margin-bottom:12px}.path-steps{gap:2px;margin:0 0 12px;padding:0;list-style:none;display:grid}.path-steps li{border-radius:var(--radius-s);align-items:flex-start;gap:10px;padding:6px 4px;display:flex}.path-steps li.is-next{background:var(--surface-sunken)}.path-marker{border:1px solid var(--border-strong);height:26px;color:var(--text-muted);border-radius:50%;flex:0 0 26px;place-items:center;margin-top:9px;font-size:12px;display:grid}.is-complete .path-marker{background:var(--success);border-color:var(--success);color:#fff}.path-step-text{display:grid}.path-step-text .text-button{text-align:left;min-height:44px;color:var(--text-strong);justify-content:flex-start;padding:0;font-size:14px}.path-step-text small{color:var(--text-muted);font-size:12px;line-height:1.4}.path-clear,.path-clear-toggle{min-height:44px;font-size:12px}.path-clear{color:var(--danger-strong);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.path-prompt{z-index:45;border:1px solid var(--border-strong);border-radius:var(--radius-m);background:var(--surface-raised);width:max-content;max-width:calc(100vw - 32px);box-shadow:var(--shadow-raised);align-items:center;gap:12px;padding:8px 8px 8px 16px;display:flex;position:fixed;top:66px;left:50%;transform:translate(-50%)}.path-celebration{border-color:var(--success-border);background:var(--surface);flex-wrap:wrap;max-width:min(560px,100vw - 32px);padding:12px 60px 12px 16px}.path-celebration>p{flex:100%}.path-celebration .help-close{float:none;position:absolute;top:6px;right:6px}.path-suggestions{flex-wrap:wrap;flex:100%;gap:8px;display:flex}.path-suggestions button{flex:180px;min-height:44px}.path-celebration-note p{color:var(--text-strong);margin:0 0 10px;font-size:13px;line-height:1.5}.path-celebration-note .path-suggestions{margin-bottom:14px;display:grid}.path-prompt p{color:var(--text-strong);margin:0;font-size:13px}.path-prompt .primary-action{white-space:nowrap;min-height:44px}@media (max-width:600px){.path-prompt{flex-wrap:wrap;width:calc(100vw - 32px)}}.path-prompt-question{flex-wrap:wrap;width:min(600px,100vw - 32px)}.quick-question{border:0;border-top:1px solid var(--border-subtle);flex-basis:100%;min-width:0;margin:0;padding:10px 0 2px}.quick-question legend{float:left;width:100%;color:var(--text-muted);margin-bottom:8px;padding:0;font-size:13px}.quick-choices{clear:both;flex-wrap:wrap;gap:6px;display:flex}.quick-choice{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface-raised);min-height:44px;color:var(--text-strong);font:inherit;white-space:nowrap;cursor:pointer;padding:0 14px;font-size:14px}.quick-choice:hover{border-color:var(--border-strong)}.quick-choice:focus-visible,.quick-skip:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.quick-skip{min-height:44px;color:var(--text-muted);font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0 10px;font-size:13px;text-decoration:underline}.quick-thanks{border-top:1px solid var(--border-subtle);flex-basis:100%;padding-top:8px}@media (min-width:1100px){.path-invite{left:auto;right:24px;transform:none}}.settings-close{float:none;margin-left:auto}.help-close{float:right;border:1px solid var(--border-strong);background:var(--surface);border-radius:50%;min-width:44px;min-height:44px;font-size:24px;position:sticky;top:0}.simulator-menu{flex-shrink:0;position:relative}.simulator-menu-toggle{border:1px solid var(--border);border-radius:var(--radius-s);background:0 0;justify-content:center;align-items:center;gap:8px;min-width:44px;min-height:44px;padding:0 10px;font-size:11px;display:flex}.simulator-menu-toggle[aria-expanded=true]{background:var(--surface-map)}.simulator-menu-panel{z-index:80;overscroll-behavior:contain;border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface-raised);width:min(270px,100vw - 24px);max-height:calc(100vh - 72px);padding:8px;display:grid;position:fixed;overflow:auto;box-shadow:0 12px 38px #263c3333}.simulator-menu-panel[hidden]{display:none}.simulator-menu-panel,.simulator-menu-panel *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}.simulator-menu-panel button,.simulator-menu-panel a{text-align:left;border-radius:var(--radius-s);min-height:44px;color:var(--text);background:0 0;border:0;align-items:center;padding:10px 12px;font-size:13px;text-decoration:none;display:flex}.simulator-menu-panel button:hover,.simulator-menu-panel a:hover{background:var(--surface-sunken)}.simulator-menu-heading{color:var(--text-muted);padding:12px;font-size:12px;font-weight:650}.simulator-menu-lessons{border-top:1px solid var(--border-subtle);margin-top:6px;padding-top:6px;display:grid}@media (min-width:601px) and (max-width:900px) and (min-height:501px){.simulator-shell{--simulator-dock-height:232px}}@media (max-width:600px),(max-height:500px) and (pointer:coarse){.simulator-shell{--simulator-dock-height:var(--phone-dock-height);padding:max(8px, env(safe-area-inset-top,0px)) max(8px, env(safe-area-inset-right,0px)) max(8px, env(safe-area-inset-bottom,0px)) max(8px, env(safe-area-inset-left,0px))}.simulator-shell .simulation-card{height:calc(100vh - var(--simulator-dock-height) - 16px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));height:calc(100dvh - var(--simulator-dock-height) - 16px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));min-height:160px}.simulator-shell .view-toolbar{padding:0 6px}.simulator-shell .activity-switch button{padding:4px 6px;font-size:10px}.simulator-shell .simulator-menu-toggle{padding:0}.simulator-menu-toggle>span{display:none}.simulator-shell .collision-banner{top:48px}}@media (min-width:601px) and (max-height:500px) and (pointer:coarse){.simulator-shell .simulation-card,.simulator-shell .controls-card{height:calc(100vh - 16px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));height:calc(100dvh - 16px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}.simulator-shell .simulation-card{border-radius:var(--radius-m) 0 0 var(--radius-m);border-bottom:1px solid var(--border)}.simulator-shell .controls-card{border-radius:0 var(--radius-m) var(--radius-m) 0;border-top:1px solid var(--border)}.simulator-shell .feedback-row.has-notice{bottom:calc(60px + env(safe-area-inset-bottom,0px));right:calc(240px + 16px + env(safe-area-inset-right,0px))}.simulator-shell .settings-card,.path-panel{top:60px;right:calc(240px + 16px + env(safe-area-inset-right,0px));width:min(380px,100vw - 288px);max-height:calc(100vh - 72px);max-height:calc(100dvh - 72px)}.path-prompt{top:60px;left:16px;right:calc(240px + 16px + env(safe-area-inset-right,0px));width:auto;transform:none}}.landing-page{max-width:1280px;margin:0 auto;padding:0 clamp(16px,5vw,64px)}.landing-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;min-height:88px;display:flex}.landing-brand{white-space:nowrap;color:var(--text-strong);letter-spacing:-.3px;align-items:center;gap:10px;font-size:20px;font-weight:650;text-decoration:none;display:flex}.landing-brand-symbol{background:var(--brand);width:42px;height:42px;color:var(--brand-mark);border-radius:var(--radius-m);place-items:center;display:grid}.landing-header nav{align-items:center;gap:24px;display:flex}.landing-header nav a{min-height:44px;color:var(--text);align-items:center;font-size:15px;text-decoration:none;display:inline-flex}.landing-header nav .landing-nav-action{white-space:nowrap;border:1px solid var(--border-strong);border-radius:var(--radius-pill);padding:0 18px;font-weight:550}.landing-header nav a:hover{color:var(--primary)}.landing-hero{grid-template-columns:1fr 1fr;grid-template-areas:"copy path""preview path";align-items:start;gap:28px clamp(32px,6vw,72px);padding:clamp(36px,6vw,64px) 0;display:grid}.landing-copy{grid-area:copy}.landing-copy h1{text-wrap:balance;letter-spacing:-.03em;color:var(--text-strong);margin:0 0 20px;font-size:clamp(36px,4.6vw,58px);font-weight:650;line-height:1.05}.landing-copy h1:focus{outline:none}.landing-description{max-width:520px;color:var(--text-muted);margin:0 0 28px;font-size:18px;line-height:1.6}.landing-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.landing-primary,.landing-secondary{border-radius:var(--radius-pill);align-items:center;gap:14px;min-height:52px;padding:0 22px;font-size:16px;font-weight:550;text-decoration:none;display:inline-flex}.landing-primary{border:1px solid var(--action-border);background:var(--action);color:var(--on-action);justify-content:space-between;font-weight:650}.landing-primary:hover{background:var(--action-hover)}.landing-strong{border-radius:var(--radius-pill);background:var(--primary);min-height:52px;color:var(--on-primary);align-items:center;padding:0 22px;font-size:16px;font-weight:550;text-decoration:none;display:inline-flex}.landing-strong:hover{background:var(--primary-hover)}.landing-text-link{color:var(--text-strong);text-underline-offset:2px;white-space:nowrap;font-weight:600}.landing-secondary{border:1px solid var(--border-strong);color:var(--text-strong)}.landing-secondary:hover{background:var(--surface-sunken)}.landing-entry-note{color:var(--text-muted);margin:16px 0 0;font-size:14px;line-height:1.5}.landing-path{grid-area:path}.landing-path h2{color:var(--text-strong);justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 12px;font-size:17px;font-weight:650;display:flex}.landing-path h2 span{color:var(--text-muted);font-size:14px;font-weight:450}.landing-path ol{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-l);margin:0;padding:0;list-style:none;overflow:hidden}.landing-path li+li{border-top:1px solid var(--border-subtle)}.landing-path a{color:inherit;align-items:flex-start;gap:14px;padding:14px 18px;text-decoration:none;display:flex}.landing-path a:hover{background:var(--surface-sunken)}.landing-path a:focus-visible{outline-offset:-3px}.landing-step-number{border:1px solid var(--border-strong);width:28px;height:28px;color:var(--text-strong);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:650;display:grid}.landing-path a[aria-current=step] .landing-step-number{background:var(--action);border-color:var(--action-border);color:var(--on-action)}.landing-path li[data-complete] .landing-step-number{background:var(--success-surface);border-color:var(--success-border);color:var(--success)}.landing-path strong{color:var(--text-strong);font-size:15px;font-weight:600;display:block}.landing-path small{color:var(--text-muted);margin-top:3px;font-size:14px;line-height:1.45;display:block}.landing-preview{background:var(--border-subtle);border:1px solid var(--border);border-radius:var(--radius-l);grid-area:preview;margin:0;overflow:hidden}.landing-scene{width:100%;height:clamp(240px,24vw,320px);display:block}.landing-preview figcaption{color:var(--text-muted);background:var(--surface-sunken);border-top:1px solid var(--border);padding:14px 18px;font-size:14px;line-height:1.55}.landing-preview figcaption strong{color:var(--text-strong);font-weight:600}.landing-guide{border-top:1px solid var(--border);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);column-gap:clamp(32px,6vw,72px);padding:clamp(36px,6vw,64px) 0;display:grid}.landing-guide:focus{outline:none}.landing-guide-intro h2{text-wrap:balance;letter-spacing:-.02em;color:var(--text-strong);margin:0 0 14px;font-size:clamp(26px,3vw,34px);font-weight:650;line-height:1.15}.landing-guide-intro p{color:var(--text-muted);margin:0 0 22px;font-size:16px;line-height:1.6}.landing-guide-steps{counter-reset:guide;margin:0;padding:0;list-style:none}.landing-guide-steps li{counter-increment:guide;padding:0 0 22px 44px;position:relative}.landing-guide-steps li:before{content:counter(guide);background:var(--surface-sunken);border:1px solid var(--border);width:28px;height:28px;color:var(--text-strong);border-radius:50%;place-items:center;font-size:13px;font-weight:650;display:grid;position:absolute;top:0;left:0}.landing-guide-steps h3{color:var(--text-strong);margin:3px 0 6px;font-size:17px;font-weight:600}.landing-guide-steps p{color:var(--text-muted);margin:0;font-size:15px;line-height:1.6}.landing-guide-note{color:var(--text-muted);grid-column:2;margin:4px 0 0 44px;font-size:14px;line-height:1.55}.guide-article{max-width:980px;padding:clamp(32px,5vw,56px) 0}.guide-intro h1{letter-spacing:-.03em;text-wrap:balance;color:var(--text-strong);margin:0 0 18px;font-size:clamp(32px,4.2vw,50px);font-weight:650;line-height:1.08}.not-found-title{color:var(--text-strong);margin:0 0 16px;font-size:clamp(32px,4vw,46px);font-weight:650}.guide-intro h1:focus{outline:none}.guide-intro .landing-description{max-width:680px}.guide-safety{border:1px solid var(--danger-border);border-radius:var(--radius-m);background:var(--danger-surface);max-width:680px;color:var(--text);margin:0 0 24px;padding:14px 16px;font-size:15px;line-height:1.55}.guide-stages{margin:40px 0 0;padding:0;list-style:none}.guide-stage{border-top:1px solid var(--border);grid-template-columns:minmax(200px,300px) 1fr;align-items:start;gap:clamp(20px,4vw,40px);padding:28px 0;display:grid}.guide-figure{border:1px solid var(--border);border-radius:var(--radius-l);background:#e1e7da;margin:0;overflow:hidden}.guide-scene{width:100%;height:340px;display:block}.guide-stage h2{color:var(--text-strong);align-items:center;gap:12px;margin:4px 0 10px;font-size:22px;font-weight:650;display:flex}.guide-stage-number{background:var(--primary);width:32px;height:32px;color:var(--on-primary);border-radius:50%;flex:none;place-items:center;font-size:15px;display:grid}.guide-stage p{color:var(--text);margin:0 0 12px;font-size:16px;line-height:1.65}.guide-stage .guide-watch{color:var(--text-muted)}.guide-legend{border-top:1px solid var(--border);color:var(--text-muted);margin:0;padding-top:20px;font-size:14px;line-height:1.55}.guide-numbers{max-width:760px;margin-top:36px}.guide-numbers h2{color:var(--text-strong);margin:0 0 6px;font-size:24px;font-weight:650}.guide-numbers>p{color:var(--text-muted);margin:0 0 14px;font-size:16px;line-height:1.6}.guide-numbers dl{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:0;display:grid}.guide-numbers dl>div{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface-raised);padding:14px 16px}.guide-numbers dt{color:var(--text-strong);font-size:18px;font-weight:750}.guide-numbers dd{color:var(--text);margin:6px 0 0;font-size:14px;line-height:1.45}.guide-report{color:var(--text-muted);margin:16px 0 0;font-size:14px}.guide-report a,.about-body a{color:var(--primary);text-underline-offset:2px}.about-kicker{color:var(--text-muted);margin:0 0 10px;font-size:14px;font-weight:600}.about-body{max-width:680px}.about-body p{color:var(--text);margin:0 0 16px;font-size:17px;line-height:1.65}.about-body h2{color:var(--text-strong);margin:36px 0 10px;font-size:22px;font-weight:650}.about-actions{margin-top:32px}.guide-faq{max-width:680px;margin-top:40px}.guide-faq h2{color:var(--text-strong);margin:0 0 4px;font-size:24px;font-weight:650}.guide-faq h3{color:var(--text-strong);margin:22px 0 6px;font-size:17px;font-weight:650}.guide-faq p{color:var(--text);margin:0;font-size:16px;line-height:1.6}.guide-faq a{color:var(--primary);text-underline-offset:2px}.guide-next{border:1px solid var(--border);border-radius:var(--radius-l);background:var(--surface-raised);margin-top:40px;padding:28px}.guide-next h2{color:var(--text-strong);margin:0 0 10px;font-size:24px;font-weight:650}.guide-next p{max-width:640px;color:var(--text-muted);margin:0 0 20px;font-size:16px;line-height:1.6}.landing-header nav a[aria-current=page]{color:var(--text-strong);font-weight:600}@media (max-width:700px){.guide-stage{grid-template-columns:1fr}.guide-figure{order:2}.guide-scene{height:300px}.guide-next{padding:20px}}.landing-page .landing-footer{border-top:1px solid var(--border);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;padding:24px 0 32px;font-size:13px;display:flex}.landing-footer>span{color:var(--text-strong);font-weight:600}.footer-links{gap:4px 16px;margin-right:auto;display:flex}.footer-links a{min-height:44px;color:var(--text-strong);text-underline-offset:2px;align-items:center;display:inline-flex}.footer-social{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:0 14px;display:flex}.footer-social span{color:var(--text-strong);font-weight:600}.footer-social a{min-height:44px;color:var(--text-muted);text-underline-offset:2px;align-items:center;display:inline-flex}.usage-notice{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:0 12px;max-width:72ch;margin:0;line-height:1.5;display:flex}.usage-toggle{min-height:44px;color:var(--text-strong);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 4px;font-weight:600;text-decoration:underline}@media (max-width:850px){.landing-hero{grid-template-columns:1fr;grid-template-areas:"copy""path""preview"}.landing-guide{grid-template-columns:1fr}.landing-guide-intro{margin-bottom:24px}.landing-guide-note{grid-column:1}}@media (max-width:600px){.landing-header{min-height:68px}.landing-brand{font-size:17px}.landing-brand-symbol{border-radius:var(--radius-s);width:36px;height:36px}.landing-header nav .landing-about-link{display:none}.landing-header nav .landing-nav-action{padding:0 14px;font-size:14px}.landing-hero{padding-top:28px}.landing-description{margin-bottom:22px;font-size:16px}.landing-primary,.landing-strong,.landing-secondary{width:100%}.landing-path a{padding:12px 14px}}@media (min-width:601px) and (max-height:500px){.landing-header{min-height:60px}.landing-hero{padding:18px 0 28px}.landing-copy h1{margin-bottom:12px;font-size:34px}.landing-description{margin-bottom:16px;font-size:16px}}.celebration{z-index:30;pointer-events:none;position:absolute;inset:0;overflow:hidden}.celebration-badge{z-index:1;border-radius:var(--radius-pill);background:var(--success);color:#fff;white-space:nowrap;box-shadow:var(--shadow-raised);padding:8px 16px;font-size:16px;font-weight:800;animation:.38s cubic-bezier(.2,1.4,.4,1) badge-pop,.3s ease-in 1.85s forwards badge-out;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}.confetti{opacity:0;width:7px;height:11px;animation:confetti-burst 1.4s cubic-bezier(.2, .7, .4, 1) var(--delay) forwards;border:.5px solid #1e3a2a22;border-radius:1.5px;position:absolute;top:38%;left:50%}@keyframes badge-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}}@keyframes badge-out{to{opacity:0}}@keyframes confetti-burst{0%{opacity:1;transform:translate(0)rotate(0)}35%{opacity:1;transform:translate(calc(var(--dx) * .6), var(--up)) rotate(calc(var(--rot) * .4))}to{opacity:0;transform:translate(var(--dx), 220px) rotate(var(--rot))}}@media (prefers-reduced-motion:reduce){.confetti{display:none}.celebration-badge{animation:none}}.step-check{background:var(--success);color:#fff;vertical-align:-5px;border-radius:50%;place-items:center;width:22px;height:22px;margin-right:8px;font-size:13px;font-weight:800;animation:.42s cubic-bezier(.2,1.4,.4,1) check-pop;display:inline-grid}@keyframes check-pop{0%{opacity:0;transform:scale(.4)}}.path-count.is-bumped{border-radius:var(--radius-xs);animation:1.2s ease-out count-glow}@keyframes count-glow{0%{background:var(--action);box-shadow:0 0 0 4px var(--action)}to{background:0 0;box-shadow:0 0 #0000}}.celebration.is-finale .celebration-badge{padding:10px 20px;font-size:18px;top:64%}.celebration.is-finale .confetti{top:64%}@media (prefers-reduced-motion:reduce){.step-check,.path-count.is-bumped{animation:none}}
