:root{--accent:#d4537e;--accent-dark:#993556;--bg:#fbf7f8;--card:#fff;--text:#2c2230;--muted:#8a7f86;--line:#efe3e8}
*{box-sizing:border-box}
body{margin:0;font-family:"Noto Sans JP",system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}
a{color:inherit;text-decoration:none}
.site-header{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);padding:12px 16px;z-index:10}
.logo{font-size:20px;font-weight:700}.logo-accent{color:var(--accent)}
main{max-width:1100px;margin:0 auto;padding:16px}
.hero{padding:18px 4px}
.hero h1{font-size:24px;margin:0 0 6px}
.hero p{color:var(--muted);margin:0}
.cat-nav{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.cat-link{padding:6px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:14px;color:var(--muted)}
.cat-link.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.page-title{font-size:22px}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:transform .12s}
.card:hover{transform:translateY(-2px)}
.card-thumb{aspect-ratio:1/1;background:#f1e9ec;overflow:hidden}
.card-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.card-body{padding:8px 10px}
.card-name{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-meta{font-size:12px;color:var(--muted)}
.site-footer{max-width:1100px;margin:30px auto;padding:16px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}
.disclaimer{font-size:11px}
.breadcrumb{font-size:13px;color:var(--muted);margin:10px 0}
.breadcrumb a{color:var(--accent)}
.age-gate{position:fixed;inset:0;background:rgba(40,30,40,.75);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}
.age-box{background:#fff;border-radius:16px;padding:26px;max-width:420px;text-align:center}
.age-box h2{margin:0 0 10px;color:var(--accent)}
.age-actions{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.age-yes{background:var(--accent);color:#fff;border:none;padding:13px;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer}
.age-no{color:var(--muted);font-size:13px}
.controls{margin:14px 0}
.cat-chip{padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:13px;color:var(--muted);cursor:pointer;font-family:inherit}
.cat-chip.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.cat-chip .cnt{font-size:11px;opacity:.75}
.sort-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:6px}
.results{font-size:13px;color:var(--muted);font-weight:500}
.sort-label{font-size:13px;color:var(--muted)}
.sort-label select{font-family:inherit;font-size:13px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);margin-left:4px}
.more-wrap{text-align:center;margin:22px 0}
.more-btn{padding:12px 30px;border:1px solid var(--accent);background:#fff;color:var(--accent-dark);border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit}
.more-btn:hover{background:var(--accent);color:#fff}
