@font-face {
  font-family: 'DotGothic16';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/dotgothic16-400-x.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'DotGothic16';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/dotgothic16-400-l.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/zenkakugothicnew-400-x.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/zenkakugothicnew-400-l.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/zenkakugothicnew-500-x.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/zenkakugothicnew-500-l.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/zenkakugothicnew-700-x.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/zenkakugothicnew-700-l.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../fonts/zenkakugothicnew-900-x.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../fonts/zenkakugothicnew-900-l.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Zen Old Mincho';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/zenoldmincho-500-x.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Zen Old Mincho';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/zenoldmincho-500-l.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Zen Old Mincho';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/zenoldmincho-700-x.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Zen Old Mincho';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/zenoldmincho-700-l.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{
  --floor:#efeee9;
  --panel:#ffffff;
  --ink:#1f2328;
  --ink-2:#4a5058;
  --mute:#80868d;
  --rule:#dcdad3;
  --night:#16191d;
  --amber:#ffb321;
  --lamp:#5fe08a;
  --exit:#ffd400;
  --washi:#f3ecdf;
  --sans:"Zen Kaku Gothic New","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",system-ui,sans-serif;
  --serif:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",Georgia,serif;
  --dot:"DotGothic16","Zen Kaku Gothic New",monospace;
  --pad:clamp(16px,4vw,44px);
  --lift:0 1px 0 rgba(0,0,0,.04),0 12px 28px -22px rgba(22,25,29,.55);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--floor);color:var(--ink);font:400 16.5px/1.75 var(--sans);font-feature-settings:"palt";-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
picture{display:block}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--exit);outline-offset:2px}
h1,h2,h3{margin:0;font-weight:700;line-height:1.25}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:10px;top:-60px;background:var(--exit);color:#000;padding:8px 14px;font-weight:700;z-index:300}
.skip:focus{top:10px}
main{display:block;max-width:1280px;margin:0 auto;padding:0 var(--pad)}
.center{text-align:center}
.small{font-size:13.5px;color:var(--mute)}

