.va-map-layers-btn{min-width:34px;padding-left:8px!important;padding-right:8px!important}
.va-map-layers-panel{position:absolute;z-index:780;top:50px;right:8px;width:min(250px,calc(100% - 16px));display:grid;gap:7px;padding:10px;border:1px solid rgba(255,255,255,.18);border-radius:13px;background:rgba(10,15,24,.96);color:#f7f2fa;box-shadow:0 9px 28px rgba(0,0,0,.38);backdrop-filter:blur(12px)}
.va-map-layers-panel.hidden{display:none!important}.va-map-layers-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.10)}.va-map-layers-head strong{font-size:.78rem}.va-map-layers-close{width:28px;height:28px;padding:0;border:0;border-radius:8px;background:rgba(255,255,255,.08);color:#fff;font-size:1.15rem;line-height:1}.va-map-layers-panel label{display:flex;align-items:center;gap:8px;min-height:30px;margin:0;padding:3px 2px;font-size:.72rem;font-weight:800;cursor:pointer}.va-map-layers-panel input{width:18px;height:18px;margin:0;accent-color:#f39a2e}.va-map-layers-panel small{color:#bfc4ce;font-size:.59rem;line-height:1.3}.va-overlay-poi-icon{background:transparent!important;border:0!important}.va-overlay-poi-icon span{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:rgba(8,16,24,.88);box-shadow:0 3px 10px rgba(0,0,0,.38);font-size:16px}.va-overlay-popup{display:grid;gap:5px;min-width:135px}.va-overlay-popup strong{font-size:.82rem}.va-overlay-popup small{color:#5d6570;font-size:.68rem;line-height:1.35}@media(max-width:520px){.va-map-layers-panel{top:47px;width:min(235px,calc(100% - 14px));padding:9px}.va-map-layers-panel label{font-size:.68rem}}
.va-map-layer-options{display:grid;gap:2px}
.va-map-layer-swatch{width:12px;height:12px;flex:0 0 auto;border-radius:50%;border:1px solid rgba(255,255,255,.55)}
.va-map-layer-empty{padding:8px 2px;color:#aeb7c3;font-size:.68rem;text-align:center}


/* V143 — atmosfera Halloween opcional, recortada ao perímetro do Villa Alpina */
.va-map-atmosphere-options{
  display:grid;
  gap:3px;
  margin-top:2px;
  padding-top:7px;
  border-top:1px solid rgba(255,255,255,.10);
}
.va-map-atmosphere-options>strong{
  margin-bottom:2px;
  color:#ffd08a;
  font-size:.68rem;
  line-height:1.1;
}
.va-map-atmosphere-options label{
  min-width:0;
}
.va-map-layer-swatch.atmosphere{
  background:linear-gradient(135deg,rgba(220,230,240,.92),rgba(140,160,180,.35));
}
.va-map-atmosphere-options input:disabled+span,
.va-map-atmosphere-options input:disabled~span{
  opacity:.45;
}

.va-halloween-atmosphere{
  position:absolute;
  inset:0;
  z-index:450;
  display:block;
  overflow:hidden;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transition:opacity .35s ease,visibility .35s ease;
  contain:layout paint;
}
.va-halloween-atmosphere.active{
  opacity:1;
  visibility:visible;
}
.va-halloween-atmosphere::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 20% 65%,rgba(224,232,238,.11),transparent 28%),
    radial-gradient(circle at 78% 42%,rgba(214,225,234,.08),transparent 25%);
  mix-blend-mode:screen;
}

.va-fog{
  position:absolute;
  left:-35%;
  width:72%;
  height:24%;
  border-radius:50%;
  opacity:.16;
  filter:blur(18px);
  will-change:transform,opacity;
  background:
    radial-gradient(ellipse at 24% 50%,rgba(238,243,247,.76),transparent 34%),
    radial-gradient(ellipse at 58% 42%,rgba(215,225,233,.58),transparent 31%),
    radial-gradient(ellipse at 82% 62%,rgba(230,235,240,.50),transparent 28%);
  animation:vaFogDrift 22s linear infinite,vaFogPulse 7s ease-in-out infinite;
}
.va-fog-1{top:16%;animation-duration:25s,8s;animation-delay:-4s,-1s}
.va-fog-2{top:38%;left:-48%;width:84%;opacity:.13;animation-duration:31s,10s;animation-delay:-12s,-3s}
.va-fog-3{top:58%;left:-28%;width:67%;opacity:.12;animation-duration:28s,9s;animation-delay:-18s,-5s}
.va-fog-4{top:74%;left:-52%;width:92%;opacity:.10;animation-duration:36s,12s;animation-delay:-7s,-2s}

.va-witch,
.va-bat{
  position:absolute;
  left:-14%;
  z-index:2;
  display:block;
  width:max-content;
  line-height:1;
  user-select:none;
  will-change:transform;
  filter:drop-shadow(0 3px 4px rgba(0,0,0,.72)) saturate(.75) brightness(.78);
}
.va-witch{
  font-size:clamp(22px,4vw,38px);
  animation:vaWitchFly 19s linear infinite;
}
.va-witch-1{top:24%;animation-duration:20s;animation-delay:-5s}
.va-witch-2{top:61%;font-size:clamp(18px,3.2vw,31px);animation-duration:27s;animation-delay:-16s}

