:root{color-scheme:light;font-family:"Source Serif 4",Iowan Old Style,Baskerville,Georgia,Times New Roman,serif;font-synthesis:none;--paper: #fbfbfa;--paper-soft: #f4f4f2;--ink: #383733;--ink-strong: #282824;--muted: #6e6b64;--faint: #89857d;--line: rgba(48, 48, 43, .15);--line-strong: rgba(48, 48, 43, .3);--accent: #73786b;--paper-wash: transparent;--texture: none;--font: "Source Serif 4", "Iowan Old Style", Baskerville, Georgia, "Times New Roman", serif;--text-xs: .76rem;--text-sm: .88rem;--text-base: 1rem;--text-md: 1.13rem;--text-lg: 1.45rem;--text-xl: 2.05rem}:root[data-theme=night]{color-scheme:dark;--paper: #302f2c;--paper-soft: #383632;--ink: #ddd7ce;--ink-strong: #eee8df;--muted: #aaa39a;--faint: #918a82;--line: rgba(230, 223, 213, .15);--line-strong: rgba(230, 223, 213, .29);--accent: #a5a794;--paper-wash: transparent;--texture: url(/assets/paper-night.jpg)}*{box-sizing:border-box}html{background:var(--paper);scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--paper);background-image:linear-gradient(var(--paper-wash),var(--paper-wash)),var(--texture);background-size:760px 760px;color:var(--ink);font-family:var(--font);font-size:18px;font-weight:400;font-optical-sizing:auto;line-height:1.62;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;transition:color .26s ease,background-color .26s ease}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration-color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.2em}a:hover{color:var(--accent)}button:focus-visible,a:focus-visible{outline:1px solid var(--accent);outline-offset:5px}::selection{background:var(--accent);color:var(--paper)}.skip-link{position:fixed;z-index:20;top:12px;left:12px;padding:7px 11px;background:var(--ink-strong);color:var(--paper);transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-shell{position:relative;width:min(calc(100% - 64px),920px);min-height:100vh;margin:0 auto}.site-header{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:34px;min-height:88px;border-bottom:1px solid var(--line)}.fan-mark{display:grid;width:44px;height:50px;place-items:center;text-decoration:none}.fan-mark-images{position:relative;display:block;width:43px;height:46px;transform-origin:50% 76%;transition:transform .28s cubic-bezier(.22,.61,.36,1)}.fan-mark-art{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;pointer-events:none;transform-origin:50% 76%;transition:opacity .26s ease,transform .32s cubic-bezier(.22,.61,.36,1)}.fan-mark-art--folded{transform:scale(1.15)}.fan-mark-art--open,.fan-mark-art--notes{opacity:0;transform:scale(.62) rotate(-9deg)}@media(hover:hover){.fan-mark:hover .fan-mark-art--folded{opacity:0;transform:scale(.84) rotate(-7deg)}.fan-mark:hover .fan-mark-art--open{opacity:1;transform:scale(1.08) rotate(0)}}.fan-mark:focus-visible .fan-mark-art--folded{opacity:0;transform:scale(.84) rotate(-7deg)}.fan-mark:focus-visible .fan-mark-art--open{opacity:1;transform:scale(1.08) rotate(0)}.fan-mark--open .fan-mark-art--folded{opacity:0;transform:scale(.84) rotate(-7deg)}.fan-mark--open .fan-mark-art--open{opacity:1;transform:scale(1.08) rotate(0)}.fan-mark--cv .fan-mark-art--folded{transform:scale(1.13) rotate(1.25deg)}.fan-mark--notes .fan-mark-art--folded,.fan-mark--notes .fan-mark-art--open{opacity:0;transform:scale(.84) rotate(-7deg)}.fan-mark--notes .fan-mark-art--notes{opacity:1;transform:scale(1.08) rotate(0)}@media(hover:hover){.fan-mark--notes:hover .fan-mark-art--folded,.fan-mark--notes:hover .fan-mark-art--open{opacity:0;transform:scale(.84) rotate(-7deg)}.fan-mark--open:hover .fan-mark-images{transform:translateY(-1px) rotate(-.35deg)}.fan-mark--open:hover .fan-mark-art--open{transform:scale(1.12) rotate(-.55deg)}.fan-mark--cv:hover .fan-mark-images{transform:translateY(-1px)}.fan-mark--cv:hover .fan-mark-art--open{transform:scale(1.1) rotate(0) translateY(-1px)}.fan-mark--notes:hover .fan-mark-images{transform:translateY(-1px) rotate(.25deg)}.fan-mark--notes:hover .fan-mark-art--notes{transform:scale(1.13) rotate(.5deg) translateY(-1px)}}.fan-mark--open:focus-visible .fan-mark-images{transform:translateY(-1px) rotate(-.35deg)}.fan-mark--open:focus-visible .fan-mark-art--open{transform:scale(1.12) rotate(-.55deg)}.fan-mark--cv:focus-visible .fan-mark-images{transform:translateY(-1px)}.fan-mark--cv:focus-visible .fan-mark-art--open{transform:scale(1.1) rotate(0) translateY(-1px)}.fan-mark--notes:focus-visible .fan-mark-images{transform:translateY(-1px) rotate(.25deg)}.fan-mark--notes:focus-visible .fan-mark-art--folded,.fan-mark--notes:focus-visible .fan-mark-art--open{opacity:0;transform:scale(.84) rotate(-7deg)}.fan-mark--notes:focus-visible .fan-mark-art--notes{transform:scale(1.13) rotate(.5deg) translateY(-1px)}.site-header nav{display:flex;align-items:center;gap:28px}.site-header nav a,.theme-toggle button{position:relative;border:0;padding:4px 0;background:transparent;color:var(--ink);font-family:var(--font);font-size:var(--text-sm);text-decoration:none;cursor:pointer}.site-header nav a:after,.theme-toggle button:after{position:absolute;right:0;bottom:0;left:0;height:1px;background:var(--accent);content:"";transform:scaleX(0);transform-origin:right;transition:transform .16s ease}.site-header nav a:hover:after,.site-header nav a.active:after,.theme-toggle button:hover:after,.theme-toggle button[aria-pressed=true]:after{transform:scaleX(1);transform-origin:left}.theme-toggle{display:flex;align-items:center;gap:6px;color:var(--faint)}.theme-toggle button[aria-pressed=true]{color:var(--accent);font-style:italic}main{min-height:68vh}.eyebrow,.section-label,.post-meta,.work-type,.work-status,.timeline-period{margin:0;color:var(--muted);font-size:var(--text-xs);font-style:italic;letter-spacing:.055em}.hero{max-width:790px;padding:68px 0 62px;border-bottom:1px solid var(--line-strong)}.hero-with-card{display:grid;grid-template-columns:minmax(0,1fr) 246px;align-items:center;max-width:920px;gap:clamp(44px,7vw,82px)}.hero-copy{max-width:610px}.hero h1,.page-intro h1,.single-note h1{margin:13px 0 0;color:var(--ink-strong);font-family:var(--font);font-weight:500;letter-spacing:-.025em}.hero h1{font-size:clamp(3.5rem,7.2vw,4.75rem);line-height:.98}.hero-line{max-width:610px;margin:28px 0 0;color:var(--ink);font-size:clamp(1.45rem,2.8vw,1.82rem);line-height:1.28}.intro{max-width:600px;margin:24px 0 0;color:var(--muted);font-size:1.08em;line-height:1.6}.hero-contact{max-width:600px;margin:19px 0 0;color:var(--muted);font-size:var(--text-sm);line-height:1.55}.hero-contact a{color:var(--ink);text-decoration-color:var(--sage);text-decoration-thickness:1px;text-underline-offset:4px}.hero-contact a:hover,.hero-contact a:focus-visible{color:var(--accent)}.portrait-card{justify-self:end;width:246px;margin:0;border:0;padding:0;background:transparent;color:var(--ink);font-family:var(--font);text-align:left;cursor:pointer;transition:transform .22s ease}.portrait-card-image{position:relative;display:block;aspect-ratio:1;overflow:hidden;background:var(--paper-soft);box-shadow:7px 9px color-mix(in srgb,var(--accent) 12%,transparent);transition:box-shadow .22s ease}.portrait-card-art{display:block;width:100%;height:100%;object-fit:cover}.portrait-card-art--active{position:relative;z-index:2;animation:portrait-image-in .44s cubic-bezier(.22,.61,.36,1) both;transition:transform .26s ease}.portrait-card-art--leaving{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;animation:portrait-image-out .44s ease both}.portrait-card-note{display:grid;gap:3px;margin:12px 8px 0;animation:note-change .44s cubic-bezier(.22,.61,.36,1) both}.portrait-card-note>span{color:var(--faint);font-size:var(--text-xs);font-style:italic;letter-spacing:.05em}.portrait-card-note strong{max-width:230px;color:var(--muted);font-size:var(--text-sm);font-weight:400;line-height:1.42}.portrait-card:focus-visible{outline:1px solid var(--accent);outline-offset:7px}@media(hover:hover){.portrait-card:hover{transform:translateY(-4px) rotate(.35deg)}.portrait-card:hover .portrait-card-image{box-shadow:10px 12px color-mix(in srgb,var(--accent) 17%,transparent)}.portrait-card:hover .portrait-card-art--active{transform:scale(1.018) rotate(-.15deg)}}.portrait-card:active{transform:translateY(-1px) rotate(-.2deg)}@keyframes note-change{0%{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes portrait-image-in{0%{opacity:0;transform:scale(.972) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes portrait-image-out{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(1.018) translateY(-3px)}}.home-notes{max-width:780px;padding:48px 0 68px}.section-heading-row{display:flex;align-items:baseline;justify-content:space-between;min-height:22px;margin-bottom:8px}.section-heading-row .section-label{color:var(--ink)}.work-list,.plain-list,.tag-list{margin:0;padding:0;list-style:none}.item-number{color:var(--faint);font-size:var(--text-sm);font-style:italic}.recent-notes h3,.archive-list h2,.work-list h2,.timeline h3{margin:0;color:var(--ink-strong);font-family:var(--font);font-size:var(--text-lg);font-weight:500;line-height:1.2}.recent-notes h3 a,.archive-list h2 a{text-decoration:none}.text-link,.quiet-link{display:inline-block;color:var(--accent);font-size:var(--text-sm);text-decoration:none;border-bottom:1px solid currentColor}.work-link{display:inline-block;margin-top:14px;color:var(--accent);font-size:var(--text-sm);text-decoration:none;border-bottom:1px solid currentColor}.quiet-link{color:var(--muted);font-size:var(--text-xs)}.notes-list article{padding:15px 0 17px;border-top:1px solid var(--line)}.notes-list article:last-child{border-bottom:1px solid var(--line)}.post-meta{display:flex;justify-content:space-between;gap:20px;color:var(--faint)}.recent-notes h3{margin:6px 0 5px;font-size:var(--text-md)}.recent-notes article>p:last-child{margin:0;color:var(--muted);font-size:var(--text-sm);line-height:1.48}.home-notes .notes-list article{display:grid;grid-template-columns:132px minmax(0,1fr);column-gap:28px;padding:21px 0 22px}.home-notes .post-meta{display:block;grid-row:1 / span 2;line-height:1.45}.home-notes .post-meta span{display:block;margin-top:3px}.home-notes .recent-notes h3{margin:0;font-size:1.42rem}.home-notes .recent-notes article>p:last-child{margin-top:5px;font-size:var(--text-base);line-height:1.52}.browse-link{margin-top:22px}.site-footer{display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px;min-height:84px;border-top:1px solid var(--line);color:var(--faint);font-size:var(--text-xs)}.site-footer p{margin:0}.footer-anchor{justify-self:end;color:var(--muted);text-decoration:none}.page-intro{max-width:720px;padding:68px 0 58px}.page-intro h1,.single-note h1{font-size:clamp(2.65rem,5.7vw,3.45rem);line-height:1.04}.page-deck,.note-summary{max-width:640px;margin-top:23px;color:var(--muted);font-size:1.06em;line-height:1.55}.page-deck p,.note-summary{margin-bottom:0}.page-actions{margin-top:22px}.cv-layout,.notes-layout,.work-layout{margin-bottom:76px}.cv-main{max-width:720px}.cv-section{padding-top:32px}.cv-section+.cv-section{margin-top:42px}.timeline{margin-top:12px}.timeline article{display:grid;grid-template-columns:82px 1fr;gap:18px;padding:23px 0 25px;border-top:1px solid var(--line)}.timeline h3{font-size:var(--text-md)}.cv-section>.section-label,.notes-layout>.section-label,.work-layout>.section-label,.work-archive>.section-label{font-size:1.05rem;letter-spacing:.04em}.notes-layout>.section-label,.work-layout>.section-label{display:block;padding-top:32px}.timeline-period{font-size:.88rem;letter-spacing:.04em}.timeline-place{margin:3px 0 8px;color:var(--accent);font-size:var(--text-sm);font-style:italic}.timeline article>div>p:last-child{max-width:570px;margin:0;color:var(--muted);font-size:1em;line-height:1.6}.cv-section-intro{max-width:570px;margin:12px 0 0;color:var(--muted);font-size:1em;line-height:1.6}.plain-list{margin-top:14px}.plain-list li{padding:7px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--text-sm)}.recognition-list{margin:14px 0 0;padding:0;list-style:none}.recognition-list li{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:9px;padding:9px 0 11px;border-bottom:1px solid var(--line)}.recognition-list span{grid-row:1 / span 2;color:var(--faint);font-size:var(--text-xs);font-style:italic}.recognition-list strong{color:var(--ink);font-size:var(--text-sm);font-weight:500;line-height:1.35}.recognition-list p{margin:3px 0 0;font-size:var(--text-xs);line-height:1.45}.recognition-list--grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:46px}.recognition-list--grid li{padding:13px 0 15px}.work-list,.archive-list{margin-bottom:76px;border-top:1px solid var(--line-strong)}.work-layout>.work-list{margin-top:12px;border-top-color:var(--line)}.work-layout>.work-list>li{grid-template-columns:38px minmax(0,1fr)}.notes-layout .archive-list{margin:12px 0 0;border-top-color:var(--line)}.work-list>li{display:grid;grid-template-columns:38px minmax(0,1fr) 126px;gap:26px;align-items:start;padding:29px 0 32px;border-bottom:1px solid var(--line)}.work-list--embedded{margin:18px 0 0}.work-list--embedded>li{grid-template-columns:38px minmax(0,1fr)}.work-list--embedded h2{font-size:var(--text-lg)}.work-list h2{margin:5px 0 9px;font-size:var(--text-xl)}.work-copy>p:not(.work-type){max-width:570px;margin:0;color:var(--muted);font-size:1em;line-height:1.6}.work-status{text-align:right}.tag-list{display:flex;flex-wrap:wrap;margin-top:18px;color:var(--faint);font-size:var(--text-xs);font-style:italic}.tag-list li+li{margin-left:10px;border-left:1px solid var(--line-strong);padding-left:10px}.archive-list article{display:grid;grid-template-columns:38px 1fr;gap:26px;padding:26px 0 29px;border-bottom:1px solid var(--line)}.archive-list h2{margin:7px 0 8px;font-size:var(--text-xl)}.archive-list article>div>p:last-child{max-width:650px;margin:0;color:var(--muted);font-size:1em;line-height:1.6}.work-archive{max-width:720px}.experiment-list{margin:12px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}.experiment-list li{display:grid;grid-template-columns:54px minmax(0,1fr);gap:18px;padding:17px 0 19px;border-bottom:1px solid var(--line)}.experiment-list time{color:var(--faint);font-size:var(--text-xs);font-style:italic}.experiment-list h3{margin:0;color:var(--ink);font-size:var(--text-md);font-weight:500;line-height:1.25}.experiment-list p{margin:3px 0 0;color:var(--muted);font-size:var(--text-sm);line-height:1.45}.footer-utilities{display:flex;justify-self:end;gap:20px}.footer-cv,.footer-anchor{color:var(--muted);text-decoration:none}.single-note{max-width:700px;padding:66px 0 88px}.single-note .back-link{margin-bottom:60px}.single-note header{padding-bottom:36px;border-bottom:1px solid var(--line-strong)}.single-note h1{margin-top:18px}.note-body{max-width:640px;padding-top:31px;color:var(--ink);font-size:1.06em;line-height:1.72}.note-body p,.note-body ul,.note-body ol,.note-body blockquote{margin:0 0 1.42em}.note-body ul,.note-body ol{padding-left:1.25em}.note-body li+li{margin-top:.42em}.note-body h2,.note-body h3{margin:1.8em 0 .65em;color:var(--ink-strong);font-family:var(--font);font-weight:500}.note-body h2{font-size:1.72rem;line-height:1.16}.note-body h3{font-size:1.34rem;line-height:1.25}.note-body figure{margin:2.25em 0 2.1em}.note-body figure img,.note-body figure video{display:block;width:100%;border:1px solid var(--line);object-fit:cover}.note-body figure img{aspect-ratio:3 / 2}.note-body figure audio{display:block;width:100%}.note-body figcaption{margin-top:9px;color:var(--faint);font-size:var(--text-xs);font-style:italic;line-height:1.45}.note-body hr{width:48px;height:1px;margin:2.5em 0;border:0;background:var(--line-strong)}.note-body blockquote{border-left:1px solid var(--accent);padding-left:20px;color:var(--muted);font-style:italic}@media(max-width:820px){.site-shell{width:min(calc(100% - 40px),680px)}.site-header{gap:20px}.hero-with-card{grid-template-columns:1fr;gap:34px}.portrait-card{justify-self:start}}@media(max-width:600px){body{font-size:17.5px}.site-shell{width:calc(100% - 30px)}.site-header{position:sticky;z-index:10;top:0;grid-template-columns:38px minmax(0,1fr) auto;min-height:58px;gap:8px;margin:0 -15px;padding:7px 15px;background:color-mix(in srgb,var(--paper) 91%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.site-header nav{grid-column:2;grid-row:1;justify-content:center;gap:clamp(10px,3vw,18px);padding:0;white-space:nowrap}.site-header nav a,.theme-toggle button{font-size:.84rem}.fan-mark{width:38px;height:38px}.fan-mark-images{width:34px;height:37px}.theme-toggle{grid-column:3;grid-row:1;justify-self:end;gap:4px;white-space:nowrap}.hero{padding:51px 0 48px}.hero h1{font-size:clamp(3.1rem,16.5vw,4rem)}.hero-line{margin-top:24px;font-size:1.34rem}.intro{margin-top:21px;font-size:1.05em;line-height:1.62}.hero-with-card{gap:29px}.portrait-card{justify-self:center;width:min(100%,232px)}.home-notes{padding:39px 0 55px}.page-intro{padding:54px 0 48px}.page-intro h1,.single-note h1{font-size:clamp(2.35rem,12vw,3rem)}.page-deck,.note-summary{font-size:1.03em;line-height:1.58}.timeline article{grid-template-columns:1fr;gap:5px}.recognition-list--grid{grid-template-columns:1fr}.work-list>li{grid-template-columns:29px 1fr;gap:10px}.work-status{grid-column:2;margin:10px 0 0;text-align:left}.work-list:not(.work-list--embedded) h2,.archive-list h2{font-size:1.75rem}.archive-list article{grid-template-columns:29px 1fr;gap:9px}.experiment-list li{grid-template-columns:44px minmax(0,1fr);gap:10px}.home-notes .notes-list article{display:block;padding:19px 0 20px}.home-notes .post-meta{display:flex;justify-content:space-between;margin-bottom:6px}.home-notes .post-meta span{margin:0}.home-notes .recent-notes h3{font-size:var(--text-lg)}.post-meta{align-items:flex-start;flex-direction:column;gap:0}.single-note{padding-top:54px}.single-note .back-link{margin-bottom:48px}.note-body{font-size:1.04em;line-height:1.72}.site-footer{grid-template-columns:1fr auto;padding:22px 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{.theme-toggle,.skip-link,.footer-anchor{display:none}body{background:#fff;color:#111}}
