:root{--bg: #0D1117;--bg-2: #161B22;--bg-3: #21262D;--border: rgba(48, 54, 61, .8);--border-2: rgba(48, 54, 61, .4);--linkedin: #0A66C2;--linkedin-2:#1E86E5;--github: #F0F6FC;--gh-green: #2DA44E;--gh-green-2:#3FB950;--blue: #1F6FEB;--blue-2:#388BFD;--teal: #26A7A7;--text: #F0F6FC;--text-2: #8B949E;--text-3: #484F58;--grad-hero: linear-gradient(135deg, #1F6FEB, #0A66C2, #2DA44E);--grad-blue: linear-gradient(135deg, #1F6FEB, #388BFD);--grad-green: linear-gradient(135deg, #2DA44E, #3FB950);--grad-surface: linear-gradient(145deg, rgba(31,111,235,.05) 0%, rgba(45,164,78,.03) 100%)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Outfit,Inter,system-ui,sans-serif;background-color:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden;line-height:1.6}.container{max-width:1280px;margin:0 auto;padding:0 2.5rem}.section{padding:clamp(4rem,8vw,6rem) 0}.section-eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-size:clamp(.7rem,2vw,.78rem);font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--blue-2);margin-bottom:1.25rem}.section-eyebrow:before{content:"";display:block;width:clamp(16px,4vw,24px);height:2px;background:var(--grad-blue);border-radius:2px}.section-title{font-size:clamp(2.2rem,8vw,4rem);font-weight:900;letter-spacing:-.04em;line-height:1.1;background:var(--grad-blue);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:clamp(2.5rem,6vw,5rem)}.tech-tag{padding:.35rem .85rem;border-radius:6px;font-size:.78rem;font-weight:700;letter-spacing:.03em;background:#1f6feb1a;color:var(--blue-2);border:1px solid rgba(31,111,235,.2)}.card-surface{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;transition:border-color .3s ease}.card-surface:hover{border-color:#1f6feb59}.btn-primary{display:inline-flex;align-items:center;gap:.6rem;background:var(--grad-green);color:#fff;padding:.85rem 2rem;border-radius:8px;text-decoration:none;font-weight:700;font-size:.95rem;transition:all .3s ease;box-shadow:0 4px 20px #2da44e59}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px #2da44e80}.btn-secondary{display:inline-flex;align-items:center;gap:.6rem;background:var(--bg-2);color:var(--text);padding:.85rem 2rem;border-radius:8px;text-decoration:none;font-weight:700;font-size:.95rem;border:1px solid var(--border);transition:all .3s ease}.btn-secondary:hover{border-color:#1f6feb80;background:var(--bg-3);transform:translateY(-2px)}.fade-in{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.fade-in.visible{opacity:1;transform:translateY(0)}@media(max-width:1024px){.container{padding:0 2rem}}@media(max-width:768px){.container{padding:0 1.5rem}body{font-size:.95rem}}@media(max-width:480px){.container{padding:0 1.25rem}}.bg-animation{position:fixed;inset:0;z-index:-2;overflow:hidden;pointer-events:none}.bg-animation:before{content:"";position:absolute;width:800px;height:800px;top:-300px;left:-200px;background:radial-gradient(circle,rgba(31,111,235,.14) 0%,transparent 65%);border-radius:50%;animation:orb1 22s ease-in-out infinite alternate}.bg-animation:after{content:"";position:absolute;width:600px;height:600px;bottom:-150px;right:-100px;background:radial-gradient(circle,rgba(45,164,78,.1) 0%,transparent 65%);border-radius:50%;animation:orb2 18s ease-in-out infinite alternate}.bg-dot-grid{position:fixed;inset:0;z-index:-1;background-image:radial-gradient(rgba(139,148,158,.07) 1px,transparent 1px);background-size:40px 40px;pointer-events:none}@keyframes orb1{0%{transform:translate(0) scale(1)}to{transform:translate(60px,50px) scale(1.15)}}@keyframes orb2{0%{transform:translate(0) scale(1)}to{transform:translate(-50px,-70px) scale(1.1)}}.navbar{position:fixed;top:1.5rem;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:2rem;padding:.75rem 2rem;background:#0d1117cc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:50px;z-index:1000;transition:all .3s ease}.navbar-logo{display:flex;align-items:center;gap:.75rem;cursor:pointer}.navbar-logo img{height:32px;width:auto}.navbar-logo span{font-weight:800;font-size:1rem;letter-spacing:-.02em;color:var(--text)}.navbar.scrolled{top:.75rem;background:#0d1117f5;border-color:#1f6feb40;box-shadow:0 8px 32px #00000080}.navbar ul{display:flex;gap:.5rem;list-style:none}.navbar a{display:inline-block;color:var(--text-2);text-decoration:none;font-size:.88rem;font-weight:600;padding:.35rem .85rem;border-radius:6px;cursor:pointer;transition:all .25s ease;letter-spacing:.02em}.navbar a:hover{color:var(--text);background:var(--bg-3)}.navbar a.active{color:var(--blue-2);background:#1f6feb1a}@media(max-width:768px){.navbar{top:1rem;padding:.5rem 1.25rem;gap:1rem;width:clamp(280px,90%,600px);justify-content:center}.navbar-logo span{display:none}.navbar ul{gap:.25rem}.navbar a{font-size:.75rem;padding:.35rem .6rem}}@media(max-width:480px){.navbar{gap:.5rem;padding:.4rem 1rem}.navbar a{font-size:.7rem;padding:.3rem .5rem}}.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding-top:6rem}.hero-content{max-width:860px;margin:0 auto}.hero-badge{display:inline-flex;align-items:center;gap:.5rem;background:#2da44e14;border:1px solid rgba(45,164,78,.25);border-radius:6px;padding:.45rem 1rem;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gh-green-2);margin-bottom:2.5rem}.hero-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--gh-green);animation:blink 2.5s ease-in-out infinite;box-shadow:0 0 6px var(--gh-green)}@keyframes blink{0%,to{opacity:1;box-shadow:0 0 6px var(--gh-green)}50%{opacity:.4;box-shadow:none}}.hero-title{font-size:clamp(4.5rem,12vw,9.5rem);font-weight:950;line-height:.86;letter-spacing:-.06em;margin-bottom:2.5rem}.hero-title .line-1{display:block;color:var(--github)}.hero-title .line-2{display:block;background:var(--grad-hero);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-desc{max-width:520px;margin:0 auto 3.5rem;color:var(--text-2);font-size:1.12rem;line-height:1.75}.hero-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.hero-socials{display:flex;justify-content:center;gap:.75rem;margin-top:3rem}.hero-social-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.1rem;border-radius:6px;font-weight:700;font-size:.82rem;text-decoration:none;border:1px solid;transition:all .3s ease;letter-spacing:.04em}.hero-social-pill.github{color:#f0f6fc;background:#24292f99;border-color:#f0f6fc26}.hero-social-pill.github:hover{background:#24292f;border-color:#f0f6fc59;transform:translateY(-2px)}.hero-social-pill.linkedin{color:#70b5f9;background:#0a66c21a;border-color:#0a66c24d}.hero-social-pill.linkedin:hover{background:#0a66c233;border-color:#0a66c299;transform:translateY(-2px)}.flutter-icon{display:none}@media(max-width:900px){.hero-title{font-size:clamp(3.8rem,14vw,7rem)}}@media(max-width:600px){.hero{padding-top:5rem}.hero-badge{margin-bottom:1.5rem}.hero-title{font-size:clamp(3rem,16vw,5rem);margin-bottom:2rem}.hero-desc{font-size:1rem;margin-bottom:2.5rem;padding:0 1rem}.hero-actions{flex-direction:column;align-items:stretch;padding:0 2rem}.hero-socials{margin-top:2rem;gap:.5rem;flex-wrap:wrap}}@media(max-width:400px){.hero-title{font-size:2.8rem}.hero-actions{padding:0 1rem}}.about-grid{display:grid;grid-template-columns:300px 1fr;gap:4rem;align-items:start}.profile-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2.5rem 2rem;text-align:center;display:flex;flex-direction:column;align-items:center;transition:border-color .3s ease}.profile-card:hover{border-color:#1f6feb4d}.profile-image-container{position:relative;margin-bottom:1.5rem}.profile-image{width:140px;height:140px;border-radius:50%;overflow:hidden;border:2px solid rgba(31,111,235,.4);box-shadow:0 0 0 4px #1f6feb14,0 12px 30px #0009}.profile-image img{width:100%;height:100%;object-fit:cover}.profile-ring{display:none}.profile-name{font-size:1.25rem;font-weight:800;margin-bottom:.35rem}.profile-title{color:var(--blue-2);font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:1.5rem}.profile-social{display:flex;gap:.6rem}.profile-social a{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.05rem;text-decoration:none;border:1px solid var(--border);transition:all .3s ease;color:var(--text-2);background:var(--bg-3)}.profile-social a[title=GitHub]:hover{background:#24292f;color:#f0f6fc;border-color:#f0f6fc40;transform:translateY(-2px)}.profile-social a[title=LinkedIn]:hover{background:#0a66c233;color:#70b5f9;border-color:#0a66c266;transform:translateY(-2px)}.journey-card{padding:2.5rem;background:var(--bg-2);border:1px solid var(--border);border-radius:12px}.journey-card h3{font-size:1.75rem;font-weight:900;letter-spacing:-.04em;margin-bottom:2rem;background:var(--grad-blue);-webkit-background-clip:text;background-clip:text;color:transparent}.journey-card p{color:var(--text-2);font-size:1rem;margin-bottom:1.25rem;line-height:1.8;padding-left:1rem;border-left:2px solid rgba(31,111,235,.25)}@media(max-width:900px){.about-grid{gap:2.5rem}}@media(max-width:768px){.about-grid{grid-template-columns:1fr}.profile-card{padding:2rem 1.5rem}.journey-card{padding:2rem}.journey-card h3{font-size:1.5rem}}@media(max-width:480px){.profile-card{padding:1.75rem 1rem}.journey-card{padding:1.5rem}.journey-card h3{font-size:1.35rem;margin-bottom:1.5rem}.journey-card p{font-size:.95rem;padding-left:.75rem}}.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:12px;overflow:hidden}.tech-card{display:flex;align-items:flex-start;gap:1.25rem;padding:1.75rem;background:var(--bg-2);text-align:left;transition:background .3s ease;position:relative}.tech-card:hover{background:var(--bg-3)}.tech-card:after{content:"";position:absolute;bottom:0;left:1.75rem;right:1.75rem;height:1px;background:var(--border)}.tech-icon{width:44px;height:44px;flex-shrink:0;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;background:var(--bg-3);border:1px solid var(--border);transition:all .3s ease}.tech-card:hover .tech-icon{background:#1f6feb1a;border-color:#1f6feb4d}.tech-card h3{font-size:.95rem;font-weight:700;margin-bottom:.35rem;color:var(--text)}.tech-card p{color:var(--text-2);font-size:.88rem;line-height:1.65}@media(max-width:900px){.tech-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}@media(max-width:550px){.tech-grid{grid-template-columns:1fr}.tech-card{padding:1.5rem;gap:1rem}.tech-icon{width:38px;height:38px;font-size:1.2rem}.tech-card h3{font-size:.9rem}.tech-card p{font-size:.85rem}}.projects-list{display:flex;flex-direction:column;gap:8rem}#projects .container{max-width:1600px}.project-row{display:flex;flex-direction:column;gap:2.5rem;align-items:flex-start;max-width:1100px;margin:0 auto}.project-row__image{width:100%}.project-row__image-wrapper{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:16/9;background:var(--bg-2);border:1px solid var(--border);box-shadow:0 40px 80px #0009;transition:all .6s cubic-bezier(.16,1,.3,1);width:100%}.project-row__image-wrapper:hover{border-color:#1f6feb80;box-shadow:0 60px 120px #000000b3,0 0 0 1px #1f6feb33;transform:translateY(-8px)}.project-row__image-wrapper img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.16,1,.3,1),filter .6s ease}.project-row__image-wrapper:hover img{transform:scale(1.04);filter:brightness(.4)}.project-row__image-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;z-index:5;transition:opacity .5s ease}.project-row__image-wrapper:hover .project-row__image-overlay{opacity:1}.project-row__github-btn{display:inline-flex;align-items:center;gap:.75rem;background:#24292f;color:#f0f6fc;padding:1rem 2rem;border-radius:10px;font-weight:700;font-size:1rem;text-decoration:none;border:1px solid rgba(240,246,252,.15);transform:translateY(20px);transition:all .5s cubic-bezier(.16,1,.3,1);box-shadow:0 10px 30px #00000080}.project-row__image-wrapper:hover .project-row__github-btn{transform:translateY(0)}.project-row__github-btn:hover{background:#30363d;border-color:#f0f6fc4d}.project-row__info{display:flex;flex-direction:column;gap:1.5rem;width:100%;padding:0 1rem}.project-row__num{font-size:4rem;font-weight:900;letter-spacing:-.06em;line-height:1;color:#1f6feb26;margin-bottom:-1rem}.project-row__title{font-size:clamp(2.2rem,4vw,3.2rem);font-weight:900;letter-spacing:-.04em;line-height:1.1;color:var(--text)}.project-row__desc{max-width:800px;color:var(--text-2);font-size:1.1rem;line-height:1.8;border-left:2px solid var(--border);padding-left:1.5rem}.project-row__tags{display:flex;flex-wrap:wrap;gap:.75rem}.tech-tag{padding:.45rem 1rem;border-radius:8px;font-size:.82rem;font-weight:700;letter-spacing:.04em;background:#1f6feb14;color:var(--blue-2);border:1px solid rgba(31,111,235,.2)}.project-row__link{display:inline-flex;align-items:center;gap:.6rem;color:var(--blue-2);text-decoration:none;font-weight:800;font-size:1rem;width:fit-content;transition:gap .3s ease;margin-top:.5rem}.project-row__link:hover{gap:1rem}.project-row__link .arrow{transition:transform .3s ease}.project-row__link:hover .arrow{transform:translate(6px)}@media(max-width:1024px){.projects-list{gap:6rem}.project-row{max-width:900px}}@media(max-width:768px){.project-row{gap:2rem}.projects-list{gap:5rem}.project-row__image-wrapper{border-radius:12px}.project-row__num{font-size:3rem}}@media(max-width:480px){.projects-list{gap:4rem}.project-row{gap:1.5rem}.project-row__info{padding:0 .5rem;gap:1rem}.project-row__title{font-size:1.8rem}.project-row__desc{font-size:.95rem;padding-left:1rem}.project-row__tags{gap:.5rem}.tech-tag{padding:.35rem .75rem;font-size:.75rem}}.cert-modal{position:fixed;inset:0;background:#010409eb;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);display:flex;align-items:center;justify-content:center;z-index:2000}.cert-modal-close{position:fixed;top:1.5rem;right:2rem;font-size:2rem;color:var(--text-2);cursor:pointer;line-height:1;z-index:2001;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);transition:all .2s ease}.cert-modal-close:hover{color:var(--text);border-color:var(--border-2);background:var(--bg-3)}.cert-modal-content{max-width:90vw;max-height:90vh;border:1px solid var(--border);box-shadow:0 40px 80px #000c;border-radius:12px}.certificates-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;margin-bottom:5rem}.certificate-card{padding:2rem;background:var(--bg-2);border:1px solid var(--border);border-radius:12px;text-align:left;transition:all .3s ease;display:flex;flex-direction:column;gap:.75rem;position:relative;overflow:hidden}.certificate-card:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--grad-blue);border-radius:0 2px 2px 0;transform:scaleY(0);transition:transform .35s ease;transform-origin:bottom}.certificate-card:hover{border-color:#1f6feb4d;transform:translate(4px)}.certificate-card:hover:before{transform:scaleY(1)}.cert-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;background:#1f6feb14;border:1px solid rgba(31,111,235,.2);border-radius:10px;flex-shrink:0}.certificate-card h3{font-size:1.05rem;font-weight:800;color:var(--text)}.certificate-card .issuer{color:var(--blue-2);font-size:.82rem;font-weight:700;letter-spacing:.04em}.certificate-card .date{color:var(--text-3);font-size:.8rem}.view-cert-btn{display:inline-flex;align-items:center;gap:.4rem;background:transparent;border:1px solid var(--border);color:var(--text-2);padding:.5rem 1rem;border-radius:6px;font-weight:700;font-size:.82rem;cursor:pointer;transition:all .25s ease;width:fit-content;margin-top:.25rem}.view-cert-btn:hover{background:#1f6feb1a;border-color:#1f6feb66;color:var(--blue-2);transform:translate(2px)}.section-subtitle{color:var(--text-2);text-align:center;font-size:1rem;margin-top:-4rem;margin-bottom:4rem}.skills-showcase{margin-top:4rem}.skills-showcase h3{text-align:center;font-size:.82rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-bottom:1.5rem}.skills-slider{overflow:hidden;position:relative;padding:.75rem 0}.skills-slider:before,.skills-slider:after{content:"";position:absolute;top:0;width:80px;height:100%;z-index:2;pointer-events:none}.skills-slider:before{left:0;background:linear-gradient(to right,var(--bg),transparent)}.skills-slider:after{right:0;background:linear-gradient(to left,var(--bg),transparent)}.skills-track{display:flex;gap:.6rem;animation:scrolling 40s linear infinite;width:max-content}.skill-badge{padding:.4rem 1rem;border-radius:6px;background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);font-size:.82rem;font-weight:600;white-space:nowrap;letter-spacing:.02em}@keyframes scrolling{0%{transform:translate(0)}to{transform:translate(-50%)}}.contact-content{max-width:700px;margin:0 auto;text-align:center}.contact-heading{font-size:clamp(2.8rem,8vw,4.5rem);font-weight:900;letter-spacing:-.04em;line-height:1.1;color:var(--text);margin-bottom:1.5rem}.contact-heading-accent{background:var(--grad-hero);-webkit-background-clip:text;background-clip:text;color:transparent}.contact-subtext{color:var(--text-2);font-size:1.05rem;line-height:1.75;margin-bottom:3rem;max-width:580px;margin-left:auto;margin-right:auto}.contact-form{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:2.5rem;text-align:left}.form-group{display:flex;flex-direction:column;gap:.6rem}.form-group label{font-size:.9rem;font-weight:700;color:var(--text);letter-spacing:.02em}.form-group input,.form-group textarea{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:.85rem 1.25rem;color:var(--text);font-size:.95rem;font-family:inherit;transition:border-color .3s ease,box-shadow .3s ease;outline:none;resize:none}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-3)}.form-group input:focus,.form-group textarea:focus{border-color:#1f6feb80;box-shadow:0 0 0 3px #1f6feb1a}.contact-send-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.75rem;background:var(--grad-green);color:#fff;padding:1rem 2rem;border-radius:10px;border:none;font-weight:800;font-size:1.05rem;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 20px #2da44e59;margin-top:.5rem}.contact-send-btn:hover{transform:translateY(-2px);box-shadow:0 8px 32px #2da44e80}.contact-social-row{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}.social-btn{display:inline-flex;align-items:center;gap:.6rem;padding:.7rem 1.5rem;border-radius:10px;font-weight:700;font-size:.88rem;text-decoration:none;transition:all .3s ease;border:1px solid transparent}.email-btn{background:#e8441a;color:#fff;box-shadow:0 4px 14px #e8441a59}.email-btn:hover{background:#d03d17;transform:translateY(-2px);box-shadow:0 6px 20px #e8441a80}.whatsapp-btn{background:#25d366;color:#fff;box-shadow:0 4px 14px #25d36659}.whatsapp-btn:hover{background:#1db954;transform:translateY(-2px);box-shadow:0 6px 20px #25d36680}.linkedin-btn{background:#0a66c2;color:#fff;box-shadow:0 4px 14px #0a66c259}.linkedin-btn:hover{background:#1e86e5;transform:translateY(-2px);box-shadow:0 6px 20px #0a66c280}.github-btn{background:#24292f;color:#f0f6fc;border-color:#f0f6fc1a;box-shadow:0 4px 14px #0000004d}.github-btn:hover{background:#30363d;transform:translateY(-2px);box-shadow:0 6px 20px #00000080}.contact-cv{margin-top:.5rem}.btn-cv{display:inline-flex;align-items:center;gap:.75rem;background:#0a66c2;color:#fff;padding:.85rem 2rem;border-radius:10px;text-decoration:none;font-weight:700;font-size:.95rem;border:1px solid rgba(255,255,255,.15);transition:all .3s ease;box-shadow:0 4px 16px #0a66c259}.btn-cv:hover{background:#1e86e5;border-color:#ffffff4d;transform:translateY(-2px);box-shadow:0 8px 24px #0a66c280}.btn-cv i{font-size:1rem;transition:transform .3s ease}.btn-cv:hover i{transform:translateY(2px)}@media(max-width:600px){.contact-social-row{gap:.65rem}.social-btn{padding:.6rem 1.1rem;font-size:.82rem}.contact-heading{font-size:2.8rem}}@media(max-width:400px){.contact-social-row{flex-direction:column;align-items:stretch}.social-btn{justify-content:center}}
