@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/_astro/figtree-latin-ext-wght-normal.DCwSJGxG.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:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/_astro/figtree-latin-wght-normal.D_ZTVpCC.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{color-scheme:dark;--bg:#0a0b0c;--text:#ebe7dd;--muted:#b4b0a6;--accent:#a83d38;--accent-text:#d4625b;--surface:#1f2022;--rule:#ebe7dd8c;--line:#ebe7dd33;--font:"Figtree Variable", "Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--fs-body:clamp(1.0625rem, .98rem + .25vw, 1.15rem);--fs-small:.9375rem;--fs-nav:clamp(1.05rem, .75rem + .6vw, 1.45rem);--fs-display:clamp(2.5rem, 4.2vw, 4.75rem);--fs-lead:clamp(1.125rem, .95rem + .42vw, 1.3rem);--fs-label:clamp(1rem, .9rem + .2vw, 1.15rem);--fs-row-title:clamp(2.1rem, 4.2vw, 4.75rem);--fs-row-num:clamp(1.6rem, 2.4vw, 2.75rem);--fs-row-role:clamp(1rem, .7rem + .7vw, 1.4rem);--gutter:clamp(1.25rem, 4.6vw, 4.5rem);--col-gap:clamp(1rem, 1.6vw, 1.5rem);--max:1720px;--section:clamp(4rem, 9vw, 8rem);--ease:cubic-bezier(.2, .6, .2, 1);--t:.22s}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;margin:0;font-weight:400;line-height:1.55;display:flex;overflow-x:clip}h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0;padding:0;font-weight:400}ul,ol{list-style:none}img,video,iframe{max-width:100%;display:block}a{color:inherit;text-underline-offset:.22em;transition:color var(--t) var(--ease), text-decoration-color var(--t) var(--ease);text-decoration-line:underline;text-decoration-color:#ebe7dd66;text-decoration-thickness:1px}a:hover{color:var(--accent-text);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--text);outline-offset:4px;border-radius:2px}::selection{background:var(--accent);color:var(--text)}.skip-link{left:var(--gutter);z-index:10;background:var(--text);color:var(--bg);padding:.6rem .9rem;text-decoration:none;position:absolute;top:0;transform:translateY(-120%)}.skip-link:focus{color:var(--bg);transform:translateY(.75rem)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.wrap{width:100%;max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}main{flex:1 0 auto}main:focus{outline:none}.site-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 2rem;padding-block:clamp(1.25rem,2.6vw,2.25rem) 0;display:flex}.site-name{line-height:0;text-decoration:none;display:inline-block}.site-name img{width:auto;height:clamp(1.7rem,1.1rem + 1.4vw,2.6rem);transition:opacity var(--t) var(--ease)}.site-name:hover img{opacity:.8}.site-nav{font-size:var(--fs-nav)}.site-nav ul{gap:clamp(1.1rem,2.6vw,3rem);display:flex}.site-nav a{padding-block:.3rem;text-decoration-line:underline;text-decoration-color:#0000;display:inline-block}.site-nav a:hover{text-decoration-color:currentColor}.site-nav a[aria-current]{text-decoration-color:var(--accent-text)}.site-footer{margin-top:var(--section);border-top:1px solid var(--line);color:var(--muted);font-size:var(--fs-small);padding-block:1.75rem 2.5rem}.site-footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;display:flex}.accent{color:var(--accent-text)}.muted{color:var(--muted)}.arrow{transition:transform var(--t) var(--ease);display:inline-block}.todo{color:var(--muted);border:1px dashed #d4625b99;padding:.2em .65em .25em;font-size:.95em;line-height:1.45;display:inline-block}.todo-tag{color:var(--accent-text);letter-spacing:.04em;margin-right:.55em;font-size:.78em}.frame{background:var(--surface);width:100%;position:relative;overflow:hidden}.frame>img,.frame>picture,.frame>picture>img,.frame>video,.frame>iframe{object-fit:cover;object-position:var(--focus,center);border:0;width:100%;height:100%}.frame>video{object-fit:contain;background:#000}.frame>video[data-cover]{object-fit:cover;background:0 0;position:absolute;inset:0}.ph{text-align:center;color:#ebe7ddd1;font-size:var(--fs-lead);place-content:center;gap:.35rem;padding:1rem;display:grid;position:absolute;inset:0}.ph small{color:var(--muted);letter-spacing:.06em;font-size:.72rem;display:block}.cover-toggle{width:2.5rem;height:2.5rem;color:var(--text);font:inherit;cursor:pointer;transition:background-color var(--t) var(--ease), border-color var(--t) var(--ease);background:#0a0b0cb8;border:1px solid #ebe7dd66;place-items:center;padding:0;font-size:.7rem;display:grid;position:absolute;bottom:.75rem;right:.75rem}.cover-toggle[hidden]{display:none}.cover-toggle:hover{border-color:var(--text);background:#0a0b0ceb}body.is-home{min-height:100vh}.split{grid-template-columns:40.35% minmax(0,1fr);min-height:100dvh;display:grid}.split-left{border-right:1px solid var(--rule);flex-direction:column;justify-content:space-between;height:100dvh;padding:clamp(1.5rem,2.3vw,2.6rem) clamp(1.5rem,2.6vw,3rem) clamp(2rem,5vw,5rem);display:flex;position:sticky;top:0}.wordmark{margin-top:clamp(.5rem,1.5vw,1.5rem);line-height:0}.wordmark img{width:min(100%,clamp(15rem,31vw,38rem));height:auto;display:block}.tagline{font-size:clamp(1.05rem,.5rem + 1.15vw,1.9rem);line-height:1.25}.tagline-rule{background:var(--accent);width:clamp(3rem,4.4vw,4.5rem);height:4px;margin-top:clamp(.9rem,1.6vw,1.5rem);display:block}.left-foot{max-width:30em}.intro-text{max-width:27em;color:var(--muted);text-wrap:pretty;margin-top:clamp(1rem,1.6vw,1.5rem);font-size:clamp(1rem,.75rem + .5vw,1.2rem);line-height:1.45}.left-foot .explore{margin-top:clamp(.6rem,1vw,1rem)}.split-right{min-width:0;padding:clamp(.9rem,1.4vw,1.6rem) clamp(1.25rem,2.4vw,2.6rem) clamp(2rem,4vw,4rem) clamp(1.25rem,3.6vw,4.5rem)}.split-nav{justify-content:flex-end;margin-bottom:clamp(.25rem,.5vw,.6rem);display:flex}.rows{display:block}.row{border-top:1px solid var(--rule);position:relative}.row:first-child{border-top:0}.row-link{color:var(--text);grid-template-columns:clamp(3rem,5vw,6rem) minmax(0,1fr) auto;align-items:start;column-gap:.25rem;padding-block:clamp(.8rem,1vw,1.2rem);text-decoration:none;display:grid}.row-num{font-size:var(--fs-row-num);color:var(--accent);padding-top:.35em;font-weight:700;line-height:1}.row-title{font-size:var(--fs-row-title);letter-spacing:-.02em;text-wrap:balance;transition:color var(--t) var(--ease);font-weight:700;line-height:1.02}.row-role{font-size:var(--fs-row-role);color:var(--text);margin-top:.3rem;line-height:1.3;display:block}.row-arrow{align-self:start;padding-top:.1em;font-size:clamp(1.6rem,2.6vw,3rem);line-height:1}.row-link:hover .row-title,.row-link:focus-visible .row-title{color:var(--accent-text)}.row:hover .row-arrow,.row-link:focus-visible .row-arrow{transform:translate(.25em)}.row-link:focus-visible{outline-offset:-4px}.row-media{transition:grid-template-rows .38s var(--ease);grid-template-rows:1fr;display:grid}.row-media-inner{min-height:0;transition:visibility linear;overflow:hidden}.row-frame-wrap{--base:clamp(15rem, 38vw, 36rem);--inset:clamp(.5rem, 1vw, 1.1rem);width:min(calc(100% - var(--inset)), calc(var(--base) * sqrt(var(--r))), calc(75vh * var(--r)));margin:0 0 clamp(1rem, 1.6vw, 1.75rem) var(--inset);position:relative}.row-frame-link{text-decoration:none;display:block}.row-frame-link .frame{aspect-ratio:var(--r);transition:filter var(--t) var(--ease)}.row:hover .row-frame-link .frame img{filter:brightness(1.08)}@media (width>=900px) and (hover:hover){.row-media{grid-template-rows:0fr}.row-media-inner{visibility:hidden;transition:visibility 0s linear .38s}.rows:not(:hover):not(:focus-within) .row:first-child .row-media,.row:hover .row-media,.row:focus-within .row-media{grid-template-rows:1fr}.rows:not(:hover):not(:focus-within) .row:first-child .row-media-inner,.row:hover .row-media-inner,.row:focus-within .row-media-inner{visibility:visible;transition-delay:0s}}@media (width<=899.98px){.split{display:block;position:relative}.split-left{height:auto;min-height:0;padding:1.25rem var(--gutter) 2rem;border-right:0;border-bottom:1px solid var(--rule);gap:2.5rem;position:relative}.wordmark{margin-top:3.5rem}.wordmark img{width:min(78%,22rem)}.split-right{padding:1.25rem var(--gutter) 3rem}.split-nav{top:1.1rem;right:var(--gutter);z-index:2;justify-content:flex-start;margin:0;position:absolute}.row-frame-wrap{--inset:0rem;width:100%}.row-link{grid-template-columns:2.75rem minmax(0,1fr) auto}}.display{max-width:11em;font-size:var(--fs-display);letter-spacing:-.02em;color:var(--text);text-wrap:balance;font-weight:700;line-height:1.04}.lead{max-width:29em;color:var(--muted);font-size:var(--fs-lead);text-wrap:pretty;margin-top:clamp(1rem,2vw,1.6rem);line-height:1.45}.explore{font-size:var(--fs-lead);margin-top:clamp(1.5rem,3.2vw,2.6rem);padding-block:.4rem;text-decoration:none;display:inline-block}.explore .arrow{color:var(--accent-text)}.explore:hover .arrow{transform:translate(.18em,.18em)}.project-head{column-gap:var(--col-gap);grid-template-columns:repeat(12,minmax(0,1fr));padding-top:clamp(2.5rem,9vh,6.5rem);display:grid}.project-head>*{grid-column:1/span 9}.eyebrow{color:var(--accent-text);font-size:var(--fs-label);margin-bottom:clamp(.8rem,1.6vw,1.3rem)}.project-overview{max-width:34em;color:var(--muted);font-size:var(--fs-lead);gap:.9rem;margin-top:clamp(1.1rem,2.2vw,1.8rem);line-height:1.45;display:grid}.project-overview p:first-child{color:var(--text)}.facts{gap:1.5rem var(--col-gap);border-top:1px solid var(--rule);grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));margin-top:clamp(2.5rem,5vw,4.25rem);padding-top:1.5rem;display:grid}.facts dt{color:var(--muted);font-size:var(--fs-small);margin-bottom:.2rem}.facts dd{line-height:1.4}.project-links{flex-wrap:wrap;gap:.25rem 2rem;margin-top:1.25rem;display:flex}.project-links a{padding-block:.3rem;display:inline-block}.project-links a:hover .arrow{transform:translate(.15em,-.15em)}.project-links .arrow{color:var(--accent-text)}.lead-media{margin-top:clamp(2.5rem,5vw,4.25rem)}.detail{column-gap:var(--col-gap);border-top:1px solid var(--rule);grid-template-columns:repeat(12,minmax(0,1fr));row-gap:1rem;padding-block:clamp(1.5rem,3vw,2.5rem);display:grid}.detail-label{color:var(--accent-text);font-size:var(--fs-label);grid-column:1/span 3;line-height:1.4}.detail-body{grid-column:4/span 7;gap:1rem;max-width:40em;display:grid}.detail-body p{text-wrap:pretty}.detail-body ul{gap:.85rem;display:grid}.detail-body li{padding-left:1.4em;position:relative}.detail-body li:before{content:"–";color:var(--accent-text);position:absolute;left:0}.details{margin-top:clamp(3rem,6vw,5.5rem)}.details>.detail:last-child{border-bottom:1px solid var(--rule)}.gallery{column-gap:var(--col-gap);grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;row-gap:clamp(2.5rem,5vw,4.5rem);margin-top:clamp(3rem,6vw,5.5rem);display:grid}.gallery-item{min-width:0}.gallery-item figcaption,.lead-media figcaption{max-width:36em;color:var(--muted);font-size:var(--fs-small);margin-top:.75rem;line-height:1.5}.m-full{grid-column:1/-1}.m-wide{grid-column:1/span 8}.m-wide-right{grid-column:5/-1}.m-half{grid-column:1/span 6}.m-half-right{grid-column:7/-1}.m-portrait{grid-column:1/span 4}.m-portrait-right{grid-column:9/-1}.m-third{grid-column:1/span 4}.m-third-mid{grid-column:5/span 4}.m-third-right{grid-column:9/-1}.project-nav{column-gap:var(--col-gap);margin-top:var(--section);grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;row-gap:2rem;display:grid}.nav-back{font-size:var(--fs-lead);grid-column:1/span 4}.nav-next{text-align:right;grid-column:5/-1;text-decoration:none;display:block}.nav-next .kicker{color:var(--muted);font-size:var(--fs-small);margin-bottom:.4rem;display:block}.nav-next .next-name{font-size:var(--fs-display);letter-spacing:-.02em;color:var(--text);text-underline-offset:.16em;transition:text-decoration-color var(--t) var(--ease), color var(--t) var(--ease);font-weight:700;line-height:1.05;text-decoration:underline 1px #0000;display:inline-block}.nav-next .next-name .arrow{color:var(--accent-text)}.nav-next:hover .next-name{color:var(--accent-text);text-decoration-color:currentColor}.nav-next:hover .arrow{transform:translate(.12em)}.nav-back .arrow{color:var(--accent-text);margin-right:.35em}.nav-back:hover .arrow{transform:translate(-.18em)}@media (width<=799.98px){.project-head>*,.detail-label,.detail-body{grid-column:1/-1}.detail{padding-block:1.75rem}.gallery{grid-template-columns:1fr}.gallery-item{grid-column:1/-1}.gallery-item.m-portrait,.gallery-item.m-portrait-right{width:78%}.gallery-item.m-portrait-right,.gallery-item.m-wide-right,.gallery-item.m-half-right{margin-left:auto}.gallery-item.m-wide-right,.gallery-item.m-wide{width:94%}.project-nav{grid-template-columns:1fr}.nav-back,.nav-next{grid-column:1/-1}.nav-next{text-align:left;order:-1}}.about{column-gap:var(--col-gap);grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;row-gap:clamp(2rem,5vw,3rem);padding-top:clamp(2.5rem,9vh,6.5rem);display:grid}.about-photo{grid-column:1/span 6;max-width:34rem}.about-photo figcaption{color:var(--muted);font-size:var(--fs-small);margin-top:.75rem}.about-copy{grid-column:8/-1;gap:clamp(1.75rem,3vw,2.5rem);padding-top:clamp(0rem,3vw,2.5rem);display:grid}.about-intro{color:var(--muted);font-size:var(--fs-lead);gap:1rem;line-height:1.45;display:grid}.about-intro p:first-child{color:var(--text)}.about-section h2{color:var(--accent-text);font-size:var(--fs-label);margin-bottom:.4rem}.about-section{border-top:1px solid var(--rule);gap:.6rem;padding-top:1.25rem;display:grid}.about-row{align-items:center;gap:1rem;display:flex}.avatar{object-fit:cover;border:1px solid var(--rule);border-radius:50%;flex:none;width:4.5rem;height:4.5rem}.about-row-text{gap:.6rem;min-width:0;display:grid}.resume-link{font-size:var(--fs-lead);padding-block:.4rem;text-decoration:none;display:inline-block}.resume-link .arrow{color:var(--accent-text)}.resume-link:hover .arrow{transform:translateY(.14em)}@media (width<=799.98px){.about-photo,.about-copy{grid-column:1/-1}}.contact{column-gap:var(--col-gap);grid-template-columns:repeat(12,minmax(0,1fr));padding-top:clamp(2.5rem,9vh,6.5rem);display:grid}.contact-copy{grid-column:1/span 7}.contact-list{border-top:1px solid var(--rule);grid-column:1/span 7;margin-top:clamp(2.5rem,6vw,4.5rem)}.contact-list li{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem 1.5rem;padding-block:1.25rem;display:flex}.contact-list .kind{color:var(--muted);font-size:var(--fs-small);min-width:7rem}.contact-list .value{font-size:var(--fs-lead);flex:12rem}.contact-list a{text-decoration:none}.contact-list .arrow{color:var(--accent-text)}.contact-list a:hover .arrow{transform:translate(.15em,-.15em)}@media (width<=799.98px){.contact-copy,.contact-list{grid-column:1/-1}}.notfound{padding-top:clamp(2.5rem,9vh,6.5rem)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0s!important;animation:none!important}}
