:root{--bg: #08090d;--surface: #0e1015;--surface-raised: #14171f;--surface-hover: #191d26;--surface-sunken: #0a0c11;--line: rgba(255, 255, 255, .07);--line-strong: rgba(255, 255, 255, .13);--line-faint: rgba(255, 255, 255, .04);--text: #e9ecf2;--text-2: rgba(233, 236, 242, .64);--text-3: rgba(233, 236, 242, .4);--text-4: rgba(233, 236, 242, .26);--accent: #7da6ff;--accent-soft: rgba(125, 166, 255, .14);--accent-line: rgba(125, 166, 255, .34);--good: #4fd1a5;--warn: #f0b429;--bad: #ff6b6b;--info: #b48cff;--route-safe: #4fd1a5;--route-balanced: #f0b429;--route-fuel: #ff7a66;--route-alt: rgba(233, 236, 242, .34);--route-reported: #8892a6;--r-xs: 4px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-pill: 999px;--ring: inset 0 0 0 1px rgba(255, 255, 255, .06);--elev-1: 0 1px 2px rgba(0, 0, 0, .4), inset 0 0 0 1px rgba(255, 255, 255, .06);--elev-2: 0 8px 24px -8px rgba(0, 0, 0, .7), inset 0 0 0 1px rgba(255, 255, 255, .08);--elev-3: 0 24px 60px -16px rgba(0, 0, 0, .85), inset 0 0 0 1px rgba(255, 255, 255, .1);--ease: cubic-bezier(.32, .72, 0, 1);--fast: .14s;--base: .2s;--slow: .32s;--sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mono: "Geist Mono", "JetBrains Mono", "SF Mono", "Cascadia Mono", ui-monospace, "Consolas", monospace;--rail-left: 320px;--rail-right: 372px;--topbar: 52px;color-scheme:dark}:root[data-theme=day]{--bg: #eceff4;--surface: #ffffff;--surface-raised: #ffffff;--surface-hover: #f2f5f9;--surface-sunken: #f7f9fc;--line: rgba(16, 24, 40, .1);--line-strong: rgba(16, 24, 40, .17);--line-faint: rgba(16, 24, 40, .06);--text: #101828;--text-2: rgba(16, 24, 40, .7);--text-3: rgba(16, 24, 40, .52);--text-4: rgba(16, 24, 40, .36);--accent: #2f6bdb;--accent-soft: rgba(47, 107, 219, .1);--accent-line: rgba(47, 107, 219, .36);--good: #0f7a52;--warn: #a16207;--bad: #c2333a;--info: #6d3fd1;--route-safe: #0f7a52;--route-balanced: #a16207;--route-fuel: #c2410c;--route-alt: rgba(16, 24, 40, .4);--route-reported: #667085;--ring: inset 0 0 0 1px rgba(16, 24, 40, .08);--elev-1: 0 1px 2px rgba(16, 24, 40, .06), inset 0 0 0 1px rgba(16, 24, 40, .08);--elev-2: 0 8px 24px -10px rgba(16, 24, 40, .22), inset 0 0 0 1px rgba(16, 24, 40, .1);--elev-3: 0 24px 60px -18px rgba(16, 24, 40, .3), inset 0 0 0 1px rgba(16, 24, 40, .12);color-scheme:light}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.landing{min-height:100%;background:var(--bg);overflow-x:hidden}.lp-nav{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.lp-nav-inner{max-width:1200px;margin:0 auto;padding:0 24px;height:60px;display:flex;align-items:center;gap:28px}.lp-nav .brand{text-decoration:none;color:inherit}.lp-links{display:flex;gap:24px;margin-left:auto}.landing a.btn{text-decoration:none}.lp-links a{color:var(--text-3);text-decoration:none;font-size:12.5px;font-weight:500;transition:color var(--fast) var(--ease)}.lp-links a:hover{color:var(--text)}.landing .btn,.signin .btn{width:auto;flex:none}.lp-nav .brand{flex:none}.lp-links a{white-space:nowrap}.lp-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}.hero-chart{position:absolute;top:50%;right:-4%;transform:translateY(-50%);width:min(760px,56vw);aspect-ratio:1;pointer-events:none}.lp-hero-inner{position:relative;max-width:1200px;margin:0 auto;padding:104px 24px 92px}@media (prefers-reduced-motion: no-preference){.lp-hero-inner>*{animation:rise .66s var(--ease) backwards}.lp-hero-inner>*:nth-child(1){animation-delay:.02s}.lp-hero-inner>*:nth-child(2){animation-delay:.1s}.lp-hero-inner>*:nth-child(3){animation-delay:.18s}.lp-hero-inner>*:nth-child(4){animation-delay:.26s}.lp-hero-inner>*:nth-child(5){animation-delay:.34s}.hero-chart{animation:settle 1.4s var(--ease) backwards}}@keyframes rise{0%{transform:translateY(16px)}to{transform:none}}@keyframes settle{0%{transform:translateY(-50%) scale(1.07)}to{transform:translateY(-50%) scale(1)}}.lp-badge{display:inline-flex;align-items:center;max-width:100%;padding:5px 11px;border-radius:var(--r-pill);border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:550;letter-spacing:.02em}.lp-hero h1{margin:24px 0 0;font-size:clamp(34px,5.4vw,64px);line-height:1.04;letter-spacing:-.038em;font-weight:600}.lp-accent{color:var(--accent)}.lp-lede{margin:24px 0 0;max-width:46ch;font-size:clamp(14px,1.3vw,16px);line-height:1.65;color:var(--text-2)}.lp-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}.btn-lg{height:44px;padding:0 20px;font-size:13.5px;border-radius:var(--r-md)}.landing .lp-actions .btn,.lp-final-inner .btn{width:auto}.lp-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:56px 0 0;max-width:780px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.lp-facts>div{background:var(--surface);padding:16px 18px}.lp-facts dt{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-4)}.lp-facts dd{margin:6px 0 0;font-family:var(--mono);font-size:22px;letter-spacing:-.03em;color:var(--text)}.lp-section{padding:84px 0;border-bottom:1px solid var(--line)}.lp-section-alt{background:var(--surface)}.lp-inner{max-width:1200px;margin:0 auto;padding:0 24px}.lp-eyebrow{display:block;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}.lp-section h2{margin:0;max-width:24ch;font-size:clamp(23px,3vw,34px);line-height:1.18;letter-spacing:-.028em;font-weight:600}.lp-sub{margin:16px 0 0;max-width:62ch;font-size:13.5px;line-height:1.7;color:var(--text-2)}.lp-note{font-size:12.5px;line-height:1.7;color:var(--text-3);max-width:66ch}.lp-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.lp-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.lp-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-md);padding:22px}.lp-section-alt .lp-card{background:var(--bg)}.lp-section:not(.lp-section-alt) .lp-card{background:var(--surface)}.lp-card h3{margin:0 0 8px;font-size:14.5px;font-weight:600;letter-spacing:-.012em}.lp-card p{margin:0;font-size:13px;line-height:1.68;color:var(--text-2)}.lp-role{display:inline-block;margin-bottom:10px;font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--accent)}.lp-stages{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.lp-stages li{display:grid;grid-template-columns:76px minmax(0,1fr);gap:20px;padding:26px 24px;background:var(--bg)}.lp-stage-n{font-family:var(--mono);font-size:26px;letter-spacing:-.04em;color:var(--accent);opacity:.55}.lp-stages h3{margin:0;font-size:16px;font-weight:600;letter-spacing:-.018em}.lp-stage-plain{margin:4px 0 10px;font-size:13.5px;color:var(--accent);font-weight:500}.lp-stages p:last-child{margin:0;max-width:72ch;font-size:13px;line-height:1.7;color:var(--text-2)}.lp-stat{display:flex;flex-direction:column;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}.lp-section-alt .lp-stat{background:var(--bg)}.lp-stat-k{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-4);min-height:26px}.lp-stat-v{margin-top:8px;font-family:var(--mono);font-size:32px;font-weight:500;letter-spacing:-.04em;line-height:1;color:var(--text)}.lp-stat-v small{font-size:14px;color:var(--text-3);margin-left:3px}.lp-stat-n{margin-top:10px;font-size:11.5px;line-height:1.6;color:var(--text-3)}.lp-final{padding:76px 0;background:var(--surface);border-bottom:1px solid var(--line)}.lp-final-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}.lp-final h2{margin:0;font-size:clamp(21px,2.6vw,30px);letter-spacing:-.028em;font-weight:600}.lp-foot{padding:32px 0 48px}.lp-foot-inner{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;font-size:11.5px;color:var(--text-3);line-height:1.7}.lp-foot-inner strong{color:var(--text-2);margin-right:10px}.lp-foot-inner>div{max-width:62ch}.lp-foot-note{max-width:40ch}.signin{min-height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--bg)}.signin-panel{display:flex;flex-direction:column;justify-content:center;padding:48px clamp(24px,6vw,84px);max-width:620px;width:100%;margin-left:auto}.signin-brand{text-decoration:none;color:inherit;margin-bottom:40px;align-self:flex-start}.signin h1{margin:0;font-size:28px;font-weight:600;letter-spacing:-.03em}.signin-sub{margin:10px 0 30px;font-size:13px;line-height:1.68;color:var(--text-2);max-width:48ch}.signin form .control{height:40px;font-size:13.5px}.signin .signin-submit{width:100%;margin-top:8px}.signin-error{display:flex;align-items:center;gap:8px;margin:4px 0 12px;padding:10px 12px;border-radius:var(--r-sm);border:1px solid rgba(255,107,107,.32);background:#ff6b6b14;color:var(--bad);font-size:12.5px}.signin-demo{margin-top:34px;padding-top:24px;border-top:1px solid var(--line)}.signin-demo-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.signin-accounts{display:grid;gap:8px}.signin-account{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"role pw" "name email";gap:2px 12px;text-align:left;padding:11px 13px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease)}.signin-account:hover{border-color:var(--line-strong);background:var(--surface-hover)}.signin-account[aria-pressed=true]{border-color:var(--accent-line);background:var(--accent-soft)}.signin-account-role{grid-area:role;font-size:12.5px;font-weight:600;color:var(--text)}.signin-account-name{grid-area:name;font-size:11.5px;color:var(--text-3)}.signin-account-email{grid-area:email;font-size:11px;color:var(--text-3);text-align:right}.signin-account-pw{grid-area:pw;font-size:11px;color:var(--accent);text-align:right}.signin-aside{position:relative;display:flex;align-items:center;padding:48px clamp(24px,5vw,72px);background:radial-gradient(120% 90% at 30% 10%,#101a2c,#0a0f1a 55%,#070a11);border-left:1px solid var(--line);overflow:hidden}.signin-aside-inner{max-width:460px}.signin-aside blockquote{margin:26px 0 0;font-size:clamp(20px,2.4vw,30px);line-height:1.28;letter-spacing:-.028em;font-weight:500;color:#e9ecf2}.signin-points{list-style:none;margin:34px 0 0;padding:0;display:grid;gap:12px}.signin-points li{position:relative;padding-left:22px;font-size:13px;line-height:1.6;color:#e9ecf2a8}.signin-points li:before{content:"";position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:50%;background:#4fd1a5}@media (max-width: 1080px){.lp-grid-4,.lp-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-chart{opacity:.35;right:-22%}.signin{grid-template-columns:minmax(0,1fr)}.signin-panel{margin:0 auto;max-width:560px}.signin-aside{display:none}}@media (max-width: 860px){.lp-links{display:none}.lp-grid-3{grid-template-columns:minmax(0,1fr)}.lp-hero-inner{padding:64px 20px 56px}.lp-section{padding:60px 0}.lp-inner,.lp-nav-inner{padding-left:20px;padding-right:20px}.lp-stages li{grid-template-columns:minmax(0,1fr);gap:10px;padding:22px 20px}.lp-stage-n{font-size:20px}.hero-chart{display:none}}@media (max-width: 640px){.lp-badge{font-size:10px;padding:5px 9px;line-height:1.45}}@media (max-width: 560px){.lp-grid-4,.lp-facts{grid-template-columns:minmax(0,1fr)}.landing .lp-actions .btn,.landing .lp-final-inner .btn{width:100%}.signin-account{grid-template-columns:minmax(0,1fr);grid-template-areas:"role" "name" "email" "pw"}.signin-account-email,.signin-account-pw{text-align:left}}@media (max-width: 900px){.lp-nav-inner,.lp-hero-inner,.lp-inner{width:100%;max-width:100%}.lp-nav-inner{gap:12px}.lp-nav .brand{min-width:0;overflow:hidden}.lp-hero h1,.lp-lede,.lp-sub,.lp-note,.lp-section h2,.lp-stages p:last-child,.lp-foot-inner>div,.lp-foot-note,.signin-sub{max-width:100%}.lp-facts,.lp-card,.lp-stat,.lp-stages{max-width:100%}.landing *,.signin *{min-width:0}}.lp-theme{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:transparent;color:var(--text-3);font-size:12px;font-weight:500;white-space:nowrap;transition:color var(--fast) var(--ease),border-color var(--fast) var(--ease)}.lp-theme:hover{color:var(--text);border-color:var(--accent-line)}.signin-theme{position:absolute;top:20px;right:20px;z-index:5}.signin{position:relative}.lp-credit{margin-top:18px;padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11.5px;color:var(--text-3)}.lp-credit strong{color:var(--text-2);font-weight:600}.lp-credit .dot{width:3px;height:3px;border-radius:50%;background:var(--text-4)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}html,body{max-width:100%;overflow-x:hidden}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none;padding:0}::selection{background:var(--accent-soft)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff17;border-radius:var(--r-pill);border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#ffffff29;background-clip:content-box}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-xs)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.eyebrow{font-size:10px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--text-3)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.app{display:flex;flex-direction:column;height:100%;overflow:hidden}.topbar{display:flex;align-items:center;gap:20px;height:var(--topbar);flex:0 0 var(--topbar);padding:0 16px;background:var(--surface);border-bottom:1px solid var(--line);position:relative;z-index:40}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand svg{width:26px;height:26px;flex:none}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-name{font-size:14px;font-weight:600;letter-spacing:-.015em}.brand-sub{font-size:10px;color:var(--text-3);letter-spacing:.02em;white-space:nowrap}.tabs{display:flex;align-items:center;gap:2px;padding:3px;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--r-md)}.tab{padding:5px 12px;border-radius:var(--r-sm);font-size:12px;font-weight:500;color:var(--text-3);transition:color var(--fast) var(--ease),background var(--fast) var(--ease);white-space:nowrap}.tab:hover{color:var(--text-2)}.tab[aria-selected=true]{color:var(--text);background:var(--surface-raised);box-shadow:var(--elev-1)}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:16px}.stamp{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.stamp-label{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-4)}.stamp-value{font-size:12px;font-family:var(--mono);color:var(--text-2)}.pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:var(--r-pill);font-size:11px;font-weight:500;border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--text-2);white-space:nowrap}.pill .dot{width:6px;height:6px;border-radius:50%;background:var(--good);box-shadow:0 0 0 3px #4fd1a524}.pill.warn .dot{background:var(--warn);box-shadow:0 0 0 3px #f0b42924}.workspace{flex:1;min-height:0;display:grid;grid-template-columns:var(--rail-left) minmax(0,1fr) var(--rail-right)}.rail{min-height:0;overflow-y:auto;overflow-x:hidden;background:var(--surface);display:flex;flex-direction:column}.rail-left{border-right:1px solid var(--line)}.rail-right{border-left:1px solid var(--line)}.stage{position:relative;min-width:0;min-height:0;background:radial-gradient(120% 100% at 50% 0%,#0c1119,#07080c 62%,#050609);overflow:hidden}.panel{border-bottom:1px solid var(--line)}.panel:last-child{border-bottom:none}.panel-head{display:flex;align-items:center;gap:8px;padding:12px 16px 8px}.panel-head h2{margin:0;font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3)}.panel-head .spacer{margin-left:auto}.panel-body{padding:0 16px 16px}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field:last-child{margin-bottom:0}.field>label{font-size:11px;color:var(--text-3);font-weight:500}.control{height:32px;padding:0 10px;background:var(--surface-sunken);border:1px solid var(--line-strong);border-radius:var(--r-sm);color:var(--text);font-size:12.5px;width:100%;transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease);-webkit-appearance:none;-moz-appearance:none;appearance:none}select.control{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5' fill='none' stroke='%23767d8c' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;padding-right:26px}.control:hover{border-color:#fff3}.control:focus{outline:none;border-color:var(--accent-line);background:var(--surface-raised)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 14px;border-radius:var(--r-sm);font-size:12.5px;font-weight:550;transition:background var(--fast) var(--ease),color var(--fast) var(--ease),border-color var(--fast) var(--ease),opacity var(--fast) var(--ease);white-space:nowrap}.btn-primary{background:var(--accent);color:#fff;width:100%}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-primary:active:not(:disabled){filter:brightness(.93)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--text-2)}.btn-ghost:hover{color:var(--text);border-color:#ffffff38}.btn-sm{height:26px;padding:0 9px;font-size:11.5px;border-radius:var(--r-xs)}.vessel-list{display:flex;flex-direction:column;gap:6px}.vessel-card{display:block;width:100%;text-align:left;padding:9px 11px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface-sunken);transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease)}.vessel-card:hover{background:var(--surface-hover);border-color:var(--line-strong)}.vessel-card[aria-pressed=true]{border-color:var(--accent-line);background:var(--accent-soft)}.vessel-card .name{font-size:12.5px;font-weight:550;color:var(--text);display:flex;align-items:center;gap:6px}.vessel-card .meta{margin-top:2px;font-size:10.5px;color:var(--text-3);display:flex;gap:10px;font-family:var(--mono)}.badge{display:inline-flex;align-items:center;height:16px;padding:0 6px;border-radius:var(--r-xs);font-size:9.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;background:#ffffff12;color:var(--text-2);white-space:nowrap}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}.stat{background:var(--surface-sunken);padding:9px 11px}.stat .k{font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--text-4);white-space:nowrap}.stat .v{margin-top:2px;font-family:var(--mono);font-size:15px;font-weight:500;letter-spacing:-.02em;color:var(--text)}.stat .v small{font-size:10px;color:var(--text-3);margin-left:2px;font-weight:400}.chart-wrap{position:absolute;top:0;right:0;bottom:0;left:0}.chart-canvas{display:block;width:100%;height:100%;cursor:grab}.chart-canvas.dragging{cursor:grabbing}.chart-flow{position:absolute;top:0;right:0;bottom:0;left:0;display:block;pointer-events:none}.overlay{position:absolute;pointer-events:none}.overlay>*{pointer-events:auto}.overlay-tl{top:12px;left:12px;display:flex;gap:6px;align-items:flex-start}.overlay-tr{top:12px;right:12px;display:flex;flex-direction:column;gap:6px;align-items:flex-end}.overlay-bl{bottom:68px;left:12px}.overlay-br{bottom:68px;right:12px}.overlay-bottom{bottom:0;left:0;right:0}.segmented{display:flex;padding:3px;gap:2px;background:#0c0e13db;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.14);border-radius:var(--r-md)}.segmented button{padding:4px 10px;border-radius:var(--r-sm);font-size:11.5px;font-weight:500;color:#e9ecf28c;transition:color var(--fast) var(--ease),background var(--fast) var(--ease)}.segmented button:hover{color:#e9ecf2d6}.segmented button[aria-pressed=true]{color:#fff;background:#ffffff1f}.toggle-stack{display:flex;flex-direction:column;gap:1px;padding:4px;background:#0c0e13d1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line-strong);border-radius:var(--r-md);min-width:148px}.toggle{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:var(--r-sm);font-size:11.5px;color:#e9ecf28c;width:100%;text-align:left;transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}.toggle:hover{background:#ffffff0f;color:#e9ecf2d6}.toggle[aria-pressed=true]{color:#fff}.toggle .box{width:13px;height:13px;border-radius:3px;border:1px solid rgba(255,255,255,.26);flex:none;position:relative;transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease)}.toggle[aria-pressed=true] .box{background:#7da6ff;border-color:#7da6ff}.toggle[aria-pressed=true] .box:after{content:"";position:absolute;left:4px;top:1px;width:3px;height:7px;border:solid #0b1220;border-width:0 1.6px 1.6px 0;transform:rotate(43deg)}.icon-btn{width:28px;height:28px;display:grid;place-items:center;border-radius:var(--r-sm);background:#0c0e13db;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.14);color:#e9ecf299;transition:color var(--fast) var(--ease),background var(--fast) var(--ease)}.icon-btn:hover{color:#fff;background:#1c202af0}.legend{background:#0c0e13d1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line-strong);border-radius:var(--r-md);padding:9px 11px;min-width:180px}.legend{color:#e9ecf2}.legend .title{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:#e9ecf28c;margin-bottom:7px}.legend .kv{border-bottom-color:#ffffff12}.legend .kv .k{color:#e9ecf28c}.legend .kv .v{color:#e9ecf2}.legend .ramp{height:7px;border-radius:var(--r-pill);border:1px solid var(--line)}.legend .ticks{display:flex;justify-content:space-between;margin-top:4px;font-size:10px;color:#e9ecf28c;font-family:var(--mono)}.legend-routes{display:flex;flex-direction:column;gap:5px;margin-top:9px;padding-top:9px;border-top:1px solid rgba(255,255,255,.09)}.legend-routes .row{display:flex;align-items:center;gap:7px;font-size:11px;color:#e9ecf2bd}.legend-routes .swatch{width:14px;height:0;border-top:2px dashed currentColor;flex:none}.timeline{background:linear-gradient(to top,#060a12f5 42%,#060a1200);padding:22px 16px 18px;display:flex;align-items:center;gap:12px}.timeline .play{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:#181e2aeb;color:#e9ecf2;transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease)}.timeline .play:hover{background:#262e3ef5;border-color:#7da6ff80}.track{flex:1;min-width:0;position:relative;height:30px;display:flex;align-items:center}.track-line{position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:#ffffff2e;border-radius:var(--r-pill)}.track-fill{position:absolute;left:0;top:50%;height:2px;margin-top:-1px;background:#7da6ff;border-radius:var(--r-pill);transition:width var(--fast) var(--ease)}.track-ticks{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center}.tick{position:absolute;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center}.tick .knob{width:7px;height:7px;border-radius:50%;background:#0d1119;border:1.5px solid rgba(255,255,255,.26);transition:all var(--fast) var(--ease)}.tick[data-state=past] .knob{border-color:#7da6ff}.tick[data-state=current] .knob{width:11px;height:11px;background:#7da6ff;border-color:#7da6ff;box-shadow:0 0 0 4px #7da6ff2e}.tick .lbl{position:absolute;top:11px;font-size:9.5px;font-family:var(--mono);color:#e9ecf26b;white-space:nowrap}.tick[data-state=current] .lbl{color:#e9ecf2}.timeline-readout{flex:none;text-align:right;min-width:132px}.timeline-readout .d{font-size:12.5px;font-weight:550;font-family:var(--mono);color:#e9ecf2}.timeline-readout .k{font-size:10px;color:#e9ecf28f;letter-spacing:.05em;text-transform:uppercase}.route-list{display:flex;flex-direction:column;gap:6px}.route-card{display:block;width:100%;text-align:left;padding:11px 12px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface-sunken);position:relative;overflow:hidden;transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease)}.route-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent-color, var(--route-alt));opacity:.85}.route-card:hover{background:var(--surface-hover);border-color:var(--line-strong)}.route-card[aria-pressed=true]{border-color:var(--line-strong);background:var(--surface-raised)}.route-card[aria-pressed=true]:before{width:3px;opacity:1}.route-card .head{display:flex;align-items:baseline;gap:8px}.route-card .label{font-size:12.5px;font-weight:600;color:var(--text)}.route-card .weights{margin-left:auto;font-size:10px;font-family:var(--mono);color:var(--text-4)}.route-card .figures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}.route-card .figures div{min-width:0}.route-card .figures .k{font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-4)}.route-card .figures .v{font-family:var(--mono);font-size:13px;color:var(--text);letter-spacing:-.01em}.route-card .figures .v small{font-size:9.5px;color:var(--text-3);margin-left:1px}.meter{height:4px;border-radius:var(--r-pill);background:#ffffff14;overflow:hidden}.meter>i{display:block;height:100%;border-radius:var(--r-pill);transition:width var(--base) var(--ease)}.kv{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line-faint);font-size:12px}.kv:last-child{border-bottom:none}.kv .k{color:var(--text-3)}.kv .v{font-family:var(--mono);color:var(--text);text-align:right}.table{width:100%;border-collapse:collapse;font-size:12px}.table th{text-align:left;padding:7px 10px;font-size:9.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-4);border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:1}.table td{padding:7px 10px;border-bottom:1px solid var(--line-faint);color:var(--text-2)}.table tbody tr:hover td{background:#ffffff06}.table .num,.table td.num{font-family:var(--mono);text-align:right;color:var(--text);font-variant-numeric:tabular-nums}.table-scroll{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-sm)}.doc{height:100%;overflow-y:auto;background:var(--bg)}.doc-inner{max-width:1180px;margin:0 auto;padding:32px 32px 72px}.doc h1{margin:0 0 6px;font-size:22px;font-weight:600;letter-spacing:-.02em}.doc .lede{margin:0 0 28px;color:var(--text-2);font-size:13.5px;max-width:720px;line-height:1.65}.doc h2{margin:32px 0 12px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:16px}.card-tight{padding:0;overflow:hidden}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}@media (max-width: 1080px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}.big-stat .k{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-4)}.big-stat .v{font-family:var(--mono);font-size:26px;font-weight:500;letter-spacing:-.03em;margin-top:4px;line-height:1.1}.big-stat .v small{font-size:12px;color:var(--text-3);margin-left:3px;font-weight:400}.big-stat .note{margin-top:6px;font-size:11px;color:var(--text-3)}.prose{color:var(--text-2);font-size:12.5px;line-height:1.7}.prose p{margin:0 0 10px}.prose p:last-child{margin-bottom:0}.prose strong{color:var(--text);font-weight:550}.prose code{font-family:var(--mono);font-size:11.5px;padding:1px 5px;border-radius:var(--r-xs);background:#ffffff0f;color:var(--text)}.pipeline{display:flex;flex-direction:column;gap:10px}.stage-card{display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);position:relative}.stage-card .n{width:26px;height:26px;border-radius:var(--r-sm);display:grid;place-items:center;font-family:var(--mono);font-size:12px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-line)}.stage-card h3{margin:0 0 4px;font-size:13.5px;font-weight:600;letter-spacing:-.01em}.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.chip{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:var(--r-xs);font-size:10.5px;font-family:var(--mono);color:var(--text-3);background:var(--surface-sunken);border:1px solid var(--line)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 16px;text-align:center;color:var(--text-3);font-size:12px}.empty svg{color:var(--text-4)}.boot{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--bg);z-index:100}.boot-inner{text-align:center;max-width:320px}.boot-bar{margin-top:18px;height:2px;border-radius:var(--r-pill);background:#ffffff14;overflow:hidden;position:relative}.boot-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:38%;background:var(--accent);border-radius:var(--r-pill);animation:sweep 1.25s var(--ease) infinite}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(300%)}}.spin{animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:fade .24s var(--ease)}@keyframes fade{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.tip{position:fixed;z-index:60;pointer-events:none;color:#e9ecf2;background:#0e121af5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.15);border-radius:var(--r-sm);padding:8px 10px;box-shadow:var(--elev-2);min-width:168px}.tip .t{font-size:11px;font-weight:600;margin-bottom:5px;display:flex;align-items:center;gap:6px}.tip .r{display:flex;justify-content:space-between;gap:14px;font-size:11px;color:#e9ecf294;padding:1.5px 0}.tip .r b{font-family:var(--mono);font-weight:500;color:#e9ecf2}.plot{width:100%;display:block}.plot-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}.plot-legend .item{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-3)}.plot-legend .item i{width:9px;height:3px;border-radius:var(--r-pill);background:currentColor}.scroll-y{overflow-y:auto;min-height:0}.divider{height:1px;background:var(--line);margin:12px 0}.note{font-size:11px;color:var(--text-3);line-height:1.6}.muted{color:var(--text-3)}.right{text-align:right}.row{display:flex;align-items:center;gap:8px}.gap-4{gap:4px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.doc .segmented{background:var(--surface-sunken);border-color:var(--line-strong);-webkit-backdrop-filter:none;backdrop-filter:none}.doc .segmented button{color:var(--text-3)}.doc .segmented button:hover{color:var(--text-2)}.doc .segmented button[aria-pressed=true]{color:var(--text);background:var(--surface-hover);box-shadow:var(--elev-1)}.theme-toggle{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--text-3);font-size:11px;font-weight:500;transition:color var(--fast) var(--ease),border-color var(--fast) var(--ease)}.theme-toggle:hover{color:var(--text);border-color:var(--accent-line)}.who{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2;min-width:0}.who-name{font-size:12px;font-weight:550;color:var(--text);white-space:nowrap}.who-role{font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-4);white-space:nowrap}.menu-btn{display:none;flex:none}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;background:#04060a8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sheet{position:fixed;top:var(--topbar);left:0;right:0;z-index:46;padding:8px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--elev-2);display:flex;flex-direction:column;gap:2px;animation:fade .18s var(--ease)}.sheet-item{text-align:left;padding:11px 14px;border-radius:var(--r-sm);font-size:13.5px;color:var(--text-2);transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}.sheet-item:hover{background:var(--surface-hover);color:var(--text)}.sheet-item[aria-current=true]{background:var(--accent-soft);color:var(--accent);font-weight:550}.sheet-divider{height:1px;background:var(--line);margin:6px 8px}.ov-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:28px}.ov-head .btn{width:auto;flex:none}.ov-link{display:block;width:100%;text-align:left;cursor:pointer;transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease)}.ov-link:hover{border-color:var(--accent-line);background:var(--surface-hover)}.ov-bar{display:flex;align-items:center;gap:8px;margin-top:10px}.ov-bar>i{display:block;height:4px;border-radius:var(--r-pill);background:var(--good);min-width:6px}.ov-bar>span{font-size:10.5px;color:var(--text-3);white-space:nowrap}.table-wrap{overflow-x:auto}.hide-sm,.hide-md{display:inherit}@media (max-width: 1400px){:root{--rail-left: 288px;--rail-right: 336px}}@media (max-width: 1180px){.hide-md{display:none}:root{--rail-left: 264px;--rail-right: 300px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 1000px){.workspace{display:flex;flex-direction:column;overflow-y:auto}.stage{flex:none;height:min(62vh,560px);order:1}.rail{overflow:visible;border:none;border-top:1px solid var(--line)}.rail-left{order:2}.rail-right{order:3}.table-scroll{max-height:none}}@media (max-width: 860px){.tabs{display:none}.menu-btn{display:grid}.topbar{gap:12px;padding:0 12px}.brand-sub{display:none}.doc-inner{padding:22px 18px 56px}.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}.lp-nav-inner .lp-cta{margin-left:auto}}@media (max-width: 640px){.hide-sm,.who{display:none}.stage{height:54vh}.overlay-tl{top:8px;left:8px;flex-direction:column;gap:6px}.overlay-tr{top:8px;right:8px}.overlay-bl{bottom:62px;left:8px}.overlay-br{display:none}.toggle-stack{min-width:132px}.legend{min-width:148px}.timeline{padding:18px 10px 14px;gap:8px}.timeline-readout{min-width:92px}.timeline-readout .d{font-size:11.5px}.segmented button{padding:4px 8px;font-size:11px}.doc h1{font-size:20px}.big-stat .v{font-size:22px}.panel-body,.panel-head{padding-left:14px;padding-right:14px}}@media (max-width: 420px){.route-card .figures{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:10px}.stat-grid{grid-template-columns:minmax(0,1fr)}}@media (pointer: coarse){.tab,.sheet-item,.toggle,.segmented button{min-height:36px}.icon-btn{width:34px;height:34px}}.topbar a.brand,.signin a.brand{text-decoration:none;color:inherit}.select{position:relative}.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;cursor:pointer}.select-trigger svg{flex:none;color:var(--text-3);transition:transform var(--fast) var(--ease)}.select.open .select-trigger svg{transform:rotate(180deg)}.select.open .select-trigger{border-color:var(--accent-line);background:var(--surface-raised)}.select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-list{position:absolute;z-index:50;top:calc(100% + 4px);left:0;right:0;max-height:264px;overflow-y:auto;padding:4px;border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--surface-raised);box-shadow:var(--elev-2);animation:fade .12s var(--ease)}.select-group+.select-group{margin-top:4px;padding-top:4px;border-top:1px solid var(--line-faint)}.select-group-label{padding:6px 9px 4px;font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-4)}.select-option{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:var(--r-xs);font-size:12.5px;color:var(--text-2);cursor:pointer}.select-option[data-active=true]{background:var(--surface-hover);color:var(--text)}.select-option[aria-selected=true]{color:var(--accent)}.select-option-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-option-hint{font-size:10.5px;color:var(--text-4);white-space:nowrap}.select-option svg{flex:none}
