/* Small motions that complement the portfolio's editorial layout. */
@media (prefers-reduced-motion: no-preference) {
  .motion-ready .intro-tag,
  .motion-ready .intro h1,
  .motion-ready .intro-layout p,
  .motion-ready .portrait-wrap {
    animation: arrive 1.05s cubic-bezier(.2,.7,.2,1) both;
  }
  .motion-ready .intro h1 { animation-delay: .14s; }
  .motion-ready .intro-layout p:first-of-type { animation-delay: .32s; }
  .motion-ready .intro-layout p:nth-of-type(2),
  .motion-ready .portrait-wrap { animation-delay: .48s; }

  .motion-ready .reveal {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity 1.05s cubic-bezier(.2,.7,.2,1), transform 1.05s cubic-bezier(.2,.7,.2,1);
    transition-delay: var(--reveal-delay, 0ms);
  }
  .motion-ready .reveal.is-visible { opacity: 1; transform: translateY(0); }

  .hero-top .small-star,
  .intro-tag .star { display: inline-block; transform-origin: center; animation: slow-spin 12s linear infinite; }

  .project-art,
  .card,
  .chip,
  .interest,
  .badge,
  .small-star,
  .outline-star { transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, background-color .35s ease; }
  .project:hover .project-art { transform: translateY(-6px) rotate(-.5deg); box-shadow: 0 18px 35px #152c5b1a; }
  .project:has(a:focus-visible) .project-art { transform: translateY(-6px); box-shadow: 0 18px 35px #152c5b1a; }
  .card:hover { transform: translateY(-6px); box-shadow: 0 14px 28px #1d34691a; }
  .chip:hover,
  .interest:hover { transform: translateY(-3px); background-color: var(--pink, #fcddec); }
  .badge:hover { transform: rotate(-8deg) scale(1.05); }
  .section-title:hover .small-star,
  .section-head:hover .outline-star { transform: rotate(25deg); }
}
@keyframes slow-spin { to { transform: rotate(360deg); } }
@keyframes arrive {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1 !important; transform: none !important; }
}
