:root{
  --cream:#F5F7F6;
  --sand:#EEE0C3;
  --blush:#F2EAE7;
  --white:#FFFFFF;
  --sage:#4A6F60;
  --copper:#B8875A;
  --copper-deep:#8E5F36;
  --dusk:#4A6F60;
  --forest:#4A6F60;
  --ink:#25352E;
  --serif:"Fraunces", Georgia, serif;
  --sans:"Helvetica Neue", Helvetica, Arial, sans-serif;
  --brand:"Josefin Sans", system-ui, sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{font-optical-sizing:auto;background:var(--cream);color:var(--ink);font-family:var(--sans);font-weight:400;font-size:19px;line-height:1.6;-webkit-font-smoothing:antialiased;transition:color .6s var(--ease)}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{width:min(1320px,100% - 32px);margin-inline:auto}
.serif{font-family:var(--serif);font-weight:400}

/* ---------- header ---------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:50;padding:22px 0;color:var(--ink);transition:background .5s var(--ease),color .5s var(--ease),padding .5s var(--ease),box-shadow .5s}
.site-header.light{color:var(--cream)}
.site-header.scrolled{background:rgba(245,247,246,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ink);padding:14px 0;box-shadow:0 1px 0 rgba(27,38,32,.08)}
.site-header .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px}
.wordmark{font-family:var(--serif);font-weight:400;font-size:22px;letter-spacing:.16em;text-transform:uppercase;line-height:1;white-space:nowrap}
.wordmark small{display:block;font-family:var(--brand);font-weight:400;font-size:10px;letter-spacing:.42em;margin-top:6px;opacity:.85}
.tabs{display:flex;align-items:center;gap:30px;font-size:15px;font-weight:400;letter-spacing:.02em}
.tabs a{position:relative;padding:4px 0}
.tabs a::after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.tabs a:hover::after,.tabs a[aria-current]::after{transform:scaleX(1)}
.tab-cta{border:1px solid currentColor;padding:11px 20px!important;white-space:nowrap}
.tab-cta::after{display:none}
.tab-cta:hover{background:var(--ink);color:var(--cream)}
.site-header.light .tab-cta:hover{background:var(--cream);color:var(--ink)}
.link-line{position:relative;padding-bottom:3px}
.link-line::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(.35);transform-origin:left;transition:transform .5s var(--ease)}
.link-line:hover::after{transform:scaleX(1)}
.menu-btn{display:none;background:none;border:0;color:inherit;font:inherit;cursor:pointer;align-items:center;gap:12px}
.menu-btn i{display:block;width:30px;height:9px;position:relative}
.menu-btn i::before,.menu-btn i::after{content:"";position:absolute;left:0;right:0;height:1px;background:currentColor}
.menu-btn i::before{top:0}.menu-btn i::after{bottom:0}
@media (max-width:1080px){.tabs a:not(.tab-cta){display:none}.menu-btn{display:flex}}
@media (max-width:560px){.tab-cta{display:none}}

/* ---------- menu overlay ---------- */
.menu{position:fixed;inset:0;z-index:60;background:var(--cream);color:var(--ink);display:grid;grid-template-columns:1fr;clip-path:inset(0 0 100% 0);transition:clip-path .9s var(--ease);pointer-events:none}
.menu.open{clip-path:inset(0 0 0 0);pointer-events:auto}
.menu-close{z-index:3;position:absolute;top:24px;color:var(--ink)!important;right:16px;right:max(16px,calc((100vw - 1320px)/2));background:none;border:0;color:var(--cream);font:inherit;font-size:15px;cursor:pointer}
.menu nav{align-self:center;padding:0;text-align:center}
.menu nav a{display:block;font-family:var(--serif);font-weight:300;font-size:clamp(40px,7.2vh,92px);line-height:1.18;text-transform:uppercase;border-bottom:1px solid rgba(37,53,46,.2);opacity:0;transform:translateY(30px);transition:opacity .7s var(--ease),transform .7s var(--ease),background .35s,color .35s}
.menu.open nav a{opacity:1;transform:none}
.menu nav a span{display:none}
.menu nav a:hover{background:var(--sage);color:var(--white)}
.menu nav a em{font-style:normal}
.menu-photo{display:none}
.menu-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .8s var(--ease),transform 1.6s var(--ease)}
.menu-photo img.on{opacity:1;transform:scale(1)}
.menu-foot{position:absolute;left:0;right:0;bottom:24px;justify-content:center;font-size:14px;opacity:.75;display:flex;gap:28px}

