/* Content stays visible by default; animations are added only when it enters view. */
.scroll-entrance{animation:section-arrive .38s ease-out var(--entrance-delay,0ms) both}
.hero-entrance{animation:section-arrive .42s ease-out var(--entrance-delay,0ms) both}
.hero-card-entrance{animation:hero-sheet-arrive .5s ease-out var(--entrance-delay,0ms) both}
.scroll-entrance:focus-within,.hero-entrance:focus-within,.hero-card-entrance:focus-within{animation:none}
@keyframes section-arrive{from{transform:translateY(8px)}to{transform:translateY(0)}}
@keyframes hero-sheet-arrive{from{transform:translateY(14px)}to{transform:translateY(0)}}
@media(max-width:650px){
  @keyframes section-arrive{from{transform:translateY(4px)}to{transform:translateY(0)}}
  @keyframes hero-sheet-arrive{from{transform:translateY(8px)}to{transform:translateY(0)}}
}
@media(prefers-reduced-motion:reduce){.scroll-entrance,.hero-entrance,.hero-card-entrance{animation:none!important;opacity:1!important;transform:none!important}}
@media print{.scroll-entrance,.hero-entrance,.hero-card-entrance{animation:none!important;opacity:1!important;transform:none!important}}
