@font-face{font-family:Barlow;font-style:normal;font-weight:400;font-display:swap;src:url(/build/assets/barlow-400-DygnOwyn.woff2)format("woff2")}@font-face{font-family:Barlow;font-style:normal;font-weight:500;font-display:swap;src:url(/build/assets/barlow-500-D6sGsXIV.woff2)format("woff2")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/build/assets/barlow-semi-condensed-600-D36brihh.woff2)format("woff2")}:root{--paper:#fff;--ink:#17213a;--ink-soft:#4b5466;--mist:#d9dde3;--line:var(--ink);--display:"Barlow Semi Condensed", "Barlow", "Helvetica Neue", Arial, sans-serif;--text:"Barlow", "Helvetica Neue", Arial, sans-serif;--gutter:16px;--rail:6px;--rail-x:11px}*,:before,:after{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:var(--text);-webkit-text-size-adjust:100%}body{margin:0;font-size:17px;line-height:1.5;overflow-x:hidden}a{color:inherit}svg{max-width:100%}.page{max-width:1080px;padding:clamp(28px, 5vw, 56px) var(--gutter) 40px;margin:0 auto}.masthead{gap:16px;display:grid}.wordmark{font-family:var(--display);letter-spacing:-.02em;align-items:center;gap:.2em;margin:0;font-size:clamp(44px,8.5vw,96px);font-weight:600;line-height:.95;text-decoration:none;display:flex}.wordmark .mark{flex:none;width:.8em;height:.8em}.intro{max-width:44ch;color:var(--ink-soft);margin:0;font-size:clamp(18px,2vw,21px);line-height:1.45}.map-wrap{margin:clamp(24px,4vw,44px) 0 0}.map{width:100%;height:auto;display:block}.map--narrow{max-width:360px;display:none}.map .spoke{fill:none;stroke:var(--line);stroke-width:7px;stroke-linecap:round;stroke-linejoin:round}.map--narrow .spoke{stroke-width:6px}.map .station{fill:var(--paper);stroke:var(--line);stroke-width:4.5px;transition:fill .16s}.map--narrow .station{stroke-width:4px}.map .label{cursor:pointer}.map .label text{fill:var(--ink);font-family:var(--display);letter-spacing:.005em;font-size:24px;font-weight:600;transition:fill .16s}.map--narrow .label text{font-size:20px}.map .hub:hover .station,.map .hub.is-active .station,.map .hub:hover .label text,.map .hub.is-active .label text{fill:var(--line)}.map .interchange circle{fill:var(--paper);stroke:var(--ink);stroke-width:6px}.map--narrow .interchange circle{stroke-width:5px}.map .interchange .interchange-dot{fill:var(--ink);stroke:none}.map .hub{transition:opacity .22s}.map.has-active .hub:not(.is-active){opacity:.22}.lines{gap:clamp(40px,5vw,56px);margin-top:clamp(40px,6vw,72px);display:grid}.line{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px 48px;display:grid}.line-name{font-family:var(--display);letter-spacing:-.005em;align-items:center;gap:14px;margin:0;font-size:22px;font-weight:600;line-height:1.2;display:flex}.roundel{width:22px;height:22px;margin-left:calc(var(--rail-x) - 11px);background:var(--line);box-shadow:inset 0 0 0 4px var(--line), inset 0 0 0 7px var(--paper);border-radius:50%;flex:none}.stops{gap:26px;margin:0;padding:0 0 0 40px;list-style:none;display:grid;position:relative}.stops:before{content:"";left:calc(var(--rail-x) - var(--rail) / 2);width:var(--rail);background:var(--line);border-radius:0 0 3px 3px;position:absolute;top:14px;bottom:0}.stop-link{color:inherit;gap:4px;text-decoration:none;display:grid;position:relative}.stop-link:before{content:"";left:calc(var(--rail-x) - 40px - 9px);background:var(--paper);border:4px solid var(--line);border-radius:50%;width:18px;height:18px;transition:background-color .16s;position:absolute;top:5px}.stop-row{flex-wrap:wrap;align-items:baseline;gap:2px 14px;display:flex}.stop-name{font-family:var(--display);letter-spacing:-.01em;text-underline-offset:5px;font-size:clamp(24px,2.4vw,28px);font-weight:600;line-height:1.1;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:3px;transition:text-decoration-color .16s}.stop-domain{color:var(--ink-soft);font-size:15px;font-weight:500;line-height:1.2}.stop-sentence{max-width:56ch;color:var(--ink-soft);font-size:17px;line-height:1.5}.stop-link:hover .stop-name,.stop.is-active .stop-name{-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}.stop-link:hover:before,.stop.is-active .stop-link:before{background:var(--line)}.stop-link:focus-visible{outline:3px solid var(--line);outline-offset:8px;border-radius:2px}.colophon{border-top:1px solid var(--mist);color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;margin-top:clamp(56px,8vw,96px);padding-top:24px;font-size:15px;display:flex}.colophon-site{font-family:var(--display);color:var(--ink);align-items:center;gap:10px;font-size:18px;font-weight:600;text-decoration:none;display:flex}.colophon-site .mark{width:26px;height:26px}.colophon-portfolio{text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--mist);text-decoration-color:var(--mist);transition:color .16s,text-decoration-color .16s}.colophon-portfolio:hover{color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.colophon a:focus-visible,.wordmark--link:focus-visible,.error-action a:focus-visible{outline:3px solid var(--ink);outline-offset:4px;border-radius:2px}.masthead--small .wordmark{font-size:28px}.error{max-width:44ch;margin-top:clamp(48px,10vw,96px)}.map--error{width:300px;margin-bottom:20px}.map .station--empty{stroke:var(--ink-soft);stroke-dasharray:4 5;stroke-width:4px}.error-code{font-family:var(--display);letter-spacing:-.02em;margin:0 0 8px;font-size:clamp(64px,12vw,120px);font-weight:600;line-height:.95}.error-message{font-family:var(--display);margin:0 0 16px;font-size:28px;font-weight:600;line-height:1.15}.error-note{color:var(--ink-soft);margin:0 0 20px;font-size:18px}.error-action{margin:0}.error-action a{text-underline-offset:4px;font-weight:500;text-decoration-thickness:2px}@media (width>=900px){.line{grid-template-columns:320px minmax(0,1fr)}.line-name{padding-top:4px}}@media (width<=899px){.map--wide{display:none}.map--narrow{display:block}}@media (prefers-reduced-motion:no-preference){.map--wide .spoke,.map--narrow .spoke{stroke-dasharray:1;stroke-dashoffset:1px;animation:.9s cubic-bezier(.3,.1,.2,1) both draw-spoke;animation-delay:calc(.42s + var(--i) * .11s)}.map .hub .station,.map .hub .label{opacity:0;animation:.36s ease-out both appear;animation-delay:calc(1.12s + var(--i) * .11s)}.wordmark .mark-line{stroke-dasharray:1;stroke-dashoffset:1px;animation:.42s cubic-bezier(.3,.1,.2,1) both draw-spoke;animation-delay:calc(80ms + var(--m,0) * 70ms)}.wordmark .mark-line:nth-child(2){--m:1}.wordmark .mark-line:nth-child(3){--m:2}.wordmark .mark-stops{animation:.24s ease-out .36s both appear}.map--wide .interchange,.map--narrow .interchange{transform-box:fill-box;transform-origin:50%;animation:.42s cubic-bezier(.2,.8,.3,1.2) .22s both pop}.map.is-settled .spoke,.map.is-settled .hub .station,.map.is-settled .hub .label,.map.is-settled .interchange{animation:none}.map.is-settled .spoke{stroke-dashoffset:0}.map.is-settled .hub .station,.map.is-settled .hub .label,.map.is-settled .interchange{opacity:1}.map.is-settled .interchange{transform:none}@keyframes draw-spoke{to{stroke-dashoffset:0}}@keyframes appear{to{opacity:1}}@keyframes pop{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}}
