/* =========================
   1) TOKENS / FONTS
========================= */

:root{
  --bg:#48403C;
  --bg2:#3F3835;
  --bg-deep:#1A1512;
  --text:#F3EEE7;
  --muted:#BEB2AE;
  --accent:#4E362A;
  --gold:rgba(204,170,90,.78);
  --line:rgba(243,238,231,.12);
  --shadow:0 22px 70px rgba(72,64,60,.42);
  --radius:22px;
  --max:1200px;
  --page-top:rgba(103,91,84,.12);
  --page-mid:rgba(72,64,60,.08);
  --ambient-glow:rgba(214,186,142,.08);
  --hero-overlay-top:rgba(28,22,19,.04);
  --hero-overlay-bottom:rgba(12,9,8,.28);
  --hero-drift-opacity:.48;
  --statement-glow:rgba(176,138,74,.08);
  --footer-grain-opacity:.035;
}


@font-face{
  font-family:'Roseritta';
  src:
    local('Roseritta'),
    url('assets/fonts/RoserittaRegular.woff2') format('woff2'),
    url('assets/fonts/RoserittaRegular.woff') format('woff'),
    url('assets/fonts/RoserittaRegular.ttf') format('truetype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Montserrat';
  src:
    url('assets/fonts/Montserrat-VariableFont_wght.woff2') format('woff2'),
    url('assets/fonts/Montserrat-VariableFont_wght.ttf') format('truetype');
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
}
@font-face{
  font-family:'MontserratItalic';
  src:
    url('assets/fonts/Montserrat-Italic-VariableFont_wght.woff2') format('woff2'),
    url('assets/fonts/Montserrat-Italic-VariableFont_wght.ttf') format('truetype');
  font-style:italic;
  font-weight:100 900;
  font-display:swap;
}

/* =========================
   2) BASE / RESET
========================= */

*{box-sizing:border-box}

html,
body{
  height:100%;
  background:var(--bg);
  color:var(--text);
}

body{
  margin:0;
  font-family:'Montserrat',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:
    radial-gradient(1200px 720px at 50% -8%, var(--ambient-glow), transparent 58%),
    linear-gradient(180deg, var(--page-top) 0%, var(--page-mid) 26%, transparent 58%),
    var(--bg);
  background-color:var(--bg);
  color:var(--text);
  overflow-x:hidden;
  transition:background .5s ease, background-color .5s ease;
}

main,
.main,
.page,
.wrap,
.container,
.content{
  background:transparent;
}

section,
.section,
.panel,
.block{
  background:transparent;
}

a{
  color:inherit;
  text-decoration:none;
}

code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
}

img,
video{
  max-width:100%;
}

/* =========================
   3) GLOBAL TYPO / UTILITIES
========================= */

.muted{color:rgba(244,240,232,.62)}
.sep{opacity:.6}

.bg-dark,
.dark,
.dark-section,
.footer-dark{
  background:var(--bg2);
}

.bg-deep{
  background:var(--bg-deep);
}

.reveal{
  opacity:0;
  transform:translateY(14px);
  transition:
    opacity .9s cubic-bezier(.22,1,.36,1),
    transform .9s cubic-bezier(.22,1,.36,1);
}
.reveal.in{
  opacity:1;
  transform:none;
}

.eyebrow{
  font-size:12px;
  letter-spacing:.35em;
  text-transform:uppercase;
  color:rgba(244,240,232,.82);
  max-width:62ch;
  margin:0 auto;
  text-shadow:0 2px 10px rgba(0,0,0,.55);
}

.section-title{
  margin:0 0 8px;
  font-family:'Roseritta',serif;
  font-weight:600;
  letter-spacing:.02em;
  font-size:clamp(34px,4vw,56px);
}

.section-sub{
  margin:0;
  max-width:70ch;
  color:rgba(244,240,232,.74);
  font-weight:300;
  line-height:1.55;
  text-wrap:pretty;
}

.nowrap-desktop{white-space:normal}

.quote{
  margin:0 auto;
  max-width:920px;
  color:rgba(244,240,232,.74);
  font-style:italic;
  font-weight:300;
  text-align:center;
  font-size:clamp(18px,1.6vw,22px);
  letter-spacing:.01em;
  line-height:1.35;
}

.chip{
  border:1px solid rgba(244,240,232,.12);
  background:rgba(5,6,6,.22);
  padding:10px 12px;
  border-radius:999px;
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(244,240,232,.72);
}

/* =========================
   4) BUTTONS / INTERACTIVE
========================= */

.btn,
.filter,
.lang,
.cookie-btn,
.social-ico,
.to-top{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  appearance:none;
  -webkit-appearance:none;
  border-radius:999px;
  padding:12px 16px;
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  border:1px solid rgba(244,240,232,.14);
  background:transparent;
  color:rgba(244,240,232,.90);
  transition:transform .18s ease,border-color .25s ease;
}

.btn::before,
.filter::before,
.lang::before,
.cookie-btn::before,
.social-ico::before,
.to-top::before{
  content:"";
  position:absolute;
  inset:0;
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .4s ease;
  z-index:0;
}

.btn::before{background:rgba(244,240,232,.10)}
.filter::before,
.lang::before,
.cookie-btn::before,
.social-ico::before,
.to-top::before{
  background:rgba(176,138,74,.16);
}

.btn > *{position:relative;z-index:1}
.to-top svg{position:relative;z-index:1}

.btn:hover{
  transform:translateY(-1px);
  border-color:rgba(244,240,232,.28);
}
.btn:hover::before{transform:scaleX(1)}

.btn.primary{
  border-color:rgba(176,138,74,.75);
  background:rgba(78,54,42,.10);
  box-shadow:0 0 0 1px rgba(176,138,74,.14) inset;
}
.btn.primary::before{background:rgba(176,138,74,.18)}

.btn.ghost{
  border-color:rgba(244,240,232,.18);
  background:transparent;
  color:rgba(244,240,232,.86);
}
.btn.ghost::before{background:rgba(244,240,232,.06)}

.btn.small{
  padding:10px 14px;
  font-size:11px;
}

.filter,
.lang,
.cookie-btn,
.social-ico,
.to-top{
  transition:
    transform .4s ease,
    border-color .4s ease,
    background .4s ease,
    color .4s ease,
    opacity .4s ease;
}

.filter:hover,
.lang:hover,
.cookie-btn:hover,
.social-ico:hover,
.to-top:hover{
  transform:translateY(-1px);
  border-color:rgba(176,138,74,.55);
}
.filter:hover::before,
.lang:hover::before,
.cookie-btn:hover::before,
.social-ico:hover::before,
.to-top:hover::before{
  transform:scaleX(1);
}

.filter.active{
  border-color:rgba(176,138,74,.75);
  background:rgba(78,54,42,.10);
}
.filter.active::before{display:none}

.chapter-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:18px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(244,240,232,.16);
  background:rgba(5,6,6,.18);
  color:rgba(244,240,232,.86);
  font-size:11px;
  letter-spacing:.24em;
  text-transform:uppercase;
  transition:transform .15s ease,background .25s ease,border-color .25s ease;
}
.chapter-cta:hover{
  transform:translateY(-1px);
  background:rgba(5,6,6,.26);
  border-color:rgba(176,138,74,.35);
}

