:root{
  --charcoal:#252525; --charcoal-deep:#141414; --taupe:#765A4A;
  --beige:#CEB6A4; --ivory:#EEDECF; --gold:#D2A678;
  --ease:cubic-bezier(0.25,0.1,0.25,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--charcoal-deep);color:var(--ivory);font-family:'Montserrat',sans-serif;font-weight:300;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;cursor:auto}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-weight:600;text-transform:uppercase;line-height:1.08;letter-spacing:.04em}
.eyebrow{display:inline-block;font-size:11px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}
.lead{font-size:clamp(1rem,1.4vw,1.18rem);color:rgba(238,222,207,.82)}
.container{max-width:1180px;margin:0 auto;padding:0 6vw}
.section{padding:clamp(5rem,11vh,9rem) 0}
.section--light{background:#D0BC96;color:var(--charcoal-deep)}
.section--light .lead{color:rgba(20,20,20,.72)}
.section--light .eyebrow{color:var(--charcoal-deep)}
.section--light .serif-accent{color:var(--taupe)}
.section--taupe{background:#D0BC96;color:var(--charcoal-deep)}
.section--taupe .eyebrow{color:var(--charcoal-deep)}
.serif-accent{font-family:'Cormorant Garamond',serif;font-style:italic;text-transform:none;letter-spacing:0;color:var(--gold)}

/* page fade transition */
body{opacity:0;transition:opacity .6s var(--ease)}
body.loaded{opacity:1}
body.leaving{opacity:0}


/* nav */
.nav{position:fixed;top:0;left:0;width:100%;z-index:50;transition:background .4s var(--ease),backdrop-filter .4s var(--ease),padding .4s var(--ease);padding:1.6rem 0}
.nav.scrolled{background:rgba(20,20,20,.9);backdrop-filter:blur(12px);padding:1rem 0}
.nav__inner{max-width:1180px;margin:0 auto;padding:0 6vw;display:flex;align-items:center;justify-content:space-between}
.nav__logo{font-weight:600;letter-spacing:.34em;text-transform:uppercase;font-size:1.05rem;color:var(--ivory)}
.nav__links{display:flex;align-items:center;gap:2.1rem}
.nav__links a{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ivory);opacity:.85;position:relative;padding:.3rem 0;transition:opacity .3s}
.nav__links a.active{opacity:1;color:var(--gold)}
.nav__links a:hover{opacity:1}
.nav__links a:not(.btn):not(.lang)::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--gold);transition:width .35s var(--ease)}
.nav__links a:not(.btn):not(.lang):hover::after{width:100%}
.lang{font-weight:500;opacity:.6}
.btn{display:inline-flex;align-items:center;gap:.6rem;border:1px solid var(--gold);color:var(--gold);padding:.85rem 1.7rem;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;transition:all .4s var(--ease);background:transparent;cursor:auto}
.btn:hover{background:var(--gold);color:var(--charcoal-deep)}
.btn .arrow{transition:transform .4s var(--ease)}
.btn:hover .arrow{transform:translateX(5px)}
.section--light .btn{border-color:var(--taupe);color:var(--taupe)}
.section--light .btn:hover{background:var(--taupe);color:var(--ivory)}

/* hero */
.hero{position:relative;height:100vh;min-height:640px;display:flex;align-items:center;overflow:hidden}
.hero--inner{height:78vh;min-height:520px}
.hero__media{position:absolute;inset:-8% 0;z-index:0;will-change:transform}
.hero__media video,.hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,20,20,.8),rgba(20,20,20,.35) 60%,rgba(20,20,20,.6))}
.hero__content{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:0 6vw;width:100%}
.hero h1{font-size:clamp(2.6rem,6.4vw,5.6rem);margin:1.4rem 0 1.6rem;letter-spacing:.02em}
.hero .lead{max-width:32ch}
.hero__cta{display:flex;align-items:center;gap:2rem;margin-top:2.6rem;flex-wrap:wrap}
.link-line{font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ivory);position:relative;padding-bottom:.35rem;cursor:auto}
.link-line::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--gold);transform:scaleX(.4);transform-origin:left;transition:transform .4s var(--ease)}
.link-line:hover::after{transform:scaleX(1)}
.hero__scroll{position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);z-index:2;font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:var(--beige);opacity:.8}
.hero__scroll::before{content:"";display:block;width:1px;height:46px;background:var(--gold);margin:0 auto .8rem;animation:scrollline 2.4s var(--ease) infinite}
@keyframes scrollline{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* manifesto */
.manifesto{text-align:center}
.manifesto h2{font-size:clamp(2rem,4.6vw,3.6rem);max-width:18ch;margin:1.5rem auto 0}
.manifesto .lead{max-width:60ch;margin:2rem auto 0}

/* pillars */
.page-label{margin-bottom:2.6rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.card{position:relative;display:block;overflow:hidden;background:var(--charcoal);cursor:auto}
.card__img{aspect-ratio:4/5;overflow:hidden;position:relative}
.card__img img{transition:transform 1.1s var(--ease)}
.card:hover .card__img img{transform:scale(1.07)}
.card__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(20,20,20,.85));z-index:1}
.card__body{position:absolute;left:0;bottom:0;z-index:2;padding:2rem;width:100%;transition:transform .5s var(--ease)}
.card:hover .card__body{transform:translateY(-6px)}
.card__body .num{font-size:.72rem;letter-spacing:.3em;color:var(--gold)}
.card__body h3{font-size:1.45rem;margin:.6rem 0 .35rem}
.card__body p{font-size:.92rem;color:rgba(238,222,207,.78)}

