/* Motion system: intentional, short, and disabled for reduced-motion preferences. */
:root { --motion-ease: cubic-bezier(.2,.75,.25,1); --motion-fast: 180ms; --motion-medium: 420ms; }
html { scroll-behavior: smooth; }
.motion-ready .reveal { opacity: 0; transform: translateY(18px); transition: opacity 620ms var(--motion-ease), transform 620ms var(--motion-ease); }
.motion-ready .reveal.is-visible { opacity: 1; transform: translateY(0); }
.motion-ready .reveal[data-delay="1"] { transition-delay: 70ms; }
.motion-ready .reveal[data-delay="2"] { transition-delay: 140ms; }
.motion-ready .reveal[data-delay="3"] { transition-delay: 210ms; }
.brand-mark { transition: transform 420ms var(--motion-ease), color var(--motion-fast), background var(--motion-fast); }
.brand:hover .brand-mark { transform: rotate(-10deg) scale(1.06); }
.button:active { transform: translateY(1px) scale(.985); }
.hero-portrait img { transition: transform 900ms var(--motion-ease), filter 500ms ease; }
.hero-portrait:hover img { transform: scale(1.035); }
.hero-portrait .portrait-caption { transition: transform 420ms var(--motion-ease); }
.hero-portrait:hover .portrait-caption { transform: translateY(-3px); }
.art-orbit { animation: orbit-drift 13s ease-in-out infinite alternate; }
.orbit-two { animation-delay: -6s; }
@keyframes orbit-drift { from { rotate: -7deg; scale: .96; } to { rotate: 10deg; scale: 1.04; } }
.search-box:focus-within { box-shadow: 0 0 0 4px color-mix(in srgb, var(--acid) 13%, transparent); }
.search-result-enter { animation: result-enter 330ms var(--motion-ease) both; }
@keyframes result-enter { from { opacity: 0; transform: translateY(10px) scale(.99); } to { opacity: 1; transform: translateY(0) scale(1); } }
.menu-toggle { transition: background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast); }
.menu-toggle[aria-expanded="true"] { background: var(--acid); color: var(--acid-ink); border-color: var(--acid); }
.form-feedback { transition: color var(--motion-fast), background var(--motion-fast); }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .motion-ready .reveal { opacity: 1; transform: none; }
}
