@charset "UTF-8";:root{--bg-base: #04060c;--bg-1: #070a14;--bg-2: #0c1020;--bg-3: #111628;--surface-1: rgba(255, 255, 255, .03);--surface-2: rgba(255, 255, 255, .06);--surface-3: rgba(255, 255, 255, .1);--border-subtle: rgba(255, 255, 255, .05);--border: rgba(255, 255, 255, .09);--border-strong: rgba(255, 255, 255, .16);--cyan: #00d9f5;--cyan-dim: rgba(0, 217, 245, .1);--cyan-glow: 0 0 24px rgba(0, 217, 245, .28);--violet: #a855f7;--violet-dim: rgba(168, 85, 247, .1);--violet-glow: 0 0 24px rgba(168, 85, 247, .28);--emerald: #10d9a0;--emerald-dim: rgba(16, 217, 160, .1);--amber: #f59e0b;--amber-dim: rgba(245, 158, 11, .1);--text-1: #f1f5f9;--text-2: #94a3b8;--text-3: #475569;--text-4: #2d3748;--font-display: "Space Grotesk", "Inter", -apple-system, sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--nav-h: 5rem;--max-w: 1200px;--gutter: clamp(1.25rem, 5vw, 4rem);--t-fast: .15s ease;--t-base: .25s ease;--t-slow: .4s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}body{background:var(--bg-base);color:var(--text-1);font-family:var(--font-body);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--cyan);border-radius:2px;opacity:.4}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.1;letter-spacing:-.025em;color:var(--text-1)}p{line-height:1.75;color:var(--text-2)}a{color:inherit;text-decoration:none}ul,ol{list-style:none}.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 var(--gutter)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.gradient-text{background:linear-gradient(135deg,var(--cyan) 0%,var(--violet) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}.reveal.revealed{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}.nav{position:fixed;inset:0 0 auto;z-index:100;height:var(--nav-h);display:flex;align-items:center;background:#04060cbf;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--border-subtle);transition:background var(--t-base)}.nav-inner{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between}.nav-logo{font-family:var(--font-mono);font-size:.9375rem;font-weight:500;color:var(--cyan);letter-spacing:.04em}.nav-logo .slash{color:var(--text-3)}.nav-links{display:flex;align-items:center;gap:2.25rem}.nav-links a{font-size:.875rem;color:var(--text-2);font-weight:500;letter-spacing:.01em;position:relative;transition:color var(--t-base)}.nav-links a:after{content:"";position:absolute;bottom:-3px;left:0;width:0;height:1px;background:var(--cyan);transition:width var(--t-base)}.nav-links a:hover,.nav-links a.active{color:var(--text-1)}.nav-links a:hover:after,.nav-links a.active:after{width:100%}.nav-hire{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem 1.1rem;border:1px solid rgba(0,217,245,.4);border-radius:6px;font-size:.8125rem;font-weight:600;color:var(--cyan);transition:all var(--t-base)}.nav-hire:hover{background:var(--cyan-dim);box-shadow:var(--cyan-glow);color:var(--cyan)}.nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px}.nav-toggle span{display:block;width:22px;height:2px;background:var(--text-2);border-radius:1px;transition:all var(--t-base);transform-origin:center}.nav-toggle.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.nav-toggle.open span:nth-child(2){opacity:0;transform:scaleX(0)}.nav-toggle.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.mobile-menu{display:none;position:fixed;top:var(--nav-h);left:0;right:0;bottom:0;background:#04060cf7;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);padding:3rem var(--gutter);flex-direction:column;gap:2rem;z-index:99}.mobile-menu.open{display:flex}.mobile-menu a{font-family:var(--font-display);font-size:1.75rem;font-weight:700;color:var(--text-2);letter-spacing:-.02em;transition:color var(--t-base)}.mobile-menu a:hover{color:var(--cyan)}section{padding:7rem 0}.section-label{display:inline-flex;align-items:center;gap:.625rem;font-family:var(--font-mono);font-size:.6875rem;font-weight:500;color:var(--cyan);letter-spacing:.18em;text-transform:uppercase;margin-bottom:1.25rem}.section-label:before{content:"";display:inline-block;width:1.25rem;height:1px;background:var(--cyan);opacity:.7}.section-heading{font-size:clamp(1.875rem,4vw,2.875rem);font-weight:700;color:var(--text-1);letter-spacing:-.03em;margin-bottom:.75rem}.section-sub{font-size:1.0625rem;color:var(--text-2);line-height:1.75;max-width:560px;margin-bottom:0}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 2rem;background:var(--cyan);color:#04060c;font-family:var(--font-display);font-size:.9375rem;font-weight:700;border-radius:8px;border:none;cursor:pointer;transition:all var(--t-base)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 28px #00d9f559}.btn-primary:active{transform:translateY(0)}.btn-outline{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 2rem;background:transparent;color:var(--text-1);font-family:var(--font-display);font-size:.9375rem;font-weight:600;border-radius:8px;border:1px solid var(--border-strong);cursor:pointer;transition:all var(--t-base)}.btn-outline:hover{border-color:var(--cyan);color:var(--cyan);background:var(--cyan-dim);transform:translateY(-2px)}.pill{display:inline-flex;align-items:center;padding:.28rem .7rem;border-radius:4px;font-family:var(--font-mono);font-size:.72rem;font-weight:500;border:1px solid var(--border);background:var(--surface-1);color:var(--text-2);letter-spacing:.02em;white-space:nowrap;transition:all var(--t-fast)}.pill.cyan{color:var(--cyan);border-color:#00d9f547;background:var(--cyan-dim)}.pill.violet{color:var(--violet);border-color:#a855f747;background:var(--violet-dim)}.pill.emerald{color:var(--emerald);border-color:#10d9a047;background:var(--emerald-dim)}.pill.amber{color:var(--amber);border-color:#f59e0b47;background:var(--amber-dim)}#hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;padding:0}#hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.07) 1px,transparent 1px);background-size:38px 38px;pointer-events:none;z-index:0;mask-image:radial-gradient(ellipse 85% 70% at 50% 45%,black 20%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 85% 70% at 50% 45%,black 20%,transparent 100%)}#hero:after{content:"";position:absolute;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(0,217,245,.07) 0%,transparent 65%);top:-180px;right:-180px;pointer-events:none;z-index:0;animation:orb-float 14s ease-in-out infinite}.hero-orb-2{position:absolute;width:550px;height:550px;border-radius:50%;background:radial-gradient(circle,rgba(168,85,247,.06) 0%,transparent 65%);bottom:-120px;left:-150px;pointer-events:none;z-index:0;animation:orb-float 18s ease-in-out infinite reverse}@keyframes orb-float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(25px,-30px) scale(1.04)}66%{transform:translate(-20px,20px) scale(.97)}}.hero-inner{position:relative;z-index:1;width:100%;max-width:var(--max-w);margin:0 auto;padding:calc(var(--nav-h) + 5rem) var(--gutter) 6rem}.hero-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem 1rem;background:var(--surface-2);border:1px solid var(--border);border-radius:100px;font-family:var(--font-mono);font-size:.72rem;color:var(--text-2);margin-bottom:2.25rem;letter-spacing:.05em}.hero-badge .status-dot{width:6px;height:6px;border-radius:50%;background:var(--emerald);box-shadow:0 0 8px var(--emerald);animation:pulse-dot 2.2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.hero-name{font-family:var(--font-display);font-size:clamp(3.75rem,10vw,8.5rem);font-weight:700;letter-spacing:-.045em;line-height:.93;margin-bottom:1.75rem}.hero-name .hero-name-line{display:block}.hero-name .line-plain{color:var(--text-1)}.hero-name .line-accent{background:linear-gradient(130deg,var(--cyan) 0%,var(--violet) 70%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-tagline{font-family:var(--font-display);font-size:clamp(1rem,2vw,1.25rem);font-weight:500;color:var(--text-2);margin-bottom:1.375rem;letter-spacing:-.01em}.hero-tagline .accent{color:var(--cyan)}.hero-desc{font-size:1.0625rem;color:var(--text-2);line-height:1.8;max-width:520px;margin-bottom:2.5rem}.hero-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2.5rem}.hero-chips .chip{display:inline-flex;align-items:center;padding:.28rem .7rem;border-radius:4px;font-family:var(--font-mono);font-size:.72rem;font-weight:500;border:1px solid var(--border);background:var(--surface-1);color:var(--text-2);letter-spacing:.02em;white-space:nowrap}.hero-chips .chip.cyan{color:var(--cyan);border-color:#00d9f547;background:var(--cyan-dim)}.hero-chips .chip.violet{color:var(--violet);border-color:#a855f747;background:var(--violet-dim)}.hero-ctas{display:flex;align-items:center;gap:1rem;margin-bottom:3rem;flex-wrap:wrap}.hero-ctas .btn{display:inline-flex}.hero-social{display:flex;align-items:center;gap:1.5rem}.hero-social a{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-3);transition:color var(--t-base)}.hero-social a:hover{color:var(--cyan)}.hero-social a svg{width:15px;height:15px;flex-shrink:0}.hero-social .sep{width:1px;height:14px;background:var(--border)}.hero-social .loc{font-family:var(--font-mono);font-size:.72rem;color:var(--text-3)}.scroll-indicator{position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.4rem;color:var(--text-4);font-family:var(--font-mono);font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;animation:scroll-bounce 2.6s ease-in-out infinite}.scroll-indicator svg{width:18px;height:18px}@keyframes scroll-bounce{0%,to{transform:translate(-50%) translateY(0);opacity:.4}50%{transform:translate(-50%) translateY(9px);opacity:.9}}#about{background:linear-gradient(180deg,var(--bg-base) 0%,var(--bg-1) 100%)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start;margin-top:3.5rem}.about-text p{font-size:1.0625rem;color:var(--text-2);line-height:1.82;margin-bottom:1.5rem}.about-text p:last-of-type{margin-bottom:0}.about-current{display:inline-flex;align-items:center;gap:.5rem;margin-top:2rem;padding:.7rem 1.125rem;background:var(--surface-1);border:1px solid var(--border);border-radius:8px;font-size:.875rem;color:var(--text-2)}.about-current .status-dot{width:6px;height:6px;border-radius:50%;background:var(--emerald);box-shadow:0 0 8px var(--emerald);animation:pulse-dot 2.2s ease-in-out infinite;flex-shrink:0}.about-current strong{color:var(--text-1);font-weight:600}.about-right{display:flex;flex-direction:column;gap:1.25rem}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.stat-card{padding:1.5rem 1.25rem;background:var(--surface-1);border:1px solid var(--border);border-radius:12px;transition:border-color var(--t-base),transform var(--t-base)}.stat-card:hover{border-color:#00d9f540;transform:translateY(-2px)}.stat-card .stat-value{font-family:var(--font-display);font-size:2.25rem;font-weight:700;letter-spacing:-.04em;line-height:1;margin-bottom:.375rem;background:linear-gradient(135deg,var(--cyan),var(--violet));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card .stat-label{font-size:.78rem;color:var(--text-3);font-weight:500;line-height:1.4}.tech-card{padding:1.375rem;background:var(--surface-1);border:1px solid var(--border);border-radius:12px}.tech-card .tech-label{font-family:var(--font-mono);font-size:.6875rem;color:var(--cyan);letter-spacing:.16em;text-transform:uppercase;margin-bottom:1rem;opacity:.8}.tech-card .tech-items{display:flex;flex-wrap:wrap;gap:.5rem}#experience{background:var(--bg-1)}.experience-list{display:flex;flex-direction:column;gap:1.25rem;margin-top:3.5rem}.exp-card{position:relative;padding:2rem 2.25rem;background:var(--surface-1);border:1px solid var(--border);border-radius:16px;transition:border-color var(--t-base),box-shadow var(--t-base),transform var(--t-base);overflow:hidden}.exp-card:before{content:"";position:absolute;left:0;top:2rem;bottom:2rem;width:2px;background:linear-gradient(180deg,var(--cyan) 0%,var(--violet) 100%);border-radius:0 1px 1px 0;opacity:0;transition:opacity var(--t-base)}.exp-card:hover{border-color:#00d9f538;box-shadow:0 4px 28px #00d9f50f;transform:translate(3px)}.exp-card:hover:before{opacity:1}.exp-header{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:1.25rem;flex-wrap:wrap}.exp-title-block .exp-role{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--text-1);margin-bottom:.25rem}.exp-title-block .exp-company{font-size:.9rem;color:var(--cyan);font-weight:500}.exp-meta{text-align:right;flex-shrink:0}.exp-meta .exp-badge-current{display:inline-flex;align-items:center;gap:.35rem;padding:.22rem .6rem;background:var(--emerald-dim);border:1px solid rgba(16,217,160,.22);border-radius:100px;font-family:var(--font-mono);font-size:.65rem;color:var(--emerald);margin-bottom:.4rem}.exp-meta .exp-badge-current .status-dot{width:5px;height:5px;border-radius:50%;background:var(--emerald);animation:pulse-dot 2.2s ease-in-out infinite}.exp-meta .exp-period{font-family:var(--font-mono);font-size:.78rem;color:var(--text-3);margin-bottom:.2rem;white-space:nowrap}.exp-meta .exp-location{font-size:.78rem;color:var(--text-3)}.exp-bullets{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-bottom:1.25rem}.exp-bullets li{display:flex;align-items:flex-start;gap:.5rem;font-size:.875rem;color:var(--text-2);line-height:1.5}.exp-bullets li:before{content:"\2192";color:var(--cyan);font-size:.7rem;flex-shrink:0;margin-top:.18rem;opacity:.7}.exp-stack{display:flex;flex-wrap:wrap;gap:.4rem}#projects{background:linear-gradient(180deg,var(--bg-1) 0%,var(--bg-2) 100%)}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:3.5rem}.project-card{position:relative;padding:2rem 1.875rem;background:var(--surface-1);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:border-color var(--t-base),box-shadow var(--t-base),transform var(--t-base)}.project-card:before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);opacity:0;transition:opacity var(--t-base)}.project-card:hover{border-color:#00d9f538;box-shadow:0 8px 36px #00d9f512;transform:translateY(-4px)}.project-card:hover:before{opacity:1}.project-number{font-family:var(--font-mono);font-size:.65rem;color:var(--cyan);letter-spacing:.16em;text-transform:uppercase;margin-bottom:.875rem;opacity:.75}.project-status{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;background:var(--violet-dim);border:1px solid rgba(168,85,247,.22);border-radius:4px;font-family:var(--font-mono);font-size:.65rem;color:var(--violet);letter-spacing:.06em;margin-bottom:1rem}.project-title{font-family:var(--font-display);font-size:1.3rem;font-weight:700;color:var(--text-1);letter-spacing:-.025em;margin-bottom:.75rem}.project-description{font-size:.9375rem;color:var(--text-2);line-height:1.72;margin-bottom:1.5rem}.project-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}.project-stack{display:flex;flex-wrap:wrap;gap:.375rem}#skills{background:var(--bg-2)}.skills-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:3.5rem}.skill-group{padding:1.75rem;background:var(--surface-1);border:1px solid var(--border);border-radius:16px;transition:border-color var(--t-base)}.skill-group:hover{border-color:var(--border-strong)}.skill-group-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.skill-icon{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0}.skill-icon.cyan{background:var(--cyan-dim)}.skill-icon.violet{background:var(--violet-dim)}.skill-icon.emerald{background:var(--emerald-dim)}.skill-icon.amber{background:var(--amber-dim)}.skill-group-name{font-family:var(--font-display);font-size:.9375rem;font-weight:700;color:var(--text-1)}.skill-pills{display:flex;flex-wrap:wrap;gap:.5rem}#education{background:linear-gradient(180deg,var(--bg-2) 0%,var(--bg-1) 100%);padding:5.5rem 0}.education-card{max-width:520px;margin:3rem auto 0;padding:2.5rem;background:var(--surface-1);border:1px solid var(--border);border-radius:16px;text-align:center}.edu-icon{width:52px;height:52px;border-radius:12px;background:linear-gradient(135deg,var(--cyan-dim),var(--violet-dim));border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:1.375rem;margin:0 auto 1.5rem}.edu-degree{font-family:var(--font-display);font-size:1.2rem;font-weight:700;color:var(--text-1);margin-bottom:.5rem}.edu-school{font-size:.9375rem;color:var(--cyan);font-weight:500;margin-bottom:.5rem}.edu-period{font-family:var(--font-mono);font-size:.78rem;color:var(--text-3)}#contact{background:var(--bg-1);text-align:center}.contact-inner{max-width:620px;margin:0 auto}.contact-heading{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.25rem);font-weight:700;letter-spacing:-.035em;color:var(--text-1);margin-bottom:1rem;margin-top:1.75rem}.contact-heading .accent{background:linear-gradient(130deg,var(--cyan),var(--violet));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.contact-sub{font-size:1.0625rem;color:var(--text-2);line-height:1.8;margin-bottom:2.75rem}.contact-cta{display:flex;justify-content:center;align-items:center;gap:1rem;margin-bottom:3rem;flex-wrap:wrap}.contact-links{display:flex;justify-content:center;align-items:center;gap:2rem;flex-wrap:wrap}.contact-links a{display:flex;align-items:center;gap:.45rem;font-size:.875rem;color:var(--text-3);transition:color var(--t-base)}.contact-links a:hover{color:var(--cyan)}.contact-links a svg{width:16px;height:16px;flex-shrink:0}footer{padding:1.75rem var(--gutter);background:var(--bg-base);border-top:1px solid var(--border-subtle)}.footer-inner{max-width:var(--max-w);margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-logo{font-family:var(--font-mono);font-size:.8125rem;color:var(--text-3)}.footer-logo .c{color:var(--cyan)}.footer-copy,.footer-built{font-family:var(--font-mono);font-size:.78rem;color:var(--text-3)}.footer-copy span,.footer-built span{color:var(--cyan)}@media(max-width:960px){.nav-links,.nav-hire{display:none!important}.nav-toggle{display:flex}}@media(max-width:900px){.about-grid{grid-template-columns:1fr;gap:3rem}}@media(max-width:768px){section{padding:5rem 0}#hero .hero-inner{padding-top:calc(var(--nav-h) + 3rem)}.projects-grid,.skills-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.exp-bullets{grid-template-columns:1fr}.exp-header{flex-direction:column}.exp-meta{text-align:left}.hero-ctas{flex-direction:column;align-items:flex-start}}@media(max-width:400px){.stats-grid{grid-template-columns:1fr}}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:4px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}