.dir-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  border-radius:999px;
  border:1px solid rgba(244,240,232,.26);
  background:transparent;
  color:rgba(244,240,232,.78);
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
}
.dir-link:hover{
  border-color:rgba(244,240,232,.48);
  color:rgba(244,240,232,.92);
}

/* =========================
   5) GRAIN / OVERLAYS
========================= */

.grain{display:none}

.hero-overlay,
.chapter-overlay,
.step-overlay,
.full-overlay,
.cabin-overlay{
  position:absolute;
  inset:0;
  background:none;
}

.lightbox,
.modal,
.overlay,
.lb-overlay,
.gallery-modal{
  background:rgba(72,64,60,.88);
}

/* =========================
   6) INTRO
========================= */

#intro{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:9999;
  background:
    radial-gradient(1200px 700px at 50% 30%, rgba(78,54,42,.22), transparent 60%),
    var(--bg);
  transition:
    opacity .9s cubic-bezier(.22,1,.36,1),
    visibility .9s cubic-bezier(.22,1,.36,1);
}

#intro.hide{
  opacity:0;
  visibility:hidden;
}

.intro-inner{
  width:100%;
  max-width:none;
  padding:32px 20px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}

.intro-house{
  width:86px;
  height:auto;
  display:block;
  margin:0 auto 18px;
  opacity:.92;
  filter:drop-shadow(0 10px 28px rgba(26,21,18,.25));
  animation:introHouseZoom 1s cubic-bezier(.18,.72,.18,1) both;
}

.intro-copy{
  display:flex;
  flex-direction:column;
  align-items:center;
  width:100%;
}

.intro-copy > *{
  opacity:0;
  transform:scale(1.018);
  animation:introSoftReveal 1.45s cubic-bezier(.22,1,.36,1) forwards;
}
.intro-copy > *:nth-child(1){animation-delay:.34s}
.intro-copy > *:nth-child(2){animation-delay:.44s}
.intro-copy > *:nth-child(3){animation-delay:.54s}
.intro-copy > *:nth-child(4){animation-delay:.64s}

.intro-title{
  margin:0 auto;
  width:auto;
  display:table;
  text-align:center;
  white-space:nowrap;
  font-family:'Roseritta',serif;
  font-weight:400;
  font-size:clamp(56px,8vw,128px);
  letter-spacing:.01em;
  line-height:.95;
  font-kerning:normal;
  font-feature-settings:'kern' 1,'liga' 1;
  animation:introFadeUp 1.6s ease forwards;
}

.intro-kicker{
  margin-top:18px;
  color:var(--muted);
  font-size:14px;
  letter-spacing:.35em;
  text-transform:uppercase;
}

.intro-sub{
  margin-top:24px;
  color:rgba(243,238,231,.78);
  font-weight:400;
  font-size:15px;
}

.intro-hint{display:none}

@keyframes introHouseZoom{
  0%{opacity:.65;transform:scale(.93)}
  100%{opacity:.92;transform:scale(1)}
}
@keyframes introSoftReveal{
  0%{opacity:0;transform:scale(1.02)}
  100%{opacity:1;transform:scale(1)}
}
@keyframes introFadeUp{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:translateY(0)}
}

/* =========================
   7) HEADER / NAV
========================= */

.header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 20px;
  background:rgba(10,12,12,.16);
  backdrop-filter:blur(10px) saturate(1.12);
  -webkit-backdrop-filter:blur(10px) saturate(1.12);
  transition:
    background .35s ease,
    border-color .35s ease,
    backdrop-filter .35s ease,
    box-shadow .35s ease;
}

.header::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-22px;
  height:22px;
  background:linear-gradient(to bottom, rgba(10,12,12,.12), transparent);
  pointer-events:none;
}

.header.scrolled{
  background:rgba(10,12,12,.18);
  border-bottom-color:transparent;
  box-shadow:none;
  backdrop-filter:blur(18px) saturate(1.28);
  -webkit-backdrop-filter:blur(18px) saturate(1.28);
}

.header-min{justify-content:space-between}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
}

.brand-house{
  width:auto;
  height:22px;
  opacity:.92;
  filter:drop-shadow(0 10px 24px rgba(0,0,0,.35));
}

.brand-logo{
  width:auto;
  height:26px;
  filter:drop-shadow(0 6px 18px rgba(72,64,60,.25));
}

.brand-mark{display:none}

.brand-text{
  color:rgba(244,240,232,.85);
  font-size:13px;
  letter-spacing:.22em;
  text-transform:uppercase;
}

.brand-by{
  color:rgba(244,240,232,.78);
  font-size:12px;
  letter-spacing:.24em;
  text-transform:uppercase;
}

.brand-house-only{gap:0}

.header-center{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
}

.header-center-text{
  font-family:'Montserrat',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.24em;
  font-size:12px;
  color:rgba(244,240,232,.78);
}

.header-right{
  display:flex;
  align-items:center;
  gap:10px;
}

.nav{
  display:flex;
  align-items:center;
  gap:16px;
}

.nav a{
  padding:10px 10px;
  border-radius:999px;
  color:rgba(244,240,232,.78);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  transition:background .25s ease,color .25s ease;
}
.nav a:hover{
  background:rgba(244,240,232,.06);
  color:rgba(244,240,232,.92);
}

.nav-cta{
  border:1px solid rgba(176,138,74,.55);
  box-shadow:0 0 0 1px rgba(176,138,74,.12) inset;
}

.lang{
  cursor:pointer;
  border:1px solid rgba(244,240,232,.14);
  background:rgba(244,240,232,.03);
  color:rgba(244,240,232,.9);
  border-radius:999px;
  padding:10px 12px;
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.lang-menu{
  position:fixed;
  top:60px;
  right:20px;
  z-index:1600;
  display:none;
  overflow:hidden;
  border-radius:16px;
  border:1px solid rgba(244,240,232,.14);
  background:rgba(10,12,12,.92);
  box-shadow:var(--shadow);
}

.lang-menu.show{display:block}

.lang-menu a{
  display:block;
  min-width:112px;
  padding:12px 14px;
  text-align:left;
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(244,240,232,.78);
  border-top:1px solid rgba(244,240,232,.08);
}
.lang-menu a:first-child{border-top:none}
.lang-menu a:hover{
  background:rgba(244,240,232,.06);
  color:rgba(244,240,232,.92);
}

/* =========================
   8) MOBILE MENU
========================= */

.hamburger{
  display:none;
  width:42px;
  height:42px;
  margin-right:10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.28);
  background:transparent;
  cursor:pointer;
}
.hamburger span{
  display:block;
  width:18px;
  height:2px;
  margin:1px auto;
  background:#fff;
  opacity:.9;
}

.mobile-menu,
#mobileMenu{
  position:fixed;
  inset:0;
  z-index:10020;
  background:rgba(63,56,53,.92);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .25s ease, visibility .25s ease;
}
.mobile-menu.show,
#mobileMenu.show{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.mm-inner{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  padding:24px;
}

.mm-close{
  align-self:flex-end;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.25);
  background:transparent;
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}

