/* Approved Panorama composition: continuous landscape and four-video ribbon. */
:root { --panorama-camera-height: calc(100vw * .140625); }
.site-header.panorama-header, .page-index .site-header.panorama-header.is-overlay { position:sticky; top:0; inset-inline:auto; background:var(--bcc-cream); color:var(--bcc-pine); border-bottom:0; backdrop-filter:none; }
.site-header.panorama-header .header-inner { width:100%; max-width:1600px; padding:13px 40px; gap:28px; border-bottom:1px solid #203d3328; }
.site-header.panorama-header .brand img { width:210px; }
.site-header.panorama-header .site-nav { gap:28px; margin-left:auto; }
.site-header.panorama-header .site-nav a { font-size:13px; white-space:nowrap; }
.site-header.panorama-header .header-utilities { gap:0; }
.conditions-header { display:grid; grid-template-columns:330px minmax(400px,1fr) 200px; max-width:1600px; margin:auto; min-height:104px; }
.header-weather { padding:12px 30px 10px 40px; text-decoration:none; border-right:1px solid #203d3328; min-width:0; display:flex; flex-direction:column; justify-content:center; }
.weather-now { display:flex; align-items:center; gap:12px; }
.weather-symbol { font-size:29px; line-height:1; color:var(--bcc-copper); }
.weather-now strong { font:500 36px/1 var(--serif); white-space:nowrap; }
.weather-now>span:last-child { font-size:12px; line-height:1.35; max-width:145px; }
.header-forecast { font-size:11px; margin:7px 0 0; line-height:1.4; }
.header-weather small { font-size:10px; color:var(--bcc-muted); margin-top:5px; line-height:1.4; }
.header-weather:hover { color:var(--bcc-pine); text-decoration:underline; text-underline-offset:3px; }
.header-roads { display:grid; grid-template-columns:minmax(150px,1fr) minmax(220px,380px); gap:12px; align-items:center; padding:0 0 0 24px; border:0; border-radius:0; background:transparent; text-align:left; min-width:0; text-decoration:none; color:var(--bcc-pine); }
.header-roads:hover { color:var(--bcc-pine); }
.road-summary { display:flex; flex-direction:column; gap:3px; min-width:0; }
.road-eyebrow { font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--bcc-copper); }
.road-summary strong { font-size:14px; font-weight:600; white-space:nowrap; }
.road-summary>[data-header-road-summary] { font-size:11px; line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.road-summary small { font-size:10px; color:var(--bcc-muted); line-height:1.4; }
.close-map { position:relative; display:block; align-self:stretch; min-height:110px; border-left:1px solid #203d3320; background:#e6e8dc; overflow:hidden; }
.close-map svg { width:100%; height:100%; display:block; min-height:110px; }
.expand-label { position:absolute; right:8px; bottom:5px; background:#faf8f2e8; color:var(--bcc-pine); padding:1px 5px; font-size:9px; }
.header-roads:hover .expand-label { background:var(--bcc-pine); color:var(--bcc-paper); }
.header-park-notices { display:flex; flex-direction:column; justify-content:center; gap:4px; border-left:1px solid #203d3328; padding:12px 22px; text-decoration:none; }
.header-park-notices strong { font-size:13px; }.header-park-notices span { font-size:11px; }.header-park-notices small { font-size:10px; color:var(--bcc-muted); }
.header-park-notices span { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.nps-refresh-note { font-size:14px; max-width:80ch; margin:0 0 28px; }
.nps-alerts-section>h3,.nps-guidance-section>h3,.nps-services>h3 { font:500 28px/1.2 var(--serif); color:var(--bcc-pine); margin:0 0 12px; }
[data-nps-alert-status],[data-nps-page-status] { font-size:13px; line-height:1.6; color:var(--bcc-muted); }
[data-nps-alerts] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin-block:20px 32px; }
.nps-alert { border-top:3px solid var(--bcc-copper); padding-top:16px; }
.nps-alert h4 { font:500 25px/1.2 var(--serif); margin:8px 0 14px; }
.nps-alert p { font-size:15px; line-height:1.6; }
.nps-alert .nps-category { color:var(--bcc-copper); font:600 11px/1.4 var(--sans); text-transform:uppercase; letter-spacing:.06em; margin:0; }
.nps-alert .nps-source-date { font-size:12px; color:var(--bcc-muted); }
.nps-alert a { display:inline-flex; align-items:center; min-height:44px; font-size:13px; }
.nps-guidance { margin-block:20px; }
.nps-guidance details { border:0; border-block-start:1px solid var(--rule); margin:0; padding:0; border-radius:0; }
.nps-guidance summary { font:600 16px/1.4 var(--sans); padding:18px 0; cursor:pointer; }
.nps-guidance details p { max-width:85ch; font-size:15px; line-height:1.65; }
.nps-guidance-links { display:flex; flex-wrap:wrap; gap:12px 24px; padding-bottom:20px; }
.nps-guidance-links a { display:inline-flex; align-items:center; min-height:44px; font-size:13px; }
.nps-source-note { font-size:12px; line-height:1.7; color:var(--bcc-muted); max-width:95ch; }
.nps-services { border-top:1px solid var(--rule); margin-top:32px; padding-top:28px; }
.nps-services p { max-width:80ch; }
@media(max-width:1100px) {
 .conditions-header .header-park-notices { grid-column:1/-1; display:flex; flex-direction:row; align-items:baseline; flex-wrap:wrap; gap:4px 12px; padding:8px 24px; border:0; border-top:1px solid #203d3328; }
 .header-park-notices span { -webkit-line-clamp:1; }
 .header-park-notices strong { white-space:nowrap; }
 .header-park-notices small { margin-left:auto; }
}
@media(max-width:600px) {
 [data-nps-alerts] { grid-template-columns:1fr; }
 .conditions-header .header-park-notices { padding:7px 18px; gap:3px 8px; }
 .conditions-header .header-park-notices strong { font-size:11px; }
 .conditions-header .header-park-notices span { font-size:10px; max-width:calc(100% - 100px); }
 .conditions-header .header-park-notices small { display:block; width:100%; font-size:9px; line-height:1.3; margin:0; }
}
:is(.conditions-header,.header-map-dialog) .map-road { fill:none; stroke:#8b918c; stroke-width:1.5; vector-effect:non-scaling-stroke; }
:is(.conditions-header,.header-map-dialog) .map-report { fill:none; stroke-width:3; stroke-linecap:round; vector-effect:non-scaling-stroke; }
:is(.conditions-header,.header-map-dialog) .map-town { font-family:var(--sans); font-size:11px; fill:#243e31; stroke:#f6f4eb; stroke-width:3px; paint-order:stroke; }
:is(.conditions-header,.header-map-dialog) .map-label { font:600 10px var(--sans); fill:#203d33; stroke:#f7f3e9; stroke-width:4px; paint-order:stroke; }
:is(.conditions-header,.header-map-dialog) .map-dot { fill:#203d33; stroke:#fff; stroke-width:1.5; }
:is(.conditions-header,.header-map-dialog) .map-park { fill:#934c2e; stroke:#fff; stroke-width:1.5; }
.page-index .home-main { padding-top:0; }
.page-index .panorama-opening { position:relative; width:100%; max-width:none; margin:0; }
.page-index .panorama-opening .hero { position:relative; display:block; isolation:isolate; overflow:hidden; height:max(350px,calc(100svh - var(--site-header-height,224px) - var(--panorama-camera-height))); min-height:0; padding:0; margin:0; border:0; border-radius:0; background:#e5ded0; }
.page-index .panorama-opening :is(.hero-poster,.hero-poster img,.hero-canvas) { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; margin:0; grid-area:auto; }
.page-index .panorama-opening .hero::before { display:none; }
.page-index .panorama-opening .hero::after { content:''; position:absolute; inset:40% 0 0; z-index:3; pointer-events:none; background:linear-gradient(transparent,#172a245c); }
.panorama-title { position:absolute; z-index:4; bottom:35px; left:40px; color:#fff9ec; text-shadow:0 1px 8px #18271c80; }
.panorama-title>p { font:400 11px/1.5 var(--sans); letter-spacing:.09em; text-transform:uppercase; margin:0 0 9px; }
body.page-index .panorama-title h1 { font:500 clamp(32px,4vw,62px)/1.05 var(--serif); letter-spacing:-.03em; color:inherit; margin:0; }
.panorama-title>a { display:inline-flex; align-items:center; font-size:13px; padding-top:8px; min-height:44px; color:inherit; }
.page-index .panorama-opening .hero-motion { position:absolute; z-index:5; inset:20px 24px auto auto; background:#faf8f2ed; border:0; border-radius:0; padding:10px 14px; min-height:44px; font:500 11px/1.4 var(--sans); color:#203d33; }
.panorama-credit { position:absolute; bottom:12px; right:24px; z-index:4; color:#faf8f2; font-size:10px; text-shadow:0 1px 4px #000; margin:0; }
.panorama-credit a { color:inherit; }
.panorama-camera-band { background:#162c23; color:var(--bcc-cream); position:relative; }
.panorama-camera-heading { display:flex; gap:16px; align-items:center; padding:0 18px; min-height:44px; font-size:11px; line-height:1.3; }
.panorama-camera-heading h2 { font:500 12px/1.4 var(--sans); margin:0; color:inherit; }
.panorama-camera-heading a { display:inline-flex; align-items:center; min-height:44px; font-size:11px; text-decoration:none; color:inherit; }
.panorama-camera-heading a:hover { text-decoration:underline; }
.panorama-camera-heading button { margin-left:auto; border:0; border-radius:0; background:transparent; color:inherit; font:500 11px/1.4 var(--sans); padding:6px 10px; min-height:44px; cursor:pointer; }
.panorama-camera-band .camera-wall { grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; border-radius:0; background:#faf8f224; }
.panorama-camera-band .camera-tile { aspect-ratio:16/9; border-radius:0; }
.panorama-camera-band .camera-caption { top:auto; left:50%; bottom:8px; padding:6px 12px; font-size:11px; border-radius:12px; background:var(--bcc-pine); }
.panorama-camera-band .camera-caption small { display:none; }
.page-index .panorama-camera-band .camera-enlarge { position:absolute; inset:0; z-index:3; background:transparent; border:0; border-radius:0; width:100%; height:100%; cursor:zoom-in; }
.page-index .panorama-camera-band .camera-enlarge:hover { background:transparent; box-shadow:inset 0 0 0 2px #efe5d2a0; }
.page-index .panorama-camera-band .camera-enlarge:focus-visible { outline:3px solid #f2c299; outline-offset:-3px; }
.panorama-camera-heading :focus-visible { outline-color:#f2c299; }
.panorama-actions { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; padding-block:22px; border-bottom:1px solid var(--rule); }
.panorama-actions a { display:flex; align-items:center; min-height:44px; font-size:14px; }
.page-index .camera-dialog button { font:600 14px/1.4 var(--sans); min-height:44px; padding:10px 16px; border:1px solid var(--bcc-pine); background:transparent; color:var(--bcc-pine); cursor:pointer; }
.header-map-dialog { width:1280px; max-width:calc(100% - 32px); max-height:calc(100dvh - 32px); margin:auto; border:0; border-radius:0; padding:0; background:var(--bcc-paper); color:var(--bcc-ink); overflow:auto; }
.header-map-dialog::backdrop { background:#0b1b15de; }
.header-map-dialog-bar { display:flex; justify-content:space-between; align-items:center; padding:18px 24px; border-bottom:1px solid var(--rule); gap:20px; }
.header-map-dialog-bar p { font-size:11px; color:var(--bcc-muted); margin:0 0 5px; }
.header-map-dialog h2 { font:500 28px/1.15 var(--serif); margin:0; }
.header-map-dialog button { background:transparent; color:var(--bcc-pine); border:1px solid var(--bcc-pine); border-radius:0; padding:9px 15px; min-height:44px; flex-shrink:0; cursor:pointer; }
.header-expanded-layout { display:grid; grid-template-columns:2fr 1fr; }
.header-expanded-layout>div:first-child { padding:16px; min-width:0; }
.header-expanded-layout svg { width:100%; max-height:65dvh; background:#e8e9df; }
.header-map-note,.header-map-key { font-size:12px; margin:10px 0 0; line-height:1.6; }
.header-regional-reports { padding:20px; border-left:1px solid var(--rule); max-height:75dvh; overflow:auto; }
.header-regional-reports p { font-size:13px; line-height:1.5; margin:0 0 8px; }
.header-regional-reports article { padding:14px 0; border-bottom:1px solid var(--rule); }
.header-regional-reports h3 { font:600 14px/1.4 var(--sans); margin:0 0 5px; }
.header-regional-reports small { font-size:11px; color:var(--bcc-muted); }
.header-regional-reports>a { display:block; margin-top:16px; font-size:13px; }
@media(min-width:1600px) { .panorama-camera-band .camera-tile { aspect-ratio:auto; height:calc(100vw * .12); } }
@media(max-width:1100px) {
 .site-header.panorama-header .header-inner { padding-inline:24px; gap:20px; }.site-header.panorama-header .site-nav { gap:14px; }.site-header.panorama-header .site-nav a { font-size:12px; }.site-header.panorama-header .brand img { width:180px; }
 .conditions-header { grid-template-columns:270px minmax(0,1fr); }.header-weather { padding-left:24px; }.header-park-notices { display:none; }.header-roads { grid-template-columns:minmax(145px,1fr) minmax(200px,320px); padding-left:18px; }.road-summary strong { font-size:12px; }.panorama-title { left:24px; }
}
@media(max-width:900px) {
 .site-header.panorama-header .header-inner { padding:10px 20px; }.site-header.panorama-header .site-nav { margin-left:0; }.site-header.panorama-header .header-utilities { margin-left:auto; }
 .js .site-header.panorama-header .site-nav { top:100%; }
}
@media(max-width:700px) {
 :root { --panorama-camera-height:calc(100vw * .5625 + 1px); }
 .site-header.panorama-header .brand img { width:159px; }.site-header.panorama-header .header-inner { padding:10px 18px; min-height:65px; gap:18px; }
 .conditions-header { grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); min-height:126px; }.header-weather { padding:9px 12px 10px 18px; justify-content:start; }.weather-now { gap:6px; flex-wrap:wrap; }.weather-symbol { display:none; }.weather-now strong { font-size:28px; }.weather-now>span:last-child { font-size:10px; max-width:80px; line-height:1.2; }.header-forecast { font-size:10px; margin-top:5px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }.header-weather small { font-size:9px; line-height:1.25; margin-top:5px; }
 .header-roads { display:flex; flex-direction:column; gap:0; padding:0; align-items:stretch; position:relative; }.road-summary { padding:5px 8px 2px; gap:2px; order:2; background:var(--bcc-cream); }.road-eyebrow,.road-summary strong { display:none; }.road-summary>[data-header-road-summary] { font-size:10px; -webkit-line-clamp:1; }.road-summary small { font-size:9px; }.close-map { height:82px; min-height:82px; border-left:0; order:1; }.close-map svg { min-height:0; height:82px; }.expand-label { font-size:9px; bottom:2px; right:3px; }
 .page-index .panorama-opening .hero { height:max(280px,calc(100svh - var(--site-header-height,212px) - var(--panorama-camera-height))); }.panorama-title { left:20px; bottom:26px; }.panorama-title>p { font-size:9px; margin-bottom:7px; }body.page-index .panorama-title h1 { font-size:32px; }.panorama-title>a { font-size:12px; padding-top:6px; }.page-index .panorama-opening .hero-motion { inset:10px 10px auto auto; font-size:11px; padding:8px 10px; }.panorama-credit { font-size:9px; right:10px; bottom:8px; }
 .panorama-camera-heading { gap:8px; padding-inline:8px; }.panorama-camera-heading h2 { display:none; }.panorama-camera-heading a { font-size:10px; }.panorama-camera-heading button { font-size:10px; padding-inline:6px; }.panorama-camera-band .camera-wall { grid-template-columns:repeat(2,minmax(0,1fr)); }.panorama-camera-band .camera-caption { font-size:10px; top:auto; left:50%; bottom:6px; padding:5px 9px; }
 .panorama-actions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 16px; padding-block:16px; }.panorama-actions a { font-size:13px; }
 .header-expanded-layout { grid-template-columns:1fr; }.header-regional-reports { border-left:0; border-top:1px solid var(--rule); max-height:none; }.header-map-dialog-bar { padding:12px; gap:10px; }.header-map-dialog h2 { font-size:23px; }
}
@media(max-width:360px) { .site-header.panorama-header .brand img { width:145px; }body.page-index .panorama-title h1 { font-size:28px; }.panorama-credit { font-size:8px; } }
@media print { .site-header.panorama-header,.header-map-dialog,.panorama-camera-band,.panorama-actions { display:none!important; }.page-index .panorama-opening .hero { height:360px; } }

/* Conditions-first masthead. Expanded panels are out of flow at every size. */
.site-header.panorama-header .header-inner { display:grid; grid-template-columns:minmax(0,1fr) 220px minmax(0,1fr); gap:24px; position:relative; align-items:center; padding:14px 32px; border:0; min-height:140px; max-width:1800px; }
.panorama-header .header-identity { grid-column:2; grid-row:1; align-self:center; justify-self:center; margin:0; justify-content:center; }
.site-header.panorama-header .brand img { width:220px; }
.panorama-header .conditions-header { display:grid; grid-column:3; grid-row:1; grid-template-columns:minmax(76px,.65fr) minmax(148px,1.3fr) minmax(176px,1.45fr); grid-template-rows:minmax(0,1fr); gap:12px; width:100%; min-width:0; height:112px; min-height:0; margin:0; }
.panorama-header .header-module { min-width:0; min-height:0; }
.panorama-header .header-trigger { height:100%; box-sizing:border-box; color:var(--bcc-pine); text-decoration:none; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.panorama-header .header-trigger:focus-visible,.panorama-header button:focus-visible,.panorama-header a:focus-visible { outline:2px solid var(--bcc-copper); outline-offset:3px; }
.panorama-header .header-weather { display:flex; flex-direction:column; justify-content:center; gap:4px; border:0; padding:4px 0; }
.panorama-header .weather-now { display:flex; flex-direction:column; flex-wrap:nowrap; align-items:center; gap:2px; text-align:center; }
.panorama-header .weather-symbol { display:block; width:40px; height:40px; flex-shrink:0; }
.weather-symbol svg { display:block; width:100%; height:100%; }
.panorama-header .weather-now>span:last-child { display:flex; flex-direction:column; gap:3px; max-width:none; font-size:10px; }
.panorama-header .weather-now strong { font:500 28px/1 var(--serif); }
.panorama-header .header-weather:hover { text-decoration:none; }
.panorama-header .header-roads { display:flex; flex-direction:column; gap:0; padding:0; background:transparent; border:0; border-radius:0; position:relative; }
.panorama-header .close-map { width:100%; height:100%; min-height:0; background:transparent; border:0; order:0; }
.panorama-header .close-map svg { display:block; width:100%; height:100%; min-height:0; }
.panorama-header .map-road { stroke:#8b918c; stroke-width:1.8; }
:is(.panorama-header,.header-map-dialog) .map-park-boundary { fill:#8eaa7b; fill-opacity:.32; stroke:#526e44; stroke-width:1.3; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.panorama-header .map-label.map-park-label { fill:#203d33; font-size:15px; font-weight:700; stroke:none; }
.panorama-header [data-header-weather-status] { font:400 10px/1.3 var(--sans); }
.panorama-header [data-header-weather-status][hidden] { display:none; }
.panorama-header .map-town,.panorama-header .map-label { stroke:var(--bcc-cream); stroke-width:4px; }
.panorama-header .map-dot,.panorama-header .map-park { stroke:var(--bcc-cream); }
.panorama-header .notices-module { display:flex; align-items:center; }
.panorama-header .header-park-notices { display:flex; flex-direction:column; justify-content:center; align-items:stretch; width:100%; height:auto; min-height:88px; gap:8px; border:0; border-radius:16px; padding:12px; background:#e1e2d6; color:#344438; }
.panorama-header .header-park-notices strong { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; font:600 12px/1.3 var(--sans); }
.panorama-header .header-park-notices small { width:auto; margin:0; font:400 9px/1.25 var(--sans); color:inherit; }
.panorama-header [data-notice-state="closure"] .header-park-notices { background:#ead0bd; color:#72321e; }
.panorama-header [data-notice-state="caution"] .header-park-notices { background:#e8d8ae; color:#614814; }
.panorama-header [data-notice-state="information"] .header-park-notices { background:#dce3d3; color:var(--bcc-pine); }
.panorama-header [data-notice-state="stale"] .header-park-notices,.panorama-header [data-notice-state="unavailable"] .header-park-notices { background:#dfded3; color:#4b5147; }
.site-header.panorama-header .header-utilities { grid-column:1; grid-row:1; display:flex; flex-direction:row; align-items:center; justify-self:start; gap:0; margin:0; align-self:center; }
.panorama-header .header-email,.js .panorama-header .menu-toggle { display:flex; align-items:center; justify-content:center; width:44px; height:44px; min-width:44px; padding:0; border:0; background:transparent; color:var(--bcc-pine); border-radius:8px; }
.panorama-header .header-email svg { fill:none; stroke:currentColor; stroke-width:1.6; }
.panorama-header .header-email:hover,.panorama-header .menu-toggle:hover { background:#203d330c; }
.js .site-header.panorama-header .site-nav { display:none; position:absolute; inset:100% auto auto 24px; width:270px; max-width:calc(100vw - 32px); flex-direction:column; align-items:stretch; gap:0; margin:0; padding:12px; border:0; border-radius:0 0 16px 16px; background:var(--bcc-cream); box-shadow:0 15px 25px #203d3324; z-index:5; }
.js .site-header.panorama-header .site-nav.is-open { display:flex; }
.js .site-header.panorama-header .site-nav a { font-size:14px; min-height:44px; padding:12px; border:0; border-radius:8px; white-space:normal; }
.js .site-header.panorama-header .site-nav a[aria-current] { background:#203d330b; color:var(--bcc-pine); }
.panorama-header .header-panel { position:absolute; top:100%; z-index:4; box-sizing:border-box; padding:20px 24px; border:0; border-radius:0 0 20px 20px; background:var(--bcc-cream); background-image:none; color:var(--bcc-pine); box-shadow:none; opacity:1; max-height:calc(100dvh - var(--site-header-height,164px) - 16px); overflow:auto; overscroll-behavior:contain; animation:header-reveal .18s ease-out; }
.panorama-header .header-panel[hidden] { display:none!important; }
.weather-panel { left:auto; right:24px; width:440px; max-width:calc(100% - 32px); }
.roads-panel { left:auto; right:24px; width:700px; max-width:calc(100% - 48px); }
.notices-panel { right:24px; width:460px; max-width:calc(100% - 32px); }
.header-panel-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:10px; }
.panorama-header .header-panel h2 { font:500 26px/1.15 var(--serif); margin:0; color:inherit; }
.panorama-header .header-panel-heading button { font:400 26px/1 var(--sans); width:44px; height:44px; min-width:44px; background:transparent; border:0; color:inherit; cursor:pointer; border-radius:50%; }
.header-panel-heading button:hover { background:#203d330b; }
.panorama-header .header-panel-note { font:400 11px/1.55 var(--sans); color:var(--bcc-muted); margin:8px 0 14px; }
.panorama-header .header-panel-label { font:600 11px/1.4 var(--sans); letter-spacing:.04em; text-transform:uppercase; margin:18px 0 8px; color:var(--bcc-copper); }
.weather-details { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:20px 0; }
.weather-details dt { font-size:11px; color:var(--bcc-muted); }
.weather-details dd { font:600 16px/1.5 var(--sans); margin:3px 0 0; }
.header-forecast-periods article { display:grid; grid-template-columns:44px 1fr; gap:2px 12px; padding:12px 0; border-top:1px solid #203d331c; }
.forecast-icon { grid-row:1/3; }
.forecast-icon svg { width:44px; height:44px; }
.header-forecast-periods strong { font-size:13px; }
.header-forecast-periods p { font:400 12px/1.6 var(--sans); margin:0; }
.header-panel-links { display:flex; gap:4px 22px; flex-wrap:wrap; border-top:1px solid #203d3324; margin-top:18px; padding-top:10px; }
.header-panel-links a,.header-notice-detail>a { display:inline-flex; align-items:center; min-height:44px; font-size:12px; color:inherit; }
.panorama-header .header-network-map { width:100%; height:auto; display:block; background:transparent; }
.header-map-key { display:flex; flex-wrap:wrap; gap:6px 15px; }
.road-key { font:400 10px/1.4 var(--sans); display:inline-flex; align-items:center; gap:5px; }
.road-key::before { content:''; width:12px; height:3px; background:#8b918c; }
.road-key.clear::before { background:#2b8050; }.road-key.caution::before { background:#b27616; }
.road-key.closure::before { height:12px; border-radius:50%; background:linear-gradient(#fffaf0,#fffaf0) center/7px 2px no-repeat,#b73535; }
.road-key.park::before { height:8px; background:#8eaa7b80; border:1px solid #526e44; }
.header-local-reports { margin-top:16px; }
.header-local-reports p { font:400 12px/1.6 var(--sans); border-top:1px solid #203d331c; padding-top:10px; margin:10px 0; }
.header-notice-detail { padding:0 0 14px; border-bottom:1px solid #203d3324; }
.header-notice-detail h3 { font:500 22px/1.25 var(--serif); margin:8px 0; color:inherit; }
.header-notice-detail>p:not(.header-panel-note,.header-panel-label) { font:400 14px/1.6 var(--sans); margin:8px 0; }
.header-notice-detail[data-severity="closure"] .header-panel-label { color:#72321e; }
html:not(.js) .site-header.panorama-header .header-utilities { display:contents; }
html:not(.js) .panorama-header .header-email { grid-column:1; grid-row:1; }
html:not(.js) .panorama-header .site-nav { grid-column:1/-1; grid-row:3; display:flex; flex-wrap:wrap; margin:0; justify-content:center; padding:8px; }
@keyframes header-reveal { from { translate:0 -6px; } to { translate:0 0; } }
@media(max-width:1240px) {
 .site-header.panorama-header .header-inner { padding:10px 24px 14px; gap:8px 18px; }
 .site-header.panorama-header .brand img { width:200px; }
 .panorama-header .conditions-header { grid-column:1/-1; grid-row:2; grid-template-columns:120px minmax(180px,1fr) 220px; gap:20px; max-width:740px; justify-self:end; height:100px; }
 .panorama-header .weather-now { flex-direction:row; text-align:left; gap:6px; }
}
@media(max-width:620px) {
 .site-header.panorama-header .header-inner { grid-template-columns:44px minmax(0,1fr) 44px; padding:8px 16px 12px; gap:6px 12px; }
 .site-header.panorama-header .header-utilities { display:contents; }
 .panorama-header .menu-toggle { grid-column:1; grid-row:1; }
 .panorama-header .header-email,html:not(.js) .panorama-header .header-email { grid-column:3; grid-row:1; }
 .site-header.panorama-header .brand img { width:180px; }
 .panorama-header .header-identity { width:100%; max-width:180px; }
 .panorama-header .conditions-header { height:auto; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); grid-template-rows:88px minmax(56px,auto); gap:8px 12px; }
 .panorama-header .header-weather { padding:0; gap:3px; }
 .panorama-header .weather-symbol { width:44px; height:44px; }.panorama-header .weather-now { gap:6px; }.panorama-header .weather-now strong { font-size:28px; }.panorama-header .weather-now>span:last-child { font-size:10px; }
 .panorama-header .notices-module { grid-column:1/-1; }
 .panorama-header .header-park-notices { display:flex; min-height:56px; gap:5px; padding:10px 12px; border:0; border-radius:12px; }
 .panorama-header .header-park-notices strong { font-size:12px; -webkit-line-clamp:2; }
 .panorama-header .header-park-notices small { font-size:9px; }
 .panorama-header .header-panel { left:8px; right:8px; width:auto; max-width:none; padding:16px 18px; }
 .panorama-header .header-panel h2 { font-size:23px; }
 .js .site-header.panorama-header .site-nav { left:8px; right:auto; }
 .header-panel .map-town { font-size:17px!important; }
}
@media(prefers-reduced-motion:reduce) { .panorama-header .header-panel { animation:none; } }

/* Wide screens use the full masthead; the approved centered phone layout stays above. */
@media(min-width:1000px) {
 .site-header.panorama-header .header-inner { grid-template-columns:220px minmax(0,1fr) 112px minmax(0,1fr) 280px minmax(0,1fr) max-content 88px; grid-template-rows:112px; column-gap:24px; padding:14px 32px; min-height:140px; }
 .panorama-header .header-identity { grid-column:1; justify-self:start; }
 .site-header.panorama-header .brand img { width:220px; }
 .panorama-header .conditions-header { display:contents; }
 .panorama-header .header-module { grid-row:1; }
 .panorama-header .weather-module { grid-column:3; }
 .panorama-header .roads-module { grid-column:5; }
 .panorama-header .notices-module { grid-column:7; }
 .panorama-header .weather-now { flex-direction:row; text-align:left; gap:8px; }
 .panorama-header .weather-symbol { width:44px; height:44px; }
 .panorama-header .weather-now>span:last-child { font-size:11px; }
 .panorama-header .header-park-notices { min-height:80px; padding:14px 16px; }
 .panorama-header .header-park-notices strong { font-size:13px; -webkit-line-clamp:2; }
 .site-header.panorama-header .header-utilities { grid-column:8; justify-self:end; flex-direction:row-reverse; }
 .js .site-header.panorama-header .site-nav { left:auto; right:24px; }
 .panorama-header .weather-panel { left:clamp(248px,27vw,460px); right:auto; }
 .panorama-header .roads-panel { left:50%; right:auto; transform:translateX(-50%); }
 .panorama-header .notices-panel { right:136px; }
 html:not(.js) .panorama-header .header-email { grid-column:8; justify-self:end; }
 html:not(.js) .panorama-header .site-nav { grid-row:2; }
}
@media(min-width:1000px) and (max-width:1279px) {
 .site-header.panorama-header .header-inner { grid-template-columns:190px minmax(0,1fr) 100px minmax(0,1fr) 200px minmax(0,1fr) max-content 88px; column-gap:12px; padding-inline:24px; }
 .site-header.panorama-header .brand img { width:190px; }
 .panorama-header .header-park-notices { padding:12px; }
 .panorama-header .header-park-notices strong { font-size:12px; }
 .panorama-header .notices-panel { right:116px; }
}
@media(min-width:621px) and (max-width:999px) {
 .panorama-header .conditions-header { justify-self:center; }
 .panorama-header .weather-panel { left:24px; right:auto; }
 .panorama-header .roads-panel { left:50%; right:auto; transform:translateX(-50%); }
}

/* Compact notices and a road overview that fits entirely in its flyout. */
.panorama-header .notice-title { display:flex; align-items:center; gap:10px; }
.panorama-header .notice-title svg { width:20px; height:20px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
.panorama-header .notice-title svg[hidden] { display:none; }
.panorama-header .header-panel.roads-panel { display:grid; grid-template-rows:auto minmax(0,1fr) auto auto; gap:8px; height:min(560px,calc(38vw + 280px),calc(100dvh - var(--site-header-height,140px) - 16px)); overflow:hidden; }
.roads-panel .header-panel-heading { margin:0; }
.panorama-header .roads-panel .header-network-map { width:100%; height:100%; min-height:0; }
.panorama-header .header-road-meta .header-panel-note { font-size:10px; line-height:1.4; margin:0; }
.roads-panel .header-map-key { gap:5px 12px; margin:8px 0; }
.roads-panel .header-local-reports { margin:6px 0; }
.roads-panel .header-local-reports p { font-size:12px; line-height:1.45; border:0; padding:0; margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.roads-panel .header-panel-links { margin:0; padding-top:6px; gap:0 18px; }
.roads-panel .header-panel-links a { font-size:11px; }
@media(max-width:620px) {
 .panorama-header .header-panel.roads-panel { padding:12px 16px; gap:6px; }
 .panorama-header .roads-panel h2 { font-size:21px; }
 .roads-panel .header-map-key { gap:4px 9px; margin:6px 0; }
}
@media(max-height:700px) { .roads-panel .header-local-reports,.roads-panel .road-scope-note { display:none; } }

/* Map and label together match the logo's vertical footprint. */
.panorama-header { --road-overview-height:86px; }
.panorama-header .roads-module { align-self:center; }
.panorama-header .header-roads { height:var(--road-overview-height); gap:4px; align-items:center; justify-content:center; }
.panorama-header .close-map { height:calc(var(--road-overview-height) - 20px); flex:none; align-self:center; }
.panorama-header .header-road-label { display:block; font:600 11px/16px var(--sans); color:var(--bcc-pine); white-space:nowrap; }
.panorama-header .map-label.map-park-label { font-size:19px; }
.dock-module-label,.dock-weather-summary { display:none; }
.panorama-header [data-road-summary-state="caution"] .header-road-label { color:#8c5a0a; }
.panorama-header [data-road-summary-state="closure"] .header-road-label { color:#a42f2f; }
.panorama-header [data-road-summary-state="clear"] .header-road-label { color:#2b8050; }
@media(min-width:1000px) and (max-width:1279px) { .panorama-header { --road-overview-height:74px; } }
@media(min-width:621px) and (max-width:999px) { .panorama-header { --road-overview-height:78px; } }
@media(max-width:620px) {
 .panorama-header { --road-overview-height:70px; }
 .panorama-header .conditions-header { grid-template-rows:72px minmax(56px,auto); }
}
@media(max-width:360px) { .panorama-header { --road-overview-height:64px; } }

/* One compact green park card sits at the top left of the terrain. */
.page-index .panorama-protection { position:absolute; z-index:5; top:24px; left:32px; width:260px; max-width:calc(100% - 32px); display:flex; flex-direction:column; align-items:flex-start; }
.page-index .panorama-title.panorama-card { position:static; width:100%; max-width:100%; box-sizing:border-box; padding:20px; border-radius:20px; background:var(--bcc-pine); color:var(--bcc-cream); text-shadow:none; }
body.page-index .panorama-card h1 { max-width:220px; font:500 30px/1.1 var(--serif); letter-spacing:-.025em; color:var(--bcc-cream); margin:0; }
.page-index .panorama-card>p { font:400 13px/1.5 var(--sans); letter-spacing:0; text-transform:none; margin:14px 0 0; color:var(--bcc-cream); }
.page-index .panorama-card>p.panorama-card-distinction { margin-top:10px; }
.panorama-card dfn { font-family:var(--serif); font-weight:600; }
.panorama-card .hoodoo-definition-line { white-space:nowrap; }
@media(max-width:700px) {
 .page-index .panorama-protection { top:16px; left:16px; width:222px; max-width:calc(100% - 82px); }
 .page-index .panorama-title.panorama-card { padding:16px; }
 .page-index .panorama-opening .hero .hero-motion { top:16px; right:10px; width:44px; min-width:44px; height:44px; padding:0; font-size:0; border-radius:50%; }
 .page-index .panorama-opening .hero .hero-motion::before { content:'Ⅱ'; font:600 16px/1 var(--sans); }
 .page-index .panorama-opening .hero.is-motion-paused .hero-motion::before { content:'↻'; }
 body.page-index .panorama-card h1 { max-width:190px; font-size:24px; }
 .page-index .panorama-card>p { font-size:11px; line-height:1.45; margin-top:10px; }
 .page-index .panorama-card>p.panorama-card-distinction { margin-top:8px; }
}

.panorama-header .notices-module { max-width:220px; }
.panorama-header .header-park-notices { width:max-content; max-width:100%; min-height:44px; padding:14px 16px; }
.panorama-header .header-park-notices .notice-title { max-width:100%; overflow:visible; }
.home-camera-overview { display:contents; }
.page-index #webcams { scroll-margin-top:0; }
.panorama-camera-band [hidden] { display:none!important; }
.panorama-camera-band:not(.is-camera-overview-open) .camera-enlarge { cursor:pointer; }
.home-camera-overview-bar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 24px; background:var(--bcc-cream); color:var(--bcc-pine); scroll-margin-top:8px; }
.home-camera-overview-bar h2 { font:500 28px/1.15 var(--serif); color:inherit; margin:0; }
.home-camera-overview-bar p { font:400 12px/1.5 var(--sans); margin:6px 0 0; }
.home-camera-overview-bar a { font-size:12px; min-height:44px; display:inline-flex; align-items:center; color:inherit; }
.home-camera-overview-bar button { border:1px solid var(--bcc-pine); border-radius:12px; color:var(--bcc-pine); background:transparent; padding:10px 14px; min-height:44px; font:600 12px/1.4 var(--sans); cursor:pointer; }
.home-camera-overview-note { grid-column:1/-1; padding:16px 24px; margin:0; color:var(--bcc-cream); font:400 12px/1.6 var(--sans); }
.home-camera-overview-note a { color:inherit; }
.panorama-camera-band .home-camera-overview .camera-caption small { display:block; }
.home-camera-overview .camera-tile { scroll-margin-top:8px; }
.panorama-camera-band .camera-wall { position:relative; }
.camera-controls-overlay { position:absolute; inset:8px 8px auto; z-index:5; display:flex; align-items:flex-start; justify-content:space-between; gap:8px; pointer-events:none; }
.camera-live-badge,.camera-overlay-actions { display:flex; align-items:center; gap:8px; }
.camera-live-badge { min-height:24px; min-width:24px; box-sizing:border-box; padding:8px; border-radius:0; background:transparent; color:var(--bcc-cream); font:600 10px/1.2 var(--sans); pointer-events:auto; }
.camera-live-badge a { color:inherit; font-weight:400; text-decoration:none; white-space:nowrap; }
.camera-live-badge a:hover { text-decoration:underline; }
.camera-live-dot { width:8px; height:8px; border-radius:50%; background:#b8beb0; box-shadow:0 0 0 1px #0004; flex-shrink:0; }
.camera-live-badge[data-camera-live-state="live"] .camera-live-dot { background:#e33b32; animation:camera-live-pulse 1.8s ease-in-out infinite; }
.camera-overlay-actions { pointer-events:auto; gap:6px; }
.camera-overlay-actions button,.camera-overlay-actions a { display:inline-flex; align-items:center; justify-content:center; min-height:32px; box-sizing:border-box; padding:6px 9px; margin:0; border:0; border-radius:12px; background:var(--bcc-pine); color:var(--bcc-cream); font:500 10px/1.2 var(--sans); text-decoration:none; cursor:pointer; }
.camera-overlay-actions button:hover,.camera-overlay-actions a:hover { background:#2d5043; }
.camera-controls-overlay :focus-visible { outline:2px solid var(--bcc-sandstone); outline-offset:2px; }
@keyframes camera-live-pulse { 0%,100% { opacity:1; } 50% { opacity:.35; } }
@media(prefers-reduced-motion:reduce) { .camera-live-badge[data-camera-live-state="live"] .camera-live-dot { animation:none; } }
@media(max-width:360px) { .camera-controls-overlay { inset:6px 6px auto; gap:5px; }.camera-overlay-actions { gap:4px; }.camera-overlay-actions button,.camera-overlay-actions a { padding:6px 7px; font-size:9px; } }

/* Home stays free of camera-name overlays; Conditions retains its named directory. */
.panorama-camera-band .camera-tile { display:block; aspect-ratio:16/9; height:auto; }
.panorama-camera-band .camera-tile>.camera-frame { width:100%; height:100%; aspect-ratio:16/9; min-height:0; }
.panorama-camera-band .camera-caption { display:none; }
/* Each of the four real streams enters as soon as its first frame is decoded. */
.panorama-camera-band [data-camera-reveal] .camera-frame { background:#203b31; }
.panorama-camera-band [data-camera-reveal] .camera-frame::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(125deg,#203b31,#2c473a 48%,#1b332b); opacity:1; transition:opacity .65s ease-out; }
.panorama-camera-band [data-camera-reveal] video { opacity:0; transition:opacity .65s cubic-bezier(.2,.65,.3,1); }
.panorama-camera-band [data-camera-reveal="ready"] video { opacity:1; }
.panorama-camera-band [data-camera-reveal="ready"] .camera-frame::after { opacity:0; }
.panorama-camera-band [data-camera-reveal="loading"] .camera-status { background:transparent; color:#efe5d2b3; font-size:11px; inset:46% 5% auto; padding:0; }
@media(prefers-reduced-motion:reduce) {
 .panorama-camera-band [data-camera-reveal] video,.panorama-camera-band [data-camera-reveal] .camera-frame::after { transition:none; }
}
.panorama-camera-band .camera-caption small,.panorama-camera-band .home-camera-overview .camera-caption small { display:none; }
.panorama-camera-band .camera-notice { top:6px; }
.camera-controls-overlay { top:8px; }
.page-index .panorama-opening .hero-canvas,.page-index .panorama-opening .hero-poster img { transition:opacity .25s ease; }
@media(max-width:360px) { .camera-controls-overlay { top:6px; } }
@media(max-width:700px) {
 .panorama-camera-heading { flex-wrap:wrap; gap:4px 8px; }
 .panorama-camera-heading .camera-provider-prefix { display:none; }
 .panorama-camera-heading .panorama-all-cameras { display:inline-flex; }
 .home-camera-overview-bar { flex-wrap:wrap; padding:14px 16px; gap:8px 14px; }
 .home-camera-overview-bar>div { width:100%; }
 .home-camera-overview-bar h2 { font-size:24px; }
 .home-camera-overview-bar button { margin-left:auto; }
 .panorama-header .header-park-notices { padding:12px; }
}

