:root{
  --pearl:#F7F2EE;
  --pearl-2:#F1E8E2;
  --blush:#EBCFC6;
  --champ:#D8B98C;
  --plum:#2A1B22;
  --plum-2:#43303A;
  --white:#FFFDFB;
  --iri:linear-gradient(120deg,#F4C6D6 0%,#D9C3F2 28%,#BDE6EA 52%,#F2DDB4 76%,#F4C6D6 100%);
  --iri-ink:linear-gradient(110deg,#B4577A 0%,#7E58B8 30%,#2F8A98 55%,#A9813F 78%,#B4577A 100%);
  --display:"Bodoni Moda", Didot, "Times New Roman", serif;
  --sans:"Figtree", system-ui, sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --g:clamp(16px,3.4vw,56px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--pearl)}
html.lenis{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--pearl);color:var(--plum);font-family:var(--sans);font-weight:400;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.is-loading{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
em{font-style:italic}
main,section,footer{position:relative}

/* ---------- type ---------- */
.micro{font-size:11px;letter-spacing:.32em;text-transform:uppercase;font-weight:500}
.micro i{font-family:var(--display);text-transform:none;letter-spacing:0;font-size:14px}
.h-xxl,.h-xl,.h-lg{font-family:var(--display);font-weight:400;line-height:.94;letter-spacing:-.025em}
.h-xxl{font-size:clamp(64px,13vw,230px)}
.h-xl{font-size:clamp(54px,8.6vw,150px)}
.h-lg{font-size:clamp(44px,6vw,104px)}
.h-xxl em,.h-xl em,.h-lg em{font-weight:400;background:var(--iri-ink);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:iri 9s linear infinite;padding:.08em .14em .2em .04em;margin:-.08em -.14em -.2em -.04em}
@keyframes iri{to{background-position:200% 0}}
.lede{font-size:clamp(15px,1.15vw,18px);line-height:1.6;max-width:36ch;font-weight:300}
.body{font-size:16px;line-height:1.75;font-weight:300;max-width:42ch;opacity:.85}
.line{display:block;overflow:hidden;padding:.1em .14em .24em;margin:-.1em -.14em -.24em}
.line>span{display:inline-block;will-change:transform}

/* ---------- pills ---------- */
.pill{position:relative;display:inline-flex;white-space:nowrap;align-items:center;height:50px;padding:0 28px;border-radius:999px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;overflow:hidden;isolation:isolate;transition:color .5s var(--ease)}
.pill::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--iri);background-size:200% 100%;transform:scale(0,1);transform-origin:left;transition:transform .7s var(--ease);animation:iri 6s linear infinite}
.pill:hover::before{transform:scale(1,1)}
.pill--ink{background:var(--plum);color:var(--white)}
.pill--ink:hover{color:var(--plum)}
.pill--light{background:rgba(255,253,251,.92);color:var(--plum);backdrop-filter:blur(10px)}
.pill--lg{height:62px;padding:0 38px;font-size:13px}
.link{font-size:12px;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:4px}
.row{display:flex;align-items:center;gap:28px;margin-top:34px;flex-wrap:wrap}
.row--c{justify-content:center}

@keyframes morph{
  0%,100%{border-radius:58% 42% 50% 50% / 50% 55% 45% 50%}
  33%{border-radius:42% 58% 38% 62% / 60% 40% 60% 40%}
  66%{border-radius:50% 50% 62% 38% / 42% 60% 40% 58%}
}

/* ---------- signature drop ---------- */
.drop{position:fixed;left:0;top:0;width:46vmin;height:46vmin;z-index:0;pointer-events:none;opacity:0;will-change:transform}
.drop i{position:absolute;inset:0;background:var(--iri);background-size:220% 220%;filter:blur(28px) saturate(1.15);animation:morph 9s ease-in-out infinite, iri 12s linear infinite;opacity:.9}
.shimmer{position:fixed;inset:0;z-index:95;pointer-events:none}
@media (hover:none){.shimmer{display:none}}

/* ---------- nav ---------- */
.nav{position:fixed;z-index:60;top:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:34px;padding:8px 8px 8px 22px;border-radius:999px;background:rgba(255,253,251,.62);backdrop-filter:blur(18px) saturate(1.4);box-shadow:0 10px 40px -20px rgba(42,27,34,.35),inset 0 0 0 1px rgba(255,255,255,.6);transition:transform .7s var(--ease)}
.nav.is-hidden{transform:translate(-50%,-140%)}
.nav__logo{display:flex;align-items:center;gap:10px;font-family:var(--display);font-size:24px;letter-spacing:.02em}
.nav__logo svg{width:17px;fill:none;stroke:var(--plum);stroke-width:2.4}
.nav__logo .hl{stroke:#D7A0B5}
.nav__links{display:flex;gap:26px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:500}
.nav__links a{position:relative;opacity:.75;transition:opacity .3s}
.nav__links a:hover{opacity:1}
.nav .pill{height:42px;padding:0 22px;font-size:11px}
.mobile-cta{display:none}
@media (max-width:900px){
  .nav{left:var(--g);right:var(--g);transform:none;justify-content:space-between;padding-left:18px}
  .nav.is-hidden{transform:translateY(-140%)}
  .nav__links{display:none}
  .nav .pill{display:none}
  .mobile-cta{display:flex;position:fixed;z-index:61;left:var(--g);right:var(--g);bottom:16px;height:54px;align-items:center;justify-content:center;border-radius:999px;background:var(--plum);color:var(--white);font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;box-shadow:0 18px 40px -16px rgba(42,27,34,.6)}
}

/* ---------- hero ---------- */
.hero{height:calc(var(--len,660) * 1vh);z-index:2;background:var(--plum)}
.hero__sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.hero__frame{position:absolute;inset:0;overflow:hidden;will-change:clip-path,transform}
.hero__canvas,.hero__poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__canvas{z-index:1}
.hero__veil{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(42,27,34,.35) 0%,rgba(42,27,34,0) 26%,rgba(42,27,34,0) 58%,rgba(42,27,34,.55) 100%)}
.hero__dim{position:absolute;inset:0;z-index:2;pointer-events:none}

.beats{position:absolute;inset:0;z-index:4;pointer-events:none;color:var(--white)}
.beat{position:absolute;opacity:0;visibility:hidden}
.beat .pill{pointer-events:auto}
.beat .h-xl,.beat .h-lg{text-shadow:0 4px 60px rgba(42,27,34,.5)}
.beats em{background:none;-webkit-text-fill-color:currentColor;color:#FFF3F6;animation:none;text-shadow:0 2px 30px rgba(42,27,34,.55)}
.beat--hero{left:var(--g);bottom:12vh;max-width:900px}
.beat--hero .micro{margin-bottom:26px}
.micro--pill{display:inline-flex;padding:10px 16px;border-radius:999px;background:rgba(42,27,34,.35);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.25)}
.beat--hero .lede{margin-top:24px}
.hint{font-size:11px;letter-spacing:.24em;text-transform:uppercase;opacity:.8;display:flex;align-items:center;gap:12px}
.hint::after{content:"";width:40px;height:1px;background:currentColor;animation:hint 2s var(--ease) infinite;transform-origin:left}
@keyframes hint{0%{transform:scaleX(0)}60%{transform:scaleX(1)}100%{transform:scaleX(1);opacity:0}}
.beat--r{right:calc(var(--g) + 120px);top:50%;transform:translateY(-50%);text-align:right;max-width:640px}
.beat--r .lede{margin-left:auto}
.beat--l{left:var(--g);top:50%;transform:translateY(-50%);max-width:640px}
.beat--r .micro,.beat--l .micro{margin-bottom:22px}
.beat--r .lede,.beat--l .lede{margin-top:20px}
.beat--fin{inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.beat--fin .pill{margin-top:36px}

.meter{position:absolute;z-index:5;right:var(--g);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--white)}
.meter .micro{writing-mode:vertical-rl;transform:rotate(180deg);font-size:10px;opacity:.8}
.meter__bar{width:3px;height:180px;border-radius:3px;background:rgba(255,255,255,.22);position:relative;overflow:hidden}
.meter__bar i{position:absolute;left:0;right:0;bottom:0;height:38%;background:linear-gradient(0deg,#F4C6D6,#D9C3F2,#BDE6EA,#F2DDB4)}
.meter__num{font-family:var(--display);font-size:44px;line-height:1;font-variant-numeric:tabular-nums}
.meter__num small{font-size:18px}
.state{font-size:10px;letter-spacing:.24em;text-transform:uppercase;padding:7px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.45);transition:all .5s}
.state.is-on{background:var(--white);color:var(--plum);border-color:var(--white)}
@media (max-width:800px){
  .beat--r,.beat--l{left:var(--g);right:var(--g);top:auto;bottom:110px;transform:none;text-align:left}
  .beat--r .lede{margin-left:0}
  .beat--hero{bottom:96px;right:var(--g)}
  .hint{display:none}
  .meter{top:auto;bottom:auto;top:92px;right:var(--g);transform:none;flex-direction:row;gap:10px}
  .meter .micro,.meter__bar{display:none}
  .meter__num{font-size:30px}
}

/* ---------- define ---------- */
.define{z-index:1;min-height:115vh;padding:24vh var(--g) 18vh;display:grid;grid-template-columns:repeat(12,1fr);align-items:center}
.define__word{position:absolute;left:-1vw;top:8vh;font-family:var(--display);font-size:38vw;line-height:.8;letter-spacing:-.04em;color:var(--plum);opacity:.22;filter:url(#tx-outline);pointer-events:none;white-space:nowrap}
.define__img{grid-column:8/12;grid-row:1/3;aspect-ratio:4/5;border-radius:999px 999px 24px 24px;overflow:hidden;box-shadow:0 60px 120px -60px rgba(42,27,34,.55)}
.define__img img{width:100%;height:120%;object-fit:cover}
.define__txt{grid-column:2/7;grid-row:1}
.define__txt .micro{margin-bottom:28px}
.define__def{font-family:var(--display);font-size:clamp(34px,3.6vw,62px);line-height:1.08;letter-spacing:-.015em;margin-bottom:30px}
.define__def em{color:#B07A90}
.define__chips{grid-column:2/8;grid-row:2;display:flex;flex-wrap:wrap;gap:10px;align-self:end}
.define__chips span{font-size:12px;padding:10px 16px;border-radius:999px;background:rgba(255,253,251,.7);backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1px rgba(42,27,34,.1)}
@media (max-width:800px){
  .define{display:flex;flex-direction:column;gap:40px;padding-top:16vh}
  .define__img{width:78%;align-self:flex-end}
}

/* ---------- treatments ---------- */
.treat{z-index:1;padding:14vh var(--g) 20vh}
.treat__head{position:relative;z-index:2;max-width:640px}
.treat__head .micro{margin-bottom:22px}
.treat__field{position:relative;height:185vh;margin-top:-8vh}
.glass{position:absolute;display:flex;flex-direction:column;gap:18px;padding:16px;border-radius:28px;background:rgba(255,253,251,.42);backdrop-filter:blur(22px) saturate(1.5);box-shadow:0 40px 80px -40px rgba(42,27,34,.35),inset 0 0 0 1px rgba(255,255,255,.75);transition:transform .8s var(--ease)}
.glass img{border-radius:18px;aspect-ratio:4/3;object-fit:cover;width:100%}
.glass>div{padding:6px 10px 10px;display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:baseline}
.glass .num{font-family:var(--display);font-style:italic;font-size:22px;color:#B07A90}
.glass h3{font-family:var(--display);font-weight:400;font-size:clamp(26px,2.2vw,36px);letter-spacing:-.01em}
.glass p{grid-column:2;margin-top:8px;font-size:14px;line-height:1.6;opacity:.8;font-weight:300}
.glass .from{grid-column:2;margin-top:14px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.g1{left:54%;top:0;width:min(30vw,440px);transform:rotate(2deg)}
.g2{left:4%;top:24%;width:min(26vw,380px);transform:rotate(-3deg)}
.g3{left:35%;top:42%;width:min(28vw,420px);transform:rotate(-1.5deg)}
.g4{left:73%;top:52%;width:min(22vw,330px);transform:rotate(3deg)}
.g5{left:7%;top:68%;width:min(30vw,440px);transform:rotate(1deg)}
.glass:hover{z-index:3}
@media (max-width:800px){
  .treat__field{height:auto;margin-top:40px;display:flex;flex-direction:column;gap:22px}
  .glass{position:relative;left:auto!important;top:auto!important;width:100%!important;transform:none!important}
}

/* ---------- method ---------- */
.method{z-index:1;padding:12vh var(--g) 18vh}
.method__head .micro{margin-bottom:22px}
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,72px);margin-top:10vh}
.step{position:relative;padding-top:clamp(120px,14vw,220px)}
.step:nth-child(2){margin-top:14vh}
.step:nth-child(3){margin-top:28vh}
.step__n{position:absolute;top:0;left:-.04em;font-family:var(--display);font-style:italic;font-size:clamp(140px,16vw,280px);line-height:.8;color:var(--plum);filter:url(#tx-outline);opacity:.85;padding:.06em .12em .1em 0}
.step h3{position:relative;font-family:var(--display);font-weight:400;font-size:clamp(34px,3vw,52px);margin-bottom:14px}
.step p{position:relative;font-size:15px;line-height:1.7;max-width:34ch;opacity:.8;font-weight:300}
@media (max-width:800px){.steps{grid-template-columns:1fr}.step:nth-child(n){margin-top:0}}

/* ---------- faces ---------- */
.faces{z-index:1;padding:10vh 0 16vh;overflow:hidden}
.faces__head{padding:0 var(--g);margin-bottom:8vh}
.faces__head .micro{margin-bottom:22px}
.faces__row{display:flex;gap:clamp(20px,3vw,48px);padding:0 var(--g);align-items:flex-start;will-change:transform}
.face{flex:0 0 auto;width:clamp(260px,30vw,460px)}
.face.f2{margin-top:16vh;width:clamp(240px,26vw,400px)}
.face.f3{margin-top:6vh}
.face__img{overflow:hidden;border-radius:20px;aspect-ratio:4/5}
.face__img img{width:100%;height:100%;object-fit:cover;transform:scale(1.15)}
.face figcaption{margin-top:22px}
.face q{display:block;font-family:var(--display);font-size:clamp(22px,1.8vw,30px);line-height:1.2;quotes:"“" "”"}
.face span{display:block;margin-top:12px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.6}
@media (max-width:800px){.faces__row{flex-direction:column}.face,.face.f2{width:100%;margin-top:0}}

/* ---------- members ---------- */
.members{z-index:1;padding:12vh var(--g) 18vh;display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:start}
.members__head{grid-column:1/6;position:sticky;top:20vh}
.members__head .micro{margin-bottom:22px}
.tiers{grid-column:6/13;display:grid;grid-template-columns:1fr 1.15fr;gap:24px;align-items:start}
.tier{border-radius:32px;padding:clamp(28px,3vw,46px);display:flex;flex-direction:column;gap:22px;position:relative}
.tier--glass{margin-top:18vh;background:rgba(255,253,251,.5);backdrop-filter:blur(22px);box-shadow:0 40px 80px -40px rgba(42,27,34,.3),inset 0 0 0 1px rgba(255,255,255,.8)}
.tier--ink{background:var(--plum);color:var(--white);box-shadow:0 60px 120px -50px rgba(42,27,34,.7);overflow:hidden}
.tier--ink::after{content:"";position:absolute;width:70%;aspect-ratio:1;right:-25%;top:-25%;background:var(--iri);filter:blur(60px);opacity:.45;border-radius:50%}
.tier>*{position:relative;z-index:1}
.price{font-family:var(--display);font-size:clamp(70px,7vw,120px);line-height:.9;letter-spacing:-.03em}
.price sup{font-size:.35em;vertical-align:top;margin-right:4px}
.price small{font-size:.22em;font-family:var(--sans);letter-spacing:.1em;opacity:.7;margin-left:6px}
.tier ul{list-style:none;display:flex;flex-direction:column;gap:12px;font-size:15px;font-weight:300}
.tier li{padding-left:22px;position:relative}
.tier li::before{content:"";position:absolute;left:0;top:.55em;width:10px;height:10px;border-radius:50%;background:var(--iri)}
.tier .pill{align-self:flex-start;margin-top:10px}
.badge{position:absolute;top:24px;right:24px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;padding:7px 12px;border-radius:999px;background:var(--iri)!important;color:var(--plum)}
@media (max-width:900px){.members{display:block}.members__head{position:relative;top:0;margin-bottom:40px}.tiers{grid-template-columns:1fr}.tier--glass{margin-top:0}}

/* ---------- space ---------- */
.space{z-index:1;padding:8vh var(--g) 22vh;display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:center}
.space__a{grid-column:1/7;grid-row:1;aspect-ratio:3/2;overflow:hidden;border-radius:24px}
.space__b{grid-column:9/13;grid-row:1;aspect-ratio:3/4;overflow:hidden;border-radius:200px 200px 24px 24px;margin-top:30vh}
.space img{width:100%;height:118%;object-fit:cover}
.space__txt{grid-column:6/10;grid-row:1;z-index:2;align-self:start;margin-top:-6vh;padding:40px;border-radius:28px;background:rgba(247,242,238,.72);backdrop-filter:blur(16px)}
.space__txt .micro{margin-bottom:20px}
.space__txt .body{margin-top:20px}
@media (max-width:800px){.space{display:flex;flex-direction:column}.space__b{width:70%;align-self:flex-end;margin-top:0}.space__txt{margin-top:0}}

/* ---------- book ---------- */
.book{z-index:1;min-height:100vh;display:grid;place-items:center;text-align:center;overflow:hidden;padding:18vh var(--g)}
.book__bg{position:absolute;inset:0;clip-path:inset(10% 14% 10% 14% round 40px);will-change:clip-path}
.book__bg img{width:100%;height:100%;object-fit:cover;opacity:.85}
.book__inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}
.book__inner::before{content:"";position:absolute;inset:-14% -22%;z-index:-1;background:radial-gradient(closest-side,rgba(247,242,238,.86) 40%,rgba(247,242,238,0));pointer-events:none}
.book__inner .micro{margin-bottom:26px}
.book__inner .lede{margin-top:26px;text-align:center}

/* ---------- footer ---------- */
.foot{z-index:1;background:var(--plum);color:var(--white);padding:100px var(--g) 30px;overflow:hidden}
.foot__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;font-size:14px;line-height:1.7;font-weight:300}
.foot__grid .micro{margin-bottom:12px;opacity:.6}
.foot__word{font-family:var(--display);font-style:italic;font-size:30vw;line-height:1;text-align:center;margin:40px 0 0;padding:.12em .1em .18em;background:var(--iri);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:iri 14s linear infinite}
.foot__base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.5}
@media (max-width:800px){.foot__grid{grid-template-columns:1fr 1fr}.foot{padding-bottom:96px}}

@media (prefers-reduced-motion:reduce){
  .drop i,.h-xxl em,.h-xl em,.h-lg em,.pill::before{animation:none}
}

/* mobile: nothing may widen the page (clip, unlike hidden, keeps sticky sections working) */
html, body { overflow-x: clip; }
