@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.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-wght-normal.DqGufNeO.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-wght-normal.DlzME5K_.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-wght-normal.CkhJZR-_.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-wght-normal.CBcvBZtf.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-wght-normal.DO1Apj_S.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-wght-normal.Dx4kXJAl.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}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--bg-primary: #0a0a1a;--bg-secondary: #080816;--bg-card: rgba(255, 255, 255, .04);--bg-card-hover: rgba(255, 255, 255, .07);--text-primary: #f5f5f7;--text-secondary: #86868b;--text-tertiary: #6e6e73;--accent-blue: #2997ff;--accent-purple: #bf5af2;--gradient-accent: linear-gradient(135deg, #2997ff, #bf5af2);--gradient-accent-reverse: linear-gradient(135deg, #bf5af2, #2997ff);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--max-width: 1100px;--section-padding: clamp(5rem, 12vh, 9rem);--border-color: rgba(255, 255, 255, .08);--border-color-hover: rgba(255, 255, 255, .15)}body{font-family:var(--font-sans);background:var(--bg-primary);background-image:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(41,50,120,.35) 0%,transparent 60%),radial-gradient(ellipse 60% 40% at 80% 50%,rgba(88,40,120,.15) 0%,transparent 50%),radial-gradient(ellipse 60% 40% at 20% 80%,rgba(25,50,120,.15) 0%,transparent 50%);background-attachment:fixed;color:var(--text-primary);line-height:1.6;overflow-x:hidden}@media(max-width:768px){body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}}main{position:relative;z-index:1}img{max-width:100%;height:auto;display:block}a{color:var(--accent-blue);text-decoration:none;transition:color .3s ease}a:hover{color:var(--accent-purple)}.timeline-card,.skill-category,.project-card,.edu-card,.cert-badge,.contact-item{position:relative;overflow:hidden}.timeline-card:after,.skill-category:after,.project-card:after,.edu-card:after,.cert-badge:after,.contact-item:after{content:"";position:absolute;top:var(--glow-y, -100px);left:var(--glow-x, -100px);width:250px;height:250px;background:radial-gradient(circle,rgba(41,151,255,.12) 0%,transparent 70%);transform:translate(-50%,-50%);pointer-events:none;opacity:0;transition:opacity .3s ease;z-index:0}.timeline-card:hover:after,.skill-category:hover:after,.project-card:hover:after,.edu-card:hover:after,.cert-badge:hover:after,.contact-item:hover:after{opacity:1}.timeline-card>*,.skill-category>*,.project-card>*,.edu-card>*,.cert-badge>*,.contact-item>*{position:relative;z-index:1}h1,h2,h3,h4{line-height:1.15;font-weight:700;letter-spacing:-.02em}h1{font-size:clamp(3rem,8vw,5.5rem)}h2{font-size:clamp(2rem,5vw,3rem);margin-bottom:1rem}h3{font-size:clamp(1.1rem,2vw,1.35rem);font-weight:600}p{color:var(--text-secondary);font-size:clamp(1rem,1.5vw,1.125rem)}.gradient-text{background:var(--gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section{padding:var(--section-padding) 1.5rem;max-width:var(--max-width);margin:0 auto}.section-title{text-align:center;margin-bottom:clamp(3rem,6vh,5rem)}.section-label{font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.15em;color:var(--accent-blue);margin-bottom:.75rem;display:block}@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}@keyframes drawLine{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.reveal{opacity:0;will-change:transform,opacity}.reveal.visible{animation-duration:.8s;animation-fill-mode:both;animation-timing-function:cubic-bezier(.16,1,.3,1)}.reveal.visible[data-animate=fade-up]{animation-name:fadeInUp}.reveal.visible[data-animate=fade-left]{animation-name:fadeInLeft}.reveal.visible[data-animate=fade-right]{animation-name:fadeInRight}.reveal.visible[data-animate=scale-in]{animation-name:scaleIn}.hero-animate{opacity:0;animation-fill-mode:both;animation-timing-function:cubic-bezier(.16,1,.3,1)}.hero-animate.fade-up{animation:fadeInUp 1s both}.hero-animate.scale-in{animation:scaleIn 1s both}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}.reveal,.hero-animate{opacity:1}}
