@font-face{font-family:Poppins;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/6c177e25b87fd9cd-s.woff2) format("woff2");unicode-range:u+0900-097f,u+1cd0-1cf9,u+200c-200d,u+20a8,u+20b9,u+20f0,u+25cc,u+a830-a839,u+a8e0-a8ff,u+11b00-11b09}@font-face{font-family:Poppins;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/6c9a125e97d835e1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Poppins;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/4c285fdca692ea22-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/034d78ad42e9620c-s.woff2) format("woff2");unicode-range:u+0900-097f,u+1cd0-1cf9,u+200c-200d,u+20a8,u+20b9,u+20f0,u+25cc,u+a830-a839,u+a8e0-a8ff,u+11b00-11b09}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/fe0777f1195381cb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/eafabf029ad39a43-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/29e7bbdce9332268-s.woff2) format("woff2");unicode-range:u+0900-097f,u+1cd0-1cf9,u+200c-200d,u+20a8,u+20b9,u+20f0,u+25cc,u+a830-a839,u+a8e0-a8ff,u+11b00-11b09}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c3bc380753a8436c-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/0484562807a97172-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/29a4aea02fdee119-s.woff2) format("woff2");unicode-range:u+0900-097f,u+1cd0-1cf9,u+200c-200d,u+20a8,u+20b9,u+20f0,u+25cc,u+a830-a839,u+a8e0-a8ff,u+11b00-11b09}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/a1386beebedccca4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/b957ea75a84b6ea7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Poppins Fallback;src:local("Arial");ascent-override:93.62%;descent-override:31.21%;line-gap-override:8.92%;size-adjust:112.16%}.__className_dee2b3{font-family:Poppins,Poppins Fallback;font-style:normal}:root{--light-primary-bg:#f9fafb;--light-secondary-bg:#f3f4f6;--light-text:#111827;--light-subtle-text:#4b5563;--light-accent-blue:#2563eb;--light-accent-violet:#7c3aed;--light-border:#e5e7eb;--dark-primary-bg:#0f172a;--dark-secondary-bg:#1f2937;--dark-text:#f9fafb;--dark-subtle-text:#9ca3af;--dark-accent-blue:#3b82f6;--dark-accent-violet:#a78bfa;--dark-border:#374151;--loader-bg:var(--dark-primary-bg);--tore-color-start:var(--dark-accent-blue);--tore-color-end:var(--dark-accent-violet);--halo-color:rgba(167,139,250,0.9);--tore-size:100px;--tore-thickness:10px;--tore-blur:20px;--center-cut:55%;--mask-edge:65%}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Poppins,sans-serif;line-height:1.7;transition:color .4s ease,background-color .4s ease;position:relative;min-height:100vh;overflow-x:hidden}body.light-mode{background-color:var(--light-primary-bg);color:var(--light-text)}body.dark-mode{background-color:var(--dark-primary-bg);color:var(--dark-text)}a{text-decoration:none}a:hover{scale:1.1;color:var(--dark-accent-blue)}.container{width:100%;margin:0 auto;padding:0 1.5rem}#particles-js,.background-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-2;pointer-events:none}.background-overlay{z-index:-1;opacity:.08;transition:opacity .4s ease}body.light-mode .background-overlay{background-image:linear-gradient(90deg,#ccc 1px,transparent 0),linear-gradient(180deg,#ccc 1px,transparent 0);background-size:20px 20px}body.dark-mode .background-overlay{background-image:linear-gradient(90deg,#444 1px,transparent 0),linear-gradient(180deg,#444 1px,transparent 0);background-size:20px 20px}h2{font-size:2.5rem;font-weight:700;margin-bottom:1rem}.subtitle,h2{text-align:center}.subtitle{font-size:1.1rem;font-weight:300;color:var(--light-subtle-text);margin-bottom:4rem}body.dark-mode .subtitle{color:var(--dark-subtle-text)}.section{padding:6rem 0}.alternate-bg{background-color:var(--light-secondary-bg);transition:background-color .4s ease}body.dark-mode .alternate-bg{background-color:var(--dark-secondary-bg)}.header{width:100%;position:sticky;top:0;z-index:1000;background-color:rgba(249,250,251,.95);backdrop-filter:blur(5px);padding:1.2rem 0;border-bottom:1px solid var(--light-border);transition:background-color .4s ease,border-color .4s ease}body.dark-mode .header{background-color:rgba(15,23,42,.95);border-bottom-color:var(--dark-border)}.header .container{width:100%;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}.logo{font-size:1.4rem;font-weight:700;text-decoration:none;color:inherit}.nav-controls{justify-content:space-between}.nav,.nav-controls{display:flex;align-items:center;gap:1.5rem}.nav{flex-wrap:wrap;justify-content:center}.nav-link{text-decoration:none;font-weight:600;color:var(--light-subtle-text);padding:.25rem .5rem;border-radius:6px;transition:all .3s ease}body.dark-mode .nav-link{color:var(--dark-subtle-text)}.nav-link.active,.nav-link:hover{color:var(--light-accent-blue)}body.dark-mode .nav-link.active,body.dark-mode .nav-link:hover{color:var(--dark-accent-blue)}.nav-link.active{border-bottom:2px solid var(--light-accent-blue)}body.dark-mode .nav-link.active{border-bottom-color:var(--dark-accent-blue)}.control-group{display:flex;gap:.5rem}.lang-select,.theme-toggle{background-color:var(--light-secondary-bg);border:1px solid var(--light-border);cursor:pointer;font-size:1.1rem;color:var(--light-text);padding:.5rem;border-radius:8px;transition:all .3s ease}body.dark-mode .lang-select,body.dark-mode .theme-toggle{color:var(--dark-text);background-color:var(--dark-primary-bg);border-color:var(--dark-border)}.lang-select{font-size:.9rem;min-width:60px}.cta-button{display:inline-block;padding:1rem 2.5rem;border-radius:9999px;font-weight:600;text-decoration:none;color:#fff;border:none;cursor:pointer;background:linear-gradient(45deg,var(--light-accent-blue),var(--light-accent-violet));box-shadow:0 5px 15px rgba(37,99,235,.3);transition:transform .3s ease,box-shadow .3s ease}body.dark-mode .cta-button{background:linear-gradient(45deg,var(--dark-accent-blue),var(--dark-accent-violet));box-shadow:0 5px 15px rgba(59,130,246,.3)}.cta-button:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(0,0,0,.2);scale:1.1}.hero-section{display:flex;align-items:center;justify-content:center;text-align:center;min-height:80vh}.hero-content h2{font-size:3rem;font-weight:700;letter-spacing:-2px;line-height:1.1;margin-bottom:1rem}.about-grid{display:flex;align-items:center;gap:4rem;text-align:left}.about-image{flex:0 0 400px;text-align:center}.about-image img,.about-image-loader{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:50%;border:5px solid var(--light-accent-blue);box-shadow:0 10px 30px rgba(0,0,0,.1);transition:border-color .4s ease}body.dark-mode .about-image img,body.dark-mode .about-image-loader{border-color:var(--dark-accent-blue)}.about-text{flex:1}.about-text p{font-size:1.1rem;margin-bottom:1.5rem;text-align:justify}.contact-info{gap:10%}.contact-info,.contact-info p{display:flex;flex-direction:column}.contact-info p{font-size:1rem;font-weight:600;color:var(--light-accent-blue);margin-bottom:.5rem;align-items:center}body.dark-mode .contact-info p{color:var(--dark-accent-blue)}.projects-grid{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem}.project-card{border:1px solid var(--light-border);border-radius:1rem;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease,border-color .4s ease}body.dark-mode .project-card{border-color:var(--dark-border)}.project-card:hover{transform:translateY(-5px);box-shadow:0 15px 30px rgba(0,0,0,.15)}.project-card img{width:100%;height:200px;object-fit:cover;display:block}.card-content{padding:1.5rem}.card-content h3{font-size:1.4rem;margin-bottom:.5rem;color:var(--light-accent-blue)}body.dark-mode .card-content h3{color:var(--dark-accent-blue)}.project-link{display:inline-flex;align-items:center;margin-top:1rem;text-decoration:none;font-weight:600;color:var(--light-accent-violet);transition:color .3s ease}body.dark-mode .project-link{color:var(--dark-accent-violet)}.project-link i{margin-left:.5rem;transition:transform .3s ease}.project-link:hover i{transform:translateX(5px)}.project-link.disabled{color:var(--light-subtle-text);cursor:default;opacity:.7}body.dark-mode .project-link.disabled{color:var(--dark-subtle-text)}.cv-layout{max-width:1100px;margin:0 auto}.contact-form{background:none;padding:2rem 0 0;max-width:600px;margin:0 auto 2rem}.form-group{gap:1rem;flex-wrap:wrap}.form-group input{flex:1 1 200px}.contact-input{padding:.8rem 1rem;border-radius:8px;background:var(--light-secondary-bg);font-size:1rem;margin-bottom:.5rem;transition:border-color .3s,background .3s;resize:vertical}body.dark-mode .contact-input{background:var(--dark-secondary-bg)}.contact-input:focus{background:#fff}body.dark-mode .contact-input:focus{border-color:var(--dark-accent-blue);background:var(--dark-primary-bg)}.status-message{padding:.8rem 1.2rem;border-radius:8px;display:none}.status-message.success{background:#d1fae5;border:1px solid #10b981;display:block}.status-message.error{background:#fee2e2;border:1px solid #ef4444;display:block}body.dark-mode .status-message.success{background:#064e3b;color:#d1fae5;border-color:#10b981}body.dark-mode .status-message.error{background:#7f1d1d;color:#fee2e2;border-color:#ef4444}.quick-contact-info{margin-top:2.5rem;background:var(--light-secondary-bg);border-radius:1rem;padding:1.5rem 2rem;box-shadow:0 2px 8px rgba(0,0,0,.03)}body.dark-mode .quick-contact-info{background:var(--dark-secondary-bg)}.quick-contact-info h3{font-size:1.2rem;font-weight:700;margin-bottom:.5rem}.quick-contact-info p{font-size:1rem;margin-bottom:.3rem;color:var(--light-accent-blue)}body.dark-mode .quick-contact-info p{color:var(--dark-accent-blue)}.download-cv-section{text-align:center;margin-bottom:4rem}.download-cv-section p{margin-bottom:1rem}.download-button{margin-top:2rem;padding:.8rem 2rem}.cv-grid{display:grid;grid-template-columns:2fr 1fr;gap:2rem;padding:2.5rem;border-radius:1rem}.cv-subtitle{font-size:1.6rem;font-weight:700;color:var(--light-accent-blue);margin-top:2rem;margin-bottom:1.5rem;border-bottom:2px solid var(--light-border);padding-bottom:.5rem}body.dark-mode .cv-subtitle{color:var(--dark-accent-blue);border-bottom-color:var(--dark-border)}.exp-item{margin-bottom:2rem}.exp-item h4{font-size:1.25rem;font-weight:600;margin-bottom:.25rem}.company-date{font-size:.95rem;color:var(--light-subtle-text);margin-bottom:.5rem}body.dark-mode .company-date{color:var(--dark-subtle-text)}.exp-summary{font-style:italic;margin-bottom:.75rem}.exp-missions{margin-left:20px;margin-bottom:1.5rem;list-style:disc}.skills-tags{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:2rem}.skill-tag{background-color:var(--light-accent-violet);color:white;padding:.4rem 1rem;border-radius:9999px;font-size:.9rem;font-weight:700}body.dark-mode .skill-tag{background-color:var(--dark-accent-violet)}.lang-list li{list-style:none;margin-bottom:.5rem;font-size:1rem}.lang-list-icon{color:var(--light-accent-blue);margin-right:.5rem}body.dark-mode .lang-list-icon{color:var(--dark-accent-blue)}.contact-form{max-width:50%;margin:0 auto 3rem;flex-direction:column}.contact-form,.form-group{display:flex;gap:1.5rem}.form-group input{flex:1}.contact-input{padding:1rem;border-radius:.5rem;border:1px solid var(--light-border);background-color:var(--light-primary-bg);color:var(--light-text);transition:border-color .3s ease,background-color .4s ease,color .4s ease;width:100%;font-family:inherit}body.dark-mode .contact-input{border-color:var(--dark-border);background-color:var(--dark-secondary-bg);color:var(--dark-text)}.contact-input:focus{outline:none;border-color:var(--light-accent-blue);box-shadow:0 0 0 3px rgba(37,99,235,.2)}.status-message{padding:1rem;border-radius:.5rem;margin-top:1rem;text-align:center;font-weight:600}.status-message.success{background-color:#d1fae5;color:#065f46}.status-message.error{background-color:#fee2e2;color:#991b1b}body.dark-mode .status-message.success{background-color:#064e3b;color:#a7f3d0}body.dark-mode .status-message.error{background-color:#7f1d1d;color:#fca5a5}.quick-contact-info{text-align:center;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--light-border)}body.dark-mode .quick-contact-info{border-top-color:var(--dark-border)}.quick-contact-info h3{font-size:1.4rem;margin-bottom:1.5rem}.quick-contact-info p{font-size:1.1rem;margin-bottom:.75rem;display:flex;flex-direction:column;align-items:center}.footer{padding:2rem 0;background-color:var(--light-secondary-bg);transition:background-color .4s ease,border-color .4s ease}body.dark-mode .footer{background-color:var(--dark-secondary-bg)}.footer{background:var(--light-secondary-bg);color:var(--light-subtle-text);padding:2rem 0 1rem;text-align:center;border-top:1px solid var(--light-border);margin-top:3rem}body.dark-mode .footer{background:var(--dark-secondary-bg);color:var(--dark-subtle-text);border-top-color:var(--dark-border)}.footer .container{display:flex;flex-direction:column;align-items:center;gap:1rem}.footer .social-links{display:flex;gap:1.2rem;margin-top:.5rem}.social-links a{color:var(--light-accent-blue);font-size:1.5rem;transition:color .3s}body.dark-mode .social-links a{color:var(--dark-accent-blue)}.social-links a:hover{color:var(--light-accent-violet)}body.dark-mode .social-links a:hover{color:var(--dark-accent-violet)}@media (max-width:1100px){.cv-grid{grid-template-columns:1fr;padding:1.5rem}.about-grid{flex-direction:column;gap:2rem}}@media (max-width:900px){.projects-grid{grid-template-columns:1fr}.header .container{justify-content:center;align-items:center}.header .container,.nav-controls{flex-direction:column}.cv-layout{max-width:98%}}@media (max-width:768px){.section{padding:3rem 0}.container{padding:0 .5rem}.header .container{justify-content:center;align-items:center}.nav-controls{flex-direction:column}.hero-content h1{font-size:2.2rem}.about-grid{gap:2rem}.about-image img,.about-image-loader{width:80vw;height:80vw}.cv-grid{padding:.5rem}.footer{padding:1.2rem 0 .7rem}.form-group{flex-direction:column;gap:1.5rem}.contact-form{max-width:98%}.quick-contact-info p{font-size:.9rem;margin-bottom:.75rem}}.page-loader-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;transition:opacity .5s ease-in-out,visibility .5s}.page-content-wrapper{transition:opacity .5s ease-in}.is-loading{opacity:1;visibility:visible;pointer-events:all}.is-loaded{pointer-events:none}.content-hidden,.is-loaded{opacity:0;visibility:hidden}.content-visible{opacity:1;visibility:visible}.light-mode{--loader-bg:var(--light-primary-bg);--tore-color-start:var(--light-accent-blue);--tore-color-end:var(--light-accent-violet);--halo-color:rgba(124,58,237,0.8)}.loader-container{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background-color:var(--loader-bg);transition:background-color .5s}.tore-spinner{position:relative;width:var(--tore-size);height:var(--tore-size);border-radius:50%;background:conic-gradient(var(--tore-color-start) 0deg,var(--tore-color-start) 90deg,var(--tore-color-end) 90deg,var(--tore-color-end) 180deg,rgba(0,0,0,.2) 180deg,rgba(0,0,0,.2) 270deg,var(--tore-color-start) 270deg,var(--tore-color-start) 1turn);mask:radial-gradient(circle at center,transparent var(--center-cut),black var(--mask-edge));-webkit-mask:radial-gradient(circle at center,transparent var(--center-cut),black var(--mask-edge));filter:blur(var(--tore-thickness));box-shadow:0 0 var(--tore-blur) var(--halo-color),0 0 calc(var(--tore-blur) * 1.5) rgba(255,255,255,.1);animation:rotate2D 1.8s linear infinite}@keyframes rotate2D{to{transform:rotate(1turn)}}