
:root{
  color-scheme: light dark;
  --bg: light-dark(var(--l-bg), var(--d-bg));
  --surface: light-dark(var(--l-surface), var(--d-surface));
  --line: light-dark(var(--l-line), var(--d-line));
  --text: light-dark(var(--l-text), var(--d-text));
  --muted: light-dark(var(--l-muted), var(--d-muted));
  --accent: light-dark(var(--l-acc), var(--d-acc));
  --mono: ui-monospace, "SF Mono", "JetBrains Mono", Consolas, monospace;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  scrollbar-color: light-dark(#b9b4ab, #7d7d7d) transparent;
  scrollbar-width: thin;
}
/* palettes */
:root{--l-bg:#f6f8fa;--l-surface:#ffffff;--l-line:#d0d7de;--l-text:#1f2328;--l-muted:#4f5a66;--l-acc:#0f766e;
--d-bg:#0d1117;--d-surface:#161b22;--d-line:#30363d;--d-text:#e6edf3;--d-muted:#a0abb8;--d-acc:#2dd4bf}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
::selection{background:var(--text);color:var(--bg)}
.wrap{max-width:880px;margin:0 auto;padding:0 24px}
header{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
nav{display:flex;align-items:center;justify-content:space-between;height:60px}
.logo{font-family:var(--mono);font-weight:600;letter-spacing:-.02em}
.links{display:flex;gap:22px;align-items:center;font-size:14px;color:var(--muted)}
.links a:hover{color:var(--text)}
button{font:inherit;color:var(--muted);background:none;border:1px solid var(--line);border-radius:8px;width:34px;height:34px;cursor:pointer}
button:hover{color:var(--text);border-color:var(--muted)}
:focus-visible{outline:2px solid var(--text);outline-offset:3px;border-radius:4px}
.hero{padding:112px 0 88px}
h1{font-size:clamp(2.6rem,8vw,4.6rem);line-height:1.05;letter-spacing:-.04em;margin:14px 0 22px;font-weight:700}
.lead{max-width:600px;color:var(--muted);font-size:1.15rem}
.cta{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}
.btn{padding:10px 20px;border-radius:8px;font-size:15px;border:1px solid var(--line);transition:.2s}
.btn.pri{background:var(--accent);color:var(--bg);border-color:var(--accent)}
.btn:hover{transform:translateY(-1px);border-color:var(--muted)}
section{padding:64px 0;border-top:1px solid var(--line)}
h2{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--accent);text-transform:uppercase;letter-spacing:.12em;margin-bottom:32px}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:22px;transition:.2s}
.card:hover{border-color:var(--accent)}
.card h3{font-size:1.02rem;margin-bottom:8px;letter-spacing:-.01em}
.card p{font-size:.93rem;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.chips span{font-family:var(--mono);font-size:11.5px;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:2px 8px}
.row{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.row:last-child{border:0}
.row dt{font-family:var(--mono);font-size:13px;color:var(--muted)}
.row dd{font-size:.97rem}
.cve{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.cve span{font-family:var(--mono);font-size:13px;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 12px}
.contact a{display:block;font-size:clamp(1.3rem,4vw,2rem);letter-spacing:-.03em;font-weight:600;margin-bottom:10px;width:fit-content;border-bottom:1px solid var(--line)}
.contact a:hover{border-color:var(--text)}
footer{border-top:1px solid var(--line);padding:28px 0;font-family:var(--mono);font-size:12px;color:var(--muted)}
@media(max-width:600px){.links a{display:none}.row{grid-template-columns:1fr;gap:2px}.hero{padding:72px 0 56px}}
.rv{opacity:0;transform:translateY(14px);transition:opacity .6s,transform .6s}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

.card{display:block}
.links a.keep{color:var(--accent)}
@media(max-width:600px){.links a.keep{display:inline}}
.prose{max-width:680px;padding:56px 0 72px}
.prose h1{font-size:clamp(1.9rem,6vw,2.8rem);margin:0 0 10px}
.prose .meta{font-family:var(--mono);font-size:13px;color:var(--muted);margin-bottom:36px}
.prose h2{font-family:var(--sans);font-size:1.35rem;text-transform:none;letter-spacing:-.02em;color:var(--text);margin:36px 0 12px}
.prose p,.prose ul,.prose ol,.prose pre{margin-bottom:16px}
.prose ul,.prose ol{padding-left:22px}
.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.prose code{font-family:var(--mono);font-size:.9em;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:1px 6px}
.prose pre{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:14px;overflow-x:auto}
.prose pre code{border:0;padding:0;background:none}
