/* Aurore — ouverture cinéma (fente + aube + neige). ?gateway=aurore */

@media (prefers-reduced-motion: no-preference) {
  body.gateway-fx--aurore.gateway-entrance:not([data-audience]) .hero-bg-photo--gateway {
    clip-path: inset(49% 0 49% 0);
    filter: saturate(0.35) brightness(0.55) contrast(1.05);
    animation: auroreSlit 2.4s cubic-bezier(0.16, 1, 0.3, 1) 0.35s forwards;
    transform-origin: center 42%;
  }

  body.gateway-fx--aurore.gateway-entrance:not([data-audience]) .hero-bg-blend {
    opacity: 0;
    animation: auroreBlend 1.8s ease-out 1.6s forwards;
  }

  body.gateway-fx--aurore.gateway-entrance:not([data-audience]) .gateway-fx-dawn {
    position: absolute;
    inset: 0;
    z-index: 6;
    background:
      linear-gradient(180deg, rgba(8, 18, 36, 0.2) 0%, transparent 28%),
      linear-gradient(180deg, transparent 35%, rgba(196, 163, 90, 0.28) 62%, rgba(232, 196, 140, 0.12) 100%);
    mix-blend-mode: soft-light;
    opacity: 0;
    animation: auroreDawn 2.6s ease-out 0.8s forwards;
    pointer-events: none;
  }

  body.gateway-fx--aurore.gateway-entrance:not([data-audience]) .gateway-fx-horizon {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 8;
    width: 0;
    height: 1px;
    transform: translate(-50%, -50%);
    background: linear-gradient(90deg, transparent, #f3e6c4, #c4a35a, #f3e6c4, transparent);
    box-shadow: 0 0 18px rgba(196, 163, 90, 0.85);
    animation: auroreHorizon 1.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    pointer-events: none;
  }

  body.gateway-fx--aurore.gateway-entrance:not([data-audience]) .gateway-fx-snow span {
    position: absolute;
    top: -8%;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.85);
    box-shadow: 0 0 6px rgba(255, 255, 255, 0.6);
    opacity: 0;
    animation: auroreSnow var(--snow-dur, 9s) linear var(--snow-delay, 0.8s) infinite;
  }

  body.gateway-fx--aurore.gateway-entrance:not([data-audience]) .gateway-brand-mark {
    opacity: 0;
    animation: auroreMark 1.15s cubic-bezier(0.16, 1, 0.3, 1) 0.85s forwards;
  }

  body.gateway-fx--aurore.gateway-entrance:not([data-audience]) .gateway-letter {
    display: inline-block;
    opacity: 0;
    transform: translateY(0.6em);
    animation: auroreLetter 0.55s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  }

  body.gateway-fx--aurore.gateway-entrance:not([data-audience]) .gateway-brand-tagline {
    opacity: 0;
    animation: auroreFade 0.8s ease-out 1.85s forwards;
  }

  body.gateway-fx--aurore.gateway-entrance:not([data-audience]) .audience-gateway-eyebrow {
    opacity: 0;
    letter-spacing: 0.42em;
    animation: auroreEyebrow 1s cubic-bezier(0.16, 1, 0.3, 1) 2s forwards;
  }

  body.gateway-fx--aurore.gateway-entrance:not([data-audience]) .audience-gateway-intro h1 {
    opacity: 0;
    animation: auroreTitle 1.15s cubic-bezier(0.16, 1, 0.3, 1) 2.25s forwards;
  }

  body.gateway-fx--aurore.gateway-entrance:not([data-audience]) .audience-gateway-intro h1::after {
    transform: scaleX(0);
    transform-origin: left center;
    animation: auroreRule 0.9s cubic-bezier(0.16, 1, 0.3, 1) 2.85s forwards;
  }

  body.gateway-fx--aurore.gateway-entrance:not([data-audience]) .audience-gateway-intro .hero-lead {
    opacity: 0;
    animation: auroreFade 0.9s ease-out 3s forwards;
  }

  body.gateway-fx--aurore.gateway-entrance:not([data-audience]) .audience-card {
    opacity: 0;
    animation: auroreCard 0.95s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  }

  body.gateway-fx--aurore.gateway-entrance:not([data-audience]) .audience-card:nth-child(1) {
    animation-delay: 3.2s;
    --aurore-from: -48px;
  }

  body.gateway-fx--aurore.gateway-entrance:not([data-audience]) .audience-card:nth-child(2) {
    animation-delay: 3.4s;
    --aurore-from: 48px;
  }

  body.gateway-fx--aurore.gateway-entrance:not([data-audience]) .audience-card:nth-child(3) {
    animation-delay: 3.6s;
    --aurore-from: -48px;
  }

  @keyframes auroreSlit {
    to {
      clip-path: inset(0 0 0 0);
      filter: saturate(1.08) brightness(1.02) contrast(1.04);
    }
  }

  @keyframes auroreBlend {
    to {
      opacity: 1;
    }
  }

  @keyframes auroreDawn {
    0% {
      opacity: 0;
    }
    40% {
      opacity: 1;
    }
    100% {
      opacity: 0.55;
    }
  }

  @keyframes auroreHorizon {
    0% {
      width: 0;
      opacity: 1;
    }
    55% {
      width: min(72vw, 640px);
      opacity: 1;
    }
    100% {
      width: min(92vw, 900px);
      opacity: 0;
    }
  }

  @keyframes auroreMark {
    from {
      opacity: 0;
      transform: translateY(-18px) scale(0.92);
      filter: drop-shadow(0 0 0 transparent);
    }
    to {
      opacity: 1;
      transform: translateY(0) scale(1);
      filter: drop-shadow(0 8px 22px rgba(196, 163, 90, 0.35));
    }
  }

  @keyframes auroreLetter {
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @keyframes auroreFade {
    to {
      opacity: 1;
    }
  }

  @keyframes auroreEyebrow {
    to {
      opacity: 1;
      letter-spacing: 0.14em;
    }
  }

  @keyframes auroreTitle {
    from {
      opacity: 0;
      transform: translateY(16px);
      filter: blur(8px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
      filter: blur(0);
    }
  }

  @keyframes auroreRule {
    to {
      transform: scaleX(1);
    }
  }

  @keyframes auroreCard {
    from {
      opacity: 0;
      transform: translateX(var(--aurore-from, 0)) translateY(18px);
    }
    to {
      opacity: 1;
      transform: translateX(0) translateY(0);
    }
  }

  @keyframes auroreSnow {
    0% {
      transform: translate3d(0, 0, 0);
      opacity: 0;
    }
    12% {
      opacity: 0.8;
    }
    100% {
      transform: translate3d(var(--snow-x, 20px), 110vh, 0);
      opacity: 0;
    }
  }
}

body.gateway-fx--aurore .gateway-fx-snow span:nth-child(3n) {
  left: 8%;
  --snow-dur: 8s;
  --snow-delay: 1.1s;
  --snow-x: 16px;
}

body.gateway-fx--aurore .gateway-fx-snow span:nth-child(3n + 1) {
  left: 28%;
  --snow-dur: 11s;
  --snow-delay: 1.4s;
  --snow-x: -22px;
  width: 2px;
  height: 2px;
}

body.gateway-fx--aurore .gateway-fx-snow span:nth-child(3n + 2) {
  left: 62%;
  --snow-dur: 9.5s;
  --snow-delay: 1.8s;
  --snow-x: 28px;
}

body.gateway-fx--aurore .gateway-fx-snow span:nth-child(5n) {
  left: 84%;
  --snow-delay: 2.2s;
}

body.gateway-fx--aurore .gateway-fx-snow span:nth-child(7n) {
  left: 46%;
  --snow-dur: 13s;
  --snow-x: -10px;
}
