/* Cinematic motion, with readable fallbacks and a visible pause control. */
:root{--photo-radius:34px}
html{scroll-padding-top:120px}
.site-header{position:sticky;top:0;z-index:30;transition:box-shadow .35s ease}
.site-header.is-scrolled{box-shadow:0 5px 26px #1111110f}
.site-header:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--garnet);transform:scaleX(var(--page-progress,0));transform-origin:left;pointer-events:none}
.skip{z-index:50}
.hero,.page-photo-hero,.split-hero-image{overflow:hidden;border-radius:0}
.portrait-frame,.community-photo,.story-photo{border-radius:var(--photo-radius);overflow:hidden;isolation:isolate}
.split-hero-image{isolation:isolate}
.story-photo{height:500px;background:var(--gray)}
.story-photo img{width:100%;height:100%;object-fit:cover}
.hero-line{display:block;overflow:hidden;padding:.12em .06em .15em;margin:-.12em -.06em -.15em}
.hero-word{display:block}
.motion-active .parallax-image{transform:translate3d(0,var(--parallax-y,0px),0) scale(var(--image-scale,1.3));will-change:transform}
.motion-active .portrait-frame .parallax-image,.motion-active .split-hero-image .parallax-image{--image-scale:1.16}
.motion-active .opening-image{animation:cinematic-drift 16s ease-in-out infinite alternate}
.motion-active .parallax-image.resolution-limited{--image-scale:1.08;transform:translate3d(0,var(--parallax-y,0px),0) scale(1.08)}
.motion-active .opening-image.resolution-limited{animation-name:gentle-drift}
@keyframes gentle-drift{from{scale:1;translate:-.4% 0}to{scale:1.02;translate:.4% -.3%}}
.motion-active .hero-content,.motion-active .photo-hero-copy{transform:translate3d(0,var(--copy-y,0px),0)}
.motion-active .motion-enter{animation:editorial-enter 1.35s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--entry-delay,0ms)}
.motion-active .hero-word{animation-name:headline-enter;animation-duration:1.6s}
.motion-active .motion-reveal{opacity:0;transform:translate3d(var(--reveal-x,0px),var(--reveal-y,60px),0);transition:opacity .95s ease,transform 1.25s cubic-bezier(.16,1,.3,1),clip-path 1.35s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}
.motion-active .motion-reveal.photo-reveal{clip-path:inset(0 0 18% 0 round var(--photo-radius));--reveal-y:38px}
.motion-active .motion-reveal.is-visible,.motion-active .motion-reveal:focus-within{opacity:1;transform:none}
.motion-active .motion-reveal.photo-reveal.is-visible{clip-path:inset(0 0 0 0 round var(--photo-radius))}
.motion-active .hero-bottom a span{display:inline-block;animation:scroll-cue 2.2s ease-in-out infinite}
.button,.header-contact{transition:background .3s,color .3s,transform .35s ease,box-shadow .35s ease}
.button span,.header-contact span,.hero-link span{display:inline-block;transition:transform .35s ease}
.community-photo img{transition:transform 1.1s cubic-bezier(.2,.65,.3,1)}
.motion-active .community-photo img.parallax-image{transform:translate3d(0,var(--parallax-y,0px),0) scale(var(--image-scale,1.3));transition:scale .8s cubic-bezier(.2,.65,.3,1)}
.round-arrow{transition:background .3s,color .3s,transform .4s ease}
.service-list details[open] .service-content{animation:editorial-enter .55s ease both}
.motion-toggle{border:0;background:none;font:9px var(--sans);padding:12px 0;color:var(--garnet);cursor:pointer;min-height:44px;border-bottom:1px solid transparent}
.motion-toggle:hover{border-bottom-color:currentColor}
.footer-tools{display:flex;align-items:center;gap:26px;flex-shrink:0}
.hero-tools{display:flex;align-items:center;gap:26px}
.hero-tools .motion-toggle,.photo-motion-toggle{font:9px var(--sans);color:white;letter-spacing:.02em;display:inline-flex;align-items:center;gap:9px}
.hero-tools .motion-toggle:before,.photo-motion-toggle:before{content:"Ⅱ";font-size:12px}
.hero-tools .motion-toggle[aria-pressed=true]:before,.photo-motion-toggle[aria-pressed=true]:before{content:"▷"}
.photo-motion-toggle{position:absolute;bottom:15px;right:56px}
.motion-toggle[hidden]{display:none}
.motion-toggle:disabled{cursor:default;opacity:.8}
.count-accessible{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.stat strong .count-display,.stat strong .count-number{font:inherit;letter-spacing:inherit}
.stat strong .count-display{white-space:nowrap}
.stat strong .count-number{font-variant-numeric:tabular-nums;display:inline-block;min-width:var(--count-width);text-align:left}
@keyframes editorial-enter{from{opacity:0;translate:0 44px}to{opacity:1;translate:0 0}}
@keyframes headline-enter{from{opacity:0;translate:0 110%;rotate:2deg}to{opacity:1;translate:0 0;rotate:0deg}}
@keyframes cinematic-drift{from{scale:1.01;translate:-1.2% 0}to{scale:1.11;translate:1.2% -1%}}
@keyframes scroll-cue{0%,100%{translate:0 -4px}55%{translate:0 5px}}
@media(hover:hover) and (pointer:fine){
 .button:hover,.header-contact:hover{transform:translateY(-3px);box-shadow:0 10px 26px #1111111c}
 .button:hover span,.header-contact:hover span,.hero-link:hover span{transform:translate(4px,-4px)}
 .community:hover .round-arrow,.community:focus-visible .round-arrow{transform:rotate(45deg) scale(1.08)}
 .motion-active .community:hover .parallax-image,.motion-active .community:focus-visible .parallax-image{scale:1.035}
}
@media(max-width:760px){
 :root{--photo-radius:26px}
 html{scroll-padding-top:96px}
 .story-photo{height:350px}
 .mobile-nav{position:fixed;top:80px;z-index:29}
 .motion-active .parallax-image{transform:none;will-change:auto}
 .motion-active .community-photo img.parallax-image{transform:none}
 .motion-active .hero-image,.motion-active .page-photo-hero>img{transform:translate3d(0,var(--parallax-y,0px),0) scale(1.12)}
 .motion-active .opening-image{animation:mobile-drift 14s ease-in-out infinite alternate}
 .motion-active .hero-image.resolution-limited,.motion-active .page-photo-hero>img.resolution-limited{transform:translate3d(0,var(--parallax-y,0px),0) scale(1.08);animation-name:gentle-drift}
 .motion-active .community-photo img.resolution-limited,.motion-active .portrait-frame img.resolution-limited,.motion-active .story-photo img.resolution-limited,.motion-active .split-hero-image img.resolution-limited{transform:none}
 .motion-active .motion-enter{animation-duration:1s}
 .motion-active .motion-reveal{--reveal-x:0px!important;--reveal-y:34px!important;transition-duration:.95s}
 .motion-active .motion-reveal.is-visible,.motion-active .motion-reveal:focus-within{transform:none}
 .hero-bottom{align-items:flex-end;gap:10px}
 .hero-bottom>span{max-width:105px;line-height:1.8}
 .hero-tools{align-items:flex-end;flex-direction:column;gap:0}
 .hero-tools .motion-toggle{min-height:36px;font-size:8px;padding:7px 0}
 .photo-motion-toggle{right:24px;bottom:52px}
 .footer-tools{gap:16px;align-items:flex-end;flex-direction:column}
 .motion-toggle{font-size:8px;padding:4px 0;min-height:36px}
 .stat strong{font-size:clamp(28px,8.7vw,36px)}
 .stat strong .count-display>span:not(.count-number){font-size:.67em}
}
@keyframes mobile-drift{from{scale:1;translate:-.6% 0}to{scale:1.055;translate:.6% 0}}
html.motion-reduced{scroll-behavior:auto}
.motion-reduced .parallax-image,.motion-reduced .motion-reveal,.motion-reduced .motion-enter,.motion-reduced .hero-content,.motion-reduced .photo-hero-copy{opacity:1!important;transform:none!important;translate:none!important;scale:none!important;rotate:none!important;clip-path:none!important;will-change:auto!important}
.motion-reduced *,.motion-reduced *:before,.motion-reduced *:after{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .parallax-image,.motion-reveal,.motion-enter,.hero-content,.photo-hero-copy{opacity:1!important;transform:none!important;translate:none!important;scale:none!important;rotate:none!important;clip-path:none!important;will-change:auto!important}
}
@media print{.motion-reveal,.motion-enter{opacity:1!important;transform:none!important;translate:none!important;clip-path:none!important}.site-header{position:relative}.motion-toggle{display:none}}
