/* GENSIDE festival overlay (self-contained, injected via index.html) */
/* Hide the bundle's basic React overlays — we render richer ones. */
.seasonal-overlay { display: none !important; }

#gsFestivalRoot {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 60;
  overflow: hidden;
}
#gsFestivalCanvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
#gsFestivalDom { position: absolute; inset: 0; }

/* Mode vignettes (soft, non-intrusive) */
#gsFestivalRoot[data-mode="noel"]::after,
#gsFestivalRoot[data-mode="halloween"]::after,
#gsFestivalRoot[data-mode="nouvelan"]::after,
#gsFestivalRoot[data-mode="paques"]::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
#gsFestivalRoot[data-mode="noel"]::after {
  background: radial-gradient(120% 80% at 50% -10%, rgba(150,200,255,.14), transparent 60%);
}
#gsFestivalRoot[data-mode="halloween"]::after {
  background:
    radial-gradient(140% 60% at 50% 120%, rgba(120,40,160,.20), transparent 62%),
    radial-gradient(100% 60% at 50% -20%, rgba(255,120,20,.10), transparent 60%);
}
#gsFestivalRoot[data-mode="nouvelan"]::after {
  background: radial-gradient(120% 80% at 50% 120%, rgba(255,210,120,.12), transparent 60%);
}
#gsFestivalRoot[data-mode="paques"]::after {
  background: radial-gradient(120% 80% at 50% -10%, rgba(255,190,230,.14), transparent 60%);
}

/* Corner decorations */
.gs-corner {
  position: absolute;
  bottom: -6px;
  font-size: 64px;
  line-height: 1;
  opacity: .9;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,.5));
  will-change: transform;
}
.gs-corner.left  { left: 10px;  transform-origin: bottom left; }
.gs-corner.right { right: 10px; transform-origin: bottom right; }

@keyframes gsFlicker {
  0%,100% { opacity: .92; filter: drop-shadow(0 0 6px rgba(255,140,20,.6)); }
  48%     { opacity: .70; }
  52%     { opacity: .98; filter: drop-shadow(0 0 14px rgba(255,170,40,.85)); }
}
#gsFestivalRoot[data-mode="halloween"] .gs-corner { animation: gsFlicker 2.6s ease-in-out infinite; }

@keyframes gsSway {
  0%,100% { transform: rotate(-4deg) translateY(0); }
  50%     { transform: rotate(4deg) translateY(-4px); }
}
#gsFestivalRoot[data-mode="paques"] .gs-corner,
#gsFestivalRoot[data-mode="noel"] .gs-corner { animation: gsSway 5s ease-in-out infinite; }

@media (prefers-reduced-motion: reduce) {
  #gsFestivalCanvas { opacity: .5; }
  .gs-corner { animation: none !important; }
}
