/* The approved compact notebook, shared by the preview and WordPress. */
html{scroll-padding-top:105px}:root{--paper:#fafbf8;--ink:#202522;--muted:#747b76;--line:#e3e7e2;--blue:#2065d1}.site-shell{max-width:930px;padding:0 34px}.site-header,.design-a .topbar{height:76px;position:sticky;top:0;z-index:60;isolation:isolate;border-bottom:1px solid transparent;transition:border-color .3s}.site-header::before,.design-a .topbar::before{content:'';position:absolute;inset:0;inset-inline-start:50%;width:100vw;transform:translateX(-50%);background:#fafbf8ed;backdrop-filter:blur(12px);z-index:-1;border-bottom:1px solid transparent;transition:border-color .3s}.rtl .site-header::before,html[dir=rtl] .design-a .topbar::before{transform:translateX(50%)}.is-scrolled::before{border-bottom-color:var(--line)!important}.admin-bar .site-header{top:32px}.brand{font-size:14px;gap:9px}.brand-mark{font-size:28px;letter-spacing:-2px}.brand-mark span{color:var(--blue)}.primary{font-size:13px;gap:22px}.header-right{gap:20px}.languages{font-size:11px;border:0;padding:0}.intro,.design-a .intro{display:flex;align-items:center;gap:30px;margin:36px 0 46px}.portrait{padding:0;flex-shrink:0}.portrait img,.design-a .avatar{display:block;width:160px;height:178px;object-fit:cover;border-radius:5px}.portrait-caption{display:none}.intro-copy{max-width:630px}.intro .eyebrow,.design-a .eyebrow{font-size:10px;letter-spacing:.1em;margin:0 0 7px}.intro h1,.design-a .intro h1{font-size:36px;line-height:1.2;font-weight:600;letter-spacing:-.04em;margin:0 0 11px}.intro .role,.design-a .intro .role{font-size:19px;font-weight:500;line-height:1.45;letter-spacing:-.015em;color:#38433c;margin:0 0 10px}.intro .bio,.design-a .intro .bio{font-size:15px;line-height:1.75;color:var(--muted);max-width:580px;margin:0}.social-links{display:flex;align-items:center;gap:7px;margin-top:13px}.social-links a{display:flex;width:31px;height:31px;align-items:center;justify-content:center;border:1px solid transparent;border-radius:4px;color:#626c65}.social-links a:hover{color:var(--blue);border-color:#d5e1f5;background:#f0f5ff}.social-links svg{width:17px;height:17px;fill:currentColor}.section{margin-bottom:33px}.section-heading{padding-bottom:11px}.section-heading h2{font-size:12px;font-family:var(--sans);letter-spacing:.035em;font-weight:600}.section-heading h2>span{font-size:10px;font-family:var(--mono);color:var(--blue);margin-inline-end:10px}.section-heading>a{font-size:11px;font-family:var(--sans)}.post-row{grid-template-columns:83px minmax(0,1fr) auto;gap:18px;padding:17px 0}.post-row time{font-size:11px;padding-top:3px}.post-title{font-size:16px;line-height:1.45;font-weight:550}.post-row p{font-size:13px;line-height:1.55;margin:4px 0 0}.post-kind{font-size:10px;padding-top:4px}.project-row{display:grid;grid-template-columns:145px 1fr auto;gap:16px;align-items:start;padding:15px 0;border-bottom:1px solid var(--line)}.project-row h3{font-size:15px;font-weight:600;margin:0}.project-row p{font-size:13px;color:var(--muted);margin:0}.project-stack{font:10px/1.7 var(--mono);color:var(--muted);padding-top:4px}.experience-row{display:flex;align-items:center;gap:13px;padding:16px 0;border-bottom:1px solid var(--line)}.company-monogram{width:36px;height:36px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:15px;font-weight:600;background:#eff1eb;border:1px solid #e1e5dd;border-radius:6px}.career-copy{min-width:0;flex:1}.career-copy h3{font-size:15px;font-weight:550;margin:0}.career-copy p{font-size:13px;color:var(--muted);margin:2px 0 0}.career-dates{font:10px/1.7 var(--mono);color:var(--muted);white-space:nowrap;align-self:start;padding-top:3px}.earlier{font-size:12px;margin-top:12px}.earlier summary{cursor:pointer;color:var(--muted);padding:7px 0}.earlier[open] summary{color:var(--blue)}.site-footer{font-size:11px;margin-top:37px;padding:20px 0 25px}.site-footer .footer-links{font-size:11px}.page-heading{padding:38px 0 25px}.page-heading h1{font-size:42px}.page-heading>p:not(.eyebrow){font-size:16px}
/* A reading layout inspired by the reference, sized for this notebook. */
body.single .site-shell,body.article-preview .shell{max-width:1060px}.article-main{max-width:none;margin:44px auto 0}.article-heading{max-width:730px;margin:0 auto;padding-bottom:29px;border-bottom:1px solid var(--line)}.back-link{font:12px var(--mono);color:var(--muted);display:inline-block;margin-bottom:21px}.article-heading h1{font:500 clamp(34px,4.1vw,49px)/1.12 Georgia,'Times New Roman',serif;letter-spacing:-.035em;text-wrap:balance;margin:0 0 16px}.article-deck{font:16px/1.6 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#626b64;margin:0 0 20px;max-width:660px}.article-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font:11px/1.7 var(--mono);color:var(--muted)}.article-category{border:1px solid var(--line);border-radius:20px;padding:0 7px;font-size:10px;text-transform:uppercase}.article-layout{display:grid;grid-template-columns:175px minmax(0,1fr);gap:36px;align-items:start;margin-top:35px}.article-toc{position:sticky;top:105px;font-size:12px;line-height:1.6;color:#6b756d;max-height:calc(100vh - 135px);overflow:auto}.article-toc summary{font:10px var(--mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;color:#7b837d;padding:0 0 12px}.article-toc ol{padding:0;list-style:none;margin:0}.article-toc li{margin:0 0 8px}.article-toc a[aria-current]{color:var(--blue)}.article-body{min-width:0}.prose{font-size:17px;line-height:1.75;letter-spacing:-.003em}.prose>p{margin:0 0 20px}.prose>p:first-child{font-size:18px;color:#414c44}.prose h2{font:600 23px/1.4 var(--sans,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);letter-spacing:-.02em;margin:35px 0 12px}.prose h3{font-size:19px;margin:28px 0 10px}.prose a{text-decoration:underline;text-underline-offset:3px}.heading-anchor{margin-inline-start:8px;opacity:0;transition:opacity .2s;font-weight:400;color:#a6afa8;text-decoration:none!important}.prose h2:hover .heading-anchor,.prose h3:hover .heading-anchor,.heading-anchor:focus{opacity:1}.prose figure{margin:30px 0}.prose img,.featured-image{display:block;max-width:100%;height:auto;border-radius:5px;border:1px solid var(--line)}.prose pre{background:#171c18;color:#e5eee7;font-size:13px;padding:47px 22px 21px;border:1px solid #303931;border-radius:6px;overflow:auto;position:relative;direction:ltr;text-align:left;line-height:1.8}.prose pre code{font:inherit;white-space:pre;background:none;padding:0}.prose code{font-family:var(--mono);font-size:.86em;background:#eef0ea;border-radius:3px;padding:.15em .35em;direction:ltr;unicode-bidi:isolate}.copy-code{position:absolute;right:12px;top:10px;background:#303b32;color:#d7e2d9;border:1px solid #536254;font-size:11px;border-radius:4px;padding:4px 8px}.article-end{font:12px var(--mono);border-top:1px solid var(--line);margin-top:36px;padding-top:20px;color:var(--muted)}.source-link{font-size:12px;margin:28px 0}.conversation{margin-top:38px}.conversation h2{font-size:21px}.conversation>p{font-size:14px}.preview-comment{background:none;border:1px solid var(--line);padding:16px;font-size:13px;color:var(--muted);border-radius:4px}.rtl .intro h1{font-size:33px}.rtl .article-heading h1,html[dir=rtl] .article-heading h1{font-family:Vazirmatn,Tahoma,sans-serif;font-size:37px;line-height:1.5;letter-spacing:0}.rtl .prose,.rtl .prose h2,.rtl .prose h3,.rtl .article-deck,.rtl .career-dates,html[dir=rtl] .article-deck{font-family:Vazirmatn,Tahoma,sans-serif;letter-spacing:0}
@media(max-width:900px){.article-layout{grid-template-columns:minmax(0,1fr);gap:20px;max-width:730px;margin-inline:auto}.article-toc{position:static;max-height:none;border-bottom:1px solid var(--line);padding-bottom:5px}.article-toc ol{padding-bottom:8px}.article-main{margin-top:30px}}
@media(max-width:782px){.admin-bar .site-header{top:46px}}
@media(max-width:620px){html{scroll-padding-top:125px}.site-shell{padding:0 22px}.site-header,.design-a .topbar{height:auto;min-height:98px;padding:14px 0 11px;gap:10px;flex-wrap:wrap}.header-right{width:100%;justify-content:space-between}.primary{font-size:12px;gap:19px}.site-header .brand-light{display:inline}.design-a .topnav{font-size:12px}.intro,.design-a .intro{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:start;gap:20px;margin:29px 0 33px}.portrait img,.design-a .avatar{width:92px;height:106px}.intro h1,.design-a .intro h1{font-size:27px;line-height:1.25;margin-bottom:9px}.intro .eyebrow,.design-a .eyebrow{font-size:8px;margin-bottom:8px}.intro .role,.design-a .intro .role{font-size:17px;line-height:1.5;margin-bottom:9px}.intro .bio,.design-a .intro .bio{font-size:14px;line-height:1.7}.social-links{gap:3px;margin-top:10px;margin-inline-start:-5px}.post-row{grid-template-columns:1fr;gap:6px;padding:15px 0}.post-title{font-size:16px}.post-row p{font-size:13px}.post-kind{display:none}.project-row{grid-template-columns:1fr;gap:3px}.project-stack{display:none}.experience-row{flex-wrap:wrap;gap:7px 12px}.career-dates{width:100%;padding:0;padding-inline-start:49px;margin-top:-3px}.section{margin-bottom:27px}.site-footer{margin-top:27px;flex-direction:row;font-size:10px}.article-main{margin-top:26px}.article-heading{padding-bottom:23px}.article-heading h1{font-size:35px}.article-deck{font-size:15px}.article-meta{font-size:10px;gap:8px}.prose{font-size:16px;line-height:1.8}.prose>p:first-child{font-size:17px}.prose h2{font-size:21px}.article-layout{margin-top:24px}.prose pre{font-size:12px}.rtl .intro h1{font-size:25px}.rtl .article-heading h1,html[dir=rtl] .article-heading h1{font-size:29px}.admin-bar .site-header{top:0}}
body[data-page="writing"] .writing .section-head{display:none}
