/*! tailwindcss v4.3.3 | 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)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--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}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,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;--tracking-tight:-.025em;--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{*,::backdrop,:after,:before{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}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,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,pre,samp{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:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-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,::-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;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.block{display:block}.contents{display:contents}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.lowercase{text-transform:lowercase}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.ring,.shadow{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)}.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,)}.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))}}:root{--palette-white:#fff;--palette-sand-100:#f2efe8;--palette-sand-200:#eceae6;--palette-sand-300:#e6e4df;--palette-stone-300:#d0ccc2;--palette-stone-400:#c9c5bc;--palette-stone-700:#6b6760;--palette-ink-700:#4a463d;--palette-ink-900:#1a1a1a;--palette-brass:#a08d6a;--surface-page:var(--palette-white);--surface-subtle:var(--palette-sand-100);--surface-hover:var(--palette-sand-200);--surface-media:var(--palette-stone-400);--surface-glass:#f2efe8f0;--text-primary:var(--palette-ink-900);--text-body:#000;--text-secondary:var(--palette-stone-700);--text-on-media:var(--palette-white);--text-error:#a12d2d;--text-success:#326044;--border-subtle:var(--palette-sand-300);--border-decorative:var(--palette-stone-300);--border-control:var(--palette-stone-700);--focus-color:var(--palette-ink-900);--focus-on-media:var(--palette-white);--status-profitable:var(--palette-ink-900);--status-preprofit:#a08d6a8c;--status-free:transparent;--status-outline:var(--palette-brass);--status-retired:repeating-linear-gradient(135deg,var(--palette-stone-300) 0 2px,transparent 2px 5px);--family-body:"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;--family-meta:ui-monospace,Menlo,monospace;--family-hand:"Caveat",cursive;--type-label:500 .6875rem/1.4 var(--family-meta);--type-meta:400 .75rem/1.5 var(--family-meta);--type-nav:500 .875rem/1.3 var(--family-body);--type-control:500 .875rem/1.4 var(--family-body);--type-body:400 clamp(1rem,.94rem + .25vw,1.0625rem)/1.75 var(--family-body);--type-note:400 .8125rem/1.55 var(--family-body);--type-heading:400 clamp(1.625rem,1.3rem + 1vw,2.0625rem)/1.16 var(--family-body);--type-intro:400 clamp(2.25rem,1.8rem + 1.5vw,2.9rem)/1.28 var(--family-body);--type-index:400 clamp(1.25rem,1.1rem + .5vw,1.4375rem)/1.15 var(--family-body);--type-post-title:400 clamp(2.125rem,1.6rem + 2vw,3.375rem)/1.1 var(--family-body);--type-post-lede:400 clamp(1.125rem,.9rem + .8vw,1.4375rem)/1.5 var(--family-body);--type-quote:400 clamp(1.375rem,1.1rem + 1vw,1.75rem)/1.42 var(--family-body);--type-year:300 clamp(6.5625rem,3.75rem + 8.75vw,10.3125rem)/.84 var(--family-body);--type-clock:400 clamp(2.375rem,2rem + 1vw,2.875rem)/1 var(--family-body);--type-hand:400 clamp(1.1rem,.8rem + 1.2vw,1.55rem)/1.4 var(--family-hand);--tracking-label:.13em;--tracking-eyebrow:.2em;--tracking-heading:-.02em;--tracking-year:-.05em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-14:3.5rem;--space-16:4rem;--space-24:6rem;--gutter:var(--space-5);--header-height:3.25rem;--measure-about:38.75rem;--measure-post:50rem;--control-min-size:2.75rem;--rule-width:1px;--focus-width:2px;--focus-offset:4px;--radius-sharp:.125rem;--radius-soft:.5rem;--radius-popover:.875rem;--radius-pill:999px;--shadow-popover:0 14px 44px #0000002e;--shadow-adjacent:0 4px 24px #00000014;--scrim-bottom:linear-gradient(0deg,#000000e0,transparent);--scrim-top:linear-gradient(180deg,#0000007a,transparent);--cover-gradient:linear-gradient(180deg,#00000080 0%,transparent 30%,transparent 68%,#000000bf);--layer-content:0;--layer-sticky:10;--layer-header:20;--layer-popover:30;--layer-dialog:40;--layer-notice:50;--motion-fast:.18s;--motion-base:.25s;--motion-cover:.6s;--motion-page:.36s;--motion-menu:.26s;--ease-standard:cubic-bezier(.2,.75,.2,1)}@media (min-width:48rem){:root{--gutter:var(--space-10);--header-height:3.75rem}}@media (prefers-reduced-motion:reduce){:root{--motion-fast:0s;--motion-base:0s;--motion-cover:0s;--motion-page:0s;--motion-menu:0s}}@font-face{font-family:Inter;src:url(/fonts/inter.woff2)format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Caveat;src:url(/fonts/caveat.woff2)format("woff2");font-weight:400 700;font-display:swap}*{box-sizing:border-box}html{scroll-padding-top:var(--header-height)}body{background:var(--surface-page);color:var(--text-primary);font:var(--type-body);-webkit-font-smoothing:antialiased;margin:0}button,input,textarea{font:inherit}a,button,input,textarea{touch-action:manipulation}a,button{-webkit-tap-highlight-color:transparent}a{text-decoration:none}a,button{color:inherit}button{cursor:pointer;background:0 0;border:0}button:disabled{cursor:wait;opacity:.6}figure,h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}img{max-width:100%;display:block}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-offset)}::selection{background:var(--surface-subtle);color:var(--text-primary)}.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}.skip-link{top:0;left:var(--gutter);z-index:100;background:var(--text-primary);color:var(--surface-page);padding:var(--space-3);position:fixed;transform:translateY(-150%)}.skip-link:focus{transform:none}.eyebrow{font:var(--type-label);text-transform:uppercase;letter-spacing:var(--tracking-label)}.eyebrow,.meta{color:var(--text-secondary)}.meta{font:var(--type-meta)}.text-link{text-underline-offset:5px;min-height:var(--control-min-size);text-decoration:underline}.site-header{z-index:var(--layer-header);height:var(--header-height);padding:0 var(--gutter);background:var(--surface-page);border-bottom:var(--rule-width) solid var(--border-subtle);font:var(--type-nav);justify-content:space-between;position:sticky;top:0}.brand-group,.site-header{align-items:center;display:flex}.brand-group{gap:var(--space-3)}.brand{letter-spacing:-.025em;align-items:center;min-height:44px;font-weight:650;display:flex}.desktop-nav{gap:var(--space-8);display:flex}.desktop-nav a{min-height:44px;color:var(--text-secondary);align-items:center;display:flex}.desktop-nav a:hover,.desktop-nav a[aria-current]{color:var(--text-primary)}.back-link{border:1px solid var(--border-subtle);border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.menu-backdrop,.menu-toggle,.mobile-menu{display:none}.site-footer{background:var(--surface-subtle);border-top:1px solid var(--border-subtle);padding:var(--space-10) var(--gutter) var(--space-5)}.footer-newsletter{gap:var(--space-8);padding-bottom:var(--space-10);border-bottom:1px solid var(--border-decorative);justify-content:space-between;align-items:center;display:flex}.footer-newsletter h2{font:var(--type-heading)}.footer-newsletter p{margin-top:var(--space-2)}.footer-bottom,.footer-newsletter p{font:var(--type-note);color:var(--text-secondary)}.footer-bottom{gap:var(--space-6);padding-top:var(--space-5);justify-content:space-between;display:flex}.footer-bottom nav{gap:var(--space-5);color:var(--text-primary);flex-wrap:wrap;display:flex}.footer-bottom nav a{align-items:center;min-height:44px;display:flex}.home-intro{min-height:calc(100svh - var(--header-height));padding:var(--space-16) var(--gutter) var(--space-12);align-items:flex-end;display:flex}.home-intro>div{max-width:960px}.intro-portrait{border-radius:var(--radius-soft);object-fit:cover;margin-bottom:var(--space-6)}.home-intro h1{font:var(--type-intro);letter-spacing:var(--tracking-heading);text-wrap:pretty}.scroll-cue{align-items:center;gap:var(--space-3);margin-top:var(--space-6);min-height:44px;font:var(--type-nav);border-bottom:1px solid;display:inline-flex}.archive{scroll-margin-top:var(--header-height);position:relative}.desktop-archive{height:calc(100svh - var(--header-height));top:var(--header-height);grid-template-columns:44% 56%;display:grid;position:sticky;overflow:hidden}.archive-cover{background:var(--text-primary);color:var(--text-on-media);position:relative;overflow:hidden}.cover-image,.cover-shade{position:absolute;inset:0}.cover-shade{background:var(--cover-gradient);pointer-events:none}.cover-open{position:absolute;inset:0}.archive-years{top:var(--space-10);left:var(--gutter);pointer-events:none;position:absolute}.archive-year,.archive-years .eyebrow{color:#fff;mix-blend-mode:difference}.archive-year{font:var(--type-year);letter-spacing:var(--tracking-year);margin-top:var(--space-2);font-variant-numeric:tabular-nums;display:block}.archive-years nav{margin-top:var(--space-5);padding-top:var(--space-3);pointer-events:auto;border-top:1px solid #ffffff80;flex-direction:column;align-items:start;max-height:35svh;display:flex;overflow:auto}.archive-years button{font:var(--type-meta);color:#fff;mix-blend-mode:difference;min-width:44px;min-height:32px}.archive-years button[aria-current]{text-underline-offset:4px;font-weight:700;text-decoration:underline}.archive-cover :focus-visible,.mobile-card :focus-visible{outline-color:var(--focus-on-media)}.cover-caption{bottom:var(--space-10);left:var(--gutter);right:var(--gutter);z-index:2;color:#fff;position:absolute}.cover-caption h3{font:var(--type-heading);text-wrap:pretty;font-weight:600}.cover-caption .eyebrow,.cover-caption .meta{color:var(--text-on-media);margin-top:var(--space-3)}.archive-index{background:var(--surface-page);min-width:0;position:relative}.archive-controls{z-index:var(--layer-sticky);padding:var(--space-4) var(--space-8);border-bottom:1px solid var(--border-subtle);background:var(--surface-page);position:relative}.archive-controls,.archive-search{align-items:center;gap:var(--space-2);display:flex}.archive-search{background:var(--surface-subtle);border-radius:var(--radius-pill);min-width:0;padding:0 var(--space-4);height:44px;font:var(--type-control);flex:1}.archive-search input{width:100%;min-width:0;color:var(--text-primary);font:var(--type-control);background:0 0;border:0;height:100%}.archive-search input::placeholder{color:var(--text-secondary)}.archive-search button{min-width:32px;min-height:44px}.filter-toggle{background:var(--surface-subtle);border-radius:var(--radius-pill);min-height:44px;padding:0 var(--space-4);white-space:nowrap;font:var(--type-control);align-items:center;gap:var(--space-2);display:inline-flex}.filter-popover{right:var(--space-8);background:var(--surface-page);border:1px solid var(--border-subtle);width:min(340px,100vw - 40px);padding:var(--space-5);border-radius:var(--radius-popover);box-shadow:var(--shadow-popover);transform-origin:100% 0;opacity:0;pointer-events:none;transition:opacity var(--motion-menu) var(--ease-standard),transform var(--motion-menu) var(--ease-standard);position:absolute;top:calc(100% + 8px);transform:translateY(-6px)scale(.98)}.filter-popover[data-open=true]{opacity:1;pointer-events:auto;transform:none}.filter-popover>div{gap:var(--space-2);margin:var(--space-3) 0;flex-wrap:wrap;display:flex}.filter-popover>div button{border:1px solid var(--border-control);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);font:var(--type-control);min-height:44px}.filter-popover button[aria-pressed=true]{background:var(--text-primary);color:var(--surface-page)}.filter-popover>.text-link{margin-right:var(--space-4);font:var(--type-note)}@media (max-width:47.999rem){.filter-popover{transform-origin:0 0;width:auto;left:0;right:0}}.index-window{position:absolute;inset:78px 0 0;overflow:hidden}.index-rows{top:calc(50% - 48px);left:var(--space-8);right:var(--space-8);will-change:transform;position:absolute}.index-row{align-items:center;gap:var(--space-3);transform-origin:50%;height:96px;transition:opacity var(--motion-base),transform var(--motion-base);border-top:1px solid #0000;border-bottom:1px solid #0000;display:flex}.index-row.active{border-color:var(--border-decorative)}.index-select{text-align:left;min-width:0;font:var(--type-index);padding:var(--space-3) 0;flex:1}.index-select span{display:block}.index-select small{margin-top:var(--space-2);display:block}.index-topic{font:var(--type-note);color:var(--text-secondary);max-width:85px}.post-arrow{border:1px solid var(--border-subtle);border-radius:var(--radius-soft);flex:none;place-items:center;width:44px;height:44px;display:grid}.scroll-hint{top:var(--space-6);align-items:center;gap:4px;display:inline-flex;position:absolute;left:50%;transform:translate(-50%)}::view-transition-old(root){animation-duration:var(--motion-page);animation-timing-function:var(--ease-standard)}::view-transition-new(root){animation-duration:var(--motion-page);animation-timing-function:var(--ease-standard)}@media (prefers-reduced-motion:reduce){::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}}@keyframes year-swap{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.empty-state{align-content:center;justify-items:center;gap:var(--space-4);min-height:60svh;padding:var(--gutter);text-align:center;display:grid}.reading-column{max-width:calc(var(--measure-about) + var(--gutter) * 2);padding:var(--space-16) var(--gutter);min-height:calc(100svh - var(--header-height));margin:auto}.about-portrait{object-fit:cover;border-radius:var(--radius-sharp);width:128px;height:150px;margin:var(--space-6) 0 var(--space-8)}.about-page h1{margin-bottom:var(--space-5)}.prose{font:var(--type-body);color:var(--text-body);overflow-wrap:anywhere}.prose p{margin:0 0 var(--space-5)}.prose h2{font:var(--type-heading);color:var(--text-primary);margin:var(--space-10) 0 var(--space-5)}.prose blockquote{font:var(--type-quote);color:var(--text-primary);margin:var(--space-10) 0}.prose blockquote:before{content:"";width:32px;margin-bottom:var(--space-5);border-top:2px solid;display:block}.prose ol,.prose ul{padding-left:var(--space-6);margin-bottom:var(--space-5)}.prose a{text-decoration:underline}.prose img{width:100%;height:auto;margin:0 0 var(--space-8);border-radius:var(--radius-sharp);display:block}.projects-page{min-height:calc(100svh - var(--header-height));grid-template-columns:30% 70%;display:grid}.project-summary{padding:var(--space-10) var(--gutter);border-right:1px solid var(--border-subtle)}.project-summary>p{font:var(--type-note);color:var(--text-body);margin-top:var(--space-3)}.project-total{gap:var(--space-3);border-top:1px solid var(--border-decorative);margin-top:var(--space-6);padding-top:var(--space-3);align-items:baseline;display:flex}.project-total>strong{font-size:3rem;font-weight:400;line-height:1.2}.status-summary{margin-top:var(--space-4);gap:var(--space-2);flex-direction:column;height:400px;display:flex}.status-stat{gap:var(--space-4);min-height:24px;display:flex}.mobile-status-legend{display:none}.status-stat>span:nth-child(2){line-height:1.3}.status-stat strong{font-size:1.4rem;font-weight:400}.status-bar{border-radius:var(--radius-sharp);min-width:18px;max-width:18px}.status-profitable{background:var(--status-profitable)}.status-preprofit{background:var(--status-preprofit)}.status-free{background:var(--surface-subtle);border:1px solid var(--status-outline)}.status-retired{background:var(--status-retired);border:1px solid var(--border-decorative)}.project-list{padding:var(--space-10) var(--gutter)}.project-row{border-bottom:1px solid var(--border-subtle);padding:var(--space-4) 0}.project-row:first-child{padding-top:0}.project-row a{display:block}.project-row a:hover h2{text-underline-offset:5px;text-decoration:underline}.project-meta{gap:var(--space-4);font:var(--type-label);text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);display:flex}.project-meta>span{align-items:center;gap:var(--space-2);display:flex}.status-dot{border-radius:50%;flex:none;width:7px;height:7px;display:inline-block}.project-row h2{font:var(--type-index);letter-spacing:var(--tracking-heading);margin-top:var(--space-2);font-size:1.45rem}.project-row p{font:var(--type-note);color:var(--text-body);margin-top:var(--space-2)}.project-row.retired{color:var(--text-secondary)}.post-page{max-width:calc(var(--measure-post) + var(--gutter) * 2);padding:var(--space-16) var(--gutter) var(--space-14);margin:auto}.post-page h1{font:var(--type-post-title);letter-spacing:var(--tracking-heading);margin:var(--space-5) 0 var(--space-6);text-wrap:pretty}.post-summary{font:var(--type-post-lede);color:var(--text-secondary);margin-bottom:var(--space-10)}.post-pager{gap:var(--space-2);margin-bottom:var(--space-5);display:flex}.post-pager a,.post-pager span{border:1px solid var(--border-control);width:40px;height:40px;color:var(--text-primary);transition:background var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard);border-radius:50%;place-items:center;display:grid}.post-pager a:hover{background:var(--text-primary);color:var(--surface-page)}.post-pager [data-disabled]{opacity:.3}.post-figure{margin:0 0 var(--space-8)}.post-figure img{aspect-ratio:2/3;object-fit:cover;border-radius:var(--radius-sharp);width:100%;height:auto;display:block}.post-figure figcaption{font:var(--type-meta);color:var(--text-secondary);margin-top:var(--space-2)}.adjacent-posts{margin-top:var(--space-12);border:1px solid var(--border-subtle);border-radius:var(--radius-popover);box-shadow:var(--shadow-adjacent);display:flex;overflow:hidden}.adjacent-posts a{padding:var(--space-4);align-items:center;gap:var(--space-4);font:var(--type-nav);flex:1;display:flex}.adjacent-posts a+a{border-left:1px solid var(--border-subtle)}.adjacent-posts img{object-fit:cover;border-radius:var(--radius-soft);width:48px;height:48px}.adjacent-posts .eyebrow{margin-bottom:var(--space-2);display:block}.adjacent-next{text-align:right;justify-content:flex-end}.contact-page{min-height:calc(100svh - var(--header-height));grid-template-columns:33% 67%;display:grid}.contact-aside{border-right:1px solid var(--border-subtle);padding:var(--space-10) var(--gutter);flex-direction:column;justify-content:space-between;min-width:0;display:flex}.contact-main{padding:var(--space-12) clamp(20px,5vw,56px)}.contact-sentence{font:var(--type-heading);color:var(--text-body);line-height:1.9}.contact-sentence input{font:var(--type-hand);border:0;border-bottom:1px solid var(--border-control);padding:0 var(--space-2);background:0 0;border-radius:0;width:210px;max-width:100%}.contact-sentence input[type=email]{width:250px}.contact-sentence input::placeholder,.message-input::placeholder{color:var(--text-secondary);opacity:1}.message-input{resize:vertical;background:repeating-linear-gradient(to bottom,transparent 0 35px,var(--border-subtle) 35px 36px);width:100%;min-height:216px;font:var(--type-hand);color:var(--text-body);margin-top:var(--space-5);border:0;padding:0;line-height:36px;display:block}.contact-optin{align-items:baseline;gap:var(--space-3);margin-top:var(--space-8);color:var(--text-body);display:flex}.contact-optin input{width:20px;height:20px;accent-color:var(--text-primary);flex:none}.primary-button{background:var(--text-primary);color:var(--surface-page);border-radius:var(--radius-sharp);min-height:44px;padding:var(--space-3) var(--space-8);font:var(--type-control)}.contact-form .primary-button{margin-top:var(--space-5)}.form-message{font:var(--type-note);margin-top:var(--space-3);color:var(--text-body);max-width:460px}.form-message.error{color:var(--text-error)}.form-success{align-items:center;gap:var(--space-3);max-width:460px;color:var(--text-body);font:var(--type-body);animation:form-success-in var(--motion-base) var(--ease-standard) both;display:flex}.form-success svg{color:var(--text-success);flex:none}@keyframes form-success-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.newsletter-form{width:100%;max-width:420px}.newsletter-fields{gap:var(--space-2);display:flex}.newsletter-fields input{border:1px solid var(--border-control);border-radius:var(--radius-sharp);background:var(--surface-page);min-width:0;padding:var(--space-2) var(--space-3);font:var(--type-control);flex:1}.newsletter-fields .primary-button{padding:var(--space-3) var(--space-4)}.subscribe-button{align-items:center;gap:var(--space-2);white-space:nowrap;flex-shrink:0;display:inline-flex}.globe-place{font-size:.8125rem}.newsletter-form>label{font:var(--type-note);margin-bottom:var(--space-2);display:block}.honeypot{width:1px;height:1px;position:absolute;top:auto;left:-10000px;overflow:hidden}.turnstile{margin-top:var(--space-3);min-height:65px}.social-list{margin-top:var(--space-6);flex-direction:column;display:flex}.social-list a{border-top:1px solid var(--border-subtle);min-height:44px;font:var(--type-nav);justify-content:space-between;align-items:center;display:flex}.social-list a:last-child{border-bottom:1px solid var(--border-subtle)}.location-clock{font:var(--type-clock);font-variant-numeric:tabular-nums;align-items:baseline;gap:var(--space-2);display:flex}.location-clock small{font:var(--type-meta);color:var(--text-secondary)}.globe-shell{aspect-ratio:1;width:100%;margin:var(--space-6) 0;position:relative}.globe-shell>div{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.globe-controls{gap:var(--space-2);font:var(--type-meta);justify-content:center;align-items:center;display:flex}.globe-controls button{min-width:44px;min-height:44px}.contact-mobile-label{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}.not-found{text-align:center;padding:var(--space-24) var(--gutter);min-height:60svh}.not-found h1{font:var(--type-post-title);margin-bottom:var(--space-6)}@media (max-width:47.999rem){.desktop-nav{display:none}.menu-toggle{gap:var(--space-2);z-index:42;min-height:44px;font:var(--type-nav);align-items:center;display:flex}.menu-icon{display:inline-flex}.menu-backdrop{inset:var(--header-height) 0 0;z-index:var(--layer-popover);opacity:0;pointer-events:none;transition:opacity var(--motion-menu) var(--ease-standard);background:#0000001f;display:block;position:fixed}.menu-backdrop[data-open=true]{opacity:1;pointer-events:auto}.mobile-menu{right:var(--gutter);z-index:var(--layer-dialog);background:var(--surface-page);border:1px solid var(--border-subtle);border-radius:var(--radius-popover);padding:var(--space-5);box-shadow:var(--shadow-popover);transform-origin:100% 0;opacity:0;pointer-events:none;width:260px;transition:opacity var(--motion-menu) var(--ease-standard),transform var(--motion-menu) var(--ease-standard);display:block;position:absolute;top:calc(100% + 8px);transform:translateY(-8px)scale(.97)}.mobile-menu[data-open=true]{opacity:1;pointer-events:auto;transform:none}.mobile-menu nav{margin:var(--space-2) 0 var(--space-5)}.mobile-menu a,.mobile-social{justify-content:space-between;align-items:center;min-height:44px;display:flex}.footer-bottom,.footer-newsletter{align-items:stretch;gap:var(--space-5);flex-direction:column}.site-footer{padding-top:var(--space-8)}.footer-bottom{font:var(--type-meta)}.home-intro{padding:var(--space-10) var(--gutter);min-height:calc(100svh - var(--header-height))}.home-intro h1{max-width:460px;font-size:1.6875rem;line-height:1.22}.home-intro>div{padding-bottom:var(--space-2)}.mobile-card{background:var(--text-primary);height:100svh;color:var(--text-on-media);scroll-snap-align:start;display:block;position:relative;overflow:hidden}.mobile-card .cover-caption{left:var(--gutter);right:calc(var(--gutter) + 30px);bottom:calc(var(--space-16) + env(safe-area-inset-bottom))}.mobile-card .cover-caption h3{margin-top:var(--space-2);font-size:1.55rem;line-height:1.16}.mobile-card .cover-caption .eyebrow{color:var(--text-on-media);font-size:.6875rem}.mobile-overlays{inset:var(--header-height) 0 0;z-index:var(--layer-sticky);pointer-events:none;opacity:0;transition:opacity var(--motion-base) var(--ease-standard);position:fixed}.mobile-overlays[data-visible=true]{opacity:1}.mobile-overlays:not([data-visible=true]) .mobile-controls,.mobile-overlays:not([data-visible=true]) .mobile-ticks{pointer-events:none}.mobile-controls{top:var(--space-3);left:var(--gutter);right:var(--gutter);pointer-events:auto;position:absolute}.mobile-controls .archive-controls{background:0 0;border:0;padding:0}.mobile-controls .archive-search,.mobile-controls .filter-toggle{background:var(--surface-glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 2px 14px #0000002e}.mobile-card-year{top:calc(var(--space-16) + var(--space-3));left:var(--gutter);font:var(--type-year);letter-spacing:var(--tracking-year);color:#fff;mix-blend-mode:difference;font-variant-numeric:tabular-nums;pointer-events:none;margin:0;position:absolute}.mobile-ticks{top:50%;right:var(--space-2);pointer-events:auto;flex-direction:column;align-items:flex-end;gap:4px;display:flex;position:absolute;transform:translateY(-50%)}.mobile-ticks button{justify-content:flex-end;align-items:center;width:28px;height:12px;display:flex}.mobile-ticks button:after{content:"";width:15px;height:2px;transition:width var(--motion-base) var(--ease-standard),background var(--motion-base) var(--ease-standard);background:#ffffff73;border-radius:2px;box-shadow:0 1px 3px #00000059}.mobile-ticks button.active:after{background:var(--palette-white);width:28px}.reading-column{padding:var(--space-8) var(--gutter) var(--space-12)}.about-portrait{width:112px;height:132px;margin-top:var(--space-5);margin-bottom:var(--space-6)}.projects-page{display:block}.project-summary{padding:var(--space-6) var(--gutter) 0;border:0}.project-summary>p{font-size:1rem}.project-total{margin-top:var(--space-5)}.status-summary{height:8px;margin-top:var(--space-8);flex-direction:row;position:relative}.status-stat{flex:1;position:relative;min-height:0!important}.status-stat .status-bar{width:100%;min-width:0;max-width:none}.status-stat>span:nth-child(2){display:none;position:absolute;bottom:12px}.project-total{padding-bottom:var(--space-2)}.project-list{padding:var(--space-6) var(--gutter) var(--space-10)}.project-row{padding:var(--space-5) 0}.project-row:first-child{border-top:1px solid var(--border-subtle);padding-top:var(--space-5)}.project-row h2{font-size:1.3rem}.project-row p{font-size:.9rem}.project-meta{font-size:.625rem}.post-page{padding:var(--space-8) var(--gutter) var(--space-10)}.post-page h1{margin-top:var(--space-3);margin-bottom:var(--space-5);font-size:1.85rem;line-height:1.12}.post-summary{margin-bottom:var(--space-6);font-size:1.15rem}.post-figure img{border-radius:var(--radius-popover)}.post-page .eyebrow{font-size:.625rem}.adjacent-posts{flex-direction:column-reverse}.adjacent-posts a+a{border-left:0;border-bottom:1px solid var(--border-subtle)}.contact-page{flex-direction:column;display:flex}.contact-main{padding:var(--space-6) var(--gutter);order:0}.contact-aside{padding:var(--space-5) var(--gutter) var(--space-8);border:0;order:1}.contact-desktop-label{display:none}.contact-mobile-label{clip:auto;width:auto;height:auto;margin-bottom:var(--space-5);display:block;position:static;overflow:visible}.contact-sentence{font-size:1.25rem;line-height:1.9}.contact-sentence input{width:120px;font-size:1.5rem}.contact-sentence input[type=email]{width:180px}.message-input{background:repeating-linear-gradient(to bottom,transparent 0 27px,var(--border-subtle) 27px 28px);min-height:140px;font-size:1.5rem;line-height:28px}.contact-optin{margin-top:var(--space-5);font-size:1rem}.contact-form .primary-button{width:100%}.globe-shell{max-width:360px;margin:var(--space-4) auto}.location-clock{justify-content:center}.globe-controls{margin-bottom:var(--space-4)}.contact-aside .social-list{margin-top:0;margin-bottom:var(--space-5);order:-1}.footer-newsletter .newsletter-fields{flex-wrap:wrap}.newsletter-fields input{min-width:150px;min-height:44px}.brand{font-size:.8125rem}.back-link{width:28px;height:28px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}.index-row:not(.active) .index-select{color:var(--text-secondary)}@media (max-width:47.999rem){.project-summary{position:relative}.mobile-status-legend{margin:var(--space-3) 0 var(--space-3) 90px;flex-direction:column;gap:4px;padding:0;list-style:none;display:flex}.mobile-status-legend li{font:var(--type-meta);align-items:center;gap:8px;display:flex}.mobile-status-legend .eyebrow{font-size:.55rem}.project-total{float:left;width:100%;margin-bottom:-100px}.project-total>strong{padding-top:8px}.project-total>.eyebrow{display:none}.status-summary{clear:both;height:8px}.project-stats{border-top:1px solid var(--border-decorative);padding-top:var(--space-3);margin-top:var(--space-5);align-items:flex-start;gap:var(--space-6);display:flex}.project-stats .project-total{float:none;border:0;flex:none;width:64px;margin:0;padding:0}.project-stats .project-total>strong{padding:0}.project-stats .mobile-status-legend{margin:0;padding:0}.status-summary{margin-top:var(--space-5)}}@media (max-width:47.999rem) and (prefers-reduced-motion:no-preference){html.mobile-archive-snap{scroll-snap-type:y mandatory;scroll-padding-top:var(--header-height)}html.mobile-archive-snap .home-intro,html.mobile-archive-snap .site-footer{scroll-snap-align:start}}@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-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@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}