@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(../media/8cabccbf8ff73b77-s.2dbc-et3k6kfe.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(../media/932d3869cac5e2f5-s.0slbgzy4000md.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(../media/28c5fc0db96362f0-s.p.0d4lnz92g9ol4.woff2)format("woff2");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:Cormorant Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(../media/97ea1d7b8ac40ba2-s.253cfg7mpxmwg.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(../media/01d6212a423b17a1-s.p.273-hd1b-0-z9.woff2)format("woff2");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:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(../media/8cabccbf8ff73b77-s.2dbc-et3k6kfe.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(../media/932d3869cac5e2f5-s.0slbgzy4000md.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(../media/28c5fc0db96362f0-s.p.0d4lnz92g9ol4.woff2)format("woff2");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:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(../media/97ea1d7b8ac40ba2-s.253cfg7mpxmwg.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(../media/01d6212a423b17a1-s.p.273-hd1b-0-z9.woff2)format("woff2");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:Cormorant Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(../media/8cabccbf8ff73b77-s.2dbc-et3k6kfe.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(../media/932d3869cac5e2f5-s.0slbgzy4000md.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(../media/28c5fc0db96362f0-s.p.0d4lnz92g9ol4.woff2)format("woff2");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:Cormorant Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(../media/97ea1d7b8ac40ba2-s.253cfg7mpxmwg.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(../media/01d6212a423b17a1-s.p.273-hd1b-0-z9.woff2)format("woff2");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:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(../media/459ba3e7ebcd29d3-s.26a4qkxezf9-r.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fdbf446d127afa2d-s.1hzlq6xrrxf6u.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b57845f0cf557e59-s.p.33on4mq75bz97.woff2)format("woff2");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:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9eff0a3f1ba11d74-s.2xsoqmjk136f4.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6f3ab718e3727c1a-s.p.0v7knm2wof07y.woff2)format("woff2");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:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(../media/459ba3e7ebcd29d3-s.26a4qkxezf9-r.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fdbf446d127afa2d-s.1hzlq6xrrxf6u.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b57845f0cf557e59-s.p.33on4mq75bz97.woff2)format("woff2");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:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9eff0a3f1ba11d74-s.2xsoqmjk136f4.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6f3ab718e3727c1a-s.p.0v7knm2wof07y.woff2)format("woff2");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:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(../media/459ba3e7ebcd29d3-s.26a4qkxezf9-r.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fdbf446d127afa2d-s.1hzlq6xrrxf6u.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b57845f0cf557e59-s.p.33on4mq75bz97.woff2)format("woff2");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:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9eff0a3f1ba11d74-s.2xsoqmjk136f4.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6f3ab718e3727c1a-s.p.0v7knm2wof07y.woff2)format("woff2");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:Cormorant Garamond Fallback;src:local(Times New Roman);ascent-override:95.27%;descent-override:29.59%;line-gap-override:0.0%;size-adjust:96.98%}.ln-Mmq_className{font-family:Cormorant Garamond,Cormorant Garamond Fallback}.ln-Mmq_variable{--font-serif:"Cormorant Garamond", "Cormorant Garamond Fallback"}
@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(../media/0cd6149dd3f9fc6a-s.p.2ia5k3t--_4xp.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(../media/5e28d39831fdf210-s.0sokxvbh80il3.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(../media/648bb96005e60468-s.p.1p2xad7_-sbqy.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/77d9a04c69f7b11b-s.p.0udrnr4-18tjo.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d81b50f8e1aba043-s.18lx4otehud-r.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/dd018b41519c2d93-s.p.1br53b7gww62p.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b4fb5dfe9580f890-s.p.3bgaltqld2gq2.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1f6c95fdd7b08cc8-s.0mlt1uo-cplt-.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7f1976624c2b6255-s.p.22m3f6pvfu2zf.woff2)format("woff2");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:Be Vietnam Pro Fallback;src:local(Arial);ascent-override:90.61%;descent-override:24.01%;line-gap-override:0.0%;size-adjust:110.36%}._9EKE4G_className{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}._9EKE4G_variable{--font-sans:"Be Vietnam Pro", "Be Vietnam Pro Fallback"}
:root{--accent-soft:color-mix(in srgb, var(--accent) 13%, transparent);--display:var(--font-serif), "Times New Roman", serif;--body:var(--font-sans), system-ui, sans-serif;--radius:3px;--gutter:clamp(16px, 5vw, 64px);--max:1120px}[data-font=sans]{--display:var(--font-sans), system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;font-weight:400;line-height:1.72;transition:background-color .4s,color .4s;overflow-x:hidden}[data-grain=on] body:before{content:"";pointer-events:none;z-index:100;opacity:var(--grain-opacity);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:fixed;inset:0}h1,h2,h3{font-family:var(--display);letter-spacing:-.01em;margin:0 0 .4em;font-weight:500;line-height:1.15}[data-font=sans] h1,[data-font=sans] h2,[data-font=sans] h3{letter-spacing:-.03em;font-weight:400}h1{font-size:clamp(2.8rem,8vw,5.4rem)}h2{font-size:clamp(2rem,4.5vw,3rem)}h3{font-size:1.55rem}[data-font=sans] h3{font-size:1.25rem}p{margin:0 0 1em}a{color:inherit}img{max-width:100%;height:auto;display:block}::selection{background:var(--accent-soft)}.muted{color:var(--muted)}.eyebrow{font-family:var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 .8em;font-size:.72rem;font-weight:400}.lead{max-width:38em;font-size:1.15rem}.site-header{z-index:50;padding:18px var(--gutter);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid color-mix(in srgb, var(--line) 60%, transparent);align-items:center;gap:24px;display:flex;position:sticky;top:0}.wordmark{font-family:var(--display);margin-right:auto;font-size:1.35rem;text-decoration:none}.site-header nav{gap:22px;font-size:.9rem;display:flex}.site-header nav a{color:var(--muted);text-decoration:none;transition:color .2s}.site-header nav a:hover{color:var(--ink)}.site-footer{padding:40px var(--gutter);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:80px;font-size:.85rem;display:flex}main{max-width:var(--max);padding:0 var(--gutter);margin:0 auto}.btn{background:var(--ink);color:var(--bg);border:1px solid var(--ink);border-radius:var(--radius) 14px var(--radius) 10px;padding:11px 22px;font-size:.92rem;text-decoration:none;transition:transform .25s,background .25s,color .25s;display:inline-block}.btn:hover{transform:translateY(-1px)rotate(-.4deg)}.btn-ghost{color:var(--ink);background:0 0}.btn-ghost:hover{background:var(--accent-soft)}.tags{flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.tags li{background:color-mix(in srgb, var(--bg-2) 70%, transparent);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:3px 12px;font-size:.8rem;line-height:1.5}.hero{grid-template-columns:1.4fr 1fr;align-items:center;gap:clamp(32px,6vw,80px);padding:clamp(48px,10vw,120px) 0 clamp(40px,8vw,100px);display:grid}.hero h1{margin-bottom:.15em;display:inline-block;position:relative}.brush{background:var(--accent-soft);z-index:-1;border-radius:40% 60% 55% 45%/60% 40%;height:.28em;position:absolute;bottom:.08em;left:-2%;right:8%;transform:rotate(-1.2deg)}.hero-title{font-family:var(--display);color:var(--accent);font-size:1.35rem;font-style:italic}[data-font=sans] .hero-title{font-size:1.1rem;font-style:normal}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.hero-photo{justify-self:end;width:min(100%,360px);margin:0;position:relative}.hero-photo img{aspect-ratio:4/5;object-fit:cover;filter:saturate(.82)contrast(.97);border-radius:46% 54% 42% 58%/38% 44% 56% 62%;width:100%}.hero-photo:after{content:"";border:1px solid var(--accent);z-index:-1;opacity:.6;border-radius:52% 48% 58% 42%/44% 56% 40% 60%;position:absolute;inset:8% -6% -5% 6%}.section{padding:clamp(56px,9vw,110px) 0 0}.section-head{border-bottom:1px solid var(--line);align-items:baseline;gap:18px;margin-bottom:36px;padding-bottom:14px;display:flex}.section-head .eyebrow{color:var(--accent);margin:0}.section-head h2{margin:0}.project-list{gap:0;display:grid}.project-card{border-bottom:1px solid var(--line);grid-template-columns:56px 1fr 32px;gap:20px;padding:30px 12px;text-decoration:none;transition:background .3s,padding .3s;display:grid}.project-card:hover{background:var(--bg-2);padding-left:22px}.project-card h3{margin-bottom:.3em}.project-card p.muted{max-width:42em;margin:0;font-size:1rem}.project-num{font-family:var(--display);color:var(--accent);font-size:1.4rem;font-style:italic}.arrow{color:var(--muted);align-self:center;font-size:1.3rem;transition:transform .3s,color .3s}.project-card:hover .arrow{color:var(--accent);transform:translate(6px)}.project-card.has-cover{grid-template-columns:56px 200px 1fr 32px}.project-thumb{aspect-ratio:4/3;background:var(--bg-2);border-radius:6px 14px 8px 12px;display:block;position:relative;overflow:hidden}.project-thumb img{object-fit:cover;filter:saturate(.9);transition:transform .6s,filter .4s}.project-card:hover .project-thumb img{filter:saturate();transform:scale(1.04)}.project-cover{aspect-ratio:16/8;background:var(--bg-2);border-radius:10px 26px 12px 20px;margin:40px 0 0;position:relative;overflow:hidden}.project-cover img{object-fit:cover}.gallery{margin-top:64px}.gallery-masonry{columns:2 320px;column-gap:18px}.gallery-masonry figure{break-inside:avoid;margin:0 0 18px}.gallery-masonry img{border-radius:6px 14px 8px 12px;width:100%;height:auto;transition:opacity .3s}.gallery-masonry a:hover img{opacity:.88}.gallery-masonry figcaption{color:var(--muted);margin-top:8px;font-size:.86rem}.timeline{margin:0;padding:0;list-style:none;position:relative}.timeline>li{grid-template-columns:190px 1fr;gap:40px;padding:0 0 44px;display:grid;position:relative}.timeline>li:before{content:"";background:linear-gradient(var(--line), var(--line) 70%, transparent);width:1px;position:absolute;top:14px;bottom:-14px;left:214px}.timeline>li:last-child:before{display:none}.timeline>li:after{content:"";background:var(--bg);border:1.5px solid var(--accent);border-radius:46% 54% 50% 50%;width:11px;height:11px;position:absolute;top:9px;left:209px}.timeline>li:has(.now):after{background:var(--accent)}.when{letter-spacing:.02em;color:var(--muted);text-align:right;padding-top:4px;font-size:.86rem}.now{letter-spacing:.12em;text-transform:uppercase;background:var(--accent-soft);color:var(--accent);vertical-align:1px;border-radius:999px;margin-left:8px;padding:0 8px;font-size:.66rem;display:inline-block}.timeline h3{margin-bottom:.1em}.org{color:var(--accent);margin-bottom:.7em;font-size:.95rem}.timeline p.muted{max-width:40em;margin-bottom:.4em}.about-grid{grid-template-columns:1.3fr 1fr;gap:clamp(32px,6vw,80px);display:grid}.prose p{font-size:1.05rem}.skill-group{margin-bottom:26px}.skill-group .eyebrow{color:var(--accent)}.edu{line-height:1.5}.contact-grid{grid-template-columns:1fr 1.25fr;align-items:start;gap:clamp(32px,6vw,72px);display:grid}.contact-links{gap:16px;margin:28px 0 0;padding:0;list-style:none;display:grid}.contact-links .eyebrow{color:var(--accent);margin-bottom:2px;display:block}.contact-links a{border-bottom:1px solid var(--line);text-decoration:none;transition:border-color .2s}.contact-links a:hover{border-color:var(--accent)}.contact-form{background:var(--bg-2);border:1px solid var(--line);border-radius:10px 22px 12px 18px;gap:18px;padding:clamp(22px,4vw,36px);display:grid}.cf-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.cf-field{gap:6px;display:grid}.cf-field>span,.cf-topics legend{letter-spacing:.06em;color:var(--muted);font-size:.8rem}.cf-field input,.cf-field textarea{width:100%;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:11px 13px;transition:border-color .2s,box-shadow .2s}.cf-field textarea{resize:vertical;min-height:130px}.cf-field input:focus,.cf-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.cf-field [aria-invalid=true]{border-color:#b3412e}.cf-err{color:#b3412e;margin:0;font-size:.85rem}[data-theme=sumi] .cf-err{color:#e7866f}.cf-topics{border:0;flex-wrap:wrap;gap:8px;margin:0;padding:0;display:flex}.cf-topics legend{margin-bottom:8px;padding:0}.chip input{opacity:0;pointer-events:none;position:absolute}.chip span{border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:.86rem;transition:all .2s;display:inline-block}.chip input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--bg)}.chip input:focus-visible+span{box-shadow:0 0 0 3px var(--accent-soft)}.contact-form .btn{cursor:pointer;font:inherit;justify-self:start}.contact-form .btn:disabled{opacity:.5;cursor:wait}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.contact-form.sent{text-align:center;padding:56px 28px}.sent-mark{border:1.5px solid var(--accent);width:52px;height:52px;color:var(--accent);border-radius:48% 52% 46% 54%;place-items:center;margin:0 auto 12px;font-size:1.3rem;display:inline-grid}.project-page{padding-top:clamp(40px,7vw,80px)}.project-page h1{max-width:16em;font-size:clamp(2.4rem,6vw,4.2rem)}.back{color:var(--muted);margin-bottom:40px;font-size:.9rem;text-decoration:none;display:inline-block}.back:hover{color:var(--accent)}.project-body{border-top:1px solid var(--line);grid-template-columns:2fr 1fr;gap:clamp(32px,6vw,80px);margin-top:48px;padding-top:40px;display:grid}.project-body h2{margin-top:1.4em;font-size:1.8rem}.project-body aside{border-left:1px solid var(--line);padding-left:24px}.project-body aside .eyebrow{color:var(--accent)}.outcomes{padding-left:0;list-style:none}.outcomes li{margin-bottom:14px;padding-left:28px;position:relative}.outcomes li:before{content:"";background:var(--accent);width:14px;height:1px;position:absolute;top:.7em;left:0}.next-project{border-top:1px solid var(--line);font-family:var(--display);flex-direction:column;margin-top:80px;padding:32px 0;font-size:1.6rem;text-decoration:none;display:flex}.next-project:hover span:last-child{color:var(--accent)}.theme-panel{position:relative}.theme-toggle{border:1px solid var(--line);width:38px;height:38px;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;place-items:center;transition:transform .6s,border-color .2s;display:grid}.theme-toggle:hover{border-color:var(--accent);transform:rotate(140deg)}.theme-popover{background:var(--bg);border:1px solid var(--line);border-radius:6px 14px 8px 12px;width:260px;padding:18px;font-size:.9rem;position:absolute;top:calc(100% + 12px);right:0;box-shadow:0 18px 40px #0000001f}.theme-popover .eyebrow{margin-bottom:8px}.theme-list{gap:4px;margin-bottom:16px;display:grid}.theme-option{color:var(--ink);text-align:left;cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:12px;padding:7px 8px;display:flex}.theme-option:hover{background:var(--bg-2)}.theme-option.is-active{border-color:var(--accent)}.theme-option strong{font-weight:500;line-height:1.2;display:block}.theme-option small{color:var(--muted);font-size:.75rem}.swatches{display:flex}.swatches i{border:1px solid #00000026;border-radius:50%;width:16px;height:16px;margin-right:-5px}.seg{border:1px solid var(--line);border-radius:6px;margin-bottom:14px;display:flex;overflow:hidden}.seg button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;flex:1;padding:6px}.seg button.is-active{background:var(--ink);color:var(--bg)}.grain-row{cursor:pointer;align-items:center;gap:8px;margin-bottom:12px;display:flex}.grain-row input{accent-color:var(--accent)}.reset{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:.8rem;text-decoration:underline}@media (max-width:820px){.site-header nav{display:none}.hero{grid-template-columns:1fr}.hero-photo{order:-1;justify-self:start;width:min(70%,260px)}.about-grid,.contact-grid,.project-body{grid-template-columns:1fr;gap:32px}.project-body aside{border-left:0;border-top:1px solid var(--line);padding-top:24px;padding-left:0}.project-card,.project-card.has-cover{grid-template-columns:36px 1fr}.project-thumb{aspect-ratio:16/9;grid-area:1/1/auto/-1}.project-cover{aspect-ratio:4/3}.timeline>li{grid-template-columns:1fr;gap:4px;padding-left:28px}.timeline>li:before{left:5px}.timeline>li:after{left:0}.when{text-align:left;padding-top:0}.cf-row{grid-template-columns:1fr}.arrow{display:none}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.hero>*,.project-card>*,.timeline>li>*,.about-grid>*,.contact-grid>*,.project-body>*{min-width:0}