.mm-nav{
  margin-top:48px;
  display:flex;
  flex-direction:column;
  gap:18px;
}
.mm-nav a{
  color:#fff;
  font-size:22px;
  letter-spacing:.01em;
  text-decoration:none;
}
.mm-nav a:hover{opacity:.85}

.mm-langs{
  display:flex;
  gap:10px;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid rgba(244,240,232,.10);
}
.mm-langs a{
  border:1px solid rgba(244,240,232,.14);
  border-radius:999px;
  padding:8px 10px;
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(244,240,232,.82);
}

.mm-meta{
  margin-top:auto;
  display:flex;
  gap:14px;
  opacity:.92;
  align-items:center;
}
.mm-meta a{
  color:#fff;
  text-decoration:none;
}
.mm-social-ico{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border:1px solid rgba(244,240,232,.18);
  border-radius:999px;
  background:rgba(255,255,255,.03);
}
.mm-social-ico .ico{
  width:18px;
  height:18px;
  fill:currentColor;
}
.mm-social-ico:hover{
  opacity:.88;
  transform:translateY(-1px);
}

/* =========================
   9) LAYOUT / SNAP
========================= */

main{scroll-snap-type:y proximity}

.snap{
  min-height:100vh;
  position:relative;
  scroll-snap-align:start;
}

/* =========================
   10) HERO
========================= */

.hero{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}

.hero-media{
  position:absolute;
  inset:0;
  overflow:hidden;
}

.hero-media::before,
.hero-media::after{
  content:none;
}

.hero-video{
  width:100%;
  height:100%;
  object-fit:cover;
}

.hero-slideshow{
  position:absolute;
  inset:0;
  z-index:0;
}

.hero-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  transform:scale(1.018);
  object-fit:cover;
  transition:
    opacity 1.45s cubic-bezier(.22,1,.36,1),
    transform 8.6s cubic-bezier(.22,1,.36,1);
}
.hero-slide.is-active{
  opacity:1;
  transform:scale(1.042);
}

.hero-slideshow picture.hero-slide img,
.hero-slideshow .hero-slide img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.hero-content{
  position:relative;
  z-index:3;
  max-width:var(--max);
  margin:0 auto;
  padding:0 20px;
  text-align:center;
}

.display{
  margin:18px 0 10px;
  font-family:'Roseritta',serif;
  font-weight:600;
  letter-spacing:.08em;
  line-height:.92;
  font-size:clamp(54px,8vw,118px);
}
.display span{display:block}

.display-accent{
  position:relative;
  color:rgba(244,240,232,.95);
}
.display-accent::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:10px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(176,138,74,.9), transparent);
}

.hero-title{
  margin:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  line-height:1;
  font-family:'Roseritta',serif;
  font-size:clamp(38px,5.2vw,78px);
  letter-spacing:.02em;
}

.hero-title .hero-title-top,
.hero-title .hero-title-bottom{
  display:block;
  margin:0;
  font-family:'Montserrat',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  font-size:clamp(12px,1.15vw,16px);
  font-weight:500;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:rgba(244,240,232,.88);
}

.hero-title .hero-title-top{
  animation:heroFadeLift .85s cubic-bezier(.22,1,.36,1) .08s both;
}
.hero-title .hero-title-bottom{
  animation:heroFadeLift .9s cubic-bezier(.22,1,.36,1) .26s both;
}

.hero-title .hero-title-main{
  display:block;
  margin:0;
  font-family:'Roseritta',serif;
  font-weight:600;
  font-size:clamp(44px,6.2vw,96px);
  letter-spacing:.02em;
  line-height:.92;
  text-transform:none;
  color:rgba(244,240,232,.98);
  animation:heroTrackIn 1.25s cubic-bezier(.18,.72,.18,1) .08s both;
}

.hero-brandline{display:none}

.hero-sub{
  margin:18px auto 16px;
  max-width:34ch;
  color:rgba(243,238,231,.78);
  font-weight:300;
  font-size:15px;
  letter-spacing:.02em;
  animation:heroFadeLift .9s cubic-bezier(.22,1,.36,1) .48s both;
}

.hero-rule{
  width:min(560px,70vw);
  height:2px;
  margin:16px auto 20px;
  background:linear-gradient(
    90deg,
    transparent,
    rgba(176,138,74,.35),
    rgba(176,138,74,.92),
    rgba(176,138,74,.35),
    transparent
  );
  opacity:1;
  transform:scaleX(.18) scaleY(.38);
  transform-origin:center;
  filter:
    drop-shadow(0 10px 26px rgba(176,138,74,.22))
    drop-shadow(0 2px 8px rgba(0,0,0,.25));
  animation:heroRuleIn .9s cubic-bezier(.22,1,.36,1) .36s both;
}

.hero-actions,
.hero-note,
.soft-footnote,
.hero-badges{
  display:none;
}

.hero-cta-row{
  margin-top:24px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  justify-content:center;
  animation:heroFadeLift 1s cubic-bezier(.22,1,.36,1) .58s both;
}
.hero .btn.primary{min-width:190px}

.hero-scroll{
  position:absolute;
  left:50%;
  bottom:28px;
  transform:translateX(-50%);
  opacity:.8;
}

.mouse{
  position:relative;
  width:22px;
  height:36px;
  border-radius:999px;
  border:1px solid rgba(244,240,232,.22);
}
.mouse::after{
  content:"";
  position:absolute;
  left:50%;
  top:8px;
  width:2px;
  height:7px;
  background:rgba(244,240,232,.7);
  transform:translateX(-50%);
  border-radius:9px;
  animation:wheel 1.4s infinite;
}

@keyframes wheel{
  0%{opacity:0;transform:translate(-50%,0)}
  30%{opacity:1}
  100%{opacity:0;transform:translate(-50%,10px)}
}

@keyframes heroTrackIn{
  from{letter-spacing:.18em}
  to{letter-spacing:.02em}
}

/* =========================
   11) STATEMENT
========================= */

.statement{
  width:100%;
  min-height:clamp(320px,48vh,560px);
  padding:0 20px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:
    radial-gradient(1000px 700px at 50% 30%, var(--statement-glow), transparent 60%),
    var(--bg2);
}
.statement::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:min(580px,74vw);
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(176,138,74,.75), transparent);
  opacity:.72;
}

.statement-inner{
  width:100%;
  max-width:none;
  margin:0 auto;
  padding:0 20px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}

.statement-line{
  width:auto;
  max-width:100%;
  display:inline-block;
  margin:0 auto 1cm;
  text-align:center;
  font-family:'Roseritta',serif;
  font-weight:500;
  letter-spacing:.02em;
  line-height:1;
  font-size:clamp(26px,3.6vw,46px);
}

.statement-line.primary{
  font-size:clamp(28px,3.7vw,48px);
}
.statement-line.secondary{
  font-size:clamp(22px,3vw,40px);
  letter-spacing:.015em;
}
.statement-line.soft{
  margin-top:0;
  color:rgba(244,240,232,.72);
  font-family:'Montserrat',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  font-weight:300;
  font-size:clamp(16px,2.2vw,22px);
  letter-spacing:.04em;
}
.statement-line.nowrap{white-space:nowrap}

.statement-copy{
  margin:0;
  max-width:60ch;
  color:rgba(244,240,232,.78);
  font:300 16px/1.7 'Montserrat',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  letter-spacing:.01em;
  text-align:left;
  text-wrap:pretty;
}

