:root{--bg-0:#020817;--bg-1:#07101f;--bg-2:#0d1a30;--surface:#0f172a8c;--surface-hover:#0f172acc;--border:#94a3b81a;--cyan:#22d3ee;--violet:#a78bfa;--emerald:#34d399;--rose:#fb7185;--amber:#fbbf24;--cyan-dim:#22d3ee1f;--violet-dim:#a78bfa1f;--emerald-dim:#34d3991f;--rose-dim:#fb71851f;--amber-dim:#fbbf241f;--glow-cyan:0 0 22px #22d3ee59, 0 0 60px #22d3ee1f;--glow-violet:0 0 22px #a78bfa59, 0 0 60px #a78bfa1f;--glow-emerald:0 0 22px #34d39959, 0 0 60px #34d3991f;--glow-rose:0 0 22px #fb718559, 0 0 60px #fb71851f;--glow-amber:0 0 22px #fbbf2459, 0 0 60px #fbbf241f;--font-sans:"Space Grotesk", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--text-0:#f8fafc;--text-1:#cbd5e1;--text-2:#64748b;--text-3:#334155;--max-w:1100px;--section-pad:clamp(5rem, 10vw, 9rem);--ease:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-sans);background:var(--bg-0);color:var(--text-0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.65;overflow-x:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-0)}::-webkit-scrollbar-thumb{background:linear-gradient(var(--cyan), var(--violet));border-radius:99px}img,svg{max-width:100%;display:block}button{cursor:pointer;background:0 0;border:none;font-family:inherit}a{color:inherit;text-decoration:none}ul{list-style:none}p{color:var(--text-1)}strong{color:var(--text-0);font-weight:600}.container{max-width:var(--max-w);margin:0 auto;padding:0 clamp(1.25rem,5vw,2.5rem)}.text-cyan{color:var(--cyan)}.text-violet{color:var(--violet)}.text-emerald{color:var(--emerald)}.text-rose{color:var(--rose)}.text-amber{color:var(--amber)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes blinkCaret{0%,to{opacity:1}50%{opacity:0}}@keyframes statusPulse{0%,to{box-shadow:0 0 #34d39980}50%{box-shadow:0 0 0 6px #34d39900}}@keyframes scrollLine{0%{transform-origin:top;opacity:1;transform:scaleY(0)}45%{transform-origin:top;opacity:1;transform:scaleY(1)}55%{transform-origin:bottom;opacity:1;transform:scaleY(1)}to{transform-origin:bottom;opacity:0;transform:scaleY(0)}}.anim-slide-up{animation:slideUp .6s var(--ease) forwards}.section__header,.about__text,.about__stats,.stat-card,.timeline__item,.project-card,.skill-group,.contact__body{opacity:0}.skill-pill{opacity:0;transition:opacity .35s var(--ease), transform .35s var(--ease);transform:translateY(10px)}.skill-pill--visible{opacity:1;transform:translateY(0)}.glass-card{background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);transition:border-color .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease-spring);border-radius:16px}.glass-card:hover{transform:translateY(-3px)}.glass-card--cyan:hover{box-shadow:var(--glow-cyan);border-color:#22d3ee66}.glass-card--violet:hover{box-shadow:var(--glow-violet);border-color:#a78bfa66}.glass-card--emerald:hover{box-shadow:var(--glow-emerald);border-color:#34d39966}.glass-card--rose:hover{box-shadow:var(--glow-rose);border-color:#fb718566}.glass-card--amber:hover{box-shadow:var(--glow-amber);border-color:#fbbf2466}.btn{letter-spacing:.02em;transition:all .25s var(--ease);border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.75rem;font-size:.95rem;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";opacity:0;background:#ffffff14;transition:opacity .2s;position:absolute;inset:0}.btn:hover:before{opacity:1}.btn--primary{background:linear-gradient(135deg, var(--cyan), #0891b2);color:var(--bg-0);box-shadow:var(--glow-cyan)}.btn--primary:hover{transform:translateY(-2px);box-shadow:0 0 35px #22d3ee8c,0 0 80px #22d3ee2e}.btn--ghost{color:var(--text-0);background:0 0;border:1px solid #94a3b840}.btn--ghost:hover{border-color:var(--cyan);color:var(--cyan);transform:translateY(-2px);box-shadow:0 0 16px #22d3ee26}.pill{letter-spacing:.03em;border:1px solid #0000;border-radius:99px;align-items:center;padding:.25rem .75rem;font-size:.78rem;font-weight:500;display:inline-flex}.pill--sm{padding:.18rem .6rem;font-size:.72rem}.pill--cyan{background:var(--cyan-dim);color:var(--cyan);border-color:#22d3ee40}.pill--violet{background:var(--violet-dim);color:var(--violet);border-color:#a78bfa40}.pill--emerald{background:var(--emerald-dim);color:var(--emerald);border-color:#34d39940}.pill--rose{background:var(--rose-dim);color:var(--rose);border-color:#fb718540}.pill--amber{background:var(--amber-dim);color:var(--amber);border-color:#fbbf2440}.pill--ghost{color:var(--text-2);border-color:var(--border);background:#ffffff0d}.section{padding:var(--section-pad) 0;position:relative}.about,.projects,.contact{background:linear-gradient(180deg, var(--bg-0) 0%, var(--bg-1) 50%, var(--bg-0) 100%)}.experience,.skills{background:var(--bg-0)}.section__header{margin-bottom:clamp(2.5rem,5vw,4rem)}.section__label{font-family:var(--font-mono);color:var(--cyan);letter-spacing:.08em;opacity:.9;margin-bottom:.5rem;font-size:.85rem;display:block}.section__title{letter-spacing:-.02em;background:linear-gradient(135deg, var(--text-0) 0%, var(--text-1) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(2rem,5vw,3rem);font-weight:700;line-height:1.1;display:inline-block;position:relative}.section__title:after{content:"";background:linear-gradient(90deg, var(--cyan), var(--violet));border-radius:99px;width:48px;height:3px;position:absolute;bottom:-8px;left:0}.navbar{z-index:1000;transition:background .35s var(--ease), border-color .35s var(--ease), padding .35s var(--ease);padding:1.25rem 0;position:fixed;top:0;left:0;right:0}.navbar--scrolled{-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);background:#020817d9;padding:.85rem 0}.navbar__inner{max-width:var(--max-w);justify-content:space-between;align-items:center;margin:0 auto;padding:0 clamp(1.25rem,5vw,2.5rem);display:flex}.navbar__logo{font-family:var(--font-mono);color:var(--text-0);letter-spacing:.04em;font-size:1.1rem;font-weight:700;transition:color .2s}.navbar__logo-bracket,.navbar__logo:hover{color:var(--cyan)}.navbar__links{align-items:center;gap:.25rem;display:flex}.navbar__link{color:var(--text-2);letter-spacing:.02em;border-radius:6px;padding:.45rem .9rem;font-size:.9rem;font-weight:500;transition:color .2s,background .2s}.navbar__link:hover{color:var(--text-0);background:#ffffff0f}.navbar__link--active{color:var(--cyan)}.navbar__hamburger{border-radius:6px;flex-direction:column;gap:5px;padding:6px;display:none}.navbar__hamburger span{background:var(--text-1);width:22px;height:2px;transition:all .25s var(--ease);transform-origin:50%;border-radius:99px;display:block}.navbar__hamburger--open span:first-child{transform:translateY(7px)rotate(45deg)}.navbar__hamburger--open span:nth-child(2){opacity:0;transform:scaleX(0)}.navbar__hamburger--open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.mobile-menu{z-index:999;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);pointer-events:none;opacity:0;transition:opacity .3s var(--ease);background:#020817f7;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.mobile-menu--open{opacity:1;pointer-events:all}.mobile-menu__inner{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.mobile-menu__link{color:var(--text-1);opacity:0;align-items:center;gap:.75rem;font-size:1.75rem;font-weight:700;transition:color .2s;display:flex}.mobile-menu--open .mobile-menu__link{animation:slideUp .4s var(--ease) forwards}.mobile-menu__link:hover{color:var(--cyan)}.mobile-menu__num{font-family:var(--font-mono);color:var(--cyan);font-size:1rem}.hero{align-items:center;min-height:100svh;display:flex;position:relative;overflow:hidden}.hero__canvas{z-index:0;width:100%;height:100%;position:absolute;inset:0}.hero__vignette{z-index:1;background:radial-gradient(80% 60%,#0000 30%,#020817a6 70%,#020817eb 100%);position:absolute;inset:0}.hero__content{z-index:2;max-width:var(--max-w);opacity:0;width:100%;transition:opacity .8s var(--ease);margin:0 auto;padding:5rem clamp(1.25rem,5vw,2.5rem) 0;position:relative}.hero__content--loaded{opacity:1}.hero__status{color:var(--emerald);letter-spacing:.03em;background:#34d39914;border:1px solid #34d39940;border-radius:99px;align-items:center;gap:.6rem;margin-bottom:2rem;padding:.4rem 1rem;font-size:.82rem;font-weight:500;animation:.8s .3s both fadeIn;display:inline-flex}.hero__status-dot{background:var(--emerald);border-radius:50%;width:8px;height:8px;animation:2s infinite statusPulse}.hero__greeting{font-family:var(--font-mono);color:var(--cyan);opacity:.8;margin-bottom:.75rem;font-size:clamp(.85rem,1.5vw,1rem);animation:.8s .45s both fadeIn}.hero__name{letter-spacing:-.03em;background:linear-gradient(160deg,#f8fafc 0%,#e2e8f0 50%,#94a3b8 100%);-webkit-text-fill-color:transparent;animation:slideUp .8s .55s var(--ease) both;-webkit-background-clip:text;background-clip:text;margin-bottom:1.5rem;font-size:clamp(3.5rem,9vw,7.5rem);font-weight:700;line-height:1}.hero__name-accent{background:linear-gradient(135deg, var(--cyan) 0%, var(--violet) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;display:block}.hero__typewriter{font-family:var(--font-mono);align-items:center;gap:.1rem;margin-bottom:2rem;font-size:clamp(1rem,2.5vw,1.4rem);animation:.8s .7s both fadeIn;display:flex}.hero__title-prefix{color:var(--violet);opacity:.7}.hero__title{color:var(--cyan);font-weight:500}.hero__cursor{color:var(--cyan);font-weight:300;animation:1s step-end infinite blinkCaret}.hero__description{max-width:560px;color:var(--text-1);animation:slideUp .8s .85s var(--ease) both;margin-bottom:2.25rem;font-size:clamp(1rem,1.8vw,1.1rem);line-height:1.75}.hero__cta{flex-wrap:wrap;gap:1rem;margin-bottom:2.5rem;animation:.8s 1s both fadeIn;display:flex}.hero__badges{flex-wrap:wrap;gap:.75rem;animation:.8s 1.15s both fadeIn;display:flex}.hero__badge{font-family:var(--font-mono);color:var(--text-2);border:1px solid var(--border);letter-spacing:.02em;border-radius:6px;padding:.3rem .8rem;font-size:.78rem}.hero__scroll{z-index:2;flex-direction:column;align-items:center;gap:.6rem;animation:1.2s 1.4s both fadeIn;display:flex;position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%)}.hero__scroll-label{font-family:var(--font-mono);letter-spacing:.15em;color:var(--text-3);text-transform:uppercase;font-size:.7rem}.hero__scroll-line{background:linear-gradient(var(--cyan), transparent);width:1px;height:50px;animation:2.2s ease-in-out infinite scrollLine}.about__grid{grid-template-columns:1fr 1fr;align-items:start;gap:4rem;display:grid}.about__text p{margin-bottom:1.25rem;font-size:1.05rem;line-height:1.8}.about__text p:last-of-type{margin-bottom:2rem}.about__highlights{flex-wrap:wrap;gap:.65rem;display:flex}.about__tag{border:1px solid var(--border);color:var(--text-1);background:#ffffff0a;border-radius:8px;align-items:center;gap:.4rem;padding:.4rem 1rem;font-size:.85rem;font-weight:500;transition:border-color .2s,background .2s;display:inline-flex}.about__tag:hover{background:var(--cyan-dim);color:var(--text-0);border-color:#22d3ee4d}.about__stats{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:border-color .3s, box-shadow .3s, transform .3s var(--ease-spring);cursor:default;border-radius:16px;flex-direction:column;gap:.25rem;padding:1.5rem;display:flex}.stat-card:hover{transform:translateY(-4px)scale(1.02)}.stat-card--cyan:hover{box-shadow:var(--glow-cyan);border-color:#22d3ee66}.stat-card--violet:hover{box-shadow:var(--glow-violet);border-color:#a78bfa66}.stat-card--emerald:hover{box-shadow:var(--glow-emerald);border-color:#34d39966}.stat-card--rose:hover{box-shadow:var(--glow-rose);border-color:#fb718566}.stat-card__icon{margin-bottom:.25rem;font-size:1.6rem}.stat-card__value{letter-spacing:-.02em;color:var(--text-0);font-size:clamp(1.4rem,2.5vw,1.9rem);font-weight:700}.stat-card__label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-2);font-size:.78rem;font-weight:600}.stat-card__sub{color:var(--text-2);margin-top:.1rem;font-size:.82rem}.timeline{padding-left:2.25rem;position:relative}.timeline:before{content:"";background:linear-gradient(#0000,#22d3ee59 15%,#a78bfa59 55%,#fb718559 85%,#0000);width:1px;position:absolute;top:.5rem;bottom:.5rem;left:8px}.timeline__item{margin-bottom:2.5rem;position:relative}.timeline__item:last-child{margin-bottom:0}.timeline__dot{border:2px solid var(--bg-0);z-index:1;border-radius:50%;width:14px;height:14px;position:absolute;top:1.75rem;left:calc(2px - 2.25rem)}.timeline__dot--cyan{background:var(--cyan);box-shadow:0 0 14px #22d3eeb3}.timeline__dot--violet{background:var(--violet);box-shadow:0 0 14px #a78bfab3}.timeline__dot--emerald{background:var(--emerald);box-shadow:0 0 14px #34d399b3}.timeline__dot--rose{background:var(--rose);box-shadow:0 0 14px #fb7185b3}.timeline__card{padding:clamp(1.25rem,3vw,2rem)}.timeline__meta{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.timeline__period{font-family:var(--font-mono);color:var(--text-2);letter-spacing:.04em;font-size:.78rem}.timeline__location{color:var(--text-3);font-size:.78rem}.timeline__header{align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.timeline__icon{flex-shrink:0;padding-top:.1rem;font-size:1.5rem}.timeline__company{margin-bottom:.15rem;font-size:1.15rem;font-weight:700}.timeline__role{color:var(--text-1);font-size:.9rem;font-weight:500}.timeline__bullets{flex-direction:column;gap:.7rem;margin-bottom:1.5rem;display:flex}.timeline__bullets li{color:var(--text-1);padding-left:1.25rem;font-size:.93rem;line-height:1.65;position:relative}.timeline__bullets li:before{content:"▸";color:var(--cyan);font-size:.7rem;position:absolute;top:.3em;left:0}.timeline__tags{flex-wrap:wrap;gap:.5rem;display:flex}.projects__grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}.project-card{flex-direction:column;gap:.65rem;padding:clamp(1.25rem,2.5vw,1.75rem);display:flex}.project-card__top{justify-content:space-between;align-items:center;margin-bottom:.25rem;display:flex}.project-card__icon{font-size:1.75rem}.project-card__category{font-family:var(--font-mono);color:var(--text-2);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem}.project-card__title{letter-spacing:-.01em;font-size:1.2rem;font-weight:700;line-height:1.3}.project-card__desc{color:var(--text-1);flex:1;font-size:.9rem;line-height:1.7}.project-card__tags{flex-wrap:wrap;gap:.45rem;margin-top:auto;padding-top:.5rem;display:flex}.skills__grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;display:grid}.skill-group{padding:1.75rem}.skill-group__header{align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.skill-group__icon{font-size:1.4rem}.skill-group__title{font-size:1rem;font-weight:700}.skill-group__pills{flex-wrap:wrap;gap:.5rem;display:flex}.skill-pill{border:1px solid var(--border);color:var(--text-1);cursor:default;transition:opacity .4s var(--ease), transform .4s var(--ease), border-color .2s, background .2s, color .2s, box-shadow .2s;background:#ffffff0a;border-radius:99px;align-items:center;padding:.35rem .85rem;font-size:.82rem;font-weight:500;display:inline-flex}.skill-pill--cyan:hover{background:var(--cyan-dim);color:var(--cyan);border-color:#22d3ee73;box-shadow:0 0 12px #22d3ee40}.skill-pill--violet:hover{background:var(--violet-dim);color:var(--violet);border-color:#a78bfa73;box-shadow:0 0 12px #a78bfa40}.skill-pill--emerald:hover{background:var(--emerald-dim);color:var(--emerald);border-color:#34d39973;box-shadow:0 0 12px #34d39940}.skill-pill--rose:hover{background:var(--rose-dim);color:var(--rose);border-color:#fb718573;box-shadow:0 0 12px #fb718540}.contact__body{text-align:center;max-width:680px;margin:0 auto}.contact__intro{color:var(--text-1);margin-bottom:2.5rem;font-size:clamp(1rem,1.8vw,1.1rem);line-height:1.8}.contact__cards{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:2.5rem;display:grid}.contact-card{text-align:center;transition:border-color .3s, box-shadow .3s, transform .3s var(--ease-spring);flex-direction:column;align-items:center;gap:.4rem;padding:1.75rem 1.25rem;display:flex;position:relative;overflow:hidden}.contact-card:hover{transform:translateY(-4px)}.contact-card__icon{font-size:1.75rem}.contact-card__label{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-2);text-transform:uppercase;font-size:.75rem}.contact-card__value{color:var(--text-0);word-break:break-all;font-size:.9rem;font-weight:500}.contact-card__arrow{color:var(--text-3);font-size:1rem;transition:color .2s,transform .2s;position:absolute;bottom:1rem;right:1.25rem}.contact-card:hover .contact-card__arrow{color:var(--cyan);transform:translate(4px)}.contact__cta{width:fit-content;margin:0 auto;padding:.85rem 2.25rem;font-size:1rem;display:block}.footer{border-top:1px solid var(--border);background:var(--bg-0);padding:2.5rem 0}.footer__inner{text-align:center;flex-direction:column;align-items:center;gap:.75rem;display:flex}.footer__brand{font-family:var(--font-mono);color:var(--text-0);font-size:1rem;font-weight:700;transition:color .2s}.footer__brand:hover{color:var(--cyan)}.footer__copy{color:var(--text-2);font-size:.85rem}.footer__sub{color:var(--text-3);font-size:.8rem}@media (width<=900px){.about__grid{grid-template-columns:1fr;gap:3rem}.about__stats{grid-template-columns:repeat(4,1fr)}.projects__grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){:root{--section-pad:4rem}.navbar__links{display:none}.navbar__hamburger{display:flex}.hero__cta{flex-direction:column;align-items:flex-start}.hero__name{font-size:clamp(2.8rem,14vw,5rem)}.hero__badges{display:none}.about__stats{grid-template-columns:1fr 1fr}.projects__grid,.skills__grid,.contact__cards{grid-template-columns:1fr}.timeline{padding-left:1.75rem}.section__title:after{width:36px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.hero__canvas{display:none}.hero__content,.section__header,.about__text,.about__stats,.stat-card,.timeline__item,.project-card,.skill-group,.contact__body{opacity:1}.skill-pill{opacity:1;transform:none}}
