:root { --ink: #0E0D13; --ink-line: rgba(255,255,255,.09); --ink-muted: #A7A2B3; --accent: #A9B6DE;
  --bg: #F7F6F3; --surface: #FFFFFF; --line: #E4E0E6; --text: #17151D; --muted: #5C5868; --faint: #8D899A; --primary: #3F4F7A;
  --sans: "Inter", "Segoe UI", system-ui, sans-serif; --display: "Ysabeau", "Segoe UI", sans-serif; --mono: "JetBrains Mono", ui-monospace, monospace; }
@media (prefers-color-scheme: dark) { :root { --bg: #111016; --surface: #18171F; --line: #2C2A35; --text: #F2F0F6; --muted: #ABA6B6; --faint: #7F7A8B; --primary: #A9B6DE; } }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--text); font: 400 16.5px/1.75 var(--sans); -webkit-font-smoothing: antialiased; }
a { color: var(--primary); }
.wrap { max-width: 1120px; margin: 0 auto; padding: 0 32px; }
@media (max-width: 640px) { .wrap { padding: 0 18px; } }

header { position: sticky; top: 0; z-index: 10; background: rgba(14,13,19,.92); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid var(--ink-line); }
header .wrap { height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.brand { display: inline-flex; align-items: center; gap: 10px; font: 700 22px/1 var(--display); color: #fff; text-decoration: none; }
.brand img { width: 28px; height: 28px; }
nav { display: flex; align-items: center; gap: 26px; }
nav a { color: var(--ink-muted); text-decoration: none; font-size: 14.5px; font-weight: 500; }
nav a:hover { color: #fff; }
nav .btn { color: var(--ink); background: #fff; padding: 9px 15px; border-radius: 9px; font-weight: 600; }
nav .btn:hover { color: var(--ink); }
@media (max-width: 640px) { nav a:not(.btn) { display: none; } }

.hero { background: var(--ink); color: #fff; padding: 72px 0 64px; position: relative; overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(700px 300px at 20% -20%, rgba(172,161,212,.25), transparent 70%); pointer-events: none; }
.hero .wrap { position: relative; }
.kicker { font: 500 12.5px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--accent); margin-bottom: 16px; }
h1 { font: 700 clamp(38px, 5vw, 58px)/1.05 var(--display); letter-spacing: -.02em; margin: 0 0 14px; }
.meta { margin: 0; color: var(--ink-muted); font-size: 15px; }

.doc { display: grid; grid-template-columns: 240px 1fr; gap: 64px; padding-top: 64px; padding-bottom: 96px; align-items: start; }
@media (max-width: 900px) { .doc { grid-template-columns: 1fr; gap: 24px; padding-top: 40px; } .toc { position: static !important; } }
.toc { position: sticky; top: 96px; display: grid; gap: 2px; font-size: 14.5px; }
.toc b { font: 500 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--faint); margin-bottom: 12px; }
.toc a { color: var(--muted); text-decoration: none; padding: 6px 12px; border-left: 2px solid var(--line); }
.toc a:hover { color: var(--text); border-left-color: var(--primary); }
@media (max-width: 900px) { .toc { display: none; } }
article { max-width: 720px; }
.intro { font-size: 19px; color: var(--muted); margin: 0 0 12px; }
article h2 { font: 700 26px/1.25 var(--display); letter-spacing: -.01em; margin: 48px 0 12px; padding-top: 28px; border-top: 1px solid var(--line); }
article p { margin: 0 0 14px; color: var(--muted); }
article b { color: var(--text); font-weight: 600; }
article ul { margin: 0 0 14px; padding-left: 20px; color: var(--muted); }
article li { margin-bottom: 8px; }
article li::marker { color: var(--primary); }

footer { background: var(--ink); color: var(--ink-muted); font-size: 14px; }
footer .wrap { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding-top: 28px; padding-bottom: 28px; }
footer a { color: var(--ink-muted); text-decoration: none; margin-left: 20px; }
footer a:hover { color: #fff; }
