/* First-visit editorial choreography; controls respond immediately. */
.button,.nav-cta,.menu-toggle,.filter-button,.suggestions button,.map-pin,#lightbox-close,.work-card,.join-option{
 transition:transform var(--duration-press) var(--ease-out),background-color var(--duration-ui) ease,color var(--duration-ui) ease,border-color var(--duration-ui) ease;
}
.button:active,.nav-cta:active,.menu-toggle:active,.filter-button:active,.suggestions button:active,.map-pin:active,#lightbox-close:active{transform:scale(.97)}
@media(prefers-reduced-motion:no-preference){
 .nav>.wordmark,.nav>.menu-toggle{animation:nav-arrive 400ms var(--ease-out) both}
 .hero-line>span{animation:line-arrive 680ms var(--ease-out) both;animation-delay:120ms}
 .hero-line:nth-child(2)>span{animation-delay:180ms}
 .hero-line:nth-child(3)>span{animation-delay:240ms}
 .hero-line:nth-child(4)>span{animation-delay:300ms}
 .hero-summary{animation:copy-arrive 500ms var(--ease-out) 400ms both}
 .hero-actions{animation:copy-arrive 400ms var(--ease-out) 480ms both}
 .hero .portrait-main{animation:hero-unmask 800ms var(--ease-out) 540ms both}
 .hero .hero-photo{animation:photo-settle 1000ms var(--ease-out) 540ms both}
 .hero .portrait-small{animation:editorial-settle 650ms var(--ease-out) 650ms both}
 .page-hero h1{animation:title-unmask 600ms var(--ease-out) 100ms both}
 .page-hero>p:last-child{animation:copy-arrive 400ms var(--ease-out) 220ms both}
 .reveal-ready[data-reveal="media"]{clip-path:inset(0 0 100% 0 round var(--radius-media));transition:clip-path 700ms var(--ease-in-out);transition-delay:var(--reveal-delay,0ms)}
 .reveal-ready[data-reveal="media"] img{transform:scale(1.035);transition:transform 850ms var(--ease-out);transition-delay:var(--reveal-delay,0ms)}
 .editorial-card:nth-child(2) .reveal-ready[data-reveal="media"]{clip-path:inset(0 100% 0 0 round var(--radius-media))}
 .editorial-card:nth-child(3) .reveal-ready[data-reveal="media"]{clip-path:inset(0 0 0 100% round var(--radius-media))}
 .reveal-ready[data-reveal="media"].is-visible{clip-path:inset(0 0 0 0 round var(--radius-media))}
 .reveal-ready[data-reveal="media"].is-visible img{transform:scale(1)}
 .editorial-card .reveal-ready[data-reveal="media"].is-visible{clip-path:inset(0 0 0 0 round var(--radius-media))}
 .reveal-ready[data-reveal="card"]{opacity:0;transform:translateY(18px) scale(.98);transition:opacity 450ms ease,transform 600ms var(--ease-out);transition-delay:var(--reveal-delay,0ms)}
 .reveal-ready[data-reveal="card"].is-visible{opacity:1;transform:none}
 .reveal-ready[data-reveal="heading"]{clip-path:inset(0 100% 0 0);transition:clip-path 650ms var(--ease-out)}
 .reveal-ready[data-reveal="heading"].is-visible{clip-path:inset(0)}
}
@keyframes nav-arrive{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes line-arrive{from{transform:translateY(115%)}to{transform:translateY(0)}}
@keyframes copy-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes hero-unmask{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
@keyframes photo-settle{from{transform:scale(1.055)}to{transform:scale(1)}}
@keyframes editorial-settle{from{opacity:0;transform:translateY(12px) rotate(-10deg)}to{opacity:1;transform:translateY(0) rotate(-7deg)}}
@keyframes title-unmask{from{clip-path:inset(0 100% 0 0);transform:translateY(8px)}to{clip-path:inset(0);transform:none}}
@media(min-width:1101px) and (prefers-reduced-motion:no-preference){
 .nav-links{animation:nav-arrive 400ms var(--ease-out) 60ms both}
}
@media(max-width:1100px){
 .nav-links[data-enhanced]{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px) scale(.97);transform-origin:calc(100% - 36px) top;transition:opacity 180ms ease,transform 220ms var(--ease-out),visibility 220ms}
 .nav-links.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}
}
@media(max-width:700px) and (prefers-reduced-motion:no-preference){
 .hero-line>span{animation-duration:560ms}
 .hero .portrait-main{animation-duration:650ms}
 .reveal-ready[data-reveal="card"]{transform:translateY(10px);transition-duration:350ms,450ms}
 .reveal-ready[data-reveal="card"].is-visible{transform:none}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .hero-line>span,.hero-summary,.hero-actions,.hero .portrait-main,.hero .hero-photo,.hero .portrait-small,.page-hero h1,.page-hero>p,.nav>.wordmark,.nav>.menu-toggle,.nav-links{animation:none}
 [data-reveal]{clip-path:none!important;transform:none!important;opacity:1!important;transition:none!important}
 .button,.nav-cta,.menu-toggle,.filter-button,.suggestions button,.map-pin,#lightbox-close,.work-card,.join-option{transition:background-color 100ms ease,color 100ms ease}
 .button:active,.nav-cta:active,.menu-toggle:active,.filter-button:active,.suggestions button:active,.map-pin:active,#lightbox-close:active{transform:none}
 .button-label,.button-icon,.menu-icon,.gallery-grid img{transition:none}
 .nav-links,.nav-links[data-enhanced]{transition:opacity 100ms ease,visibility 100ms;transform:none}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:reduce){
 .button:hover,.nav-cta:hover,.work-card:hover,.gallery-open:hover img{transform:none}
}
