:root{color-scheme:dark;--bg:#0b131e;--surface:#111e2c;--line:#273749;--text:#e9eff5;--muted:#aab9c9;--accent:#8de3cf;--blue:#99bdf5;--max:1160px;font-synthesis:none;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{background:var(--bg);color:var(--text);margin:0;line-height:1.7}a{color:inherit;text-decoration:none}p a,li a,.prose a{text-underline-offset:4px;text-decoration:underline}a:hover{color:var(--accent)}button,input,select{font:inherit}button,a,input,select,video{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,video:focus-visible{outline:3px solid var(--accent);outline-offset:5px}::selection{color:var(--bg);background:var(--accent)}img,video{max-width:100%;height:auto;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.045em;line-height:1.15}h1{font-size:clamp(2.6rem,5.3vw,4.8rem);font-weight:650}h2{font-size:clamp(1.8rem,3vw,2.6rem);font-weight:600}h3{font-size:1.65rem;font-weight:600}p{color:var(--muted)}em{color:var(--accent);font-style:normal}.container{width:min(var(--max),calc(100% - 64px));margin-inline:auto}.site-header{border-bottom:1px solid var(--line);background:var(--bg)}.nav-wrap{align-items:center;gap:40px;min-height:94px;display:flex}.brand{white-space:nowrap;align-items:center;gap:15px;font-size:.95rem;font-weight:650;display:flex}.monogram{letter-spacing:-.15em;padding-right:6px;font-size:2rem;line-height:1}.monogram span,.accent{color:var(--accent)}nav{gap:28px;display:flex}.nav-wrap nav{margin-left:auto;font-size:.9rem}nav a{color:var(--muted)}nav a[aria-current=page]{color:var(--accent)}.github-link{border:1px solid var(--line);border-radius:5px;padding:7px 15px;font-size:.85rem}.eyebrow,.mono{letter-spacing:.11em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem}.eyebrow{color:var(--accent);margin-bottom:22px}.dot{background:var(--accent);border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block}.home-hero{padding-block:100px 90px}.hero-copy h1{text-wrap:balance;max-width:1080px;margin-bottom:30px;font-size:clamp(2.25rem,5.2vw,4.5rem);line-height:1.12}.hero-copy .lead{max-width:680px}.lead{max-width:680px;font-size:1.15rem;line-height:1.8}.actions{flex-wrap:wrap;align-items:center;gap:28px;margin-top:34px;display:flex}.button{background:var(--accent);color:#0b2020;border:1px solid var(--accent);border-radius:5px;align-items:center;gap:36px;padding:12px 22px;font-size:.9rem;font-weight:650;display:inline-flex}.button:hover{color:#0b2020;background:#baf5e8}.button-secondary{color:var(--text);border-color:var(--line);background:0 0}.text-link{font-size:.9rem;font-weight:600}.focus-strip{border-block:1px solid var(--line);background:#0f1a27}.focus-strip>div{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:25px;padding-block:22px;font-size:.83rem;display:flex}.focus-strip .mono{color:var(--accent);font-size:.65rem}.section{padding-block:80px}.section-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:38px;display:flex}.section-heading h2{margin-bottom:0}.section-heading .eyebrow{margin-bottom:14px}.featured-project{border:1px solid var(--line);background:var(--surface);border-radius:8px;grid-template-columns:1fr 1.25fr;display:grid;overflow:hidden}.featured-project:hover{color:var(--text);border-color:#54766e}.project-copy{padding:38px}.project-copy h3{margin-block:24px 17px;font-size:2.3rem}.project-copy .text-link{margin-top:28px;display:block}.status,.status-pill{color:var(--accent);background:#1a3535;border-radius:4px;padding:5px 9px;font-size:.7rem}.project-image{background:#18283c;align-items:center;padding:35px 0 0 25px;display:flex;overflow:hidden}.project-image img{object-fit:cover;object-position:left top;border-radius:5px 0 0;width:100%;box-shadow:0 10px 35px #0006}.tags,.tag-list,.skill-cloud{flex-wrap:wrap;gap:8px;display:flex}.tags a,.tags span,.tag-list span,.skill-cloud span{color:var(--muted);letter-spacing:.01em;background:#182637;border:1px solid #2c3b4d;border-radius:4px;padding:3px 9px;font-size:.7rem}.tags a:hover,.tags [aria-current=page]{color:var(--accent);border-color:var(--accent)}.project-small{grid-template-columns:160px 1fr;gap:4px 35px;padding-top:30px;display:grid}.project-small .mono{color:var(--muted);grid-row:span 2;padding-top:5px}.project-small h3{margin:0;font-size:1.1rem}.project-small p{margin:0;font-size:.88rem}.notes-section{border-block:1px solid var(--line);background:#0e1824}.post-list{gap:0;display:grid}.post-card{border-top:1px solid var(--line);padding:30px 0}.post-meta{letter-spacing:.02em;color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:15px;margin-bottom:15px;font-size:.7rem;display:flex}.category{color:var(--accent)}.post-card h2{letter-spacing:-.025em;margin-bottom:12px;font-size:1.55rem;line-height:1.35}.post-card h2 span{color:var(--accent);font-size:1.1rem}.post-card p{max-width:720px;margin-bottom:20px;font-size:.95rem}.post-bottom{justify-content:space-between;align-items:center;gap:20px;display:flex}.read-link{white-space:nowrap;font-size:.8rem}.read-link span{color:var(--accent);padding-left:10px}.about-teaser{text-align:center;max-width:790px;padding-block:95px}.about-teaser p{max-width:640px;margin-inline:auto}.about-teaser h2{font-size:2.8rem}footer{border-top:1px solid var(--line);padding-block:38px}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.footer-inner p{margin:6px 0 0;font-size:.78rem}.footer-links{color:var(--muted);gap:22px;font-size:.8rem;display:flex}footer small{color:var(--muted);font-size:.72rem}.page-heading{border-bottom:1px solid var(--line);padding-block:76px 55px}.page-heading h1{max-width:940px;margin-bottom:25px}.page-heading .lead{max-width:730px}.section-block{padding-block:35px}.section-block:last-child{padding-bottom:85px}.two-column{grid-template-columns:1.6fr 1fr;gap:24px;display:grid}.content-panel,.table-panel,.project-card,.video-panel{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:32px}.content-panel h2,.table-panel h2,.project-card h2,.video-panel h2{font-size:1.65rem}.card-kicker{color:var(--accent);font-size:.8rem}.skill-cloud{margin-bottom:25px}.table-wrap{overflow:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:.9rem}th,td{border-bottom:1px solid var(--line);padding:17px 14px}th{color:var(--accent);font-size:.8rem}td{color:var(--muted)}.card-row{gap:28px;display:grid}.project-topline{color:var(--muted);align-items:center;gap:20px;margin-bottom:25px;font-size:.8rem;display:flex}.project-screenshots{grid-template-columns:1fr 1fr;gap:20px;margin-block:25px;display:grid}.project-screenshots img{border:1px solid var(--line);border-radius:4px}.project-art{object-fit:cover;object-position:center;width:100%;max-height:180px;margin-bottom:25px}.project-details{flex-wrap:wrap;gap:55px;display:flex}.project-details dt{color:var(--accent);font-size:.75rem}.project-details dd{color:var(--muted);margin:3px 0;font-size:.85rem}.project-links{gap:15px;margin-top:25px;display:flex}.video-note{margin-top:20px;font-size:.85rem}.contact-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.contact-grid a{overflow-wrap:anywhere}.contact-grid h2{font-size:1.4rem}.contact-grid .text-link{font-size:.8rem}.blog-layout{grid-template-columns:235px minmax(0,1fr);gap:65px;padding-top:45px;display:grid}.blog-sidebar>a{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;padding:13px 0;font-size:.82rem;display:flex}.blog-sidebar>a[aria-current=page]{color:var(--accent)}.blog-sidebar h2{font-weight:400}.sidebar-heading{margin-top:40px}.sidebar-note{margin-top:28px;font-size:.8rem}.filters{grid-template-columns:1.6fr 1fr;gap:14px;display:grid}.filters>div:first-child{grid-column:1/-1}.filters label{color:var(--muted);margin-bottom:6px;font-size:.75rem;display:block}input,select{background:var(--surface);color:var(--text);border:1px solid #384c61;border-radius:4px;width:100%;min-width:0;padding:10px 12px;font-size:.85rem}input::placeholder{color:#8e9fb2}.filter-reset{color:var(--accent);text-align:left;cursor:pointer;background:0 0;border:0;width:max-content;padding:0;font-size:.75rem}.result-count{margin-block:24px 15px;font-size:.75rem}.article-heading{max-width:900px;padding-block:55px 45px}.back-link{color:var(--muted);margin-bottom:40px;font-size:.8rem;display:inline-block}.article-heading h1{max-width:900px;font-size:clamp(2.5rem,5vw,4rem)}.article-heading .lead{max-width:800px}.article-byline{align-items:center;gap:15px;margin:30px 0 24px;font-size:.85rem;display:flex}.article-byline time{color:var(--muted);font-size:.75rem}.avatar{color:var(--accent);background:#213b40;border:1px solid #3a655f;border-radius:50%;place-items:center;width:44px;height:44px;font-size:.75rem;display:grid}.article-layout{border-top:1px solid var(--line);grid-template-columns:235px minmax(0,760px);gap:65px;padding-block:45px 70px;display:grid}.toc nav{gap:14px;font-size:.8rem;display:grid}.share-actions{color:var(--accent);flex-wrap:wrap;align-items:center;gap:12px 20px;display:flex}.toc .share-actions{margin-top:30px;font-size:.8rem}.share-actions button{border:1px solid var(--line);color:var(--accent);font-size:inherit;cursor:pointer;background:0 0;border-radius:4px;padding:6px 12px}.share-actions button:disabled{opacity:.6;cursor:wait}.copy-status,.copy-fallback{width:100%;color:var(--muted);font-size:.8rem}.copy-status:empty{display:none}.copy-fallback input{margin-top:6px}.blog-empty{border-top:1px solid var(--line);padding-block:30px}.blog-empty h2,.blog-empty h3{letter-spacing:-.02em;font-size:1.3rem}.blog-empty p{max-width:600px}.prose{color:#c2cfdd;min-width:0}.prose h2{color:var(--text);margin-top:44px;font-size:1.9rem}.prose h2:first-child{margin-top:0}.prose h3{color:var(--text);margin-top:32px;font-size:1.3rem}.prose p{color:inherit}.prose li{margin-bottom:10px}.prose ul,.prose ol{padding-left:24px}.prose a{color:var(--accent);overflow-wrap:anywhere}.prose pre{border:1px solid var(--line);border-radius:5px;padding:22px;font-size:.85rem;overflow:auto}.prose :not(pre)>code{color:#b7e5de;background:#1c2c3e;border-radius:3px;padding:2px 5px;font-size:.88em}.prose blockquote{border-left:3px solid var(--accent);background:var(--surface);margin-inline:0;padding:10px 22px}.article-end{border-top:1px solid var(--line);flex-wrap:wrap;gap:20px;margin-top:55px;padding-top:25px;font-size:.85rem;display:flex}.article-end p{width:100%;margin-bottom:0;font-size:1.2rem}.skip{z-index:9;background:var(--accent);color:var(--bg);padding:12px 18px;position:absolute;top:-100px;left:16px}.skip:focus{top:15px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}[hidden]{display:none!important}@media (width>=1500px){.home-hero{padding-block:115px}}@media (width<=950px){.nav-wrap{gap:25px}.brand>span:last-child{display:none}.home-hero{padding-block:65px}.featured-project{grid-template-columns:1fr 1fr}.project-copy{padding:25px}.blog-layout,.article-layout{grid-template-columns:190px minmax(0,1fr);gap:30px}.contact-grid{grid-template-columns:1fr}.contact-grid .content-panel{padding:28px}.footer-inner small{width:100%}}@media (width<=650px){.container{width:calc(100% - 36px)}.nav-wrap{flex-wrap:wrap;justify-content:space-between;gap:10px;min-height:0;padding-block:18px}.brand>span:last-child{font-size:.85rem;display:block}.github-link{display:none}.nav-wrap nav{justify-content:space-between;gap:0;width:100%;margin:10px 0 0}.nav-wrap nav a{padding-block:4px;font-size:.8rem}.home-hero{padding-block:50px}.focus-strip>div{gap:12px 20px;font-size:.75rem}.focus-strip .mono{width:100%}.section{padding-block:50px}.section-heading{flex-direction:column;align-items:start;gap:15px}.section-heading>.text-link{font-size:.8rem}.featured-project{grid-template-columns:1fr}.project-image{padding:20px 0 0 20px}.project-small{grid-template-columns:1fr;gap:12px}.project-small .mono{grid-row:auto}.post-meta{font-size:.65rem}.post-card h2{font-size:1.3rem}.post-bottom{flex-direction:column;align-items:start;gap:15px}.page-heading{padding-block:50px 30px}.two-column,.project-screenshots{grid-template-columns:1fr}.content-panel,.table-panel,.project-card,.video-panel{padding:22px}.blog-layout,.article-layout{grid-template-columns:1fr;gap:30px}.blog-sidebar{border-bottom:1px solid var(--line);padding-bottom:25px}.blog-sidebar h2{margin-bottom:10px}.blog-sidebar>a{gap:12px;margin-right:15px;padding-block:8px;font-size:.72rem;display:inline-flex}.blog-sidebar .sidebar-note,.blog-sidebar .sidebar-heading,.blog-sidebar .tags{display:none}.toc{border-bottom:1px solid var(--line);padding-bottom:25px}.toc nav{gap:8px}.article-heading{padding-top:35px}.article-heading h1{font-size:2.5rem}.footer-links{width:100%}.about-teaser h2{font-size:2.2rem}.filters{grid-template-columns:1fr}.filters>div:first-child{grid-column:auto}.project-details{gap:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
