/* ============================================================
   THE REC CENTER — Direction C: Warm Editorial Cinematic
   (combines A's warm daytime base + B's dark cinematic drama)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Bodoni+Moda:ital,opsz,wght@0,6..96,500;1,6..96,500;1,6..96,600&family=Jost:wght@300;400;500;600&family=Hanken+Grotesk:wght@300;400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root{
  /* semantic tokens — redefined inside .dark */
  --bg:        #E3D8CE;
  --surface:   #F5F0E9;
  --surface-2: #ECE4DC;
  --text:      #4D4845;
  --muted:     #6F6862;
  --faint:     #9A9088;
  --hair:      rgba(77,72,69,.15);
  --hair-2:    rgba(77,72,69,.24);
  --accent:    #8C4A3D;
  --accent-2:  #A66256;
  --em:        #8C4A3D;
  --sage:      #7E8C73;

  --display: "Jost", "Hanken Grotesk", sans-serif;
  --serif:   "Bodoni Moda", Georgia, serif;
  --sans:    "Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;
  --num:     "Space Grotesk", "Hanken Grotesk", sans-serif;
  --btn-tex: linear-gradient(rgba(120,62,51,.80), rgba(120,62,51,.86)), url("assets/img/texture.png");
  --green-tex: linear-gradient(rgba(92,108,72,.86), rgba(74,88,58,.92)), url("assets/img/texture.png");
  --metal-tex: linear-gradient(rgba(38,28,21,.62), rgba(22,16,11,.80)), url("assets/img/texture.png");
  --green-text: #5E6E4A;

  --maxw: 1320px;
  --gutter: clamp(20px, 5.2vw, 92px);
  --r: 16px; --r-lg: 28px; --r-xl: 44px;
  --shadow: 0 26px 60px -30px rgba(60,50,44,.45);
}
.dark{
  --bg:        #17120F;
  --surface:   #211A15;
  --surface-2: #271F18;
  --text:      #ECE4DA;
  --muted:     #A89D8E;
  --faint:     #6E665B;
  --hair:      rgba(237,230,221,.14);
  --hair-2:    rgba(237,230,221,.22);
  --accent:    #C2674F;
  --accent-2:  #D8836B;
  --em:        #D8836B;
  --sage:      #AEB7A2;
  background:var(--bg); color:var(--text);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:var(--sans); font-size:17px; line-height:1.68; font-weight:400;
  letter-spacing:.005em; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ margin:0; font-weight:400; }
p{ margin:0; text-wrap:pretty; }
ul{ margin:0; padding:0; list-style:none; }
::selection{ background:var(--accent); color:#fff; }

/* atoms */
.wrapc{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); }
.section{ padding-block:clamp(78px,11vw,156px); }

.kicker{ font-family:var(--sans); font-size:11.5px; font-weight:600; letter-spacing:.3em; text-transform:uppercase; color:var(--accent); display:inline-flex; align-items:center; gap:.9em; }
.kicker::before{ display:none; }
.kicker.bare::before{ display:none; }
.kicker.sage{ color:var(--sage); }

.disp{ font-family:var(--display); font-weight:400; line-height:1.0; letter-spacing:-.02em; color:var(--text); }
.disp em{ font-family:var(--serif); font-style:italic; font-weight:500; color:var(--em); letter-spacing:0; }

.lead{ font-size:clamp(18px,2.1vw,21px); line-height:1.6; color:var(--muted); max-width:54ch; }

.btnc{
  display:inline-flex; align-items:center; justify-content:center; gap:.75em;
  font-family:var(--sans); font-weight:600; font-size:12.5px; letter-spacing:.16em; text-transform:uppercase;
  padding:18px 34px; border-radius:100px; cursor:pointer;
  color:#fff; border:1px solid #6E3B30;
  background-color:#7A4035; background-image:var(--btn-tex); background-size:cover,200px; background-position:center;
  transition:transform .35s cubic-bezier(.2,.7,.3,1), box-shadow .35s, filter .35s, color .35s, border-color .35s;
  white-space:nowrap;
}
.btnc:hover{ transform:translateY(-3px); filter:brightness(1.12) saturate(1.05); box-shadow:0 16px 30px -16px rgba(110,59,48,.7); }
.btnc--ghost{ background:transparent; color:var(--text); border-color:var(--hair-2); }
.btnc--ghost:hover{ background:var(--text); color:var(--bg); border-color:var(--text); filter:none; box-shadow:none; }
.btnc .arw{ transition:transform .35s; } .btnc:hover .arw{ transform:translateX(4px); }

/* photo frame */
.framec{ position:relative; overflow:hidden; border-radius:var(--r-lg); background:var(--surface-2); border:1px solid var(--hair); box-shadow:var(--shadow); isolation:isolate; }
.framec img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; transition:transform .9s cubic-bezier(.2,.7,.3,1); }
.framec:hover img{ transform:scale(1.05); }
.framec--ph{ background-image:repeating-linear-gradient(135deg, rgba(77,72,69,.05) 0 2px, transparent 2px 17px); display:flex; align-items:flex-end; }
.dark .framec--ph{ background-image:repeating-linear-gradient(135deg, rgba(237,230,221,.05) 0 2px, transparent 2px 17px); }
.framec--ph .phtag{ position:relative; z-index:2; margin:16px; font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:10.5px; letter-spacing:.05em; color:var(--muted); background:var(--surface); border:1px solid var(--hair); padding:7px 11px; border-radius:7px; text-transform:uppercase; }

