header{position:sticky;top:0;z-index:20;transition:height .2s,background .2s,box-shadow .2s;border-bottom-color:#67504455}header.is-scrolled{height:74px;background:#151311ed;backdrop-filter:blur(18px);box-shadow:0 10px 35px #0002}header .brand{transition:color .3s}header .brand:hover{color:var(--copper)}nav>a{position:relative}nav>a:not(.nav-contact):after{content:'';position:absolute;left:0;right:0;bottom:-8px;height:1px;background:var(--copper);transform:scaleX(0);transform-origin:left;transition:transform .3s}nav>a:hover:after{transform:scaleX(1)}.nav-contact{overflow:hidden;transition:background .3s,color .3s,transform .3s}.nav-contact:hover{background:var(--copper);color:#211b17;transform:translateY(-2px)}.nav-contact:hover span{color:inherit}.button span,.text-link span{display:inline-block;transition:transform .3s}.button:hover span,.text-link:hover span{transform:translate(3px,-3px)}
.hero h1 .title-line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}.hero h1 .title-inner{display:block}.hero-photo .hero-slide{position:absolute;inset:0;opacity:0;transform:scale(1.045);transition:opacity .5s ease,transform 3.5s linear;object-position:center 45%;height:100%;width:100%}.hero-photo .hero-slide.is-current{opacity:1;transform:scale(1)}.hero-photo .hero-slide:first-child{object-position:center 50%}.hero-photo .photo-caption{bottom:85px;transition:opacity .3s}.hero-photo .vertical-label{z-index:3;color:#f4ede5;text-shadow:0 1px 8px #0008}.hero-photo:after{inset:50% 0 0;pointer-events:none}.hero-controls{position:absolute;bottom:25px;left:35px;right:30px;z-index:4;display:flex;align-items:center;gap:11px}.slide-dot{border:0;padding:14px 0;background:transparent;flex:1;max-width:62px;position:relative}.slide-dot:before{content:'';display:block;height:2px;background:#fff5}.slide-dot:after{content:'';position:absolute;height:2px;background:#f4ede5;left:0;right:0;top:14px;transform:scaleX(0);transform-origin:left}.slide-dot[aria-pressed=true]:after{transform:scaleX(1)}.slide-count{font-size:10px;letter-spacing:2px;margin-left:8px;font-variant-numeric:tabular-nums}.motion-toggle{margin-left:auto;width:38px;height:38px;border-radius:50%;background:#15131180;border:1px solid #ffffff70;color:#fff;display:grid;place-items:center;font-size:13px;backdrop-filter:blur(4px)}.hero-photo{--pointer-x:0px;--pointer-y:0px}.hero-note .star{transition:transform .7s}.hero-note:hover .star{transform:rotate(90deg)}
@media(prefers-reduced-motion:no-preference){header .brand{animation:arrive .4s both}header nav{animation:arrive .4s .05s both}.hero .eyebrow{animation:arrive .4s .05s both}.hero .title-inner{animation:title-arrive .5s cubic-bezier(.2,.75,.25,1) both}.hero .title-line:nth-child(1) .title-inner{animation-delay:.08s}.hero .title-line:nth-child(2) .title-inner{animation-delay:.16s}.hero .intro{animation:arrive .4s .2s both}.hero-actions{animation:arrive .4s .28s both}.hero-note{animation:arrive .4s .35s both}.hero-photo{animation:photo-arrive .65s cubic-bezier(.2,.75,.25,1) both}.scroll-note span{display:inline-block;animation:nudge 1.8s 2}.reveal-pending{opacity:0;transform:translateY(26px);transition:opacity .8s,transform .8s}.reveal-pending.is-visible{opacity:1;transform:none}.card{animation:arrive .5s both;animation-delay:calc(var(--card-order,0)*35ms)}}
@keyframes arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes title-arrive{from{opacity:0;transform:translateY(108%) rotate(3deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@keyframes photo-arrive{from{opacity:0;clip-path:inset(0 0 0 100%)}to{opacity:1;clip-path:inset(0)}}@keyframes nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
body.motion-paused .hero-slide{transition:none;transform:scale(1)}body.motion-paused .hero *,body.motion-paused header *{animation-play-state:paused!important}
@media(max-width:650px){header.is-scrolled{height:68px}.hero-photo .photo-caption{left:23px;bottom:78px}.hero-controls{left:23px;right:23px;bottom:20px}.hero .title-inner{white-space:nowrap}.hero h1{font-size:clamp(55px,19vw,75px)}}
@media(prefers-reduced-motion:reduce){header,.hero-slide,.reveal-pending{transition:none!important;animation:none!important}.hero-photo .hero-slide{transform:none}.reveal-pending{opacity:1;transform:none}.hero *{animation:none!important}.motion-toggle{display:none}}
