.moron-map{position:relative;isolation:isolate;overflow:hidden}
.moron-map>img{position:relative;z-index:0}
.map-hotspot{--size:clamp(30px,3.1vw,46px);position:absolute;z-index:2;left:var(--x);top:var(--y);width:var(--size);height:var(--size);transform:translate(-50%,-50%);display:grid;place-items:center;border:1px solid rgba(255,238,184,.9);border-radius:50%;background:rgba(7,27,45,.84);color:#f4d98f;font:600 clamp(.7rem,1vw,.9rem)/1 "Inter",sans-serif;box-shadow:0 0 0 5px rgba(201,154,66,.16),0 4px 18px rgba(0,0,0,.38);cursor:pointer;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
.map-hotspot:before{content:"";position:absolute;inset:-8px;border:1px solid rgba(230,200,125,.48);border-radius:inherit;animation:map-pulse 2.8s ease-out infinite}
.map-hotspot:hover,.map-hotspot:focus-visible{transform:translate(-50%,-50%) scale(1.14);background:#9b6a24;box-shadow:0 0 0 7px rgba(230,200,125,.2),0 8px 24px rgba(0,0,0,.4);outline:2px solid #fff4cf;outline-offset:3px}
.map-hotspot:nth-of-type(2n):before{animation-delay:.8s}.map-hotspot:nth-of-type(3n):before{animation-delay:1.5s}
@keyframes map-pulse{0%{opacity:.9;transform:scale(.75)}75%,100%{opacity:0;transform:scale(1.45)}}
.map-instruction{display:flex;align-items:center;justify-content:center;gap:.65rem;margin:0;padding:14px 20px;background:#0b2a43;color:#e6c87d;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;text-align:center;border-top:1px solid rgba(230,200,125,.25)}
.map-instruction span{font-size:1rem}
.map-dialog{width:min(620px,calc(100% - 32px));max-height:min(82vh,760px);padding:0;border:1px solid rgba(230,200,125,.58);background:#08233a;color:#f7f1e7;box-shadow:0 34px 100px rgba(0,0,0,.62);overflow:visible}
.map-dialog::backdrop{background:rgba(1,11,19,.78);backdrop-filter:blur(5px)}
.map-dialog-panel{position:relative;padding:clamp(34px,6vw,62px);overflow:auto;max-height:min(82vh,760px)}
.map-dialog-panel:before{content:"";position:absolute;inset:12px;border:1px solid rgba(230,200,125,.18);pointer-events:none}
.map-dialog-close{position:absolute;z-index:2;right:18px;top:16px;width:42px;height:42px;border:1px solid rgba(230,200,125,.42);border-radius:50%;background:transparent;color:#e6c87d;font:300 1.8rem/1 Georgia,serif;cursor:pointer}
.map-dialog-close:hover,.map-dialog-close:focus-visible{background:#e6c87d;color:#071b2d;outline:2px solid #fff4cf;outline-offset:2px}
.map-dialog-kicker{margin:0 0 18px;color:#d8b760;font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.map-dialog h2{margin:0 42px 22px 0;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(2.3rem,6vw,4.2rem);font-weight:600;line-height:.92;letter-spacing:-.025em}
.map-dialog p:not(.map-dialog-kicker){margin:0;color:#c3ccd2;font-size:1rem;line-height:1.8}
.map-dialog-link{display:inline-flex;align-items:center;gap:1rem;margin-top:30px;color:#e6c87d;font-size:.76rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid rgba(230,200,125,.45);padding-bottom:7px}
.map-dialog-link:hover,.map-dialog-link:focus-visible{color:#fff4cf;border-color:#fff4cf}
body.map-dialog-open{overflow:hidden}
@media(max-width:700px){.map-hotspot{--size:32px}.map-instruction{font-size:.64rem;line-height:1.5}.map-dialog{width:100%;max-width:none;max-height:76vh;margin:auto 0 0;border-width:1px 0 0}.map-dialog-panel{max-height:76vh;padding:38px 28px 34px}.map-dialog h2{font-size:2.65rem}.map-dialog p:not(.map-dialog-kicker){font-size:1rem}.map-dialog-panel:before{inset:9px}}
@media(prefers-reduced-motion:reduce){.map-hotspot,.map-hotspot:before{animation:none;transition:none}}
