*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.55 var(--font-body);
  background-image:radial-gradient(circle,#FFE3EE 1.5px,transparent 1.6px);background-size:22px 22px;
  padding:var(--safe-t) var(--safe-r) 0 var(--safe-l);min-height:100vh;display:flex;flex-direction:column}
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.2;margin:0 0 var(--s2);letter-spacing:.01em}
html[lang="zh-CN"] h1,html[lang="zh-CN"] h2,html[lang="zh-CN"] h3{font-weight:400}
h1{font-size:1.6rem}h2{font-size:1.3rem}h3{font-size:1.1rem}
p{margin:0 0 var(--s3)}
a{color:var(--link);text-underline-offset:3px}
img,svg{max-width:100%}
:focus-visible{outline:3px solid var(--link);outline-offset:3px;border-radius:6px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:8px;top:-60px;background:var(--surface);border:var(--border);border-radius:var(--radius-s);padding:var(--s2) var(--s4);z-index:2000;color:var(--text)}
.skip:focus{top:8px}
.muted{color:var(--muted);font-size:.9rem}
[hidden]{display:none!important}
.contrail{border:0;border-top:4px dotted var(--sky);margin:var(--s4) 0}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

::selection{background:var(--pink);color:var(--text)}
html{scrollbar-color:var(--pink-deep) var(--bg)}
body{font-variant-numeric:lining-nums}
.times,.facts dd,.route-line .code,.fi-route{font-variant-numeric:tabular-nums}
.defs-only{position:absolute}
