@media (prefers-reduced-motion: no-preference) {
  .motion-ready .hero .eyebrow,
  .motion-ready .hero h1 span,
  .motion-ready .hero h1 em,
  .motion-ready .hero-bottom,
  .motion-ready .scroll-note {
    animation: rise-in .9s cubic-bezier(.2,.8,.2,1) both;
  }

  .motion-ready .hero h1 span { animation-delay: .08s; }
  .motion-ready .hero h1 em { animation-delay: .16s; }
  .motion-ready .hero-bottom { animation-delay: .3s; }
  .motion-ready .scroll-note { animation-delay: .75s; }
  .motion-ready .hero-glow { animation: glow-breathe 7s ease-in-out infinite alternate; }
  .motion-ready .signal { animation: signal-in 1.1s .45s ease both; }

  .marquee div { animation: marquee 30s linear infinite; }
  .marquee:hover div { animation-play-state: paused; }

  .reveal {
    opacity: 0;
    transform: translate3d(0, 34px, 0);
    transition: opacity .75s ease, transform .8s cubic-bezier(.2,.8,.2,1);
    transition-delay: var(--reveal-delay, 0ms);
  }

  .reveal.is-visible { opacity: 1; transform: translate3d(0, 0, 0); }

  .button { transition: transform .25s ease, box-shadow .25s ease, filter .25s ease; }
  .button:hover { transform: translateY(-3px); filter: saturate(1.15); box-shadow: 0 18px 40px rgba(78,47,237,.28); }
  .button-small:hover { box-shadow: 0 10px 28px rgba(255,255,255,.12); }

  .discipline-grid article { transition: transform .35s ease, border-color .35s ease, background .35s ease, box-shadow .35s ease; }
  .discipline-grid article:hover { transform: translateY(-8px); border-color: color-mix(in srgb, var(--card-color) 65%, transparent); background: linear-gradient(145deg, color-mix(in srgb, var(--card-color) 8%, transparent), rgba(255,255,255,.008)); box-shadow: 0 24px 70px rgba(0,0,0,.35); }
  .discipline-letter, .panel-letter { transition: transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease; }
  .discipline-grid article:hover .discipline-letter { transform: rotate(-7deg) scale(1.06); box-shadow: 0 0 28px color-mix(in srgb, var(--card-color) 20%, transparent); }

  .process-list li { transition: transform .35s ease, background .35s ease, border-color .35s ease; }
  .process-list li:hover { z-index: 1; transform: translateY(-7px); border-color: rgba(129,80,255,.55); background: #0d0b15; }

  .tab-list button { transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease; }
  .tab-list button:hover { transform: translateY(-2px); border-color: rgba(129,80,255,.55); color: white; }
  .tab-panels article:not([hidden]) { animation: panel-in .45s cubic-bezier(.2,.8,.2,1) both; }

  .project-visual, .project-visual b, .project-visual::before { transition: transform .8s cubic-bezier(.2,.8,.2,1), filter .5s ease; }
  .project:hover .project-visual { transform: translateY(-6px); }
  .project:hover .project-visual::before { transform: scale(1.08) rotate(2deg); }
  .project:hover .project-visual b { transform: scale(1.08) rotate(-4deg); }
  .project-visual::after { position: absolute; inset: 0; background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.18) 48%, transparent 72%); content: ""; transform: translateX(-120%); transition: transform .8s ease; }
  .project:hover .project-visual::after { transform: translateX(120%); }

  .stats > div { transition: transform .3s ease, background .3s ease; }
  .stats > div:hover { transform: translateY(-5px); background: rgba(120,76,245,.06); }
  .faq details { transition: background .25s ease, padding-inline .25s ease; }
  .faq details:hover, .faq details[open] { padding-inline: 14px; background: rgba(255,255,255,.018); }
}

@keyframes rise-in {
  from { opacity: 0; transform: translate3d(0, 32px, 0); filter: blur(7px); }
  to { opacity: 1; transform: translate3d(0, 0, 0); filter: blur(0); }
}

@keyframes signal-in {
  from { opacity: 0; clip-path: inset(0 100% 0 0); }
  to { opacity: .55; clip-path: inset(0 0 0 0); }
}

@keyframes glow-breathe {
  50% { transform: scale(1.08) translate3d(1%, -2%, 0); filter: blur(36px); }
}

@keyframes panel-in {
  from { opacity: 0; transform: translate3d(18px, 0, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes marquee { to { transform: translateX(-50%); } }
