:root{--primary-color: #007bff;--primary-dark: #003366;--accent-color: #f0a500;--bg-dark: #0d0d0d;--bg-secondary: #1a1a1a;--text-primary: #e0e0e0;--text-secondary: #a0a0a0;--border-color: #2a2a2a;--shadow-lg: 0 4px 15px rgba(0, 0, 0, .2);--shadow-hover: 0 12px 30px rgba(0, 123, 255, .4);--transition: all .4s ease-out}body{background-color:var(--bg-dark);color:var(--text-primary);font-family:Roboto,sans-serif;line-height:1.6;overflow-x:hidden}.container{max-width:1200px;margin:0 auto;padding:0 15px;position:relative;z-index:1}.row{display:flex;flex-wrap:wrap;margin:-15px}.col-lg-6,.col-lg-8{flex:1;padding:15px}.col-lg-6{flex-basis:50%;max-width:50%}.col-lg-8{flex-basis:66.667%;max-width:66.667%}@media (max-width: 768px){.col-lg-6,.col-lg-8{flex-basis:100%;max-width:100%}}.projects-hero{background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary-color) 100%);color:var(--text-primary);padding:5rem 0;position:relative;overflow:hidden;z-index:0}#particle-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;opacity:.5}.projects-hero:before{content:"";position:absolute;inset:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="%23ffffff" fill-opacity="0.05" d="M0,96L48,112C96,128,192,160,288,160C384,160,480,128,576,112C672,96,768,96,864,112C960,128,1056,160,1152,160C1248,160,1344,128,1392,112L1440,96L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z"></path></svg>');background-size:cover;animation:wave 15s linear infinite;will-change:transform;opacity:.1}@keyframes wave{0%{transform:translate(0)}to{transform:translate(-1440px)}}.page-title{font-size:clamp(2.5rem,6vw,4rem);font-weight:800;margin-bottom:1.5rem;color:var(--text-primary);text-shadow:0 0 10px rgba(0,123,255,.3)}.page-subtitle{font-size:1.2rem;margin-bottom:2.5rem;color:var(--text-secondary);max-width:650px;text-shadow:0 0 5px rgba(0,0,0,.3)}.filters-section{padding:5rem 0;background:var(--bg-secondary);position:relative}.section-title{font-size:3rem;font-weight:800;margin-bottom:2rem;color:var(--text-primary);text-align:center;text-shadow:0 0 10px rgba(0,123,255,.2)}.filter-buttons{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.filter-btn{border-color:var(--primary-color);color:var(--primary-color);background:transparent;padding:.5rem 1.5rem;border-radius:20px;transition:var(--transition)}.filter-btn.active,.filter-btn:hover{background-color:var(--primary-color);color:var(--text-primary)}.projects-grid{padding:5rem 0;background:var(--bg-dark);position:relative}.project-card{border:2px solid var(--border-color);background:var(--bg-secondary);border-radius:15px;overflow:hidden;transition:var(--transition);position:relative}.project-card:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,#f0a5001a,#0000 70%);animation:radialGlow 10s linear infinite;z-index:0}@keyframes radialGlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.project-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover)}.project-image{position:relative;overflow:hidden}.project-image img{width:100%;height:auto;transition:var(--transition)}.project-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000000b3;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.project-card:hover .project-overlay{opacity:1}.project-actions{text-align:center}.project-actions .btn{margin:0 .5rem}.btn-primary-custom{background-color:var(--primary-color);color:var(--text-primary)}.btn-primary-custom:hover{background-color:var(--primary-dark);color:var(--text-primary)}.btn-outline-custom{border-color:var(--primary-color);color:var(--primary-color);background:transparent}.btn-outline-custom:hover{background-color:var(--primary-color);color:var(--text-primary)}.btn-light{background-color:#fff;color:#000}.btn-light:hover{background-color:#e0e0e0;color:#000}.project-content{padding:1.5rem;position:relative;z-index:1}.project-header{margin-bottom:1rem}.project-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.project-year{font-size:1rem;color:var(--text-secondary);display:block}.project-description{color:var(--text-secondary);margin-bottom:1.5rem}.project-technologies .tech-tag{background-color:var(--bg-dark);color:var(--text-primary);padding:.25rem .75rem;border-radius:15px;margin-right:.5rem;font-size:.9rem}.cta-section{padding:5rem 0;background:var(--bg-secondary);position:relative}.cta-card{padding:2.5rem;border:2px solid var(--border-color);background:var(--bg-dark);border-radius:15px;transition:var(--transition)}.cta-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover)}.cta-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:1rem}.cta-description{color:var(--text-secondary);margin-bottom:2rem}.cta-buttons .btn{padding:.75rem 2rem}@media (max-width: 768px){.page-title{font-size:clamp(1.8rem,5vw,2.5rem)}.page-subtitle{font-size:clamp(1rem,3vw,1.2rem)}.section-title{font-size:2.5rem}.filter-buttons{flex-direction:column;align-items:center}.filter-btn{margin-bottom:.5rem}}.fade-in-initial{opacity:0}.fade-in{animation:fadeIn .8s cubic-bezier(.4,0,.2,1) forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}section{opacity:0;transform:translateY(30px) scale(.95);transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1)}section.visible{opacity:1;transform:translateY(0) scale(1)}
