/* Approved neutral Hospital art and separate live layers; no parent hitbox or map geometry changes. */
.hhpPresentation {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
  user-select: none;
  --hhp-rise: -108px;
}
/* The shell uses its native inline SVG alpha mask; external CSS-on-SVG masking can expose the opaque old map background. */
  .hhpPresentation .hhpLabel { fill: #e1f8ff; font: 500 38px/1 system-ui, sans-serif; letter-spacing: 1.6px; text-anchor: middle; }
  .hhpPresentation .hhpEmitter { opacity: 0; animation: hhpEmitterCycle 8s linear infinite; }
  .hhpPresentation .hhpFan { opacity: 0; animation: hhpFanCycle 8s linear infinite; }
  .hhpPresentation .hhpText { opacity: 0; animation: hhpTextCycle 8s linear infinite; }
  .hhpPresentation .hhpScan { animation: hhpScan 1.8s linear infinite; }
  .hhpPresentation .hhpWave { animation: hhpWave 2.8s linear infinite; }
  @keyframes hhpEmitterCycle {
    0%, 2% { opacity: 0; }
    8%, 61% { opacity: 1; }
    75% { opacity: .65; }
    83%, 100% { opacity: 0; }
  }
  @keyframes hhpFanCycle {
    0%, 7% { opacity: 0; }
    18%, 61% { opacity: .95; }
    69% { opacity: .65; }
    79%, 100% { opacity: 0; }
  }
  @keyframes hhpTextCycle {
    0%, 18% { opacity: 0; }
    25%, 56% { opacity: .98; }
    62% { opacity: .8; }
    72%, 100% { opacity: 0; }
  }
  @keyframes hhpScan { from { transform: translateY(0); } to { transform: translateY(45px); } }
  @keyframes hhpWave {
    0% { transform: translateY(0); opacity: 0; }
    20% { opacity: .23; }
    85% { opacity: .09; }
    100% { transform: translateY(var(--hhp-rise, -105px)); opacity: 0; }
  }

.hhpPresentation .hhpLiveLights { --hhp-lamp-red: #ff3349; --hhp-lamp-blue: #36c9ff; opacity: 1; }
.hhpPresentation .hhpLamp { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; }
.hhpPresentation .hhpLampRed { color: var(--hhp-lamp-red); }
.hhpPresentation .hhpLampBlue { color: var(--hhp-lamp-blue); }
.hhpPresentation .hhpLampSpill { opacity: .32; filter: blur(4px); }
.hhpPresentation .hhpLampGlow { opacity: .8; filter: blur(1.6px); }
.hhpPresentation .hhpLampCore { opacity: .96; }
.hhpPresentation .hhpLampHot { stroke: #f6fcff; opacity: .88; }
.hhpPresentation .hhpLampWindow { animation: hhpLampPower 5.8s ease-in-out infinite; }
.hhpPresentation .hhpLampBeacon { animation: hhpLampBeacon 3.6s ease-in-out infinite; }
.hhpPresentation .hhpLampBeaconAlternate { animation-delay: -1.8s; }
.hhpPresentation .hhpLampRunning { stroke: #e5faff; stroke-dasharray: 5 30; animation: hhpLampRunning 4.8s linear infinite; opacity: .95; }
.hhpPresentation .hhpLampRunningReverse { animation-direction: reverse; }
@keyframes hhpLampPower { 0%, 100% { opacity: .82; } 50% { opacity: 1; } }
@keyframes hhpLampBeacon { 0%, 100% { opacity: .34; } 38%, 58% { opacity: 1; } }
@keyframes hhpLampRunning { from { stroke-dashoffset: 0; } to { stroke-dashoffset: -140; } }

.hhpPresentation .hhpMedicalSign { color: var(--hhp-lamp-red); animation: hhpMedicalSign 6s ease-in-out infinite; }
@keyframes hhpMedicalSign { 0%, 100% { opacity: .88; } 50% { opacity: 1; } }

/* CSS handles map ownership; a shared IntersectionObserver and visibility event handle runtime pauses. */
.hhpPresentation[data-hhp-paused="true"] *,
body:not(.nonameMapActiveV62862) .hhpPresentation *,
body:not([data-navigation-map="hq"]) .hhpPresentation * { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) {
  .hhpPresentation * { animation: none !important; }
  .hhpPresentation .hhpEmitter { opacity: 1; }
  .hhpPresentation .hhpFan { opacity: .95; }
  .hhpPresentation .hhpText { opacity: .98; }
  .hhpPresentation .hhpWave { opacity: 0; }
  .hhpPresentation .hhpLampWindow,
  .hhpPresentation .hhpLampBeacon,
  .hhpPresentation .hhpMedicalSign { opacity: 1; }
}