/* ---------- hero ---------- */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden;color:var(--cream)}
.hero-img{position:absolute;inset:-6% 0 0 0;height:112%;width:100%;object-fit:cover;object-position:center 35%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(37,53,46,.25) 0%,rgba(37,53,46,0) 35%,rgba(37,53,46,.55) 100%)}
.hero-copy{position:absolute;left:0;right:0;bottom:9vh;z-index:2}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(56px,10vw,164px);line-height:.9;letter-spacing:-.025em}
.hero h1 .line{display:block;overflow:hidden;padding:0 .12em .1em;margin:0 -.12em}
.hero h1 .line > span{display:block}
.hero h1 em{font-style:italic;padding-left:.9em}
.hero-sub{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-top:34px;flex-wrap:wrap}
.hero-sub p{max-width:30ch;font-size:19px}
.scroll-cue{font-size:13px;letter-spacing:.2em;text-transform:uppercase;opacity:.8}

/* ---------- statement ---------- */
.statement{padding:22vh 0 16vh}
.statement p{font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.6vw,54px);line-height:1.22;max-width:22ch;margin-left:auto;margin-right:8%}
.statement p em{color:var(--sage)}
.word{display:inline-block;opacity:.18}

/* ---------- what we do (hover list) ---------- */
.offer{padding:6vh 0 20vh;position:relative}
.offer h2{font-size:15px;font-family:var(--sans);font-weight:400;opacity:.6;margin-bottom:24px}
.offer a{display:grid;grid-template-columns:1fr auto;align-items:baseline;padding:28px 0;border-top:1px solid currentColor;border-color:rgba(27,38,32,.14)}
.offer a:last-of-type{border-bottom:1px solid rgba(27,38,32,.14)}
.offer a b{font-family:var(--serif);font-weight:400;font-size:clamp(38px,5.5vw,80px);line-height:1;transition:transform .6s var(--ease),color .4s}
.offer a span{font-size:16px;opacity:.7;max-width:28ch;text-align:right}
.offer a:hover b{transform:translateX(24px);color:var(--copper-deep)}
.cursor-img{position:fixed;top:0;left:0;width:300px;aspect-ratio:4/5;pointer-events:none;z-index:40;opacity:0;transform:translate(-50%,-50%) scale(.9);transition:opacity .4s var(--ease);overflow:hidden;border-radius:2px}
.cursor-img img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;opacity:0;transition:opacity .4s}
.cursor-img img.on{opacity:1}

/* ---------- full-bleed moment ---------- */
.moment{position:relative;height:120svh;overflow:hidden;color:var(--cream)}
.moment img{position:absolute;inset:0;width:100%;height:120%;object-fit:cover}
.moment::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(37,53,46,0) 40%,rgba(37,53,46,.6))}
.moment-copy{position:absolute;left:0;right:0;bottom:14vh;z-index:2}
.moment h2{font-family:var(--serif);font-weight:400;font-size:clamp(46px,7vw,112px);line-height:.95;max-width:12ch}
.moment h2 em{font-style:italic}
.moment .row{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-top:28px}
.moment .row p{max-width:34ch}

/* ---------- real people strip ---------- */
.people{padding:22vh 0 18vh;overflow:hidden}
.people-head{display:flex;justify-content:space-between;align-items:end;gap:30px;flex-wrap:wrap;margin-bottom:8vh}
.people-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(42px,6vw,92px);line-height:.95}
.people-head h2 em{font-style:italic}
.people-head p{max-width:32ch}
.strip{display:flex;gap:2vw;width:max-content;align-items:center}
.strip img{height:52vh;width:auto;object-fit:cover;border-radius:2px}
.strip img:nth-child(3n+2){height:40vh}
.strip img:nth-child(3n){height:60vh}

/* ---------- words ---------- */
.words{padding:24vh 0;min-height:100svh;display:flex;align-items:center}
.quote{position:relative;min-height:46vh}
.quote blockquote{position:absolute;inset:0;font-family:var(--serif);font-weight:400;font-size:clamp(34px,4.6vw,72px);line-height:1.12;max-width:20ch;opacity:0;transition:opacity 1.2s var(--ease)}
.quote blockquote.on{opacity:1}
.quote cite{display:block;font-family:var(--sans);font-style:normal;font-size:15px;margin-top:28px;opacity:.7}

/* ---------- club teaser ---------- */
.club{position:relative;min-height:110svh;display:flex;align-items:center;color:var(--cream);overflow:hidden}
.club > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.club::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(37,53,46,.55),rgba(37,53,46,.1))}
.club .wrap{position:relative;z-index:2}
.club h2{font-family:var(--serif);font-weight:400;font-size:clamp(52px,8vw,132px);line-height:.92}
.club h2 em{font-style:italic;color:var(--copper)}
.club p{max-width:36ch;margin-top:30px;font-size:19px;opacity:.9}
.club .actions{display:flex;gap:40px;margin-top:44px;flex-wrap:wrap;align-items:center}
.btn{display:inline-block;padding:18px 34px;border:1px solid currentColor;font-size:15px;letter-spacing:.06em;transition:background .4s,color .4s}
.btn:hover{background:var(--cream);color:var(--forest)}

