:root{--bg-primary: #0a0a0f;--bg-secondary: #111118;--bg-card: #16161e;--bg-card-hover: #1c1c26;--bg-elevated: #1e1e28;--text-primary: #f0f0f5;--text-secondary: #a0a0b8;--text-muted: #6b6b80;--accent-violet: #8b5cf6;--accent-cyan: #06b6d4;--accent-blue: #3b82f6;--accent-gradient: linear-gradient(135deg, var(--accent-violet), var(--accent-cyan));--accent-gradient-hover: linear-gradient(135deg, #9d74f7, #22d3ee);--border-subtle: rgba(255, 255, 255, .06);--border-card: rgba(255, 255, 255, .08);--border-glow: rgba(139, 92, 246, .3);--glass-bg: rgba(22, 22, 30, .6);--glass-border: rgba(255, 255, 255, .08);--glass-blur: 20px;--font-heading: "Space Grotesk", sans-serif;--font-body: "Inter", sans-serif;--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;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.25rem;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease;--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .5);--shadow-glow: 0 0 40px rgba(139, 92, 246, .15);--shadow-glow-cyan: 0 0 40px rgba(6, 182, 212, .1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow-x:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{border:none;background:none;cursor:pointer;font-family:inherit;color:inherit}ul,ol{list-style:none}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:700;line-height:1.15;color:var(--text-primary)}h1{font-size:clamp(2.5rem,6vw,4.5rem);font-weight:800;letter-spacing:-.03em}h2{font-size:clamp(1.75rem,4vw,2.75rem);letter-spacing:-.02em}h3{font-size:clamp(1.125rem,2vw,1.5rem)}p{color:var(--text-secondary)}.text-gradient{background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-6)}@media(min-width:768px){.container{padding:0 var(--space-10)}}.section{padding:var(--space-20) 0;position:relative}.glass{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border)}.glass-card{background:#16161e80;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-card);border-radius:var(--radius-xl);transition:border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base)}.glass-card:hover{border-color:var(--border-glow);box-shadow:var(--shadow-glow);transform:translateY(-4px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:var(--radius-lg);font-size:.875rem;font-weight:600;transition:all var(--transition-base);white-space:nowrap}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:0 2px 12px #8b5cf64d}.btn-primary:hover{background:var(--accent-gradient-hover);box-shadow:0 4px 20px #8b5cf673;transform:translateY(-2px)}.btn-ghost{background:transparent;color:var(--text-primary);border:1px solid var(--border-card)}.btn-ghost:hover{border-color:var(--accent-violet);background:#8b5cf614;transform:translateY(-2px)}.btn-animated{position:relative;overflow:hidden;background:#8b5cf60d;border:1px solid rgba(139,92,246,.4);color:var(--text-primary);transition:all var(--transition-base);box-shadow:0 0 15px #8b5cf61a}.btn-animated:before{content:"";position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transform:skew(-20deg);animation:btn-shimmer 3s infinite}@keyframes btn-shimmer{0%{left:-100%}25%{left:200%}to{left:200%}}.btn-animated:hover{border-color:var(--accent-cyan);background:#06b6d41a;transform:translateY(-2px);box-shadow:0 8px 25px #06b6d433}.btn-lg{padding:var(--space-4) var(--space-8);font-size:.9375rem;border-radius:var(--radius-xl)}.badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:.75rem;font-weight:600;border:1px solid var(--border-card);background:#8b5cf614;color:var(--accent-violet)}.tag{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:#8b5cf61a;color:var(--accent-violet);border:1px solid rgba(139,92,246,.15)}.skill-tag{padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);font-size:.8125rem;font-weight:500;background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border-subtle);transition:all var(--transition-base)}.skill-tag:hover{border-color:var(--accent-violet);color:var(--accent-violet);background:#8b5cf60f}.glow-border{position:relative}.glow-border:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:var(--accent-gradient);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity var(--transition-base)}.glow-border:hover:before{opacity:1}.reveal{opacity:0;transform:translateY(30px);transition:opacity .7s ease-out,transform .7s ease-out}.reveal.active{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.3s}.reveal-delay-4{transition-delay:.4s}.reveal-delay-5{transition-delay:.5s}.dot-grid{position:absolute;inset:0;background-image:radial-gradient(rgba(139,92,246,.12) 1px,transparent 1px);background-size:40px 40px;pointer-events:none;mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,black 30%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,black 30%,transparent 100%)}.orb{position:absolute;border-radius:50%;filter:blur(120px);pointer-events:none;will-change:transform}.orb-violet{width:500px;height:500px;background:#8b5cf626;top:-10%;right:-5%}.orb-cyan{width:400px;height:400px;background:#06b6d414;bottom:-10%;left:-10%}.gradient-divider{height:1px;background:linear-gradient(90deg,transparent,var(--accent-violet),var(--accent-cyan),transparent);opacity:.3}.pulse-dot{position:relative;width:8px;height:8px}.pulse-dot:before{content:"";position:absolute;inset:0;border-radius:50%;background:#34d399;animation:pulse-ring 2s ease-out infinite}.pulse-dot:after{content:"";position:absolute;inset:0;border-radius:50%;background:#34d399}@keyframes pulse-ring{0%{transform:scale(1);opacity:.8}to{transform:scale(2.5);opacity:0}}.typing-cursor{display:inline-block;width:3px;height:1em;background:var(--accent-violet);margin-left:2px;animation:blink 1s step-end infinite;vertical-align:text-bottom}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.profile-ring{position:relative;border-radius:50%;padding:3px;background:var(--accent-gradient)}.profile-ring img{border-radius:50%;display:block}.profile-card{position:relative;border-radius:var(--radius-2xl);overflow:hidden;border:1px solid var(--border-card);box-shadow:var(--shadow-lg),var(--shadow-glow)}.profile-card img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}.profile-card:hover img{transform:scale(1.05)}.timeline{position:relative;padding-left:2rem}.timeline:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,transparent,var(--accent-violet),var(--accent-cyan),var(--accent-violet),transparent);background-size:100% 200%;opacity:.4;animation:line-flow 3s linear infinite}@keyframes line-flow{0%{background-position:0% -100%}to{background-position:0% 100%}}.timeline-node{position:absolute;left:-2rem;top:var(--space-6);width:12px;height:12px;border-radius:50%;background:var(--accent-gradient);border:2px solid var(--bg-primary);box-shadow:0 0 12px #8b5cf680;transform:translate(calc(-50% + 1px));z-index:2;transition:all .4s cubic-bezier(.34,1.56,.64,1)}.timeline-item{position:relative;padding-bottom:var(--space-10)}.timeline-item:last-child{padding-bottom:0}.timeline-item:hover .timeline-node{transform:translate(calc(-50% + 1px)) scale(1.4);box-shadow:0 0 20px #8b5cf6cc;border-color:#8b5cf680}.timeline-item .glass-card{transition:all .4s cubic-bezier(.25,.8,.25,1);transform-origin:left center}.timeline-item:hover .glass-card{transform:scale(1.02) translateY(-4px);border-color:var(--accent-violet);box-shadow:0 12px 30px #8b5cf626,0 0 20px #06b6d41a}.timeline-item .timeline-points li{transition:all .4s ease;transform:translate(0)}.timeline-item:hover .timeline-points li{transform:translate(6px);color:var(--text-primary)}.timeline-item:hover .timeline-points li:nth-child(1){transition-delay:50ms}.timeline-item:hover .timeline-points li:nth-child(2){transition-delay:.1s}.timeline-item:hover .timeline-points li:nth-child(3){transition-delay:.15s}.timeline-item:hover .timeline-points li:nth-child(4){transition-delay:.2s}.timeline-item:hover .timeline-points li:nth-child(5){transition-delay:.25s}.project-card{background:var(--bg-card);border-radius:var(--radius-xl);overflow:hidden;border:1px solid var(--border-card);transition:all var(--transition-base);display:flex;flex-direction:column}.project-card:hover{border-color:var(--border-glow);box-shadow:var(--shadow-glow);transform:translateY(-6px)}.project-image-wrap{position:relative;aspect-ratio:16 / 10;overflow:hidden;background:var(--bg-secondary)}.project-image-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.project-card:hover .project-image-wrap img{transform:scale(1.08)}.project-image-overlay{position:absolute;inset:0;background:#0a0a0f80;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition-base);cursor:pointer}.project-card:hover .project-image-overlay{opacity:1}.project-body{padding:var(--space-5) var(--space-6);display:flex;flex-direction:column;gap:var(--space-3);flex:1}.contact-item{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-xl);transition:all var(--transition-base)}.contact-item:hover{background:#8b5cf60d}.contact-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--accent-violet);transition:all var(--transition-base);flex-shrink:0}.contact-item:hover .contact-icon{background:var(--accent-gradient);color:#fff;border-color:transparent;box-shadow:0 0 20px #8b5cf64d}.contact-label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.contact-value{font-weight:500;color:var(--text-primary);transition:color var(--transition-fast)}.contact-item:hover .contact-value{color:var(--accent-violet)}.social-card{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-radius:var(--radius-xl);background:var(--bg-card);border:1px solid var(--border-subtle);transition:all var(--transition-base)}.social-card:hover{border-color:var(--border-glow);background:var(--bg-card-hover);transform:translate(4px)}.nav{position:fixed;top:0;left:0;right:0;z-index:50;height:64px;display:flex;align-items:center;border-bottom:1px solid var(--border-subtle);background:#0a0a0fbf;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.nav-inner{max-width:1200px;margin:0 auto;width:100%;padding:0 var(--space-6);display:flex;align-items:center;justify-content:space-between}.nav-logo{display:flex;align-items:center;gap:var(--space-3);cursor:pointer}.nav-logo-icon{width:40px;height:40px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;background:#8b5cf61a;color:var(--accent-violet);transition:all var(--transition-base)}.nav-logo:hover .nav-logo-icon{background:var(--accent-gradient);color:#fff;transform:rotate(8deg) scale(1.1)}.nav-logo-text{font-family:var(--font-heading);font-size:1.125rem;font-weight:700;color:var(--text-primary);transition:all var(--transition-base)}.nav-logo:hover .nav-logo-text{background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav-links{display:none;align-items:center;gap:var(--space-8)}@media(min-width:768px){.nav-links{display:flex}}.nav-link{position:relative;font-size:.875rem;font-weight:500;color:var(--text-muted);cursor:pointer;padding:var(--space-1) 0;transition:color var(--transition-fast)}.nav-link:hover{color:var(--text-primary)}.nav-link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--accent-gradient);border-radius:1px;transition:width var(--transition-base)}.nav-link:hover:after{width:100%}.nav-actions{display:none;align-items:center;gap:var(--space-4)}@media(min-width:768px){.nav-actions{display:flex}}.nav-mobile-controls{display:flex;align-items:center;gap:.5rem}.nav-mobile-hamburger{display:flex;align-items:center;color:var(--text-primary)}@media(min-width:768px){.nav-mobile-controls{display:none}}.nav-mobile-menu{position:absolute;top:64px;left:0;right:0;background:#0a0a0ff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-subtle);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);box-shadow:var(--shadow-lg)}.nav-mobile-link{font-size:1rem;font-weight:500;color:var(--text-secondary);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);transition:all var(--transition-base)}.nav-mobile-link:hover{color:var(--text-primary);background:#8b5cf614;padding-left:var(--space-6)}.section-header{margin-bottom:var(--space-12)}.section-header h2{margin-bottom:var(--space-3)}.section-header .accent-line{width:60px;height:3px;border-radius:2px;background:var(--accent-gradient)}.section-subtitle{color:var(--text-muted);margin-top:var(--space-2);font-size:1.0625rem}.modal-backdrop{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#000000e6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:var(--space-6);animation:fadeIn .25s ease}.modal-content{position:relative;max-width:1100px;width:100%;max-height:90vh;display:flex;align-items:center;justify-content:center;animation:scaleIn .3s ease}.modal-content img{max-width:100%;max-height:85vh;object-fit:contain;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.modal-close{position:absolute;top:-48px;right:0;color:var(--text-secondary);transition:color var(--transition-fast);font-size:2rem}.modal-close:hover{color:var(--accent-violet)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.bento-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6)}@media(min-width:640px){.bento-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.bento-grid{grid-template-columns:repeat(3,1fr)}.bento-grid .project-card:first-child{grid-column:span 2}.bento-grid .project-card:first-child .project-image-wrap{aspect-ratio:2.5 / 1}}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.footer{padding:var(--space-10) 0;border-top:1px solid var(--border-subtle)}.footer-inner{max-width:1200px;margin:0 auto;padding:0 var(--space-6);display:flex;flex-direction:column;align-items:center;gap:var(--space-6);text-align:center}@media(min-width:768px){.footer-inner{flex-direction:row;justify-content:space-between;text-align:left}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.stat-card{text-align:center;padding:var(--space-5)}.stat-value{font-family:var(--font-heading);font-size:2rem;font-weight:800;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-label{font-size:.8125rem;color:var(--text-muted);margin-top:var(--space-1)}.grain-overlay{position:fixed;inset:0;pointer-events:none;z-index:999;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:128px 128px}@media(max-width:640px){.section{padding:var(--space-16) 0}}.theme-toggle-btn{width:36px;height:36px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:all var(--transition-base);background:transparent;border:1px solid transparent}.theme-toggle-btn:hover{color:var(--accent-violet);background:#8b5cf614;border-color:var(--border-card)}html.light{--bg-primary: #f8f9fc;--bg-secondary: #f0f1f5;--bg-card: #ffffff;--bg-card-hover: #f5f5fa;--bg-elevated: #ffffff;--text-primary: #1a1a2e;--text-secondary: #555570;--text-muted: #8888a0;--border-subtle: rgba(0, 0, 0, .06);--border-card: rgba(0, 0, 0, .08);--border-glow: rgba(139, 92, 246, .25);--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(0, 0, 0, .06);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .1);--shadow-glow: 0 0 40px rgba(139, 92, 246, .08);--shadow-glow-cyan: 0 0 40px rgba(6, 182, 212, .05)}html.light body{background-color:var(--bg-primary);color:var(--text-primary)}html.light .nav{background:#f8f9fcd9;border-bottom-color:#0000000f}html.light .nav-mobile-menu{background:#f8f9fcf7}html.light .glass-card{background:#ffffffb3;box-shadow:var(--shadow-sm)}html.light .glass-card:hover{box-shadow:var(--shadow-md),var(--shadow-glow)}html.light .project-card{box-shadow:var(--shadow-sm)}html.light .project-card:hover{box-shadow:var(--shadow-md),var(--shadow-glow)}html.light .skill-tag,html.light .social-card,html.light .contact-icon{background:var(--bg-secondary)}html.light .orb-violet{background:#8b5cf60f}html.light .orb-cyan{background:#06b6d40a}html.light .dot-grid{background-image:radial-gradient(rgba(139,92,246,.08) 1px,transparent 1px)}html.light .timeline-node{border-color:var(--bg-primary)}html.light .grain-overlay{opacity:0}
