@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-var.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-var.woff2) format("woff2")}@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/newsreader-var.woff2) format("woff2")}@font-face{font-family:Newsreader;font-style:italic;font-weight:200 800;font-display:swap;src:url(/fonts/newsreader-var-italic.woff2) format("woff2")}:root{--bg: #ffffff;--bg-soft: #f7f7f5;--ink: #0a0a0a;--ink-soft: #404040;--ink-mute: #737373;--rule: #e5e5e5;--rule-strong: #0a0a0a;--accent: #ff3b30;--accent-soft: #c9241b;--accent-wash: rgba(255, 59, 48, .08);--bg-hover: #ededeb;--box-shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 6px 18px rgba(0, 0, 0, .06);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, "Cascadia Mono", Consolas, monospace}body{font-family:var(--font-sans);font-weight:400;margin:0;padding:0;text-align:left;background-color:var(--bg);color:var(--ink);font-size:16px;line-height:1.6;font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{width:720px;max-width:calc(100% - 2em);margin:auto;padding:3em 1em}h1,h2,h3,h4,h5,h6{margin:0 0 .5rem;color:var(--ink);line-height:1.2;font-weight:600;letter-spacing:-.01em}h1{font-size:2.2rem;font-weight:700;letter-spacing:-.02em}h2{font-size:1.5rem}h3{font-size:1.2rem}h4{font-size:1.05rem}h5{font-size:.95rem}strong,b{font-weight:600;color:var(--ink)}em,i{font-style:italic;color:inherit}a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1.5px;text-underline-offset:2px;font-weight:500;transition:background-color .15s ease,color .15s ease}a strong,a b,a em,a i{color:inherit}a:hover{color:var(--accent-soft);background-color:var(--accent-wash)}p{margin-bottom:1em}.prose p{margin-bottom:1.3em}textarea,input{font-size:16px;font-family:inherit}table{width:100%}img{max-width:100%;height:auto;border-radius:0}code{padding:1px 5px;background-color:var(--bg-soft);border:1px solid var(--rule);border-radius:2px;font-family:var(--font-mono);font-size:.88em}pre{padding:1.1em 1.3em;border-radius:2px;background:#0a0a0a;color:#f5f5f5;overflow-x:auto;font-family:var(--font-mono)}pre>code{all:unset}blockquote{border-left:2px solid var(--ink);padding:.1em 0 .1em 1.2em;margin:1.5em 0;color:var(--ink-soft);font-size:1rem}hr{border:none;border-top:1px solid var(--rule);margin:2.5em 0}@media(max-width:720px){body{font-size:15px}main{padding:1em}h1{font-size:1.85rem}h2{font-size:1.3rem}}.sr-only{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}.section{margin-bottom:3rem}.section h2{font-size:.78rem;font-weight:600;font-style:normal;text-transform:uppercase;letter-spacing:.16em;margin-bottom:1rem;padding-bottom:.6rem;border-bottom:1px solid var(--rule-strong);color:var(--ink)}.card{background:var(--bg);border:1px solid var(--rule);border-radius:0;padding:1.25rem 1.4rem;transition:border-color .18s ease}.card:hover{border-color:var(--ink)}.tag{display:inline-block;padding:.18em .55em;border-radius:0;background:var(--bg);color:var(--ink-soft);font-size:.74rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;margin:0 .35rem .5rem 0;border:1px solid var(--rule)}.toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);background:var(--ink);color:var(--bg);padding:.7rem 1.2rem;border-radius:0;box-shadow:var(--box-shadow);opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:1000;font-size:.9rem}.toast.show{opacity:1;pointer-events:auto}::selection{background:var(--ink);color:var(--bg)}.tip-float{position:fixed;background:var(--ink);color:var(--bg);font-family:var(--font-mono);font-size:.68rem;font-weight:400;padding:.3em .6em;white-space:nowrap;border-radius:3px;box-shadow:0 2px 8px #00000026;pointer-events:none;z-index:9999;max-width:280px;overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity .12s ease}.tip-float.is-visible{opacity:1}
