@keyframes breathe {
  0%,
  100% {
    opacity: 0.46;
    transform: scale(0.96);
  }

  50% {
    opacity: 0.82;
    transform: scale(1.04);
  }
}

@keyframes subtleAuraBreathe {
  0%,
  100% { opacity: 0.1; transform: scale(0.97); }
  50% { opacity: 0.16; transform: scale(1.03); }
}

@keyframes drift {
  0%,
  100% {
    opacity: 0.08;
    transform: translate3d(0, 0, 0);
  }

  50% {
    opacity: 0.62;
    transform: translate3d(0.4rem, -1.2rem, 0);
  }
}

@keyframes lineFlow {
  0%,
  100% {
    opacity: 0.28;
    transform: scaleY(0.72);
    transform-origin: top;
  }

  50% {
    opacity: 0.86;
    transform: scaleY(1);
  }
}

@keyframes inwardSpaceArrive {
  from { opacity: 0; transform: scale(1.035); }
  to { opacity: 0.78; transform: scale(1); }
}

@keyframes inwardBreath {
  0%,
  100% { opacity: 0.34; transform: scale(0.986); }
  50% { opacity: 0.46; transform: scale(1.008); }
}

@keyframes inwardMokyuArrive {
  from { opacity: 0; transform: scale(0.975); }
  to { opacity: 0.64; transform: scale(1); }
}

@keyframes inwardMokyuBreath {
  0%,
  100% { transform: scale(0.998); }
  50% { transform: scale(1.002); }
}

@keyframes inwardMokyuShadeArrive {
  from { opacity: 0; transform: scale(0.975); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes inwardParticleGather {
  0%,
  100% { opacity: var(--particle-opacity-low, 0.04); transform: translate3d(0, 0, 0); }
  52% { opacity: var(--particle-opacity, 0.08); transform: translate3d(var(--particle-shift-x, 0), var(--particle-shift-y, 0), 0); }
}

@keyframes inwardResonancePrimary {
  0% { opacity: 0; transform: scale(0.24); }
  11% { opacity: 0.3; }
  43% { opacity: 0.145; }
  72% { opacity: 0.048; }
  100% { opacity: 0; transform: scale(3.55); }
}

@keyframes inwardConsciousnessResponse {
  0%,
  100% { opacity: 0; transform: scale(0.96); }
  46% { opacity: 0.72; transform: scale(1.018); }
}

@keyframes inwardVeilResponse {
  0%,
  100% { opacity: 0.92; }
  48% { opacity: 0.885; }
}

@keyframes inwardCopyArrive {
  from { opacity: 0; transform: translate3d(0, 1rem, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

.download-aura,
.chapter-intro--experience::before,
.chapter-intro--philosophy::before {
  animation: breathe 9s var(--ease-soft) infinite;
}

.download-aura,
.chapter-intro--experience::before,
.chapter-intro--philosophy::before { animation-name: subtleAuraBreathe; }

@keyframes downloadAuraMobileBreathe {
  0%, 100% { opacity: 0.06; transform: scale(0.98); }
  50% { opacity: 0.1; transform: scale(1.02); }
}

@media (max-width: 47.99rem) {
  .download-aura { animation-name: downloadAuraMobileBreathe; }
}

.hero-inward__haze {
  animation: inwardSpaceArrive 1.4s var(--ease-calm) 0.2s both;
}

.hero-inward__breath {
  animation: inwardBreath 7.2s ease-in-out 1.9s infinite;
  will-change: opacity, transform;
}

.hero-inward__mokyu {
  animation:
    inwardMokyuArrive 1.1s var(--ease-calm) 0.5s both,
    inwardMokyuBreath 7.4s ease-in-out 1.8s infinite;
}

.hero-inward__object::after {
  animation:
    inwardMokyuShadeArrive 1.1s var(--ease-calm) 0.5s both,
    inwardMokyuBreath 7.4s ease-in-out 1.8s infinite;
}

.hero-inward .hero-content {
  animation: inwardCopyArrive 1.3s var(--ease-calm) 0.9s both;
}

.hero-inward__particle {
  animation: inwardParticleGather var(--particle-duration, 18s) ease-in-out var(--particle-delay, 0s) infinite;
}

.hero-inward.is-resonating .hero-inward__ring--primary {
  animation: inwardResonancePrimary 6.4s var(--ease-soft) both;
}

.hero-inward.is-resonating .hero-inward__consciousness {
  animation: inwardConsciousnessResponse 1s var(--ease-soft) 4.35s both;
}

.hero-inward.is-resonating .hero-inward__foreground {
  animation: inwardVeilResponse 1s var(--ease-soft) 4.35s both;
}

.scroll-line {
  animation: lineFlow 2.8s var(--ease-soft) infinite;
}

.particle {
  animation: drift var(--particle-duration, 9s) var(--ease-soft) infinite;
  animation-delay: var(--particle-delay, 0s);
}

.reveal {
  opacity: 0;
  filter: blur(10px);
  transform: translateY(2rem);
  transition:
    opacity var(--duration-base) var(--ease-calm),
    filter var(--duration-base) var(--ease-calm),
    transform var(--duration-base) var(--ease-calm);
}

.reveal.is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}

.practice-item:nth-child(2) { transition-delay: 70ms; }
.practice-item:nth-child(3) { transition-delay: 140ms; }
.practice-item:nth-child(4) { transition-delay: 210ms; }

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 1ms !important;
  }

  .reveal {
    opacity: 1;
    filter: none;
    transform: none;
  }

  .practice-item { transition-delay: 0ms; }

  .hero-inward__haze {
    opacity: 0.72;
    transform: none;
  }

  .hero-inward__breath {
    opacity: 0.45;
    transform: none;
  }

  .hero-inward__mokyu {
    opacity: 0.64;
    transform: none;
  }

  .hero-inward__object::after {
    opacity: 1;
    transform: none;
  }

  .hero-inward__ring--primary {
    opacity: 0.085;
    transform: scale(1.08);
  }

  .hero-inward__particles {
    display: none;
  }

  .hero-inward__consciousness {
    opacity: 0.04;
    transform: none;
  }

  .product-wavefront-visual {
    transform: none;
  }

  .philosophy-coda-scene {
    height: auto;
    min-height: auto;
  }

  .philosophy-coda-sticky {
    position: relative;
    min-height: auto;
    padding-block: var(--space-8);
  }

  .philosophy-coda-composition {
    min-height: auto;
    gap: var(--space-8);
  }

  .philosophy-coda-stage {
    position: static;
    grid-area: auto;
    opacity: 1;
    filter: none;
    transform: none;
  }

  .philosophy-coda-track {
    display: none;
  }
}
