/* サイト共通: 配色トークン + トップ/シリーズ目次ページのスタイル
   （各シリーズの章ページは <series>/html/*.css を使う） */
:root{
  --paper:#eef1ec; --panel:#ffffff; --screen:#f4f7f3;
  --ink:#14201e; --muted:#5a6b68; --faint:#8a9a96;
  --line:#d6ddd5; --grid:rgba(18,42,40,.09);
  --signal:#0a8f8a; --signal-soft:rgba(10,143,138,.13);
  --alias:#c5552f; --alias-soft:rgba(197,85,47,.13); --blue:#2f6f9e;
  --mono:ui-monospace,"SFMono-Regular","SF Mono","Cascadia Code",Menlo,Consolas,monospace;
  --sans:system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic UI","Noto Sans JP",sans-serif;
}
@media (prefers-color-scheme:dark){:root{
  --paper:#0e1517; --panel:#131d1f; --screen:#0c1416;
  --ink:#e5efeb; --muted:#8ba09b; --faint:#5f716d;
  --line:#233130; --grid:rgba(170,215,208,.08);
  --signal:#33cabd; --signal-soft:rgba(51,202,189,.14);
  --alias:#ef8a5c; --alias-soft:rgba(239,138,92,.15); --blue:#63a9d6;
}}
:root[data-theme="light"]{
  --paper:#eef1ec; --panel:#ffffff; --screen:#f4f7f3;
  --ink:#14201e; --muted:#5a6b68; --faint:#8a9a96; --line:#d6ddd5; --grid:rgba(18,42,40,.09);
  --signal:#0a8f8a; --signal-soft:rgba(10,143,138,.13); --alias:#c5552f; --alias-soft:rgba(197,85,47,.13); --blue:#2f6f9e;
}
:root[data-theme="dark"]{
  --paper:#0e1517; --panel:#131d1f; --screen:#0c1416;
  --ink:#e5efeb; --muted:#8ba09b; --faint:#5f716d; --line:#233130; --grid:rgba(170,215,208,.08);
  --signal:#33cabd; --signal-soft:rgba(51,202,189,.14); --alias:#ef8a5c; --alias-soft:rgba(239,138,92,.15); --blue:#63a9d6;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.85;font-size:16.5px;-webkit-font-smoothing:antialiased;letter-spacing:.01em}

/* 上部バー */
.toprow{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem clamp(1rem,4vw,2rem) 0}
.toprow .home{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;color:var(--muted);text-decoration:none;border:1px solid var(--line);border-radius:20px;padding:.3rem .8rem}
.toprow .home:hover{border-color:var(--signal);color:var(--signal)}
.toggle{font-family:var(--mono);font-size:.72rem;border:1px solid var(--line);background:var(--panel);color:var(--muted);padding:.38rem .55rem;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:.4rem}
.toggle:hover{color:var(--ink);border-color:var(--signal)}
.toggle svg{width:14px;height:14px}

/* ページ本体 */
.lp{max-width:880px;margin:0 auto;padding:clamp(2.6rem,8vw,5rem) clamp(1.1rem,5vw,1.5rem) 4rem}
.lp .eyebrow{font-family:var(--mono);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--signal);margin:0 0 1rem}
.lp h1{font-size:clamp(2.1rem,6.5vw,3.1rem);line-height:1.1;margin:.2rem 0 .9rem;letter-spacing:-.015em;font-weight:800;text-wrap:balance}
.lp .lede{font-size:1.12rem;color:var(--muted);max-width:40em}
.lp h2{font-family:var(--mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin:2.8rem 0 .5rem;font-weight:600}
.lp .part{color:var(--muted);font-size:.92rem;margin:0 0 1rem;max-width:40em}
footer.lpf{max-width:880px;margin:0 auto;padding:2.5rem clamp(1.1rem,5vw,1.5rem) 4rem;border-top:1px solid var(--line);color:var(--faint);font-size:.85rem}

/* 章カード（シリーズ目次ページ） */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.8rem}
.ch{display:flex;flex-direction:column;gap:.35rem;text-decoration:none;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem;transition:border-color .15s,transform .15s;position:relative;overflow:hidden}
.ch:hover{border-color:var(--signal);transform:translateY(-2px)}
.ch .n{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;color:var(--alias);font-weight:600}
.ch .t{font-size:1.05rem;font-weight:750;line-height:1.3;text-wrap:balance}
.ch .d{color:var(--muted);font-size:.86rem;line-height:1.55}
.ch .live{font-family:var(--mono);font-size:.64rem;letter-spacing:.06em;color:var(--signal);border:1px solid color-mix(in srgb,var(--signal) 40%,var(--line));border-radius:20px;padding:.1rem .5rem;align-self:flex-start;margin-top:.2rem}
.ch.star{border-color:color-mix(in srgb,var(--signal) 55%,var(--line));box-shadow:0 0 0 1px color-mix(in srgb,var(--signal) 22%,transparent) inset}

/* 近道ルート */
.paths{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.8rem;margin-top:.4rem}
.path{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:.9rem 1.1rem}
.path b{display:block;font-size:.95rem;margin-bottom:.3rem}
.path span{color:var(--muted);font-size:.85rem;line-height:1.6;font-family:var(--mono)}

/* ---- トップページ: シリーズ選択 ---- */
.hub{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;margin-top:.6rem}
.series{--accent:var(--signal);
  display:flex;flex-direction:column;gap:.55rem;text-decoration:none;color:inherit;
  background:var(--panel);border:1px solid var(--line);border-radius:18px;
  padding:1.4rem 1.5rem 1.5rem;position:relative;overflow:hidden;
  transition:border-color .16s,transform .16s,box-shadow .16s}
.series::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--accent);opacity:.75}
.series:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 8px 26px -18px var(--accent)}
.series .kicker{font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:700}
.series .st{font-size:1.42rem;font-weight:800;line-height:1.25;letter-spacing:-.01em;text-wrap:balance}
.series .sd{color:var(--muted);font-size:.93rem;line-height:1.7}
.series .meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.35rem}
.series .tag{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;color:var(--muted);border:1px solid var(--line);border-radius:20px;padding:.14rem .55rem}
.series .tag.on{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}
.series .topics{color:var(--faint);font-size:.82rem;line-height:1.7;font-family:var(--mono);margin-top:.3rem}
.series .go{margin-top:auto;padding-top:.7rem;font-family:var(--mono);font-size:.76rem;letter-spacing:.06em;color:var(--accent);font-weight:700}

.soon{background:transparent;border:1px dashed var(--line);border-radius:18px;padding:1.4rem 1.5rem;color:var(--faint);font-size:.9rem;line-height:1.8;display:flex;flex-direction:column;justify-content:center}
.soon b{display:block;color:var(--muted);font-size:1rem;font-weight:750;margin-bottom:.3rem}