/* ============================================================ NAV */
.navc{ position:fixed; inset:0 0 auto 0; z-index:80; color:#F5F0E9; transition:background .4s, color .4s, border-color .4s, backdrop-filter .4s; border-bottom:1px solid transparent; }
.navc.stuck{ background:rgba(245,240,233,.86); backdrop-filter:blur(16px) saturate(120%); color:#4D4845; border-bottom-color:rgba(77,72,69,.14); }
.navc__in{ max-width:var(--maxw); margin:0 auto; padding:16px var(--gutter); display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brandc{ display:flex; align-items:center; gap:12px; }
.brandc img{ height:40px; width:auto; display:block; }
.brandc span{ font-size:9.5px; font-weight:600; letter-spacing:.28em; text-transform:uppercase; color:currentColor; opacity:.7; }
.navc__links{ display:none; gap:38px; align-items:center; }
.navc__links a{ font-size:12.5px; font-weight:500; letter-spacing:.05em; color:currentColor; opacity:.82; position:relative; padding-block:6px; transition:opacity .3s; }
.navc__links a::after{ content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background:#C2674F; transition:width .35s; }
.navc__links a:hover{ opacity:1; } .navc__links a:hover::after{ width:100%; }
.navc__cta{ display:inline-flex; }
.navc .btnc{ padding:12px 24px; font-size:11px; color:#fff; }
.navc .btnc:hover{ filter:brightness(1.12) saturate(1.05); }
@media(min-width:1000px){ .navc__links{ display:flex; } }

/* ============================================================ HERO (dark cinematic) */
.heroc{ position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; background:#17120F; color:#ECE4DA; }
.heroc__bg{ position:absolute; inset:0; z-index:0; }
.heroc__bg img{ width:100%; height:100%; object-fit:cover; transform:scale(1.08); transform-origin:center 40%; }
.heroc__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(23,18,15,.97) 2%, rgba(23,18,15,.42) 44%, rgba(23,18,15,.5) 100%), linear-gradient(to right, rgba(23,18,15,.72), transparent 58%); }
.heroc__in{ position:relative; z-index:2; width:100%; padding-top:148px; padding-bottom:clamp(48px,7vw,92px); }
.heroc__logo{ height:clamp(64px,8vw,106px); width:auto; margin-bottom:30px; }
.heroc .kicker{ color:#D8836B; } .heroc .kicker::before{ background:#D8836B; }
.heroc h1{ font-family:var(--display); font-weight:400; font-size:clamp(28px,3.7vw,52px); line-height:1.12; letter-spacing:-.02em; max-width:none; }
.heroc h1 em{ font-family:var(--serif); font-style:italic; font-weight:500; color:#E79A82; letter-spacing:0; }
.heroc__sub{ margin-top:28px; max-width:48ch; font-size:clamp(17px,2vw,20px); color:#C9BEB1; }
.heroc__actions{ margin-top:38px; display:flex; flex-wrap:wrap; gap:14px; }
.heroc .btnc--ghost{ background:transparent; color:#ECE4DA; border-color:rgba(237,230,221,.3); }
.heroc .btnc--ghost:hover{ background:#ECE4DA; color:#17120F; border-color:#ECE4DA; }

.cd{ margin-top:50px; padding-top:30px; border-top:1px solid rgba(237,230,221,.16); display:flex; align-items:center; gap:clamp(18px,4vw,46px); flex-wrap:wrap; }
.cd--center{ justify-content:center; text-align:center; }
.cd__lab{ font-size:11px; letter-spacing:.26em; text-transform:uppercase; color:#9A8F82; display:flex; align-items:center; gap:9px; }
.cd__lab::before{ content:""; width:7px; height:7px; border-radius:50%; background:#C2674F; box-shadow:0 0 0 4px rgba(194,103,79,.25); }
.cd__row{ display:flex; align-items:baseline; gap:clamp(14px,3vw,32px); }
.cd__u{ text-align:center; }
.cd__u b{ font-family:var(--num); font-weight:600; font-size:clamp(32px,4.6vw,52px); line-height:1; display:block; font-variant-numeric:tabular-nums; letter-spacing:-.01em; color:#ECE4DA; }
.cd__u span{ font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; color:#8C8175; margin-top:8px; display:block; }
.cd__sep{ width:1px; height:38px; background:rgba(237,230,221,.16); }

/* ============================================================ section heads */
.headc--center{ text-align:center; max-width:880px; margin:0 auto; }
.headc--center .kicker{ justify-content:center; }

/* ============================================================ VISION (light, text-led) */
.visionc{ background:var(--surface); border-top:1px solid var(--hair); }
.visionc__grid{ display:grid; gap:clamp(20px,4vw,64px); align-items:start; }
.visionc h2{ font-size:clamp(38px,5.8vw,80px); }
.visionc__body{ margin-top:8px; display:grid; gap:20px; max-width:56ch; }
.visionc__body p{ color:var(--muted); font-size:clamp(17px,1.9vw,19.5px); }
.statsc{ margin-top:42px; display:grid; grid-template-columns:repeat(2,1fr); gap:16px; border-top:1px solid var(--hair); padding-top:34px; }
.statc{ position:relative; overflow:hidden; padding:22px 20px; border-radius:16px;
  background:linear-gradient(150deg, rgba(255,255,255,.55), rgba(255,255,255,.28));
  backdrop-filter:blur(12px) saturate(130%); -webkit-backdrop-filter:blur(12px) saturate(130%);
  border:1px solid rgba(255,255,255,.65);
  box-shadow:0 14px 34px -22px rgba(60,50,44,.5), inset 0 1px 0 rgba(255,255,255,.7);
  transition:transform .45s cubic-bezier(.2,.7,.3,1), box-shadow .45s, background .45s; cursor:default; }
.statc::before{ content:""; position:absolute; left:0; top:0; height:3px; width:0; background:var(--sage); border-radius:0 0 3px 0; transition:width .5s cubic-bezier(.2,.7,.3,1); z-index:2; }
.statc:hover::before{ width:100%; }
.statc::after{ content:""; position:absolute; inset:0; border-radius:inherit; background:linear-gradient(150deg, rgba(255,255,255,.5), transparent 42%); opacity:.6; pointer-events:none; }
.statc:hover{ transform:translateY(-6px); box-shadow:0 26px 50px -24px rgba(60,50,44,.55), inset 0 1px 0 rgba(255,255,255,.8); background:linear-gradient(150deg, rgba(255,255,255,.7), rgba(255,255,255,.38)); }
.statc b{ font-family:var(--serif); font-style:italic; font-weight:500; font-size:clamp(34px,5vw,56px); color:var(--accent); line-height:1; display:block; font-variant-numeric:tabular-nums; transition:color .45s; position:relative; z-index:1; }
.statc span{ font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:#6F6862; margin-top:8px; display:block; white-space:nowrap; transition:color .45s; position:relative; z-index:1; }
.statc:hover b{ color:var(--accent-2); }
.statc:hover span{ color:var(--text); }
.statc b{ font-family:var(--num); font-style:normal; font-weight:600; letter-spacing:-.01em; }
@media(min-width:900px){ .visionc__grid{ grid-template-columns:1fr 1fr; } }

/* ============================================================ WORLDS (light editorial) */
.worldsc{ border-top:1px solid var(--hair); }
.worldsc__head{ margin-bottom:clamp(38px,5vw,64px); }
.worldsc__head .kicker{ margin-bottom:20px; }
.worldsc__head h2{ font-size:clamp(40px,6.4vw,92px); }
.worldsc__head p{ color:var(--muted); margin:24px auto 0; max-width:60ch; font-size:clamp(17px,1.9vw,19px); }

.wlistc{ display:grid; gap:0; margin-bottom:clamp(44px,6vw,80px); border-top:1px solid var(--hair); }
.wlistc a{ display:flex; align-items:baseline; gap:18px; padding:18px 6px; border-bottom:1px solid var(--hair); color:var(--text); transition:padding .4s cubic-bezier(.2,.7,.3,1), background .4s; }
.wlistc a:hover{ padding-left:22px; background:linear-gradient(to right, rgba(140,74,61,.08), transparent 70%); }
.wlistc .wn{ font-family:var(--serif); font-style:italic; font-size:15px; color:var(--accent); flex:none; width:34px; }
.wlistc .wt{ font-family:var(--display); font-weight:500; font-size:clamp(19px,2.3vw,25px); }
.wlistc .wc{ margin-left:auto; font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--faint); align-self:center; }
.wlistc a:hover .wc{ color:var(--sage); }

.worldc{ display:grid; gap:clamp(28px,4vw,68px); align-items:center; padding-block:clamp(48px,6vw,92px); border-top:1px solid var(--hair); }
.worldc__media{ position:relative; }
.worldc__media .framec{ aspect-ratio:4/5; }
/* brand green accent border on one side, pops in with entrance */
.worldc__media .framec::before{ content:""; position:absolute; z-index:4; top:0; bottom:0; left:0; width:7px; background:var(--sage); transform-origin:top; }
.worldc--rev .worldc__media .framec::before{ left:auto; right:0; }
.worldc__logo{ height:clamp(40px,4.6vw,58px); width:auto; max-width:240px; object-fit:contain; object-position:left center; display:block; margin-bottom:20px; }
.worldc__head{ display:flex; align-items:baseline; gap:16px; margin-bottom:16px; }
.worldc__num{ font-family:var(--serif); font-style:italic; font-size:clamp(40px,5vw,66px); color:transparent; -webkit-text-stroke:1px var(--hair-2); line-height:.8; }
.worldc__cat{ font-size:11.5px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--accent); padding-top:10px; }
.worldc h3{ font-family:var(--display); font-weight:400; font-size:clamp(34px,4.6vw,60px); line-height:1; margin-bottom:8px; letter-spacing:-.02em; }
.worldc h3 em{ font-family:var(--serif); font-style:italic; font-weight:500; color:var(--em); letter-spacing:0; }
.worldc__copy{ display:grid; gap:16px; margin-top:18px; max-width:58ch; }
.worldc__copy .kk{ font-family:var(--serif); font-style:italic; font-size:clamp(19px,2.1vw,23px); color:var(--text); line-height:1.35; }
.worldc__copy p{ color:var(--muted); font-size:16.5px; }
.worldc__copy p:not(.kk):not(.closer){ text-align:justify; text-justify:inter-word; hyphens:auto; }
.worldc__copy .closer{ color:var(--green-text); font-weight:600; font-size:17.5px; letter-spacing:.005em; }
.worldc__tags{ margin-top:28px; display:flex; flex-wrap:wrap; gap:10px 0; border-top:1px solid var(--hair); padding-top:22px; }
.worldc__tags li{ font-size:12px; letter-spacing:.04em; color:var(--muted); padding-right:18px; margin-right:18px; border-right:1px solid var(--hair); transition:color .3s; }
.worldc__tags li:hover{ color:var(--accent); }
.worldc__tags li:last-child{ border-right:0; margin-right:0; }
@media(min-width:900px){ .worldc{ grid-template-columns:1fr 1fr; } .worldc--rev .worldc__media{ order:2; } }

/* ============================================================ DAY (dark cinematic + faded photo) */
.dayc{ position:relative; overflow:hidden; border-top:1px solid var(--hair); }
.dayc__bg{ position:absolute; inset:0; z-index:0; }
.dayc__bg img{ width:100%; height:100%; object-fit:cover; object-position:center 38%; }
.dayc__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(to bottom, rgba(23,18,15,.97) 0%, rgba(23,18,15,.82) 26%, rgba(23,18,15,.78) 60%, rgba(23,18,15,.97) 100%); }
.dayc > .wrapc{ position:relative; z-index:2; }
.dayc__head{ text-align:center; margin-bottom:clamp(44px,6vw,80px); }
.dayc__head h2{ font-size:clamp(40px,6.2vw,82px); }
.dayc__head p{ color:var(--muted); max-width:48ch; margin:18px auto 0; }
.tlc{ position:relative; max-width:940px; margin:0 auto; }
.tlc::before{ content:""; position:absolute; left:9px; top:6px; bottom:6px; width:1px; background:linear-gradient(var(--accent), var(--sage)); opacity:.55; }
.tlrow{ position:relative; padding:30px 0 30px 48px; border-bottom:1px solid var(--hair); display:grid; gap:8px; }
.tlrow:last-child{ border-bottom:0; }
.tlrow::before{ content:""; position:absolute; left:3px; top:38px; width:13px; height:13px; border-radius:50%; background:var(--bg); border:1px solid var(--hair-2); transition:transform .45s cubic-bezier(.2,.7,.3,1), background .45s, box-shadow .45s, border-color .45s; }
.tlrow__time{ font-family:var(--serif); font-style:italic; font-size:clamp(26px,3.2vw,40px); color:var(--sage); transition:color .45s; }
.tlrow__title{ font-size:12.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--text); font-weight:600; transition:color .45s; }
.tlrow__desc{ color:var(--muted); font-size:15.5px; max-width:54ch; }
.tlc.is-scroll .tlrow{ opacity:.36; transition:opacity .5s; }
.tlc.is-scroll .tlrow.is-active{ opacity:1; }
.tlrow.is-active::before{ background:var(--accent); border-color:var(--accent); transform:scale(1.5); box-shadow:0 0 0 7px rgba(194,103,79,.22); }
.tlrow.is-active .tlrow__time{ color:var(--accent-2); }
.tlrow.is-active .tlrow__title{ color:var(--sage); }
@media(min-width:780px){
  .tlc::before{ left:50%; }
  .tlrow{ width:50%; padding:34px 52px; }
  .tlrow:nth-child(odd){ left:0; text-align:right; }
  .tlrow:nth-child(odd) .tlrow__desc{ margin-left:auto; }
  .tlrow:nth-child(even){ left:50%; }
  .tlrow:nth-child(odd)::before{ left:auto; right:-6.5px; }
  .tlrow:nth-child(even)::before{ left:-6.5px; }
}

/* ============================================================ MEMBERSHIP (metallic textured cards) */
.memc{ background:var(--surface); border-top:1px solid var(--hair); }
.memc__head{ display:grid; gap:22px; margin-bottom:clamp(40px,5vw,60px); }
.memc__head h2{ font-size:clamp(38px,5.6vw,76px); }
.memc__grid{ display:grid; gap:14px; grid-template-columns:1fr; }
.mcardc{ position:relative; overflow:hidden; border-radius:var(--r); padding:24px 22px 26px;
  background-color:#F1EAE1; background-image:linear-gradient(rgba(245,240,233,.90), rgba(233,224,214,.93)), url("assets/img/texture.png"); background-size:cover,240px; background-position:center;
  border:1px solid var(--hair); color:var(--text);
  transition:transform .45s cubic-bezier(.2,.7,.3,1), box-shadow .45s; }
.mcardc::before{ content:""; position:absolute; left:0; top:0; height:3px; width:0; background:var(--sage); transition:width .5s cubic-bezier(.2,.7,.3,1); }
.mcardc:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.mcardc:hover::before{ width:100%; }
.mcardc__no{ font-family:var(--serif); font-style:italic; font-size:16px; color:var(--accent); }
.mcardc h3{ font-family:var(--display); font-weight:500; font-size:22px; margin:11px 0 8px; color:var(--text); }
.mcardc p{ color:var(--muted); font-size:14.5px; line-height:1.6; }
@media(min-width:640px){ .memc__head{ grid-template-columns:1fr 1fr; align-items:end; } .memc__grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1000px){ .memc__grid{ grid-template-columns:repeat(3,1fr); } }

/* ============================================================ GATHER (dark full-bleed) */
.gatherc{ position:relative; overflow:hidden; background:#17120F; color:#ECE4DA; }
.gatherc__bg{ position:absolute; inset:0; z-index:0; }
.gatherc__bg img{ width:100%; height:100%; object-fit:cover; }
.gatherc__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(to right, rgba(23,18,15,.95) 8%, rgba(23,18,15,.6) 60%, rgba(23,18,15,.38)); }
.gatherc__in{ position:relative; z-index:2; padding-block:clamp(96px,14vw,196px); }
.gatherc .kicker{ color:#D8836B; } .gatherc .kicker::before{ background:#D8836B; }
.gatherc h2{ font-family:var(--display); font-weight:400; letter-spacing:-.02em; color:#ECE4DA; font-size:clamp(40px,6.2vw,90px); max-width:14ch; line-height:1; }
.gatherc h2 em{ font-family:var(--serif); font-style:italic; font-weight:500; color:#E79A82; letter-spacing:0; }
.gatherc__body{ margin-top:26px; display:grid; gap:18px; max-width:50ch; }
.gatherc__body p{ color:#D2C8BC; font-size:clamp(16.5px,1.9vw,18.5px); }
.gatherc__pills{ margin-top:30px; display:flex; flex-wrap:wrap; gap:10px; }
.gatherc__pills li{ padding:9px 18px; border:1px solid rgba(237,230,221,.22); border-radius:100px; font-size:13px; color:#ECE4DA; transition:background .3s, color .3s, border-color .3s; }
.gatherc__pills li:hover{ background:#C2674F; border-color:#C2674F; color:#fff; }

/* ============================================================ FAQ (light) */
.faqc{ border-top:1px solid var(--hair); }
.faqc__grid{ display:grid; gap:clamp(30px,4vw,60px); }
.faqc__intro h2{ font-size:clamp(38px,5.6vw,72px); }
.faqc__intro p{ margin-top:20px; color:var(--muted); max-width:40ch; }
.faqc details{ border-top:1px solid var(--hair); }
.faqc details:last-child{ border-bottom:1px solid var(--hair); }
.faqc summary{ list-style:none; cursor:pointer; padding:26px 48px 26px 0; position:relative; font-family:var(--display); font-size:clamp(21px,2.5vw,28px); font-weight:500; transition:color .3s; }
.faqc summary::-webkit-details-marker{ display:none; }
.faqc summary::after{ content:"+"; position:absolute; right:2px; top:50%; transform:translateY(-50%); font-family:var(--sans); font-size:26px; font-weight:300; color:var(--accent); transition:transform .35s; }
.faqc details[open] summary::after{ transform:translateY(-50%) rotate(45deg); }
.faqc summary:hover{ color:var(--accent); }
.faqc__a{ margin:0 0 18px; padding:22px 26px; border-radius:14px; color:#fff; font-size:16.5px; line-height:1.62; max-width:62ch;
  background-color:#4E5C3C; background-image:var(--green-tex); background-size:cover,240px; background-position:center; }
@media(min-width:900px){ .faqc__grid{ grid-template-columns:.8fr 1.2fr; } }

/* ============================================================ FINAL (textured brand + sage) */
.finalc{ position:relative; overflow:hidden; background-color:#2A1B14; color:#ECE4DA; text-align:center; }
.finalc__bg{ position:absolute; inset:0; z-index:0; background:url("assets/img/texture.png") center/460px repeat; }
.finalc__bg::after{ content:""; position:absolute; inset:0; background:radial-gradient(125% 100% at 50% 36%, rgba(126,140,115,.34), transparent 58%), linear-gradient(rgba(20,13,9,.72), rgba(20,13,9,.86)); }
.finalc__in{ position:relative; z-index:2; max-width:900px; margin:0 auto; }
.finalc .kicker{ color:#D8836B; justify-content:center; } .finalc .kicker::before{ background:#D8836B; }
.finalc h2{ font-family:var(--display); font-weight:400; letter-spacing:-.02em; font-size:clamp(48px,8.4vw,122px); line-height:.98; margin-top:24px; color:#ECE4DA; }
.finalc h2 em{ font-family:var(--serif); font-style:italic; font-weight:500; color:#E79A82; letter-spacing:0; white-space:nowrap; }
.finalc p{ margin:28px auto 0; max-width:48ch; color:#C9BEB1; font-size:clamp(17px,2vw,20px); }
/* glowing loading line */
.loadline{ position:relative; width:min(440px,82%); height:3px; margin:34px auto 0; border-radius:4px; background:rgba(237,230,221,.16); overflow:visible; }
.loadline__fill{ position:absolute; left:0; top:0; height:100%; width:2%; border-radius:4px;
  background:linear-gradient(90deg, rgba(216,131,107,.12), #E79A82); }
.loadline__fill::after{ content:""; position:absolute; right:-4px; top:50%; transform:translateY(-50%); width:11px; height:11px; border-radius:50%; background:#F4D2C4;
  box-shadow:0 0 10px 2px rgba(231,154,130,.95), 0 0 22px 6px rgba(216,131,107,.55); }
.loadline__pct{ position:absolute; right:0; top:-22px; font-family:var(--num); font-size:11px; letter-spacing:.06em; color:#C9BEB1; font-variant-numeric:tabular-nums; }
.loadline__fill{ transition:width 1.6s cubic-bezier(.2,.7,.3,1); }
.cd .loadline{ flex-basis:100%; margin:10px 0 0; }
.finalc__actions{ margin-top:42px; display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
.finalc .btnc--ghost{ background:transparent; color:#ECE4DA; border-color:rgba(237,230,221,.3); }
.finalc .btnc--ghost:hover{ background:#ECE4DA; color:#17120F; border-color:#ECE4DA; }
.finalc__meta{ margin-top:44px; padding-top:26px; border-top:1px solid rgba(237,230,221,.16); display:flex; gap:14px 30px; justify-content:center; flex-wrap:wrap; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#8C8175; }

/* ============================================================ FOOTER (dark) */
.footc{ position:relative; background-color:#120E0B; background-image:var(--metal-tex); background-size:cover,300px; background-position:center; color:#ECE4DA; padding-block:clamp(56px,7vw,84px) 30px; }
.footc__grid{ display:grid; gap:40px; grid-template-columns:1fr; }
.footc__brand img{ height:48px; width:auto; margin-bottom:20px; }
.footc__brand p{ color:#A89D8E; font-size:14.5px; max-width:34ch; }
.footc__col h4{ font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:#AEB7A2; margin-bottom:16px; font-weight:600; }
.footc__col ul{ display:grid; gap:11px; }
.footc__col a, .footc__col li{ color:#A89D8E; font-size:14.5px; transition:color .3s; }
.footc__col a:hover{ color:#ECE4DA; }
.socialsc{ display:flex; gap:10px; margin-top:6px; }
.socialsc a{ width:42px; height:42px; border-radius:50%; border:1px solid rgba(237,230,221,.22); display:grid; place-items:center; color:#A89D8E; transition:background .3s, color .3s, border-color .3s, transform .3s; }
.socialsc a:hover{ background:#ECE4DA; color:#120E0B; border-color:#ECE4DA; transform:translateY(-2px); }
.socialsc svg{ width:18px; height:18px; display:block; }
.footc__bar{ margin-top:54px; padding-top:24px; border-top:1px solid rgba(237,230,221,.14); display:flex; flex-wrap:wrap; gap:12px 24px; justify-content:space-between; font-size:12.5px; color:#6E665B; }
@media(min-width:760px){ .footc__grid{ grid-template-columns:1.6fr 1fr 1fr 1.2fr; } }

/* compare pill */
.comparec{ position:fixed; right:18px; bottom:18px; z-index:90; display:inline-flex; align-items:center; gap:8px; background:rgba(245,240,233,.9); backdrop-filter:blur(12px); color:#4D4845; border:1px solid rgba(77,72,69,.18); border-radius:100px; padding:11px 18px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; box-shadow:0 18px 40px -20px rgba(60,50,44,.5); transition:background .3s, color .3s, transform .3s; }
.comparec:hover{ background:#8C4A3D; color:#fff; transform:translateY(-2px); }
.comparec b{ font-weight:700; color:#8C4A3D; } .comparec:hover b{ color:#fff; }

@media(prefers-reduced-motion:no-preference){
  .rise{ opacity:0; transform:translateY(28px); animation:risec .9s cubic-bezier(.2,.7,.3,1) forwards; }
  .js-anim .worldc__media .framec::before{ transform:scaleY(0); }
  .js-anim .worldc__media.inview .framec::before{ animation:barpop .95s .15s cubic-bezier(.2,.7,.3,1) forwards; }
  @keyframes barpop{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }
  @keyframes risec{ to{ opacity:1; transform:none; } }
  /* H1 / section-title reveal on scroll-in (transition-based: end state is visible) */
  .js-anim .titlefx{ opacity:0; transform:translateY(34px); transition:opacity 1s cubic-bezier(.2,.75,.25,1), transform 1s cubic-bezier(.2,.75,.25,1); }
  .js-anim .titlefx.inview{ opacity:1; transform:none; }
  .js-anim .titlefx em{ display:inline-block; opacity:0; transform:translateY(26px); transition:opacity 1s .16s cubic-bezier(.2,.75,.25,1), transform 1s .16s cubic-bezier(.2,.75,.25,1); }
  .js-anim .titlefx.inview em{ opacity:1; transform:none; }
}

/* ============================================================ WAITLIST MODAL */
.wlm{ position:fixed; inset:0; z-index:120; display:none; align-items:center; justify-content:center; padding:20px; }
.wlm.open{ display:flex; }
.wlm__veil{ position:absolute; inset:0; background:rgba(18,14,11,.62); backdrop-filter:blur(6px); opacity:0; transition:opacity .4s; }
.wlm.open .wlm__veil{ opacity:1; }
.wlm__dialog{
  position:relative; z-index:2; width:min(960px,100%); max-height:92svh; overflow:hidden;
  display:grid; grid-template-columns:1fr; border-radius:var(--r-xl);
  background:var(--surface); color:var(--text); box-shadow:0 50px 120px -40px rgba(20,12,8,.8);
  transform:translateY(24px) scale(.98); opacity:0; transition:transform .5s cubic-bezier(.2,.7,.3,1), opacity .4s;
}
.wlm.open .wlm__dialog{ transform:none; opacity:1; }

/* aside (dark, branded, textured) */
.wlm__aside{ position:relative; overflow:hidden; background:#17120F; color:#ECE4DA; padding:40px 36px; display:none; flex-direction:column; justify-content:flex-end; gap:26px; min-height:100%; }
.wlm__aside .wlm__bg{ position:absolute; inset:0; z-index:0; background:url("assets/img/form.png") center/cover no-repeat; }
.wlm__aside .wlm__bg::after{ content:""; position:absolute; inset:0; background:radial-gradient(120% 90% at 50% 20%, rgba(126,140,115,.20), transparent 60%), linear-gradient(to bottom, rgba(23,18,15,.62), rgba(23,18,15,.9)); }
.wlm__aside > *{ position:relative; z-index:2; }
.wlm__aside img.wlm__logo{ height:48px; width:auto; }
.wlm__aside h3{ font-family:var(--display); font-weight:400; letter-spacing:-.02em; font-size:34px; line-height:1.02; }
.wlm__aside h3 em{ font-family:var(--serif); font-style:italic; font-weight:500; color:#E79A82; letter-spacing:0; }
.wlm__aside p{ color:#C9BEB1; font-size:14.5px; margin-top:14px; max-width:34ch; }
.wlm__perks{ display:grid; gap:12px; margin-top:8px; }
.wlm__perks li{ font-size:13.5px; color:#D2C8BC; display:flex; align-items:baseline; gap:11px; }
.wlm__perks li::before{ content:""; width:6px; height:6px; border-radius:50%; background:#C2674F; flex:none; transform:translateY(-1px); }

/* form body */
.wlm__body{ padding:clamp(28px,4vw,44px); overflow-y:auto; max-height:92svh; }
.wlm__close{ position:absolute; top:16px; right:16px; z-index:5; width:42px; height:42px; border-radius:50%; border:1px solid var(--hair-2); background:var(--surface); color:var(--text); font-size:20px; line-height:1; cursor:pointer; display:grid; place-items:center; transition:background .3s, color .3s, transform .3s; }
.wlm__close:hover{ background:var(--accent); color:#fff; border-color:var(--accent); transform:rotate(90deg); }
.wlm__formlogo{ height:42px; width:auto; display:block; margin-bottom:20px; }
.wlm__eyebrow{ font-size:11px; font-weight:600; letter-spacing:.3em; text-transform:uppercase; color:var(--accent); }
.wlm__title{ font-family:var(--display); font-weight:400; letter-spacing:-.02em; font-size:clamp(26px,3.4vw,36px); margin:12px 0 6px; }
.wlm__title em{ font-family:var(--serif); font-style:italic; font-weight:500; color:var(--em); letter-spacing:0; }
.wlm__sub{ color:var(--muted); font-size:14.5px; margin-bottom:24px; }
.wlm__grid{ display:grid; gap:16px 18px; grid-template-columns:1fr; }
.field{ display:grid; gap:7px; }
.field.col-2{ grid-column:1 / -1; }
.field label{ font-size:11.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.field label .req{ color:var(--accent); }
.field input, .field select, .field textarea{
  font-family:var(--sans); font-size:15px; color:var(--text);
  background:var(--bg); border:1px solid var(--hair-2); border-radius:12px;
  padding:13px 15px; width:100%; transition:border-color .3s, box-shadow .3s, background .3s;
  appearance:none; -webkit-appearance:none;
}
.field textarea{ resize:vertical; min-height:84px; }
.field input::placeholder, .field textarea::placeholder{ color:var(--faint); }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(140,74,61,.16); background:var(--surface); }
.field.select-wrap{ position:relative; }
.field.select-wrap::after{ content:""; position:absolute; right:16px; bottom:18px; width:9px; height:9px; border-right:1.5px solid var(--muted); border-bottom:1.5px solid var(--muted); transform:rotate(45deg); pointer-events:none; }
.field select{ cursor:pointer; }
.wlm__actions{ margin-top:26px; display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.wlm__actions .btnc{ flex:1 1 auto; }
.wlm__fine{ margin-top:16px; font-size:12px; color:var(--faint); line-height:1.5; }
.wlm__success{ display:none; text-align:center; padding:30px 6px 8px; }
.wlm__success.show{ display:block; }
.wlm__success .tick{ width:64px; height:64px; border-radius:50%; background:var(--accent); color:#fff; display:grid; place-items:center; margin:0 auto 22px; font-size:30px; }
.wlm__success h3{ font-family:var(--display); font-weight:400; font-size:30px; letter-spacing:-.02em; }
.wlm__success h3 em{ font-family:var(--serif); font-style:italic; color:var(--em); }
.wlm__success p{ color:var(--muted); font-size:15px; margin:12px auto 0; max-width:40ch; }
@media(min-width:760px){
  .wlm__dialog{ grid-template-columns:.82fr 1.18fr; }
  .wlm__aside{ display:flex; }
  .wlm__grid{ grid-template-columns:1fr 1fr; }
}
body.modal-open{ overflow:hidden; }

/* ============================================================ PAGE LOADER */
.loader{ position:fixed; inset:0; z-index:200; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:28px; background:#17120F; transition:opacity .65s ease, visibility .65s; }
.loader.hide{ opacity:0; visibility:hidden; pointer-events:none; }
.loader img{ height:clamp(84px,14vw,132px); width:auto; }
@media(prefers-reduced-motion:no-preference){
  .loader img{ animation:loaderpulse 1.8s ease-in-out infinite; }
  @keyframes loaderpulse{ 0%,100%{ opacity:.72; transform:scale(.985); } 50%{ opacity:1; transform:scale(1); } }
}
.loader__bar{ width:min(220px,56%); height:2px; border-radius:2px; background:rgba(237,230,221,.14); overflow:hidden; }
.loader__bar i{ display:block; height:100%; width:42%; border-radius:2px; background:linear-gradient(90deg, rgba(231,154,130,.25), #E79A82); animation:loaderslide 1.15s ease-in-out infinite; }
@keyframes loaderslide{ 0%{ transform:translateX(-110%); } 100%{ transform:translateX(260%); } }

/* ============================================================ MEMBERSHIP PACKAGE CARDS */
.memc__grid--pkg{ grid-template-columns:1fr; gap:18px; }
@media(min-width:760px){ .memc__grid--pkg{ grid-template-columns:1fr 1fr; } }
.pkgcard{ position:relative; overflow:hidden; border-radius:18px; padding:34px 30px 34px;
  background-color:#F1EAE1; background-image:linear-gradient(rgba(245,240,233,.9),rgba(233,224,214,.93)), url("assets/img/texture.png"); background-size:cover,240px; background-position:center;
  border:1px solid var(--hair); color:var(--text); display:flex; flex-direction:column; gap:20px;
  transition:transform .45s cubic-bezier(.2,.7,.3,1), box-shadow .45s; }
.pkgcard::before{ content:""; position:absolute; left:0; top:0; height:3px; width:0; background:var(--sage); transition:width .5s cubic-bezier(.2,.7,.3,1); }
.pkgcard:hover{ transform:translateY(-7px); box-shadow:var(--shadow); }
.pkgcard:hover::before{ width:100%; }
.pkgcard__tag{ position:absolute; top:18px; right:20px; z-index:2; font-size:10px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:#fff; background:var(--accent); padding:6px 13px; border-radius:100px; }
.pkgcard h3{ font-family:var(--display); font-weight:500; font-size:27px; white-space:nowrap; }
.pkgcard__price{ display:flex; align-items:baseline; gap:9px; border-bottom:1px solid var(--hair); padding-bottom:20px; }
.pkgcard__price b{ font-family:var(--num); font-weight:600; font-size:clamp(42px,6vw,60px); color:var(--accent); line-height:1; }
.pkgcard__price span{ font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--faint); }
.pkgcard__list{ display:grid; gap:13px; }
.pkgcard__list li{ position:relative; padding-left:24px; color:var(--muted); font-size:15px; line-height:1.5; }
.pkgcard__list li::before{ content:""; position:absolute; left:0; top:8px; width:7px; height:7px; border-radius:50%; background:var(--sage); }
.pkgcard .btnc{ margin-top:auto; }

/* ============================================================ MAILING LIST BAND */
.mailc{ position:relative; overflow:hidden; border-top:1px solid var(--hair);
  background-color:#4E5C3C; background-image:var(--green-tex); background-size:cover,260px; background-position:center; color:#fff; }
.mailc__in{ position:relative; z-index:2; max-width:760px; margin:0 auto; text-align:center; }
.mailc .kicker{ color:#EAE5D9; justify-content:center; }
.mailc h2{ color:#fff; font-size:clamp(36px,5.4vw,70px); }
.mailc h2 em{ color:#F4D9CB; }
.mailc p{ color:rgba(255,255,255,.88); max-width:54ch; margin:22px auto 0; font-size:clamp(16.5px,1.9vw,18.5px); }
.mailc__form{ margin:34px auto 0; display:flex; gap:12px; flex-wrap:wrap; justify-content:center; max-width:540px; }
.mailc__form input{ flex:1 1 240px; font-family:var(--sans); font-size:15px; color:#fff; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.42); border-radius:100px; padding:15px 22px; }
.mailc__form input::placeholder{ color:rgba(255,255,255,.72); }
.mailc__form input:focus{ outline:none; border-color:#fff; background:rgba(255,255,255,.18); }
.mailc__note{ margin-top:18px; font-size:14px; color:#fff; min-height:1.2em; font-weight:500; }

/* mailing list folded into the dark final section */
.finalc__mail{ margin-top:40px; padding-top:30px; border-top:1px solid rgba(237,230,221,.16); }
.finalc__mailcopy{ color:#C9BEB1; font-size:15px; max-width:52ch; margin:0 auto; }
.finalc__mail .mailc__form{ margin-top:22px; }
.finalc__mail .mailc__note{ color:#E79A82; }

/* ============================================================ AMBIENT GLOW + PAGE-BREAK */
.visionc, .worldsc, .memc, .faqc{ position:relative; overflow:hidden; }
.visionc > .wrapc, .worldsc > .wrapc, .memc > .wrapc, .faqc > .wrapc{ position:relative; z-index:1; }
.visionc::before, .worldsc::before, .memc::before, .faqc::before{
  content:""; position:absolute; z-index:0; pointer-events:none;
  width:62vw; height:62vw; max-width:780px; max-height:780px; border-radius:50%;
  top:-14%; right:-12%;
  background:radial-gradient(circle, rgba(140,74,61,.15), rgba(140,74,61,.05) 45%, transparent 70%);
  animation:glowpulse 8s ease-in-out infinite;
}
.worldsc::before{ top:auto; bottom:-16%; right:auto; left:-12%; background:radial-gradient(circle, rgba(126,140,115,.17), transparent 70%); animation-delay:-3s; }
.faqc::before{ top:auto; bottom:-16%; right:-10%; background:radial-gradient(circle, rgba(126,140,115,.15), transparent 70%); animation-delay:-5s; }
@keyframes glowpulse{ 0%,100%{ opacity:.5; transform:scale(1); } 50%{ opacity:1; transform:scale(1.12); } }

.seczone{ position:relative; }
.seczone::after{
  content:""; position:absolute; top:-1px; left:50%; transform:translateX(-50%);
  width:0; height:2px; pointer-events:none; z-index:5; opacity:0;
  background:linear-gradient(90deg, transparent, var(--accent), transparent);
  box-shadow:0 0 14px 1px rgba(194,103,79,.55);
  transition:width 1.15s cubic-bezier(.2,.7,.3,1), opacity 1.15s;
}
.seczone.sec-in::after{ width:72%; max-width:920px; opacity:1; }
@media(prefers-reduced-motion:reduce){ .visionc::before,.worldsc::before,.memc::before,.faqc::before{ animation:none; } .seczone::after{ transition:none; opacity:1; } }

/* glowing progress line under each title (fills 0 -> 78%) */
.titleline{ position:relative; width:150px; max-width:62%; height:3px; border-radius:3px; margin-top:20px; background:rgba(140,74,61,.16); }
.titleline--c{ margin-left:auto; margin-right:auto; }
.titleline__fill{ position:absolute; left:0; top:0; height:100%; width:0; border-radius:3px; background:linear-gradient(90deg, rgba(194,103,79,.25), var(--accent)); transition:width 1.7s cubic-bezier(.2,.7,.3,1); }
.titleline__fill::after{ content:""; position:absolute; right:-3px; top:50%; transform:translateY(-50%); width:9px; height:9px; border-radius:50%; background:#F4D2C4; box-shadow:0 0 10px 2px rgba(231,154,130,.95), 0 0 20px 5px rgba(216,131,107,.5); }
.titleline.fill .titleline__fill{ width:78%; }
.titleline--inline{ display:inline-block; vertical-align:middle; width:110px; max-width:32vw; margin:0 0 6px 20px; }

/* ============================================================ MOBILE RESPONSIVENESS */
@media(max-width:600px){
  body{ font-size:16px; }
  .section{ padding-block:clamp(56px,13vw,80px); }

  /* nav: keep brand + a compact CTA, drop the location tag */
  .navc{ background:rgba(21,17,14,.92); backdrop-filter:blur(12px) saturate(120%); border-bottom:1px solid rgba(237,230,221,.12); }
  .navc__in{ padding:11px var(--gutter); gap:12px; }
  .brandc img{ height:32px; }
  .brandc span{ display:none; }
  .navc .btnc{ padding:11px 18px; font-size:10px; letter-spacing:.12em; }
  .navc .btnc .arw{ display:none; }

  /* hero: tighter top, full-width buttons, scrollable countdown */
  .heroc__in{ padding-top:120px; }
  .heroc h1{ font-size:clamp(26px,6.6vw,34px); line-height:1.14; }
  .heroc__actions{ gap:10px; }
  .heroc__actions .btnc{ width:100%; }
  .cd{ margin-top:34px; padding-top:22px; gap:14px; }
  .cd__row{ gap:14px; }
  .cd__sep{ height:30px; }

  /* stats: single column so each label sits on one line */
  .statsc{ grid-template-columns:1fr; gap:18px; }
  .statc{ display:flex; align-items:baseline; gap:14px; }
  .statc b{ font-size:40px; }
  .statc span{ margin-top:0; }

  /* worlds: smaller accent bar, logos scale down */
  .worldc__media .framec::before{ width:5px; }
  .worldc__logo{ height:40px; margin-bottom:16px; }
  .worldc__num{ font-size:38px; }
  .worldc__copy p:not(.kk):not(.closer){ text-align:left; hyphens:none; }

  /* timeline: comfortable single column */
  .tlrow{ padding:24px 0 24px 42px; }

  /* membership + FAQ readability */
  .mcardc{ padding:22px 20px 24px; }
  .faqc summary{ padding:20px 40px 20px 0; }
  .faqc__a{ padding:18px 20px; }

  /* final CTA + footer buttons full width */
  .finalc__actions .btnc{ width:100%; }
  .footc__bar{ flex-direction:column; gap:8px; }
  .visionc::before, .worldsc::before, .memc::before, .faqc::before{ display:none; }
  .pkgcard .btnc, .mailc__form .btnc{ width:100%; }
  .mailc__form input{ flex:1 1 100%; }

  /* modal fits small screens */
  .wlm{ padding:0; }
  .wlm__dialog{ max-height:100svh; border-radius:0; }
  .wlm__body{ max-height:100svh; padding:26px 20px 32px; }
}

@media(max-width:380px){
  .cd__u b{ font-size:30px; }
  .cd__row{ gap:10px; }
  .cd__sep{ display:none; }
}
