/*
Theme Name: 2D INDEX
Theme URI: https://2dindex.com/
Author: 2D INDEX
Description: 2次元成人向けIP横断データベースMVP用テーマ
Version: 0.1.3
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: 2d-index
*/

:root{
  --bg:#0b0d12;
  --panel:#131722;
  --panel2:#191e2b;
  --line:#2a3142;
  --text:#f4f6fb;
  --muted:#9ca6bb;
  --accent:#ff4fa3;
  --accent2:#8b5cf6;
  --good:#45d483;
  --warn:#f5bf52;
  --bad:#ff6b6b;
  --radius:18px;
  --max:1180px;
  --shadow:0 16px 44px rgba(0,0,0,.28);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:linear-gradient(180deg,#0a0c11 0%,#0f1219 100%);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;line-height:1.75}
a{color:inherit;text-decoration:none}
a:hover{color:#fff}
img{max-width:100%;height:auto;border-radius:14px}
.container{width:min(calc(100% - 32px),var(--max));margin:0 auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(11,13,18,.9);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.06)}
.header-inner{min-height:72px;display:flex;align-items:center;gap:28px}
.brand{font-weight:900;letter-spacing:.04em;font-size:1.25rem}.brand span{color:var(--accent)}
.nav{display:flex;gap:18px;align-items:center;margin-left:auto;font-size:.94rem;color:#c8cedc}
.nav a:hover{color:var(--accent)}
.search-inline{display:flex;gap:8px}.search-inline input{background:#121621;border:1px solid var(--line);color:#fff;border-radius:999px;padding:10px 14px;min-width:230px}.search-inline button,.btn{border:0;border-radius:999px;padding:10px 16px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-weight:800;cursor:pointer}
.hero{padding:72px 0 42px}.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:30px;align-items:center}.eyebrow{display:inline-flex;border:1px solid #3b2441;background:#241527;color:#ff91c6;border-radius:999px;padding:5px 10px;font-size:.78rem;font-weight:800}.hero h1{font-size:clamp(2.2rem,5vw,4.6rem);line-height:1.05;margin:18px 0 16px;letter-spacing:-.04em}.hero p{font-size:1.08rem;color:#b8c0d0;max-width:720px}.hero-card{background:radial-gradient(circle at 20% 10%,rgba(255,79,163,.18),transparent 42%),var(--panel);border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:var(--shadow)}
.hero-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.metric{background:#0d1017;border:1px solid #252b39;border-radius:16px;padding:18px}.metric b{display:block;font-size:1.65rem}.metric span{color:var(--muted);font-size:.85rem}
.section{padding:24px 0 54px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}.section h2{font-size:1.55rem;margin:0}.section-head p{margin:0;color:var(--muted);font-size:.9rem}
.type-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.type-card{min-height:148px;background:linear-gradient(145deg,#171b26,#11151e);border:1px solid var(--line);border-radius:var(--radius);padding:22px;transition:.2s transform,.2s border-color}.type-card:hover{transform:translateY(-3px);border-color:#6b3f68}.type-card .icon{font-size:1.7rem}.type-card h3{margin:24px 0 5px}.type-card p{margin:0;color:var(--muted);font-size:.86rem}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 28px rgba(0,0,0,.14)}.card-body{padding:18px}.card h3{margin:6px 0 8px;line-height:1.35}.card p{color:var(--muted);font-size:.9rem;margin:0}.tag{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;color:#ccd4e4;background:#1f2532;border:1px solid #30384a;border-radius:999px;padding:4px 9px;margin-right:5px}.tag.pink{color:#ff9cca;border-color:#5a3048;background:#261923}.tag.green{color:#8ee5af;border-color:#24543a;background:#14281d}
.content-wrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:26px;padding:42px 0 70px}.main-panel,.side-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.main-panel{padding:28px}.side-panel{padding:20px;height:max-content;position:sticky;top:94px}.title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.page-title{font-size:clamp(1.8rem,4vw,3rem);line-height:1.2;margin:6px 0 10px}.lead{color:#c1c8d6;font-size:1.02rem}.meta-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 24px}.info-table{width:100%;border-collapse:collapse;margin:18px 0}.info-table th,.info-table td{padding:13px 10px;border-bottom:1px solid var(--line);text-align:left}.info-table th{width:34%;color:var(--muted);font-weight:600}.offer{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;border:1px solid var(--line);background:#0f131c;border-radius:14px;padding:14px;margin:10px 0}.price{font-size:1.35rem;font-weight:900}.muted{color:var(--muted)}
.signal{display:grid;grid-template-columns:140px 1fr 100px;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.bar{height:8px;border-radius:999px;background:#2a3040;overflow:hidden}.bar i{display:block;height:100%;width:72%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:999px}.sentiment{font-size:.8rem;font-weight:800}.sentiment.positive{color:var(--good)}.sentiment.mixed{color:var(--warn)}.sentiment.negative{color:var(--bad)}
.relation-list{display:grid;gap:10px}.relation{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:10px 0}.relation small{color:var(--muted)}
.notice{border:1px solid #55401c;background:#241d10;color:#f2d99b;border-radius:14px;padding:13px 15px;font-size:.86rem}.affiliate-note{font-size:.78rem;color:#9099aa;border-top:1px solid var(--line);padding-top:14px;margin-top:20px}
.site-footer{border-top:1px solid rgba(255,255,255,.07);padding:34px 0 50px;color:#8791a5;font-size:.84rem}.footer-grid{display:grid;grid-template-columns:1fr auto;gap:24px}.footer-links{display:flex;gap:16px;flex-wrap:wrap}
.age-gate{position:fixed;inset:0;background:rgba(5,7,10,.94);display:none;place-items:center;z-index:9999;padding:20px}.age-gate.active{display:grid}.age-box{max-width:520px;background:#141923;border:1px solid #353d50;border-radius:24px;padding:32px;text-align:center;box-shadow:var(--shadow)}.age-box h2{margin-top:0;font-size:1.7rem}.age-box p{color:#aeb6c7}.age-actions{display:flex;gap:10px;justify-content:center;margin-top:22px}.btn.secondary{background:#252b38;color:#d2d8e5}
.empty{padding:34px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:16px}.pagination{margin-top:24px}.pagination .page-numbers{display:inline-block;padding:7px 11px;margin:2px;border:1px solid var(--line);border-radius:10px}.pagination .current{background:var(--accent);border-color:var(--accent)}
@media(max-width:900px){.hero-grid,.content-wrap{grid-template-columns:1fr}.type-grid{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:repeat(2,1fr)}.side-panel{position:static}.nav{display:none}.search-inline input{min-width:0;width:150px}}
@media(max-width:600px){.container{width:min(calc(100% - 22px),var(--max))}.hero{padding-top:42px}.type-grid,.grid{grid-template-columns:1fr}.header-inner{gap:10px}.search-inline{margin-left:auto}.search-inline input{width:118px}.main-panel{padding:20px}.signal{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.age-actions{flex-direction:column}}


/* v0.1.1: reader-facing cleanup and mobile refinements */
.section-compact{padding-bottom:10px}
.section-flush{padding-bottom:0}
.offer-action{text-align:right}
.card-context{display:inline-block;margin-left:7px;color:var(--muted);font-size:.74rem;vertical-align:middle}
.card-summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-height:4.7em}
.side-panel h3{margin-top:0;margin-bottom:8px}
.entry-content{overflow-wrap:anywhere}
@media(max-width:600px){
  .header-inner{min-height:66px;gap:8px}
  .brand{font-size:1.08rem;white-space:nowrap}
  .search-inline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;min-width:0;flex:1;justify-content:end}
  .search-inline input{width:100%;min-width:0;padding:9px 12px;font-size:.84rem}
  .search-inline button{padding:9px 13px;white-space:nowrap}
  .hero h1{font-size:clamp(2.05rem,10.5vw,3.2rem)}
  .hero p{font-size:1rem}
  .card-body{padding:16px}
  .card h3{font-size:1.08rem}
  .offer{grid-template-columns:1fr}
  .offer-action{text-align:left;display:flex;align-items:center;justify-content:space-between;gap:12px}
  .price{font-size:1.18rem}
}


/* v0.1.2: static page / legal content */
.page-shell{padding:54px 0 72px}
.page-panel{max-width:920px;margin:0 auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:32px}
.page-panel .page-title{margin:0 0 26px}
.page-content{color:#c7cfdd;overflow-wrap:anywhere}
.page-content h2,.page-content h3{color:var(--text);line-height:1.35;margin:32px 0 10px}
.page-content h2{font-size:1.45rem}.page-content h3{font-size:1.16rem}
.page-content p{margin:0 0 16px}.page-content a{color:#ff91c6;text-decoration:underline;text-underline-offset:3px}
.page-content ul,.page-content ol{padding-left:1.4em}
@media(max-width:600px){.page-shell{padding:34px 0 54px}.page-panel{padding:22px}.page-panel .page-title{font-size:2rem;margin-bottom:20px}}

/* v0.1.3: source links, relation cards */
.source-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.source-actions .btn{display:inline-flex;align-items:center;justify-content:center}.relation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.relation-card{border:1px solid var(--line);background:#0f131c;border-radius:14px;padding:14px}.relation-card small{display:block;color:var(--muted);margin-top:4px}@media(max-width:600px){.relation-grid{grid-template-columns:1fr}}
