@font-face{font-family:Overpass Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/overpass-cyrillic-ext-wght-normal.B1PfurAb.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Overpass Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/overpass-cyrillic-wght-normal.Bb0oHPsy.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Overpass Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/overpass-vietnamese-wght-normal.BfgOsjc9.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Overpass Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/overpass-latin-ext-wght-normal.DvafStyF.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Overpass Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/overpass-latin-wght-normal.qAR8M_co.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}:root{--font:"Overpass Variable", "Overpass", system-ui, sans-serif;--paper:#f4f6f8;--sheet:#fff;--ink:#12161b;--ink-2:#3c4550;--ink-3:#5a6470;--rule:#12161b1f;--rule-strong:#12161b38;--software:#1e5bd6;--data:#0e8653;--sales:#f0a500;--on-software:#fff;--on-data:#fff;--on-sales:#12161b;--software-ink:#1a4fbb;--data-ink:#0b7246;--sales-ink:#8a5a00;--shadow-lift:0 1px 2px #12161b0f, 0 8px 24px -8px #12161b2e, 0 32px 64px -32px #12161b47;--max:1240px;--pad:clamp(16px, 4vw, 40px);--bleed:max(var(--pad), calc((100vw - var(--max)) / 2));--ease-out:cubic-bezier(.23, 1, .32, 1);color-scheme:light}:root[data-theme=dark]{--paper:#0e1217;--sheet:#161b22;--ink:#e8ecf1;--ink-2:#b4bdc8;--ink-3:#8d97a3;--rule:#e8ecf11f;--rule-strong:#e8ecf13d;--software:#5c8ef2;--data:#2db37a;--sales:#f5b73a;--on-software:#0e1217;--on-data:#0e1217;--on-sales:#0e1217;--software-ink:#8db0f7;--data-ink:#5fd39e;--sales-ink:#f5c566;--shadow-lift:0 1px 2px #0000004d, 0 8px 24px -8px #00000080, 0 32px 64px -32px #000000b3;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:88px;overflow-x:clip}body{background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;line-height:1.55}h1,h2,h3,p,ol,ul,dl,dd{margin:0}ol,ul{padding:0;list-style:none}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}img{max-width:100%;height:auto;display:block}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1.5px}::selection{background:color-mix(in srgb, var(--software) 28%, transparent);color:var(--ink)}:focus-visible{outline:3px solid var(--software);outline-offset:3px;border-radius:6px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:30;background:var(--ink);color:var(--paper);transition:transform .2s var(--ease-out);border-radius:10px;padding:10px 16px;font-weight:700;position:absolute;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus-visible{transform:none}.site-header__inner,.hero,.project,.route-map,.stack,.contact,.site-footer{width:min(100% - 2 * var(--pad), var(--max));margin-inline:auto}.site-header{z-index:20;background:var(--paper);transition:box-shadow .2s;position:sticky;top:0}.site-header.is-scrolled{box-shadow:0 1px 0 var(--rule), 0 10px 24px -18px #0006}.site-header__inner{align-items:center;gap:clamp(12px,3vw,32px);min-height:68px;display:flex}.monogram{background:var(--sheet);width:42px;height:42px;box-shadow:inset 0 0 0 5px var(--ink);letter-spacing:.02em;border-radius:50%;place-items:center;font-size:.8125rem;font-weight:800;text-decoration:none;display:grid}.site-nav{gap:clamp(4px,1.5vw,12px);margin-right:auto;display:flex}.site-nav a{min-height:40px;color:var(--ink-2);border-radius:8px;align-items:center;padding:0 10px;font-weight:600;text-decoration:none;transition:color .15s;display:inline-flex}.prefs{gap:8px;display:flex}.switch{background:var(--sheet);box-shadow:inset 0 0 0 1px var(--rule-strong);border-radius:999px;padding:3px;display:inline-flex}.switch__option{min-width:40px;height:40px;color:var(--ink-2);font:inherit;cursor:pointer;transition:background-color .16s ease, color .16s ease, transform .12s var(--ease-out);background:0 0;border:0;border-radius:999px;place-items:center;padding:0 8px;font-size:.8125rem;font-weight:800;text-decoration:none;display:grid}.switch__option svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round}.switch__option[aria-current=true],.switch__option[aria-pressed=true]{background:var(--ink);color:var(--paper)}.switch__option:active{transform:scale(.97)}.actions{flex-wrap:wrap;gap:10px;display:flex}.button{background:var(--sheet);min-height:46px;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--rule-strong);transition:background-color .16s ease, box-shadow .16s ease, transform .12s var(--ease-out);border-radius:12px;align-items:center;gap:8px;padding:0 18px;font-size:1rem;font-weight:700;text-decoration:none;display:inline-flex}.button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.button--primary{background:var(--software);color:var(--on-software);box-shadow:0 1px 2px #0000001f, 0 6px 16px -8px color-mix(in srgb, var(--software) 70%, transparent)}.button--quiet{box-shadow:none;background:0 0;text-decoration:underline}.button:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.site-nav a:hover{color:var(--ink)}.switch__option:not([aria-current=true],[aria-pressed=true]):hover{color:var(--ink);background:color-mix(in srgb, var(--ink) 7%, transparent)}.button:hover{box-shadow:inset 0 0 0 1.5px var(--ink)}.button--primary:hover{background:color-mix(in srgb, var(--software) 88%, var(--ink));box-shadow:0 1px 2px #0000001f, 0 10px 22px -10px color-mix(in srgb, var(--software) 80%, transparent)}.button--quiet:hover{box-shadow:none;background:color-mix(in srgb, var(--ink) 6%, transparent)}}.route--software,.bend__path--software,.pill--software,.strip--software{--line:var(--software);--on-line:var(--on-software);--line-ink:var(--software-ink)}.route--data,.bend__path--data,.pill--data,.strip--data{--line:var(--data);--on-line:var(--on-data);--line-ink:var(--data-ink)}.route--sales,.bend__path--sales,.pill--sales,.strip--sales{--line:var(--sales);--on-line:var(--on-sales);--line-ink:var(--sales-ink)}.pill{background:var(--line);min-height:28px;color:var(--on-line);white-space:nowrap;border-radius:999px;align-items:center;padding:3px 12px 1px;font-size:.875rem;font-weight:800;line-height:1;display:inline-flex}.bundle{background:linear-gradient(to bottom, var(--software) 0 8px, transparent 8px 14px, var(--data) 14px 22px, transparent 22px 28px, var(--sales) 28px 36px);height:36px}.hero{padding-block:clamp(48px,9vh,104px) clamp(48px,8vh,96px)}.hero__map{--photo:clamp(200px, 22vw, 300px);--name-gap:clamp(20px, 3vw, 44px);grid-template-columns:minmax(96px, .8fr) 72px var(--photo) minmax(0, 2fr);grid-template-rows:calc(var(--photo) / 2 - 18px) 36px auto;display:grid}.incoming,.bend{margin-top:calc(var(--photo) / 2 - 68px);grid-row:1/4;align-self:start;height:136px}.incoming{grid-column:1;position:relative}.route{left:calc(-1 * var(--bleed));background:var(--line);transform-origin:0;height:8px;position:absolute;right:0}.route--software{top:0}.route--data{top:64px}.route--sales{top:128px}.route__badge{top:50%;left:var(--bleed);background:var(--line);min-height:30px;color:var(--on-line);box-shadow:0 0 0 4px var(--paper);border-radius:999px;align-items:center;padding:3px 12px 1px;font-size:.875rem;font-weight:800;line-height:1;display:inline-flex;position:absolute;translate:0 -50%}.route__stop{top:-7px;left:calc(var(--bleed) + (100% - var(--bleed)) * var(--at));background:var(--line);width:8px;height:7px;position:absolute}.route--sales .route__stop{top:8px}.bend{grid-column:2;width:72px;overflow:visible}.bend__path{fill:none;stroke:var(--line);stroke-width:8px;stroke-linejoin:round}.station{z-index:2;width:var(--photo);aspect-ratio:1;background:var(--sheet);box-shadow:0 0 0 7px var(--paper), 0 0 0 16px var(--ink), 0 24px 48px -18px #00000073;border-radius:50%;grid-area:1/3/4;align-self:start;position:relative}.station__photo{object-fit:cover;object-position:50% 22%;border-radius:50%;width:100%;height:100%}.bundle--hero{z-index:1;transform-origin:0;grid-area:2/3/auto/5}.hero__name{margin:0 0 16px var(--name-gap);white-space:nowrap;letter-spacing:-.035em;grid-area:1/4;align-self:end;font-size:clamp(2.75rem,5.6vw,5.25rem);font-weight:800;line-height:.92}.terminus{z-index:2;background:var(--paper);grid-area:2/4;place-self:center end;align-items:center;gap:14px;padding-right:4px;line-height:1.15;display:flex;position:relative}.terminus:before{content:"";background:var(--ink);border-radius:5px;flex:none;width:9px;height:64px}.terminus__label,.terminus__name{display:block}.terminus__label{color:var(--ink-3);font-size:.8125rem;font-weight:600}.terminus__name{font-size:1.0625rem;font-weight:800}.hero__meta{margin:22px 0 0 var(--name-gap);grid-area:3/4}.hero__role{font-size:clamp(1.125rem,1.6vw,1.375rem);font-weight:700;line-height:1.3}.hero__pitch{max-width:44ch;color:var(--ink-2);margin-top:8px}.hero__meta .actions{margin-top:24px}.hero__facts{color:var(--ink-3);flex-wrap:wrap;gap:4px 20px;margin-top:20px;font-size:.9375rem;font-weight:600;display:flex}.hero__legend{display:none}.intro-pending .hero{opacity:0}.project,.route-map,.stack{padding-block:clamp(64px,11vh,128px)}.sign{flex-wrap:wrap;align-items:center;gap:12px 16px;display:flex}.sign__title{letter-spacing:-.03em;font-size:clamp(2.25rem,4.6vw,3.75rem);font-weight:800;line-height:1}.section-intro,.project__tagline{max-width:52ch;color:var(--ink-2);margin-top:14px;font-size:clamp(1.0625rem,1.4vw,1.25rem)}.project__body{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;gap:clamp(28px,4vw,56px);margin-top:clamp(28px,4vw,48px);display:grid}.shot{background:var(--sheet);box-shadow:var(--shadow-lift);transition:transform .24s var(--ease-out), box-shadow .24s var(--ease-out);border-radius:16px;display:block;position:relative;overflow:hidden}.shot:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #00000014}.shot__img{width:100%}.shot__img--dark,:root[data-theme=dark] .shot__img--light{display:none}:root[data-theme=dark] .shot__img--dark{display:block}@media (hover:hover) and (pointer:fine){.shot:hover{transform:translateY(-3px)}}.project__side .actions{margin-top:28px}.note{color:var(--ink-3);margin-top:16px;font-size:.875rem}.strip{position:relative}.strip:before,.strip__progress{content:"";background:var(--line);border-radius:3px;width:6px;position:absolute;top:14px;bottom:14px;left:7px}.strip__progress{transform-origin:top;display:none}.strip--animated:before{background:color-mix(in srgb, var(--line) 24%, transparent)}.strip--animated .strip__progress{display:block}.stop{gap:1px;padding:10px 0 10px 38px;display:grid;position:relative}.stop__dot{z-index:1;background:var(--sheet);width:20px;height:20px;box-shadow:inset 0 0 0 5px var(--line);transition:box-shadow .22s var(--ease-out);border-radius:50%;position:absolute;top:13px;left:0}.strip--animated .stop:not(.is-reached) .stop__dot{box-shadow:inset 0 0 0 5px color-mix(in srgb, var(--line) 35%, var(--paper))}.stop__period{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:.875rem;font-weight:700}.stop__title{font-weight:700;line-height:1.3}.stop__org{color:var(--ink-2);font-size:.9375rem}.strip--compact .stop{padding-block:8px}.strip--compact .stop__dot{top:11px}.strip--compact .stop__title{font-weight:600}.stop--planned:before{content:"";z-index:0;background:repeating-linear-gradient(to bottom, var(--line) 0 7px, var(--paper) 7px 13px);width:6px;position:absolute;top:0;bottom:0;left:7px}.stop--planned:first-child:before{top:14px}.stop--planned .stop__dot,.strip--animated .stop--planned:not(.is-reached) .stop__dot{background:var(--paper);box-shadow:none;border:3px dashed var(--line)}.stop--planned .stop__period{box-shadow:inset 0 0 0 1.5px var(--line-ink);color:var(--line-ink);border-radius:6px;justify-self:start;padding:2px 8px 0;font-size:.8125rem}.stop__more summary{cursor:pointer;list-style:none;display:block}.stop__more summary::-webkit-details-marker{display:none}.stop__chevron{vertical-align:-5px;fill:none;width:20px;height:20px;stroke:var(--ink-3);stroke-width:2.25px;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s var(--ease-out);margin-left:2px;display:inline-block}.stop__more[open] .stop__chevron{transform:rotate(180deg)}.stop__detail{max-width:48ch;color:var(--ink-2);margin:4px 0 6px;font-size:.9375rem}@media (hover:hover) and (pointer:fine){.stop__more summary:hover .stop__title{text-underline-offset:.2em;text-decoration:underline 1.5px}}.network{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(32px,4vw,56px);margin-top:clamp(32px,5vw,56px);display:grid}.line__name{margin-bottom:14px}.line__name .pill{min-height:34px;padding-inline:16px;font-size:1rem}.stack__lines{margin-top:clamp(28px,4vw,48px)}.stack__line{box-shadow:0 -1px 0 var(--rule);grid-template-columns:minmax(120px,200px) minmax(0,1fr);gap:12px 24px;padding-block:22px;display:grid}.stack__line dt{padding-top:18px;font-weight:800}.stops{flex-wrap:wrap;row-gap:14px;display:flex}.stops li{padding:22px 26px 0 0;font-weight:600;position:relative}.stops li:before{content:"";background:var(--ink-3);height:4px;position:absolute;top:6px;left:0;right:0}.stops li:after{content:"";background:var(--sheet);width:14px;height:14px;box-shadow:inset 0 0 0 3.5px var(--ink);border-radius:50%;position:absolute;top:1px;left:0}.stops li:last-child{padding-right:0}.stops li:first-child:before{left:7px}.contact{padding-block:clamp(56px,9vh,104px) clamp(72px,12vh,144px)}.contact__track{align-items:center;width:min(72%,760px);display:flex}.contact__track .bundle{margin-left:calc(-1 * var(--bleed));transform-origin:0;flex:1}.contact__buffer{background:var(--ink);border-radius:5px;flex:none;width:10px;height:68px}.contact__title{letter-spacing:-.035em;margin-top:clamp(32px,5vw,56px);font-size:clamp(2.5rem,6.4vw,5.5rem);font-weight:800;line-height:.95}.contact__body{max-width:46ch;color:var(--ink-2);margin-top:18px;font-size:clamp(1.0625rem,1.4vw,1.25rem)}.contact .actions{margin-top:28px}.site-footer{box-shadow:0 -1px 0 var(--rule);color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding-block:28px 40px;font-size:.875rem;display:flex}.site-footer a{align-items:center;min-height:40px;margin-block:-10px;display:inline-flex}@media (width<=1080px){.network{grid-template-columns:repeat(2,minmax(0,1fr))}.project__body{grid-template-columns:minmax(0,1fr)}.project__side{max-width:640px}}@media (width<=820px){.hero__map{--photo:148px;grid-template-columns:minmax(24px, 1fr) 72px var(--photo) minmax(24px, .7fr);grid-template-rows:calc(var(--photo) / 2 - 18px) 36px calc(var(--photo) / 2 - 18px) auto auto auto}.incoming,.bend,.station{grid-row:1/4}.route__badge,.route__stop{display:none}.bundle--hero{margin-right:calc(-1 * var(--bleed))}.hero__legend{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.hero__name{white-space:normal;grid-area:4/1/auto/-1;margin:44px 0 0;font-size:clamp(2.75rem,12vw,4.25rem)}.hero__meta{grid-area:5/1/auto/-1;margin:16px 0 0}.terminus{grid-area:6/1/auto/-1;justify-self:start;margin-top:28px}.terminus:before{height:44px}.network{grid-template-columns:minmax(0,1fr)}.stack__line{grid-template-columns:minmax(0,1fr);gap:4px}.stack__line dt{padding-top:0}.contact__track{width:88%}}@media (width<=640px){.site-nav{display:none}.prefs{margin-left:auto}.actions .button{flex:auto;justify-content:center}}@media (prefers-reduced-motion:reduce){.skip-link,.site-header,.switch__option,.button,.shot,.stop__dot,.stop__chevron{transition:none}}
