:root,[data-theme=dark]{--bg-primary:#08080a;--bg-elevated:#111114;--bg-surface:#18181b;--bg-hover:#1f1f24;--border-subtle:#ffffff0f;--border-medium:#ffffff1a;--text-primary:#f0f0f0;--text-secondary:#9ca3af;--text-muted:#6b7280;--accent:#6366f1;--accent-hover:#818cf8;--accent-gradient:linear-gradient(135deg,#6366f1,#a855f7);--nav-scrolled-bg:#08080ad9;--nav-overlay-bg:#08080af7;--card-shadow:0 20px 60px #0006;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition:300ms cubic-bezier(0.4,0,0.2,1);--transition-slow:500ms cubic-bezier(0.4,0,0.2,1)}[data-theme=light]{--bg-primary:#fafafa;--bg-elevated:#f0f0f3;--bg-surface:#fff;--bg-hover:#e8e8ec;--border-subtle:#0000000f;--border-medium:#0000001f;--text-primary:#111827;--text-secondary:#4b5563;--text-muted:#9ca3af;--accent:#6366f1;--accent-hover:#4f46e5;--accent-gradient:linear-gradient(135deg,#6366f1,#a855f7);--nav-scrolled-bg:#fafafad9;--nav-overlay-bg:#fafafaf7;--card-shadow:0 20px 60px #00000014}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{background:#08080a;background:var(--bg-primary);color:#9ca3af;color:var(--text-secondary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.6;overflow-x:hidden}img{display:block;height:auto;max-width:100%}a{color:inherit;text-decoration:none}ol,ul{list-style:none}button{cursor:pointer;font-family:inherit}::selection{background:#6366f14d;color:#fff}::view-transition-new(root),::view-transition-old(root){animation:none;mix-blend-mode:normal}::view-transition-new(root){animation:theme-reveal .6s cubic-bezier(.4,0,.2,1)}@keyframes theme-reveal{0%{clip-path:circle(0 at 50% 50%);clip-path:circle(0 at var(--toggle-x,50%) var(--toggle-y,50%))}to{clip-path:circle(150% at 50% 50%);clip-path:circle(150% at var(--toggle-x,50%) var(--toggle-y,50%))}}.App{min-height:100vh}.container{margin:0 auto;max-width:1200px;padding:0 24px;width:100%}.section{padding:120px 0;position:relative}.section-label{color:var(--accent);font-size:13px;font-weight:600;letter-spacing:3px;margin-bottom:12px;text-transform:uppercase}.section-title{color:var(--text-primary);font-size:clamp(28px,4vw,40px);font-weight:700;line-height:1.2;margin-bottom:56px}.nav{left:0;padding:0 24px;position:fixed;right:0;top:0;transition:var(--transition);z-index:100}.nav.scrolled{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:var(--nav-scrolled-bg);border-bottom:1px solid var(--border-subtle)}.nav-inner{align-items:center;display:flex;height:64px;justify-content:center;margin:0 auto;max-width:1200px;position:relative}.nav-links{display:flex;gap:8px}.nav-links a{border-radius:var(--radius-sm);color:var(--text-muted);font-size:13px;font-weight:500;letter-spacing:.5px;padding:8px 16px;transition:var(--transition-fast)}.nav-links a:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-links a.active{color:var(--accent)}.hamburger{background:none;border:none;display:none;flex-direction:column;gap:5px;padding:8px;z-index:101}.hamburger-line{background:var(--text-primary);display:block;height:2px;transform-origin:center;transition:var(--transition);width:24px}.hamburger.open .hamburger-line:first-child{transform:rotate(45deg) translate(5px,5px)}.hamburger.open .hamburger-line:nth-child(2){opacity:0}.hamburger.open .hamburger-line:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.hero{align-items:center;background:var(--bg-primary);display:flex;height:100vh;justify-content:center;min-height:600px;overflow:hidden;position:relative;text-align:center}.hero-content{max-width:800px;padding:0 24px;position:relative;z-index:1}.hero-name{color:var(--text-primary);font-size:clamp(48px,8vw,80px);font-weight:800;letter-spacing:-2px;line-height:1;margin-bottom:16px}.hero-role{-webkit-text-fill-color:#0000;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;font-size:clamp(18px,2.5vw,22px);font-weight:500;margin-bottom:16px}.hero-tagline{color:var(--text-muted);font-size:clamp(15px,1.8vw,17px);line-height:1.7;margin:0 auto 32px;max-width:560px}.hero-social{gap:16px;margin-bottom:48px}.hero-social,.hero-social a{display:flex;justify-content:center}.hero-social a{align-items:center;border:1px solid var(--border-medium);border-radius:50%;color:var(--text-secondary);font-size:18px;height:48px;transition:var(--transition);width:48px}.hero-social a:hover{border-color:var(--accent);box-shadow:0 4px 20px #6366f133;color:var(--accent);transform:translateY(-2px)}.scroll-indicator{bottom:32px;left:50%;position:absolute;transform:translateX(-50%);z-index:1}.scroll-indicator a{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;font-size:12px;gap:8px;letter-spacing:2px;text-transform:uppercase}.scroll-indicator .chevron{animation:scrollBounce 2s ease infinite;border-bottom:2px solid var(--text-muted);border-right:2px solid var(--text-muted);height:24px;transform:rotate(45deg);width:24px}@keyframes scrollBounce{0%,to{opacity:.5;transform:rotate(45deg) translate(0)}50%{opacity:1;transform:rotate(45deg) translate(5px,5px)}}#about{background:var(--bg-elevated)}.bento-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr)}.bento-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:28px;transition:var(--transition)}.bento-card:hover{border-color:var(--border-medium);transform:translateY(-2px)}.bento-card.wide{grid-column:span 2}.bento-card.photo-card{align-items:center;display:flex;justify-content:center;padding:32px}.bento-card .profile-pic{border:3px solid var(--border-medium);border-radius:50%;height:140px;object-fit:cover;width:140px}.bento-card h3{color:var(--text-primary);font-size:16px;font-weight:600;margin-bottom:12px}.bento-card p{color:var(--text-secondary);font-size:15px;line-height:1.7}.bento-card .detail-item{align-items:center;color:var(--text-secondary);display:flex;font-size:14px;gap:10px;padding:8px 0}.bento-card .detail-item .detail-icon,.bento-card .detail-item i{color:var(--accent);font-size:14px;text-align:center;width:20px}.tech-pills{display:flex;flex-wrap:wrap;gap:8px}.tech-pill{background:#6366f11a;border:1px solid #6366f126;border-radius:100px;color:var(--accent-hover);font-size:12px;font-weight:500;padding:6px 14px;transition:var(--transition-fast)}.tech-pill:hover{background:#6366f133}#resume{background:var(--bg-primary)}.resume-grid{grid-gap:80px;display:grid;gap:80px;grid-template-columns:1fr 1fr}.timeline{padding-left:32px;position:relative}.timeline:before{background:linear-gradient(to bottom,var(--accent),var(--border-subtle));bottom:0;content:"";left:0;position:absolute;top:8px;width:2px}.timeline-item{margin-bottom:40px;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-item:before{background:var(--accent);border:3px solid var(--bg-primary);border-radius:50%;box-shadow:0 0 0 2px var(--accent);content:"";height:12px;left:-37px;position:absolute;top:6px;width:12px}.timeline-item.current:before{box-shadow:0 0 0 2px var(--accent),0 0 12px #6366f166}.timeline-item h4{color:var(--text-primary);font-size:18px;font-weight:600;margin-bottom:4px}.timeline-item .role{color:var(--accent);font-size:14px;font-weight:500;margin-bottom:4px}.timeline-item .date{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:13px;margin-bottom:12px}.timeline-item .achievements{list-style:none;padding:0}.timeline-item .achievements li{color:var(--text-secondary);font-size:14px;line-height:1.6;margin-bottom:6px;padding-left:16px;position:relative}.timeline-item .achievements li:before{background:var(--text-muted);border-radius:50%;content:"";height:4px;left:0;position:absolute;top:9px;width:4px}.skills-section{margin-top:64px}.skills-donut{align-items:center;display:flex;flex-direction:column;gap:28px}.skills-donut canvas{display:block}.donut-legend{display:flex;flex-direction:column;gap:12px;width:100%}.donut-legend-item{align-items:center;border-radius:var(--radius-sm);cursor:default;display:flex;gap:10px;padding:8px 12px;transition:var(--transition-fast)}.donut-legend-item.active,.donut-legend-item:hover{background:var(--bg-hover)}.donut-legend-dot{border-radius:50%;flex-shrink:0;height:10px;width:10px}.donut-legend-name{color:var(--text-primary);flex:1 1;font-size:14px;font-weight:500}.donut-legend-value{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:13px}.theme-toggle{align-items:center;background:#0000;border:1px solid var(--border-medium);border-radius:50%;color:var(--text-secondary);display:flex;height:40px;justify-content:center;position:absolute;right:0;transition:var(--transition);width:40px}.theme-toggle:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--accent)}.theme-toggle svg{height:18px;transition:transform .3s ease,opacity .3s ease;width:18px}.theme-toggle .moon-icon,.theme-toggle .sun-icon{position:absolute}[data-theme=dark] .sun-icon{opacity:1;transform:rotate(0deg)}[data-theme=dark] .moon-icon{opacity:0;transform:rotate(-90deg)}[data-theme=light] .sun-icon{opacity:0;transform:rotate(90deg)}[data-theme=light] .moon-icon{opacity:1;transform:rotate(0deg)}#portfolio{background:var(--bg-elevated)}.portfolio-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(3,1fr)}.project-card{perspective:1000px}.project-card-inner{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;transform-style:preserve-3d;transition:transform .15s ease-out,box-shadow var(--transition);will-change:transform}.project-card:hover .project-card-inner{box-shadow:var(--card-shadow)}.project-card-image{aspect-ratio:16/10;overflow:hidden;position:relative}.project-card-image img{height:100%;object-fit:cover;transition:transform var(--transition-slow);width:100%}.project-card:hover .project-card-image img{transform:scale(1.05)}.project-card-image .overlay{align-items:flex-end;background:linear-gradient(0deg,#000c 0,#0000 60%);display:flex;inset:0;opacity:0;padding:20px;position:absolute;transition:opacity var(--transition)}.project-card:hover .project-card-image .overlay{opacity:1}.overlay .view-link{align-items:center;color:#fff;display:flex;font-size:13px;font-weight:600;gap:6px;letter-spacing:.5px}.project-card-body{padding:20px}.project-card-body h3{color:var(--text-primary);font-size:16px;font-weight:600;margin-bottom:6px}.project-card-body p{color:var(--text-muted);font-size:13px}.project-card-body .project-tag{background:#6366f11a;border-radius:100px;color:var(--accent-hover);display:inline-block;font-size:11px;font-weight:500;margin-top:12px;padding:4px 10px}#testimonials{background:var(--bg-primary);text-align:center}.testimonial-carousel{margin:0 auto;max-width:700px;min-height:200px;position:relative}.testimonial-slide{left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transform:translateY(10px);transition:opacity var(--transition-slow),transform var(--transition-slow)}.testimonial-slide.active{opacity:1;pointer-events:auto;position:relative;transform:translateY(0)}.testimonial-quote{color:var(--text-primary);font-size:clamp(20px,2.5vw,26px);font-style:italic;font-weight:300;line-height:1.6;margin-bottom:24px}.testimonial-quote:before{color:var(--accent);content:"\201C";display:block;font-family:Georgia,serif;font-size:60px;line-height:0;margin-bottom:20px;opacity:.4}.testimonial-author{color:var(--text-secondary);font-size:14px;font-weight:600;letter-spacing:1px;text-transform:uppercase}.testimonial-dots{display:flex;gap:8px;justify-content:center;margin-top:32px}.testimonial-dots button{background:var(--text-muted);border:none;border-radius:50%;height:8px;padding:0;transition:var(--transition);width:8px}.testimonial-dots button.active{background:var(--accent);transform:scale(1.3)}#contact{background:var(--bg-elevated);text-align:center}.contact-text{color:var(--text-secondary);font-size:17px;line-height:1.7;margin:0 auto 40px;max-width:500px}.contact-buttons{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.contact-btn{align-items:center;background:#0000;border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--text-primary);display:inline-flex;font-size:15px;font-weight:500;gap:10px;padding:14px 28px;transition:var(--transition)}.contact-btn:hover{border-color:var(--accent);box-shadow:0 4px 20px #6366f126;color:var(--accent);transform:translateY(-2px)}.contact-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.contact-btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 4px 20px #6366f14d;color:#fff}.contact-btn i{font-size:18px}.footer{background:var(--bg-primary);border-top:1px solid var(--border-subtle);padding:48px 0;text-align:center}.footer-social{display:flex;gap:24px;justify-content:center;margin-bottom:24px}.footer-social a{color:var(--text-muted);font-size:20px;transition:var(--transition-fast)}.footer-social a:hover{color:var(--accent);transform:translateY(-2px)}.footer-text{color:var(--text-muted);font-size:13px}.back-to-top{align-items:center;background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:50%;bottom:32px;color:var(--text-secondary);display:flex;font-size:18px;height:44px;justify-content:center;opacity:0;pointer-events:none;position:fixed;right:32px;transition:var(--transition);width:44px;z-index:50}.back-to-top.visible{opacity:1;pointer-events:auto}.back-to-top:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-2px)}.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1)}.reveal.revealed{opacity:1;transform:translateY(0)}.reveal-stagger>*{opacity:0;transform:translateY(20px);transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1)}.reveal-stagger.revealed>:first-child{opacity:1;transform:translateY(0);transition-delay:0s}.reveal-stagger.revealed>:nth-child(2){opacity:1;transform:translateY(0);transition-delay:.08s}.reveal-stagger.revealed>:nth-child(3){opacity:1;transform:translateY(0);transition-delay:.16s}.reveal-stagger.revealed>:nth-child(4){opacity:1;transform:translateY(0);transition-delay:.24s}.reveal-stagger.revealed>:nth-child(5){opacity:1;transform:translateY(0);transition-delay:.32s}.reveal-stagger.revealed>:nth-child(6){opacity:1;transform:translateY(0);transition-delay:.4s}.reveal-stagger.revealed>:nth-child(7){opacity:1;transform:translateY(0);transition-delay:.48s}.reveal-stagger.revealed>:nth-child(8){opacity:1;transform:translateY(0);transition-delay:.56s}.reveal-stagger.revealed>:nth-child(9){opacity:1;transform:translateY(0);transition-delay:.64s}@media (prefers-reduced-motion:reduce){.reveal,.reveal-stagger>*{opacity:1;transform:none;transition:none}.scroll-indicator .chevron{animation:none}::view-transition-new(root),::view-transition-old(root){animation:none!important}}.custom-cursor{border:2px solid var(--accent);border-radius:50%;height:20px;left:-10px;mix-blend-mode:difference;opacity:0;pointer-events:none;position:fixed;top:-10px;transition:width .2s ease,height .2s ease,border-color .2s ease,opacity .2s ease;width:20px;z-index:9999}.custom-cursor.visible{opacity:1}.custom-cursor.cursor-hover{border-color:var(--accent-hover);height:40px;width:40px}@media (hover:none){.custom-cursor{display:none}}@media (max-width:1024px){.resume-grid{gap:40px;grid-template-columns:1fr}.portfolio-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.section{padding:80px 0}.nav-links{align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:var(--nav-overlay-bg);bottom:0;display:none;flex-direction:column;gap:8px;justify-content:center;left:0;position:fixed;right:0;top:0}.nav-links.open{display:flex}.nav-links a{font-size:18px;padding:12px 24px}.hamburger{display:flex}.bento-grid{grid-template-columns:1fr}.bento-card.wide{grid-column:span 1}.portfolio-grid{grid-template-columns:1fr}.contact-buttons{align-items:center;flex-direction:column}.contact-btn{justify-content:center;max-width:300px;width:100%}}@media (max-width:480px){.container{padding:0 16px}.hero-name{letter-spacing:-1px}}
/*# sourceMappingURL=main.1da7158c.css.map*/