@font-face{font-family:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-ext-400-normal-C2je3j2s.woff2)format("woff2"),url(/assets/instrument-serif-latin-ext-400-normal-CFCUzsTy.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-normal-DnYpCC2O.woff2)format("woff2"),url(/assets/instrument-serif-latin-400-normal-BVbkICAY.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-ext-400-italic-C9HzH3YL.woff2)format("woff2"),url(/assets/instrument-serif-latin-ext-400-italic-D7-lnxEk.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-italic-DKMiL14s.woff2)format("woff2"),url(/assets/instrument-serif-latin-400-italic-u__WvvIK.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Karla Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/karla-latin-ext-wght-normal-Dq0rrjgs.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Karla Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/karla-latin-wght-normal-C3-ma4ov.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#fbf8f4;--panel:#fff;--panel-alt:#f6f3ef;--text:#26221f;--text-muted:#6f6b66;--text-faint:#a09b95;--border:#e7e3dd;--border-strong:#d5cfc7;--accent:#0b6357;--accent-soft:#0b63571a;--dot:#94908a;--dot-opacity:.1;--celestial:#26221f;--shadow-card:0 1px 2px #26221f0a, 0 8px 24px -12px #26221f1f;--font-display:"Instrument Serif", "Iowan Old Style", Georgia, serif;--font-body:"Karla Variable", "Karla", "Helvetica Neue", sans-serif;--font-mono:"JetBrains Mono Variable", "JetBrains Mono", ui-monospace, monospace;--step--1:clamp(.78rem, .76rem + .1vw, .84rem);--step-0:clamp(1rem, .96rem + .2vw, 1.09rem);--step-1:clamp(1.2rem, 1.12rem + .4vw, 1.45rem);--step-2:clamp(1.5rem, 1.34rem + .8vw, 2rem);--step-3:clamp(1.95rem, 1.6rem + 1.7vw, 2.9rem);--step-4:clamp(2.6rem, 1.9rem + 3.4vw, 4.6rem);--step-5:clamp(3.2rem, 2rem + 6vw, 7rem);--leading-tight:1.05;--leading-snug:1.3;--leading-body:1.72;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1.25rem;--space-lg:2rem;--space-xl:3.25rem;--space-2xl:5rem;--space-3xl:8rem;--container:68rem;--container-narrow:42rem;--gutter:clamp(1.25rem, 5vw, 3.5rem);--radius-sm:4px;--radius-md:10px;--radius-lg:18px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--dur-fast:.18s;--dur-med:.38s;--dur-slow:.62s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#242425;--panel:#2e2e2f;--panel-alt:#292929;--text:#f2eae3;--text-muted:#a39a92;--text-faint:#7d756e;--border:#3a3a3b;--border-strong:#4a4a4b;--accent:#3fd5b8;--accent-soft:#3fd5b829;--dot:#cbc0b6;--dot-opacity:.1;--celestial:#f2eae3;--shadow-card:0 1px 2px #0000004d, 0 8px 24px -14px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:6rem}body{background-color:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--step-0);line-height:var(--leading-body);font-synthesis-weight:none;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background-color var(--dur-med) var(--ease-out), color var(--dur-med) var(--ease-out);margin:0}h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:var(--leading-tight);letter-spacing:-.015em;margin:0}p{text-wrap:pretty;margin:0}ul{margin:0;padding:0;list-style:none}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}::selection{background:var(--accent);color:#fff}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.mono-label{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-weight:500}.skip-link{left:var(--gutter);z-index:100;background:var(--panel);color:var(--text);padding:var(--space-sm) var(--space-md);border:1px solid var(--border-strong);border-radius:var(--radius-md);transition:top var(--dur-fast) var(--ease-out);position:absolute;top:-100px}.skip-link:focus{top:var(--space-md)}.stagger>*{opacity:0;animation:rise var(--dur-slow) var(--ease-out) forwards;transform:translateY(14px)}@keyframes rise{to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.stagger>*{opacity:1;transform:none}}.dot-grid{z-index:0;pointer-events:none;opacity:var(--dot-opacity);background-image:radial-gradient(circle at center, var(--dot) 1.1px, transparent 1.2px);transition:opacity var(--dur-med) var(--ease-out);background-size:36px 36px;position:fixed;inset:0}.sun-moon{width:2.75rem;height:2.75rem;color:var(--celestial);transition:background-color var(--dur-fast) var(--ease-out);border-radius:50%;place-items:center;margin-left:-.6rem;display:grid}.sun-moon:hover{background-color:var(--accent-soft)}.sun-moon__svg{width:1.5rem;height:1.5rem;overflow:visible}.sun-moon__disc{fill:currentColor;transition:r var(--dur-slow) var(--ease-spring)}.sun-moon__occluder{transition:cx var(--dur-slow) var(--ease-spring), cy var(--dur-slow) var(--ease-spring)}.sun-moon__rays{stroke:currentColor;stroke-width:1.7px;transform-origin:12px 12px;transition:transform var(--dur-slow) var(--ease-spring), opacity var(--dur-med) var(--ease-out)}[data-theme=dark] .sun-moon__disc{r:9}[data-theme=dark] .sun-moon__occluder{cx:18;cy:4}[data-theme=dark] .sun-moon__rays{opacity:0;transform:rotate(-35deg)scale(.3)}@media (prefers-reduced-motion:reduce){.sun-moon__disc,.sun-moon__occluder,.sun-moon__rays{transition:none}}.face-mark{color:var(--text);line-height:0;display:inline-block}.face-mark svg{width:100%;height:100%;overflow:visible}.face-mark .fm-hair,.face-mark .fm-eye{stroke-dashoffset:0}.face-mark .fm-fill{fill:currentColor}.face-mark[data-drawing=true] .fm-hair{stroke-dasharray:460.65;stroke-dashoffset:460.65px;animation:.85s linear forwards fm-draw-hair}.face-mark[data-drawing=true] .fm-eye--left{stroke-dasharray:257.51;stroke-dashoffset:257.51px;animation:.75s linear .6s forwards fm-draw-left}.face-mark[data-drawing=true] .fm-eye--right{stroke-dasharray:255.6;stroke-dashoffset:255.6px;animation:.75s linear .6s forwards fm-draw-right}.face-mark[data-drawing=true] .fm-fill{fill:#0000;animation:.35s ease-out 1.15s forwards fm-fill}@keyframes fm-draw-hair{0%{stroke-dashoffset:460.65px}to{stroke-dashoffset:0}}@keyframes fm-draw-left{0%{stroke-dashoffset:257.51px}to{stroke-dashoffset:0}}@keyframes fm-draw-right{0%{stroke-dashoffset:255.6px}to{stroke-dashoffset:0}}@keyframes fm-fill{0%{fill:#0000}to{fill:currentColor}}@media (prefers-reduced-motion:reduce){.face-mark[data-drawing=true] .fm-hair,.face-mark[data-drawing=true] .fm-eye,.face-mark[data-drawing=true] .fm-fill{stroke-dashoffset:0;fill:currentColor;animation:none}}.brand-name{position:relative}.brand-name__mark{pointer-events:none;z-index:5;animation:brand-mark-in .22s var(--ease-out) forwards;line-height:0;position:absolute;transform:translate(-50%)}.brand-name__mark[data-placement=above]{bottom:calc(100% + 2px)}.brand-name__mark[data-placement=below]{animation-name:brand-mark-in-below;top:calc(100% + 4px)}@keyframes brand-mark-in{0%{opacity:0;transform:translate(-50%)translateY(4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes brand-mark-in-below{0%{opacity:0;transform:translate(-50%)translateY(-4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (prefers-reduced-motion:reduce){.brand-name__mark{animation:none}}.site-header{z-index:20;background-color:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);transition:border-color var(--dur-med) var(--ease-out), background-color var(--dur-med) var(--ease-out);position:sticky;top:0}.site-header__inner{justify-content:space-between;align-items:center;gap:var(--space-md);min-height:4.5rem;display:flex}.site-header__brand{align-items:center;gap:var(--space-xs);display:flex}.site-header__name{font-family:var(--font-display);font-size:var(--step-1);letter-spacing:-.01em;white-space:nowrap}.site-header__nav{align-items:center;gap:clamp(var(--space-md), 3vw, var(--space-lg));display:flex}.site-header__link{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.08em;color:var(--text-muted);padding-block:var(--space-2xs);transition:color var(--dur-fast) var(--ease-out);position:relative}.site-header__link:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1.5px;transition:transform var(--dur-med) var(--ease-out);position:absolute;bottom:-2px;left:0;transform:scaleX(0)}.site-header__link:hover,.site-header__link[aria-current=true]{color:var(--text)}.site-header__link[aria-current=true]:after{transform:scaleX(1)}.site-header__actions{align-items:center;gap:var(--space-2xs);display:flex}.site-header__actions .sun-moon{margin-left:0;margin-right:-.35rem}.site-header__mark{color:var(--text);align-items:center;display:inline-flex}.nav-toggle{border-radius:var(--radius-sm);width:2.5rem;height:2.5rem;color:var(--text);transition:background-color var(--dur-fast) var(--ease-out);place-items:center;display:grid}.nav-toggle:hover{background-color:var(--accent-soft)}.nav-toggle__bars{width:1.15rem;height:.75rem;display:block;position:relative}.nav-toggle__bars span{width:100%;height:1.5px;transition:transform var(--dur-med) var(--ease-out), opacity var(--dur-fast) var(--ease-out), width var(--dur-med) var(--ease-out);background-color:currentColor;border-radius:1px;position:absolute;left:0}.nav-toggle__bars span:first-child{top:0}.nav-toggle__bars span:nth-child(2){width:70%;top:50%;transform:translateY(-50%)}.nav-toggle__bars span:nth-child(3){bottom:0}.site-header[data-menu-open=true] .nav-toggle__bars span:first-child{transform:translateY(.375rem)rotate(45deg)}.site-header[data-menu-open=true] .nav-toggle__bars span:nth-child(2){opacity:0;width:0}.site-header[data-menu-open=true] .nav-toggle__bars span:nth-child(3){transform:translateY(-.375rem)rotate(-45deg)}.site-header__drawer{visibility:hidden;transition:grid-template-rows var(--dur-med) var(--ease-out), visibility 0s linear var(--dur-med);grid-template-rows:0fr;display:grid}.site-header[data-menu-open=true] .site-header__drawer{visibility:visible;transition:grid-template-rows var(--dur-med) var(--ease-out), visibility 0s;grid-template-rows:1fr}.site-header__drawer-list{align-items:center;gap:var(--space-md);min-height:0;padding-inline:var(--gutter);scrollbar-width:none;display:flex;overflow:auto hidden}.site-header__drawer-list::-webkit-scrollbar{display:none}.site-header__drawer-list li{padding-block:var(--space-sm);opacity:0;transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);flex:none;transform:translateY(-.4rem)}.site-header[data-menu-open=true] .site-header__drawer-list li{opacity:1;transition:opacity var(--dur-med) var(--ease-out) calc(90ms + var(--i) * 60ms), transform var(--dur-med) var(--ease-spring) calc(90ms + var(--i) * 60ms);transform:translateY(0)}.site-header__drawer-list li:first-child{--i:0}.site-header__drawer-list li:nth-child(2){--i:1}.site-header__drawer-list li:nth-child(3){--i:2}.site-header__drawer-list li:nth-child(4){--i:3}.site-header__drawer-list li:nth-child(n+5){--i:4}@media (width<=40rem){.site-header__inner{min-height:3.75rem}.site-header__link{font-size:.72rem}}.site-header__name[data-visible=false]{opacity:0}.site-header__name[data-visible=true]{opacity:1;transition:opacity var(--dur-med) var(--ease-out)}.site-footer{border-top:1px solid var(--border);padding-block:var(--space-xl);margin-top:var(--space-2xl)}.site-footer__inner{justify-content:space-between;align-items:baseline;gap:var(--space-md);flex-wrap:wrap;display:flex}.site-footer__motto{font-family:var(--font-display);font-size:var(--step-1);color:var(--text);font-style:italic}.brand-intro{z-index:30;pointer-events:none;position:fixed;inset:0}.brand-intro__face{will-change:transform, opacity;display:inline-block;position:absolute;top:30%;left:50%;transform:translate(-50%,-50%)}@media (width>=64rem){.brand-intro__face{top:34%;left:72%}}.layout{z-index:1;flex-direction:column;min-height:100vh;display:flex;position:relative}.layout>main{flex:1}.section{padding-block:var(--space-2xl);scroll-margin-top:5rem}.hero+.section{padding-top:var(--space-xl)}.panel{background-color:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:clamp(var(--space-lg), 4vw, var(--space-xl));transition:background-color var(--dur-med) var(--ease-out), border-color var(--dur-med) var(--ease-out)}.stats-row{gap:var(--space-lg);margin:var(--space-lg) 0 0;grid-template-columns:repeat(2,minmax(0,1fr));max-width:34rem;display:grid}.stats-row__tile{gap:var(--space-2xs);padding-left:var(--space-md);border-left:2px solid var(--border-strong);flex-direction:column;display:flex}.stats-row__value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--step-3);letter-spacing:-.02em;color:var(--text);font-weight:600;line-height:1}.stats-row__tile[data-filled=false] .stats-row__value{color:var(--text-faint)}.stats-row__label{font-size:var(--step--1);color:var(--text-muted);max-width:18ch;margin:0;line-height:1.45}.stats-row__todo{color:var(--text-faint);margin:0;font-size:.65rem}@media (width<=30rem){.stats-row{gap:var(--space-md)}}.hero{padding-block:clamp(var(--space-lg), 5vh, var(--space-xl)) var(--space-xl)}.hero__inner{gap:var(--space-md);flex-direction:column;display:flex}.hero__inner>:first-child{animation-delay:40ms}.hero__inner>:nth-child(2){animation-delay:.12s}.hero__inner>:nth-child(3){animation-delay:.22s}.hero__inner>:nth-child(4){animation-delay:.33s}.hero__title{letter-spacing:-.03em;max-width:20ch;color:var(--text-muted);font-size:clamp(2.4rem,1.9rem + 2.6vw,4rem)}.hero__tagline{color:var(--text);display:inline-block}.hero__tagline span{color:var(--accent)}.hero__summary{max-width:44ch;color:var(--text-muted);font-size:var(--step-1);line-height:var(--leading-snug);margin-top:var(--space-xs)}.section-heading{gap:var(--space-xs);margin-bottom:var(--space-xl);flex-direction:column;display:flex}.section-heading h2{font-size:var(--step-3)}.section-heading__sub{color:var(--text-muted);max-width:46ch}.tag-list{gap:var(--space-xs);flex-wrap:wrap;display:flex}.tag{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-muted);background-color:var(--panel-alt);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:.2rem .6rem;font-size:.72rem;font-weight:500;line-height:1.6}.project-card{gap:clamp(var(--space-md), 3vw, var(--space-lg));transition:border-color var(--dur-med) var(--ease-out), transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);grid-template-columns:minmax(0,15rem) minmax(0,1fr);align-items:start;display:grid}.project-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.project-card__media{border-radius:var(--radius-md);border:1px solid var(--border);background-color:var(--panel-alt);aspect-ratio:4/3;display:block;overflow:hidden}.project-card__media img{object-fit:cover;object-position:top center;width:100%;height:100%;transition:transform var(--dur-slow) var(--ease-out)}.project-card:hover .project-card__media img{transform:scale(1.03)}.project-card__body{gap:var(--space-sm);flex-direction:column;display:flex}.project-card__head{justify-content:space-between;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap;display:flex}.project-card__name{font-size:var(--step-2)}.project-card__name a{align-items:baseline;gap:.35rem;display:inline-flex}.project-card__link-text{background-image:linear-gradient(var(--accent), var(--accent));transition:background-size var(--dur-med) var(--ease-out);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1.5px}.project-card__name a:hover .project-card__link-text{background-size:100% 1.5px}.project-card__arrow{font-family:var(--font-body);color:var(--text-faint);transition:transform var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);font-size:.7em}.project-card__name a:hover .project-card__arrow{color:var(--accent);transform:translate(2px,-2px)}.project-card__status{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:.4rem;font-size:.68rem;display:inline-flex}.project-card__dot{background-color:var(--text-faint);border-radius:50%;width:6px;height:6px}.project-card__status[data-status=active] .project-card__dot{background-color:#4a9d6d}.project-card__kind{font-size:.7rem}.project-card__role{color:var(--text);max-width:60ch}.project-card__outcome{gap:var(--space-2xs);padding-top:var(--space-sm);border-top:1px dashed var(--border-strong);font-size:var(--step-0);flex-direction:column;display:flex}.project-card__outcome-label{font-size:.62rem}.project-card__outcome[data-empty=true]{color:var(--text-faint);font-style:italic}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=46rem){.project-card{grid-template-columns:minmax(0,1fr)}.project-card__media{aspect-ratio:16/9}}.projects__list{gap:var(--space-md);flex-direction:column;display:flex}.projects__cta{margin-top:var(--space-xl);color:var(--text-muted)}.projects__cta-link{color:var(--text);border-bottom:1.5px solid var(--border-strong);transition:border-color var(--dur-fast) var(--ease-out);padding-bottom:1px}.projects__cta-link:hover{border-bottom-color:var(--accent)}.timeline{gap:var(--space-xl);padding:0 0 0 var(--space-lg);flex-direction:column;margin:0;list-style:none;display:flex;position:relative}.timeline:before{content:"";background:linear-gradient(var(--border-strong), var(--border-strong) 70%, transparent);width:1px;position:absolute;top:.55rem;bottom:.55rem;left:4px}.timeline__item{position:relative}.timeline__marker{left:calc(-1 * var(--space-lg) + 1px);background-color:var(--bg);border:1.5px solid var(--border-strong);border-radius:50%;width:7px;height:7px;position:absolute;top:.5rem}.timeline__item[data-current=true] .timeline__marker{background-color:var(--accent);border-color:var(--accent)}.timeline__content{gap:var(--space-xs);flex-direction:column;display:flex}.timeline__period{font-size:.68rem}.timeline__title{font-size:var(--step-1);line-height:var(--leading-snug)}.timeline__company{color:var(--text-muted)}.timeline__scope{color:var(--text-muted);max-width:60ch}.timeline__scope--list{flex-direction:column;gap:.35em;padding-left:1.1em;list-style:outside;display:flex}.about__grid{gap:clamp(var(--space-lg), 5vw, var(--space-2xl));grid-template-columns:minmax(0,16rem) minmax(0,1fr);align-items:start;display:grid}.about__aside{gap:var(--space-md);flex-direction:column;display:flex;position:sticky;top:7rem}.about__headshot{border-radius:var(--radius-lg);border:1px solid var(--border);filter:grayscale();width:100%;transition:filter var(--dur-slow) var(--ease-out)}.about__headshot:hover{filter:grayscale(0)}.about__traits{gap:var(--space-2xs);flex-direction:column;display:flex}.about__traits li:before{content:"- ";color:var(--text-faint)}.about__prose{gap:var(--space-md);max-width:64ch;color:var(--text-muted);flex-direction:column;display:flex}.about__lead{font-family:var(--font-display);font-size:var(--step-2);color:var(--text);line-height:1.4}@media (width<=46rem){.about__grid{grid-template-columns:minmax(0,1fr)}.about__aside{align-items:center;gap:var(--space-lg);flex-direction:row;position:static}.about__headshot{flex:none;width:8rem}}.toolkit{flex-direction:column;gap:0;margin:0;display:flex}.toolkit__group{gap:var(--space-md);padding-block:var(--space-md);border-top:1px solid var(--border);grid-template-columns:minmax(0,12rem) minmax(0,1fr);align-items:baseline;display:grid}.toolkit__group:last-child{border-bottom:1px solid var(--border)}.toolkit__title{font-family:var(--font-display);font-size:var(--step-1)}.toolkit__items{margin:0}@media (width<=40rem){.toolkit__group{gap:var(--space-sm);grid-template-columns:minmax(0,1fr)}}.contact .section-heading{margin-bottom:var(--space-lg)}.contact__grid{gap:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));display:grid}.contact__email{margin-top:var(--space-xs);font-family:var(--font-display);font-size:var(--step-2);color:var(--accent);transition:border-color var(--dur-fast) var(--ease-out);word-break:break-word;border-bottom:1.5px solid #0000;display:inline-block}.contact__email:hover{border-bottom-color:var(--accent)}.contact__social{gap:var(--space-2xs);margin-top:var(--space-xs);font-size:var(--step-1);flex-direction:column;display:flex}.contact__social a{color:var(--text-muted);transition:color var(--dur-fast) var(--ease-out)}.contact__social a:hover{color:var(--text)}
