/* Shared interaction rhythm; no content is hidden when scripts are unavailable. */
:root{--motion-ease:cubic-bezier(.2,.7,.2,1)}
@media(prefers-reduced-motion:no-preference){
  .portfolio-visual img,.expanded-gallery img{transition:transform .75s var(--motion-ease)}
  .project-open,.project-read>span{transition:transform .4s var(--motion-ease),background .3s ease}
  .header-contact,.contact-action{transition:background .3s ease,color .3s ease,box-shadow .3s ease}
  .engagement-card{transition:border-color .35s ease,box-shadow .35s ease}
  .contact-action span,.header-contact span,.engagement-link span{display:inline-block;transform:translate(var(--arrow-x,0px),var(--arrow-y,0px));transition:transform .22s var(--motion-ease)}
  .site-header nav a::after{transition:transform .35s var(--motion-ease)}
  .site-header nav a:focus-visible::after{transform:scaleX(1)}
  .project-card-link:focus-visible .project-open{background:var(--gold);transform:rotate(7deg)}
  .project[open] .project-story{animation:story-enter .4s var(--motion-ease)}
  .hero-period{transition:transform .8s var(--motion-ease)}
  @keyframes story-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .project-card-link:hover .portfolio-visual img{transform:scale(1.035)}
  .expanded-gallery a{overflow:hidden}
  .expanded-gallery a:hover img{transform:scale(1.025)}
  .engagement-card:hover{border-color:#d5b855;box-shadow:0 14px 30px -22px #0008}
  .contact-action:hover,.header-contact:hover{box-shadow:0 8px 18px -12px #11182780}
  .hero h1:hover .hero-period{transform:rotate(81deg)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .contact-action span,.header-contact span,.engagement-link span{transform:none!important}
  .project-card-link:hover .portfolio-visual img,.case-gallery a:hover img,.expanded-gallery a:hover img{transform:none!important}
}
