:root{--font-display:"Instrument Serif",Georgia,"Times New Roman",serif;--font-sans:Archivo,system-ui,-apple-system,"Segoe UI",sans-serif;--font-condensed:"Archivo Narrow",Archivo,system-ui,sans-serif;--font-mono:"Space Mono",SFMono-Regular,Menlo,Consolas,monospace;--text-3xs:10px;--text-2xs:11px;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-md:17px;--text-lg:20px;--text-xl:26px;--text-2xl:34px;--text-3xl:46px;--text-4xl:64px;--text-5xl:88px;--text-6xl:120px;--leading-tight:1.02;--leading-snug:1.15;--leading-body:1.55;--leading-narration:23px;--leading-loose:1.7;--tracking-micro:.135em;--tracking-brand:.09em;--tracking-caps:.06em;--tracking-tight:-.02em;--tracking-display:-.03em;--weight-regular:400;--weight-medium:600;--weight-bold:700;--weight-heavy:800;--weight-black:900;--paper-50:#fdf9ee;--paper-100:#fbf2d8;--paper-200:#f7f0df;--paper-300:#efe0bd;--paper-400:#e4cfa0;--paper-500:#d6be8b;--paper-600:#bfa471;--ink-900:#241d16;--ink-800:#2f271f;--ink-700:#3d332a;--ink-500:#786653;--ink-300:#a2907c;--night-950:#020617;--night-900:#080d1d;--night-800:#111827;--night-700:#1e2637;--leather-400:#a9705a;--leather-500:#965c44;--leather-600:#87503a;--leather-700:#6d3f2d;--leather-800:#55311f;--leather-tint:#87503a29;--gilt-200:#f6e7b8;--gilt-300:#e9d18c;--gilt-500:#c9a961;--rust-600:#a13e32;--rust-800:#7f2e25;--moss-600:#4c6b54;--moss-700:#3b5442;--panel-fill:#efe0bdf5;--panel-soft-fill:#fbf2d8f0;--surface-fill:#efe0bde0;--backdrop-fill:#1e181385;--grid-line:#fff6d838;--text-heading:var(--ink-900);--text-body:var(--ink-700);--text-muted:var(--ink-500);--text-on-brand:#fff9e9;--text-on-night:#fffdf4e0;--text-on-night-muted:#e9d18cc2;--text-brand:var(--leather-600);--text-danger:var(--rust-600);--text-link:var(--leather-700);--text-link-hover:var(--leather-800);--surface-page:var(--paper-200);--surface-card:var(--panel-fill);--surface-card-soft:var(--panel-soft-fill);--surface-sunken:var(--paper-300);--surface-input:var(--paper-100);--surface-night:var(--night-950);--surface-night-raised:var(--night-800);--surface-header:var(--paper-400);--surface-selected:var(--leather-600);--surface-selected-soft:var(--leather-tint);--surface-backdrop:var(--backdrop-fill);--border-strong:var(--ink-700);--border-hairline:#3d332a47;--border-on-night:#f6e7b83d;--border-brand:var(--leather-600);--border-danger:var(--rust-600);--brand:var(--leather-600);--brand-hover:var(--leather-700);--brand-active:var(--leather-800);--on-brand:#fff9e9;--focus-ring:var(--leather-600);--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-2xl:32px;--space-xxl:48px;--space-3xl:64px;--space-4xl:96px;--space-5xl:128px;--page-gutter:clamp(var(--space-lg),5vw,var(--space-4xl));--radius-sm:6px;--radius-md:8px;--radius-button:13px;--radius-token:14px;--radius-pill:16px;--radius-control:17px;--radius-panel:22px;--radius-full:999px;--border-width-hairline:1px;--border-width-control:2px;--hit-min:44px;--control-h-sm:38px;--control-h:48px;--control-h-lg:60px;--measure-narrow:34ch;--measure-body:62ch;--measure-story:760px;--measure-page:1280px;--shadow-control:3px 3px 0 #3d332a3b;--shadow-panel:4px 4px 0 #3d332a40;--shadow-narration:5px 5px 0 #3d332a47;--shadow-lifted:8px 8px 0 #3d332a4d;--shadow-on-night:4px 4px 0 #0206179e;--shadow-none:none;--text-shadow-night:1px 1px 2px #0b1c15d1;--focus-outline-width:3px;--duration-instant:0s;--duration-fast:.12s;--duration-medium:.2s;--duration-slow:.32s;--ease-standard:cubic-bezier(.2,0,.2,1);--ease-out:cubic-bezier(.16,1,.3,1);--press-translate:1px;--press-opacity:.78;--hover-opacity:.88;--disabled-opacity:.42;--texture-grain-opacity:.5;--texture-grid-size:24px;--texture-grid-color:#3d332a12;--texture-grid-color-night:#e9d18c12}.af-grain{position:relative}.af-grain:before{content:"";pointer-events:none;border-radius:inherit;opacity:var(--texture-grain-opacity);mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.34'/%3E%3C/svg%3E");position:absolute;inset:0}.af-grid{background-image:linear-gradient(to right,var(--texture-grid-color) 1px,transparent 1px),linear-gradient(to bottom,var(--texture-grid-color) 1px,transparent 1px);background-size:var(--texture-grid-size) var(--texture-grid-size)}.af-grid-night{--texture-grid-color:var(--texture-grid-color-night)}.af-aged{box-shadow:inset 0 0 90px #87503a21,inset 0 0 22px #3d332a17}.af-plate-rule{border:1px solid var(--border-strong);outline:1px solid var(--border-strong);outline-offset:4px}html{-webkit-font-smoothing:antialiased}body{background:var(--surface-page);color:var(--text-body);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-body);margin:0}h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--weight-regular);color:var(--text-heading);letter-spacing:var(--tracking-display);line-height:var(--leading-tight);margin:0}p{text-wrap:pretty}a{color:var(--text-link);text-underline-offset:3px;transition:color var(--duration-fast) var(--ease-standard);text-decoration:underline 1px}a:hover{color:var(--text-link-hover)}:focus-visible{outline:var(--focus-outline-width) solid var(--focus-ring);outline-offset:2px}.af-micro{font-family:var(--font-mono);font-size:var(--text-3xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-micro);text-transform:uppercase;color:var(--text-muted)}.af-wordmark{font-family:var(--font-condensed);font-weight:var(--weight-black);letter-spacing:var(--tracking-brand);text-transform:uppercase}html,body{min-height:100%;margin:0}body{background:var(--surface-page);overflow-x:hidden}.af-btn{-webkit-tap-highlight-color:transparent}.af-btn:active:not(:disabled):not([aria-disabled=true]){transform:translateY(var(--press-translate));opacity:var(--press-opacity)}@media (prefers-reduced-motion:reduce){.af-btn{transition:none}.af-btn:active:not(:disabled):not([aria-disabled=true]){transform:none}}.af-hero{gap:clamp(var(--space-2xl), 5vw, var(--space-4xl));grid-template-columns:minmax(0,1fr) minmax(0,.86fr);align-items:center;display:grid}@media (width<=900px){.af-hero{grid-template-columns:minmax(0,1fr)}}.af-feature-grid{gap:var(--space-xl);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}@media (width<=900px){.af-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.af-feature-grid{grid-template-columns:minmax(0,1fr)}}.af-siteheader-nav{flex:1}@media (width<=640px){.af-siteheader{gap:var(--space-md);flex-wrap:wrap}.af-siteheader-rule{display:none}.af-siteheader .af-wordmark{margin-right:auto}.af-siteheader-action{order:2}.af-siteheader-nav{flex-basis:100%;order:3}}.af-toast{z-index:40;background:var(--surface-card-soft);border:2px solid var(--border-strong);border-radius:var(--radius-control);box-shadow:var(--shadow-narration);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-body);align-items:center;gap:10px;padding:12px 18px;font-weight:700;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.af-prose{color:var(--text-body);font-size:var(--text-md);line-height:var(--leading-loose)}.af-prose>*+*{margin-top:var(--space-lg)}.af-prose h2{font-size:var(--text-2xl);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);margin-top:var(--space-3xl)}.af-prose h3{font-size:var(--text-xl);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);margin-top:var(--space-2xl)}.af-prose ul,.af-prose ol{padding-left:1.35em}.af-prose li+li{margin-top:var(--space-sm)}.af-prose blockquote{padding:var(--space-md) var(--space-xl);border-left:3px solid var(--brand);border-radius:var(--radius-sm);background:var(--surface-sunken);font-family:var(--font-display);font-size:var(--text-lg);margin-inline:0;line-height:1.4}.af-prose blockquote>*+*{margin-top:var(--space-md)}.af-prose code{font-family:var(--font-mono);background:var(--surface-input);border:1px solid var(--border-hairline);border-radius:var(--radius-sm);padding:1px 5px;font-size:.88em}.af-prose pre{padding:var(--space-lg);background:var(--surface-input);border:var(--border-width-control) solid var(--border-strong);border-radius:var(--radius-md);overflow-x:auto}.af-prose pre code{background:0 0;border:none;padding:0}.af-prose img{border:var(--border-width-control) solid var(--border-strong);border-radius:var(--radius-md);max-width:100%;height:auto}.af-prose hr{border:none;border-top:var(--border-width-control) solid var(--border-hairline);margin-block:var(--space-2xl)}.af-faq{border-bottom:1px solid var(--border-hairline)}.af-faq:last-child{border-bottom:none}.af-faq summary{justify-content:space-between;align-items:center;gap:var(--space-lg);padding:var(--space-lg) 0;cursor:pointer;font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-heading);line-height:1.25;list-style:none;display:flex}.af-faq summary::-webkit-details-marker{display:none}.af-faq summary::marker{content:""}.af-faq summary:hover{color:var(--brand)}.af-faq summary:after{content:"+";font-family:var(--font-mono);font-size:var(--text-lg);color:var(--text-muted);transition:transform var(--duration-fast) var(--ease-standard);flex:none;line-height:1}.af-faq[open] summary:after{content:"−";color:var(--brand)}.af-faq>p{margin:0 0 var(--space-lg);max-width:68ch;color:var(--text-body);font-size:var(--text-base);line-height:1.65}.af-skip{z-index:100;background:var(--surface-card-soft);border:2px solid var(--border-strong);border-radius:var(--radius-button);font-family:var(--font-sans);font-size:var(--text-sm);padding:10px 16px;font-weight:700;text-decoration:none;position:absolute;top:0;left:-9999px}.af-skip:focus{left:var(--space-lg);top:var(--space-lg)}.af-devbadge{left:var(--space-lg);bottom:var(--space-lg);z-index:90;background:var(--ink-900);color:var(--text-on-brand);border:1px solid var(--leather-600);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;opacity:.85;pointer-events:none;padding:6px 12px;font-weight:700;position:fixed}
