/* tokens: light is default, dark follows the OS */
:root{
  --bg:#fbfaf8; --surface:#ffffff; --line:#e6e2dc; --ink:#1b1a18; --muted:#5f5a54;
  --accent:#9a3412; --accent-soft:#fdf2ec; --code-bg:#f5f2ee; --ok:#166534; --warn:#92400e;
  --radius:10px; --maxw:46rem;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#16181c; --surface:#1d2024; --line:#30343a; --ink:#e9e7e3; --muted:#a3a09b;
    --accent:#fb923c; --accent-soft:#2a1f18; --code-bg:#14161a; --ok:#86efac; --warn:#fcd34d;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font:400 17px/1.65 ui-sans-serif,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  padding:0 16px;
}
.wrap{max-width:var(--maxw); margin:0 auto; padding:56px 0 80px}
header.top{border-bottom:1px solid var(--line); padding-bottom:28px; margin-bottom:36px}
.kicker{font-size:13px; letter-spacing:.09em; text-transform:uppercase; color:var(--accent); font-weight:600; margin:0 0 10px}
h1{font-size:clamp(28px,5.4vw,40px); line-height:1.15; margin:0 0 14px; letter-spacing:-.02em}
.lead{font-size:19px; color:var(--muted); margin:0}
h2{font-size:clamp(21px,3.6vw,26px); line-height:1.25; margin:52px 0 14px; letter-spacing:-.01em; scroll-margin-top:16px}
h2 .num{color:var(--accent); font-variant-numeric:tabular-nums; margin-right:.45em}
h3{font-size:18px; margin:28px 0 8px}
p,ul,ol{margin:0 0 15px}
ul,ol{padding-left:1.35em}
li{margin:0 0 7px}
a{color:var(--accent); text-decoration-thickness:1px; text-underline-offset:2px}
strong{font-weight:650}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.9em;
  background:var(--code-bg); border:1px solid var(--line); border-radius:5px; padding:.1em .34em}
pre{background:var(--code-bg); border:1px solid var(--line); border-radius:var(--radius);
  padding:16px 16px; overflow-x:auto; margin:0 0 16px; font-size:14px; line-height:1.55}
pre code{background:none; border:0; padding:0; font-size:inherit}
.snippet{position:relative}
.snippet button{position:absolute; top:8px; right:8px; font:inherit; font-size:12px; cursor:pointer;
  background:var(--surface); color:var(--muted); border:1px solid var(--line); border-radius:6px; padding:4px 9px}
.snippet button:hover{color:var(--ink)}
.box{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; margin:0 0 22px}
.box.accent{background:var(--accent-soft); border-color:color-mix(in srgb, var(--accent) 28%, var(--line))}
.box h3{margin-top:0}
.box :last-child{margin-bottom:0}
.quick{list-style:none; padding:0; margin:0}
.quick li{position:relative; padding-left:28px; margin:0 0 11px}
.quick li::before{content:"\25A1"; position:absolute; left:0; top:0; color:var(--accent); font-size:19px; line-height:1.5}
.tag{display:inline-block; font-size:12px; font-weight:600; letter-spacing:.03em; text-transform:uppercase;
  color:var(--warn); border:1px solid currentColor; border-radius:4px; padding:1px 6px; vertical-align:2px}
table{width:100%; border-collapse:collapse; margin:0 0 18px; font-size:15px}
th,td{text-align:left; padding:9px 10px; border-bottom:1px solid var(--line); vertical-align:top}
th{font-size:13px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:600}
td code{white-space:nowrap}
footer{border-top:1px solid var(--line); margin-top:64px; padding-top:22px; color:var(--muted); font-size:14px}
.toc{margin:0 0 8px; padding:0; list-style:none; columns:2; column-gap:28px}
.toc li{margin:0 0 6px; font-size:15px; break-inside:avoid}
@media (max-width:560px){
  .toc{columns:1} body{font-size:16px} .wrap{padding:36px 0 56px}
  .snippet pre{padding-top:46px}
  .snippet button{top:10px; right:10px}
  pre{font-size:13px}
}
