body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}:root{--background-color:#f4f6f4;--text-color:#1a1d1a;--primary-color:#4a5447;--secondary-color:#5b635a;--card-background:#fff;--shadow-color:#4a544714;--border-color:#e8ebe8;--accent-color:#6b7a65;--text-contrast:#121512;--link-hover:#3d463b;--soft-gradient:linear-gradient(120deg,#4a5447f2,#6b7a65f2);--primary-color-rgb:74,84,71;--theme-transition-timing:cubic-bezier(0.4,0,0.2,1);--theme-transition-duration:1s}body{background-attachment:fixed;background-color:#f4f6f4;background-color:var(--background-color);background-image:linear-gradient(120deg,#4a544708,#6b7a6508);color:#1a1d1a;color:var(--text-color);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6;transition:background-color 1s cubic-bezier(.4,0,.2,1);transition:background-color var(--theme-transition-duration) var(--theme-transition-timing)}body.theme-transition,body.theme-transition :not([class*=hero]){transition:background-color 1s cubic-bezier(.4,0,.2,1),color 1s cubic-bezier(.4,0,.2,1),border-color 1s cubic-bezier(.4,0,.2,1),box-shadow 1s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1)!important;transition:background-color var(--theme-transition-duration) var(--theme-transition-timing),color var(--theme-transition-duration) var(--theme-transition-timing),border-color var(--theme-transition-duration) var(--theme-transition-timing),box-shadow var(--theme-transition-duration) var(--theme-transition-timing),transform .3s var(--theme-transition-timing)!important}body.dark-mode{--background-color:#161716;--text-color:#ececec;--primary-color:#778472;--secondary-color:#a0a0a0;--card-background:#232423;--shadow-color:#00000047;--border-color:#303230;--accent-color:#94a28c;--text-contrast:#f0f0f0;--soft-gradient:linear-gradient(120deg,var(--primary-color),var(--accent-color));--primary-color-rgb:119,132,114;transition:all 1s cubic-bezier(.4,0,.2,1);transition:all var(--theme-transition-duration) var(--theme-transition-timing)}.App{background-color:#f4f6f4;background-color:var(--background-color);color:#1a1d1a;color:var(--text-color);display:flex;flex-direction:column;min-height:100vh;transition:background-color 1s cubic-bezier(.4,0,.2,1);transition:background-color var(--theme-transition-duration) var(--theme-transition-timing)}main{flex:1 1}section{margin:0 auto;max-width:1200px;padding:4rem 2rem}@media (max-width:768px){section{padding:2rem 1rem}}a{transition:color .2s ease}a:hover{color:#3d463b;color:var(--link-hover)}.header.scrolled{-webkit-backdrop-filter:blur(10px) saturate(180%);backdrop-filter:blur(10px) saturate(180%);background-color:#fff;background-color:var(--card-background);box-shadow:0 3px 20px #4a54471a;padding:.7rem 2rem}@media (max-width:768px){.header.scrolled{padding:.7rem 1rem}}.logo-container{display:inline-block;transition:all .3s ease}.logo-container.large,.logo-container.medium,.logo-container.small{width:auto}.logo-wrapper{align-items:center;display:flex;gap:10px}.logo-svg{height:auto;width:45px}.logo-svg,.logo-text{transition:all .3s ease}.logo-text{align-items:center;display:flex;font-family:Fira Code,Source Code Pro,monospace;font-size:1.5rem;font-weight:700;letter-spacing:0;position:relative}.scrolled .logo-text{font-size:1.3rem}.logo-text:before{content:"<";margin-right:1px}.logo-text:after,.logo-text:before{color:var(--secondary-color);opacity:.8}.logo-text:after{content:"/>";margin-left:1px}.logo-text-main{color:var(--text-color);margin-right:0}.logo-text-dot{color:var(--primary-color);margin:0;position:relative}.logo-text-dev{color:var(--secondary-color);margin-left:0}.logo-svg circle,.logo-svg path,.logo-svg polygon,.logo-svg rect{fill:var(--text-color)}.logo-svg .primary-element{fill:var(--primary-color)}.logo-svg .accent-element{fill:#a3b18a;fill:var(--accent-color,#a3b18a)}.logo-container:hover .logo-svg{transform:rotate(-5deg) scale(1.05);transition:transform .4s cubic-bezier(.175,.885,.32,1.275)}.logo-container:hover .logo-text-dev,.logo-container:hover .logo-text-main{transform:translateY(-2px);transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.logo-container:hover .logo-text-dot{color:#a3b18a;color:var(--accent-color,#a3b18a);transform:scale(1.15);transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.logo-container:hover .logo-text:after,.logo-container:hover .logo-text:before{color:var(--primary-color);opacity:1;transform:translateY(-2px);transition:all .3s cubic-bezier(.175,.885,.32,1.275)}@keyframes logoEnter{0%{opacity:0;transform:translateY(10px)}60%{transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.logo-wrapper>*{animation:logoEnter .5s forwards}.logo-text-main{animation-delay:.1s}.logo-text-dot{animation-delay:.2s}.logo-text-dev{animation-delay:.3s}.logo-container:active .logo-svg{transform:scale(.9);transition:transform .2s ease}.logo-container:active .logo-text{transform:scale(.95);transition:transform .2s ease}@keyframes pulseDot{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.logo-text-dot{animation:pulseDot 3s ease-in-out infinite}.logo-svg,.logo-text,.logo-text-dev,.logo-text-dot,.logo-text-main{transition:all .3s ease}.logo-container.small .logo-svg{width:34px}.logo-container.large .logo-svg{width:54px}.logo-container.small .logo-text{font-size:1.3rem}.logo-container.large .logo-text{font-size:1.7rem}@media (max-width:480px){.logo-svg{width:32px}.logo-text{font-size:1.2rem}.scrolled .logo-text{font-size:1.1rem}.logo-wrapper{gap:6px}}.header{background-color:var(--card-background);border-bottom:1px solid var(--border-color);box-shadow:0 2px 15px var(--shadow-color);padding:1rem 2rem;position:sticky;top:0;transition:all .5s ease;z-index:1000}.header,.header-inner{align-items:center;display:flex;justify-content:space-between}.header-inner{width:100%}.logo,.logo a{align-items:center;display:flex}.logo a{text-decoration:none}.logo h2{color:var(--text-contrast);display:inline-block;font-weight:700;margin:0;position:relative;transition:color .5s ease}.logo h2:after{background-color:var(--primary-color);bottom:-3px;content:"";height:3px;left:0;position:absolute;transition:width .3s ease;width:40%}.logo h2:hover:after{width:100%}.nav-list{display:flex;list-style:none;margin:0;padding:0}.nav-item{margin-left:2rem}.nav-item a{color:var(--text-color);font-weight:500;padding:.5rem .2rem;position:relative;text-decoration:none;transition:all .3s}.nav-item a:after{background-color:var(--primary-color);bottom:-2px;content:"";height:2px;left:0;position:absolute;transform:none;transition:width .3s ease;width:0}.nav-item a.active:after,.nav-item a:hover:after{width:100%}.nav-item a.active{color:var(--primary-color);font-weight:600}.nav-item a:hover{color:var(--accent-color)}.menu-toggle{cursor:pointer;display:none;flex-direction:column;height:21px;justify-content:space-between;width:30px}.menu-toggle span{background-color:var(--primary-color);border-radius:3px;height:3px;transition:all .3s;width:100%}.menu-toggle.open span:first-child{transform:translateY(9px) rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}@media (max-width:768px){.menu-toggle{display:flex}.nav{background-color:var(--card-background);border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color);box-shadow:0 5px 15px var(--shadow-color);left:0;opacity:0;padding:1rem 0;position:absolute;top:100%;transform:translateY(-150%);transition:transform .3s ease-in-out,opacity .3s ease-in-out;visibility:hidden;width:100%;z-index:999}.nav.open{opacity:1;transform:translateY(0);visibility:visible}.nav-list{align-items:center;flex-direction:column}.nav-item{margin:1rem 0;opacity:0;text-align:center;transform:translateY(-20px);transition:all .3s ease-in-out;width:100%}.nav-item a{display:block;padding:.7rem 1rem;width:100%}.nav-item a:hover{background-color:rgba(var(--primary-color-rgb),.05)}.nav.open .nav-item{opacity:1;transform:translateY(0)}.nav.open .nav-item:first-child{transition-delay:.1s}.nav.open .nav-item:nth-child(2){transition-delay:.2s}.nav.open .nav-item:nth-child(3){transition-delay:.3s}.nav.open .nav-item:nth-child(4){transition-delay:.4s}.nav.open .nav-item:nth-child(5){transition-delay:.5s}}.hero-container{align-items:center;display:flex;justify-content:space-between;min-height:calc(100vh - 80px);overflow:hidden;padding:0 2rem;position:relative}.hero-container:before{background:linear-gradient(45deg,var(--primary-color),#0000);height:500px;left:-250px;top:-250px;width:500px}.hero-container:after,.hero-container:before{border-radius:50%;content:"";filter:blur(80px);opacity:.15;position:absolute;z-index:-1}.hero-container:after{background:linear-gradient(45deg,#0000,var(--primary-color));bottom:-200px;height:400px;right:-200px;width:400px}.hero-content{flex:1 1;max-width:600px}.hero-content h1{color:var(--text-color);font-size:3rem;line-height:1.2}.hero-content h1,.hero-content h2{margin-bottom:1rem;transition:color .5s ease}.hero-content h2{color:var(--primary-color);font-size:1.8rem}.hero-content p{color:var(--secondary-color);font-size:1.2rem;margin-bottom:2rem;transition:color .5s ease}.highlight{color:var(--primary-color);transition:color .5s ease}.hero-buttons{display:flex;flex-wrap:wrap;gap:1.2rem}.btn{align-items:center;background:#0000;border:2px solid var(--primary-color);border-radius:50px;color:var(--text-color);display:inline-flex;font-weight:600;gap:.5rem;justify-content:center;max-width:none;min-width:auto;padding:.8rem 1.5rem;text-decoration:none;transition:all .3s ease;white-space:nowrap}.btn i{font-size:1.1rem;transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.btn-primary:hover i{transform:translateY(-2px) rotate(10deg)}.btn-secondary:hover i{transform:rotate(-10deg) scale(1.1)}.btn-cv:hover i{transform:translateY(-2px) rotate(15deg)}.btn-primary{background:var(--primary-color);border:none;box-shadow:0 4px 15px rgba(var(--primary-color-rgb),.15);color:#fff}.btn-primary:hover{background:color-mix(in srgb,var(--primary-color) 85%,#000);box-shadow:0 6px 20px rgba(var(--primary-color-rgb),.2);color:#fff;transform:translateY(-2px)}.btn-cv:hover,.btn-secondary:hover{background:var(--primary-color);color:#fff;transform:translateY(-2px)}.btn-cv{align-items:center;border-color:var(--primary-color);display:flex;gap:.5rem}.btn:before{display:none}.hero-image{align-items:center;display:flex;flex:1 1;justify-content:center}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-20px)}to{transform:translateY(0)}}.profile-image{animation:float 6s ease-in-out infinite;border:5px solid var(--border-color);border-radius:50%;box-shadow:0 10px 30px var(--shadow-color);cursor:pointer;height:250px;object-fit:cover;transition:all .5s ease;width:250px}.profile-image.avatar{filter:grayscale(20%)}.profile-image.professional{filter:none}.profile-image:hover{animation:none;box-shadow:0 15px 35px #7a5bc533;transform:scale(1.05)}@media (max-width:768px){.hero-container{flex-direction:column-reverse;padding:2rem 1rem;text-align:center}.hero-content{margin-top:2rem}.hero-content h1{font-size:2.5rem}.hero-buttons{gap:.8rem;justify-content:center}.btn{font-size:.9rem;max-width:none;min-width:120px;padding:.7rem 1.2rem;width:auto}.profile-image{height:200px;width:200px}}@media (max-width:480px){.hero-buttons{align-items:center;flex-direction:column;width:100%}.btn{max-width:200px;width:100%}}.about-container{margin:0 auto;max-width:1200px;opacity:0;padding:4rem 2rem;transform:translateY(30px);transition:all .8s ease}.about-container.fade-in{opacity:1;transform:translateY(0)}.section-title:after{transition:background-color .5s ease,width .3s ease;width:100px}.section-title:hover:after{width:150px}.about-cards{grid-gap:1.75rem;display:grid;gap:1.75rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:3rem;margin-top:1.5rem;padding:.5rem}@media (min-width:992px){.about-cards{gap:2rem;grid-template-columns:repeat(2,1fr);margin-left:auto;margin-right:auto;max-width:90%}}.about-card{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 20px var(--shadow-color);display:flex;flex-direction:column;height:auto;justify-content:flex-start;opacity:0;overflow:hidden;padding:1.75rem 1.5rem;position:relative;text-align:center;transform:translateY(20px);transition:all .5s ease}.about-card.fade-in{opacity:1;transform:translateY(0)}.about-card:nth-child(2n){background-color:var(--card-background);box-shadow:0 10px 30px #0000000d}.about-card:nth-child(odd){background-color:var(--card-background);box-shadow:0 10px 30px #00000014}.about-card:hover{border-color:var(--primary-color);box-shadow:0 15px 40px var(--shadow-color);transform:translateY(-10px)}.about-card:before{background:linear-gradient(90deg,#0000,var(--primary-color) 50%,#0000);border-radius:4px 4px 0 0;height:4px;transition:opacity .4s ease}.about-card:after,.about-card:before{content:"";left:0;opacity:0;position:absolute;right:0;top:0}.about-card:after{background:radial-gradient(circle at center,rgba(var(--primary-color-rgb),.05) 0,#0000 70%);bottom:0;transition:opacity .5s ease;z-index:-1}.about-card:hover:after,.about-card:hover:before{opacity:1}.card-icon{align-items:center;background-color:var(--card-background);border:1px solid var(--border-color);border-radius:14px;color:var(--primary-color);display:flex;font-size:1.8rem;height:55px;justify-content:center;margin:0 auto 1.25rem;overflow:hidden;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);width:55px}.card-icon:after{background:radial-gradient(circle at center,var(--primary-color) 0,#0000 70%);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.about-card:hover .card-icon{animation:none;background-color:rgba(var(--primary-color-rgb),.1);border-color:var(--primary-color);transform:rotate(8deg) scale(1.1)}.about-card:hover .card-icon:after{opacity:.2}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(var(--primary-color-rgb),.4)}70%{box-shadow:0 0 0 10px rgba(var(--primary-color-rgb),0)}to{box-shadow:0 0 0 0 rgba(var(--primary-color-rgb),0)}}.about-card h3{color:var(--text-color);font-weight:600;margin-bottom:1rem;padding-bottom:.8rem;position:relative;text-align:center;transition:color .5s ease}.about-card h3:after{background-color:var(--primary-color);border-radius:2px;bottom:0;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);transition:all .5s ease;width:50px}.about-card:hover h3:after{background-color:var(--primary-color);width:70px}.about-card p{color:var(--secondary-color);flex-grow:1;line-height:1.6;margin-bottom:.8rem;text-align:left;transition:color .5s ease}.about-card .highlight{color:var(--primary-color);display:inline-block;font-weight:500;position:relative;transition:color .5s ease}.about-card .highlight:after{background-color:rgba(var(--primary-color-rgb),.15);bottom:0;content:"";height:3px;left:0;position:absolute;transition:height .3s ease;width:100%;z-index:-1}.about-card:hover .highlight:after{height:50%}.interest-list{list-style-type:none;margin-top:.3rem;padding-left:.5rem;text-align:left}.interest-list li{color:var(--secondary-color);margin-bottom:.4rem;padding-left:1.2rem;position:relative;transition:transform .3s ease}.interest-list li:before{color:var(--primary-color);content:"•";font-weight:700;left:0;position:absolute;transition:transform .3s ease,color .3s ease}.interest-list li:hover{color:var(--text-color);transform:translateX(5px)}.interest-list li:hover:before{transform:scale(1.2)}.tech-stack{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-start;margin-top:.8rem}.tech-tag{background-color:rgba(var(--primary-color-rgb),.1);border-radius:15px;color:var(--primary-color);font-size:.85rem;font-weight:500;padding:.3rem .8rem;transition:all .3s ease}.tech-tag:hover{background-color:var(--primary-color);color:#fff;transform:translateY(-2px)}@media (max-width:768px){.about-container{padding:3rem 1rem}.section-title{font-size:2rem}.about-cards{gap:1.5rem;grid-template-columns:1fr}.card-icon{font-size:1.5rem;height:50px;width:50px}.about-card h3{font-size:1.3rem}.about-card p{font-size:.95rem;line-height:1.7}.tech-tag{font-size:.8rem}}.projects-container{margin:0 auto;max-width:1200px;opacity:0;padding:5rem 2rem;position:relative;transform:translateY(30px);transition:all .8s ease}.projects-container.fade-in{opacity:1;transform:translateY(0)}.projects-container:before{background:linear-gradient(90deg,#0000,var(--border-color),#0000);content:"";height:1px;left:50%;opacity:.6;position:absolute;top:0;transform:translateX(-50%);width:60%}.section-title{margin-bottom:3.5rem;transition:color .5s ease}.section-title:hover:after{width:140px}.projects-filter{display:flex;flex-wrap:wrap;gap:1.2rem;justify-content:center;margin-bottom:2rem;margin-top:1.5rem;padding:.5rem}.filter-btn{align-items:center;background-color:var(--card-background);border:1px solid var(--border-color);border-radius:30px;box-shadow:0 3px 10px var(--shadow-color);color:var(--secondary-color);cursor:pointer;display:flex;font-weight:600;gap:.6rem;letter-spacing:.3px;padding:.7rem 1.6rem;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.filter-btn[aria-label="Filtrar por destacados"]{border-color:rgba(var(--primary-color-rgb),.3)}.filter-icon{color:var(--primary-color);font-size:.9rem;transition:all .3s ease}.filter-btn:hover .filter-icon{transform:translateY(-2px) rotate(10deg)}.filter-btn.active .filter-icon{color:#fff;transform:scale(1.1)}.filter-btn:hover{box-shadow:0 8px 20px var(--shadow-color);transform:translateY(-5px)}.filter-btn.active{background-color:var(--primary-color);border-color:var(--primary-color);box-shadow:0 8px 20px rgba(var(--primary-color-rgb),.2);color:#fff}.projects-count{font-size:.95rem;font-style:italic;margin-bottom:2.5rem;opacity:.8}.no-projects,.projects-count{color:var(--secondary-color);text-align:center}.no-projects{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 30px var(--shadow-color);margin:2rem 0;padding:3rem}.projects-grid{display:flex;flex-direction:column;gap:2.5rem;margin-top:2rem;transition:opacity .3s ease,transform .3s ease}.projects-grid.filter-changing{opacity:.5;transform:translateY(10px)}.project-card{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 10px 30px var(--shadow-color);display:grid;grid-template-columns:350px 1fr;min-height:260px;opacity:0;overflow:hidden;position:relative;transform:translateY(20px)}.project-card,.project-card:before{transition:all .5s cubic-bezier(.165,.84,.44,1)}.project-card:before{border:2px solid #0000;border-radius:16px;box-shadow:0 0 0 0 rgba(var(--primary-color-rgb),0);content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:4}.project-card:hover:before{border-color:var(--primary-color);box-shadow:0 0 15px rgba(var(--primary-color-rgb),.2)}@media (max-width:768px){.project-card{grid-template-columns:1fr;grid-template-rows:220px auto}}.project-card.fade-in{opacity:1;transform:translateY(0)}.project-card:hover{box-shadow:0 20px 50px var(--shadow-color),0 0 20px rgba(var(--primary-color-rgb),.1);transform:translateY(-10px)}.project-card.featured{position:relative}.project-card.featured:after{align-items:center;background-color:var(--primary-color);border:2px solid #0000;border-radius:50%;box-shadow:0 3px 10px rgba(var(--primary-color-rgb),.3);color:#fff;content:"★";display:flex;font-size:.9rem;height:28px;justify-content:center;position:absolute;right:1rem;top:1rem;transition:all .3s ease;width:28px;z-index:5}.project-card.featured:hover:after{background-color:#a3b18a;background-color:var(--accent-color,#a3b18a);border-color:var(--primary-color);box-shadow:0 5px 15px rgba(var(--primary-color-rgb),.5);transform:translateY(-3px) rotate(15deg)}.project-image-container{background-color:var(--card-background);border-radius:16px 0 0 16px;border-right:1px solid var(--border-color);height:100%;min-height:240px;overflow:hidden;position:relative;width:100%}@media (max-width:768px){.project-image-container{border-bottom:1px solid var(--border-color);border-radius:16px 16px 0 0;border-right:none}}.project-image{bottom:0;height:100%;left:0;object-fit:cover;position:absolute;right:0;top:0;transition:transform .5s ease;width:100%}.project-card:hover .project-image{filter:brightness(1.05);transform:scale(1.03)}.project-content{display:flex;flex-direction:column;justify-content:space-between;padding:2rem}.project-title{color:var(--text-color);font-size:1.75rem;font-weight:700;letter-spacing:-.5px;margin-bottom:1rem;padding-bottom:.8rem;position:relative;transition:color .3s ease}.project-title:after{background-color:var(--primary-color);bottom:0;content:"";height:3px;left:0;opacity:.8;position:absolute;transition:width .3s ease,background-color .3s ease,opacity .3s ease;width:60px}.project-card:hover .project-title:after{background-color:#a3b18a;background-color:var(--accent-color,#a3b18a);opacity:1;width:100px}.project-description{color:var(--secondary-color);flex-grow:1;font-size:1.05rem;line-height:1.7;margin-bottom:1.5rem}.tech-badges-container{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.2rem;margin-top:.8rem}.tech-badge{align-items:center;background-color:rgba(var(--primary-color-rgb),.12);border:1px solid rgba(var(--primary-color-rgb),.2);border-radius:20px;color:var(--primary-color);display:inline-flex;font-size:.8rem;font-weight:500;gap:.4rem;padding:.25rem .7rem;transition:all .3s ease}.tech-badge:hover{background-color:var(--primary-color);border-color:#0000;box-shadow:0 5px 15px rgba(var(--primary-color-rgb),.3);color:#fff;transform:translateY(-3px)}.tech-badge i{font-size:.9rem;transition:transform .3s ease}.tech-badge:hover i{transform:scale(1.2)}.project-links{display:flex;gap:1rem;margin-top:auto}.project-link{align-items:center;border-radius:50px;box-shadow:0 3px 10px var(--shadow-color);display:flex;font-weight:600;gap:.5rem;justify-content:center;padding:.7rem 1.4rem;text-decoration:none;transition:all .3s ease}.demo-link{background-color:var(--primary-color);color:#fff}.code-link,.demo-link{border:2px solid var(--primary-color)}.code-link{background-color:initial;color:var(--primary-color)}.demo-link:hover{background-color:var(--accent-color);border-color:var(--accent-color);box-shadow:0 10px 25px rgba(var(--primary-color-rgb),.3)}.code-link:hover,.demo-link:hover{color:#fff;transform:translateY(-5px)}.code-link:hover{background-color:var(--primary-color);box-shadow:0 10px 25px rgba(var(--primary-color-rgb),.2)}.project-link i{transition:transform .3s ease}.project-link:hover i{transform:translateY(-2px)}.demo-link:hover i.fa-external-link-alt{transform:translate(3px,-3px)}.code-link:hover i.fa-github{transform:rotate(15deg) scale(1.2)}@media (max-width:768px){.projects-container{padding:4rem 1.5rem}.section-title{font-size:2.2rem}.projects-filter{gap:.8rem}.filter-btn{font-size:.95rem;padding:.6rem 1.2rem}.project-content{padding:1.5rem}.project-title{font-size:1.5rem}.project-description{font-size:1rem;line-height:1.6}}@media (max-width:480px){.section-title{font-size:2rem}.projects-container{padding:3.5rem 1rem}.tech-badges-container{gap:.4rem}.tech-badge{font-size:.75rem;padding:.2rem .5rem}.project-links{flex-direction:column;gap:.8rem}.project-link{padding:.8rem;width:100%}}.skills-section{background-color:var(--background-color);padding:6rem 0;position:relative}.container{margin:0 auto;max-width:1200px;padding:0 2rem}.section-title{color:var(--primary-color);display:inline-block;font-size:2.5rem;font-weight:700;left:50%;letter-spacing:-.5px;margin-bottom:.5rem;position:relative;text-align:center;transform:translateX(-50%)}.section-title:after{background-color:var(--primary-color);border-radius:2px;bottom:-15px;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);transition:width .3s ease;width:80px}.section-title:hover:after{width:120px}.section-description{color:var(--secondary-color);font-size:1.1rem;line-height:1.5;margin:2rem auto 4rem;max-width:700px;text-align:center}.skills-container{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr);margin:0 auto;max-width:1000px}.skill-card{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 16px 30px var(--shadow-color);min-height:250px;opacity:0;overflow:hidden;padding:1.8rem;position:relative;transform:translateY(30px);transition:all .6s cubic-bezier(.165,.84,.44,1)}.skill-card:before{background-image:linear-gradient(45deg,#0000 95%,rgba(var(--primary-color-rgb),.08) 95%),linear-gradient(135deg,#0000 95%,rgba(var(--primary-color-rgb),.08) 95%);background-size:30px 30px;bottom:0;content:"";left:0;opacity:.3;pointer-events:none;position:absolute;right:0;top:0;z-index:0}.skill-card.card-visible{opacity:1;transform:translateY(0)}.skill-card:hover{border-color:rgba(var(--primary-color-rgb),.3);box-shadow:0 25px 50px var(--shadow-color);transform:translateY(-8px)}.skill-card-header{align-items:center;display:flex;gap:1.2rem;margin-bottom:2.2rem;position:relative;z-index:1}.skill-category-icon{align-items:center;background-color:rgba(var(--primary-color-rgb),.1);border:1px solid rgba(var(--primary-color-rgb),.2);border-radius:12px;box-shadow:0 8px 20px rgba(var(--primary-color-rgb),.1);color:var(--primary-color);display:flex;font-size:1.5rem;height:50px;justify-content:center;transition:all .3s cubic-bezier(.175,.885,.32,1.275);width:50px}.skill-card:hover .skill-category-icon{background-color:rgba(var(--primary-color-rgb),.15);transform:rotate(10deg) scale(1.1)}.skill-category-title{color:var(--text-color);font-size:1.8rem;font-weight:700;letter-spacing:-.5px;margin:0;position:relative}.skill-category-title:after{background-color:var(--primary-color);border-radius:2px;bottom:-8px;content:"";height:3px;left:0;opacity:.7;position:absolute;transition:width .3s ease;width:40px}.skill-card:hover .skill-category-title:after{width:100px}.skills-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));position:relative;z-index:1}.skill-item{align-items:center;display:flex;flex-direction:column;gap:.8rem;opacity:0;transform:translateY(20px) scale(.95);transition:all .5s cubic-bezier(.175,.885,.32,1.275)}.skill-item.skill-visible{opacity:1;transform:translateY(0) scale(1)}.skill-item:hover{transform:translateY(-8px)}.skill-icon-wrapper{align-items:center;background-color:rgba(var(--primary-color-rgb),.08);border:1px solid rgba(var(--primary-color-rgb),.2);border-radius:14px;box-shadow:0 8px 15px var(--shadow-color);display:flex;height:60px;justify-content:center;transition:all .4s cubic-bezier(.175,.885,.32,1.275);width:60px}.skill-item:hover .skill-icon-wrapper{background-color:rgba(var(--primary-color-rgb),.12);border-color:rgba(var(--primary-color-rgb),.4);box-shadow:0 12px 25px var(--shadow-color);transform:scale(1.1) rotate(5deg)}.skill-icon{color:var(--primary-color);font-size:1.8rem;transition:all .3s ease}.skill-item:hover .skill-icon{color:var(--primary-color);transform:scale(1.1)}.skill-name{color:var(--secondary-color);font-size:.8rem;font-weight:600;text-align:center;transition:color .3s ease}.skill-item:hover .skill-name{color:var(--primary-color)}:root[data-theme=dark] .skill-icon-wrapper{background-color:rgba(var(--primary-color-rgb),.15);border-color:rgba(var(--primary-color-rgb),.3)}:root[data-theme=dark] .skill-icon{color:var(--primary-color)}:root[data-theme=dark] .skill-item:hover .skill-icon-wrapper{background-color:rgba(var(--primary-color-rgb),.25)}@media (max-width:768px){.skills-section{padding:4rem 0}.container{padding:0 1.5rem}.section-title{font-size:2.2rem}.section-description{font-size:1rem;margin-bottom:3rem}.skill-card{min-height:220px;padding:2rem}.skill-card-header{margin-bottom:1.8rem}.skill-category-title{font-size:1.5rem}.skills-grid{gap:1.2rem;grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.skill-icon-wrapper{height:55px;width:55px}.skill-icon{font-size:1.6rem}.skills-container{gap:1.2rem;grid-template-columns:1fr}}@media (max-width:480px){.skills-section{padding:3rem 0}.section-title{font-size:2rem}.section-description{margin-bottom:2.5rem}.skill-card{min-height:200px;padding:1.5rem}.skill-category-icon{font-size:1.3rem;height:45px;width:45px}.skill-category-title{font-size:1.3rem}.skills-grid{gap:1rem;grid-template-columns:repeat(auto-fill,minmax(70px,1fr))}.skill-icon-wrapper{height:50px;width:50px}.skill-icon{font-size:1.4rem}.skill-name{font-size:.75rem}.skills-container{grid-template-columns:1fr}}.contact-container{margin:0 auto;max-width:800px;opacity:0;padding:4rem 2rem;transform:translateY(30px);transition:all .8s ease}.contact-container.fade-in{opacity:1;transform:translateY(0)}.contact-header{margin-bottom:4rem;text-align:center}.contact-header h2{color:var(--primary-color);font-size:2.5rem;font-weight:700;letter-spacing:-.5px;margin-bottom:1.5rem;position:relative}.contact-header h2:after{background-color:var(--primary-color);border-radius:2px;bottom:-10px;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);transition:width .3s ease;width:80px}.contact-header h2:hover:after{width:120px}.contact-header p{color:var(--secondary-color);font-size:1.1rem;line-height:1.6;margin:0 auto;max-width:600px}.social-links-container{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 15px 30px var(--shadow-color);overflow:hidden;padding:2rem;position:relative}.social-links-container:before{background-image:linear-gradient(45deg,#0000 95%,#55605214 0),linear-gradient(135deg,#0000 95%,#55605214 0);background-image:linear-gradient(45deg,#0000 95%,rgba(var(--primary-color-rgb),.08) 95%),linear-gradient(135deg,#0000 95%,rgba(var(--primary-color-rgb),.08) 95%);background-size:30px 30px;bottom:0;content:"";left:0;opacity:.3;pointer-events:none;position:absolute;right:0;top:0;z-index:0}.social-links{display:flex;flex-direction:column;gap:1.2rem;margin-bottom:2rem}.social-link,.social-links{position:relative;z-index:1}.social-link{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:12px;padding:1.2rem;text-decoration:none;transition:all .4s cubic-bezier(.16,1,.3,1)}.social-link:hover{border-color:#5560524d;border-color:rgba(var(--primary-color-rgb),.3);box-shadow:0 10px 25px var(--shadow-color);transform:translateY(-5px)}.social-icon-wrapper{align-items:center;display:flex;gap:1.5rem}.social-icon-container{align-items:center;background-color:#55605214;background-color:rgba(var(--primary-color-rgb),.08);border:1px solid #55605233;border:1px solid rgba(var(--primary-color-rgb),.2);border-radius:14px;display:flex;height:60px;justify-content:center;overflow:hidden;position:relative;transition:all .3s cubic-bezier(.175,.885,.32,1.275);width:60px}.social-icon-container:after{background:radial-gradient(circle at center,var(--primary-color) 0,#0000 70%);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.social-link:hover .social-icon-container:after{opacity:.15}.social-icon-container i{color:var(--primary-color);font-size:1.8rem;position:relative;transition:all .3s ease;z-index:1}.social-link:hover .social-icon-container{background-color:#55605226;background-color:rgba(var(--primary-color-rgb),.15);border-color:#55605266;border-color:rgba(var(--primary-color-rgb),.4);transform:scale(1.05) rotate(5deg)}.social-link:hover .social-icon-container i{transform:scale(1.1)}.social-info{flex:1 1}.social-name{color:var(--text-color);display:block;font-size:1.2rem;font-weight:600;margin-bottom:.3rem}.social-description{color:var(--secondary-color);display:block;font-size:.95rem;line-height:1.4}.contact-note{background-color:#5560520d;background-color:rgba(var(--primary-color-rgb),.05);border:1px solid #5560521a;border:1px solid rgba(var(--primary-color-rgb),.1);border-radius:12px;gap:1rem;padding:1.2rem}.contact-note,.location-icon{align-items:center;display:flex}.location-icon{background-color:#55605214;background-color:rgba(var(--primary-color-rgb),.08);border:1px solid #55605233;border:1px solid rgba(var(--primary-color-rgb),.2);border-radius:12px;color:var(--primary-color);font-size:1.5rem;height:45px;justify-content:center;transition:all .3s ease;width:45px}.contact-note:hover .location-icon{background-color:#55605226;background-color:rgba(var(--primary-color-rgb),.15);transform:scale(1.05)}.contact-note p{color:var(--text-color);font-size:1rem;line-height:1.5;margin:0}.availability{color:var(--primary-color);font-weight:500;margin-left:.5rem}.visible-element{opacity:1!important;transform:none!important;visibility:visible!important}@media (max-width:768px){.contact-container{padding:3rem 1rem}.contact-header h2{font-size:2rem}.social-icon-container{height:50px;width:50px}.social-icon-container i{font-size:1.5rem}.social-name{font-size:1.1rem}.social-description{font-size:.9rem}.contact-note{flex-direction:column;gap:.5rem;text-align:center}}:root{--hover-color:rgba(var(--primary-color-rgb),0.15)}[data-theme=dark]{--hover-color:rgba(var(--primary-color-rgb),0.25)}.footer{background-color:var(--card-background);box-shadow:0 -10px 30px var(--shadow-color);margin-top:3rem;opacity:0;padding:3rem 0 1.5rem;position:relative;transform:translateY(20px);transition:all .8s ease}.footer.footer-visible{opacity:1;transform:translateY(0)}.footer:before{background:linear-gradient(90deg,#0000,var(--primary-color),#0000);height:2px}.footer:after,.footer:before{content:"";left:0;position:absolute;right:0;top:0}.footer:after{background-image:linear-gradient(45deg,#0000 95%,#55605214 0),linear-gradient(135deg,#0000 95%,#55605214 0);background-image:linear-gradient(45deg,#0000 95%,rgba(var(--primary-color-rgb),.08) 95%),linear-gradient(135deg,#0000 95%,rgba(var(--primary-color-rgb),.08) 95%);background-size:30px 30px;bottom:0;opacity:.2;pointer-events:none;z-index:0}.footer-content{margin:0 auto;max-width:1200px;padding:0 2rem;position:relative;z-index:1}.footer-top{grid-gap:2.5rem;display:grid;flex-wrap:wrap;gap:2.5rem;grid-template-columns:1.5fr 2fr;margin-bottom:2rem}.footer-logo-wrapper{align-items:center;display:flex;margin-bottom:1rem}.footer-logo-component{margin-left:-.5rem;transform:scale(1.1);transition:all .3s ease}.footer-logo:hover .footer-logo-component{transform:scale(1.15)}.footer-logo h3{display:none}.footer-logo .highlight{color:var(--primary-color)}.footer-logo p{color:var(--secondary-color);font-size:1rem}.footer-links{grid-gap:2rem;display:grid;flex-wrap:wrap;gap:2rem;grid-template-columns:1fr 1fr}.footer-links-column h4,.footer-social h4{color:var(--text-color);font-size:1.1rem;font-weight:600;margin-bottom:1rem;position:relative}.footer-links-column h4:after,.footer-social h4:after{background-color:var(--primary-color);bottom:-5px;content:"";height:2px;left:0;position:absolute;transition:width .3s ease;width:30px}.footer-links-column:hover h4:after,.footer-social:hover h4:after{width:50px}.footer-links-column ul{list-style:none;margin:0;padding:0}.footer-links-column ul li{margin-bottom:.6rem;position:relative}.footer-links-column ul li a{align-items:center;color:var(--secondary-color);display:flex;gap:.5rem;padding-left:0;position:relative;text-decoration:none;transition:all .3s ease}.footer-links-column ul li a:before{content:"→";opacity:0;transform:translateX(-10px);transition:all .3s ease}.footer-links-column ul li a:hover:before{opacity:1;transform:translateX(0)}.footer-links-column ul li a:hover{color:var(--primary-color);transform:translateX(5px)}.social-icons{display:flex;gap:1rem;margin-top:.8rem}.social-icon-link{align-items:center;background-color:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 5px 15px var(--shadow-color);display:flex;height:48px;justify-content:center;overflow:hidden;position:relative;text-decoration:none;transition:all .3s cubic-bezier(.175,.885,.32,1.275);width:48px}.icon-bg{background:radial-gradient(circle at center,var(--primary-color) 0,#0000 70%);bottom:0;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease;z-index:0}.social-icon-link:hover .icon-bg{opacity:.15}.social-icon-link:hover{background-color:#5560521a;background-color:rgba(var(--primary-color-rgb),.1);border-color:var(--primary-color);box-shadow:0 8px 20px var(--shadow-color);transform:rotate(5deg) scale(1.1)}.social-icon-link i{color:var(--primary-color);font-size:1.3rem;position:relative;transition:all .3s ease;z-index:1}.social-icon-link:hover i{color:var(--primary-color);transform:scale(1.1)}.footer-bottom{align-items:center;border-top:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:.8rem;justify-content:space-between;margin-top:1.5rem;padding-top:1.5rem;position:relative}.copyright p,.footer-message p{color:var(--secondary-color);font-size:.9rem;margin:0}.footer-message p{align-items:center;display:flex;gap:.5rem}.footer-message i{transition:transform .3s ease}.footer-message:hover i.fa-heart{color:#e25555;transform:scale(1.2)}.footer-message:hover i.fa-coffee{color:#6f4e37;transform:rotate(10deg)}.footer-message p i{color:#e25555;margin:0 3px}.footer-message p i.fa-coffee{color:#6f4e37}:root{--primary-color-rgb:85,96,82}@media (max-width:768px){.footer{padding:2.5rem 0 1rem}.footer-top{gap:2rem}.footer-links,.footer-top{grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:1rem;text-align:center}.copyright,.footer-message{width:100%}.social-icons{justify-content:flex-start}}@media (max-width:480px){.social-icons{flex-wrap:wrap;justify-content:flex-start}.footer-links-column h4:after,.footer-social h4:after{width:25px}.footer-links-column:hover h4:after,.footer-social:hover h4:after{width:40px}.footer-content{padding:0 1rem}.footer-logo-component{transform:scale(1)}}.scroll-to-top{align-items:center;background-color:var(--primary-color);border:none;border-radius:50%;bottom:2rem;box-shadow:0 2px 10px #0003;color:#fff;cursor:pointer;display:flex;font-size:1.2rem;height:45px;justify-content:center;opacity:1;position:fixed;right:2rem;transition:all .3s ease;width:45px;z-index:1000}.scroll-to-top.visible{opacity:.8;transform:translateY(0);visibility:visible}.scroll-to-top:hover{background-color:var(--primary-color);box-shadow:0 5px 15px #0000004d;opacity:1;transform:translateY(-5px)}.scroll-to-top:active{transform:translateY(-2px)}.scroll-to-top i{transition:transform .2s ease}.scroll-to-top:hover i{transform:translateY(-2px)}@media (max-width:768px){.scroll-to-top{bottom:1.5rem;font-size:1rem;height:40px;right:1.5rem;width:40px}}@media (prefers-reduced-motion:reduce){.scroll-to-top{transition:none}}
/*# sourceMappingURL=main.a3168a2c.css.map*/