/* Shared outer container and gutters across all TB2X pages. */
:root{--page-gutter:24px}
body main,body .nav{width:100%;max-width:none;margin-inline:auto}
body .nav{padding-inline:var(--page-gutter)}
body:not(.home-live) main>.section{padding-inline:var(--page-gutter)}
body:not(.home-live) main>footer{padding-inline:var(--page-gutter)}
body.home-live main{padding-inline:var(--page-gutter)}
body.home-live main>footer{padding-inline:0}
@media(max-width:760px){:root{--page-gutter:12px}}
.map-effects,.map-counts{pointer-events:none}
.map-hit-glow{fill:#66e6d5;opacity:0;filter:blur(8px);animation:map-glow 3.8s ease-out both}
.map-hit-ring{fill:none;stroke:#75f5da;stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center;animation:map-ripple 1.8s ease-out 2 both}
.map-counts rect{fill:#102943;stroke:#4d7294;stroke-width:1}
.map-counts text{fill:#eaf6ff;font:700 16px Arial,sans-serif;paint-order:stroke;stroke:none}
.map-count-leader{stroke:#6aa5c5;stroke-width:1;opacity:.65}
.map-arrival rect{fill:#143d3a;stroke:#7cebd3;stroke-width:1.3}
.map-arrival text{fill:#a1ffe2}
.map-arrival{animation:map-pop 4.8s ease-out both}
.is-stale .map-effects,.is-stale .map-arrival{display:none}
.is-stale .map-hour-count{opacity:.4}
@keyframes map-ripple{0%{opacity:.9;transform:scale(.7)}100%{opacity:0;transform:scale(4.5)}}
@keyframes map-glow{0%{opacity:0}15%{opacity:.65}100%{opacity:0}}
@keyframes map-pop{0%{opacity:0;translate:0 7px}15%,70%{opacity:1;translate:0 0}100%{opacity:0;translate:0 -8px}}
@media(prefers-reduced-motion:reduce){.map-hit-ring,.map-hit-glow{display:none}.map-arrival{animation:none}}