/* split rows */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.media--landscape{aspect-ratio:4/3;overflow:hidden;position:relative}
.media--landscape img{transform:scale(1.12);transition:transform 1.4s var(--ease),clip-path 1.4s var(--ease)}
.media--landscape.in img{transform:scale(1)}
.grid-2 h2{font-size:clamp(1.8rem,3.6vw,2.8rem);margin-bottom:0}

/* numbered narrative (experience) */
.story{display:grid;gap:2px;margin-top:3rem}
.story__row{display:grid;grid-template-columns:90px 1fr;gap:2rem;padding:2.4rem 0;border-top:1px solid rgba(206,182,164,.16);align-items:start}
.story__row .num{font-size:.78rem;letter-spacing:.3em;color:var(--gold);padding-top:.4rem}
.story__row h3{font-size:1.5rem;margin-bottom:.7rem}
.story__row p{color:rgba(238,222,207,.78);max-width:52ch}

/* gallery strip */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:3rem}
.gallery .media--landscape{aspect-ratio:3/4}

/* marquee */
.marquee{overflow:hidden;border-top:1px solid rgba(206,182,164,.16);border-bottom:1px solid rgba(206,182,164,.16);padding:1.5rem 0;background:var(--charcoal-deep)}
.marquee__track{display:flex;gap:1.6rem;white-space:nowrap;animation:scroll 32s linear infinite;width:max-content}
.marquee__track span{font-size:1.1rem;letter-spacing:.26em;text-transform:uppercase;color:rgba(238,222,207,.5)}
.marquee__track .dot{color:var(--gold)}
@keyframes scroll{to{transform:translateX(-50%)}}

/* form */
.form{display:grid;gap:1.6rem}
.field label{display:block;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(46,40,40,.6);margin-bottom:.5rem}
.field input,.field select{width:100%;border:none;border-bottom:1px solid rgba(118,90,74,.4);background:transparent;padding:.6rem 0;font-family:inherit;font-size:1rem;color:var(--charcoal-deep);transition:border-color .3s;cursor:auto}
.field input:focus,.field select:focus{outline:none;border-color:var(--gold)}
.btn--solid{background:var(--taupe);color:var(--ivory);border-color:var(--taupe);justify-content:center}
.btn--solid:hover{background:var(--charcoal-deep);border-color:var(--charcoal-deep);color:var(--ivory)}
.form__note{font-size:.8rem;color:rgba(46,40,40,.55)}

/* teaser */
.teaser{text-align:center}
.teaser h2{font-size:clamp(2rem,4.4vw,3.4rem);margin-bottom:2.4rem}

/* footer */
.footer{background:var(--charcoal-deep);padding:5rem 0 2.5rem;border-top:1px solid rgba(206,182,164,.14)}
.footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:2.5rem}
.footer__logo{font-weight:600;letter-spacing:.32em;text-transform:uppercase}
.footer__tagline{margin-top:1rem;font-size:.9rem;color:rgba(238,222,207,.6);max-width:24ch}
.footer h4{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:1.2rem;font-weight:500}
.footer ul{list-style:none}
.footer li{margin-bottom:.7rem;font-size:.9rem;color:rgba(238,222,207,.72)}
.footer li a:hover{color:var(--ivory)}
.footer p{font-size:.9rem;color:rgba(238,222,207,.72)}
.footer__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-top:3.5rem;padding-top:1.8rem;border-top:1px solid rgba(206,182,164,.14);font-size:.76rem;letter-spacing:.05em;color:rgba(238,222,207,.5)}

