/* Motion follows the visitor's scroll and system preference. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
.scroll-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--lime);transform:scaleX(0);transform-origin:left;z-index:20;pointer-events:none}
header{transition:box-shadow .35s,background-color .35s}
header.is-scrolled{background:#f3ebe0f5;box-shadow:0 6px 24px #293f3a12}
nav>a:not(.btn){position:relative;padding-block:8px}
nav>a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--motion-ease)}
nav>a[aria-current="location"]::after,nav>a:hover::after{transform:scaleX(1)}
.btn,.mobile-cta{transition:transform .35s var(--motion-ease),box-shadow .35s,background-color .3s,filter .3s}
.btn:active,.mobile-cta:active{transform:scale(.97)}
.card{position:relative;transition:background-color .4s,box-shadow .4s}
.card::after{content:"";position:absolute;top:-1px;left:0;width:100%;height:2px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .55s var(--motion-ease)}
.card h3,.card .num{transition:color .3s,transform .4s var(--motion-ease)}
.photo-open img{transition:transform .85s var(--motion-ease)}
.photo-open:focus-visible img{transform:scale(1.035)}
.hero-photo{transform:scale(1.08) translateY(var(--hero-shift,0px));transform-origin:center}
.art-label{z-index:1}
.motion-ready [data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .8s var(--motion-ease),transform .9s var(--motion-ease);transition-delay:var(--reveal-delay,0ms)}
.motion-ready [data-reveal="image"]{transform:translateY(26px) scale(.97)}
.motion-ready [data-reveal].is-visible{opacity:1;transform:none}
.hero h1 .motion-word{display:inline-block;animation:word-arrive .9s var(--motion-ease) both;animation-delay:calc(var(--word-index) * 75ms + 80ms)}
@keyframes word-arrive{from{opacity:0;transform:translateY(24px) rotate(2deg)}to{opacity:1;transform:none}}
.photo-dialog[open]{animation:dialog-arrive .3s var(--motion-ease)}
@keyframes dialog-arrive{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media(hover:hover) and (pointer:fine){.btn:hover,.mobile-cta:hover{transform:translateY(-3px);box-shadow:0 10px 22px #293f3a20}.card:hover{background:#e9ddce55;box-shadow:0 12px 24px #293f3a08}.card:hover::after{transform:scaleX(1)}.card:hover .num{transform:translateX(6px)}.card:hover h3{color:#a95223}.photo-open:hover img{transform:scale(1.045)}}
@media(max-width:800px){.motion-ready [data-reveal]{transform:translateY(20px);transition-duration:.65s}.hero-photo{transform:scale(1.04)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scroll-progress{display:none}.motion-ready [data-reveal],.motion-ready [data-reveal="image"],.hero-photo,.photo-open img{opacity:1!important;transform:none!important}.hero h1 .motion-word,.photo-dialog[open]{animation:none}*,*::before,*::after{transition:none!important}}
