body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{width:100%;max-width:100vw;overflow-x:hidden;box-sizing:border-box}*{box-sizing:border-box}#root::-webkit-scrollbar{display:none}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion: no-preference){.App-logo{animation:App-logo-spin infinite 20s linear}}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}html,body{margin:0;padding:0;width:100%}html{font-size:62.5%}html.sr .load-hidden{visibility:hidden}body{font-family:Montserrat,sans-serif;text-align:center;scroll-behavior:smooth;background:#0f172a;color:#f8fafc}*{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD2ElEQVR4nO2Yb2iVZRjGn/5BfakvQR86vM91PedtNCqaLEpossh9CE2iwoqS5TY1Mqc7uJpNbEpap/pQGOsPs3RkCTWQtERLTItZ6OzfahkNNetkEFkRRNCfO957e9xpphzne87eQ7vg5ny9f+e67+e9nseYCU1oQmOStfbcMAzPN+UokjMA/EzyLwBd1dXV55hyEoAvSQrToUS/ADZFjphyEYBfosaD5s2CykkKQXJX2YwUyaMKsGK/BEt2Cy6/2jvRV1FRcaFJugD8EDVslw9IkM1JsHSfoGqKd2IglUpdbJIsAN+rAx39QwBRdfQLrqrzEAfT6XRokiqSOQVY9skIQFQr9gsnz/AQR5xzV5gkCsBhHaFlH/0bIKqHBwVTbvMQR621k03SRPKgOrC073iAqFYdElw/2y/2ryTrTJIEYFAdaN/73wBRPXJYcMN9HuJ3a+3NJmkfMvvgBycGiOrRbwU3LfEQfwC42yRBJAd0hNp6Tw4wXPaOx/xO/A1gYRIc6FcH2t4rCGAEwnmIB8YVgOTH6sD9uwoGUIj6TqFLezey4wmwTwEW7zglAIWY0y10QyGQ5LPGmDNLDgBgj47Q4u2nDKAQ83uEl1zql/uVksdxku+rA5m3xgSgEIveFFZc5iE2p1Kp80oGAKBXHchsHTOAQrTuEFRW+XHaWbI4DuBdBVi05bQAgqjaevPj+N6SxHGS7+gILXzj9AGyURzvE1xZ4534vOhxHMB2daB5UzwA2ZwED32aH8cPhGGYLhoAyW0KsGBjfABZH8dv9BDfFS2Ok9yiIzS/J16AbE7sykFBzUwP8SOAa2IHiI49deDe12IHCKJadUiYF8edc1NjBSC5UQHu2VAcgOxQHLd1c70Tv8V6pwDQMwTwcvEAslEc/0YwveXYYscGQPJVBZj7UuHNrDwgQfseCVp3is1sE9v8uth568U2rBHUd2patbd26P0B01oEUxsFtXcKr73l2D7ECbBBAeZ0F7aYma35D2BjqT9JLogNAMB6BWhaW2Bwq/SN5Iaj+G4Abw87uQ7AM1G8JtlurW0BMI/kTOfcNGvtdWEYpkycItmtAI0vnLz5prX50XldbW3t2SYJAvCiHnENXSduftbq0ZeXM0xSBKBLHZj9XCF34FaTNJF8XgHqO487u/OOvWjxGk0ShaGl0+NvpPmvBXVNyXwHGi0AT6sDs1bnPSfe7v/5n5xzNSbJIvmUAtz1pATLv8hPkEestVUm6SL5hAJMzwgn1fqx+SoIAppykHOuYdSX8kOSF5ky0lkkHwfwGYA1zrkLxruhCU3o/6p/AFhtDn6+kURkAAAAAElFTkSuQmCC),auto!important}.cursor{position:absolute;width:25px;height:25px;background:radial-gradient(circle,#f8fafc80,#f8fafc00 70%);border-radius:50%;pointer-events:none;z-index:1000}h1{font-weight:700}p,a{font-family:Montserrat,sans-serif;font-size:1.6rem}a,a:link,a:hover,a:visited,a:active{text-decoration:none}a:hover{transition:all .3s ease-in-out}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#1e293b}::-webkit-scrollbar-thumb{background:#334155}::-webkit-scrollbar-thumb:hover{background:#3b82f6}.section-title{margin:0;margin-bottom:4.5rem;font-size:4rem;font-weight:700;text-transform:uppercase}.dark-blue-text{color:#f8fafc!important}@media (max-width: 37.5em){.section-title{font-size:2.8rem}}@media (max-width: 56.25em){.about-wrapper__info-text,.about-wrapper__info-text--important{text-align:left}}@media (max-width: 48em){.about-wrapper__info{align-items:center}}@media (max-width: 75em){#about{height:100%;clip-path:none}.about-wrapper__image{height:100%}}@media (min-width: 112.5em){.big-desktop{@content;}}@supports (-webkit-background-clip: text) or (background-clip: text){.text-color-main{color:#f8fafc;text-shadow:0 0 3px #fff,0 0 5px #fff,0 0 10px #fff,0 0 11px black,0 0 21px black,0 0 36px black,0 0 35px black,0 0 50px black}.cta-btn--hero:after{background-image:linear-gradient(135deg,#f5f5f5,#fff)}}.cta-btn{display:inline-block;position:relative;padding:.8rem 1.6rem;font-weight:700;line-height:1;z-index:1;transition:all cubic-bezier(.19,1,.22,1) .6s}.cta-btn:after{content:"";display:block;position:absolute;width:0;height:100%;left:0;bottom:0;z-index:-1;transition:all cubic-bezier(.19,1,.22,1) .3s}.cta-btn--hero{color:#fff;border-width:2px;border-style:solid}.cta-btn--hero:hover{color:#0f172a;-webkit-text-fill-color:black;text-decoration:none}.cta-btn--hero:hover:after{width:100%}.botao{width:125px;height:45px;border-radius:20px;border:none;box-shadow:1px 1px #6bddd75e;padding:5px 10px;background:#2f5dc5;background:linear-gradient(160deg,#2f5dc5,#2e56c2 5%,#2f5dc5 11%,#3bbee6 57%,#00d4ff 71%);color:#fff;font-family:Roboto,sans-serif;font-weight:505;font-size:16px;line-height:1;cursor:pointer;filter:drop-shadow(0 0 10px rgba(59,190,230,.568));transition:.5s linear;margin-top:30px;display:flex;align-items:center;justify-content:center}.botao .mysvg{display:none}.botao:hover{width:50px;height:50px;border-radius:50%;transition:.5s linear}.botao:hover .texto{display:none}.botao:hover .mysvg{display:inline}.botao:hover:before{content:"";position:absolute;top:-3px;left:-3px;width:100%;height:100%;border:3.5px solid transparent;border-top:3.5px solid #fff;border-right:3.5px solid #fff;border-radius:50%;animation:animateC 2s linear infinite}@keyframes animateC{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.up i{color:#f8fafc}.footer{background-color:#1e293b;color:#f8fafc;padding:4.8rem 0}.footer__text{color:#94a3b8;font-size:1.3rem}.footer__text a{color:#94a3b8;font-size:1.3rem;transition:all .4s;display:inline-block;background-color:#1e293b}.footer__text a:hover,.footer__text a:active{color:#3b82f6;-webkit-box-shadow:0 1.5rem 4rem rgba(0,0,0,.15);box-shadow:0 1.5rem 4rem #00000026}.footer hr{margin:1rem auto;border:0;width:50%;border-top:2px solid #334155}.social-links{display:flex;flex-direction:row;justify-content:center}.social-links a{display:flex;flex-direction:column;justify-content:center;color:#f8fafc;font-size:3rem;width:5rem;height:5rem;margin:1.6rem;transition:all .2s ease-in}.social-links a:hover{transform:translateY(-2px)}.back-to-top i{color:#f8fafc;margin:1rem 0;transition:all .2s ease-in}.back-to-top i:hover{transform:translateY(-2px)}#hero{min-height:100vh;height:100vh;display:flex;align-items:center;border-bottom:0;background:url(/assets/portfolio-background-CJp3dMy-.jpg) center/cover no-repeat;font-weight:400;color:#000;padding:0 5.6rem;margin-bottom:0;top:0;left:0;bottom:0;right:0;z-index:-1}.hero-container{width:100%;text-align:right}.hero-title{font-size:5.6rem;font-weight:700;margin-bottom:3.2rem;text-align:right}.hero-cta{display:flex;justify-content:flex-end}.hero-cta a{font-size:2.4rem}#about{color:#f8fafc;padding:5rem 2rem;text-align:center;background:#1e293b}#about .section-title{font-size:3.6rem;font-weight:700;text-transform:uppercase;position:relative;display:inline-block}#about .section-title:after{content:"";position:absolute;bottom:-.5rem;left:50%;transform:translate(-50%);width:40%;height:3px;background:#3b82f6;border-radius:5px}.about-wrapper{display:flex;flex-direction:column;align-items:center;max-width:900px;margin:0 auto;text-align:left}.about-wrapper__info{background:#1e293b80;padding:4rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(248,250,252,.1);box-shadow:0 2px 10px #0003;animation:fadeIn 1s ease}.about-wrapper__info p{font-size:1.8rem;line-height:1.8;color:#94a3b8;margin-bottom:1.5rem;font-family:Montserrat,sans-serif}.about-wrapper__info img.about-inline-logo{width:30px;height:30px;vertical-align:middle;margin-left:.5rem;filter:drop-shadow(0 0 5px rgba(255,255,255,.8));transition:transform .3s ease}.about-wrapper__info img.about-inline-logo:hover{transform:scale(1.2)}#about:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;animation:rotateAccent 10s linear infinite;z-index:-1}@keyframes rotateAccent{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){#about{padding:3rem 1rem}.about-wrapper__info p{font-size:1.6rem}.about-wrapper__info img.about-inline-logo{width:25px;height:25px}}@media (max-width: 480px){#about .section-title{font-size:2.8rem}.about-wrapper__info p{font-size:1.5rem}}.skills-card{width:1010px;height:400px;border-radius:4px;display:flex;flex-direction:row;gap:3px;padding:.4em;transition:all .5s;margin:0 auto;justify-content:center}.skills-card p{height:100%;width:100px;flex:1;overflow:hidden;cursor:pointer;border-radius:2px;transition:all .5s;background:#1e293b;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);border:5px solid #334155;display:flex;justify-content:center;align-items:center;position:relative}.skills-card p:hover{flex:4;background:#1e293b}.skills-card p span{min-width:14em;padding:.5em;text-align:center;transform:rotate(-90deg);transition:all .5s;text-transform:uppercase;color:#fff;letter-spacing:.1em;position:absolute;top:50%;transform-origin:center}.skills-card p:hover span{transform:rotate(0);top:10%;left:50%;transform:translate(-50%)}.skills-card p .extra-info{display:none}.skills-card p:hover .extra-info{display:inline;transform:rotate(0);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.skill-logo{width:50px;height:50px;object-fit:cover;border-radius:4px;transition:transform .3s;margin:2px}.skill-logo:hover{transform:scale(1.5)}.skill-logo-wrapper{display:flex;text-shadow:0 0 2px white,0 0 2px white,0 0 15px white,0 0 3px white,0 0 7px white,0 0 12px white,0 0 13px white,0 0 17px white}.Skill{font-weight:700;margin-right:10px;font-size:20px;color:#fff}.experience{position:relative;padding:8rem 0;background:#f8fafc;overflow:hidden}.experience:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 30%,rgba(99,102,241,.15) 0%,transparent 40%),radial-gradient(circle at 80% 70%,rgba(217,70,239,.15) 0%,transparent 40%);animation:backgroundPulse 10s ease-in-out infinite alternate}@keyframes backgroundPulse{0%{transform:scale(1)}to{transform:scale(1.1)}}.section-title{font-size:3.5rem;font-weight:800;text-align:center;margin-bottom:5rem;position:relative;background:#3b82f6;-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.02em;transform-style:preserve-3d;perspective:1000px}.section-title:after{content:"";position:absolute;bottom:-15px;left:50%;transform:translate(-50%);width:100px;height:5px;background:#3b82f6}.project-wrapper{max-width:1400px;margin:0 auto;padding:0 2rem;position:relative}.project-wrapper__text{background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.18);border-radius:24px;box-shadow:0 10px 30px #0000001a,0 1px 3px #0000000d;padding:3rem;margin-bottom:3rem;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.project-wrapper__text:before{content:"";position:absolute;top:0;left:0;right:0;height:100%;background:#3b82f6;opacity:0;transition:all .4s cubic-bezier(.4,0,.2,1);z-index:0}.project-wrapper__text:hover{transform:translateY(-10px) scale(1.02);box-shadow:0 20px 40px #00000026,0 2px 6px #00000014}.project-wrapper__text:hover:before{opacity:.03}.project-wrapper__text-title{font-size:2.2rem;font-weight:800;color:#1e293b;margin-bottom:.5rem;position:relative;display:inline-block;transition:all .4s cubic-bezier(.4,0,.2,1)}.project-wrapper__text-title:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:3px;background:linear-gradient(135deg,#6366f1,#8b5cf6,#d946ef);transition:all .4s cubic-bezier(.4,0,.2,1)}.project-wrapper__text:hover .project-wrapper__text-title:after{width:100%}.Experience-Role{font-size:1.6rem;font-weight:700;background:linear-gradient(135deg,#6366f1,#8b5cf6,#d946ef);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:2rem;padding-bottom:1.5rem;position:relative}.mb-4{position:relative;padding-left:2rem;margin-bottom:1.5rem;color:#475569;line-height:1.8;font-size:1.1rem;transition:all .4s cubic-bezier(.4,0,.2,1);transform-origin:left}.mb-4:before{content:"→";position:absolute;left:0;color:transparent;background:linear-gradient(135deg,#6366f1,#8b5cf6,#d946ef);-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-weight:700;font-size:1.2rem;transition:all .4s cubic-bezier(.4,0,.2,1);transform:translate(0)}.project-wrapper__text:hover .mb-4:before{transform:translate(5px)}.mb-4:hover{transform:translate(5px);color:#fff}.project-wrapper::-webkit-scrollbar{width:8px}.project-wrapper::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.project-wrapper::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#6366f1,#8b5cf6,#d946ef);border-radius:4px}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.load-hidden{opacity:0;transform:translateY(30px) scale(.95);animation:fadeInUpScale .8s cubic-bezier(.4,0,.2,1) forwards}@keyframes fadeInUpScale{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media screen and (max-width: 1024px){.section-title{font-size:3rem}.project-wrapper__text{padding:2.5rem}}@media screen and (max-width: 768px){.section-title{font-size:2.5rem}.project-wrapper__text-title{font-size:1.8rem}.Experience-Role{font-size:1.4rem}.mb-4{font-size:1rem;line-height:1.7}}html{scroll-behavior:smooth}::selection{background:#6366f133;color:#1e293b}.project-wrapper__text{cursor:pointer}.glass-effect{background:#ffffffb3;border:1px solid rgba(255,255,255,.18)}*{transition:all .4s cubic-bezier(.4,0,.2,1)}#projects{background-color:#fff;color:#272341}.project-wrapper__text p{padding-left:40px;padding-right:20px;text-align:justify}.project-wrapper .row{margin-bottom:8rem}.project-wrapper__text{text-align:left}.project-wrapper__text-title{font-weight:700;margin-bottom:1.8rem;font-size:2.5rem;padding-left:20px;padding-right:30px}.project-wrapper__text p>a{color:#00cdac}.project-wrapper__image{width:90%;margin:0 auto}.project-wrapper__image .thumbnail{border:none;box-shadow:0 3px 6px #00000029,0 3px 6px #0000003b;transition:all .2s ease-out;box-shadow:0 6px 10px #00000014,0 0 6px #0000000d;transition:.5s transform cubic-bezier(.155,1.105,.295,1.12),.5s box-shadow,.5s -webkit-transform cubic-bezier(.155,1.105,.295,1.12)}.project-wrapper__image .thumbnail:hover{box-shadow:none}.text-color-sourcecode{color:#000}#contact{background-image:linear-gradient(135deg,#000,#000);clip-path:polygon(0 15vh,100% 0,100% 100%,0 100%);padding:15rem 0 10rem;margin-top:-10rem;margin-bottom:-1px;color:#fff}.contact-wrapper{margin-top:3.2rem;padding:0 2rem;backface-visibility:hidden}.contact-wrapper__text{margin-bottom:2.5rem}.contact-wrapper__text,.contact-wrapper a{font-size:2.4rem}.cta-btn--contact-me{color:#fff;border:2px solid #fff;margin-top:10px}.cta-btn--contact-me:after{background:#fff}.cta-btn--contact-me:hover{color:#000;text-decoration:none}.cta-btn--contact-me:hover:after{width:100%}#experience{position:relative;padding:60px 0}.timeline-container{position:relative;max-width:1200px;margin:0 auto;padding:0 20px}.timeline-bar{position:absolute;left:50%;top:0;width:4px;height:100%;background:#334155;transform:translate(-50%);z-index:1}.timeline-progress{position:absolute;width:100%;height:var(--timeline-progress, 0%);background:#007bff;transition:height .3s ease-out}.timeline-content{position:relative;z-index:2}.timeline-item{position:relative;margin-bottom:60px;width:50%;opacity:0;animation:fadeInUp .6s ease forwards;animation-delay:calc(var(--item-index) * .2s)}.timeline-item.education{left:0;padding-right:40px}.timeline-item.work{left:50%;padding-left:40px}.timeline-dot{position:absolute;top:20px;width:16px;height:16px;background:#007bff;border:4px solid #1e293b;border-radius:50%;z-index:3}.timeline-item.education .timeline-dot{right:-8px}.timeline-item.work .timeline-dot{left:-8px}.timeline-card{background:#1e293b;border-radius:12px;box-shadow:0 4px 12px #00000026;transition:all .3s ease;border:1px solid #334155;overflow:hidden;display:flex;flex-direction:column}.timeline-card:hover{transform:translateY(-5px);box-shadow:0 8px 20px #0003;border-color:#007bff}.card-header{padding:20px 25px 15px;border-bottom:1px solid #334155;background:linear-gradient(135deg,#1e293b,#334155)}.card-content{padding:20px 25px 25px;flex:1;display:flex;flex-direction:column;gap:15px}.company-name{font-size:1.4rem;font-weight:700;color:#fff;margin:0 0 6px;line-height:1.2}.role-title{font-size:1.1rem;color:#007bff;margin:0 0 10px;font-weight:600;line-height:1.3}.period-location{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.period{font-size:.9rem;color:#e2e8f0;background:#007bff;padding:6px 14px;border-radius:20px;display:inline-block;width:fit-content;font-weight:500;box-shadow:0 2px 4px #007bff33}.location{font-size:.85rem;color:#94a3b8;font-style:italic;display:flex;align-items:center;gap:4px}.location:before{content:"📍";font-size:.8rem}.experience-description{color:#cbd5e1;line-height:1.6;margin:0;font-size:.95rem;text-align:justify;-webkit-hyphens:auto;hyphens:auto}.tech-stack{margin-top:0;padding-top:15px;border-top:1px solid #334155}.tech-stack:before{content:"Technologies";display:block;font-size:.8rem;color:#64748b;margin-bottom:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.tech-icons{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.tech-logo{width:28px;height:28px;object-fit:contain;transition:transform .2s ease;border-radius:4px}.tech-logo:hover{transform:scale(1.15)}.tech-pill{background:#334155;color:#94a3b8;padding:4px 8px;border-radius:12px;font-size:.8rem;font-weight:500}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.timeline-container{padding:0 15px}.timeline-bar{left:30px;transform:none}.timeline-item{width:100%;left:0!important;padding-left:60px!important;padding-right:0!important}.timeline-item.education .timeline-dot,.timeline-item.work .timeline-dot{left:-8px;right:auto}.card-header{padding:15px 20px 12px}.card-content{padding:15px 20px 20px;gap:12px}.company-name{font-size:1.2rem}.role-title{font-size:1rem}.experience-description{font-size:.9rem;text-align:left}.period-location{flex-direction:column;gap:6px}.tech-icons{gap:8px}.tech-logo{width:24px;height:24px}}@media (max-width: 480px){.timeline-container{padding:0 10px}.timeline-bar{left:25px}.timeline-item{padding-left:50px!important}.card-header{padding:12px 15px 10px}.card-content{padding:12px 15px 15px;gap:10px}.company-name{font-size:1.1rem}.role-title{font-size:.95rem}.experience-description{font-size:.85rem}.period{font-size:.8rem;padding:4px 10px}.location{font-size:.8rem}}.project-wrapper__text{padding:20px;margin-bottom:30px;background:#1e293b}.project-wrapper__text-title{font-weight:700;margin-bottom:15px;color:#fff}.mb-4{margin-bottom:1rem}.row{display:flex;flex-wrap:wrap;margin-right:0;margin-left:0;width:100%;box-sizing:border-box}.col-lg-4{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width: 992px){.col-lg-4{flex:0 0 100%;max-width:100%}}.projects-container{width:100%;max-width:1200px;margin:0 auto 130px;padding:2rem;background:#0f172a;box-sizing:border-box}.projects-title{font-size:2.5rem;font-weight:700;text-align:center;margin-bottom:3rem;color:#f8fafc}.projects-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media (min-width: 768px){.projects-grid{grid-template-columns:repeat(2,1fr)}}.project-card{position:relative;padding:1.5rem;background-color:#fff;border-radius:.75rem;border:1px solid #e5e7eb;overflow:hidden;transition:all .3s ease}.project-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.project-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.project-title{font-size:1.25rem;font-weight:600;color:#111827;margin:0}.github-link{display:flex;align-items:center;justify-content:center;padding:.5rem;border-radius:.5rem;background-color:#3b82f6;transition:all .3s ease}.github-link:hover{background-color:#60a5fa;transform:translateY(-2px)}.github-icon{width:2.5rem;height:2.5rem;color:#fff}.project-description{color:#4b5563;margin-bottom:1rem;line-height:1.6}.tech-stack{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.tech-tag{padding:.25rem .75rem;background-color:#f3f4f6;color:#374151;border-radius:9999px;font-size:.875rem}.hover-line{position:absolute;bottom:0;left:0;width:100%;height:3px;background:linear-gradient(to right,#3b82f6,#8b5cf6);transform:scaleX(0);transition:transform .3s ease;transform-origin:left}.project-card:hover .hover-line{transform:scaleX(1)}@media (prefers-color-scheme: dark){.project-card{background-color:#1f2937;border-color:#374151}.project-title{color:#fff}.project-description{color:#d1d5db}.tech-tag{background-color:#374151;color:#e5e7eb}}.project-card.hovered{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}
