:root{color-scheme:dark;--bg:#141a1a;--panel:#202827;--line:#35403b;--muted:#a2afa4;--cream:#f0f1df;--lime:#dbed9b;--amber:#efc875}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--cream);font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}a:hover{color:var(--lime)}button{border:1px solid var(--line);border-radius:7px;background:transparent;color:var(--cream);padding:9px 12px;transition:background .15s}button:hover{background:#354238}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--lime);outline-offset:4px}[hidden]{display:none!important}.site-bar{height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4%;font-size:11px;letter-spacing:.1em}.brand{font-weight:800;display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:27px;height:28px;border:1px solid #a8b39d;color:var(--lime);font:700 22px Georgia,serif}.brand-soft{color:#89998d;font-weight:400}.site-bar nav{display:flex;gap:25px;letter-spacing:0;color:#c4cec1}main{max-width:1540px;margin:auto;padding:34px 4% 50px}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.17em;color:var(--muted);margin:0 0 10px}.live-dot{display:inline-block;width:6px;height:6px;background:var(--lime);border-radius:50%;margin-right:8px}h1{font-size:44px;font-weight:600;letter-spacing:-2px;line-height:1.12;margin:0 0 10px}h1>span{color:var(--lime)}.subtitle{color:#aab5ab;margin:0;font-size:15px}.quiet{font-size:12px;padding:11px 17px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:20px;align-items:start}.scene{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel)}.scene-toolbar{display:flex;align-items:center;justify-content:space-between;padding:15px 19px;border-bottom:1px solid var(--line)}.tabs{display:flex;gap:6px}.tabs button{border-color:transparent;color:#8c9b91;font-size:11px;padding:9px 12px}.tabs button span{margin-left:6px;font-size:13px}.tabs button[aria-pressed=true]{color:var(--lime);border-color:#52604a;background:#313e31}.live-label{font:9px monospace;letter-spacing:1px;color:#aabb97}.map-viewport{position:relative;width:100%;overflow:hidden;background:#a5b59b}.map-stage{position:absolute;width:1000px;height:650px;transform-origin:top left}#road{display:block;width:1000px;height:650px;touch-action:manipulation;cursor:crosshair}.island-copy{position:absolute;top:232px;left:300px;right:300px;text-align:center;pointer-events:none;color:#334838}.island-copy>span{font:700 11px monospace;letter-spacing:2px}.island-copy h2{font-size:46px;line-height:1.05;font-weight:650;letter-spacing:-1.6px;margin:13px 0}.island-copy p{font-size:13px;line-height:1.6;margin:0;color:#4f6550}.island-tag{font:10px monospace;letter-spacing:1.1px;margin-top:22px;color:#4c624c}.island-tag i{display:inline-block;width:5px;height:5px;background:#526b4c;border-radius:50%;margin:0 6px 2px 0}.map-footer{display:flex;justify-content:space-between;padding:10px 19px;font:10px monospace;color:#b4c0b2;border-top:1px solid #465345;background:#28332c}.legend-car{display:inline-block;width:10px;height:5px;border-radius:2px;background:#d8e2bd;vertical-align:middle;margin-right:5px}.legend-car.slow{background:#f1a489;margin-left:12px}.transport{display:flex;justify-content:space-between;align-items:center;padding:10px 18px;border-bottom:1px solid var(--line)}.transport>div{display:flex;align-items:center;gap:5px}.transport button{border-color:transparent;padding:5px 10px;font:12px monospace}.transport button[aria-pressed=true]{color:var(--lime);background:#344132}.divider{height:17px;width:1px;background:var(--line);margin:0 6px}#clock{font:12px monospace;color:#b2bcae}.stats{display:grid;grid-template-columns:1fr 1fr 1fr 1.4fr;padding:19px 20px;gap:10px}.stats>div>span{display:block;font:9px monospace;letter-spacing:1px;color:#a2afa1;margin-bottom:6px}.stats strong{display:block;font-size:30px;font-weight:500;line-height:1.2;white-space:nowrap}.stats small{font:11px monospace;color:var(--muted)}.trace-wrap{min-width:0}#trace{display:block;width:100%;height:42px}.controls{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:21px}.panel-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.panel-heading .eyebrow{margin:0;font-size:9px}.knob-icon{color:var(--lime);font-size:23px}.range-label{display:flex;justify-content:space-between;align-items:center;margin-top:20px;margin-bottom:10px;font-size:12px}.range-label output{font:12px monospace;color:var(--lime)}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:4px;background:#4a5746;border:0;border-radius:3px;margin:8px 0;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;background:var(--lime);border:3px solid #263427;box-shadow:0 0 0 1px var(--lime)}input[type=range]::-moz-range-thumb{width:11px;height:11px;border-radius:50%;background:var(--lime);border:2px solid #263427}.range-ends{display:flex;justify-content:space-between;font-size:9px;color:#8c9c8f;margin-top:6px}.field-label{display:block;font-size:12px;margin:23px 0 9px}select{background:#29332c;color:var(--cream);border:1px solid #465141;border-radius:6px;width:100%;height:38px;padding:0 10px;font-size:12px}.weather-row,.closure-row{display:flex;justify-content:space-between;align-items:center;margin-top:18px;font-size:11px}.weather-row button,.closure-row button{padding:6px 9px;font-size:10px}.weather-row button[aria-pressed=true],.closure-row button[aria-pressed=true]{color:var(--lime);border-color:#5c6b48}.divider-line{height:1px;background:var(--line);margin:23px 0 20px}.selected-heading{display:flex;align-items:center;justify-content:space-between}.selected-heading .eyebrow{font-size:8px;letter-spacing:1px;margin:0}.text-button{border:0;padding:3px 0;font-size:10px;color:var(--lime)}.car-info{display:flex;align-items:center;gap:10px;margin:16px 0 18px}.car-swatch{display:block;width:29px;height:14px;border-radius:4px;background:var(--amber);box-shadow:inset -7px 0 rgba(0,0,0,.18)}.car-info>div{flex:1;min-width:0}.car-info strong{display:block;font-size:12px}.car-info>div>span{display:block;font-size:10px;color:var(--muted);line-height:1.3;margin-top:3px}.car-info>b{font:18px monospace;white-space:nowrap}.car-info>b small{font-size:9px;color:var(--muted)}.primary{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--lime);color:#243522;border:0;font-size:12px;font-weight:700;padding:13px 15px}.primary:hover{background:#edfac3}.primary>span{font:9px monospace;color:#536246}.control-note{color:#97a58f;font-size:10px;line-height:1.5;margin:8px 0 0}.experiment-button{width:100%;font-size:11px;border-color:#526047;margin-top:20px;text-align:left;padding:11px}.notice{font:11px/1.5 monospace;color:#c0cdae;min-height:38px;padding:15px 3px}.explain{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:32px;border-top:1px solid var(--line);padding-top:28px}.explain h2{font-weight:500;font-size:24px;letter-spacing:-.5px;margin:0 0 12px}.explain p{font-size:13px;line-height:1.8;color:#a9b5a6;max-width:540px}.explain .eyebrow{font-size:9px}.explain-side p:first-child{margin-top:0}.explain-side a{font-size:12px;color:var(--lime)}.modal{position:fixed;z-index:9999;top:0;right:0;bottom:0;left:0;background:rgba(7,17,13,.8);display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto}.result-card{max-width:450px;width:100%;background:#253129;padding:32px;border:1px solid #60704e;border-radius:14px;box-shadow:0 30px 100px #07100c;max-height:90vh;overflow:auto}.result-card h2{font-size:27px;letter-spacing:-.6px;font-weight:500}.result-card p{color:#b5c4a9;font-size:13px}.result-card .primary{margin-top:23px}.result-number{font:46px monospace;color:var(--lime)}.result-number small{font-size:16px}#result-feedback{margin-top:20px}#share-url{width:100%;margin-top:8px;padding:12px;background:#19271e;color:var(--cream);border:1px solid #60704e;border-radius:5px}#celebration{margin-top:16px}
@media(min-width:1500px){.controls{padding:25px}.workspace{grid-template-columns:minmax(0,1fr) 310px}}@media(max-width:1050px){main{padding:28px 20px}.workspace{grid-template-columns:minmax(0,1fr) 265px;gap:12px}.controls{padding:16px}.live-label{display:none}.stats{grid-template-columns:1fr 1fr 1fr;padding:15px}.trace-wrap{grid-column:1/-1}.stats strong{font-size:25px}.map-footer{font-size:8px;padding:9px 12px}}@media(max-width:740px){.site-bar{height:58px;padding:0 18px}.brand-soft,.site-bar nav a:first-child{display:none}.site-bar nav{gap:0;font-size:10px}main{padding:23px 14px}h1{font-size:34px}.intro{gap:14px;align-items:start;margin-bottom:20px}.intro .eyebrow{font-size:8px;letter-spacing:1px}.subtitle{font-size:12px}.quiet{font-size:10px;padding:8px;max-width:92px;flex-shrink:0}.workspace{grid-template-columns:1fr}.scene-toolbar{padding:10px}.map-footer{font-size:8px}.transport{padding:8px 12px}.stats{grid-template-columns:1fr 1fr 1fr;padding:14px}.stats>div>span{font-size:8px;letter-spacing:.5px}.stats strong{font-size:25px}.trace-wrap{grid-column:1/-1}.controls{padding:20px}.panel-heading{margin-bottom:5px}.range-label{margin-top:18px}.controls .primary{min-height:45px}.explain{grid-template-columns:1fr;gap:15px;margin-top:20px}.notice{font-size:10px}.result-card{padding:24px}}@media(prefers-reduced-motion:reduce){button{transition:none}}

.quick-controls{display:none}@media(max-width:740px){.quick-controls{display:flex;justify-content:space-between;gap:10px;padding:12px;border-bottom:1px solid var(--line)}.quick-controls button{min-height:42px;font-size:12px}.quick-controls #quick-brake{background:var(--lime);color:#243522;border:0;flex:1}}

/* Signal experiment: keep the controls and phase readable beside the city. */
#signal-status{padding:9px 10px;border-radius:5px;background:#34432e;color:var(--lime);font:11px monospace}#signal-status[data-phase=yellow]{background:#4e4430;color:#f1d586}#signal-status[data-phase=red]{background:#493830;color:#f5b39c}.queue-counts{display:flex;gap:22px;margin:16px 0}.queue-counts b{display:block;font:22px monospace;color:var(--cream)}.queue-counts span{font-size:10px;color:var(--muted)}#hold-lights{width:100%;font-size:12px}#hold-lights[aria-pressed=true],#quick-lights[aria-pressed=true]{background:#493830;border-color:#ac7c65;color:#f5b39c}.map-stage[data-scene=lights] .island-copy{top:59px;left:65px;right:auto;width:310px;text-align:left}.map-stage[data-scene=lights] .island-copy h2{font-size:42px}.map-stage[data-scene=lights] .island-tag{font-size:9px;margin-top:17px}.tabs{flex-wrap:wrap}@media(max-width:1150px){.live-label{display:none}}@media(max-width:740px){.tabs{gap:0}.tabs button{padding:8px;font-size:9px}.tabs button span{font-size:12px;margin-left:4px}.quick-controls{flex-wrap:wrap}#quick-lights{flex-basis:100%}}

#traffic-settings>summary{display:none}#traffic-settings[data-scene=lights]{margin-top:20px;border-top:1px solid var(--line);padding-top:14px}#traffic-settings[data-scene=lights]>summary{display:block;cursor:pointer;font-size:12px;color:var(--cream)}#traffic-settings>summary span{float:right;font-size:10px;color:var(--lime)}

/* The freeway keeps its story above the road and its entrance controls together. */
.map-stage[data-scene=ramp] .island-copy{top:42px;left:60px;right:auto;width:370px;text-align:left}.map-stage[data-scene=ramp] .island-copy h2{font-size:44px}.map-stage[data-scene=ramp] .island-tag{margin-top:15px;font-size:9px}
#meter-status{padding:9px 10px;border-radius:5px;background:#34432e;color:var(--lime);font:11px monospace}#meter,#ramp-truck{width:100%;font-size:12px}#meter{margin-top:15px}#meter[aria-pressed=true]{background:#34432e;border-color:#72885b;color:var(--lime)}#traffic-settings[data-scene=ramp]{margin-top:20px;border-top:1px solid var(--line);padding-top:14px}#traffic-settings[data-scene=ramp]>summary{display:block;cursor:pointer;font-size:12px;color:var(--cream)}
@media(max-width:1250px){.live-label{display:none}}@media(max-width:400px){.tabs button{padding:8px 5px}.tabs button span{font-size:11px;margin-left:3px}}
