@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,650;12..96,750&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Sans+JP:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a1120;--bg-2:#0d1627;--surface:#121c2f;--surface-2:#17233a;--surface-3:#1e2c47;--glass:#0d1525db;--line:#a0b9e61a;--line-strong:#a0b9e633;--text:#e9eef8;--text-2:#aeb9cd;--muted:#7f8ba3;--accent:#8b9dff;--accent-strong:#a9b7ff;--accent-soft:#8b9dff24;--accent-ink:#0a1120;--good:#0ca30c;--warn:#fab219;--serious:#ec835a;--crit:#d03b3b;--good-text:#4fd06a;--crit-text:#ff8a8a;--warn-text:#ffcb5c;--real:#3dbb6e;--modelled:#5b9cf0;--illustrative:#e0a33a;--pending:#8a94a6;--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s6:#008300;--s7:#9085e9;--s8:#e66767;--arrive:#3987e5;--depart:#d55181;--seq-1:#184f95;--seq-2:#256abf;--seq-3:#3987e5;--seq-4:#6da7ec;--seq-5:#9ec5f4;--div-neg:#e66767;--div-mid:#3a4356;--div-pos:#3987e5;--grid:#1f2a3f;--axis:#34425e;--font-display:"Bricolage Grotesque", "IBM Plex Sans", system-ui, sans-serif;--font-body:"IBM Plex Sans", "IBM Plex Sans JP", system-ui, -apple-system, "Segoe UI", sans-serif;--font-ja:"IBM Plex Sans JP", "IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-pill:999px;--shadow-float:0 10px 30px #00000073, 0 1px 0 #ffffff08 inset;--appbar-h:56px;--ease:cubic-bezier(.2, .7, .2, 1)}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5;overflow-x:hidden}html[lang=ja] body{font-family:var(--font-ja)}a{color:var(--accent-strong)}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.num,.tnum,table td,table th{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-size:.92em}.muted{color:var(--muted)}.ja-sub{color:var(--muted);font-family:var(--font-ja);margin-left:.4em;font-size:.9em;font-weight:400}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.display{font-family:var(--font-display);letter-spacing:-.01em}.appbar{z-index:1200;height:var(--appbar-h);align-items:center;gap:var(--sp-4);padding:0 var(--sp-4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#0a1120eb;display:flex;position:sticky;top:0}.brand{min-width:0;color:var(--text);align-items:center;gap:10px;text-decoration:none;display:flex}.brand-mark{flex:none;width:28px;height:28px}.brand-name{font-family:var(--font-display);letter-spacing:-.01em;white-space:nowrap;font-size:17px;font-weight:750}.brand-name .dot{color:var(--accent);margin:0 .3em}.brand-sub{color:var(--text-2);font-weight:500}.tabs{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);margin-left:var(--sp-4);gap:2px;padding:3px;display:flex}.tab{border-radius:var(--r-pill);color:var(--text-2);transition:background .15s var(--ease), color .15s var(--ease);align-items:center;gap:6px;padding:6px 14px;font-size:13.5px;font-weight:500;text-decoration:none;display:inline-flex}.tab svg{width:15px;height:15px}.tab:hover{color:var(--text);background:var(--surface-2)}.tab[aria-current=page]{background:var(--accent);color:var(--accent-ink);font-weight:600}.appbar-right{align-items:center;gap:var(--sp-2);margin-left:auto;display:flex}.fresh-chip{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);color:var(--text-2);white-space:nowrap;align-items:center;gap:7px;padding:5px 11px;font-size:12px;display:inline-flex}.fresh-dot{background:var(--good);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #0ca30c2e}.fresh-chip.stale .fresh-dot{background:var(--warn);box-shadow:0 0 0 3px #fab2192e}.lang-toggle{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);padding:3px;display:inline-flex}.lang-toggle button{border-radius:var(--r-pill);color:var(--text-2);cursor:pointer;background:0 0;border:0;padding:4px 10px;font-size:12px;font-weight:600}.lang-toggle button[aria-pressed=true]{background:var(--surface-3);color:var(--text)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5)}.card-title{font-family:var(--font-display);letter-spacing:-.005em;margin:0;font-size:16px;font-weight:650}.card-sub{color:var(--muted);margin:2px 0 0;font-size:12.5px}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.btn{border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface-2);color:var(--text);cursor:pointer;transition:background .15s var(--ease), border-color .15s var(--ease);align-items:center;gap:6px;padding:7px 13px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-3)}.btn-accent{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn-accent:hover{background:var(--accent-strong)}.btn-ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.icon-btn{border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-2);width:32px;height:32px;color:var(--text);cursor:pointer;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface-3)}.icon-btn svg{width:16px;height:16px}.seg{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-md);flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:5px 11px;font-size:12.5px;font-weight:500}.seg button:hover{color:var(--text)}.seg button[aria-pressed=true]{background:var(--surface-3);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong)}.switch{flex:none;width:34px;height:20px;display:inline-block;position:relative}.switch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.switch-track{background:var(--surface-3);border:1px solid var(--line-strong);transition:background .15s var(--ease);pointer-events:none;border-radius:99px;position:absolute;inset:0}.switch-track:after{content:"";background:var(--text-2);width:14px;height:14px;transition:transform .18s var(--ease), background .15s;border-radius:50%;position:absolute;top:2px;left:2px}.switch input:checked+.switch-track{background:var(--accent);border-color:var(--accent)}.switch input:checked+.switch-track:after{background:var(--accent-ink);transform:translate(14px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:2px}.pill{border-radius:var(--r-pill);letter-spacing:.01em;white-space:nowrap;color:var(--text);border:1px solid var(--line-strong);background:#ffffff0a;align-items:center;gap:6px;padding:2px 9px 2px 7px;font-size:11px;font-weight:600;display:inline-flex}.pill-dot{border-radius:50%;flex:none;width:7px;height:7px}.pill-real .pill-dot{background:var(--real)}.pill-modelled .pill-dot{background:var(--modelled)}.pill-illustrative .pill-dot{background:var(--illustrative);border-radius:1px;transform:rotate(45deg)scale(.85)}.pill-pending .pill-dot{border:1.5px dashed var(--pending);background:0 0}.pill-real{border-color:#3dbb6e66}.pill-modelled{border-color:#5b9cf066}.pill-illustrative{border-color:#e0a33a73}.pill-pending{color:var(--text-2);border-color:#8a94a673}.pill-legend{gap:var(--sp-2) var(--sp-4);flex-wrap:wrap;display:flex}.pill-legend-item{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.demo-badge{border-radius:var(--r-pill);letter-spacing:.06em;text-transform:uppercase;color:#1a1204;white-space:nowrap;background:repeating-linear-gradient(135deg,#e8b54a 0 6px,#dca33a 6px 12px);align-items:center;gap:5px;padding:2px 8px;font-size:10.5px;font-weight:700;display:inline-flex}.demo-badge svg{width:11px;height:11px}.status-tag{color:var(--text);white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.status-tag .sw{width:9px;height:9px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;flex:none}.asof{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.asof-flag{border-radius:var(--r-pill);border:1px solid var(--line-strong);color:var(--text-2);padding:1px 7px;font-size:10.5px;font-weight:600}.asof-flag.est{border-style:dashed}.asof-flag.stale{border-color:var(--warn);color:var(--warn-text)}.state-msg{min-height:40vh;color:var(--text-2);text-align:center;padding:var(--sp-8);place-items:center;display:grid}.state-msg.error{color:var(--crit-text)}.spinner{border:2.5px solid var(--surface-3);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;margin:0 auto 12px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.banner{border-radius:var(--r-md);color:var(--text);border:1px solid var(--line-strong);background:var(--surface-2);align-items:flex-start;gap:10px;padding:10px 14px;font-size:12.5px;display:flex}.banner svg{flex:none;width:16px;height:16px;margin-top:1px}.banner-warn{background:#fab21914;border-color:#fab21973}.banner-warn svg{color:var(--warn)}.page{max-width:1320px;padding:var(--sp-6) var(--sp-5) var(--sp-10);margin:0 auto}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap;display:flex}.page-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:28px;font-weight:750;line-height:1.15}.page-sub{color:var(--text-2);max-width:70ch;margin:6px 0 0}.site-foot{border-top:1px solid var(--line);color:var(--muted);padding:var(--sp-5);text-align:center;font-size:12px}.lg-row{color:var(--text-2);align-items:center;gap:8px;font-size:12px;line-height:1.35;display:flex}.lg-dot{border-radius:50%;flex:none;width:10px;height:10px}.lg-line{border-top:3px solid;border-radius:2px;flex:none;width:18px;height:0}.lg-ring{border:2px dashed var(--text-2);border-radius:50%;flex:none;width:12px;height:12px}@media (width<=900px){.brand-sub,.fresh-chip .fresh-text-long{display:none}}@media (width<=720px){:root{--appbar-h:52px}.appbar{gap:var(--sp-2);padding:0 var(--sp-3)}.brand-name{font-size:15px}.brand-name .brand-sub,.brand-name .dot{display:none}.tabs{margin-left:auto}.tab{padding:6px 9px}.tab .tab-label{display:none}.appbar-right{margin-left:0}.fresh-chip{display:none}.page{padding:var(--sp-4) var(--sp-4) var(--sp-8)}.page-title{font-size:22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.src-badge{border-radius:var(--r-pill);letter-spacing:.04em;white-space:nowrap;border:1px solid;align-items:center;gap:5px;padding:2px 8px;font-size:10.5px;font-weight:700;display:inline-flex}.src-badge.real{color:#b8f0c7;background:#3dbb6e24;border-color:#3dbb6e8c}.src-badge.mixed{color:#d8ddff;background:linear-gradient(90deg,#3dbb6e29,#e8b54a29);border-color:#a0b9e666}.src-dot{background:var(--real);border-radius:50%;width:7px;height:7px}.src-badge.mixed .src-dot{background:linear-gradient(90deg, var(--real) 50%, #e8b54a 50%)}.src-date{opacity:.85;font-weight:500}.saved-data-note{z-index:1300;border-radius:var(--r-pill);border:1px solid var(--warn);background:var(--surface);max-width:calc(100vw - 32px);color:var(--warn-text);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;padding:5px 12px;font-size:12px;position:fixed;bottom:12px;left:50%;overflow:hidden;transform:translate(-50%)}.itin{border-left:2px solid var(--line-strong);color:var(--text-2);text-align:left;gap:4px;margin:6px 0 2px;padding:0 0 0 10px;font-size:12px;list-style:none;display:grid}.itin li{flex-wrap:wrap;align-items:baseline;gap:2px 7px;display:flex}.itin-time{color:var(--text);font-weight:600}.itin-mode{border:1px solid;border-radius:99px;padding:0 6px;font-size:10.5px}.itin-route{color:var(--text)}.itin-walk{color:var(--muted);font-style:italic}details.itin-more summary{cursor:pointer;color:var(--accent-strong);font-size:11.5px;list-style:none}details.itin-more summary::-webkit-details-marker{display:none}details.itin-more summary:before{content:"▸ "}details.itin-more[open] summary:before{content:"▾ "}
