/* =======================================================================
   STORMMU / HALLOWEEN CINEMATOGRAFICO — V1.0.0
   Ambientação isolada: nenhuma interação do site é substituída.
   Para desligar permanentemente, altere ENABLED_BY_DEFAULT no JS.
   ======================================================================= */

/* Elementos criados no banner permanecem invisíveis com o modo desligado. */
.smhw-hero-stage, .smhw-event-pill, .smhw-footer-mark{display:none!important}
html.smhw-on .smhw-hero-stage{display:block!important}
html.smhw-on .smhw-event-pill{display:inline-flex!important}
html.smhw-on .smhw-footer-mark{display:inline-flex!important}

/* CAMADA CINEMATOGRAFICA DO BANNER — atràs do texto/aside e do carrossel */
html.smhw-on .sm-hero{position:relative;isolation:isolate;overflow:hidden}
html.smhw-on .sm-hero > .smhw-hero-stage{
  position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;
  background:linear-gradient(110deg,rgba(9,5,16,.42) 1%,rgba(10,5,20,.16) 55%,rgba(18,4,21,.28) 100%);
}
html.smhw-on .sm-hero > .sm-wrap.sm-hero-grid,
html.smhw-on .sm-hero > #smHeroDots{position:relative;z-index:3}
html.smhw-on .sm-hero > .sm-hero-bg,
html.smhw-on .sm-hero > .sm-hero-fallback{z-index:0}
html.smhw-on .sm-hero > .smhw-hero-stage::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse at 81% 45%,rgba(221,54,96,.14) 0%,rgba(115,35,172,.11) 22%,transparent 52%),
  linear-gradient(0deg,rgba(13,4,20,.76),transparent 27%);
}
html.smhw-on .sm-hero > .smhw-hero-stage::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.014) 0,rgba(255,255,255,.014) 1px,transparent 1px,transparent 5px);
}
/* Lua de sangue, com crateras discretas e halo dinâmico. */
.smhw-moon{
  position:absolute;top:3%;right:11%;width:clamp(180px,22vw,344px);aspect-ratio:1;border-radius:50%;opacity:.86;
  background:
    radial-gradient(circle at 25% 24%,rgba(255,218,184,.32),transparent 21%),
    radial-gradient(circle at 70% 67%,rgba(55,7,36,.34) 0 11%,transparent 12%),
    radial-gradient(circle at 37% 71%,rgba(88,10,41,.36) 0 8%,transparent 9%),
    radial-gradient(circle at 61% 30%,rgba(91,11,44,.26) 0 14%,transparent 15%),
    radial-gradient(circle at 40% 37%,#ffac8c 0%,#ef5862 29%,#9e2854 62%,#3a123a 87%,#170a29 100%);
  border:1px solid rgba(253,139,124,.24);
  box-shadow:0 0 0 24px rgba(193,51,94,.025),0 0 0 78px rgba(143,45,125,.028),0 0 65px 9px rgba(232,66,113,.32),0 0 160px 30px rgba(122,28,131,.20),inset -24px -22px 36px rgba(28,4,35,.44),inset 10px 10px 24px rgba(255,227,192,.14);
  animation:smhw-moon-breathe 9s ease-in-out infinite;
}
.smhw-moon::after{
  content:"";position:absolute;inset:-14%;border:1px solid rgba(235,99,145,.13);border-radius:50%;
  box-shadow:0 0 35px rgba(186,61,137,.1);
}
/* Portal arcano: auras rotativas, runas radiais e núcleo, tudo em CSS. */
.smhw-portal{position:absolute;top:25%;right:7%;width:clamp(210px,31vw,450px);aspect-ratio:1;opacity:.8;filter:drop-shadow(0 0 26px rgba(121,58,209,.24));transform:rotate(-7deg)}
.smhw-portal .smhw-portal-halo{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,rgba(121,37,197,.18) 0 28%,transparent 67%);filter:blur(12px);animation:smhw-aura-pulse 7s ease-in-out infinite}
.smhw-portal .smhw-portal-ring{
  position:absolute;inset:12%;border-radius:50%;border:3px solid rgba(212,129,253,.54);
  background:conic-gradient(from -80deg,transparent 0 10%,rgba(186,91,241,.64) 14%,transparent 21%,rgba(255,119,73,.60) 33%,transparent 39%,rgba(200,81,255,.50) 57%,transparent 70%,rgba(255,158,104,.75) 81%,transparent 93%);
  box-shadow:0 0 13px rgba(211,127,255,.5),0 0 46px rgba(126,31,202,.34),inset 0 0 28px rgba(174,73,223,.24);
  animation:smhw-rotate 26s linear infinite;
}
.smhw-portal .smhw-portal-ring::before{content:"";position:absolute;inset:9%;border-radius:50%;border:2px dashed rgba(249,183,117,.55);box-shadow:0 0 15px rgba(218,97,239,.35),inset 0 0 26px rgba(74,10,150,.3)}
.smhw-portal .smhw-portal-ring::after{content:"";position:absolute;inset:25%;border-radius:50%;border:1px solid rgba(198,87,254,.55);box-shadow:0 0 20px 4px rgba(161,61,240,.32)}
.smhw-portal .smhw-portal-echo{position:absolute;inset:2%;border-radius:50%;border:1px solid rgba(234,118,143,.25);border-left-color:rgba(241,179,103,.68);border-bottom-color:rgba(191,87,243,.44);animation:smhw-rotate-reverse 35s linear infinite}
.smhw-portal .smhw-portal-core{position:absolute;inset:32%;border-radius:50%;background:radial-gradient(circle,rgba(246,183,249,.52),rgba(136,54,246,.44) 20%,rgba(78,27,158,.36) 43%,transparent 73%);box-shadow:0 0 28px rgba(193,94,254,.58);animation:smhw-core-pulse 6s ease-in-out infinite}
.smhw-portal .smhw-portal-runes{position:absolute;inset:0;border-radius:50%;animation:smhw-rotate 46s linear infinite}
.smhw-portal .smhw-portal-runes b{position:absolute;left:50%;top:50%;font:700 clamp(12px,1.5vw,19px)/1 Georgia,serif;color:rgba(245,183,130,.7);text-shadow:0 0 8px rgba(253,155,92,.8);transform:rotate(calc(var(--n) * 45deg)) translateY(calc(-1 * clamp(103px,15.7vw,226px))) rotate(calc(var(--n) * -45deg))}
.smhw-hero-castle{position:absolute;right:0;bottom:-3px;width:58%;height:46%;opacity:.5;filter:drop-shadow(0 -8px 12px rgba(23,5,45,.34))}
.smhw-hero-castle path{fill:#100817}
.smhw-hero-streak{position:absolute;inset:auto 0 0;height:18%;background:linear-gradient(0deg,rgba(34,10,48,.72),transparent);pointer-events:none}
.smhw-event-pill{
  align-items:center;gap:9px;width:max-content;max-width:100%;margin:0 0 13px;padding:7px 13px;
  border-radius:999px;border:1px solid rgba(242,136,106,.42);
  background:linear-gradient(100deg,rgba(60,14,44,.88),rgba(47,19,84,.81));
  color:#ffcca8;font:800 10px/1.4 'Montserrat',Arial,sans-serif;letter-spacing:.12em;
  text-shadow:0 0 12px rgba(249,139,101,.24);box-shadow:inset 0 1px 0 rgba(255,194,165,.11),0 0 25px rgba(188,60,129,.18);
  vertical-align:middle;
}
.smhw-event-pill::before{content:"✦";color:#ffa471;font-size:13px;animation:smhw-core-pulse 3.6s ease-in-out infinite}
.smhw-event-pill::after{content:"✦";color:#b88bff;font-size:9px}
html.smhw-on .sm-hero-copy{position:relative}
html.smhw-on .sm-hero-copy h1{filter:drop-shadow(0 0 15px rgba(153,57,150,.19))}
html.smhw-on #smHeroTitle{filter:drop-shadow(0 4px 12px rgba(224,82,109,.15))}
html.smhw-on .sm-hero-copy .sm-btn.gold{box-shadow:0 0 17px rgba(235,109,76,.17),0 12px 36px rgba(0,0,0,.24)}
html.smhw-on .sm-hero-copy .sm-btn.gold:hover{box-shadow:0 0 21px rgba(237,120,90,.42),0 14px 34px rgba(0,0,0,.3)}

/* Global: névoa, partículas e sombras de morcegos. Sempre sem captura de cliques. */
.smhw-ambience{position:fixed;inset:0;z-index:20;pointer-events:none;overflow:hidden;contain:layout style;display:none}
html.smhw-on .smhw-ambience{display:block}
.smhw-fog{position:absolute;bottom:-27vh;left:-35vw;width:170vw;height:55vh;border-radius:50%;opacity:.55;transform:translate3d(0,0,0);filter:blur(50px);pointer-events:none}
.smhw-fog-one{background:radial-gradient(ellipse at 45% 50%,rgba(144,66,178,.23),rgba(65,26,113,.14) 38%,transparent 72%);animation:smhw-fog-flow 26s ease-in-out infinite alternate}
.smhw-fog-two{bottom:-31vh;left:-25vw;height:48vh;background:radial-gradient(ellipse,rgba(199,102,151,.18),rgba(112,38,146,.14) 36%,transparent 72%);animation:smhw-fog-flow 33s ease-in-out -10s infinite alternate-reverse}
.smhw-particles,.smhw-bats{position:absolute;inset:0;pointer-events:none}
.smhw-particle{position:absolute;left:var(--x);bottom:-28px;width:var(--size);height:var(--size);border-radius:50%;background:#f3ad62;opacity:0;box-shadow:0 0 7px 2px rgba(255,134,54,.54);animation:smhw-ember-rise var(--duration) var(--delay) linear infinite}
.smhw-particle.purple{background:#cb9dff;box-shadow:0 0 8px 2px rgba(147,76,241,.48)}
.smhw-particle.ember{background:#ffd8a1}
.smhw-bat{position:absolute;left:-9vw;top:var(--y);width:var(--w);height:auto;opacity:0;animation:smhw-bat-travel var(--duration) var(--delay) linear infinite}
.smhw-bat svg{display:block;width:100%;height:auto;fill:#140a23;filter:drop-shadow(0 0 5px rgba(179,98,226,.25));animation:smhw-bat-wings 1.1s ease-in-out infinite alternate}
/* Rodapé: detalhe especial sem alterar o bloco existente. */
.smhw-footer-mark{align-items:center;margin-left:8px;padding:3px 8px;border-radius:999px;border:1px solid rgba(215,89,135,.30);color:#e6a2ad;font:800 9px/1.1 'Montserrat',Arial,sans-serif;letter-spacing:.11em;background:rgba(73,17,63,.16)}
html.smhw-on .smf{background:radial-gradient(ellipse at 70% 0%,rgba(109,45,146,.12),transparent 42%),linear-gradient(180deg,#090611 0%,#030405 100%);border-top-color:rgba(175,80,180,.27)}
/* Seções mantém suas funções, só recebem uma atmosfera sutil. */
html.smhw-on .sm-feature-section{position:relative}
html.smhw-on .sm-feature-section .sm-feature-card{outline:1px solid rgba(193,106,166,.10);outline-offset:-1px}
html.smhw-on .sm-feature-section .sm-feature-card:hover{outline-color:rgba(243,155,105,.31)}

/* Controle discreto, acessível e persistente; fica abaixo de modais/cookie banner. */
.smhw-toggle{
  position:fixed;left:16px;bottom:18px;z-index:2147482000;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:39px;padding:9px 14px;
  border:1px solid rgba(220,121,166,.39);border-radius:999px;
  background:linear-gradient(135deg,rgba(27,11,39,.97),rgba(12,9,22,.97));
  box-shadow:0 11px 28px rgba(0,0,0,.5),0 0 18px rgba(147,54,155,.19);
  color:#ffc8a7;cursor:pointer;font:800 10px/1.2 'Montserrat',Arial,sans-serif;letter-spacing:.06em;
  transition:background .18s ease,border-color .18s ease,color .18s ease;
}
.smhw-toggle::before{content:"✦";font-size:15px;line-height:1;color:#f3a473;text-shadow:0 0 11px rgba(255,144,87,.55)}
.smhw-toggle:hover{border-color:rgba(252,163,128,.69);background:linear-gradient(135deg,rgba(58,20,63,.98),rgba(18,12,30,.98))}
.smhw-toggle:focus-visible{outline:3px solid #f5bd8d;outline-offset:3px}
.smhw-toggle[aria-pressed="false"]{color:#9793a5;border-color:rgba(151,139,166,.22);background:rgba(12,12,18,.96)}
.smhw-toggle[aria-pressed="false"]::before{color:#888096;text-shadow:none}
body.sm-cookie-banner-visible .smhw-toggle{bottom:calc(var(--smcc-banner-height,80px) + 26px)}

@keyframes smhw-moon-breathe{0%,100%{opacity:.74;transform:scale(.98)}50%{opacity:.95;transform:scale(1.025)}}
@keyframes smhw-aura-pulse{0%,100%{transform:scale(.88);opacity:.56}50%{transform:scale(1.06);opacity:.9}}
@keyframes smhw-core-pulse{0%,100%{opacity:.58;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}
@keyframes smhw-rotate{to{transform:rotate(360deg)}}
@keyframes smhw-rotate-reverse{to{transform:rotate(-360deg)}}
@keyframes smhw-fog-flow{0%{transform:translate3d(-12vw,1vh,0) scale(1)}50%{transform:translate3d(6vw,-3vh,0) scale(1.14)}100%{transform:translate3d(18vw,2vh,0) scale(.96)}}
@keyframes smhw-ember-rise{0%{transform:translate3d(0,0,0) scale(.55);opacity:0}12%{opacity:.75}80%{opacity:.42}100%{transform:translate3d(var(--drift),-107vh,0) scale(1.1);opacity:0}}
@keyframes smhw-bat-travel{0%{transform:translate3d(-3vw,6vh,0) rotate(-7deg);opacity:0}8%{opacity:.5}55%{opacity:.68}92%{opacity:.48}100%{transform:translate3d(119vw,-12vh,0) rotate(7deg);opacity:0}}
@keyframes smhw-bat-wings{0%{transform:scaleY(.8)}100%{transform:scaleY(1.17)}}

@media(max-width:980px){
  .smhw-moon{right:-3%;top:5%;width:220px;opacity:.7}
  .smhw-portal{right:-12%;width:320px;opacity:.55}
  .smhw-hero-castle{width:75%;height:34%}
}
@media(max-width:660px){
  .smhw-moon{right:-11%;top:2%;width:190px;opacity:.52}
  .smhw-portal{right:-27%;top:28%;width:250px;opacity:.33}
  .smhw-hero-castle{width:95%;height:25%;opacity:.22}
  .smhw-fog{filter:blur(32px);opacity:.44}
  .smhw-toggle{bottom:12px;left:10px;min-height:36px;padding:8px 11px;font-size:9px}
  body.sm-cookie-banner-visible .smhw-toggle{bottom:calc(var(--smcc-banner-height,80px) + 15px)}
}
@media(prefers-reduced-motion:reduce){
  .smhw-ambience .smhw-particle,.smhw-ambience .smhw-bat{display:none!important}
  .smhw-ambience .smhw-fog,.smhw-moon,.smhw-portal *, .smhw-event-pill::before{animation:none!important}
  .smhw-toggle{transition:none}
}
/* Pausa em aba não visível reduz uso de GPU/CPU. */
html.smhw-paused .smhw-ambience *,html.smhw-paused .smhw-hero-stage *{animation-play-state:paused!important}
