:root{
  --bg:#0d0b14;--bg-2:#141020;--surface:#1a1526;--surface-2:#221b31;
  --ink:#ece8f5;--ink-2:#b9b1cc;--ink-3:#867c9c;--hair:#2a2340;--hair-2:#372e50;
  --accent:#a58bff;--accent-2:#d98bd0;--accent-soft:#241d3a;
  --good:#6bc596;--warn:#d8b24e;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px rgba(0,0,0,.4);
  --serif:'Iowan Old Style','Palatino Linotype','Book Antiqua',Georgia,serif;
  --sans:system-ui,-apple-system,'Segoe UI','Helvetica Neue',Arial,sans-serif;
  --mono:ui-monospace,'SF Mono','Cascadia Code','Consolas','Menlo',monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*{animation:none!important;transition:none!important;}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{color:var(--accent);text-decoration:none;text-underline-offset:3px;}
a:hover{text-decoration:underline;}
img{max-width:100%;height:auto;display:block;}
.wrap{max-width:1120px;margin:0 auto;padding:0 clamp(18px,4vw,40px);}

/* header */
header.site{position:sticky;top:0;z-index:50;background:rgba(13,11,20,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--hair);}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px;gap:18px;}
.brand{display:inline-flex;align-items:center;gap:9px;font-family:var(--serif);font-size:21px;font-weight:600;color:var(--ink);}
.brand:hover{text-decoration:none;}
.brand .moon{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 66% 34%,var(--accent) 0 46%,transparent 50%),var(--surface-2);box-shadow:inset 0 0 0 1px var(--hair-2);}
.nav .links{display:flex;gap:20px;font-size:14px;}
.nav .links a{color:var(--ink-2);}
.nav .links a:hover{color:var(--ink);text-decoration:none;}
.nav .cta{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#160f22;font-weight:650;padding:9px 18px;border-radius:999px;font-size:14px;}
.nav .cta:hover{text-decoration:none;filter:brightness(1.08);}
@media(max-width:720px){.nav .links{display:none;}}

/* hero */
.hero{position:relative;padding:clamp(56px,10vw,120px) 0 clamp(40px,6vw,72px);text-align:center;}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 50% 0%,rgba(165,139,255,.18),transparent 70%);pointer-events:none;}
.hero .eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin:0 0 20px;}
.hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(34px,7vw,68px);line-height:1.04;letter-spacing:-.015em;margin:0 auto 20px;max-width:16ch;text-wrap:balance;}
.hero p.sub{font-size:clamp(16px,2.2vw,21px);color:var(--ink-2);max-width:56ch;margin:0 auto 30px;}
.btn{display:inline-block;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#160f22;font-weight:700;font-size:16px;padding:15px 34px;border-radius:999px;box-shadow:0 8px 24px rgba(165,139,255,.28);}
.btn:hover{text-decoration:none;filter:brightness(1.08);transform:translateY(-1px);}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:none;border:1px solid var(--hair-2);}
.trust{display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:center;margin-top:26px;font-family:var(--mono);font-size:12.5px;color:var(--ink-3);}
.trust span{display:inline-flex;align-items:center;gap:6px;}
.trust b{color:var(--accent);}

/* sections */
section{padding:clamp(44px,7vw,80px) 0;}
h2{font-family:var(--serif);font-weight:600;font-size:clamp(26px,4vw,40px);line-height:1.12;letter-spacing:-.01em;margin:0 0 10px;text-wrap:balance;}
.lead{font-size:17px;color:var(--ink-3);max-width:62ch;margin:0 0 8px;}
.center{text-align:center;}
.center .lead{margin-left:auto;margin-right:auto;}
h3{font-size:19px;font-weight:650;margin:0 0 8px;}
p{color:var(--ink-2);max-width:70ch;}
.eyebrow-s{font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 12px;}

/* feature grid */
.grid{display:grid;gap:16px;}
.grid.g3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}
.grid.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));}
.card{background:var(--surface);border:1px solid var(--hair);border-radius:16px;padding:26px;box-shadow:var(--shadow);}
.card .ic{width:42px;height:42px;border-radius:11px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:14px;}
.card h3{margin-bottom:6px;}
.card p{font-size:14.5px;color:var(--ink-2);margin:0;}
.card.link-card{transition:border-color .2s,transform .2s;}
.card.link-card:hover{border-color:var(--accent);transform:translateY(-2px);}
.card.link-card a.title{color:var(--ink);font-size:18px;font-weight:650;}
.card.link-card a.title:hover{color:var(--accent);text-decoration:none;}

/* steps */
.steps{counter-reset:s;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.step{counter-increment:s;background:var(--surface);border:1px solid var(--hair);border-radius:16px;padding:24px;position:relative;}
.step::before{content:counter(s);position:absolute;top:20px;right:22px;font-family:var(--serif);font-size:34px;font-weight:600;color:var(--hair-2);}
.step h3{margin-bottom:6px;}
.step p{font-size:14px;margin:0;}

/* table */
.tbl{overflow-x:auto;border:1px solid var(--hair);border-radius:14px;box-shadow:var(--shadow);}
table{border-collapse:collapse;width:100%;font-size:14px;background:var(--surface);min-width:520px;}
th,td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--hair);}
th{font-family:var(--mono);font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);background:var(--surface-2);}
tbody tr:last-child td{border-bottom:none;}
td.yes{color:var(--good);font-weight:600;}td.no{color:var(--ink-3);}

