:root{--color-bg-primary:#fafbff;--color-bg-secondary:#f0f2f8;--color-bg-card:#fff;--color-bg-code:#f3f4f7;--color-fg-primary:#0f1729;--color-fg-secondary:#4a5568;--color-fg-muted:#8892a4;--color-border:#e2e6f0;--color-border-hover:#c8cfe0;--color-accent:#00b4d8;--color-accent-rgb:0, 180, 216;--color-accent-hover:#0096c7;--color-accent-subtle:#00b4d814;--color-accent-glow:#00b4d840;--color-success:#10b981;--color-warning:#f59e0b;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Consolas", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--leading-tight:1.15;--leading-snug:1.35;--leading-normal:1.6;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 8px 30px #00000014;--shadow-xl:0 20px 60px #0000001a;--shadow-glow:0 0 30px rgba(var(--color-accent-rgb), .15);--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--container-max:1200px;--nav-height:4rem;--scroll-progress:0%}[data-theme=dark]{--color-bg-primary:#0a0e1a;--color-bg-secondary:#111827;--color-bg-card:#151c2e;--color-bg-code:#1a2236;--color-fg-primary:#e8ecf4;--color-fg-secondary:#94a3b8;--color-fg-muted:#64748b;--color-border:#1e293b;--color-border-hover:#334155;--color-accent:#22d3ee;--color-accent-rgb:34, 211, 238;--color-accent-hover:#06b6d4;--color-accent-subtle:#22d3ee0f;--color-accent-glow:#22d3ee33;--shadow-sm:0 1px 2px #0003;--shadow-md:0 4px 12px #00000040;--shadow-lg:0 8px 30px #0000004d;--shadow-xl:0 20px 60px #0006;--shadow-glow:0 0 40px rgba(var(--color-accent-rgb), .12)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-height) + 1rem);-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-fg-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}ul,ol{list-style:none}.skip-link{top:-100%;left:var(--space-4);z-index:10000;padding:var(--space-3) var(--space-6);background:var(--color-accent);color:#000;border-radius:var(--radius-md);font-weight:600;font-size:var(--text-sm);transition:top var(--transition-fast);position:fixed}.skip-link:focus{top:var(--space-4);outline:2px solid var(--color-accent);outline-offset:2px}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}.container{width:100%;max-width:var(--container-max);padding:0 var(--space-6);margin:0 auto}@media (width>=768px){.container{padding:0 var(--space-8)}}.scroll-progress{z-index:1001;background:0 0;width:100%;height:3px;position:fixed;top:0;left:0}.scroll-progress__bar{height:100%;width:var(--scroll-progress);background:linear-gradient(90deg, var(--color-accent), #a78bfa);border-radius:0 2px 2px 0;transition:width 50ms linear}.header{z-index:1000;height:var(--nav-height);background:rgba(var(--color-accent-rgb), 0);-webkit-backdrop-filter:blur();backdrop-filter:blur();transition:background var(--transition-base), backdrop-filter var(--transition-base), border-color var(--transition-base);border-bottom:1px solid #0000;position:fixed;top:0;left:0;right:0}.header--scrolled{background:color-mix(in srgb, var(--color-bg-primary) 85%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4);border-bottom-color:var(--color-border)}.nav{justify-content:space-between;align-items:center;height:100%;display:flex}.nav__logo{font-size:var(--text-xl);letter-spacing:-.02em;transition:transform var(--transition-fast);align-items:center;gap:1px;font-weight:800;display:flex}.nav__logo:hover{transform:scale(1.05)}.nav__logo-dot{color:var(--color-accent);font-size:var(--text-2xl)}.nav__links{gap:var(--space-1);display:none}@media (width>=768px){.nav__links{display:flex}}.nav__link{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--color-fg-secondary);border-radius:var(--radius-md);transition:color var(--transition-fast), background var(--transition-fast);font-weight:500;display:block;position:relative}.nav__link:hover{color:var(--color-accent);background:var(--color-accent-subtle)}.nav__link--active{color:var(--color-accent)}.nav__actions{align-items:center;gap:var(--space-2);display:flex}.theme-toggle{border-radius:var(--radius-md);width:2.25rem;height:2.25rem;transition:background var(--transition-fast);justify-content:center;align-items:center;display:flex}.theme-toggle:hover{background:var(--color-accent-subtle)}.theme-toggle__icon{width:1.125rem;height:1.125rem}.theme-toggle__icon--moon,[data-theme=dark] .theme-toggle__icon--sun{display:none}[data-theme=dark] .theme-toggle__icon--moon{display:block}.nav__hamburger{padding:var(--space-2);border-radius:var(--radius-md);transition:background var(--transition-fast);flex-direction:column;gap:4px;display:flex}.nav__hamburger:hover{background:var(--color-accent-subtle)}@media (width>=768px){.nav__hamburger{display:none}}.nav__hamburger-line{background:var(--color-fg-primary);width:18px;height:2px;transition:transform var(--transition-base), opacity var(--transition-fast);border-radius:2px;display:block}.nav__hamburger--open .nav__hamburger-line:first-child{transform:translateY(6px)rotate(45deg)}.nav__hamburger--open .nav__hamburger-line:nth-child(2){opacity:0}.nav__hamburger--open .nav__hamburger-line:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.nav__links--mobile-open{top:var(--nav-height);background:var(--color-bg-primary);padding:var(--space-8) var(--space-6);gap:var(--space-2);z-index:999;flex-direction:column;animation:.3s slideDown;display:flex;position:fixed;bottom:0;left:0;right:0}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.nav__links--mobile-open .nav__link{font-size:var(--text-lg);padding:var(--space-4)}.hero{min-height:100vh;padding:calc(var(--nav-height) + var(--space-16)) 0 var(--space-16);align-items:center;display:flex;position:relative;overflow:hidden}.hero__container{gap:var(--space-12);grid-template-columns:1fr;align-items:center;display:grid}@media (width>=1024px){.hero__container{gap:var(--space-16);grid-template-columns:1.1fr .9fr}}.hero__greeting{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.hero__greeting-line{background:var(--color-accent);width:2rem;height:2px}.hero__greeting-text{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-accent);letter-spacing:.05em;font-weight:500}.hero__name{font-size:clamp(var(--text-3xl), 6vw, var(--text-6xl));font-weight:800;line-height:var(--leading-tight);letter-spacing:-.03em;background:linear-gradient(135deg, var(--color-fg-primary) 0%, var(--color-fg-secondary) 100%);-webkit-text-fill-color:transparent;margin-bottom:var(--space-4);-webkit-background-clip:text;background-clip:text}.hero__title{font-size:clamp(var(--text-lg), 2.5vw, var(--text-2xl));color:var(--color-accent);margin-bottom:var(--space-6);letter-spacing:-.01em;font-weight:500}.hero__bio{font-size:var(--text-lg);color:var(--color-fg-secondary);line-height:var(--leading-normal);max-width:540px;margin-bottom:var(--space-8)}.hero__cta{gap:var(--space-4);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.hero__social{gap:var(--space-4);display:flex}.hero__social-link{border-radius:var(--radius-md);width:2.5rem;height:2.5rem;color:var(--color-fg-muted);transition:color var(--transition-fast), background var(--transition-fast), transform var(--transition-fast);justify-content:center;align-items:center;display:flex}.hero__social-link:hover{color:var(--color-accent);background:var(--color-accent-subtle);transform:translateY(-2px)}.hero__social-link svg{width:1.25rem;height:1.25rem}.hero__bg-glow{background:radial-gradient(circle, var(--color-accent-glow) 0%, transparent 70%);filter:blur(80px);pointer-events:none;z-index:-1;border-radius:50%;width:600px;height:600px;position:absolute;top:10%;right:-10%}.hero__visual{display:none}@media (width>=1024px){.hero__visual{display:block}}.hero__terminal{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg), var(--shadow-glow);max-width:480px;margin-left:auto;overflow:hidden}.terminal__header{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);display:flex}.terminal__dots{gap:6px;display:flex}.terminal__dot{border-radius:50%;width:10px;height:10px}.terminal__dot--red{background:#ff5f57}.terminal__dot--yellow{background:#febc2e}.terminal__dot--green{background:#28c840}.terminal__title{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-fg-muted)}.terminal__body{padding:var(--space-6);align-items:flex-start;min-height:120px;display:flex}.terminal__line{align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-sm);display:flex}.terminal__prompt{color:var(--color-accent);flex-shrink:0;font-weight:600}.terminal__text{color:var(--color-fg-secondary);white-space:nowrap}.terminal__cursor{color:var(--color-accent);font-size:var(--text-base);line-height:1;animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-size:var(--text-sm);border-radius:var(--radius-lg);transition:all var(--transition-base);cursor:pointer;white-space:nowrap;font-weight:600;display:inline-flex}.btn__icon{width:1.125rem;height:1.125rem}.btn--primary{background:linear-gradient(135deg, var(--color-accent), var(--color-accent-hover));color:#0a0e1a;box-shadow:0 2px 8px rgba(var(--color-accent-rgb), .3)}.btn--primary:hover{box-shadow:0 4px 16px rgba(var(--color-accent-rgb), .4);transform:translateY(-2px)}.btn--primary:active{transform:translateY(0)}.btn--outline{border:1.5px solid var(--color-accent);color:var(--color-accent);background:0 0}.btn--outline:hover{background:var(--color-accent-subtle);transform:translateY(-2px)}.btn--lg{padding:var(--space-4) var(--space-8);font-size:var(--text-base);border-radius:var(--radius-xl)}.section{padding:var(--space-24) 0}.section__header{align-items:center;gap:var(--space-4);margin-bottom:var(--space-12);display:flex}.section__number{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-accent);font-weight:500}.section__title{font-size:var(--text-2xl);letter-spacing:-.02em;white-space:nowrap;font-weight:700}.section__line{background:var(--color-border);flex:1;max-width:300px;height:1px}.about__content{gap:var(--space-12);grid-template-columns:1fr;align-items:start;display:grid}@media (width>=768px){.about__content{grid-template-columns:3fr 1fr}}.about__text p{color:var(--color-fg-secondary);font-size:var(--text-lg);line-height:var(--leading-normal);margin-bottom:var(--space-6)}.about__text p:last-child{margin-bottom:0}.about__text strong{color:var(--color-fg-primary);font-weight:600}.about__avatar{justify-content:center;display:flex}.about__avatar-frame{border-radius:var(--radius-xl);border:2px solid var(--color-accent);width:160px;height:160px;box-shadow:var(--shadow-glow);transition:transform var(--transition-base), box-shadow var(--transition-base);position:relative;overflow:hidden}.about__avatar-frame:hover{box-shadow:0 0 50px rgba(var(--color-accent-rgb), .2);transform:scale(1.03)}.about__avatar-initials{width:100%;height:100%;font-size:var(--text-5xl);letter-spacing:-.04em;background:linear-gradient(135deg, var(--color-bg-secondary), var(--color-bg-card));color:var(--color-accent);justify-content:center;align-items:center;font-weight:800;display:flex}.projects__filters{gap:var(--space-2);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.projects__filter{padding:var(--space-2) var(--space-5);font-size:var(--text-sm);color:var(--color-fg-muted);border:1px solid var(--color-border);border-radius:var(--radius-full);transition:all var(--transition-fast);font-weight:500}.projects__filter:hover{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-subtle)}.projects__filter--active{color:#0a0e1a;background:var(--color-accent);border-color:var(--color-accent)}.projects__filter--active:hover{color:#0a0e1a;background:var(--color-accent-hover)}.projects__grid{gap:var(--space-6);grid-template-columns:1fr;display:grid}@media (width>=640px){.projects__grid{grid-template-columns:repeat(2,1fr)}}.project-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);transition:transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);flex-direction:column;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";background:linear-gradient(90deg, var(--color-accent), #a78bfa);opacity:0;height:3px;transition:opacity var(--transition-base);position:absolute;top:0;left:0;right:0}.project-card:hover{box-shadow:var(--shadow-lg), var(--shadow-glow);border-color:var(--color-border-hover);transform:translateY(-4px)}.project-card:hover:before{opacity:1}.project-card--hidden{display:none}.project-card__header{margin-bottom:var(--space-4);justify-content:space-between;align-items:flex-start;display:flex}.project-card__icon{background:var(--color-accent-subtle);width:2.5rem;height:2.5rem;color:var(--color-accent);border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;display:flex}.project-card__icon svg{width:1.25rem;height:1.25rem}.project-card__links{gap:var(--space-2);display:flex}.project-card__link{width:2rem;height:2rem;color:var(--color-fg-muted);border-radius:var(--radius-sm);transition:color var(--transition-fast), background var(--transition-fast);justify-content:center;align-items:center;display:flex}.project-card__link:hover{color:var(--color-accent);background:var(--color-accent-subtle)}.project-card__link svg{width:1rem;height:1rem}.project-card__title{font-size:var(--text-xl);margin-bottom:var(--space-1);letter-spacing:-.01em;font-weight:700}.project-card__subtitle{font-size:var(--text-sm);color:var(--color-fg-muted);margin-bottom:var(--space-3)}.project-card__description{font-size:var(--text-sm);color:var(--color-fg-secondary);line-height:var(--leading-normal);margin-bottom:var(--space-5);flex:1}.project-card__footer{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.project-card__tech{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-fg-muted);padding:var(--space-1) var(--space-2);background:var(--color-bg-secondary);border-radius:var(--radius-sm)}.project-card__status{font-size:var(--text-xs);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);margin-left:auto;font-weight:600}.project-card__status--completed{color:var(--color-success);background:#10b9811a}.project-card__status--in-progress{color:var(--color-warning);background:#f59e0b1a}.skills__grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.skill-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);transition:transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base)}.skill-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-hover);transform:translateY(-3px)}.skill-card__header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.skill-card__icon{background:var(--color-accent-subtle);width:2.25rem;height:2.25rem;color:var(--color-accent);border-radius:var(--radius-md);justify-content:center;align-items:center;display:flex}.skill-card__icon svg{width:1.125rem;height:1.125rem}.skill-card__title{font-size:var(--text-base);font-weight:600}.skill-card__items{gap:var(--space-2);flex-wrap:wrap;display:flex}.skill-card__item{font-size:var(--text-sm);color:var(--color-fg-secondary);padding:var(--space-1) var(--space-3);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);transition:border-color var(--transition-fast), color var(--transition-fast)}.skill-card__item:hover{border-color:var(--color-accent);color:var(--color-accent)}.education__card{gap:var(--space-6);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-8);display:flex}.education__icon{background:var(--color-accent-subtle);width:3rem;height:3rem;color:var(--color-accent);border-radius:var(--radius-lg);flex-shrink:0;justify-content:center;align-items:center;display:flex}.education__icon svg{width:1.5rem;height:1.5rem}.education__degree{font-size:var(--text-xl);margin-bottom:var(--space-2);font-weight:700}.education__university{font-size:var(--text-base);color:var(--color-accent);margin-bottom:var(--space-1);font-weight:500}.education__period{font-size:var(--text-sm);color:var(--color-fg-muted);margin-bottom:var(--space-6)}.education__coursework-title{font-size:var(--text-sm);color:var(--color-fg-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-3);font-weight:600}.education__coursework-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.education__coursework-list li{font-size:var(--text-sm);color:var(--color-fg-secondary);padding:var(--space-1) var(--space-3);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full)}@media (width<=640px){.education__card{padding:var(--space-6);flex-direction:column}}.contact__content{text-align:center;max-width:600px;margin:0 auto}.contact__text{font-size:var(--text-lg);color:var(--color-fg-secondary);line-height:var(--leading-normal);margin-bottom:var(--space-8)}.contact__email-note{margin-top:var(--space-4);color:var(--color-fg-muted)}.contact__placeholder{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-accent)}.contact__social{justify-content:center;gap:var(--space-4);margin-top:var(--space-8);display:flex}.contact__social-link{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-size:var(--text-sm);color:var(--color-fg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-fast);font-weight:500;display:inline-flex}.contact__social-link:hover{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-subtle);transform:translateY(-2px)}.contact__social-link svg{width:1.125rem;height:1.125rem}.footer{padding:var(--space-8) 0;border-top:1px solid var(--color-border)}.footer__content{align-items:center;gap:var(--space-2);text-align:center;flex-direction:column;display:flex}.footer__text{font-size:var(--text-sm);color:var(--color-fg-muted)}.footer__text strong{color:var(--color-fg-secondary)}.footer__copyright{font-size:var(--text-xs);color:var(--color-fg-muted)}.reveal{opacity:0;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transform:translateY(24px)}.reveal--visible{opacity:1;transform:translateY(0)}.reveal:nth-child(2){transition-delay:.1s}.reveal:nth-child(3){transition-delay:.15s}.reveal:nth-child(4){transition-delay:.2s}.reveal:nth-child(5){transition-delay:.25s}.reveal:nth-child(6){transition-delay:.3s}@media (width<=640px){.section{padding:var(--space-16) 0}.section__header{margin-bottom:var(--space-8)}.hero{padding:calc(var(--nav-height) + var(--space-8)) 0 var(--space-8)}.hero__name{font-size:var(--text-4xl)}.hero__bio{font-size:var(--text-base)}.hero__cta{flex-direction:column}.hero__cta .btn{text-align:center;width:100%}.projects__grid,.skills__grid{grid-template-columns:1fr}}
