@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/inter-cyrillic-ext-BOeWTOD4.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/inter-cyrillic-DqGufNeO.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/inter-greek-ext-DlzME5K_.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/inter-greek-CkhJZR-_.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/inter-vietnamese-CBcvBZtf.woff2) format("woff2");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;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/inter-latin-ext-DO1Apj_S.woff2) format("woff2");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;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/inter-latin-Dx4kXJAl.woff2) format("woff2");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:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(data:font/woff2;base64,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) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/jb-mono-cyrillic-Buze_B52.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/jb-mono-greek-D3oMJlXt.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/jb-mono-vietnamese-BehTv68k.woff2) format("woff2");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:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/jb-mono-latin-ext-DIC32ArD.woff2) format("woff2");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:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/jb-mono-latin-6fWv1k7M.woff2) format("woff2");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{--bg: #0d0d0f;--nav-bg: rgba(13,13,15,.85);--fg: #f2f2f0;--muted-strong: rgba(242,242,240,.8);--muted: rgba(242,242,240,.65);--border: rgba(242,242,240,.12);--border-soft: rgba(242,242,240,.08);--card-bg: rgba(242,242,240,.05);--chip-bg: rgba(242,242,240,.06);--accent: #6ee7c8;--accent-chip: rgba(110,231,200,.12);--accent-contrast: #0d0d0f;--hero-gradient: linear-gradient(90deg, #6ee7c8, #8fb8ff 60%, #f28fd0);--accent-glow: rgba(110,231,200,.3);--section-about: #8fb8ff;--section-skills: #f6b26b;--section-work: #f28fd0;--section-experience: #6ee7c8;--section-honors: #f6b26b;--section-contact: #8fb8ff}[data-theme=light]{--bg: #faf9f6;--nav-bg: rgba(250,249,246,.85);--fg: #1a1a1a;--muted-strong: rgba(26,26,26,.78);--muted: rgba(26,26,26,.62);--border: rgba(26,26,26,.12);--border-soft: rgba(26,26,26,.08);--card-bg: rgba(26,26,26,.04);--chip-bg: rgba(26,26,26,.05);--accent: #0d9488;--accent-chip: rgba(13,148,136,.1);--accent-contrast: #faf9f6;--hero-gradient: linear-gradient(90deg, #0d9488, #3b6fd6 60%, #b23f8f);--accent-glow: rgba(13,148,136,.25);--section-about: #3b6fd6;--section-skills: #c2670f;--section-work: #b23f8f;--section-experience: #0d9488;--section-honors: #c2670f;--section-contact: #3b6fd6}html{scroll-behavior:smooth}section{scroll-margin-top:80px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--fg);transition:color .2s ease}a{text-decoration:none;color:inherit}a:hover{text-decoration:underline}nav a:hover,footer a:hover{text-decoration:none}.container{max-width:900px;margin:0 auto;padding:0 32px 48px;min-height:100vh}.section-card{padding:32px}.proj-card{padding:28px}.meta-row{display:grid;grid-template-columns:140px 1fr;gap:20px}.xp-row{display:grid;grid-template-columns:140px 1fr;gap:24px}.honor-row{display:grid;grid-template-columns:34px 100px 1fr;gap:16px;align-items:start}.nav-actions{gap:20px}.nav-btn{font-size:12px;padding:7px 12px}.nav-btn:active{transform:scale(.94)}.nav-link{color:var(--muted);padding-bottom:4px;border-bottom:2px solid transparent;transition:color .2s,border-color .25s}.nav-burger,.mobile-menu{display:none}.field:focus{border-color:var(--accent)!important}@media(hover:hover)and (pointer:fine){.btn-accent:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 16px var(--accent-glow)}.btn-outline:hover{transform:translateY(-2px);border-color:var(--accent)!important}.nav-btn:hover{border-color:var(--accent)!important}.nav-link:hover{color:var(--link-color);border-bottom-color:var(--link-color)}.hover-chip:hover{transform:translateY(-2px);border-color:var(--chip-hover)!important}.proj-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001f}.icon-badge:hover{transform:scale(1.15)}.hover-fg:hover{color:var(--fg)!important}.hover-accent:hover{color:var(--accent)!important}.hover-link:hover{color:var(--hover-color)!important}.hover-dim:hover{opacity:.7}.hero-avatar:hover{transform:scale(1.03);box-shadow:0 8px 24px #0003}}.footer-inner{padding:40px 32px 28px}.hero-grid{display:grid;grid-template-columns:1fr 280px;gap:48px;align-items:center}.hero-avatar{width:280px;height:280px;justify-self:end}.hero-title{font-size:clamp(38px,6.5vw,58px)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}@media(max-width:720px){.nav-links{display:none!important}.site-nav{margin:0 -20px;padding:12px 20px!important}.nav-burger{display:inline-flex;align-items:center;justify-content:center}.mobile-menu{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--border);box-shadow:0 12px 24px #00000026;padding:6px 20px 12px}.mobile-menu a{display:flex;align-items:center;gap:10px;padding:13px 2px;font-size:15px;color:var(--fg);border-bottom:1px solid var(--border-soft)}.mobile-menu a:last-child{border-bottom:none}.hero-grid{grid-template-columns:1fr;gap:28px;padding-top:32px!important;padding-bottom:40px!important}.hero-avatar{justify-self:start;order:-1;width:160px;height:160px}.contact-grid{grid-template-columns:1fr;gap:28px}.container{padding:0 20px 40px}.section-card{padding:22px 18px}.proj-card{padding:20px 16px}.meta-row,.xp-row{grid-template-columns:1fr;gap:8px}.honor-row{grid-template-columns:34px 1fr}.honor-row>div:last-child{grid-column:2}.proj-head{flex-wrap:wrap}.brand-sub{display:none}.nav-actions{gap:8px}.nav-btn{font-size:11.5px;padding:9px 11px}.footer-inner{padding:32px 20px 22px}}@media(max-width:1199px){.baymax-widget{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes sparkleAnim{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.2) translateY(-40px)}}@keyframes floatBlob{0%{transform:translate(0) scale(1)}25%{transform:translate(40px,-50px) scale(1.15)}50%{transform:translate(-30px,30px) scale(.9)}75%{transform:translate(50px,-20px) scale(1.05)}to{transform:translate(-20px,40px) scale(1)}}@keyframes baymaxBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes shimmer{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes thinkingPulse{0%,to{opacity:.3}50%{opacity:1}}
