:root{--bg:#faf7f2;--fg:#2b2a28;--muted:#6f6a62;--line:#e4ddd1;--accent:#7a5c3e;--card:#fff;--warn:#8a3b2e}
*{box-sizing:border-box}
html{font-size:16px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,"Hiragino Sans","Noto Sans JP","Yu Gothic",sans-serif;line-height:1.8}
a{color:var(--accent)}
.pr-bar{background:#efe7da;color:var(--fg);font-size:.8rem;text-align:center;padding:.35rem .75rem;border-bottom:1px solid var(--line)}
.noscript{background:var(--warn);color:#fff;padding:.75rem 1rem;font-size:.9rem;text-align:center}
.site-header{padding:1.25rem 1rem .75rem;border-bottom:1px solid var(--line);text-align:center}
.site-name{font-size:1.35rem;font-weight:700;text-decoration:none;color:var(--fg);letter-spacing:.05em}
.tagline{margin:.25rem 0 0;color:var(--muted);font-size:.85rem}
.container{max-width:42rem;margin:0 auto;padding:1rem}
h1{font-size:1.35rem;line-height:1.5;margin:.5rem 0 1rem}
h2{font-size:1.1rem;margin:1.75rem 0 .5rem;padding-left:.6rem;border-left:4px solid var(--accent)}
.article-list{list-style:none;margin:0;padding:0}
.article-card{margin:0 0 .9rem}
.article-card a{display:block;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.9rem 1rem;text-decoration:none;color:var(--fg)}
.card-date{display:block;font-size:.75rem;color:var(--muted)}
.card-title{display:block;font-weight:700;margin:.15rem 0}
.card-meta{display:block;font-size:.8rem;color:var(--muted)}
.card-summary{display:block;font-size:.9rem;margin-top:.35rem}
.pr-label{display:inline-block;margin:0;font-size:.7rem;border:1px solid var(--muted);color:var(--muted);border-radius:4px;padding:0 .4rem}
.post-date{color:var(--muted);font-size:.8rem;margin:-.5rem 0 1rem}
.lead{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem}
.work-info dl{display:grid;grid-template-columns:7.5em 1fr;gap:.35rem .75rem;margin:0;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;font-size:.92rem}
.work-info dt{color:var(--muted)}
.work-info dd{margin:0}
.note,.pr-small{font-size:.78rem;color:var(--muted)}
.points ol,.for-whom ul{padding-left:1.3rem}
.points li,.for-whom li{margin:.35rem 0}
.caution{background:#f6ece8;border:1px solid #e6cfc7;border-radius:10px;padding:.6rem 1rem;font-size:.9rem}
.buy{margin:2rem 0 1rem;text-align:center}
.buy-link{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;font-weight:700;padding:.75rem 1.4rem;border-radius:999px}
.site-footer{border-top:1px solid var(--line);margin-top:2rem;padding:1.25rem 1rem 2rem;text-align:center;font-size:.85rem;color:var(--muted)}
.adult-only{font-weight:700;color:var(--warn);margin:0 0 .5rem}
.footer-nav a{margin:0 .5rem;white-space:nowrap}
.copy{font-size:.75rem}
/* age gate */
.gate-pending body{overflow:hidden}
#age-gate{position:fixed;inset:0;background:rgba(43,42,40,.96);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}
#age-gate .box{background:var(--bg);border-radius:14px;max-width:24rem;width:100%;padding:1.5rem 1.25rem;text-align:center}
#age-gate h2{border:0;padding:0;margin:0 0 .75rem;font-size:1.15rem}
#age-gate p{font-size:.9rem;margin:.4rem 0}
#age-gate .btns{display:flex;gap:.75rem;margin-top:1.1rem}
#age-gate button{flex:1;font:inherit;padding:.7rem;border-radius:999px;border:1px solid var(--accent);cursor:pointer}
#age-gate .yes{background:var(--accent);color:#fff}
#age-gate .no{background:transparent;color:var(--accent)}
@media (min-width:48rem){html{font-size:17px}.container{padding:1.5rem}}
