@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-standard-normal.DIwfbPUE.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-standard-normal.C0olyEE-.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-standard-normal.DrHU7SY7.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-standard-normal.BOyYyU_V.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-standard-normal.HoL-AExg.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-standard-normal.BpEBLj1O.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-standard-italic.Bl6DJqma.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-standard-italic.Dibx14aP.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-standard-italic.CMW9dfKg.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-standard-italic.C-k5pZlm.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-standard-italic.BhUEwDRF.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-standard-italic.BOLXpvkj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-standard-normal.CfYZpDVp.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-standard-normal.BFQXbQ-f.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-standard-normal.BmPQvyvo.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-standard-normal.BM0NlUE_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-standard-normal.Ci9T9ieq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-standard-normal.DpK-iCPk.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-standard-normal.BwkfbSeq.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-paper: #f5eedb;--color-ink: #14202c;--color-brass: #b89a3a;--color-about: #d4a836;--color-projects: #e54d8a;--color-contact: #6abf4d;--color-ink-soft: rgba(20, 32, 44, .62);--color-ink-meta: rgba(20, 32, 44, .55);--color-paper-overlay: rgba(245, 238, 219, .78);--color-paper-overlay-strong: rgba(245, 238, 219, .85);--color-selection-bg: #c8341c;--color-selection-fg: #f5eedb;--sidebar-padding-left: 3rem;--sidebar-padding-right: 1.25rem;--sidebar-padding-y: 1.4rem;--sidebar-spine-left: 4px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:"Source Serif 4 Variable","Source Serif 4",Georgia,serif;background-color:var(--color-paper);color:var(--color-ink);line-height:1.5;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--color-selection-bg);color:var(--color-selection-fg)}.app{display:flex;min-height:100vh;position:relative;isolation:isolate}.skip-link{position:absolute;left:-9999px;top:0;background:var(--color-ink);color:var(--color-paper);padding:.5rem 1rem;text-decoration:none;z-index:1000}.skip-link:focus{left:0;top:0}.font-inter{font-family:Inter Variable,Inter,system-ui,-apple-system,sans-serif}@media(max-width:768px){body{font-size:15px}.app{flex-direction:column;min-height:auto}}.bg-layers[data-astro-cid-lbwkrt2n]{position:fixed;inset:0;z-index:-1;pointer-events:none;background-color:var(--color-paper);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 400' preserveAspectRatio='none'><g fill='none' stroke='%23b89a3a' stroke-width='0.45' opacity='0.13'><path d='M 0 100 A 100 100 0 0 1 100 0'/><path d='M 100 200 A 100 100 0 0 0 200 100'/><path d='M 200 0 A 100 100 0 0 1 300 100'/><path d='M 300 200 A 100 100 0 0 0 400 100'/><path d='M 400 0 A 100 100 0 0 1 500 100'/><path d='M 500 200 A 100 100 0 0 0 600 100'/><path d='M 0 300 A 100 100 0 0 0 100 200'/><path d='M 100 100 A 100 100 0 0 1 200 200'/><path d='M 200 300 A 100 100 0 0 0 300 200'/><path d='M 300 100 A 100 100 0 0 1 400 200'/><path d='M 400 300 A 100 100 0 0 0 500 200'/><path d='M 500 100 A 100 100 0 0 1 600 200'/><path d='M 0 400 A 100 100 0 0 1 100 300'/><path d='M 100 400 A 100 100 0 0 0 200 300'/><path d='M 200 400 A 100 100 0 0 1 300 300'/><path d='M 300 400 A 100 100 0 0 0 400 300'/><path d='M 400 400 A 100 100 0 0 1 500 300'/><path d='M 500 400 A 100 100 0 0 0 600 300'/></g></svg>"),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 400' preserveAspectRatio='none'><g fill='none' stroke='%23b89a3a' stroke-width='0.3' opacity='0.12'><circle cx='80' cy='80' r='30'/><circle cx='80' cy='80' r='60'/><circle cx='80' cy='80' r='90'/><circle cx='80' cy='80' r='120'/><circle cx='80' cy='80' r='150'/><circle cx='80' cy='80' r='180'/><circle cx='80' cy='80' r='210'/><circle cx='80' cy='80' r='240'/><circle cx='480' cy='100' r='25'/><circle cx='480' cy='100' r='55'/><circle cx='480' cy='100' r='85'/><circle cx='480' cy='100' r='115'/><circle cx='480' cy='100' r='145'/><circle cx='480' cy='100' r='175'/><circle cx='480' cy='100' r='205'/><circle cx='220' cy='250' r='28'/><circle cx='220' cy='250' r='58'/><circle cx='220' cy='250' r='88'/><circle cx='220' cy='250' r='118'/><circle cx='220' cy='250' r='148'/><circle cx='220' cy='250' r='178'/><circle cx='540' cy='340' r='30'/><circle cx='540' cy='340' r='60'/><circle cx='540' cy='340' r='90'/><circle cx='540' cy='340' r='120'/><circle cx='540' cy='340' r='150'/><circle cx='100' cy='360' r='25'/><circle cx='100' cy='360' r='50'/><circle cx='100' cy='360' r='75'/><circle cx='100' cy='360' r='100'/><circle cx='100' cy='360' r='125'/></g></svg>"),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 52'><g fill='none' stroke='%23b89a3a' stroke-width='0.32' opacity='0.11'><circle cx='0' cy='0' r='17'/><circle cx='30' cy='0' r='17'/><circle cx='60' cy='0' r='17'/><circle cx='15' cy='26' r='17'/><circle cx='45' cy='26' r='17'/><circle cx='0' cy='52' r='17'/><circle cx='30' cy='52' r='17'/><circle cx='60' cy='52' r='17'/></g></svg>"),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='1.4' numOctaves='2' seed='3'/><feColorMatrix values='0 0 0 0 0.18  0 0 0 0 0.20  0 0 0 0 0.12  0 0 0 0.04 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");background-size:100% 100%,100% 100%,60px 52px,220px 220px;background-repeat:no-repeat,no-repeat,repeat,repeat}.sidebar[data-astro-cid-ssfzsv2f]{width:22.5%;min-width:165px;padding:var(--sidebar-padding-y) var(--sidebar-padding-right) var(--sidebar-padding-y) var(--sidebar-padding-left);display:flex;flex-direction:column;gap:.85rem;position:sticky;top:0;align-self:flex-start;height:100vh;overflow-y:auto;background:linear-gradient(to right,var(--color-paper-overlay-strong),rgba(245,238,219,.74));border-right:1px solid rgba(20,32,44,.2)}.spine[data-astro-cid-ssfzsv2f]{position:absolute;top:0;left:var(--sidebar-spine-left);width:40px;height:100%;pointer-events:none;opacity:.45;fill:none;stroke:var(--color-ink);stroke-width:.7}.name[data-astro-cid-ssfzsv2f]{font-weight:600;font-size:1.05rem;letter-spacing:-.01em;color:var(--color-ink);display:block}.name[data-astro-cid-ssfzsv2f]:after{content:"";display:block;width:calc(100% + var(--sidebar-padding-right) - var(--sidebar-padding-left));height:2px;margin-top:.55rem;background:var(--color-about)}.name[data-astro-cid-ssfzsv2f].page-projects:after{background:var(--color-projects)}.name[data-astro-cid-ssfzsv2f].page-contact:after{background:var(--color-contact)}.nav[data-astro-cid-ssfzsv2f]{display:flex;flex-direction:column;gap:.6rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;font-weight:500}.nav-item[data-astro-cid-ssfzsv2f]{display:flex;align-items:center;gap:8px;color:var(--color-ink-soft);text-decoration:none}.nav-item[data-astro-cid-ssfzsv2f].active{color:var(--color-ink);font-weight:700}.langs[data-astro-cid-ssfzsv2f]{margin-top:auto;display:flex;align-items:center;gap:6px;font-size:.7rem;color:var(--color-ink-meta);text-transform:uppercase;letter-spacing:.12em;font-weight:500}.langs[data-astro-cid-ssfzsv2f] a[data-astro-cid-ssfzsv2f]{color:var(--color-ink-meta);text-decoration:none;margin:0 2px}.langs[data-astro-cid-ssfzsv2f].page-about a[data-astro-cid-ssfzsv2f].active{color:var(--color-about);font-weight:700}.langs[data-astro-cid-ssfzsv2f].page-projects a[data-astro-cid-ssfzsv2f].active{color:var(--color-projects);font-weight:700}.langs[data-astro-cid-ssfzsv2f].page-contact a[data-astro-cid-ssfzsv2f].active{color:var(--color-contact);font-weight:700}.langs[data-astro-cid-ssfzsv2f] .sep[data-astro-cid-ssfzsv2f]{color:var(--color-ink-meta)}.avatar[data-astro-cid-ssfzsv2f]{width:80px;height:80px;border-radius:50%;object-fit:cover;margin:.4rem 0 .2rem;border:1px solid rgba(20,32,44,.18)}@media(max-width:768px){.sidebar[data-astro-cid-ssfzsv2f]{width:100%;min-width:0;padding:1rem 1.25rem 1rem 3rem;border-right:none;border-bottom:1px solid rgba(20,32,44,.2);gap:.6rem;position:relative;height:auto;overflow-y:visible;align-self:stretch}.nav[data-astro-cid-ssfzsv2f]{flex-direction:row;gap:1.2rem;flex-wrap:wrap}.langs[data-astro-cid-ssfzsv2f]{margin-top:0;align-self:flex-end}.avatar[data-astro-cid-ssfzsv2f]{display:none}}.page-header[data-astro-cid-wu5dj4rx]{margin-bottom:.5rem}.meta[data-astro-cid-wu5dj4rx]{font-size:.66rem;text-transform:uppercase;letter-spacing:.18em;color:var(--color-ink-meta);margin-bottom:.3rem}.section-num[data-astro-cid-wu5dj4rx]{font-size:.66rem;font-weight:700;letter-spacing:.18em;margin-bottom:.45rem;text-transform:uppercase}.section-num[data-astro-cid-wu5dj4rx].page-about{color:var(--color-about)}.section-num[data-astro-cid-wu5dj4rx].page-projects{color:var(--color-projects)}.section-num[data-astro-cid-wu5dj4rx].page-contact{color:var(--color-contact)}.heading[data-astro-cid-wu5dj4rx]{font-family:"Source Serif 4 Variable","Source Serif 4",Georgia,serif;font-weight:400;font-size:2.4rem;color:var(--color-ink);line-height:1.05;margin:0 0 .5rem}.rule[data-astro-cid-wu5dj4rx]{width:calc(100% + 8px);height:1px;background:var(--color-ink);margin-bottom:.95rem}.grid-coords[data-astro-cid-7ajpwqc4]{position:absolute;top:22px;right:26px;text-align:right;font-size:.64rem;color:var(--color-ink-soft);letter-spacing:.12em;line-height:1.4;background:var(--color-paper-overlay-strong);padding:4px 6px}.section-num[data-astro-cid-7ajpwqc4]{font-weight:700}.page-about[data-astro-cid-7ajpwqc4] .section-num[data-astro-cid-7ajpwqc4]{color:var(--color-about)}.page-projects[data-astro-cid-7ajpwqc4] .section-num[data-astro-cid-7ajpwqc4]{color:var(--color-projects)}.page-contact[data-astro-cid-7ajpwqc4] .section-num[data-astro-cid-7ajpwqc4]{color:var(--color-contact)}@media(max-width:768px){.grid-coords[data-astro-cid-7ajpwqc4]{display:none}}.main[data-astro-cid-37fxchfa]{flex:1;padding:2rem 2.5rem;position:relative;max-width:56rem}.prose[data-astro-cid-37fxchfa]{font-family:"Source Serif 4 Variable","Source Serif 4",Georgia,serif;font-size:.94rem;line-height:1.75;color:var(--color-ink)}.prose[data-astro-cid-37fxchfa] p{margin:0 0 1.1rem}.prose[data-astro-cid-37fxchfa] a{color:var(--color-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.prose[data-astro-cid-37fxchfa] em,.prose[data-astro-cid-37fxchfa] i{font-style:italic}.prose[data-astro-cid-37fxchfa] strong{font-weight:600}.colophon[data-astro-cid-37fxchfa]{margin-top:3rem;font-size:.64rem;letter-spacing:.12em;color:var(--color-ink-meta);opacity:.55}@media(max-width:768px){.main[data-astro-cid-37fxchfa]{padding:1.5rem 1.25rem;max-width:none}}.i18n-banner{position:fixed;bottom:1rem;right:1rem;z-index:50;display:flex;align-items:center;gap:.85rem;padding:.55rem .65rem .55rem .9rem;background:var(--color-paper, #f5eedb);border:1px solid rgba(20,32,44,.22);box-shadow:0 2px 12px #14202c14;font-family:Inter Variable,Inter,system-ui,sans-serif;font-size:.75rem;color:var(--color-ink, #14202c);max-width:calc(100vw - 2rem)}.i18n-banner-text{line-height:1.35}.i18n-banner-cta{color:var(--color-ink, #14202c);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;font-weight:600;white-space:nowrap}.i18n-banner-close{background:transparent;border:none;color:var(--color-ink-meta, #5a6573);font-size:1.1rem;line-height:1;padding:0 .15rem;cursor:pointer}.i18n-banner-close:hover{color:var(--color-ink, #14202c)}@media(max-width:768px){.i18n-banner{left:.75rem;right:.75rem;bottom:.75rem;max-width:none}}