/* reveal */
.reveal{opacity:0;transform:translateY(42px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal[data-delay="1"]{transition-delay:.12s}.reveal[data-delay="2"]{transition-delay:.24s}.reveal[data-delay="3"]{transition-delay:.36s}.reveal[data-delay="4"]{transition-delay:.48s}
.line{height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform 1s var(--ease)}
.line.in{transform:scaleX(1)}

/* wa float */
.wa{position:fixed;right:1.6rem;bottom:1.6rem;z-index:60;width:54px;height:54px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.3);cursor:auto}
.wa svg{width:28px;height:28px;fill:#fff}

.note-banner{position:fixed;top:0;left:0;width:100%;z-index:80;background:var(--gold);color:var(--charcoal-deep);text-align:center;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;padding:.45rem;font-weight:500}

@media(max-width:860px){
  .nav__links{gap:1rem;font-size:.6rem}
  .nav__links a{font-size:.6rem;letter-spacing:.12em}
  .grid-3,.gallery{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .story__row{grid-template-columns:60px 1fr;gap:1rem}
  .footer__grid{grid-template-columns:1fr 1fr}
}

/* ===== v3 additions ===== */
.nav__login{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;opacity:.7}
.nav__login.active{opacity:1;color:var(--gold)}

/* auth (member login) */
.auth-wrap{max-width:480px;margin:0 auto}
.auth-card{background:var(--charcoal);border:1px solid rgba(206,182,164,.16);padding:2.6rem;border-radius:2px}
.auth-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:1px solid rgba(206,182,164,.16)}
.auth-tab{flex:1;background:none;border:none;color:rgba(238,222,207,.6);font-family:inherit;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;padding:0 0 1rem;cursor:auto;position:relative;transition:color .3s}
.auth-tab.active{color:var(--gold)}
.auth-tab.active::after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:1px;background:var(--gold)}
.auth-pane{display:none;animation:fade .5s var(--ease)}
.auth-pane.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.auth-field{margin-bottom:1.4rem}
.auth-field label{display:block;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:.55rem}
.auth-field input{width:100%;border:none;border-bottom:1px solid rgba(206,182,164,.3);background:transparent;padding:.6rem 0;font-family:inherit;font-size:1rem;color:var(--ivory);transition:border-color .3s;cursor:auto}
.auth-field input:focus{outline:none;border-color:var(--gold)}
.auth-card .btn{width:100%;justify-content:center;margin-top:.6rem}
.auth-alt{text-align:center;margin-top:1.6rem;font-size:.82rem;color:rgba(238,222,207,.6)}
.auth-alt a{color:var(--gold)}
.auth-note{text-align:center;margin-top:2rem;font-size:.72rem;letter-spacing:.06em;color:rgba(238,222,207,.45)}

/* booking */
.booking{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,4vw,3.5rem);align-items:start}
.book-step{margin-bottom:2.4rem}
.book-step__label{display:flex;align-items:center;gap:.8rem;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(46,40,40,.55);margin-bottom:1.1rem}
.book-step__num{width:24px;height:24px;border:1px solid var(--taupe);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--taupe)}
.chips{display:flex;flex-wrap:wrap;gap:.6rem}
.chip{border:1px solid rgba(118,90,74,.35);background:transparent;color:var(--charcoal-deep);padding:.7rem 1.1rem;font-family:inherit;font-size:.82rem;letter-spacing:.04em;cursor:auto;transition:all .25s var(--ease);border-radius:2px}
.chip:hover{border-color:var(--gold)}
.chip.selected{background:var(--taupe);color:var(--ivory);border-color:var(--taupe)}
.chip--time{padding:.6rem .9rem;font-variant-numeric:tabular-nums}
.svc{display:flex;justify-content:space-between;align-items:center;width:100%}
.svc small{color:rgba(46,40,40,.5);font-size:.72rem}
.chip.selected .svc small{color:rgba(238,222,207,.7)}
/* calendar */
.cal{border:1px solid rgba(118,90,74,.2);border-radius:2px;padding:1.1rem;max-width:340px}
.cal__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.9rem}
.cal__head button{background:none;border:none;color:var(--taupe);font-size:1.1rem;cursor:auto;padding:.2rem .6rem}
.cal__title{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--charcoal-deep)}
.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal__dow{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(46,40,40,.4);text-align:center;padding:.4rem 0}
.cal__day{aspect-ratio:1;border:none;background:none;font-family:inherit;font-size:.82rem;color:var(--charcoal-deep);cursor:auto;border-radius:50%;transition:all .2s}
.cal__day:hover:not(:disabled){background:rgba(210,166,124,.25)}
.cal__day.selected{background:var(--taupe);color:var(--ivory)}
.cal__day:disabled{color:rgba(46,40,40,.22);cursor:default}
.cal__day.empty{visibility:hidden}
/* summary */
.summary{background:var(--charcoal);color:var(--ivory);padding:2rem;border-radius:2px;position:sticky;top:6rem}
.summary h3{font-size:1rem;letter-spacing:.2em;margin-bottom:1.4rem;color:var(--gold)}
.summary__row{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid rgba(206,182,164,.14);font-size:.86rem}
.summary__row span:first-child{color:rgba(238,222,207,.55);letter-spacing:.04em}
.summary__row span:last-child{text-align:right;color:var(--ivory)}
.summary .field{margin-top:1.4rem}
.summary .field label{color:var(--gold)}
.summary .field input{color:var(--ivory);border-bottom-color:rgba(206,182,164,.3)}
.summary .btn{width:100%;justify-content:center;margin-top:1.6rem;border-color:var(--gold);color:var(--gold)}
.summary .btn:hover{background:var(--gold);color:var(--charcoal-deep)}
.confirm{text-align:center;padding:3rem 1rem;display:none}
.confirm.show{display:block;animation:fade .6s var(--ease)}
.confirm__icon{width:64px;height:64px;border:1px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.6rem;font-size:1.6rem;color:var(--gold)}
.confirm h3{font-size:1.4rem;margin-bottom:1rem}
.confirm p{color:rgba(238,222,207,.78);max-width:40ch;margin:0 auto}
.confirm .tag{color:var(--gold)}

