:root{--ink:#190f1e;--muted:#6f6372;--paper:#fffafd;--rose:#ff4f94;--wine:#65143f;--line:#eadde6;--lilac:#f4eaf4;--max:1160px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.68 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:var(--wine)}
.wrap{width:min(calc(100% - 40px),var(--max));margin:auto}
.top{background:var(--ink);color:#fff;font-size:.82rem;letter-spacing:.04em;text-align:center;padding:9px 16px}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0}
.brand{font:800 1.45rem/1 Georgia,serif;letter-spacing:-.03em;color:var(--ink);text-decoration:none}
.brand i{color:var(--rose);font-style:normal}
.links{display:flex;gap:26px;font-weight:650;font-size:.92rem}
.links a{color:var(--muted);text-decoration:none}
.pill{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:13px 20px;background:var(--ink);color:#fff;text-decoration:none;font-weight:750}
main.wrap{padding:32px 0 95px}
.crumb{font-size:.82rem;color:var(--muted);margin-bottom:52px}
.crumb a{color:var(--muted)}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;font-weight:800;color:var(--wine);margin:0 0 16px}
h1{font:700 clamp(2.4rem,5.5vw,4.4rem)/1.05 Georgia,serif;letter-spacing:-.045em;max-width:920px;margin:0 0 20px}
.dek{color:var(--muted);font-size:1.15rem;max-width:760px;margin:0 0 18px}
.byline{font-size:.9rem;color:var(--wine);font-weight:650}
.product-photo{max-width:560px;margin:38px 0 54px}
.product-photo img{display:block;width:100%;height:auto;border-radius:20px;background:#fff}
.product-photo figcaption{font-size:.8rem;color:var(--muted);margin-top:10px}
.reading{display:grid;grid-template-columns:230px minmax(0,720px);gap:60px;align-items:start}
.toc{position:sticky;top:20px;font-size:.84rem;border-top:2px solid var(--wine);padding-top:10px}
.toc h2{font:700 1rem/1.3 Georgia,serif;margin:0 0 12px}
.toc ol{margin:0;padding-left:20px}
.toc li{margin:0 0 12px}
.toc a{color:var(--muted)}
.prose{min-width:0}
.prose p{margin:0 0 1.35em}
.prose h2{font:700 clamp(1.65rem,3vw,2rem)/1.18 Georgia,serif;letter-spacing:-.025em;margin:2em 0 .75em;scroll-margin-top:24px}
.prose a{color:var(--wine);text-decoration-thickness:1px;text-underline-offset:3px}
.review-video{margin:3rem 0;padding:22px;border:1px solid var(--line);background:#fff;border-radius:16px}
.review-video h2{margin:0 0 18px}
.review-video iframe{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:9px}
.review-video p{font-size:.84rem;color:var(--muted);margin:12px 0 0}
.back{display:inline-block;margin-top:48px;font-weight:700}
.blog-index{min-height:65vh}
.post-card{display:block;max-width:760px;margin-top:45px;padding:30px;border:1px solid var(--line);border-radius:20px;background:#fff;text-decoration:none;color:var(--ink)}
.post-card:hover,.post-card:focus-visible{border-color:var(--wine);box-shadow:0 10px 28px #35162913}
.post-card span{display:block;color:var(--wine);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.post-card h2{font:700 1.8rem/1.15 Georgia,serif;margin:16px 0}
.post-card p{color:var(--muted)}
.post-card strong{color:var(--wine)}
footer{border-top:1px solid var(--line);padding:38px 0 50px;color:var(--muted)}
.foot{display:flex;justify-content:space-between;gap:30px}
.legal{font-size:.8rem;max-width:650px}
.age{position:fixed;inset:0;display:none;place-items:center;background:#150b1ce8;backdrop-filter:blur(12px);z-index:20;padding:20px}
.age.show{display:grid}
.age-box{background:#fff;border-radius:24px;max-width:470px;padding:40px;text-align:center}
.age-heart{font-size:2rem;color:var(--rose)}
.age-box h2{font:700 2.2rem/1 Georgia,serif;margin:12px 0}
.age-box p{color:var(--muted)}
.age-actions{display:flex;justify-content:center;gap:10px;margin-top:24px}
.ghost{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:13px 20px;font-weight:750;cursor:pointer}
.age button{cursor:pointer}
@media(max-width:850px){.links{display:none}.reading{display:block}.toc{position:static;margin-bottom:38px}.foot{display:block}}
@media(max-width:520px){.wrap{width:min(calc(100% - 24px),var(--max))}.nav{padding:16px 0}.nav .pill{padding:10px 14px;font-size:.85rem}main.wrap{padding:20px 0 60px}.crumb{margin-bottom:35px}.product-photo{margin:32px 0}.post-card{padding:23px}}