/* ---------- footer ---------- */
.site-footer{background:var(--forest);color:var(--cream);padding:16vh 0 40px}
.foot-big{font-family:var(--serif);font-weight:400;font-size:clamp(44px,7vw,110px);line-height:.95}
.foot-big em{font-style:italic;color:var(--copper)}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-top:12vh;font-size:15px}
.foot-grid ul{list-style:none;display:grid;gap:10px}
.foot-grid li a{opacity:.75}.foot-grid li a:hover{opacity:1}
.foot-legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:10vh;font-size:13px;opacity:.5}

/* reveal */
.reveal{opacity:0;transform:translateY(40px)}

@media (max-width:860px){
  .menu{grid-template-columns:1fr}
  .menu-photo{display:none}
  .menu nav{padding-left:16px}
  .statement p{margin-right:0}
  .offer a{grid-template-columns:1fr}
  .offer a span{text-align:left;margin-top:10px}
  .cursor-img{display:none}
  .strip img{height:40vh}.strip img:nth-child(3n+2){height:32vh}.strip img:nth-child(3n){height:44vh}
  .foot-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none}
  .word{opacity:1}
}

/* =========================================================
   Inner pages
   ========================================================= */
.page-hero{position:relative;height:78svh;min-height:520px;overflow:hidden;color:var(--cream)}
.page-hero img{position:absolute;inset:-6% 0 0 0;width:100%;height:112%;object-fit:cover}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,38,32,.35) 0%,rgba(27,38,32,0) 40%,rgba(27,38,32,.6) 100%)}
.page-hero .copy{position:absolute;left:0;right:0;bottom:8vh;z-index:2}
.page-hero h1{font-family:var(--serif);font-weight:300;text-transform:uppercase;font-size:clamp(54px,9vw,140px);line-height:.92;letter-spacing:-.02em}
.page-hero h1 em{font-style:italic}
.page-hero p{margin-top:20px;max-width:40ch;font-size:20px}
.kicker{font-size:14px;letter-spacing:.24em;text-transform:uppercase;font-weight:400;opacity:.75;margin-bottom:18px;display:block}

.block{padding:16vh 0}
.block-sand{background:var(--sand)}
.split2{display:grid;grid-template-columns:1fr 1.25fr;gap:7vw;align-items:start}
.sticky{position:sticky;top:120px}
.h2{font-family:var(--serif);font-weight:400;font-size:clamp(42px,5.6vw,86px);line-height:.98;letter-spacing:-.01em}
.h2 em{font-style:italic;color:var(--copper-deep)}
.big-lede{font-family:var(--sans);font-weight:400;font-size:clamp(28px,2.8vw,42px);line-height:1.25;letter-spacing:-.01em}
.prose p{font-size:21px;line-height:1.65;max-width:56ch}
.prose p + p{margin-top:1.2em}
.prose strong{font-weight:600}
.pull{font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(34px,4.4vw,64px);line-height:1.1;color:var(--copper-deep);max-width:20ch;margin:10vh 0}
.photo-wide{width:100%;height:80svh;object-fit:cover}
.photo-tall{width:100%;aspect-ratio:4/5;object-fit:cover}

/* tiers: big breakdown */
.tier{display:grid;grid-template-columns:minmax(220px,1fr) 1.5fr auto;gap:5vw;padding:7vh 0;border-top:1px solid rgba(27,38,32,.18);align-items:start}
.tier:last-child{border-bottom:1px solid rgba(27,38,32,.18)}
.tier h3{font-family:var(--serif);font-weight:400;font-size:clamp(48px,5.5vw,84px);line-height:.95}
.tier .who{display:block;font-size:17px;margin-top:14px;opacity:.75;max-width:24ch}
.tier ul{list-style:none;display:grid;gap:14px;font-size:20px}
.tier li{padding-left:30px;position:relative}
.tier li::before{content:"";position:absolute;left:0;top:.75em;width:16px;height:1px;background:var(--copper-deep)}
.tier li.inc{padding-left:0;font-weight:600}
.tier li.inc::before{display:none}
.tier .price{text-align:right;font-family:var(--serif);font-weight:400;font-size:clamp(48px,5vw,76px);line-height:1}
.tier .price small{display:block;font-family:var(--sans);font-weight:400;font-size:16px;margin-top:10px;opacity:.75}
.tier .price .tag{display:inline-block;margin-top:16px;font-family:var(--sans);font-size:13px;letter-spacing:.18em;text-transform:uppercase;background:var(--copper);color:var(--cream);padding:6px 12px}
.tier.soon{opacity:.5}

/* roamer code: big breakdown */
.code-list{list-style:none;counter-reset:c}
.code-list li{counter-increment:c;display:grid;grid-template-columns:110px 1fr;gap:20px;padding:5vh 0;border-top:1px solid rgba(27,38,32,.18)}
.code-list li::before{content:counter(c,upper-roman);font-family:var(--serif);font-weight:400;font-style:italic;font-size:56px;line-height:1;color:var(--copper)}
.code-list b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.4vw,50px);line-height:1.05;margin-bottom:10px}
.code-list span{font-size:20px;max-width:46ch;display:block}

