*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0f1a;--surface:#111827;--card:#1e293b;--border:#ffffff12;--accent:#0ea5e9;--accent2:#8b5cf6;--text:#f8fafc;--muted:#94a3b8;--nav-h:72px}html{scroll-behavior:smooth;scrollbar-gutter:stable;overflow-y:scroll}body{background:var(--bg);color:var(--text);max-width:100vw;font-family:Inter,sans-serif;font-weight:300;line-height:1.7;overflow-x:hidden}body:after{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(90deg,#ffffff08 1px,#0000 1px),linear-gradient(#ffffff08 1px,#0000 1px);background-size:40px 40px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(#000 10%,#0000 80%);mask-image:radial-gradient(#000 10%,#0000 80%)}body:before{content:"";opacity:.025;pointer-events:none;z-index:9999;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");position:fixed;inset:0}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--accent);border-radius:2px}.cursor{background:var(--accent);pointer-events:none;z-index:10000;mix-blend-mode:difference;border-radius:50%;width:10px;height:10px;transition:transform .1s;position:fixed}.cursor-ring{border:1.5px solid var(--accent);pointer-events:none;z-index:9998;opacity:.5;border-radius:50%;width:36px;height:36px;transition:transform .25s,width .25s,height .25s,opacity .25s;position:fixed;transform:translate(-50%,-50%)}nav{height:var(--nav-h);z-index:100;justify-content:space-between;align-items:center;padding:0 5%;transition:background .4s,border-bottom .4s;display:flex;position:fixed;top:0;left:0;right:0}nav.scrolled{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#080b12e6}.nav-logo{letter-spacing:-.03em;color:var(--text);font-family:Inter,sans-serif;font-size:1.4rem;font-weight:800;text-decoration:none}.nav-logo span{color:var(--accent)}.nav-links{gap:2.5rem;list-style:none;display:flex}.nav-links a{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-family:Fira Code,monospace;font-size:.85rem;text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--text)}.nav-cta{background:var(--accent);color:#fff;letter-spacing:.06em;border-radius:4px;align-items:center;gap:.4rem;padding:.55rem 1.3rem;font-size:.82rem;font-weight:500;text-decoration:none;transition:opacity .2s,transform .2s;display:inline-flex}.nav-cta:hover{opacity:.88;transform:translateY(-1px)}.hamburger{cursor:pointer;flex-direction:column;gap:5px;display:none}.hamburger span{background:var(--text);width:24px;height:2px;transition:all .3s;display:block}#hero{min-height:100vh;padding:calc(var(--nav-h) + 40px) 5% 80px;z-index:1;align-items:center;display:flex;position:relative;overflow:hidden}.hero-bg-blob{filter:blur(110px);pointer-events:none;will-change:transform;isolation:isolate;border-radius:50%;position:absolute}.blob1{background:#0ea5e91f;width:500px;height:500px;animation:8s ease-in-out infinite blobPulse;top:-100px;right:-80px}.blob2{background:#8b5cf614;width:350px;height:350px;animation:10s ease-in-out infinite reverse blobPulse;bottom:50px;left:-60px}@keyframes blobPulse{0%,to{transform:scale(1)translate(0)}50%{transform:scale(1.15)translate(20px,-20px)}}.hero-inner{grid-template-columns:1fr 420px;align-items:center;gap:60px;width:100%;max-width:1200px;margin:0 auto;display:grid}.hero-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);opacity:0;align-items:center;gap:.6rem;margin-bottom:1.4rem;font-family:Fira Code,monospace;font-size:.85rem;animation:.7s .2s forwards fadeUp;display:inline-flex}.hero-eyebrow:before{content:"";background:var(--accent);width:28px;height:1.5px;display:block}.hero-name{letter-spacing:-.04em;opacity:0;margin-bottom:.5rem;font-family:Inter,sans-serif;font-size:clamp(3rem,6vw,5.5rem);font-weight:800;line-height:1;animation:.7s .35s forwards fadeUp}.hero-name .accent{color:var(--accent)}.hero-role{color:var(--muted);opacity:0;min-height:2.2em;margin-bottom:1.8rem;font-family:Inter,sans-serif;font-size:clamp(1.1rem,2.2vw,1.6rem);font-weight:600;animation:.7s .5s forwards fadeUp;display:block}.hero-desc{color:var(--muted);opacity:0;max-width:500px;margin-bottom:2.5rem;font-size:1rem;animation:.7s .65s forwards fadeUp}.hero-actions{opacity:0;flex-wrap:wrap;gap:1rem;animation:.7s .8s forwards fadeUp;display:flex}.btn-primary{background:var(--accent);color:#fff;border-radius:6px;align-items:center;gap:.5rem;padding:.85rem 2rem;font-family:Inter,sans-serif;font-size:.9rem;font-weight:600;text-decoration:none;transition:transform .2s,box-shadow .2s;display:inline-flex;box-shadow:0 4px 24px #0ea5e94d}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 8px 32px #0ea5e973}.btn-ghost{border:1.5px solid var(--border);color:var(--text);border-radius:6px;align-items:center;gap:.5rem;padding:.85rem 2rem;font-family:Inter,sans-serif;font-size:.9rem;font-weight:500;text-decoration:none;transition:border-color .2s,transform .2s;display:inline-flex}.btn-ghost:hover{border-color:var(--accent);transform:translateY(-3px)}.hero-stats{border-top:1px solid var(--border);opacity:0;gap:2.5rem;margin-top:3.5rem;padding-top:2.5rem;animation:.7s 1s forwards fadeUp;display:flex}.stat-val{color:var(--text);font-family:Inter,sans-serif;font-size:2.2rem;font-weight:800;line-height:1}.stat-val span{color:var(--accent)}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-top:.2rem;font-size:.78rem}.hero-image-wrap{opacity:0;justify-content:center;align-items:center;width:380px;height:380px;animation:1s .6s forwards fadeIn;display:flex;position:relative}.profile-orbit{pointer-events:none;z-index:0;will-change:transform;border:1px dashed #0ea5e92e;border-radius:50%;width:420px;height:420px;animation:12s linear infinite orbitSpin;position:absolute}.orbit-dot{background:var(--accent);width:10px;height:10px;box-shadow:0 0 10px var(--accent), 0 0 20px #0ea5e980;border-radius:50%;position:absolute;top:-5px;left:50%;transform:translate(-50%)}@keyframes orbitSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.profile-ring-outer{z-index:1;border-radius:50%;width:360px;height:360px;transition:transform .15s;position:relative}.profile-ring-spinner{background:conic-gradient(from 0deg, var(--accent) 0deg, var(--accent2) 80deg, transparent 150deg, transparent 210deg, var(--accent2) 280deg, var(--accent) 360deg);z-index:0;will-change:transform;border-radius:50%;animation:3.5s linear infinite spinRing;position:absolute;inset:-3px}@keyframes spinRing{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.profile-ring-outer:after{content:"";z-index:0;pointer-events:none;will-change:transform, opacity;border:1.5px solid #0ea5e933;border-radius:50%;animation:2.8s ease-in-out infinite pulseRing;position:absolute;inset:-16px}@keyframes pulseRing{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.1;transform:scale(1.07)}}.profile-ring-inner{background:var(--surface);border:3px solid var(--bg);z-index:1;border-radius:50%;transition:box-shadow .3s;position:absolute;inset:4px;overflow:hidden;box-shadow:0 0 0 1px #0ea5e940,0 20px 60px #0009,0 0 60px #0ea5e91a}.profile-photo{object-fit:cover;object-position:center top;filter:contrast(1.05)saturate(1.08);width:100%;height:100%;transition:transform .5s cubic-bezier(.34,1.56,.64,1);display:block}.profile-ring-outer:hover .profile-photo,.profile-ring-outer.touched .profile-photo{transform:scale(1.06)}.profile-ring-outer:hover .profile-ring-inner,.profile-ring-outer.touched .profile-ring-inner{box-shadow:0 0 0 2px #0ea5e980,0 24px 70px #000000b3,0 0 80px #0ea5e940}.hero-badge{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:3;will-change:transform;background:#0e1420eb;border:1px solid #0ea5e94d;border-radius:50px;align-items:center;gap:.6rem;padding:.65rem 1.1rem;animation:4s ease-in-out infinite floatBadge;display:flex;position:absolute;bottom:10px;right:-10px;box-shadow:0 8px 24px #0006}@keyframes floatBadge{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.badge-dot{background:#22c55e;border-radius:50%;width:9px;height:9px;animation:2s ease-in-out infinite dotPulse;box-shadow:0 0 0 3px #22c55e40}@keyframes dotPulse{0%,to{box-shadow:0 0 0 3px #22c55e40}50%{box-shadow:0 0 0 6px #22c55e1a}}.badge-text{white-space:nowrap;font-size:.78rem;font-weight:500}.badge-sub{color:var(--muted);white-space:nowrap;font-size:.68rem}section{z-index:1;padding:80px 5%;position:relative}@media (width<=768px){section{padding:60px 5%}}.section-inner{max-width:1200px;margin:0 auto}.section-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);align-items:center;gap:.6rem;margin-bottom:1rem;font-family:Fira Code,monospace;font-size:.8rem;display:inline-flex}.section-tag:before{content:"";background:var(--accent);width:22px;height:1.5px;display:block}h2.section-title{letter-spacing:-.025em;margin-bottom:1rem;font-family:Inter,sans-serif;font-size:clamp(2rem,4vw,3.2rem);font-weight:800;line-height:1.1}.section-sub{color:var(--muted);max-width:520px;margin-bottom:3.5rem}@keyframes fadeUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(32px)}.reveal.visible{opacity:1;transform:translateY(0)}#about{background:var(--surface)}.about-grid{grid-template-columns:1fr 1fr;align-items:center;gap:80px;display:grid}.about-text p{color:var(--muted);margin-bottom:1.2rem;font-size:1.02rem}.about-text p strong{color:var(--text);font-weight:500}.about-links{flex-wrap:wrap;gap:1rem;margin-top:2rem;display:flex}.social-pill{border:1px solid var(--border);color:var(--muted);border-radius:100px;align-items:center;gap:.5rem;padding:.55rem 1.1rem;font-size:.82rem;text-decoration:none;transition:all .2s;display:inline-flex}.social-pill:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.social-pill svg{width:15px;height:15px}.skills-cloud{flex-wrap:wrap;gap:.65rem;display:flex}.skill-chip{background:var(--bg);border:1px solid var(--border);color:var(--muted);cursor:default;border-radius:100px;padding:.45rem 1rem;font-size:.8rem;transition:all .2s}.skill-chip:hover{border-color:var(--accent);color:var(--text);background:#0ea5e914}.skills-section h3{color:var(--text);margin-bottom:1.2rem;font-family:Inter,sans-serif;font-size:1.15rem;font-weight:700}.skills-section h3+.skills-cloud{margin-bottom:2rem}#projects{background:var(--bg)}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem;display:grid}.project-card{background:var(--card);border:1px solid var(--border);border-radius:16px;flex-direction:column;transition:transform .3s,border-color .3s,box-shadow .3s;display:flex;overflow:hidden}.project-card:hover{border-color:#0ea5e959;transform:translateY(-6px);box-shadow:0 20px 60px #0006}.project-img{background:linear-gradient(135deg, var(--surface), #1a2035);justify-content:center;align-items:center;height:200px;font-size:3.5rem;display:flex;position:relative;overflow:hidden}.project-img:after{content:"";background:linear-gradient(to bottom, transparent 40%, var(--card));position:absolute;inset:0}.project-body{flex-direction:column;flex:1;padding:1.5rem;display:flex}.project-tags{flex-wrap:wrap;gap:.4rem;margin-bottom:.9rem;display:flex}.ptag{color:var(--accent);letter-spacing:.05em;background:#0ea5e91f;border-radius:100px;padding:.25rem .65rem;font-size:.7rem}.project-body h3{margin-bottom:.6rem;font-family:Inter,sans-serif;font-size:1.15rem;font-weight:700;line-height:1.2}.project-body p{color:var(--muted);flex:1;margin-bottom:1.4rem;font-size:.88rem}.project-links{gap:.75rem;margin-top:auto;display:flex}.project-link{color:var(--muted);align-items:center;gap:.35rem;font-size:.8rem;text-decoration:none;transition:color .2s;display:inline-flex}.project-link:hover{color:var(--accent)}.project-link svg{width:14px;height:14px}#experience{background:var(--surface)}.timeline{position:relative}.timeline:before{content:"";background:var(--border);width:1px;position:absolute;top:6px;bottom:6px;left:0}.timeline-item{padding-bottom:3rem;padding-left:2.5rem;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-dot{background:var(--accent);border-radius:50%;width:11px;height:11px;position:absolute;top:6px;left:-5px;box-shadow:0 0 0 4px #0ea5e933}.timeline-date{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.4rem;font-size:.75rem}.timeline-title{margin-bottom:.25rem;font-family:Inter,sans-serif;font-size:1.1rem;font-weight:700}.timeline-company{color:var(--muted);margin-bottom:.8rem;font-size:.88rem}.timeline-desc{color:var(--muted);max-width:600px;font-size:.9rem}#certifications{background:var(--bg)}.certs-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem;display:grid}.cert-card{background:var(--card);border:1px solid var(--border);border-radius:14px;align-items:flex-start;gap:1.1rem;padding:1.4rem 1.5rem;transition:transform .3s,border-color .3s,box-shadow .3s;display:flex;position:relative;overflow:hidden}.cert-card:before{content:"";background:linear-gradient(180deg, var(--accent), var(--accent2));opacity:0;width:3px;height:100%;transition:opacity .3s;position:absolute;top:0;left:0}.cert-card:hover{border-color:#0ea5e94d;transform:translateY(-4px);box-shadow:0 12px 40px #00000059}.cert-card:hover:before{opacity:1}.cert-icon{border:1px solid var(--border);background:#fff;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;padding:5px;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s;display:flex;overflow:hidden}.cert-card:hover .cert-icon{transform:scale(1.12)rotate(-4deg);box-shadow:0 6px 20px #00000059}.cert-logo-img{object-fit:contain;width:100%;height:100%;display:block}.cert-card[data-issuer=cisco] .cert-icon{background:#00bceb22;padding:4px}.cert-card[data-issuer=aws] .cert-icon{background:#0a0a0a;padding:4px}.cert-card[data-issuer=hackerrank] .cert-icon{background:#1a1f2e;padding:4px}.cert-card[data-issuer=sololearn] .cert-icon{background:#0c0c16;padding:4px}.cert-card[data-issuer=alison] .cert-icon{background:#fff;padding:4px}.cert-card[data-issuer=microsoft] .cert-icon{background:#000;padding:4px}.cert-body{flex:1;min-width:0}.cert-name{color:var(--text);margin-bottom:.25rem;font-family:Inter,sans-serif;font-size:.95rem;font-weight:700;line-height:1.3}.cert-issuer{color:var(--accent);letter-spacing:.03em;margin-bottom:.3rem;font-size:.78rem;font-weight:500}.cert-date{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem}.cert-skills{flex-wrap:wrap;gap:.35rem;margin-top:.7rem;display:flex}.cert-skill-tag{color:var(--muted);background:#0ea5e914;border:1px solid #0ea5e926;border-radius:100px;padding:.18rem .55rem;font-size:.67rem}.cert-card[data-issuer=cisco] .cert-icon{background:#0082b41f}.cert-card[data-issuer=aws] .cert-icon{background:#ff99001f}.cert-card[data-issuer=hackerrank] .cert-icon{background:#00c8531f}.cert-card[data-issuer=sololearn] .cert-icon{background:#6853ff1f}.cert-card[data-issuer=alison] .cert-icon{background:#0ea5e91f}.cert-card[data-issuer=microsoft] .cert-icon{background:#0078d41f}a.cert-card{color:inherit;cursor:pointer;text-decoration:none}#articles{background:var(--surface)}.articles-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;display:grid}.article-card{background:var(--card);border:1px solid var(--border);color:inherit;border-radius:14px;flex-direction:column;padding:1.8rem;text-decoration:none;transition:transform .3s,border-color .3s;display:flex}.article-card:hover{border-color:#0ea5e959;transform:translateY(-5px)}.article-meta{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.8rem;font-size:.75rem}.article-card h3{margin-bottom:.7rem;font-family:Inter,sans-serif;font-size:1.05rem;font-weight:700;line-height:1.3}.article-card p{color:var(--muted);flex:1;font-size:.85rem}.article-arrow{color:var(--accent);align-self:flex-start;margin-top:1.4rem;font-size:1.2rem;transition:transform .2s}.article-card:hover .article-arrow{transform:translate(5px)}#contact{background:var(--surface)}.contact-grid{grid-template-columns:1fr 1fr;align-items:start;gap:80px;display:grid}.contact-info h2{margin-bottom:1rem}.contact-info p{color:var(--muted);margin-bottom:2rem}.contact-cards{flex-direction:column;gap:1rem;display:flex}.contact-card{background:var(--card);border:1px solid var(--border);color:inherit;border-radius:12px;align-items:center;gap:1.2rem;padding:1.2rem;text-decoration:none;transition:border-color .2s,transform .2s;display:flex}.contact-card:hover{border-color:var(--accent);transform:translate(6px)}.cc-icon{width:44px;height:44px;color:var(--accent);background:#0ea5e91a;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.cc-label{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:.72rem}.cc-val{color:var(--text);margin-top:.1rem;font-size:.9rem;font-weight:500}.contact-form{flex-direction:column;gap:1.2rem;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-group label{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:.78rem}.form-group input,.form-group textarea{background:var(--card);border:1px solid var(--border);color:var(--text);resize:none;border-radius:8px;outline:none;padding:.85rem 1rem;font-family:Inter,sans-serif;font-size:.9rem;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--accent)}.form-group textarea{height:130px}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-status{color:#22c55e;font-size:.85rem;display:none}.form-status.show{display:block}footer{background:var(--bg);border-top:1px solid var(--border);text-align:center;padding:2.5rem 5%}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1200px;margin:0 auto;display:flex}.footer-logo{color:var(--text);font-family:Inter,sans-serif;font-size:1.15rem;font-weight:800;text-decoration:none}.footer-logo span{color:var(--accent)}.footer-copy{color:var(--muted);font-size:.8rem}.footer-socials{gap:.8rem;display:flex}.footer-socials a{border:1px solid var(--border);width:36px;height:36px;color:var(--muted);border-radius:8px;justify-content:center;align-items:center;text-decoration:none;transition:all .2s;display:flex}.footer-socials a:hover{border-color:var(--accent);color:var(--accent)}.footer-socials svg{width:15px;height:15px}.mobile-menu{top:var(--nav-h);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);z-index:99;background:#080b12fa;flex-direction:column;gap:1.5rem;padding:2rem 5%;display:none;position:fixed;left:0;right:0}.mobile-menu.open{display:flex}.mobile-menu a{color:var(--text);font-family:Inter,sans-serif;font-size:1.1rem;font-weight:700;text-decoration:none}.skill-bar-wrap{margin-bottom:1.2rem}.skill-bar-top{justify-content:space-between;margin-bottom:.4rem;font-size:.82rem;display:flex}.skill-bar-top span:first-child{color:var(--text)}.skill-bar-top span:last-child{color:var(--muted)}.skill-bar{background:var(--border);border-radius:100px;height:4px;overflow:hidden}.skill-bar-fill{background:linear-gradient(90deg, var(--accent), var(--accent2));border-radius:100px;width:0;height:100%;transition:width 1.2s cubic-bezier(.4,0,.2,1)}#particle-canvas{pointer-events:none;z-index:0;opacity:.55;will-change:transform;isolation:isolate;width:100%;height:100%;position:fixed;top:0;left:0}#technologies{background:var(--surface);position:relative;overflow:hidden}#technologies:before{content:"";pointer-events:none;background:radial-gradient(80% 60%,#0ea5e90f 0%,#0000 70%);position:absolute;inset:0}.tech-marquee-wrap{margin-bottom:1.8rem;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000);mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}.tech-marquee{will-change:transform;gap:1.2rem;width:max-content;animation:30s linear infinite marqueeScroll;display:flex}.tech-marquee.reverse{animation-duration:25s;animation-direction:reverse}@keyframes marqueeScroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.tech-marquee:hover{animation-play-state:paused}.tech-icon-card{background:var(--card);border:1px solid var(--border);cursor:default;border-radius:16px;flex-direction:column;align-items:center;gap:.55rem;min-width:100px;padding:1.2rem 1.4rem;transition:transform .35s cubic-bezier(.34,1.56,.64,1),border-color .3s,box-shadow .3s,background .3s;display:flex;position:relative;overflow:hidden}.tech-icon-card:before{content:"";opacity:0;background:linear-gradient(135deg,#0ea5e914,#8b5cf60d);transition:opacity .3s;position:absolute;inset:0}.tech-icon-card:hover{border-color:#0ea5e966;transform:translateY(-8px)scale(1.06);box-shadow:0 16px 40px #0006,0 0 20px #0ea5e926}.tech-icon-card:hover:before{opacity:1}.tech-icon-img{object-fit:contain;filter:drop-shadow(0 2px 6px #0000004d);width:44px;height:44px;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.tech-icon-card:hover .tech-icon-img{transform:scale(1.15)rotate(-5deg)}.tech-icon-label{color:var(--muted);text-align:center;letter-spacing:.05em;white-space:nowrap;font-size:.72rem;font-weight:500;transition:color .2s}.tech-icon-card:hover .tech-icon-label{color:var(--text)}.tech-orb{filter:blur(80px);pointer-events:none;will-change:transform;border-radius:50%;animation:12s ease-in-out infinite techOrbFloat;position:absolute}.tech-orb-1{background:#0ea5e912;width:300px;height:300px;animation-delay:0s;top:-80px;left:10%}.tech-orb-2{background:#8b5cf60f;width:200px;height:200px;animation-delay:-4s;bottom:0;right:15%}.tech-orb-3{background:#63b3ed0d;width:150px;height:150px;animation-delay:-8s;top:40%;left:60%}@keyframes techOrbFloat{0%,to{transform:translate(0)scale(1)}33%{transform:translate(30px,-20px)scale(1.1)}66%{transform:translate(-20px,15px)scale(.95)}}@media (width<=900px){.hero-inner{text-align:center;grid-template-columns:1fr}.hero-image-wrap{width:280px;max-width:280px;height:280px;margin:0 auto}.profile-ring-outer{width:260px;height:260px}.profile-orbit{width:310px;height:310px}.hero-badge{bottom:0;right:-5px}.hero-desc{margin:0 auto 2.5rem}.hero-actions,.hero-stats{justify-content:center}.about-grid,.contact-grid{grid-template-columns:1fr;gap:40px}.about-text{text-align:center}.about-links{justify-content:center}.skills-section h3{text-align:center}.skills-cloud-3d{width:100%;max-width:100vw;margin:0 auto;overflow:hidden}.tagcloud{margin:0 auto}.tech-icon-card{gap:.4rem;min-width:80px;padding:.8rem 1rem}.tech-icon-img{width:32px;height:32px}.nav-links,.nav-cta{display:none}.hamburger{display:flex}}@media (width<=600px){.projects-grid,.articles-grid,.certs-grid,.form-row{grid-template-columns:1fr}}.article-card{transition:transform .3s,border-color .3s,box-shadow .3s;position:relative;overflow:hidden}.article-card:before{content:"";background:linear-gradient(180deg, var(--accent), var(--accent2));opacity:0;width:3px;height:100%;transition:opacity .3s;position:absolute;top:0;left:0}.article-card:hover:before{opacity:1}.btn-cv{color:var(--accent);background:#0ea5e91f;border:1.5px solid #0ea5e966;border-radius:8px;align-items:center;gap:.6rem;margin-bottom:2rem;padding:.85rem 2rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .2s,transform .2s,box-shadow .2s;display:inline-flex}.btn-cv:hover{background:#0ea5e938;transform:translateY(-3px);box-shadow:0 8px 24px #0ea5e933}.btn-cv:active{transform:translateY(-1px)}.project-badge{color:#22c55e;letter-spacing:.12em;text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:3;white-space:nowrap;background:#0a140ed1;border:1px solid #22c55e73;border-radius:100px;align-items:center;gap:.4rem;padding:.3rem .75rem;font-family:Inter,sans-serif;font-size:.67rem;font-weight:600;transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .3s,border-color .3s;animation:.55s cubic-bezier(.34,1.56,.64,1) both badgePop;display:inline-flex;position:absolute;top:14px;right:14px;box-shadow:0 2px 14px #22c55e1f,inset 0 1px #ffffff0d}.project-badge:before{content:"";background:#22c55e;border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2.2s ease-in-out infinite badgeDotPulse;display:inline-block;box-shadow:0 0 0 2px #22c55e33}.project-card:hover .project-badge{border-color:#22c55eb3;transform:translateY(-2px)scale(1.06);box-shadow:0 6px 22px #22c55e47,inset 0 1px #ffffff14}.project-img{background:var(--surface);border-radius:16px 16px 0 0;height:200px;display:block;position:relative;overflow:hidden}.project-preview-img{object-fit:cover;object-position:top left;filter:brightness(.95);width:100%;height:100%;transition:transform .5s cubic-bezier(.25,.46,.45,.94),filter .4s;display:block}.project-card:hover .project-preview-img{filter:brightness(1.08)contrast(1.02);transform:scale(1.06)translateY(-4px)}.project-img:after{content:"";background:linear-gradient(to bottom, transparent 45%, var(--card) 100%);pointer-events:none;z-index:1;position:absolute;inset:0}@keyframes badgePop{0%{opacity:0;transform:scale(.55)translateY(-6px)}70%{opacity:1;transform:scale(1.08)translateY(1px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes badgeDotPulse{0%,to{box-shadow:0 0 0 2px #22c55e33}50%{box-shadow:0 0 0 5px #22c55e00,0 0 8px #22c55e99}}.cursor-blink{color:var(--accent);margin-left:2px;font-weight:700;animation:.8s infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.form-group input.error,.form-group textarea.error{background:#ef44440d;border-color:#ef4444!important}.form-error{color:#ef4444;margin-top:.3rem;font-size:.85rem;animation:.3s fadeIn;display:block}.chatbot-toggle{background:var(--accent);color:#fff;cursor:pointer;z-index:9999;border:none;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .3s;display:flex;position:fixed;bottom:30px;right:30px;box-shadow:0 4px 20px #0ea5e966}.chatbot-toggle:hover{background:var(--accent2);transform:scale(1.1)translateY(-4px)}.chatbot-toggle.open{background:var(--surface);border:1px solid var(--border);color:var(--text);transform:scale(.9)}.chatbot-window{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:9998;opacity:0;pointer-events:none;transform-origin:100% 100%;background:#111827f2;border:1px solid #0ea5e933;border-radius:20px;flex-direction:column;width:350px;height:500px;max-height:calc(100vh - 120px);transition:opacity .4s,transform .4s cubic-bezier(.34,1.56,.64,1);display:flex;position:fixed;bottom:100px;right:30px;overflow:hidden;transform:translateY(20px)scale(.95);box-shadow:0 20px 40px #00000080,0 0 40px #0ea5e91a}.chatbot-window.open{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.chatbot-header{background:#0ea5e91a;border-bottom:1px solid #0ea5e933;justify-content:space-between;align-items:center;padding:1.2rem;display:flex}.chatbot-header-info{align-items:center;gap:.8rem;display:flex}.chatbot-avatar{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.chatbot-header h4{margin-bottom:.1rem;font-family:Inter,sans-serif;font-size:.95rem}.chatbot-header span{color:#22c55e;align-items:center;gap:.3rem;font-size:.75rem;display:flex}.chatbot-header span:before{content:"";background:#22c55e;border-radius:50%;width:6px;height:6px}.chatbot-close{color:var(--muted);cursor:pointer;background:0 0;border:none;transition:color .2s}.chatbot-close:hover{color:var(--text)}.chatbot-messages{flex-direction:column;flex:1;gap:1rem;padding:1.2rem;display:flex;overflow-y:auto}.chat-bubble-wrap{width:100%;display:flex}.chat-bubble-wrap.ai{justify-content:flex-start}.chat-bubble-wrap.user{justify-content:flex-end}.chat-bubble{border-radius:16px;max-width:80%;padding:.8rem 1rem;font-size:.85rem;line-height:1.4}.chat-bubble-wrap.ai .chat-bubble{background:var(--card);border:1px solid var(--border);border-bottom-left-radius:4px}.chat-bubble-wrap.user .chat-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.chatbot-input-area{border-top:1px solid var(--border);background:var(--surface);gap:.8rem;padding:1rem;display:flex}.chatbot-input-area input{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:100px;outline:none;flex:1;padding:.8rem 1rem;font-size:.85rem;transition:border-color .2s}.chatbot-input-area input:focus{border-color:var(--accent)}.chatbot-input-area button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;transition:transform .2s;display:flex}.chatbot-input-area button:disabled{background:var(--card);color:var(--muted);cursor:not-allowed}.chatbot-input-area button:not(:disabled):hover{transform:scale(1.1)}.chat-bubble.typing{align-items:center;gap:.3rem;padding:1rem;display:flex}.chat-bubble.typing .dot{background:var(--muted);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite both typingBounce}.chat-bubble.typing .dot:first-child{animation-delay:-.32s}.chat-bubble.typing .dot:nth-child(2){animation-delay:-.16s}@keyframes typingBounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.chatbot-quick-replies{flex-wrap:wrap;gap:.5rem;padding:0 1rem .8rem;display:flex}.quick-reply-btn{color:var(--accent);cursor:pointer;background:#0ea5e91a;border:1px solid #0ea5e94d;border-radius:100px;padding:.4rem .8rem;font-size:.75rem;transition:all .2s}.quick-reply-btn:hover{background:var(--accent);color:#fff;transform:translateY(-2px)}@media (width<=600px){.chatbot-window{width:calc(100vw - 40px);bottom:90px;right:20px}}
