:root{
  --rose:#76294C; --rose2:#A8406D; --rose3:#C2557F;
  --text:#FBF3EF; --muted:#E9CFDB;
  --gold:#E6C88F; --gold-deep:#A9822F;
  --cream:#FDF8F6; --blush:#F9EAE6; --hair:#EEDAD5;
  --ink:#3B1E2E; --ink-soft:#7A5C68;
  --green:#09a948; --green2:#017f35;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:Inter,system-ui,sans-serif;color:var(--text);background:var(--rose);line-height:1.6;font-size:17px}
h1,h2,h3{font-family:"Playfair Display",Georgia,serif;line-height:1.15;margin:0 0 .5em;font-weight:700}
h1{font-size:52px;letter-spacing:-.01em}
h2{font-size:38px}
h3{font-size:22px}
p{margin:0 0 1em}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.narrow{max-width:760px}
.center{text-align:center}
.center .lead{margin-left:auto;margin-right:auto}
.small{font-size:14px}
.muted{color:var(--ink-soft)}
section{padding:88px 0;position:relative}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.lead{font-size:20px;max-width:640px}
.hl{background:linear-gradient(90deg,var(--gold),#F3DFB2);-webkit-background-clip:text;background-clip:text;color:transparent;font-style:italic}

/* light sections flip the palette */
section.light,section.light-alt{color:var(--ink);--text:#3B1E2E;--muted:#7A5C68;--gold:#A9822F}
section.light{background:var(--cream)}
section.light-alt{background:var(--blush)}
section.light h1,section.light h2,section.light h3,section.light-alt h1,section.light-alt h2,section.light-alt h3{color:var(--ink)}

/* hero */
.hero{background:radial-gradient(1200px 600px at 70% -10%,rgba(233,198,146,.22),transparent 60%),linear-gradient(160deg,var(--rose) 0%,var(--rose2) 100%);padding:80px 0 72px}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.hero .sub{font-size:20px;color:var(--muted);max-width:560px;margin-bottom:28px}
.hero-note{font-size:14px;color:var(--muted);margin-top:16px;max-width:480px}
.hero-art img{margin:0 auto;box-shadow:0 30px 70px rgba(0,0,0,.35);border-radius:6px;transform:rotate(-2deg)}

/* buttons: standing rule, white on deep green */
.btn{display:inline-block;background:linear-gradient(135deg,var(--green),var(--green2));color:#fff!important;font-weight:700;text-decoration:none;padding:16px 28px;border-radius:12px;font-size:17px;box-shadow:0 12px 30px rgba(1,127,53,.35);transition:transform .15s,filter .15s;white-space:nowrap}
.btn:hover{filter:brightness(1.12);transform:translateY(-1px)}
.btn-lg{padding:20px 36px;font-size:19px}

/* problem */
blockquote{margin:36px 0;padding:28px 32px;border-left:4px solid var(--gold);background:var(--blush);font-family:"Playfair Display",serif;font-size:22px;font-style:italic;line-height:1.5;border-radius:0 12px 12px 0}
blockquote cite{display:block;margin-top:14px;font-family:Inter,sans-serif;font-style:normal;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}

/* cards */
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:44px}
.card{background:#fff;border:1px solid var(--hair);border-radius:16px;padding:28px 24px;box-shadow:0 14px 40px rgba(59,30,46,.06)}
.card p{margin:0;color:var(--ink-soft);font-size:15px}
.num{font-family:"Playfair Display",serif;font-size:40px;color:var(--gold);line-height:1;margin-bottom:12px}

/* weeks */
.weeks{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:44px 0 28px}
.week{background:#fff;border:1px solid var(--hair);border-radius:16px;padding:30px 28px;box-shadow:0 14px 40px rgba(59,30,46,.06)}
.week-tag{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:8px}
.week-sub{color:var(--ink-soft);font-style:italic;margin-bottom:16px}
.week ol{margin:0;padding-left:22px;font-size:15px}
.week li{padding:5px 0;border-bottom:1px solid var(--hair)}
.week li:last-child{border:0}

/* checks */
.checks{list-style:none;padding:0;margin:0}
.checks li{position:relative;padding:14px 0 14px 40px;border-bottom:1px solid var(--hair);font-size:18px}
.checks li:last-child{border:0}
.checks li::before{content:"\2713";position:absolute;left:0;top:12px;width:26px;height:26px;border-radius:50%;background:var(--gold);color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center}

/* checkout */
.checkout-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:44px;align-items:start}
.stack-list{list-style:none;padding:0;margin:0 0 24px}
.stack-list li{position:relative;padding:12px 0 12px 34px;border-bottom:1px solid var(--hair)}
.stack-list li::before{content:"\2713";position:absolute;left:0;top:13px;color:var(--gold);font-weight:700}
.no-hidden{background:var(--blush);border:1px solid var(--hair);border-radius:12px;padding:18px 20px;font-size:15px}
.checkout-card{background:#fff;border:1px solid var(--hair);border-radius:18px;padding:26px;box-shadow:0 20px 60px rgba(59,30,46,.10)}
.bump{display:flex;gap:14px;background:#FFF8E8;border:2px dashed var(--gold-deep);border-radius:12px;padding:16px;cursor:pointer}
.bump input{width:22px;height:22px;margin-top:3px;flex:none;accent-color:var(--green2)}
.bump-title{font-weight:700;font-size:17px;margin-bottom:6px}
.bump-body{font-size:14px;color:var(--ink-soft)}
.bump-tracks{margin-top:10px;font-size:14px}
.bump-tracks summary{cursor:pointer;color:var(--gold);font-weight:600}
.bump-tracks ol{margin:8px 0 0;padding-left:20px;color:var(--ink-soft)}
.total{display:flex;justify-content:space-between;align-items:center;padding:18px 4px;font-size:18px;border-bottom:1px solid var(--hair);margin-bottom:18px}
.total strong{font-size:28px;font-family:"Playfair Display",serif}
.whop-slot{display:none;margin:0;padding:0}
.whop-slot.active{display:block}
.whop-slot:empty{min-height:120px;border:1px dashed var(--hair);border-radius:12px;display:none;align-items:center;justify-content:center;color:var(--ink-soft);font-size:14px}
.whop-slot.active:empty{display:flex}
.whop-slot:empty::before{content:"Checkout loads here"}
.whop-checkout-embed{margin:0!important;padding:0!important;background:transparent;box-shadow:none;border-radius:0}
.secure{text-align:center;font-size:13px;color:var(--ink-soft);margin-top:14px}

/* about */
.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:center}
.about-photo img{border-radius:18px;box-shadow:0 24px 60px rgba(59,30,46,.18)}

/* faq */
.faq{margin-top:32px}
.faq details{border-bottom:1px solid var(--hair);padding:6px 0}
.faq summary{cursor:pointer;font-weight:600;font-size:18px;padding:14px 0;list-style:none;position:relative;padding-right:36px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:10px;font-size:26px;color:var(--gold);font-weight:300}
.faq details[open] summary::after{content:"\2013"}
.faq p{color:var(--ink-soft);margin:0 0 16px}

/* final */
.final{background:linear-gradient(160deg,var(--rose2) 0%,var(--rose) 100%);padding:100px 0}
.final .sub{font-size:20px;color:var(--muted);margin:0 auto 30px;max-width:560px}

footer{background:#4E1A32;color:var(--muted);font-size:13px;padding:28px 0 96px;text-align:center}

/* sticky */
.sticky{position:fixed;left:0;right:0;bottom:0;background:rgba(59,30,46,.96);backdrop-filter:blur(8px);padding:12px 0;transform:translateY(110%);transition:transform .3s;z-index:50;border-top:1px solid rgba(255,255,255,.08)}
.sticky.show{transform:none}
.sticky .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px}
.sticky-txt{font-weight:600;color:#fff}
.sticky .btn{padding:12px 20px;font-size:15px;box-shadow:none}

/* reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s,transform .6s}
.reveal.visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

@media(max-width:900px){
  .hero-grid,.checkout-grid,.about{grid-template-columns:1fr}
  .grid4{grid-template-columns:1fr 1fr}
  .weeks{grid-template-columns:1fr}
  .hero-art{order:-1}
  .hero-art img{max-width:150px;transform:none;margin-bottom:-8px}
  .about-photo img{max-width:320px;margin:0 auto}
}
@media(max-width:640px){
  body{font-size:16px}
  section{padding:60px 0}
  .hero{padding:44px 0 56px}
  h1{font-size:34px}
  h2{font-size:28px}
  .lead,.hero .sub,.final .sub{font-size:17px}
  .grid4{grid-template-columns:1fr}
  .btn-lg{display:block;text-align:center;white-space:normal}
  .sticky-txt{display:none}
  .sticky .wrap{justify-content:center}
  .sticky .btn{width:100%;text-align:center}
}

.bump:has(input:checked){background:#FFF3D6;border-color:#7A5C1E;border-style:solid}
