:root{--bg:#0e0e12;--panel:#17171e;--card:#1c1c25;--text:#eaeaf0;--sub:#9a9aa8;--accent:#ff4d6d;--accent2:#ff8fa3;--gold:#ffd166;--line:#26262f}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--text);font-family:-apple-system,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif}
a{color:inherit;text-decoration:none}
.proto{background:#332200;color:var(--gold);text-align:center;font-size:11px;padding:5px;letter-spacing:.08em}
header{position:sticky;top:0;z-index:50;background:rgba(14,14,18,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hwrap{max-width:1150px;margin:0 auto;display:flex;align-items:center;gap:24px;padding:13px 16px}
.logo{font-size:21px;font-weight:800;letter-spacing:.02em}
.logo b{color:var(--accent)}
nav{display:flex;gap:16px;font-size:13px;color:var(--sub);overflow-x:auto}
nav a{white-space:nowrap}
nav a.on{color:var(--text);border-bottom:2px solid var(--accent);padding-bottom:2px}
.wrap{max-width:1150px;margin:0 auto;padding:18px 14px 70px;min-height:60vh}
h2{font-size:17px;margin:24px 0 12px;display:flex;align-items:center;gap:8px}
h2 .bar{width:5px;height:19px;background:var(--accent);border-radius:3px;display:inline-block}
h2 .note{font-size:11px;color:var(--sub);font-weight:400}
.tabs{display:flex;gap:8px;margin:14px 0 4px}
.tab{padding:7px 20px;border-radius:999px;background:var(--panel);color:var(--sub);font-size:13px;cursor:pointer;border:1px solid var(--line)}
.tab.on{background:var(--accent);color:#fff;font-weight:700;border-color:var(--accent)}
.tab.dis{opacity:.45;cursor:not-allowed}
.mtabs{display:flex;gap:8px;margin:10px 0 12px}
.mtab{padding:5px 14px;border-radius:999px;background:transparent;color:var(--sub);font-size:12px;cursor:pointer;border:1px solid var(--line)}
.mtab.on{border-color:var(--accent);color:var(--accent2)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:13px}
.reco{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}
.reco .card{flex:none;width:215px}
.card{background:var(--card);border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .15s;position:relative}
.card:hover{transform:translateY(-3px)}
.thumbbox{position:relative;aspect-ratio:16/10;background:#000;overflow:hidden}
.thumbbox img,.thumbbox video{width:100%;height:100%;object-fit:cover;display:block}
.rank{position:absolute;top:0;left:0;background:rgba(0,0,0,.75);color:#fff;font-weight:800;font-size:14px;padding:4px 10px;border-bottom-right-radius:10px;z-index:2}
.rank.r1{background:var(--gold);color:#000}.rank.r2{background:#cfd4dc;color:#000}.rank.r3{background:#d09a5b;color:#000}
.dur{position:absolute;right:6px;bottom:6px;background:rgba(0,0,0,.7);font-size:11px;padding:2px 6px;border-radius:4px;z-index:2}
.mf{position:absolute;top:6px;right:6px;z-index:2;background:rgba(0,0,0,.6);color:#fff;font-size:11px;font-weight:700;padding:3px 9px;border-radius:4px}
.card:hover .mf{background:var(--accent)}
.meta{padding:9px 12px 11px}
.title{font-size:12.5px;line-height:1.5;max-height:3em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.crow{display:flex;align-items:center;gap:8px;margin-top:7px}
.cname{font-size:12px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.cname:hover{color:var(--accent2)}
.likes{font-size:12px;color:var(--accent2);font-weight:700}
.gwrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.gcell{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:4px}
.gcell:hover{border-color:var(--accent)}
.gcell span{font-size:14px;font-weight:700}
.gcell em{font-style:normal;font-size:11px;color:var(--sub)}
.txtbox{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;font-size:13px;line-height:2;color:var(--sub)}
.txtbox b{color:var(--text)}
#agegate{position:fixed;inset:0;background:rgba(5,5,8,.96);z-index:100;display:flex;align-items:center;justify-content:center}
#agegate.hide{display:none}
.agebox{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:34px;max-width:410px;text-align:center;margin:16px}
.agebox h1{font-size:19px;margin-bottom:10px}
.agebox p{font-size:12.5px;color:var(--sub);line-height:1.9;margin-bottom:22px}
.btn{display:inline-block;padding:11px 30px;border-radius:999px;font-weight:700;cursor:pointer;border:none;font-size:14px}
.btn.yes{background:var(--accent);color:#fff}
.btn.no{background:transparent;color:var(--sub);border:1px solid var(--line);margin-left:8px}
footer{border-top:1px solid var(--line);color:var(--sub);font-size:11px}
.fwrap{max-width:1150px;margin:0 auto;padding:22px 16px;display:flex;gap:20px;flex-wrap:wrap;justify-content:center}
@media(max-width:600px){.grid{grid-template-columns:repeat(2,1fr);gap:8px}.hwrap{gap:12px}nav{gap:10px;font-size:12px}}
