:root{
  --paper:#F4F1E9; --paper-2:#FBF9F4; --card:#FFFFFF; --surface:#F7F5F0;
  --ink:#23221F; --ink-2:#54525C; --subtle:#8A8894;
  --amber:#B98A2F; --amber-2:#8A6A24;
  --gold:#D3A95E; --cream:#F6F3EC; --teal:#2F7568;
  --hair:color-mix(in srgb, var(--ink) 13%, transparent);
  --serif:'New York', ui-serif, Georgia, 'Times New Roman', serif;
  --sans:-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, 'Segoe UI', sans-serif;
  --mono:ui-monospace, SFMono-Regular, Menlo, monospace;
  --maxw:1080px; --pad:clamp(1.25rem, 5vw, 2.5rem);
  --r:8px;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#0E0F0D; --paper-2:#131512; --card:#171915; --surface:#171915;
    --ink:#E8E6DD; --ink-2:#9C9A8E; --subtle:#63615A;
    --amber:#E0A83E; --amber-2:#E0A83E;
    --cream:#F6F3EC;
  }
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:17px; line-height:1.65;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
body::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
  background-image:radial-gradient(circle, color-mix(in srgb, var(--ink) 14%, transparent) 0.7px, transparent 0.8px);
  background-size:18px 18px; opacity:.4;
}
.skip,.hero,main,footer{position:relative; z-index:1}
h1,h2,h3{font-family:var(--serif); font-weight:500; line-height:1.15; margin:0; letter-spacing:-0.01em}
p{margin:0}
a{color:inherit}
img,svg{max-width:100%; height:auto; display:block}
.wrap{max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad)}
.skip{position:absolute;left:-9999px;top:0;background:#23221F;color:#F6F3EC;padding:.7rem 1rem;z-index:99;border-radius:0 0 8px 0}
.skip:focus{left:0}
:focus-visible{outline:2.5px solid var(--gold); outline-offset:3px; border-radius:4px}

.lang{
  display:flex; align-items:center; gap:.4rem;
  font-size:.78rem; letter-spacing:.12em; font-weight:600;
}
.lang a{text-decoration:none}
.lang [aria-current="page"]{cursor:default}

/* ── Hero ───────────────────────────────────────────── */
.hero{
  overflow:hidden; color:var(--cream);
  background:
    radial-gradient(ellipse 60% 52% at 50% 50%, rgba(185,138,47,.26), rgba(185,138,47,0) 70%),
    linear-gradient(180deg,#3C3A36 0%,#0E0F0D 100%);
  padding:clamp(4.5rem,13vw,8.5rem) 0 clamp(3.5rem,9vw,6rem);
  text-align:center;
}
.hero .lang{
  position:absolute;
  top:max(1.15rem, env(safe-area-inset-top));
  right:max(var(--pad), env(safe-area-inset-right));
  z-index:2;
  color:rgba(246,243,236,.62);
}
.hero .lang a{color:rgba(246,243,236,.62)}
.hero .lang a:hover{color:var(--cream)}
.hero .lang [aria-current="page"]{color:var(--cream)}
.mark{width:clamp(58px,9vw,76px); margin:0 auto clamp(1.75rem,4vw,2.5rem); filter:drop-shadow(0 6px 20px rgba(14,15,13,.42))}
/* the wordmark stands on the keep-line; its reflection falls below */
.stand{display:inline-block; position:relative; margin-bottom:clamp(1.5rem,4.5vw,3rem)}
.word{
  font-family:var(--serif); font-style:italic; font-weight:500;
  font-size:clamp(3.4rem,12vw,6.5rem); line-height:1.1; color:var(--cream);
  letter-spacing:-0.025em; margin:0; padding-bottom:.08em;
}
.keepline{
  height:3px; width:100%; margin:.1em 0 0;
  background:linear-gradient(90deg,rgba(211,169,94,0) 0%,var(--gold) 18%,var(--gold) 82%,rgba(211,169,94,0) 100%);
  border-radius:2px;
}
/* The reflection falls below the keep-line and dissolves as it sinks — strongest
   at the waterline, gone by the time it has fallen half the letter's height.
   -webkit-box-reflect paints outside the box (no layout effect), so .stand
   carries the margin that keeps the tagline clear of it. Firefox shows no
   reflection and simply gets the plain wordmark. */
.word{-webkit-box-reflect:below .14em linear-gradient(rgba(0,0,0,.28), transparent 32%)}
.keepline{position:relative; z-index:2}
.tagline{
  margin:clamp(1.4rem,3.5vw,2rem) auto 0; font-size:clamp(1rem,2.4vw,1.2rem);
  letter-spacing:.055em; text-transform:uppercase; color:rgba(246,243,236,.82); font-weight:500;
}
.essence{
  margin:1.15rem auto 0; max-width:34ch; font-family:var(--serif); font-style:italic;
  font-size:clamp(1.2rem,3.2vw,1.55rem); line-height:1.5; color:rgba(246,243,236,.94);
}
.herobtns{display:flex; gap:.85rem; justify-content:center; flex-wrap:wrap; margin-top:clamp(2rem,5vw,2.75rem)}
.btn{
  display:inline-block; padding:.85rem 1.6rem; border-radius:999px; font-size:.97rem;
  font-weight:600; text-decoration:none; transition:transform .25s ease, background .25s ease, border-color .25s ease, color .25s ease;
}
.btn-primary{background:var(--cream); color:#23221F}
.btn-ghost{border:1.5px solid rgba(246,243,236,.42); color:var(--cream)}
.btn:hover{transform:translateY(-2px)}
.btn-primary:hover{background:#F4F1E9}
.btn-ghost:hover{border-color:rgba(246,243,236,.85)}
@media (prefers-reduced-motion: reduce){.btn:hover{transform:none}}
.soon{margin-top:1.5rem; font-size:.86rem; color:rgba(246,243,236,.68); letter-spacing:.02em}

/* ── Sections ───────────────────────────────────────── */
section{padding:clamp(3.75rem,10vw,7rem) 0}
.eyebrow{
  font-size:.76rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--amber); font-weight:700; margin-bottom:.9rem;
}
.h2{font-size:clamp(1.85rem,5vw,2.85rem); max-width:20ch}
.lead{margin-top:1.1rem; max-width:58ch; color:var(--ink-2); font-size:clamp(1.02rem,2.4vw,1.12rem)}
.center{text-align:center}
.center .h2,.center .lead{margin-inline:auto}

/* steps */
.steps{display:grid; gap:clamp(1.5rem,4vw,2.5rem); grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); margin-top:clamp(2.5rem,6vw,3.75rem)}
.step .n{
  font-family:var(--mono); font-size:.8rem; color:var(--gold); letter-spacing:.14em; font-weight:600;
  display:block; margin-bottom:.85rem;
}
.step h3{font-size:1.32rem; margin-bottom:.5rem}
.step p{color:var(--ink-2); font-size:1rem}

/* the reflection card */
.cardwrap{margin-top:clamp(2.5rem,6vw,3.5rem); display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.card{
  background:var(--card); border:1px solid var(--hair);
  border-radius:var(--r); padding:clamp(1.5rem,3.5vw,2rem);
}
.card .k{
  font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--subtle); display:block; margin-bottom:.6rem;
}
.card .v{font-family:var(--serif); font-size:clamp(1.1rem,2.6vw,1.28rem); line-height:1.5; color:var(--ink)}
.stamp{margin-top:1.75rem; font-family:var(--mono); font-size:.76rem; color:var(--subtle); letter-spacing:.03em}

/* privacy panel */
.panel{
  background:
    radial-gradient(ellipse 70% 60% at 50% 0%, rgba(185,138,47,.18), transparent 62%),
    linear-gradient(165deg,#3C3A36 0%,#0E0F0D 100%);
  color:var(--cream);
  border:1px solid color-mix(in srgb, #F6F3EC 14%, transparent);
  border-radius:var(--r); padding:clamp(2.25rem,6vw,4rem); text-align:center;
}
.panel h2{font-size:clamp(1.7rem,4.6vw,2.6rem); max-width:22ch; margin-inline:auto}
.panel p{color:rgba(246,243,236,.86); max-width:52ch; margin:1.15rem auto 0}
.pills{display:flex; gap:.6rem; flex-wrap:wrap; justify-content:center; margin-top:2rem}
.pill{
  border:1px solid rgba(246,243,236,.3); border-radius:999px; padding:.45rem 1rem;
  font-size:.85rem; color:rgba(246,243,236,.95);
}

/* features */
.grid{display:grid; gap:clamp(1.1rem,3vw,1.75rem); grid-template-columns:repeat(auto-fit,minmax(232px,1fr)); margin-top:clamp(2.5rem,6vw,3.5rem)}
.feat h3{font-size:1.08rem; font-family:var(--sans); font-weight:650; margin-bottom:.35rem; letter-spacing:0}
.feat p{color:var(--ink-2); font-size:.95rem}
.feat .dot{width:9px;height:9px;border-radius:50%;background:var(--gold);display:block;margin-bottom:.8rem}

/* faq */
details{border-top:1px solid var(--hair); padding:1.15rem 0}
details:last-of-type{border-bottom:1px solid var(--hair)}
summary{
  cursor:pointer; font-weight:600; font-size:1.04rem; list-style:none;
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
}
summary::-webkit-details-marker{display:none}
summary::after{content:'+'; color:var(--gold); font-size:1.4rem; line-height:1; flex:none}
details[open] summary::after{content:'−'}
details p{margin-top:.8rem; color:var(--ink-2); max-width:62ch}

/* cost */
.cost{display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); margin-top:clamp(2.5rem,6vw,3.5rem)}
.tier{background:var(--card); border:1px solid var(--hair); border-radius:var(--r); padding:clamp(1.5rem,3.5vw,2rem)}
.tier.paid{border-color:var(--gold); background:color-mix(in srgb, var(--gold) 7%, var(--card))}
.tier h3{font-size:1.3rem; margin-bottom:.3rem}
.tier .price{font-family:var(--mono); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--subtle); display:block; margin-bottom:1rem}
.tier ul{margin:0; padding-left:1.1rem; color:var(--ink-2); font-size:.97rem}
.tier li{margin-bottom:.35rem}

/* footer */
footer{background:var(--surface); border-top:1px solid var(--hair); padding:clamp(2.75rem,7vw,4rem) 0; margin-top:clamp(2rem,5vw,3rem)}
.frow{display:flex; justify-content:space-between; gap:2rem; flex-wrap:wrap; align-items:flex-start}
.fbrand{font-family:var(--serif); font-style:italic; font-size:1.5rem}
.flinks{display:flex; gap:1.5rem; flex-wrap:wrap; font-size:.94rem}
.flinks a{color:var(--ink-2); text-decoration:none; border-bottom:1px solid transparent; transition:border-color .2s, color .2s}
.flinks a:hover{color:var(--amber); border-color:var(--gold)}
.fnote{margin-top:2rem; font-size:.85rem; color:var(--subtle); max-width:60ch}

/* reveal */
.rv{opacity:0; transform:translateY(14px); transition:opacity .7s ease, transform .7s ease}
.rv.in{opacity:1; transform:none}
@media (prefers-reduced-motion: reduce){.rv{opacity:1; transform:none; transition:none}}
