/* ============================================================
   GENUBRA WORLDFORGE — immersion layer
   ------------------------------------------------------------
   Volumetric atmosphere · reactive presence · sound control ·
   hidden-lore overlay. Additive + gated on `.worldforge` (added
   by worldforge.js after init) so a JS failure can't hide or
   block anything. `.worldforge.wf-reduced` = motion disabled.
   Reuses brand CSS vars so it re-skins on rebrand.
   ============================================================ */

/* ---- VOLUMETRIC ATMOSPHERE -------------------------------- */
.worldforge .wf-rays {
  position: fixed; inset: 0; z-index: 1; pointer-events: none;
  mix-blend-mode: screen; opacity: .45; will-change: transform;
  background: repeating-conic-gradient(from 0deg at 50% 36%,
    transparent 0deg, rgba(var(--red-rgb), .07) 5deg, transparent 11deg);
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 36%, #000 0%, transparent 65%);
          mask-image: radial-gradient(ellipse 70% 60% at 50% 36%, #000 0%, transparent 65%);
  animation: wf-rays-rot 90s linear infinite;
}
.worldforge .wf-fog {
  position: fixed; left: -10%; right: -10%; bottom: -8%; height: 48vh;
  z-index: 2; pointer-events: none;
  background: radial-gradient(ellipse 70% 100% at 50% 120%,
    rgba(var(--red-rgb), .20), rgba(var(--red3-rgb), .10) 45%, transparent 72%);
  filter: blur(26px);
  animation: wf-fog-drift 16s ease-in-out infinite alternate;
}
/* world-state: atmosphere deepens toward violet as you descend */
.worldforge .wf-tint {
  position: fixed; inset: 0; z-index: 2; pointer-events: none;
  background: radial-gradient(ellipse 90% 70% at 50% 116%,
    rgba(157, 113, 255, .22), transparent 60%);
  opacity: var(--wf-descent, 0);
  transition: opacity .3s linear;
}
@keyframes wf-rays-rot { to { transform: rotate(360deg); } }
@keyframes wf-fog-drift {
  0%   { transform: translateX(-3%) scale(1.05); opacity: .8; }
  100% { transform: translateX(3%) scale(1.12); opacity: 1; }
}

/* ---- REACTIVE PRESENCE (cursor sigil) --------------------- */
.worldforge .wf-cursor {
  position: fixed; left: 0; top: 0; width: 26px; height: 26px;
  margin: -13px 0 0 -13px; border-radius: 50%;
  border: 1px solid var(--red);
  box-shadow: 0 0 12px rgba(var(--red-rgb), .5), inset 0 0 10px rgba(var(--red-rgb), .25);
  pointer-events: none; z-index: 9998; mix-blend-mode: screen;
  transform: translate3d(var(--cx, -50px), var(--cy, -50px), 0);
  transition: width .22s ease, height .22s ease, margin .22s ease,
    background .22s ease, opacity .3s ease;
  opacity: 0;
}
.worldforge.wf-pointer .wf-cursor { opacity: 1; }
.worldforge.wf-hot .wf-cursor {
  width: 52px; height: 52px; margin: -26px 0 0 -26px;
  background: rgba(var(--red-rgb), .12);
}
@media (hover: none), (pointer: coarse) { .worldforge .wf-cursor { display: none; } }

/* the mascot becomes a pressable relic */
.worldforge .hero-mascot { pointer-events: auto; cursor: pointer; }

/* ---- HIDDEN-LORE PROPHECY OVERLAY ------------------------- */
.worldforge .wf-prophecy {
  position: fixed; left: 50%; top: 38%; transform: translate(-50%, -50%) scale(.96);
  z-index: 95; max-width: min(560px, 88vw); text-align: center;
  padding: 26px 30px; pointer-events: none; opacity: 0;
  background: radial-gradient(ellipse at center, rgba(21, 19, 31, .9), rgba(7, 7, 12, .82));
  border: 1px solid rgba(var(--red-rgb), .4); border-radius: 14px;
  box-shadow: 0 30px 90px rgba(0, 0, 0, .6), 0 0 60px rgba(var(--red-rgb), .3);
  transition: opacity .5s ease, transform .5s cubic-bezier(.2,.8,.3,1.2);
}
.worldforge .wf-prophecy.show { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.worldforge .wf-prophecy .wf-sigil {
  font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: .5em;
  color: var(--red-2); margin-bottom: 12px;
}
.worldforge .wf-prophecy .wf-line {
  font-family: 'Anton', sans-serif; font-size: clamp(20px, 4vw, 30px);
  line-height: 1.15; color: var(--ink);
  text-shadow: 0 0 22px rgba(var(--red-rgb), .5);
}

/* ---- REDUCED MOTION --------------------------------------- */
.worldforge.wf-reduced .wf-rays,
.worldforge.wf-reduced .wf-fog { animation: none !important; }
.worldforge.wf-reduced .wf-cursor { display: none !important; }
