.hnmap-public{--map-red:#b91c34;--map-bg:#170e13;color:#eee4e6;max-width:1400px;margin:28px auto;border:1px solid #662736;border-radius:16px;overflow:hidden;background:#100f12;box-shadow:0 12px 45px rgba(0,0,0,.3);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.hnmap-public *{box-sizing:border-box}.hnmap-publichead{padding:24px 26px;background:linear-gradient(115deg,#2f141e,#110d11)}.hnmap-publichead h2{font-family:Georgia,serif;color:#fff;margin:0 0 7px;font-size:clamp(22px,3vw,35px)}.hnmap-publichead p{color:#d9bbc2;margin:0;font-size:13px}.hnmap-viewer{position:relative;overflow:hidden}.hnmap-window{position:relative;overflow:hidden;touch-action:pan-y;background:radial-gradient(circle at 40% 10%,#332630,#0b1013);cursor:grab}.hnmap-window:active{cursor:grabbing}.hnmap-scene{width:100%;position:relative;transform-origin:top left;isolation:isolate}.hnmap-base{display:block;width:100%;height:auto}.hnmap-areas,.hnmap-overlay{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.hnmap-areas [data-hnmap-id],.hnmap-overlay [data-hnmap-id]{pointer-events:auto;cursor:pointer;transition:stroke-width .15s}.hnmap-areas [data-hnmap-id]:hover,.hnmap-areas [data-hnmap-id]:focus-visible,.hnmap-overlay [data-hnmap-id]:hover,.hnmap-overlay [data-hnmap-id]:focus-visible{outline:none;filter:none;stroke-width:inherit}.hnmap-markers{position:absolute;inset:0;pointer-events:none}.hnmap-pin{position:absolute;transform:translate(-50%,-50%);border:0;padding:0;background:transparent;pointer-events:auto;cursor:pointer;color:#fff;font-weight:900}.hnmap-pinshape{display:grid;place-items:center;width:var(--hnmap-pin-size,42px);height:var(--hnmap-pin-size,42px);border-radius:50% 50% 50% 5px;transform:rotate(-45deg);background:var(--hnmap-pin-color,#bc1f37);border:2px solid #fff2e7;box-shadow:0 4px 15px #080509,0 0 13px #7c1c2b;line-height:1.1;font-size:calc(var(--hnmap-pin-size,42px)*.49);font-family:Georgia,serif;white-space:nowrap}.hnmap-pinshape::first-letter{font-weight:900}.hnmap-pin--label .hnmap-pinshape{width:auto;min-width:55px;max-width:200px;height:auto;padding:7px 12px;border-radius:7px;transform:none;text-transform:uppercase;font-size:clamp(8px,1.5vw,14px);background:rgba(16,9,13,.88);border-color:var(--hnmap-pin-color);white-space:normal}.hnmap-pin:not(.hnmap-pin--label) .hnmap-pinshape{font-size:calc(var(--hnmap-pin-size,42px)*.49);transform:none;border-radius:50%;font-family:Georgia,serif}.hnmap-pin:focus-visible{outline:2px solid #992039;outline-offset:5px}.hnmap-toolbar{position:absolute;left:12px;top:12px;z-index:9;display:grid;gap:5px}.hnmap-toolbar button{border:1px solid #937d81;background:#191116ee;color:white;font-weight:bold;font-size:22px;width:39px;height:39px;border-radius:7px;cursor:pointer}.hnmap-toolbar button:focus-visible,.hnmap-toolbar button:hover{outline:2px solid #ffc4b9}.hnmap-instruction{font-size:12px;color:#dac5cb;background:#23121a;padding:12px 17px;margin:0}.hnmap-modal{position:fixed;max-width:min(93vw,460px);width:100%;color:#f8ecef;background:linear-gradient(140deg,#251820,#0e0d11);border:1px solid #a43349;border-radius:14px;padding:32px;box-shadow:0 25px 70px #000;z-index:100000}.hnmap-modal::backdrop{background:rgba(2,0,4,.72)}.hnmap-modaleye{color:#e85867;letter-spacing:.17em;font-size:10px;font-weight:800}.hnmap-modal h3{font-family:Georgia,serif;color:#fff;font-size:31px;margin:12px 0}.hnmap-modal p{white-space:pre-wrap;line-height:1.7;color:#ead2da}.hnmap-close{position:absolute;right:12px;top:10px;cursor:pointer;background:none;border:none;color:#fff;font-size:30px}.hnmap-empty{padding:10px;color:#af1b33}@media(prefers-reduced-motion:reduce){.hnmap-public *{transition:none!important;animation:none!important}}
/* Map Studio 2.7: labels, escape arrows and accessible tap targets */
.hnmap-areas g[data-hnmap-id],.hnmap-overlay g[data-hnmap-id]{pointer-events:auto;cursor:pointer}
.hnmap-areas g[data-hnmap-id]:focus-visible,.hnmap-overlay g[data-hnmap-id]:focus-visible{outline:none;filter:none}
.hnmap-areas g[data-hnmap-id] .hnmap-area-label{fill:#fff;paint-order:stroke;stroke:#18080e;stroke-width:5;stroke-linejoin:round;font-family:Impact,'Arial Narrow',sans-serif;font-weight:900;letter-spacing:.5px;pointer-events:none}
.hnmap-areas g[data-hnmap-id]:hover .hnmap-area-label{fill:inherit}
.hnmap-marker-caption{display:block;position:absolute;left:50%;top:calc(50% + var(--hnmap-pin-size,42px)/2 + 6px);transform:translateX(-50%);max-width:160px;min-width:64px;width:max-content;padding:4px 7px;color:#fff;text-align:center;font-size:clamp(9px,1vw,12px);line-height:1.2;text-transform:uppercase;letter-spacing:.02em;font-weight:900;text-shadow:0 1px 4px #000;background:rgba(15,6,12,.87);border:1px solid var(--hnmap-pin-color,#bb233a);border-radius:5px;box-shadow:0 3px 9px #000a;pointer-events:none}
.hnmap-pin:hover .hnmap-marker-caption,.hnmap-pin:focus-visible .hnmap-marker-caption{border-color:#ffe6b2;background:#290c18}
.hnmap-public .hnmap-scene{user-select:none;-webkit-user-select:none}
/* 2.8: artwork overlay shared by editor and visitor map. Transparent aerial props. */
.hnmap-props{position:absolute;inset:0;z-index:2;pointer-events:none}
.hnmap-prop{box-sizing:border-box;position:absolute;display:block;border:0;outline:0;background:transparent;color:#ffe9da;margin:0;padding:0;pointer-events:auto;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:none;min-width:0;min-height:0;overflow:visible}
.hnmap-prop>img{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 4px 5px rgba(0,0,0,.45));transform-origin:center center}
.hnmap-prop:hover>img,.hnmap-prop:focus-visible>img{filter:drop-shadow(0 0 9px rgba(255,147,72,.8)) drop-shadow(0 4px 6px rgba(0,0,0,.7))}
.hnmap-prop:focus-visible{outline:2px solid #992039;outline-offset:3px}
.hnmap-prop-caption{position:absolute;left:50%;top:100%;transform:translateX(-50%);background:linear-gradient(100deg,#23121ce8,#581d1fe9);border:1px solid #d0794c;color:#ffe9c9;border-radius:3px;padding:3px 6px;font-size:clamp(8px,1vw,13px);font-weight:900;line-height:1.15;max-width:220px;width:max-content;text-align:center;text-shadow:0 1px 4px #000;pointer-events:none;box-shadow:0 2px 8px #0009}
/* Keep safety markings and information markers above decorative assets. */
.hnmap-scene>.hnmap-areas{z-index:1}
.hnmap-scene>.hnmap-props{z-index:2}
.hnmap-scene>.hnmap-overlay{z-index:3}
.hnmap-scene>.hnmap-markers{z-index:4}
.hnmap-scene>.hnmap-areas g[data-hnmap-id],.hnmap-scene>.hnmap-overlay g[data-hnmap-id]{cursor:pointer}
/* Halloween Nightmare Suite 3.0 — cinematic, map-matched symbology. */
.hnmap-public .hnmap-area-label{font-family:Impact,'Arial Narrow','Franklin Gothic Condensed',sans-serif;font-weight:900;letter-spacing:.04em;text-transform:uppercase;stroke:#0d0709;stroke-width:7;paint-order:stroke fill;fill:#fff9ec;filter:drop-shadow(0 2px 3px #000)}
.hnmap-public .hnmap-map--restricted .hnmap-area-label{fill:#ff5966;stroke:#1b0309}
.hnmap-public .hnmap-map--queue .hnmap-area-label{fill:#ffd493}
.hnmap-public .hnmap-map--event .hnmap-area-label{fill:#fff}
.hnmap-public .hnmap-pin--label .hnmap-pinshape,.hnmap-admin .hnmap-pin--label .hnmap-pinshape{transform:rotate(var(--hnmap-text-rotation,0deg))!important;transform-origin:center center;white-space:normal;border:0;border-radius:0;background:transparent;box-shadow:none;text-shadow:0 3px 2px #0e0306,0 0 7px rgba(0,0,0,.95),0 1px 12px rgba(255,206,169,.33);font-family:Impact,'Arial Narrow',sans-serif;font-weight:900;font-size:clamp(10px,calc(var(--hnmap-pin-size,42px) * .48),42px);letter-spacing:.045em;line-height:1.1;max-width:350px;padding:0;min-width:0;width:max-content;color:#fff;text-transform:uppercase;overflow-wrap:break-word}
.hnmap-pin .hnmap-marker-caption{rotate:var(--hnmap-text-rotation,0deg);transform-origin:center center;background:rgba(15,6,12,.66)}
.hnmap-prop .hnmap-prop-caption{rotate:var(--hnmap-text-rotation,0deg);transform-origin:center center;box-shadow:0 2px 8px rgba(0,0,0,.38)}
.hnmap-prop--cinematic>img{filter:sepia(.13) saturate(.85) brightness(.92) contrast(1.05) drop-shadow(1px 6px 5px rgba(0,0,0,.66))}
.hnmap-prop--muted>img{filter:sepia(.25) saturate(.6) brightness(.79) drop-shadow(0 2px 4px rgba(0,0,0,.6))}
.hnmap-prop--original>img{filter:drop-shadow(0 4px 5px rgba(0,0,0,.45))}
.hnmap-prop--cinematic:hover>img,.hnmap-prop--cinematic:focus-visible>img{filter:sepia(.1) saturate(.9) brightness(1) drop-shadow(0 0 8px rgba(255,171,90,.75))}
.hnmap-prop--muted:hover>img,.hnmap-prop--muted:focus-visible>img{filter:sepia(.18) saturate(.7) brightness(.94) drop-shadow(0 0 7px rgba(255,171,90,.5))}
.hnmap-map-area .hnmap-area-label{pointer-events:none}
.hnmap-scene>.hnmap-areas{z-index:1}
.hnmap-scene>.hnmap-props{z-index:2}
.hnmap-scene>.hnmap-overlay{z-index:3}
.hnmap-scene>.hnmap-markers{z-index:4}

/* 3.0.5 compact fit + better zoom buttons */

.hnmap-public{--hnmap-ratio:1.6;--hnmap-ui-offset:215px;max-width:min(1320px,calc((100vh - 28px) * var(--hnmap-ratio) + 42px));margin:18px auto}
.hnmap-publichead{padding:16px 18px 12px}
.hnmap-publichead h2{margin:0 0 4px;font-size:clamp(20px,2.4vw,31px);line-height:1.08}
.hnmap-publichead p{font-size:12px;line-height:1.35}
.hnmap-viewer{position:relative;padding:10px}
.hnmap-window{border-top:1px solid rgba(255,214,188,.06);border-radius:12px;max-height:calc(100vh - var(--hnmap-ui-offset));display:flex;justify-content:center;align-items:flex-start;padding:0;overflow:auto}
.hnmap-scene{width:min(100%,calc((100vh - var(--hnmap-ui-offset)) * var(--hnmap-ratio)));max-width:100%;max-height:calc(100vh - var(--hnmap-ui-offset));position:relative;transform-origin:top left;isolation:isolate}
.hnmap-base{display:block;width:100%;height:auto;border-radius:10px}
.hnmap-toolbar{position:absolute;right:18px;top:18px;left:auto;z-index:9;display:flex;flex-direction:column;gap:8px;padding:8px;border:1px solid rgba(255,196,131,.26);border-radius:999px;background:linear-gradient(180deg,rgba(23,11,16,.94),rgba(8,6,9,.92));box-shadow:0 12px 28px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,231,208,.08);backdrop-filter:blur(3px)}
.hnmap-toolbtn{appearance:none;border:1px solid rgba(255,198,132,.35);background:radial-gradient(circle at 32% 28%,rgba(255,219,153,.22),transparent 34%),linear-gradient(180deg,#35121a,#150d11);color:#fff;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 10px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,235,205,.12);font-size:28px;font-weight:900;line-height:1;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}
.hnmap-toolbtn span{display:block;transform:translateY(-1px)}
.hnmap-toolbtn--reset{font-size:24px}
.hnmap-toolbtn:hover,.hnmap-toolbtn:focus-visible{outline:none;border-color:#ffd29c;box-shadow:0 0 0 3px rgba(255,184,100,.14),0 8px 18px rgba(0,0,0,.4),0 0 16px rgba(255,126,71,.18);transform:translateY(-1px) scale(1.03)}
.hnmap-toolbtn:active{transform:scale(.98)}
.hnmap-instruction{font-size:11px;padding:10px 14px}
@media(max-width:1100px){.hnmap-public{--hnmap-ui-offset:210px;max-width:min(96vw,1180px)}.hnmap-scene{width:min(100%,calc((100vh - var(--hnmap-ui-offset)) * var(--hnmap-ratio)))}.hnmap-toolbar{right:14px;top:14px}}
@media(max-width:700px){.hnmap-public{--hnmap-ui-offset:185px;margin:12px auto}.hnmap-publichead{padding:13px 14px 10px}.hnmap-viewer{padding:8px}.hnmap-window,.hnmap-scene{max-height:calc(100vh - var(--hnmap-ui-offset))}.hnmap-toolbar{right:10px;top:10px;gap:6px;padding:6px}.hnmap-toolbtn{width:42px;height:42px;font-size:24px}.hnmap-toolbtn--reset{font-size:20px}.hnmap-instruction{padding:8px 12px}}


/* Halloween Nightmare 3.0.6: rusted frame + red enamel details */
.hnmap-public{
  position:relative; isolation:isolate; background:#0c080a;
  border:1px solid #8b252b; border-radius:13px;
  box-shadow:0 0 0 1px #18080b,0 0 0 4px rgba(90,10,18,.23),0 16px 45px #000b,0 0 42px #740e1724;
  overflow:hidden;
}
.hnmap-public::before{
  content:"";position:absolute;inset:0 0 auto;height:12px;pointer-events:none;z-index:4;
  background:repeating-linear-gradient(110deg,transparent 0 31px,#6e1824ba 32px 34px,transparent 35px 57px),linear-gradient(180deg,#bd182e,#3b0a12 62%,transparent);opacity:.85;
}
.hnmap-public::after{
  content:"";position:absolute;inset:auto 0 0;height:9px;pointer-events:none;z-index:4;
  background:linear-gradient(90deg,#100406,#a91629 9%,#30070e 29%,#bf2133 52%,#20070c 78%,#a1162a 91%,#120609);
  box-shadow:0 -2px 11px rgba(150,22,37,.22);
}
.hnmap-publichead{
  position:relative;padding:17px 22px 13px 28px;
  background:radial-gradient(ellipse at 65% -70%,#86243633,transparent 72%),linear-gradient(135deg,#200c11 0%,#13090d 48%,#321018 100%);
  border-bottom:1px solid #7f2129;box-shadow:inset 0 -4px 13px rgba(0,0,0,.6);
}
.hnmap-publichead::before{
  content:"";pointer-events:none;position:absolute;inset:0 auto 0 0;width:8px;
  background:linear-gradient(180deg,#fb5461 0%,#9a1b2c 35%,#39080f 100%);box-shadow:2px 0 12px #cc233a52;
  clip-path:polygon(0 0,100% 0,75% 44%,100% 60%,35% 100%,0 100%);
}
.hnmap-publichead::after{
  content:"";pointer-events:none;position:absolute;right:30px;top:7px;width:145px;height:38px;opacity:.6;
  background:repeating-linear-gradient(160deg,transparent 0 20px,#a52232 21px 23px,transparent 24px 42px);
  clip-path:polygon(7% 13%,88% 0,96% 30%,61% 55%,83% 77%,1% 97%);
}
.hnmap-publichead h2{position:relative;z-index:1;color:#fff0df;text-transform:uppercase;letter-spacing:.045em;font-family:Impact,'Arial Narrow',Georgia,serif;font-weight:900;font-size:clamp(22px,2.5vw,35px);text-shadow:0 2px 1px #000,2px 2px 0 #671520,0 0 18px #9c142541}
.hnmap-publichead p{position:relative;z-index:1;color:#cda8a7;letter-spacing:.07em;text-transform:uppercase;font-weight:700;font-size:10px}
.hnmap-viewer{background:linear-gradient(145deg,#160b0e,#0c0b0e);padding:10px 12px 11px}
.hnmap-window{position:relative;border-radius:7px;border:1px solid #49222b;background:#09090a;box-shadow:inset 0 0 20px #000d,0 0 0 1px #090608;scrollbar-width:thin;scrollbar-color:#7c2d38 #130c10}
.hnmap-instruction{position:relative;background:linear-gradient(95deg,#180b10,#251016 50%,#16090e);border-top:1px solid #61232c;border-radius:0;color:#c9aeb2;font-size:11px;text-align:center;letter-spacing:.035em}
.hnmap-toolbar{right:18px;top:18px;background:linear-gradient(175deg,#2b0c13ef,#0b090dee);border:1px solid #793540;border-radius:14px;box-shadow:0 9px 22px #000a,inset 0 1px 0 #9d46532b}
.hnmap-toolbtn{border-radius:10px;border:1px solid #a04a4e;background:linear-gradient(150deg,#4a1521,#1e0b12 73%);box-shadow:inset 0 1px 0 #e35f6932,0 4px 8px #0008;color:#ffe2d4;font-family:Arial,sans-serif}
.hnmap-toolbtn:hover,.hnmap-toolbtn:focus-visible{background:linear-gradient(155deg,#a22a3b,#3c101a);color:#fff8ef;box-shadow:0 0 0 2px #fc6c6e52,0 0 18px #b6253766}
.hnmap-public .hnmap-static{cursor:default!important}
.hnmap-public .hnmap-pin--label .hnmap-pinshape,
.hnmap-admin .hnmap-pin--label .hnmap-pinshape{position:relative;isolation:isolate;overflow:visible}
/* jagged bloodstain belongs INSIDE the rotated label and thus rotates with the text */
.hnmap-public .hnmap-pin--label .hnmap-pinshape::before,
.hnmap-admin .hnmap-pin--label .hnmap-pinshape::before{
  content:"";position:absolute;z-index:-1;inset:-12px -23px -13px -26px;opacity:0;pointer-events:none;
  background:radial-gradient(ellipse at 18% 57%,#eb2138 0%,transparent 32%),linear-gradient(100deg,transparent 0%,#780a17 8%,#b20d23 32%,#61040e 62%,#cc1c36 86%,transparent 99%);
  clip-path:polygon(0 40%,7% 29%,13% 33%,23% 22%,32% 31%,39% 12%,49% 28%,61% 20%,68% 36%,81% 22%,91% 33%,100% 45%,94% 52%,98% 68%,83% 71%,79% 87%,69% 72%,59% 82%,49% 67%,38% 91%,31% 69%,19% 77%,11% 61%,3% 69%);
  filter:drop-shadow(0 1px 4px #e11e3580);transition:opacity .15s;
}
.hnmap-public .hnmap-pin--label:hover .hnmap-pinshape::before,
.hnmap-public .hnmap-pin--label:focus-visible .hnmap-pinshape::before,
.hnmap-admin .hnmap-pin--label:hover .hnmap-pinshape::before,
.hnmap-admin .hnmap-pin--label:focus-visible .hnmap-pinshape::before{opacity:.92}
.hnmap-public .hnmap-pin:not(.hnmap-pin--label),
.hnmap-admin .hnmap-pin:not(.hnmap-pin--label){transform:translate(-50%,-50%) rotate(var(--hnmap-text-rotation,0deg))}
/* asset hover stain rotates by the same angle as the image */
.hnmap-public .hnmap-prop::before,.hnmap-admin .hnmap-prop::before{
  content:"";position:absolute;inset:7% -11%;z-index:-1;pointer-events:none;opacity:0;
  transform:rotate(var(--hnmap-object-rotation,0deg));transform-origin:50% 50%;
  background:linear-gradient(125deg,transparent,#6b0914 16%,#b91a30 44%,#52030e 78%,transparent);
  clip-path:polygon(0 50%,12% 25%,22% 39%,30% 17%,43% 33%,54% 11%,64% 35%,74% 24%,86% 38%,100% 53%,89% 69%,77% 58%,61% 79%,50% 63%,35% 84%,23% 62%,11% 74%);
  filter:drop-shadow(0 1px 7px #d21c2b66);transition:opacity .15s;
}
.hnmap-public .hnmap-prop:hover::before,.hnmap-public .hnmap-prop:focus-visible::before,
.hnmap-admin .hnmap-prop:hover::before{opacity:.8}
/* Text captions are not pills: a ripped smear, rotating with caption */
.hnmap-public .hnmap-marker-caption,.hnmap-admin .hnmap-marker-caption,
.hnmap-public .hnmap-prop-caption,.hnmap-admin .hnmap-prop-caption{
  border:0;border-radius:0;padding:8px 17px 9px;color:#fff4e8;
  background:linear-gradient(106deg,transparent 0%,#5a0815 8%,#9e1527 38%,#4e0813 76%,transparent 100%);
  box-shadow:none;clip-path:polygon(0 37%,9% 28%,18% 38%,29% 24%,44% 32%,59% 20%,70% 37%,85% 25%,100% 44%,93% 58%,98% 75%,82% 74%,69% 89%,53% 72%,39% 90%,24% 70%,9% 77%);
  text-shadow:0 1px 3px #060207,0 0 5px #000;
}
.hnmap-public .hnmap-pin .hnmap-marker-caption,.hnmap-admin .hnmap-pin .hnmap-marker-caption{rotate:none}
.hnmap-public .hnmap-marker-caption:hover,.hnmap-public .hnmap-pin:hover .hnmap-marker-caption{border:0;background:linear-gradient(110deg,transparent,#781121 12%,#c41e37 50%,#670b17 87%,transparent)}
@media(max-width:700px){.hnmap-publichead{padding:14px 14px 10px 20px}.hnmap-viewer{padding:8px}.hnmap-toolbar{right:12px;top:12px}.hnmap-publichead::after{width:80px}}

.hnmap-public .hnmap-label-blood,.hnmap-admin .hnmap-label-blood{fill:#971126;stroke:#4a0a15;stroke-width:1.5;opacity:0;transition:opacity .16s ease;filter:drop-shadow(0 0 8px #e2243a77)}
.hnmap-public .hnmap-map-area:hover .hnmap-label-blood,.hnmap-public .hnmap-map-area:focus-visible .hnmap-label-blood,
.hnmap-admin .hnmap-map-area:hover .hnmap-label-blood,.hnmap-admin .hnmap-map-area.is-selected .hnmap-label-blood{opacity:.82}

/* 3.0.7 hover cleanup: no white underlay, blood only */
.hnmap-public .hnmap-pin--label:hover .hnmap-pinshape,
.hnmap-public .hnmap-pin--label:focus-visible .hnmap-pinshape,
.hnmap-admin .hnmap-pin--label:hover .hnmap-pinshape,
.hnmap-admin .hnmap-pin--label:focus-visible .hnmap-pinshape{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
.hnmap-public .hnmap-prop:hover .hnmap-prop-caption,
.hnmap-public .hnmap-prop:focus-visible .hnmap-prop-caption,
.hnmap-admin .hnmap-prop:hover .hnmap-prop-caption,
.hnmap-admin .hnmap-prop:focus-visible .hnmap-prop-caption,
.hnmap-public .hnmap-pin:hover .hnmap-marker-caption,
.hnmap-public .hnmap-pin:focus-visible .hnmap-marker-caption,
.hnmap-admin .hnmap-pin:hover .hnmap-marker-caption,
.hnmap-admin .hnmap-pin:focus-visible .hnmap-marker-caption{
  border:0!important;
  box-shadow:none!important;
  background:linear-gradient(110deg,transparent 0%,#781121 12%,#c41e37 50%,#670b17 87%,transparent 100%)!important;
}

/* 3.0.8 – non-interactive decorations have no hover, focus or blood effects. */
.hnmap-public .hnmap-static,
.hnmap-public .hnmap-static *{pointer-events:none!important;cursor:default!important}
.hnmap-public .hnmap-static:focus-visible{outline:none!important;filter:none!important}
.hnmap-public .hnmap-static:hover{filter:none!important;box-shadow:none!important}
.hnmap-public .hnmap-static:hover .hnmap-label-blood,
.hnmap-public .hnmap-static:focus-visible .hnmap-label-blood,
.hnmap-public .hnmap-static:hover .hnmap-pinshape::before,
.hnmap-public .hnmap-static:focus-visible .hnmap-pinshape::before,
.hnmap-public .hnmap-static:hover::before,
.hnmap-public .hnmap-static:focus-visible::before{opacity:0!important}
.hnmap-public .hnmap-static:hover .hnmap-area-label{fill:#fff9ec!important}
.hnmap-public .hnmap-prop.hnmap-static:hover>img,
.hnmap-public .hnmap-prop.hnmap-static:focus-visible>img{filter:none!important}
.hnmap-public .hnmap-prop.hnmap-static.hnmap-prop--cinematic>img{filter:sepia(.13) saturate(.85) brightness(.92) contrast(1.05) drop-shadow(1px 6px 5px rgba(0,0,0,.66))!important}
.hnmap-public .hnmap-prop.hnmap-static.hnmap-prop--muted>img{filter:sepia(.25) saturate(.6) brightness(.79) drop-shadow(0 2px 4px rgba(0,0,0,.6))!important}
.hnmap-public .hnmap-prop.hnmap-static.hnmap-prop--original>img{filter:drop-shadow(0 4px 5px rgba(0,0,0,.45))!important}

/* All separate escape-route strokes behave as one highlighted route network. */
.hnmap-public .hnmap-map-route--escape{transition:filter .14s ease,opacity .14s ease}
.hnmap-public .hnmap-map-route--escape:hover,
.hnmap-public .hnmap-map-route--escape:focus-visible{filter:none!important;stroke-width:initial!important;outline:none!important}
.hnmap-public.hnmap-escape-active .hnmap-overlay .hnmap-map-route--escape{
  filter:drop-shadow(0 0 5px rgba(221,255,219,.95)) drop-shadow(0 0 13px rgba(65,255,112,.86))!important;
  opacity:1!important;
}
.hnmap-public.hnmap-escape-active .hnmap-overlay .hnmap-map-route--escape polyline:not([stroke="transparent"]){stroke-opacity:1!important}
@media(prefers-reduced-motion:reduce){.hnmap-public .hnmap-map-route--escape{transition:none!important}}


/* Halloween Nightmare Suite 3.0.9 — remove old white hover/focus highlighting. */
.hnmap-public .hnmap-areas g[data-hnmap-id]:is(:hover,:focus-visible),
.hnmap-public .hnmap-overlay g[data-hnmap-id]:is(:hover,:focus-visible){
  outline:none!important;filter:none!important;stroke-width:inherit!important;
}
.hnmap-public .hnmap-areas g[data-hnmap-id]:is(:hover,:focus-visible) .hnmap-area-label{
  fill:#fff9ec!important;filter:none!important;
}
.hnmap-public .hnmap-areas g.hnmap-map--restricted:is(:hover,:focus-visible) .hnmap-area-label{fill:#ff5966!important}
.hnmap-public .hnmap-areas g.hnmap-map--queue:is(:hover,:focus-visible) .hnmap-area-label{fill:#ffd493!important}
.hnmap-public .hnmap-prop:is(:hover,:focus-visible),
.hnmap-public .hnmap-pin:is(:hover,:focus-visible){background:transparent!important;box-shadow:none!important;outline:none!important}
.hnmap-public .hnmap-prop:is(:hover,:focus-visible)>img{
  filter:drop-shadow(0 4px 6px rgba(0,0,0,.55))!important;
}
.hnmap-public .hnmap-prop.hnmap-prop--cinematic:is(:hover,:focus-visible)>img{filter:sepia(.13) saturate(.85) brightness(.92) contrast(1.05) drop-shadow(1px 6px 5px rgba(0,0,0,.66))!important}
.hnmap-public .hnmap-prop.hnmap-prop--muted:is(:hover,:focus-visible)>img{filter:sepia(.25) saturate(.6) brightness(.79) drop-shadow(0 2px 4px rgba(0,0,0,.6))!important}
.hnmap-public .hnmap-pin--label:is(:hover,:focus-visible) .hnmap-pinshape{background:transparent!important;border:0!important;box-shadow:none!important}
.hnmap-public .hnmap-pin--label .hnmap-pinshape::before{filter:drop-shadow(0 2px 4px #700e21a6)}
/* Escape group retains only its intentional green group aura. */
.hnmap-public.hnmap-escape-active .hnmap-overlay .hnmap-map-route--escape{filter:drop-shadow(0 0 5px rgba(57,209,90,.7)) drop-shadow(0 0 11px rgba(27,175,72,.7))!important}

/* High-end stage-edge creatures: artwork floats outside the frame; never over the map controls. */
.hnmap-public{overflow:visible!important}
.hnmap-publichead,.hnmap-viewer,.hnmap-instruction{position:relative}
.hnmap-publichead{border-radius:12px 12px 0 0}
.hnmap-public .hnmap-haunts{position:absolute;inset:-30px;pointer-events:none;overflow:visible;z-index:8;isolation:isolate;contain:layout style}
.hnmap-public .hnmap-haunt{position:absolute;display:block;pointer-events:none!important;user-select:none;-webkit-user-drag:none;width:auto;height:auto;max-width:none;mix-blend-mode:normal;transform-origin:50% 50%;opacity:0;filter:drop-shadow(0 4px 6px #000) drop-shadow(0 0 8px #710f20a8);will-change:transform,opacity}
.hnmap-public .hnmap-haunt--left-hand{left:-68px;top:22%;width:170px;transform:rotate(-25deg) translate(-55px,0);animation:hnmap-claw-left 22s ease-in-out infinite}
.hnmap-public .hnmap-haunt--right-hand{right:-62px;top:49%;width:177px;transform:scaleX(-1) rotate(17deg) translate(-55px,0);animation:hnmap-claw-right 29s ease-in-out -9s infinite}
.hnmap-public .hnmap-haunt--top-crawler{top:-95px;left:-215px;width:235px;animation:hnmap-skitter-top 38s linear -13s infinite}
.hnmap-public .hnmap-haunt--bottom-crawler{bottom:-87px;right:-205px;width:228px;animation:hnmap-skitter-bottom 44s linear -4s infinite}
.hnmap-public .hnmap-haunt-fog{position:absolute;display:block;pointer-events:none;width:105px;height:46%;top:22%;z-index:-1;border-radius:50%;opacity:.2;filter:blur(17px);background:radial-gradient(ellipse,rgba(142,20,31,.3),rgba(43,9,17,.16) 42%,transparent 76%);animation:hnmap-border-mist 19s ease-in-out infinite alternate}
.hnmap-public .hnmap-haunt-fog--l{left:-55px}.hnmap-public .hnmap-haunt-fog--r{right:-55px;animation-delay:-11s}
@keyframes hnmap-claw-left{
  0%,13%,47%,100%{opacity:0;transform:translate(-76px,22px) rotate(-29deg)}
  17%{opacity:.34;transform:translate(-34px,12px) rotate(-15deg)}
  22%,33%{opacity:.87;transform:translate(10px,1px) rotate(-5deg)}
  39%{opacity:.54;transform:translate(-16px,8px) rotate(-18deg)}
}
@keyframes hnmap-claw-right{
  0%,19%,50%,100%{opacity:0;transform:scaleX(-1) translate(-69px,20px) rotate(-30deg)}
  25%{opacity:.45;transform:scaleX(-1) translate(-29px,2px) rotate(-17deg)}
  29%,39%{opacity:.88;transform:scaleX(-1) translate(12px,-9px) rotate(-5deg)}
  46%{opacity:.42;transform:scaleX(-1) translate(-25px,7px) rotate(-24deg)}
}
@keyframes hnmap-skitter-top{
  0%,10%{opacity:0;left:-215px;transform:translateY(-34px) rotate(-5deg)}
  14%{opacity:.66;transform:translateY(4px) rotate(0deg)}
  28%{opacity:.8;transform:translateY(9px) rotate(2deg)}
  42%{opacity:.73;transform:translateY(1px) rotate(-1deg)}
  57%{opacity:.67;left:calc(100% - 140px);transform:translateY(12px) rotate(4deg)}
  63%,100%{opacity:0;left:calc(100% + 10px);transform:translateY(-24px) rotate(8deg)}
}
@keyframes hnmap-skitter-bottom{
  0%,17%{opacity:0;right:-205px;transform:scaleX(-1) translateY(22px) rotate(-5deg)}
  22%{opacity:.69;transform:scaleX(-1) translateY(-5px) rotate(-1deg)}
  39%{opacity:.82;transform:scaleX(-1) translateY(-12px) rotate(3deg)}
  58%{opacity:.69;right:calc(100% - 130px);transform:scaleX(-1) translateY(-4px) rotate(-2deg)}
  65%,100%{opacity:0;right:calc(100% + 8px);transform:scaleX(-1) translateY(24px) rotate(-10deg)}
}
@keyframes hnmap-border-mist{from{opacity:.09;transform:translateY(-18px) scale(.85)}to{opacity:.32;transform:translateY(32px) scale(1.12)}}
@media (max-width:760px){.hnmap-public .hnmap-haunt--top-crawler,.hnmap-public .hnmap-haunt--bottom-crawler{display:none}.hnmap-public .hnmap-haunt--left-hand{width:112px;left:-45px}.hnmap-public .hnmap-haunt--right-hand{width:115px;right:-45px}}
@media (prefers-reduced-motion:reduce){.hnmap-public .hnmap-haunt,.hnmap-public .hnmap-haunt-fog{animation:none!important;will-change:auto!important;opacity:0!important}}

/* Halloween Nightmare 3.0.10 – fixed white Elementor/theme hover on assets & free labels.
   Public map objects are now divs, not theme-styled buttons. Keep all visual
   surfaces transparent in every interaction state; the blood pseudo-element
   remains the only added hover background. */
.hnmap-public .hnmap-scene :is(.hnmap-prop,.hnmap-pin),
.hnmap-public .hnmap-scene :is(.hnmap-prop,.hnmap-pin):is(:hover,:active,:focus,:focus-visible),
.hnmap-admin .hnmap-editviewport .hnmap-scene :is(.hnmap-prop,.hnmap-pin),
.hnmap-admin .hnmap-editviewport .hnmap-scene :is(.hnmap-prop,.hnmap-pin):is(:hover,:active,:focus,:focus-visible){
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  border:0!important;
  box-shadow:none!important;
  outline:none!important;
  text-decoration:none!important;
  -webkit-tap-highlight-color:transparent;
}
.hnmap-public .hnmap-scene .hnmap-pin--label .hnmap-pinshape,
.hnmap-public .hnmap-scene .hnmap-pin--label:is(:hover,:active,:focus,:focus-visible) .hnmap-pinshape,
.hnmap-admin .hnmap-editviewport .hnmap-pin--label .hnmap-pinshape,
.hnmap-admin .hnmap-editviewport .hnmap-pin--label:is(:hover,:active,:focus,:focus-visible) .hnmap-pinshape{
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  border:0!important;
  box-shadow:none!important;
  outline:none!important;
}
.hnmap-public .hnmap-scene .hnmap-prop>img,
.hnmap-public .hnmap-scene .hnmap-prop:is(:hover,:active,:focus,:focus-visible)>img,
.hnmap-admin .hnmap-editviewport .hnmap-prop>img,
.hnmap-admin .hnmap-editviewport .hnmap-prop:is(:hover,:active,:focus,:focus-visible)>img{
  background:transparent!important;
  background-image:none!important;
  border:0!important;
  box-shadow:none!important;
}
/* Passive items have no hover or focus decoration at all. */
.hnmap-public .hnmap-scene .hnmap-static::before,
.hnmap-public .hnmap-scene .hnmap-static::after,
.hnmap-public .hnmap-scene .hnmap-static .hnmap-pinshape::before{
  opacity:0!important;
}
/* Interactive free labels: only the crimson blood smear appears on hover. */
.hnmap-public .hnmap-scene .hnmap-pin--label:not(.hnmap-static):is(:hover,:focus-visible) .hnmap-pinshape::before{
  opacity:.92!important;
}
/* The admin editor must keep a clear selection indicator after the hover reset. */
.hnmap-admin .hnmap-editviewport .hnmap-prop.is-selected{
  outline:2px dashed #e34d62!important;
  outline-offset:3px!important;
}
.hnmap-admin .hnmap-editviewport .hnmap-pin.is-selected .hnmap-pinshape{
  outline:2px dashed #e34d62!important;
  outline-offset:4px!important;
}

/* ==========================================================================
   Halloween Nightmare 3.1.0 – High-End Rahmen-Atmosphäre
   Alles rein dekorativ: pointer-events:none, aria-hidden, nur transform/opacity
   (plus wenige winzige Elemente mit height). Kartenbedienung bleibt unberührt.
   Koordinaten: .hnmap-haunts liegt 30px ausserhalb des Rahmens (inset:-30px).
   ========================================================================== */
.hnmap-public .hnmap-haunts :is(img,span,i){pointer-events:none!important;user-select:none;-webkit-user-drag:none}
.hnmap-public .hnmap-haunts img{border:0!important;border-radius:0!important;box-shadow:none!important;background:none!important;max-width:none!important;padding:0!important;margin:0}

/* --- Rahmen-Glühen: defektes Neon-Flackern in Blutrot ------------------- */
.hnmap-public .hnmap-haunt-glow{position:absolute;inset:30px;border-radius:13px;opacity:.55;
  box-shadow:0 0 0 1px rgba(255,74,92,.38),0 0 22px 3px rgba(200,22,44,.62),0 0 70px 10px rgba(120,10,26,.42);
  animation:hnmap-neon 9s linear infinite;will-change:opacity}
.hnmap-public .hnmap-haunt-vignette{position:absolute;inset:30px;border-radius:13px;
  box-shadow:inset 0 0 70px 6px rgba(40,0,8,.5),inset 0 0 14px rgba(0,0,0,.6)}
@keyframes hnmap-neon{
  0%,100%{opacity:.58}  3%{opacity:.22}  4.5%{opacity:.78}  6%{opacity:.3}  8%{opacity:.66}
  34%{opacity:.5}  52%{opacity:.62}  52.8%{opacity:.12}  53.6%{opacity:.8}  54.4%{opacity:.25}  56%{opacity:.7}
  78%{opacity:.52}  91%{opacity:.6}
}

/* --- Nebelbänke am unteren Rand ----------------------------------------- */
.hnmap-public .hnmap-haunt-mist{position:absolute;bottom:14px;height:110px;width:62%;border-radius:50%;opacity:.28;filter:blur(18px);will-change:transform;
  background:radial-gradient(ellipse at 50% 60%,rgba(214,196,203,.5),rgba(120,70,86,.24) 45%,transparent 72%)}
.hnmap-public .hnmap-haunt-mist--a{left:-6%;animation:hnmap-mist-a 31s ease-in-out infinite alternate}
.hnmap-public .hnmap-haunt-mist--b{right:-10%;width:54%;opacity:.2;animation:hnmap-mist-b 41s ease-in-out -14s infinite alternate}
@keyframes hnmap-mist-a{from{transform:translateX(-4%) scaleY(.85)}to{transform:translateX(38%) scaleY(1.15)}}
@keyframes hnmap-mist-b{from{transform:translateX(6%) scaleY(1.1)}to{transform:translateX(-46%) scaleY(.82)}}

/* --- Spinnennetze in den Ecken ------------------------------------------ */
.hnmap-public .hnmap-web{position:absolute;display:block;height:auto;opacity:.82;filter:drop-shadow(0 0 4px rgba(0,0,0,.85))}
.hnmap-public .hnmap-web--tr{top:30px;right:30px;width:230px;transform:scaleX(-1);animation:hnmap-web-sway 9s ease-in-out infinite alternate}
.hnmap-public .hnmap-web--bl{bottom:30px;left:30px;width:170px;transform:scaleY(-1);opacity:.72;animation:hnmap-web-sway-bl 11s ease-in-out -4s infinite alternate}
.hnmap-public .hnmap-web--br{bottom:30px;right:30px;width:130px;transform:scale(-1,-1);opacity:.6;animation:hnmap-web-sway-br 13s ease-in-out -7s infinite alternate}
@keyframes hnmap-web-sway{from{transform:scaleX(-1) skewY(0deg)}to{transform:scaleX(-1) skewY(1.6deg)}}
@keyframes hnmap-web-sway-bl{from{transform:scaleY(-1) skewX(0deg)}to{transform:scaleY(-1) skewX(-1.8deg)}}
@keyframes hnmap-web-sway-br{from{transform:scale(-1,-1) skewX(0deg)}to{transform:scale(-1,-1) skewX(1.8deg)}}

/* --- Rabe auf dem Rahmen ------------------------------------------------- */
.hnmap-public .hnmap-crow{position:absolute;display:block;right:17%;top:-72px;width:142px;height:auto;z-index:2;
  filter:drop-shadow(0 3px 4px #000) drop-shadow(0 0 7px rgba(150,16,34,.55))}

/* --- Blutstropfen am oberen Rahmen -------------------------------------- */
.hnmap-public .hnmap-drip{position:absolute;top:40px;left:var(--x);width:6px;height:var(--l);margin-left:-2.5px;border-radius:0 0 3px 3px;
  background:linear-gradient(180deg,#8d1022 0,#c0182e 55%,#7a0c1b);box-shadow:0 0 6px rgba(190,20,40,.55);
  transform-origin:top;animation:hnmap-drip-grow var(--t) cubic-bezier(.5,.05,.7,.5) var(--d) infinite}
.hnmap-public .hnmap-drip::after{content:"";position:absolute;left:50%;bottom:-6px;width:9px;height:11px;margin-left:-4.5px;
  border-radius:50% 50% 55% 55%/42% 42% 62% 62%;background:radial-gradient(circle at 35% 30%,#ff6a78 0,#c0182e 38%,#6f0a18 100%);
  animation:hnmap-drip-fall var(--t) cubic-bezier(.5,.05,.7,.5) var(--d) infinite}
@keyframes hnmap-drip-grow{
  0%{transform:scaleY(0);opacity:0} 6%{opacity:1}
  62%{transform:scaleY(1);opacity:1} 80%{transform:scaleY(1);opacity:1}
  92%,100%{transform:scaleY(1);opacity:0}
}
@keyframes hnmap-drip-fall{
  0%,78%{transform:translateY(0) scale(1);opacity:1}
  100%{transform:translateY(58px) scale(.7,1.25);opacity:0}
}

/* --- Augen im Dunkeln ----------------------------------------------------- */
.hnmap-public .hnmap-eyes{position:absolute;bottom:45px;left:7%;width:64px;height:16px;opacity:0;animation:hnmap-eyes-show 23s ease-in-out -6s infinite}
.hnmap-public .hnmap-eyes i{position:absolute;top:0;width:22px;height:12px;border-radius:50%;
  background:radial-gradient(ellipse,#fff 0 12%,#ff4256 24%,rgba(220,20,44,.55) 52%,transparent 74%);
  filter:drop-shadow(0 0 8px #ff1f3a) drop-shadow(0 0 16px rgba(255,31,58,.6));transform-origin:center;animation:hnmap-blink 4.6s ease-in-out infinite}
.hnmap-public .hnmap-eyes i:first-child{left:0}.hnmap-public .hnmap-eyes i:last-child{right:0}
@keyframes hnmap-eyes-show{0%,26%,46%,100%{opacity:0}30%,42%{opacity:.88}}
@keyframes hnmap-blink{0%,41%,45%,100%{transform:scaleY(1)}43%{transform:scaleY(.08)}}

/* --- Spinne seilt sich ab -------------------------------------------------- */
.hnmap-public .hnmap-spiderbox{position:absolute;top:30px;right:360px;width:78px;height:240px;overflow:hidden}
.hnmap-public .hnmap-spider{position:absolute;left:0;top:-230px;width:78px;transform-origin:50% 0;animation:hnmap-spider-drop 26s ease-in-out -10s infinite,hnmap-spider-sway 3.6s ease-in-out infinite alternate;will-change:translate,transform}
.hnmap-public .hnmap-thread{display:block;width:1.5px;height:150px;margin:0 auto;background:linear-gradient(180deg,rgba(231,217,220,.35),rgba(231,217,220,.9));box-shadow:0 0 3px rgba(255,255,255,.25)}
.hnmap-public .hnmap-spider-img{display:block;width:78px;height:auto;transform:scaleY(-1);filter:drop-shadow(0 3px 4px #000) drop-shadow(0 0 6px rgba(150,16,34,.6))}
@keyframes hnmap-spider-drop{
  0%,6%{translate:0 0}
  26%{translate:0 215px}   30%{translate:0 196px}  34%{translate:0 218px}  38%{translate:0 200px}
  52%{translate:0 208px}   56%{translate:0 214px}   58.5%{translate:0 30px}   60%,100%{translate:0 0}
}
@keyframes hnmap-spider-sway{from{rotate:-2.4deg}to{rotate:2.4deg}}

/* --- Fledermäuse -------------------------------------------------------- */
.hnmap-public .hnmap-batlane{position:absolute;left:0;right:0;top:-30px;height:130px;overflow:visible}
.hnmap-public .hnmap-bat{position:absolute;display:block;height:auto;opacity:0;filter:drop-shadow(0 0 7px rgba(150,16,34,.65))}
.hnmap-public .hnmap-bat--a{width:140px;top:0;animation:hnmap-bat-a 27s linear -2s infinite,hnmap-bat-bob-a 1.7s ease-in-out infinite alternate}
.hnmap-public .hnmap-bat--b{width:92px;top:40px;animation:hnmap-bat-b 35s linear -21s infinite,hnmap-bat-bob-b 1.2s ease-in-out infinite alternate}
@keyframes hnmap-bat-a{0%{left:-130px;opacity:0}2%{opacity:.95}30%{opacity:.95}34%,100%{left:calc(100% + 40px);opacity:0}}
@keyframes hnmap-bat-b{0%{left:calc(100% + 20px);opacity:0;scale:-1 1}2%{opacity:.85}26%{opacity:.85}30%,100%{left:-100px;opacity:0;scale:-1 1}}
@keyframes hnmap-bat-bob-a{from{translate:0 -6px;rotate:-4deg}to{translate:0 22px;rotate:5deg}}
@keyframes hnmap-bat-bob-b{from{translate:0 4px}to{translate:0 -24px}}

/* --- Glut / Asche steigt vom unteren Rahmen auf -------------------------- */
.hnmap-public .hnmap-ember{position:absolute;left:var(--x);bottom:36px;width:var(--s);height:var(--s);border-radius:50%;opacity:0;
  background:radial-gradient(circle,#ffe2b0 0,#ff8a3a 36%,rgba(255,60,24,0) 74%);box-shadow:0 0 6px 1px rgba(255,98,40,.7);
  animation:hnmap-ember var(--t) ease-out var(--d) infinite;will-change:transform,opacity}
@keyframes hnmap-ember{
  0%{transform:translate(0,0) scale(1);opacity:0} 8%{opacity:.95}
  45%{transform:translate(calc(var(--dx)*.4),-90px) scale(.85)}
  100%{transform:translate(var(--dx),-210px) scale(.25);opacity:0}
}

/* --- Hände: zucken nervös, bevor sie wieder verschwinden ---------------- */
.hnmap-public .hnmap-haunt--left-hand{animation:hnmap-claw-left 22s ease-in-out infinite,hnmap-twitch 3.3s linear infinite}
.hnmap-public .hnmap-haunt--right-hand{animation:hnmap-claw-right 29s ease-in-out -9s infinite,hnmap-twitch 4.1s linear -1.7s infinite}
@keyframes hnmap-twitch{0%,82%,100%{rotate:0deg}84%{rotate:2.6deg}86%{rotate:-2deg}88%{rotate:2.2deg}90%{rotate:-1deg}92%{rotate:0deg}}

/* --- Mobil: leichter ------------------------------------------------------ */
@media (max-width:760px){
  .hnmap-public .hnmap-eyes,.hnmap-public .hnmap-bat--b,.hnmap-public .hnmap-haunt-mist--b,.hnmap-public .hnmap-web--br{display:none}
  .hnmap-public .hnmap-web--tr{width:130px}.hnmap-public .hnmap-web--bl{width:96px}
  .hnmap-public .hnmap-crow{width:92px;top:-47px;right:12%}
  .hnmap-public .hnmap-bat--a{width:84px}
  .hnmap-public .hnmap-spiderbox{right:38px;width:56px}
  .hnmap-public .hnmap-spider,.hnmap-public .hnmap-spider-img{width:56px}
  .hnmap-public .hnmap-drip--late{display:none}
  .hnmap-public .hnmap-drip{max-height:24px}
  .hnmap-public .hnmap-ember--late{display:none}
}

/* --- Bewegung reduziert: statisch gruselig, nichts bewegt sich ----------- */
@media (prefers-reduced-motion:reduce){
  .hnmap-public .hnmap-haunts *{animation:none!important;will-change:auto!important}
  .hnmap-public .hnmap-haunt-glow{opacity:.55}
  .hnmap-public .hnmap-haunt-mist,.hnmap-public .hnmap-eyes,.hnmap-public .hnmap-spiderbox,.hnmap-public .hnmap-batlane,.hnmap-public .hnmap-ember{display:none}
  .hnmap-public .hnmap-drip{opacity:1}
  .hnmap-public .hnmap-drip::after{opacity:1}
}

/* ================================================================
 * Halloween Nightmare 3.1.1 – mobile-first public map presentation.
 * Keep the complete overview visible, never hide map contents behind
 * the zoom controls. Expanded view allows detailed touch exploration.
 * ================================================================ */
.hnmap-instruction-mobile{display:none}
.hnmap-toolbtn--expand{display:none!important}
@media (max-width:760px){
  .hnmap-public:not(.hnmap-expanded){width:calc(100% - 12px)!important;max-width:560px!important;margin:18px auto 24px!important;border-radius:12px}
  .hnmap-public .hnmap-publichead{padding:15px 14px 12px 19px!important;min-width:0}
  .hnmap-public .hnmap-publichead h2{font-family:'Arial Black',Impact,system-ui,sans-serif!important;font-size:clamp(16px,4.5vw,24px)!important;line-height:1.15!important;letter-spacing:.01em!important;overflow-wrap:break-word}
  .hnmap-public .hnmap-publichead p{font-size:9px!important;line-height:1.45!important;letter-spacing:.045em!important;max-width:96%}
  .hnmap-public .hnmap-viewer{display:flex!important;flex-direction:column!important;gap:7px!important;padding:8px!important;min-width:0}
  .hnmap-public .hnmap-window{order:0!important;display:flex!important;align-items:flex-start!important;justify-content:center!important;min-width:0!important;width:100%!important;max-height:none!important;overflow:hidden!important;touch-action:pan-y}
  .hnmap-public .hnmap-scene{width:100%!important;max-width:100%!important;max-height:none!important;flex:0 0 auto;transform-origin:top left}
  .hnmap-public .hnmap-base{width:100%!important;height:auto!important;display:block!important}
  /* The controls no longer sit on top of the artwork. */
  .hnmap-public .hnmap-toolbar{position:relative!important;inset:auto!important;order:1!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;gap:7px!important;align-self:stretch!important;width:100%!important;padding:7px 8px!important;margin:0!important;border-radius:10px!important;background:linear-gradient(105deg,#17090f,#340e19 55%,#16090d)!important;box-shadow:inset 0 1px rgba(254,200,190,.09)!important}
  .hnmap-public .hnmap-toolbtn{display:grid!important;place-items:center!important;flex:0 0 42px!important;width:42px!important;height:42px!important;min-width:0!important;padding:0!important;font-size:24px!important;line-height:1!important;border-radius:8px!important}
  .hnmap-public .hnmap-toolbtn--expand{display:flex!important;flex:1 1 auto!important;justify-content:center!important;align-items:center!important;gap:9px!important;min-width:108px!important;max-width:240px!important;padding:0 10px!important;background:linear-gradient(130deg,#8b1828,#390e1b)!important;border-color:#dc5863!important}
  .hnmap-public .hnmap-expand-icon{font-size:23px!important;font-weight:700!important;line-height:1}
  .hnmap-public .hnmap-expand-label{font-size:12px!important;font-weight:900!important;letter-spacing:.025em!important;text-transform:uppercase!important;white-space:nowrap}
  .hnmap-public .hnmap-instruction{order:2!important;padding:9px 12px!important;font-size:10px!important;line-height:1.5!important}
  .hnmap-public .hnmap-instruction-desktop{display:none}
  .hnmap-public .hnmap-instruction-mobile{display:inline}
  /* Shrink annotation typography before it collides with surrounding objects. */
  .hnmap-public:not(.hnmap-expanded) .hnmap-pin--label .hnmap-pinshape{font-size:clamp(9px,calc(var(--hnmap-pin-size,42px)*.28),13px)!important;max-width:140px!important;line-height:1.1!important;letter-spacing:0!important}
  .hnmap-public:not(.hnmap-expanded) .hnmap-pin:not(.hnmap-pin--label) .hnmap-pinshape{width:calc(var(--hnmap-pin-size,42px)*.72)!important;height:calc(var(--hnmap-pin-size,42px)*.72)!important;font-size:calc(var(--hnmap-pin-size,42px)*.35)!important;margin:auto!important}
  .hnmap-public:not(.hnmap-expanded) .hnmap-pin:not(.hnmap-pin--label){display:grid;place-items:center;min-width:40px;min-height:40px}
  .hnmap-public:not(.hnmap-expanded) .hnmap-marker-caption{font-size:9px!important;max-width:98px!important;min-width:0!important;padding:3px 5px!important;top:calc(50% + 20px)!important}
  .hnmap-public:not(.hnmap-expanded) .hnmap-prop-caption{font-size:9px!important;max-width:110px!important;padding:3px 5px!important}
  .hnmap-public:not(.hnmap-expanded) .hnmap-areas .hnmap-area-label{font-size:24px!important}
  /* A few border props remain to establish the spooky theme but stay out of the map. */
  .hnmap-public .hnmap-haunt-vignette,.hnmap-public .hnmap-haunt-mist{opacity:.18!important}
  .hnmap-public .hnmap-web--tr{width:95px!important;opacity:.5!important}
  .hnmap-public .hnmap-web--bl{width:65px!important;opacity:.38!important}
  .hnmap-public .hnmap-crow{width:70px!important;top:-43px!important;right:10%!important}
  .hnmap-public .hnmap-drip{opacity:.35!important}
  .hnmap-public .hnmap-haunt--left-hand,.hnmap-public .hnmap-haunt--right-hand,.hnmap-public .hnmap-haunt-fog--l,.hnmap-public .hnmap-haunt-fog--r{display:none!important}
  .hnmap-public .hnmap-window.hnmap-zoomed{touch-action:none!important}
}
@media(max-width:355px){
  .hnmap-public .hnmap-toolbar{gap:5px!important;padding:6px!important}
  .hnmap-public .hnmap-toolbtn{width:39px!important;height:39px!important;flex-basis:39px!important}
  .hnmap-public .hnmap-toolbtn--expand{min-width:96px!important}
  .hnmap-public .hnmap-expand-label{font-size:10px!important}
}
/* Expanded mode works in iOS Safari without requiring the Fullscreen API. */
html.hnmap-map-locked{overflow:hidden!important;overscroll-behavior:none}
.hnmap-public.hnmap-expanded{
  position:fixed!important;inset:0!important;z-index:2147483000!important;
  width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;
  margin:0!important;border-radius:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;
  background:#10080d!important;
}
.hnmap-public.hnmap-expanded .hnmap-haunts{display:none!important}
.hnmap-public.hnmap-expanded .hnmap-publichead{flex:0 0 auto!important;padding:13px 16px 10px!important}
.hnmap-public.hnmap-expanded .hnmap-publichead h2{font-size:clamp(16px,4.2vw,25px)!important;margin:0!important}
.hnmap-public.hnmap-expanded .hnmap-publichead p{display:none!important}
.hnmap-public.hnmap-expanded .hnmap-viewer{display:flex!important;flex:1 1 auto!important;flex-direction:column!important;min-height:0!important;gap:8px!important;padding:8px!important}
.hnmap-public.hnmap-expanded .hnmap-window{order:0!important;display:flex!important;align-items:flex-start!important;justify-content:flex-start!important;flex:1 1 auto!important;min-height:0!important;width:100%!important;max-height:none!important;overflow:hidden!important;touch-action:none!important}
.hnmap-public.hnmap-expanded .hnmap-scene{width:100%!important;max-width:100%!important;max-height:none!important;flex:0 0 auto;transform-origin:top left!important}
.hnmap-public.hnmap-expanded .hnmap-toolbar{order:1!important;flex:0 0 auto!important;position:relative!important;inset:auto!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;gap:8px!important;width:100%!important;margin:0!important;border-radius:11px!important;padding:8px!important}
.hnmap-public.hnmap-expanded .hnmap-toolbtn{display:grid!important;place-items:center!important;width:45px!important;height:45px!important;flex:0 0 45px!important}
.hnmap-public.hnmap-expanded .hnmap-toolbtn--expand{display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;flex:1 1 auto!important;max-width:235px!important}
.hnmap-public.hnmap-expanded .hnmap-expand-label{display:inline!important;font-size:12px!important}
.hnmap-public.hnmap-expanded .hnmap-instruction{display:none!important}
@media(min-width:761px){.hnmap-public:not(.hnmap-expanded) .hnmap-toolbtn--expand{display:none!important}}
@media(prefers-reduced-motion:reduce){.hnmap-public .hnmap-toolbtn{transition:none!important}}
@media(max-width:760px){
  /* Side props from the desktop horror frame must not make the whole page scroll sideways. */
  .hnmap-public:not(.hnmap-expanded) .hnmap-haunts{inset:-30px 0!important;overflow:hidden!important}
}
.hnmap-public.hnmap-expanded .hnmap-toolbar{padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))!important}
@media(max-width:760px){
  /* Keep animated silhouettes around the border, not on top of tap targets. */
  .hnmap-public:not(.hnmap-expanded) .hnmap-spiderbox{display:none!important}
  .hnmap-public:not(.hnmap-expanded) .hnmap-web--tr{opacity:.3!important}
  .hnmap-public:not(.hnmap-expanded) .hnmap-web--bl{opacity:.26!important}
}

/* 3.1.3: Mobile map labels must not become huge when the map is zoomed.
   The public map's --hnmap-annotation-scale is set to 1/zoom by its viewer.
   Desktop and the editor intentionally keep their existing typography. */
@media (max-width:760px){
  .hnmap-public:not(.hnmap-expanded) .hnmap-scene .hnmap-pin--label .hnmap-pinshape{
    font-size:clamp(7px,calc(var(--hnmap-pin-size,42px) * .19),11px)!important;
    max-width:112px!important;line-height:1.05!important;letter-spacing:.01em!important;
  }
  .hnmap-public:not(.hnmap-expanded) .hnmap-areas .hnmap-area-label{
    font-size:18px!important;stroke-width:4px!important;
  }
  .hnmap-public:not(.hnmap-expanded) .hnmap-marker-caption,
  .hnmap-public:not(.hnmap-expanded) .hnmap-prop-caption{
    font-size:8px!important;line-height:1.1!important;max-width:90px!important;
    min-width:0!important;padding:3px 5px!important;
  }
}
/* In fullscreen the map is initially enlarged to cover the portrait screen.
   Counter-scale annotations, not the artwork, to retain sensible text sizes. */
.hnmap-public.hnmap-expanded .hnmap-scene .hnmap-pin--label .hnmap-pinshape{
  font-size:clamp(10px,calc(var(--hnmap-pin-size,42px) * .23),18px)!important;
  scale:calc(1.07 * var(--hnmap-annotation-scale,1));
  max-width:145px!important;line-height:1.07!important;
  transform-origin:center center!important;
}
.hnmap-public.hnmap-expanded .hnmap-areas .hnmap-area-label{
  font-size:calc(24px * var(--hnmap-annotation-scale,1))!important;
  stroke-width:calc(5px * var(--hnmap-annotation-scale,1))!important;
}
.hnmap-public.hnmap-expanded .hnmap-marker-caption,
.hnmap-public.hnmap-expanded .hnmap-prop-caption{
  font-size:10px!important;line-height:1.1!important;
  padding:4px 8px!important;max-width:125px!important;
  scale:calc(1.0 * var(--hnmap-annotation-scale,1));
  transform-origin:center top!important;
}
.hnmap-public.hnmap-expanded .hnmap-pin:not(.hnmap-pin--label) .hnmap-pinshape{
  scale:calc(.9 * var(--hnmap-annotation-scale,1));
  transform-origin:center center!important;
}
