/* GAMSJAGA Hero – restrained living hotspots over the approved static artwork. */
.hero{position:relative;isolation:isolate;overflow:hidden;}
.hero-effects-layer{position:absolute!important;inset:0!important;z-index:3!important;display:block!important;width:100%!important;height:100%!important;pointer-events:none!important;overflow:hidden!important;}
.hero-effect-hotspot{position:absolute;display:block;transform:translate(-50%,-50%);border-radius:50%;opacity:calc(var(--effect-strength, .72) * 1);will-change:opacity,transform;}
.hero-effect-heart{left:57%;top:17%;width:clamp(34px,4.8vw,92px);height:clamp(34px,4.8vw,92px);background:radial-gradient(circle,rgba(220,26,30,.12) 0 28%,rgba(220,26,30,.26) 45%,transparent 72%);animation:hero-heart-pulse 3.8s ease-in-out infinite;}
.hero-effect-lantern{width:clamp(22px,3vw,56px);height:clamp(30px,4vw,76px);background:radial-gradient(ellipse,rgba(255,191,91,.35) 0 24%,rgba(255,153,43,.16) 42%,transparent 74%);filter:blur(1px);animation:hero-lantern-glow 4.7s ease-in-out infinite;}
.hero-effect-lantern.left{left:17%;top:61%;animation-delay:-1.7s;}
.hero-effect-lantern.right{left:88%;top:58%;animation-delay:-3.1s;}
.hero-effect-candle{width:clamp(12px,1.5vw,28px);height:clamp(24px,3.2vw,58px);background:radial-gradient(ellipse at 50% 28%,rgba(255,243,186,.95) 0 12%,rgba(255,169,47,.55) 26%,rgba(255,125,22,.16) 52%,transparent 75%);filter:blur(.5px);animation:hero-candle-flicker 1.9s ease-in-out infinite;}
.hero-effect-candle.one{left:88%;top:81%;animation-delay:-.4s;}
.hero-effect-candle.two{left:93%;top:84%;animation-delay:-1.2s;transform:translate(-50%,-50%) scale(.82);}
.hero-effect-thread{width:clamp(8px,1vw,20px);height:clamp(8px,1vw,20px);background:radial-gradient(circle,rgba(231,32,35,.58),rgba(231,32,35,.08) 48%,transparent 75%);animation:hero-thread-glow 5.8s ease-in-out infinite;}
.hero-effect-thread.one{left:30%;top:43%;animation-delay:-2.4s;}
.hero-effect-thread.two{left:68%;top:56%;animation-delay:-4.2s;}
@keyframes hero-heart-pulse{0%,100%{opacity:calc(var(--effect-strength, .72) * .7);transform:translate(-50%,-50%) scale(.92)}50%{opacity:var(--effect-strength, .72);transform:translate(-50%,-50%) scale(1.08)}}
@keyframes hero-lantern-glow{0%,100%{opacity:calc(var(--effect-strength, .72) * .65);transform:translate(-50%,-50%) scale(.94)}35%{opacity:calc(var(--effect-strength, .72) * 1.0);transform:translate(-50%,-50%) scale(1.03)}62%{opacity:calc(var(--effect-strength, .72) * .78);transform:translate(-50%,-50%) scale(.98)}}
@keyframes hero-candle-flicker{0%,100%{opacity:calc(var(--effect-strength, .72) * .7);transform:translate(-50%,-50%) scaleY(.92)}25%{opacity:var(--effect-strength, .72);transform:translate(-50%,-50%) scaleY(1.08) rotate(-2deg)}53%{opacity:calc(var(--effect-strength, .72) * .8);transform:translate(-50%,-50%) scaleY(.98) rotate(2deg)}78%{opacity:calc(var(--effect-strength, .72) * .9);transform:translate(-50%,-50%) scaleY(1.04)}}
@keyframes hero-thread-glow{0%,100%{opacity:.2;transform:translate(-50%,-50%) scale(.8)}50%{opacity:.62;transform:translate(-50%,-50%) scale(1.14)}}
.hero[data-effects-disabled="true"] .hero-effects-layer{display:none;}
@media(max-width:700px){.hero-effect-heart{left:57%;top:17%;}.hero-effect-lantern.left{left:16%;top:61%;}.hero-effect-lantern.right{left:88%;top:58%;}.hero-effect-candle.one{left:88%;top:81%;}.hero-effect-candle.two{left:93%;top:84%;}}
@media(prefers-reduced-motion:reduce){.hero-effects-layer{opacity:.42}.hero-effect-hotspot{animation:none!important;transition:none!important;}.hero-effect-heart,.hero-effect-lantern,.hero-effect-candle,.hero-effect-thread{opacity:.28;}}.hero-effects-control{position:absolute;right:clamp(12px,2vw,30px);bottom:clamp(12px,2vw,28px);z-index:4;display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid rgba(255,255,255,.38);border-radius:999px;background:rgba(24,20,16,.5);color:#fff;font:700 9px Arial,sans-serif;letter-spacing:1px;pointer-events:auto;text-shadow:0 1px 3px #000;}
.hero-effects-control input{width:78px;accent-color:#c62020;cursor:pointer;}
.hero-effects-control output{min-width:24px;text-align:right;}
@media(max-width:700px){.hero-effects-control{right:8px;bottom:8px;padding:5px 7px;font-size:8px}.hero-effects-control input{width:58px;}}
