/* October decorations use CodeNova's existing blue, cyan and midnight palette. */
[data-season="halloween"] { --season-blue: #93c5fd; --season-cyan: #67e8f9; }
.halloween-decor { position: absolute; inset: 0; z-index: 2; overflow: hidden; pointer-events: none; user-select: none; }
.halloween-decor img { display: block; max-width: none; }
.halloween-web { position: absolute; top: 62px; right: -2px; width: clamp(160px, 24vw, 330px); opacity: .62; }
.halloween-web.is-left { right: auto; left: -2px; width: clamp(110px, 16vw, 220px); transform: scaleX(-1); opacity: .26; }
.halloween-scene { position: absolute; right: 2.5%; top: 18%; width: min(26vw, 400px); height: min(36vw, 480px); }
.halloween-moon { position: absolute; top: 0; right: 12%; width: 57%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 35% 30%, rgba(147,197,253,.16), rgba(37,99,235,.09) 60%, transparent 72%); box-shadow: 0 0 80px 20px rgba(37,99,235,.08); }
.halloween-moon::after { content: ''; position: absolute; width: 62%; height: 62%; right: 17%; top: 12%; border-radius: 50%; box-shadow: -15px 8px 0 1px rgba(147,197,253,.35); transform: rotate(-25deg); }
.halloween-pumpkin { position: absolute; width: 89%; height: auto; right: 0; bottom: 0; filter: drop-shadow(0 0 28px rgba(6,182,212,.15)); animation: halloween-glow 8s ease-in-out infinite; }
.halloween-ghost { position: absolute; width: 32%; height: auto; top: 25%; left: 24%; filter: drop-shadow(0 0 18px rgba(147,197,253,.2)); animation: halloween-float 7s ease-in-out infinite; }
.halloween-bat { position: absolute; width: 21%; height: auto; right: 0; top: 12%; opacity: .8; animation: halloween-flight 14s ease-in-out infinite; }
.halloween-bat.is-small { width: 13%; right: 55%; top: 11%; opacity: .5; animation-duration: 19s; animation-delay: -6s; }
.halloween-spider { position: absolute; top: 70px; left: 3%; width: 28px; height: 124px; transform-origin: center top; animation: halloween-spider 14s ease-in-out infinite; }
.halloween-spider::before { content: ''; position: absolute; top: 0; left: 50%; width: 1px; height: calc(100% - 20px); background: linear-gradient(180deg, rgba(147,197,253,.18), rgba(147,197,253,.7)); }
.halloween-spider img { position: absolute; width: 28px; height: 28px; bottom: 0; left: 0; }
.cine-poster-art::before, .tools-card-art::before { content: ''; position: absolute; z-index: 1; top: 0; right: 0; width: 85px; height: 85px; background: url('/img/halloween/web.svg') top right / contain no-repeat; opacity: .44; pointer-events: none; }
.halloween-decor.is-compact .halloween-web { top: 0; width: 150px; opacity: .4; }
.halloween-decor.is-compact .halloween-web.is-left { display: none; }
.halloween-decor.is-compact .halloween-scene { display: none; }
.halloween-decor.is-compact .halloween-spider { left: auto; right: 36px; top: 64px; height: 62px; width: 22px; opacity: .75; }
.halloween-decor.is-compact .halloween-spider img { width: 22px; height: 22px; }
.tools-tool-hero { position: relative; overflow: hidden; }
.halloween-decor.is-paused *, body.season-paused .halloween-decor * { animation-play-state: paused !important; }
@keyframes halloween-float { 0%,100% { transform: translate3d(0,0,0) rotate(-6deg); } 50% { transform: translate3d(4px,-18px,0) rotate(5deg); } }
@keyframes halloween-flight { 0%,100% { transform: translate3d(0,0,0) rotate(-8deg); } 50% { transform: translate3d(-24px,12px,0) rotate(7deg); } }
@keyframes halloween-spider { 0%,100% { height: 104px; transform: rotate(-3deg); } 50% { height: 144px; transform: rotate(4deg); } }
@keyframes halloween-glow { 0%,100% { opacity: .82; transform: translate3d(0,0,0); } 50% { opacity: 1; transform: translate3d(0,-4px,0); } }
@media (max-width: 1279px) {
  .halloween-scene { top: 78px; right: 4%; bottom: auto; width: 230px; height: 200px; opacity: .6; }
  .halloween-pumpkin { width: 54%; }
  .halloween-ghost { width: 27%; top: 23%; left: 9%; }
  .halloween-moon { width: 55%; right: 20%; }
  .halloween-bat { top: 7%; }
  .halloween-spider { left: 2%; width: 22px; opacity: .7; }
}
@media (max-width: 639px) {
  .halloween-scene { top: 72px; right: 9px; width: 165px; height: 130px; opacity: .62; }
  .halloween-web { top: 63px; width: 165px; opacity: .54; }
  .halloween-web.is-left { width: 100px; opacity: .2; }
  .halloween-spider { top: 64px; left: 8px; opacity: .55; transform: none; animation: none; height: 90px; }
  .halloween-spider img { width: 22px; height: 22px; }
  .halloween-ghost { width: 24%; top: 25%; }
  .halloween-decor.is-compact .halloween-web { width: 105px; opacity: .25; }
  .halloween-decor.is-compact .halloween-spider { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .halloween-decor * { animation: none !important; }
}
@media (forced-colors: active), print { .halloween-decor { display: none; } }
