:root{--paper:#faf9f6;--surface:#fffefa;--ink:#30302e;--muted:#686860;--accent:#c92929;--link:#2753aa;--line:#e0dfd7;--grid:rgba(30,30,20,.025);--serif:Georgia,"Times New Roman",serif;--sans:"Segoe UI",Arial,sans-serif;--mono:Consolas,"Courier New",monospace;color-scheme:light}html[data-theme=dark]{--paper:#171918;--surface:#202320;--ink:#e8e9e3;--muted:#b4b9af;--accent:#ff8981;--link:#9dbbff;--line:#353b34;--grid:rgba(235,245,230,.025);color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:108px}body{margin:0;background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:36px 36px;color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:4px}button{font:inherit;cursor:pointer}img,svg{max-width:100%}img{height:auto}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:#edcccc;color:#222}.container{width:min(1056px,calc(100% - 64px));margin-inline:auto}.skip{position:fixed;top:-100px;left:20px;background:var(--ink);color:var(--paper);padding:12px 20px;z-index:30}.skip:focus{top:10px}.site-header{position:sticky;top:0;z-index:10;background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{min-height:86px;gap:26px}.brand,.header-inner{display:flex;align-items:center}.brand{gap:12px;color:var(--ink);font:700 italic 25px/1.2 var(--serif);white-space:nowrap}.brand:hover{text-decoration:none}.brand-avatar{width:34px;height:34px;object-fit:cover;border-radius:50%;border:1px solid var(--line)}.site-header nav{margin-left:auto;display:flex;align-items:center;gap:26px;font-size:13px;font-weight:600}.site-header nav a{color:var(--ink)}.theme-toggle{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;border:0;background:transparent;color:var(--ink);font-size:25px;border-radius:6px}.menu-toggle:hover,.theme-toggle:hover{background:var(--line)}.menu-toggle{display:none}.home-main{padding-bottom:30px}.intro{display:grid;grid-template-columns:1.6fr 1fr;gap:72px;align-items:center;padding:64px 0 50px}.intro-copy{min-width:0}h1{font:700 italic 46px/1.15 var(--serif);letter-spacing:-1.1px;margin:0 0 23px}h2{font:700 italic 30px/1.25 var(--serif);letter-spacing:-.6px}h2,h3{margin:0 0 12px}h3{font:700 22px/1.4 var(--serif)}.intro-tagline{font:700 italic 22px/1.5 var(--serif);color:var(--accent);margin:0 0 30px}.intro-copy>p:not(.intro-tagline){margin:0 0 20px}.intro-copy strong{font-weight:600}.portrait-wrap{justify-self:end;text-align:center;max-width:300px}.profile-portrait{display:block;width:300px;aspect-ratio:1;border-radius:28px;object-fit:cover;border:1px solid var(--line)}.portrait-wrap>p{font-size:11px;color:var(--muted);margin:15px 0 0}.social-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.social-links a{padding:6px 12px;border:1px solid var(--line);border-radius:5px;font-size:12px;color:var(--ink);background:var(--surface)}.social-links a:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.section-description{margin:0 0 24px;color:var(--muted);font-size:15px}.explore-section{padding:35px 0 45px;border-top:1px solid var(--line)}.explore-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.explore-card{display:flex;flex-direction:column;padding:24px 26px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);transition:border-color .15s,transform .15s}.explore-card:hover{border-color:var(--accent);transform:translateY(-2px);text-decoration:none}.eyebrow{display:block;font:600 10px/1.5 var(--sans);letter-spacing:1.3px;color:var(--accent);margin:0 0 14px}.explore-card h3{display:flex;align-items:center;justify-content:space-between;font-size:24px;margin:0 0 8px}.explore-card h3>span{font:normal 23px var(--serif);color:var(--muted)}.explore-card h3>.in-progress{font:500 10px var(--sans);background:var(--paper);border:1px solid var(--line);padding:5px 8px;border-radius:4px}.explore-card p{font-size:14px;color:var(--muted);margin:0 0 20px;max-width:390px}.card-link{color:var(--link);font-size:12px;font-weight:600;margin-top:auto}.content-section{padding:42px 0;border-top:1px solid var(--line);scroll-margin-top:105px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.text-link{display:inline-block;color:var(--link);font-size:13px;font-weight:500}.project-item{padding:26px 0;border-top:1px solid var(--line)}.project-item:last-child{padding-bottom:0}.job-heading,.project-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:25px}.project-heading h3{font-size:23px;margin:0 0 10px}.project-heading h3 a{color:var(--ink)}.job-heading>span,.project-heading>span{font:10px/1.8 var(--mono);color:var(--muted);white-space:nowrap;padding-top:6px}.project-item>p{max-width:820px;margin:0 0 17px;font-size:15px;color:var(--muted)}.tags{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-wrap:wrap;gap:7px}.tags li{font:10px/1.5 var(--mono);border:1px solid var(--line);border-radius:4px;padding:4px 8px;color:var(--muted);background:var(--paper)}.project-links{display:flex;flex-wrap:wrap;gap:24px;font-size:13px}.experience-content{max-width:800px;min-width:0;margin-top:25px}.job-heading{padding-bottom:20px}.job-heading h3{font-size:25px;margin-bottom:5px}.job-heading h3 a{color:var(--ink)}.job-heading p{margin:0;font-size:14px;font-weight:500}.company-website{font-size:12px;display:inline-block;margin-top:4px}.experience-content>p{margin:0 0 22px;font-size:15px}.experience-list{padding-left:22px;margin:20px 0 25px}.experience-list li{padding-left:4px;margin:0 0 15px;font-size:15px}.experience-list strong{font-weight:600}.experience-content .job-note{color:var(--muted);font-size:14px}.linkedin-proof{border-top:1px solid var(--line);padding-top:28px;margin-top:28px;scroll-margin-top:110px}.linkedin-proof h3{font-style:italic;font-size:25px;margin-bottom:12px}.linkedin-proof .eyebrow{margin-bottom:10px}.linkedin-context{font-size:13px;color:var(--muted);margin:0 0 20px}.linkedin-card{max-width:504px;width:100%;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:white;box-shadow:0 4px 16px #00000006}.linkedin-post-link{margin-top:16px;font-size:12px}#writing>p,.contact-section>p{max-width:740px;margin:16px 0 0}.skills-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;margin-top:25px}.skills-grid h3{font:600 13px var(--sans);margin-bottom:12px}.skills-grid p{font-size:14px;color:var(--muted);margin:0}.contact-section{padding-block:45px 60px}.contact-email{display:block;width:fit-content;max-width:100%;overflow-wrap:anywhere;font-size:18px;margin-top:20px}.resume-link{margin-top:15px}.site-footer{background:var(--paper);border-top:1px solid var(--line);padding-top:40px}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:55px;padding-bottom:34px}.footer-name{font:700 italic 25px var(--serif);color:var(--ink)}.footer-grid p{font-size:13px;color:var(--muted);margin:15px 0}.footer-grid h2{font:600 11px var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:17px}.footer-grid>div>a:not(.footer-name){display:block;font-size:13px;color:var(--ink);margin-bottom:8px}.footer-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:11px;padding-block:18px;color:var(--muted)}.footer-bottom p{margin:0}.case-main{padding-top:42px}.back-link{display:inline-block;font-size:13px;margin-bottom:32px}.case-hero{padding-bottom:36px}.case-hero h1{font-size:46px;overflow-wrap:anywhere}.case-intro{max-width:720px;color:var(--muted);font-size:18px}.case-meta{display:flex;align-items:center;gap:30px;margin:26px 0}.case-meta>span{font:10px var(--mono);color:var(--muted)}.button{display:inline-block;padding:10px 17px;border:1px solid var(--link);border-radius:5px;font-size:12px;font-weight:600}.primary{background:var(--link);color:var(--paper)}.primary:hover{background:var(--ink);text-decoration:none}.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding-block:36px;border-block:1px solid var(--line)}.case-details p,.case-summary p{font-size:15px;color:var(--muted)}.case-summary h2{font-size:28px}.figure-caption{font-size:11px;color:var(--muted);margin:12px 0 0}.case-details{padding-block:24px}.case-details article{display:flex;gap:32px;padding:27px 0;border-bottom:1px solid var(--line)}.detail-index{font:11px var(--mono);color:var(--accent);padding-top:9px}.case-details h2{font-size:25px}.case-details p{margin:0}.case-note{padding:20px 25px;background:var(--surface);border:1px solid var(--line);border-radius:6px;font-size:13px;color:var(--muted)}.case-note p{margin:0}.next-project{display:flex;flex-direction:column;align-items:flex-start;gap:15px;padding-block:45px 60px}.next-project .eyebrow{margin:0}.next-project>a:not(.text-link){font:700 italic 28px var(--serif)}.system-panel{background:#1c2d29;color:#f0f4ec;border-radius:8px;overflow:hidden}.panel-bottom,.panel-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;font:9px/1.6 var(--mono);border-bottom:1px solid #41534b}.panel-bottom{border-top:1px solid #41534b;border-bottom:0;font-size:8px}.panel-bottom a{color:#a9c5ff}.mono{color:#afc0b2}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#8ba98b;margin-right:5px}.system-canvas{padding:25px;background-image:radial-gradient(#41534b 1px,transparent 0);background-size:17px 17px}.node{display:flex;align-items:center;gap:12px;background:#253d32;border:1px solid #6a8070;padding:14px;border-radius:4px}.node strong{font-size:12px;display:block}.node small{display:block;font:9px/1.6 var(--mono);color:#b8c9ba;margin-top:4px}.client-node{width:90%;margin:auto}.node-icon{font-size:21px}.api-node{border-color:#cdada0}.go-word{font:700 italic 24px var(--serif);color:#eec5b5}.node-dot{width:6px;height:6px;border-radius:50%;background:#eec5b5;margin-left:auto}.flow-line{height:38px;text-align:center;position:relative;padding:10px 0 0 75px;font:8px var(--mono)}.flow-line:before{content:"";position:absolute;height:38px;width:1px;left:50%;top:0;background:#91a797}.branch-lines{height:27px;position:relative;display:flex;justify-content:space-around}.branch-lines:before{content:"";width:50%;position:absolute;top:13px;border-top:1px solid #91a797}.branch-lines:after{content:"";position:absolute;height:13px;border-left:1px solid #91a797;left:50%}.branch-lines span{height:14px;border-left:1px solid #91a797;margin-top:13px}.data-nodes{display:grid;grid-template-columns:1fr 1fr;gap:12px}.data-nodes .node{display:block;text-align:center;padding:14px 8px}.small-icon{font-size:20px;display:block;margin-bottom:8px}.worker-caption{font:8px var(--mono);text-align:right;padding-top:14px;color:#b8c9ba}.architecture-simple{display:flex;flex-direction:column;gap:16px;align-items:center;padding:32px 20px;background:var(--surface);border:1px solid var(--line);border-radius:8px;font:12px var(--mono)}.architecture-simple>span{padding:10px;border:1px solid var(--line)}.architecture-simple>b{color:var(--accent)}.architecture-simple>div{display:flex;gap:15px;justify-content:center;flex-wrap:wrap}.architecture-simple>div>span{padding:10px;border:1px solid var(--line);font-size:10px}.resume-main{max-width:900px;padding-block:30px 60px}.resume-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.resume-toolbar .back-link{margin:0}.resume-document{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:45px}.resume-document h1{font-size:42px;margin-bottom:12px}.resume-role{font-size:17px;color:var(--muted)}.resume-contact{display:flex;gap:20px;flex-wrap:wrap;font-size:12px}.resume-document section{margin-top:30px;border-top:1px solid var(--line);padding-top:20px}.resume-document h2{font-size:26px;margin-bottom:17px}.resume-document h3{font:600 14px var(--sans);margin:0}.resume-document li,.resume-document p{font-size:12px}.resume-document ul{padding-left:18px}.resume-document li{margin:7px 0}.resume-heading{display:flex;justify-content:space-between;gap:20px}.resume-heading>span{font:9px/1.8 var(--mono);color:var(--muted);white-space:nowrap}.resume-project{margin-bottom:26px}.resume-stack{font:10px/1.6 var(--mono)!important;color:var(--muted)}.not-found{padding-block:70px}.not-found h1{font-size:44px}.not-found p{color:var(--muted)}@media(max-width:960px){.header-inner{gap:18px}.brand{font-size:22px}.site-header nav{gap:18px}.intro{gap:40px;grid-template-columns:1.6fr 1fr}.profile-portrait{width:260px}h1{font-size:41px}.intro-tagline{font-size:21px}.skills-grid{gap:22px}.footer-grid{gap:35px}}@media(max-width:720px){html{scroll-padding-top:88px}.container{width:calc(100% - 40px)}.header-inner{min-height:74px;gap:10px}.brand{font-size:22px}.brand-avatar{width:30px;height:30px}.menu-toggle{display:flex;align-items:center;gap:9px;margin-left:auto;padding:4px 10px;border:1px solid var(--line);border-radius:5px;background:transparent;color:var(--ink);font-size:11px}.menu-toggle span{font-size:18px}.theme-toggle{width:32px;height:32px;font-size:23px}.site-header nav{display:none;position:absolute;left:0;right:0;top:74px;margin:0;padding:12px 20px 18px;border-bottom:1px solid var(--line);background:var(--paper)}.site-header nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}.site-header nav a{padding:11px 0;font-size:14px}.intro{grid-template-columns:1fr;gap:29px;padding-top:38px;padding-bottom:36px}.portrait-wrap{grid-row:1;justify-self:start;max-width:210px}.profile-portrait{width:210px;border-radius:22px}.portrait-wrap>p{display:none}h1{font-size:35px;letter-spacing:-.7px;margin-bottom:20px}.intro-tagline{font-size:20px;line-height:1.5;margin-bottom:26px}.intro-copy>p:not(.intro-tagline){font-size:15px;margin-bottom:18px}.social-links{gap:8px;margin-top:23px}.social-links a{font-size:11px;padding:5px 9px}h2{font-size:27px}.explore-section{padding-block:28px 34px}.explore-grid{gap:13px}.explore-card{padding:20px}.explore-card h3{font-size:22px}.explore-card p{font-size:13px}.explore-card h3>.in-progress{font-size:9px}.content-section{padding-block:32px;scroll-margin-top:90px}.section-description{font-size:14px}.project-heading{flex-direction:column;gap:0}.project-heading>span{padding:0;margin-bottom:13px;font-size:9px}.project-heading h3{font-size:22px;margin-bottom:4px}.project-item>p{font-size:14px}.project-links{gap:18px;font-size:12px}.job-heading{gap:12px}.job-heading h3{font-size:24px}.job-heading>span{font-size:8px}.experience-content>p,.experience-list li{font-size:14px}.job-heading p{font-size:13px}.experience-list{padding-left:19px}.linkedin-proof{scroll-margin-top:90px}.linkedin-context{font-size:12px}.skills-grid{grid-template-columns:1fr;gap:25px}.skills-grid h3{margin-bottom:9px}#writing>p,.contact-section>p,.skills-grid p{font-size:14px}.contact-email{font-size:16px}.footer-grid{grid-template-columns:1fr 1fr;gap:25px}.footer-grid>div:first-child{grid-column:1/-1}.footer-grid>div:first-child>p{margin-bottom:0}.site-footer{padding-top:30px}.case-main{padding-top:28px}.case-hero h1{font-size:37px}.case-intro{font-size:16px}.case-meta{flex-direction:column;align-items:flex-start;gap:15px}.case-grid{grid-template-columns:1fr;gap:30px;padding-block:27px}.case-details article{gap:20px;padding-block:24px}.case-details h2{font-size:23px}.case-details p,.case-summary p{font-size:14px}.case-summary h2{font-size:26px}.case-note{padding:17px}.next-project>a:not(.text-link){font-size:25px}.resume-main{padding-block:25px 45px}.resume-document{padding:25px 20px}.resume-document h1{font-size:35px}.resume-heading{flex-direction:column;gap:7px}.resume-toolbar .button{font-size:10px;padding:8px 10px}.resume-contact{font-size:11px;gap:12px}.resume-role{font-size:15px}}@media(max-width:544px){.explore-grid{grid-template-columns:1fr}.linkedin-post-link{font-size:11px}.section-heading{gap:12px}.brand{font-size:20px;gap:9px}.header-inner{gap:8px}.eyebrow{font-size:9px}.contact-email{font-size:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media print{@page{margin:16mm}body{background:white!important;color:#111!important;font-size:11px}.resume-toolbar,.site-footer,.site-header,.skip{display:none!important}.resume-main{width:100%;max-width:none;padding:0}.resume-document{background:white;border:0;padding:0}.resume-document .eyebrow{display:none}.resume-document h1{font-size:30px}.resume-document h2{font-size:20px}.resume-document section{margin-top:20px;padding-top:13px}.resume-document h3{font-size:11px}.resume-document li,.resume-document p{font-size:10px;line-height:1.5}.resume-contact{font-size:10px}.resume-role{font-size:12px}.resume-project{page-break-inside:avoid;break-inside:avoid}.resume-heading{flex-direction:row}a{color:#111}.resume-document .resume-stack{font-size:8px!important}}.linkedin-preview{background:var(--surface);padding:24px;color:var(--ink)}.linkedin-preview-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.linkedin-author{display:flex;align-items:center;gap:12px;min-width:0;color:var(--ink)}.linkedin-author img{width:44px;height:44px;object-fit:cover;border-radius:50%;flex-shrink:0}.linkedin-author strong{display:block;font:600 14px/1.5 var(--sans)}.linkedin-author small{display:block;font:11px/1.6 var(--sans);color:var(--muted)}.linkedin-source{font:600 14px/1.5 var(--sans);color:var(--link)}.linkedin-preview-quote{margin:0 0 18px;padding:0 0 0 15px;border-left:3px solid var(--accent)}.linkedin-preview-quote p{font:700 italic 25px/1.4 var(--serif);margin:0}.linkedin-preview-summary{font-size:14px;line-height:1.75;margin:0 0 16px;color:var(--muted)}.linkedin-preview-footer{padding-top:17px;margin-top:22px;border-top:1px solid var(--line)}.linkedin-preview-footer>span{display:block;font:10px/1.5 var(--sans);color:var(--muted);margin-bottom:8px}.linkedin-original{display:inline-block;font-size:12px;font-weight:600;line-height:1.7}.linkedin-original>span{margin-left:5px}@media(max-width:544px){.linkedin-preview{padding:20px}.linkedin-source{font-size:12px}.linkedin-author strong{font-size:13px}.linkedin-author small{font-size:10px}.linkedin-preview-quote p{font-size:23px}.linkedin-preview-summary{font-size:13px}.linkedin-original{font-size:11px}}@media(max-width:400px){.brand{font-size:17px;gap:7px}.brand-avatar{width:26px;height:26px}.header-inner{gap:6px}.menu-toggle{padding:4px 7px;gap:6px;font-size:10px}.theme-toggle{width:28px;height:28px;font-size:21px}}.site-header nav a[aria-current=page]{color:var(--accent)}.blog-main{padding-top:42px;padding-bottom:55px}.blog-hero{max-width:760px;padding-bottom:38px}.blog-hero .back-link{margin-bottom:30px}.blog-hero h1{font-size:54px;margin-bottom:16px}.blog-tagline{font:700 italic 24px/1.45 var(--serif);color:var(--accent);margin:0 0 20px}.blog-intro{font-size:17px;color:var(--muted);margin:0 0 24px;max-width:690px}.blog-articles,.blog-topics{padding:32px 0;border-top:1px solid var(--line)}.blog-count{font:11px var(--mono);color:var(--muted);white-space:nowrap}.blog-empty{margin-top:24px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:30px 34px}.blog-empty-mark{display:block;font:12px var(--mono);color:var(--accent);margin-bottom:18px}.blog-empty h3{font-style:italic;font-size:25px;margin-bottom:12px}.blog-empty p{font-size:15px;color:var(--muted);max-width:640px;margin:0 0 20px}.blog-topics{padding-bottom:0}.blog-row{padding:27px 0;border-bottom:1px solid var(--line)}.blog-row:last-child{border-bottom:0;padding-bottom:0}.blog-row-meta{display:flex;flex-wrap:wrap;gap:16px;font:11px/1.7 var(--mono);color:var(--muted);margin-bottom:10px}.blog-row h3{font:700 italic 27px/1.4 var(--serif);margin-bottom:10px;overflow-wrap:anywhere}.blog-row h3 a{color:var(--ink)}.blog-row h3 span{color:var(--link);font-style:normal}.blog-row>p{font-size:15px;color:var(--muted);margin:0 0 17px;max-width:780px}.blog-row .tags{margin-bottom:0}.home-blog-list{max-width:800px;margin-top:22px}.blog-elsewhere{font-size:13px!important;color:var(--muted)}.article-main{max-width:800px;padding:42px 0 55px}.article-header{padding-bottom:30px;border-bottom:1px solid var(--line)}.article-header h1{font-size:44px;overflow-wrap:anywhere;margin:22px 0}.article-description{color:var(--muted);font-size:18px}.article-byline{display:flex;align-items:center;gap:12px;margin-top:25px}.article-byline img{width:36px;height:36px;border-radius:50%;object-fit:cover}.article-byline a{font-size:13px;color:var(--ink);font-weight:600}.article-byline p{font-size:11px;color:var(--muted);margin:3px 0 0}.article-toc{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:20px 25px;margin:30px 0}.article-toc h2{font:600 13px var(--sans);letter-spacing:0}.article-toc ol{padding-left:20px;margin:15px 0 0}.article-toc li{font-size:13px;padding:3px 0}.article-content{font-size:17px;line-height:1.9;overflow-wrap:anywhere}.article-content h2{font-size:30px;margin:40px 0 18px;scroll-margin-top:110px}.article-content h3{font-size:23px;margin:30px 0 15px}.article-content h3,.article-content h4,.article-content h5,.article-content h6{scroll-margin-top:110px}.article-content p{margin:20px 0}.article-content li{margin-bottom:8px}.article-content pre{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:20px;overflow:auto;font:13px/1.8 var(--mono);tab-size:4;white-space:pre;overflow-wrap:normal}.article-content code{font-family:var(--mono);font-size:.85em}.article-content :not(pre)>code{background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:2px 5px}.article-content blockquote{border-left:3px solid var(--accent);margin:25px 0;padding:0 22px;color:var(--muted)}.article-content table{display:block;max-width:100%;overflow:auto;border-collapse:collapse;font-size:14px;margin:25px 0}.article-content td,.article-content th{padding:10px 14px;border:1px solid var(--line);text-align:left}.article-content th{background:var(--surface)}.article-content img{display:block;border-radius:6px;margin:25px auto}.article-content hr{border:0;border-top:1px solid var(--line);margin:35px 0}.article-end{margin-top:40px;padding-top:25px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.article-end a{display:inline-block;margin:8px 20px 0 0}@media(max-width:720px){.blog-main{padding-top:28px;padding-bottom:35px}.blog-hero{padding-bottom:28px}.blog-hero h1{font-size:42px}.blog-tagline{font-size:21px}.blog-intro{font-size:15px}.blog-empty{padding:25px 22px}.blog-empty h3{font-size:23px}.blog-empty p{font-size:14px}.blog-empty .project-links,.blog-hero .project-links{gap:12px 20px;font-size:12px}.blog-articles,.blog-topics{padding-top:27px}.blog-row h3{font-size:24px}.blog-row>p{font-size:14px}.blog-row-meta{font-size:10px;gap:12px}.article-main{padding-top:28px;padding-bottom:35px}.article-header h1{font-size:35px;line-height:1.2}.article-description{font-size:16px}.article-content{font-size:15px;line-height:1.85}.article-content h2{font-size:27px;scroll-margin-top:90px}.article-content h3{font-size:22px;scroll-margin-top:90px}.article-content pre{font-size:12px;padding:15px}.article-byline p{font-size:10px}.article-toc{padding:18px 20px}.blog-hero .back-link{margin-bottom:25px}}.article-origin{font-size:12px;color:var(--muted);padding:15px 0;margin:0;border-bottom:1px solid var(--line)}.article-origin a{font-weight:600}.blog-card,.explore-card,.linkedin-card{--card-accent:color-mix(in srgb,var(--accent) 65%,var(--surface));border:2px solid var(--ink);border-radius:18px;background:var(--surface);box-shadow:inset 0 0 0 5px var(--card-accent),5px 5px 0 var(--ink)}.blog-card:nth-child(2n),.explore-card:nth-child(2n),.linkedin-card{--card-accent:color-mix(in srgb,var(--link) 65%,var(--surface))}.explore-grid{gap:24px}.explore-card{padding:26px 28px;transition:transform .15s,box-shadow .15s}.explore-card:hover{border-color:var(--ink);transform:translate(-2px,-2px);box-shadow:inset 0 0 0 5px var(--card-accent),7px 7px 0 var(--ink)}.linkedin-card{padding:28px;overflow:visible}#writing .home-blog-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:none;margin-top:30px;padding-bottom:5px}.blog-card{display:flex;flex-direction:column;min-width:0;padding:28px}.blog-card .blog-row-meta{gap:8px 14px;font-size:10px;margin-bottom:17px}.blog-card h3{font:700 italic 22px/1.4 var(--serif);margin:0 0 14px;overflow-wrap:anywhere}.blog-card h3 a{color:var(--ink)}.blog-card>p{font-size:14px;line-height:1.75;color:var(--muted);margin:0 0 22px}.blog-card-footer{margin-top:auto}.blog-card .tags{margin-bottom:18px}.blog-card .card-link{display:inline-block;font-size:12px}@media(max-width:720px){.explore-grid{gap:20px}.explore-card{padding:23px}#writing .home-blog-list{grid-template-columns:1fr;gap:22px;margin-top:24px}.blog-card{padding:25px}.blog-card h3{font-size:21px}.blog-card>p{font-size:13px}.linkedin-card{padding:25px}}@media(prefers-reduced-motion:reduce){.explore-card:hover{transform:none}}