:root{--primary-color: #6366f1;--primary-color-light: #818cf8;--primary-color-dark: #4f46e5;--secondary-color: #10b981;--secondary-color-light: #34d399;--secondary-color-dark: #059669;--accent-color: #f97316;--accent-color-light: #fb923c;--accent-color-dark: #ea580c;--success-color: #10b981;--warning-color: #f59e0b;--error-color: #ef4444;--bg-color: #ffffff;--bg-color-secondary: #f3f4f6;--text-color: #1f2937;--text-color-light: #6b7280;--border-color: #e5e7eb;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--spacing-xxl: 5rem;--navbar-height: 5rem;--footer-height: 4rem;--border-radius-sm: .25rem;--border-radius-md: .5rem;--border-radius-lg: 1rem;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--transition-fast: .2s ease;--transition-normal: .3s ease;--transition-slow: .5s ease}[data-theme=dark]{--primary-color: #818cf8;--primary-color-light: #a5b4fc;--primary-color-dark: #6366f1;--secondary-color: #34d399;--secondary-color-light: #6ee7b7;--secondary-color-dark: #10b981;--accent-color: #fb923c;--accent-color-light: #fdba74;--accent-color-dark: #f97316;--bg-color: #111827;--bg-color-secondary: #1f2937;--text-color: #f9fafb;--text-color-light: #d1d5db;--border-color: #374151;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .25);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -1px rgba(0, 0, 0, .26);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .3), 0 4px 6px -2px rgba(0, 0, 0, .25)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes typewriter{0%{width:0}to{width:100%}}@keyframes blinkCursor{0%,to{border-color:transparent}50%{border-color:var(--text-color)}}.animate-fade-in{animation:fadeIn .5s ease forwards}.animate-slide-up{animation:slideUp .5s ease forwards}.animate-slide-down{animation:slideDown .5s ease forwards}.animate-slide-left{animation:slideInLeft .5s ease forwards}.animate-slide-right{animation:slideInRight .5s ease forwards}.animate-scale{animation:scaleUp .5s ease forwards}.animate-bounce{animation:bounce 2s infinite}.animate-pulse{animation:pulse 2s ease infinite}.animate-rotate{animation:rotate 2s linear infinite}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.delay-600{animation-delay:.6s}.delay-700{animation-delay:.7s}.delay-800{animation-delay:.8s}.delay-900{animation-delay:.9s}.delay-1000{animation-delay:1s}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif;background-color:var(--bg-color);color:var(--text-color);transition:background-color .3s ease,color .3s ease;overflow-x:hidden;line-height:1.5}.app{display:flex;flex-direction:column;min-height:100vh}main{flex:1;padding-top:var(--navbar-height)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:1rem}h1{font-size:clamp(2.5rem,5vw,3.5rem)}h2{font-size:clamp(2rem,4vw,2.5rem)}h3{font-size:clamp(1.5rem,3vw,2rem)}p{margin-bottom:1rem}a{color:var(--primary-color);text-decoration:none;transition:color .2s ease}a:hover{color:var(--primary-color-dark)}button,.button{cursor:pointer;padding:.75rem 1.5rem;border:none;border-radius:.5rem;font-weight:500;transition:all .2s ease;font-size:1rem;display:inline-block}button.primary,.button.primary{background-color:var(--primary-color);color:#fff}button.primary:hover,.button.primary:hover{background-color:var(--primary-color-dark)}button.secondary,.button.secondary{background-color:transparent;border:1px solid var(--primary-color);color:var(--primary-color)}button.secondary:hover,.button.secondary:hover{background-color:var(--primary-color);color:#fff}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.section{padding:var(--spacing-xxl) 0}.cursor{pointer-events:none}.custom-cursor{z-index:9999}.text-center{text-align:center}.flex{display:flex}.flex-center{display:flex;justify-content:center;align-items:center}.no-cursor{cursor:none}.highlight{color:var(--primary-color)}.hidden{display:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.navbar{position:fixed;top:0;left:0;width:100%;height:var(--navbar-height);background-color:rgba(var(--bg-color-rgb),.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;transition:all var(--transition-normal)}.navbar__container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md);display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:0;height:100%}.navbar__logo{font-size:1.5rem;font-weight:700;color:var(--text-color);display:flex;align-items:center;gap:.5rem}.navbar__logo svg{color:var(--primary-color)}.navbar__menu{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;gap:var(--spacing-md);list-style:none}@media (min-width: 768px){.navbar__menu{gap:var(--spacing-lg)}}.navbar__menu-item{position:relative}.navbar__menu-item a{color:var(--text-color);font-weight:500;padding:.5rem;transition:color var(--transition-fast)}.navbar__menu-item a:hover,.navbar__menu-item a.active{color:var(--primary-color)}.navbar__menu-item a.active:after{content:"";position:absolute;bottom:-5px;left:0;width:100%;height:2px;background-color:var(--primary-color);transform:scaleX(1);transform-origin:left}.navbar__menu-item a:not(.active):after{content:"";position:absolute;bottom:-5px;left:0;width:100%;height:2px;background-color:var(--primary-color);transform:scaleX(0);transform-origin:left;transition:transform var(--transition-fast)}.navbar__menu-item a:hover:after{transform:scaleX(1)}.navbar__hamburger{display:block;cursor:pointer;z-index:1001}@media (min-width: 768px){.navbar__hamburger{display:none}}.navbar__hamburger span{display:block;width:25px;height:3px;margin:5px 0;background-color:var(--text-color);transition:all .3s ease}.navbar__hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.navbar__hamburger.open span:nth-child(2){opacity:0}.navbar__hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(7px,-7px)}.navbar__mobile{position:fixed;top:0;right:0;width:100%;height:100vh;background-color:var(--bg-color);display:flex;flex-direction:column;justify-content:center;align-items:center;transform:translate(100%);transition:transform .3s ease;z-index:1000}.navbar__mobile.open{transform:translate(0)}.navbar__mobile ul{list-style:none;text-align:center}.navbar__mobile ul li{margin:var(--spacing-md) 0}.navbar__mobile ul li a{font-size:1.5rem;color:var(--text-color);font-weight:500;transition:color var(--transition-fast)}.navbar__mobile ul li a:hover,.navbar__mobile ul li a.active{color:var(--primary-color)}.navbar__theme-toggle{margin-left:var(--spacing-md);background:none;border:none;color:var(--text-color);cursor:pointer;transition:color var(--transition-fast)}.navbar__theme-toggle:hover{color:var(--primary-color)}.navbar.scrolled{background-color:var(--bg-color);box-shadow:0 2px 10px #0000001a;height:calc(var(--navbar-height) * .8)}@media (min-width: 768px){.navbar__menu{display:flex}.navbar__mobile{display:none}}@media (max-width: 767px){.navbar__menu{display:none}}.footer{background-color:var(--bg-color-secondary);padding:var(--spacing-md) 0;margin-top:auto}.footer__container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md);display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:0;flex-wrap:wrap;gap:var(--spacing-sm)}.footer__copyright{color:var(--text-color-light);font-size:.875rem}.footer__social{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;gap:var(--spacing-sm);list-style:none}.footer__social-item a{color:var(--text-color-light);transition:color var(--transition-fast);display:flex;align-items:center;justify-content:center}.footer__social-item a:hover{color:var(--primary-color)}@media (max-width: 639px){.footer__container{flex-direction:column;text-align:center}.footer__social{justify-content:center;margin-top:var(--spacing-sm)}}.hero{min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden}.hero__container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md);position:relative;z-index:1}.hero__content{max-width:650px;margin-bottom:var(--spacing-xl)}@media (min-width: 768px){.hero__content{margin-bottom:0}}.hero__subtitle{color:var(--primary-color);font-weight:600;margin-bottom:var(--spacing-sm);animation:fadeIn .5s ease .2s forwards}.hero__title{font-size:clamp(2.5rem,8vw,4rem);margin-bottom:var(--spacing-md);animation:fadeIn .5s ease .4s forwards}.hero__title span{color:var(--primary-color)}.hero__description{font-size:1.125rem;color:var(--text-color-light);margin-bottom:var(--spacing-lg);max-width:500px;animation:fadeIn .5s ease .6s forwards}.hero__cta{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:var(--spacing-sm);animation:fadeIn .5s ease .8s forwards}.hero__scroll-indicator{position:absolute;bottom:var(--spacing-lg);left:50%;transform:translate(-50%);animation:bounce 2s infinite;color:var(--text-color-light);font-size:1.5rem;cursor:pointer}.hero__background{position:absolute;top:0;right:0;height:100%;width:50%;z-index:0;opacity:.05}.hero__background .grid{display:grid;grid-template-columns:repeat(20,1fr);grid-template-rows:repeat(20,1fr);height:100%;width:100%}.hero__background .grid .cell{border:1px solid var(--text-color)}@media (max-width: 767px){.hero{text-align:center}.hero__content{margin:0 auto}.hero__cta{justify-content:center}.hero__background{width:100%}}.typewriter{overflow:hidden;border-right:3px solid;white-space:nowrap;margin:0 auto;animation:typewriter 4s steps(40) 1s forwards,blinkCursor .75s step-end infinite}.about{padding:var(--spacing-xxl) 0}.about__container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--spacing-xl)}@media (min-width: 768px){.about__container{flex-direction:row;align-items:flex-start}}.about__image{flex:1;max-width:500px}.about__image img{width:100%;height:auto;border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);-o-object-fit:cover;object-fit:cover}.about__content{flex:1}.about__content-title{margin-bottom:var(--spacing-md)}.about__content-title h2{margin-bottom:var(--spacing-xs)}.about__content-title .subtitle{color:var(--primary-color);font-weight:500}.about__content-text{margin-bottom:var(--spacing-md)}.about__content-text p{margin-bottom:var(--spacing-sm);color:var(--text-color-light)}.about__skills{margin-top:var(--spacing-lg)}.about__skills-title{margin-bottom:var(--spacing-md)}.about__skills-list{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}@media (min-width: 768px){.about__skills-list{grid-template-columns:repeat(3,1fr)}}.about__skills-item{animation:fadeIn .3s ease 0s forwards}.about__skills-item-name{display:flex;justify-content:space-between;margin-bottom:var(--spacing-xs)}.about__skills-item-name span{font-weight:500}.about__skills-item-name .percentage{color:var(--text-color-light)}.about__skills-item-bar{height:8px;background-color:var(--bg-color-secondary);border-radius:4px;overflow:hidden}.about__skills-item-bar .fill{height:100%;background-color:var(--primary-color);border-radius:4px;width:0;transition:width 1.5s ease-in-out}@media (max-width: 767px){.about__image{margin-bottom:var(--spacing-lg)}.about__content{text-align:center}.about__skills-list{grid-template-columns:1fr}}.projects{padding:var(--spacing-xxl) 0;background-color:var(--bg-color-secondary)}.projects__container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.projects__header{text-align:center;margin-bottom:var(--spacing-xl)}.projects__header-subtitle{color:var(--primary-color);font-weight:500;margin-bottom:var(--spacing-xs)}.projects__header-title{margin-bottom:var(--spacing-sm)}.projects__header-description{max-width:600px;margin:0 auto;color:var(--text-color-light)}.projects__filters{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl)}.projects__filters-button{padding:.5rem 1rem;background-color:transparent;border:1px solid var(--border-color);border-radius:var(--border-radius-md);font-size:.875rem;font-weight:500;color:var(--text-color);cursor:pointer;transition:all var(--transition-fast)}.projects__filters-button:hover{border-color:var(--primary-color);color:var(--primary-color)}.projects__filters-button.active{background-color:var(--primary-color);border-color:var(--primary-color);color:#fff}.projects__grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-lg)}@media (min-width: 640px){.projects__grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.projects__grid{grid-template-columns:repeat(3,1fr)}}.projects__more{margin-top:var(--spacing-xl);text-align:center}.project-card{background-color:var(--bg-color);border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;display:flex;flex-direction:column;height:100%}.project-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.project-card__image{position:relative;overflow:hidden;width:100%;padding-top:60%}.project-card__image img{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform var(--transition-normal)}.project-card__image:hover img{transform:scale(1.05)}.project-card__content{padding:var(--spacing-md);flex:1;display:flex;flex-direction:column}.project-card__category{font-size:.75rem;text-transform:uppercase;font-weight:600;letter-spacing:1px;color:var(--primary-color);margin-bottom:var(--spacing-xs)}.project-card__title{font-size:1.25rem;margin-bottom:var(--spacing-xs)}.project-card__title a{color:var(--text-color);transition:color var(--transition-fast)}.project-card__title a:hover{color:var(--primary-color)}.project-card__description{color:var(--text-color-light);font-size:.875rem;margin-bottom:var(--spacing-md)}.project-card__technologies{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:var(--spacing-md)}.project-card__technologies-item{font-size:.75rem;background-color:var(--bg-color-secondary);padding:.25rem .5rem;border-radius:var(--border-radius-sm)}.project-card__footer{margin-top:auto;display:flex;justify-content:space-between;align-items:center}.project-card__footer a{font-size:.875rem;font-weight:500;display:flex;align-items:center;gap:.25rem}.project-card__footer a svg{transition:transform var(--transition-fast)}.project-card__footer a:hover svg{transform:translate(4px)}.contact{padding:var(--spacing-xxl) 0}.contact__container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--spacing-xl)}@media (min-width: 768px){.contact__container{flex-direction:row;align-items:flex-start}}.contact__content{flex:1}.contact__content-title{margin-bottom:var(--spacing-md)}.contact__content-title h2{margin-bottom:var(--spacing-xs)}.contact__content-title .subtitle{color:var(--primary-color);font-weight:500}.contact__content-text{color:var(--text-color-light);margin-bottom:var(--spacing-lg)}.contact__content-info{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:var(--spacing-md)}.contact__content-info-item{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:var(--spacing-sm)}.contact__content-info-item svg{color:var(--primary-color)}.contact__form{flex:1;background-color:var(--bg-color-secondary);padding:var(--spacing-lg);border-radius:var(--border-radius-md);box-shadow:var(--shadow-md)}.contact__form-group{margin-bottom:var(--spacing-md)}.contact__form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:500}.contact__form-group input,.contact__form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background-color:var(--bg-color);color:var(--text-color);font-family:inherit;transition:border-color var(--transition-fast)}.contact__form-group input:focus,.contact__form-group textarea:focus{outline:none;border-color:var(--primary-color)}.contact__form-group textarea{min-height:150px;resize:vertical}.contact__form-button{width:100%}@media (max-width: 767px){.contact__content{text-align:center;margin-bottom:var(--spacing-lg)}.contact__content-info{align-items:center}}
