@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(../media/cormorant-garamond-cyrillic-ext-500-normal.03fknytd5rmfr.woff2)format("woff2"),url(../media/cormorant-garamond-cyrillic-ext-500-normal.3ewkjvxc-jwwe.woff)format("woff");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-display:swap;font-weight:500;src:url(../media/cormorant-garamond-cyrillic-500-normal.3rq5umpzqu1va.woff2)format("woff2"),url(../media/cormorant-garamond-cyrillic-500-normal.06sz2tlpbr_n2.woff)format("woff");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-display:swap;font-weight:500;src:url(../media/cormorant-garamond-vietnamese-500-normal.1i0m26ht5i4lh.woff2)format("woff2"),url(../media/cormorant-garamond-vietnamese-500-normal.3ksi3r8s137fv.woff)format("woff");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-display:swap;font-weight:500;src:url(../media/cormorant-garamond-latin-ext-500-normal.2hnzb7c8ecx8y.woff2)format("woff2"),url(../media/cormorant-garamond-latin-ext-500-normal.2ygaswqemalq8.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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(../media/cormorant-garamond-latin-500-normal.1ua6lqq3rsqyo.woff2)format("woff2"),url(../media/cormorant-garamond-latin-500-normal.410p0bora3wvy.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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(../media/cormorant-garamond-cyrillic-ext-600-normal.17rt44mbdjop9.woff2)format("woff2"),url(../media/cormorant-garamond-cyrillic-ext-600-normal.2s_8-y3ia5w_g.woff)format("woff");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-display:swap;font-weight:600;src:url(../media/cormorant-garamond-cyrillic-600-normal.2fmgmbkm8z7r7.woff2)format("woff2"),url(../media/cormorant-garamond-cyrillic-600-normal.1zkzb5qdusjzm.woff)format("woff");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-display:swap;font-weight:600;src:url(../media/cormorant-garamond-vietnamese-600-normal.2qj53-v7i4ih5.woff2)format("woff2"),url(../media/cormorant-garamond-vietnamese-600-normal.0zks6pg0392kd.woff)format("woff");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-display:swap;font-weight:600;src:url(../media/cormorant-garamond-latin-ext-600-normal.17ydyk694bdhw.woff2)format("woff2"),url(../media/cormorant-garamond-latin-ext-600-normal.3xa3r62iod_40.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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(../media/cormorant-garamond-latin-600-normal.2k7r9iymu8ux8.woff2)format("woff2"),url(../media/cormorant-garamond-latin-600-normal.0ya_yl54k7n41.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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:700;src:url(../media/cormorant-garamond-cyrillic-ext-700-normal.0lsjtbf3ea4im.woff2)format("woff2"),url(../media/cormorant-garamond-cyrillic-ext-700-normal.3dvvxx0dk7dkz.woff)format("woff");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-display:swap;font-weight:700;src:url(../media/cormorant-garamond-cyrillic-700-normal.2ubedi6y8ncwh.woff2)format("woff2"),url(../media/cormorant-garamond-cyrillic-700-normal.3uyk_n-6xa-3k.woff)format("woff");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-display:swap;font-weight:700;src:url(../media/cormorant-garamond-vietnamese-700-normal.3-wx8s8fdmu8e.woff2)format("woff2"),url(../media/cormorant-garamond-vietnamese-700-normal.1t499zri-ajec.woff)format("woff");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-display:swap;font-weight:700;src:url(../media/cormorant-garamond-latin-ext-700-normal.3zn7gp99h80d6.woff2)format("woff2"),url(../media/cormorant-garamond-latin-ext-700-normal.1atdc8eh-vcv3.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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:700;src:url(../media/cormorant-garamond-latin-700-normal.0ehq3873lu_8h.woff2)format("woff2"),url(../media/cormorant-garamond-latin-700-normal.1-5xu_6todx-o.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:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(../media/dm-sans-latin-ext-400-normal.0fqyy_rzir8wk.woff2)format("woff2"),url(../media/dm-sans-latin-ext-400-normal.2wgrmp5e19scw.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:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(../media/dm-sans-latin-400-normal.0471snlmja818.woff2)format("woff2"),url(../media/dm-sans-latin-400-normal.40quu04grbhf8.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:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(../media/dm-sans-latin-ext-500-normal.3kt-ux4qy_ne2.woff2)format("woff2"),url(../media/dm-sans-latin-ext-500-normal.3exo923874x5t.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:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(../media/dm-sans-latin-500-normal.0brn-8r9pdr2e.woff2)format("woff2"),url(../media/dm-sans-latin-500-normal.0jcw8phz0eanr.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-cyrillic-ext-400-normal.09jq5v9-1wf71.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-ext-400-normal.2iaubq2jy0rx3.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-cyrillic-400-normal.0m1ahpdxrpokj.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-400-normal.2-z93d2j9-3s0.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-vietnamese-400-normal.3a7fs2yw914a9.woff2)format("woff2"),url(../media/ibm-plex-mono-vietnamese-400-normal.2kzc8ichkozg5.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-latin-ext-400-normal.1hjaitcyq2e2r.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-ext-400-normal.0nrwft7nlo5oa.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-latin-400-normal.3xdfs0-p_zi4c.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-400-normal.2lhng2ntocry9.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-cyrillic-ext-500-normal.28wp48yubenc3.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-ext-500-normal.41yczc5zdkwdh.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-cyrillic-500-normal.26ox_itp_alxp.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-500-normal.1eaan1mch682e.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-vietnamese-500-normal.0s1z3n-ysad7w.woff2)format("woff2"),url(../media/ibm-plex-mono-vietnamese-500-normal.2g79xp9gzp1kn.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-latin-ext-500-normal.1cuq9_67cn48n.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-ext-500-normal.1tdw_l2v4yhc_.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-latin-500-normal.11q3guvgd1r20.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-500-normal.1fgk-kmy-32_a.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}
.pointer-trail-module__eKI3_a__cursorLayer{z-index:2100;pointer-events:none;display:none;position:fixed;inset:0}.pointer-trail-module__eKI3_a__trailCanvas{opacity:0;width:100%;height:100%;transition:opacity .16s;position:absolute;inset:0}.pointer-trail-module__eKI3_a__cursorPosition{opacity:0;will-change:transform;width:1px;height:1px;transition:opacity .16s;position:absolute;top:0;left:0}.pointer-trail-module__eKI3_a__trailCanvas[data-visible=true],.pointer-trail-module__eKI3_a__cursorPosition[data-visible=true]{opacity:1}.pointer-trail-module__eKI3_a__cursorRing,.pointer-trail-module__eKI3_a__cursorDot{border-radius:50%;display:block;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.pointer-trail-module__eKI3_a__cursorRing{border:1.5px solid var(--coral);background:#cc785c0f;width:34px;height:34px;transition:width .18s,height .18s,border-color .18s,background .18s;box-shadow:0 0 0 1px #faf9f559}.pointer-trail-module__eKI3_a__cursorDot{background:var(--coral-dark);width:5px;height:5px;transition:width .16s,height .16s,background .16s;box-shadow:0 0 0 2px #faf9f580}.pointer-trail-module__eKI3_a__cursorPosition[data-interactive=true] .pointer-trail-module__eKI3_a__cursorRing{border-color:var(--teal);background:#5db8a61f;width:48px;height:48px}.pointer-trail-module__eKI3_a__cursorPosition[data-interactive=true] .pointer-trail-module__eKI3_a__cursorDot{background:var(--teal);width:4px;height:4px}.pointer-trail-module__eKI3_a__cursorPosition[data-pressed=true] .pointer-trail-module__eKI3_a__cursorRing{width:26px;height:26px}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.pointer-trail-module__eKI3_a__cursorLayer{display:block}:is(html.portfolio-custom-cursor,html.portfolio-custom-cursor *){cursor:none!important}}@media (max-width:820px){.pointer-trail-module__eKI3_a__cursorLayer{display:none!important}:is(html.portfolio-custom-cursor,html.portfolio-custom-cursor *){cursor:auto!important}}
:root{--canvas:#faf9f5;--paper:#f5f0e8;--paper-strong:#e8e0d2;--ink:#141413;--body:#3d3d3a;--muted:#6c6a64;--line:#ded6ca;--coral:#cc785c;--coral-dark:#a9583e;--teal:#5db8a6;--amber:#e8a55a;--dark:#181715;--dark-raised:#252320;--on-dark:#faf9f5;--on-dark-muted:#a09d96;--font-display:"Cormorant Garamond", Georgia, serif;--font-body:"DM Sans", "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", Consolas, monospace}html{scroll-behavior:smooth;background:var(--canvas);min-height:100%;scroll-padding-top:74px}html,body{max-width:100vw;overflow-x:hidden}body{min-height:100vh;color:var(--body);background:var(--canvas);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}a{color:inherit;text-decoration:none}button,input,textarea{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{border:0}::selection{color:var(--on-dark);background:var(--coral-dark)}:focus-visible{outline:2px solid var(--coral);outline-offset:4px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
