/* Restrained motion, progressively enhanced. Layout and reading order stay fixed. */
@media(prefers-reduced-motion:no-preference){
  .reveal-pending{transform:translateY(14px);transition:opacity .65s ease var(--reveal-delay,0ms),transform .65s cubic-bezier(.2,.7,.3,1) var(--reveal-delay,0ms)}
  .reveal-visible{opacity:1;transform:none}
  .reveal-pending:focus-within{opacity:1;transform:none;transition-delay:0ms}
  .nav-submenu,.mobile-group[open]>div{animation:menu-arrival .2s ease both}
  .community-entry[open] .community-entry-copy{animation:copy-arrival .3s ease both}
  .button,.text-link,.film-play-label{transition:background-color .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease}
  .text-link{text-decoration-color:transparent;transition:text-decoration-color .25s ease,color .25s ease}
  .text-link:hover,.text-link:focus-visible{text-decoration:underline;text-decoration-color:currentColor;text-underline-offset:7px}
  .button:hover{box-shadow:0 5px 18px #00234918}
  .film-cover img{transition:transform 1.2s cubic-bezier(.2,.7,.3,1)}
  .gallery figure img,.photo-pair figure img,.landscape-photo img,.campaign-spread figure img{clip-path:inset(1%);transition:clip-path 1s cubic-bezier(.2,.7,.3,1)}
  @keyframes menu-arrival{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
  @keyframes copy-arrival{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .film-cover:hover img{transform:scale(1.025)}
  .gallery figure:hover img,.photo-pair figure:hover img,.landscape-photo:hover img,.campaign-spread figure:hover img{clip-path:inset(0)}
}
@media(prefers-reduced-motion:reduce){
  .reveal-pending{opacity:1!important;transform:none!important}
  .gallery figure img,.photo-pair figure img,.landscape-photo img,.campaign-spread figure img{clip-path:none}
}

/* Editorial image movement: one short arrival, never a looping distraction. */
.home-page .hero{isolation:isolate;overflow:hidden}
.home-page .hero::before{inset:-2%;background:inherit;background-size:cover;background-position:center;z-index:-1}
.home-page .hero-copy,.home-page .hero-note{z-index:1}
@media(prefers-reduced-motion:no-preference){
 .home-page .hero::before{animation:property-arrival 4.8s cubic-bezier(.2,.65,.3,1) both}
 .home-page .hero-copy{animation:none}
 .home-page .hero-copy>div,.home-page .hero-copy>h1,.home-page .hero-copy>a{animation:editorial-arrival .9s cubic-bezier(.2,.7,.3,1) both}
 .home-page .hero-copy>h1{animation-delay:.12s}
 .home-page .hero-copy>.place{animation-delay:.22s}
 .home-page .hero-copy>.cta{animation-delay:.32s}
 .reveal-pending{transform:translateY(24px);transition:opacity .85s ease var(--reveal-delay,0ms),transform .85s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms)}
 .reveal-visible,.reveal-pending:focus-within{transform:none}
 .card{transition:box-shadow .4s ease,transform .4s ease}
 .card img{transition:transform 1.1s cubic-bezier(.2,.7,.3,1),filter .6s ease}
 .cta{transition:background-color .3s ease,color .3s ease,border-color .3s ease}
 .cta:hover,.cta:focus-visible{background:#fff;color:#0d223f;border-color:#fff}
 @keyframes property-arrival{from{transform:scale(1.055)}to{transform:scale(1)}}
 @keyframes editorial-arrival{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .card:hover,.card:focus-within{transform:translateY(-4px);box-shadow:0 16px 35px #0d223f12}
 .card:hover img,.card:focus-within img{transform:scale(1.035);filter:brightness(1.035)}
}
@media(prefers-reduced-motion:reduce){.home-page .hero::before{transform:none}.home-page .hero-copy>*{animation:none!important;opacity:1;transform:none}}