.va-bat{
  font-size:clamp(14px,2.2vw,23px);
  opacity:.76;
  animation:vaBatFly 14s linear infinite;
}
.va-bat-1{top:33%;animation-delay:-3s}
.va-bat-2{top:70%;animation-duration:18s;animation-delay:-11s}

@keyframes vaFogDrift{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(190%,4%,0) scale(1.08)}
}
@keyframes vaFogPulse{
  0%,100%{opacity:.08}
  50%{opacity:.19}
}
@keyframes vaWitchFly{
  0%{transform:translate3d(0,0,0) rotate(-4deg) scaleX(1)}
  20%{transform:translate3d(28vw,-7px,0) rotate(2deg) scaleX(1)}
  42%{transform:translate3d(54vw,6px,0) rotate(-1deg) scaleX(1)}
  67%{transform:translate3d(82vw,-9px,0) rotate(3deg) scaleX(1)}
  100%{transform:translate3d(128vw,3px,0) rotate(-3deg) scaleX(1)}
}
@keyframes vaBatFly{
  0%{transform:translate3d(0,0,0) rotate(-8deg)}
  35%{transform:translate3d(45vw,-12px,0) rotate(8deg)}
  68%{transform:translate3d(86vw,8px,0) rotate(-6deg)}
  100%{transform:translate3d(126vw,-4px,0) rotate(5deg)}
}

@media(max-width:620px){
  .va-halloween-atmosphere{
    z-index:430;
  }
  .va-fog{
    filter:blur(14px);
    opacity:.12;
  }
  .va-witch-2,
  .va-bat-2{
    display:none;
  }
}

@media(prefers-reduced-motion:reduce){
  .va-fog{
    animation:none!important;
    opacity:.08!important;
  }
  .va-witch,
  .va-bat{
    display:none!important;
  }
}


/* V144 — atmosfera reforçada + trajetórias JS irregulares */
.va-halloween-atmosphere{
  z-index:540!important;
}

.va-halloween-atmosphere::after{
  opacity:.85!important;
  background:
    radial-gradient(ellipse at 18% 28%,rgba(238,244,248,.18),transparent 32%),
    radial-gradient(ellipse at 76% 44%,rgba(224,234,242,.16),transparent 30%),
    radial-gradient(ellipse at 46% 76%,rgba(230,238,244,.14),transparent 34%)!important;
}

.va-fog{
  left:-42%!important;
  width:92%!important;
  height:30%!important;
  opacity:.26!important;
  filter:blur(10px)!important;
  mix-blend-mode:screen!important;
  background:
    radial-gradient(ellipse at 15% 52%,rgba(250,252,253,.82),transparent 30%),
    radial-gradient(ellipse at 40% 42%,rgba(235,242,247,.70),transparent 28%),
    radial-gradient(ellipse at 68% 62%,rgba(228,237,244,.64),transparent 31%),
    radial-gradient(ellipse at 88% 44%,rgba(245,248,250,.58),transparent 27%)!important;
  box-shadow:
    40px 0 65px rgba(220,230,238,.10),
    -35px 0 58px rgba(230,238,244,.08)!important;
}
.va-fog-1{top:8%!important;animation-duration:27s,8s!important}
.va-fog-2{top:29%!important;width:104%!important;animation-duration:34s,10s!important}
.va-fog-3{top:49%!important;animation-duration:30s,9s!important}
.va-fog-4{top:66%!important;width:110%!important;animation-duration:38s,12s!important}
.va-fog-5{
  top:79%!important;
  left:-56%!important;
  width:116%!important;
  opacity:.20!important;
  animation:vaFogDrift 42s linear infinite,vaFogPulse 13s ease-in-out infinite!important;
  animation-delay:-21s,-4s!important;
}

.va-witch,
.va-bat{
  left:0!important;
  animation:none!important;
  transform:none;
}
.va-witch{
  font-size:clamp(21px,3.8vw,37px)!important;
  opacity:.92!important;
}
.va-witch-small{
  font-size:clamp(16px,2.8vw,27px)!important;
  opacity:.78!important;
}
.va-bat{
  font-size:clamp(13px,2.1vw,22px)!important;
  opacity:.82!important;
}
.va-bat-small{
  font-size:clamp(10px,1.7vw,18px)!important;
  opacity:.68!important;
}

@media(max-width:620px){
  .va-halloween-atmosphere{
    z-index:540!important;
  }
  .va-fog{
    opacity:.22!important;
    filter:blur(8px)!important;
  }
  }



@media(prefers-reduced-motion:reduce){
  .va-witch,
  .va-bat{
    display:none!important;
  }
  .va-fog{
    animation:none!important;
    opacity:.13!important;
  }
}


/* V146 — sprites SVG animados: bruxinhas em vassoura e morcegos batendo asas */
.va-witch,
.va-bat{
  display:block!important;
  position:absolute!important;
  left:0!important;
  z-index:3!important;
  padding:0!important;
  margin:0!important;
  line-height:0!important;
  background:transparent!important;
  will-change:transform!important;
  pointer-events:none!important;
}

