@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-400-normal-FfmJh7DR.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-400-normal-DPp7N0cD.woff)format("woff")}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-next-latin-700-normal-Dpiyiu63.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-700-normal-C2qZD_Q9.woff)format("woff")}@font-face{font-family:B612;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/b612-latin-700-normal-BinQrnoB.woff2)format("woff2"),url(/assets/b612-latin-700-normal-B_Snq1wd.woff)format("woff")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--paper:var(--lightningcss-light,#f3eee4)var(--lightningcss-dark,#0e1626);--card:var(--lightningcss-light,#fffdf8)var(--lightningcss-dark,#172338);--ink:var(--lightningcss-light,#14213d)var(--lightningcss-dark,#f1ebe0);--ink-soft:var(--lightningcss-light,#55606e)var(--lightningcss-dark,#a9b3c2);--rule:var(--lightningcss-light,#d8cfbf)var(--lightningcss-dark,#2a3852);--sign:var(--lightningcss-light,#14213d)var(--lightningcss-dark,#16233b);--sign-ink:#f6f1e7;--sign-soft:#b9c3d6;--accent:#e47f0b;--focus:var(--lightningcss-light,#1d5faf)var(--lightningcss-dark,#8ab8ff);--on-time:var(--lightningcss-light,#1e7a4c)var(--lightningcss-dark,#5fd39a);--on-time-bg:var(--lightningcss-light,#ddf1e5)var(--lightningcss-dark,#12392a);--late:var(--lightningcss-light,#b42318)var(--lightningcss-dark,#ff8a7a);--late-bg:var(--lightningcss-light,#fde4e1)var(--lightningcss-dark,#44201c);--early:var(--lightningcss-light,#1d5faf)var(--lightningcss-dark,#8ab8ff);--early-bg:var(--lightningcss-light,#dfeafb)var(--lightningcss-dark,#1a2c4c);--unknown:var(--lightningcss-light,#5d6470)var(--lightningcss-dark,#b8bfc9);--unknown-bg:var(--lightningcss-light,#e8e5de)var(--lightningcss-dark,#253047);--notice:var(--lightningcss-light,#6b4e00)var(--lightningcss-dark,#ffd88a);--notice-bg:var(--lightningcss-light,#fff4d6)var(--lightningcss-dark,#3a2f12);--backdrop:var(--lightningcss-light,#14213d73)var(--lightningcss-dark,#0009);--shadow:var(--lightningcss-light,0 1px 2px #14213d14)var(--lightningcss-dark,0 1px 2px #0006);--sans:"Atkinson Hyperlegible Next", system-ui, sans-serif;--figures:"B612", system-ui, sans-serif;--radius:16px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:112.5%}body{background:var(--paper);min-height:100dvh;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;line-height:1.4}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{flex-direction:column;max-width:34rem;min-height:100dvh;margin:0 auto;display:flex}.top{background:var(--sign);color:var(--sign-ink);padding:calc(env(safe-area-inset-top) + .9rem) 1rem 1.1rem;border-radius:0 0 22px 22px}.tabs{background:#ffffff14;border:0;border-radius:14px;grid-template-columns:1fr 1fr;gap:.35rem;min-width:0;margin:0;padding:.3rem;display:grid}.tab{min-height:3.6rem;color:var(--sign-soft);text-align:center;cursor:pointer;background:0 0;border:0;border-radius:11px;flex-direction:column;justify-content:center;align-items:center;padding:.45rem .6rem;transition:background-color .16s,color .16s;display:flex}.tab[aria-pressed=true]{background:var(--sign-ink);color:#14213d}.tab-label{font-size:1.15rem;font-weight:700}.tab-towards{font-size:.8rem;line-height:1.2}.route{margin:1rem 0 0;padding-left:1.8rem;position:relative}.route:before{content:"";background:var(--accent);border-radius:2px;width:4px;position:absolute;top:.75rem;bottom:.75rem;left:.5rem}.route-stop{flex-direction:column;margin:0;display:flex;position:relative}.route-stop+.route-stop{margin-top:.7rem}.route-stop:before{content:"";border:3px solid var(--accent);background:var(--sign);border-radius:50%;width:.9rem;height:.9rem;position:absolute;top:.42rem;left:-1.62rem}.route-stop--to:before{background:var(--accent)}.route-name{font-size:1.25rem;font-weight:700;line-height:1.25}.route-town{color:var(--sign-soft);font-size:.9rem}.board{flex-direction:column;flex:1;gap:.9rem;padding:1rem 1rem 1.5rem;display:flex}.loading,.empty,.failure p{text-align:center;color:var(--ink-soft);margin:1.5rem 0;font-size:1.1rem}.failure{text-align:center}.notice{background:var(--notice-bg);color:var(--notice);border-radius:12px;align-items:flex-start;gap:.6rem;margin:0;padding:.75rem .9rem;font-weight:700;display:flex}.notice svg,.alert summary svg{flex:none;margin-top:.1rem}.alerts{flex-direction:column;gap:.5rem;display:flex}.alert{background:var(--notice-bg);color:var(--notice);border-radius:12px}.alert summary{cursor:pointer;align-items:flex-start;gap:.6rem;padding:.75rem .9rem;font-weight:700;list-style:none;display:flex}.alert summary::-webkit-details-marker{display:none}.alert-text{white-space:pre-line;color:var(--ink);margin:0;padding:0 .9rem .9rem 2.6rem}.gone{border:2px dashed var(--rule);color:var(--ink-soft);border-radius:12px;align-items:center;gap:.6rem;margin:0;padding:.6rem .9rem;display:flex}.cards{flex-direction:column;gap:.9rem;display:flex}.card{border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);border:1px solid var(--rule);padding:1rem 1.1rem .4rem;animation:.32s cubic-bezier(.2,.9,.3,1) both rise}.card:nth-child(2){animation-delay:60ms}.card:nth-child(3){animation-delay:.12s}.card-head{align-items:center;gap:.6rem;display:flex}.line-badge{min-width:3.1rem;font-family:var(--figures);border-radius:8px;flex:none;place-items:center;padding:.1rem .5rem;font-size:1rem;font-weight:700;display:inline-grid}.card-headsign{color:var(--ink-soft);font-weight:700}.card-when{flex-wrap:wrap;align-items:baseline;gap:.2rem .9rem;margin-top:.35rem;display:flex}.card-time{font-family:var(--figures);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:2.3rem;font-weight:700;line-height:1.1}.card--next .card-time{font-size:3.2rem}.card-countdown{font-size:1.2rem;font-weight:700}.card--next .card-countdown{font-size:1.35rem}.tone-canceled .card-time{color:var(--ink-soft);text-decoration:line-through;text-decoration-thickness:3px}.card-status{flex-wrap:wrap;align-items:center;gap:.4rem .75rem;margin:.5rem 0 0;display:flex}.status-pill{border-radius:999px;padding:.2rem .75rem;font-size:1.05rem;font-weight:700;display:inline-block}.status-pill--on-time{background:var(--on-time-bg);color:var(--on-time)}.status-pill--late,.status-pill--canceled{background:var(--late-bg);color:var(--late)}.status-pill--early{background:var(--early-bg);color:var(--early)}.status-pill--unknown{background:var(--unknown-bg);color:var(--unknown)}.card-planned{color:var(--ink-soft);font-family:var(--figures);font-size:.95rem}.card-where{margin:.7rem 0 0;font-size:1.05rem}.card-note{color:var(--notice);margin:.5rem 0 0;font-weight:700}.card-arrival{color:var(--ink-soft);margin:.4rem 0 0}.card-toggle{border:0;border-top:1px solid var(--rule);width:100%;min-height:3rem;color:var(--focus);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;margin-top:.6rem;font-weight:700;display:flex}.chevron{transition:transform .2s;display:inline-flex}.chevron.is-open{transform:rotate(180deg)}.trip{--line:var(--accent);margin:.2rem 0 .8rem;padding:0;list-style:none}.trip-town{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:.55rem 0 .1rem 2.1rem;font-size:.8rem;font-weight:700}.trip-stop{grid-template-columns:1fr auto;align-items:center;gap:.75rem;min-height:2.6rem;padding-left:2.1rem;display:grid;position:relative}.trip-stop:before{content:"";background:var(--line);width:6px;position:absolute;top:0;bottom:0;left:.62rem}.trip-row:first-child .trip-stop:before{top:50%}.trip-row:last-child .trip-stop:before{bottom:50%}.trip-dot{border:4px solid var(--line);background:var(--card);border-radius:50%;width:1.1rem;height:1.1rem;margin-top:-.55rem;position:absolute;top:50%;left:.3rem}.trip-name{flex-direction:column;display:flex}.trip-label{color:var(--focus);font-size:.85rem;font-weight:700}.trip-time{font-family:var(--figures);font-variant-numeric:tabular-nums;font-weight:700}.is-served{color:var(--ink-soft)}.is-served:before,.is-served .trip-dot{filter:grayscale();opacity:.45}.is-skipped .trip-name{text-decoration:line-through}.is-mine .trip-name{font-size:1.1rem;font-weight:700}.is-mine .trip-dot{background:var(--line);width:1.5rem;height:1.5rem;box-shadow:0 0 0 3px var(--card);margin-top:-.75rem;left:.1rem}.trip-bus{align-items:center;gap:.6rem;min-height:2.6rem;padding-left:.05rem;font-weight:700;display:flex;position:relative}.trip-bus:before{content:"";background:var(--line);z-index:0;width:6px;position:absolute;top:0;bottom:0;left:.62rem}.trip-bus-icon{z-index:1;background:var(--line);width:2.2rem;height:2.2rem;color:var(--line-ink,#fff);box-shadow:0 0 0 3px var(--card);border-radius:50%;place-items:center;margin-left:-.15rem;animation:2s ease-in-out infinite pulse;display:grid;position:relative}.bottom{padding:.6rem 1rem calc(env(safe-area-inset-bottom) + .7rem);background:color-mix(in srgb, var(--paper) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--rule);position:sticky;bottom:0}.freshness{text-align:center;color:var(--ink-soft);margin:0 0 .45rem;font-size:.9rem}.bottom-actions{gap:.6rem;display:flex}.button{border:2px solid var(--ink);cursor:pointer;background:0 0;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;min-height:3.1rem;padding:.5rem 1.1rem;font-size:1.05rem;font-weight:700;display:inline-flex}.button--primary{border-color:var(--sign);background:var(--sign);color:var(--sign-ink)}.button:disabled{opacity:.75}.bottom-actions .button--primary{flex:1}.icon-button{border:2px solid var(--rule);background:var(--card);cursor:pointer;border-radius:12px;flex:none;place-items:center;width:3.1rem;height:3.1rem;display:grid}.spin{animation:.9s linear infinite spin;display:inline-flex}.sheet-layer{z-index:20;flex-direction:column;justify-content:flex-end;align-items:center;display:flex;position:fixed;inset:0}.sheet-backdrop{background:var(--backdrop);border:0;animation:.2s ease-out fade-in;position:absolute;inset:0}.sheet{background:var(--paper);width:100%;max-width:34rem;max-height:92dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:20px 20px 0 0;flex-direction:column;animation:.28s cubic-bezier(.2,.9,.3,1) slide-up;display:flex;position:relative;box-shadow:0 -10px 30px #00000040}.sheet:focus{outline:none}.sheet-header{border-bottom:2px solid var(--rule);justify-content:space-between;align-items:center;margin:0 1rem;padding:.7rem 0 .5rem .25rem;display:flex}.sheet-title{margin:0;font-size:1.35rem}.sheet-header .icon-button{background:0 0;border:0}.sheet-body{overscroll-behavior:contain;padding:1rem 1.25rem 1.25rem;overflow-y:auto}.field{margin:0 0 1.4rem}.field-label{color:var(--ink-soft);margin:0 0 .25rem;font-weight:700;display:block}.field-value{margin:0 0 .6rem;font-size:1.15rem}.about{color:var(--ink-soft);margin:1.6rem 0 0;font-size:.85rem}.picker{flex-direction:column;gap:.6rem;display:flex}.search{border:2px solid var(--ink);background:var(--card);border-radius:12px;align-items:center;gap:.5rem;padding:0 .8rem;display:flex}.search input{min-width:0;min-height:3.1rem;font:inherit;color:var(--ink);background:0 0;border:0;flex:1;font-size:1.1rem}.search input:focus{outline:none}.search:focus-within{outline:3px solid var(--focus);outline-offset:2px}.hint{color:var(--ink-soft);margin:0}.picker-results{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.picker-result{border:1px solid var(--rule);background:var(--card);text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;align-items:flex-start;width:100%;min-height:3.2rem;padding:.5rem .8rem;display:flex}.picker-name{font-weight:700}.picker-town{color:var(--ink-soft);font-size:.9rem}.crash{text-align:center;max-width:30rem;margin:20vh auto 0;padding:1.5rem}.crash-title{font-size:1.3rem;font-weight:700}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes fade-in{0%{opacity:0}}@keyframes slide-up{0%{transform:translateY(100%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{box-shadow:0 0 0 7px color-mix(in srgb, var(--line) 30%, transparent)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