/* prose */
.prose{max-width:74ch;margin:0 auto;}
.prose h2{margin:34px 0 10px;font-size:clamp(24px,3.4vw,32px);}
.prose h3{margin:26px 0 6px;font-size:19px;}
.prose p{margin:12px 0;}
.prose ul{color:var(--ink-2);padding-left:22px;}
.prose li{margin:6px 0;}
.prose code{font-family:var(--mono);font-size:.86em;background:var(--surface-2);padding:2px 7px;border-radius:5px;color:var(--accent);}
.callout{background:var(--surface-2);border:1px solid var(--hair);border-left:3px solid var(--accent);border-radius:0 12px 12px 0;padding:16px 20px;margin:22px 0;}
.callout p{margin:6px 0;font-size:14.5px;}

/* FAQ */
.faq details{background:var(--surface);border:1px solid var(--hair);border-radius:12px;margin:10px 0;padding:0 20px;box-shadow:var(--shadow);}
.faq summary{cursor:pointer;font-weight:650;padding:16px 0;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";font-family:var(--mono);color:var(--accent);font-size:20px;}
.faq details[open] summary::after{content:"–";}
.faq details[open] summary{border-bottom:1px solid var(--hair);}
.faq .ans{padding:12px 0 18px;color:var(--ink-2);font-size:14.5px;}
.faq .ans a{color:var(--accent);}

/* styles grid links */
.stylegrid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));}
.stylegrid a{background:var(--surface);border:1px solid var(--hair);border-radius:14px;padding:20px;color:var(--ink);font-weight:600;display:flex;flex-direction:column;gap:4px;transition:border-color .2s,transform .2s;}
.stylegrid a:hover{border-color:var(--accent);transform:translateY(-2px);text-decoration:none;}
.stylegrid a small{color:var(--ink-3);font-weight:400;font-size:12.5px;}

/* cta band */
.cta-band{text-align:center;background:linear-gradient(135deg,var(--surface),var(--surface-2));border:1px solid var(--hair);border-radius:22px;padding:clamp(36px,6vw,64px);}
.cta-band h2{margin-bottom:14px;}

/* footer */
footer.site{border-top:1px solid var(--hair);padding:40px 0 60px;margin-top:40px;color:var(--ink-3);font-size:13.5px;}
.foot-grid{display:flex;flex-wrap:wrap;gap:28px 60px;justify-content:space-between;margin-bottom:28px;}
.foot-col h4{font-size:12px;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0 0 10px;}
.foot-col a{display:block;color:var(--ink-2);margin:5px 0;font-size:14px;}
.foot-col a:hover{color:var(--ink);}
.foot-legal{border-top:1px solid var(--hair);padding-top:20px;max-width:80ch;line-height:1.6;}
.age{display:inline-block;border:1px solid var(--hair-2);border-radius:6px;padding:2px 8px;font-family:var(--mono);font-size:11px;color:var(--accent);margin-bottom:10px;}
.breadcrumb{font-size:13px;color:var(--ink-3);padding:18px 0 0;font-family:var(--mono);}
.breadcrumb a{color:var(--ink-3);}

/* micro-interactions & a11y */
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px;}
::selection{background:var(--accent);color:#160f22;}
::-webkit-scrollbar{width:12px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--hair-2);border-radius:8px;border:3px solid var(--bg);}
::-webkit-scrollbar-thumb:hover{background:var(--accent);}
.btn{transition:transform .15s ease,filter .15s ease,box-shadow .15s ease;border:none;cursor:pointer;font-family:var(--sans);}
.btn:active{transform:translateY(0) scale(.98);}
@keyframes rise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.hero .eyebrow,.hero h1,.hero p.sub,.hero .btn,.hero .trust{animation:rise .6s ease both;}
.hero h1{animation-delay:.05s;}
.hero p.sub{animation-delay:.12s;}
.hero .btn{animation-delay:.2s;}
.hero .trust{animation-delay:.28s;}

/* age gate */
#agegate{position:fixed;inset:0;z-index:1000;background:rgba(8,6,14,.8);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;padding:20px;}
#agegate .ag-card{background:var(--surface);border:1px solid var(--hair-2);border-radius:20px;box-shadow:var(--shadow);max-width:460px;width:100%;padding:34px 30px;text-align:center;}
#agegate h2{margin:12px 0 10px;font-size:26px;}
#agegate p{font-size:14.5px;margin:0 auto 8px;}
#agegate .ag-btns{display:flex;flex-direction:column;gap:10px;margin:22px 0 14px;}
#agegate .ag-btns .btn{width:100%;}
#agegate .ag-note{font-size:12.5px;color:var(--ink-3);}
html.ag-lock{overflow:hidden;}
