:root{--board-bg:#000;--tile-bg:#101010;--tile-bg-band:#171717;--tile-bg-active:#232323;--flap-face:#0a0a0a;--flap-face-active:#1c1c1c;--rule:#2e2e2e;--ink:#ffc93c;--amber:#fff1a8;--ink-dim:#e0b347;--header-ink:#c39a3d;--traffic-faster:#7f9a6e;--traffic-usual:#b59a4c;--traffic-slower:#b0685a}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--board-bg);color:var(--ink);-webkit-tap-highlight-color:transparent;font-family:IBM Plex Mono,ui-monospace,monospace}.board{background:var(--board-bg);flex-direction:column;height:100dvh;display:flex;overflow:hidden}.top-bar{border-bottom:2px solid var(--rule);flex:none;display:flex}.tab-bar{flex:auto;min-width:0;display:flex}.info-button{background:var(--tile-bg);width:2.5rem;color:var(--header-ink);border:none;border-left:1px solid var(--rule);cursor:pointer;flex:none;font-family:Oswald,sans-serif;font-size:1rem}.info-button:hover,.info-button:focus-visible{color:var(--amber)}.tab{background:var(--tile-bg);color:var(--header-ink);border:none;border-right:1px solid var(--rule);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;flex:1 1 0;padding:.9rem .5rem;font-family:Oswald,sans-serif;font-size:.75rem;position:relative}.tab:last-child{border-right:none}.tab--active{background:var(--tile-bg-active);color:var(--amber)}.tab--active:after{content:"";background:var(--amber);height:3px;position:absolute;inset:auto 0 0}.board-main{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:auto;padding:0 .5rem .5rem;overflow-y:auto}.board-empty,.board-error{text-align:center;letter-spacing:.05em;color:var(--ink-dim);padding:2rem 1rem;font-family:Oswald,sans-serif}.board-list{--mid:6.75rem;flex-direction:column;gap:2px;width:100%;max-width:960px;margin-inline:auto;display:flex}.board-header{grid-template-columns:1fr var(--mid) 1fr;color:var(--header-ink);letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid var(--rule);z-index:1;background:var(--board-bg);gap:.6rem;margin-bottom:2px;padding:.35rem .75rem .45rem calc(.75rem + 4px);font-family:Oswald,sans-serif;font-size:.68rem;display:grid;position:sticky;top:0}.trip{color:inherit;background:var(--tile-bg);content-visibility:auto;contain-intrinsic-size:auto 112px;border-left:4px solid #0000;padding:.6rem .75rem;text-decoration:none;display:block}.trip--band{background:var(--tile-bg-band)}.trip:hover,.trip:focus-visible{background:var(--tile-bg-active);outline:none}.trip:focus-visible{border-left-color:var(--ink)}.trip--recommended{background:var(--tile-bg-active);border-left-color:var(--amber)}.trip--underway{opacity:.6;border-left-style:dashed;border-left-color:var(--header-ink)}.trip__legs{grid-template-columns:1fr var(--mid) 1fr;align-items:start;gap:.6rem;display:grid}.trip__leg{min-width:0;overflow:hidden}.trip__leg:last-child{text-align:right}.trip__route{align-items:center;gap:.4rem;display:flex}.trip__leg:last-child .flap-text{justify-content:flex-end}.trip__sub{letter-spacing:.04em;color:var(--ink-dim);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.3rem;margin-top:.2rem;font-family:Oswald,sans-serif;font-size:.72rem;display:flex;overflow:hidden}.trip__leg:last-child .trip__sub{justify-content:flex-end}.trip__meta{grid-template-columns:1fr var(--mid) 1fr;border-top:1px solid var(--rule);align-items:center;gap:.6rem;margin-top:.5rem;padding-top:.45rem;display:grid}.trip__train{white-space:nowrap;min-width:0;overflow:hidden}.trip__status{min-width:0;color:inherit;white-space:nowrap;grid-column:3;justify-self:end;align-items:center;text-decoration:none;display:inline-flex;overflow:hidden}.trip__times{letter-spacing:.04em;min-width:0;color:var(--ink-dim);white-space:nowrap;grid-column:2;font-family:Oswald,sans-serif;font-size:.72rem}.only-narrow{display:none}.status-short{display:contents}.status-full{display:none}@media (width>=760px){.status-short{display:none}.status-full{display:contents}}.trip__days{letter-spacing:.06em;color:var(--header-ink);grid-column:3;justify-self:end;font-family:Oswald,sans-serif;font-size:.72rem}.trip__leg:first-child .flap-tile__face{color:var(--amber)}.trip--underway .trip__leg:first-child .flap-tile__face{color:var(--header-ink)}.flap-text{gap:1px;display:inline-flex}.flap-tile{perspective:240px;width:.72em;display:inline-block}.flap-tile__face{background:var(--flap-face);text-align:center;border-radius:1px;padding:.05em 0;font-weight:700;display:block;position:relative}.flap-tile__face:after{content:"";background:#00000038;height:1px;position:absolute;inset:50% 1px auto}.trip--recommended .flap-tile__face{background:var(--flap-face-active)}.flap-tile--flipping .flap-tile__face{will-change:transform;transform-style:preserve-3d;animation:.36s ease-in-out flap}@keyframes flap{0%{transform:rotateX(0)}50%{transform:rotateX(-90deg)}51%{transform:rotateX(90deg)}to{transform:rotateX(0)}}@media (prefers-reduced-motion:reduce){.flap-tile--flipping .flap-tile__face{animation:none}}@media (width<=560px){.board-list{--mid:6.1rem}.board-main{padding:.35rem}.board-header{letter-spacing:.1em;gap:.4rem;padding:.3rem .6rem .4rem calc(.6rem + 4px);font-size:.6rem}.trip{padding:.55rem .6rem}.trip__legs{gap:.4rem}.flap-tile{width:.66em;font-size:.95rem}.trip__sub{font-size:.64rem}.trip__meta{gap:.4rem}.trip__meta .flap-tile{width:.62em;font-size:.86rem}.trip__times{font-size:.64rem}.only-wide{display:none}.only-narrow{display:contents}}@media (width<=380px){.board-list{--mid:5.5rem}.trip__meta{gap:.25rem}.flap-tile{width:.62em;font-size:.86rem}}.board-header__col{align-items:center;gap:.3rem;display:flex}.board-header__col:last-child{justify-content:flex-end}.board-header__col svg{flex:none}.trip__status{gap:.3rem}.place-bar{padding:.5rem .5rem calc(.5rem + env(safe-area-inset-bottom));border-top:2px solid var(--rule);background:var(--tile-bg);flex:none;grid-template-columns:1fr;gap:.4rem;display:grid}@media (width>=640px){.place-bar{grid-template-columns:1fr 1fr;gap:.75rem}}.place-field{min-width:0}.place-field__row{align-items:center;gap:.4rem;display:flex}.place-field__label{color:var(--header-ink);flex:none;display:flex}.place-field__input{background:var(--flap-face);min-width:0;color:var(--ink);border:1px solid var(--rule);border-radius:2px;flex:auto;padding:.45rem .6rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:16px}.place-field__input::placeholder{color:var(--header-ink);opacity:.7}.place-field__input:focus{border-color:var(--ink-dim);background:var(--flap-face-active);outline:none}.place-field__locate{background:var(--flap-face);color:var(--header-ink);border:1px solid var(--rule);cursor:pointer;border-radius:2px;flex:none;padding:.4rem;display:flex}.place-field__locate:disabled{opacity:.35;cursor:not-allowed}.place-field__locate--active{background:var(--tile-bg-active);color:var(--amber);border-color:var(--ink-dim)}.place-field__note{color:var(--ink-dim);text-overflow:ellipsis;white-space:nowrap;margin:.25rem 0 0 calc(20px + .4rem);font-size:.72rem;overflow:hidden}.transit-badges{align-items:center;gap:2px;display:inline-flex}.line-badge{letter-spacing:0;border:1.5px solid;border-radius:999px;justify-content:center;align-items:center;min-width:1.35em;height:1.35em;padding:0 .3em;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.68rem;font-weight:700;line-height:1;display:inline-flex}.line-badge--walk{font-size:.58rem}.board-credit{text-align:right;letter-spacing:.08em;text-transform:uppercase;color:var(--header-ink);margin:.5rem 0 0;font-family:Oswald,sans-serif;font-size:.65rem}.line-badge--subway{background:var(--line-bg);width:15px;min-width:15px;height:15px;color:var(--line-fg);border:0;border-radius:50%;padding:0;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:10px;font-weight:700;line-height:1}.sheet-backdrop{z-index:10;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.link-out__sheet{width:100%;max-width:480px;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));background:var(--tile-bg);border-top:2px solid var(--ink-dim)}.link-out__title{letter-spacing:.04em;color:var(--amber);margin:0 0 1rem;font-family:Oswald,sans-serif;font-size:1rem}.link-out__actions{gap:.75rem;display:flex}.link-out__button{background:var(--flap-face);color:var(--header-ink);border:1px solid var(--rule);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:2px;flex:1 1 0;padding:.75rem;font-family:Oswald,sans-serif;font-size:.85rem}.link-out__button--primary{background:var(--tile-bg-active);color:var(--amber);border-color:var(--ink-dim)}.info-panel{overscroll-behavior:contain;width:100%;max-width:560px;max-height:85dvh;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));background:var(--tile-bg);border-top:2px solid var(--ink-dim);color:var(--ink-dim);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.8rem;line-height:1.5;overflow-y:auto}.info-panel__header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.info-panel h2{letter-spacing:.06em;text-transform:uppercase;color:var(--amber);margin:0;font-family:Oswald,sans-serif;font-size:1.1rem}.info-panel h3{letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin:1rem 0 .2rem;font-family:Oswald,sans-serif;font-size:.8rem}.info-panel p{margin:.3rem 0 0}.info-panel__close{background:var(--flap-face);color:var(--header-ink);border:1px solid var(--rule);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:2px;padding:.4rem .8rem;font-family:Oswald,sans-serif;font-size:.75rem}.trip-detail{z-index:5;overscroll-behavior:contain;background:var(--board-bg);padding:0 1rem calc(1.5rem + env(safe-area-inset-bottom));color:var(--ink);font-family:Oswald,sans-serif;position:fixed;inset:0;overflow-y:auto}.trip-detail>*{max-width:640px;margin-inline:auto}.trip-detail__header{z-index:1000;background:var(--board-bg);border-bottom:1px solid var(--rule);align-items:center;gap:.6rem;padding:.75rem 0;display:flex;position:sticky;top:0}.trip-detail__nav{background:var(--tile-bg);color:var(--ink);border:1px solid var(--rule);font:inherit;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;flex:none;align-items:center;gap:.25rem;padding:.4rem .55rem;font-size:.85rem;display:inline-flex}.trip-detail__nav:hover:not(:disabled),.trip-detail__nav:focus-visible{color:var(--amber);border-color:var(--ink-dim)}.trip-detail__nav:disabled{opacity:.35;cursor:default}.trip-detail__title{letter-spacing:.06em;text-transform:uppercase;min-width:0;color:var(--amber);flex:auto;margin:0;font-size:1.1rem}.trip-detail__total-time{color:var(--ink);margin-left:.4rem}.trip-detail__step{flex:none;gap:.4rem;display:flex}.trip-detail__when{color:var(--header-ink);margin-left:.6rem;font-size:.8rem}.detail-timeline{--rail-x:.85rem;margin:1rem auto 0;padding:0;list-style:none;position:relative}.detail-stop,.detail-segment,.detail-day{padding-left:2.5rem;position:relative}.detail-segment:before,.detail-stop:before,.detail-day:before{content:"";left:var(--rail-x);border-left:2px solid var(--ink-dim);position:absolute;top:0;bottom:0}.detail-segment--buffer:before{border-left-style:dashed;border-left-color:var(--header-ink)}.detail-stop:first-child:before{top:50%}.detail-stop--final:before{bottom:50%}.detail-stop{align-items:center;gap:.75rem;min-height:2.4rem;padding-block:.3rem;display:flex}.detail-stop__marker{left:calc(var(--rail-x) + 1px);background:var(--board-bg);border:2px solid var(--amber);width:1.75rem;height:1.75rem;color:var(--amber);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translate(-50%,-50%)}.detail-stop--final .detail-stop__marker{background:var(--amber);color:var(--board-bg)}.detail-day{color:var(--header-ink);letter-spacing:.1em;text-transform:uppercase;align-items:center;padding-block:.5rem;font-size:.75rem;display:flex}.detail-day__label{flex:auto;align-items:center;gap:.6rem;display:flex}.detail-day__label:before,.detail-day__label:after{content:"";border-top:2px dotted var(--header-ink);flex:auto}.detail-stop__time{color:var(--amber);min-width:4.5rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:1.05rem}.detail-stop__place{letter-spacing:.04em;font-size:1rem}.detail-segment{color:var(--ink-dim);letter-spacing:.03em;margin-left:0;padding-block:.6rem .9rem;font-size:.85rem}.detail-segment__line{justify-content:space-between;align-items:center;gap:1rem;margin-top:.2rem;display:flex}.detail-segment__line--title{color:var(--ink);margin-top:0}.detail-segment--buffer .detail-segment__line{color:var(--header-ink)}.detail-segment__content{align-items:center;gap:.4rem;min-width:0;display:flex}.detail-link{flex:none}.detail-train-link{color:inherit;text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.detail-train-link:hover,.detail-train-link:focus-visible{color:var(--amber);text-decoration-style:solid}.detail-link{color:var(--amber);letter-spacing:.06em;text-transform:uppercase;font-size:.8rem;text-decoration:none}.detail-link:hover,.detail-link:focus-visible{text-decoration:underline}.trip-detail__total{border-top:1px solid var(--rule);color:var(--ink);letter-spacing:.04em;align-items:center;gap:.4rem;margin-top:1rem;padding-top:.75rem;display:flex}.search-bar{border-bottom:1px solid var(--rule);background:var(--tile-bg);color:var(--header-ink);flex-wrap:wrap;flex:none;align-items:center;gap:.4rem;padding:.5rem;display:flex}.search-bar__label{display:flex}.search-bar__input{background:var(--flap-face);min-width:0;color:var(--ink);border:1px solid var(--rule);border-radius:2px;flex:12rem;padding:.45rem .6rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:16px}.search-bar__input::placeholder{color:var(--header-ink);opacity:.7}.search-bar__input::-webkit-search-cancel-button{display:none}.search-bar__clear{border:1px solid var(--rule);width:2rem;height:2rem;color:var(--header-ink);cursor:pointer;background:0 0;flex:none;font-size:1.1rem}.search-bar__clear:hover,.search-bar__clear:focus-visible{color:var(--amber)}.search-bar__chips{gap:.4rem;display:flex}@media (width<=639px){.search-bar__chips{flex:100%}.search-chip{flex:1 1 0}}.search-chip{background:var(--flap-face);color:var(--header-ink);border:1px solid var(--rule);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:2px;padding:.4rem .7rem;font-family:Oswald,sans-serif;font-size:.75rem}.search-chip:hover,.search-chip:focus-visible{color:var(--amber)}.search-chip--on{background:var(--tile-bg-active);border-color:var(--amber);color:var(--amber)}.traffic-dot{border-radius:50%;flex:none;width:.6rem;height:.6rem}.traffic-dot--faster{background:var(--traffic-faster)}.traffic-dot--usual{background:var(--traffic-usual)}.traffic-dot--slower{background:var(--traffic-slower)}.trip-map{border:1px solid var(--rule);background:var(--tile-bg);height:280px;margin-top:1rem}.trip-map .leaflet-tile-pane{filter:invert()hue-rotate(180deg)grayscale(.6)brightness(.7)contrast(1.1)}.trip-map .leaflet-control-attribution{color:var(--header-ink);background:#0009;font-family:Oswald,sans-serif;font-size:.65rem}.trip-map .leaflet-control-attribution a{color:var(--ink-dim)}
