@font-face{font-family:Switzer;src:url(/fonts/switzer-400.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Switzer;src:url(/fonts/switzer-500.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Switzer;src:url(/fonts/switzer-600.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Switzer;src:url(/fonts/switzer-700.woff2)format("woff2");font-weight:700;font-display:swap}:root{--paper:#fff;--ink:#000;--ink-muted:#6b6b6b;--rule:#000;--rule-soft:#e3e3e3;--accent:#e6007e;--on-accent:#fff;--danger:#c4221a;--ease-enter:cubic-bezier(.05, .7, .1, 1);--ease-exit:cubic-bezier(.3, 0, .8, .15);--scrim:#0000003d;--surface-raised:#fff;--field-line:#cfcfcf;--lead-column:5.25rem;--gutter:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#000;--ink:#fff;--ink-muted:#9a9a9a;--rule:#fff;--rule-soft:#262626;--accent:#ff2e9a;--on-accent:#000;--danger:#ff6b61;--scrim:#0009;--surface-raised:#161616;--field-line:#3d3d3d}}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}html:has(dialog[open]){overflow:hidden}body{background:var(--paper);color:var(--ink);font-feature-settings:"tnum";-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-family:Switzer,-apple-system,system-ui,sans-serif;font-size:16px;line-height:1.4}button,input,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}:focus{outline:none}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}[tabindex="-1"]:focus-visible{outline:none}h2{margin:0;font-size:17px;font-weight:600}.app{max-width:560px;padding:calc(env(safe-area-inset-top) + 20px) var(--gutter) calc(env(safe-area-inset-bottom) + 40px);margin:0 auto}.trip{gap:18px;padding-bottom:32px;display:grid}.stop-header{grid-template-columns:auto 1fr;align-items:start;column-gap:4px;padding-bottom:32px;display:grid}.stop-back{width:44px;height:44px;color:var(--ink);place-items:center;margin:-5px 0 0 -12px;display:grid}.stop-heading{gap:4px;min-width:0;display:grid}.stop-title{letter-spacing:-.03em;outline:none;margin:0;font-size:28px;font-weight:600;line-height:1.2}.stop-subtitle{color:var(--ink-muted);flex-wrap:wrap;column-gap:16px;margin:0;font-size:15px;display:flex}.stop-directions{color:var(--ink);text-underline-offset:3px;margin:-12px 0;padding:12px 0;text-decoration:underline;text-decoration-thickness:1px}.trip-row{gap:2px;display:grid}.trip-label{color:var(--ink-muted);font-size:13px}.trip-label-row{justify-content:space-between;align-items:baseline;display:flex}.places-button{color:var(--ink);text-underline-offset:3px;margin:-12px 0;padding:12px 0;font-size:13px;text-decoration:underline;text-decoration-thickness:1px}.destinations{flex-wrap:wrap;align-items:baseline;column-gap:18px;display:flex}.destination{min-height:44px;color:var(--ink-muted);letter-spacing:-.03em;opacity:.55;transition:color .15s var(--ease-enter), opacity .15s var(--ease-enter);font-size:30px;font-weight:600;line-height:1.2}.destination[aria-checked=true]{color:var(--ink);opacity:1;cursor:default}.destination:disabled{opacity:.2;cursor:default}.destination:active:not(:disabled){opacity:.8;transition-duration:0s}.origin-button{align-items:center;gap:8px;min-height:44px;font-size:18px;font-weight:500;display:inline-flex}.origin-button svg,.origin-button.is-unset{color:var(--ink-muted)}.board-head{grid-template-columns:var(--lead-column) 1fr auto 52px;border-bottom:2px solid var(--rule);color:var(--ink-muted);padding-bottom:6px;font-size:13px;display:grid}.options{margin:0;padding:0;list-style:none}.option{border-bottom:1px solid var(--rule-soft)}.option-row{grid-template-columns:1fr 44px;align-items:center;column-gap:8px;padding:12px 0;display:grid}.option-toggle{grid-template-columns:var(--lead-column) 1fr auto;text-align:left;align-items:baseline;min-height:44px;display:grid}.leave-in{align-items:baseline;gap:3px;display:flex}.leave-number{letter-spacing:-.03em;font-size:34px;font-weight:600;line-height:1}.leave-unit{color:var(--ink-muted);font-size:13px}.option-lines{flex-wrap:wrap;align-items:baseline;gap:6px;font-size:20px;display:flex}.line{font-weight:700}.line-metro{background:var(--line-color,var(--ink));color:#fff;border-radius:999px;place-items:center;min-width:1.45em;height:1.45em;padding:0 .3em;font-size:.8em;line-height:1;display:inline-grid}.line-with-mark{align-items:baseline;gap:6px;display:inline-flex}.transfer{color:var(--ink-muted)}.arrive{font-size:20px}.option.is-best .leave-number,.option.is-best .leave-unit{color:var(--accent)}.option.is-unconfirmed .leave-number,.option.is-unconfirmed .option-lines,.option.is-unconfirmed .arrive{color:var(--ink-muted)}.mark{border:1.5px solid;border-radius:50%;flex:none;width:10px;height:10px;display:inline-block;transform:translateY(-1px)}.mark-confirmed{background:currentColor}.mark-assigned{background:linear-gradient(90deg,currentColor 50%,#0000 50%)}.mark-scheduled{border-radius:0}.mark-skipped{--stroke:transparent calc(50% - .75px), currentColor calc(50% - .75px) calc(50% + .75px), transparent calc(50% + .75px);background:linear-gradient(45deg, var(--stroke)), linear-gradient(-45deg, var(--stroke));border:0;border-radius:0}.option.is-skipped .line{text-decoration:line-through;text-decoration-thickness:2px}.bell{width:44px;height:44px;color:var(--ink);background-clip:content-box;border-radius:50%;place-items:center;padding:4px;display:grid}.bell[aria-pressed=true]{background-color:var(--accent);color:var(--on-accent)}.bell:disabled{opacity:.4}.steps{gap:10px;margin:0;padding:2px 52px 18px 0;list-style:none;display:grid}.steps.is-opening{animation:steps-open .22s var(--ease-enter)}@keyframes steps-open{0%{opacity:0;transform:translateY(-6px)}}.step{grid-template-columns:var(--lead-column) 1fr;font-size:15px;display:grid}.step-time{color:var(--ink-muted)}.step-text{gap:2px;display:grid}.step-detail{color:var(--ink-muted);align-items:baseline;gap:6px;font-size:13px;display:flex}.with-mark{align-items:flex-start;gap:6px;display:flex}.with-mark>.mark{margin-top:calc(.5lh - 5px);transform:none}.legend{color:var(--ink-muted);grid-template-columns:1fr 1fr;gap:4px 12px;margin:10px 0 0;padding:0;font-size:13px;list-style:none;display:grid}.approach{gap:2px;width:100%;margin-top:10px;display:grid}.approach-track{height:22px;margin-left:6px;position:relative}.approach-line{background:var(--ink-muted);height:1.5px;position:absolute;inset:15px 0 auto}.approach-track.is-far:before{content:"";border-top:1.5px dashed var(--ink-muted);width:14px;position:absolute;top:15px;right:100%}.approach-stop{background:var(--ink-muted);width:1.5px;height:8px;position:absolute;top:12px;transform:translate(-50%)}.approach-stop.is-boarding{border:2px solid var(--ink);background:var(--paper);border-radius:50%;width:12px;height:12px;top:10px;transform:translate(-100%)}.approach-vehicle{color:var(--ink);line-height:0;transition:left 1.6s cubic-bezier(.2,.8,.2,1);display:block;position:absolute;top:0;transform:translate(-50%)}.bus-body{animation:.6s step-end infinite bus-bob}@keyframes bus-bob{50%{transform:translateY(-1px)}}.wind-pixel{opacity:0;width:1px;height:1px;animation:wind-drift var(--gust-ms) steps(4, end) var(--delay-ms) infinite;background:currentColor;position:absolute;right:calc(100% - 2px)}@keyframes wind-drift{0%{opacity:1;transform:translate(0)}35%{opacity:0;transform:translate(var(--drift), var(--rise))}to{opacity:0}}.is-boosting .wind-pixel{animation-name:wind-boost;animation-duration:calc(var(--gust-ms) / 3)}@keyframes wind-boost{0%{opacity:1;transform:translate(0)}60%{opacity:0;transform:translate(calc(var(--drift) * 2.5), var(--rise))}to{opacity:0}}@media (prefers-reduced-motion:reduce){.bus-body,.wind-pixel{animation:none}.wind-pixel{display:none}.approach-vehicle{transition:none}}.head-to{min-height:44px;margin:-6px 0 6px var(--lead-column);color:var(--accent);justify-self:start;font-size:15px;font-weight:600}.headsign{color:var(--ink-muted);font-size:15px}.option-note{margin:-6px 52px 12px var(--lead-column);color:var(--ink-muted);font-size:13px}.reach-line{border-bottom:1px solid var(--rule-soft);color:var(--accent);padding:8px 0;font-size:13px;font-weight:600}.is-stop-board .board-head{grid-template-columns:var(--lead-column) 1fr auto}.is-stop-board .option-row{grid-template-columns:1fr}.is-stop-board .steps{padding-right:0}.option.is-missed .option-row{opacity:.45}.more-toggle{min-height:44px;color:var(--ink-muted);text-underline-offset:3px;font-size:13px;text-decoration:underline}.status.is-intro{max-width:34ch;color:var(--ink-muted);gap:10px;margin-top:4px;font-size:18px;line-height:1.45;display:grid}.status{color:var(--ink-muted);margin:14px 0 0;font-size:13px}.sheet{--sheet-inset:8px;inset:auto var(--sheet-inset) calc(env(safe-area-inset-bottom) + var(--sheet-inset));width:auto;max-width:560px;max-height:calc(100% - env(safe-area-inset-top) - 48px);background:var(--surface-raised);color:var(--ink);transform:translateY(calc(100% + var(--sheet-inset) + env(safe-area-inset-bottom)));transition:transform .24s var(--ease-exit);border:none;border-radius:32px;margin:0 auto;padding:0;position:fixed;overflow:hidden}.sheet[data-state=open]{transition:transform .3s var(--ease-enter);transform:none}.sheet[open]{flex-direction:column;display:flex}.sheet.is-dragging{transition:none}.sheet::backdrop{background:var(--scrim);opacity:0;transition:opacity .24s var(--ease-exit)}.sheet[data-state=open]::backdrop{opacity:1;transition:opacity .3s var(--ease-enter)}.sheet-tall{height:calc(100% - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px);max-height:none}.sheet-body{overscroll-behavior:contain;flex-direction:column;flex:auto;min-height:0;padding:0 20px 20px;display:flex;overflow-y:auto}.sheet-header{touch-action:none;cursor:grab;flex:none;justify-content:space-between;align-items:center;padding:28px 0 14px;display:flex;position:relative}.sheet-grip{background:var(--rule-soft);width:36px;height:4px;margin-left:-18px;position:absolute;top:8px;left:50%}.sheet-header h2{letter-spacing:-.01em;font-size:20px;font-weight:600}.editor-header{border-bottom:2px solid var(--rule);padding:20px 0 4px}.editor-header h2{position:absolute;left:50%;transform:translate(-50%)}.sheet-list{border-top:2px solid var(--rule);margin:0;padding:0;list-style:none}.sheet-row{border-bottom:1px solid var(--rule-soft);text-align:left;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:60px;padding:12px 0;display:flex}.sheet-row:active{opacity:.6}.sheet-row-text{display:grid}.sheet-row-label{letter-spacing:-.02em;font-size:22px;font-weight:600}.sheet-row-note{color:var(--ink-muted);font-size:13px}.sheet-row-icon{width:24px;color:var(--ink-muted);place-items:center;display:grid}.sheet-row[aria-checked=true] .sheet-row-icon{color:var(--ink)}.install-steps{border-top:2px solid var(--rule);counter-reset:step;gap:14px;margin:0;padding:18px 0 22px;font-size:18px;line-height:1.35;list-style:none;display:grid}.install-steps li{counter-increment:step;grid-template-columns:28px 1fr;display:grid}.install-steps li:before{content:counter(step);color:var(--ink-muted)}.install-steps+.sheet-row{border-top:1px solid var(--rule-soft)}.sheet-row-add{color:var(--ink-muted);letter-spacing:-.02em;font-size:22px;font-weight:600}.sheet-row-add .sheet-row-icon{font-size:26px;font-weight:400}.text-button{min-height:44px;color:var(--ink);padding:0 4px;font-size:16px}.text-button.strong{font-weight:600}.text-button.danger{color:var(--danger)}.editor{gap:10px}.editor-footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.editor-footer .text-button{white-space:nowrap;flex:none}.field{border:none;border-bottom:1px solid var(--field-line);width:100%;min-height:48px;transition:border-color .15s var(--ease-enter);background:0 0;border-radius:0;padding:8px 0;font-size:20px}.field:focus-visible{border-bottom-color:var(--ink);outline:none}.field[aria-invalid=true]{border-bottom-color:var(--danger)}.field::placeholder{color:var(--ink-muted)}.search{position:relative}.place-results{z-index:1000;background:var(--surface-raised);box-shadow:0 1px 0 var(--rule);margin:0;padding:0;list-style:none;position:absolute;inset:100% 0 auto}.place-result{border-bottom:1px solid var(--rule-soft);text-align:left;width:100%;min-height:48px;padding:10px 0}.map-wrap{flex:1;min-height:240px;position:relative}.map{background:var(--rule-soft);position:absolute;inset:0}.map .leaflet-tile-pane{filter:grayscale()contrast(1.05)}@media (prefers-color-scheme:dark){.map .leaflet-tile-pane{filter:grayscale()invert()brightness(.85)contrast(1.1)}}.map-pin{z-index:500;background:var(--accent);width:18px;height:18px;box-shadow:0 0 0 3px var(--paper);pointer-events:none;border-radius:50%;margin:-34px 0 0 -9px;position:absolute;top:50%;left:50%}.map-pin:after{content:"";background:var(--accent);width:2px;height:15px;position:absolute;top:19px;left:8px}.map-button{z-index:500;background:var(--paper);border:2px solid var(--rule);min-height:44px;padding:0 14px;font-size:15px;font-weight:600;position:absolute;bottom:28px;right:10px}.editor-hint{color:var(--ink-muted);margin:0;font-size:13px}@media (hover:hover){.destination:not(:disabled,[aria-checked=true]):hover,.origin-button:hover,.sheet-row:hover .sheet-row-label,.text-button:hover,.stop-back:hover,.places-button:hover,.stop-directions:hover{opacity:.75}.option-toggle:hover .line,.bell:hover{opacity:.7}}@media (width>=768px){:root{--lead-column:6.5rem;--gutter:24px}.app{max-width:688px;margin:0;padding:56px 64px 64px}.sheet,.sheet-tall{--sheet-inset:12px;inset:var(--sheet-inset) var(--sheet-inset) var(--sheet-inset) auto;width:440px;max-width:calc(100vw - 2 * var(--sheet-inset));height:auto;max-height:none;transform:translateX(calc(100% + var(--sheet-inset)));border-radius:20px;margin:0}.sheet-tall{width:560px}.sheet[data-state=open]{transform:none}.sheet-body{padding:0 24px 24px}.sheet-header{padding-top:22px}.editor-header{padding-top:14px}.sheet-grip{display:none}.sheet-header{touch-action:auto;cursor:auto}}@media (prefers-reduced-motion:reduce){.sheet,.sheet[data-state=open]{opacity:0;transition:opacity .2s linear;transform:none}.sheet[data-state=open]{opacity:1}.steps.is-opening{animation:none}.destination{transition:none}}