/* plans */
.plans{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;margin-top:1rem}
.plan{border:1px solid rgba(206,182,164,.2);padding:2.6rem;border-radius:2px;text-align:left;position:relative;transition:border-color .4s var(--ease),transform .4s var(--ease)}
.plan:hover{border-color:var(--gold);transform:translateY(-6px)}
.plan--featured{border-color:var(--gold)}
.plan__badge{position:absolute;top:1.4rem;right:1.4rem;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--charcoal-deep);background:var(--gold);padding:.3rem .7rem;border-radius:2px}
.plan__name{font-size:.8rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:1.2rem}
.plan__price{font-size:2.6rem;font-weight:600;letter-spacing:.01em;line-height:1}
.plan__price small{display:block;font-size:.8rem;font-weight:300;letter-spacing:.1em;color:rgba(238,222,207,.55);margin-top:.6rem;text-transform:uppercase}
.plan__list{list-style:none;margin:1.8rem 0;display:grid;gap:.8rem}
.plan__list li{font-size:.88rem;color:rgba(238,222,207,.8);padding-left:1.4rem;position:relative}
.plan__list li::before{content:"—";position:absolute;left:0;color:var(--gold)}
@media(max-width:860px){.booking{grid-template-columns:1fr}.summary{position:static}.plans{grid-template-columns:1fr}}

/* ===== v4 — interactive hero ===== */
.hero--home .hero__media.rich{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero--home .hero__frame{position:absolute;inset:-6%;will-change:transform;transition:transform .25s cubic-bezier(.22,.61,.36,1)}
.hero--home .hero__frame video,.hero--home .hero__frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:kenburns 28s ease-in-out infinite}
@keyframes kenburns{0%{transform:scale(1.05)}50%{transform:scale(1.14)}100%{transform:scale(1.05)}}
.hero--home .hero__media.rich::after{content:"";position:absolute;inset:0;z-index:3;background:linear-gradient(90deg,rgba(20,20,20,.82),rgba(20,20,20,.34) 58%,rgba(20,20,20,.62))}
.hero__haze{position:absolute;inset:0;z-index:2;pointer-events:none;background:
  radial-gradient(40% 50% at 22% 60%,rgba(210,166,124,.16),transparent 70%),
  radial-gradient(45% 55% at 78% 35%,rgba(118,90,74,.22),transparent 72%);
  filter:blur(8px);animation:haze 24s ease-in-out infinite alternate}
