:root{--color-primary-dark:#2F3234;--color-accent:#B9601F;--color-accent-hover:#a05018;--color-secondary-dark:#69635D;--color-light-neutral:#DFDED8;--color-subtle-contrast:#F2ECDC;--color-bg:var(--color-subtle-contrast);--color-bg-dark:var(--color-primary-dark);--color-text:var(--color-primary-dark);--color-text-muted:var(--color-secondary-dark);--color-border:var(--color-light-neutral);--color-border-subtle:rgba(255, 255, 255, 0.08);--color-link:var(--color-accent);--text-xs:clamp(0.75rem,  0.7rem + 0.25vw,  0.875rem);--text-sm:clamp(0.875rem, 0.825rem + 0.25vw, 1rem);--text-base:clamp(1rem,     0.95rem + 0.25vw,  1.125rem);--text-lg:clamp(1.125rem, 1rem + 0.6vw,      1.375rem);--text-xl:clamp(1.375rem, 1.1rem + 1.2vw,    1.875rem);--text-2xl:clamp(1.75rem,  1.3rem + 2vw,      2.5rem);--text-3xl:clamp(2.25rem,  1.5rem + 3vw,      3.5rem);--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--space-24:6rem;--container-max:72rem;--container-padding:var(--space-6);--font-heading:'Space Grotesk', system-ui, sans-serif;--font-body:'Source Serif 4', Georgia, serif;--font-weight-heading:600;--line-height-tight:1.2;--line-height-base:1.65;--hamburger-bar-width:22px;--hamburger-bar-height:2px;--hamburger-gap:5px}@font-face{font-family:space grotesk;font-style:normal;font-weight:600 700;font-display:swap;src:url(/fonts/space-grotesk-latin-ext.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:space grotesk;font-style:normal;font-weight:600 700;font-display:swap;src:url(/fonts/space-grotesk-latin.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'source serif 4';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/source-serif-4-latin-ext.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:'source serif 4';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/source-serif-4-latin.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'source serif 4';font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/source-serif-4-italic-latin-ext.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:'source serif 4';font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/source-serif-4-italic-latin.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*::before,*::after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;hanging-punctuation:first last}body{min-height:100vh;line-height:var(--line-height-base,1.65);-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{line-height:var(--line-height-tight,1.2)}a{color:inherit}ul,ol{list-style:none}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background-color:var(--color-bg)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-weight-heading);color:var(--color-text)}a{color:var(--color-link);text-decoration:underline;text-underline-offset:.15em}a:hover{text-decoration:none}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-padding)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-block;font-family:var(--font-heading);font-weight:600;font-size:var(--text-sm);text-decoration:none;letter-spacing:.04em;text-transform:uppercase;padding:var(--space-3)var(--space-6);border-radius:2px;transition:background-color .15s,color .15s,border-color .15s;cursor:pointer;border:2px solid transparent}.btn.btn-primary{background-color:var(--color-accent);color:var(--color-subtle-contrast);border-color:var(--color-accent);text-decoration:none}.btn.btn-primary:hover{background-color:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-subtle-contrast)}.btn.btn-secondary{background-color:transparent;color:var(--color-subtle-contrast);border-color:var(--color-subtle-contrast)}.btn.btn-secondary:hover{background-color:var(--color-subtle-contrast);color:var(--color-primary-dark)}.home-section{padding-block:var(--space-16)}.home-section--alt{background-color:var(--color-light-neutral)}.section-header{margin-bottom:var(--space-8)}.section-heading{font-size:var(--text-2xl);font-weight:700;color:var(--color-text);margin-top:0;margin-bottom:var(--space-3);line-height:var(--line-height-tight)}.section-intro{color:var(--color-text-muted);font-size:var(--text-base);margin:0}.section-footer{margin-top:var(--space-8)}.section-link{font-family:var(--font-heading);font-weight:600;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--color-accent);text-decoration:none}.section-link:hover{text-decoration:underline}.section-placeholder{color:var(--color-text-muted);font-style:italic}.post-list{display:flex;flex-direction:column;gap:var(--space-6)}.post-item{border-bottom:1px solid var(--color-border);padding-bottom:var(--space-6)}.post-item:last-child{border-bottom:none;padding-bottom:0}.post-item-title{font-size:var(--text-lg);margin-top:0;margin-bottom:var(--space-1);line-height:var(--line-height-tight)}.post-item-title a{color:var(--color-text);text-decoration:none}.post-item-title a:hover{color:var(--color-accent)}.post-item-date{font-family:var(--font-heading);font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;display:block;margin-bottom:var(--space-2)}.post-item-description{color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--line-height-base);margin:0}.prose{line-height:var(--line-height-base);color:var(--color-text)}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre{margin-bottom:var(--space-6)}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{margin-top:var(--space-8);margin-bottom:var(--space-3)}.prose ul{list-style:disc;padding-left:var(--space-6)}.prose ol{list-style:decimal;padding-left:var(--space-6)}.prose li{margin-bottom:var(--space-2)}.prose blockquote{border-left:3px solid var(--color-border);padding-left:var(--space-4);color:var(--color-text-muted);font-style:italic}.prose code{font-family:ui-monospace,cascadia code,source code pro,Menlo,Consolas,dejavu sans mono,monospace;font-size:var(--text-sm);background-color:var(--color-light-neutral);padding:.1em .3em;border-radius:.2em}.prose pre{background-color:var(--color-bg-dark);color:var(--color-light-neutral);padding:var(--space-4);border-radius:.3em;overflow-x:auto}.prose pre code{background-color:transparent;padding:0;font-size:var(--text-sm);color:inherit}.prose a{color:var(--color-link);text-decoration:underline;text-underline-offset:.15em}.prose a:hover{text-decoration:none}.prose hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-8)0}.site-header{background-color:var(--color-bg);border-bottom:1px solid rgba(105,99,93,.2)}.header-inner{display:flex;align-items:center;justify-content:space-between;padding-block:var(--space-4);position:relative;flex-wrap:wrap;gap:var(--space-4)}.site-logo{display:flex;align-items:center;text-decoration:none;flex-shrink:0}.site-logo img{height:2.25rem;width:auto;display:block}.primary-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:var(--space-6);align-items:center}.primary-nav a{font-family:var(--font-heading);font-weight:600;font-size:var(--text-sm);color:var(--color-text);text-decoration:none;letter-spacing:.04em;text-transform:uppercase;padding-block:var(--space-1);border-bottom:2px solid transparent}.primary-nav a:hover{color:var(--color-text-muted);border-bottom-color:var(--color-accent)}.primary-nav a.nav-current{color:var(--color-text);border-bottom-color:var(--color-accent)}.nav-toggle-label{display:none;flex-direction:column;gap:var(--hamburger-gap);cursor:pointer;padding:var(--space-2);order:3}.hamburger-bar{display:block;width:var(--hamburger-bar-width);height:var(--hamburger-bar-height);background-color:var(--color-text);border-radius:1px;transition:background-color .15s}.nav-toggle-label:hover .hamburger-bar{background-color:var(--color-text-muted)}@media(max-width:768px){.nav-toggle-label{display:flex}.primary-nav{display:none;width:100%;order:4;padding-bottom:var(--space-4)}.nav-toggle:checked~.primary-nav{display:block}.primary-nav ul{flex-direction:column;align-items:flex-start;gap:0}.primary-nav li{width:100%;border-top:1px solid var(--color-border)}.primary-nav a{display:block;padding-block:var(--space-3);border-bottom:none}.primary-nav a.nav-current{color:var(--color-accent);border-bottom:none}.primary-nav a:hover{border-bottom:none;color:var(--color-text-muted)}}.site-footer{background-color:var(--color-bg-dark);color:var(--color-light-neutral);border-top:1px solid var(--color-border-subtle);margin-top:auto}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding-block:var(--space-8);flex-wrap:wrap}.footer-tagline{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;color:var(--color-subtle-contrast);margin:0}.footer-copyright{font-size:var(--text-xs);color:var(--color-secondary-dark);margin:0}.hero{background-color:var(--color-bg-dark);padding-block:var(--space-24);min-height:60vh;display:flex;align-items:center}.hero-content{max-width:48rem}.hero-headline{font-size:var(--text-3xl);font-weight:700;line-height:var(--line-height-tight);color:var(--color-subtle-contrast);margin-top:0;margin-bottom:var(--space-6)}.hero-subhead{font-size:var(--text-lg);color:var(--color-light-neutral);line-height:var(--line-height-base);margin-bottom:var(--space-8)}.lab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:var(--space-6)}.lab-card{background-color:var(--color-subtle-contrast);border:1px solid var(--color-border);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}.lab-card-header{display:flex;align-items:center}.lab-badge{font-family:var(--font-heading);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:var(--space-1)var(--space-2);border-radius:2px}.lab-badge--open-source{background-color:var(--color-primary-dark);color:var(--color-light-neutral)}.lab-badge--commercial{background-color:var(--color-accent);color:var(--color-subtle-contrast)}.lab-card-title{font-size:var(--text-lg);margin:0;line-height:var(--line-height-tight);overflow-wrap:break-word}.lab-card-title a{color:var(--color-text);text-decoration:none}.lab-card-title a:hover{color:var(--color-accent)}.lab-card-description{color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--line-height-base);margin:0;flex:1}.lab-card-link{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;text-decoration:none;color:var(--color-accent);margin-top:auto}.lab-card-link:hover{text-decoration:underline}.lab-intro{padding:var(--space-8)0;border-bottom:1px solid var(--color-border)}.lab-section{padding:var(--space-12)0}.lab-empty{color:var(--color-text-muted);font-style:italic}.lab-entry-meta{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.lab-status{font-family:var(--font-heading);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:var(--space-1)var(--space-2);border-radius:2px;border:1px solid}.lab-status--active{color:var(--color-accent)}.lab-status--archived{color:var(--color-secondary-dark)}.lab-entry-body{padding:var(--space-12)0}.lab-entry-tags{padding-bottom:var(--space-8)}.lab-tag-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.lab-tag{font-family:var(--font-heading);font-size:var(--text-xs);font-weight:600;background-color:var(--color-light-neutral);color:var(--color-secondary-dark);padding:var(--space-1)var(--space-3);border-radius:2px}.lab-entry-back{padding-bottom:var(--space-12)}.lab-entry-back-link{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;color:var(--color-accent);text-decoration:none}.lab-entry-back-link:hover{text-decoration:underline}.page-header{background-color:var(--color-bg-dark);padding-block:var(--space-16)}.page-header-content{max-width:48rem}.page-header-title{font-size:var(--text-3xl);font-weight:700;line-height:var(--line-height-tight);color:var(--color-subtle-contrast);margin-top:0;margin-bottom:var(--space-4)}.page-header-lead{font-size:var(--text-lg);color:var(--color-light-neutral);line-height:var(--line-height-base);margin-bottom:var(--space-8)}.consulting-differentiator{padding-block:var(--space-16)}.consulting-prose{max-width:40rem}.consulting-modes-section{background-color:var(--color-light-neutral);padding-block:var(--space-16)}.consulting-modes-heading{font-size:var(--text-2xl);font-weight:700;color:var(--color-text);margin-top:0;margin-bottom:var(--space-8);line-height:var(--line-height-tight)}.consulting-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:var(--space-6)}.mode-card{background-color:var(--color-subtle-contrast);border:1px solid var(--color-border);border-top:3px solid var(--color-accent);padding:var(--space-8)}.mode-card-title{font-size:var(--text-xl);font-weight:700;color:var(--color-text);margin-top:0;margin-bottom:var(--space-4);line-height:var(--line-height-tight)}.mode-card-description{color:var(--color-text-muted);font-size:var(--text-base);line-height:var(--line-height-base);margin:0}.consulting-cta-section{background-color:var(--color-primary-dark);padding-block:var(--space-16)}.consulting-cta-inner{max-width:40rem}.consulting-cta-heading{font-size:var(--text-2xl);font-weight:700;color:var(--color-subtle-contrast);margin-top:0;margin-bottom:var(--space-8);line-height:var(--line-height-tight)}.consulting-cta-email{margin-top:var(--space-4);color:var(--color-light-neutral);font-size:var(--text-sm);margin-bottom:0}.consulting-cta-email a{color:var(--color-light-neutral)}.consulting-cta-email a:hover{color:var(--color-subtle-contrast)}.consulting-band{background-color:var(--color-secondary-dark);padding-block:var(--space-16)}.consulting-band-inner{max-width:48rem}.consulting-band-headline{font-size:var(--text-2xl);font-weight:700;color:var(--color-subtle-contrast);margin-top:0;margin-bottom:var(--space-4);line-height:var(--line-height-tight)}.consulting-band-subhead{font-size:var(--text-base);color:var(--color-light-neutral);line-height:var(--line-height-base);margin-bottom:var(--space-8)}.writing-list-section{padding:var(--space-12)0}.writing-empty{color:var(--color-text-muted);font-style:italic}.writing-post-date{font-family:var(--font-heading);font-size:var(--text-sm);color:var(--color-light-neutral);text-transform:uppercase;letter-spacing:.06em;display:block;margin-top:var(--space-4)}.writing-post-body{padding:var(--space-12)0}.writing-post-content{max-width:42rem}.writing-post-tags{padding-bottom:var(--space-8)}.writing-tag-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.writing-tag{font-family:var(--font-heading);font-size:var(--text-xs);font-weight:600;background-color:var(--color-light-neutral);color:var(--color-secondary-dark);padding:var(--space-1)var(--space-3);border-radius:2px}.writing-post-back{padding-bottom:var(--space-12)}.writing-post-back-link{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;color:var(--color-accent);text-decoration:none}.writing-post-back-link:hover{text-decoration:underline}