.project-image-wrapper[data-astro-cid-fa3dhjs7]{position:relative;width:100%;height:100%;overflow:hidden;background:linear-gradient(135deg,#800fff1a,#00c4f21a);border-radius:50%}.project-image[data-astro-cid-fa3dhjs7]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .3s ease}.project-image-placeholder[data-astro-cid-fa3dhjs7]{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background:linear-gradient(135deg,#800fff33,#00c4f233)}.placeholder-icon[data-astro-cid-fa3dhjs7]{width:48px;height:48px;color:var(--cyan);opacity:.6;animation:placeholder-float 3s ease-in-out infinite}@keyframes placeholder-float{0%,to{transform:translateY(0);opacity:.6}50%{transform:translateY(-8px);opacity:.4}}.placeholder-text[data-astro-cid-fa3dhjs7]{font-family:Fira Sans,sans-serif;font-size:.75rem;color:var(--white);opacity:.5;text-align:center}.project-card{position:relative;width:clamp(300px,380px,90vw);max-width:380px;background:#14141eb3;backdrop-filter:blur(10px);border:1px solid rgba(0,196,242,.2);border-radius:20px;padding:2rem;transition:all .3s ease;display:flex;flex-direction:column;gap:1.5rem;flex-shrink:0}.project-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#00c4f20d,#800fff0d);opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:1;border-radius:20px}.project-card:hover{transform:translateY(-8px);border-color:#00c4f280;box-shadow:0 12px 40px #00c4f24d,0 0 0 1px #00c4f21a}.project-card:hover:before{opacity:1}.project-avatar{position:relative;z-index:2;width:100px;height:100px;margin:0 auto;border-radius:50%;border:3px solid rgba(0,196,242,.3);overflow:hidden;transition:all .3s ease;box-shadow:0 4px 20px #00c4f233}.project-card:hover .project-avatar{border-color:var(--cyan);box-shadow:0 6px 30px #00c4f266;transform:scale(1.05)}.project-content{position:relative;z-index:2;display:flex;flex-direction:column;gap:1rem;flex-grow:1}.project-header{display:flex;flex-direction:column;gap:.75rem;align-items:center;text-align:center}.project-name{font-family:"Exo 2 Variable",sans-serif;font-size:1.5rem;font-weight:700;color:var(--white);margin:0;line-height:1.2;transition:color .3s ease}.project-card:hover .project-name{color:var(--cyan)}.project-language{display:flex;align-items:center;gap:.5rem;font-family:Fira Sans,sans-serif;font-size:.9rem;color:var(--white);opacity:.8}.language-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.language-name{font-weight:500}.project-description{font-family:Fira Sans,sans-serif;font-size:.95rem;color:var(--white);opacity:.8;line-height:1.6;margin:0;text-align:center;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.project-stats{display:flex;justify-content:center;gap:1.5rem;padding:.75rem 0;border-top:1px solid rgba(0,196,242,.15);border-bottom:1px solid rgba(0,196,242,.15)}.stat-item{display:flex;align-items:center;gap:.4rem;font-family:Fira Sans,sans-serif;font-size:.9rem;color:var(--white);opacity:.8;transition:all .3s ease}.stat-item:hover{opacity:1;color:var(--cyan)}.stat-icon{width:16px;height:16px;color:var(--cyan);flex-shrink:0}.stat-update{font-size:.85rem}.project-topics{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin:.5rem 0}.topic-tag{font-family:Fira Sans,sans-serif;font-size:.75rem;padding:.35rem .75rem;background:#00c4f226;color:var(--cyan);border:1px solid rgba(0,196,242,.3);border-radius:8px;transition:all .2s ease;font-weight:500}.topic-tag:hover{background:#00c4f240;border-color:var(--cyan);transform:translateY(-2px)}.project-footer{margin-top:auto;padding-top:.5rem}.btn-view-project{width:100%;font-family:"Exo 2 Variable",sans-serif;font-size:1rem;font-weight:600;padding:.875rem 1.5rem;background:linear-gradient(135deg,var(--cyan) 0%,var(--purple) 100%);color:var(--white);border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:none;letter-spacing:.05em}.btn-view-project:hover{transform:translateY(-2px);box-shadow:0 6px 25px #00c4f266}.btn-view-project:active{transform:translateY(0)}.btn-icon{width:18px;height:18px;transition:transform .3s ease}.btn-view-project:hover .btn-icon{transform:translate(4px)}@media(max-width:768px){.project-card{min-width:320px;max-width:320px;padding:1.75rem}.project-avatar{width:80px;height:80px}.project-name{font-size:1.3rem}.project-description{font-size:.9rem;-webkit-line-clamp:2}.project-stats{gap:1rem}.btn-view-project{font-size:.95rem;padding:.75rem 1.25rem}}@media(max-width:480px){.project-card{min-width:280px;max-width:280px}.topic-tag{font-size:.7rem;padding:.3rem .6rem}}.projects-section{position:relative;width:100%;min-height:100vh;padding:6rem 2rem;overflow:hidden}.projects-background{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.grid-pattern{position:absolute;inset:0;background-image:linear-gradient(rgba(0,196,242,.05) 2px,transparent 2px),linear-gradient(90deg,rgba(0,196,242,.05) 2px,transparent 2px),linear-gradient(rgba(0,196,242,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(0,196,242,.02) 1px,transparent 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px;animation:grid-scroll 30s linear infinite;opacity:.6}@keyframes grid-scroll{0%{transform:translate(0)}to{transform:translate(100px,100px)}}.gradient-blob{position:absolute;border-radius:50%;filter:blur(120px);opacity:.15;animation:blob-float 30s ease-in-out infinite;mix-blend-mode:screen}.blob-1{width:600px;height:600px;background:radial-gradient(circle,rgba(0,196,242,.8) 0%,rgba(0,196,242,.4) 30%,transparent 70%);top:-10%;left:-10%;animation-duration:25s}.blob-2{width:500px;height:500px;background:radial-gradient(circle,rgba(128,15,255,.8) 0%,rgba(128,15,255,.4) 30%,transparent 70%);bottom:-10%;right:-5%;animation-delay:8s;animation-duration:28s}.gradient-blob:after{content:"";position:absolute;inset:20%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);border-radius:50%;animation:pulse 5s ease-in-out infinite}@keyframes blob-float{0%,to{transform:translate(0) scale(1) rotate(0);opacity:.15}25%{transform:translate(50px,-50px) scale(1.2) rotate(90deg);opacity:.2}50%{transform:translate(-30px,40px) scale(.9) rotate(180deg);opacity:.12}75%{transform:translate(40px,30px) scale(1.1) rotate(270deg);opacity:.18}}@keyframes pulse{0%,to{transform:scale(1);opacity:.3}50%{transform:scale(1.3);opacity:.1}}.projects-background:before{content:"";position:absolute;top:20%;right:0;width:300px;height:2px;background:linear-gradient(90deg,transparent 0%,rgba(0,196,242,.5) 50%,transparent 100%);animation:line-glow 3s ease-in-out infinite}.projects-background:after{content:"";position:absolute;bottom:30%;left:0;width:250px;height:2px;background:linear-gradient(90deg,transparent 0%,rgba(128,15,255,.5) 50%,transparent 100%);animation:line-glow 3s ease-in-out infinite 1.5s}@keyframes line-glow{0%,to{opacity:.3;transform:scaleX(1)}50%{opacity:.8;transform:scaleX(1.1)}}.projects-container{position:relative;z-index:10;max-width:1400px;margin:0 auto}.projects-header{text-align:center;margin-bottom:4rem}.projects-title{font-family:"Exo 2 Variable",sans-serif;font-size:3.5rem;font-weight:800;line-height:1.1;margin:0 0 1.5rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.title-accent{color:var(--white);font-size:.6em;font-weight:600;letter-spacing:.15em;text-transform:uppercase;opacity:.8}.title-main{background:linear-gradient(135deg,var(--cyan) 0%,var(--purple) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 0 40px rgba(0,196,242,.3)}.projects-description{font-family:Fira Sans,sans-serif;font-size:1.1rem;color:var(--white);opacity:.8;max-width:650px;margin:0 auto;line-height:1.6}.carousel-wrapper{position:relative;width:100%;margin:0 auto 3rem;overflow:hidden;max-width:100%}.carousel-container{position:relative;width:100%;overflow:hidden;padding:2rem 0;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin:0 auto}.carousel-container:active{cursor:grabbing}.carousel-container.is-paused{cursor:default}@media(max-width:768px){.carousel-container{display:flex;justify-content:center}.carousel-track{padding-left:calc((100vw - 320px)/2);padding-right:calc((100vw - 320px)/2)}}.carousel-track{display:flex;gap:2rem;will-change:transform;transform:translate(0);width:-moz-fit-content;width:fit-content;margin:0 auto;position:relative}.carousel-track.is-paused{animation-play-state:paused!important}@keyframes carousel-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.carousel-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:20;width:56px;height:56px;border-radius:50%;border:2px solid rgba(0,196,242,.5);background:#1c1e1ef2;backdrop-filter:blur(15px);color:var(--cyan);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #00c4f24d,0 0 15px #00c4f233,inset 0 0 20px #00c4f20d}.carousel-nav:before{content:"";position:absolute;inset:-2px;border-radius:50%;background:linear-gradient(135deg,var(--cyan) 0%,var(--purple) 100%);opacity:0;z-index:-1;filter:blur(10px);transition:opacity .3s ease}.carousel-nav:hover{background:#00c4f226;border-color:var(--cyan);transform:translateY(-50%) scale(1.15);box-shadow:0 6px 35px #00c4f280,0 0 25px #00c4f24d,inset 0 0 25px #00c4f21a}.carousel-nav:hover:before{opacity:.6}.carousel-nav:active{transform:translateY(-50%) scale(.95)}.carousel-nav svg{width:28px;height:28px;filter:drop-shadow(0 0 5px var(--cyan));transition:filter .3s ease}.carousel-nav:hover svg{filter:drop-shadow(0 0 10px var(--cyan))}.carousel-nav-prev{left:1rem}.carousel-nav-next{right:1rem}.carousel-indicators{display:flex;justify-content:center;gap:.75rem;margin-top:2rem;padding:1rem;cursor:grab;-moz-user-select:none;user-select:none;-webkit-user-select:none;touch-action:none}.carousel-indicators:active{cursor:grabbing}.indicator{width:12px;height:12px;border-radius:50%;border:2px solid rgba(0,196,242,.4);background:transparent;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);padding:0;position:relative;overflow:hidden;pointer-events:auto}.indicator:before{content:"";position:absolute;inset:-2px;border-radius:50%;background:linear-gradient(135deg,var(--cyan) 0%,var(--purple) 100%);opacity:0;transition:opacity .3s ease}.indicator:hover{background:#00c4f24d;border-color:var(--cyan);transform:scale(1.3)}.indicator:hover:before{opacity:.3}.indicator.active{background:var(--cyan);border-color:var(--cyan);box-shadow:0 0 15px #00c4f299,0 0 30px #00c4f24d;transform:scale(1.2)}.indicator.active:before{opacity:1;animation:indicator-pulse 2s ease-in-out infinite}@keyframes indicator-pulse{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.5);opacity:0}}.projects-actions{display:flex;justify-content:center;margin-top:3rem}.btn-view-all{font-family:"Exo 2 Variable",sans-serif;font-size:1.1rem;font-weight:600;padding:1rem 2.5rem;background:linear-gradient(135deg,var(--cyan) 0%,var(--purple) 100%);color:var(--white);border:none;border-radius:12px;cursor:pointer;display:flex;align-items:center;gap:.75rem;transition:all .3s ease;box-shadow:0 4px 20px #00c4f24d;letter-spacing:.05em;text-decoration:none}.btn-view-all:hover{transform:translateY(-2px);box-shadow:0 6px 30px #00c4f280}.btn-view-all:active{transform:translateY(0)}.external-icon{width:20px;height:20px;transition:transform .3s ease}.btn-view-all:hover .external-icon{transform:translate(3px,-3px)}@media(max-width:1024px){.carousel-nav-prev{left:-12px}.carousel-nav-next{right:-12px}.carousel-nav{width:40px;height:40px}.carousel-nav svg{width:20px;height:20px}}@media(max-width:768px){.projects-section{padding:4rem 1.5rem}.projects-title{font-size:2.5rem}.projects-description{font-size:1rem}.carousel-nav{display:none}.carousel-track{gap:1.5rem}.carousel-container{padding:1.5rem 0;touch-action:pan-y pinch-zoom;justify-content:flex-start}.carousel-track{gap:1.5rem;padding-left:calc((100vw - 320px)/2)}.btn-view-all{font-size:1rem;padding:.875rem 2rem}.indicator{width:10px;height:10px}.carousel-indicators{gap:.6rem}}@media(max-width:480px){.projects-title{font-size:2rem}.title-accent{font-size:.7em}.carousel-indicators{gap:.5rem}.indicator{width:8px;height:8px}}.carousel-nav:focus-visible,.indicator:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}@media(prefers-reduced-motion:reduce){.carousel-track{animation:none!important;transition:transform .3s ease}.grid-pattern,.gradient-blob{animation:none!important}}
