:root{--paper:#f7f9fc;--surface:#fff;--ink:#2a3345;--ink-strong:#0f1626;--pencil:#5a6578;--rule:#e1e7ef;--tile:#eef2f7;--sky:#38b6ff;--sky-deep:#0b77c5;--focus:#7cc4ff;--ok:#1f8a4c;
--display:"Plus Jakarta Sans","Segoe UI","Helvetica Neue",Arial,sans-serif;--body:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--paper:#0f141d;--surface:#161d29;--ink:#d5dbe6;--ink-strong:#f3f6fb;--pencil:#9aa6b8;--rule:#263042;--tile:#1d2533;--sky-deep:#5cc0ff}}
:root[data-theme="dark"]{--paper:#0f141d;--surface:#161d29;--ink:#d5dbe6;--ink-strong:#f3f6fb;--pencil:#9aa6b8;--rule:#263042;--tile:#1d2533;--sky-deep:#5cc0ff}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .top .cta{color:#0f1626}}
:root[data-theme="dark"] .top .cta{color:#0f1626}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 var(--body)}
a{color:var(--sky-deep);text-underline-offset:2px}
a:focus-visible,button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.top{border-bottom:1px solid var(--rule);background:var(--surface)}
.top .in{max-width:880px;margin:0 auto;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.top img{height:34px;width:auto;display:block}
.top .logo-dark{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .top .logo-light{display:none}:root:not([data-theme="light"]) .top .logo-dark{display:block}}
:root[data-theme="dark"] .top .logo-light{display:none}:root[data-theme="dark"] .top .logo-dark{display:block}
.top .cta{font:700 .9rem/1 var(--body);color:#fff;background:var(--sky-deep);padding:12px 18px;border-radius:999px;text-decoration:none;white-space:nowrap}
main{max-width:880px;margin:0 auto;padding:48px 20px 72px}
.doc{background:var(--surface);border:1px solid var(--rule);border-radius:24px;padding:clamp(24px,5vw,56px)}
.kicker{margin:0 0 8px;font:700 .78rem/1 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--pencil)}
h1{margin:0 0 6px;font:800 clamp(2rem,4.6vw,2.8rem)/1.1 var(--display);color:var(--ink-strong);letter-spacing:-.02em}
.date{margin:0 0 28px;color:var(--pencil);font-size:.92rem}
.lede{font-size:1.08rem;color:var(--ink-strong)}
h2{margin:40px 0 10px;font:800 1.22rem/1.3 var(--display);color:var(--ink-strong);scroll-margin-top:20px}
p,li,dd{color:var(--ink)}
ul{padding-left:1.2em}li{margin:6px 0}
table{width:100%;border-collapse:collapse;margin:14px 0 6px;font-size:.92rem;display:block;overflow-x:auto}
th,td{text-align:left;vertical-align:top;padding:10px 12px;border-bottom:1px solid var(--rule)}
th{font-weight:700;color:var(--ink-strong);background:var(--tile)}
code{font:600 .85em/1 "JetBrains Mono",ui-monospace,monospace;background:var(--tile);padding:2px 6px;border-radius:6px}
dl{display:grid;grid-template-columns:minmax(140px,auto) 1fr;gap:8px 20px;margin:12px 0}
dt{font-weight:700;color:var(--ink-strong)}dd{margin:0}
.toc{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px;padding:0;list-style:none}
.toc a{display:inline-block;font-size:.85rem;padding:6px 12px;border-radius:999px;background:var(--tile);color:var(--ink-strong);text-decoration:none}
mark.todo{background:#fff1b8;color:#5c4400;padding:0 4px;border-radius:4px}
.auth{columns:2;column-gap:28px;font-size:.92rem;padding-left:1.1em}
.auth li{break-inside:avoid}
@media (max-width:640px){.auth{columns:1}dl{grid-template-columns:1fr}dt{margin-top:8px}}
footer{max-width:880px;margin:0 auto;padding:0 20px 48px;display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--pencil);font-size:.9rem}
footer a,footer button{color:var(--pencil);background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
footer .sp{flex:1}
.top .right{display:flex;align-items:center;gap:10px}
.top .sw{font:600 .88rem/1 var(--body);color:var(--ink-strong);text-decoration:none;padding:11px 14px;border:1px solid var(--rule);border-radius:999px}
.note-tr{font-size:.9rem;color:var(--pencil);background:var(--tile);border-radius:12px;padding:10px 14px}
@media (max-width:520px){.top .cta{display:none}}
