@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.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 Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-italic-BELOEI8R.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-italic-CfSXsIbO.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 Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-italic-D9J6q4_O.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-italic-Bf1n82Tb.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-italic-BEZwmy7D.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-italic-CTYLy0lX.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-italic-BbRnwouv.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-italic-78jqtfZH.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 Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-italic-Du9zzoL2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-italic-V_9i1P_m.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 Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-italic-CZTNEAuW.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-italic-CsGl1sm0.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.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}:root{--bg-top:#234a3f;--bg-bottom:#0b1513;--surface:#ffffff0a;--border:#ffffff1a;--border-strong:#fff3;--text:#eef2ef;--text-muted:#b4c3bd;--text-faint:#8a9c95;--accent:#e8a26b;--accent-hover:#f2b585;--accent-ink:#1d1209;--font:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--max-width:1040px;--gutter:24px}*,:before,:after{box-sizing:border-box}html{background:var(--bg-bottom);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{min-height:100vh;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.6}body:before{content:"";z-index:-1;background:linear-gradient(165deg, var(--bg-top) 0%, var(--bg-bottom) 70%);position:fixed;inset:0}img{max-width:100%;display:block}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.button{border:1px solid var(--border-strong);height:44px;color:var(--text);font:500 .95rem var(--font);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:8px;padding:0 18px;text-decoration:none;display:inline-flex}.button:hover{border-color:var(--text-muted)}.button--primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.button--primary:hover{border-color:var(--accent-hover);background:var(--accent-hover)}.button--small{height:38px;margin-top:18px;font-size:.9rem}.email{border:1px solid var(--border-strong);border-radius:6px;align-items:stretch;height:44px;font-size:.95rem;display:inline-flex}.email a,.email button{align-items:center;gap:8px;display:inline-flex}.email a{padding:0 14px 0 16px;text-decoration:none}.email a:hover{text-decoration:underline}.email button{border:none;border-left:1px solid var(--border-strong);color:var(--text-muted);font:500 .85rem var(--font);cursor:pointer;background:0 0;padding:0 14px}.email button:hover{color:var(--text)}.socials{flex-wrap:wrap;justify-content:center;gap:10px;margin:0;padding:0;list-style:none;display:flex}.social{border:1px solid var(--border-strong);height:40px;color:var(--text);border-radius:6px;align-items:center;gap:8px;padding:0 16px;font-size:.92rem;font-weight:500;text-decoration:none;display:inline-flex}.social svg{font-size:1.1rem}a.social:hover{border-color:var(--accent);color:var(--accent)}.social--soon{opacity:.45;cursor:default}.socials--compact .social{justify-content:center;width:38px;height:38px;padding:0}.socials--compact .social__label{display:none}.hero{min-height:100svh;padding:28px var(--gutter) 0;flex-direction:column;display:flex;position:relative}.hero__socials{justify-content:center;display:flex}.hero__body{width:100%;max-width:var(--max-width);flex:1;justify-content:center;align-items:center;gap:clamp(32px,6vw,72px);margin:0 auto;padding:40px 0 100px;display:flex}.hero__name{margin:0 0 14px;font-size:clamp(2.6rem,6.5vw,4.4rem);font-weight:600;line-height:1.05}.hero__university,.hero__degree{margin:0;font-size:1.15rem}.hero__degree{color:var(--text-muted)}.hero__actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.portrait{aspect-ratio:1;flex:none;width:clamp(190px,26vw,270px)}.portrait img,.portrait__placeholder{border:3px solid var(--border-strong);object-fit:cover;border-radius:50%;width:100%;height:100%}.portrait__placeholder{color:var(--text-faint);background:#ffffff0f;place-items:center;font-size:clamp(2.8rem,6vw,4rem);font-weight:500;display:grid}.hero__jump{white-space:nowrap;gap:28px;font-size:.95rem;display:flex;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.hero__jump a{color:var(--text-muted);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:5px}.hero__jump a:hover{color:var(--text)}.section{max-width:calc(var(--max-width) + 2 * var(--gutter));padding:clamp(64px, 9vw, 104px) var(--gutter) 0;margin:0 auto}.section__title{margin:0 0 24px;font-size:clamp(1.9rem,4vw,2.4rem);font-weight:600;line-height:1.15}.about{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;gap:clamp(32px,5vw,64px);display:grid}.about__text p{margin:0 0 18px}.skills{border-left:2px solid var(--accent);padding-left:24px}.skills__title{margin:6px 0 16px;font-size:1.3rem;font-weight:600}.skills dl{margin:0}.skills__group+.skills__group{margin-top:14px}.skills dt{font-weight:600}.skills dd{color:var(--text-muted);margin:2px 0 0;font-size:.95rem}.projects{gap:18px;display:grid}.projects--other{grid-template-columns:repeat(2,minmax(0,1fr))}.projects__subheading{margin:clamp(48px,7vw,72px) 0 18px;font-size:1.5rem;font-weight:600}.card{border:1px solid var(--border);background:var(--surface);border-radius:8px;overflow:hidden}.card--with-image{grid-template-columns:minmax(0,2fr) minmax(0,3fr);display:grid}.card--compact.card--with-image{grid-template-columns:1fr}.card__image{aspect-ratio:4/3;object-fit:cover;border-radius:6px;width:calc(100% - 28px);margin:28px 0 0 28px}.card--compact .card__image{aspect-ratio:16/9;border-radius:0;width:100%;margin:0}.card__body{padding:clamp(20px,3vw,28px)}.card__header{justify-content:space-between;align-items:baseline;gap:8px 16px;display:flex}.card__title{margin:0;font-size:clamp(1.2rem,2.2vw,1.4rem);font-weight:600;line-height:1.3}.card--compact .card__title{font-size:1.2rem}.card__dates{color:var(--text-muted);white-space:nowrap;flex:none;margin:0;font-size:.9rem}.card__meta{color:var(--accent);margin:2px 0 0;font-size:.92rem}.card__summary{margin:14px 0 0}.card__bullets{color:var(--text-muted);margin:10px 0 0;padding-left:20px;font-size:.95rem}.card__bullets li+li{margin-top:6px}.card__bullets li::marker{color:var(--accent)}.card__skills{color:var(--text-muted);margin:14px 0 0;font-size:.92rem;font-style:italic}.card__skills span{color:var(--text);font-style:normal;font-weight:500}.footer{max-width:var(--max-width);border-top:1px solid var(--border);color:var(--text-faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:clamp(80px,11vw,120px) auto 0;padding:28px 0 40px;font-size:.9rem;display:flex}.footer p{margin:0}.footer a{text-decoration:none}.footer p a:hover{color:var(--text)}@media (width<=1088px){.footer{margin-right:var(--gutter);margin-left:var(--gutter)}}@media (width<=860px){.about,.projects--other{grid-template-columns:1fr}}@media (width<=760px){.hero__body{text-align:center;flex-direction:column;gap:32px;padding:40px 0 90px}.hero__actions{justify-content:center}.card--with-image{grid-template-columns:1fr}.card__image{aspect-ratio:16/9;border-radius:0;width:100%;margin:0}}@media (width<=560px){:root{--gutter:16px}body{font-size:16px}.card__header{flex-direction:column;gap:2px}.footer{text-align:center;flex-direction:column}}@media (width<=440px){.hero .social{justify-content:center;width:44px;padding:0}.hero .social__label{display:none}}
