/* ==========================================================
   Coming soon – WAW mode (final & clean)
   ========================================================== */

body {
  cursor: none;
}

/* =========================
   SCÈNE GLOBALE
   ========================= */

.cs {
  position: relative;
  isolation: isolate;

  min-height: 100vh;
  background:
    radial-gradient(
      1200px 600px at 50% 30%,
      rgba(255,136,0,0.08),
      transparent 60%
    ),
    var(--color-bg-main);

  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.cs::after {
  content: '';
  position: fixed;
  top: -25%;
  left: -25%;
  width: 150%;
  height: 150%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.055'/%3E%3C/svg%3E");
  pointer-events: none;
  animation: grain 4s steps(10) infinite;
  z-index: 0;
}

/* =========================
   CONTENU
   ========================= */

.cs__stage {
  position: relative;
  z-index: 2;

  max-width: 420px;
  margin: 0 auto;

  display: flex;
  flex-direction: column;
  gap: 20px;

  text-align: left;
  animation: fadeIn 1.2s ease forwards;
}

.cs__content {
  max-width: 340px;
  margin: 0 auto;
}

/* =========================
   LOGO & TEXTE
   ========================= */

.cs__logo {
  width: 260px;
  margin: 0 auto 12px;
}

.cs__logo img {
  width: 100%;
  height: auto;
}

.cs__title {
  font-size: 14px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  opacity: 0.65;
  text-align: center;
}

.cs__tagline {
  font-size: 15px;
  letter-spacing: 0.12em;
  color: var(--color-text-muted);
  text-align: center;
}

.cs__message {
  font-size: 16px;
}

.cs__tagline,
.cs__message {
  animation: breathe 6s ease-in-out infinite;
}

/* =========================
   HALO
   ========================= */

.cs-halo {
  position: fixed;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  pointer-events: none;
  z-index: 1;
}

.cs-halo__inner {
  position: relative;
  width: 420px;
  height: 420px;
  margin-left: -210px;
  margin-top: -210px;
  border-radius: 50%;
  filter: blur(45px);
  opacity: 0;
  transition: opacity 1.2s ease;
}

.cs-halo__inner::before,
.cs-halo__inner::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
}

/* Orange (base) */
.cs-halo__inner::before {
  background: radial-gradient(
    circle,
    rgba(255,136,0,0.4),
    rgba(255,136,0,0.08),
    transparent 70%
  );
}

/* Blanc (récompense) */
.cs-halo__inner::after {
  background: radial-gradient(
    circle,
    rgba(255,255,255,0.35),
    rgba(255,255,255,0.05),
    transparent 70%
  );
  opacity: 0;
  transition: opacity 3.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.cs-halo__inner.is-found::after {
  opacity: 1;
}

.cs-halo__inner.is-pulse {
  animation: haloPulse 0.9s cubic-bezier(0.22, 1, 0.36, 1) 3;
}

/* =========================
   EASTER EGG
   ========================= */

.cs-easter {
  position: absolute;
  z-index: 3;

  font-size: 12px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  white-space: nowrap;

  color: var(--color-bg-main);
  pointer-events: none;

  /* Révélation directionnelle */
  clip-path: inset(0 98% 0 0);
  transition: clip-path 0.15s linear;
}

/* =========================
   ANIMATIONS
   ========================= */

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes grain {
  0%, 100% { transform: translate(0,0); }
  50% { transform: translate(-5%,5%); }
}

@keyframes breathe {
  0%   { opacity: 0.5; transform: translateY(0); }
  50%  { opacity: 1;   transform: translateY(-2px); }
  100% { opacity: 0.5; transform: translateY(0); }
}

@keyframes haloPulse {
  0%   { transform: scale(1);    filter: blur(45px); }
  40%  { transform: scale(0.88); filter: blur(28px); }
  100% { transform: scale(1);    filter: blur(45px); }
}
