:root{--bg: #0A0A0E;--surface: #131318;--surface2: #1C1C22;--text: #EDEDF2;--text2: #A8A8B3;--text3: #83838F;--accent: #FF7A1A;--green: #00D397;--red: #FF3D5E;--amber: #E8B339;--blue: #5B8DEF;--purple: #9C8CFF;--cyan: #2BC8D6;--border: rgba(255, 255, 255, .09);--accent-soft: rgba(255, 122, 26, .12);--mono: Menlo, "SF Mono", ui-monospace, "Cascadia Mono", monospace;--sans: "Helvetica Neue", -apple-system, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:var(--text);text-decoration-color:var(--text3);text-underline-offset:3px}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.wrap{max-width:1080px;margin:0 auto;padding:0 24px}.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--text3)}.num,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.site-header{border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10;background:#0a0a0ed9;backdrop-filter:blur(12px)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:16px}.wordmark{font-size:21px;font-weight:700;letter-spacing:-.02em;color:var(--text);text-decoration:none;white-space:nowrap}.wordmark:after{content:".";color:var(--accent)}.site-nav{display:flex;align-items:center;gap:22px;font-size:14px;flex:1}.site-nav a{text-decoration:none;color:var(--text2)}.site-nav a:hover{color:var(--text)}.site-nav .nav-gap{flex:1}.site-nav .nav-app{border:1px solid var(--border);border-radius:8px;padding:5px 12px;color:var(--text3)!important;font-size:13px}.site-nav .nav-app:hover{color:var(--text)!important;border-color:#ffffff2e}.lang-switch{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--text3)!important;border:1px solid var(--border);border-radius:6px;padding:4px 10px}@media(max-width:720px){.site-header .wrap{height:auto;flex-wrap:wrap;padding-block:10px;gap:8px 12px}.site-nav{flex:1 1 100%;min-width:0;flex-wrap:wrap;gap:8px 14px;font-size:13.5px}.site-nav .nav-gap{display:none}.wordmark{font-size:19px}}.app-shell .site-header .wrap{max-width:none}.app-shell .site-footer{display:none}.site-footer{border-top:1px solid var(--border);margin-top:96px;padding:40px 0 56px;color:var(--text3);font-size:13px}.site-footer .wrap{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between}.site-footer nav{display:flex;flex-wrap:wrap;gap:8px 20px}.site-footer a{color:var(--text2);text-decoration:none}.site-footer a:hover{color:var(--text)}.footer-legal{max-width:72ch}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:13px 24px;font-size:15px;font-weight:600;text-decoration:none;border:1px solid transparent;white-space:nowrap}.btn-primary{background:var(--accent);color:#16161a}.btn-primary:hover{background:#ff8d3d;color:#16161a}.btn-ghost{border-color:var(--border);color:var(--text2);cursor:default}.prose{max-width:720px;margin:0 auto;padding-top:56px}.prose h1{font-size:34px;letter-spacing:-.02em;line-height:1.25;margin:10px 0 8px;text-wrap:balance}.prose .updated{font-family:var(--mono);font-size:12px;color:var(--text3);margin-bottom:40px}.prose h2{font-size:21px;letter-spacing:-.01em;margin:44px 0 12px}.prose h3{font-size:17px;margin:28px 0 8px}.prose p,.prose li{color:var(--text2);max-width:68ch}.prose strong{color:var(--text)}.prose ul{padding-left:22px}.prose li{margin:6px 0}.prose a{color:var(--text)}.prose .callout{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:10px;padding:16px 20px;margin:24px 0}.prose .callout p{margin:0}.prose code{font-family:var(--mono);font-size:13px;color:var(--text2);background:var(--surface2);border-radius:4px;padding:1px 6px}.prose table{border-collapse:collapse;width:100%;font-size:14px}.prose th,.prose td{border:1px solid var(--border);padding:8px 12px;text-align:left;color:var(--text2);vertical-align:top}.prose th{color:var(--text);font-weight:600;background:var(--surface)}.table-scroll{overflow-x:auto}
