:root{--color-bg:#fff;--color-bg-subtle:#f6f7f9;--color-border:#e2e5ea;--color-text:#1a1d23;--color-text-muted:#5b6270;--color-accent:#1d4ed8;--color-accent-subtle:#eef2ff;--color-on-accent:#fff;--color-badge-stub-bg:#fff4e5;--color-badge-stub-text:#92400e;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-serif:Georgia, "Times New Roman", serif;--max-width:880px;--radius:8px}@media (prefers-color-scheme:dark){:root{--color-bg:#14161a;--color-bg-subtle:#1c1f26;--color-border:#2b2f38;--color-text:#e8e9ec;--color-text-muted:#9aa1ad;--color-accent:#7ea2ff;--color-accent-subtle:#1c2440;--color-on-accent:#14161a;--color-badge-stub-bg:#3a2c14;--color-badge-stub-text:#f5c876}}:root[data-theme=dark]{--color-bg:#14161a;--color-bg-subtle:#1c1f26;--color-border:#2b2f38;--color-text:#e8e9ec;--color-text-muted:#9aa1ad;--color-accent:#7ea2ff;--color-accent-subtle:#1c2440;--color-on-accent:#14161a;--color-badge-stub-bg:#3a2c14;--color-badge-stub-text:#f5c876}:root[data-theme=light]{--color-bg:#fff;--color-bg-subtle:#f6f7f9;--color-border:#e2e5ea;--color-text:#1a1d23;--color-text-muted:#5b6270;--color-accent:#1d4ed8;--color-accent-subtle:#eef2ff;--color-on-accent:#fff;--color-badge-stub-bg:#fff4e5;--color-badge-stub-text:#92400e}*{box-sizing:border-box}html{color-scheme:light dark;scrollbar-gutter:stable}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);margin:0 0 .5em;line-height:1.25}h1{font-size:2.4rem}h2{margin-top:2.5rem;font-size:1.6rem}h3{margin-top:1.75rem;font-size:1.2rem}h4{margin-top:1.5rem;font-size:1.05rem}h5,h6{margin-top:1.25rem;font-size:1rem}p{margin:0 0 1em}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.container{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem}.site-nav{border-bottom:1px solid var(--color-border)}.site-nav .container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding-top:1.25rem;padding-bottom:1.25rem;display:flex}.site-nav .brand{font-family:var(--font-serif);color:var(--color-text);font-size:1.1rem;font-weight:700}.nav-right{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.site-nav ul{flex-wrap:wrap;gap:1.25rem;margin:0;padding:0;list-style:none;display:flex}.theme-toggle{border:1px solid var(--color-border);border-radius:var(--radius);width:2rem;height:2rem;color:var(--color-text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{border-color:var(--color-accent);color:var(--color-text)}.theme-toggle svg{width:1.1rem;height:1.1rem}.theme-toggle .icon-sun{display:none}@media (prefers-color-scheme:dark){.theme-toggle .icon-sun{display:inline}.theme-toggle .icon-moon{display:none}}:root[data-theme=dark] .theme-toggle .icon-sun{display:inline}:root[data-theme=dark] .theme-toggle .icon-moon,:root[data-theme=light] .theme-toggle .icon-sun{display:none}:root[data-theme=light] .theme-toggle .icon-moon{display:inline}.site-nav a{color:var(--color-text-muted);font-size:.95rem}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--color-text)}.site-footer{border-top:1px solid var(--color-border);color:var(--color-text-muted);margin-top:4rem;padding:2rem 0;font-size:.9rem}.site-footer .container{flex-wrap:wrap;justify-content:space-between;gap:.5rem;display:flex}.hero{padding:3.5rem 0 2.5rem}.hero--tight{padding-bottom:0}.hero .metric{color:var(--color-accent);margin-bottom:1rem;font-weight:600;display:inline-block}.hero .summary{color:var(--color-text-muted);max-width:65ch;font-size:1.05rem}.cta-row{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.cta-row--tight{margin-top:.5rem}.btn{border-radius:var(--radius);border:1px solid #0000;padding:.6rem 1.1rem;font-size:.95rem;font-weight:600;display:inline-block}.btn:hover{text-decoration:none}.btn-primary{background:var(--color-accent);color:var(--color-on-accent)}.btn-primary:hover{opacity:.9}.btn-secondary{border-color:var(--color-border);color:var(--color-text)}.btn-secondary:hover{border-color:var(--color-accent);background:var(--color-accent-subtle)}.consulting-note{color:var(--color-text-muted);margin-top:1.5rem;font-size:.85rem}.case-study-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;margin:1.5rem 0 2.5rem;display:grid}.case-study-card{border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);background:var(--color-bg-subtle);padding:1.25rem;display:block}.case-study-card:hover{border-color:var(--color-accent);text-decoration:none}.case-study-card h3{margin-top:0;font-size:1.1rem}.case-study-card .audience{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.5rem;font-size:.8rem}.case-study-card p{color:var(--color-text-muted);margin-bottom:.5rem;font-size:.92rem}.badge{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:600;display:inline-block}.badge-stub{background:var(--color-badge-stub-bg);color:var(--color-badge-stub-text)}.case-study-header{padding:2.5rem 0 1rem}.case-study-header .audience{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.75rem;font-size:.85rem}.case-study-header .badge{margin-bottom:.75rem}.case-study-summary{color:var(--color-text-muted);max-width:65ch;font-size:1.05rem}.case-study-section{padding:.5rem 0}.case-study-section ul{padding-left:1.25rem}.case-study-section li{margin-bottom:.5rem}.outcome-stats{grid-template-columns:repeat(4,minmax(0,1fr));justify-content:start;gap:1rem;margin:0 0 1.5rem;display:grid}@media (width<=640px){.outcome-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.outcome-stat{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-subtle);padding:.85rem 1rem}.outcome-stat-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;overflow-wrap:break-word;margin-bottom:.35rem;font-size:.78rem;display:block}.outcome-stat-value{font-family:var(--font-serif);color:var(--color-accent);font-size:1.5rem;font-weight:700;line-height:1.15;display:block}.figure{margin:1rem 0}.figure-trigger{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-subtle);cursor:zoom-in;padding:0;line-height:0;display:inline-block}.figure-trigger:hover{border-color:var(--color-accent)}.figure-thumb{border-radius:calc(var(--radius) - 1px);max-width:100%;height:auto;display:block}.figure-caption{color:var(--color-text-muted);margin-top:.5rem;font-size:.85rem}.lightbox{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);max-width:min(90vw,1100px);max-height:90vh;padding:1rem;position:relative}.lightbox::backdrop{background:#0009}.lightbox-close{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-subtle);width:2rem;height:2rem;color:var(--color-text-muted);cursor:pointer;font-size:1.25rem;line-height:1;position:absolute;top:.5rem;right:.5rem}.lightbox-close:hover{border-color:var(--color-accent);color:var(--color-text)}.lightbox-img{border-radius:calc(var(--radius) - 1px);width:auto;max-width:100%;height:auto;max-height:calc(90vh - 4rem);margin:0 auto;display:block}.lightbox-caption{color:var(--color-text-muted);text-align:center;margin-top:.75rem;font-size:.9rem}.case-study-nav{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin:2rem 0 1.5rem;padding-top:1.5rem;display:flex}.case-study-nav-item{flex:auto;min-width:180px}.case-study-nav-next{text-align:right}.case-study-nav-link{border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);background:var(--color-bg-subtle);padding:.85rem 1.1rem;display:block}.case-study-nav-link:hover{border-color:var(--color-accent);text-decoration:none}.case-study-nav-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.3rem;font-size:.78rem;font-weight:600;display:block}.case-study-nav-title{font-size:.95rem;font-weight:600;display:block}details.technical-depth{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-subtle);margin:1rem 0 2rem;padding:.85rem 1.1rem}details.technical-depth summary{cursor:pointer;font-weight:600;font-family:var(--font-serif);font-size:1.05rem}details.technical-depth[open] summary{margin-bottom:.75rem}.skill-group{margin-bottom:1.75rem}.skill-group h2{margin-top:0}.skill-tags{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.skill-tags li{border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;padding:.3rem .85rem;font-size:.88rem}.resume-entry{margin-bottom:1.75rem}.resume-entry .role-line{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.resume-entry .dates{color:var(--color-text-muted);font-size:.88rem}.resume-entry ul{padding-left:1.25rem}.resume-entry li{margin-bottom:.4rem}.contact-list{margin:1.5rem 0;padding:0;list-style:none}.contact-list li{margin-bottom:.75rem;font-size:1.05rem}.prose{max-width:65ch;margin:0 auto}.prose ul,.prose ol{margin:0 0 1em;padding-left:1.25rem}.prose li{margin-bottom:.4rem}.prose li>ul,.prose li>ol{margin-top:.4rem;margin-bottom:0}.prose blockquote{border-left:3px solid var(--color-accent);color:var(--color-text-muted);margin:1.5rem 0;padding:.25rem 1.25rem;font-style:italic}.prose blockquote p:last-child{margin-bottom:0}.prose code{background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:4px;padding:.1em .4em;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:.88em}.prose pre{background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius);margin:1.5rem 0;padding:1rem 1.25rem;overflow-x:auto}.prose pre code{background:0 0;border:none;padding:0;font-size:.85em;line-height:1.55}.prose img{border-radius:var(--radius);max-width:100%;height:auto;margin:1.5rem 0;display:block}.prose hr{border:none;border-top:1px solid var(--color-border);margin:2.5rem 0}.prose table{border-collapse:collapse;width:100%;margin:1.5rem 0;font-size:.92rem}.prose th,.prose td{border:1px solid var(--color-border);text-align:left;padding:.5rem .75rem}.prose th{background:var(--color-bg-subtle);font-weight:600}.post-header{padding:2.5rem 0 1rem}.post-date{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.75rem;font-size:.85rem}.post-summary{color:var(--color-text-muted);max-width:65ch;font-size:1.05rem}.post-cover{border-radius:var(--radius);max-width:100%;height:auto;margin-top:1.5rem;display:block}.post-nav{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin:2rem 0 1.5rem;padding-top:1.5rem;display:flex}.post-nav-item{flex:auto;min-width:180px}.post-nav-next{text-align:right}.post-nav-link{border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);background:var(--color-bg-subtle);padding:.85rem 1.1rem;display:block}.post-nav-link:hover{border-color:var(--color-accent);text-decoration:none}.post-nav-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.3rem;font-size:.78rem;font-weight:600;display:block}.post-nav-title{font-size:.95rem;font-weight:600;display:block}.blog-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;margin:1.5rem 0 2.5rem;display:grid}.blog-post-card{border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);background:var(--color-bg-subtle);padding:1.25rem;display:block}.blog-post-card:hover{border-color:var(--color-accent);text-decoration:none}.blog-post-card h3{margin-top:0;font-size:1.1rem}.blog-post-card .date{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.5rem;font-size:.8rem}.blog-post-card p{color:var(--color-text-muted);margin-bottom:.5rem;font-size:.92rem}
