:root{--bg:#0f0d1a;--bg2:#171427;--card:#1d1a31;--line:#2e2a4a;--text:#ece9f7;--muted:#9a95b8;--accent:#e0a458;--accent2:#c9748a;--ok:#4fc08d;--bad:#e5645f;--radius:16px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.2;margin:0 0 .6em}
h1{font-size:clamp(2.2rem,5vw,3.6rem)}h2{font-size:clamp(1.6rem,3vw,2.2rem)}h3{font-size:1.25rem}
a{color:var(--accent)}
code{font-family:ui-monospace,Menlo,Consolas,monospace;word-break:break-all}
.wrap{max-width:1100px;margin:0 auto;padding:0 1.25rem}.narrow{max-width:760px}
.muted{color:var(--muted)}.small{font-size:.85rem}.fine{font-size:.8rem;color:var(--muted)}
/* gate */
#age-gate{display:none;position:fixed;inset:0;z-index:100;align-items:center;justify-content:center;padding:1rem;
  background:radial-gradient(circle at 30% 20%,#2a1f45,#0a0813 70%)}
html.gate-open #age-gate{display:flex}
html.gate-open body{overflow:hidden}
html.gate-open main,html.gate-open header.nav,html.gate-open footer{visibility:hidden}
.gate-card{max-width:460px;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:2rem 1.75rem;box-shadow:0 30px 80px #0009}
.gate-badge{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;border:2px solid var(--accent);color:var(--accent);font-weight:700;font-size:1.3rem;margin-bottom:.5rem}
.gate-badge.small{width:30px;height:30px;font-size:.7rem;border-width:1.5px;margin:0 .4rem 0 0;vertical-align:middle}
.gate-actions{display:grid;gap:.6rem;margin:1.2rem 0}
/* buttons */
.btn{display:inline-block;border:1px solid var(--line);background:var(--card);color:var(--text);padding:.7rem 1.2rem;border-radius:999px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;text-align:center}
.btn:hover{border-color:var(--accent)}
.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#1a1020;border-color:transparent}
.btn-primary:hover{filter:brightness(1.08)}
.btn-ghost{background:transparent}.btn-small{padding:.35rem .9rem;font-size:.85rem}.btn-lg{padding:.95rem 1.8rem;font-size:1.05rem}.block{display:block;width:100%}
.btn:disabled{opacity:.6;cursor:wait}
/* nav */
.nav{position:sticky;top:0;z-index:20;background:#0f0d1ae6;backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:62px}
.nav nav{display:flex;gap:1.2rem;align-items:center}.nav nav a:not(.btn){color:var(--muted);text-decoration:none;font-size:.95rem}.nav nav a:not(.btn):hover{color:var(--text)}
.brand{font-family:Georgia,serif;font-weight:700;color:var(--text);text-decoration:none;display:flex;align-items:center;gap:.5rem}
.dot{width:.8rem;height:.8rem;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2))}
/* hero */
.hero{padding:4rem 0 3rem;background:radial-gradient(ellipse at 80% 0%,#3a2650 0,transparent 55%),radial-gradient(ellipse at 0% 100%,#2a1c3c 0,transparent 50%)}
.hero-in{display:grid;grid-template-columns:1.3fr 1fr;gap:3rem;align-items:center}
.pill{display:inline-block;border:1px solid var(--line);color:var(--accent);border-radius:999px;padding:.2rem .8rem;font-size:.82rem;margin-bottom:1rem}
.lead{font-size:1.2rem;color:#cfcae6;max-width:34rem}
.ticks,.crosses{list-style:none;padding:0;margin:1.2rem 0}
.ticks li,.crosses li{padding-left:1.8rem;position:relative;margin:.4rem 0}
.ticks li::before{content:"✓";position:absolute;left:0;color:var(--ok);font-weight:700}
.crosses li::before{content:"✕";position:absolute;left:0;color:var(--bad);font-weight:700}
.cta-row{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-top:1.5rem}
.hero-art{display:flex;justify-content:center}
.cover{width:min(320px,80%);height:auto;border-radius:10px;box-shadow:0 30px 70px #000a,0 0 0 1px #ffffff14;transform:rotate(2deg)}
.strip{background:var(--bg2);border-block:1px solid var(--line)}
.strip-in{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding-block:1.2rem}
.strip-in div{display:flex;flex-direction:column;font-size:.9rem}.strip-in span{color:var(--muted);font-size:.82rem}
/* sections */
.section{padding:4.5rem 0}.section.alt{background:var(--bg2);border-block:1px solid var(--line)}
.section-lead{color:#cfcae6;max-width:42rem}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:2rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem}
.card p{color:#c3bfdc;font-size:.95rem;margin:0}
.ico{width:2.2rem;height:2.2rem;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#1a1020;font-weight:700;margin-bottom:.8rem}
.policy{border:1px solid var(--accent);border-radius:var(--radius);padding:2rem;background:#1d1a3188}
.steps{counter-reset:s;list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:1.5rem}
.steps li{counter-increment:s;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem 1.3rem 1.3rem 3.6rem;position:relative;color:#c3bfdc}
.steps li::before{content:counter(s);position:absolute;left:1.1rem;top:1.2rem;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--accent);color:#1a1020;display:grid;place-items:center;font-weight:700}
.steps strong{display:block;color:var(--text)}
/* buy */
.buy{display:grid;grid-template-columns:1fr 1.2fr;gap:3rem;align-items:start}
.price span{font-family:Georgia,serif;font-size:3rem;font-weight:700}.price small{color:var(--muted)}
.checkout{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem}
label{display:block;font-weight:600;margin:1rem 0 .4rem}.check{display:flex;gap:.6rem;font-weight:400;font-size:.9rem;align-items:flex-start;color:#cfcae6}.check input{margin-top:.3rem}
input[type=email],input[type=password],input[name=to]{width:100%;padding:.8rem 1rem;border-radius:10px;border:1px solid var(--line);background:#120f22;color:var(--text);font:inherit}
input:focus{outline:2px solid var(--accent);outline-offset:1px}
.choices{display:flex;flex-wrap:wrap;gap:.5rem}
.choice{border:1px solid var(--line);background:#120f22;color:var(--text);padding:.55rem 1rem;border-radius:10px;font:inherit;cursor:pointer}
.choice:hover{border-color:var(--accent)}.choice.on{border-color:var(--accent);background:#2a2140;box-shadow:inset 0 0 0 1px var(--accent)}
.warn{background:#3b2a1a;border:1px solid #7a5524;color:#f2d3a4;border-radius:10px;padding:.7rem .9rem;font-size:.88rem;margin:.8rem 0}
.warn.strong{font-size:.95rem}
.error,.alert{background:#3b1c22;border:1px solid #8b3340;color:#f6b7bf;border-radius:10px;padding:.6rem .9rem;margin:.8rem 0}
.checkout .btn{margin-top:1.2rem}
/* faq */
details{border-bottom:1px solid var(--line);padding:1rem 0}summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between}
summary::after{content:"+";color:var(--accent);font-size:1.3rem;line-height:1}details[open] summary::after{content:"–"}
details p{color:#c3bfdc;margin:.7rem 0 0}
/* footer */
.footer{border-top:1px solid var(--line);padding:2.5rem 0 3rem;background:#0b0916}
.foot-top{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.foot-links{display:flex;gap:1.2rem}.foot-links a{color:var(--muted)}
.notice{margin-top:1.5rem;font-size:.85rem;color:var(--muted);border:1px solid var(--line);border-radius:12px;padding:.9rem 1rem}
dialog.legal{max-width:640px;width:calc(100% - 2rem);background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;max-height:85vh;overflow:auto}
dialog.legal::backdrop{background:#000b}.close{float:right;background:none;border:0;color:var(--text);font-size:1.8rem;cursor:pointer}
dialog li{margin:.5rem 0;color:#cfcae6;font-size:.92rem}
/* order page */
.order{padding:2.5rem 1.25rem 4rem;max-width:860px}
.pay-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem;margin-top:1rem}
.pay-card h1{font-size:1.9rem}
.pay-head{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.status-box{text-align:right}.countdown{font:700 2rem ui-monospace,monospace}.countdown.low{color:var(--bad)}
.badge{display:inline-block;border-radius:999px;padding:.15rem .7rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;background:#2e2a4a}
.badge[data-status=paid]{background:#17402f;color:#7be0b0}.badge[data-status=confirming]{background:#40361a;color:#f0cf79}
.badge[data-status=expired]{background:#3b1c22;color:#f6b7bf}.badge[data-status=underpaid]{background:#3b1c22;color:#f6b7bf}
.pay-grid{display:grid;grid-template-columns:240px 1fr;gap:1.6rem;margin:1.4rem 0;align-items:start}
.qr{text-align:center}.qr img{background:#fff;padding:8px;border-radius:12px;width:220px;height:220px}.qr small{display:block;margin-top:.4rem}
.field{margin-bottom:1rem}.k{display:block;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}
.v.big{font-size:1.7rem;font-weight:700}.v.big code{font-weight:700}.v.addr code{font-size:.95rem}
.copy{border:1px solid var(--line);background:#120f22;color:var(--text);border-radius:8px;padding:.15rem .6rem;font-size:.78rem;cursor:pointer;margin-left:.4rem;vertical-align:middle}
.progress{display:grid;gap:.5rem;margin:1.2rem 0}
.step{display:flex;gap:.7rem;align-items:center;color:var(--muted)}.step span{width:.9rem;height:.9rem;border-radius:50%;border:2px solid var(--line)}
.step.active{color:var(--text)}.step.active span{border-color:var(--accent);background:var(--accent);animation:pulse 1.3s infinite}
.step.done{color:var(--ok)}.step.done span{background:var(--ok);border-color:var(--ok)}
@keyframes pulse{50%{box-shadow:0 0 0 6px #e0a45830}}
.testbanner{background:#2c2a10;border:1px dashed #b3a02a;color:#efe39a;border-radius:12px;padding:.7rem 1rem;margin-top:1rem}
.testbanner .btn{margin-left:.6rem}
.done{text-align:center}.check-big{width:72px;height:72px;margin:0 auto 1rem;border-radius:50%;background:var(--ok);color:#06231a;font-size:2.4rem;display:grid;place-items:center}
/* admin */
.admin-body .wrap{max-width:1250px}.admin{padding:2rem 1.25rem}.admin-top{display:flex;justify-content:space-between;align-items:center}
.login{max-width:420px;padding-top:6rem}
.stats{display:flex;gap:.8rem;flex-wrap:wrap;margin:1rem 0}.stats div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.7rem 1.1rem}.stats b{display:block;font-size:1.3rem}.stats span{color:var(--muted);font-size:.8rem}
.tablewrap{overflow-x:auto}.tbl{width:100%;border-collapse:collapse;font-size:.88rem}.tbl th,.tbl td{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{color:var(--muted);font-weight:600;white-space:nowrap}.wrapcell{max-width:260px}
.actions{white-space:nowrap}.actions form{display:inline}.actions .btn{margin:0 .15rem .15rem 0}
.flash{background:#17402f;border:1px solid #2a7a55;border-radius:10px;padding:.6rem .9rem}.bad{color:var(--bad)}
.inline-form{display:flex;gap:.5rem;max-width:480px;margin:.8rem 0}.filters a{margin-right:.8rem}.filters a.on{font-weight:700}
/* responsive */
@media(max-width:900px){.hero-in,.buy{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.steps{grid-template-columns:1fr}.strip-in{grid-template-columns:1fr 1fr}.hero-art{order:-1}.nav nav a:not(.btn){display:none}}
@media(max-width:600px){.cards{grid-template-columns:1fr}.pay-grid{grid-template-columns:1fr}.status-box{text-align:left}.hero{padding-top:2rem}.v.big{font-size:1.35rem}.section{padding:3rem 0}}