/* =========================
   12) CHAPTERS / EDITORIAL
========================= */

.chapters{background:var(--bg)}

.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:100vh;
}

.chapter{
  position:relative;
  overflow:hidden;
}

.chapter-media{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center center;
  transform:scale(1.05);
  transition:transform 1.2s ease,filter 1.2s ease;
}

.chapter-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
}

#signature .chapter-media{
  background-position:center center;
  filter:saturate(.96) contrast(1.05) brightness(.90);
}
#coming .chapter-media{
  background-position:center center;
}
#signature .chapter-overlay{
  background:linear-gradient(to bottom, rgba(5,6,6,.26), rgba(5,6,6,.70));
}

.chapter-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom, rgba(5,6,6,.28), rgba(5,6,6,.70));
}

.chapter:hover .chapter-media{
  transform:scale(1.14);
  filter:saturate(1) contrast(1.10) brightness(.86);
}

.chapter-content{
  position:relative;
  max-width:620px;
  padding:110px 48px 48px;
}
#signature .chapter-content.reveal{transform:translateY(18px) translateX(-10px)}
#coming .chapter-content.reveal{transform:translateY(18px) translateX(10px)}

.chapter-tag{
  color:rgba(244,240,232,.76);
  font-size:12px;
  letter-spacing:.35em;
  text-transform:uppercase;
}

.chapter-title{
  margin:18px 0 10px;
  position:relative;
  display:inline-block;
  font-family:'Roseritta',serif;
  font-weight:600;
  font-size:clamp(44px,5vw,78px);
  letter-spacing:.02em;
  text-wrap:balance;
}
.chapter-title::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-10px;
  width:min(180px,44vw);
  height:1px;
  background:linear-gradient(90deg, rgba(176,138,74,.88), transparent);
  transform:scaleX(.08);
  transform-origin:left center;
  transition:transform .85s cubic-bezier(.22,1,.36,1);
}
.chapter-content.reveal.in .chapter-title::after{transform:scaleX(1)}

.chapter-one{
  margin:10px 0 18px;
  max-width:52ch;
  color:rgba(244,240,232,.78);
  font-weight:300;
  line-height:1.6;
  text-align:left;
  text-wrap:pretty;
}

.chapter-points{
  margin:0;
  padding-left:18px;
  color:rgba(244,240,232,.72);
  line-height:1.85;
}

.chapter-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:18px;
}

.chapter-hover{
  position:absolute;
  right:18px;
  bottom:18px;
  display:flex;
  align-items:center;
  gap:10px;
  opacity:.8;
  color:rgba(244,240,232,.6);
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
}

.dot{
  width:6px;
  height:6px;
  border-radius:999px;
  background:rgba(176,138,74,.75);
}

.split-caption{
  width:100%;
  margin:0;
  padding:26px 20px;
  text-align:center;
  color:rgba(243,238,231,.78);
  background:var(--bg2);
}

.editorial-band{
  display:flex;
  justify-content:center;
  padding:28px 20px 18px;
  background:transparent;
  border:none;
}
.editorial-line{
  margin:0;
  max-width:68ch;
  text-align:center;
  color:rgba(244,240,232,.76);
  font-weight:300;
  letter-spacing:.02em;
  text-wrap:pretty;
}

.bridge{
  padding:0 20px 26px;
  background:transparent;
}
.bridge-line{
  max-width:540px;
  height:1px;
  margin:0 auto;
  background:linear-gradient(to right, transparent, rgba(176,138,74,.85), transparent);
  box-shadow:0 1px 10px rgba(176,138,74,.12);
}

.names{
  max-width:980px;
  margin:14px auto 0;
  padding:22px 26px 24px;
  border-radius:18px;
  border:1px solid rgba(176,138,74,.22);
  background:
    radial-gradient(900px 360px at 50% 35%, rgba(176,138,74,.12), transparent 62%),
    rgba(84,73,62,.46);
  backdrop-filter:blur(10px);
  text-align:center;
}
.names-title{
  margin:0 0 10px;
  font-family:'Roseritta',serif;
  font-size:clamp(22px,2.2vw,30px);
  font-weight:600;
  color:rgba(244,240,232,.90);
}
.names-copy{
  margin:0 auto;
  max-width:780px;
  color:rgba(244,240,232,.78);
  line-height:1.6;
}
.names-actions{
  display:flex;
  justify-content:center;
  margin-top:14px;
}

/* =========================
   13) RITUAL / CAROUSEL
========================= */

.ritual{
  padding-top:92px;
  background:var(--bg);
}

.ritual-head,
.gallery-head,
.location-inner,
.seo-inner{
  text-align:center;
}

.ritual-head{
  max-width:var(--max);
  margin:0 auto;
  padding:0 20px 18px;
}
.ritual-head .section-title{margin-bottom:24px}
.ritual-head .section-sub{
  margin-top:0;
  margin-left:auto;
  margin-right:auto;
}

.ritual-inline{
  margin:0;
  text-align:left;
  text-wrap:pretty;
}
.ritual-inline-link{
  white-space:nowrap;
  margin-left:12px;
  padding-bottom:2px;
  border-bottom:1px solid rgba(255,255,255,.35);
}
.ritual-inline-link:hover{border-bottom-color:rgba(255,255,255,.7)}

.ritual-row{
  margin-top:10px;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:18px;
}
.ritual-row .section-sub{margin:0}
.ritual-link-top{margin:0}
.ritual-link-top a,
.ritual-link a{
  display:inline-block;
  margin-top:10px;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.35);
}
.ritual-link-top a:hover,
.ritual-link a:hover{
  border-bottom-color:rgba(255,255,255,.7);
}

.carousel{
  position:relative;
  max-width:1100px;
  margin:28px auto 0;
  padding:0 18px;
}

.car-track{
  display:flex;
  gap:10px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  padding:4px 6px 14px;
  touch-action:pan-y;
}
.car-track::-webkit-scrollbar{height:8px}

.car-item{
  flex:0 0 auto;
  width:min(78vw,520px);
  scroll-snap-align:start;
}
.car-item picture{display:block}
.car-item img{
  width:100%;
  height:clamp(240px,46vw,360px);
  border-radius:18px;
  object-fit:cover;
  display:block;
}
.car-item figcaption{
  margin-top:10px;
  font-size:14px;
  letter-spacing:.01em;
  opacity:.85;
}
.car-item figcaption .k{
  display:block;
  min-width:26px;
  opacity:.7;
}

.car-btn{
  position:absolute;
  top:calc((clamp(240px,46vw,360px) / 2) + 4px);
  transform:translateY(-50%);
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(14,26,20,.35);
  color:#fff;
  cursor:pointer;
}
.car-btn:hover{border-color:rgba(255,255,255,.55)}
.car-btn.prev{left:8px}
.car-btn.next{right:8px}

.ritual-steps{
  height:calc(100vh - 210px);
  margin:18px 0 0;
  overflow:auto;
  scroll-snap-type:y mandatory;
  border-top:1px solid rgba(244,240,232,.06);
  border-bottom:1px solid rgba(244,240,232,.06);
}

