@font-face{font-family:Iowan Old Style Local;font-style:normal;font-weight:400;font-display:swap;src:local(Iowan Old Style),local(IowanOldStyle-Roman),local(Iowan Old Style BT)}@font-face{font-family:Iowan Old Style Local;font-style:italic;font-weight:400;font-display:swap;src:local(Iowan Old Style Italic),local(IowanOldStyle-Italic)}@font-face{font-family:Iowan Old Style Local;font-style:normal;font-weight:700;font-display:swap;src:local(Iowan Old Style Bold),local(IowanOldStyle-Bold)}@font-face{font-family:Iowan Old Style Local;font-style:italic;font-weight:700;font-display:swap;src:local(Iowan Old Style Bold Italic),local(IowanOldStyle-BoldItalic)}@font-face{font-family:Claude Serif;font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/claude-serif-roman.woff2)format("woff2")}@font-face{font-family:Claude Serif;font-style:italic;font-weight:300 800;font-display:swap;src:url(/fonts/claude-serif-italic.woff2)format("woff2")}@font-face{font-family:Claude Sans;font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/claude-sans-text.woff2)format("woff2");font-feature-settings:"dlig" 0,"ss01" 1,"ss02" 1;unicode-range:U+0-5B,U+5D-A0,U+A2-A3,U+A5-316,U+318-DFFF,U+E140-10FFFF}@font-face{font-family:Claude Sans;font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/claude-sans-roman.woff2)format("woff2");unicode-range:U+5C,U+A1,U+A4,U+E000-E13F}:root{--font-reading:"Iowan Old Style Local","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--font-ui:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--bg:#fff;--text-copy:#252525;--text-heading:#202020;--text-secondary:#363636;--text-nav:#494949;--text-nav-hover:#252525;--surface-subtle:#f3f3f2;--divider:#e2e2df;--line-subtle:color-mix(in srgb,var(--text-copy) 10%,transparent);--focus-color:#6657c8;--sticker-shadow:#1e1e1e21}.dark{--bg:#242629;--text-copy:#dedbd6;--text-heading:#f1eee8;--text-secondary:#cbc8c2;--text-nav:#b9b7b2;--text-nav-hover:#f1eee8;--surface-subtle:#2d2f32;--divider:#424448;--line-subtle:color-mix(in srgb,var(--text-copy) 18%,transparent);--focus-color:#b4a4ff;--sticker-shadow:#00000042}.claude{--font-reading:"Claude Serif",Georgia,serif;--font-ui:"Claude Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--bg-000:0 0% 100%;--bg-100:48 33.3% 97.1%;--bg-200:53 28.6% 94.5%;--bg-300:48 25% 92.2%;--bg-400:50 20.7% 88.6%;--bg-500:50 20.7% 88.6%;--text-000:60 2.6% 7.6%;--text-100:60 2.6% 7.6%;--text-200:60 2.5% 23.3%;--text-300:60 2.5% 23.3%;--text-400:51 3.1% 43.7%;--text-500:51 3.1% 43.7%;--border-100:30 3.3% 11.8%;--accent-brand:15 63.1% 59.6%;--brand-000:15 54.2% 51.2%;--accent-000:210 73.7% 40.2%;--accent-100:210 70.9% 51.6%;--bg:#faf9f5;--text-copy:#141413;--text-heading:#141413;--text-secondary:#3d3d3a;--text-nav:#5e5d59;--text-nav-hover:#141413;--surface-subtle:#f5f4ed;--divider:#dedcd1;--line-subtle:hsl(var(--border-100)/.12);--focus-color:#c6613f;--sticker-shadow:#1f1e1d1f}.claude .content-title,.claude .site-title{letter-spacing:-.025em;font-weight:400;line-height:1.25}.claude .content-heading,.claude .writing-index h2,.claude .prose h2{letter-spacing:-.015em;font-weight:500}.claude .prose a{color:hsl(var(--accent-000))}.claude .prose a:hover{color:hsl(var(--text-100))}.claude ::selection{background:hsl(var(--accent-100)/.18)}*,:before,:after{box-sizing:border-box;border:0 solid;margin:0;padding:0}html{-webkit-text-size-adjust:100%;tab-size:4;background:var(--bg);font-kerning:auto;text-rendering:auto;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:gray transparent;min-width:0}body{background:var(--bg);max-width:none;min-height:100vh;color:var(--text-copy);font-family:var(--font-reading);font-feature-settings:normal;font-kerning:auto;font-variant-ligatures:normal;letter-spacing:normal;margin:0;padding:0;font-size:17px;line-height:1.6;overflow-x:clip}a{color:inherit;text-decoration:inherit}button{font:inherit;letter-spacing:inherit;color:inherit;background:0 0;border:0;border-radius:0}img,svg{vertical-align:middle;max-width:100%;height:auto;display:block}[hidden]{display:none!important}::selection{background:color-mix(in srgb,var(--text-copy) 12%,transparent)}.site-shell{--page-pad:clamp(1.25rem,3.4vw,3.25rem);min-height:100vh;padding:var(--page-pad);container-type:inline-size}.content-frame{--content-width:600px;width:min(100%,var(--content-width));overflow-wrap:break-word;margin-inline:auto;position:relative}.home-layout,.home-copy{min-width:0}.home-visual{isolation:isolate;border:1px solid var(--line-subtle);background:var(--surface-subtle);border-radius:10px;display:none;position:relative;overflow:hidden}.home-painting{position:absolute;inset:0}.home-painting>img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.home-painting:before,.home-painting:after{content:"";z-index:1;pointer-events:none;position:absolute;inset:0}.home-painting:before{mix-blend-mode:multiply;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.35 0 0 0 0 0.28 0 0 0 0 0.2 -2.6 0 0 0 1.3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E")}.home-painting:after{opacity:.25;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='s'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 0.99 0 0 0 0 0.95 3.4 0 0 0 -2.2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23s)'/%3E%3C/svg%3E")}.content-frame p,.content-paragraph{text-wrap:pretty;margin:0 0 1.45rem}.content-title,.site-title{color:var(--text-heading);font-family:var(--font-reading);letter-spacing:-.02em;text-wrap:balance;font-weight:600;line-height:1.4}.content-title{margin:0 0 .6em;font-size:30px}.site-title{margin:0 0 .95em;font-size:clamp(2.2rem,3.5vw,2.65rem);line-height:1.15}.content-frame a.site-title-link{color:inherit;text-decoration:none;transition:opacity .2s}.content-frame a.site-title-link:hover{color:inherit;opacity:.72}.site-title-at{margin-right:.015em;font-size:1.1em;line-height:0;display:inline-block;position:relative;top:.015em}.content-heading,.writing-index h2,.prose h2{color:var(--text-heading);font-family:var(--font-reading);letter-spacing:-.02em;text-wrap:balance;margin:3.1rem 0 1.2rem;font-size:1.45rem;font-weight:600;line-height:1.4}.content-subheading{color:var(--text-heading);font-family:var(--font-reading);letter-spacing:-.02em;text-wrap:balance;margin:2.8rem 0 1.05rem;font-size:1.35rem;font-style:italic;font-weight:400;line-height:1.4}.content-subtitle{color:var(--text-nav);margin:.5rem 0 2rem;font-size:.85em;font-style:italic;line-height:1.4}.content-frame a.tabs-back-link{color:var(--text-nav);font-family:var(--font-ui);margin-bottom:.75rem;font-size:13px;text-decoration:none;display:inline-block}.content-frame a.tabs-back-link:hover{color:var(--text-secondary)}.content-frame a{color:var(--text-nav);text-decoration-line:underline;text-decoration-color:color-mix(in srgb,var(--text-nav) 30%,transparent);text-decoration-skip-ink:auto;text-underline-offset:.18em;text-decoration-thickness:auto;transition:color .3s ease-in-out,text-decoration-color .3s ease-in-out}.content-frame a:hover{color:var(--text-nav-hover);text-decoration-color:color-mix(in srgb,var(--text-nav-hover) 30%,transparent)}.content-list{margin:1rem 0 1.2rem 1.5rem;padding-left:0;list-style:square}.content-frame .content-list li{text-wrap:pretty;margin:0 0 .2rem;padding:0}.content-list>li::marker,.notes-list>li::marker{color:color-mix(in srgb,var(--text-nav) 70%,transparent)}.content-frame li>p:last-child{margin-bottom:0}.content-frame hr{background:var(--divider);border:0;height:1px;margin:calc(1rem + 8px) 0}.content-frame>:last-child{margin-bottom:0}.bio-section{margin-bottom:3.25rem}.bio-toggle{border-bottom:1px solid var(--line-subtle);color:var(--text-nav);font-family:var(--font-ui);letter-spacing:.01em;justify-content:space-between;align-items:baseline;margin-bottom:1.35rem;padding-bottom:.55rem;font-size:14px;line-height:1.4;display:flex}.bio-toggle-options{gap:1rem;margin-left:auto;display:flex}.bio-toggle button{color:inherit;cursor:pointer;font:inherit;padding:0;background:0 0;border:0;padding-block:.2rem;transition:color .16s;position:relative}.bio-toggle button:hover,.bio-toggle button[aria-pressed=true]{color:var(--text-copy)}.bio-toggle button[aria-pressed=true]:after{background:var(--text-copy);content:"";height:1px;position:absolute;bottom:-.62rem;left:0;right:0}.writing-index,.writing-index>section+section{margin-top:3.5rem}.writing-index h2{margin-top:0}.notes-list{columns:2;column-gap:2.5rem;margin:.8em 0 0;padding-left:1.1em;list-style:square}.notes-list li{break-inside:avoid;margin-bottom:.2rem;padding:0 0 0 .15em}.blogs-list{border-top:1px solid var(--line-subtle);margin-top:.85em}.content-frame .blog-row{border-bottom:1px solid var(--line-subtle);color:var(--text-copy);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:1.25rem;padding:.72em 0;text-decoration:none;display:grid}.content-frame .blog-row:hover{color:var(--text-copy)}@media (hover:hover) and (pointer:fine){.content-frame .blog-row{transition:opacity .3s ease-in-out}.blogs-list:hover .blog-row{opacity:.8}.blogs-list:hover .blog-row:hover{opacity:1}}.blog-row time{color:var(--text-nav);font-family:var(--font-ui);font-variant-numeric:lining-nums tabular-nums;letter-spacing:0;white-space:nowrap;font-size:14px}.row-note{color:var(--text-nav);font-size:.82em}.content-frame .section-follow-link{font-family:var(--font-ui);color:var(--text-nav);margin:1rem 0 0;font-size:13px}.page-nav{flex-wrap:wrap;align-items:baseline;gap:.25rem 1.5rem;display:flex}.reading-footer{border-top:1px solid var(--line-subtle);font-family:var(--font-ui);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:3.5rem;padding-top:1rem;font-size:13px;display:flex}.content-frame .reading-footer a{text-decoration:none}.content-frame .reading-footer a:hover{text-decoration:underline}.prose{font-size:18px;line-height:1.7}.prose ul,.prose ol{margin:1rem 0 1.45rem;padding-left:1.5rem}.prose ul{list-style:square}.prose li{margin-bottom:.3rem;padding-left:.15em}.prose blockquote{border-left:2px solid var(--line-subtle);color:var(--text-secondary);margin:1.6rem 0;padding-left:1.25rem}.prose h2{scroll-margin-top:2rem}.story-figure{margin:2.4rem 0}.story-figure>img{border:1px solid var(--line-subtle);border-radius:6px;width:100%;height:auto}.story-figure .story-brand{width:min(100%,210px);margin:0 auto 1.25rem;display:block}.story-figure .story-brand img{width:100%;height:auto}.story-brand .brand-on-dark,.dark .story-brand .brand-on-light{display:none}.dark .story-brand .brand-on-dark{display:block}.story-figure figcaption{color:var(--text-nav);font-family:var(--font-ui);margin-top:.7rem;font-size:13px;line-height:1.5}.story-figure--phone{max-width:360px;margin-inline:auto}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus-color);outline-offset:3px;border-radius:2px}main:focus{outline:none}.skip-link{z-index:2;background:var(--bg);padding:.3rem .6rem;position:fixed;top:1rem;left:1rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}@media (width>=1100px){.home-layout{width:min(100cqi,1500px);margin-inline:calc((var(--content-width) - min(100cqi,1500px))/2);grid-template-columns:minmax(0,1.75fr) minmax(380px,1fr);align-items:start;gap:clamp(2rem,3.6vw,3.75rem);display:grid}.home-copy{width:min(100%,var(--content-width))}.home-visual{top:var(--page-pad);width:100%;height:calc(100svh - (2*var(--page-pad)));aspect-ratio:auto;min-height:min(72svh,760px);display:block;position:sticky}}@media (width<=639px){.site-shell{padding:2.5rem 1.25rem 1.25rem}.site-title{margin-bottom:.9em}.content-title{font-size:2rem}.notes-list{columns:1}.content-frame .blog-row{grid-template-columns:1fr;gap:.15rem}.blog-row time{font-size:13px}}@media (width>=1100px) and (height<=600px){.city-visual .home-painting>img{object-position:50% 54%}}@media (width<=639px),(pointer:coarse){.bio-toggle button{min-width:44px;min-height:44px}.content-frame a.tabs-back-link,.reading-footer a,.notes-list a,.section-follow-link a{align-items:center;min-height:44px;display:inline-flex}.content-frame a.tabs-back-link,.notes-list li{margin-bottom:0}}.light{color-scheme:light}.dark{color-scheme:dark}.site-footer{margin-top:2.5rem}.site-footer-inner{justify-content:flex-end;width:min(100%,600px);display:flex}.footer-controls{align-items:center;gap:8px;display:flex}.theme-options{border-left:1px solid var(--divider);align-items:center;gap:2px;padding-left:8px;display:flex}.theme-toggle,.sound-toggle{width:28px;height:28px;color:var(--text-nav);cursor:pointer;border-radius:5px;place-items:center;transition:color .15s,background-color .15s;display:grid}.theme-toggle:hover,.sound-toggle:hover{color:var(--text-heading)}.theme-toggle[aria-pressed=true]{color:var(--text-heading);background:var(--surface-subtle);box-shadow:inset 0 -1px var(--text-nav)}.sound-toggle:hover{background:var(--surface-subtle)}.theme-swatch{background:linear-gradient(135deg,#faf9f5 45%,#d97757 46%);border-radius:50%;width:12px;height:12px;box-shadow:inset 0 0 0 1px #c6613f}.sound-muted,.sound-toggle[aria-pressed=false] .sound-waves{display:none}.sound-toggle[aria-pressed=false] .sound-muted{display:block}.about-intro{display:flow-root}.profile-sticker{float:right;shape-outside:margin-box;width:148px;margin:0 0 1.25rem 1.5rem}.sticker-surface{aspect-ratio:1;width:100%;box-shadow:0 1px 0 #c5c6cb, 0 3px 6px #00000008, 0 8px 18px var(--sticker-shadow);isolation:isolate;background:linear-gradient(145deg,#fff 20%,#f3f3f3 65%,#d4d5d8);border:1px solid #fff;border-radius:50%;padding:5px;display:block;position:relative}.sticker-surface img{aspect-ratio:1;border-radius:50%;width:100%;height:auto}.sticker-surface:after{content:"";pointer-events:none;background:linear-gradient(135deg,#ffffff45,#0000 40% 75%,#ffffff20);border-radius:50%;position:absolute;inset:1px;box-shadow:inset 0 1px 1px #ffffffcf}@media (width<=639px){.profile-sticker{float:none;width:136px;margin:.5rem 0 1.5rem}}@media (pointer:coarse){.theme-toggle,.sound-toggle{width:34px;height:34px}}@media (prefers-reduced-motion:reduce){.theme-toggle,.sound-toggle{transition:none}}.project-heading{align-items:center;gap:12px;margin-bottom:.75rem;display:flex}.project-heading .content-title{margin:0}.project-mark{object-fit:contain;flex-shrink:0;width:44px;height:44px}.project-illustration,.project-shot{margin:2rem 0}.artwork{border:1px solid var(--line-subtle);background:#faf6ed;border-radius:10px;position:relative;overflow:hidden;container-type:inline-size}.artwork-image{width:100%;height:auto;display:block}.artwork-brand{pointer-events:none;width:clamp(28px,7.5cqi,46px);position:absolute;top:clamp(12px,3cqi,20px);left:clamp(12px,3cqi,20px)}.artwork-brand img{width:100%;height:auto;display:block}.artwork-brand--wordmark{width:27%;min-width:82px;max-width:160px}.project-illustration figcaption,.project-shot figcaption{color:var(--text-nav);font-family:var(--font-ui);text-align:center;margin-top:10px;font-size:13px;line-height:1.5}.browser-frame{border:1px solid var(--line-subtle);background:var(--surface-subtle);border-radius:10px;overflow:hidden}.browser-toolbar{border-bottom:1px solid var(--line-subtle);height:38px;color:var(--text-nav);background:var(--surface-subtle);font-family:var(--font-ui);justify-content:space-between;align-items:center;gap:12px;padding-inline:12px;font-size:11px;display:flex}.window-controls{flex-shrink:0;gap:6px;width:42px;display:flex}.window-controls i{background:#ff6058;border-radius:50%;width:10px;height:10px}.window-controls i:nth-child(2){background:#ffbd2e}.window-controls i:nth-child(3){background:#28c840}.browser-toolbar-spacer{flex-shrink:0;width:42px}.browser-address{background:var(--bg);text-align:center;text-overflow:ellipsis;white-space:nowrap;border-radius:5px;min-width:0;padding:3px 12px;overflow:hidden}.content-frame .project-image-link{text-decoration:none;display:block}.project-image-link img{width:100%;height:auto}.phone-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:2rem 0;display:grid}.phone-gallery .project-shot{margin:0}.phone-gallery img{border:1px solid var(--line-subtle);border-radius:10px}@media (width<=639px){.phone-gallery{grid-template-columns:1fr}}.content-frame .post-subtitle{color:var(--text-nav);margin:0 0 1.5rem}.post-byline{justify-content:space-between;align-items:center;gap:16px;display:flex}.post-details{color:var(--text-nav);font-family:var(--font-ui);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:13px;line-height:20px;display:flex}.content-frame .post-author{color:var(--text-copy);white-space:nowrap;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.post-author img{object-fit:cover;outline:1px solid var(--line-subtle);outline-offset:-1px;border-radius:50%;flex-shrink:0}.post-detail{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.post-detail svg{flex-shrink:0}.post-share{flex-shrink:0;gap:2px;margin-right:-10px;display:flex}.content-frame .post-share a{border-radius:50%;place-items:center;width:36px;height:36px;text-decoration:none;display:grid}.content-frame .post-share a:hover{background:var(--surface-subtle);color:var(--text-heading)}.post-cover{margin:2rem 0}.post-cover .artwork-image{width:100%;height:auto}.story-figure>img{border-radius:10px}.story-figure figcaption{text-align:center}.post-endnote{font-family:var(--font-ui);color:var(--text-nav);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:3rem;font-size:13px;display:flex}@media (width<=639px){.post-byline{display:block;position:relative}.post-details{gap:8px 12px}.post-author{flex-basis:100%}.post-share{margin-right:-8px;position:absolute;top:0;right:0}}@media (width<=639px),(pointer:coarse){.content-frame .post-author{min-height:44px}.content-frame .post-share a{width:44px;height:44px}.post-endnote a{align-items:center;min-height:44px;display:inline-flex}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
