/* SHARYA44: readable navigation, expressive links, transport experience. */
:root { --link-ink:#076cc2; --transit-accent:#087d68; }
html[data-theme="dark"] { --link-ink:#70ceff; --transit-accent:#57e5c4; }
@media(prefers-color-scheme:dark){html:not([data-theme="light"]){--link-ink:#70ceff;--transit-accent:#57e5c4}}
[hidden] { display:none!important; }
a,button,input,summary { -webkit-tap-highlight-color:transparent; }
:where(a,button,input,select,summary):focus-visible { outline:3px solid var(--link-ink);outline-offset:5px; }
/* Allow the nav its own row instead of squeezing text between logo and tools. */
.hdr__bar { height:auto;min-height:76px;display:grid;grid-template-columns:auto 1fr;gap:8px 24px;padding-block:12px; }
.hdr__bar > .logo { min-width:max-content;justify-self:start; }
.hdr__tools { grid-column:2;grid-row:1;justify-self:end;flex-shrink:0;gap:8px;margin:0; }
.hdr__nav { grid-row:2;grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin:0;border-top:1px solid var(--line);padding-top:8px; }
.hdr__nav a { flex:0 0 auto;white-space:nowrap;word-break:normal;overflow-wrap:normal;font-size:13px;line-height:1.35;padding:8px 11px!important;min-height:40px;display:inline-flex;align-items:center; }
.hdr__nav .hdr__nav-label { position:static!important;clip:auto!important;width:auto!important;height:auto!important;overflow:visible!important; }
.hdr__nav .hdr__nav-minor,.hdr__nav .hdr__nav-minor2 { display:inline-flex!important; }
.hdr__nav .neon { width:27px;height:27px;flex-shrink:0;box-shadow:none;animation:none; }
.hdr__nav-count { flex-shrink:0; }
.logo__tag,.logo__tag span,.logo__name { white-space:nowrap;overflow-wrap:normal;word-break:normal; }
.hdr__ink { display:none; }
.btn-icon { flex-shrink:0;min-width:40px;min-height:40px; }
.btn-icon--burger { display:flex;align-items:center;justify-content:center; }
.hdr__nav [data-tip]::after { display:none; }
@media(min-width:1800px){.hdr__bar{grid-template-columns:auto minmax(0,1fr) auto;gap:20px}.hdr__nav{grid-row:1;grid-column:2;border:0;padding:0}.hdr__tools{grid-column:3}.hdr__nav a{font-size:13px;padding:8px!important}}
@media(max-width:1050px){.hdr__nav{display:none}.hdr__bar{min-height:70px;padding-block:10px}.hdr__tools{gap:6px}}
@media(max-width:400px){.hdr__bar{gap:8px}.hdr__tools{gap:4px}.hdr__tools .btn-icon--saved{display:none}.logo__word{max-width:110px}}
.drawer__panel { overflow-y:auto;max-height:100dvh; }
/* Every prose link is visible without relying on hover or colour alone. */
main :where(p,li,dd,figcaption,blockquote) a:not(.btn):not(.tag),
:where(.note,.article__body,.prose,.page__body,.cmt__body) a:not(.btn),
:where(.crumbs,.ftr__col) a {
  color:var(--link-ink);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:.2em;text-decoration-color:color-mix(in srgb,currentColor 65%,transparent);border-radius:3px;
}
main :where(p,li,dd,figcaption,blockquote) a:hover,:where(.note,.prose) a:hover { text-decoration-thickness:2.5px;background:color-mix(in srgb,var(--link-ink) 10%,transparent); }
:where(.card,.row,.hero) a:hover { text-decoration:underline;text-underline-offset:.16em; }
:where(.card,.note,.hero,.board) { border-radius:18px; }
.cmtform__logout { color:var(--link-ink);text-decoration:underline;cursor:pointer;background:none;border:0; }
.transit-page { padding-bottom:48px; }
.transit-hero { display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center;padding:42px 0 36px; }
.transit-hero h1 { font-size:clamp(42px,5.4vw,76px);line-height:1.04;letter-spacing:-.055em;margin:16px 0 22px;max-width:760px; }
.transit-hero h1>span { color:var(--transit-accent); }
.transit-hero p { max-width:590px;color:var(--muted);font-size:16px;line-height:1.65; }
.transit-hero .transit-hero__lead { color:var(--ink);font-weight:650;font-size:22px;margin-bottom:8px; }
.transit-link { display:inline-flex;align-items:center;gap:20px;color:var(--link-ink);font-weight:700;text-decoration:underline;text-underline-offset:5px;margin-top:16px; }
.transit-map { background:radial-gradient(ellipse at 80% 20%,#14cda820,transparent 70%),var(--sunk);border:1px solid var(--line);border-radius:28px;padding:28px 18px 20px;overflow:hidden; }
.transit-map svg { width:100%;height:auto; }
.map-line { stroke-width:4;stroke-linecap:round;stroke-dasharray:7 9;animation:transit-flow 14s linear infinite; }
.map-line--one{stroke:#14cda8}.map-line--two{stroke:#709cff;animation-direction:reverse}.map-line--three{stroke:#b38dff}
.map-stops circle { fill:var(--bg);stroke:var(--ink);stroke-width:3; }
.transit-map__label { display:block;margin:16px 10px 5px;font-weight:700;font-size:18px; }
.transit-map small { margin:0 10px;color:var(--muted);font-size:12px; }
@keyframes transit-flow{to{stroke-dashoffset:-160}}
.transit-notice { display:flex;gap:15px;padding:18px 22px;border:1px solid color-mix(in srgb,var(--transit-accent) 30%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--transit-accent) 6%,var(--bg));margin:12px 0 32px;font-size:14px;line-height:1.65; }
.transit-notice > span { font-size:23px;color:var(--transit-accent); }
.transit-notice p { margin:0; }
.transit-section-head { display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0 0 22px; }
.transit-section-head h2,.transit-faq h2 { font-size:clamp(25px,3vw,34px);letter-spacing:-.035em;margin:6px 0 0; }
.transit-section-head > span,.transit-clock { color:var(--muted);font-size:13px; }
.transit-clock{font-variant-numeric:tabular-nums;white-space:nowrap}
.transit-planner { padding:28px;background:var(--surface,var(--bg));border:1px solid var(--line);border-radius:24px;margin-bottom:42px; }
.transit-controls { display:grid;grid-template-columns:minmax(200px,1fr) 180px auto auto;gap:12px;align-items:end; }
.transit-controls label { font-size:12px;font-weight:650;display:grid;gap:8px; }
.transit-controls input { width:100%;min-width:0;height:48px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);color:var(--ink);background:var(--sunk);font:inherit;font-size:15px; }
.transit-button { min-height:48px;padding:10px 17px;border:1px solid var(--line);border-radius:12px;background:var(--sunk);color:var(--ink);font:inherit;font-size:14px;font-weight:650;cursor:pointer;transition:background .2s,transform .2s; }
.transit-button:hover { background:color-mix(in srgb,var(--transit-accent) 14%,var(--bg));transform:translateY(-2px); }
.transit-button[aria-pressed="true"] { border-color:var(--transit-accent);color:var(--transit-accent); }
.transit-caveat { color:var(--muted);font-size:12px;line-height:1.6;margin:12px 0 0; }
#transitCount { color:var(--muted);font-size:13px;margin:16px 0; }
.transit-next { display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;padding:18px 20px;border-radius:12px;background:color-mix(in srgb,var(--transit-accent) 9%,var(--bg)); }
.transit-next>span { font-size:12px;color:var(--muted); }.transit-next>a { color:var(--link-ink);text-decoration:underline;text-underline-offset:4px;font-weight:650; }.transit-next>b{margin-left:auto;font-size:14px}
.transit-routes { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start; }
.transit-route { border:1px solid var(--line);border-top:3px solid var(--rc);border-radius:20px;padding:24px;background:var(--surface,var(--bg));scroll-margin-top:180px;transition:box-shadow .2s, border-color .2s; }
.transit-route:hover { box-shadow:0 10px 35px #0000000c;border-color:color-mix(in srgb,var(--rc) 50%,var(--line)); }
.transit-route__top { display:flex;gap:16px;align-items:center; }
.route-pill { display:grid;place-items:center;width:46px;height:46px;flex-shrink:0;border-radius:14px;background:var(--rc,#14cda8);color:#092019;font-size:23px;font-weight:850; }
.transit-route__range { font-size:15px;font-weight:650;font-variant-numeric:tabular-nums; }.transit-route__range small{display:block;font-weight:400;font-size:11px;color:var(--muted);margin-top:4px}
.transit-star { margin-left:auto;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);color:var(--ink);background:var(--sunk);font-size:26px;cursor:pointer; }.transit-star[aria-pressed="true"]{color:var(--transit-accent);border-color:var(--transit-accent)}
.transit-route h3 { font-size:21px;line-height:1.35;margin:20px 0 10px;letter-spacing:-.025em; }
.transit-route__next { color:var(--transit-accent);font-size:13px;line-height:1.6;min-height:42px; }
.transit-route summary,.transit-quiz summary,.transit-faq summary { cursor:pointer;font-weight:650;padding:16px 0;line-height:1.5; }
.transit-route summary { color:var(--link-ink);border-top:1px solid var(--line);margin-top:18px; }.transit-route summary span{float:right}
.transit-direction { padding:16px 0;border-top:1px solid var(--line); }.transit-direction h4{font-size:14px;margin-bottom:12px}
.transit-times { display:flex;flex-wrap:wrap;gap:7px;margin-top:12px; }.transit-times time{padding:7px 9px;border:1px solid var(--line);border-radius:7px;font:500 13px var(--font-mono,monospace)}
.transit-times .is-past{color:var(--muted)}.transit-times .is-next{background:var(--rc);color:#092019;border-color:var(--rc);font-weight:800}
.transit-passport { margin:44px 0;display:grid;grid-template-columns:1fr 1.3fr;gap:40px;padding:36px;border-radius:24px;border:1px solid var(--line);background:radial-gradient(ellipse at top left,#14cda816,transparent 60%),var(--sunk); }
.transit-passport h2{font-size:30px;line-height:1.16;letter-spacing:-.04em;margin:12px 0}.transit-passport p{color:var(--muted);font-size:14px;line-height:1.65;margin:12px 0 20px}
.transit-stamps{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.transit-stamps>span{padding:16px 5px;border:1px dashed var(--muted);border-radius:15px;text-align:center;font-size:22px;font-weight:750;transition:transform .3s,background .3s}.transit-stamps small{display:block;font-size:10px;font-weight:500;margin-top:6px;color:var(--muted)}
.transit-stamps .is-collected{background:color-mix(in srgb,var(--transit-accent) 14%,var(--bg));border:1px solid var(--transit-accent);color:var(--transit-accent);transform:rotate(-3deg)}
#transitProgress{display:block;width:100%;height:8px;margin-top:24px;accent-color:var(--transit-accent)}.transit-quiz{border-top:1px solid var(--line)}.transit-quiz__options{display:flex;gap:10px}
.transit-faq{max-width:850px;margin:48px auto}.transit-faq h2{margin-bottom:24px}.transit-faq details{border-bottom:1px solid var(--line)}.transit-faq p{font-size:15px;line-height:1.75;color:var(--muted);padding:0 0 20px}
.transit-connections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:48px 0 0}.transit-connections>div{grid-column:1/-1}.transit-connections h2{font-size:26px;margin:12px 0}.transit-connections>a{padding:24px;border:1px solid var(--line);border-radius:16px;font-size:19px;font-weight:650;background:var(--sunk);color:var(--link-ink);text-decoration:underline;text-underline-offset:5px}.transit-connections>a span{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:14px}
.transit-widget { display:grid;grid-template-columns:.8fr 1.5fr;gap:36px;padding:28px 32px;border:1px solid var(--line);border-radius:24px;background:radial-gradient(ellipse at 0 0,#14cda814,transparent 70%),var(--sunk);margin:20px 0 32px; }
.transit-widget h2{font-size:clamp(25px,3vw,36px);letter-spacing:-.04em;line-height:1.15;margin:12px 0}.transit-widget h2 span{color:var(--transit-accent)}.transit-widget__intro>p{max-width:300px;font-size:13px;color:var(--muted);line-height:1.6}.transit-widget__intro .transit-link{font-size:13px}
.transit-widget__bar{display:flex;justify-content:space-between;gap:12px;font-size:12px;padding:0 0 8px;color:var(--muted)}
.departure{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px;transition:background .2s}.departure:hover{background:color-mix(in srgb,var(--transit-accent) 8%,transparent)}.departure>span{min-width:0;color:var(--link-ink);text-decoration:underline;text-underline-offset:4px}.departure .route-pill{width:36px;height:36px;font-size:18px;border-radius:10px}.departure small{display:block;font-size:11px;color:var(--muted);margin-top:5px;font-weight:400}.departure>b:last-child{margin-left:auto;text-align:right;white-space:nowrap;font-size:17px;font-variant-numeric:tabular-nums}
.transit-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--transit-accent);margin-left:8px}
@media(max-width:800px){.transit-hero{grid-template-columns:1fr;gap:20px;padding-top:24px}.transit-map{display:none}.transit-controls{grid-template-columns:1fr 1fr}.transit-controls label:first-child{grid-column:1/-1}.transit-routes{grid-template-columns:1fr}.transit-passport{grid-template-columns:1fr;padding:24px;gap:24px}.transit-widget{grid-template-columns:1fr;padding:22px;gap:22px}.transit-widget h2 br{display:none}.transit-widget__intro>p{max-width:none}.transit-connections{grid-template-columns:1fr}.transit-section-head{align-items:start}.transit-section-head>span{max-width:130px;text-align:right}.transit-next{align-items:start;flex-direction:column}.transit-next>b{margin-left:0}.transit-route{scroll-margin-top:95px}}
@media(max-width:400px){.transit-planner,.transit-route{padding:18px}.transit-controls{grid-template-columns:1fr}.transit-stamps{gap:5px}.transit-stamps>span{font-size:18px}.departure{gap:9px;font-size:12px}.departure small{font-size:10px}.departure>b:last-child{font-size:14px}.transit-hero h1{font-size:42px}.transit-passport{padding:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.hdr,.ftr,.transit-passport,.transit-controls,.transit-map{display:none}.transit-routes{display:block}.transit-route{break-inside:avoid}.transit-route details::details-content{content-visibility:visible}.transit-route{margin-bottom:16px}}
/* Mobile menu bars stay geometrically centred; units remain a single token. */
.btn-icon--burger { padding:0!important;align-self:center;line-height:1; }
.btn-icon--burger span { display:block;flex:0 0 2px;margin:0!important;transform:none; }
.busnext__eta { flex-shrink:0;display:flex;align-items:baseline;justify-content:center;gap:6px;min-width:82px; }
.busnext__eta span,.busnext__eta b { white-space:nowrap;word-break:normal;overflow-wrap:normal; }

.transit-hero h1 small {display:block;font-size:clamp(16px,2vw,22px);font-weight:600;letter-spacing:-.015em;line-height:1.4;margin-bottom:18px;color:var(--muted)}
@media(min-width:1051px){.hdr__nav{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent;max-width:100%;padding-bottom:4px}}
.transit-map svg { display:block;min-width:100%;max-width:none!important;max-height:none!important;aspect-ratio:480/260; }
main :where(h1,h2,h3,h4) a { text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);text-underline-offset:.18em; }
main :where(h1,h2,h3,h4) a:hover { text-decoration-color:currentColor;color:var(--link-ink); }
/* Secondary destinations remain available in the always-visible full-menu button. */
.hdr__nav .hdr__nav-minor { display:none!important; }
.hdr__nav a { padding-inline:9px!important; }
@media(max-width:1200px){.hdr__nav{display:none}.hdr__bar{min-height:70px}}
@media(min-width:1800px){.hdr__bar{grid-template-columns:auto 1fr}.hdr__nav{grid-row:2;grid-column:1/-1;border-top:1px solid var(--line);padding-top:8px}.hdr__tools{grid-row:1;grid-column:2}}
/* September revision: quieter compact departure board and schedule-first page. */
.transit-widget { grid-template-columns:210px minmax(0,1fr);gap:24px;padding:18px 22px;margin:16px 0 24px;border-radius:18px;background:var(--surface);align-items:center; }
.transit-widget h2 { font-size:24px;line-height:1.2;margin:10px 0; }
.transit-widget .eyebrow { font-size:10px;letter-spacing:.12em; }
.transit-widget__intro .transit-link { margin-top:4px;gap:8px;font-size:13px; }
.transit-widget__bar { font-size:11px;padding-bottom:4px; }
.transit-widget .departure { gap:10px;padding:9px 0;border-radius:0;background:transparent; }
.transit-widget .departure:hover,.transit-widget .departure:focus { background:transparent; }
.transit-widget .departure>span { font-size:13px;text-decoration:none; }
.transit-widget .departure:hover>span { text-decoration:underline;text-underline-offset:3px; }
.transit-widget .departure small { font-size:10px;line-height:1.4;margin-top:2px;text-decoration:none; }
.transit-widget .departure .route-pill { width:30px;height:30px;border-radius:9px;font-size:16px; }
.transit-widget .departure>b:last-child { font-size:15px; }
.transit-widget .transit-caveat { margin-top:7px;font-size:10px; }
.transit-hero--compact { display:flex;align-items:center;gap:20px;padding:18px 0 16px; }
.transit-hero--compact h1 { font-size:clamp(26px,3.2vw,40px);line-height:1.15;letter-spacing:-.035em;margin:8px 0; }
.transit-hero--compact p { font-size:14px;line-height:1.5;margin:0; }
.transit-neon-bus { display:grid;place-items:center;flex:0 0 66px;width:66px;height:66px;border:1px solid #14cda880;border-radius:20px;font-size:36px;line-height:1;background:color-mix(in srgb,var(--transit-accent) 9%,var(--surface));box-shadow:0 0 20px #14cda827,inset 0 0 16px #14cda814;filter:drop-shadow(0 0 5px #14cda82b); }
.transit-hero--compact + .transit-notice { padding:12px 16px;margin:0 0 22px;font-size:12px; }
.transit-learn { margin-top:12px;min-height:40px;font-size:12px; }
@media(max-width:800px){.transit-widget{grid-template-columns:1fr;gap:12px;padding:16px 18px}.transit-widget__intro{display:flex;align-items:center;justify-content:space-between;gap:10px}.transit-widget__intro>.eyebrow{display:none}.transit-widget h2{font-size:20px;margin:0}.transit-widget__intro .transit-link{font-size:12px;margin:0;white-space:nowrap}.transit-widget .departure{padding:8px 0}.transit-widget .departure>span{font-size:12px}.transit-hero--compact{gap:12px;padding-top:14px}.transit-neon-bus{flex-basis:48px;width:48px;height:48px;border-radius:15px;font-size:27px}.transit-hero--compact .eyebrow{font-size:9px}.transit-hero--compact h1{font-size:26px}.transit-hero--compact p{font-size:12px}}
@media(max-width:350px){.transit-widget__intro{align-items:start}.transit-widget h2{font-size:18px}.transit-widget__intro .transit-link{font-size:11px}.transit-widget .departure>b:last-child{font-size:13px}.transit-widget .departure>span{font-size:11px}.transit-hero--compact{gap:10px}.transit-hero--compact h1{font-size:23px}}

.transit-results-link {margin:0 0 16px;font-size:13px}

/* Paired home services: bus departures and utility notices. */
.home-service-widgets { display:grid;grid-template-columns:minmax(0,1fr);gap:20px;margin:16px 0 24px;align-items:start; }
.home-service-widgets>.transit-widget,.home-service-widgets>.util2 { margin:0;min-width:0; }
.transit-widget h2 { display:flex;align-items:center;gap:10px; }
.transit-widget__icon { display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;border:1px solid #14cda870;color:var(--transit-accent);background:#14cda80d;box-shadow:0 0 18px #14cda826,inset 0 0 12px #14cda81a; }
.transit-widget__icon svg { width:24px;height:24px;filter:drop-shadow(0 0 4px #14cda888); }
@media(min-width:1024px){
 .home-service-widgets--paired { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .home-service-widgets--paired .transit-widget { grid-template-columns:minmax(0,1fr);gap:16px; }
 .home-service-widgets--paired .transit-widget__intro { display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap; }
 .home-service-widgets--paired .transit-widget__intro>.eyebrow { display:none; }
 .home-service-widgets--paired .transit-widget h2 { font-size:22px;margin:0; }
 .home-service-widgets--paired .transit-widget__intro .transit-link { margin:0;white-space:nowrap; }
}
@media(max-width:800px){.transit-widget h2{font-size:18px}.transit-widget__icon{width:30px;height:30px;flex-basis:30px;border-radius:10px}.transit-widget__icon svg{width:20px;height:20px}}
@media(max-width:380px){.transit-widget__intro{flex-wrap:wrap}.transit-widget h2{font-size:17px}}

.transit-day{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:12px 0}.transit-day select{min-width:0;max-width:100%;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--sunk);color:var(--ink);font:inherit}.transit-source{margin:12px 0 24px}.transit-service{color:var(--transit-accent);font-size:13px;margin:0 0 12px}.transit-stamps{grid-template-columns:repeat(6,minmax(0,1fr))}@media(max-width:500px){.transit-stamps{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Air comparison: Sharya remains the anchor above all other cities. */
.eco-compare{margin:48px 0;padding:30px;border:1px solid var(--line);border-radius:24px;background:var(--surface)}.eco-compare__head{display:flex;justify-content:space-between;align-items:start;gap:24px}.eco-compare h2{font-size:clamp(27px,3vw,38px);letter-spacing:-.04em;margin:10px 0}.eco-compare__head p,.eco-compare__hint,.eco-compare__source{color:var(--muted);font-size:14px;line-height:1.65}.eco-compare__badge{white-space:nowrap;padding:10px 14px;border-radius:30px;background:#14cda814;color:var(--link-ink);font-size:12px}.eco-compare__controls{display:flex;align-items:end;flex-wrap:wrap;gap:14px;margin:24px 0 14px}.eco-compare__controls label{display:grid;gap:8px;font-size:12px;font-weight:650;flex:1;min-width:190px}.eco-compare select,.eco-compare__controls button{font:inherit;color:var(--ink);background:var(--sunk);border:1px solid var(--line);border-radius:12px;padding:12px;min-height:46px;max-width:100%}.eco-compare button{cursor:pointer}.eco-compare__controls button:disabled{opacity:.5;cursor:wait}.eco-compare__status{font-size:13px;color:var(--muted);min-height:22px}.eco-compare__hint{margin-bottom:20px}.eco-compare__cities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.eco-city{min-width:0;padding:22px;border:1px solid var(--line);border-radius:17px;background:var(--sunk)}.eco-city__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.eco-city h3{margin:0;font-size:19px;line-height:1.3}.eco-city--anchor{border-color:#14cda880;background:linear-gradient(115deg,#14cda818,transparent),var(--sunk)}.eco-city__tag{font-size:12px;color:var(--link-ink)}.eco-city__value{display:flex;align-items:baseline;gap:10px;margin:18px 0 14px;font-variant-numeric:tabular-nums}.eco-city__value b{font-size:34px;line-height:1}.eco-city__value span{font-size:12px;color:var(--muted)}.eco-city__bar{height:5px;background:var(--line);border-radius:5px;overflow:hidden}.eco-city__bar i{display:block;height:100%;background:var(--link-ink);border-radius:5px;transition:width .3s}.eco-city__delta{font-size:13px;margin:14px 0 6px}.eco-city__time{font-size:11px;color:var(--muted);margin:0}.eco-city__more{display:inline-block;margin-top:18px;padding:8px 0;background:none;border:0;color:var(--link-ink);font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:4px}.eco-city.is-selected{border-color:var(--link-ink)}.eco-compare__detail{margin-top:24px;padding:22px;border:1px solid var(--line);border-radius:16px;scroll-margin-top:150px}.eco-compare__detail h3{font-size:24px;margin:0 0 18px}.eco-compare__tablewrap{overflow-x:auto}.eco-compare table{width:100%;border-collapse:collapse;font-size:13px}.eco-compare caption{text-align:left;color:var(--muted);padding-bottom:12px}.eco-compare th,.eco-compare td{text-align:left;padding:14px 12px;border-bottom:1px solid var(--line);min-width:90px}.eco-compare__source{margin:22px 0 0;font-size:12px}.eco-compare a{color:var(--link-ink);text-decoration:underline;text-underline-offset:3px}@media(max-width:1000px){.eco-compare__cities{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.eco-compare{padding:18px;margin:30px 0}.eco-compare__head{display:block}.eco-compare__badge{display:inline-block;margin-top:12px}.eco-compare__cities{grid-template-columns:1fr}.eco-city{padding:18px}.eco-compare__controls>*{width:100%}.eco-compare__controls label{min-width:0}.eco-compare__detail{padding:14px}.eco-city__head{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.eco-city__bar i{transition:none}}
.eco-compare__controls select{min-width:0;width:100%}@media(max-width:600px){.eco-compare__controls{flex-direction:column;align-items:stretch}.eco-compare__controls label{flex:none;width:100%}}

/* Text-bearing generated covers must never sit behind the publication title. */
.hero.hero--cover{display:block;min-height:0;align-self:start;background:var(--surface);border:1px solid var(--line)}
.hero.hero--cover>img{position:static;inset:auto;display:block;width:100%;height:auto;aspect-ratio:40/21;object-fit:cover;transform:none;background:var(--board-bg)}
.hero.hero--cover:hover>img{transform:none}
.hero.hero--cover::after{display:none}
.hero.hero--cover .hero__body{background:var(--surface);color:var(--ink);padding:clamp(18px,2.5vw,30px)}
.hero.hero--cover .hero__body .meta{color:var(--muted);flex-wrap:wrap}
.hero.hero--cover .hero__body .meta__cat{color:var(--link-ink)}
.hero.hero--cover .hero__title{font-size:clamp(23px,2.7vw,36px);line-height:1.2;text-shadow:none;overflow-wrap:anywhere;margin:12px 0}
.hero.hero--cover .hero__lead{color:var(--muted);line-height:1.55}

.eco-city,.eco-legend button{--severity:#8994a5}.eco-city[data-level="0"],.eco-legend [data-level="0"]{--severity:#22b573}.eco-city[data-level="1"],.eco-legend [data-level="1"]{--severity:#92bc35}.eco-city[data-level="2"],.eco-legend [data-level="2"]{--severity:#e4b12a}.eco-city[data-level="3"],.eco-legend [data-level="3"]{--severity:#ef842f}.eco-city[data-level="4"],.eco-legend [data-level="4"]{--severity:#ee5353}.eco-city[data-level="5"],.eco-legend [data-level="5"]{--severity:#c93457}
.eco-city__bar i{background:var(--severity)}.eco-city__severity{display:inline-flex;align-items:center;gap:7px;margin-top:12px;padding:6px 10px;border-radius:9px;color:var(--ink);background:color-mix(in srgb,var(--severity) 14%,var(--surface));font-size:12px}.eco-city__severity::before,.eco-legend button::before{content:'';width:9px;height:9px;border-radius:50%;background:var(--severity);flex-shrink:0}.eco-city{transition:opacity .2s,border-color .2s}.eco-city.is-dimmed{opacity:.42}.eco-legend{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 10px}.eco-legend button{display:flex;align-items:center;gap:7px;font:inherit;font-size:12px;padding:9px 12px;border:1px solid var(--line);background:var(--sunk);color:var(--ink);border-radius:24px;cursor:pointer}.eco-legend button[aria-pressed="true"]{border-color:var(--severity);box-shadow:0 0 0 2px color-mix(in srgb,var(--severity) 20%,transparent)}.eco-legend button:focus-visible{outline:2px solid var(--link-ink);outline-offset:3px}.hero.hero--cover .hero__body{padding:clamp(24px,3vw,40px)}

/* Each physical direction has its own next departure, visible even with the schedule closed. */
.transit-route__next-label{font-size:12px;color:var(--muted);margin:12px 0 8px}
.transit-route__departures{display:grid;gap:8px;margin:0 0 18px}
.transit-route__departure{padding:12px 14px;border:1px solid var(--line);border-left:3px solid var(--rc);border-radius:12px;background:var(--sunk);min-width:0}
.transit-route__departure dt{font-size:13px;line-height:1.5;color:var(--ink);overflow-wrap:anywhere}
.transit-route__departure dd{margin:4px 0 0;font-size:15px;line-height:1.5;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}

.transit-stops{margin:0 0 16px}.transit-stops ol{padding:4px 0 4px 26px;margin:0;columns:2;column-gap:24px}.transit-stops li{padding:5px 0;line-height:1.5;font-size:13px;break-inside:avoid;overflow-wrap:anywhere}.transit-stops li::marker{color:var(--muted)}@media(max-width:540px){.transit-stops ol{columns:1}}
/* v12: useful city dashboards */
.transit-controls,.camera-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:16px 0}.transit-controls label,.camera-controls label{display:grid;gap:6px;min-width:0;flex:1}.transit-controls select,.camera-controls input,.camera-controls select{width:100%;min-width:0;border:1px solid var(--line,#26364d);border-radius:12px;background:var(--sunk,#101928);color:var(--ink,#edf3ff);padding:12px;font:inherit}.transit-controls button,.camera-hub button,.widget-star{border:1px solid var(--line,#26364d);border-radius:12px;padding:10px 14px;background:var(--sunk,#101928);color:var(--ink,#edf3ff);font:inherit;cursor:pointer}.transit-controls [aria-pressed=true],.camera-hub [aria-pressed=true]{border-color:#38cbb3;color:#38cbb3}[data-transit-departures]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.widget-route{padding:16px;border:1px solid var(--line,#26364d);border-radius:16px;min-width:0;background:var(--sunk,#101928)}.widget-route__head{display:flex;align-items:center;gap:10px}.widget-route__head a{flex:1;line-height:1.4;font-weight:700}.widget-route .route-pill{flex-shrink:0}.widget-direction{display:grid;gap:5px;padding-top:12px;margin-top:12px;border-top:1px solid var(--line,#26364d);font-size:14px;line-height:1.4}.widget-direction strong{color:var(--ink,#edf3ff);font-variant-numeric:tabular-nums}.widget-direction small{color:var(--muted,#94a3b8)}.transit-widget .transit-link{display:inline-flex;align-items:center;gap:16px;margin-top:16px;padding:13px 18px;border-radius:12px;background:#00b9a2;color:#061e22!important;text-decoration:none!important;font-weight:800;box-shadow:0 5px 22px #00c9ae20;transition:transform .2s,box-shadow .2s}.transit-widget .transit-link:hover{transform:translateY(-2px);box-shadow:0 6px 26px #00c9ae40}.home-service-widgets--paired [data-transit-departures]{grid-template-columns:1fr}.transit-mission{margin-top:16px;font-size:14px}.transit-mission summary{cursor:pointer;color:#38cbb3}.transit-mission p{margin:8px 0}.wx{position:relative;background:linear-gradient(125deg,var(--sunk,#101928),#009afa12);border:1px solid var(--line,#26364d)}.wx.wx--compact{display:block;max-width:520px}.wx-forecast{margin-top:10px;border-top:1px solid var(--line,#26364d);padding-top:8px;font-size:13px}.wx-forecast summary{cursor:pointer;font-weight:700;color:var(--signal,#008bf9)}.wx-forecast .wx__days{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}.wx-updated{color:var(--muted,#94a3b8);font-size:11px}.wx__icon{filter:drop-shadow(0 0 9px #008bf960);animation:city-float 5s ease-in-out infinite}.camera-hub{padding-top:26px;padding-bottom:48px}.camera-hero{padding:30px 0}.camera-hero h1{font-size:clamp(30px,4vw,58px);line-height:1.1;max-width:950px;margin:14px 0}.camera-hero p{color:var(--muted,#94a3b8);font-size:18px}.camera-count{color:#38cbb3;font-size:14px}.camera-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.camera-tile{min-width:0;border:1px solid var(--line,#26364d);border-radius:20px;overflow:hidden;background:var(--sunk,#101928);transition:box-shadow .25s,transform .25s}.camera-tile:hover{box-shadow:0 12px 30px #008bf918}.camera-preview{aspect-ratio:16/9;position:relative;background:radial-gradient(ellipse at center,#125775,#0c192b);display:grid;place-items:center}.camera-preview img,.camera-preview iframe{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;border:0}.camera-preview button{z-index:1;background:#071326db;border:1px solid #49c4ff;color:#fff;border-radius:999px;padding:12px 24px;box-shadow:0 0 25px #008bf940}.is-playing .camera-preview button{display:none}.camera-body{padding:20px}.camera-body h2{font-size:20px;line-height:1.35;margin:10px 0 20px}.camera-body small{color:var(--muted,#94a3b8)}.camera-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:13px}.camera-game{display:flex;align-items:center;gap:16px;flex-wrap:wrap;border:1px solid #38cbb344;border-radius:16px;padding:18px;background:#38cbb308}.camera-game p{margin:0;flex:1}.camera-game progress{accent-color:#00bfa5;max-width:150px}.camera-help{margin-top:32px;padding:24px;background:var(--sunk,#101928);border-radius:20px;line-height:1.7}.camera-help summary{cursor:pointer;font-weight:700}.camera-related{display:flex;gap:16px;flex-wrap:wrap;margin-top:28px}.camera-related h2{width:100%}.camera-tile[hidden]{display:none}.camera-grid:has(>.camera-tile:only-child){grid-template-columns:minmax(0,1000px)}
@keyframes city-float{50%{transform:translateY(-3px)}}
@media(max-width:1000px){.camera-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){[data-transit-departures],.camera-grid{grid-template-columns:1fr}.transit-controls,.camera-controls{align-items:stretch;flex-direction:column}.wx.wx--compact{max-width:100%;width:100%}.widget-route{padding:12px}.camera-game{align-items:flex-start;flex-direction:column}.camera-hero{padding:20px 0}.transit-widget .transit-link{margin-top:8px}}@media(prefers-reduced-motion:reduce){.wx__icon{animation:none}.camera-tile,.transit-widget .transit-link{transition:none}}

.home-service-widgets:not(.home-service-widgets--paired) .transit-widget{grid-template-columns:1fr;gap:16px}.home-service-widgets:not(.home-service-widgets--paired) .transit-widget__intro{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.home-service-widgets:not(.home-service-widgets--paired) .transit-widget__intro>.eyebrow{display:none}.home-service-widgets:not(.home-service-widgets--paired) .transit-widget__intro h2{margin:0;flex:1}.home-service-widgets:not(.home-service-widgets--paired) .transit-widget__intro .transit-link{margin:0}.home-service-widgets:not(.home-service-widgets--paired) [data-transit-departures]{grid-template-columns:repeat(3,minmax(0,1fr))}.widget-expand{margin-top:12px;padding:10px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);cursor:pointer}.transit-controls [aria-pressed=true],.camera-hub [aria-pressed=true],.camera-count{color:var(--signal)}@media(max-width:1000px){.home-service-widgets:not(.home-service-widgets--paired) [data-transit-departures]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.home-service-widgets:not(.home-service-widgets--paired) [data-transit-departures]{grid-template-columns:1fr}}
/* v13: compact full board; unchanged paired departure rows. */
.home-service-widgets--paired .transit-controls,.home-service-widgets--paired .widget-expand,.home-service-widgets--paired .transit-mission{display:none!important}.home-service-widgets--paired [data-transit-departures]{display:block}.home-service-widgets--paired .transit-link{padding:0;background:none;color:var(--link-ink)!important;box-shadow:none;text-decoration:underline!important;border-radius:0;transform:none}
.home-service-widgets:not(.home-service-widgets--paired) .transit-widget{padding:18px 22px;gap:8px}.home-service-widgets:not(.home-service-widgets--paired) .transit-widget__board{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.home-service-widgets:not(.home-service-widgets--paired) .transit-widget__bar,.home-service-widgets:not(.home-service-widgets--paired) [data-transit-departures],.home-service-widgets:not(.home-service-widgets--paired) .transit-caveat{grid-column:1/-1}.home-service-widgets:not(.home-service-widgets--paired) .transit-controls{margin:0;gap:8px;align-items:center}.home-service-widgets:not(.home-service-widgets--paired) .transit-day{margin:0;display:flex;gap:8px;align-items:center;font-size:12px}.transit-controls label{font-size:12px;gap:3px}.transit-controls select{appearance:none;background:linear-gradient(135deg,#00bda510,transparent),var(--surface);border:1px solid #00bda560;border-radius:12px;padding:9px 30px 9px 12px;font-weight:650;box-shadow:0 2px 8px #00bda50b}.transit-controls label{position:relative}.transit-controls label::after{content:'⌄';position:absolute;right:12px;bottom:9px;color:var(--signal);pointer-events:none}.widget-route{padding:12px}.widget-route__head{gap:8px;font-size:13px}.widget-direction{padding-top:7px;margin-top:7px;font-size:12px;gap:2px}.widget-star{padding:5px 9px}.widget-route .route-pill{position:relative;width:34px;height:34px;font-size:21px;overflow:visible}.widget-moving-bus{position:absolute;font-size:13px;bottom:-8px;right:-5px;animation:bus-cruise 3s ease-in-out infinite;filter:drop-shadow(0 0 4px var(--rc))}.widget-expand{justify-self:start;margin:0;padding:7px 12px;font-size:12px}.transit-mission{justify-self:end;margin:0;font-size:12px}.transit-mission p{max-width:350px}.transit-caveat{margin:2px 0 0}.ecom:hover,.ecom:focus-within{z-index:20}.ecom__hint{z-index:30;background:var(--board-bg);isolation:isolate}.eco__panel{overflow:visible}.eco__metrics{position:relative;z-index:3}.eco__chart{position:relative;z-index:1}
@keyframes bus-cruise{0%,100%{transform:translateX(-3px)}50%{transform:translateX(3px)}}@media(prefers-reduced-motion:reduce){.widget-moving-bus{animation:none}}@media(max-width:650px){.home-service-widgets:not(.home-service-widgets--paired) .transit-widget__board{grid-template-columns:1fr}.home-service-widgets:not(.home-service-widgets--paired) .transit-day{flex-wrap:wrap}.transit-mission{justify-self:start}.home-service-widgets:not(.home-service-widgets--paired) .transit-widget{padding:14px}.transit-controls{flex-direction:row}.transit-controls label{flex:1}.transit-controls button{font-size:12px;padding:9px}}
/* Clear calls to action and contextual city navigation. */
.note a.kino__call,.note a.kino__call:hover,.note a.kino__call:visited{position:relative;z-index:10;color:#172033!important;background:#ffd15c;text-decoration:none!important;border:1px solid #ffc53d;isolation:isolate;display:inline-flex;align-items:center;gap:12px;line-height:1.4;padding:16px 22px}.kino__call svg{flex-shrink:0}.kino__call span{color:inherit}.city-services{margin-block:30px 48px}.city-services h2{font-size:clamp(24px,3vw,32px);margin-bottom:18px}.city-services__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.city-services__grid a{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);text-decoration:none}.city-services__grid a>span:nth-child(2){flex:1;min-width:0}.city-services__grid b{font-size:14px;text-decoration:underline;text-underline-offset:3px;color:var(--link-ink)}.city-services__grid small{display:block;font-size:12px;color:var(--muted);margin-top:6px}.city-services__grid a:hover{border-color:var(--signal)}
.wx-scene{position:relative;display:grid;place-items:center;flex:none;width:58px;height:58px;overflow:hidden;isolation:isolate}.wx-symbol{font-size:35px;line-height:1.2;filter:drop-shadow(0 0 8px #21adff80);animation:wx-drift 4s ease-in-out infinite;z-index:1}.wx:hover .wx-symbol{animation-duration:1.8s}.wx-scene--sun .wx-symbol{filter:drop-shadow(0 0 9px #ffc53daa);animation:wx-sun 12s linear infinite}.wx-particles{position:absolute;inset:28px 7px 0;pointer-events:none}.wx-particles i{display:none;position:absolute;top:0;left:10%;width:2px;height:9px;background:#48c6ff;border-radius:2px;box-shadow:0 0 5px #009aff;animation:wx-rain 1.1s linear infinite}.wx-particles i:nth-child(2){left:30%;animation-delay:-.6s}.wx-particles i:nth-child(3){left:50%;animation-delay:-.2s}.wx-particles i:nth-child(4){left:70%;animation-delay:-.8s}.wx-particles i:nth-child(5){left:90%;animation-delay:-.4s}.wx-scene--rain i,.wx-scene--snow i,.wx-scene--storm i{display:block}.wx-scene--snow i{width:4px;height:4px;background:#e5faff;border-radius:50%;animation-duration:2.6s}.wx-scene--fog .wx-symbol{animation:wx-fog 5s ease-in-out infinite}.wx-scene--storm .wx-symbol{filter:drop-shadow(0 0 12px #ad9bff)}
@keyframes wx-drift{50%{transform:translate(4px,-3px)}}@keyframes wx-sun{50%{transform:rotate(18deg) scale(1.1)}}@keyframes wx-rain{from{transform:translate(3px,-6px);opacity:0}20%{opacity:1}to{transform:translate(-4px,29px);opacity:0}}@keyframes wx-fog{50%{transform:translateX(5px);opacity:.65}}
@media(max-width:900px){.city-services__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:550px){.city-services__grid{grid-template-columns:1fr}.wx-scene{width:46px;height:52px}.wx-symbol{font-size:30px}.note a.kino__call{padding:14px;font-size:14px}}
@media(prefers-reduced-motion:reduce){.wx-symbol,.wx-particles i{animation:none!important}.wx-particles i{opacity:.7}}
/* On small screens explanations expand inside their card, never behind the chart. */
@media(max-width:650px){.ecom:hover .ecom__hint,.ecom:focus-visible .ecom__hint{position:static;display:block;margin-top:6px;opacity:1;transform:none}.ecom__hint{display:none}.ecom:hover,.ecom:focus-visible{transform:none}}

.pgallery__item--conference{grid-column:1/-1;max-width:760px;width:100%;justify-self:center}.pgallery__item--conference img{width:100%;height:auto;object-fit:contain}.pgallery__item--conference:hover img{transform:none}.pgallery__item--conference figcaption{position:static;opacity:1;transform:none;padding:14px 18px;background:var(--surface);color:var(--ink);font-size:14px}

.person__avatar,.whois__ini{position:relative;overflow:hidden;flex-shrink:0;aspect-ratio:1}.person__avatar .person-photo,.whois__ini .person-photo{position:absolute;width:300%;max-width:none;height:auto;left:-85%;top:-118%;margin:0;display:block}.note a.whois__card,.note a.whois__card:hover,.note a.whois__card:visited,.whois__card *{text-decoration:none!important}.whois__card .whois__title,.whois__card .whois__go{text-decoration:underline!important;text-underline-offset:4px}.whois__card .whois__text{color:var(--muted)}.whois__card:focus-visible{outline:3px solid var(--signal);outline-offset:4px}
/* v13.3: board and story remain separate; route numbers never wrap. */
.board{margin-bottom:clamp(16px,2vw,26px);isolation:isolate;flex-shrink:0}.board__head{flex-wrap:wrap}.board__live{white-space:nowrap;flex-shrink:0}.board__rows{height:auto;min-height:62px;display:grid}.board__row{position:relative;inset:auto;grid-area:1/1;min-height:62px}.board__row:not(.is-on){pointer-events:none}.route-pill,.widget-route .route-pill{white-space:nowrap;word-break:normal;overflow-wrap:normal;flex-shrink:0;min-width:46px;width:auto;min-height:36px;height:auto;padding:4px 7px;line-height:1.15;font-size:20px;display:inline-flex;align-items:center;justify-content:center}.widget-moving-bus{font-size:13px;line-height:1;bottom:-6px;right:-3px}.board + .leadgrid{margin-top:0}
@media(max-width:650px){.board__rows,.board__row{min-height:86px}.board__text{line-height:1.4}.hero:not(.hero--cover){display:flex;flex-direction:column;align-items:stretch;min-height:0}.hero:not(.hero--cover)>img{position:static;width:100%;height:auto;object-fit:contain;transform:none}.hero:not(.hero--cover)::after{display:none}.hero:not(.hero--cover) .hero__body{background:var(--board-bg);padding:20px}.hero:not(.hero--cover) .hero__title{line-height:1.2}}
/* Uniform photo tiles; mobile native swipe; full-size accessible viewer. */
.profile-gallery{margin:28px 0 32px;min-width:0}.profile-gallery__head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:16px}.note .profile-gallery h2{margin:6px 0 0;font:750 26px/1.15 var(--font-display)}.profile-gallery__hint{font:400 12px/1.4 var(--font-display);color:var(--muted)}.profile-gallery__track{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.profile-gallery__tile{margin:0!important;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.note .profile-gallery__open{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;text-decoration:none!important;background:var(--sunk)}.profile-gallery__open img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 25%;margin:0;border-radius:0;transition:transform .3s ease}.profile-gallery__open:hover img{transform:scale(1.035)}.profile-gallery__zoom{position:absolute;bottom:12px;right:12px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#0c182bca;color:white;font:20px/1 var(--font-display)}.profile-gallery__tile figcaption{display:flex;gap:9px;align-items:start;padding:14px;font:500 13px/1.45 var(--font-display);color:var(--ink)}.profile-gallery__index{font:500 11px/1.7 var(--font-mono);color:var(--muted)}.profile-gallery__nav{display:none;align-items:center;justify-content:space-between;margin-top:12px;font:400 12px/1.4 var(--font-display);color:var(--muted)}.profile-gallery__nav button,.profile-lightbox button{display:grid;place-items:center;min-width:44px;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:600 16px/1 var(--font-display);cursor:pointer}.profile-lightbox{width:min(960px,calc(100vw - 24px));max-width:none;height:min(880px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--ink);overflow:hidden}.profile-lightbox[open]{display:flex;flex-direction:column;gap:12px}.profile-lightbox::backdrop{background:#040b16db;backdrop-filter:blur(6px)}.profile-lightbox__toolbar{display:flex;align-items:center;justify-content:space-between;flex:none;font:500 13px/1.4 var(--font-display)}.profile-lightbox>img{display:block;width:100%;min-height:0;flex:1;object-fit:contain;border-radius:8px;margin:0;background:var(--sunk)}.profile-lightbox__footer{display:flex;align-items:center;gap:12px;flex:none}.profile-lightbox__footer p{flex:1;margin:0;text-align:center;font:500 14px/1.4 var(--font-display)}
@media(max-width:1000px){.profile-gallery__track{grid-template-columns:repeat(2,minmax(0,1fr))}.note .profile-gallery__open{aspect-ratio:4/3}}
@media(max-width:600px){.profile-gallery__head{display:block}.profile-gallery__hint{display:block;margin-top:8px}.profile-gallery__track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding-bottom:8px;overscroll-behavior-x:contain}.profile-gallery__tile{flex:0 0 84%;scroll-snap-align:start}.note .profile-gallery__open{aspect-ratio:4/5;max-height:340px}.profile-gallery__nav:not([hidden]){display:flex}.profile-lightbox{padding:12px}.profile-lightbox__footer{gap:8px}.profile-lightbox__footer p{font-size:12px}}
@media(prefers-reduced-motion:reduce){.profile-gallery__open img{transition:none}}
.profile-gallery__index{flex:0 0 auto;white-space:nowrap;word-break:normal;overflow-wrap:normal}

/* Photo viewer: buttons never navigate; enlarged images scroll inside the dialog. */
.note button.profile-gallery__open{width:100%;padding:0;border:0;cursor:zoom-in;color:inherit;font:inherit;text-align:inherit}
.profile-lightbox__zoom{display:flex;justify-content:center;gap:8px;flex:none}
.profile-lightbox__viewport{flex:1;min-height:0;overflow:auto;background:var(--sunk);border-radius:8px;overscroll-behavior:contain}
.profile-lightbox__viewport img{display:block;width:100%;height:100%;max-width:none;object-fit:contain;margin:0;border-radius:0;cursor:zoom-in}
.profile-lightbox__viewport.is-zoomed img{cursor:grab}
/* Quiet full-photo overlay with a soft entrance and exit. */
.profile-lightbox{width:min(1080px,calc(100vw - 24px));height:calc(100dvh - 32px);max-height:960px;border-radius:24px;box-shadow:0 24px 100px #0008;opacity:0;transform:translateY(12px) scale(.97);transition:opacity .22s ease,transform .22s ease}
.profile-lightbox.is-visible{opacity:1;transform:translateY(0) scale(1)}
.profile-lightbox::backdrop{background:#040b1600;backdrop-filter:blur(0);transition:background .22s ease,backdrop-filter .22s ease}
.profile-lightbox.is-visible::backdrop{background:#040b16d9;backdrop-filter:blur(10px)}
.profile-lightbox [data-photo-close]{width:44px;height:44px;border-radius:50%;font:300 30px/1 sans-serif;background:var(--sunk)}
.profile-lightbox__viewport{overflow:hidden;background:transparent}
.profile-lightbox__viewport img{cursor:default;object-fit:contain}
@media(prefers-reduced-motion:reduce){.profile-lightbox,.profile-lightbox::backdrop{transition:none}}
/* Air quality in the home weather card. */
.wx-air{--air-color:#8797ac;--air-position:0%;border-top:1px solid var(--line);padding-top:10px;margin-top:10px;font-family:var(--font-display)}
.wx-air summary{display:flex;gap:10px;align-items:center;cursor:pointer;list-style:none}.wx-air summary::-webkit-details-marker{display:none}.wx-air summary>span:nth-child(2){flex:1;min-width:0}.wx-air summary b,.wx-air summary small{display:block}.wx-air summary b{font-size:13px}.wx-air summary small{font-size:12px;color:var(--muted)}.wx-air summary strong{font:750 24px/1 var(--font-display);color:var(--ink)}.wx-air__orb{display:grid;place-items:center;flex:none;width:36px;height:36px;border:1px solid var(--air-color);border-radius:50%;color:var(--air-color);font-size:28px;box-shadow:0 0 15px color-mix(in srgb,var(--air-color) 35%,transparent);animation:airGlow 3s ease-in-out infinite}.wx-air__details{padding:14px 2px 4px;max-width:440px}.wx-air__details p{font:400 12px/1.6 var(--font-display);color:var(--muted);margin:10px 0}.wx-air__details a{font-size:13px}.wx-air__details button{display:block;margin-top:12px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;font-size:12px}.wx-air__scale{position:relative;height:6px;border-radius:10px;background:linear-gradient(90deg,#21d995,#65cfa0,#e4b83f,#ef884f,#f05b73)}.wx-air__scale i{position:absolute;left:clamp(4px,var(--air-position),calc(100% - 4px));top:-3px;width:4px;height:12px;border-radius:3px;background:var(--ink);transition:left .7s ease}.wx-air[open] .wx-air__details{animation:contactEnter .3s ease both}@keyframes airGlow{50%{box-shadow:0 0 22px color-mix(in srgb,var(--air-color) 55%,transparent)}}
.network__grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.sn__body b{white-space:nowrap;word-break:normal;overflow-wrap:normal}.sn__body{flex:1}.sn__go{position:absolute;right:8px;top:8px;width:14px}.sn{gap:10px;padding:14px}.sn__icon{width:38px;height:38px}
.contact-hub{font-family:var(--font-display)}.contact-intro{padding:clamp(20px,4vw,48px);border:1px solid var(--line);border-radius:24px;background:radial-gradient(ellipse at top right,#008bf922,transparent 65%),var(--surface);margin-bottom:24px;animation:contactEnter .6s ease both}.contact-intro h2{font-size:clamp(28px,4vw,52px);line-height:1.1;margin:12px 0}.contact-intro h2 span{color:var(--signal)}.contact-intro p{max-width:640px;color:var(--muted)}.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.contact-hub .contact-card{display:flex;flex-direction:column;gap:14px;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--surface);text-decoration:none!important;min-width:0;transition:transform .25s,border-color .25s,box-shadow .25s}.contact-card:hover{transform:translateY(-4px);border-color:var(--signal);box-shadow:0 12px 35px #008bf918}.contact-card .contact-icon{font-size:30px;color:var(--signal);text-shadow:0 0 20px #008bf955}.contact-card h3{font-size:22px;margin:0}.contact-card p{font:400 15px/1.65 var(--font-display);margin:0;color:var(--muted)}.contact-card strong{margin-top:auto;color:var(--signal);text-decoration:underline;text-underline-offset:5px}.contact-card button{padding:10px 12px;border:1px solid var(--line);border-radius:12px;font-size:13px}.contact-card [role=status]{font-size:12px;color:var(--muted)}.contact-help{margin-top:32px}.contact-help h2{font-size:26px}.contact-help details{border-bottom:1px solid var(--line);padding:18px 0}.contact-help summary{cursor:pointer;font-weight:650}.contact-help p{font:400 15px/1.7 var(--font-display)}.contact-location{font:400 13px/1.5 var(--font-display);color:var(--muted);margin-top:24px}@keyframes contactEnter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:800px){.contact-grid{grid-template-columns:1fr}.contact-card{padding:20px}}
@media(prefers-reduced-motion:reduce){.wx-air__orb,.wx-air[open] .wx-air__details,.contact-intro{animation:none}.contact-card,.wx-air__scale i{transition:none}}

/* Five networks on one desktop row; swipeable cards on smaller screens. */
.network__grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.network__grid .sn{min-width:0;flex-wrap:wrap;align-content:center}
.network__grid .sn__body{flex-basis:150px;min-width:0}
.network__grid .sn__body b{font-size:clamp(15px,1.35vw,20px)}
@media(max-width:1000px){.network__grid{grid-template-columns:repeat(5,230px);overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:12px}.network__grid .sn{scroll-snap-align:start}.network__grid .sn__body b{font-size:18px}}
.article-context{margin:28px 0;padding:22px;border:1px solid var(--line,#29384d);border-radius:18px;background:var(--surface,#131e2e)}
.article-context>strong{display:block;margin-bottom:14px}
.article-context>div{display:flex;flex-wrap:wrap;gap:12px}
.article-context a{display:inline-flex;gap:12px;padding:10px 14px;border:1px solid currentColor;border-radius:12px;text-decoration:none}
.article-context a:hover,.article-context a:focus-visible{text-decoration:underline}

/* Headline and live city conditions share the first news row. */
.nowhead__intro{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,1fr);align-items:center;gap:32px;margin-bottom:24px}
.nowhead__intro h1{margin:0;font-size:clamp(32px,4.2vw,68px);overflow-wrap:normal;line-height:1.04}
.nowhead__intro>.wx{width:100%;min-width:0;box-sizing:border-box}
.nowhead__intro .wx__now{min-width:0;flex-wrap:wrap}
.nowhead__intro .wx__meta{flex:1;min-width:150px}
@media(max-width:900px){.nowhead__intro{grid-template-columns:1fr;gap:20px}.nowhead__intro h1{font-size:clamp(30px,7vw,54px)}}
@media(max-width:480px){.nowhead__intro .wx{padding:16px}.nowhead__intro .wx__now{gap:12px}}

.ftr__grid{grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,1fr));gap:28px}
.ftr__grid>*{min-width:0}
@media(max-width:1100px){.ftr__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ftr__brand{grid-column:1 / -1}}
@media(max-width:520px){.ftr__grid{grid-template-columns:minmax(0,1fr)}}

/* Service links: consistent label color and an unbreakable icon column. */
.drawer__nav :is(.drawer__cameras,.drawer__weather,.drawer__directory,.drawer__utilities){display:flex!important;align-items:center;gap:10px;color:var(--ink);}
.drawer__cameras{--neon:#3DC7FF}
.drawer__weather{--neon:#FFCB57}
.drawer__directory{--neon:#B38DFF}
.drawer__utilities{--neon:#FFB020}
.drawer__nav a>.neon{flex:0 0 26px;width:26px;height:26px;margin:-3px 0;}
.drawer__nav a>.neon+span{min-width:0;}
.drawer__nav :is(.drawer__cameras,.drawer__weather,.drawer__directory,.drawer__utilities):hover{color:var(--signal);}


/* Text follows the same theme/active/hover rules as other header links. */
.hdr__nav-cameras,.hdr__nav-weather{display:inline-flex!important;align-items:center;gap:8px;}
.hdr__nav-cameras{--neon:#3DC7FF}
.hdr__nav-weather{--neon:#FFCB57}
.hdr__nav-cameras .neon,.hdr__nav-weather .neon{flex-shrink:0}
@media(max-width:1540px){.hdr__nav-cameras .hdr__nav-label,.hdr__nav-weather .hdr__nav-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}}


.hdr__nav-directory{--neon:#B38DFF;display:inline-flex!important;align-items:center;gap:8px;position:relative;}
.hdr__nav-directory .neon{flex-shrink:0;}
@media(max-width:1540px){.hdr__nav-directory .hdr__nav-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}}
.reader-feedback{margin:40px 0;padding:clamp(20px,4vw,40px);border:1px solid var(--line,#405063);border-radius:24px;background:linear-gradient(125deg,#009dff0c,transparent);scroll-margin-top:110px}.reader-feedback h2{margin:10px 0}.reader-feedback form{display:grid;gap:18px;margin-top:24px}.reader-feedback label{display:grid;gap:8px;font-size:16px}.reader-feedback input:not([type=checkbox]),.reader-feedback textarea,.reader-feedback select{width:100%;max-width:100%;box-sizing:border-box;padding:13px 15px;border:1px solid var(--line,#53647c);border-radius:12px;background:var(--bg,#101b2a);color:var(--ink,#eaf2ff);font:inherit}.reader-feedback textarea{resize:vertical;min-height:140px}.reader-feedback .feedback-check{display:flex;align-items:flex-start;gap:10px}.feedback-check input{margin-top:5px;min-width:18px;width:18px;height:18px;accent-color:#009dff}.feedback-details{display:grid;grid-template-columns:1fr 1fr;gap:16px}.feedback-details[hidden]{display:none}.feedback-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.feedback-note{font-size:14px;line-height:1.6;opacity:.75}.reader-feedback .btn{justify-self:start}.reader-feedback :focus-visible{outline:3px solid #009dff;outline-offset:3px}.reader-feedback [role=status]{min-height:24px;margin:0}.reader-feedback small{opacity:.7}@media(max-width:600px){.feedback-details{grid-template-columns:1fr}.reader-feedback{padding:18px}.reader-feedback .btn{width:100%}}

/* Mobile navigation stability and light camera contrast — 2026-10-08 */
@media (max-width:900px) {
  .hdr,.hdr.is-hidden {
    transform:none!important;
    transition:none!important;
    background:var(--surface)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    opacity:1!important;
    visibility:visible!important;
  }
}
html[data-theme="light"] .home-cam {
  background:#fff!important;
  border-color:#1688af;
  box-shadow:0 8px 28px #12334b12;
  color:#142436;
}
html[data-theme="light"] .home-cam__head,
html[data-theme="light"] .home-cam__side,
html[data-theme="light"] .home-cam__foot {background:#fff!important;}
html[data-theme="light"] .home-cam__head small,
html[data-theme="light"] .home-cam__status,
html[data-theme="light"] .home-cam__foot {color:#46586b!important;}
html[data-theme="light"] .home-cam__dot {color:#087d69!important;}
html[data-theme="light"] .home-cam__badge {color:#006fac!important;}
html[data-theme="light"] .home-cam__row button {color:#142436!important;border-color:#9aaabd!important;}
html[data-theme="light"] .camera-preview button,
html[data-theme="light"] .camera-preview__play {color:#fff!important;}

/* Ледовая арена: неоновый пункт меню (как у «Автобусов») — 2026-10-12 */
.hdr__nav-ice{display:inline-flex!important;align-items:center;gap:8px;--neon:#7DD3FC}
.hdr__nav-ice:hover .neon,.hdr__nav-ice:focus-visible .neon{transform:scale(1.12) rotate(-8deg);box-shadow:0 0 0 1px var(--neon),0 0 16px 1px color-mix(in srgb,var(--neon) 75%,transparent),0 0 32px 2px color-mix(in srgb,var(--neon) 35%,transparent),inset 0 0 10px -1px color-mix(in srgb,var(--neon) 70%,transparent)}
.hdr__nav-ice.is-active .neon{box-shadow:0 0 0 1.5px var(--neon),0 0 18px 1px color-mix(in srgb,var(--neon) 70%,transparent)}
.hdr__nav-ice[data-tip]::after{box-shadow:0 0 0 1px color-mix(in srgb,var(--neon) 45%,transparent),0 0 18px -4px var(--neon)}
.drawer__ice{display:flex!important;align-items:center;gap:10px;--neon:#7DD3FC}
.drawer__ice .neon{width:26px;height:26px;margin:-3px 0}
@media (max-width:1540px){.hdr__nav-ice .hdr__nav-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}

/* Виджет камеры на главной: светлая системная тема без сохранённого выбора.
   Раньше светлое оформление работало только при явном data-theme="light" —
   при светлой теме системы правая половина карточки оставалась тёмной,
   а текст светлым и плохо читался. */
@media (prefers-color-scheme:light){
  html:not([data-theme="dark"]) .home-cam{background:#fff!important;border-color:#1688af;box-shadow:0 8px 28px #12334b12;color:#142436}
  html:not([data-theme="dark"]) .home-cam__head,
  html:not([data-theme="dark"]) .home-cam__side,
  html:not([data-theme="dark"]) .home-cam__foot{background:#fff!important}
  html:not([data-theme="dark"]) .home-cam__head small,
  html:not([data-theme="dark"]) .home-cam__status,
  html:not([data-theme="dark"]) .home-cam__foot{color:#46586b!important}
  html:not([data-theme="dark"]) .home-cam__dot{color:#087d69!important}
  html:not([data-theme="dark"]) .home-cam__badge{color:#006fac!important}
  html:not([data-theme="dark"]) .home-cam__row button{color:#142436!important;border-color:#9aaabd!important}
  html:not([data-theme="dark"]) .camera-preview button,
  html:not([data-theme="dark"]) .camera-preview__play{color:#fff!important}
}

/* Тарасовы в публикациях: выделенные имена, карточки со ссылкой на ВК и теги */
.prose a.person-hl,.person-hl{font-weight:700;color:inherit;text-decoration:none;background:linear-gradient(transparent 58%,color-mix(in srgb,#ffb020 55%,transparent) 58%);border-radius:3px;padding:0 2px;transition:background .2s}
.prose a.person-hl:hover,.person-hl:hover,.person-hl:focus-visible{background:color-mix(in srgb,#ffb020 70%,transparent)}
.article-context .person-card{display:inline-flex;border:1px solid #ffb020;border-radius:12px;overflow:hidden;box-shadow:0 0 0 3px color-mix(in srgb,#ffb020 16%,transparent)}
.article-context .person-card a{border:0;border-radius:0}
.article-context .person-card__vk{padding-inline:14px;background:#0077ff;color:#fff;font-weight:800}
.tags .tag.tag--person{border-color:#ffb020;color:var(--ink,inherit);background:color-mix(in srgb,#ffb020 14%,transparent);font-weight:700}

/* «Заправки»: красная неоновая иконка, пункт стоит рядом с «Погодой» */
.hdr__nav-fuel{--neon:#FF3B4A;display:inline-flex!important;align-items:center;gap:8px;position:relative}
.hdr__nav-fuel .neon{flex-shrink:0;color:#FF3B4A;filter:drop-shadow(0 0 5px rgba(255,59,74,.75));animation:fuelNeon 3.2s ease-in-out infinite}
.hdr__nav-fuel:hover .neon,.hdr__nav-fuel.is-active .neon{filter:drop-shadow(0 0 8px rgba(255,59,74,.95))}
@keyframes fuelNeon{0%,100%{filter:drop-shadow(0 0 4px rgba(255,59,74,.55))}50%{filter:drop-shadow(0 0 9px rgba(255,59,74,.95))}}
@media(max-width:1540px){.hdr__nav-fuel .hdr__nav-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}}
.drawer__fuel{--neon:#FF3B4A}
.drawer__fuel .menu-neon,.drawer__fuel .neon{color:#FF3B4A;filter:drop-shadow(0 0 5px rgba(255,59,74,.7))}
@media(prefers-reduced-motion:reduce){.hdr__nav-fuel .neon{animation:none}}

/* «Такси»: жёлтая неоновая иконка рядом с «Автобусами» */
.hdr__nav-taxi{--neon:#FFC21F;display:inline-flex!important;align-items:center;gap:8px;position:relative}
.hdr__nav-taxi .neon{flex-shrink:0;color:#FFC21F;filter:drop-shadow(0 0 5px rgba(255,194,31,.7))}
.hdr__nav-taxi:hover .neon,.hdr__nav-taxi.is-active .neon{filter:drop-shadow(0 0 9px rgba(255,194,31,.95))}
@media(max-width:1540px){.hdr__nav-taxi .hdr__nav-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}}
.drawer__taxi{--neon:#FFC21F}
.drawer__taxi .menu-neon,.drawer__taxi .neon{color:#FFC21F;filter:drop-shadow(0 0 5px rgba(255,194,31,.65))}
@media(hover:none),(pointer:coarse){.kbdhint,.searchbox__tip{display:none!important}}
