/* Aureon motion: slow curtains, precise lines, quiet movement. */
:root { --ease-aureon:cubic-bezier(.22,.8,.26,1); }
.reading-progress { position:fixed; inset:0 0 auto; height:1px; transform:scaleX(0); transform-origin:left; background:var(--gold); z-index:100; pointer-events:none; }
.editorial-photo { position:relative; margin:0; min-width:0; }
.photo-frame { position:relative; overflow:hidden; background:var(--elevated); isolation:isolate; }
.photo-frame::after { content:""; position:absolute; inset:0; border:1px solid color-mix(in srgb,var(--gold) 18%,transparent); pointer-events:none; }
.photo-media { display:block; width:100%; height:100%; object-fit:cover; object-position:var(--photo-position,center); filter:saturate(.52) contrast(.97); transform:translate3d(0,var(--photo-shift,0px),0) scale(1.07); transition:filter 1.2s,scale 1.8s var(--ease-aureon); }
.editorial-photo:hover .photo-media { filter:saturate(.72) contrast(1); scale:1.018; }
.photo-veil { position:absolute; inset:0; pointer-events:none; background:var(--surface); transform:scaleY(0); transform-origin:top; }
.editorial-photo figcaption { display:flex; align-items:center; gap:12px; color:var(--muted); font-size:10px; line-height:1.6; margin-top:16px; }
.photo-caption-rule { width:21px; height:1px; flex-shrink:0; background:var(--gold); opacity:.65; }
.hero-photo .photo-media { filter:saturate(.62) brightness(.86); }
.button,.header-cta { transform:translate3d(var(--mag-x,0px),var(--mag-y,0px),0); transition:transform .6s var(--ease-aureon),background .45s,color .45s,border-color .45s; }
.button > span:last-child { transition:transform .65s var(--ease-aureon); }
.button:hover > span:last-child { transform:translateX(3px); }
.header-cta:hover { border-color:var(--gold); }
.site-header { transition:background .6s,border-color .6s; }
.desktop-nav a { position:relative; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:0; bottom:5px; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .65s var(--ease-aureon); }
.desktop-nav a:hover::after,.desktop-nav a[aria-current=location]::after { transform:scaleX(1); }
.service-row::after { content:""; position:absolute; top:-1px; left:0; width:100%; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .9s var(--ease-aureon); }
.service-row:hover::after,.service-row:focus-within::after { transform:scaleX(1); }
.service-row::before { content:""; position:absolute; inset:0 -14px; z-index:-1; background:radial-gradient(ellipse at var(--pointer-x,50%) var(--pointer-y,50%),color-mix(in srgb,var(--gold) 7%,transparent),transparent 70%); opacity:0; transition:opacity .7s; }
.service-row.is-pointer-active::before { opacity:1; }
.service-row h3 { transition:color .6s; }
.service-row:hover h3,.service-row:focus-within h3 { color:var(--gold-light); }
.service-arrow { transition:transform .6s var(--ease-aureon); }
.service-arrow:hover { transform:translate(3px,-3px); }
.value-list li { transition:color .5s; }
.value-list li:hover { color:var(--gold-light); }
.value-tick { transition:transform .6s var(--ease-aureon); }
.value-list li:hover .value-tick { transform:translateX(3px); }
.js-reveal [data-reveal] { opacity:0; transform:translateY(23px); transition:opacity 1.05s var(--ease-aureon),transform 1.35s var(--ease-aureon); transition-delay:var(--reveal-delay,0ms); }
.js-reveal [data-reveal].is-visible { opacity:1; transform:translateY(0); }
.motion-ready .hero-title-line > span[data-reveal] { transform:translateY(30px); transition-duration:1.6s; }
.motion-ready .hero-title-line > span.is-visible { transform:translateY(0); }
.word-reveal { display:inline-block; }
.motion-ready [data-split] .word-reveal { opacity:0; transform:translateY(.2em); transition:opacity 1.05s var(--ease-aureon),transform 1.4s var(--ease-aureon); transition-delay:var(--word-delay,0ms); }
.motion-ready [data-split].is-visible .word-reveal { opacity:1; transform:translateY(0); }
.motion-ready [data-photo] .photo-frame { clip-path:inset(0 0 100% 0); transition:clip-path 1.9s var(--ease-aureon); transition-delay:var(--reveal-delay,0ms); }
.motion-ready [data-photo].is-visible .photo-frame { clip-path:inset(0); }
.motion-ready [data-photo] .photo-veil { transform:scaleY(1); transition:transform 1.8s var(--ease-aureon); }
.motion-ready [data-photo].is-visible .photo-veil { transform:scaleY(0); }
.motion-ready [data-photo] figcaption { opacity:0; transform:translateY(8px); transition:opacity 1.1s .6s,transform 1.4s var(--ease-aureon) .6s; }
.motion-ready [data-photo].is-visible figcaption { opacity:1; transform:none; }
.motion-ready .hero-photo .photo-frame { clip-path:inset(0 50% 0 50%); transition-duration:2.15s; }
.motion-ready .hero-photo.is-visible .photo-frame { clip-path:inset(0); }
.motion-ready .mobile-menu.is-opening { animation:aureon-menu .8s var(--ease-aureon) both; }
.motion-ready .mobile-menu.is-opening nav a { animation:aureon-menu-link .9s var(--ease-aureon) both; animation-delay:calc(.12s + var(--menu-index,0)*80ms); }
@keyframes aureon-menu { from { opacity:0; clip-path:inset(0 0 100% 0); } to { opacity:1; clip-path:inset(0); } }
@keyframes aureon-menu-link { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
@media(hover:none),(pointer:coarse) {
    .photo-media { transform:scale(1.025); }
    .editorial-photo:hover .photo-media { scale:1; }
    .button,.header-cta { transform:none; }
}
body[data-animations=false] *,body[data-animations=false] *::before,body[data-animations=false] *::after { animation:none!important; transition:none!important; }
body[data-animations=false] .photo-media { transform:none!important; scale:1!important; }
body[data-animations=false] .button > span:last-child,body[data-animations=false] .service-arrow,body[data-animations=false] .value-tick { transform:none!important; }
body[data-animations=false] .reading-progress { display:none; }
@media(prefers-reduced-motion:reduce) {
    .word-reveal,.js-reveal [data-reveal] { opacity:1!important; transform:none!important; }
    .editorial-photo .photo-frame { clip-path:none!important; }
    .editorial-photo .photo-media { transform:none!important; scale:1!important; }
    .editorial-photo figcaption { opacity:1!important; transform:none!important; }
    .photo-veil,.reading-progress { display:none!important; }
    .button,.header-cta { transform:none!important; }
    .button > span:last-child,.service-arrow,.value-tick { transform:none!important; }
}
@media print {
    .editorial-photo { break-inside:avoid; }
    .editorial-photo .photo-frame { clip-path:none!important; }
    .word-reveal,.js-reveal [data-reveal] { opacity:1!important; transform:none!important; }
    .photo-veil { display:none; }
}