.step{
  position:relative;
  height:100%;
  min-height:100%;
  scroll-snap-align:start;
  background-size:cover;
  background-position:center;
}
.step-copy{
  position:absolute;
  left:20px;
  bottom:28px;
  max-width:520px;
}
.step-kicker{
  color:rgba(244,240,232,.7);
  font-size:12px;
  letter-spacing:.35em;
  text-transform:uppercase;
}
.step-title{
  margin-top:10px;
  font-family:'Roseritta',serif;
  font-weight:600;
  font-size:clamp(36px,4.5vw,62px);
}
.step-line{
  margin-top:8px;
  color:rgba(244,240,232,.75);
  font-weight:300;
}

.ritual-footer{
  position:relative;
  overflow:hidden;
  max-width:var(--max);
  margin:0 auto;
  padding:18px 20px 26px;
  text-align:center;
}

.ritual-signature{
  padding:24px 20px 42px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
}
.ritual-signature::before{
  content:"";
  display:block;
  width:min(540px,82vw);
  height:1px;
  margin:0 auto 4px;
  background:linear-gradient(to right, transparent, rgba(176,138,74,.85), transparent);
  box-shadow:0 1px 10px rgba(176,138,74,.12);
}
.ritual-signature .signature-note{
  margin:0;
  max-width:64ch;
  text-align:center;
  color:rgba(244,240,232,.76);
}
.ritual-signature .bridge-line{
  width:min(540px,82vw);
}

/* =========================
   14) LOCATION
========================= */

.location{
  position:relative;
  min-height:100vh;
  display:grid;
  place-items:center;
  text-align:center;
}

.full-media{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
}

.full-media picture,
.full-media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.location-inner{
  position:relative;
  max-width:720px;
  margin:0 auto;
  padding:0 20px;
}
.location-inner .section-sub{margin-left:auto;margin-right:auto}
.location-inner .section-title{margin-bottom:10px}
.location-cta{margin-top:18px}

/* =========================
   15) GALLERY
========================= */

.gallery,
.gallery-wrap,
.gallery-section,
#gallery,
.photo-break,
.fullscreen,
.full,
.image-break,
.between,
.divider-photo{
  background:var(--bg);
}

.gallery{
  padding:92px 0 60px;
}

.gallery-head{
  max-width:var(--max);
  margin:0 auto;
  padding:0 20px 22px;
}
.gallery-head .section-sub{
  margin-left:auto;
  margin-right:auto;
}

.filters{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
  margin-top:14px;
}

.filter{
  cursor:pointer;
  border:1px solid rgba(244,240,232,.14);
  background:rgba(244,240,232,.04);
  color:rgba(244,240,232,.82);
  padding:10px 12px;
  border-radius:999px;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.gallery-grid{
  max-width:var(--max);
  margin:0 auto;
  padding:0 20px;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-flow:dense;
  gap:12px;
}

.tile{
  display:block;
  min-width:0;
  margin:0;
  grid-column:span 4;
  aspect-ratio:4 / 3;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(244,240,232,.08);
  background:transparent;
  cursor:pointer;
  box-shadow:0 12px 40px rgba(72,64,60,.35);
  transform:translateZ(0);
}

.tile.featured-wide{
  grid-column:span 6;
  aspect-ratio:16 / 10;
}
.tile.featured-full{
  grid-column:1 / -1;
  aspect-ratio:21 / 9;
}

@media (min-width:981px){
  .gallery-grid.is-location-filter .tile.location-panorama{
    grid-column:span 7;
    aspect-ratio:16 / 10;
  }

  .gallery-grid.is-location-filter .tile.location-shore{
    grid-column:span 5;
    aspect-ratio:16 / 10;
  }

  .gallery-grid.is-location-filter .tile.location-sunset{
    grid-column:span 5;
    aspect-ratio:16 / 10;
  }

  .gallery-grid.is-location-filter .tile.location-resort{
    grid-column:span 7;
    aspect-ratio:16 / 10;
  }
}

.tile picture{
  display:block;
  width:100%;
  height:100%;
}
.tile picture img,
.tile img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .6s ease,filter .6s ease;
}
.tile:hover img{
  transform:scale(1.04);
}

.gallery-foot{
  max-width:var(--max);
  margin:0 auto;
  padding:18px 20px 0;
}

/* =========================
   16) AVAILABILITY
========================= */

.availability{
  min-height:auto;
  padding:90px 0;
  display:grid;
  place-items:center;
  background:
    radial-gradient(1000px 700px at 40% 30%, rgba(78,54,42,.10), transparent 60%),
    var(--bg2);
}

.availability-inner{
  max-width:602px;
  padding:0 20px;
  text-align:center;
}

.availability .section-sub{
  text-align:justify;
  text-align-last:auto;
}

.avail-cards{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:22px;
}

.avail-card{
  padding:22px;
  border:1px solid rgba(244,240,232,.10);
  border-radius:var(--radius);
  background:rgba(244,240,232,.03);
  box-shadow:var(--shadow);
}

.avail-label{
  color:rgba(244,240,232,.72);
  font-size:12px;
  letter-spacing:.35em;
  text-transform:uppercase;
}

.avail-copy{
  margin:10px 0 16px;
  color:rgba(244,240,232,.78);
  font-weight:300;
  text-wrap:pretty;
}

.contact{margin-top:18px}
.contact-row{
  display:flex;
  gap:10px;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  text-wrap:pretty;
}

/* =========================
   17) FOOTER
========================= */

.footer{
  position:relative;
  overflow:hidden;
  padding:22px 0 34px;
  border-top:1px solid rgba(204,170,90,.78);
  background:var(--bg2);
}

.footer::after{
  content:"";
  position:absolute;
  bottom:0;
  left:0;
  width:100%;
  height:180px;
  background:url("assets/grca.png") bottom center / cover no-repeat;
  opacity:var(--footer-grain-opacity);
  filter:contrast(1.15);
  mask-image:
    linear-gradient(to top, transparent 0%, black 10%, black 70%, transparent 100%),
    linear-gradient(to right, transparent 0%, black 18%, black 82%, transparent 100%);
  mask-composite:intersect;
  -webkit-mask-image:
    linear-gradient(to top, transparent 0%, black 10%, black 70%, transparent 100%),
    linear-gradient(to right, transparent 0%, black 18%, black 82%, transparent 100%);
  -webkit-mask-composite:source-in;
  pointer-events:none;
  z-index:0;
}

footer > *{
  position:relative;
  z-index:1;
}

.footer-inner{
  width:100%;
  max-width:none;
  margin:0;
  padding:0 24px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:start;
  column-gap:24px;
}

.footer-brand{
  width:100%;
  display:flex;
  gap:14px;
  align-items:center;
  justify-self:start;
  justify-content:flex-start;
  align-self:start;
  text-align:left;
  color:inherit;
}
.footer-brand > div{text-align:left}

.footer-house{
  width:28px;
  height:28px;
  object-fit:contain;
  opacity:.92;
}

.footer-title{
  font-family:'Roseritta',serif;
  font-weight:600;
  font-size:22px;
}

.footer-sub{
  color:rgba(244,240,232,.65);
  font-size:13px;
  text-wrap:pretty;
}
.footer-signature{
  margin-top:14px;
  color:rgba(244,240,232,.50);
  font-size:11px;
  letter-spacing:.08em;
  line-height:1.45;
}