.nb{--sz:34px;display:inline-grid;place-items:center;align-content:center;flex:none;width:var(--sz);height:var(--sz);border-radius:50%;background:#fff;border:calc(var(--sz)*.13) solid var(--ln,var(--ink));color:var(--ink);line-height:1;text-align:center}
.nb b{font-size:calc(var(--sz)*.34);font-weight:900}
.nb i{font-style:normal;font-size:calc(var(--sz)*.3);font-weight:700;margin-top:1px}
.nb b:only-child{font-size:calc(var(--sz)*.46)}
.nb-big{--sz:52px}
.nb-tt{--ln:var(--ink)}
.nb-tt b{font-size:16px}

.concourse{background:var(--night);color:#fff}
.concourse-in{max-width:1280px;margin:0 auto;padding:14px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:20px}
.mark{display:flex;align-items:center;gap:14px;text-decoration:none}
.mark-badge{display:grid;place-items:center;align-content:center;width:52px;height:52px;border-radius:12px;background:#fff;color:var(--night);border:4px solid var(--exit);line-height:1}
.mark-badge b{font-size:21px;font-weight:900}
.mark-badge i{font-style:normal;font-size:13px;font-weight:700}
.mark-word strong{display:block;font-size:28px;font-weight:900;letter-spacing:.02em;line-height:1}
.mark-word small{display:block;margin-top:6px;font-size:12px;color:#b9bec4;letter-spacing:.06em}
.clock{text-align:right}
.clock p{margin:0}
.clock-time{font-family:var(--dot);font-size:34px;line-height:1;color:var(--amber);letter-spacing:.04em}
.clock-time small{font-size:18px;margin-left:2px;opacity:.75}
.clock-time em{font-style:normal;font-family:var(--sans);font-size:11px;font-weight:700;color:#fff;background:#3a3f46;border-radius:4px;padding:2px 6px;margin-left:8px;vertical-align:6px;letter-spacing:.1em}
.clock-date{margin-top:6px!important;font-size:13px;color:#d6d9dd}
.clock-date span[lang]{margin-left:8px;color:#9aa0a7}
.lines-btn{display:none;border:2px solid #fff;background:transparent;color:#fff;border-radius:8px;padding:8px 14px;font-weight:700;cursor:pointer}
.lines{background:var(--panel);border-bottom:1px solid var(--rule);color:var(--ink)}
.lines ul{list-style:none;margin:0 auto;padding:10px var(--pad);max-width:1280px;display:flex;flex-wrap:wrap;gap:6px 18px}
.lines a{display:flex;align-items:center;gap:8px;text-decoration:none;font-weight:700;font-size:14.5px;padding:4px 10px 4px 4px;border-radius:999px}
.lines .nb{--sz:30px}
.lines a:hover,.lines a[aria-current]{background:var(--floor)}
.lines a[aria-current] span:last-child{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:5px}

.sec-head{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin:clamp(40px,6vw,72px) 0 18px;padding-bottom:10px;border-bottom:3px solid var(--ink)}
.sec-head h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:900;letter-spacing:.01em}
.sec-head p{margin:0;color:var(--ink-2);font-size:14.5px;max-width:60ch}
.sec-head a{font-weight:700}

.sign{background:var(--panel);box-shadow:var(--lift);border-radius:6px;overflow:hidden;display:flex;flex-direction:column}
.sign-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 22px 0}
.sign-line{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:700;font-size:14px;color:var(--ink-2)}
.sign-place{font-size:13px;font-weight:700;color:var(--mute);letter-spacing:.06em;text-transform:uppercase;text-align:right}
.sign-name{font-family:var(--serif);font-weight:700;font-size:clamp(1.9rem,3.6vw,3.1rem);line-height:1.2;letter-spacing:.005em;padding:18px 22px 0;text-wrap:balance}
.sign-name a{text-decoration:none}
.sign-name a:hover{text-decoration:underline;text-decoration-color:var(--ln);text-decoration-thickness:3px}
.sign-dek{margin:12px 22px 22px;font-size:16.5px;color:var(--ink-2);max-width:62ch}
.sign-band{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;background:var(--ln);color:#fff}
.sign-band > *{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:10px;padding:12px 18px;text-decoration:none;font-size:13.5px;line-height:1.35;min-width:0}
.sign-band > * + *{border-left:1px solid rgba(255,255,255,.35)}
.sign-band span{font-size:20px;font-weight:900}
.sign-band b{font-size:12px;background:#fff;color:var(--ln);border-radius:4px;padding:1px 6px}
.sign-band em{font-style:normal;font-weight:500;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sign-next{grid-template-columns:1fr auto auto!important;text-align:right}
.sign-next span{order:3}
.sign-next b{order:2}
.sign-next em{order:1}
.sign-band a:hover em{text-decoration:underline}
.sign-end{opacity:.75}
.sign-end.sign-next{grid-template-columns:1fr auto!important}

.arriving{padding-top:clamp(22px,3vw,34px)}
.arriving-cap{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.blink{width:10px;height:10px;border-radius:50%;background:var(--lamp);box-shadow:0 0 0 4px rgba(95,224,138,.25);animation:blink 1.6s steps(2) infinite}
@keyframes blink{50%{opacity:.25}}
.arriving-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px}
.arriving-pic{display:block;border-radius:6px;overflow:hidden;box-shadow:var(--lift)}
.arriving-pic picture,.arriving-pic img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/10}

.concourse-row{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:18px;margin-top:18px}
.board{background:var(--night);color:#e9ecef;border-radius:6px;padding:18px 20px 14px;box-shadow:var(--lift)}
.board header{display:flex;align-items:baseline;gap:12px;margin-bottom:10px}
.board h2{font-size:1.25rem;font-weight:900;color:#fff}
.board header p{margin:0;font-size:13px;color:#8d939a}
.board-head,.dep{display:grid;grid-template-columns:118px minmax(0,1fr) minmax(0,.7fr) 128px;gap:12px;align-items:center}
.board-head{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#7d838a;padding:0 0 6px;border-bottom:1px solid #2c3137}
.board ol{list-style:none;margin:0;padding:0}
.dep{padding:9px 0;border-bottom:1px solid #262a30;font-family:var(--dot);font-size:15.5px;line-height:1.35}
.dep-time{color:var(--amber)}
.dep-to{color:#fff;text-decoration:none}
.dep-to:hover{color:var(--amber)}
.dep-pf{color:#aab0b6;font-size:14px}
.dep-st{color:var(--lamp);text-align:right}
.dep.is-soon .dep-st{animation:blink 1.2s steps(2) infinite}
.dep.is-gone{opacity:.45}
.dep.is-gone .dep-st{color:#8d939a}
.board-note{margin:10px 0 0;font-size:12px;color:#7d838a}
.season{background:var(--washi);border-radius:6px;padding:20px 22px;box-shadow:var(--lift);display:flex;flex-direction:column}
.season h2{font-size:1.25rem;font-weight:900}
.season-kicker{margin:2px 0 0;font-size:13px;color:var(--ink-2)}
.season-now{margin:18px 0 0;font-family:var(--serif);font-weight:700;font-size:clamp(1.5rem,2.4vw,1.9rem);line-height:1.25}
.season-ro{margin:4px 0 0;font-style:italic;color:var(--ink-2)}
.season-bar{height:6px;border-radius:3px;background:rgba(31,35,40,.12);margin:18px 0 8px;overflow:hidden}
.season-bar i{display:block;height:100%;width:40%;background:#b5651d;border-radius:3px}
.season-next{margin:0;font-size:14px;font-weight:700}
.season-fine{margin:auto 0 0;padding-top:12px;font-size:12px;color:var(--mute)}

.track{display:grid;grid-template-columns:200px minmax(0,1fr);align-items:start;gap:12px;padding:16px 0;border-bottom:1px solid var(--rule)}
.track-name{display:flex;align-items:center;gap:12px;text-decoration:none;padding-top:2px}
.track-name b{font-size:16px;font-weight:900;line-height:1.2}
.track-scroll{overflow-x:auto;scrollbar-width:thin;padding-bottom:6px}
.track ol{list-style:none;margin:0;padding:0;display:flex;position:relative;min-width:max-content}
.track ol::before{content:"";position:absolute;left:24px;right:24px;top:20px;height:10px;background:var(--ln);border-radius:5px}
.track li{position:relative;width:190px;flex:none;padding:0 10px}
.track li a{display:grid;justify-items:start;gap:8px;text-decoration:none}
.track li .nb{--sz:50px;position:relative;z-index:1;margin-left:0}
.track li span:not(.nb){font-size:13.5px;line-height:1.45;font-weight:500;color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.track li a:hover span:not(.nb){text-decoration:underline}
.track li a:hover .nb{background:var(--ln);color:#fff}

.arrivals ol{list-style:none;margin:0;padding:0;background:var(--panel);border-radius:6px;box-shadow:var(--lift);overflow:hidden}
.arrivals li{display:grid;grid-template-columns:110px auto minmax(0,1fr) 170px;gap:14px;align-items:center;padding:12px 18px;border-left:6px solid var(--ln);border-bottom:1px solid var(--rule)}
.arrivals li:last-child{border-bottom:0}
.arr-time{font-size:13px;font-weight:700;color:var(--mute)}
.arrivals li a{font-weight:700;text-decoration:none;line-height:1.45}
.arrivals li a:hover{text-decoration:underline}
.arr-pl{font-size:13px;color:var(--ink-2);text-align:right}

.stop{max-width:1100px;margin:0 auto}
.crumbs{font-size:13px;color:var(--mute);padding:18px 0 12px}
.crumbs a{text-decoration:none;color:var(--ink-2);font-weight:700}
.stop .sign-name{font-size:clamp(2rem,4.4vw,3.4rem)}
.stop-fig{margin:18px 0 0}
.stop-fig picture,.stop-fig img{width:100%;border-radius:6px;aspect-ratio:16/9;object-fit:cover}
.stop-fig figcaption{font-size:12.5px;color:var(--mute);margin-top:8px}
.stop-grid{display:grid;grid-template-columns:270px minmax(0,1fr);gap:clamp(24px,4vw,56px);margin-top:clamp(24px,3vw,40px)}
.boarding{position:sticky;top:16px;align-self:start;background:var(--panel);border-radius:6px;box-shadow:var(--lift);border-top:6px solid var(--ln);padding:16px 18px}
.boarding-h{margin:0 0 10px;font-size:12px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.boarding dl{margin:0}
.boarding dl div{padding:8px 0;border-top:1px dashed var(--rule)}
.boarding dt{font-size:11.5px;font-weight:700;color:var(--ln);letter-spacing:.08em;text-transform:uppercase}
.boarding dd{margin:2px 0 0;font-size:14.5px;line-height:1.45;font-weight:500}
.boarding-by{display:flex;gap:10px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--rule);font-size:13px;line-height:1.4;color:var(--ink-2)}
.boarding-by p{margin:0}
.boarding-by a{font-weight:700;color:var(--ink)}
.ini{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:10px;background:var(--ink);color:#fff;font-weight:900;font-size:14px}
.ini-big{width:64px;height:64px;font-size:22px;border-radius:14px;margin:0 auto 12px}
.boarding-time{margin:10px 0 0;font-size:12.5px;color:var(--mute);line-height:1.5}
.stop-text{max-width:700px;font-size:18px;line-height:1.95;color:#262a2f}
.stop-text > p{margin:0 0 1.15em}
.stop-text h2{font-family:var(--serif);font-size:clamp(1.4rem,2.4vw,1.75rem);margin:1.6em 0 .55em;display:flex;align-items:center;gap:12px}
.stop-text h2::before{content:"";flex:none;width:14px;height:14px;background:var(--ln);border-radius:3px}
.ref{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 4px;margin-left:3px;border-radius:5px;background:var(--ln);color:#fff;font-size:11px;font-weight:900;line-height:1;text-decoration:none;vertical-align:2px}
.ref:hover{background:var(--ink)}
.transfers{margin-top:36px;background:var(--panel);border-radius:6px;box-shadow:var(--lift);padding:20px 22px;font-size:15px;line-height:1.55}
.transfers h2{margin-top:0!important;font-family:var(--sans)!important;font-weight:900;font-size:1.3rem!important}
.transfers h2::before{display:none}
.transfers h2 span{font-size:.8em;color:var(--mute);font-weight:500}
.transfers > p{margin:4px 0 12px;color:var(--mute);font-size:13.5px}
.transfers ol{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.transfers li{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start;padding:8px;border-radius:6px}
.transfers li:target{background:#fff6cc}
.tf-no{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:4px solid var(--ln);font-size:12px;font-weight:900}
.tf-body b{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
.tf-body a{overflow-wrap:anywhere}
.transfers-fix{margin:14px 0 0;font-size:13.5px;color:var(--ink-2)}
.share{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:20px;font-size:13.5px}
.share span{font-weight:900;margin-right:4px}
.share a,.share button{border:2px solid var(--ink);background:transparent;border-radius:6px;padding:5px 12px;font-weight:700;text-decoration:none;cursor:pointer}
.share a:hover,.share button:hover{background:var(--ink);color:#fff}
.strip{margin-top:clamp(40px,6vw,72px);background:var(--panel);border-radius:6px;box-shadow:var(--lift);padding:20px 22px}
.strip h2{display:flex;align-items:center;gap:12px;font-size:1.25rem;font-weight:900;margin-bottom:14px}
.strip ol{list-style:none;margin:0;padding:0;display:flex;gap:0;overflow-x:auto;position:relative}
.strip li{position:relative;flex:1 0 180px;display:grid;justify-items:start;gap:8px;padding:0 14px 6px 0;font-size:13.5px;line-height:1.45}
.strip li::before{content:"";position:absolute;left:0;right:0;top:14px;height:8px;background:var(--ln)}
.strip li:last-child::before{right:auto;width:20px}
.strip .nb{position:relative;z-index:1}
.strip li a{text-decoration:none;font-weight:500}
.strip li a:hover{text-decoration:underline}
.strip li.here span:not(.nb){font-weight:900}
.strip li.here .nb{background:var(--ln);color:#fff;box-shadow:0 0 0 4px #fff,0 0 0 6px var(--ln)}
.strip li em{font-style:normal;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;background:var(--exit);padding:1px 6px;border-radius:3px}

.lhead{display:flex;gap:20px;align-items:center;padding:clamp(28px,5vw,56px) 0 clamp(20px,3vw,32px)}
.lhead .nb{--sz:96px}
.lhead-k{margin:0;font-size:12.5px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--ln,var(--ink-2))}
.lhead h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:900}
.lhead p:last-child{margin:6px 0 0;color:var(--ink-2);max-width:62ch}
.lhead-tt .nb{--ln:var(--ink)}
.lhead-tt .nb b{font-size:36px}
.vline{max-width:900px}
.vline-end{margin:0 0 0 38px;font-size:12px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.vline ol{list-style:none;margin:10px 0;padding:0;position:relative}
.vline ol::before{content:"";position:absolute;left:21px;top:0;bottom:0;width:12px;background:var(--ln);border-radius:6px}
.vline li{display:grid;grid-template-columns:54px minmax(0,1fr);gap:20px;align-items:center;margin:0 0 16px}
.vline .v-dot{position:relative;z-index:1}
.v-card{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:center;background:var(--panel);border-radius:6px;box-shadow:var(--lift);overflow:hidden;text-decoration:none;padding-right:18px}
.v-card picture,.v-card img{width:100%;height:100%;aspect-ratio:16/10;object-fit:cover}
.v-txt{display:grid;gap:6px;padding:14px 0}
.v-txt b{font-family:var(--serif);font-size:1.25rem;line-height:1.3}
.v-txt em{font-style:normal;font-size:14.5px;color:var(--ink-2);line-height:1.55}
.v-txt small{font-size:12.5px;color:var(--mute)}
.v-card:hover b{text-decoration:underline;text-decoration-color:var(--ln)}

.tt-days ul,.tt-key{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.tt-days a{display:block;padding:6px 14px;border-radius:6px;background:var(--panel);box-shadow:var(--lift);font-weight:900;text-decoration:none;font-size:14px}
.tt-days .d5{color:#1f5fc4}
.tt-days .d6{color:#d23a2a}
.tt-key{margin:16px 0 0;gap:6px 18px;font-size:13.5px;font-weight:700}
.tt-key li{display:flex;align-items:center;gap:6px}
.tt-key .nb{--sz:26px}
.tt{margin-top:28px;background:var(--panel);border-radius:6px;box-shadow:var(--lift);overflow:hidden}
.tt h2{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 16px;padding:12px 18px;color:#fff;background:var(--ink);font-size:1.05rem;font-weight:900}
.tt h2 span[lang]{font-weight:500;opacity:.8}
.tt-sat h2{background:#1f5fc4}
.tt-sun h2{background:#d23a2a}
.tt table{width:100%;border-collapse:collapse}
.tt thead th{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);text-align:left;padding:6px 18px;border-bottom:1px solid var(--rule)}
.tt thead th:first-child{width:84px;text-align:center}
.tt tbody th{font-size:1.7rem;font-weight:900;text-align:center;vertical-align:top;padding:10px 0;border-right:3px solid var(--ink);font-variant-numeric:tabular-nums}
.tt-sat tbody th{border-right-color:#1f5fc4;color:#1f5fc4}
.tt-sun tbody th{border-right-color:#d23a2a;color:#d23a2a}
.tt tbody tr + tr > *{border-top:1px solid var(--rule)}
.tt td{padding:8px 18px}
.tt td ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.tt td a{display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:baseline;text-decoration:none;padding:4px 0}
.tt sup{font-size:1.15rem;font-weight:900;vertical-align:0;color:var(--ln);font-variant-numeric:tabular-nums}
.tt td span{font-weight:500;line-height:1.45}
.tt td a:hover span{text-decoration:underline}

.ohead{padding:clamp(28px,5vw,56px) 0 clamp(20px,3vw,32px);max-width:820px}
.ohead-k{margin:0;font-size:12.5px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.ohead h1{font-family:var(--serif);font-size:clamp(2.2rem,5vw,3.4rem);margin:8px 0 10px}
.ohead p:last-child{margin:0;color:var(--ink-2);font-size:17px}
.ohead-date{display:block;margin-top:6px;font-size:13px;color:var(--mute)}
.exit{display:inline-grid;place-items:center;flex:none;min-width:34px;height:28px;padding:0 6px;border-radius:4px;background:var(--exit);color:#000;font-weight:900;font-size:13px;line-height:1}
.rules{display:grid;grid-template-columns:240px minmax(0,760px);gap:clamp(24px,5vw,64px)}
.rules-exits{position:sticky;top:16px;align-self:start;background:var(--night);color:#fff;border-radius:6px;padding:14px}
.rules-exits p{margin:0 0 8px;font-size:11px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--exit)}
.rules-exits ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.rules-exits a{display:flex;gap:10px;align-items:center;text-decoration:none;font-size:13.5px;line-height:1.3}
.rules-exits a:hover{color:var(--exit)}
.rules-body section{background:var(--panel);border-radius:6px;box-shadow:var(--lift);padding:18px 22px;margin-bottom:14px}
.rules-body h2{display:flex;align-items:center;gap:12px;font-size:1.2rem;font-weight:900;margin-bottom:8px}
.rules-body p,.rules-body li{color:var(--ink-2);font-size:16px}
.rules-body p{margin:0 0 .6em}
.rules-body ul{margin:0;padding-left:20px}
.grid{width:100%;border-collapse:collapse;font-size:14.5px}
.grid th,.grid td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--rule);overflow-wrap:anywhere}
.grid th{background:var(--floor);font-size:12.5px}
.about{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,5vw,56px);align-items:start}
.about-fig{margin:0}
.about-fig img{border-radius:6px}
.about-fig figcaption{font-size:12.5px;color:var(--mute);margin-top:6px}
.prose{font-size:17.5px;line-height:1.9;color:#262a2f}
.prose p{margin:0 0 1em}
.links{display:flex;flex-wrap:wrap;gap:10px}
.pill{display:inline-block;background:var(--ink);color:#fff;border-radius:6px;padding:9px 16px;font-weight:700;text-decoration:none;font-size:14.5px}
.pill:hover{background:#000;outline:3px solid var(--exit)}
.crew{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.crew li{background:var(--panel);border-radius:6px;box-shadow:var(--lift);padding:22px 18px;text-align:center}
.crew h2{font-size:1.2rem;font-weight:900}
.crew h2 a{text-decoration:none}
.crew-role{margin:4px 0 10px;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.crew p{font-size:14.5px;color:var(--ink-2);margin:0}
.crew-lines{display:flex;justify-content:center;gap:6px;margin-top:12px!important}
.worklog{max-width:820px}
.worklog h2{font-size:1.3rem;font-weight:900;margin-bottom:10px}
.worklog ol{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.worklog li{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;background:var(--panel);border-radius:6px;box-shadow:var(--lift);padding:10px 16px}
.worklog a{font-weight:700;text-decoration:none;line-height:1.45}
.worklog time{font-size:13px;color:var(--mute)}
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,48px)}
.counters{list-style:none;margin:0;padding:0;display:grid;gap:10px;align-content:start}
.counters li{display:grid;grid-template-columns:auto 1fr;column-gap:14px;background:var(--panel);border-radius:6px;box-shadow:var(--lift);padding:12px 16px;overflow-wrap:anywhere}
.counters .exit{grid-row:1/4}
.counters b{font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.counters small{color:var(--mute);font-size:13px}
.memo{background:var(--night);color:#fff;border-radius:6px;padding:clamp(20px,3vw,30px);display:grid;gap:12px;align-self:start}
.memo h2{font-size:1.5rem;font-weight:900}
.memo label{display:grid;gap:4px;font-size:13px;font-weight:700;color:#cfd3d8}
.memo input,.memo select,.memo textarea{border:2px solid transparent;border-radius:6px;padding:10px 12px;background:#fff;color:var(--ink);font-weight:400}
.memo input:focus,.memo select:focus,.memo textarea:focus{border-color:var(--exit);outline:0}
.memo-ok{display:flex!important;gap:8px;align-items:center;font-weight:400!important}
.memo-ok a{color:var(--exit)}
.memo button{justify-self:start;background:var(--exit);color:#000;border:0;border-radius:6px;padding:11px 22px;font-weight:900;cursor:pointer}
.memo small{color:#8d939a}

.terminal{margin-top:clamp(56px,8vw,104px);background:var(--night);color:#c9cdd2;font-size:14.5px}
.terminal-rail{display:flex;height:8px}
.terminal-rail i{flex:1;background:var(--ln)}
.terminal-in{max-width:1280px;margin:0 auto;padding:36px var(--pad) 20px;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:28px}
.terminal h2{font-size:11.5px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--exit);margin-bottom:10px}
.terminal p{margin:0;line-height:1.7}
.terminal strong{color:#fff}
.terminal ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.terminal a{color:#fff;text-decoration:none}
.terminal a:hover{color:var(--exit)}
.terminal button{border:0;background:none;padding:0;color:var(--exit);font-weight:700;cursor:pointer;text-decoration:underline}
.terminal address{font-style:normal;line-height:1.7}
.terminal-end{max-width:1280px;margin:0 auto!important;padding:14px var(--pad) 24px;border-top:1px solid #2c3137;font-size:12.5px;color:#868c93}

.ticket{position:fixed;right:18px;bottom:18px;z-index:250;width:min(390px,calc(100vw - 24px));background:#dcefe6;background-image:repeating-linear-gradient(135deg,rgba(20,145,106,.07) 0 6px,transparent 6px 12px);color:var(--ink);border-radius:10px;padding:16px 18px 14px;font-size:14px;line-height:1.5;box-shadow:0 22px 50px -18px rgba(0,0,0,.45);border:2px dashed rgba(20,100,70,.35)}
.ticket[hidden]{display:none}
.ticket::before,.ticket::after{content:"";position:absolute;top:50%;width:18px;height:18px;margin-top:-9px;border-radius:50%;background:var(--floor)}
.ticket::before{left:-10px}
.ticket::after{right:-10px}
.ticket p{margin:0 0 10px}
.ticket-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid rgba(20,100,70,.25);padding-bottom:6px}
.ticket-head b{font-size:16px;font-weight:900}
.ticket-head span{font-family:var(--dot);font-size:13px;color:#14704f}
.ticket-opts{display:grid;gap:6px;margin:0 0 10px;padding:10px;background:rgba(255,255,255,.6);border-radius:6px}
.ticket-opts[hidden]{display:none}
.ticket-opts label{display:flex;gap:8px;align-items:center;font-weight:700}
.ticket-opts input{accent-color:#14704f;width:17px;height:17px}
.ticket-act{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.ticket-act button{border:2px solid var(--ink);background:#fff;border-radius:6px;padding:6px 12px;font-weight:700;font-size:13px;cursor:pointer}
.ticket-act .go{background:var(--ink);color:#fff}

@media (max-width:1080px){
  .concourse-row{grid-template-columns:1fr}
  .crew{grid-template-columns:repeat(2,minmax(0,1fr))}
  .terminal-in{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .arriving-grid{grid-template-columns:1fr}
  .stop-grid{grid-template-columns:1fr}
  .boarding{position:static}
  .rules{grid-template-columns:1fr}
  .rules-exits{position:static}
  .about,.contact{grid-template-columns:1fr}
  .track{grid-template-columns:1fr}
  .arrivals li{grid-template-columns:auto minmax(0,1fr);row-gap:4px}
  .arr-time{grid-column:1/-1;order:-1}
  .arr-pl{grid-column:2;text-align:left}
}
@media (max-width:720px){
  .concourse-in{flex-wrap:wrap;gap:12px}
  .clock{order:3;width:100%;text-align:left;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;border-top:1px solid #2c3137;padding-top:10px}
  .clock-time{font-size:28px}
  .clock-date{margin:0!important}
  .clock-date span[lang]{display:block;margin:2px 0 0}
  .lines-btn{display:block}
  .lines{display:none}
  .lines.is-open{display:block}
  .lines ul{flex-direction:column;padding:8px var(--pad) 12px}
  .lines a{padding:8px 4px}
  .board-head{display:none}
  .dep{grid-template-columns:1fr auto;row-gap:2px}
  .dep-time{grid-column:1/-1;font-size:13.5px}
  .dep-pf{grid-column:1;font-size:13px}
  .dep-st{grid-row:2/4;grid-column:2}
  .sign-band{grid-template-columns:1fr}
  .sign-band > * + *{border-left:0;border-top:1px solid rgba(255,255,255,.35)}
  .v-card{grid-template-columns:1fr;padding:0}
  .v-txt{padding:12px 16px 16px}
  .vline li{grid-template-columns:44px minmax(0,1fr);gap:12px}
  .vline .nb-big{--sz:44px}
  .vline ol::before{left:16px;width:10px}
  .vline-end{margin-left:0}
  .lhead .nb{--sz:68px}
  .tt thead th:first-child{width:56px}
  .tt tbody th{font-size:1.35rem}
  .tt td{padding:8px 12px}
  .crew{grid-template-columns:1fr}
  .terminal-in{grid-template-columns:1fr}
  .worklog li{grid-template-columns:auto 1fr}
  .worklog time{grid-column:2}
}
@media (max-width:420px){
  .mark-word strong{font-size:24px}
  .mark-badge{width:44px;height:44px}
  .sign-top{padding:14px 16px 0}
  .sign-name{padding:14px 16px 0}
  .sign-dek{margin:10px 16px 16px;font-size:15.5px}
  .sign-place{font-size:11.5px}
  .nb-big{--sz:46px}
  .stop-text{font-size:17px;line-height:1.9}
  .track li{width:160px}
  .ticket-act{justify-content:stretch}
  .ticket-act button{flex:1}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
