:root{
  --bg:#0f1115; --panel:#161922; --panel2:#1c2029; --line:#2b3040; --line2:#3a4055;
  --txt:#e8e6e1; --dim:#9aa0b0; --faint:#6d7385;
  --gold:#c9a227; --red:#b3423a; --blue:#4a6fa5; --green:#5c8a5c;
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--txt);min-height:100vh;line-height:1.9;
  font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%}

header.site,footer.site{border-bottom:1px solid var(--line);padding:14px 18px}
footer.site{border-bottom:none;border-top:1px solid var(--line);margin-top:56px;padding:26px 18px 40px}
header.site{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.brand{font-size:15px;letter-spacing:.14em;text-decoration:none;color:var(--gold)}
header.site nav{margin-left:auto;display:flex;gap:16px}
header.site nav a{font-size:12.5px;color:var(--dim);text-decoration:none}
header.site nav a:hover{color:var(--gold)}

.wrap{max-width:760px;margin:0 auto;padding:30px 18px 0}
h1{font-size:34px;letter-spacing:.08em;margin-bottom:4px;text-wrap:balance}
h1 small{font-size:14px;color:var(--faint);letter-spacing:.1em;margin-left:8px}
h2{font-size:16px;color:var(--gold);letter-spacing:.14em;border-bottom:1px solid var(--line);
  padding-bottom:8px;margin:38px 0 14px;text-wrap:balance}
h2 small{color:var(--faint);font-size:11px;letter-spacing:.08em;margin-left:10px}
h3{font-size:14px;letter-spacing:.08em;margin-bottom:6px}
h3.sub{color:var(--gold);font-size:12.5px;letter-spacing:.16em;margin:30px 0 12px}
p{font-size:14.5px;color:#d5d3ce}
p+p{margin-top:10px}
.lead{font-size:15.5px}
.muted{color:var(--faint);font-size:12.5px}
section{margin-bottom:8px}

/* タイプ見出し */
.thead{text-align:center;padding:8px 0 6px}
.pw{position:relative;width:152px;height:152px;margin:0 auto 14px}
.pw>img{width:152px;height:152px;border-radius:50%;object-fit:cover;display:block;
  border:1px solid var(--line2);box-shadow:0 0 34px rgba(0,0,0,.55)}
.pw .badge{position:absolute;right:-4px;bottom:-4px;background:var(--bg);border-radius:50%;
  padding:4px;line-height:0;border:1px solid var(--line)}
.tcode{color:var(--gold);letter-spacing:.34em;font-size:12px}
.ttitle{font-size:16px;color:var(--dim);letter-spacing:.06em}
.tera{color:var(--faint);font-size:11.5px;margin-top:6px}

.axes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
.axes div{background:var(--panel);border:1px solid var(--line);padding:11px 13px}
.axes dt{color:var(--gold);font-size:12.5px;letter-spacing:.08em;margin-bottom:2px}
.axes dd{font-size:12.5px;color:var(--dim)}

.orgmap{width:100%;height:auto;background:var(--panel);border:1px solid var(--line);padding:14px;margin-top:12px}

.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.card{background:var(--panel);border:1px solid var(--line);padding:14px}
.card h3{font-size:12px;letter-spacing:.1em}
.card.good h3{color:var(--green)} .card.bad h3{color:var(--red)}
.card p{font-size:13px}

.mates{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 6px}
.mate{background:var(--panel);border:1px solid var(--line);padding:13px 10px;text-align:center;
  text-decoration:none;display:block;transition:.2s}
.mate:hover{border-color:var(--gold);background:var(--panel2)}
.mate .rank{font-size:10.5px;color:var(--gold);letter-spacing:.1em;display:block}
.mate img{width:62px;height:62px;border-radius:50%;object-fit:cover;margin:7px auto 5px;
  display:block;border:1px solid var(--line)}
.mate .mn{font-size:18px;display:block}
.mate .mt{font-size:10.5px;color:var(--faint);line-height:1.5;display:block}
.mate .sc{font-size:11px;color:var(--green);margin-top:5px;display:block}

.tablewrap{overflow-x:auto;border:1px solid var(--line);background:var(--panel)}
table{border-collapse:collapse;width:100%;min-width:560px}
th,td{padding:9px 11px;border-bottom:1px solid var(--line);text-align:left;font-size:12.5px;vertical-align:top}
th{color:var(--gold);font-size:11px;letter-spacing:.1em;font-weight:normal;background:var(--panel2)}
td a{color:var(--txt);text-decoration:none;border-bottom:1px solid var(--line2)}
td a:hover{color:var(--gold)}
td small{color:var(--faint);font-size:11px}
td.v{white-space:nowrap}
td.num{font-variant-numeric:tabular-nums;text-align:right;color:var(--dim)}
tbody tr:last-child td{border-bottom:none}

.warn{background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--red);
  padding:14px;margin-top:16px}
.warn h3{color:var(--red);font-size:13px}

.cta{text-align:center;margin:44px 0 10px;padding:26px 16px;border:1px solid var(--line);background:var(--panel)}
.cta p{font-size:14px;margin-bottom:14px}
.btn{display:inline-block;padding:13px 34px;border:1px solid var(--gold);color:var(--gold);
  text-decoration:none;letter-spacing:.16em;font-size:14.5px;transition:.25s}
.btn:hover{background:var(--gold);color:#11131a}

.chips{display:flex;flex-wrap:wrap;gap:7px}
.chips a{border:1px solid var(--line);color:var(--dim);font-size:12px;padding:5px 11px;
  text-decoration:none;transition:.2s}
.chips a small{color:var(--faint);font-size:9.5px;margin-left:5px;letter-spacing:.08em}
.chips a:hover{border-color:var(--gold);color:var(--gold)}

/* 一覧ページ */
.grid{display:flex;flex-direction:column;gap:26px;margin-top:22px}
.qgroup h2{margin-top:0}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.tcard{background:var(--panel);border:1px solid var(--line);padding:14px 8px;text-align:center;
  text-decoration:none;display:block;transition:.2s}
.tcard:hover{border-color:var(--gold);background:var(--panel2);transform:translateY(-2px)}
.tcard img{width:72px;height:72px;border-radius:50%;object-fit:cover;margin:0 auto 8px;
  display:block;border:1px solid var(--line)}
.tcard .cn{font-size:15px;display:block}
.tcard .cn small{display:block;font-size:9.5px;color:var(--faint)}
.tcard .ct{font-size:10.5px;color:var(--dim);display:block;margin-top:3px;line-height:1.5}
.tcard .cc{font-size:9.5px;color:var(--gold);letter-spacing:.14em;display:block;margin-top:5px}

.fnav{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-bottom:16px}
.fnav a{font-size:12.5px;color:var(--dim);text-decoration:none}
.fnav a:hover{color:var(--gold)}
.fine{font-size:10.5px;color:var(--faint);text-align:center;line-height:1.7;max-width:660px;margin:0 auto 5px}
.copy{font-size:10.5px;color:var(--faint);text-align:center;margin-top:14px}

/* 本文ページ（規約など） */
.doc h2{margin-top:32px}
.doc p,.doc li{font-size:13.5px}
.doc ul,.doc ol{margin:8px 0 8px 22px}
.doc li{margin-bottom:5px}
.doc .updated{color:var(--faint);font-size:11.5px;margin-top:6px}

@media(max-width:640px){
  .axes,.two{grid-template-columns:1fr}
  .mates{grid-template-columns:1fr}
  .cards{grid-template-columns:repeat(2,1fr)}
  h1{font-size:27px}
}

/* ===== 算命学LP ===== */
.bridge{border-left:2px solid var(--gold);padding:18px 0 18px 20px;margin-bottom:34px}
.bridge p{font-size:14.5px}
.bridge .bq{font-size:17px;color:var(--txt)}
.bridge .bq2{font-size:19px;color:var(--txt);line-height:1.8;margin:14px 0}
.bridge b{color:var(--gold)}

.note-box{background:var(--panel);border:1px solid var(--line2);padding:16px 18px;margin:18px 0}
.note-box p{font-size:13.5px}
.note-box p+p{margin-top:7px}
.note-box b{color:var(--gold)}

.offer{background:var(--panel);border:1px solid var(--line);padding:22px;margin:20px 0;position:relative}
.offer.feat{border-color:var(--gold);box-shadow:0 0 34px rgba(201,162,39,.09)}
.offer .ribbon{position:absolute;top:-1px;right:-1px;background:var(--gold);color:#11131a;
  font-size:10.5px;letter-spacing:.1em;padding:4px 12px}
.oh{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;border-bottom:1px solid var(--line);
  padding-bottom:12px;margin-bottom:12px}
.oh .on{font-size:21px;letter-spacing:.06em}
.oh .op{margin-left:auto;font-size:24px;color:var(--gold);font-variant-numeric:tabular-nums}
.os{font-size:12.5px;color:var(--dim);margin-bottom:12px}
.os2{font-size:13px;color:#c6c4bf;margin:12px 0 0;padding-top:12px;border-top:1px dashed var(--line)}
.olist{list-style:none;margin:0 0 16px;display:grid;grid-template-columns:1fr 1fr;gap:5px 14px}
.olist li{font-size:13px;color:#d5d3ce;padding-left:15px;position:relative}
.olist li::before{content:"—";position:absolute;left:0;color:var(--gold)}
.olist li b{color:var(--txt)}
.btn.buy{display:block;text-align:center;width:100%;max-width:none;margin:0}
.btn.buy.gold{background:rgba(201,162,39,.08)}
.fineline{font-size:10.5px;color:var(--faint);margin-top:9px;text-align:center}

.tokusho th{width:32%;vertical-align:top;background:var(--panel2);white-space:nowrap}
.tokusho td{font-size:12.5px}
.todo{background:rgba(179,66,58,.09);border:1px solid var(--red);padding:14px 16px;margin-bottom:22px}
.todo p{font-size:12.5px}
.todo p+p{margin-top:6px}
.todo b{color:var(--red)}

@media(max-width:640px){
  .olist{grid-template-columns:1fr}
  .oh .op{margin-left:0}
  .tokusho th{width:auto;white-space:normal}
}
.fast{color:var(--green)!important}
