@charset "UTF-8";
:root{color-scheme:dark;--bg:#0c1420;--ink:#edf1f2;--muted:#99abba;--line:#293e4b;--accent:#edb475;--mint:#83c8bb;font-family:Inter,"Segoe UI",Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,select,input{font:inherit}button,select{cursor:pointer}button{border:0}button:disabled,select:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button,a,input,select{-webkit-tap-highlight-color:transparent}
.topbar{height:74px;padding:0 30px;display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:9px;font-size:24px;letter-spacing:-1px;font-weight:650;white-space:nowrap}.brand svg{width:33px;fill:none;stroke:var(--accent);stroke-width:2.5}.brand-divider{color:#536475;margin:0 10px;font-weight:300}.brand-sub{font-weight:400;color:var(--muted)}h1{font-size:13px;font-weight:400;color:var(--muted);margin:0}.public-badge{margin-left:auto;font-size:10px;color:var(--mint)}
.map-shell{position:relative;background:#101b27;overflow:hidden;height:calc(100svh - 126px);min-height:560px;--route-color:var(--accent)}.map-viewport{position:absolute;inset:0;cursor:grab;touch-action:none;outline-offset:-5px!important}.map-viewport.dragging{cursor:grabbing}#world-map{display:block;width:100%;height:100%;user-select:none}#land path{fill:#23323d;stroke:#35434c;stroke-width:.65;vector-effect:non-scaling-stroke;opacity:.76}#geography text{font-size:9px;letter-spacing:2.8px;fill:#526572;text-anchor:middle;pointer-events:none}
.map-toolbar{position:absolute;z-index:3;top:20px;left:24px;right:24px;display:flex;align-items:center;gap:12px;pointer-events:none}.map-toolbar>*{pointer-events:auto;background:#122230f2;box-shadow:0 5px 22px #08121c55}.map-toolbar label{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:7px;padding:0 12px;height:45px;color:var(--muted);font-size:11px}.map-toolbar select{border:0;color:var(--ink);background:transparent;padding:7px 0;min-width:0;font-size:12px}.map-toolbar select option{background:#142331}.route-choice{width:270px}.route-choice select{flex:1}.play-button{height:45px;min-width:124px;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:7px!important;background:var(--accent)!important;color:#15212a;font-size:12px;font-weight:600}.play-button:hover{background:#f7c58b!important}#play-icon{font-size:11px}.map-toolbar .network-choice{margin-left:auto;white-space:nowrap}.network-choice input{width:16px;height:16px;accent-color:var(--accent);margin:0}.speed-choice select{max-width:90px}
.map-controls{position:absolute;z-index:3;right:24px;top:90px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:7px;overflow:hidden}.map-controls button{width:40px;height:40px;background:#132532ed;color:#c0d0d8;font-size:23px;border-bottom:1px solid var(--line)}.map-controls button:last-child{border:0}.map-controls button:hover{background:#2a3d4a}
.flow-status{position:absolute;bottom:47px;left:24px;max-width:min(520px,calc(100% - 48px));padding:16px 20px;background:linear-gradient(110deg,#0d1c29f5,#0e1e2aec);border-left:2px solid var(--accent);border-radius:0 6px 6px 0;pointer-events:none}.flow-heading{display:flex;justify-content:space-between;gap:28px;color:var(--accent);font-size:10px;letter-spacing:1px}.flow-node{display:flex;align-items:center;gap:9px;margin-top:11px;flex-wrap:wrap}.flow-node strong{font-size:18px;font-weight:500;letter-spacing:-.3px}.flow-node #node-kind{font-size:10px;color:var(--muted)}.flow-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;box-shadow:0 0 12px #edb47566}.node-foot{font-size:10px;line-height:1.7;color:#9ab0be;margin:7px 0 0}progress{display:block;width:100%;height:2px;border:0;margin-top:12px;background:#2c3d47;accent-color:var(--accent)}progress::-webkit-progress-bar{background:#2c3d47}progress::-webkit-progress-value{background:var(--accent)}progress::-moz-progress-bar{background:var(--accent)}
.map-credit{position:absolute;bottom:17px;left:24px;right:24px;display:flex;align-items:center;justify-content:flex-end;gap:7px;font-size:9px;color:#8da4b2}.map-credit a{text-decoration:underline;text-underline-offset:3px}.legend-line{width:22px;border-top:1px dashed var(--mint)}.map-note{margin:0;padding:12px 24px;font-size:10px;line-height:1.6;color:#91a6b4;min-height:52px}.map-error{position:absolute;z-index:5;left:24px;right:24px;top:85px;padding:16px;border:1px solid #925d40;background:#302721;font-size:13px;border-radius:7px}.map-error button{background:none;color:var(--accent);text-decoration:underline;font-size:inherit}.skip{position:fixed;top:-100px;left:20px;background:var(--accent);color:#15202b;padding:14px;z-index:10}.skip:focus{top:15px}.screen-reader{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.noscript{padding:20px;color:var(--accent)}.wrap{width:min(1200px,calc(100% - 48px));margin:auto}.not-found{padding-top:15vh}.not-found h1{font-size:40px;margin:35px 0;color:var(--ink)}.return-link{display:inline-block;margin-top:30px;color:var(--accent)}
@media(max-width:900px){.topbar{padding:0 20px;height:64px}.topbar h1{display:none}.map-toolbar{top:15px;left:16px;right:16px;flex-wrap:wrap;gap:8px}.route-choice{flex:1;max-width:350px}.map-toolbar .network-choice{margin-left:0}.map-toolbar label{height:40px}.play-button{height:40px;min-width:112px}.speed-choice{margin-left:auto}.map-shell{height:calc(100svh - 124px);min-height:590px}.map-controls{top:116px;right:16px}.flow-status{left:16px;max-width:calc(100% - 32px)}.map-note{padding:10px 16px}.map-credit{left:16px;right:16px}.map-toolbar .network-choice{order:3}.speed-choice{order:4}}
@media(max-width:520px){.topbar{height:59px;padding:0 16px}.brand{font-size:21px}.brand svg{width:28px}.public-badge{font-size:9px}.map-shell{height:calc(100svh - 136px);min-height:540px}.map-toolbar label{font-size:10px;padding:0 10px;gap:7px}.map-toolbar select{font-size:11px}.route-choice{max-width:none;width:calc(100% - 120px);flex:1}.route-choice>span{display:none}.play-button{min-width:112px;font-size:11px}.network-choice{flex:1}.speed-choice{margin-left:0}.speed-choice>span{display:none}.map-controls button{width:36px;height:36px}.flow-status{padding:12px 14px;bottom:42px}.flow-node strong{font-size:16px}.flow-heading{font-size:9px}.node-foot{font-size:9px}.map-note{font-size:9px;line-height:1.6}.map-credit{font-size:8px;gap:5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
