@font-face{font-family:DM;src:url(../fonts/dm-sans-latin-400-normal.woff2)}@font-face{font-family:DM;src:url(../fonts/dm-sans-latin-600-normal.woff2);font-weight:600}:root{font-family:DM,Arial,sans-serif;color:#ecece5;background:#272b29;font-synthesis:none;font-weight:400;--muted:#afb5ae;--blue:#83c9e3;--line:#c4c6b322;--panel:#232a28db}*{box-sizing:border-box}body{margin:0;min-width:320px;height:100svh;overflow:hidden;background:radial-gradient(ellipse at 52% 38%,#6c554644,transparent 62%),linear-gradient(150deg,#29312f 10%,#3e3b34 55%,#615041)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,#viewport:focus-visible{outline:2px solid var(--blue);outline-offset:5px}button{border:0;background:transparent}button:hover{color:#fff}button:disabled{opacity:.35;cursor:wait}.topbar{height:84px;margin:0 38px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:5}.brand{color:inherit;text-decoration:none;display:flex;gap:13px;align-items:center;font-size:14px;letter-spacing:.13em;line-height:1.05;font-weight:600}.brand small{font-size:7px;letter-spacing:.14em;font-weight:400}.brand-mark{font-size:34px;letter-spacing:-.12em;font-weight:600;display:flex;align-items:center}.brand-mark>span{font-size:16px;transform:rotate(12deg);color:#d3b58e;letter-spacing:-.12em;margin:0 0 -3px 2px}.project-code{font-size:9px;letter-spacing:.18em;color:var(--muted)}.project-code b{font-size:11px;letter-spacing:.1em;font-weight:400;color:#edece2;margin-left:18px}.text-button{font-size:11px;color:#c8ccc2;padding:10px 0 10px 20px}.text-button span{font-size:17px;margin-left:13px}main{position:absolute;top:84px;right:0;bottom:49px;left:0}.title{position:absolute;left:40px;top:31px;z-index:2;pointer-events:none}.eyebrow{font-size:9px;letter-spacing:.23em;color:#b1b8ac;margin:0 0 14px}h1{font-size:42px;line-height:1;letter-spacing:-.055em;font-weight:400;margin:0 0 13px}h1>span{color:#cda877}.subtitle{font-size:12px;color:#b5b9af;margin:0}#viewport{position:absolute;top:82px;right:302px;bottom:42px;left:0;touch-action:none;outline:none}canvas{display:block;width:100%;height:100%}.controls{position:absolute;right:38px;top:50%;transform:translateY(-45%);width:247px;background:var(--panel);border:1px solid var(--line);padding:21px 20px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:3;border-radius:2px}.status{display:flex;align-items:center;gap:7px;font-size:8px;letter-spacing:.1em;white-space:nowrap}.status-dot{width:5px;height:5px;background:var(--blue);border-radius:50%;box-shadow:0 0 10px #68cef580}#playback-label{margin-left:auto;color:#a8afa2;font-size:7px;letter-spacing:.1em}.station-counts{display:flex;gap:35px;padding:25px 0 24px;border-bottom:1px solid var(--line)}.station-counts>div{display:flex;flex-direction:column;gap:7px}.station-counts strong{font-size:36px;letter-spacing:-.04em;font-weight:400;line-height:1;color:#e4e9de}.station-counts span{font-size:10px;color:var(--muted)}.switches{padding:13px 0 14px;border-bottom:1px solid var(--line)}.switch{display:flex;align-items:center;justify-content:space-between;width:100%;padding:11px 0;font-size:11px;text-align:left}.switch-value{display:flex;align-items:center;gap:9px;font-size:9px;color:var(--blue)}.switch i{width:22px;height:12px;background:#3c6064;border-radius:20px;position:relative}.switch i:after{content:"";position:absolute;right:2px;top:2px;width:8px;height:8px;border-radius:50%;background:var(--blue)}.switch[aria-pressed=false] .switch-value{color:#a0a397}.switch[aria-pressed=false] i{background:#565b53}.switch[aria-pressed=false] i:after{right:12px;background:#adb1a3}.control-label{font-size:8px;letter-spacing:.16em;color:#919c90;margin:24px 0 11px}.views{display:grid;grid-template-columns:1fr 1fr;gap:6px}.views button{font-size:10px;color:#b6c0b4;border:1px solid var(--line);padding:10px 5px;border-radius:2px;transition:background .15s}.views button:hover{background:#c5d0bd12}.views .selected{background:#c6d5c217;border-color:#bfccba66;color:#eef1e6}.motion-controls{display:flex;gap:6px;margin-top:17px}.motion-controls button{font-size:10px;color:#c1cabd;text-align:center;flex:1;padding:8px 0}.motion-controls button span{font-size:16px;display:inline-block;margin-right:4px;vertical-align:-1px}.motion-controls button[aria-pressed=true]{color:var(--blue)}.model-note{border-top:1px solid var(--line);margin-top:13px;padding-top:17px;display:flex;align-items:center;gap:10px}.tiny-square{width:14px;height:14px;border:1px solid #b8b5a078;transform:rotate(30deg)}.model-note p{font-size:9px;color:#9aa395;line-height:1.8;margin:0}.model-note strong{font-weight:400;color:#c7cebd}.view-caption{position:absolute;bottom:29px;left:39px;right:335px;display:flex;align-items:center;gap:14px;font-size:8px;letter-spacing:.15em;color:#bbc2b4;pointer-events:none}.axis-mark{font-size:22px;color:#c0b58e}.view-rule{height:1px;background:var(--line);flex:1}.scale-note{font-size:7px;color:#8f9b8d}.interaction-hint{position:absolute;bottom:8px;left:74px;font-size:8px;color:#8c9889}.interaction-hint span{margin:0 9px;color:#62715f}footer{position:absolute;bottom:0;height:49px;left:38px;right:38px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#a5aea1}footer b{font-size:8px;font-weight:400;letter-spacing:.15em;margin-left:22px;color:#bec7b8}.water-dot{display:inline-block;width:4px;height:4px;background:#76c7e0;vertical-align:2px;margin-right:7px}#loading{position:absolute;left:0;right:302px;top:46%;text-align:center;z-index:4;pointer-events:none}#loading[hidden]{display:none}#loading p{font-size:13px;margin:18px 0 7px}#loading small{font-size:10px;color:#b7bcb0}#retry{pointer-events:auto;display:block;margin:20px auto;border:1px solid var(--line);padding:10px 20px}#retry[hidden]{display:none}.loader{display:inline-block;width:22px;height:22px;border:1px solid #b6bfaa44;border-top-color:var(--blue);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}dialog{background:#252d28;color:#dde4d4;max-width:580px;width:calc(100vw - 40px);border:1px solid #6b7560;border-radius:3px;padding:38px;box-shadow:0 25px 150px #0008}dialog::backdrop{background:#080d09a8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}dialog h2{font-weight:400;font-size:27px;letter-spacing:-.04em;line-height:1.25}dialog p{font-size:12px;line-height:1.8;color:#bdc6b6}dialog strong{font-weight:400;color:#edf2e7}.dialog-hint{border-top:1px solid var(--line);padding-top:18px;font-size:10px!important}.close{position:absolute;right:16px;top:10px;font-size:25px;padding:8px}body.error .loader{display:none}@media(min-width:1800px){h1{font-size:52px}.controls{right:54px;width:275px;padding:26px}.title{left:54px}}@media(max-width:1024px){.topbar{margin:0 25px}.title{left:26px}h1{font-size:34px}.controls{right:24px;width:216px;padding:18px 15px}.station-counts{gap:27px}#viewport{right:245px;inset-block:110px 40px}.view-caption{left:25px;right:265px}.scale-note{display:none}footer{left:25px;right:25px}.interaction-hint{left:59px}}@media(max-width:680px){.topbar{height:65px;margin:0 19px}.brand{font-size:11px;gap:9px}.brand small{font-size:6px}.brand-mark{font-size:29px}.project-code{display:none}.text-button{font-size:10px}main{top:65px;bottom:33px}.title{top:21px;left:21px}.eyebrow{font-size:7px;margin-bottom:10px;letter-spacing:.19em}h1{font-size:31px;margin-bottom:9px}.subtitle{font-size:10px}#viewport{top:87px;right:0;bottom:226px;left:0}#loading{left:20px;right:20px;top:35%}#loading small{display:block;font-size:9px}.controls{right:15px;left:15px;bottom:11px;top:auto;transform:none;width:auto;padding:12px 14px;display:grid;grid-template-columns:1fr 1fr;column-gap:18px;row-gap:7px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.status{grid-column:1/-1;font-size:8px}.station-counts{padding:7px 0 2px;gap:21px;border:0}.station-counts>div{gap:3px}.station-counts strong{font-size:24px}.station-counts span{font-size:8px}.switches{padding:0;border:0}.switch{font-size:10px;padding:7px 0}.switch-value{font-size:8px;gap:7px}.control-label{display:none}.views{grid-column:1/-1;grid-template-columns:repeat(4,1fr);gap:5px;padding-top:6px;border-top:1px solid var(--line)}.views button{font-size:9px;padding:8px 0}.motion-controls{margin-top:0;grid-column:1/-1;justify-content:center;gap:20px}.motion-controls button{flex:0 1 110px;font-size:10px;padding:1px 0}.model-note{display:none}.view-caption{left:22px;right:22px;bottom:222px;font-size:7px}.axis-mark{font-size:17px}.interaction-hint{display:none}footer{left:19px;right:19px;height:33px;font-size:7px}footer b{display:none}footer>span:first-child{max-width:45%}footer>span:last-child{max-width:50%;text-align:right}dialog{padding:28px 24px}dialog h2{font-size:23px}.status-dot{width:4px;height:4px}}@media(max-height:700px)and (min-width:681px){.controls{padding:13px 16px;top:50%}.station-counts{padding:14px 0}.station-counts strong{font-size:26px}.model-note{display:none}.control-label{margin:15px 0 9px}.motion-controls{margin-top:8px}.title{top:21px}#viewport{top:95px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.plan-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px;padding-top:13px;border-top:1px solid var(--line)}.plan-controls button{font-size:10px;text-align:left;color:var(--blue);padding:2px 0}.plan-controls button:first-child{width:100%}.plan-controls button[hidden]{display:none}.station-marker{position:absolute;transform:translate(-50%,-110%);font-size:9px;padding:4px 6px;background:#1d2926e8;color:#cef0ff;border:1px solid #92bdc780;border-radius:2px;white-space:nowrap;z-index:2}.station-marker:after{content:"";position:absolute;bottom:-8px;left:50%;width:1px;height:7px;background:#bee2e7}.station-marker.active{background:#a9daec;color:#192724}.station-marker[hidden]{display:none}#station-review{max-width:670px;max-height:88svh;overflow:auto}.audit-link{color:var(--blue);font-size:12px;display:inline-block;margin:0 0 20px}.station-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:15px;border-top:1px solid var(--line)}.station-row strong{font-size:12px;display:block}.station-row span{font-size:10px;color:var(--muted);display:block;margin-top:3px}.station-row button{font-size:11px;border:1px solid var(--line);padding:7px 12px;color:var(--blue)}@media(max-width:680px){h1{font-size:27px}.plan-controls{grid-column:1/-1;margin-top:0;padding-top:6px;justify-content:space-between}.plan-controls button:first-child{width:auto}.model-note{display:none}#viewport{bottom:253px}.view-caption{bottom:250px}.plan-controls button{font-size:9px}.station-marker{font-size:8px;padding:3px 4px}.title .subtitle{font-size:9px}.station-row{gap:8px}}@media(min-width:681px){h1{font-size:38px}.model-note{padding-top:12px;margin-top:10px}}.scenario-panel{padding:14px 0 5px;border-bottom:1px solid var(--line)}.scenario-actions{display:flex;gap:7px;align-items:center}.scenario-actions button{font-size:10px;padding:8px 4px}.scenario-actions button:first-child{background:#a7d3cf;color:#1b302c;flex:1;border-radius:2px;text-align:left;padding-left:9px}.scenario-panel label{display:block;font-size:9px;color:var(--muted);line-height:1.5;margin:10px 0 5px}.scenario-panel input{width:100%;accent-color:#91cdd5;height:12px;margin:0}.scenario-panel .switch{font-size:10px;padding:9px 0}.controls{max-height:calc(100svh - 126px);overflow-y:auto}.control-label{margin-top:17px}.station-counts{padding:18px 0}.switches{padding:6px 0}.scenario-panel input:focus-visible{outline:2px solid var(--blue);outline-offset:3px}@media(max-width:680px){.controls{max-height:none;overflow:visible}.scenario-panel{grid-column:1/-1;padding:7px 0 0;border-top:1px solid var(--line);border-bottom:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}.scenario-actions{grid-column:1/-1}.scenario-panel label{margin:2px 0;font-size:8px;grid-column:1/-1}.scenario-panel .switch{padding:2px 0;font-size:8px;grid-column:2}.scenario-panel input{grid-column:1;align-self:center}.scenario-actions button{font-size:9px;padding:6px}.scenario-panel .switch-value{gap:4px;font-size:7px}.scenario-panel .switch i{display:none}#viewport{bottom:355px}.view-caption{bottom:351px}.station-counts{padding:6px 0}.switches{padding:0}}
