:root{--black:#0a0a0a;--dark:#1a1a1a;--gray-dark:#3a3a3a;--gray:#666;--gray-light:#999;--gray-lighter:#e5e5e5;--white:#fafafa;--cream:#f5f4f0;--accent:#b8312f;--accent-dark:#8e1d1b;--accent-light:#fbecea;--font-serif:"Newsreader", Georgia, serif;--font-mono:"JetBrains Mono", "SF Mono", Consolas, monospace;--max-width:720px;--wide-width:960px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;font-size:18px}body{font-family:var(--font-serif);color:var(--dark);background:var(--white);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:1rem;line-height:1.7}.site-id{background:var(--accent);color:var(--white);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem .75rem;padding:.5rem 1rem;font-size:.7rem;display:flex}.site-id a{color:var(--white);opacity:.7;text-decoration:none;transition:opacity .15s}.site-id a:hover{opacity:1}.site-id .site-id-current{opacity:1;font-weight:600}.site-id .sep{opacity:.4;user-select:none}@media (width<=640px){.site-id{letter-spacing:.02em;gap:.25rem .6rem;padding:.5rem .75rem;font-size:.65rem}}header{text-align:center;border-bottom:1px solid var(--gray-lighter);padding:3rem 2rem 4rem}.logo-text{font-family:var(--font-mono);letter-spacing:-.02em;color:var(--black);margin:0 0 1.5rem;font-size:3rem;font-weight:500}.tagline{color:var(--gray);max-width:540px;margin:0 auto 1.5rem;font-size:1.15rem;font-style:italic}.license-badge{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--gray-light);border:1px solid var(--gray-lighter);border-radius:2px;padding:.4rem .8rem;font-size:.7rem;display:inline-block}main{max-width:var(--max-width);margin:0 auto;padding:0 2rem}section{border-bottom:1px solid var(--gray-lighter);padding:3rem 0}section:last-of-type{border-bottom:none}h1,h2,h3{color:var(--black);font-weight:500;line-height:1.3}h2{border-bottom:2px solid var(--accent);margin:0 0 1.5rem;padding-bottom:.5rem;font-size:1.5rem;display:inline-block}h3{margin:2rem 0 .75rem;font-size:1.1rem}p{margin:0 0 1.25rem}a{color:var(--accent);text-underline-offset:3px;text-decoration:underline 1px;transition:color .2s}a:hover{color:var(--accent-dark)}.definition{color:var(--dark);margin:0;padding:2rem 0;font-size:1.25rem;line-height:1.6}.definition strong{font-weight:600}.features{gap:2rem;margin-top:1.5rem;display:grid}.feature{background:var(--cream);border-left:3px solid var(--accent);padding:1.5rem}.feature h3{margin:0 0 .75rem;font-size:1.1rem}.feature p{color:var(--gray-dark);margin:0;font-size:.95rem}.comparison{margin:1.5rem 0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--gray-lighter);padding:.75rem 1rem}th{font-weight:500;font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--gray);background:var(--cream);font-size:.75rem}td:first-child{font-weight:500}.code-block{background:var(--dark);color:var(--gray-lighter);font-family:var(--font-mono);border-radius:4px;margin:1.5rem 0;padding:1.5rem;font-size:.85rem;line-height:1.6;overflow-x:auto}.code-block code{color:inherit}.code-comment{color:var(--gray)}.links-list{margin:1.5rem 0 0;padding:0;list-style:none}.links-list li{border-bottom:1px solid var(--gray-lighter);padding:1rem 0}.links-list li:last-child{border-bottom:none}.link-title{margin-bottom:.4rem;font-size:1.05rem;font-weight:500;display:block}.link-description{color:var(--gray);margin:0;font-size:.9rem}footer{max-width:var(--max-width);text-align:center;color:var(--gray);margin:0 auto;padding:3rem 2rem 4rem;font-size:.9rem}footer p{margin:0 0 .75rem}.license-note,.footer-family{font-family:var(--font-mono);color:var(--gray-light);letter-spacing:.02em;font-size:.75rem}.footer-family a{color:var(--gray)}.author-note{border-top:1px solid var(--gray-lighter);margin-top:2rem;padding-top:2rem;font-size:.85rem}.btn{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;border-radius:3px;padding:.65rem 1.1rem;font-size:.8rem;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:inline-block}.btn-primary{background:var(--accent);color:var(--white);border:1px solid var(--accent)}.btn-primary:hover{background:var(--accent-dark);border-color:var(--accent-dark);color:var(--white)}.btn-secondary{color:var(--accent);border:1px solid var(--accent);background:0 0}.btn-secondary:hover{background:var(--accent-light);color:var(--accent-dark)}.cta-row{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.lead{color:var(--dark);margin:0 0 1.5rem;font-size:1.15rem;line-height:1.6}.lead strong{font-weight:600}nav{background:var(--white);border-bottom:1px solid var(--gray-lighter);z-index:100;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;padding:.75rem 2rem;font-size:.75rem;position:sticky;top:0}nav ul{flex-wrap:wrap;justify-content:center;gap:2rem;margin:0;padding:0;list-style:none;display:flex}nav a{color:var(--gray);text-decoration:none}nav a:hover{color:var(--black)}.article-header{border-bottom:1px solid var(--gray-lighter);margin-bottom:2rem;padding:3rem 0 2rem}.article-header h1{color:var(--black);margin:0 0 1rem;font-size:2rem;font-weight:500;line-height:1.3}.article-meta{font-family:var(--font-mono);color:var(--gray-light);font-size:.75rem}.article-content{padding:2rem 0 3rem}.article-content h2{margin:2.5rem 0 1rem;font-size:1.5rem}.article-content h3{margin:2rem 0 .75rem;font-size:1.2rem}.article-content pre{background:var(--dark);color:var(--gray-lighter);font-family:var(--font-mono);border-radius:4px;margin:1.5rem 0;padding:1.25rem;font-size:.85rem;line-height:1.6;overflow-x:auto}.article-content code{font-family:var(--font-mono);background:var(--cream);border-radius:3px;padding:.15rem .4rem;font-size:.9em}.article-content pre code{background:0 0;padding:0}.article-content img{border-radius:6px;max-width:100%;height:auto;margin:1.5rem auto;display:block}.article-content figure{margin:1.5rem 0;padding:0}.article-content figcaption,.article-content em{color:var(--gray);text-align:center;margin-top:.5rem;font-size:.875rem;font-style:italic;display:block}.article-content p>a>img{max-width:100%}.canonical-notice{background:var(--cream);color:var(--gray);margin-top:2rem;padding:.75rem 1rem;font-size:.85rem}.canonical-notice a{color:var(--dark)}@media (width<=640px){html{font-size:16px}header{padding:2rem 1.5rem 3rem}.logo-text{font-size:2.5rem}main{padding:0 1.5rem}section{padding:2rem 0}nav ul{gap:1rem}.feature{padding:1.25rem}}@media print{nav,.site-id{display:none}header,section{border-bottom:none}}