.footer-links{
  min-width:0;
  justify-self:center;
  text-align:center;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:10px;
}
.footer-links-main,
.footer-links-legal{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px 14px;
}
.footer-links a{
  padding:10px 10px;
  border-radius:999px;
  color:rgba(244,240,232,.72);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.footer-links a:hover{background:rgba(244,240,232,.06)}

.footer-social{
  width:100%;
  justify-self:end;
  align-self:start;
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-end;
  justify-content:flex-start;
  text-align:right;
}

.footer-icons{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:flex-end;
}

.social-ico{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border:1px solid rgba(244,240,232,.16);
  border-radius:999px;
  background:rgba(244,240,232,.02);
}
.social-ico:hover{background:rgba(244,240,232,.05)}
.social-ico .ico{
  width:18px;
  height:18px;
  fill:rgba(244,240,232,.88);
}

.social-link{
  text-align:right;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.28);
}
.social-link:hover{border-bottom-color:rgba(255,255,255,.55)}

.footer-meta{
  grid-column:1 / -1;
  margin-top:14px;
  text-align:center;
  color:rgba(244,240,232,.60);
  font-size:12px;
}

/* =========================
   18) LIGHTBOX
========================= */

.lightbox{
  position:fixed;
  inset:0;
  z-index:2000;
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(11,11,11,.52);
  backdrop-filter:blur(10px) saturate(1.05);
  overscroll-behavior:contain;
  touch-action:pan-y pinch-zoom;
}
.lightbox.show{display:flex}

.lb-img{
  max-width:min(1100px,92vw);
  max-height:calc(78vh - 72px);
  border-radius:18px;
  box-shadow:var(--shadow);
}

.lb-caption{
  position:static;
  margin-top:14px;
  color:rgba(244,240,232,.84);
  font-size:14px;
  line-height:1.45;
  letter-spacing:.01em;
  text-transform:none;
  text-align:center;
  width:min(900px,80vw);
  max-width:min(900px,80vw);
  transform:none;
}

.lb-close{
  position:absolute;
  top:14px;
  right:16px;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(244,240,232,.18);
  background:rgba(244,240,232,.06);
  color:rgba(244,240,232,.9);
  font-size:26px;
  cursor:pointer;
}

.lb-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:48px;
  height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  z-index:2002;
  border-radius:999px;
  border:1px solid rgba(244,240,232,.18);
  background:rgba(244,240,232,.06);
  color:rgba(244,240,232,.94);
  font-size:32px;
  line-height:1;
  cursor:pointer;
}
.lb-prev{left:20px}
.lb-next{right:20px}
.lb-nav:hover{background:rgba(244,240,232,.10)}

/* =========================
   19) GENERIC MODAL
========================= */