.facts{display:grid;grid-template-columns:auto 1fr;gap:22px 48px;font-size:21px}
.facts dt{font-family:var(--serif);font-weight:400;font-size:24px}
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:4vw;counter-reset:s}
.steps li{counter-increment:s}
.steps li::before{content:"0" counter(s);display:block;font-family:var(--serif);font-weight:400;font-size:72px;line-height:1;color:var(--copper);margin-bottom:22px}
.steps b{display:block;font-family:var(--serif);font-weight:400;font-size:32px;line-height:1.1;margin-bottom:12px}
.steps span{font-size:19px}
.btn-solid{display:inline-block;background:var(--ink);color:var(--cream);padding:20px 36px;font-size:16px;letter-spacing:.06em;transition:background .4s}
.btn-solid:hover{background:var(--copper-deep)}
.cta-band{padding:18vh 0;text-align:left}
.cta-band .actions{display:flex;gap:36px;align-items:center;flex-wrap:wrap;margin-top:40px}
.trip{display:grid;grid-template-columns:1.2fr 1fr;gap:5vw;align-items:center;padding:10vh 0}
.trip:nth-child(even) .trip-img{order:2}
.trip-img img{width:100%;aspect-ratio:4/3;object-fit:cover}
.trip dl{display:grid;grid-template-columns:auto 1fr;gap:10px 28px;margin:28px 0 34px;font-size:18px}
.trip dt{font-weight:600}
.past{display:flex;flex-wrap:wrap;gap:14px 40px;font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.6vw,52px);line-height:1.1}
.past span{opacity:.35}
.slot{border:1px solid rgba(27,38,32,.25);padding:40px;min-height:320px;display:flex;flex-direction:column;justify-content:space-between}
.slot b{font-family:var(--serif);font-weight:400;font-size:32px}
.note{font-size:15px;opacity:.7;margin-top:18px;max-width:60ch}
@media (max-width:860px){
  .split2,.trip,.steps{grid-template-columns:1fr}
  .trip:nth-child(even) .trip-img{order:0}
  .sticky{position:static}
  .tier{grid-template-columns:1fr;gap:22px}
  .tier .price{text-align:left}
  .code-list li{grid-template-columns:64px 1fr}
  .code-list li::before{font-size:38px}
  .facts{grid-template-columns:1fr;gap:6px}
  .facts dd{margin-bottom:16px}
}

