:root{--ff-bg:#17181c;--ff-text:#c1c3c8;--ff-text-bright:#fff;--ff-muted:#888c96;--ff-border:#353841;--ff-surface:#23262f;--ff-surface-raised:#1d1f25;--ff-accent-low:#17264f;--ff-accent:#3369ff;--ff-accent-high:#b3c7ff;--ff-error-bg:#471f1f;--ff-error-text:#f7baba;--ff-member:#39ac86;--ff-nav-height:3.5rem;--ff-nav-pad-x:1rem;--ff-nav-pad-y:.75rem;--ff-nav-gap:1rem;--ff-text-h4:1.25rem;--ff-line-height-headings:1.2}@media (width>=50rem){:root{--ff-nav-height:4rem;--ff-nav-pad-x:1.5rem;--ff-text-h4:1.5rem}}*,:before,:after{box-sizing:border-box}body{background:var(--ff-bg);min-height:100vh;color:var(--ff-text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Arial,sans-serif;line-height:1.6}a{color:var(--ff-accent);text-decoration:none}a:hover{color:var(--ff-accent-high)}.site-header{z-index:10;justify-content:space-between;align-items:center;gap:var(--ff-nav-gap);height:var(--ff-nav-height);padding:var(--ff-nav-pad-y) var(--ff-nav-pad-x);background:var(--ff-surface);border-bottom:1px solid var(--ff-bg);display:flex;position:fixed;inset:0 0 auto}.site-header-title{min-width:0;margin:-.25rem;padding:.25rem;overflow:clip}.site-brand{align-items:center;gap:var(--ff-nav-gap);white-space:nowrap;min-width:0;display:inline-flex}.site-brand-text{min-width:0;font-size:var(--ff-text-h4);color:var(--ff-accent);align-items:baseline;gap:.35rem;text-decoration:none;display:inline-flex}.site-brand-text:hover{color:var(--ff-accent)}.site-brand-family{color:var(--ff-accent);font-weight:400}.site-brand-sep{color:var(--ff-muted);font-weight:400}.site-brand-product{color:var(--ff-text);font-weight:600}.site-nav{align-items:center;gap:1.5rem;height:100%;font-size:.875rem;display:flex}.site-nav>a{color:var(--ff-text);font-weight:500}.site-nav>a:hover{color:var(--ff-text-bright)}.site-nav :global(blog-user-menu){flex-shrink:0;align-items:center;display:flex}main{max-width:42rem;padding:calc(var(--ff-nav-height) + 2rem) 1.5rem 4rem;margin:0 auto}.post-list{margin:0;padding:0;list-style:none}.post-list li{border-bottom:1px solid var(--ff-border);padding:1.25rem 0}.post-list h2{margin:0 0 .35rem;font-size:1.2rem}.post-list h2 a{color:var(--ff-text-bright)}.post-meta{color:var(--ff-muted);margin-bottom:.5rem;font-size:.85rem}.badge{text-transform:uppercase;letter-spacing:.04em;vertical-align:middle;border-radius:4px;margin-left:.5rem;padding:.15rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.badge-member{background:color-mix(in srgb, var(--ff-member) 25%, transparent);color:#99e6cc;border:1px solid var(--ff-member)}.badge-locked{background:color-mix(in srgb, var(--ff-accent) 20%, transparent);color:var(--ff-accent-high);border:1px solid var(--ff-accent)}.prose h1{color:var(--ff-text-bright);margin-top:0;font-size:1.75rem}.prose img{border-radius:6px;max-width:100%;height:auto}.prose pre,.prose code{background:var(--ff-surface);border-radius:4px}.prose pre{padding:1rem;overflow-x:auto}.locked-teaser{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:8px;margin:1.5rem 0;padding:1.25rem}.button{border:1px solid var(--ff-accent);background:var(--ff-accent);color:var(--ff-text-bright);cursor:pointer;border-radius:8px;padding:.55rem 1rem;font-size:.95rem;font-weight:500;display:inline-block}.button:hover{background:var(--ff-accent-high);border-color:var(--ff-accent-high);color:var(--ff-bg)}.button.ghost{color:var(--ff-accent);background:0 0}.comments{border-top:1px solid var(--ff-border);margin-top:3rem;padding-top:2rem}.comments h2{color:var(--ff-text-bright);font-size:1.2rem}.comment{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:8px;margin-bottom:.75rem;padding:1rem}.comment-header{align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.9rem;display:flex}.comment-header img{border-radius:50%;width:24px;height:24px}.comment-body{white-space:pre-wrap;margin:0}.comment-form textarea{border:1px solid var(--ff-border);background:var(--ff-surface);width:100%;min-height:5rem;color:var(--ff-text);font:inherit;resize:vertical;border-radius:8px;padding:.75rem}.comment-form .row{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.75rem;display:flex}.comment-form input[type=text]{border:1px solid var(--ff-border);background:var(--ff-surface);min-width:12rem;color:var(--ff-text);border-radius:8px;flex:1;padding:.5rem .75rem}.muted{color:var(--ff-muted);font-size:.9rem}.error{color:var(--ff-error-text);background:var(--ff-error-bg);border-radius:6px;padding:.5rem .75rem}.admin-table{border-collapse:collapse;width:100%;font-size:.9rem}.admin-table th,.admin-table td{border:1px solid var(--ff-border);text-align:left;vertical-align:top;padding:.5rem}.admin-table th{background:var(--ff-surface)}
