:root {
  --ink:#0b1c13; --ink2:#46564d; --ink3:#8a9a91;
  --emerald:#067a58; --line:#e7ece9; --bg:#ffffff;
  --disp:'Clash Display',-apple-system,sans-serif;
  --body:'General Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
}
* { box-sizing:border-box; margin:0; padding:0; }
::selection { background:#cdeee1; }
body { font-family:var(--body); background:var(--bg); color:var(--ink); line-height:1.72; -webkit-font-smoothing:antialiased; }
.wrap { max-width:1060px; margin:0 auto; padding:0 32px; }

/* ── masthead ────────────────────────────────────────────── */
header.site { display:flex; align-items:center; justify-content:space-between; height:78px; }
.brand { display:flex; align-items:center; gap:11px; font-family:var(--disp); font-weight:600; font-size:18px; letter-spacing:-.02em; color:var(--ink); text-decoration:none; }
.brand img { border-radius:8px; display:block; }
header.site a.home { font-family:var(--mono); font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:var(--ink2); text-decoration:none; transition:color .15s; }
header.site a.home:hover { color:var(--emerald); }

/* ── two-column doc (built by legal.js: .doc > nav.toc + main) ─ */
.doc { display:grid; grid-template-columns:222px 1fr; gap:66px; align-items:start; padding-top:56px; }
.toc { position:sticky; top:40px; display:flex; flex-direction:column; gap:2px; padding-top:4px; }
.toc a {
  font-size:13.5px; line-height:1.4; color:var(--ink3); text-decoration:none;
  padding:6px 0 6px 15px; border-left:2px solid transparent; margin-left:-17px;
  transition:color .15s, border-color .15s;
}
.toc a:hover { color:var(--ink2); }
.toc a.active { color:var(--emerald); font-weight:600; border-left-color:var(--emerald); }

/* ── content ─────────────────────────────────────────────── */
main { min-width:0; }
h1 { font-family:var(--disp); font-weight:600; font-size:45px; line-height:1.02; letter-spacing:-.032em; }
.updated { font-family:var(--mono); font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink3); margin-top:16px; padding-bottom:34px; border-bottom:1px solid var(--line); margin-bottom:4px; }
h2 { font-family:var(--body); font-weight:600; font-size:19px; letter-spacing:-.012em; color:var(--ink); margin:42px 0 12px; }
p { margin:13px 0; color:#333f39; font-size:15.5px; }
ul { list-style:none; margin:14px 0; }
li { position:relative; padding-left:23px; margin:8px 0; color:#333f39; font-size:15.5px; }
li::before { content:'—'; position:absolute; left:0; top:0; color:var(--emerald); }
a { color:var(--emerald); text-decoration:none; }
main p a, main li a, .note a { border-bottom:1px solid rgba(6,122,88,.28); transition:border-color .15s; }
main p a:hover, main li a:hover, .note a:hover { border-bottom-color:var(--emerald); }
strong { color:var(--ink); font-weight:600; }
.note { border-left:2px solid var(--emerald); padding-left:18px; margin:24px 0; color:var(--ink2); font-size:14.5px; }

/* ── footer ──────────────────────────────────────────────── */
footer.site {
  margin-top:74px; border-top:1px solid var(--line); padding:26px 0 64px;
  display:flex; gap:24px; flex-wrap:wrap; align-items:center;
  font-family:var(--mono); font-size:11px; letter-spacing:.07em; text-transform:uppercase;
}
footer.site a { color:var(--ink2); text-decoration:none; transition:color .15s; }
footer.site a:hover { color:var(--emerald); }
footer.site .sp { margin-left:auto; text-transform:none; letter-spacing:0; font-family:var(--body); font-size:12px; color:var(--ink3); }

/* ── mobile: TOC collapses to a horizontal strip on top ──── */
@media (max-width:800px) {
  .doc { grid-template-columns:1fr; gap:0; padding-top:40px; }
  .toc { position:static; flex-direction:row; flex-wrap:wrap; gap:8px 16px; margin:0 0 32px; padding:0 0 24px; border-bottom:1px solid var(--line); }
  .toc a { border-left:0; padding:0; margin:0; font-size:12.5px; }
  .toc a.active { border-left:0; }
  h1 { font-size:34px; }
}