/* ---------- Tulum page ---------- */
.golden-bg{background:linear-gradient(180deg,#F3E6CF 0%,#E9CFAF 55%,#D9B48A 100%)}
.ticket{background:var(--cream);display:grid;grid-template-columns:1.35fr 1fr;max-width:1040px;margin-inline:auto;box-shadow:0 50px 90px -50px rgba(90,50,15,.55)}
.ticket .body{padding:7vh 4vw;border-right:2px dashed rgba(27,38,32,.2);position:relative}
.ticket .body::before,.ticket .body::after{content:"";position:absolute;right:-15px;width:28px;height:28px;border-radius:50%;background:#E3C39C}
.ticket .body::before{top:-14px}.ticket .body::after{bottom:-14px}
.ticket h2{font-family:var(--serif);font-weight:400;font-size:clamp(52px,6.5vw,100px);line-height:.92}
.ticket h2 em{color:var(--copper-deep)}
.ticket p{font-size:20px;margin-top:22px;max-width:34ch}
.ticket .stub{padding:7vh 3vw;display:flex;flex-direction:column;justify-content:space-between;gap:30px;background:var(--sand)}
.ticket dl{display:grid;grid-template-columns:auto 1fr;gap:14px 24px;font-size:18px}
.ticket dt{font-weight:600}
.ticket .host{font-family:var(--serif);font-weight:400;font-style:italic;font-size:26px}
.day{list-style:none}
.day li{display:grid;grid-template-columns:200px 1fr;gap:4vw;padding:6vh 0;border-top:1px solid rgba(27,38,32,.18);align-items:baseline}
.day li:last-child{border-bottom:1px solid rgba(27,38,32,.18)}
.day time{font-family:var(--serif);font-weight:400;font-size:clamp(40px,4.4vw,68px);line-height:1;color:var(--copper-deep)}
.day b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(28px,3vw,44px);line-height:1.1;margin-bottom:10px}
.day span{font-size:20px;max-width:52ch;display:block}
.compare{display:grid;grid-template-columns:1fr 1fr;gap:4vw}
.compare > div{padding:6vh 3vw;border-top:3px solid var(--ink)}
.compare > div.member{border-top-color:var(--copper)}
.compare h3{font-family:var(--serif);font-weight:400;font-size:clamp(34px,3.6vw,54px);line-height:1;margin-bottom:26px}
.compare ul{list-style:none;display:grid;gap:14px;font-size:20px}
.compare li{padding-left:30px;position:relative}
.compare li::before{content:"";position:absolute;left:0;top:.75em;width:16px;height:1px;background:currentColor}
.faq details{border-top:1px solid rgba(27,38,32,.18);padding:3.4vh 0}
.faq details:last-child{border-bottom:1px solid rgba(27,38,32,.18)}
.faq summary{cursor:pointer;list-style:none;font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.4vw,34px);display:flex;justify-content:space-between;gap:20px}
.faq summary::after{content:"+";font-family:var(--sans);font-weight:300}
.faq details[open] summary::after{content:"–"}
.faq details p{font-size:19px;margin-top:16px;max-width:62ch}
/* form */
.form{display:grid;grid-template-columns:1fr 1fr;gap:28px 32px}
.form label{display:grid;gap:8px;font-size:15px;font-weight:600}
.form label.full{grid-column:1 / -1}
.form input,.form select,.form textarea{font:inherit;font-size:19px;font-weight:400;background:transparent;border:0;border-bottom:1px solid rgba(27,38,32,.35);padding:10px 0;color:inherit;border-radius:0}
.form textarea{min-height:110px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-bottom-color:var(--copper-deep)}
.form .check{grid-column:1 / -1;display:flex;gap:12px;align-items:flex-start;font-weight:400;font-size:16px}
.form .check input{width:18px;height:18px;margin-top:3px}
.form button{grid-column:1 / -1;justify-self:start;border:0;cursor:pointer;font-family:var(--sans)}
@media (max-width:860px){
  .ticket,.compare,.form{grid-template-columns:1fr}
  .ticket .body{border-right:0;border-bottom:2px dashed rgba(27,38,32,.2)}
  .ticket .body::before,.ticket .body::after{display:none}
  .day li{grid-template-columns:1fr;gap:12px}
}

/* ---------- next chapter (keeps people exploring) ---------- */
.next{position:relative;display:block;height:78svh;min-height:480px;overflow:hidden;color:var(--white)}
.next img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.6s var(--ease)}
.next::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(37,53,46,.05),rgba(37,53,46,.55))}
.next:hover img{transform:scale(1.08)}
.next .copy{position:absolute;left:0;right:0;bottom:9vh;z-index:2}
.next small{display:block;font-size:17px;margin-bottom:14px;opacity:.9}
.next strong{display:block;font-family:var(--serif);font-weight:300;text-transform:uppercase;font-size:clamp(56px,9vw,150px);line-height:.9}
.next .go{display:inline-block;margin-top:22px;font-size:17px;border-bottom:1px solid currentColor;padding-bottom:3px}
.also{display:flex;flex-wrap:wrap;gap:12px 40px;padding:6vh 0;font-family:var(--serif);font-size:clamp(22px,2.2vw,30px)}
.also span{font-family:var(--sans);font-size:16px;opacity:.65;align-self:center;margin-right:8px}
.also a{border-bottom:1px solid rgba(37,53,46,.3)}
.also a:hover{border-bottom-color:var(--copper-deep);color:var(--copper-deep)}

