/* Splash — one-shot sequence, no loops, no repeats. */

.splash {
  position: fixed; inset: 0;
  z-index: 999;
  background: var(--aa-cream-100);
  display: flex; align-items: center; justify-content: center;
  pointer-events: none;
  overflow: hidden;
  /* The whole splash fades out at the very end so the hero is fully revealed */
  animation: aaSplashContainerOut 3600ms linear forwards;
}
@keyframes aaSplashContainerOut {
  /* Stay fully opaque until 95% — only fade the cream backdrop right at the end */
  0%, 95% { opacity: 1; }
  100%    { opacity: 0; pointer-events: none; visibility: hidden; }
}

.splash-logo {
  width: 200px; height: auto;
  transform-origin: center center;
  filter: drop-shadow(0 8px 24px rgba(20,57,58,.16));
  /* ONE animation that runs the full timeline.
     0%      hidden, small
     0-15%   fade in + scale up to 1
     15-65%  breathe (one full inhale + exhale)
     65-100% zoom toward camera + fade out
     forwards keeps the final state. */
  animation: aaSplashSequence 3600ms cubic-bezier(.4,0,.2,1) forwards;
  will-change: transform, opacity, filter;
}

@keyframes aaSplashSequence {
  /* IN */
  0%   { opacity: 0; transform: scale(.5);   filter: drop-shadow(0 8px 24px rgba(20,57,58,.16)); }
  15%  { opacity: 1; transform: scale(1);    filter: drop-shadow(0 8px 24px rgba(20,57,58,.16)); }

  /* BREATHE — single inhale (15→40), exhale (40→65) */
  40%  { opacity: 1; transform: scale(1.10); filter: drop-shadow(0 18px 40px rgba(201,169,97,.36)) drop-shadow(0 0 30px rgba(201,169,97,.20)); }
  65%  { opacity: 1; transform: scale(1);    filter: none; }

  /* ZOOM TO INFINITY (65→100) — no filter changes during zoom; smooth scale curve */
  100% { opacity: 0; transform: scale(40);   filter: none; }
}

@media (prefers-reduced-motion: reduce) {
  .splash { display: none !important; }
}
