/* A quiet motion layer: all movement is decorative and respects reduced motion. */
:root{--ease-out:cubic-bezier(.18,.76,.25,1);--ease-in-out:cubic-bezier(.76,0,.24,1)}

.page-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:110;pointer-events:none}
.page-progress span{display:block;width:100%;height:100%;background:var(--gold);transform:scaleX(var(--page-progress,0));transform-origin:left center;will-change:transform}

.menu-icon i{transform-origin:center;transition:transform .4s var(--ease-out),width .4s var(--ease-out)}
.menu-active .menu-icon i:first-child{transform:translateY(7.5px) rotate(45deg)}
.menu-active .menu-icon i:last-child{width:100%;transform:translateY(-7.5px) rotate(-45deg)}
.menu-trigger:hover .menu-icon i:last-child{transform:translateX(6px)}
.menu-active .menu-trigger:hover .menu-icon i:last-child{transform:translateY(-7.5px) rotate(-45deg)}

.menu-panel{opacity:1;transform:none;clip-path:inset(0 0 100% 0);transition:clip-path .8s var(--ease-in-out),visibility 0s linear .8s}
.menu-panel.is-open{opacity:1;transform:none;clip-path:inset(0 0 0 0);transition:clip-path .8s var(--ease-in-out),visibility 0s}
.menu-panel__art{position:relative;overflow:hidden;background:#797665}
.menu-panel__art-layer{position:absolute;inset:0;background-position:center;background-size:cover;opacity:0;transform:scale(1.07);transition:opacity .7s ease,transform 1.3s var(--ease-out)}
.menu-panel__art-layer.is-active{opacity:1;transform:scale(1)}
.menu-panel__art:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(23,24,19,.43),transparent 35%);pointer-events:none}
.menu-panel__art-caption{position:absolute;z-index:1;bottom:55px;left:55px;color:white;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.menu-panel__art-caption em{display:block;margin-top:8px;font:italic 42px/1 Georgia,serif;letter-spacing:-.04em;text-transform:none}
.menu-panel__nav>a{opacity:0;transform:translateY(24px);transition:opacity .5s ease,transform .65s var(--ease-out),color .2s}
.menu-panel.is-open .menu-panel__nav>a{opacity:1;transform:translateY(0)}
.menu-panel.is-open .menu-panel__nav>a:nth-of-type(1){transition-delay:.18s}
.menu-panel.is-open .menu-panel__nav>a:nth-of-type(2){transition-delay:.23s}
.menu-panel.is-open .menu-panel__nav>a:nth-of-type(3){transition-delay:.28s}
.menu-panel.is-open .menu-panel__nav>a:nth-of-type(4){transition-delay:.33s}
.menu-panel.is-open .menu-panel__nav>a:nth-of-type(5){transition-delay:.38s}
.menu-panel.is-open .menu-panel__nav>a:nth-of-type(6){transition-delay:.43s}
.menu-panel.is-open .menu-panel__nav>a:nth-of-type(6){transition-delay:.43s}
.menu-panel.is-open .menu-panel__nav>a:hover{transform:translateX(12px)}

.hero-visual{inset:-40px 0;transform:translate3d(0,var(--hero-shift,0px),0);will-change:transform}
.hero-image{transition:opacity 1.15s ease,transform 7s linear}
.hero-image.active{transform:scale(1.015)}
.hero-content .hero-kicker{animation:hero-up .85s .12s both}
.hero-content h1{animation:hero-up 1s .26s both}
.hero-content p{animation:hero-up .9s .47s both}
.hero-content .round-link{animation:hero-up .9s .61s both}
.hero-bottom{animation:hero-fade 1s .9s both}
@keyframes hero-up{from{opacity:0;transform:translate3d(0,32px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes hero-fade{from{opacity:0}to{opacity:1}}

.reveal{transition:opacity .95s ease,transform 1s var(--ease-out);transition-delay:var(--reveal-delay,0ms);transform:translate3d(0,42px,0)}
.intro-statement{--reveal-delay:60ms}.intro-image{--reveal-delay:120ms}.intro-aside{--reveal-delay:210ms}
.spaces-copy{--reveal-delay:100ms}
.section-index.reveal{transform:none}
.section-index .index-line{transform:scaleX(0);transform-origin:left center;transition:transform 1.15s var(--ease-out) .16s}
.section-index.is-visible .index-line{transform:scaleX(1)}
.destination-art.reveal{clip-path:inset(0 0 15% 0);transition:opacity 1s ease,transform 1.1s var(--ease-out),clip-path 1.15s var(--ease-out);transition-delay:var(--reveal-delay,0ms)}
.destination-art.is-visible{clip-path:inset(0 0 0 0)}

.space-card__media img{transition:transform 1s var(--ease-out)}
.space-card:hover .space-card__media img{transform:scale(1.045)}

.destination-art__orbit{animation:orbit-turn 34s linear infinite}
.destination-art__orbit:before{content:"✳";position:absolute;left:50%;top:-17px;color:var(--gold);font:26px var(--serif)}
@keyframes orbit-turn{to{transform:scale(1.25) rotate(360deg)}}
.destination-ticker:hover span{animation-play-state:paused}

.gallery-dialog[open]{animation:dialog-enter .42s var(--ease-out) both}
@keyframes dialog-enter{from{opacity:0;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
.gallery-controls button,.gallery-close{transition:color .25s,background .25s,transform .25s}
.gallery-controls button:hover{color:var(--gold);transform:scale(1.15)}
.gallery-close:hover{background:var(--ivory);color:var(--ink);transform:rotate(90deg)}
.form-row label{transition:color .25s,transform .25s}
.form-row:focus-within label{color:var(--sand);transform:translateX(3px)}
.form-submit{transition:background .3s,transform .35s var(--ease-out),box-shadow .35s}
.form-submit:hover{transform:translateY(-3px);box-shadow:0 12px 25px rgba(24,26,20,.17)}

@media(max-width:700px){
  .hero-visual{inset:-24px 0}
  .menu-panel__nav>a:hover{transform:translateY(0)}
}
@media(prefers-reduced-motion:reduce){
  .hero-content .hero-kicker,.hero-content h1,.hero-content p,.hero-content .round-link,.hero-bottom,.hero-scroll span,.destination-art__orbit,.gallery-dialog[open]{animation:none!important}
  .hero-visual{transform:none!important}
  .hero-visual{inset:0}
  .destination-art.reveal{opacity:1;transform:none;clip-path:none}
  .section-index .index-line{transform:none}
}
