:root { color-scheme:dark; --bg:#15151f; --panel:#20202c; --line:#363441; --text:#f4f1f3; --muted:#b9b5c4; --pink:#f28baa; --focus:#ffd4e3; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; background:var(--bg); color:var(--text); font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif; line-height:1.8; }
a { color:inherit; text-underline-offset:.25em; }
button,input,select { font:inherit; }
button,a { touch-action:manipulation; }
button { cursor:pointer; }
button:disabled { opacity:.55; cursor:wait; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid var(--focus); outline-offset:4px; }
.site-shell { width:min(1120px, calc(100% - 48px)); margin:auto; }
.site-header { display:flex; align-items:center; justify-content:space-between; padding:27px 0; border-bottom:1px solid var(--line); gap:12px; }
.wordmark { font-weight:750; font-size:21px; letter-spacing:.06em; text-decoration:none; }
.brand-dot { color:var(--pink); }
.age-label { font-size:11px; color:var(--muted); border:1px solid var(--line); border-radius:20px; padding:3px 12px; white-space:nowrap; }
main { min-height:65vh; }
.eyebrow { display:block; color:var(--pink); font-size:11px; font-weight:700; letter-spacing:.2em; }
h1 { font-size:clamp(30px,4.5vw,52px); letter-spacing:.025em; line-height:1.45; margin:19px 0; }
p { color:var(--muted); }
.gate { max-width:660px; margin:76px auto; text-align:center; padding:40px 30px; border:1px solid var(--line); border-radius:22px; background:linear-gradient(145deg,#242330,#1a1924); }
.gate p { font-size:14px; }
.gate .gate-question { color:var(--text); font-weight:650; margin-top:30px; }
.gate-actions { display:grid; gap:12px; max-width:360px; margin:20px auto; }
.primary,.secondary { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:48px; border-radius:10px; padding:11px 22px; border:1px solid transparent; text-decoration:none; font-weight:650; }
.primary { background:var(--pink); color:#24151f; }
.primary:hover:not(:disabled) { background:#ffabc5; }
.secondary { background:transparent; border-color:#595363; color:var(--text); }
.secondary:hover:not(:disabled) { background:#2c2938; }
.gate .fine-print { font-size:11px; margin-top:25px; }
.intro { margin:65px 0 35px; }
.intro p { font-size:14px; }
.search-box { padding:24px; background:var(--panel); border:1px solid var(--line); border-radius:16px; }
.search-box>label { display:block; font-size:12px; font-weight:600; margin-bottom:8px; }
.search-row { display:flex; gap:12px; }
input { min-width:0; flex:1; padding:14px 16px; border:1px solid #514b60; border-radius:10px; background:#15151f; color:var(--text); font-size:16px; }
input::placeholder { color:#aaa3b5; }
.search-options { display:flex; align-items:center; gap:12px; margin-top:16px; font-size:12px; }
select { padding:7px 10px; background:#15151f; color:var(--text); border:1px solid #514b60; border-radius:7px; }
.results-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:38px; }
h2 { font-size:18px; margin:0; }
.results-heading p { margin:0; font-size:12px; }
.ad-notice { font-size:11px; margin:9px 0 20px; }
.status { font-size:13px; min-height:1.8em; }
.status.error { color:#ffb9c7; }
.results { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.result-card { border:1px solid var(--line); border-radius:14px; background:var(--panel); overflow:hidden; display:flex; flex-direction:column; }
.image-wrap { aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; background:#111019; color:var(--muted); font-size:12px; }
.image-wrap img { width:100%; height:100%; object-fit:contain; }
.card-body { padding:17px; display:flex; flex-direction:column; flex:1; }
.card-body h3 { margin:0 0 13px; font-size:14px; font-weight:600; overflow-wrap:anywhere; }
.card-meta { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; font-size:11px; margin:auto 0 14px; color:var(--muted); }
.card-link { color:var(--pink); font-size:12px; font-weight:650; align-self:flex-start; }
.pagination { display:flex; justify-content:center; align-items:center; gap:20px; margin:30px 0; font-size:13px; }
.pagination .secondary:disabled { cursor:default; }
.search-note { display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid var(--line); margin:35px 0; padding-top:18px; }
.search-note p { font-size:11px; margin:0; }
.text-button { border:0; padding:8px 0; color:var(--muted); background:none; text-decoration:underline; text-underline-offset:4px; font-size:11px; white-space:nowrap; }
.site-footer { padding:24px 0 32px; border-top:1px solid var(--line); }
.site-footer p { font-size:10px; margin:5px 0; }
@media(min-width:1100px) { .results { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:700px) { .site-shell { width:calc(100% - 32px); } .gate { margin:42px auto; padding:32px 20px; } .intro { margin-top:40px; } .results { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; } .search-note { align-items:flex-start; flex-direction:column; gap:8px; } }
@media(max-width:440px) { .wordmark { font-size:17px; } .age-label { font-size:9px; padding:3px 8px; } .search-box { padding:17px; } .search-row { flex-direction:column; } .results { grid-template-columns:1fr; } .card-body h3 { font-size:15px; } .pagination { gap:12px; } .pagination .secondary { padding:10px 15px; } }

.footer-links { display:flex; flex-wrap:wrap; gap:12px 24px; font-size:12px; margin-bottom:16px; }
