:root{color-scheme:dark;--bg:#0b1922;--surface:#132731;--border:#304953;--text:#eff5f4;--muted:#a9bec7;--accent:#79e0ca;--font:system-ui,-apple-system,"Segoe UI",sans-serif;font-family:var(--font);color:var(--text);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:4px}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;background:#203944;color:var(--text);border:1px solid #526d77;border-radius:8px;padding:11px 16px;text-decoration:none;display:inline-block;text-align:center;line-height:1.5}button:hover,.button:hover{background:#30505b}button:disabled{opacity:.55;cursor:wait}input,select,textarea{background:#0d202a;color:var(--text);border:1px solid #526d77;border-radius:8px;padding:12px;min-width:0}textarea{width:100%;resize:vertical;min-height:110px}input::placeholder{color:#a2b6bf}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:#092c29;font-weight:700}button.primary:hover,.button.primary:hover{background:#a6f0e0}h1,h2,h3,p{margin-top:0}p{line-height:1.7}h2{font-size:1.75rem;letter-spacing:-.035em}h3{font-size:1.15rem;line-height:1.5}small,.muted{color:var(--muted);font-size:.875rem;line-height:1.6}.skip{position:fixed;top:-100px;z-index:99;background:var(--accent);color:#092c29;padding:14px}.skip:focus{top:8px}
.header{max-width:1280px;margin:auto;padding:20px 36px;display:flex;align-items:center;gap:40px;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;letter-spacing:.15em;font-size:1.25rem;font-weight:600;white-space:nowrap}.brand b{color:var(--accent);font-weight:500}.brand img{object-fit:contain}.header nav{display:flex;gap:28px;flex:1;flex-wrap:wrap}.header nav a{text-decoration:none;color:var(--muted);font-size:.9375rem}.header nav a[aria-current=page]{color:var(--accent)}.account{white-space:nowrap;font-size:.9375rem}
main{max-width:1208px;margin:auto;padding:36px 0 60px;min-height:70vh}.intro{display:grid;grid-template-columns:1fr 1.15fr;gap:42px;align-items:center;margin-bottom:30px}.eyebrow{color:var(--accent);letter-spacing:.13em;font-size:.8125rem;font-weight:700;margin-bottom:20px}h1{font-size:clamp(2.25rem,4.5vw,3.9rem);font-weight:600;line-height:1.22;letter-spacing:-.055em;margin-bottom:22px}.lead{font-size:1.0625rem;color:var(--muted)}.text-link{color:var(--accent);font-size:.9375rem}.cover{margin:0;position:relative;min-width:0;border-radius:18px;overflow:hidden;background:var(--surface)}.cover img{display:block;width:100%;height:340px;object-fit:cover}.cover figcaption{padding:12px 16px;display:flex;flex-direction:column;gap:5px;font-size:.9375rem}.cover figcaption span+span{font-size:.75rem;color:var(--muted)}.search-box{border:1px solid #456773;background:var(--surface);padding:22px 24px;border-radius:12px;margin-bottom:42px}.search-box label{display:block;font-weight:600;margin-bottom:10px}.search-line{display:grid;grid-template-columns:205px minmax(0,1fr) auto;gap:10px}.search-box p{margin:10px 0 0}
.section-head{display:flex;gap:16px;align-items:center;justify-content:space-between;margin:28px 0 22px}.section-head h2,.section-head p{margin-bottom:6px}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px}.filters label{display:grid;gap:8px;font-size:.875rem}.filters select{min-width:160px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 24px}.chips button{border-radius:25px;padding:8px 15px;font-size:.875rem}.chips button[aria-pressed=true]{background:var(--accent);color:#092c29;border-color:var(--accent)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.place-card,.route-card{padding:24px;border:1px solid var(--border);border-radius:12px;background:var(--surface);min-width:0}.place-card{display:flex;flex-direction:column}.place-card h3{margin:12px 0}.place-card p{color:var(--muted);font-size:.9375rem;flex:1}.place-card .meta{font-size:.8125rem;color:var(--accent)}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.actions button,.actions a{font-size:.875rem}.route-card{border-top:3px solid var(--accent)}.route-card .route-number{font-size:2.25rem;color:var(--accent);font-weight:300}.route-card h3{margin-top:20px}.route-card p{color:var(--muted);font-size:.9375rem}.empty{border:1px dashed #536c76;border-radius:12px;padding:32px;color:var(--muted);line-height:1.7}.journey{border:1px solid #4b6974;border-radius:16px;padding:28px;background:var(--surface)}.journey h3{font-size:1.8rem;margin:15px 0}.journey progress{width:100%;accent-color:var(--accent);height:6px}.journey .steps{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}.journey .steps button[aria-current=step]{border-color:var(--accent);color:var(--accent)}#notice{position:sticky;bottom:16px;margin:20px auto 0;max-width:720px;background:#173a42;border-radius:10px;padding:0 16px}#notice:not(:empty){padding:14px 16px;border:1px solid #668d98}.notes{max-width:820px;line-height:1.8}.notes h3{margin-top:30px}
footer{max-width:1280px;border-top:1px solid var(--border);padding:30px 36px;margin:auto;display:flex;justify-content:space-between;gap:24px;color:var(--muted);font-size:.875rem}footer p{margin:12px 0 0}.footer-links{display:flex;gap:18px;align-items:center;flex-wrap:wrap}dialog{background:var(--bg);color:var(--text);border:1px solid #60808d;border-radius:16px;padding:24px;width:min(600px,calc(100vw - 24px));max-height:85dvh;overflow:auto}dialog::backdrop{background:#000b}.dialog-top{display:flex;justify-content:flex-end;margin-bottom:12px}#detail-title{font-size:1.8rem;margin:12px 0}dialog label{display:block;margin:20px 0 8px}dialog .detail-photo{width:100%;height:auto;border-radius:10px}body:has(dialog[open]){overflow:hidden}[hidden]{display:none!important}
@media(max-width:1280px){main{margin:0 36px}}@media(max-width:850px){.intro{gap:24px;grid-template-columns:1fr 1fr}.cover img{height:300px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.header{gap:24px}.header nav{gap:16px}.brand{font-size:1.05rem}.search-line{grid-template-columns:1fr auto}.search-line select{grid-column:1/-1}footer{flex-direction:column}}
@media(max-width:600px){.header{padding:14px 18px;flex-wrap:wrap;gap:12px;justify-content:space-between}.header nav{order:3;flex-basis:100%;justify-content:space-between;border-top:1px solid var(--border);padding-top:14px}.brand img{width:38px;height:38px}main{margin:0 18px;padding-top:24px}.intro{grid-template-columns:1fr;gap:24px}.cover img{height:210px}h1{font-size:2.5rem}.intro-copy .lead{margin-bottom:12px}.search-box{padding:18px;margin-bottom:28px}.search-line{grid-template-columns:minmax(0,1fr)}.grid{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}.filters label{flex:1}.filters select{width:100%;min-width:0}.place-card,.route-card{padding:20px}footer{padding:25px 18px}.journey{padding:20px}.actions a,.actions button{flex:1}.footer-links{align-items:flex-start;flex-direction:column}h2{font-size:1.5rem}}
/* On phones, search precedes the photograph so the working surface is reachable immediately. */
@media(max-width:600px){main{display:flex;flex-direction:column}#home-intro{display:contents}.intro-copy{order:0;margin-bottom:22px}.search-box{order:1}.cover{order:2;margin-bottom:24px}#page{order:3}#notice{order:4}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background-color .15s,color .15s}}

/* Static atmosphere: no animation, extra images, or map renderer. */
body{
  position:relative;
  isolation:isolate;
  background:
    radial-gradient(ellipse 680px 520px at 12% 280px,#19544e80,transparent 80%),
    radial-gradient(ellipse 620px 460px at 92% 180px,#79613b45,transparent 80%),
    radial-gradient(ellipse 860px 580px at 65% 1150px,#143e5060,transparent 80%),
    var(--bg);
}
body::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:760px;
  z-index:-1;
  pointer-events:none;
  background-image:
    linear-gradient(#79e0ca0a 1px,transparent 1px),
    linear-gradient(90deg,#79e0ca0a 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(#0008,transparent);
}
.header{border-bottom-color:#79e0ca30}
.intro-copy .eyebrow{display:flex;align-items:center;gap:12px}
.intro-copy .eyebrow::before{content:"";width:32px;height:2px;background:#d4bb82}
.intro-copy h1{text-shadow:0 4px 28px #0004}
.intro-copy .lead{color:#c0d2d8}
.cover{border:1px solid #b2d6cd40;box-shadow:0 24px 60px #0005,0 0 40px #79e0ca0a}
.cover figcaption{background:linear-gradient(115deg,#1b353e,#142630)}
.search-box{
  background:linear-gradient(115deg,#1c3b42,#132731 75%);
  border-color:#79e0ca65;
  box-shadow:0 16px 36px #0003,inset 0 1px #c1f3df18;
}
.place-card,.route-card{background:linear-gradient(145deg,#19313a,#10242e);box-shadow:0 8px 22px #0002}
.route-card:nth-child(2){border-top-color:#d4bb82}
.route-card:nth-child(3){border-top-color:#88bacc}
footer{border-top-color:#79e0ca30}
@media(max-width:600px){
  body{background:radial-gradient(ellipse 460px 600px at 0 180px,#19544e70,transparent 85%),var(--bg)}
  body::before{display:none}
  .cover{box-shadow:0 12px 24px #0004}
}
@media(forced-colors:active){
  body,.cover figcaption,.search-box,.place-card,.route-card{background:Canvas}
  body::before,.intro-copy .eyebrow::before{display:none}
  .cover,.search-box,.place-card,.route-card{box-shadow:none;border-color:CanvasText}
  .intro-copy h1{text-shadow:none}
  .intro-copy .lead{color:CanvasText}
}
