/*
 * intro-fast.css — repeat-play cut of the loading intro.
 *
 * Loaded AFTER intro.css. It does nothing on its own: the site controller
 * (intro-site.js) adds .intro--fast to #intro once the visitor has already
 * seen the full sequence in this tab. Every later page navigation then plays
 * this condensed rhythm instead of the full ~6.3s choreography, so the
 * animation still appears when navigating between pages.
 *
 * The demo page (loading-animation/index.html) never gets this class and
 * keeps the original timing verbatim.
 *
 * Timings must stay in sync with intro-site.js:
 *   reveal enters at .7s delay + .8s duration -> hold 400ms
 *   zoom-out starts at 1.9s and lasts .6s     -> page released at 2.5s
 */

.intro--fast .intro__aura {
  animation: introAura 2.4s var(--ease) both;
}

.intro--fast .intro__orbit {
  animation:
    introSpinIn .9s var(--ease-out) both,
    introOrbitSpin 16s linear .9s infinite;
}

.intro--fast .intro__block {
  animation:
    introBlockIn .7s var(--ease-out) both,
    introPulse 3.2s ease-in-out .9s infinite;
  animation-delay: calc(var(--i) * 18ms), .9s;
}

.intro--fast .intro__trail {
  animation: introTrail .7s var(--ease-out) both;
  animation-delay: calc(var(--i) * 18ms);
}

.intro--fast .intro__flash {
  animation: introFlash .8s var(--ease-out) .65s both;
}

.intro--fast .intro__ring {
  animation: introRing .9s var(--ease-out) .7s both;
}

.intro--fast .intro__glow {
  animation: introGlow 1s var(--ease-out) .6s both;
}

.intro--fast .intro__floor {
  animation: introFloor 1.2s var(--ease) .3s both;
}

.intro--fast .intro__reveal {
  animation: introReveal .8s var(--ease-out) .7s both;
}
