.aerial-intro{padding-top:48px;padding-bottom:30px;text-align:center}.aerial-intro h1{color:#082c59;font-size:clamp(34px,4vw,64px);line-height:1.1;max-width:950px;margin:12px auto 18px}.aerial-intro .lead{max-width:660px;margin:auto}.aerial-explorer{width:min(1440px,100%);margin:0 auto 56px}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;background:#fff}.map-toolbar[hidden],.map-pins[hidden],.map-help[hidden],.place-open[hidden]{display:none}.map-zoom{display:flex;align-items:center;gap:8px}.map-toolbar button{border:1px solid #b5cce0;background:#fff;color:#082c59;border-radius:10px;min-width:44px;min-height:44px;font:700 15px/1.2 inherit;padding:10px 15px;cursor:pointer}.map-toolbar button:hover{background:#eef7ff}.map-toolbar button:disabled{opacity:.4;cursor:default}.map-toolbar button[aria-pressed=true]{background:#082c59;color:#fff;border-color:#082c59}.map-zoom output{min-width:44px;text-align:center;font-size:14px;font-weight:700;color:#082c59}.map-help{text-align:center;font-size:14px;color:#4d6072;margin:0 auto 18px;padding:0 22px;max-width:720px}.map-viewport{position:relative;width:100%;aspect-ratio:1672/941;overflow:hidden;background:#e6f3fa;isolation:isolate}.map-viewport.is-ready{touch-action:none;cursor:default}.map-viewport.can-pan{cursor:grab}.map-viewport.can-pan.is-dragging{cursor:grabbing}.map-picture{display:block;width:100%;height:100%;object-fit:contain;transform-origin:0 0;user-select:none;pointer-events:none;max-width:none}.map-leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.map-leaders line{stroke:#fff;stroke-width:3;paint-order:stroke;filter:drop-shadow(0 1px 1px #082c59)}.map-leaders circle{fill:#ffd141;stroke:#082c59;stroke-width:2}.map-pins{position:absolute;inset:0;pointer-events:none}.map-pin{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;padding:0;border:0;background:none;pointer-events:auto;cursor:pointer;display:grid;place-items:center;border-radius:50%}.map-pin-number{display:grid;place-items:center;border:2px solid #fff;border-radius:50%;background:#082c59;color:white;width:29px;height:29px;font:800 14px/1 system-ui,sans-serif;box-shadow:0 2px 8px #00224166}.map-pin:hover .map-pin-number,.map-pin:focus-visible .map-pin-number{background:#ffd141;color:#082c59}.map-pin-label{position:absolute;white-space:nowrap;left:50%;top:40px;transform:translateX(-50%);font:700 13px/1.3 system-ui,sans-serif;border-radius:6px;padding:5px 9px;background:#fff;color:#082c59;box-shadow:0 1px 8px #082c5933;pointer-events:none}.map-pin[data-edge=right] .map-pin-label{left:auto;right:0;transform:none}.map-pin[data-edge=left] .map-pin-label{left:0;transform:none}.map-pin[data-edge-y=bottom] .map-pin-label{top:auto;bottom:40px}.map-pins.names-off .map-pin-label{display:none}.map-caption{padding:0 20px;margin:17px 0 0;text-align:center;color:#536472;font-size:15px}.map-places{padding-bottom:60px}.map-places h2{font-size:clamp(28px,3vw,44px);color:#082c59;margin:10px 0 30px}.map-place-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.map-place{position:relative;padding:0 0 24px 48px;border-bottom:1px solid #d9e5ed}.place-number{position:absolute;left:0;top:0;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#ffd141;color:#082c59;font-weight:800}.map-place h3{font-size:22px;color:#082c59;margin:0 0 12px}.map-place p{font-size:17px;line-height:1.6;margin:0 0 12px;color:#42566b}.place-open{padding:8px 0;min-height:44px;border:0;background:none;color:#075ba6;cursor:pointer;font-weight:800;font-size:16px;text-align:left}.place-open:hover{text-decoration:underline}.map-detail{padding:0;border:0;border-radius:18px;width:min(720px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;background:white;color:#082c59;box-shadow:0 22px 90px #001c4666}.map-detail::backdrop{background:#052344aa}.map-detail form{position:absolute;right:14px;top:14px;z-index:1}.detail-close{width:44px;height:44px;background:white;color:#082c59;border:0;border-radius:50%;font-size:22px;cursor:pointer;box-shadow:0 2px 10px #082c5944}.map-detail-image{aspect-ratio:16/9;background-image:url('/assets/copper-creek-aerial-v2.webp');background-size:300%;background-repeat:no-repeat;background-color:#e6f3fa}.map-detail-content{padding:30px}.map-detail h2{font-size:clamp(28px,5vw,42px);margin:8px 0 15px}.map-detail-content>p:not(.eyebrow){font-size:19px;line-height:1.6;margin-bottom:24px}.map-detail .button{border:0;cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:900px){.map-place-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-pin-label{display:none}.map-pins:not(.names-off) .map-pin:focus-visible .map-pin-label{display:block}.map-toolbar{padding:12px}.aerial-intro{padding-top:28px}}@media(max-width:540px){.map-place-grid{grid-template-columns:1fr;gap:26px}.map-places{padding-bottom:32px}.map-toolbar{gap:8px;flex-wrap:wrap}.map-toolbar button{padding:10px}.map-zoom{gap:5px}.map-help{font-size:13px}.map-detail-content{padding:24px}.map-pin-number{width:26px;height:26px}.aerial-explorer{margin-bottom:36px}}@media(prefers-reduced-motion:reduce){.aerial-explorer *,.map-detail{scroll-behavior:auto;transition:none!important}}
.map-pin[hidden]{display:none}.map-toolbar button{font-family:inherit;font-weight:700;font-size:15px;line-height:1.2}
@media(max-width:900px){.map-pins:not(.names-off) .map-pin-label{display:block;font-size:11px;padding:4px 6px}}
.map-legend{display:none}.detail-destination{display:block;color:#075ba6;font-weight:700;font-size:17px;margin:0 0 24px}.detail-destination[hidden]{display:none}@media(max-width:900px){.map-pins .map-pin .map-pin-label{display:none!important}.map-legend:not([hidden]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px;list-style:none;margin:16px 18px;padding:0}.map-legend button{display:flex;align-items:center;gap:9px;min-height:44px;width:100%;padding:8px 0;border:0;background:white;font-family:inherit;font-size:14px;color:#082c59;text-align:left;cursor:pointer}.map-legend button span{flex-shrink:0;display:grid;place-items:center;width:24px;height:24px;background:#082c59;color:white;border-radius:50%;font-size:12px;font-weight:800}.map-legend button:hover{text-decoration:underline}}
.detail-explainer{display:flex;align-items:center;gap:20px;margin:0 0 24px}.detail-explainer p{flex:1;font-size:19px;line-height:1.6;margin:0}.detail-host{width:112px;height:160px;flex:0 0 112px;object-fit:contain}.detail-host[hidden]{display:none}@media(max-width:540px){.detail-explainer{gap:12px}.detail-host{width:80px;height:140px;flex-basis:80px}}
.detail-gallery{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 24px}.detail-gallery[hidden]{display:none}.detail-gallery button{font-family:inherit;font-weight:700;font-size:15px;line-height:1.3;min-height:44px;border:1px solid #b5cce0;border-radius:10px;padding:10px 14px;background:#fff;color:#082c59;cursor:pointer}.detail-gallery button[aria-pressed=true]{background:#082c59;color:#fff;border-color:#082c59}.detail-gallery button:hover{box-shadow:0 0 0 2px #ffd141}


.detail-host[data-detail-host=crew],.detail-host[data-detail-host=pit]{height:120px;object-fit:cover;object-position:45% center}@media(max-width:540px){.detail-host[data-detail-host=crew],.detail-host[data-detail-host=pit]{width:92px;height:104px;flex-basis:92px}}

/* Keep the entrance and its lamps clear of the name tag. */
.map-pin[data-place="portal"] .map-pin-label{top:auto;bottom:40px}

/* Town artwork contains its own numbered markers; align hit areas exactly. */
.map-viewport{user-select:none;-webkit-user-select:none}
.map-picture{-webkit-user-drag:none}
.town-map-page .map-viewport{aspect-ratio:1672/940}
.town-map-page .map-leaders{display:none}
.town-map-page .map-pin-number{opacity:0}
.town-map-page .map-pin:hover,.town-map-page .map-pin:focus-visible{z-index:5}
.town-map-page .map-pin:hover .map-pin-number,.town-map-page .map-pin:focus-visible .map-pin-number{opacity:1}
.town-map-page .map-pins .map-pin .map-pin-label{display:none!important}
.town-map-page .map-pins:not(.names-off) .map-pin:hover .map-pin-label,.town-map-page .map-pins:not(.names-off) .map-pin:focus-visible .map-pin-label{display:block!important}
.town-map-page .map-legend:not([hidden]){display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 16px;list-style:none;margin:20px 24px;padding:0}
.town-map-page .map-legend button{display:flex;align-items:center;gap:9px;min-height:44px;width:100%;padding:8px 0;border:0;background:white;font:600 14px/1.4 inherit;color:#082c59;text-align:left;cursor:pointer}
.town-map-page .map-legend button span{flex-shrink:0;display:grid;place-items:center;width:24px;height:24px;background:#082c59;color:white;border-radius:50%;font-size:12px;font-weight:800}
.town-map-page .map-legend button:hover{text-decoration:underline}
.town-map-page .map-detail-image{aspect-ratio:3/2;background-size:contain;background-color:white}
@media(max-width:900px){.town-map-page .map-legend:not([hidden]){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.town-map-page .map-pin{width:24px;height:24px}.town-map-page .map-legend:not([hidden]){margin:16px;gap:2px 12px}}

.map-place button.place-number{border:0;cursor:pointer;font-family:inherit;font-size:inherit}
.place-heading{border:0;padding:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.place-heading:hover{text-decoration:underline;text-decoration-color:#f4c532;text-underline-offset:5px}
.place-heading:focus-visible,.place-number:focus-visible{outline:3px solid #075ba6;outline-offset:4px}

/* Shared banner framing with the existing town-square wheel. */
.banner-inner>.creek-wheel{position:absolute;bottom:0;right:0;width:48%;height:480px;object-fit:contain;object-position:center bottom}
.town-map-page .map-pin-added .map-pin-number{opacity:1}
@media(max-width:1000px){.banner-inner>.creek-wheel{height:390px}}
@media(max-width:650px){.banner-inner>.creek-wheel{width:100%;height:350px;right:0}}
