*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--color-bg: #f8fafc;--color-bg-secondary: #f1f5f9;--color-bg-tertiary: #e2e8f0;--color-bg-card: #ffffff;--color-border: #e2e8f0;--color-border-hover: #cbd5e1;--color-text: #0f172a;--color-text-secondary: #475569;--color-text-tertiary: #94a3b8;--color-accent: #6366f1;--color-accent-light: #818cf8;--color-accent-dark: #4f46e5;--color-accent-glow: rgba(99, 102, 241, .06);--color-spotlight: rgba(99, 102, 241, .05);--gradient-accent: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a855f7 100%);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--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;--max-width: 1280px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .08);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease}[data-theme=dark]{--color-bg: #0f172a;--color-bg-secondary: #1e293b;--color-bg-tertiary: #334155;--color-bg-card: #1e293b;--color-border: #334155;--color-border-hover: #475569;--color-text: #e2e8f0;--color-text-secondary: #94a3b8;--color-text-tertiary: #64748b;--color-accent: #5eead4;--color-accent-light: #99f6e4;--color-accent-dark: #2dd4bf;--color-accent-glow: rgba(94, 234, 212, .1);--color-spotlight: rgba(94, 234, 212, .07);--gradient-accent: linear-gradient(135deg, #5eead4 0%, #22d3ee 100%);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5)}html{scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:16px;line-height:1.7;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;transition:background-color var(--transition-slow),color var(--transition-base)}a{color:inherit;text-decoration:none}ul{list-style:none}img{max-width:100%;height:auto}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.layout{display:flex;min-height:100vh;position:relative;max-width:1400px;margin:0 auto;padding:0 var(--space-6)}.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--gradient-accent);transform-origin:0%;z-index:1000}.mouse-spotlight{position:fixed;inset:0;pointer-events:none;z-index:1}.header{position:sticky;top:0;width:50%;height:100vh;padding:var(--space-24) var(--space-6);display:flex;flex-direction:column;z-index:10}.header-content{display:flex;flex-direction:column;justify-content:space-between;height:100%;max-width:400px}.header-top{display:flex;flex-direction:column;gap:var(--space-3)}.name{font-size:clamp(2.75rem,5vw,3.25rem);font-weight:700;letter-spacing:-.03em;line-height:1.1;color:var(--color-text)}.title{font-size:1.25rem;font-weight:500;color:var(--color-text-secondary);margin-top:var(--space-1)}.tagline{font-size:1rem;color:var(--color-text-tertiary)}.tagline a{color:var(--color-accent);transition:all var(--transition-fast)}.tagline a:hover{color:var(--color-accent-light);text-decoration:underline;text-underline-offset:3px}.intro{font-size:1rem;color:var(--color-text-secondary);line-height:1.7;margin-top:var(--space-6);max-width:360px}.section-nav{display:none;flex-direction:column;gap:var(--space-4);margin-top:var(--space-16)}@media(min-width:1024px){.section-nav{display:flex}}.nav-item{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2) 0;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left;transition:all var(--transition-base)}.nav-indicator{width:32px;height:1px;background:var(--color-text-tertiary);transition:all var(--transition-base)}.nav-text{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-tertiary);transition:color var(--transition-base)}.nav-item:hover .nav-indicator{width:64px;background:var(--color-text-secondary)}.nav-item:hover .nav-text{color:var(--color-text-secondary)}.nav-item.active .nav-indicator{width:64px;background:var(--color-text)}.nav-item.active .nav-text{color:var(--color-text)}.social-links{display:flex;align-items:center;gap:var(--space-6);margin-top:auto;padding-top:var(--space-8)}.social-links a{color:var(--color-text-tertiary);transition:all var(--transition-fast)}.social-links a:hover{color:var(--color-accent)}.theme-toggle{display:flex;align-items:center;justify-content:center;padding:var(--space-2);background:none;border:none;cursor:pointer;color:var(--color-text-tertiary);transition:color var(--transition-fast)}.theme-toggle:hover{color:var(--color-accent)}.main{flex:1;padding:var(--space-24) var(--space-6) var(--space-24) var(--space-12);position:relative;z-index:10}@media(min-width:1024px){.main{height:100vh;overflow-y:auto;padding-right:var(--space-12)}.main::-webkit-scrollbar{width:4px}.main::-webkit-scrollbar-track{background:transparent}.main::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.main::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}}.section{margin-bottom:var(--space-32);scroll-margin-top:var(--space-24)}.section-heading{display:flex;align-items:center;gap:var(--space-3);font-size:1rem;font-weight:700;letter-spacing:.02em;color:var(--color-text);margin-bottom:var(--space-10);position:sticky;top:0;padding:var(--space-4) 0;background:linear-gradient(to bottom,var(--color-bg) 60%,transparent);z-index:5}@media(min-width:1024px){.section-heading{display:none}}.section-number{font-family:var(--font-mono);font-size:.875rem;font-weight:500;color:var(--color-accent)}.highlight{color:var(--color-accent)}.about-content{display:flex;flex-direction:column;gap:var(--space-5)}.about-content>p{font-size:1rem;line-height:1.8;color:var(--color-text-secondary)}.about-education{display:flex;align-items:flex-start;gap:var(--space-4);margin-top:var(--space-6);padding:var(--space-5);background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.education-icon{font-size:1.5rem;line-height:1}.education-degree{display:block;font-size:.9375rem;font-weight:600;color:var(--color-text);margin-bottom:var(--space-1)}.education-school{font-size:.875rem;color:var(--color-text-tertiary)}.experience-list{display:flex;flex-direction:column;gap:var(--space-1)}.experience-card{display:grid;grid-template-columns:150px 1fr;gap:var(--space-4);padding:var(--space-6);border-radius:var(--radius-lg);text-decoration:none;transition:all var(--transition-base);cursor:default;border:1px solid transparent}.experience-card.has-link{cursor:pointer}.experience-card:hover{background:var(--color-bg-secondary);border-color:var(--color-border);box-shadow:var(--shadow-md)}.experience-card.has-link:hover .exp-title{color:var(--color-accent)}.experience-card.has-link:hover .link-arrow{transform:translate(3px,-3px)}.exp-period{font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-tertiary);padding-top:var(--space-1)}.exp-content{display:flex;flex-direction:column;gap:var(--space-3)}.exp-title{font-size:1rem;font-weight:600;color:var(--color-text);line-height:1.4;display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-2);transition:color var(--transition-fast)}.exp-company{color:var(--color-text-secondary);font-weight:500}.link-arrow{display:inline-block;flex-shrink:0;margin-left:var(--space-1);transition:transform var(--transition-base);color:var(--color-text-tertiary)}.exp-description{font-size:.9375rem;line-height:1.7;color:var(--color-text-secondary)}.exp-stack{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-1)}.tech-tag{padding:var(--space-1) var(--space-3);font-size:.75rem;font-weight:500;font-family:var(--font-mono);color:var(--color-accent);background:var(--color-accent-glow);border-radius:100px;transition:all var(--transition-fast)}.tech-tag:hover{background:var(--color-accent);color:var(--color-bg)}.resume-link{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-6);padding:var(--space-4) var(--space-6);font-size:.9375rem;font-weight:600;color:var(--color-accent);text-decoration:none;border-radius:var(--radius-md);transition:all var(--transition-fast)}.resume-link:hover{background:var(--color-accent-glow)}.resume-link:hover svg{transform:translate(3px,-3px)}.resume-link svg{transition:transform var(--transition-base)}.projects-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-5)}.project-card{display:block;padding:var(--space-6);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-decoration:none;transition:all var(--transition-base);cursor:default}.project-card.has-link{cursor:pointer}.project-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.project-card.has-link:hover .project-title,.project-card.has-link:hover .project-link-icon{color:var(--color-accent)}.project-card.has-image{padding:0}.project-card.has-image .project-content{padding:var(--space-5)}.project-image{width:100%;height:160px;overflow:hidden;background:var(--color-bg-tertiary)}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.project-card:hover .project-image img{transform:scale(1.05)}.project-content{display:flex;flex-direction:column;gap:var(--space-3)}.project-header{display:flex;justify-content:space-between;align-items:flex-start}.project-header-right{display:flex;align-items:center;gap:var(--space-3)}.project-icon{color:var(--color-accent)}.project-link-icon{color:var(--color-text-tertiary);transition:color var(--transition-fast)}.nda-badge{padding:var(--space-1) var(--space-2);font-size:.625rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-tertiary);background:var(--color-bg-tertiary);border-radius:var(--radius-sm)}.project-card.nda{opacity:.85}.project-card.nda .project-icon{color:var(--color-text-tertiary)}.project-title{font-size:1.125rem;font-weight:600;color:var(--color-text);transition:color var(--transition-fast)}.project-description{font-size:.875rem;line-height:1.7;color:var(--color-text-secondary)}.project-stack{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.tech-tag-sm{padding:var(--space-1) var(--space-2);font-size:.6875rem;font-weight:500;font-family:var(--font-mono);color:var(--color-accent);background:var(--color-accent-glow);border-radius:100px}.footer{padding:var(--space-20) 0;text-align:center}.footer-main{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:var(--space-2)}.footer-tech{font-size:.75rem;font-family:var(--font-mono);color:var(--color-text-tertiary)}@media(max-width:1023px){.layout{flex-direction:column;padding:0 var(--space-6)}.header{position:relative;width:100%;height:auto;padding:var(--space-16) 0 var(--space-8)}.header-content,.intro{max-width:none}.social-links{margin-top:var(--space-10);padding-top:0}.main{padding:var(--space-8) 0 var(--space-16)}.section-heading{display:flex;background:var(--color-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.experience-card{grid-template-columns:1fr;gap:var(--space-2);padding:var(--space-5)}.exp-period{padding-top:0;font-size:.6875rem}.projects-list{grid-template-columns:1fr}}@media(max-width:640px){.name{font-size:2.25rem}.section{margin-bottom:var(--space-20)}.project-card{padding:var(--space-5)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}::selection{background:var(--color-accent);color:var(--color-bg)}