.modal{
  position:fixed;
  inset:0;
  z-index:2500;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.modal.show{display:flex}

.modal-card{
  position:relative;
  width:min(560px,95vw);
  padding:22px;
  border-radius:var(--radius);
  border:1px solid rgba(244,240,232,.14);
  background:rgba(12,14,14,.92);
  box-shadow:var(--shadow);
}

.modal-close{
  position:absolute;
  top:12px;
  right:12px;
  width:40px;
  height:40px;
  border-radius:999px;
  border:1px solid rgba(244,240,232,.18);
  background:rgba(244,240,232,.06);
  color:rgba(244,240,232,.9);
  font-size:22px;
  cursor:pointer;
}

.modal-kicker{
  color:rgba(244,240,232,.68);
  font-size:12px;
  letter-spacing:.35em;
  text-transform:uppercase;
}
.modal-title{
  margin:10px 0 6px;
  font-family:'Roseritta',serif;
  font-weight:600;
  font-size:34px;
}
.modal-sub{
  margin:0 0 14px;
  color:rgba(244,240,232,.74);
  font-weight:300;
}
.modal-form{
  display:grid;
  gap:12px;
}
.modal-form label span{
  display:block;
  margin-bottom:6px;
  color:rgba(244,240,232,.64);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.modal-form input{
  width:100%;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(244,240,232,.16);
  background:rgba(244,240,232,.04);
  color:rgba(244,240,232,.95);
}
.modal-note{font-size:12px}

/* =========================
   20) SIGNUP MODAL
========================= */

body.modal-open{overflow:hidden; overscroll-behavior:none}
.open-signup{cursor:pointer}

.signup-modal{
  position:fixed;
  inset:0;
  z-index:2000;
  display:grid;
  place-items:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .35s ease,visibility .35s ease;
  overscroll-behavior:contain;
}
.signup-modal.show{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.signup-backdrop{
  position:absolute;
  inset:0;
  background:rgba(11,11,11,.52);
  backdrop-filter:blur(10px) saturate(1.05);
}

.signup-panel{
  position:relative;
  width:100%;
  max-width:560px;
  max-height:min(88vh,920px);
  overflow:auto;
  padding:38px 34px 28px;
  border-radius:28px;
  border:1px solid rgba(232,227,223,.14);
  background:linear-gradient(180deg, rgba(75,64,56,.98), rgba(67,57,50,.98));
  box-shadow:0 24px 60px rgba(0,0,0,.32);
  transform:translateY(14px) scale(.985);
  transition:transform .4s cubic-bezier(.4,0,.2,1);
}
.signup-modal.show .signup-panel{
  transform:translateY(0) scale(1);
}

.signup-close{
  position:absolute;
  top:14px;
  right:14px;
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid rgba(232,227,223,.22);
  background:rgba(255,255,255,.02);
  color:var(--text);
  font:300 32px/1 'Montserrat',sans-serif;
  display:grid;
  place-items:center;
  transition:
    background .35s ease,
    border-color .35s ease,
    transform .35s cubic-bezier(.4,0,.2,1);
}
.signup-close:hover{
  background:rgba(215,197,172,.14);
  border-color:rgba(215,197,172,.5);
  transform:translateY(-2px);
}

.signup-shell{
  max-width:440px;
  margin:0 auto;
  text-align:center;
}

.signup-eyebrow{
  margin-bottom:14px;
  color:rgba(232,227,223,.68);
  font-size:11px;
  letter-spacing:.34em;
  text-transform:uppercase;
}

.signup-title{
  margin:0 0 14px;
  color:var(--text);
  font:400 clamp(30px,4.4vw,48px)/.96 'Roseritta',serif;
}

.signup-copy{
  max-width:38ch;
  margin:0 auto 14px;
  color:rgba(232,227,223,.82);
  font-size:17px;
  line-height:1.65;
}

.signup-form{
  display:grid;
  gap:14px;
}

.signup-field{text-align:left}
.signup-field input{
  width:100%;
  height:56px;
  padding:0 18px;
  border-radius:18px;
  border:1px solid rgba(232,227,223,.16);
  background:rgba(255,255,255,.03);
  color:var(--text);
  font:400 16px/1.2 'Montserrat',sans-serif;
  transition:border-color .35s ease,background .35s ease,box-shadow .35s ease;
}
.signup-field input::placeholder{
  color:rgba(232,227,223,.42);
}
.signup-field input:focus{
  outline:none;
  border-color:rgba(215,197,172,.58);
  background:rgba(255,255,255,.05);
  box-shadow:0 0 0 4px rgba(215,197,172,.08);
}

.signup-consent{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin-top:2px;
  text-align:left;
  color:rgba(232,227,223,.8);
  font-size:13px;
  line-height:1.55;
}
.signup-consent input{
  margin:4px 0 0;
  accent-color:#d7c5ac;
}
.signup-consent a{
  color:var(--text);
  text-decoration:underline;
  text-underline-offset:3px;
}

.signup-actions{
  display:flex;
  justify-content:center;
  margin-top:8px;
}
.signup-submit,
.signup-continue{
  min-width:228px;
}
.signup-submit[disabled]{
  opacity:.72;
  pointer-events:none;
}
.signup-submit.is-loading span::after{
  content:' …';
}

.signup-success[hidden]{display:none}
.signup-target-frame{
  position:absolute;
  width:0;
  height:0;
  border:0;
  visibility:hidden;
}

input[name="email_address_check"],
.input--hidden{
  display:none;
}

/* =========================
   21) COOKIE BAR
========================= */

.cookie-bar{
  position:fixed;
  right:20px;
  bottom:14px;
  left:auto;
  width:min(460px,calc(100vw - 40px));
  max-width:calc(100vw - 40px);
  z-index:9999;
  display:none;
}
.cookie-bar.show{display:block}

.cookie-inner{
  width:100%;
  margin:0;
  padding:10px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-radius:14px;
  border:1px solid rgba(244,240,232,.12);
  background:rgba(12,12,12,.62);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:none;
}

.cookie-text{
  color:rgba(244,240,232,.82);
  font-size:12px;
  line-height:1.35;
  font-weight:300;
  text-align:justify;
  text-justify:inter-word;
}

.cookie-actions{
  display:flex;
  gap:8px;
  flex:0 0 auto;
}

.cookie-btn{
  cursor:pointer;
  border-radius:999px;
  padding:8px 12px;
  border:1px solid rgba(244,240,232,.16);
  background:transparent;
  color:rgba(244,240,232,.86);
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.cookie-btn.primary{
  border-color:rgba(176,138,74,.55);
  background:rgba(176,138,74,.10);
}

/* =========================
   22) PAGE-SPECIFIC / LEGAL / FAQ / SEO
========================= */

.page-intro{
  padding:46px 0 38px;
  background:var(--bg);
  border-top:1px solid rgba(244,240,232,.06);
  border-bottom:1px solid rgba(244,240,232,.06);
}
.page-intro-inner{
  max-width:860px;
  margin:0 auto;
  padding:0 20px;
  text-align:center;
  opacity:1;
  transform:none;
}
.page-intro-title{
  margin:0 0 10px;
  font-family:'Roseritta',serif;
  font-weight:600;
  font-size:clamp(26px,3.2vw,40px);
  letter-spacing:.01em;
}
.page-intro-sub{
  margin:0;
  color:rgba(244,240,232,.78);
  font-size:16px;
  line-height:1.55;
}

.page-gallery{
  padding:56px 0 20px;
}
.page-gallery .section-title{
  max-width:1100px;
  margin:0 auto 10px;
  padding:0 18px;
}

.page-faq{
  max-width:var(--max);
  margin:0 auto;
  padding:18px 20px 0;
  text-align:center;
}
.faq-link{
  display:inline-block;
  max-width:900px;
  margin:26px auto 0;
  padding:0 18px 4px;
  color:rgba(244,240,232,.78);
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  border-bottom:1px solid rgba(244,240,232,.35);
}
.faq-link:hover{
  color:rgba(244,240,232,.92);
  border-bottom-color:rgba(244,240,232,.7);
}
.faq-inline{margin:14px 0 0}

.seo-section{
  padding:84px 0;
  background:linear-gradient(to bottom, rgba(5,6,6,0), rgba(5,6,6,.28));
}
.seo-inner{
  max-width:980px;
  margin:0 auto;
  padding:0 20px;
  text-align:left;
}
.seo-inner h2{
  margin:0 0 14px;
  font-family:'Roseritta',serif;
  font-weight:600;
  font-size:clamp(30px,3.4vw,48px);
}
.seo-inner h3{
  margin:34px 0 10px;
  font-family:'Roseritta',serif;
  font-weight:600;
  font-size:clamp(22px,2.6vw,32px);
}
.seo-inner p{
  margin:0 0 12px;
  max-width:70ch;
  color:rgba(244,240,232,.78);
  line-height:1.6;
}
.seo-pills{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:18px;
}
.seo-pill{
  border:1px solid rgba(244,240,232,.12);
  background:rgba(244,240,232,.04);
  border-radius:999px;
  padding:10px 12px;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(244,240,232,.76);
}

.video-card{
  margin-top:26px;
  overflow:hidden;
  border-radius:22px;
  border:1px solid rgba(244,240,232,.10);
  background:rgba(5,6,6,.35);
  box-shadow:0 18px 60px rgba(0,0,0,.35);
}
.video-card video{
  width:100%;
  height:auto;
  display:block;
  background:#050606;
}

.cabin-stack{
  padding:0;
  background:var(--bg);
}
.cabin-block{
  position:relative;
  min-height:86vh;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.cabin-media{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  transform:scale(1.02);
}
.cabin-text{
  position:relative;
  z-index:2;
  width:min(980px,92vw);
  padding:88px 0 70px;
  text-align:left;
  opacity:1;
}
.cabin-kicker{
  margin:0;
  color:rgba(244,240,232,.70);
  font-size:12px;
  letter-spacing:.35em;
  text-transform:uppercase;
  opacity:1;
}
.cabin-title{
  margin:16px 0 10px;
  font-family:'Roseritta',serif;
  font-weight:600;
  font-size:clamp(34px,4.2vw,60px);
  letter-spacing:.01em;
  opacity:1;
}
.cabin-copy{
  margin:0;
  max-width:64ch;
  color:rgba(244,240,232,.78);
  line-height:1.6;
  font-weight:300;
  font-size:16px;
}
.cabin-copy + .cabin-copy{
  margin-top:16px;
  padding:0;
}

.dropcap:first-letter{
  float:left;
  margin-top:6px;
  padding-right:10px;
  color:rgba(244,240,232,.88);
  font-family:'Roseritta',serif;
  font-weight:600;
  font-size:60px;
  line-height:.9;
}

.page-legal .ritual-head{
  max-width:min(980px,calc(100% - 40px));
  margin-left:auto;
  margin-right:auto;
}
.page-legal .ritual-head:first-of-type::after{
  content:"";
  display:block;
  width:min(540px,82vw);
  height:1px;
  margin:22px auto 6px;
  background:linear-gradient(to right, transparent, rgba(176,138,74,.85), transparent);
  box-shadow:0 1px 10px rgba(176,138,74,.12);
}
.page-legal .section-sub{
  line-height:1.7;
  margin-bottom:12px;
}
.page-legal .ritual-head .section-sub{
  text-align:justify;
  text-justify:inter-word;
}
.page-legal .ritual-head ul,
.page-legal .ritual-head ol{
  max-width:760px;
  margin:12px auto 18px;
  padding-left:1.25rem;
  text-align:left;
  list-style-position:outside;
}
.page-legal .ritual-head li{
  text-align:left;
  line-height:1.8;
}

.legal-updated{
  width:min(980px,calc(100% - 40px));
  margin:30px auto 0;
  text-align:right;
  font-size:12px;
  line-height:1.5;
  color:rgba(244,240,232,.62);
}

/* =========================
   23) BACK TO TOP
========================= */

.to-top{
  position:fixed;
  right:32px;
  bottom:160px;
  width:48px;
  height:48px;
  border-radius:999px;
  border:1px solid rgba(244,240,232,.32);
  background:rgba(10,10,10,.18);
  color:rgba(244,240,232,.92);
  display:grid;
  place-items:center;
  cursor:pointer;
  z-index:10001;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  backdrop-filter:blur(12px) saturate(1.1);
  -webkit-backdrop-filter:blur(12px) saturate(1.1);
  box-shadow:none;
}
.to-top.show{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.to-top svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* =========================
   24) RESPONSIVE
========================= */

@media (min-width:820px){
  .nowrap-desktop{white-space:nowrap}
}

@media (min-width:900px){
  .chapter-actions{flex-wrap:nowrap}
}

@media (max-width:980px){
  main{scroll-snap-type:none}

  .split{grid-template-columns:1fr}
  .chapter-content{padding:98px 20px 32px}
  #signature .chapter-content.reveal,
  #coming .chapter-content.reveal{transform:translateY(16px)}
  .chapter-hover{display:none}

  .ritual-steps{height:70vh}

  .gallery-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .tile{grid-column:span 3}
  .tile.featured-wide,
  .tile.featured-full{
    grid-column:span 6;
    aspect-ratio:16 / 10;
  }

  .avail-cards{grid-template-columns:1fr}
  .nav a{display:none}
  .nav-cta{display:inline-flex}
}

@media (max-width:860px){
  .nav{display:none}
  .hamburger{display:inline-grid;place-items:center}

  .header .lang,
  #langBtn,
  .lang-menu{
    display:none;
  }

  .hero-cta-row{
    flex-direction:column;
    align-items:center;
  }
  .hero-cta-row .btn{
    width:min(320px,100%);
  }

  .chapter-actions{
    justify-content:center;
    align-items:center;
  }
  .chapter-actions .btn{
    margin-left:auto;
    margin-right:auto;
  }

  .footer-inner{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    row-gap:16px;
  }

  .footer-brand,
  .footer-brand > div,
  .footer-links,
  .footer-social,
  .footer-meta{
    justify-self:center;
    text-align:center;
    align-items:center;
  }

  .footer-brand{justify-content:center}
  .footer-links{justify-content:center}
  .footer-social{justify-self:center}
  .footer-icons{justify-content:center}

  .footer-meta{font-size:11px}
  .footer-signature{margin-top:18px}
}

@media (max-width:819px){
  .statement-line.nowrap-desktop{white-space:normal}
}

@media (max-width:760px){
  .intro-title{font-size:clamp(38px,10vw,72px)}
}

@media (max-width:720px){
  .to-top{
    right:20px;
    bottom:20px;
    width:44px;
    height:44px;
  }

  .hero-title{gap:10px}
  .hero-title .hero-title-main{
    font-size:clamp(38px,12vw,64px);
  }
  .hero-title .hero-title-top,
  .hero-title .hero-title-bottom{
    font-size:11px;
    letter-spacing:.26em;
  }

  .lb-nav{
    width:42px;
    height:42px;
    font-size:28px;
  }
  .lb-prev{left:10px}
  .lb-next{right:10px}

  .lb-caption{
    margin-top:12px;
    width:min(92vw,560px);
    max-width:min(92vw,560px);
    font-size:15px;
    line-height:1.5;
    text-transform:none;
    letter-spacing:.01em;
    text-align:center;
  }

  .cookie-bar{
    left:16px;
    right:16px;
    width:auto;
    max-width:none;
  }
  .cookie-inner{
    flex-direction:column;
    align-items:stretch;
    text-align:center;
    padding:8.5px 9.5px;
  }
  .cookie-actions{justify-content:center}
  .cookie-text{font-size:10.5px}
  .cookie-btn{
    padding:7px 11px;
    font-size:11px;
  }

  .signup-modal{
    padding-top:16px;
    padding-bottom:16px;
    padding-left:max(16px, env(safe-area-inset-left));
    padding-right:max(16px, env(safe-area-inset-right));
  }
  .signup-panel{
    width:100%;
    max-width:560px;
    padding:30px 20px 22px;
    border-radius:24px;
  }
  .signup-close{
    top:10px;
    right:10px;
    width:42px;
    height:42px;
    font-size:28px;
  }
  .signup-title{font-size:40px}
  .signup-copy{
    font-size:15px;
    line-height:1.6;
    margin-bottom:12px;
  }
  .signup-field input{
    height:52px;
    border-radius:16px;
  }
  .signup-submit,
  .signup-continue{
    width:100%;
    min-width:0;
  }

  .page-legal .ritual-head .section-sub{text-align:justify}
  .page-legal .ritual-head ul,
  .page-legal .ritual-head ol{text-align:left}

  .page-legal .section-title,
  .page-legal h1,
  .page-legal h2,
  .page-legal h3,
  .page-legal h4{
    text-align:center;
  }

  .car-item figcaption{
    text-align:center;
  }

  .ritual-inline{
    text-align:justify;
    text-align-last:auto;
  }

  .car-btn{
    width:42px;
    height:42px;
    font-size:28px;
    top:calc((clamp(240px,46vw,360px) / 2) + 4px);
    background:rgba(244,240,232,.06);
    border-color:rgba(244,240,232,.18);
  }
  .car-btn.prev{left:10px}
  .car-btn.next{right:10px}
}

@media (max-width:680px){
  /* reserved */
}

@media (max-width:640px){
  .car-track{
    padding-left:11vw;
    padding-right:11vw;
  }
  .car-item{scroll-snap-align:center}

  .gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .tile,
  .tile.featured-wide,
  .tile.featured-full{
    grid-column:span 2;
    aspect-ratio:16 / 10;
  }
}

@media (max-width:520px){
  .intro-title{
    white-space:normal;
    line-height:1;
    font-size:clamp(44px,12vw,88px);
  }
  .statement-line.nowrap{white-space:normal}
  .statement-copy{
    font-size:15px;
    line-height:1.65;
    text-align:justify;
    text-align-last:auto;
  }
}

@keyframes heroFadeLift{
  from{opacity:0; transform:translateY(12px)}
  to{opacity:1; transform:none}
}
@keyframes heroRuleIn{
  from{opacity:0; transform:scaleX(.08) scaleY(.38)}
  to{opacity:1; transform:scaleX(1) scaleY(.38)}
}
@keyframes heroDrift{
  from{transform:translate3d(-1.5%, -1%, 0) scale(1.02)}
  to{transform:translate3d(1.5%, 1%, 0) scale(1.06)}
}

@media (prefers-reduced-motion:reduce){
  .hero-title .hero-title-main,
  .hero-title .hero-title-top,
  .hero-title .hero-title-bottom,
  .hero-sub,
  .hero-rule,
  .hero-cta-row{
    animation:none;
  }
  .hero-media::before{
    animation:none;
  }
}