@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Outfit:wght@300;400;500;600;700&display=swap";*,*:before,*:after{box-sizing:border-box}*{margin:0}html{interpolate-size:allow-keywords}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p{overflow-wrap:break-word;text-wrap:pretty}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;text-wrap:balance}#root,#app{isolation:isolate}:root{color-scheme:light dark}html{scroll-behavior:smooth}body{min-height:100dvh}.mouse-glow{position:fixed;top:0;left:0;width:600px;height:600px;border-radius:50%;pointer-events:none;z-index:0;opacity:0;background:radial-gradient(circle at center,var(--accent-glow) 0%,transparent 70%);filter:blur(60px);will-change:transform;transition:opacity .6s ease}.mouse-glow--active{opacity:1}@media(hover:none),(pointer:coarse){.mouse-glow{display:none}}@media(prefers-reduced-motion:reduce){.mouse-glow{display:none}}.resume{--font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;--font-body: "Outfit", system-ui, -apple-system, sans-serif;--bg: #f8faff;--bg-alt: #eef2fb;--bg-card: #ffffff;--text: #0f172a;--text-muted: #64748b;--text-light: #94a3b8;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-light: rgba(37, 99, 235, .07);--accent-glow: rgba(37, 99, 235, .12);--border: #dde3f0;--shadow: 0 1px 3px rgba(15, 23, 42, .05), 0 1px 2px rgba(15, 23, 42, .03);--shadow-md: 0 4px 16px rgba(15, 23, 42, .06);--shadow-lg: 0 12px 48px rgba(15, 23, 42, .08);--radius: 16px;--radius-sm: 10px;--ease: cubic-bezier(.4, 0, .2, 1);--max-w: 1100px;font-family:var(--font-body);color:var(--text);background:var(--bg)}@media(prefers-color-scheme:dark){.resume{--bg: #0b0f1a;--bg-alt: #131a2e;--bg-card: #131a2e;--text: #f1f5f9;--text-muted: #94a3b8;--text-light: #64748b;--accent: #60a5fa;--accent-hover: #93c5fd;--accent-light: rgba(96, 165, 250, .07);--accent-glow: rgba(96, 165, 250, .12);--border: #1e293b;--shadow: 0 1px 3px rgba(0, 0, 0, .2);--shadow-md: 0 4px 16px rgba(0, 0, 0, .25);--shadow-lg: 0 12px 48px rgba(0, 0, 0, .35)}}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.revealed{opacity:1;transform:translateY(0)}.resume-nav{position:fixed;top:0;left:0;right:0;z-index:100;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transform:translateY(-100%);transition:transform .4s var(--ease)}.resume-nav.visible{transform:translateY(0)}.nav-inner{max-width:var(--max-w);margin:0 auto;padding:0 2rem;height:64px;display:flex;align-items:center;justify-content:space-between}.nav-name{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--text);background:none;border:none;cursor:pointer;padding:0;letter-spacing:.01em}.nav-name:hover{color:var(--accent)}.nav-links{display:flex;gap:.25rem}.nav-link{background:none;border:none;color:var(--text-muted);font-family:var(--font-body);font-size:.875rem;font-weight:500;padding:.5rem .75rem;cursor:pointer;border-radius:var(--radius-sm);transition:color .25s var(--ease),background .25s var(--ease);position:relative}.nav-link:hover{color:var(--text);background:var(--accent-light)}.nav-link.active{color:var(--accent)}.nav-link.active:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--accent)}.mobile-menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem;width:40px;height:40px;align-items:center;justify-content:center}.hamburger{display:block;width:22px;height:2px;background:var(--text);position:relative;transition:background .3s var(--ease);border-radius:1px}.hamburger:before,.hamburger:after{content:"";position:absolute;width:100%;height:2px;background:var(--text);border-radius:1px;transition:transform .3s var(--ease),top .3s var(--ease),bottom .3s var(--ease)}.hamburger:before{top:-7px}.hamburger:after{bottom:-7px}.hamburger.open{background:transparent}.hamburger.open:before{transform:rotate(45deg);top:0}.hamburger.open:after{transform:rotate(-45deg);bottom:0}.hero{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;padding:2rem;overflow:hidden}.hero-bg{position:absolute;inset:0;pointer-events:none}.hero-bg:before{content:"";position:absolute;width:min(700px,90vw);height:min(700px,90vw);top:45%;left:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,var(--accent-glow) 0%,transparent 70%);animation:hero-pulse 10s ease-in-out infinite;border-radius:50%}.hero-bg:after{content:"";position:absolute;width:min(400px,60vw);height:min(400px,60vw);top:55%;left:40%;transform:translate(-50%,-50%);background:radial-gradient(circle,var(--accent-glow) 0%,transparent 65%);animation:hero-pulse 8s ease-in-out 2s infinite;border-radius:50%;opacity:.6}@keyframes hero-pulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.5}50%{transform:translate(-50%,-50%) scale(1.15);opacity:.8}}.hero-content{position:relative;z-index:1;max-width:800px}.hero-greeting{font-family:var(--font-body);font-size:clamp(.875rem,1.5vw,1.125rem);font-weight:500;color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin-bottom:1rem}.hero-name{font-family:var(--font-display);font-size:clamp(3.25rem,9vw,7rem);font-weight:700;line-height:1.02;letter-spacing:-.02em;color:var(--text);margin-bottom:1rem}.hero-title{font-family:var(--font-body);font-size:clamp(1.125rem,2.5vw,1.5rem);font-weight:300;color:var(--text-muted);margin-bottom:1.5rem}.hero-tagline{font-family:var(--font-display);font-size:clamp(1rem,2vw,1.25rem);font-weight:400;font-style:italic;color:var(--text-muted);max-width:560px;margin:0 auto 2.5rem;line-height:1.6}.hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.hero-scroll-indicator{position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.75rem;color:var(--text-light);font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;cursor:pointer;background:none;border:none;font-family:var(--font-body);transition:color .3s var(--ease);z-index:1}.hero-scroll-indicator:hover{color:var(--accent)}.scroll-line{display:block;width:1px;height:48px;background:var(--accent);position:relative;overflow:hidden}.scroll-line:after{content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;background:var(--bg);animation:scroll-slide 2s ease-in-out infinite}@keyframes scroll-slide{0%{top:-100%}to{top:100%}}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.875rem 2rem;font-family:var(--font-body);font-size:.9375rem;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;transition:background .3s var(--ease),color .3s var(--ease),transform .2s var(--ease),box-shadow .3s var(--ease);border:none;letter-spacing:.02em}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);box-shadow:0 8px 24px var(--accent-glow)}.btn-secondary{background:transparent;color:var(--text);border:1.5px solid var(--border)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.section{padding:6rem 2rem}.section:nth-child(2n){background:var(--bg-alt)}.section-inner{max-width:var(--max-w);margin:0 auto}.section-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);font-weight:700;line-height:1.1;margin-bottom:3rem;display:flex;align-items:baseline;gap:1rem}.section-number{font-family:var(--font-body);font-size:.875rem;font-weight:600;color:var(--accent);letter-spacing:.05em}.about-content{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2rem 3rem}.about-photo{grid-row:1;grid-column:1;width:180px;height:180px;border-radius:50%;overflow:hidden;border:3px solid var(--accent);box-shadow:0 0 0 6px var(--accent-light),var(--shadow-md);display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent-light),var(--accent-glow));flex-shrink:0}.about-photo-img{width:100%;height:100%;object-fit:cover}.about-photo-initials{font-family:var(--font-display);font-size:3.5rem;font-weight:700;color:var(--accent);line-height:1;-webkit-user-select:none;user-select:none}.about-text{grid-row:1;grid-column:2}.about-text p{font-size:1.0625rem;line-height:1.8;color:var(--text-muted)}.about-text p+p{margin-top:1.5rem}.about-location strong{color:var(--accent)}.about-highlights{grid-row:2;grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}.highlight-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;text-align:center;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease)}.highlight-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--accent)}.highlight-value{display:block;font-family:var(--font-display);font-size:2.25rem;font-weight:700;color:var(--accent);line-height:1;margin-bottom:.5rem}.highlight-label{font-size:.8125rem;font-weight:500;color:var(--text-muted);letter-spacing:.02em}.timeline{position:relative;padding-left:3rem}.timeline:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:var(--border)}.timeline-item{position:relative;padding-bottom:3rem}.timeline-item:last-child{padding-bottom:0}.timeline-marker{position:absolute;left:-3rem;top:6px;width:16px;height:16px;display:flex;align-items:center;justify-content:center}.timeline-dot{width:14px;height:14px;border-radius:50%;border:3px solid var(--border);background:var(--bg);transition:border-color .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease)}.timeline-item:first-child .timeline-dot,.timeline-item:hover .timeline-dot,.timeline-item.expanded .timeline-dot{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 4px var(--accent-light)}.timeline-content{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:box-shadow .3s var(--ease),border-color .3s var(--ease)}.timeline-item:hover .timeline-content,.timeline-item.expanded .timeline-content{box-shadow:var(--shadow-md);border-color:var(--accent)}.timeline-date{display:block;padding:1rem 2rem 0;font-size:.8125rem;font-weight:600;color:var(--accent);letter-spacing:.05em;text-transform:uppercase}.timeline-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 2rem 1rem;background:none;border:none;cursor:pointer;text-align:left;font-family:var(--font-body);color:var(--text);transition:background .25s var(--ease)}.timeline-header:hover{background:var(--accent-light)}.timeline-meta{flex:1;min-width:0}.timeline-role{font-family:var(--font-display);font-size:1.375rem;font-weight:600;line-height:1.3;margin-bottom:.25rem}.timeline-company{font-size:.9375rem;color:var(--text-muted)}.expand-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--accent-light);color:var(--accent);font-size:1.25rem;font-weight:300;flex-shrink:0;transition:background .3s var(--ease),transform .3s var(--ease)}.timeline-item.expanded .expand-icon{background:var(--accent);color:#fff}.timeline-desc{padding:0 2rem 1rem;font-size:.9375rem;color:var(--text-muted);line-height:1.7;border-bottom:1px solid var(--border)}.timeline-details{height:0;overflow:hidden;transition:height .4s var(--ease)}.timeline-item.expanded .timeline-details{height:auto}.timeline-highlights{padding:1.25rem 2rem 0;margin-bottom:1.25rem;list-style:none}.timeline-highlights li{position:relative;padding-left:1.25rem;font-size:.9375rem;color:var(--text-muted);line-height:1.7}.timeline-highlights li+li{margin-top:.5rem}.timeline-highlights li:before{content:"";position:absolute;left:0;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--accent)}.timeline-tech{display:flex;flex-wrap:wrap;gap:.5rem;padding:0 2rem 1.75rem}.tech-tag{display:inline-block;padding:.3rem .75rem;font-size:.75rem;font-weight:600;color:var(--accent);background:var(--accent-light);border-radius:100px;letter-spacing:.02em}.skill-filters,.project-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.filter-btn{padding:.5rem 1.25rem;font-family:var(--font-body);font-size:.8125rem;font-weight:600;color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border);border-radius:100px;cursor:pointer;transition:color .25s var(--ease),background .25s var(--ease),border-color .25s var(--ease)}.filter-btn:hover{color:var(--text);border-color:var(--text-light)}.filter-btn.active{color:#fff;background:var(--accent);border-color:var(--accent)}.skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem 3rem}.skill-item{display:flex;flex-direction:column;gap:.5rem}.skill-info{display:flex;justify-content:space-between;align-items:baseline}.skill-name{font-size:.9375rem;font-weight:600;color:var(--text)}.skill-level{font-size:.8125rem;font-weight:500;color:var(--text-muted)}.skill-bar{height:6px;background:var(--border);border-radius:100px;overflow:hidden}.skill-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-hover));border-radius:inherit;transition:width .8s var(--ease)}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease)}.project-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--accent)}.project-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--accent);background:var(--accent-light);border-radius:var(--radius-sm);margin-bottom:1.25rem}.project-title{font-family:var(--font-display);font-size:1.5rem;font-weight:700;margin-bottom:.75rem}.project-desc{font-size:.9375rem;color:var(--text-muted);line-height:1.7;margin-bottom:1rem}.project-highlights{list-style:none;margin-bottom:1.25rem;padding:0}.project-highlights li{position:relative;padding-left:1.25rem;font-size:.8125rem;color:var(--text-muted);line-height:1.7}.project-highlights li+li{margin-top:.25rem}.project-highlights li:before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:700;font-size:.75rem}.project-tech{display:flex;flex-wrap:wrap;gap:.5rem}.education-list{display:flex;flex-direction:column;gap:1.5rem}.education-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;transition:box-shadow .3s var(--ease),border-color .3s var(--ease)}.education-card:hover{box-shadow:var(--shadow-md);border-color:var(--accent)}.education-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.education-degree{font-family:var(--font-display);font-size:1.375rem;font-weight:600;line-height:1.3;margin-bottom:.25rem}.education-institution{font-size:.9375rem;color:var(--text-muted)}.education-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;flex-shrink:0}.education-period{font-size:.875rem;color:var(--text-muted);white-space:nowrap}.education-gpa{font-size:.8125rem;font-weight:600;color:var(--accent)}.education-highlights{list-style:none;padding:0}.education-highlights li{position:relative;padding-left:1.25rem;font-size:.9375rem;color:var(--text-muted);line-height:1.7}.education-highlights li+li{margin-top:.25rem}.education-highlights li:before{content:"";position:absolute;left:0;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--accent)}.contact-intro{font-size:1.0625rem;color:var(--text-muted);line-height:1.8;max-width:640px;margin-bottom:2.5rem}.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}.contact-card{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:1.5rem 2rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:var(--text);transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease)}.contact-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--accent)}.contact-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;font-size:1.125rem;font-weight:700;color:var(--accent);background:var(--accent-light);border-radius:var(--radius-sm)}.contact-label{font-size:.75rem;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:.1em}.contact-value{font-size:.9375rem;font-weight:500;color:var(--text)}.resume-footer{padding:3rem 2rem;text-align:center;border-top:1px solid var(--border)}.resume-footer p{font-size:.8125rem;color:var(--text-light)}@media(max-width:900px){.about-content{grid-template-columns:1fr;gap:2rem;justify-items:center}.about-photo{grid-row:1;grid-column:1;width:150px;height:150px}.about-photo-initials{font-size:3rem}.about-text{grid-row:2;grid-column:1;text-align:center}.about-highlights{grid-row:3;grid-column:1;grid-template-columns:1fr 1fr}.projects-grid{grid-template-columns:1fr}.skills-grid{gap:1.25rem 2rem}.contact-grid{grid-template-columns:1fr}}@media(max-width:640px){.mobile-menu-toggle{display:flex}.nav-links{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;background:color-mix(in srgb,var(--bg) 95%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);padding:.5rem 1rem 1rem}.nav-links.open{display:flex}.nav-link{padding:.75rem 1rem;width:100%;text-align:left}.nav-link.active:after{display:none}.section{padding:4rem 1.25rem}.section-title{margin-bottom:2rem}.about-highlights{grid-template-columns:1fr 1fr}.skills-grid{grid-template-columns:1fr}.timeline{padding-left:2.25rem}.timeline:before{left:5px}.timeline-marker{left:-2.25rem;width:12px;height:12px}.timeline-dot{width:12px;height:12px;border-width:2.5px}.timeline-item{padding-bottom:2rem}.timeline-date{padding:1rem 1.5rem 0}.timeline-header{padding:.75rem 1.5rem 1rem}.timeline-desc,.timeline-highlights,.timeline-tech{padding-left:1.5rem;padding-right:1.5rem}.education-header{flex-direction:column;gap:.5rem}.education-meta{align-items:flex-start;flex-direction:row;gap:1rem}.project-card{padding:1.5rem}.contact-card{padding:1.25rem 1.5rem}.hero-scroll-indicator{bottom:1.5rem}.skill-filters,.project-filters{gap:.375rem}.filter-btn{padding:.4rem .875rem;font-size:.75rem}}