.va-witch{
  width:clamp(58px,10vw,92px)!important;
  height:auto!important;
  opacity:.92!important;
  filter:drop-shadow(0 4px 5px rgba(0,0,0,.72))!important;
}
.va-witch-small{
  width:clamp(44px,7.5vw,68px)!important;
  opacity:.78!important;
}
.va-witch-svg{
  display:block;
  width:100%;
  height:auto;
  overflow:visible;
}
.va-witch-svg .va-witch-hat,
.va-witch-svg .va-witch-head,
.va-witch-svg .va-witch-hair,
.va-witch-svg .va-witch-body,
.va-witch-svg .va-witch-cloak,
.va-witch-svg .va-witch-arm{
  fill:#130d1a;
  stroke:rgba(218,173,255,.34);
  stroke-width:1;
}
.va-witch-svg .va-broom-stick{
  fill:none;
  stroke:#5f4228;
  stroke-width:4;
  stroke-linecap:round;
}
.va-witch-svg .va-broom-brush{
  fill:#8d5b2f;
  stroke:#2e1e16;
  stroke-width:1;
}
.va-witch-rider{
  transform-box:fill-box;
  transform-origin:center bottom;
  animation:vaWitchRideBob 1.9s ease-in-out infinite alternate;
}
.va-witch-cloak{
  transform-box:fill-box;
  transform-origin:right center;
  animation:vaWitchCloakFlutter .72s ease-in-out infinite alternate;
}
.va-witch-broom{
  transform-box:fill-box;
  transform-origin:center center;
  animation:vaWitchBroomTilt 2.4s ease-in-out infinite alternate;
}

.va-bat{
  width:clamp(30px,5vw,48px)!important;
  height:auto!important;
  opacity:.84!important;
  filter:drop-shadow(0 3px 4px rgba(0,0,0,.68))!important;
}
.va-bat-small{
  width:clamp(22px,3.8vw,36px)!important;
  opacity:.67!important;
}
.va-bat-svg{
  display:block;
  width:100%;
  height:auto;
  overflow:visible;
}
.va-bat-svg .va-bat-body,
.va-bat-svg .va-bat-ear,
.va-bat-svg .va-bat-wing{
  fill:#111017;
  stroke:rgba(185,148,223,.30);
  stroke-width:1;
}
.va-bat-wing{
  transform-box:fill-box;
}
.va-bat-wing-left{
  transform-origin:right center;
  animation:vaBatFlapLeft .34s ease-in-out infinite alternate;
}
.va-bat-wing-right{
  transform-origin:left center;
  animation:vaBatFlapRight .34s ease-in-out infinite alternate;
}
.va-bat:nth-of-type(odd) .va-bat-wing-left,
.va-bat:nth-of-type(odd) .va-bat-wing-right{
  animation-duration:.27s;
}

@keyframes vaWitchRideBob{
  from{transform:translateY(-1.5px) rotate(-1deg)}
  to{transform:translateY(2.5px) rotate(1.5deg)}
}
@keyframes vaWitchCloakFlutter{
  from{transform:skewY(-4deg) scaleX(.96)}
  to{transform:skewY(6deg) scaleX(1.06)}
}
@keyframes vaWitchBroomTilt{
  from{transform:rotate(-1.2deg)}
  to{transform:rotate(1.6deg)}
}
@keyframes vaBatFlapLeft{
  from{transform:rotate(24deg) scaleY(.78)}
  to{transform:rotate(-18deg) scaleY(1.05)}
}
@keyframes vaBatFlapRight{
  from{transform:rotate(-24deg) scaleY(.78)}
  to{transform:rotate(18deg) scaleY(1.05)}
}

/* O Limite visual fica apenas com o contorno; nenhum preenchimento sombreia o mapa. */
.leaflet-overlay-pane path[fill-opacity="0"]{
  fill:transparent!important;
}

