/* Shared design: consistent on direct visits and HTMX transitions. */
:root{--bg-primary:#111813;--bg-secondary:#1b251c;--bg-tertiary:#273326;--text-primary:#e6ecdf;--text-secondary:#b0bba7;--text-tertiary:#98a68c;--text-muted:#8c9d7e;--accent-crypto:#b1d7bd;--accent-ai:#b5ccce;--border-color:#364431;--shadow-glow:none;--font-heading:Inter,Arial,sans-serif;--blog-h1:#ecf0e6;--blog-h2:#c4d8b9;--blog-h3:#c1d6ce;--blog-text:#c7d0be;--blog-text-muted:#a3b198;--blog-link:#c1dcb2;--blog-link-hover:#e5f4d9;--blog-strong:#d6e6c9;--blog-em:#c7d0be;--blog-code-inline:#bdd1ae}
body{font-family:Inter,Arial,sans-serif;background:#111813}
body::before{display:none}
.skip-to-content{position:fixed;left:16px;top:-80px;z-index:3000;padding:12px 20px;background:#e9f0df;color:#1b251c;font-size:14px}.skip-to-content:focus{top:12px}
.navbar{background:rgba(17,24,19,.97);border-bottom:1px solid #344130;backdrop-filter:blur(12px);padding:20px 0;min-height:80px}
.navbar .container{max-width:1248px;padding:0 44px;margin:auto}
.nav-brand>a{display:flex;gap:13px;align-items:center;text-decoration:none}
.brand-logo{width:61px;height:auto;filter:grayscale(1) brightness(1.7);opacity:.85}
body .consulting-wordmark{display:block!important;font:400 21px/1.1 Inter,Arial,sans-serif;letter-spacing:-.045em;color:#e5ecdd}
.consulting-wordmark>span{display:block;font:8px/1.2 ui-monospace,monospace;letter-spacing:.17em;text-transform:uppercase;margin-top:5px;color:#9bac90}
body .homepage-nav{display:inline-block!important}
.desktop-nav{gap:26px}.desktop-nav a{font:400 11px/1.5 Inter,sans-serif;color:#b0bfa2;padding:8px 0}.desktop-nav a:hover,.desktop-nav a.active{color:#e0efd4}.desktop-nav a::after{background:#b5d3a3;height:1px}
.desktop-nav .cta-button{font:500 11px/1.5 Inter,sans-serif;background:#d8e4ce;color:#202c1b!important;border:1px solid #d8e4ce;border-radius:3px;padding:12px 20px}.desktop-nav .cta-button:hover{background:#f0f5e7;box-shadow:none;transform:none}
.footer,.footer-bottom{background:#111813;color:#a9b79b;border-color:#344130}.footer-logo{filter:grayscale(1) brightness(1.4);opacity:.8}.footer-links a{color:#b0c59f}.footer-bottom p{font:11px/1.8 Inter,sans-serif;color:#93a386}
.mobile-menu{background:#172219;border-color:#44583b}.mobile-menu a{color:#d5e2ca}.mobile-cta{background:#d8e4ce;color:#202c1b}.hamburger-line{background:#b4cda4}
.modal-overlay .modal-content{background:#faf9f6;color:#252621;border:1px solid #ddd;border-radius:4px;box-shadow:0 24px 80px #0004;animation:none;font-family:Inter,sans-serif}
#contact-modal .modal-title{background:none;-webkit-text-fill-color:#252621;color:#252621;padding-right:20px;font:350 34px/1.2 Fraunces,Georgia,serif;letter-spacing:-.04em;text-shadow:none}
#contact-modal .modal-subtitle{color:#626957;font-size:14px;margin-top:14px}
#contact-modal input,#contact-modal textarea{background:#fffefa;color:#252621;border:1px solid #a6b299;border-radius:2px;font:14px/1.6 Inter,sans-serif}
#contact-modal input::placeholder,#contact-modal textarea::placeholder{color:#626957}
#contact-modal .btn-primary{background:#282d25;color:#fff;border:1px solid #282d25;border-radius:3px;box-shadow:none;font-family:inherit}
#contact-modal .modal-close{color:#252621}#contact-modal :focus-visible{outline:2px solid #597341;outline-offset:4px}
/* Background and article typography retain the original technical character. */
.about-hero,.section-background-light{background:#f3f3ec;color:#2a3325}
.about-hero{padding-top:145px;padding-bottom:45px;border-bottom:1px solid #d6dccb}
.about-hero .about-text h1{font:350 clamp(42px,5vw,66px)/1.12 Fraunces,Georgia,serif;color:#293623;letter-spacing:-.055em;background:none;-webkit-text-fill-color:#293623;text-shadow:none}
.about-hero .about-subtitle{color:#69785b;font-size:15px;letter-spacing:0}
.about-hero .profile-img-large{max-width:180px;width:100%;height:auto;border:0;box-shadow:none;border-radius:4px;filter:grayscale(1)}
.about-content{background:#f3f3ec}.about-body{color:#46533d;font:15px/1.9 Inter,sans-serif;max-width:850px}.about-body h2{font:350 35px/1.25 Fraunces,Georgia,serif;color:#31412a;letter-spacing:-.035em}.about-body p,.about-body strong{color:inherit}.about-body a{color:#3c6637}
.section-background-dark,.work-section{background:#111813}
.work-section .section-title,.github-stats .section-title,.latest-insights .section-title,.about-cta h2{font-family:Fraunces,Georgia,serif;font-weight:350;letter-spacing:-.035em;color:#e0ecd5;text-shadow:none}
.work-section .work-card,.company-card,.stat-card{box-shadow:none;border-color:#394c30;border-radius:4px}
.blog-section{padding-top:140px;padding-bottom:90px;background:#111813}
.blog-section .page-title{font:350 clamp(40px,5vw,66px)/1.15 Fraunces,Georgia,serif;letter-spacing:-.05em;color:#e1edd6;background:none;-webkit-text-fill-color:#e1edd6;text-shadow:none}
.blog-section .page-subtitle{font:15px/1.8 Inter,sans-serif;color:#a6b897;max-width:650px;margin-left:auto;margin-right:auto}
.blog-search input[type="search"]{font-family:Inter,sans-serif;background:#1b281b;border-color:#455e38;border-radius:3px;color:#e1edd6}
.blog-section .filter-btn{font:11px/1.5 Inter,sans-serif;border-radius:3px;border-color:#4b5e40}.blog-section .filter-btn.active{background:#d5e4c7;color:#1c2a17;border-color:#d5e4c7}
.blog-grid{gap:24px}.blog-post-card{background:#1b251c;border:1px solid #354b2c;border-radius:4px;box-shadow:none;transition:border-color .2s,background .2s}.blog-post-card:hover{transform:none;box-shadow:none;border-color:#87a773;background:#202e1e}
.blog-post-card .blog-title{font:350 28px/1.25 Fraunces,Georgia,serif;color:#deebd2;letter-spacing:-.035em}.blog-post-card .blog-summary{font:13px/1.8 Inter,sans-serif;color:#b3c4a4}.blog-post-card .blog-date,.blog-post-card .blog-meta{font:10px/1.7 Inter,sans-serif;color:#a7bd95}.blog-tag{font-size:9px!important;border-radius:2px!important}
.blog-post-content{font-family:Inter,sans-serif}.blog-post-content h1,.blog-post-content h2,.blog-post-content h3{font-family:Fraunces,Georgia,serif;font-weight:400;letter-spacing:-.025em}.blog-post-content p{line-height:1.9}
:where(a,button,input,textarea,summary):focus-visible{outline:2px solid #a5c88e;outline-offset:5px}
@media(max-width:760px){.navbar .container{padding:0 22px}.navbar{min-height:76px;padding:17px 0}.brand-logo{width:51px}body .consulting-wordmark{font-size:20px}.desktop-nav{gap:14px}#contact-modal .modal-content{padding:30px 24px;max-height:85vh;overflow-y:auto}.about-hero,.blog-section{padding-top:115px}.about-hero .profile-img-large{max-width:120px}.about-body{font-size:14px}.blog-post-card .blog-title{font-size:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}}
.mobile-menu{visibility:hidden}.mobile-menu.active{visibility:visible}

/* One broad desktop frame aligns navigation, portfolio, and the writing index. */
:root{--site-width:1760px;--site-gutter:clamp(22px,4vw,96px)}
.navbar .container,.blog-section>.container,.footer>.container{width:calc(100% - var(--site-gutter)*2);max-width:var(--site-width);padding:0;margin-inline:auto}
.desktop-nav{gap:30px}.desktop-nav a,.desktop-nav .cta-button{font-size:13px}
.blog-index-header{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:end;gap:70px;padding:28px 0 48px;margin-bottom:40px;border-bottom:1px solid #364431}
.blog-index-eyebrow{font:10px/1.5 ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em;color:#9cac8c;margin:0 0 24px}
.blog-section .page-title{text-align:left;font-size:clamp(46px,4.7vw,86px);margin:0 0 19px;line-height:1.05}
.blog-section .page-subtitle{text-align:left;max-width:550px;margin:0;font-size:16px}
.blog-index-header .blog-search{width:100%;max-width:650px;justify-self:end;margin:0}
.blog-index-header .blog-search input[type="search"]{margin-bottom:20px;font-size:15px}
.blog-index-header .blog-filters{justify-content:flex-start;margin:0;gap:9px}
.blog-section .filter-btn{font-size:11px;box-shadow:none}
.blog-section .blog-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.blog-post-card{padding:30px;min-width:0}.blog-post-card .blog-title{font-size:clamp(27px,1.9vw,35px)}.blog-post-card .blog-summary{font-size:15px}.blog-post-card .blog-meta,.blog-post-card .blog-date{font-size:11px}
@media(max-width:1100px){.blog-index-header{gap:35px}.blog-section .blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.desktop-nav{gap:20px}}
@media(max-width:760px){:root{--site-gutter:22px}.blog-index-header{grid-template-columns:1fr;gap:28px;padding:10px 0 30px;margin-bottom:28px}.blog-section .page-title{font-size:43px}.blog-section .page-subtitle{font-size:14px}.blog-index-header .blog-search{max-width:none}.blog-index-eyebrow{font-size:9px;margin-bottom:18px}.blog-post-card{padding:24px}.blog-post-card .blog-summary{font-size:14px}}
@media(max-width:680px){.blog-section .blog-grid{grid-template-columns:1fr;gap:20px}}

/* Native topic controls keep their state visible to keyboard and screen-reader users. */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.blog-filters{border:0;padding:0;min-width:0}
.blog-section .filter-btn:has(input:checked){background:#d5e4c7;color:#1c2a17;border-color:#d5e4c7}
.blog-section .filter-btn:has(input:focus-visible){outline:2px solid #a5c88e;outline-offset:4px}
.blog-result-count{color:#a6b897;font:13px/1.6 Inter,sans-serif;margin:0 0 22px}
.blog-empty-state{grid-column:1/-1;padding:45px 0 75px;color:#b3c4a4}
.blog-empty-state h2{font:350 32px/1.3 Fraunces,Georgia,serif;color:#e1edd6;margin-bottom:12px}
.blog-empty-state a{display:inline-block;color:#d5e4c7;margin-top:18px;text-decoration:underline}