@keyframes haze{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(3%,-2%,0) scale(1.08)}100%{transform:translate3d(-2%,2%,0) scale(1.04)}}
.hero__grain{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:200px 200px;animation:grain .6s steps(3) infinite}
@keyframes grain{0%{transform:translate(0,0)}33%{transform:translate(-4%,2%)}66%{transform:translate(3%,-3%)}100%{transform:translate(0,0)}}
.hero__particles{position:absolute;inset:0;z-index:4;pointer-events:none}
.hero__vignette{position:absolute;inset:0;z-index:5;pointer-events:none;box-shadow:inset 0 0 220px 60px rgba(20,16,16,.7);animation:breathe 9s ease-in-out infinite}
@keyframes breathe{0%,100%{opacity:.7}50%{opacity:1}}
.hero__light{position:absolute;top:0;left:0;z-index:6;width:620px;height:620px;margin:-310px 0 0 -310px;pointer-events:none;border-radius:50%;
  background:radial-gradient(circle,rgba(210,166,124,.22),rgba(210,166,124,.07) 38%,transparent 64%);
  mix-blend-mode:screen;opacity:0;transition:opacity .5s var(--ease);will-change:transform}
.hero--home:hover .hero__light{opacity:1}
.hero--home .hero__content{z-index:7;will-change:transform}
.hero--home .hero__scroll{z-index:7}
/* kinetic headline */
.kinetic{display:inline-block;position:relative;min-width:1ch}
.kinetic__l{display:inline-block;opacity:0;transform:translateY(.5em) rotateX(-40deg);transform-origin:bottom;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.kinetic__l.in{opacity:1;transform:none}
.kinetic__l.out{opacity:0;transform:translateY(-.45em);transition:opacity .35s var(--ease),transform .35s var(--ease)}
.kinetic::after{content:"";position:absolute;left:0;bottom:-.12em;height:3px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;animation:kline 4s ease-in-out infinite}
@keyframes kline{0%,8%{transform:scaleX(0)}20%,72%{transform:scaleX(1)}88%,100%{transform:scaleX(0);transform-origin:right}}

/* ===== v5 — silhouette hero + logo ===== */
.hero--home .hero__media.rich{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero--home .hero__media.rich video,.hero--home .hero__media.rich img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:none;transform:none}
.hero--home .hero__media.rich::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(20,20,20,.88),rgba(20,20,20,.4) 55%,rgba(20,20,20,.5));box-shadow:inset 0 0 220px 60px rgba(20,16,16,.55)}
.hero__logo{width:clamp(150px,16vw,210px);height:auto;margin:0 0 1.6rem;opacity:0;transform:translateY(18px);transition:opacity 1.1s var(--ease) .2s,transform 1.1s var(--ease) .2s}
.hero__logo.in{opacity:1;transform:none}

/* ===== v6 — logo in nav ===== */
.nav__logo{display:flex;align-items:center}
.nav__logo img{height:52px;width:auto;display:block;transition:height .4s var(--ease)}
.nav.scrolled .nav__logo img{height:42px}
@media(max-width:860px){.nav__logo img{height:40px}}

