:root{--accent-cyan: #87b9ad;--accent-cyan-strong: #a6d4c8;--accent-amber: #c8a86a;--panel-bg: rgba(3, 5, 5, .78);--panel-bg-soft: rgba(3, 5, 5, .66);--panel-border: rgba(202, 218, 211, .065);--panel-border-strong: rgba(202, 218, 211, .12);--text-primary: rgba(238, 244, 243, .92);--text-secondary: rgba(238, 244, 243, .62);--text-muted: rgba(238, 244, 243, .42);color:#eef4f3;background:#050607;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:#e1e4de;overflow:hidden}#root{padding:clamp(12px,2vw,24px) clamp(48px,4vw,64px)}button,input,select{font:inherit}.console-stage{height:100%;margin:0 auto;max-width:1720px;position:relative;width:100%}.app-shell{background:#f2f4ef;border:1px solid rgba(255,255,252,.98);box-shadow:0 0 0 1px #232a2729,0 20px 62px #21282533,inset 0 0 0 5px #fffffcb8;display:grid;grid-template-rows:clamp(120px,14vh,145px) minmax(0,1fr) auto;height:100%;overflow:hidden;position:relative;width:100%}.console-registry{align-items:stretch;color:#17201e;display:grid;gap:clamp(16px,2vw,32px);grid-template-columns:minmax(190px,.24fr) minmax(0,1fr);height:clamp(120px,14vh,145px);min-height:0;overflow:hidden;padding:13px 18px 11px}.console-identity{align-content:center;border-right:1px solid rgba(26,40,36,.13);display:grid;gap:3px;min-height:0;overflow:hidden;padding:8px 22px 8px 4px}.console-identity h1,.console-identity p{margin:0}.console-identity h1{color:#15201d;font-size:clamp(.78rem,1.1vw,1rem);font-weight:680;letter-spacing:.1em;line-height:1.15;text-transform:uppercase;white-space:nowrap}.console-identity>strong{color:#17201e94;font-size:.62rem;font-weight:620;letter-spacing:.2em;line-height:1.2;text-transform:uppercase}.observation-window{background:#050607;border:1px solid rgba(10,14,13,.82);box-shadow:0 0 0 5px #f2f4ef,inset 0 0 0 1px #eef4f309,inset 0 14px 36px #00000047;margin:0 11px;min-height:0;overflow:hidden;position:relative}.observation-window:focus-visible{outline:1px solid rgba(76,125,112,.46);outline-offset:3px}.scene-stage{top:0;right:0;bottom:0;left:0;position:absolute;transform-origin:center;will-change:opacity,transform}.scene-stage--exiting.scene-stage--forward{animation:runtime-scene-exit-forward .5s cubic-bezier(.4,0,.4,1) both}.scene-stage--exiting.scene-stage--backward{animation:runtime-scene-exit-backward .5s cubic-bezier(.4,0,.4,1) both}.scene-stage--entering.scene-stage--forward{animation:runtime-scene-enter-forward .6s cubic-bezier(.2,.64,.24,1) both}.scene-stage--entering.scene-stage--backward{animation:runtime-scene-enter-backward .6s cubic-bezier(.2,.64,.24,1) both}@keyframes runtime-scene-exit-forward{to{opacity:.12;transform:translate(-7%)}}@keyframes runtime-scene-exit-backward{to{opacity:.12;transform:translate(7%)}}@keyframes runtime-scene-enter-forward{0%{opacity:.12;transform:translate(7%)}to{opacity:1;transform:translate(0)}}@keyframes runtime-scene-enter-backward{0%{opacity:.12;transform:translate(-7%)}to{opacity:1;transform:translate(0)}}.scene-stage>canvas{display:block;height:100%!important;width:100%!important}.observation-window:before{background:linear-gradient(var(--panel-border-strong),var(--panel-border-strong)) left top / 28px 1px no-repeat,linear-gradient(var(--panel-border-strong),var(--panel-border-strong)) left top / 1px 28px no-repeat,linear-gradient(var(--panel-border-strong),var(--panel-border-strong)) right top / 28px 1px no-repeat,linear-gradient(var(--panel-border-strong),var(--panel-border-strong)) right top / 1px 28px no-repeat,linear-gradient(var(--panel-border-strong),var(--panel-border-strong)) left bottom / 28px 1px no-repeat,linear-gradient(var(--panel-border-strong),var(--panel-border-strong)) left bottom / 1px 28px no-repeat,linear-gradient(var(--panel-border-strong),var(--panel-border-strong)) right bottom / 28px 1px no-repeat,linear-gradient(var(--panel-border-strong),var(--panel-border-strong)) right bottom / 1px 28px no-repeat;content:"";top:12px;right:12px;bottom:12px;left:12px;opacity:.28;pointer-events:none;position:absolute;z-index:1}.observation-navigation{top:0;right:0;bottom:0;left:0;pointer-events:none;position:absolute;z-index:12}.observation-navigation-button{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f4f6f1f5;border:1px solid rgba(35,52,47,.16);box-shadow:0 5px 18px #2128251a;color:#1f2f2b94;cursor:pointer;display:flex;flex-direction:column;gap:10px;height:112px;justify-content:center;padding:8px 3px;pointer-events:auto;position:absolute;top:calc(50% + 42px);transform:translateY(-50%);transition:background .14s ease,color .14s ease;width:30px}.observation-navigation-button:hover{background:#fbfcf8;border-color:#30524847;color:#182b26e6}.observation-navigation-button--previous{left:-44px}.observation-navigation-button--next{right:-44px}.observation-navigation-button span{color:var(--accent-cyan);font-size:.9rem;line-height:1}.observation-navigation-button small{font-size:.52rem;letter-spacing:.14em;text-transform:uppercase;writing-mode:vertical-rl}.controls-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#030505b8;border:1px solid var(--panel-border);border-radius:3px;box-shadow:10px 0 34px #0000002e;color:var(--text-primary);display:grid;gap:14px;left:14px;max-height:calc(100% - 28px);max-width:min(286px,calc(100% - 28px));overflow:auto;padding:15px;position:absolute;top:14px;width:min(286px,calc(100% - 28px));z-index:10}.operating-mode-selector{border:1px solid rgba(33,52,47,.14);display:grid;grid-template-columns:repeat(2,1fr);margin-top:3px;max-width:210px}.operating-mode-selector button{background:transparent;border:0;color:#17201e7a;cursor:pointer;font-size:.54rem;letter-spacing:.1em;padding:5px 6px;text-transform:uppercase}.operating-mode-selector button+button{border-left:1px solid rgba(33,52,47,.1)}.operating-mode-selector button:hover{color:#17201ec7}.operating-mode-selector button[aria-pressed=true]{background:#4c7d701c;color:#17201ed1}.operating-mode-selector button:focus-visible{outline:2px solid rgba(76,125,112,.5);outline-offset:-2px}.runtime-controller{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#030505b8;border:1px solid rgba(202,218,211,.075);bottom:15px;color:var(--text-secondary);display:grid;gap:8px 14px;grid-template-columns:minmax(145px,1fr) auto;left:50%;min-width:min(430px,calc(100% - 36px));padding:9px 11px 7px;position:absolute;transform:translate(-50%);z-index:10}.runtime-controller-readout{display:grid;gap:2px;grid-template-columns:1fr auto}.runtime-controller-readout span{color:var(--text-muted);font-size:.52rem;grid-column:1 / -1;letter-spacing:.13em;text-transform:uppercase}.runtime-controller-readout strong{color:#e2edebd1;font-size:.75rem;font-weight:540;letter-spacing:.05em}.runtime-controller-readout small{color:var(--text-muted);font-size:.58rem;letter-spacing:.12em}.runtime-controller-actions{align-items:end;display:flex;gap:4px}.runtime-controller-actions button{background:#eef4f30b;border:1px solid var(--panel-border);color:var(--text-secondary);cursor:pointer;font-size:.58rem;letter-spacing:.08em;padding:5px 7px;text-transform:uppercase}.runtime-controller-actions button:hover{background:#eef4f313;color:var(--text-primary)}.runtime-progress{background:#cadad312;grid-column:1 / -1;height:1px;overflow:hidden}.runtime-progress span{background:#87b9ad94;display:block;height:100%;transform-origin:left;transition:transform .1s linear;width:100%}.runtime-calibrator{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#030505eb;border:1px solid rgba(135,185,173,.2);bottom:14px;color:var(--text-secondary);display:grid;gap:12px;max-height:calc(100% - 28px);overflow:auto;padding:13px;position:absolute;right:14px;scrollbar-color:rgba(135,185,173,.3) transparent;scrollbar-width:thin;top:14px;width:min(372px,calc(100% - 28px));z-index:20}.runtime-calibrator>header,.runtime-calibrator-section-heading{align-items:center;display:flex;gap:10px;justify-content:space-between}.runtime-calibrator>header p,.runtime-calibrator>header h2,.runtime-calibrator h3,.runtime-calibrator p{margin:0}.runtime-calibrator>header p,.runtime-calibrator h3,.runtime-calibrator-city>span{color:var(--text-muted);font-size:.52rem;letter-spacing:.14em;text-transform:uppercase}.runtime-calibrator>header h2{color:var(--text-primary);font-size:.76rem;font-weight:580;letter-spacing:.055em}.runtime-calibrator>header>strong{border:1px solid rgba(200,168,106,.25);color:#c8a86ad1;font-size:.48rem;font-weight:620;letter-spacing:.1em;padding:4px 5px}.runtime-calibrator>section{border-top:1px solid rgba(202,218,211,.075);display:grid;gap:8px;padding-top:10px}.runtime-calibrator button,.runtime-calibrator select{background:#eef4f309;border:1px solid rgba(202,218,211,.11);color:var(--text-secondary);cursor:pointer;font-size:.54rem;letter-spacing:.06em;padding:5px 7px;text-transform:uppercase}.runtime-calibrator button:hover:not(:disabled),.runtime-calibrator select:hover{border-color:#87b9ad52;color:var(--text-primary)}.runtime-calibrator button:disabled{cursor:default;opacity:.35}.runtime-calibrator-city{display:grid;gap:5px}.runtime-calibrator-city select{text-transform:none}.runtime-calibrator-controls{display:grid;gap:4px}.runtime-calibrator-control{align-items:center;display:grid;gap:6px;grid-template-columns:72px 65px minmax(80px,1fr) 48px}.runtime-calibrator-control>span{color:#eef4f394;font-size:.56rem}.runtime-calibrator-control input[type=number]{background:#0000004d;border:1px solid rgba(202,218,211,.1);color:#eef4f3d1;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.56rem;min-width:0;padding:4px;width:100%}.runtime-calibrator-control input[type=range]{accent-color:var(--accent-cyan);margin:0;min-width:0;width:100%}.runtime-calibrator-control small{color:#eef4f347;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.48rem;text-align:right}.runtime-calibrator-position,.runtime-calibrator-muted,.runtime-calibrator-suggestion{color:#eef4f361;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.52rem;line-height:1.5}.runtime-calibrator-slots{display:grid;gap:4px}.runtime-calibrator-slots>div{align-items:center;display:grid;gap:5px;grid-template-columns:42px 1fr auto auto}.runtime-calibrator-slots strong,.runtime-calibrator-slots span{font-size:.5rem;letter-spacing:.08em;text-transform:uppercase}.runtime-calibrator-slots strong{color:#eef4f3b3}.runtime-calibrator-slots span{color:#87b9ad8c}.runtime-calibrator-preview{display:flex;gap:5px}.runtime-calibrator-guides{display:grid;gap:5px 10px;grid-template-columns:1fr 1fr}.runtime-calibrator-guides label{align-items:center;color:#eef4f380;display:flex;font-size:.54rem;gap:5px;text-transform:capitalize}.runtime-calibrator-guides input{accent-color:var(--accent-cyan);margin:0}.runtime-calibrator-warnings,.runtime-calibrator-known-issues{color:#eef4f375;display:grid;font-size:.54rem;gap:4px;line-height:1.4;margin:0;padding-left:16px}.runtime-calibrator-warnings{color:#c8a86ac7}.runtime-calibrator textarea{background:#00000057;border:1px solid rgba(202,218,211,.08);color:#eef4f37a;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.48rem;line-height:1.45;resize:vertical;width:100%}.runtime-calibration-guide-overlay{top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;position:absolute;z-index:8}.runtime-calibration-center{height:15px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:15px}.runtime-calibration-center:before,.runtime-calibration-center:after{background:#a6d4c875;content:"";left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.runtime-calibration-center:before{height:1px;width:15px}.runtime-calibration-center:after{height:15px;width:1px}.runtime-calibration-thirds{background:linear-gradient(90deg,transparent calc(33.333% - .5px),rgba(166,212,200,.12) 33.333%,transparent calc(33.333% + .5px)),linear-gradient(90deg,transparent calc(66.666% - .5px),rgba(166,212,200,.12) 66.666%,transparent calc(66.666% + .5px)),linear-gradient(transparent calc(33.333% - .5px),rgba(166,212,200,.12) 33.333%,transparent calc(33.333% + .5px)),linear-gradient(transparent calc(66.666% - .5px),rgba(166,212,200,.12) 66.666%,transparent calc(66.666% + .5px));top:0;right:0;bottom:0;left:0;position:absolute}.runtime-calibration-safe-frame{border:1px solid rgba(200,168,106,.25);top:8%;right:8%;bottom:8%;left:8%;position:absolute}.runtime-calibration-bounds{border:1px solid;position:absolute}.runtime-calibration-bounds span{background:#030505c2;font-size:.48rem;left:0;letter-spacing:.08em;padding:2px 3px;position:absolute;text-transform:uppercase;top:0}.runtime-calibration-bounds--route{border-color:#a6d4c894;color:#a6d4c8c7}.runtime-calibration-bounds--terrain{border-color:#c8a86a80;color:#c8a86ab8}.runtime-calibration-bounds--water{border-color:#7499a280;color:#7499a2b8}.controls-panel{scrollbar-color:rgba(135,185,173,.34) transparent;scrollbar-width:thin}.controls-panel::-webkit-scrollbar{width:5px}.controls-panel::-webkit-scrollbar-thumb{background:#87b9ad47;border-radius:999px}.view-control{background:transparent;border:0;border-radius:3px;color:var(--text-secondary);display:grid;gap:9px;padding:0;position:static;width:100%}.view-control-header{align-items:start;display:grid;gap:10px;grid-template-columns:auto 1fr}.view-control-header span,.view-zoom span{color:var(--text-muted);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.view-control button{background:#eef4f30e;border:1px solid var(--panel-border);border-radius:3px;color:var(--text-secondary);cursor:pointer;font-size:.78rem;padding:5px 8px}.view-actions{display:flex;gap:5px;justify-content:end}.view-actions button{font-size:.68rem;padding:5px 6px}.view-control button[aria-pressed=true]{background:#87b9ad29;border-color:var(--panel-border-strong);color:var(--text-primary)}.view-presets{display:grid;gap:5px;grid-template-columns:repeat(3,1fr)}.view-presets button{font-size:.68rem;padding:5px 6px}.view-zoom{display:grid;gap:6px}.view-zoom input{accent-color:var(--accent-cyan);width:100%}.view-toggle{align-items:center;color:var(--text-secondary);display:flex;font-size:.72rem;gap:8px;letter-spacing:.08em;text-transform:uppercase}.view-toggle input{accent-color:var(--accent-cyan);height:14px;width:14px}.panel-heading{display:grid;gap:5px}.control-section{border-top:1px solid rgba(202,218,211,.08)}.control-section>summary{color:var(--text-muted);cursor:pointer;font-size:.61rem;letter-spacing:.15em;list-style:none;padding:9px 0 7px;text-transform:uppercase}.control-section>summary::-webkit-details-marker{display:none}.control-section>summary:after{content:"+";float:right;font-size:.72rem;font-weight:400}.control-section[open]>summary:after{content:"−"}.control-section-body{display:grid;gap:11px;padding:2px 0 8px}.panel-heading h2,.panel-heading p{margin:0}.panel-heading h2{color:#eef4f3d1;font-size:.9rem;font-weight:520;letter-spacing:.04em}.panel-heading p{color:var(--text-secondary);font-size:.78rem}.eyebrow{color:var(--accent-amber);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase}.system-readouts{border-bottom:1px solid rgba(202,218,211,.07);border-top:1px solid rgba(202,218,211,.07);display:grid;grid-template-columns:repeat(3,1fr);margin-top:5px}.system-readouts>span{display:grid;gap:3px;min-width:0;padding:7px 6px 7px 0}.system-readouts>span+span{border-left:1px solid rgba(202,218,211,.06);padding-left:7px}.system-readouts small,.system-readouts strong{overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.system-readouts small{color:var(--text-muted);font-size:.54rem;letter-spacing:.12em}.system-readouts strong{color:var(--text-secondary);font-size:.62rem;font-weight:540;letter-spacing:.06em}.field{color:var(--text-secondary);display:grid;font-size:.76rem;gap:8px}.field>span,.toggle-list,.legend-title{letter-spacing:.04em}.simulation-time-control{align-content:center;background:#1f302b06;border-bottom:1px solid rgba(33,52,47,.1);border-top:1px solid rgba(33,52,47,.1);display:grid;gap:4px;height:100%;min-height:0;min-width:0;overflow:hidden;padding:6px 10px}.simulation-time-heading{align-items:center;display:flex;justify-content:space-between}.simulation-time-heading span{color:#17201e6b;font-size:.52rem;letter-spacing:.15em;text-transform:uppercase}.simulation-time-heading small{color:#17201e5c;font-size:.48rem;letter-spacing:.12em;text-transform:uppercase}.simulation-time-readout-row{align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto;min-width:0}.simulation-playback-rate{display:grid;gap:2px;grid-template-columns:repeat(3,minmax(22px,1fr))}.simulation-playback-rate button{background:#fffffc57;border:1px solid rgba(33,52,47,.1);border-radius:2px;color:#17201e6e;cursor:pointer;font:inherit;font-size:.5rem;font-weight:560;min-height:17px;padding:1px 3px}.simulation-playback-rate button[aria-pressed=true]{background:#537e741a;border-color:#537e744d;color:#17201eb8}.simulation-time-display,.simulation-time-display-input{background:transparent;border:0;border-radius:2px;color:#17201edb;font:inherit;min-height:28px;min-width:0;padding:0;width:100%}.simulation-time-display{align-items:baseline;display:flex;gap:9px;text-align:left}.simulation-time-display--editable{cursor:text}.simulation-time-display--editable:hover{background:#21342f09}.simulation-time-display strong,.simulation-time-display-input{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:clamp(1.22rem,1.6vw,1.48rem);font-variant-numeric:tabular-nums;font-weight:560;letter-spacing:.04em;line-height:1.05}.simulation-time-display span{color:#17201e75;font-size:.57rem;letter-spacing:.09em;text-transform:uppercase}.simulation-time-display-input{border-bottom:1px solid rgba(33,52,47,.28);outline:0}.simulation-time-display-input[aria-invalid=true]{border-bottom-color:#b87c65b8}.simulation-time-control>input[type=range]{height:10px;width:100%}.simulation-time-steps{display:grid;gap:3px;grid-template-columns:repeat(6,1fr)}.simulation-time-steps button{background:#fffffc73;border:1px solid rgba(33,52,47,.12);border-radius:2px;color:#17201e80;cursor:pointer;font:inherit;font-size:.58rem;font-weight:560;letter-spacing:.03em;min-height:20px;padding:3px 4px}.simulation-time-steps .simulation-time-playback[aria-pressed=true]{background:#537e741a;border-color:#537e744d;color:#17201eb8}.runtime-time-dev-override{display:grid;gap:3px;grid-template-columns:repeat(3,minmax(0,1fr))}.runtime-time-dev-override button{background:#fffffc57;border:1px solid rgba(33,52,47,.1);border-radius:2px;color:#17201e6e;cursor:pointer;font:inherit;font-size:.52rem;letter-spacing:.04em;min-height:18px;padding:2px 4px}.runtime-time-dev-override button[aria-pressed=true]{background:#537e741a;border-color:#537e744d;color:#17201eb8}.simulation-time-control input[type=range]::-webkit-slider-runnable-track{background:#21342f24;border-color:#21342f14}.simulation-time-control input[type=range]::-moz-range-track{background:#21342f24;border-color:#21342f14}.field select,.field input[type=range]{width:100%}.field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#eef4f30e;border:1px solid var(--panel-border);border-radius:3px;color:var(--text-primary);outline:none;padding:9px 10px}.quiet-button:focus-visible,.route-button:focus-visible,.city-marker:focus-visible,.observation-navigation-button:focus-visible,.segmented-control button:focus-visible,.simulation-time-display--editable:focus-visible,.simulation-time-display-input:focus-visible,.simulation-time-steps button:focus-visible,.runtime-time-dev-override button:focus-visible,.view-control button:focus-visible,.view-zoom input:focus-visible,.view-toggle input:focus-visible,.toggle-row input:focus-visible,.field input[type=range]:focus-visible{outline:2px solid rgba(135,185,173,.75);outline-offset:2px}.field option{background:#0b0e0d;color:var(--text-primary)}.city-navigator{display:grid;gap:7px 13px;grid-template-columns:minmax(0,1fr) minmax(220px,.27fr);grid-template-rows:14px clamp(76px,8vh,96px);height:100%;min-height:0;min-width:0;overflow:hidden}.city-navigator--with-utility{grid-template-columns:minmax(230px,1fr) minmax(175px,.22fr) minmax(280px,.36fr)}.city-navigator-header{align-items:center;color:#17201e80;display:flex;font-size:.61rem;grid-column:1 / -1;justify-content:space-between;letter-spacing:.16em;padding-right:2px;text-transform:uppercase}.world-map{background:linear-gradient(rgba(33,52,47,.055) 1px,transparent 1px) 0 0 / 25% 33.333%,linear-gradient(90deg,rgba(33,52,47,.045) 1px,transparent 1px) 0 0 / 20% 100%,radial-gradient(circle at 57% 45%,rgba(78,124,112,.065),transparent 44%),#202c2806;border:1px solid rgba(33,52,47,.12);height:100%;min-height:0;overflow:hidden;position:relative}.world-map:before{border:1px solid rgba(33,52,47,.055);content:"";top:12px;right:12px;bottom:12px;left:12px;pointer-events:none;position:absolute}.world-map-outline{display:block;height:100%;top:0;right:0;bottom:0;left:0;opacity:.72;pointer-events:none;position:absolute;width:100%}.world-map-outline path{fill:#364d4612;stroke:#2c433d3d;stroke-linejoin:round;stroke-width:1.25;vector-effect:non-scaling-stroke}.city-marker{background:transparent;border:0;color:#17201ead;cursor:pointer;height:18px;padding:0;position:absolute;width:18px;z-index:1}.city-marker:hover,.city-marker:focus-visible{z-index:5}.city-marker[aria-pressed=true]{z-index:4}.city-marker-core{background:#927744c2;border:1px solid rgba(255,255,252,.92);border-radius:999px;box-shadow:0 0 10px #c8a86a2e;display:block;height:8px;left:5px;position:absolute;top:5px;width:8px}.city-marker[aria-pressed=true] .city-marker-core{background:#4c7d70;border-color:#fffffcfa;box-shadow:0 0 0 3px #4c7d7021,0 0 12px #4c7d7033;height:10px;left:4px;top:4px;width:10px}.city-marker-label{background:#f7f8f4f2;border:1px solid rgba(33,52,47,.12);color:#17201eb8;font-size:.62rem;left:17px;letter-spacing:.06em;max-width:132px;opacity:0;overflow:hidden;padding:4px 6px;pointer-events:none;position:absolute;text-overflow:ellipsis;top:-1px;transition:opacity .12s ease;white-space:nowrap;z-index:2}.city-marker--label-left .city-marker-label{left:auto;right:17px}.city-marker:hover .city-marker-label,.city-marker[aria-pressed=true] .city-marker-label{opacity:1}.registry-city-readout{align-content:center;background:#1f302b06;border-bottom:1px solid rgba(33,52,47,.1);border-top:1px solid rgba(33,52,47,.1);display:grid;gap:3px;height:100%;min-height:0;min-width:0;overflow:hidden;padding:6px 10px}.registry-utility-panel{height:100%;min-height:0;min-width:0;overflow:hidden}.registry-city-readout span{color:#17201e6b;font-size:.55rem;letter-spacing:.15em;text-transform:uppercase}.registry-city-readout strong{color:#17201edb;font-size:.82rem;font-weight:560;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.registry-city-readout small{color:#17201e7a;font-size:.62rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.registry-city-readout code{color:#17201e6b;font-family:inherit;font-size:.56rem;letter-spacing:.1em;margin-top:3px;text-transform:uppercase}.registry-observation-metrics{border-top:1px solid rgba(33,52,47,.085);display:grid;gap:2px 8px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:2px;min-height:0;overflow:hidden;padding-top:3px}.registry-city-readout .registry-metric{display:grid;gap:1px;min-width:0}.registry-city-readout .registry-metric--span,.registry-city-readout .registry-scale-note{grid-column:1 / -1}.registry-city-readout .registry-metric small{color:#17201e61;font-size:.49rem;letter-spacing:.12em;text-transform:uppercase}.registry-city-readout .registry-metric strong{color:#17201ead;font-size:.58rem;font-weight:560;letter-spacing:.055em;line-height:1.15;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.registry-city-readout .registry-scale-note{color:#17201e5c;font-size:.48rem;letter-spacing:.08em;line-height:1.2;text-transform:uppercase}.toggle-list{display:grid;gap:8px}.toggle-row{align-items:center;color:var(--text-secondary);display:flex;font-size:.78rem;gap:9px}.toggle-row input{accent-color:var(--accent-cyan);height:15px;width:15px}.toggle-row--disabled{color:#acbeba61}.toggle-row--disabled input{accent-color:rgba(172,190,186,.34)}.live-unavailable-note{color:#acbeba80;font-size:.66rem;letter-spacing:.06em;margin-top:-2px;text-transform:uppercase}.placeholder-note{border-left:2px solid rgba(200,168,106,.75);color:var(--text-secondary);font-size:.84rem;margin:-5px 0 0;padding-left:10px}.quiet-button{background:#eef4f30e;border:1px solid var(--panel-border);border-radius:3px;color:var(--text-secondary);cursor:pointer;padding:8px 10px;text-align:left}.quiet-button:hover{background:#eef4f317;color:var(--text-primary)}.help-hint{border-bottom:1px solid rgba(202,218,211,.07);border-top:1px solid rgba(202,218,211,.07);color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:.74rem;gap:5px 10px;line-height:1.35;padding:8px 0}.segmented-control{background:#eef4f30b;border:1px solid var(--panel-border);border-radius:3px;display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden}.segmented-control button{background:transparent;border:0;color:var(--text-secondary);cursor:pointer;padding:7px 8px}.segmented-control button[aria-pressed=true]{background:#87b9ad2e;color:var(--text-primary)}.substrate-mode-field .segmented-control{grid-template-columns:repeat(2,1fr)}.substrate-mode-note{color:var(--text-muted);font-size:.58rem;letter-spacing:.04em;line-height:1.35}.route-legend{border-top:1px solid rgba(202,218,211,.085);display:grid;gap:5px;padding-top:10px}.route-coverage-readout{border-left:1px solid rgba(135,185,173,.16);color:#b3c2bd9e;display:grid;font-size:.55rem;gap:3px;letter-spacing:.045em;line-height:1.3;margin:2px 0 4px;padding:5px 7px}.route-coverage-readout strong{color:#cdd8d4b8;font-size:inherit;letter-spacing:.1em;text-transform:uppercase}.route-coverage-readout span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-title{color:var(--text-muted);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase}.selected-route-note{color:var(--text-muted);font-size:.68rem;line-height:1.25}.route-button{align-items:center;background:transparent;border:1px solid transparent;border-radius:3px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.74rem;gap:7px;padding:4px 5px;text-align:left}.route-button:hover{background:#eef4f30a;border-color:#cadad30f;color:#eef4f3c2}.route-button[aria-pressed=true]{background:#eef4f311;border-color:var(--panel-border-strong);color:var(--text-primary)}.route-swatch{border-radius:999px;box-shadow:0 0 5px currentColor;flex:0 0 auto;height:8px;width:19px}.station-label{background:#030505c2;border:1px solid rgba(238,244,243,.085);border-radius:999px;color:#e2edebd1;display:inline-block;font-size:13px;line-height:1;padding:4px 7px;pointer-events:none;text-shadow:0 1px 5px rgba(0,0,0,.88);white-space:nowrap}.station-label--priority-3{background:#040809c7;border-color:#87b9ad24;color:#deeae8db}.environmental-label{color:#a6beb8b3;display:inline-block;font-size:9.5px;font-weight:520;letter-spacing:.13em;line-height:1;pointer-events:none;text-shadow:0 1px 4px rgba(0,0,0,.9);text-transform:uppercase;white-space:nowrap}.environmental-label small{color:#b2a47e9e;display:block;font-size:6.5px;letter-spacing:.1em;margin-top:3px;text-align:center}.structure-transition-label{background:#040707a8;border-left:1px solid rgba(174,194,188,.34);color:#c6d3cfb8;display:inline-block;font-size:8px;letter-spacing:.11em;line-height:1;padding:3px 4px;pointer-events:none;text-transform:uppercase;transform:translateY(-9px);white-space:nowrap}.crossing-annotation{background:#03060694;border-left:1px solid rgba(189,201,197,.3);color:#cdd8d4ad;display:grid;gap:2px;letter-spacing:.09em;line-height:1.05;padding:4px 5px;pointer-events:none;text-transform:uppercase;transform:translateY(-12px);white-space:nowrap}.crossing-annotation strong{color:#dbe4e1c2;font-size:1em;font-weight:600;letter-spacing:.12em}.crossing-annotation small{color:#aec1bc94;font-size:.78em;letter-spacing:.08em}.crossing-annotation--selected{border-left-color:#cdd8d485;color:#dee7e4c7}.empty-state{color:#eef4f3b8;display:grid;top:0;right:0;bottom:0;left:0;place-items:center;pointer-events:none;position:absolute;text-align:center}.empty-state p{background:var(--panel-bg-soft);border:1px solid var(--panel-border);border-radius:3px;margin:0;padding:12px 14px}.console-footer{align-items:center;border-top:1px solid rgba(33,52,47,.07);color:#17201e8f;display:flex;gap:12px;min-height:46px;padding:7px 18px 8px}.mobile-city-selector,.mobile-controls-trigger,.mobile-sheet-backdrop,.mobile-sheet-close,.mobile-footer-summary{display:none}.console-footer-identity{border-right:1px solid rgba(33,52,47,.12);display:grid;flex:0 0 auto;gap:2px;min-width:205px;padding-right:13px}.console-footer-identity span{color:#17201eb3;font-size:.63rem;letter-spacing:.11em;text-transform:uppercase}.console-footer-identity small{color:#17201e6b;font-size:.6rem}.runtime-status{display:flex;flex:1 1 auto;flex-wrap:wrap;gap:5px}.runtime-status span{border:1px solid rgba(33,52,47,.1);color:#17201e94;font-size:.59rem;letter-spacing:.09em;padding:4px 6px;text-transform:uppercase}.live-diagnostics{border-left:1px solid rgba(33,52,47,.1);display:grid;flex:0 1 340px;gap:4px 6px;grid-template-columns:repeat(2,minmax(0,1fr));padding-left:12px}.live-diagnostics span{color:#17201e85;font-size:.56rem;letter-spacing:.07em;overflow-wrap:anywhere;text-transform:uppercase}.live-diagnostics-error{grid-column:1 / -1}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent}input[type=range]::-webkit-slider-runnable-track{background:#cadad329;border:1px solid rgba(202,218,211,.08);border-radius:999px;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--accent-cyan);border:1px solid rgba(238,244,243,.42);border-radius:50%;box-shadow:0 0 10px #87b9ad3d;height:13px;margin-top:-5px;width:13px}input[type=range]::-moz-range-track{background:#cadad329;border:1px solid rgba(202,218,211,.08);border-radius:999px;height:4px}input[type=range]::-moz-range-thumb{background:var(--accent-cyan);border:1px solid rgba(238,244,243,.42);border-radius:50%;box-shadow:0 0 10px #87b9ad3d;height:13px;width:13px}@media (max-width: 767px){html,body,#root{height:100%;min-height:100%;width:100%}#root{padding:0}.console-stage{max-width:none}.app-shell{border:0;box-shadow:none;grid-template-rows:auto minmax(0,1fr) 40px;height:100dvh;min-height:100svh}.console-registry{gap:6px;grid-template-columns:1fr;grid-template-rows:30px 62px;height:auto;padding:calc(6px + env(safe-area-inset-top)) 10px 6px}.console-identity{align-items:center;border:0;border-right:0;display:flex;gap:8px;justify-content:space-between;padding:0}.console-identity>strong{display:none}.console-identity h1{font-size:.7rem;letter-spacing:.08em}.operating-mode-selector{margin-left:auto;margin-top:0;max-width:none;width:148px}.operating-mode-selector button{min-height:28px;padding:4px 5px}.console-identity .eyebrow{display:none}.city-navigator{gap:8px;grid-template-columns:minmax(0,.92fr) minmax(164px,1.08fr);grid-template-rows:minmax(0,1fr);overflow:visible}.city-navigator--with-utility{grid-template-columns:minmax(0,.92fr) minmax(164px,1.08fr);grid-template-rows:minmax(0,1fr)}.city-navigator-header,.world-map,.registry-city-readout{display:none}.mobile-city-selector{align-content:center;color:#17201e7a;display:grid;font-size:.49rem;gap:3px;letter-spacing:.12em;min-width:0;text-transform:uppercase}.mobile-city-selector select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#1f302b09;border:1px solid rgba(33,52,47,.14);border-radius:2px;color:#17201ed1;font-size:.75rem;font-weight:560;min-height:34px;min-width:0;padding:6px 22px 6px 8px;width:100%}.registry-utility-panel{grid-column:2;min-width:0}.simulation-time-control{gap:2px;padding:3px 5px}.simulation-time-heading,.simulation-time-control>input[type=range],.runtime-time-dev-override{display:none}.simulation-time-readout-row{gap:4px}.simulation-time-display,.simulation-time-display-input{min-height:24px}.simulation-time-display{gap:5px}.simulation-time-display strong,.simulation-time-display-input{font-size:.91rem;letter-spacing:.02em}.simulation-time-display span{font-size:.43rem;letter-spacing:.05em}.simulation-playback-rate{gap:1px}.simulation-playback-rate button{min-height:16px;min-width:20px;padding:1px 2px}.simulation-time-steps{grid-template-columns:1fr}.simulation-time-steps button:not(.simulation-time-playback){display:none}.simulation-time-steps button{min-height:18px;padding:2px 4px}.observation-window{border-left:0;border-right:0;box-shadow:none;margin:0}.observation-window:before{top:8px;right:8px;bottom:8px;left:8px}.scene-stage canvas{touch-action:none!important}.controls-panel{border-bottom:0;border-radius:8px 8px 0 0;bottom:0;gap:12px;left:0;max-height:min(76dvh,calc(100% - 12px));max-width:none;overflow:auto;padding:14px 15px calc(18px + env(safe-area-inset-bottom));right:0;top:auto;transform:translateY(105%);transition:transform .18s ease,visibility .18s;visibility:hidden;width:100%;z-index:24}.controls-panel--mobile-open{transform:translateY(0);visibility:visible}.mobile-sheet-close{background:#eef4f30e;border:1px solid var(--panel-border);color:var(--text-secondary);cursor:pointer;display:block;font-size:.58rem;letter-spacing:.1em;padding:6px 9px;position:absolute;right:12px;text-transform:uppercase;top:12px}.mobile-controls-trigger{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#030505b8;border:1px solid rgba(202,218,211,.12);color:#e2edebc7;cursor:pointer;display:block;font-size:.62rem;letter-spacing:.1em;min-height:34px;padding:7px 10px;position:absolute;right:10px;text-transform:uppercase;top:10px;z-index:12}.mobile-controls-trigger[aria-expanded=true]{display:none}.mobile-sheet-backdrop{background:#0000006b;border:0;display:block;top:0;right:0;bottom:0;left:0;padding:0;position:absolute;z-index:23}.runtime-controller{bottom:10px;gap:6px 8px;grid-template-columns:minmax(120px,1fr) auto;min-width:calc(100% - 20px);padding:7px 8px 6px}.observation-navigation-button{background:#080c0bc7;border-color:#cadad31a;box-shadow:none;color:#e2edeb8f;flex-direction:row;gap:6px;height:36px;padding:6px 9px;top:auto;transform:none;width:86px}.observation-navigation-button--previous{bottom:calc(46px + env(safe-area-inset-bottom));left:10px}.observation-navigation-button--next{bottom:calc(46px + env(safe-area-inset-bottom));right:10px}.observation-navigation-button small{writing-mode:horizontal-tb}.console-footer{background:#f2f4ef;min-height:40px;padding:5px 10px calc(5px + env(safe-area-inset-bottom));position:relative;z-index:30}.console-footer-identity{display:none}.mobile-footer-summary{align-items:center;color:#17201e9e;display:flex;font-size:.58rem;justify-content:space-between;letter-spacing:.1em;text-transform:uppercase;width:100%}.mobile-status-toggle{background:#21342f09;border:1px solid rgba(33,52,47,.14);color:#17201e9e;cursor:pointer;display:block;font-size:.56rem;letter-spacing:.08em;min-height:28px;padding:5px 9px;text-transform:uppercase}.console-footer .runtime-status{align-content:start;background:#f2f4effa;border:1px solid rgba(33,52,47,.12);bottom:100%;box-shadow:0 -10px 28px #141c1924;display:none;left:0;max-height:48dvh;overflow:auto;padding:10px;position:absolute;right:0}.console-footer--expanded .runtime-status{display:flex}.runtime-status span{font-size:.54rem;padding:5px 6px}.console-footer .live-diagnostics{display:none}}@media (prefers-reduced-motion: reduce){.scene-stage--exiting,.scene-stage--entering{animation:none!important;opacity:1;transform:none}}
