@font-face{font-family:geistSans;src:url(/_next/static/media/4473ecc91f70f139-s.p.woff) format("woff");font-display:swap}@font-face{font-family:geistSans Fallback;src:local("Arial");ascent-override:85.83%;descent-override:20.52%;line-gap-override:9.33%;size-adjust:107.19%}.__className_ef23df{font-family:geistSans,geistSans Fallback}.__variable_ef23df{--font-geist-sans:"geistSans","geistSans Fallback"}@font-face{font-family:geistMono;src:url(/_next/static/media/463dafcda517f24f-s.p.woff) format("woff");font-display:swap}@font-face{font-family:geistMono Fallback;src:local("Arial");ascent-override:69.97%;descent-override:16.73%;line-gap-override:7.61%;size-adjust:131.49%}.__className_1235f0{font-family:geistMono,geistMono Fallback}.__variable_1235f0{--font-geist-mono:"geistMono","geistMono Fallback"}/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/:root{--paper:#f6f6ef;--ink:#18181b;--muted:#71717a;--rule:#d9d9d1;--accent:#7a4d44;color-scheme:light}html{scroll-behavior:auto}body,html{background:var(--paper)}body{color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.personal-page{--muted:#686862;width:min(1040px,calc(100% - 64px));margin-inline:auto;padding-bottom:96px;font-family:Georgia,Times New Roman,serif;font-size:16px;line-height:1.6;overflow-wrap:anywhere}.personal-page *,.personal-page :after,.personal-page :before{animation:none!important;transition:none!important;scroll-behavior:auto!important}.personal-page a:hover,.personal-page button:not(:disabled):hover{text-decoration:underline;text-underline-offset:4px}.personal-home{width:min(840px,calc(100% - 64px));display:flex;flex-direction:column;justify-content:center;min-height:100svh;padding-block:40px;line-height:1.5}.personal-hero{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:32px}.personal-portrait{width:220px;height:220px;-o-object-fit:cover;object-fit:cover}.personal-intro{min-width:0}.personal-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 24px;margin-bottom:20px}.page-heading,.personal-heading h1{font-size:clamp(40px,4.5vw,64px);font-weight:400;line-height:1.1;letter-spacing:-.045em}.personal-heading h1{font-size:clamp(36px,3.2vw,48px)}.personal-heading>a{color:var(--muted)}.intro-copy p+p{margin-top:14px}.social-links{display:flex;gap:10px;margin-top:18px}.social-links a{display:grid;width:36px;height:36px;place-items:center;border:1px solid var(--rule);border-radius:50%;color:var(--muted)}.social-links a:hover{color:var(--ink);border-color:var(--muted)}.social-links svg{width:17px;height:17px}.social-links .book-button{height:36px;padding-inline:14px;border:1px solid var(--rule);border-radius:999px;color:var(--muted)}.home-columns{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:32px;margin-top:32px}.section-heading{margin-bottom:12px;font-size:30px;font-weight:400;line-height:1.2;letter-spacing:-.035em}.updates-list{list-style:none;padding:0;margin:0}.updates-list li{display:grid;grid-template-columns:100px minmax(0,1fr);gap:16px;border-top:1px solid var(--rule);padding-block:12px;line-height:1.55}.updates-list time{color:var(--muted)}.post-title{font-size:32px;font-weight:400;line-height:1.25;letter-spacing:-.03em}.featured-blog .post-title{font-size:24px}.featured-blog .post-description{margin-top:12px}.post-description{margin-top:16px}.all-posts-link{display:inline-block;margin-top:16px}.quiet-state{color:var(--muted)}.text-link{text-decoration:underline;text-underline-offset:4px}.personal-page button:disabled{cursor:default;color:var(--muted)}.back-link{display:inline-flex;align-items:center;gap:8px}.back-link svg{width:18px;height:18px}.article-page,.blog-index{padding-top:40px}.blog-index .page-heading{margin:24px 0 52px;font-size:64px}.blog-row{border-top:1px solid var(--rule);padding-block:40px}.blog-row>*{min-width:0}.list-state{padding-block:32px}.blog-pagination,.list-state{border-top:1px solid var(--rule)}.blog-pagination{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:24px}.blog-pagination button{min-height:44px}.blog-pagination span{color:var(--muted)}.article-page{max-width:760px}.blog-article{padding-top:32px;line-height:1.7}.blog-article>*+*{margin-top:20px}.blog-article h1{font-size:clamp(32px,4vw,48px);font-weight:400;line-height:1.2;letter-spacing:-.035em}.blog-article h2,.blog-article h3{margin-top:28px;font-weight:600;line-height:1.3;letter-spacing:-.02em}.blog-article h2{margin-top:48px;font-size:28px}.blog-article h2+*,.blog-article h3+*{margin-top:14px}.blog-article h3{font-size:23px}.blog-article a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.blog-article ol,.blog-article ul{padding-left:28px}.blog-article ul{list-style:disc}.blog-article ol{list-style:decimal}.blog-article li+li,.blog-article li>ol,.blog-article li>p,.blog-article li>ul{margin-top:8px}.blog-article hr{border-color:var(--rule);margin-block:32px}.blog-article blockquote,.blog-callout{padding:16px 20px;border-left:3px solid var(--accent)}.blog-callout{background:#eeeee6}.blog-article blockquote>*+*,.blog-callout>*+*{margin-top:8px}.blog-image{margin-block:28px}.blog-image img{display:block;width:100%;height:auto}.blog-image figcaption{margin-top:8px;color:var(--muted);font-size:14px;text-align:center}.blog-image-comparison{display:flex;flex-direction:column;align-items:center;gap:16px;width:min(100%,200px);margin-inline:auto}.blog-image-comparison .blog-image{flex:none;width:100%;min-width:0;margin:0}.blog-image-comparison>p{flex:none;margin:0}@media (min-width:900px){.blog-image-comparison{flex-direction:row;width:min(100%,600px);gap:24px}.blog-image-comparison .blog-image{flex:1 1 0;width:auto}}.blog-article mark{padding:1px 3px;border-radius:3px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.blog-highlight-yellow{color:#594400;background:#f8ebad}.blog-highlight-red{color:#8b2424;background:#f8e2df}.blog-highlight-pink{color:#8a285d;background:#f4dfeb}.blog-article :not(pre)>code{padding:2px 4px;border-radius:3px;color:#8b2424;background:#eeeee6;white-space:pre-wrap}.blog-article pre{padding:20px;border:1px solid var(--rule);border-radius:4px;background:#eeeee6;line-height:1.6;white-space:pre;overflow-wrap:normal}.article-page code,.article-page pre{font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:1em}.article-page pre{max-width:100%;overflow-x:auto}@media (max-width:899px){.personal-page{width:calc(100% - 40px);padding-bottom:64px}.personal-home{justify-content:flex-start;padding-block:28px 48px}.home-columns,.personal-hero{grid-template-columns:minmax(0,1fr)}.personal-hero{gap:20px}.personal-portrait{width:160px;height:160px}.personal-heading{gap:12px 24px}.home-columns{gap:28px;margin-top:28px}.social-links .book-button,.social-links a{width:44px;height:44px}.social-links .book-button{width:auto}.blog-index .page-heading{font-size:52px;margin-bottom:36px}.blog-row{padding-block:28px}.post-title{font-size:28px}}@media (max-width:479px){.updates-list li{grid-template-columns:minmax(0,1fr);gap:5px}}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.fixed{position:fixed}.min-h-screen{min-height:100vh}.overflow-x-hidden{overflow-x:hidden}.bg-\[\#F6F6EF\]{--tw-bg-opacity:1;background-color:rgb(246 246 239/var(--tw-bg-opacity,1))}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-zinc-900{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}