.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);padding-block:var(--space-5)}.site-header__mark{font-family:var(--font-serif);font-size:1.375rem;font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);color:var(--color-text);text-decoration:none}.site-header__nav{display:flex;align-items:center;gap:var(--space-3) var(--space-5);flex-wrap:wrap}.site-header__link{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);text-decoration:none;padding:4px 0;border-bottom:2px solid transparent;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.site-header__link:hover{color:var(--color-accent)}.site-header__link.is-active{color:var(--color-accent);font-weight:var(--weight-semibold);border-bottom-color:var(--color-accent)}.site-header__nav .bobbychat{display:contents}@media (max-width:40rem){.site-header__inner{padding-block:var(--space-3);gap:var(--space-2) var(--space-4)}.site-header__link--contact{display:none}}@font-face{font-family:Newsreader;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/newsreader-italic-400-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Newsreader;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/newsreader-italic-400-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Newsreader;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/newsreader-italic-500-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Newsreader;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/newsreader-italic-500-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/newsreader-normal-400-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/newsreader-normal-400-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/newsreader-normal-500-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/newsreader-normal-500-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/newsreader-normal-600-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/newsreader-normal-600-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/hanken-grotesk-normal-400-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/hanken-grotesk-normal-400-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/hanken-grotesk-normal-500-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/hanken-grotesk-normal-500-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/hanken-grotesk-normal-600-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/hanken-grotesk-normal-600-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/hanken-grotesk-normal-700-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/hanken-grotesk-normal-700-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-normal-400-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-normal-400-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-normal-500-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-normal-500-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--oat:#e9e8e2;--forest-black:#23291f;--stone:#5e655a;--forest:#2e5e43;--forest-deep:#234a34;--clay:#983a26;--sage-wash:#e4ebdf;--hairline:#d6d2c4;--white:#ffffff;--oat-raised:#f3f1ea;--oat-sunk:#dedcd3;--color-bg:var(--oat);--color-surface:var(--oat-raised);--color-surface-sunk:var(--oat-sunk);--color-surface-accent:var(--sage-wash);--color-text:var(--forest-black);--color-text-muted:var(--stone);--color-text-on-accent:var(--white);--color-text-on-wash:var(--forest-deep);--color-accent:var(--forest);--color-accent-deep:var(--forest-deep);--color-danger:var(--clay);--color-border:var(--hairline);--color-border-strong:color-mix(in oklab,var(--hairline) 70%,var(--forest-black));--color-focus:color-mix(in oklab,var(--forest) 55%,transparent);--font-serif:"Newsreader","Iowan Old Style",Georgia,"Times New Roman",serif;--font-sans:"Hanken Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;--font-display:var(--font-serif);--font-heading:var(--font-serif);--font-body:var(--font-sans);--font-label:var(--font-serif);--font-code:var(--font-mono);--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1.0625rem;--text-lg:1.1875rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:2.75rem;--text-4xl:3.75rem;--text-5xl:5rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.08;--leading-snug:1.2;--leading-normal:1.4;--leading-relaxed:1.65;--tracking-tight:-0.02em;--tracking-snug:-0.01em;--tracking-normal:0;--tracking-wide:0.08em;--space-0:0;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--measure:68ch;--measure-narrow:54ch;--container:1120px;--container-narrow:720px;--radius-sm:3px;--radius-md:6px;--radius-lg:10px;--radius-pill:999px;--border-hairline:1px solid var(--color-border);--border-strong:1px solid var(--color-border-strong);--shadow-none:none;--shadow-sm:0 1px 2px color-mix(in oklab,var(--forest-black) 8%,transparent);--shadow-md:0 4px 16px color-mix(in oklab,var(--forest-black) 10%,transparent);--shadow-lg:0 12px 36px color-mix(in oklab,var(--forest-black) 14%,transparent);--ease-out:cubic-bezier(0.22,0.61,0.36,1);--ease-in-out:cubic-bezier(0.65,0,0.35,1);--dur-fast:120ms;--dur-base:200ms;--dur-slow:320ms}:root[data-theme=dark]{color-scheme:dark;--color-bg:#181c15;--color-surface:#20261c;--color-surface-sunk:#12150f;--color-surface-accent:#22301f;--color-text:#e9e8e2;--color-text-muted:#a3a898;--color-text-on-accent:#16190f;--color-text-on-wash:#bcd6c4;--color-accent:#6cae86;--color-accent-deep:#86c49e;--color-danger:#e08a72;--color-border:#333a2c;--color-border-strong:#4b5341;--color-focus:color-mix(in oklab,#6cae86 55%,transparent);--sage-wash:#22301f}*,:after,:before{box-sizing:border-box}html{color-scheme:light;-webkit-text-size-adjust:100%}body{margin:0;background:var(--color-bg);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-relaxed);font-weight:var(--weight-regular);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body,h1,h2,h3,h4,h5,h6{color:var(--color-text)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:var(--tracking-snug);margin:0 0 var(--space-3);text-wrap:balance}h1{font-size:var(--text-4xl);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}p{margin:0 0 var(--space-4);max-width:var(--measure);text-wrap:pretty}a{color:var(--color-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;-webkit-text-decoration-color:color-mix(in oklab,var(--color-accent) 40%,transparent);text-decoration-color:color-mix(in oklab,var(--color-accent) 40%,transparent);transition:color var(--dur-fast) var(--ease-out),-webkit-text-decoration-color var(--dur-fast) var(--ease-out);transition:color var(--dur-fast) var(--ease-out),text-decoration-color var(--dur-fast) var(--ease-out);transition:color var(--dur-fast) var(--ease-out),text-decoration-color var(--dur-fast) var(--ease-out),-webkit-text-decoration-color var(--dur-fast) var(--ease-out)}a:hover{color:var(--color-accent-deep);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}a:focus-visible,button:focus-visible{outline:none;border-radius:var(--radius-sm);box-shadow:0 0 0 3px var(--color-focus)}code,kbd,pre,samp{font-family:var(--font-code);font-size:.9em}code{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.1em .35em}code,pre{background:var(--color-surface-sunk)}pre{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);overflow:auto}pre code{background:none;border:none;padding:0}hr{border:none;border-top:var(--border-hairline);margin:var(--space-6) 0}::selection{background:var(--sage-wash);color:var(--color-accent-deep)}.wrapper{max-width:var(--container);margin:0 auto;padding-inline:var(--space-6)}.eyebrow{display:inline-block;font-family:var(--font-label);font-style:italic;font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:var(--tracking-normal);color:var(--color-accent)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:10px 20px;font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:1;border-radius:var(--radius-md);border:1px solid transparent;white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.button,.button:hover{text-decoration:none}.button:active{transform:translateY(1px)}.button--sm{padding:7px 14px;font-size:var(--text-sm)}.button--primary{background:var(--color-accent);color:var(--color-text-on-accent);border-color:var(--color-accent)}.button--primary:hover{background:var(--color-accent-deep);border-color:var(--color-accent-deep);color:var(--color-text-on-accent)}.button--secondary{background:transparent;color:var(--color-text);border-color:var(--color-border-strong)}.button--secondary:hover{background:var(--color-surface-accent);border-color:var(--color-accent);color:var(--color-text)}.button--ghost{background:transparent;color:var(--color-accent)}.button--ghost:hover{background:var(--color-surface-accent)}.card{display:block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);color:var(--color-text);text-decoration:none;transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}.card--wash{background:var(--color-surface-accent)}.card--interactive:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.tag-list{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0}.tag{display:inline-flex;align-items:center;gap:var(--space-1);font-family:var(--font-label);font-style:italic;font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:var(--tracking-normal);line-height:1;padding:5px 11px;border-radius:var(--radius-pill);white-space:nowrap;background:var(--color-surface-accent);color:var(--color-text-on-wash);border:1px solid transparent}.tag--outline{background:transparent;color:var(--color-text-muted);border-color:var(--color-border)}.tag--solid{background:var(--color-accent);color:var(--color-text-on-accent);border-color:var(--color-accent)}.badge{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-label);font-style:italic;font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:var(--tracking-normal);color:var(--color-accent-deep)}.badge__dot{width:6px;height:6px;border-radius:50%;background:var(--color-accent);display:inline-block}.avatar-placeholder{display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--color-surface-accent);color:var(--color-accent-deep);border:1px solid var(--color-border);font-family:var(--font-heading);font-weight:var(--weight-semibold)}@media (prefers-reduced-motion:no-preference){.js-reveal [data-reveal]{opacity:0;transform:translateY(16px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}.js-reveal [data-reveal].is-revealed{opacity:1;transform:none}}.skip-link{position:absolute;left:-9999px;top:0;background:var(--color-accent);color:var(--white);padding:var(--space-2) var(--space-3);z-index:100;border-radius:0 0 var(--radius-md) 0;text-decoration:none}.skip-link:focus{left:0}