@media(max-width:620px){
  .va-witch{
    width:clamp(52px,15vw,78px)!important;
  }
  .va-witch-small{
    width:clamp(40px,11vw,58px)!important;
  }
  .va-bat{
    width:clamp(27px,8vw,42px)!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .va-witch-rider,
  .va-witch-cloak,
  .va-witch-broom,
  .va-bat-wing{
    animation:none!important;
  }
}


/* V147 — névoa avermelhada mais visível */
.va-halloween-atmosphere::after{
  opacity:.95!important;
  background:
    radial-gradient(ellipse at 18% 28%,rgba(255,82,72,.22),transparent 31%),
    radial-gradient(ellipse at 76% 44%,rgba(196,38,46,.20),transparent 30%),
    radial-gradient(ellipse at 46% 76%,rgba(255,118,72,.17),transparent 34%)!important;
}

.va-fog{
  opacity:.34!important;
  filter:blur(8px) saturate(1.2)!important;
  mix-blend-mode:normal!important;
  background:
    radial-gradient(ellipse at 15% 52%,rgba(255,120,102,.68),transparent 30%),
    radial-gradient(ellipse at 40% 42%,rgba(218,48,54,.58),transparent 28%),
    radial-gradient(ellipse at 68% 62%,rgba(255,82,62,.50),transparent 31%),
    radial-gradient(ellipse at 88% 44%,rgba(255,150,90,.42),transparent 27%)!important;
  box-shadow:
    45px 0 72px rgba(214,40,48,.18),
    -38px 0 66px rgba(255,98,72,.15)!important;
}
.va-fog-1{opacity:.36!important}
.va-fog-2{opacity:.30!important}
.va-fog-3{opacity:.32!important}
.va-fog-4{opacity:.27!important}
.va-fog-5{opacity:.25!important}

@media(max-width:620px){
  .va-fog{
    opacity:.30!important;
    filter:blur(7px) saturate(1.15)!important;
  }
  .va-fog-1{opacity:.32!important}
  .va-fog-2{opacity:.27!important}
  .va-fog-3{opacity:.29!important}
  .va-fog-4{opacity:.24!important}
  .va-fog-5{opacity:.22!important}
}


/* V148 — névoa branca + raios e flashes localizados */
.va-halloween-atmosphere::after{
  opacity:.86!important;
  background:
    radial-gradient(ellipse at 18% 28%,rgba(240,246,250,.18),transparent 31%),
    radial-gradient(ellipse at 76% 44%,rgba(220,230,238,.16),transparent 30%),
    radial-gradient(ellipse at 46% 76%,rgba(235,242,247,.14),transparent 34%)!important;
}

.va-fog{
  opacity:.31!important;
  filter:blur(9px) saturate(.88)!important;
  mix-blend-mode:screen!important;
  background:
    radial-gradient(ellipse at 15% 52%,rgba(252,254,255,.78),transparent 30%),
    radial-gradient(ellipse at 40% 42%,rgba(232,239,244,.66),transparent 28%),
    radial-gradient(ellipse at 68% 62%,rgba(242,247,250,.58),transparent 31%),
    radial-gradient(ellipse at 88% 44%,rgba(220,230,238,.50),transparent 27%)!important;
  box-shadow:
    45px 0 72px rgba(225,235,242,.15),
    -38px 0 66px rgba(238,244,248,.13)!important;
}
.va-fog-1{opacity:.34!important}
.va-fog-2{opacity:.28!important}
.va-fog-3{opacity:.30!important}
.va-fog-4{opacity:.25!important}
.va-fog-5{opacity:.23!important}

.va-storm-flash{
  --flash-x:50%;
  --flash-y:50%;
  position:absolute;
  inset:0;
  z-index:4;
  opacity:0;
  pointer-events:none;
  background:
    radial-gradient(circle at var(--flash-x) var(--flash-y),
      rgba(255,255,255,.68) 0%,
      rgba(232,242,255,.36) 7%,
      rgba(210,225,242,.16) 18%,
      rgba(255,255,255,0) 36%);
  mix-blend-mode:screen;
}
.va-storm-flash.active{
  animation:vaLocalizedFlash .68s ease-out 1;
}

.va-lightning{
  position:absolute;
  z-index:5;
  width:clamp(24px,5vw,46px);
  height:auto;
  opacity:0;
  pointer-events:none;
  filter:
    drop-shadow(0 0 5px rgba(225,238,255,.88))
    drop-shadow(0 0 12px rgba(180,210,255,.56));
  transform-origin:50% 0;
}
.va-lightning svg{
  display:block;
  width:100%;
  height:auto;
  overflow:visible;
}
.va-lightning path{
  fill:rgba(245,250,255,.98);
  stroke:rgba(180,210,245,.86);
  stroke-width:1.1;
}
.va-lightning.active{
  animation:vaLightningStrike .54s steps(2,end) 1;
}

@keyframes vaLocalizedFlash{
  0%{opacity:0}
  10%{opacity:.82}
  19%{opacity:.18}
  31%{opacity:.64}
  44%{opacity:.08}
  100%{opacity:0}
}
@keyframes vaLightningStrike{
  0%{opacity:0}
  8%{opacity:1}
  24%{opacity:.10}
  36%{opacity:.94}
  50%{opacity:.22}
  100%{opacity:0}
}

@media(max-width:620px){
  .va-fog{
    opacity:.28!important;
    filter:blur(8px) saturate(.90)!important;
  }
  .va-fog-1{opacity:.30!important}
  .va-fog-2{opacity:.25!important}
  .va-fog-3{opacity:.27!important}
  .va-fog-4{opacity:.23!important}
  .va-fog-5{opacity:.21!important}
  .va-lightning{
    width:clamp(20px,7vw,38px);
  }
}

@media(prefers-reduced-motion:reduce){
  .va-storm-flash,
  .va-lightning{
    display:none!important;
    animation:none!important;
  }
}


/* V150 — névoa branca em bolsões + clarões naturais sem desenho de raio */
.va-halloween-atmosphere::after{
  opacity:.78!important;
  background:
    radial-gradient(ellipse at 22% 24%,rgba(245,249,252,.16),transparent 25%),
    radial-gradient(ellipse at 72% 38%,rgba(226,235,242,.12),transparent 23%),
    radial-gradient(ellipse at 48% 72%,rgba(242,247,250,.13),transparent 29%)!important;
}

/* Base branca visível também no mapa claro, mas sem cobrir tudo por igual. */
.va-fog{
  mix-blend-mode:normal!important;
  background:
    radial-gradient(ellipse at 13% 54%,rgba(255,255,255,.82),transparent 24%),
    radial-gradient(ellipse at 36% 42%,rgba(242,247,250,.70),transparent 25%),
    radial-gradient(ellipse at 66% 61%,rgba(255,255,255,.62),transparent 26%),
    radial-gradient(ellipse at 88% 45%,rgba(226,235,242,.52),transparent 23%)!important;
  box-shadow:none!important;
}

/* Bolsões propositalmente irregulares: denso / leve / denso / leve / médio. */
.va-fog-1{
  top:7%!important;
  left:-38%!important;
  width:112%!important;
  height:35%!important;
  opacity:.48!important;
  filter:blur(7px)!important;
  animation-duration:32s,10s!important;
}
.va-fog-2{
  top:27%!important;
  left:-56%!important;
  width:76%!important;
  height:23%!important;
  opacity:.17!important;
  filter:blur(13px)!important;
  animation-duration:39s,13s!important;
}
.va-fog-3{
  top:43%!important;
  left:-31%!important;
  width:124%!important;
  height:39%!important;
  opacity:.52!important;
  filter:blur(7px)!important;
  animation-duration:35s,11s!important;
}
.va-fog-4{
  top:66%!important;
  left:-61%!important;
  width:72%!important;
  height:22%!important;
  opacity:.16!important;
  filter:blur(14px)!important;
  animation-duration:43s,14s!important;
}
.va-fog-5{
  top:75%!important;
  left:-25%!important;
  width:103%!important;
  height:30%!important;
  opacity:.36!important;
  filter:blur(9px)!important;
  animation-duration:38s,12s!important;
}

/* V150 não desenha relâmpago: ilumina regiões da névoa como descarga atrás das nuvens. */
.va-lightning{
  display:none!important;
}
.va-storm-flash{
  --flash-x:50%;
  --flash-y:40%;
  --flash-w:48%;
  --flash-h:28%;
  --flash-alpha:.50;
  position:absolute!important;
  inset:0!important;
  z-index:4!important;
  opacity:0;
  pointer-events:none!important;
  background:
    radial-gradient(
      ellipse var(--flash-w) var(--flash-h) at var(--flash-x) var(--flash-y),
      rgba(255,255,255,var(--flash-alpha)) 0%,
      rgba(232,241,250,.34) 18%,
      rgba(198,215,234,.14) 38%,
      rgba(255,255,255,0) 70%
    )!important;
  filter:blur(3px)!important;
  mix-blend-mode:screen!important;
}
.va-storm-flash-a{
  transform:scale(1.05);
}
.va-storm-flash-b{
  filter:blur(6px)!important;
}
.va-storm-flash.active{
  animation:vaCloudGlowV150 .92s ease-out 1!important;
}

@keyframes vaCloudGlowV150{
  0%{opacity:0}
  8%{opacity:.92}
  18%{opacity:.18}
  30%{opacity:.70}
  45%{opacity:.22}
  68%{opacity:.38}
  100%{opacity:0}
}

@media(max-width:620px){
  .va-fog-1{opacity:.44!important}
  .va-fog-2{opacity:.15!important}
  .va-fog-3{opacity:.47!important}
  .va-fog-4{opacity:.14!important}
  .va-fog-5{opacity:.32!important}
  .va-storm-flash{
    filter:blur(2px)!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .va-storm-flash{
    display:none!important;
    animation:none!important;
  }
}


/* V153 — névoa branca mais presente, com bolsões densos e corredores abertos */
.va-halloween-atmosphere::after{
  opacity:.92!important;
  background:
    radial-gradient(ellipse at 18% 20%,rgba(236,242,246,.28),transparent 24%),
    radial-gradient(ellipse at 74% 34%,rgba(210,221,229,.22),transparent 22%),
    radial-gradient(ellipse at 48% 71%,rgba(232,239,244,.24),transparent 28%),
    radial-gradient(ellipse at 86% 82%,rgba(205,216,225,.16),transparent 20%)!important;
}

.va-fog{
  mix-blend-mode:normal!important;
  background:
    radial-gradient(ellipse at 12% 52%,rgba(246,248,250,.94) 0%,rgba(226,233,238,.76) 17%,transparent 39%),
    radial-gradient(ellipse at 39% 42%,rgba(236,241,245,.86) 0%,rgba(211,222,230,.66) 20%,transparent 43%),
    radial-gradient(ellipse at 68% 61%,rgba(250,251,252,.88) 0%,rgba(222,230,236,.62) 18%,transparent 42%),
    radial-gradient(ellipse at 91% 43%,rgba(224,232,238,.75) 0%,rgba(200,212,221,.48) 19%,transparent 39%)!important;
  box-shadow:
    0 0 34px rgba(210,220,228,.16),
    0 0 70px rgba(235,240,244,.12)!important;
}

/* Dois bolsões fortes, dois corredores leves e um bolsão intermediário. */
.va-fog-1{
  opacity:.66!important;
  filter:blur(6px)!important;
}
.va-fog-2{
  opacity:.24!important;
  filter:blur(15px)!important;
}
.va-fog-3{
  opacity:.70!important;
  filter:blur(6px)!important;
}
.va-fog-4{
  opacity:.21!important;
  filter:blur(16px)!important;
}
.va-fog-5{
  opacity:.49!important;
  filter:blur(8px)!important;
}

/* Pequenas diferenças de escala evitam uma faixa uniforme de névoa. */
.va-fog-1{height:38%!important}
.va-fog-2{height:20%!important;width:70%!important}
.va-fog-3{height:41%!important}
.va-fog-4{height:19%!important;width:66%!important}
.va-fog-5{height:32%!important;width:108%!important}

@media(max-width:620px){
  .va-halloween-atmosphere::after{
    opacity:.88!important;
  }
  .va-fog-1{opacity:.61!important}
  .va-fog-2{opacity:.22!important}
  .va-fog-3{opacity:.65!important}
  .va-fog-4{opacity:.19!important}
  .va-fog-5{opacity:.44!important}
}


/* V154 — bruxa detalhada fornecida pelo usuário */
.va-witch-asset{
  display:block!important;
  width:clamp(68px,11vw,108px)!important;
  height:auto!important;
  object-fit:contain!important;
  object-position:center!important;
  opacity:.94!important;
  filter:
    drop-shadow(0 5px 6px rgba(0,0,0,.76))
    drop-shadow(0 0 4px rgba(82,91,255,.28))!important;
  transform-origin:center center;
  user-select:none;
  -webkit-user-drag:none;
}
.va-witch-small.va-witch-asset{
  width:clamp(50px,8vw,78px)!important;
  opacity:.80!important;
}

@media(max-width:620px){
  .va-witch-asset{
    width:clamp(62px,18vw,94px)!important;
  }
  .va-witch-small.va-witch-asset{
    width:clamp(46px,13vw,68px)!important;
  }
}


/* V155 — névoa em travessia contínua + clarões reforçados */
.va-fog{
  left:-132%!important;
  will-change:transform!important;
  animation-name:vaFogSweepV155!important;
  animation-timing-function:linear!important;
  animation-iteration-count:infinite!important;
}

/* Cada bolsão cruza o mapa inteiro e só reinicia quando já saiu pela direita. */
.va-fog-1{
  animation-duration:46s!important;
  animation-delay:-9s!important;
}
.va-fog-2{
  animation-duration:61s!important;
  animation-delay:-31s!important;
}
.va-fog-3{
  animation-duration:52s!important;
  animation-delay:-18s!important;
}
.va-fog-4{
  animation-duration:68s!important;
  animation-delay:-47s!important;
}
.va-fog-5{
  animation-duration:57s!important;
  animation-delay:-26s!important;
}

@keyframes vaFogSweepV155{
  0%{
    transform:translate3d(0,0,0) scale(1);
  }
  20%{
    transform:translate3d(62vw,-1.5vh,0) scale(1.02);
  }
  48%{
    transform:translate3d(145vw,1.2vh,0) scale(1.05);
  }
  76%{
    transform:translate3d(225vw,-.8vh,0) scale(1.03);
  }
  100%{
    transform:translate3d(300vw,0,0) scale(1);
  }
}

/* Clarões: luz difusa atrás da névoa, sem desenho de raio. */
.va-storm-flash{
  z-index:6!important;
  background:
    radial-gradient(
      ellipse var(--flash-w) var(--flash-h) at var(--flash-x) var(--flash-y),
      rgba(255,255,255,var(--flash-alpha)) 0%,
      rgba(238,246,255,.62) 15%,
      rgba(205,222,242,.34) 34%,
      rgba(165,193,225,.16) 52%,
      rgba(255,255,255,0) 76%
    )!important;
  filter:blur(2px)!important;
  mix-blend-mode:screen!important;
}
.va-storm-flash-b{
  filter:blur(4px)!important;
}
.va-storm-flash.active{
  animation:vaCloudGlowV155 1.08s ease-out 1!important;
}

@keyframes vaCloudGlowV155{
  0%{opacity:0}
  6%{opacity:1}
  14%{opacity:.26}
  23%{opacity:.92}
  36%{opacity:.18}
  50%{opacity:.72}
  68%{opacity:.20}
  100%{opacity:0}
}

@media(max-width:620px){
  .va-storm-flash{
    filter:blur(1.5px)!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .va-fog{
    animation:none!important;
    transform:translate3d(55vw,0,0)!important;
  }
}


/* V157 — travessia natural da névoa + clarões visíveis em mapa claro/escuro */
.va-halloween-atmosphere .va-fog{
  left:-145%!important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.22) 8%,#000 18%,#000 80%,rgba(0,0,0,.28) 91%,transparent 100%)!important;
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.22) 8%,#000 18%,#000 80%,rgba(0,0,0,.28) 91%,transparent 100%)!important;
  animation-name:vaFogSweepV157!important;
  animation-timing-function:linear!important;
  animation-iteration-count:infinite!important;
  animation-fill-mode:backwards!important;
}
.va-halloween-atmosphere .va-fog-1{animation-duration:45s!important;animation-delay:0s!important}
.va-halloween-atmosphere .va-fog-2{animation-duration:56s!important;animation-delay:8s!important}
.va-halloween-atmosphere .va-fog-3{animation-duration:49s!important;animation-delay:17s!important}
.va-halloween-atmosphere .va-fog-4{animation-duration:63s!important;animation-delay:27s!important}
.va-halloween-atmosphere .va-fog-5{animation-duration:58s!important;animation-delay:38s!important}

@keyframes vaFogSweepV157{
  0%{transform:translate3d(0,0,0) scale(1)}
  18%{transform:translate3d(65vw,-1vh,0) scale(1.02)}
  43%{transform:translate3d(150vw,1.2vh,0) scale(1.05)}
  70%{transform:translate3d(245vw,-.8vh,0) scale(1.03)}
  100%{transform:translate3d(350vw,.5vh,0) scale(1)}
}

/* Clarão de tempestade: difuso, sem desenho de raio, mas perceptível também no mapa claro. */
.va-halloween-atmosphere .va-storm-flash{
  z-index:12!important;
  opacity:0;
  pointer-events:none!important;
  mix-blend-mode:normal!important;
  filter:blur(.8px)!important;
  background:
    radial-gradient(
      ellipse var(--flash-w) var(--flash-h) at var(--flash-x) var(--flash-y),
      rgba(255,255,255,var(--flash-alpha)) 0%,
      rgba(246,249,255,.78) 10%,
      rgba(204,224,247,.52) 27%,
      rgba(147,182,220,.28) 46%,
      rgba(102,142,186,.10) 61%,
      rgba(255,255,255,0) 78%
    )!important;
}
.va-halloween-atmosphere .va-storm-flash-b{filter:blur(2px)!important}
.va-halloween-atmosphere .va-storm-flash.active{
  animation:vaCloudGlowV157 1.12s ease-out 1!important;
}
@keyframes vaCloudGlowV157{
  0%{opacity:0}
  4%{opacity:1}
  11%{opacity:.34}
  19%{opacity:.98}
  30%{opacity:.25}
  43%{opacity:.82}
  62%{opacity:.18}
  100%{opacity:0}
}

@media(max-width:620px){
  .va-halloween-atmosphere .va-storm-flash{filter:blur(.5px)!important}
}
@media(prefers-reduced-motion:reduce){
  .va-halloween-atmosphere .va-fog{
    animation:none!important;
    transform:translate3d(55vw,0,0)!important;
  }
  .va-halloween-atmosphere .va-storm-flash{
    display:none!important;
    animation:none!important;
  }
}


/* V158 — bruxa mais escura, mantendo o transform exclusivamente para o voo JS */
.va-witch-asset{
  display:block!important;
  opacity:.96!important;
  filter:
    brightness(.48)
    saturate(.72)
    contrast(1.16)
    drop-shadow(0 5px 7px rgba(0,0,0,.86))
    drop-shadow(0 0 3px rgba(66,78,180,.22))!important;
  transform-origin:center center!important;
  will-change:transform,filter!important;
  backface-visibility:hidden!important;
}
.va-witch-small.va-witch-asset{
  opacity:.84!important;
  filter:
    brightness(.45)
    saturate(.70)
    contrast(1.18)
    drop-shadow(0 4px 6px rgba(0,0,0,.84))
    drop-shadow(0 0 2px rgba(66,78,180,.18))!important;
}


/* V161 — bruxa vetorial articulada, escura e animada por partes */
.va-witch-vector{
  width:clamp(72px,11.5vw,112px)!important;
  height:auto!important;
  opacity:.94!important;
  filter:
    drop-shadow(0 5px 7px rgba(0,0,0,.84))
    drop-shadow(0 0 2px rgba(65,82,170,.24))!important;
}
.va-witch-small.va-witch-vector{
  width:clamp(52px,8.2vw,80px)!important;
  opacity:.82!important;
}
.va-witch-vector .va-witch-svg{
  display:block;
  width:100%;
  height:auto;
  overflow:visible;
}
.va-witch-vector .va-witch-rider{
  transform-box:fill-box;
  transform-origin:center 66%;
  animation:vaWitchRideV161 1.75s ease-in-out infinite alternate;
}
.va-witch-vector .va-witch-cloak-back{
  fill:#05060b;
  stroke:rgba(71,87,175,.48);
  stroke-width:1.15;
  transform-box:fill-box;
  transform-origin:right center;
  animation:vaWitchCloakV161 .78s ease-in-out infinite alternate;
}
.va-witch-vector .va-witch-cloak-front,
.va-witch-vector .va-witch-torso,
.va-witch-vector .va-witch-leg,
.va-witch-vector .va-witch-boot,
.va-witch-vector .va-witch-arm path,
.va-witch-vector .va-witch-face-profile,
.va-witch-vector .va-witch-nose,
.va-witch-vector .va-witch-hat-brim,
.va-witch-vector .va-witch-hat-crown,
.va-witch-vector .va-witch-hair path{
  fill:#06070d;
  stroke:rgba(75,92,188,.46);
  stroke-width:1.05;
}
.va-witch-vector .va-witch-hair{
  transform-box:fill-box;
  transform-origin:right center;
  animation:vaWitchHairV161 .92s ease-in-out infinite alternate;
}
.va-witch-vector .va-witch-hat{
  transform-box:fill-box;
  transform-origin:center bottom;
  animation:vaWitchHatV161 2.15s ease-in-out infinite alternate;
}
.va-witch-vector .va-witch-legs{
  transform-box:fill-box;
  transform-origin:center top;
  animation:vaWitchLegsV161 1.35s ease-in-out infinite alternate;
}
.va-witch-vector .va-witch-broom{
  transform-box:fill-box;
  transform-origin:center center;
  animation:vaWitchBroomV161 2.05s ease-in-out infinite alternate;
}
.va-witch-vector .va-broom-stick{
  fill:none;
  stroke:#17131a;
  stroke-width:5;
  stroke-linecap:round;
}
.va-witch-vector .va-broom-bristles{
  fill:#08070b;
  stroke:rgba(83,69,142,.58);
  stroke-width:1;
  transform-box:fill-box;
  transform-origin:right center;
  animation:vaWitchBristlesV161 .56s ease-in-out infinite alternate;
}
.va-witch-vector .va-witch-highlight{
  fill:none!important;
  stroke:rgba(91,111,226,.56)!important;
  stroke-width:1.15!important;
  stroke-linecap:round;
}
.va-witch-vector .va-witch-highlight-cloak{
  stroke:rgba(87,70,183,.58)!important;
}
.va-witch-vector.va-witch-alt .va-witch-rider{animation-delay:-.72s}
.va-witch-vector.va-witch-alt .va-witch-cloak-back{animation-delay:-.31s}
.va-witch-vector.va-witch-alt .va-witch-hair{animation-delay:-.46s}
.va-witch-vector.va-witch-alt-2 .va-witch-rider{animation-delay:-1.08s}
.va-witch-vector.va-witch-alt-2 .va-witch-cloak-back{animation-delay:-.55s}
.va-witch-vector.va-witch-alt-2 .va-witch-hair{animation-delay:-.23s}

@keyframes vaWitchRideV161{
  from{transform:translateY(-1.5px) rotate(-.8deg)}
  to{transform:translateY(2.8px) rotate(1.4deg)}
}
@keyframes vaWitchCloakV161{
  from{transform:skewY(-3deg) scaleX(.96) translateX(0)}
  to{transform:skewY(6deg) scaleX(1.06) translateX(-2px)}
}
@keyframes vaWitchHairV161{
  from{transform:skewY(-5deg) scaleX(.95)}
  to{transform:skewY(7deg) scaleX(1.08)}
}
@keyframes vaWitchHatV161{
  from{transform:rotate(-1.2deg) translateY(0)}
  to{transform:rotate(1.4deg) translateY(-1.2px)}
}
@keyframes vaWitchLegsV161{
  from{transform:rotate(-2deg) translateY(0)}
  to{transform:rotate(2.5deg) translateY(1px)}
}
@keyframes vaWitchBroomV161{
  from{transform:rotate(-1.4deg)}
  to{transform:rotate(1.6deg)}
}
@keyframes vaWitchBristlesV161{
  from{transform:skewY(-6deg) scaleX(.96)}
  to{transform:skewY(8deg) scaleX(1.05)}
}

@media(max-width:620px){
  .va-witch-vector{width:clamp(64px,18vw,98px)!important}
  .va-witch-small.va-witch-vector{width:clamp(48px,13vw,72px)!important}
}

@media(prefers-reduced-motion:reduce){
  .va-witch-vector .va-witch-rider,
  .va-witch-vector .va-witch-cloak-back,
  .va-witch-vector .va-witch-hair,
  .va-witch-vector .va-witch-hat,
  .va-witch-vector .va-witch-legs,
  .va-witch-vector .va-witch-broom,
  .va-witch-vector .va-broom-bristles{
    animation:none!important;
  }
}


/* V162 — restaura a arte detalhada da bruxa e mantém o voo animado */
.va-witch-sprite{
  width:clamp(72px,11.5vw,112px)!important;
  height:auto!important;
  opacity:.95!important;
  filter:drop-shadow(0 5px 7px rgba(0,0,0,.84))!important;
  overflow:visible!important;
}
.va-witch-small.va-witch-sprite{
  width:clamp(52px,8.2vw,80px)!important;
  opacity:.84!important;
}
.va-witch-sprite-img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center;
  user-select:none;
  -webkit-user-drag:none;
  pointer-events:none;
  transform-origin:center center;
  backface-visibility:hidden;
  will-change:transform,filter;
  filter:
    brightness(.68)
    saturate(.78)
    contrast(1.10)
    drop-shadow(0 0 2px rgba(70,86,180,.20));
  animation:vaWitchSpriteFloatV162 1.8s ease-in-out infinite alternate;
}
.va-witch-sprite-alt .va-witch-sprite-img{
  animation-delay:-.72s;
  animation-duration:2.05s;
}
.va-witch-sprite-alt-2 .va-witch-sprite-img{
  animation-delay:-1.18s;
  animation-duration:1.62s;
}
@keyframes vaWitchSpriteFloatV162{
  from{
    transform:translateY(-1.5px) rotate(-.9deg) skewY(-.35deg) scale(1);
  }
  to{
    transform:translateY(2.6px) rotate(1.25deg) skewY(.45deg) scale(1.015);
  }
}
@media(max-width:620px){
  .va-witch-sprite{width:clamp(64px,18vw,98px)!important}
  .va-witch-small.va-witch-sprite{width:clamp(48px,13vw,72px)!important}
}
@media(prefers-reduced-motion:reduce){
  .va-witch-sprite-img{
    animation:none!important;
    transform:none!important;
  }
}
