/* Fondo animado: ondas suaves inspiradas en la onda naranja de La Montserratina.
   Respetuoso con prefers-reduced-motion (definido en tokens.css). */

.bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  background:
    radial-gradient(circle at 20% 0%, rgba(232, 118, 30, 0.18), transparent 50%),
    radial-gradient(circle at 80% 100%, rgba(232, 118, 30, 0.10), transparent 55%),
    linear-gradient(180deg, #050505 0%, #000 100%);
}

.bg__wave {
  position: absolute;
  left: -10%;
  right: -10%;
  height: 240px;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, var(--c-accent) 0%, transparent 65%);
  opacity: 0.10;
  filter: blur(60px);
}

.bg__wave--1 {
  top: -100px;
  animation: float-1 18s var(--ease-in-out) infinite;
}

.bg__wave--2 {
  bottom: -120px;
  animation: float-2 22s var(--ease-in-out) infinite;
  opacity: 0.07;
}

.bg__grain {
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.05 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size: 200px 200px;
  opacity: 0.5;
  mix-blend-mode: overlay;
}

@keyframes float-1 {
  0%, 100% { transform: translateY(0) translateX(0) scale(1); }
  50% { transform: translateY(40px) translateX(20px) scale(1.05); }
}

@keyframes float-2 {
  0%, 100% { transform: translateY(0) translateX(0) scale(1); }
  50% { transform: translateY(-30px) translateX(-15px) scale(1.08); }
}

/* Logo pulse al cargar (sutil) */
.brand__logo {
  animation: logo-in 800ms var(--ease-out) both;
}

@keyframes logo-in {
  0% { opacity: 0; transform: translateY(-8px) scale(0.96); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

/* Transición entre estados pre/post launch */
.state {
  transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}

.state--postlaunch {
  animation: postlaunch-in 900ms var(--ease-out) both;
}

@keyframes postlaunch-in {
  0% { opacity: 0; transform: translateY(20px) scale(0.96); }
  60% { opacity: 1; transform: translateY(0) scale(1.02); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

.state--postlaunch .brand__logo {
  animation: pulse-logo 2.4s var(--ease-in-out) infinite;
}

@keyframes pulse-logo {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.04); }
}