/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ease-out:cubic-bezier(0,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.static{position:static}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.table{display:table}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--interactive-surface:#f0f0f0;--square-image-radius:6px;--background:#fbfbfb;--text:#20201f;--muted:#737370;--subtle:#989894;--field:#e9e9e6;--line:#e2e2de;--nav-text:#62625f;--strong:#111;--surface-hover:var(--interactive-surface);--surface-soft:#f2f2ef;--surface-raised:#f7f7f5;--border:#ddddda;--border-strong:#c9c9c5;--button:#242423;--button-hover:#080808;--button-text:#fff;--code-background:#242423;--code-text:#ededeb;--writing-row-hover:#fcfcfa;--story-index-hover:var(--interactive-surface);--uses-row-hover:var(--interactive-surface);--nav-surface:var(--interactive-surface);--nav-surface-active:var(--interactive-surface);--nav-focus:#686863;--column:680px;--sans:Arial,"Helvetica Neue",Helvetica,sans-serif}.dark-theme{color-scheme:dark;--interactive-surface:#242522;--background:#181917;--text:#edede9;--muted:#aaa9a4;--subtle:#85847f;--field:#242522;--line:#30312d;--nav-text:#aaa9a4;--strong:#f7f7f3;--surface-hover:var(--interactive-surface);--surface-soft:#22231f;--surface-raised:#272824;--border:#383935;--border-strong:#4b4c47;--button:#e5e5df;--button-hover:#f4f4ef;--button-text:#181917;--code-background:#10110f;--code-text:#e8e8e3;--writing-row-hover:#1e1f1d;--story-index-hover:var(--interactive-surface);--uses-row-hover:var(--interactive-surface);--nav-surface:var(--interactive-surface);--nav-surface-active:var(--interactive-surface);--nav-focus:#b7b7b0;color:#edede9;background:#181917}.dark-theme body{color:#edede9;background:#181917}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--background);transition:background-color .22s ease-out}body{background:var(--background);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5;transition:background-color .22s ease-out,color .22s ease-out}::selection{background:#dededa}.dark-theme ::selection{background:#3b3c37}a{color:inherit;text-decoration:none}.ui-arrow{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.14em;width:1em;height:1em;display:inline-block;overflow:visible}:focus-visible{outline-offset:4px;outline:2px solid #555550}.dark-theme :focus-visible{outline-color:#b6b6af}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-header{justify-content:space-between;align-items:center;width:100%;min-height:78px;padding:18px clamp(22px,3vw,44px);display:flex}.monogram{width:60px;height:40px;display:block;position:relative}.monogram img{object-fit:contain;width:102px;max-width:none;height:68px;transition:filter .22s ease-out;display:block;position:absolute;top:calc(50% + 7px);left:50%;transform:translate(-50%,-50%)}.dark-theme .monogram img{filter:invert()brightness(1.22)}.site-header nav{color:var(--nav-text);align-items:center;gap:clamp(22px,2.5vw,34px);font-size:14px;font-weight:600;display:flex}.site-header nav a,.inline-link,.section-heading a{transition:color .22s;position:relative}.site-header nav a{z-index:0;isolation:isolate;border-radius:10px;align-items:center;min-height:44px;margin:0 -5px;padding:0 9px;transition:color .2s ease-out;display:flex}.inline-link:after,.section-heading a:after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .24s;position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}.site-header nav a:before,.theme-toggle:before{content:"";z-index:-1;pointer-events:none;background:0 0;border-radius:9px;transition:background-color .2s ease-out;position:absolute;inset:6px 0}.inline-link:hover:after,.section-heading a:hover:after{transform-origin:0;transform:scaleX(1)}.site-header nav a:hover,.inline-link:hover,.section-heading a:hover{color:var(--strong)}.site-header nav a:hover:before,.theme-toggle:hover:before{background:var(--nav-surface)}.site-header nav a[aria-current=page]{color:var(--strong);font-weight:600}.site-header nav a[aria-current=page]:before{background:var(--nav-surface-active)}.site-header nav a:focus-visible,.theme-toggle:focus-visible{outline:none}.site-header nav a:focus-visible:before,.theme-toggle:focus-visible:before{background:var(--nav-surface);outline:2px solid var(--nav-focus);outline-offset:0}.theme-toggle{width:44px;height:44px;color:inherit;cursor:pointer;isolation:isolate;background:0 0;border:0;place-items:center;margin:-12px -12px -12px -8px;padding:0;transition:color .2s ease-out;display:grid;position:relative}.theme-toggle:hover{color:var(--strong)}.theme-toggle:before{inset:6px 3px}.theme-icon{opacity:1;place-items:center;transition:opacity .22s ease-out,transform .22s ease-out;display:grid;position:absolute;transform:rotate(0)scale(1)}.theme-icon svg{fill:none;stroke:currentColor;stroke-width:1.65px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.theme-icon--sun{opacity:0;transform:rotate(-20deg)scale(.82)}.dark-theme .theme-icon--moon{opacity:0;transform:rotate(20deg)scale(.82)}.dark-theme .theme-icon--sun{opacity:1;transform:rotate(0)scale(1)}main{width:min(calc(100% - 44px),var(--column));margin:0 auto;padding:88px 0 150px}#top{--homepage-first-entry-content-inset:24px;padding-bottom:112px}.introduction{max-width:670px}.profile-image{object-fit:cover;object-position:center;border:0x solid #fff;border-radius:var(--square-image-radius);transition:transform .21s ease-out,box-shadow .21s ease-out;display:block;box-shadow:0 2px 6px #0000000d,0 14px 32px #0000001f,0 28px 64px #00000014}.profile-image:hover{transform:translateY(-2px);box-shadow:0 3px 8px #0000000f,0 18px 38px #00000024,0 34px 72px #0000001a}.headshot{width:105px;height:105px;margin-bottom:26px}.introduction h1{letter-spacing:-.038em;flex-direction:column;max-width:650px;margin:0 0 14px;font-size:clamp(28px,3.4vw,34px);font-weight:400;line-height:1.24;display:flex}.introduction h1 strong{font-weight:600}.introduction p,.newsletter>p,.simple-list p,.project-list p{color:var(--muted);margin:0;line-height:1.58}.introduction p{max-width:645px;font-size:17px;line-height:1.65}.newsletter{margin-top:56px}.newsletter h2,.simple-list h2,.project-list h2{letter-spacing:-.016em;margin:0;font-size:18px;font-weight:600;line-height:1.35}.newsletter h2{font-size:17px}.newsletter>p{max-width:610px;margin-top:4px;font-size:17px}.subscribe-form{grid-template-columns:1fr 270px;gap:10px;margin-top:22px;display:grid}.subscribe-form input,.subscribe-form button{min-width:0;height:49px;font:inherit;border:0;border-radius:3px;font-size:15px}.subscribe-form input{color:var(--text);background:#e5e5e5;outline:1px solid #0000;padding:0 17px;transition:outline-color .22s,background .22s,box-shadow .22s}.subscribe-form input::placeholder{color:#858580}.subscribe-form input:focus-visible{background:#ededeb;outline-color:#bdbdb8;box-shadow:0 0 0 3px #20201f14}.subscribe-form button{color:#fff;cursor:pointer;background:#242423;padding:0 18px;font-weight:600;transition:background .22s,box-shadow .22s,transform .22s}.subscribe-form button:hover{background:#080808;transform:translateY(-1px);box-shadow:0 4px 12px #20201f1f}.subscribe-form button:active{box-shadow:none;transform:translateY(0)}.subscribe-form button:focus-visible{outline-offset:3px;outline-color:#242423}.inline-link{color:var(--muted);margin-top:17px;font-size:15px;font-weight:500;display:inline-block}.inline-link span,.simple-list h2 span,.section-heading a span{transition:transform .16s;display:inline-block}.inline-link:hover span,.simple-list article:hover h2 span,.section-heading a:hover span{transform:translate(3px)}.content-section{margin-top:112px}#top #writing{margin-top:76px}.section-label{color:var(--subtle);margin:0 0 32px;font-size:13px;font-weight:600}.simple-list{gap:36px;display:grid}.simple-list article{max-width:650px}.simple-list h2{margin-bottom:7px;display:inline-block}.simple-list p{font-size:16px}.section-heading{justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:6px;display:flex}.section-heading .section-label{margin-bottom:24px}.section-heading a{color:var(--muted);font-size:13px;font-weight:600}.project-list{border-top:1px solid var(--line)}.project-list article{border-bottom:1px solid var(--line);border-radius:4px;grid-template-columns:1fr auto;align-items:start;gap:32px;min-height:126px;margin:0 -10px;padding:24px 10px 22px;transition:background-color .24s;display:grid}.project-list article:hover{background:#f1f1ee}.project-list h2{transition:color .24s}.project-list h2 a{color:inherit}.project-list article:hover h2{color:#050505}.project-title-line{flex-wrap:wrap;align-items:center;gap:7px 12px;margin-bottom:6px;display:flex}.project-list p{max-width:510px;font-size:15px}.project-status{color:#858580;white-space:nowrap;flex:0 0 6px;width:6px;height:6px;font-size:12px;font-weight:400;display:inline-block;position:relative}.status-dot{background:#5c85bd;border-radius:50%;width:6px;height:6px;transition:filter .2s ease-out,box-shadow .2s ease-out,transform .2s ease-out;position:absolute;inset:0;transform:scale(1);box-shadow:0 0 0 2px #0000}.status-text{opacity:0;pointer-events:none;transition:opacity .2s ease-out,transform .2s ease-out;position:absolute;top:50%;left:12px;transform:translate(-5px,-50%)}.status-complete .status-dot{background:#62946c}.status-in-progress .status-dot{background:#c3844a}.project-list article:hover .status-dot{filter:brightness(1.12)saturate(1.08);transform:scale(1.08);box-shadow:0 0 0 2px #20201f0d}.project-list article:hover .status-text{opacity:1;transform:translateY(-50%)}.project-tags{flex-wrap:wrap;gap:6px;margin:13px 0 0;padding:0;list-style:none;display:flex}.project-tags li{color:#989894;border:1px solid #ddddda;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:400;line-height:1.45;transition:border-color .24s,color .24s,background-color .24s,transform .24s}.project-tags .project-type{background:var(--surface-raised);color:#70706c;border:0;font-weight:500;line-height:calc(1.45em + 2px)}.project-list article:hover .project-tags li{color:#666662;background:#f7f7f5;border-color:#cececa;transform:translateY(-1px)}.project-meta,.writing-list time{color:var(--subtle);white-space:nowrap;font-size:12px}.project-meta{padding-top:4px;transition:color .24s}.project-list article:hover .project-meta{color:#7a7a75}.project-meta-group{text-align:right;flex-direction:column;align-items:flex-end;gap:5px;padding-top:4px;display:flex}.project-meta-group .project-meta{padding-top:0}.project-updated{color:#aaa9a4;white-space:nowrap;font-size:11px}.project-list--featured article{grid-template-columns:minmax(0,1fr) 180px;gap:30px;transition:background-color .22s ease-out,transform .22s ease-out}#projects .project-list--featured article{border-bottom:0;grid-template-columns:minmax(0,1fr) 104px;align-items:center;transition:background-color .18s}#projects .project-list--featured article:hover,#projects .project-list--featured article:focus-within{background-color:var(--story-index-hover);transform:none}#projects .project-list--featured article:hover h2,#projects .project-list--featured article:focus-within h2{color:inherit}#projects .project-list--featured article:hover .status-dot,#projects .project-list--featured article:focus-within .status-dot{filter:none;box-shadow:none;transform:scale(1)}#projects .project-list--featured article:hover .status-text,#projects .project-list--featured article:focus-within .status-text{opacity:0;transform:translate(-5px,-50%)}#projects .project-list--featured article:hover .project-tags li,#projects .project-list--featured article:focus-within .project-tags li{border-color:var(--border);color:var(--subtle);background:0 0;transform:none}#projects .project-list--featured article:hover .project-tags .project-type,#projects .project-list--featured article:focus-within .project-tags .project-type{background:var(--surface-raised);color:#70706c;border:0}#projects .project-list--featured article:hover .project-hero img,#projects .project-list--featured article:focus-within .project-hero img{opacity:.9;transform:scale(1)}#projects .project-list--featured article:hover .project-meta,#projects .project-list--featured article:focus-within .project-meta{color:var(--subtle)}.dark-theme #projects .project-list--featured article:hover .project-tags .project-type,.dark-theme #projects .project-list--featured article:focus-within .project-tags .project-type{color:var(--muted)}#projects .project-list--featured .project-content>p{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-list--featured article:hover{transform:translateY(-2px)}.project-visual{flex-direction:column;align-self:center;align-items:flex-end;gap:8px;width:100%;display:flex}.project-hero{aspect-ratio:3/2;background:var(--surface-soft);border-radius:14px;width:100%;overflow:hidden}#projects .project-hero{aspect-ratio:1;border-radius:var(--square-image-radius)}.project-hero img{object-fit:cover;opacity:.9;width:100%;height:100%;transition:opacity .22s ease-out,transform .22s ease-out;display:block;transform:scale(1)}.project-list--featured article:hover .project-hero img{opacity:1;transform:scale(1.02)}.project-list--featured .project-meta{text-align:right;padding-top:0}.project-list--featured article:hover .status-dot{box-shadow:0 0 10px #5c85bd47,0 0 0 2px #20201f0a}.project-list--featured article:hover .status-complete .status-dot{box-shadow:0 0 10px #62946c47,0 0 0 2px #20201f0a}.project-list--featured article:hover .status-in-progress .status-dot{box-shadow:0 0 10px #c3844a4d,0 0 0 2px #20201f0a}.work-main{width:min(100% - 88px,1040px);margin:0 auto;padding:88px 0 150px}.work-header{max-width:640px}.work-header h1{letter-spacing:-.04em;margin:0;font-size:42px;font-weight:500;line-height:1.15}.work-header>p:last-child{color:var(--muted);margin:18px 0 0;font-size:18px;line-height:1.65}.folder-browser-section{margin-top:78px}.folder-browser-heading,.work-project-heading{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.folder-browser-heading .section-label,.work-project-heading .section-label{margin-bottom:0}.folder-browser-heading div>p:last-child{color:var(--muted);margin:6px 0 0;font-size:13px}.folder-browser-heading>span,.work-project-heading>p:last-child{color:var(--subtle);margin:0;font-size:11px;font-weight:600}.folder-browser-shell{margin-top:28px;position:relative}.folder-browser-shell:before,.folder-browser-shell:after{content:"";z-index:2;background:var(--background);opacity:0;pointer-events:none;width:10px;transition:opacity .18s ease-out;position:absolute;top:0;bottom:12px}.folder-browser-shell:before{box-shadow:12px 0 18px 8px var(--background);left:-2px}.folder-browser-shell:after{box-shadow:-12px 0 18px 8px var(--background);right:-2px}.folder-browser-shell.can-scroll-left:before,.folder-browser-shell.can-scroll-right:after{opacity:.92}.folder-browser{overscroll-behavior-inline:contain;scroll-behavior:smooth;scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch;gap:18px;padding:10px 18px 18px 2px;display:flex;overflow-x:auto}.folder-browser::-webkit-scrollbar{display:none}.folder-browser.is-dragging{cursor:grabbing;scroll-behavior:auto;-webkit-user-select:none;user-select:none}.folder-button{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:0 0 112px;padding:0}.folder-button:focus-visible{outline-offset:5px;border-radius:7px}.folder-visual{width:90px;height:68px;transition:transform .22s ease-out;display:block;position:relative}.folder-shape{background:var(--folder-color);border:1px solid #4a4a4621;border-radius:6px 8px 10px 10px;height:54px;transition:filter .22s ease-out,box-shadow .22s ease-out;position:absolute;bottom:0;left:0;right:0;box-shadow:0 7px 14px #20201f14,0 2px 4px #20201f0f}.folder-shape:before{content:"";background:var(--folder-color);border:1px solid #4a4a4621;border-bottom:0;border-radius:7px 7px 0 0;width:39px;height:17px;position:absolute;top:-12px;left:-1px}.folder-shape:after{content:"";background:#ffffff85;height:1px;position:absolute;top:7px;left:8px;right:8px}.folder-label{color:#555551;margin-top:11px;font-size:13px;font-weight:600;line-height:1.3;transition:color .22s ease-out;display:block}.folder-count{color:var(--subtle);margin-top:3px;font-size:10px;line-height:1.35;display:block}.folder-button:hover .folder-visual{transform:translateY(-3px)}.folder-button:hover .folder-shape{filter:brightness(1.025);box-shadow:0 10px 18px #20201f1c,0 3px 6px #20201f12}.folder-button:hover .folder-label,.folder-button[aria-pressed=true] .folder-label{color:#111}.folder-button[aria-pressed=true] .folder-shape{box-shadow:0 8px 16px #20201f1c,0 0 0 2px var(--background),0 0 0 3px #20201f2e;border-color:#20201f40}.work-archive-tools{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px;margin-top:30px;display:grid}.project-search{min-width:0}.project-search input,.project-sort select{border:0;border-bottom:1px solid var(--line);height:42px;color:var(--text);font:inherit;background:0 0;border-radius:0;font-size:13px;transition:border-color .18s ease-out}.project-search input{appearance:none;width:100%;padding:0 2px}.project-search input::placeholder{color:var(--subtle)}.project-search input:focus-visible,.project-sort select:focus-visible{border-color:var(--border-strong);box-shadow:0 1px 0 var(--border-strong);outline:0}.project-sort{align-items:center;gap:12px;display:flex}.project-sort>span{color:var(--subtle);font-size:11px;font-weight:600}.project-sort select{cursor:pointer;width:146px;padding:0 2px}.work-main{--work-row-divider:#0001;--work-section-divider:#00000015}.dark-theme .work-main{--work-row-divider:#fff1;--work-section-divider:#ffffff15}.work-main .project-search input:not(:focus-visible),.work-main .project-sort select:not(:focus-visible){border-bottom-color:var(--work-row-divider)}.work-project-section{width:100%;max-width:none;margin-top:54px;scroll-margin-top:32px}.work-project-heading{margin-bottom:22px}.work-project-list{border-top-color:var(--work-section-divider)}.work-project-list article{border-bottom-color:var(--work-row-divider)}.work-project-list article[hidden]{display:none}.work-project-list.project-list--featured article{grid-template-columns:minmax(0,1fr) 92px;align-items:center;gap:24px;min-height:104px;padding-top:16px;padding-bottom:15px}.work-project-list.project-list--featured .project-content>p{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.work-project-list.project-list--featured .project-visual{align-self:center;gap:7px}.work-project-list.project-list--featured .project-hero{aspect-ratio:1;border-radius:var(--square-image-radius);width:92px}.work-project-list.project-list--featured .project-meta-group{align-items:flex-end;gap:3px;padding-top:0}.project-empty{border-bottom:1px solid var(--line);color:var(--muted);padding:32px 0;font-size:14px}.work-project-list .project-empty{border-bottom-color:var(--work-row-divider)}.project-load-more{border:1px solid var(--line);min-height:40px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:6px;margin:32px auto 0;padding:9px 16px;font-size:12px;font-weight:600;transition:border-color .18s ease-out,color .18s ease-out;display:block}.project-load-more:hover,.project-load-more:focus-visible{border-color:var(--border-strong);color:var(--text)}.project-load-more[hidden]{display:none}.project-detail-main{width:min(100% - 88px,980px);margin:0 auto;padding:88px 0 150px}.project-back-link{color:var(--muted);align-items:center;gap:7px;margin-bottom:72px;font-size:13px;font-weight:600;transition:color .2s ease-out;display:inline-flex}.project-back-link:hover{color:#111}.project-detail-header h1{letter-spacing:-.04em;margin:0;font-size:clamp(36px,4vw,48px);font-weight:500;line-height:1.12}.project-detail-title-line{flex-wrap:wrap;align-items:center;gap:12px 18px;display:flex}.project-detail-status{color:var(--muted);white-space:nowrap;padding-left:14px;font-size:12px;position:relative}.project-detail-status .status-dot{top:50%;bottom:auto;right:auto;transform:translateY(-50%)}.project-detail-header>p:last-child{max-width:760px;color:var(--muted);margin:56px 0 0;font-size:19px;line-height:1.65}.project-detail-grid{grid-template-columns:minmax(0,1fr) 210px;align-items:start;gap:88px;margin-top:56px;display:grid}.project-detail-content section+section,.project-detail-content>h2:not(:first-child){margin-top:88px}.project-detail-content h2{letter-spacing:-.025em;margin:0 0 30px;font-size:24px;font-weight:600;line-height:1.3}.project-detail-content p,.project-detail-content li{color:#5d5d59;font-size:17px;line-height:1.8}.project-detail-content p{margin:0 0 1.4em}.project-detail-content .build-cards-intro{margin-bottom:28px}.project-detail-content ul{margin:0 0 1.4em;padding-left:1.2em}.project-detail-content li{margin:.55em 0;padding-left:.2em}.project-detail-content h3{margin:40px 0 18px}.project-detail-content>br{display:none}.project-detail-content>.post-image-frame,.project-detail-content>picture,.project-detail-content>video,.project-detail-content>iframe{width:100%;max-width:100%;height:auto;margin:60px 0 68px;display:block}.project-detail-meta{padding-top:31px;position:sticky;top:48px}.project-detail-meta dl{margin:0}.project-detail-meta dl>div{border-bottom:1px solid var(--line);padding:14px 0}@supports (color:color-mix(in lab,red,red)){.project-detail-meta dl>div{border-bottom:1px solid color-mix(in srgb,var(--line)85%,transparent)}}.project-detail-meta dl>div:first-child{padding-top:0}.project-detail-meta dt,.project-detail-meta>div>p{color:var(--subtle);letter-spacing:.06em;text-transform:uppercase;margin:0 0 5px;font-size:10px;font-weight:500}.project-detail-meta dd{color:#555551;margin:0;font-size:13px;line-height:1.5}.project-detail-meta>div,.project-focus-areas{margin-top:44px}.project-focus-areas h2{color:var(--subtle);letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px;font-size:10px;font-weight:500}.project-focus-areas ul{margin:0;padding:0;list-style:none}.project-focus-areas .project-tags{gap:6px;margin:0}.project-focus-areas .project-tags li+li{margin-top:0}.project-focus-areas .project-tags a{color:inherit;font-size:inherit;line-height:inherit;padding:0;display:inline}.project-focus-areas .project-tags a:hover,.project-focus-areas .project-tags a:focus-visible{color:var(--strong);transform:none}.project-focus-areas li+li{margin-top:2px}.project-focus-areas a{color:#555551;padding:3px 0;font-size:13px;line-height:1.5;transition:color .2s ease-out,transform .2s ease-out;display:block}.project-focus-areas a:hover,.project-focus-areas a:focus-visible{color:var(--strong);transform:translate(3px)}.related-project-link{z-index:0;isolation:isolate;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:12px;margin:14px -10px 0;padding:10px;display:grid;position:relative}.related-project-link:before{content:"";z-index:-1;background:var(--story-index-hover);opacity:0;pointer-events:none;border-radius:8px;transition:opacity .2s ease-out;position:absolute;inset:0}.related-project-link img{aspect-ratio:1;object-fit:cover;border-radius:7px;width:52px;height:52px;display:block}.related-project-copy{min-width:0}.related-project-prompt{color:var(--subtle);margin-bottom:3px;font-size:10px;line-height:1.35;display:block}.related-project-title{color:var(--text);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:13px;font-weight:500;line-height:1.4;transition:color .2s ease-out,transform .2s ease-out;display:-webkit-box;overflow:hidden}.related-link-arrow{color:inherit;vertical-align:.04em;margin-left:.24em;font-size:.82em;font-weight:400;line-height:1;display:inline-block}.related-link-arrow .ui-arrow{vertical-align:0}.related-project-link:hover:before,.related-project-link:focus-visible:before{opacity:1}.related-project-link:hover .related-project-title,.related-project-link:focus-visible .related-project-title{color:var(--strong);transform:translate(3px)}.writing-list{border-top:1px solid var(--line)}.writing-list a{z-index:0;border-bottom:1px solid var(--line);isolation:isolate;border-radius:0;grid-template-columns:minmax(0,1fr) 104px;align-items:center;gap:20px;min-height:82px;padding:15px 0;font-size:16px;display:grid;position:relative}#writing .writing-list a{border-bottom:0;grid-template-columns:minmax(0,1fr);gap:0;min-height:78px;padding-block:10px}#writing .writing-list>a:first-child{padding-top:var(--homepage-first-entry-content-inset);align-items:start;padding-bottom:0}.writing-thumbnail{object-fit:cover;opacity:.9;width:100%;height:100%;transition:opacity .22s ease-out,transform .22s ease-out;display:block;transform:scale(1)}.writing-visual{flex-direction:column;align-items:flex-end;gap:6px;width:104px;display:flex}#writing .writing-visual{grid-area:1/2;place-self:center end;width:64px}#writing .writing-copy{grid-area:1/1}.writing-hero{aspect-ratio:1;background:var(--surface-soft);border-radius:11px;width:100%;display:block;overflow:hidden}.writing-copy{min-width:0}.writing-title{width:fit-content;transition:color .22s ease-out,transform .22s ease-out;display:block;position:relative}#writing .writing-title{font-weight:600}.writing-description{color:var(--muted);-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;margin-top:4px;font-size:13.5px;line-height:1.45;display:-webkit-box;overflow:hidden}#writing .writing-description{-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis}.writing-all-link,.project-all-link{display:none}.writing-list a:before{content:"";z-index:1;background:var(--writing-accent,#8b8a85);transform-origin:top;border-radius:2px;width:2px;transition:transform .2s ease-out;position:absolute;top:10px;bottom:10px;left:0;transform:scaleY(0)}.writing-list a:after{content:"";z-index:-1;background:var(--story-index-hover);opacity:0;pointer-events:none;border-radius:9px;transition:opacity .18s;position:absolute;inset:10px -10px}.writing-row--cloud{--writing-accent:#5f87ba}.writing-row--automation{--writing-accent:#639276}.writing-row--home-lab{--writing-accent:#b88955}.writing-row--ai{--writing-accent:#8274aa}.writing-row--general-tech{--writing-accent:#8b8a85}.writing-list a:hover:after,.writing-list a:focus-visible:after{opacity:1}.writing-list a:hover .writing-title,.writing-list a:focus-visible .writing-title{color:var(--strong);transform:translate(3px)}.writing-list a:hover .writing-thumbnail,.writing-list a:focus-visible .writing-thumbnail{opacity:1;transform:scale(1.02)}.writing-list a:hover:before,.writing-list a:focus-visible:before{transform:scaleY(1)}#writing .writing-list a:before{display:none}#writing .writing-list a:hover>span,#writing .writing-list a:focus-visible>span,#writing .writing-list a:hover .writing-title,#writing .writing-list a:focus-visible .writing-title{color:inherit;transform:none}#writing .writing-list a:hover .writing-thumbnail,#writing .writing-list a:focus-visible .writing-thumbnail{opacity:.9;transform:scale(1)}.dark-theme .writing-row--cloud{--writing-accent:#6f9bd2}.dark-theme .writing-row--automation{--writing-accent:#70a984}.dark-theme .writing-row--home-lab{--writing-accent:#c69962}.dark-theme .writing-row--ai{--writing-accent:#9788c3}.dark-theme .writing-row--general-tech{--writing-accent:#999892}.site-footer{width:min(calc(100% - 44px),var(--column));border-top:1px solid var(--line);min-height:110px;color:var(--subtle);justify-content:space-between;align-items:flex-start;gap:30px;margin:0 auto;padding:28px 0;font-size:12px;display:flex}.site-footer p{margin:0}.site-footer--home{border-top-color:var(--line);align-items:center}@supports (color:color-mix(in lab,red,red)){.site-footer--home{border-top-color:color-mix(in srgb,var(--line)87%,transparent)}}.footer-copyright-mobile{display:none}.social-links{gap:9px;display:flex}.social-links :is(a,button){color:#777772;width:30px;height:30px;font:inherit;opacity:.78;appearance:none;cursor:pointer;background:#f2f2ef;border:1px solid #20201f0a;border-radius:6px;place-items:center;padding:0;transition:color .22s,opacity .22s,transform .22s,background-color .22s,box-shadow .22s;display:grid;box-shadow:0 1px 2px #1819170d,0 3px 10px #18191706}.social-links :is(a,button):hover{color:#30302e;opacity:1;background:#e9e9e5;transform:translateY(-1px);box-shadow:0 2px 4px #18191712,0 5px 14px #1819170a}.social-links .footer-back-to-top{display:none}.social-links svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.article-shell{width:min(100% - 88px,1120px);margin:0 auto;padding:88px 0 150px}.article-grid{grid-template-columns:minmax(0,3fr) minmax(230px,1fr);align-items:start;gap:clamp(56px,7vw,96px);display:grid}.article-main{min-width:0}.article-header{margin-bottom:50px}.article-kicker{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;margin:0 0 16px;font-size:12px;font-weight:600}.article-header h1{letter-spacing:-.04em;max-width:780px;margin:0;font-size:clamp(32px,3.5vw,42px);font-weight:400;line-height:1.08}.article-meta{color:var(--subtle);letter-spacing:.1em;text-transform:uppercase;margin:16px 0 0;font-size:10px;font-weight:400;display:block}.article-meta a{color:inherit;text-transform:none;background:0 0;border-radius:9999px;margin:-3px -8px;padding:3px 8px;text-decoration:none;transition:background-color .18s}.article-meta a:hover{background:#e5e5e5}.article-meta time{text-transform:none}.article-prose{color:#6d6d69;font-size:18px;font-weight:350;line-height:1.62}.article-prose>:first-child{margin-top:0}.article-prose p{margin:0 0 1.28em}.article-prose h2,.article-prose h3{color:var(--text);letter-spacing:-.025em}.article-prose h2{margin:2.11em 0 .58em;font-size:30.5px;font-weight:500;line-height:1.22}.article-prose h3{margin:2em 0 .6em;font-size:19px;font-weight:600;line-height:1.35}.article-prose ul,.article-prose ol{margin:0 0 1.6em;padding-left:1.35em}.article-prose li{margin:.35em 0;padding-left:.25em}.article-prose a{color:var(--text);text-underline-offset:3px;-webkit-text-decoration:underline #b9b9b4;text-decoration:underline #b9b9b4;transition:color .2s,text-decoration-color .2s}.article-prose a:hover{color:#000;text-decoration-color:#555550}.article-prose blockquote{color:#383836;border-left:2px solid #c9c9c5;margin:2.1em 0;padding:.15em 0 .15em 24px;font-size:20px;line-height:1.65}.article-prose blockquote p{margin:0}.article-prose code{color:#363634;background:#f1f1ee;border:1px solid #dededb;border-radius:4px;padding:.15em .35em;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.84em}.article-prose pre{color:#ededeb;-webkit-overflow-scrolling:touch;background:#242423;border-radius:5px;max-width:100%;margin:2em 0;padding:21px 23px;font-size:14px;line-height:1.65;overflow-x:auto}.article-prose pre code{color:inherit;font-size:inherit;background:0 0;border:0;padding:0}.post-image-frame{display:block;overflow:hidden}.article-prose .post-image-frame,.article-prose p:has(>img:only-child){border-radius:0;width:100%;margin:2.4em 0;display:block;overflow:hidden}.post-image-frame>img,.article-prose p:has(>img:only-child)>img{transform-origin:50%;width:100%;height:auto;margin:0;transition:transform .36s ease-out;display:block;transform:scale(1)}@media(hover:hover)and (pointer:fine){.article-prose .post-image-frame:hover>img,.article-prose p:has(>img:only-child):hover>img,.project-detail-content .post-image-frame:hover>img{transform:scale(1.04)}}.article-prose table{border-collapse:collapse;width:100%;margin:2em 0;font-size:15px;line-height:1.55}.article-prose th,.article-prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:12px 14px}.article-prose th{color:var(--text);font-weight:600}.callout{color:#555551;background:#f2f2ef;border:1px solid #ddddda;border-radius:5px;margin:2.1em 0;padding:18px 20px;font-size:16px;line-height:1.65;display:block}.callout strong{color:var(--text);font-weight:600}.article-pagination{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:38px;margin-top:82px;padding-top:24px;display:grid}.article-pagination>div:last-child{text-align:right}.article-pagination-label{color:var(--subtle);letter-spacing:.06em;text-transform:uppercase;margin-bottom:7px;font-size:11px;font-weight:600;display:block}.article-pagination a{color:#4e4e4a;font-size:14px;line-height:1.45;transition:color .2s}.article-pagination a:hover{color:#111}.article-pagination .ui-arrow,.article-mobile-share{display:none}.article-sidebar{color:var(--muted);align-self:start;font-size:14px;position:sticky;top:34px}.author-block .profile-image{width:68px;height:68px;box-shadow:none;border:0;margin-bottom:30px;transition:none}.author-block .profile-image:hover{box-shadow:none;transform:none}.author-block h2{color:var(--text);margin:0 0 8px;font-size:17px;font-weight:600;line-height:1.35}.author-block p{margin:0 0 12px;line-height:1.62}.sidebar-section{border-top:1px solid var(--line);margin-top:42px;padding-top:23px}.sidebar-section h2{color:var(--subtle);letter-spacing:.09em;text-transform:uppercase;margin:0 0 15px;font-size:11px;font-weight:600}@media(min-width:901px){.article-shell{padding-top:72px}.article-header h1{font-size:clamp(28.8px,3.15vw,37.8px)}.article-prose{max-width:705px;font-size:16px}.article-sidebar{margin-top:0;top:18px}.author-block .profile-image{width:58.3px;height:58.3px;margin-bottom:18px}.author-copy{max-width:256px}.author-block h2{margin-bottom:14px;font-size:13.5px}.author-block p{max-width:312px;margin-bottom:0}.sidebar-section{border-top:0;margin-top:40px;padding-top:0}.sidebar-section h2{margin-bottom:10px}#related-title{font-weight:500}.related-post-title{font-weight:600}.sidebar-section--topics{margin-top:40px}.article-sidebar .related-posts li{padding:8px 0}.article-sidebar .related-posts a{grid-template-columns:47px minmax(0,1fr);gap:14px}.article-sidebar .related-post-thumbnail{border-radius:var(--square-image-radius);width:47px;height:47px}}@media(min-width:1208px){.article-grid{grid-template-columns:minmax(0,768px) minmax(0,312px);gap:40px}}@media(min-width:1400px){.article-shell{margin-left:calc(50% - 528px);margin-right:auto}.article-grid{grid-template-columns:minmax(0,792px) minmax(0,312px);gap:16px}.article-prose{max-width:729px}}.related-posts,.sidebar-tags{margin:0;padding:0;list-style:none}.related-posts li{z-index:0;isolation:isolate;padding:8px 0;position:relative}.related-posts li:before{content:"";z-index:-1;background:var(--story-index-hover);opacity:0;pointer-events:none;border-radius:7px;transition:opacity .2s ease-out;position:absolute;inset:3px -8px}.related-posts a{color:#3f3f3c;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:12px;font-size:13px;line-height:1.45;display:grid}.related-post-thumbnail{aspect-ratio:1;border-radius:var(--square-image-radius);object-fit:cover;width:52px;height:52px;display:block}.related-post-title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;min-width:0;transition:color .2s ease-out,font-weight .2s ease-out,transform .2s ease-out;display:-webkit-box;overflow:hidden}.related-posts li:hover:before,.related-posts li:focus-within:before{opacity:1}.related-posts li:hover .related-post-title,.related-posts li:focus-within .related-post-title{color:var(--strong);font-weight:500;transform:translate(4px)}.sidebar-tags{flex-wrap:wrap;gap:6px;display:flex}.sidebar-tags li,.writing-index-meta li{color:var(--subtle);border:1px solid #ddddda;border-radius:5px;font-size:11px;line-height:1.45}.writing-index-meta li{padding:2px 7px}.sidebar-tags li{transition:border-color .2s ease-out,color .2s ease-out,background-color .2s ease-out,transform .2s ease-out}.sidebar-tags a{border-radius:inherit;padding:2px 7px;display:block}.sidebar-tags li:hover,.sidebar-tags li:focus-within{background:var(--surface-raised);color:#666662;border-color:#cececa;transform:translateY(-1px)}.sidebar-tags a:focus-visible{outline-offset:2px}.site-footer--wide{width:min(100% - 88px,1120px)}.topic-archive-main{width:min(100% - 88px,1120px);margin:0 auto;padding:106px 0 160px}.topic-archive-header{max-width:880px;margin-bottom:104px}.topic-archive-kicker{color:var(--subtle);letter-spacing:.11em;text-transform:uppercase;margin:0 0 20px;font-size:11px;font-weight:600}.topic-archive-header h1{letter-spacing:-.065em;margin:0;font-size:clamp(52px,7vw,88px);font-weight:500;line-height:.96}.topic-archive-count{color:var(--subtle);letter-spacing:.05em;white-space:nowrap;text-transform:uppercase;margin:30px 0 0;font-size:12px;font-weight:600}.topic-story-index{border-top:1px solid var(--line)}.topic-story-row{z-index:0;border-bottom:1px solid var(--line);isolation:isolate;grid-template-columns:140px minmax(0,1fr) 154px;align-items:center;gap:38px;min-height:168px;padding:30px 12px;display:grid;position:relative}.topic-story-row:before{content:"";z-index:-1;background:var(--story-index-hover);opacity:0;pointer-events:none;border-radius:10px;transition:opacity .22s ease-out;position:absolute;inset:10px -12px}.topic-story-row:hover:before,.topic-story-row:focus-within:before{opacity:1}.topic-story-row time{color:var(--subtle);letter-spacing:.045em;text-transform:uppercase;align-self:start;padding-top:10px;font-size:12px;font-weight:600}.topic-story-copy{min-width:0}.topic-story-copy h2{letter-spacing:-.035em;margin:0;font-size:clamp(24px,2.5vw,32px);font-weight:500;line-height:1.18}.topic-story-copy h2 a{transition:color .22s ease-out,transform .22s ease-out;display:inline-block}.topic-story-copy h2 a:after{content:"";z-index:2;position:absolute;inset:0}.topic-story-copy p{max-width:650px;color:var(--muted);margin:12px 0 0;font-size:15px;line-height:1.65}.topic-story-direction{grid-template-columns:112px 20px;justify-self:end;align-items:center;gap:18px;display:grid}.topic-story-direction--arrow-only{grid-template-columns:20px}.topic-story-direction img{object-fit:cover;opacity:.18;filter:grayscale(.75);border-radius:7px;width:112px;height:76px;transition:opacity .24s ease-out,filter .24s ease-out,transform .24s ease-out;display:block;transform:translate(8px)}.topic-story-direction span{color:var(--subtle);font-size:20px;transition:color .22s ease-out,transform .22s ease-out}.topic-story-row:hover .topic-story-copy h2 a,.topic-story-row:focus-within .topic-story-copy h2 a{color:var(--strong);transform:translate(4px)}.topic-story-row:hover .topic-story-direction img,.topic-story-row:focus-within .topic-story-direction img{opacity:.92;filter:grayscale(0);transform:translate(0)}.topic-story-row:hover .topic-story-direction span,.topic-story-row:focus-within .topic-story-direction span{color:var(--strong);transform:translate(4px)}.topic-archive-empty{border-bottom:1px solid var(--line);padding:72px 0}.topic-archive-empty p{color:var(--muted);margin:0 0 18px;font-size:18px}.topic-archive-empty a{color:var(--text);font-size:14px;font-weight:600}.topic-archive-empty a span{margin-left:4px;transition:transform .2s ease-out;display:inline-block}.topic-archive-empty a:hover span,.topic-archive-empty a:focus-visible span{transform:translate(3px)}.writing-index-main{width:min(calc(100% - 44px),var(--column));margin:0 auto;padding:88px 0 150px}.writing-index-header{margin-bottom:72px}.writing-index-header h1{letter-spacing:-.04em;margin:0;font-size:38px;font-weight:500;line-height:1.15}.writing-index-header>p:last-child{max-width:620px;color:var(--muted);margin:17px 0 0;font-size:18px;line-height:1.65}.writing-index-list{gap:68px;display:grid}.writing-year-heading{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;margin-bottom:18px;display:grid}.writing-year-heading h2{color:var(--text);letter-spacing:-.02em;margin:0;font-size:17px;font-weight:600;line-height:1}.writing-year-heading>span{background:var(--line);height:1px}@supports (color:color-mix(in lab,red,red)){.writing-year-heading>span{background:color-mix(in srgb,var(--line)82%,transparent)}}.writing-year-timeline{margin:0;padding:0;list-style:none}.writing-year-timeline li{position:relative}.writing-year-timeline li:before{content:"";background:var(--line);width:1px;position:absolute;top:0;bottom:0;left:5px}@supports (color:color-mix(in lab,red,red)){.writing-year-timeline li:before{background:color-mix(in srgb,var(--line)88%,transparent)}}.writing-year-timeline li:first-child:before{top:50%}.writing-year-timeline li:last-child:before{bottom:50%}.writing-year-timeline li:only-child:before{display:none}.writing-timeline-node{z-index:2;border:2px solid var(--background);background:var(--border-strong);border-radius:50%;width:9px;height:9px;transition:background-color .18s;position:absolute;top:50%;left:1px;transform:translateY(-50%)}.writing-index-row{border-bottom:1px solid var(--line);min-height:126px;margin-left:24px;padding:16px 12px 16px 16px}@supports (color:color-mix(in lab,red,red)){.writing-index-row{border-bottom:1px solid color-mix(in srgb,var(--line)52%,transparent)}}.writing-index-row{border-radius:var(--square-image-radius);grid-template-columns:minmax(0,1fr) 94px;align-items:center;gap:24px;transition:background-color .18s;display:grid}.writing-year-timeline li:last-child .writing-index-row{border-bottom-color:#0000}.writing-index-row:hover,.writing-index-row:focus-visible{background:var(--nav-surface)}.js .story-scroll-reveal{opacity:0;transition:background-color .18s,opacity .56s cubic-bezier(.22,1,.36,1),transform .56s cubic-bezier(.22,1,.36,1);transform:translateY(12px)}.js .story-scroll-reveal.is-visible{opacity:1;transform:translateY(0)}.writing-year-timeline li:has(.writing-index-row:hover) .writing-timeline-node,.writing-year-timeline li:has(.writing-index-row:focus-visible) .writing-timeline-node{background:var(--muted)}.writing-index-thumbnail{object-fit:cover;width:100%;height:100%;transition:transform .33s;display:block;transform:scale(1)}.writing-index-copy{min-width:0;display:block}.writing-index-thumbnail-frame{aspect-ratio:1;border-radius:var(--square-image-radius);background:var(--surface-soft);width:94px;height:94px;display:block;overflow:hidden}.writing-index-row:hover .writing-index-thumbnail,.writing-index-row:focus-visible .writing-index-thumbnail{transform:scale(1.06)}.writing-index-meta{color:var(--subtle);letter-spacing:.05em;white-space:nowrap;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:8px;font-size:10px;font-weight:500;display:flex}.writing-index-title{color:var(--text);letter-spacing:-.02em;font-size:18.5px;font-weight:600;line-height:1.35;transition:color .18s;display:block}.writing-index-row:hover .writing-index-title,.writing-index-row:focus-visible .writing-index-title{color:var(--strong)}.writing-index-description{color:var(--muted);text-overflow:ellipsis;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-top:6px;font-size:14px;line-height:1.5;display:-webkit-box;overflow:hidden}html:not(.dark-theme) .writing-index-description{color:var(--muted)}@supports (color:color-mix(in lab,red,red)){html:not(.dark-theme) .writing-index-description{color:color-mix(in srgb,var(--muted)92%,var(--background))}}.uses-main{width:min(calc(100% - 44px),var(--column));margin:0 auto;padding:88px 0 150px}.uses-header{margin-bottom:56px}.uses-header h1{letter-spacing:-.04em;margin:0;font-size:38px;font-weight:500;line-height:1.15}.uses-intro{max-width:550px;color:var(--muted);margin:17px 0 0;font-size:18px;line-height:1.65}.uses-summary{color:var(--subtle);margin:22px 0 0;font-size:12px;line-height:1.5}.uses-sections{gap:64px;display:grid}.uses-section-header{margin-bottom:10px}.uses-section-header h2{letter-spacing:-.016em;margin:0;font-size:18px;font-weight:650;line-height:1.35}.uses-section-header p{color:var(--subtle);margin:4px 0 0;font-size:12px;line-height:1.5}.uses-section ul{border-top:1px solid var(--line);margin:0;padding:0}@supports (color:color-mix(in lab,red,red)){.uses-section ul{border-top:1px solid color-mix(in srgb,var(--line)88%,transparent)}}.uses-section ul{list-style:none}.uses-section li{border-bottom:1px solid var(--line);margin:0 -10px}@supports (color:color-mix(in lab,red,red)){.uses-section li{border-bottom:1px solid color-mix(in srgb,var(--line)88%,transparent)}}.uses-section li{border-radius:9px;transition:background-color .2s ease-out}.uses-item-inner{grid-template-columns:160px minmax(0,1fr);align-items:start;gap:24px;padding:10px;display:grid}.uses-section li:hover,.uses-section li:focus-within{background:var(--uses-row-hover)}.uses-item-heading{align-items:flex-start;gap:8px;min-width:0;display:flex}.uses-item-heading>div{min-width:0}.uses-icon{fill:none;stroke:currentColor;stroke-width:1.65px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px;color:var(--subtle);opacity:.62;flex:0 0 21px;margin-top:1px;transition:color .2s ease-out,opacity .2s ease-out}.uses-section li:hover .uses-icon,.uses-section li:focus-within .uses-icon{color:var(--muted);opacity:.92}.uses-item-name{color:var(--text);font-size:15px;font-weight:600;line-height:1.5;transition:color .2s ease-out,transform .2s ease-out;display:block}.uses-section li:hover .uses-item-name,.uses-section li:focus-within .uses-item-name{color:var(--strong);transform:translate(2px)}.uses-item-metadata{color:var(--subtle);margin-top:2px;font-size:11px;line-height:1.4;display:block}.uses-item-copy{min-width:0}.uses-item-description{color:var(--muted);font-size:15px;line-height:1.58;display:block}.uses-item-specifications{color:var(--subtle);margin-top:8px;font-size:11px;line-height:1.5;display:block}.uses-item--featured .uses-item-inner{padding-top:16px;padding-bottom:17px}.uses-item--featured .uses-item-name{font-size:17px;line-height:1.4}.uses-item--featured .uses-item-description{color:#5f5f5a;font-size:16px;line-height:1.62}.dark-theme .uses-item--featured .uses-item-description{color:var(--muted)}.uses-updated{color:var(--subtle);margin:72px 0 0;font-size:12px}.about-main{width:min(100% - 44px,630px);margin:0 auto;padding:88px 0 150px}.about-header{margin-bottom:104px}.about-portrait-frame{aspect-ratio:4/5;border-radius:7px;width:425px;max-width:100%;margin:0 auto 14px;display:block;overflow:hidden}.about-portrait{object-fit:cover;object-position:center;transform-origin:50%;width:100%;height:100%;transition:transform .36s ease-out;display:block;transform:scale(1)}@media(hover:hover)and (pointer:fine){.about-portrait-frame:hover>.about-portrait{transform:scale(1.04)}}.about-header h1{letter-spacing:-.04em;max-width:550px;margin:0;font-size:38px;font-weight:500;line-height:1.17}.about-header>div{margin-top:30px}.about-header>div p,.about-prose p,.about-connect>p{color:#656560;font-size:17px;line-height:1.72}.about-header>div p{margin:0 0 1.15em}.about-header>div p:last-child{margin-bottom:0}.about-section+.about-section{margin-top:98px}.about-section h2{letter-spacing:-.016em;margin:0 0 20px;font-size:18px;font-weight:650;line-height:1.35}.about-interests{border-top:1px solid var(--line);margin:0}@supports (color:color-mix(in lab,red,red)){.about-interests{border-top:1px solid color-mix(in srgb,var(--line)88%,transparent)}}.about-interests>div{border-bottom:1px solid var(--line);padding:16px 0 17px}@supports (color:color-mix(in lab,red,red)){.about-interests>div{border-bottom:1px solid color-mix(in srgb,var(--line)88%,transparent)}}.about-interests>div{grid-template-columns:145px minmax(0,1fr);align-items:baseline;gap:25px;display:grid}.about-interests dt{color:var(--text);font-size:15px;font-weight:600;line-height:1.5}.about-interests dd{color:var(--muted);margin:0;font-size:15px;line-height:1.58}.about-beliefs{border-top:1px solid var(--line);margin:0;padding:0}@supports (color:color-mix(in lab,red,red)){.about-beliefs{border-top:1px solid color-mix(in srgb,var(--line)88%,transparent)}}.about-beliefs{list-style:none}.about-beliefs li{border-bottom:1px solid var(--line);padding:17px 0 18px}@supports (color:color-mix(in lab,red,red)){.about-beliefs li{border-bottom:1px solid color-mix(in srgb,var(--line)88%,transparent)}}.about-beliefs li{color:#4f4f4b;font-size:17px;line-height:1.55}.about-prose p{margin:0 0 1.15em}.about-prose p:last-child{margin-bottom:0}.about-connect>p{max-width:540px;margin:0}.about-connect nav{flex-wrap:wrap;gap:22px;margin-top:24px;display:flex}.about-connect a{color:#4f4f4b;font-size:14px;font-weight:600;transition:color .2s ease-out;position:relative}.about-connect a:after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .22s ease-out;position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}.about-connect a:hover{color:var(--strong)}.about-connect a:hover:after{transform-origin:0;transform:scaleX(1)}.dark-theme .profile-image{border-color:#fff;box-shadow:0 2px 6px #00000029,0 14px 34px #00000047,0 30px 68px #0003}.dark-theme .profile-image:hover{box-shadow:0 3px 8px #0000002e,0 18px 40px #00000052,0 36px 76px #0000003b}.dark-theme .subscribe-form input{background:var(--field);color:var(--text)}.dark-theme .subscribe-form input::placeholder{color:#83837e}.dark-theme .subscribe-form input:focus-visible{outline-color:var(--border-strong);background:#292a27;box-shadow:0 0 0 3px #edede914}.dark-theme .subscribe-form button{background:var(--button);color:var(--button-text)}.dark-theme .subscribe-form button:hover{background:var(--button-hover);box-shadow:0 4px 12px #00000047}.dark-theme .subscribe-form button:focus-visible{outline-color:#d7d7d1}.dark-theme .project-list article:hover{background:var(--surface-hover)}.dark-theme .project-list article:hover .status-dot{filter:brightness(1.18)saturate(1.16);box-shadow:0 0 10px #5c85bd5c,0 0 3px #5c85bd4d}.dark-theme .project-list article:hover .status-complete .status-dot{box-shadow:0 0 10px #62946c5c,0 0 3px #62946c4d}.dark-theme .project-list article:hover .status-in-progress .status-dot{box-shadow:0 0 10px #c3844a61,0 0 3px #c3844a52}.dark-theme .project-list--featured article:hover .status-dot{box-shadow:0 0 12px #5c85bd6b,0 0 4px #5c85bd57}.dark-theme .project-list--featured article:hover .status-complete .status-dot{box-shadow:0 0 12px #62946c6b,0 0 4px #62946c57}.dark-theme .project-list--featured article:hover .status-in-progress .status-dot{box-shadow:0 0 12px #c3844a70,0 0 4px #c3844a5c}.dark-theme .project-list article:hover h2,.dark-theme .folder-button:hover .folder-label,.dark-theme .folder-button[aria-pressed=true] .folder-label,.dark-theme .project-back-link:hover,.dark-theme .writing-list a:hover>span,.dark-theme .social-links :is(a,button):hover,.dark-theme .article-prose a:hover,.dark-theme .article-pagination a:hover,.dark-theme .related-posts a:hover{color:var(--strong)}.dark-theme .project-tags li,.dark-theme .sidebar-tags li,.dark-theme .writing-index-meta li{border-color:var(--border);color:var(--subtle)}.dark-theme .project-tags .project-type{background:var(--surface-soft);color:var(--muted)}.dark-theme .project-list article:hover .project-tags li,.dark-theme .sidebar-tags li:hover,.dark-theme .sidebar-tags li:focus-within{border-color:var(--border-strong);background:var(--surface-raised);color:var(--muted)}.dark-theme .project-list article:hover .project-meta,.dark-theme .project-updated{color:var(--subtle)}.dark-theme .folder-shape{filter:brightness(.62)saturate(.58);border-color:#edede91f;box-shadow:0 7px 14px #00000042,0 2px 4px #0003}.dark-theme .folder-shape:before{filter:brightness(.9);border-color:#edede91f}.dark-theme .folder-shape:after{background:#ffffff24}.dark-theme .folder-button:hover .folder-shape{filter:brightness(.7)saturate(.62);box-shadow:0 10px 18px #00000057,0 3px 6px #0000003d}.dark-theme .folder-button[aria-pressed=true] .folder-shape{box-shadow:0 8px 16px #0000004d,0 0 0 2px var(--background),0 0 0 3px #edede93d;border-color:#edede947}.dark-theme .folder-label,.dark-theme .project-detail-content p,.dark-theme .project-detail-content li,.dark-theme .project-detail-meta dd,.dark-theme .project-focus-areas a,.dark-theme .article-prose,.dark-theme .callout,.dark-theme .article-pagination a,.dark-theme .related-posts a,.dark-theme .about-header>div p,.dark-theme .about-prose p,.dark-theme .about-connect>p,.dark-theme .about-beliefs li,.dark-theme .about-connect a{color:var(--muted)}.dark-theme .social-links :is(a,button){color:var(--subtle);background:#242522;border-color:#ffffff0a;box-shadow:0 1px 2px #00000038,0 3px 10px #0000001a}.dark-theme .social-links :is(a,button):hover{background:#2b2c28;box-shadow:0 2px 4px #00000047,0 5px 14px #00000024}.dark-theme .article-prose a{color:var(--text);text-decoration-color:#666761}.dark-theme .article-prose a:hover{text-decoration-color:#b8b8b1}.dark-theme .article-prose blockquote{border-left-color:var(--border-strong);color:#d2d2cc}.dark-theme .article-prose code{border-color:var(--border);background:var(--surface-soft);color:#d7d7d1}.dark-theme .article-prose pre{background:var(--code-background)!important;color:var(--code-text)!important}.dark-theme .article-prose pre code{color:inherit;background:0 0;border-color:#0000}.dark-theme .callout{border-color:var(--border);background:var(--surface-soft)}.dark-theme .author-block .profile-image{box-shadow:none;border:0}.js .reveal-section{opacity:0;will-change:opacity,transform;transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transform:translateY(16px)}.js .reveal-section>*{opacity:0;transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transform:translateY(16px)}.js .reveal-section>:nth-child(2){transition-delay:80ms}.js .reveal-section>:nth-child(3){transition-delay:.16s}.js .reveal-section>:nth-child(4){transition-delay:.24s}.js .reveal-section.is-visible,.js .reveal-section.is-visible>*{opacity:1;transform:translateY(0)}.js .reveal-section.is-visible{will-change:auto}@media(min-width:901px){:root{--column:570px}#top{--homepage-first-entry-content-inset:21.0781px;width:min(100% - 44px,540px);padding-top:76px;padding-bottom:99px}#top .headshot{width:96px;height:96px;margin-bottom:22px}#top .introduction h1{max-width:540px;margin-bottom:12px;font-size:31px;line-height:1.22}#top .introduction p{max-width:525px;font-size:15.5px;line-height:1.58}#top .newsletter{max-width:520px;margin-top:44px}#top .newsletter h2{font-size:15.5px}#top .newsletter>p{max-width:520px;font-size:15px;line-height:1.55}#top .subscribe-form{grid-template-columns:1fr 225px;gap:8px;margin-top:18px}#top .subscribe-form input,#top .subscribe-form button{height:44px;padding-inline:15px;font-size:14px}#top .inline-link{margin-top:14px;font-size:14px}#top .content-section{margin-top:76px}#top #writing{margin-top:40px}#top .section-heading{margin-bottom:4px}#top .section-heading .section-label{margin-bottom:17px;font-size:11px;font-weight:500}#top #writing-title{font-weight:600}#top .section-heading a{font-size:11.5px;font-weight:500}#top .project-list--featured article{grid-template-columns:minmax(0,1fr) 104px;gap:20px;min-height:104px;margin-inline:-8px;padding:15px 8px 14px}#top .project-list--featured h2{font-size:16px}#top .project-list--featured .project-title-line{margin-bottom:5px}#top .project-list--featured .project-content>p{-webkit-line-clamp:2;line-clamp:2;max-width:375px;font-size:13.5px;line-height:1.48}#top .project-list--featured .project-tags{gap:5px;margin-top:10px}#top .project-list--featured .project-tags li{padding:1px 6px;font-size:9.5px;line-height:1.4}#top .project-list--featured .project-visual{align-self:center;gap:6px}#top .project-list--featured .project-meta{font-size:10.5px}}@media(max-width:900px){.article-shell{width:min(100% - 56px,720px)}.article-grid{grid-template-columns:1fr;gap:86px}.article-sidebar{border-top:1px solid var(--line);padding-top:34px;position:static}.author-block{max-width:560px}.about-portrait-frame{width:340px}.site-footer--wide{width:min(100% - 56px,720px)}.topic-archive-main{width:min(100% - 56px,820px);padding-top:88px}.topic-archive-header{margin-bottom:82px}.topic-story-row{grid-template-columns:104px minmax(0,1fr) 120px;gap:24px}.topic-story-direction{grid-template-columns:84px 18px;gap:14px}.topic-story-direction img{width:84px;height:64px}.work-main{width:min(100% - 56px,760px)}.work-project-section{max-width:100%}.project-detail-main{width:min(100% - 56px,720px)}.project-detail-grid{grid-template-columns:1fr;gap:64px}.project-detail-meta{border-top:1px solid var(--line);padding-top:28px;position:static;top:auto}@supports (color:color-mix(in lab,red,red)){.project-detail-meta{border-top:1px solid color-mix(in srgb,var(--line)85%,transparent)}}.writing-index-row{grid-template-columns:minmax(0,1fr) 84px;gap:20px}.writing-index-thumbnail-frame{width:84px;height:84px}}@media(max-width:620px){#top{--homepage-first-entry-content-inset:14px}.site-header{min-height:68px;padding:14px 18px}.monogram{width:57px;height:38px}.monogram img{top:calc(50% + 4px)}.site-header nav{gap:8px;font-size:13px}.theme-toggle{margin-left:-6px;margin-right:-10px}main{width:min(calc(100% - 40px),var(--column));padding:64px 0 110px}#top{padding-bottom:63px}.headshot{width:92px;height:92px;margin-bottom:23px}.introduction h1{font-size:24px}.introduction p{font-size:14px;line-height:1.6}#top .introduction p{max-width:320px}.newsletter{margin-top:38px}.content-section{margin-top:86px}#top #projects{margin-top:52px}#top #writing{margin-top:40px}.newsletter>p{font-size:14.5px;line-height:1.52}.subscribe-form{grid-template-columns:1fr}.subscribe-form button{width:100%}.section-label{margin-bottom:27px;font-size:12px}.newsletter h2{font-size:16px}.project-list h2{font-size:17px}.project-list p{font-size:14px;line-height:1.52}.project-list article{grid-template-columns:1fr;gap:12px}.project-list--featured article{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) 86px;align-items:center;gap:8px 20px;min-height:180px}.project-list--featured .project-content{grid-area:1/1}.project-list--featured .project-title-line{flex-wrap:nowrap;align-items:center;gap:8px}.project-list--featured .project-title-line h2{min-width:0}.project-list--featured .project-visual{display:contents}.project-list--featured .project-hero{aspect-ratio:1;grid-area:1/2;place-self:center end;width:86px}.project-list--featured .project-content>p{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-list--featured .project-meta{text-align:left;grid-area:2/1}.project-meta{grid-row:1}.writing-list a{grid-template-columns:1fr;align-items:start;gap:5px;font-size:15px}.writing-list time{grid-row:1}#projects .project-list--featured article{grid-template-rows:auto auto;grid-template-columns:78px minmax(0,1fr);align-items:center;gap:5px 14px;min-height:0;padding:14px 8px}#projects .project-list--featured article:not(.has-project-image){grid-template-columns:1fr}#projects .project-list--featured .project-content{grid-area:1/2}#projects .project-list--featured article:not(.has-project-image) .project-content{grid-column:1}#projects .project-list--featured h2{font-size:15.5px;line-height:1.35}#projects .project-list--featured .project-content>p{-webkit-line-clamp:2;line-clamp:2;font-size:13px;line-height:1.45}#projects .project-list--featured .project-tags{gap:5px;margin-top:8px}#projects .project-list--featured .project-hero{aspect-ratio:1;border-radius:var(--square-image-radius);grid-area:1/1;place-self:center start;width:78px}#projects .project-list--featured .project-meta{text-align:left;grid-area:2/2;font-size:10.5px;display:none}#projects .project-list--featured article:not(.has-project-image)>.project-meta{text-align:left;grid-area:2/1;display:block}#projects .status-text{display:none}.work-project-list.project-list--featured article{grid-template-rows:auto;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:5px 14px;min-height:0;padding:12px 8px;position:relative}.work-project-list.project-list--featured .project-content{grid-area:1/2}.work-project-list.project-list--featured h2{font-size:15.5px;line-height:1.35}.work-project-list.project-list--featured .project-title-line{flex-wrap:wrap;gap:6px 10px}.work-project-list.project-list--featured h2 a:after{content:"";z-index:2;position:absolute;inset:0}.work-project-list .project-status{width:auto;height:auto;color:var(--subtle);flex:none;padding-left:12px;font-size:10px;line-height:1.3}.work-project-list .status-dot{inset:50% auto auto 0;transform:translateY(-50%)}.work-project-list .status-text{opacity:1;display:block;position:static;transform:none}.work-project-list article:hover .status-dot{transform:translateY(-50%)scale(1.08)}.work-project-list article:hover .status-text{transform:none}.work-project-list.project-list--featured .project-content>p{-webkit-line-clamp:2;line-clamp:2;font-size:13px;line-height:1.45}.work-project-list.project-list--featured .project-tags{display:flex}.work-project-list.project-list--featured .project-hero{aspect-ratio:1;border-radius:var(--square-image-radius);grid-area:1/1;place-self:center start;width:72px}#writing .writing-heading-link,#projects .project-heading-link{display:none}#writing .writing-list a{grid-template-rows:auto;grid-template-columns:minmax(0,1fr);align-items:center;column-gap:16px;min-height:64px;padding:7px 0;font-size:15px}#writing .writing-visual{grid-area:1/2;justify-self:end;width:50px;display:flex}#writing .writing-hero{grid-area:1/2;place-self:center end;width:100%}#writing .writing-copy{grid-area:1/1;display:block}#writing .writing-title{width:auto;font-size:15.5px;font-weight:600;line-height:1.35}#writing .writing-description{-webkit-line-clamp:2;line-clamp:2;margin-top:5px;font-size:13px;line-height:1.42}#writing .writing-list time{grid-area:2/2;font-size:10.5px}#writing .writing-all-link,#projects .project-all-link{color:var(--muted);margin-top:26px;font-size:13px;font-weight:600;transition:color .22s;display:inline-block;position:relative}#projects .project-all-link{margin-top:10px}#writing .writing-all-link:after,#projects .project-all-link:after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .24s;position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}#writing .writing-all-link span,#projects .project-all-link span{transition:transform .16s;display:inline-block}#writing .writing-all-link:hover,#projects .project-all-link:hover{color:var(--strong)}#writing .writing-all-link:hover:after,#projects .project-all-link:hover:after{transform-origin:0;transform:scaleX(1)}#writing .writing-all-link:hover span,#projects .project-all-link:hover span{transform:translate(3px)}.site-footer{text-align:center;flex-direction:column-reverse;justify-content:center;align-items:center;gap:22px;width:calc(100% - 40px);min-height:130px}.site-footer .social-links{flex-wrap:wrap;justify-content:center;gap:5px}.site-footer .social-links :is(a,button){border-color:#20201f12;border-radius:6px;width:32px;height:32px;position:relative;box-shadow:0 1px 1px #18191705}.site-footer .social-links :is(a,button):after{content:"";position:absolute;inset:-6px}.site-footer .social-links :is(a,button):hover{box-shadow:0 1px 2px #18191709}.site-footer .social-links svg{width:16px;height:16px}.site-footer .social-links .footer-back-to-top{display:grid}.site-footer .social-links .footer-email-link{display:none}.dark-theme .site-footer .social-links :is(a,button){border-color:#ffffff12;box-shadow:0 1px 1px #00000014}.dark-theme .site-footer .social-links :is(a,button):hover{box-shadow:0 1px 2px #0000001c}.footer-copyright-default{display:none}.footer-copyright-mobile{display:inline}.article-shell,.writing-index-main{width:calc(100% - 40px);padding:64px 0 110px}.article-grid{gap:44px}.article-header{margin-bottom:46px}.article-header h1{font-size:32px;font-weight:500;line-height:1.12}.article-meta{margin-top:14px}.article-prose{font-size:16px;line-height:1.6}.article-prose h2{margin-top:2.13em;margin-bottom:.58em;font-size:27.5px}.article-prose h3{font-size:19px}.article-prose blockquote{padding-left:18px;font-size:16.5px}.article-prose pre{margin-left:-4px;margin-right:-4px;padding:18px;font-size:13px}.article-prose table{font-size:13px}.article-prose th,.article-prose td{padding:10px 8px}.article-mobile-share{border-top:1px solid var(--line);margin-top:54px;padding-top:30px;display:block}.story-share-actions{align-items:center;gap:8px;display:flex}.story-share-actions a,.story-share-actions button{border:1px solid var(--border);background:var(--surface-soft);width:38px;height:38px;color:var(--muted);cursor:pointer;border-radius:6px;place-items:center;padding:0;transition:border-color .18s ease-out,background-color .18s ease-out,color .18s ease-out,transform .18s ease-out;display:grid}.story-share-actions button{width:auto;font:inherit;align-items:center;gap:8px;padding:0 12px 0 11px;font-size:13px;font-weight:600;display:inline-flex}.story-share-actions a:hover,.story-share-actions a:focus-visible,.story-share-actions button:hover,.story-share-actions button:focus-visible,.story-share-actions button[data-copy-state=copied]{border-color:var(--border-strong);background:var(--surface-raised);color:var(--strong)}.story-share-actions a:hover,.story-share-actions button:hover{transform:translateY(-1px)}.story-share-actions svg{fill:none;stroke:currentColor;stroke-width:1.65px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.story-share-actions .copy-link-icon--success,.story-share-actions button[data-copy-state=copied] .copy-link-icon--copy{display:none}.story-share-actions button[data-copy-state=copied] .copy-link-icon--success{display:block}.article-pagination{border-top:0;grid-template-columns:minmax(0,1fr);gap:0;margin-top:30px;padding-top:22px;display:grid}.article-pagination>div:first-child{display:none}.article-pagination--mobile-previous>div:first-child{display:block}.article-pagination--mobile-previous>div:last-child,.article-pagination--mobile-empty{display:none}.article-pagination>div:last-child{text-align:left}.article-pagination>div{position:relative}.article-pagination-label{color:var(--subtle);letter-spacing:.09em;text-transform:uppercase;margin:0 0 9px;font-size:10.5px;font-weight:600}.article-pagination a{color:var(--text);grid-template-columns:minmax(0,1fr) 17px;align-items:center;gap:12px;font-size:16px;font-weight:500;line-height:1.4;transition:color .2s ease-out;display:grid}.article-pagination a:after{content:"";position:absolute;inset:0}.article-pagination--mobile-previous a{grid-template-columns:17px minmax(0,1fr)}.article-pagination .ui-arrow{width:17px;height:17px;color:var(--subtle);transition:color .2s ease-out,transform .2s ease-out;display:inline-block}.article-pagination a:hover,.article-pagination a:focus-visible{color:var(--strong)}.article-pagination a:hover .ui-arrow,.article-pagination a:focus-visible .ui-arrow{color:var(--strong);transform:translate(3px)}.article-pagination--mobile-previous a:hover .ui-arrow,.article-pagination--mobile-previous a:focus-visible .ui-arrow{transform:translate(-3px)}.article-sidebar{border-top:0;padding-top:0;display:none}.article-shell+.site-footer{border-top:0}.article-sidebar .sidebar-section{display:none}.author-block .profile-image{border-radius:var(--square-image-radius);width:60px;height:60px;margin:0}.author-block{grid-template-columns:60px minmax(0,1fr);align-items:start;gap:10px;display:grid}.article-sidebar .related-posts a{grid-template-columns:58px minmax(0,1fr);gap:10px}.article-sidebar .related-post-thumbnail{width:58px;height:58px}.article-sidebar .related-post-title-end{white-space:nowrap}.author-copy{min-width:0}.author-block h2{margin-bottom:0;font-size:15.5px;line-height:1.35}.author-block p{display:none}.site-footer--wide{width:calc(100% - 40px)}.topic-archive-main{width:calc(100% - 40px);padding:64px 0 110px}.topic-archive-header{margin-bottom:62px}.topic-archive-kicker{margin-bottom:15px}.topic-archive-header h1{font-size:clamp(43px,14vw,58px);line-height:1}.topic-archive-count{margin-top:23px}.topic-story-row{grid-template-columns:minmax(0,1fr);gap:9px;min-height:0;padding:28px 36px 29px 0;display:grid}.topic-story-row:before{inset:8px -10px}.topic-story-row time{padding-top:0;font-size:10.5px}.topic-story-copy h2{font-size:22px;line-height:1.22}.topic-story-copy p{margin-top:9px;font-size:14px;line-height:1.56}.topic-story-direction{display:block;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.topic-story-direction img{display:none}.topic-story-direction span{font-size:18px;display:block}.topic-archive-empty{padding:50px 0}.topic-archive-empty p{font-size:16px}.writing-index-header{margin-bottom:56px}.writing-index-header h1{font-size:32px}.writing-index-header>p:last-child{font-size:15.5px;line-height:1.59}.writing-index-list{gap:52px}.writing-year-heading{gap:12px;margin-bottom:0}.writing-year-heading h2{font-size:16px}.writing-index-row{grid-template-columns:minmax(0,1fr) 64px;gap:14px;min-height:98px;margin-left:18px;padding:12px 8px 12px 12px}.writing-index-thumbnail-frame{width:64px;height:64px}.writing-index-meta{gap:6px;margin-bottom:7px}.writing-index-title{font-size:16px;line-height:1.32}.writing-index-description{-webkit-line-clamp:2;line-clamp:2;margin-top:5px;font-size:12.5px;line-height:1.48}.uses-main{width:calc(100% - 40px);padding:64px 0 110px}.uses-header{margin-bottom:38px}.uses-header h1{font-size:32px}.uses-intro{font-size:15.5px;line-height:1.59}.uses-sections{gap:56px}.uses-item-inner{grid-template-columns:1fr;gap:8px}.uses-item--featured .uses-item-inner{gap:12px}.uses-section-header h2{font-size:17px}.uses-item-name{font-size:14px}.uses-item-description{font-size:14px;line-height:1.48}.uses-item--featured .uses-item-name{font-size:16px}.uses-item--featured .uses-item-description{font-size:14.5px;line-height:1.52}.about-main{width:calc(100% - 40px);padding:64px 0 110px}.about-header{margin-bottom:86px}.about-portrait-frame{width:98%;max-width:382px;margin-bottom:8px}.about-header h1{font-size:32px}.about-header>div p,.about-prose p,.about-connect>p{font-size:14.5px;line-height:1.65}.about-section+.about-section{margin-top:84px}.about-interests>div{grid-template-columns:1fr;gap:4px}.about-section h2{font-size:17px}.about-interests dt,.about-interests dd{font-size:14px}.about-interests dd{line-height:1.52}.about-beliefs li{font-size:15.5px;line-height:1.49}.work-main,.project-detail-main{width:calc(100% - 40px);padding:64px 0 110px}.work-header h1{font-size:33px}.work-header>p:last-child{font-size:15.5px;line-height:1.59}.folder-browser-section{margin-top:64px}.folder-browser-heading>span{display:none}.folder-browser{gap:14px;margin-right:-20px;padding-right:28px}.folder-button{flex-basis:106px}.folder-visual{width:86px;height:65px}.folder-browser-shell:after{right:-18px}.work-project-section{margin-top:44px}.work-archive-tools{grid-template-columns:minmax(0,1fr) auto;gap:16px;margin-top:26px}.project-sort{gap:7px}.project-sort select{width:124px}.work-project-list .project-meta-group,.work-project-list .project-meta{display:none}.project-detail-header h1{font-size:33px}.project-detail-title-line{row-gap:8px}.project-detail-header>p:last-child{margin-top:20px;font-size:15.5px;line-height:1.59}.project-detail-content section+section,.project-detail-content>h2:not(:first-child){margin-top:64px}.project-detail-content h2{margin-bottom:22px;font-size:22.5px}.project-detail-content p,.project-detail-content li{font-size:15.5px;line-height:1.66}.project-detail-content .build-cards-intro{margin-bottom:24px}.project-detail-content h3{margin:32px 0 16px}.project-detail-content>.post-image-frame,.project-detail-content>picture,.project-detail-content>video,.project-detail-content>iframe{width:100%;max-width:100%;margin:40px 0 44px}.project-detail-content iframe,.project-detail-content video{aspect-ratio:16/9;border:0;border-radius:6px;width:100%;max-width:100%;height:auto;margin-inline:auto;display:block;overflow:hidden}.project-detail-content iframe+p,.project-detail-content video+p{margin-top:20px}.project-back-link{margin-bottom:40px}.project-detail-grid{grid-template-columns:1fr;gap:64px;margin-top:40px}.project-detail-meta{border-top:1px solid var(--line);padding-top:28px;position:static;top:auto}@supports (color:color-mix(in lab,red,red)){.project-detail-meta{border-top:1px solid color-mix(in srgb,var(--line)85%,transparent)}}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important}.js .reveal-section,.js .reveal-section>*{opacity:1;will-change:auto;transform:none}.profile-image:hover,.post-image-frame:hover>img,.article-prose p:has(>img:only-child):hover>img,.project-list--featured article:hover,.project-list--featured article:hover .project-hero img,.related-posts li:hover a span:last-child,.related-posts li:focus-within a span:last-child,.sidebar-tags li:hover,.topic-story-row:hover .topic-story-copy h2 a,.topic-story-row:focus-within .topic-story-copy h2 a,.topic-story-row:hover .topic-story-direction img,.topic-story-row:focus-within .topic-story-direction img,.topic-story-row:hover .topic-story-direction span,.topic-story-row:focus-within .topic-story-direction span{transform:none}.folder-browser{scroll-behavior:auto}.folder-button:hover .folder-visual,.writing-index-row:hover .writing-index-thumbnail,.writing-index-row:focus-visible .writing-index-thumbnail,.writing-list a:hover>span,.writing-list a:focus-visible>span{transform:none}}html:not(.dark-theme) .work-project-list.project-list--featured article{transition:background-color .2s}html:not(.dark-theme) .work-project-list.project-list--featured article:hover{background-color:var(--story-index-hover);transform:none}html:not(.dark-theme) .work-project-list article:hover h2{color:inherit}html:not(.dark-theme) .work-project-list article:hover .status-dot{filter:none;box-shadow:none;transform:none}html:not(.dark-theme) .work-project-list article:hover .status-text{opacity:0;transform:translate(-5px,-50%)}html:not(.dark-theme) .work-project-list article:hover .project-tags li{color:#989894;background:0 0;border-color:#ddddda;transform:none}html:not(.dark-theme) .work-project-list article:hover .project-tags .project-type{background:var(--surface-raised);color:#70706c;border:0}html:not(.dark-theme) .work-project-list article:hover .project-meta{color:var(--subtle)}html:not(.dark-theme) .work-project-list.project-list--featured .project-hero img,html:not(.dark-theme) .work-project-list.project-list--featured article:hover .project-hero img{opacity:.9;transition:none;transform:none}@media(max-width:620px){html:not(.dark-theme) .work-project-list article:hover .status-dot{transform:translateY(-50%)}html:not(.dark-theme) .work-project-list article:hover .status-text{opacity:1;transform:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