/* ===== v7: mobile nav (hamburger + overlay) + logo + mobile-first ===== */
.nav__inner{gap:1rem}
.nav__logo img{height:46px}
.nav.scrolled .nav__logo img{height:38px}
.nav__links{gap:1.5rem}
.nav__toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:none;border:none;padding:0;cursor:auto}
.nav__toggle span{display:block;width:26px;height:1.5px;background:var(--ivory);margin-left:auto;transition:transform .35s var(--ease),opacity .3s}
body.nav-open .nav__toggle span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
body.nav-open .nav__toggle span:nth-child(2){opacity:0}
body.nav-open .nav__toggle span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.nav__overlay{position:fixed;inset:0;z-index:55;background:rgba(20,20,20,.98);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility .45s}
body.nav-open{overflow:hidden}
body.nav-open .nav__overlay{opacity:1;visibility:visible}
.nav__overlay-links{display:flex;flex-direction:column;align-items:center;gap:1.7rem}
.nav__overlay-links a{font-size:1.5rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ivory);opacity:0;transform:translateY(18px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
body.nav-open .nav__overlay-links a{opacity:1;transform:none}
body.nav-open .nav__overlay-links a:nth-child(1){transition-delay:.12s}
body.nav-open .nav__overlay-links a:nth-child(2){transition-delay:.18s}
body.nav-open .nav__overlay-links a:nth-child(3){transition-delay:.24s}
body.nav-open .nav__overlay-links a:nth-child(4){transition-delay:.30s}
body.nav-open .nav__overlay-links a:nth-child(5){transition-delay:.36s}
body.nav-open .nav__overlay-links a:nth-child(6){transition-delay:.42s}
body.nav-open .nav__overlay-links a:nth-child(7){transition-delay:.48s}
.nav__overlay-links a.lang{font-size:.95rem;opacity:.55;letter-spacing:.25em}
body.nav-open .nav__overlay-links a.lang{opacity:.7}
.nav__overlay-links a.btn{margin-top:.8rem;border:1px solid var(--gold);color:var(--gold);padding:.95rem 2.4rem;font-size:1rem}
@media(max-width:1100px){
  .nav__links{display:none}
  .nav__toggle{display:flex}
}
.hero{height:100svh}
.hero--inner{height:78svh}
@media(max-width:680px){
  .nav{padding:1.1rem 0;position:fixed !important;top:0 !important}
  .nav__logo img{height:40px}
  .container{padding:0 7vw}
  .hero{min-height:auto}
  /* Home hero: aggressive zoom out — text anchored to bottom avoids nav overlap */
  .hero--home{height:50svh !important;min-height:380px !important;align-items:flex-end !important}
  .hero--home .hero__content{padding-top:0 !important;padding-bottom:2rem !important}
  .hero--home .hero__media img,.hero--home .hero__media video{object-position:center 35%}
  /* All heroes: remove negative inset crop */
  .hero__media{inset:0 !important}
  .hero--home .hero__frame{inset:0 !important}
  /* vertical gradient on portrait mobile for better text readability */
  .hero__media::after{background:linear-gradient(180deg,rgba(20,20,20,.2) 0%,rgba(20,20,20,.55) 45%,rgba(20,20,20,.88) 100%) !important}
  .hero--home .hero__media.rich::after{background:linear-gradient(180deg,rgba(20,20,20,.15) 0%,rgba(20,20,20,.5) 40%,rgba(20,20,20,.9) 100%) !important;box-shadow:none !important}
  .hero__content{padding:0 7vw}
  .hero .lead{max-width:92%}
  .hero__cta{flex-direction:column;align-items:stretch;gap:1.1rem;width:100%}
  .hero__cta .btn{width:100%;justify-content:center}
  .hero__cta .link-line{text-align:center}
  .section{padding:clamp(3.5rem,9vh,5.5rem) 0}
  .btn{padding:1rem 1.7rem}
  .nav__overlay-links a{font-size:1.3rem}
  .grid-2{gap:2.2rem}
  .manifesto h2{font-size:clamp(1.8rem,8vw,2.4rem)}
  /* kill nav backdrop-filter on mobile — prevents hamburger disappear bug */
  .nav.scrolled{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(20,20,20,.96)}
}

/* close (X) button in mobile overlay */
.nav__close{position:absolute;top:1.5rem;right:6vw;width:44px;height:44px;background:none;border:none;padding:0;cursor:auto;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .4s var(--ease) .2s}
body.nav-open .nav__close{opacity:1}
.nav__close span{position:absolute;width:26px;height:1.6px;background:var(--ivory);transition:background .3s}
.nav__close span:nth-child(1){transform:rotate(45deg)}
.nav__close span:nth-child(2){transform:rotate(-45deg)}
.nav__close:hover span{background:var(--gold)}

/* cookie consent banner */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:999;background:var(--charcoal-deep);border-top:1px solid rgba(210,166,120,.3);padding:1.4rem 6vw;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem;transform:translateY(120%);transition:transform .5s var(--ease);box-shadow:0 -10px 40px rgba(0,0,0,.35)}
.cookie-banner.is-visible{transform:translateY(0)}
.cookie-banner p{color:rgba(238,222,207,.78);font-size:.86rem;max-width:640px;margin:0;cursor:default}
.cookie-banner a{color:var(--gold);border-bottom:1px solid rgba(210,166,120,.4)}
.cookie-banner__actions{display:flex;gap:.8rem;flex-shrink:0}
.cookie-banner__actions button{font-family:'Montserrat',sans-serif;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;padding:.7rem 1.4rem;border-radius:6px;border:1px solid rgba(238,222,207,.28);background:transparent;color:rgba(238,222,207,.82);transition:all .25s var(--ease)}
.cookie-banner__actions button:hover{border-color:var(--gold);color:var(--ivory)}
.cookie-banner__actions .cookie-accept{background:var(--gold);border-color:var(--gold);color:var(--charcoal-deep)}
.cookie-banner__actions .cookie-accept:hover{background:#e0b98a}
@media(max-width:680px){
  .cookie-banner{padding:1.2rem 5vw;flex-direction:column;align-items:flex-start}
  .cookie-banner__actions{width:100%}
  .cookie-banner__actions button{flex:1}
}

/* native cursor restored (custom cursor removed for performance) */
a,button,.btn,.card,.link-line,.chip,.auth-tab,.cal__day,.nav__toggle,.nav__close{cursor:pointer}

.footer p a:hover{color:var(--ivory)}

/* launch notice (Coming Soon / Grand Opening) — see /launch-notice.js */
html.launch-notice-open{overflow:hidden}
.launch-notice{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility .5s var(--ease)}
.launch-notice.is-visible{opacity:1;visibility:visible}
.launch-notice__backdrop{position:absolute;inset:0;background:rgba(10,10,10,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.launch-notice__card{position:relative;width:100%;max-width:480px;max-height:calc(100dvh - 32px);overflow-y:auto;background:var(--charcoal-deep);border:1px solid rgba(210,166,120,.35);padding:2.6rem 2.2rem 1.8rem;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.55);transform:translateY(18px) scale(.98);transition:transform .6s var(--ease)}
.launch-notice.is-visible .launch-notice__card{transform:none}
.launch-notice__card::before{content:"";position:absolute;inset:8px;border:1px solid rgba(210,166,120,.12);pointer-events:none}
.launch-notice__x{position:absolute;top:.6rem;right:.8rem;background:none;border:0;color:rgba(238,222,207,.6);font-size:1.6rem;line-height:1;padding:.4rem;cursor:pointer;z-index:1}
.launch-notice__x:hover{color:var(--gold)}
.launch-notice__logo{width:54px;height:auto;margin:0 auto 1.3rem;object-fit:contain}
.launch-notice__title{font-size:clamp(1.9rem,6vw,2.5rem);margin:.7rem 0 .2rem;color:var(--ivory)}
.launch-notice__date{font-size:clamp(1.35rem,4.4vw,1.7rem);margin-bottom:1.1rem}
.launch-notice__body{font-size:.92rem;color:rgba(238,222,207,.8);margin:0 auto 1.7rem;max-width:380px}
.launch-notice__actions{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}
.launch-notice__btn{font-family:'Montserrat',sans-serif;font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;padding:.95rem 1.6rem;border:1px solid var(--gold);background:transparent;color:var(--gold);cursor:pointer;transition:all .35s var(--ease);min-width:140px;text-align:center}
.launch-notice__btn:hover{background:var(--gold);color:var(--charcoal-deep)}
.launch-notice__btn:focus-visible,.launch-notice__x:focus-visible{outline:1px solid var(--gold);outline-offset:3px}
.launch-notice__btn:focus{outline:none}
.launch-notice__btn:focus-visible{outline:1px solid var(--gold)}
.launch-notice__btn--primary{background:var(--gold);color:var(--charcoal-deep)}
.launch-notice__btn--primary:hover{background:#e0b98a;border-color:#e0b98a}
.launch-notice__note{margin-top:1.6rem;font-size:.66rem;line-height:1.55;color:rgba(238,222,207,.5);letter-spacing:.02em}
@media (max-width:520px){
  .launch-notice__card{padding:2.2rem 1.4rem 1.5rem}
  .launch-notice__actions{flex-direction:column}
  .launch-notice__btn{width:100%}
}

/* ===== v8 — mobile only (13 oct 2026): hide hero tagline + Scroll cue on phones ===== */
@media(max-width:680px){
  .hero--home .eyebrow{display:none}
  .hero__scroll{display:none}
}

/* launch notice v2 (14 oct 2026): single CTA */
.launch-notice__body{margin-bottom:.9rem}
.launch-notice__body--sub{font-size:.85rem;color:rgba(238,222,207,.68);margin-bottom:1.7rem}
.launch-notice__btn--wide{display:block;width:100%;max-width:340px;margin:0 auto;padding:1.05rem 1.6rem}