/* ---------- street proof ---------- */
.street-grid{display:grid;grid-template-columns:auto 1fr;gap:7vw;align-items:center}
.phone{width:320px;aspect-ratio:9/16;border-radius:38px;background:var(--ink);padding:10px;box-shadow:0 40px 70px -35px rgba(37,53,46,.55)}
.phone .screen{height:100%;border-radius:30px;background:linear-gradient(160deg,#4A6F60,#25352E);color:var(--white);display:flex;flex-direction:column;justify-content:space-between;padding:26px}
.phone .q{font-family:var(--serif);font-size:34px;line-height:1.08}
.phone .rec{font-size:13px;display:flex;gap:8px;align-items:center}
.phone .rec::before{content:"";width:9px;height:9px;border-radius:50%;background:#e2554a}
.phone .ph{font-size:13px;opacity:.7}
.guesses{list-style:none;margin:5vh 0 4vh}
.guesses li{display:flex;justify-content:space-between;gap:24px;padding:22px 0;border-top:1px solid rgba(37,53,46,.18);font-family:var(--serif);font-size:clamp(22px,2.2vw,32px)}
.guesses li:last-child{border-bottom:1px solid rgba(37,53,46,.18)}
.guesses li span:last-child{font-family:var(--sans);font-size:17px;opacity:.7;white-space:nowrap}
.reveal-line{font-family:var(--serif);font-style:italic;font-size:clamp(30px,3.4vw,50px);color:var(--copper-deep);line-height:1.1}
@media (max-width:860px){.street-grid{grid-template-columns:1fr}.phone{width:min(300px,100%);margin-inline:auto}}

/* ---------- logo ---------- */
.brand{display:block;line-height:0}
.brand img{height:76px;width:auto}
.logo-white{display:none}
.site-header.light .logo-color{display:none}
.site-header.light .logo-white{display:block}
.site-header.scrolled .logo-color{display:block}
.site-header.scrolled .logo-white{display:none}
.site-header.scrolled .brand img{height:60px}

/* one heading voice everywhere */
.offer .h2{font-size:clamp(42px,5.6vw,86px)}
.words .h2{color:inherit}
.words .wrap{width:min(1320px,100% - 32px)}
.tier li.more{font-style:italic;opacity:.8}
.page-hero.dim::after{background:linear-gradient(180deg,rgba(37,53,46,.45) 0%,rgba(37,53,46,.25) 40%,rgba(37,53,46,.75) 100%)}
.page-hero.dim h1,.page-hero.dim p{text-shadow:0 2px 24px rgba(0,0,0,.25)}
.page-hero.plain{height:auto;min-height:0;padding:22vh 0 10vh;color:var(--ink);background:var(--cream)}
.page-hero.plain::after{display:none}
.page-hero.plain .copy{position:static}

/* ---------- modal ---------- */
.modal{position:fixed;inset:0;z-index:80;background:rgba(37,53,46,.55);display:grid;place-items:center;padding:16px;opacity:0;pointer-events:none;transition:opacity .5s var(--ease)}
.modal.open{opacity:1;pointer-events:auto}
.modal-box{background:var(--cream);width:min(820px,100%);max-height:92svh;overflow:auto;padding:48px 40px 36px;position:relative}
.modal-box iframe{width:100%;height:62svh;border:0;background:var(--white)}
.modal-close{position:absolute;top:18px;right:22px;background:none;border:0;font:inherit;font-size:15px;cursor:pointer;color:var(--ink)}
button.btn-solid{border:0;cursor:pointer;font-family:var(--sans)}

/* =========================================================
   Uniform type + color (her rules): headings are green, tan is only a highlight
   ========================================================= */
.h2 em,.ticket h2 em,.people-head h2 em,.moment h2 em,.page-hero h1 em,.statement p em,.compare h3 em{color:inherit}
.page-hero h1,.next strong{font-family:var(--serif);font-weight:400;text-transform:none;font-size:clamp(56px,10vw,164px);line-height:.9;letter-spacing:-.025em}
.page-hero p,.hero-sub p{font-size:22px;line-height:1.5;max-width:34ch}
.offer a span{font-size:19px;opacity:.85;max-width:30ch}
.people-head p{font-size:20px}
.h2{font-weight:400;letter-spacing:-.02em}
/* no tan backgrounds */
.golden-bg{background:var(--cream)}
.ticket .stub{background:var(--white)}
.ticket .body::before,.ticket .body::after{background:var(--cream)}
.h2 em.accent,.people-head h2 em.accent,.ticket h2 em.accent{color:var(--copper-deep)}
.foot-big em{color:var(--white)}
.motto{font-size:13px;letter-spacing:.22em;text-transform:uppercase;opacity:.85}
.hero h1 em{padding-left:.6em}
.tt-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2vw;align-items:start}
.tt blockquote.tiktok-embed{margin:0!important;min-width:0!important;max-width:100%!important}
@media (max-width:1100px){.tt-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.tt-grid{grid-template-columns:1fr}}
@media (max-width:1240px){.tabs a:not(.tab-cta){display:none}.menu-btn{display:flex}}
.tabs{gap:26px}
.page-hero.logo-hero{background:var(--sage)}
.page-hero.logo-hero::after{display:none}
.hero-logo{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:min(560px,70vw);height:auto;opacity:.95}
.page-hero.logo-hero .copy{bottom:6vh}
.page-hero img.hero-logo{inset:auto;left:50%;top:40%;width:min(420px,64vw);height:auto;transform:translate(-50%,-50%);object-fit:contain}
.page-hero.logo-hero{height:86svh}
.page-hero.logo-hero{height:auto;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:150px 0 9vh;text-align:center}
.page-hero.logo-hero img.hero-logo{position:static;transform:none;width:min(360px,60vw);margin-bottom:6vh}
.page-hero.logo-hero .copy{position:static;width:100%}
.page-hero.logo-hero h1{font-size:clamp(48px,7.4vw,120px)}
.page-hero.logo-hero p{margin-inline:auto}
.hero-sub p,.motto{text-shadow:0 1px 18px rgba(0,0,0,.45)}
@media (max-width:600px){
  .menu nav a{font-size:clamp(28px,8.4vw,40px);line-height:1.5}
  .menu-foot{flex-wrap:wrap;gap:10px 22px;padding:0 16px;font-size:13px}
  .page-hero h1,.next strong{font-size:clamp(46px,13vw,72px)}
}
@media (max-width:860px){.menu nav{padding:0 16px}}
.next.next-logo{background:var(--sage)}
.next.next-logo::after{display:none}
.next img.next-logo-img{inset:auto;left:50%;top:38%;width:min(320px,55vw);height:auto;transform:translate(-50%,-50%);object-fit:contain}
.next.next-logo:hover img.next-logo-img{transform:translate(-50%,-50%) scale(1.04)}
/* club hero: show the whole group (faces + shirts) */
.page-hero.club-hero{background:var(--sage)}
.page-hero.club-hero::after{background:linear-gradient(90deg,rgba(37,53,46,.55) 0%,rgba(37,53,46,.15) 55%,rgba(37,53,46,0) 100%)}
.page-hero img.club-photo{inset:0 0 0 auto;left:auto;right:0;width:auto;height:100%;aspect-ratio:1024/1080;object-fit:cover;object-position:center top;transform:none!important}
@media (max-width:860px){.page-hero img.club-photo{width:100%;aspect-ratio:auto;object-position:center 18%}}
@media (min-width:861px){
  .page-hero.club-hero .copy .wrap > *{max-width:46%}
  .page-hero.club-hero h1{font-size:clamp(56px,6.4vw,104px)}
}
.page-hero.club-hero::before{content:"";position:absolute;inset:0 0 auto 0;height:160px;z-index:1;background:linear-gradient(180deg,rgba(37,53,46,.55),rgba(37,53,46,0))}

/* =================== QUIZ =================== */
.qz{position:fixed;inset:0;z-index:90;background:var(--cream);color:var(--ink);opacity:0;pointer-events:none;transition:opacity .5s var(--ease);display:flex;flex-direction:column}
.qz.open{opacity:1;pointer-events:auto}
.qz-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px max(16px,calc((100vw - 1100px)/2))}
.qz-top img{height:54px}
.qz-close{background:none;border:0;font:inherit;font-size:15px;cursor:pointer;color:inherit}
.qz-progress{height:3px;background:rgba(37,53,46,.12)}
.qz-progress i{display:block;height:100%;width:0;background:var(--copper);transition:width .5s var(--ease)}
.qz-stage{flex:1;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4vh 16px 6vh;position:relative}
.qz-q{width:min(820px,100%);animation:qzIn .6s var(--ease)}
@keyframes qzIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.qz-count{font-size:15px;opacity:.7}
.qz-title{font-family:var(--serif);font-weight:400;font-size:clamp(34px,4.6vw,64px);line-height:1.04;letter-spacing:-.015em;margin:14px 0 4vh}
.qz-hint{margin:-2vh 0 3vh;font-size:16px;color:var(--copper-deep)}
.qz-answers{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.qz-answer{font:inherit;font-size:19px;text-align:left;padding:22px 24px;background:var(--white);border:1px solid rgba(37,53,46,.16);color:var(--ink);cursor:pointer;transition:border-color .25s,background .25s,transform .25s}
.qz-answer:hover{border-color:var(--sage);transform:translateY(-2px)}
.qz-answer.on{background:var(--sage);color:var(--white);border-color:var(--sage)}
.qz-next{margin-top:28px}
.qz-next:disabled{opacity:.35;cursor:not-allowed}
.qz-back{display:block;margin-top:22px;background:none;border:0;font:inherit;font-size:15px;opacity:.7;cursor:pointer;color:inherit}
.qz-slider{max-width:640px}
.qz-slider-label{font-family:var(--serif);font-size:clamp(28px,3vw,40px);color:var(--copper-deep);min-height:1.3em}
.qz-slider input{width:100%;margin:26px 0 10px;accent-color:#4A6F60;height:28px}
.qz-ends{display:flex;justify-content:space-between;gap:20px;font-size:15px;opacity:.7}
/* wrapped */
.wrapped{position:relative;width:min(460px,100%);aspect-ratio:9/16;max-height:calc(100svh - 230px);background:var(--sage);color:var(--white);overflow:hidden;cursor:pointer;user-select:none;box-shadow:0 40px 80px -40px rgba(37,53,46,.6)}
.w-dots{position:absolute;top:14px;left:14px;right:14px;display:flex;gap:5px;z-index:3}
.w-dots i{flex:1;height:3px;background:rgba(255,255,255,.3)}
.w-dots i.done{background:var(--white)}
.w-screen{position:absolute;inset:0;padding:60px 30px 50px;display:flex;flex-direction:column;justify-content:center;opacity:0;transform:scale(.97);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.w-screen.on{opacity:1;transform:none}
.w-3{background:var(--copper-deep)}
.w-6{background:linear-gradient(180deg,#4A6F60,#25352E)}
.w-small{font-size:14px;letter-spacing:.18em;text-transform:uppercase;opacity:.8;margin-bottom:18px}
.w-big{font-family:var(--serif);font-weight:400;font-size:clamp(40px,6vw,58px);line-height:1}
.w-mid{font-size:clamp(32px,4.6vw,44px)}
.w-reveal{font-size:clamp(46px,7vw,66px)}
.w-sub{margin-top:18px;font-size:18px;opacity:.9}
.w-quote{font-family:var(--serif);font-size:clamp(22px,3vw,28px);line-height:1.25;margin-bottom:22px}
.w-body{font-size:17px;line-height:1.55}
.w-role{margin-top:16px}
.w-bar{margin:14px 0;font-size:17px;display:grid;grid-template-columns:1fr auto;gap:6px}
.w-bar i{grid-column:1 / -1;height:6px;background:rgba(255,255,255,.2);position:relative}
.w-bar i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);background:#EEE0C3;transition:width 1.2s var(--ease)}
.w-cta{margin-top:28px}
.w-share{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-top:28px}
.w-again{background:none;border:0;font:inherit;color:inherit;cursor:pointer}
.btn-light{background:var(--white)!important;color:var(--ink)!important}
.w-hint{position:absolute;bottom:16px;left:0;right:0;text-align:center;font-size:13px;opacity:.7;transition:opacity .3s}
.qz-capture{width:min(460px,100%);margin-top:20px;text-align:center}
.qz-capture p{font-size:17px;margin-bottom:12px}
.qz-capture div{display:flex;gap:8px;flex-wrap:wrap}
.qz-capture input{flex:1 1 140px;font:inherit;font-size:16px;padding:14px;border:1px solid rgba(37,53,46,.25);background:var(--white)}
.qz-capture button{flex:1 1 100%}
@media (max-width:700px){
  .qz-answers{grid-template-columns:1fr}
  .qz-answer{padding:18px 20px;font-size:18px}
  .wrapped{max-height:calc(100svh - 260px)}
}

/* =================== PHONE HEADER =================== */
.tab-cta.phone-cta{display:none}
@media (max-width:1240px){
  .site-header .wrap{gap:12px}
  .tabs{gap:0}
  .tabs a.tab-cta{display:inline-block}
}
@media (max-width:560px){
  .tabs a.tab-cta{display:inline-block;padding:9px 12px!important;font-size:13px}
  .tabs .cta-long{display:none}
  .brand img{height:58px}
  .site-header.scrolled .brand img{height:48px}
  .menu-btn{font-size:0;gap:0;padding:8px 0 8px 10px}
  .menu-btn i{width:28px;height:12px}
}
.tabs .cta-short{display:none}
@media (max-width:560px){.tabs .cta-short{display:inline}}
.w-3{background:linear-gradient(180deg,#4A6F60,#3d5c50)}.w-reveal{color:#EEE0C3}
@media (max-width:1240px){.site-header .tabs{margin-left:auto}}
.qz-optin{display:flex;gap:10px;justify-content:center;align-items:center;margin-top:12px;font-size:14px;opacity:.85}
/* ---------- dashboard ---------- */
.dash{padding-top:110px}
.dash-title{margin-bottom:6vh}
.dash-login{max-width:720px}
.dash-msg{min-height:1.5em}
.dash-card{border-top:1px solid rgba(37,53,46,.18);padding:6vh 0}
.dash-link{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin:20px 0 34px;font-size:16px}
.dash-link code{background:var(--white);padding:10px 14px;border:1px solid rgba(37,53,46,.15);font-size:15px;word-break:break-all}
.dash-link button{background:none;border:0;font:inherit;cursor:pointer;color:inherit}
.dash-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;margin-bottom:34px}
.dash-stats dt{font-size:14px;opacity:.7}
.dash-stats dd{font-family:var(--serif);font-size:clamp(36px,4vw,56px);line-height:1.1}
.dash-money{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:30px}
.dash-total{grid-template-columns:repeat(4,1fr);margin-bottom:2vh}
.dash-money div{background:var(--white);padding:24px}
.dash-money span{display:block;font-size:14px;opacity:.7}
.dash-money b{font-family:var(--serif);font-weight:400;font-size:clamp(32px,3.4vw,48px)}
.dash-money .owed{background:var(--sage);color:var(--white)}
.dash-night span{font-size:16px}
.dash-night i{display:block;height:8px;background:rgba(37,53,46,.12);margin-top:10px}
.dash-night b{display:block;height:100%;background:var(--copper)}
.dash-recent{list-style:none;margin-top:30px;max-width:620px}
.dash-recent li{display:grid;grid-template-columns:80px 1fr auto;padding:10px 0;border-bottom:1px solid rgba(37,53,46,.1);font-size:17px}
.dash-recent span{opacity:.6}
.dash-recent em{font-style:normal;color:var(--copper-deep)}
@media (max-width:860px){.dash-stats{grid-template-columns:repeat(2,1fr)}.dash-money,.dash-total{grid-template-columns:1fr}}
[hidden]{display:none!important}
.qz-other{background:transparent!important;border-style:dashed!important;color:var(--ink)!important;grid-column:1 / -1}
.qz-writein{grid-column:1 / -1;display:flex;gap:10px;flex-wrap:wrap}
.qz-writein input{flex:1 1 260px;font:inherit;font-size:19px;padding:18px 20px;border:1px solid var(--sage);background:var(--white)}
.w-reveal{color:var(--white)!important}
.w-3{background:linear-gradient(180deg,#4A6F60,#3d5c50)}
.w-sub b{font-weight:600}
.w-bar small{display:block;font-size:13px;opacity:.75}
