:root{--gold:#c9a45c;--gold-2:#e2c487;--rose:#d9a89b;--cream:#f6ecd9;--paper:#f8f2e7;--ink:#2a2622;--muted:#cbbba0;--bg1:#2a1b24;--bg2:#120a0f}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Lato',system-ui,sans-serif;color:var(--cream);background:var(--bg2);line-height:1.5;-webkit-font-smoothing:antialiased;
  background-image:radial-gradient(130% 60% at 50% 0%,#3c2430 0%,var(--bg1) 40%,var(--bg2) 100%);background-repeat:no-repeat}
a{color:inherit}
img{display:block}
h1,h2,h3{font-family:'Playfair Display',serif;font-weight:500;text-wrap:balance}
.wm{font-family:'Playfair Display',serif;font-size:21px;line-height:1;color:var(--cream);letter-spacing:.2px}
.wm em{font-style:italic;color:var(--gold);margin-left:1px}
.wm.big{font-size:40px}
.eyebrow{font-family:'Cinzel',serif;font-size:11.5px;letter-spacing:2.8px;text-transform:uppercase;color:var(--gold);text-align:center}

/* nav */
.nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + 12px) 18px 12px;
  background:linear-gradient(#170e13f2,#140c11e6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid #c9a45c1f}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.nav-r{display:flex;align-items:center;gap:6px}
.nav-link{font-family:'Cinzel',serif;font-size:11.5px;letter-spacing:1.8px;text-transform:uppercase;text-decoration:none;color:var(--cream);padding:8px 10px;border-radius:99px}
.nav-link:hover,.nav-link[aria-current]{color:var(--gold)}
.pill{white-space:nowrap;font-family:'Cinzel',serif;font-size:11.5px;letter-spacing:1.8px;text-transform:uppercase;text-decoration:none;color:var(--gold);border:1px solid #c9a45c88;border-radius:99px;padding:8px 14px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 24px;border-radius:14px;text-decoration:none;
  font-family:'Cinzel',serif;font-weight:600;font-size:13.5px;letter-spacing:2px;text-transform:uppercase;transition:transform .12s,filter .2s}
.btn:active{transform:scale(.98)}
.btn.gold{background:linear-gradient(180deg,#e0c182,#c9a45c 55%,#b08a45);color:#21160f;box-shadow:0 8px 22px #c9a45c33,inset 0 1px 0 #fff6}
.btn.gold:hover{filter:brightness(1.05)}
.btn.ghost{border:1px solid #c9a45c88;color:var(--gold)}
.btn.ghost:hover{background:#c9a45c14}
.ctas{display:flex;flex-direction:column;gap:10px;margin-top:24px}
.ctas.center{align-items:center}

/* hero */
.hero{padding:34px 22px 10px;text-align:center;overflow:hidden}
.hero-logo{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:22px}
.hero-logo img{filter:drop-shadow(0 8px 20px #0008)}
.hero h1{font-size:40px;line-height:1.08;color:var(--cream)}
.sub{font-family:'Playfair Display',serif;font-style:italic;font-size:17.5px;line-height:1.5;color:#e9dcc4;margin:14px auto 0;max-width:34ch}
.micro{margin-top:14px;font-size:13px;color:#a8977c;letter-spacing:.3px}
.fan{position:relative;height:270px;margin:34px auto 0;max-width:360px}
.fc{position:absolute;filter:drop-shadow(0 18px 26px #000a)}
.fc .card3d{cursor:default}
.fan .fc{width:152px;left:50%;top:6px}
.fan .f1{transform:translateX(-112%) rotate(-11deg);top:22px}
.fan .f2{transform:translateX(-50%) rotate(0deg);z-index:2}
.fan .f3{transform:translateX(12%) rotate(10deg);top:22px}

/* sections */
.sec{padding:64px 22px 10px;max-width:1080px;margin:0 auto}
.sec h2{font-size:31px;line-height:1.15;text-align:center;margin:6px 0 0;color:var(--cream)}
.lead{text-align:center;color:var(--muted);font-size:16px;margin:12px auto 0;max-width:46ch}
.steps3{list-style:none;margin:30px auto 0;max-width:620px;display:grid;gap:14px}
.steps3 li{display:flex;gap:16px;padding:20px 18px;border-radius:18px;background:linear-gradient(180deg,#ffffff0d,#ffffff05);border:1px solid #c9a45c2e}
.steps3 .n{flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;
  font-family:'Playfair Display',serif;font-style:italic;font-size:22px;color:var(--gold)}
.steps3 h3{font-size:19px;color:var(--cream);margin-bottom:4px}
.steps3 p{color:var(--muted);font-size:15px}

.pack-grid{display:grid;gap:18px;margin-top:30px}
.pack{padding:24px 20px 22px;border-radius:22px;border:1px solid #c9a45c2e;background:linear-gradient(180deg,#ffffff0c,#ffffff04);text-align:center}
.pack h3{font-size:24px;color:var(--cream)}
.pack .tag{font-family:'Cinzel',serif;font-size:11px;letter-spacing:2.2px;text-transform:uppercase;color:var(--gold);margin:4px 0 10px}
.pack p{color:var(--muted);font-size:15px;max-width:44ch;margin:0 auto}
.pack .titles{margin-top:12px;font-family:'Playfair Display',serif;font-style:italic;font-size:14px;color:#dccaa6;line-height:1.6}
.mini{position:relative;height:200px;margin:0 auto 18px;max-width:320px}
.mini .fc{width:112px}
.mini .fc{width:118px;left:50%;top:10px}
.mini .m1{transform:translateX(-50%) rotate(0);z-index:3}
.mini .m2{transform:translateX(-136%) rotate(-10deg);top:24px}
.mini .m3{transform:translateX(36%) rotate(10deg);top:24px}
.together{text-align:center;color:var(--muted);font-size:15px;margin:22px auto 0;max-width:52ch}
.together b{color:var(--rose);font-weight:400;font-family:'Playfair Display',serif;font-style:italic;font-size:16px}

.pgrid{list-style:none;display:grid;gap:12px;margin-top:30px}
.pgrid li{padding:18px;border-radius:18px;background:#ffffff08;border:1px solid #ffffff14}
.pgrid svg{width:28px;height:28px;fill:none;stroke:var(--gold);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;margin-bottom:8px}
.pgrid h3{font-size:18px;color:var(--cream);margin-bottom:3px}
.pgrid p{color:var(--muted);font-size:14.5px}

.igrid{display:grid;gap:14px;margin-top:26px}
.icard{padding:20px 20px 18px;border-radius:18px;background:var(--paper);color:var(--ink)}
.icard h3{font-size:20px;color:#5e1022;margin-bottom:8px}
.icard:first-child h3{color:#13203a}
.icard ol{margin-left:20px;font-size:15px;line-height:1.6}
.icard a{color:#5e1022}
.install .ctas{margin-top:22px}

.adults{display:flex;gap:16px;align-items:flex-start;max-width:720px;margin:64px auto 0;padding:20px;border-radius:18px;border:1px solid #d9a89b55;
  background:linear-gradient(90deg,#3a383d66,#3a383d22);margin-left:22px;margin-right:22px}
.adults .badge{flex:none;width:48px;height:48px;border-radius:50%;border:1px solid var(--rose);color:var(--rose);display:flex;align-items:center;justify-content:center;
  font-family:'Cinzel',serif;font-weight:600;font-size:14px;letter-spacing:.5px}
.adults p{color:#e3d6c0;font-size:14.5px}
.adults b{color:var(--cream)}

.site-foot{text-align:center;padding:56px 22px calc(env(safe-area-inset-bottom,0px) + 36px);margin-top:56px;border-top:1px solid #c9a45c1f;background:#0e080b}
.site-foot .logo{justify-content:center}
.site-foot .tl{font-family:'Playfair Display',serif;font-style:italic;color:#e9dcc4;margin-top:10px;font-size:16px}
.site-foot .handle{margin-top:16px;font-family:'Cinzel',serif;font-size:12px;letter-spacing:1.8px;text-transform:uppercase;color:var(--muted)}
.site-foot .handle b{color:var(--gold);font-weight:600;text-transform:none;letter-spacing:.6px;font-family:'Lato';font-size:15px}
.foot-links{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin:20px auto 0;max-width:520px}
.foot-links a{color:#d8c8ab;font-size:13.5px;text-decoration:none;border-bottom:1px solid #c9a45c40;padding-bottom:1px}
.foot-links a:hover{color:var(--gold);border-color:var(--gold)}
.site-foot .small{margin-top:14px;font-size:12.5px;color:#8f806b}

.nf{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}
.nf h1{font-size:34px;margin-top:22px}

/* ---------------------------------------------------------------- blog cards (homepage + blog) */
.bgrid{list-style:none;display:grid;gap:14px;margin:28px auto 0;max-width:1080px}
.bcard a{display:flex;flex-direction:column;height:100%;padding:22px 20px 18px;border-radius:18px;text-decoration:none;
  background:linear-gradient(180deg,#ffffff0d,#ffffff04);border:1px solid #c9a45c2e;transition:border-color .2s,transform .2s}
.bcard a:hover{border-color:#c9a45c88;transform:translateY(-2px)}
.bcard-cat{font-family:'Cinzel',serif;font-size:10.5px;letter-spacing:2.2px;text-transform:uppercase;color:var(--gold)}
.bcard h2,.bcard h3{font-size:21px;line-height:1.25;color:var(--cream);margin:8px 0 8px}
.bcard-ex{color:var(--muted);font-size:14.5px;line-height:1.55;flex:1}
.bcard-meta{margin-top:14px;font-size:12.5px;color:#a8977c;letter-spacing:.2px}
.from-blog .ctas{margin-top:22px}
.feature .bcard a{background:radial-gradient(120% 140% at 85% 0%,#4a2a3866,transparent 60%),linear-gradient(180deg,#ffffff10,#ffffff04);border-color:#c9a45c55;padding:26px 22px 22px}
.feature .bcard h2{font-size:26px}

/* blog index */
.blog{padding:0 22px;max-width:1080px;margin:0 auto}
.blog-head{text-align:center;padding:42px 0 4px}
.blog-head h1{font-size:36px;line-height:1.1;margin-top:8px}
.blog-head .sub{max-width:40ch;margin-left:auto;margin-right:auto}
.nb{white-space:nowrap}
.recs,.from-blog,.cta-card{scroll-margin-top:84px}

/* article + legal */
.post,.legal{padding:0 22px}
.post-art{max-width:680px;margin:0 auto}
.post-head{padding:36px 0 6px;text-align:center}
.post-crumb{font-family:'Cinzel',serif;font-size:11px;letter-spacing:2.2px;text-transform:uppercase;color:var(--gold)}
.post-crumb a{text-decoration:none;color:#e2c487}
.post-crumb span{color:#a8977c;margin:0 4px}
.post-crumb span:last-child{color:var(--gold);margin:0}
.post-head h1{font-size:33px;line-height:1.14;margin-top:12px;color:var(--cream)}
.post-meta{margin-top:12px;font-size:13.5px;color:#a8977c}
.prose{margin-top:26px;font-size:17.5px;line-height:1.72;color:#eadfcb}
.prose>p:first-child{font-family:'Playfair Display',serif;font-size:19px;line-height:1.6;color:var(--cream)}
.prose p,.prose ul,.prose ol,.prose blockquote{margin-top:18px}
.prose h2{font-size:25px;line-height:1.25;margin-top:40px;color:var(--cream)}
.prose h3{font-size:20px;margin-top:28px;color:var(--cream)}
.prose h2+p,.prose h3+p{margin-top:10px}
.prose ul,.prose ol{padding-left:22px}
.prose li{margin-top:8px;padding-left:4px}
.prose li::marker{color:var(--gold)}
.prose strong{color:var(--cream);font-weight:700}
.prose em{font-style:italic}
.prose a{color:var(--gold-2);text-decoration-color:#c9a45c77;text-underline-offset:3px}
.prose blockquote{border-left:2px solid var(--gold);padding:4px 0 4px 18px;font-family:'Playfair Display',serif;font-style:italic;font-size:19px;color:#f1e4cc}
.prose blockquote p{margin-top:0}
.cta-card{margin:44px auto 0;max-width:680px;padding:28px 22px 24px;border-radius:22px;text-align:center;border:1px solid #c9a45c66;
  background:radial-gradient(120% 120% at 50% 0%,#4a2a38aa,#2a1b24 60%,#1a1015);box-shadow:0 18px 40px #0006}
.cta-card img{margin:0 auto 12px;filter:drop-shadow(0 6px 14px #0008)}
.cta-card h2{font-size:25px;line-height:1.2;color:var(--cream)}
.cta-card p{color:#e3d6c0;font-size:15.5px;margin:10px auto 18px;max-width:44ch}
.cta-card .cta-micro{font-size:12.5px;color:#a8977c;margin:12px 0 0}
.cta-card.slim{margin-top:40px}
.more-reading{max-width:1080px;margin:56px auto 0}
.legal-note{margin-top:22px;padding:14px 16px;border-radius:14px;border:1px dashed #c9a45c66;background:#c9a45c0d;color:#e3d6c0;font-size:14px}
.legal-note b{color:var(--gold-2);font-weight:700}
.legal .prose{font-size:16.5px}
.legal .prose>p:first-child{font-family:inherit;font-size:inherit;color:inherit}
.legal-more{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;margin-top:40px;padding-top:22px;border-top:1px solid #c9a45c26}
.legal-more a{color:var(--gold-2);font-size:14px}

/* ---------------------------------------------------------------- affiliate cards (rendered only when enabled with a real https link) */
.recs{max-width:1080px;margin:56px auto 0;padding:0 22px}
.post .recs,.blog .recs{padding:0}
.recs-ftc{text-align:center;color:#a8977c;font-size:12.5px;margin:8px auto 0;max-width:60ch}
.recs-ftc a{color:#d8c8ab}
.rec-grid{list-style:none;display:grid;gap:12px;margin-top:18px}
.rec{display:flex;flex-direction:column;padding:18px 18px 16px;border-radius:18px;background:#ffffff08;border:1px solid #ffffff17}
.rec-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.rec-cat{font-family:'Cinzel',serif;font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--gold)}
.rec-label{font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;color:#a8977c;border:1px solid #ffffff26;border-radius:99px;padding:2px 8px}
.rec h3{font-size:20px;color:var(--cream);margin-top:8px}
.rec p{color:var(--muted);font-size:14.5px;margin-top:4px;flex:1}
.rec-btn{align-self:flex-start;margin-top:14px;font-family:'Cinzel',serif;font-size:12px;letter-spacing:1.6px;text-transform:uppercase;text-decoration:none;
  color:var(--gold);border:1px solid #c9a45c88;border-radius:99px;padding:9px 16px}
.rec-btn:hover{background:#c9a45c14}

/* ad slot (empty until an SFW ad code is pasted into affiliates.json) */
.adslot{display:block;max-width:728px;margin:40px auto 0;padding:10px;text-align:center;border-radius:14px;border:1px solid #ffffff12;background:#ffffff05;overflow:hidden}
.adslot[hidden]{display:none}
.ad-label{display:block;font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:#8f806b;margin-bottom:6px}

/* consent banner (only rendered when consent + ads are both enabled) */
.consent{position:fixed;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);z-index:20;max-width:560px;margin:0 auto;padding:16px;border-radius:18px;
  background:#1d1218f5;border:1px solid #c9a45c55;box-shadow:0 18px 50px #000a;color:#e3d6c0;font-size:14px}
.consent[hidden]{display:none}
.consent a{color:var(--gold-2)}
.consent-btns{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}
.consent button{font:600 12px 'Cinzel',serif;letter-spacing:1.6px;text-transform:uppercase;border-radius:99px;padding:10px 16px;cursor:pointer}
.consent-no{background:none;border:1px solid #ffffff33;color:#e3d6c0}
.consent-yes{background:linear-gradient(180deg,#e0c182,#c9a45c);border:0;color:#21160f}

/* desktop */
@media (min-width:760px){
  .ctas{flex-direction:row;justify-content:center}
  .pack-grid{grid-template-columns:1fr 1fr}
  .pgrid{grid-template-columns:repeat(3,1fr)}
  .pgrid li:nth-child(4){grid-column:1/2}
  .igrid{grid-template-columns:1fr 1fr;max-width:820px;margin-left:auto;margin-right:auto}
  .steps3{max-width:none;grid-template-columns:repeat(3,1fr)}
  .steps3 li{flex-direction:column}
  .adults{margin-left:auto;margin-right:auto}
  .bgrid{grid-template-columns:repeat(3,1fr)}
  .bgrid.feature{grid-template-columns:1fr}
  .blog .bgrid:not(.feature){grid-template-columns:repeat(3,1fr)}
  .rec-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
  .post-head h1{font-size:44px}
  .prose>p:first-child{font-size:20.5px}
  .feature .bcard a{position:relative;padding:36px 250px 30px 44px}
  .feature .bcard a::after{content:"";position:absolute;right:62px;top:50%;width:132px;height:132px;transform:translateY(-50%) rotate(-5deg);
    background:url(/mark.svg) center/contain no-repeat;filter:drop-shadow(0 14px 26px #000a)}
  .feature .bcard h2{font-size:34px;max-width:30ch}
  .feature .bcard-ex{font-size:16px;max-width:72ch}
  .blog-head h1{font-size:48px}
  .prose{font-size:18px}
  .nav-r{gap:10px}
}
@media (min-width:980px){
  .nav{padding-left:40px;padding-right:40px}
  .hero{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:30px;max-width:1160px;margin:0 auto;padding:56px 40px 30px;text-align:left}
  .hero-logo{flex-direction:row;align-items:center;gap:14px}
  .hero h1{font-size:62px}
  .sub{margin-left:0;font-size:20px}
  .ctas{justify-content:flex-start}
  .ctas.center{justify-content:center}
  .fan{height:470px;max-width:none;margin:0}
  .fan .fc{width:260px}
  .sec h2{font-size:38px}
  .pgrid{grid-template-columns:repeat(5,1fr)}
  .pgrid li:nth-child(4){grid-column:auto}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.fc .card3d{width:100%;--cw:100%}
