/* Auverie motion layer */
.curtain{position:fixed;inset:0;z-index:100;background:var(--night);display:grid;place-items:center;transition:transform 1.1s cubic-bezier(.77,0,.18,1) .15s}
.curtain .cm{display:flex;flex-direction:column;align-items:center;gap:1.1rem;color:var(--gold-soft)}
.curtain svg{width:58px;height:58px}
.curtain svg *{stroke-dasharray:200;stroke-dashoffset:200;animation:draw 1.3s var(--ease) forwards}
.curtain .w{font-family:var(--font-display);letter-spacing:.6em;font-size:1.35rem;color:var(--ivory);opacity:0;animation:fadeup .9s var(--ease) .45s forwards;padding-left:.6em}
.curtain.lift{transform:translateY(-100%)}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fadeup{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

.progress{position:fixed;top:0;left:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--gold),var(--gold-soft));z-index:60;pointer-events:none}

header.site.float{position:fixed;background:rgba(14,26,34,.78);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);color:var(--ivory);animation:dropin .6s var(--ease);box-shadow:0 1px 0 rgba(216,191,147,.18)}
header.site.float .wrap{padding-top:1rem;padding-bottom:1rem}
@keyframes dropin{from{transform:translateY(-100%)}to{transform:none}}

/* hero entrance */
.hero video,.hero .poster{animation:heroZoom 9s cubic-bezier(.2,.6,.2,1) both}
@keyframes heroZoom{from{scale:1.12}to{scale:1}}
.hero .w-line{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em}
.hero .w-line>span{display:inline-block;transform:translateY(105%);filter:blur(6px);opacity:0;transition:transform 1.3s cubic-bezier(.2,.8,.2,1),filter 1.3s,opacity 1s}
.hero.play .w-line>span{transform:none;filter:none;opacity:1}
.hero h1 em .w-line>span{background:linear-gradient(100deg,#E9D3A6 0%,#F8EBCF 30%,#C9A46A 50%,#F8EBCF 70%,#E9D3A6 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 7s linear infinite}
@keyframes shimmer{from{background-position:100% 0}to{background-position:-150% 0}}
.hero .eyebrow,.hero p,.hero .cta-row,.hero-meta{opacity:0;transform:translateY(16px);transition:opacity 1.2s var(--ease),transform 1.2s var(--ease)}
.hero .eyebrow{letter-spacing:.5em;transition:opacity 1.4s var(--ease),letter-spacing 2s var(--ease),transform 1.2s var(--ease)}
.hero.play .eyebrow{opacity:1;transform:none;letter-spacing:.28em}
.hero.play p{opacity:1;transform:none;transition-delay:.9s}
.hero.play .cta-row{opacity:1;transform:none;transition-delay:1.15s}
.hero.play .hero-meta{opacity:1;transform:none;transition-delay:1.4s}
.scroll-cue{position:absolute;left:50%;bottom:1.6rem;z-index:3;width:1px;height:54px;background:rgba(244,239,230,.25);overflow:hidden}
.scroll-cue::after{content:"";position:absolute;left:0;top:-50%;width:1px;height:50%;background:var(--gold-soft);animation:cue 2.4s var(--ease) infinite}
@keyframes cue{to{top:100%}}
@media(max-width:900px){.scroll-cue{display:none}}

/* ribbon */
.ribbon{background:var(--night);color:var(--gold-soft);overflow:hidden;padding:1.5rem 0;border-top:1px solid rgba(216,191,147,.18);border-bottom:1px solid rgba(216,191,147,.18)}
.ribbon .track{display:flex;width:max-content;animation:marquee 60s linear infinite}
.ribbon span{font-family:var(--font-display);font-style:italic;font-size:clamp(1.3rem,1rem + 1.2vw,2rem);white-space:nowrap;padding:0 1.6rem;letter-spacing:.02em}
.ribbon span i{font-style:normal;color:var(--gold);padding-left:3.2rem;font-size:.7em;vertical-align:middle}
.ribbon:hover .track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}

/* image curtain reveals */
.frame.reveal,.card.reveal{opacity:1;transform:none}
.frame img{translate:0 var(--py,0px);transition:translate .2s linear}
.frame.reveal img,.card.reveal img{clip-path:inset(100% 0 0 0);scale:1.18}
.frame.reveal.in img,.card.reveal.in img{animation:unveil 1.6s cubic-bezier(.7,0,.2,1) forwards}
@keyframes unveil{to{clip-path:inset(0 0 0 0);scale:1}}
.card.reveal .cap{opacity:0;transform:translateY(14px);transition:opacity 1s var(--ease) .9s,transform 1s var(--ease) .9s}
.card.reveal.in .cap{opacity:1;transform:none}
.split .frame::before{transition:inset 1.6s var(--ease) .4s,opacity 1.2s .4s}
.split .frame.reveal:not(.in)::before{inset:0;opacity:0}

/* eyebrow hairline */
.reveal .eyebrow::before{content:"";display:inline-block;width:0;height:1px;background:var(--gold);vertical-align:middle;margin-right:0;transition:width 1.2s var(--ease) .3s,margin 1.2s var(--ease) .3s}
.reveal.in .eyebrow::before{width:2.4rem;margin-right:.9rem}

/* stagger children */
.stagger>*{opacity:0;transform:translateY(22px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.stagger.in>*{opacity:1;transform:none}

/* gold shimmer on buttons */
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);animation:gleam 5.5s ease-in-out 2.5s infinite}
@keyframes gleam{0%,70%{left:-60%}100%{left:130%}}

@media(prefers-reduced-motion:reduce){
 .curtain{display:none}
 .hero video,.hero .poster,.ribbon .track,.btn::after,.hero h1 em .w-line>span,.scroll-cue::after{animation:none}
 .hero .w-line>span,.hero .eyebrow,.hero p,.hero .cta-row,.hero-meta{transform:none;filter:none;opacity:1;transition:none}
 .frame.reveal img,.card.reveal img{clip-path:none;scale:1;animation:none}
 .card.reveal .cap,.stagger>*{opacity:1;transform:none}
}
html,body{overflow-x:clip}
