*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}:root{--indigo-400:#818cf8;--indigo-500:#6366f1;--indigo-600:#4f46e5;--cyan-400:#22d3ee;--cyan-500:#06b6d4;--cyan-600:#0891b2;--bg-primary:#000;--bg-card:rgba(15,15,25,0.8);--border-color:rgba(99,102,241,0.15);--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b}html{scroll-behavior:smooth}body{font-family:'Space Grotesk',sans-serif;background:#000;color:var(--text-primary);overflow-x:hidden;line-height:1.6}#bg-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.bg-gradient{position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 15% 15%,rgba(99,102,241,0.08) 0%,transparent 50%),radial-gradient(ellipse at 85% 85%,rgba(6,182,212,0.06) 0%,transparent 50%);pointer-events:none;z-index:0}header{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(0,0,0,0.85);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-color)}.header-container{max-width:1280px;margin:0 auto;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between}.logo{font-family:'Syne',sans-serif;font-size:1.25rem;font-weight:700;white-space:nowrap;background:linear-gradient(135deg,var(--indigo-500),var(--cyan-500));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-decoration:none;flex-shrink:0}nav{display:none;align-items:center;gap:clamp(0.6rem,1.2vw,1.5rem)}@media (min-width:900px){nav{display:flex}}nav a{color:var(--text-secondary);text-decoration:none;font-weight:500;font-size:0.85rem;white-space:nowrap;transition:color 0.3s}nav a:hover{color:var(--indigo-400)}.header-right{display:flex;align-items:center;gap:0.5rem;flex-shrink:0}.btn-header{padding:0.5rem 1.1rem;background:linear-gradient(135deg,var(--indigo-500),var(--cyan-500));border:none;border-radius:0.5rem;color:#fff;font-weight:600;font-size:0.85rem;white-space:nowrap;text-decoration:none;transition:all 0.3s;display:none}.btn-header-outline{padding:0.4rem 1rem;background:transparent;border:1.5px solid rgba(99,102,241,0.5);border-radius:0.5rem;color:#a5b4fc;font-weight:500;font-size:0.8rem;white-space:nowrap;text-decoration:none;transition:all 0.3s;display:none}.btn-header-outline:hover{background:rgba(99,102,241,0.15);color:#fff;border-color:var(--indigo-500)}@media (min-width:900px){.btn-header,.btn-header-outline{display:inline-block}}.btn-header:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(99,102,241,0.3)}.mobile-menu-btn{display:flex;flex-direction:column;gap:5px;padding:0.5rem;background:transparent;border:none;cursor:pointer}.mobile-menu-btn span{width:24px;height:2px;background:#fff;transition:all 0.3s}@media (min-width:900px){.mobile-menu-btn{display:none}}.mobile-menu-btn.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.mobile-menu-btn.active span:nth-child(2){opacity:0}.mobile-menu-btn.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.mobile-nav{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.95);backdrop-filter:blur(20px);z-index:45;flex-direction:column;align-items:center;justify-content:center;gap:2rem}.mobile-nav.open{display:flex}.mobile-nav a{color:var(--text-primary);text-decoration:none;font-family:'Syne',sans-serif;font-size:1.5rem;font-weight:600;transition:color 0.3s}.mobile-nav a:hover{color:var(--indigo-400)}.lang-selector{position:relative}.lang-btn{display:flex;align-items:center;gap:0.35rem;padding:0.375rem 0.625rem;background:rgba(99,102,241,0.1);border:1px solid rgba(99,102,241,0.2);border-radius:0.5rem;color:var(--text-secondary);font-size:0.8rem;font-weight:600;cursor:pointer;transition:all 0.3s}.lang-btn:hover{background:rgba(99,102,241,0.2);color:#fff}.lang-btn svg{width:14px;height:14px}.lang-dropdown{display:none;position:absolute;top:100%;right:0;margin-top:0.5rem;background:rgba(15,15,25,0.95);border:1px solid rgba(99,102,241,0.2);border-radius:0.75rem;padding:0.375rem;z-index:60;backdrop-filter:blur(20px);min-width:140px}.lang-dropdown.open{display:block}.lang-option{display:flex;align-items:center;gap:0.5rem;width:100%;padding:0.5rem 0.75rem;border:none;background:transparent;color:var(--text-secondary);font-size:0.85rem;font-weight:500;cursor:pointer;border-radius:0.5rem;transition:all 0.2s}.lang-option:hover{background:rgba(99,102,241,0.15);color:#fff}.lang-option.active{color:var(--indigo-400);background:rgba(99,102,241,0.1)}section{position:relative;z-index:10}.section-header{text-align:center;margin-bottom:4rem}.section-label{background:linear-gradient(135deg,var(--indigo-400),var(--cyan-400));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:0.875rem;font-weight:600;text-transform:uppercase;letter-spacing:0.2em;margin-bottom:1rem;display:block}.section-title{font-family:'Syne',sans-serif;font-size:clamp(2rem,5vw,3rem);font-weight:700;margin-bottom:1.5rem}.section-title span{background:linear-gradient(135deg,var(--indigo-400),var(--cyan-400));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section-description{color:var(--text-muted);max-width:672px;margin:0 auto}.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:5rem 1.5rem}.hero-content{max-width:1024px;text-align:center}.badge{display:inline-flex;align-items:center;gap:0.5rem;padding:0.5rem 1rem;background:rgba(99,102,241,0.1);border:1px solid rgba(99,102,241,0.2);border-radius:9999px;margin-bottom:2rem}.badge-dot{width:8px;height:8px;background:var(--cyan-500);border-radius:50%;animation:pulse-dot 2s infinite}@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:0.5}}.badge-text{color:var(--indigo-400);font-size:0.875rem;font-weight:500}.hero-title{font-family:'Syne',sans-serif;font-size:clamp(2.5rem,8vw,5.5rem);font-weight:700;line-height:1.1;margin-bottom:1.5rem}.hero-title-gradient{background:linear-gradient(135deg,var(--indigo-400),var(--cyan-400));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.typewriter-container{height:3rem;margin-bottom:2rem}.typewriter-text{font-size:1.4rem;color:var(--text-secondary)}@media (min-width:768px){.typewriter-text{font-size:1.75rem}}.cursor{display:inline-block;width:2px;height:1.5rem;background:var(--indigo-500);margin-left:4px;animation:blink 1s infinite}@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}.hero-description{font-size:1.3rem;color:var(--text-secondary);max-width:750px;margin:0 auto 3rem;line-height:1.8}.cta-buttons{display:flex;flex-direction:column;gap:1rem;justify-content:center}@media (min-width:640px){.cta-buttons{flex-direction:row}}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;padding:1rem 2rem;background:linear-gradient(135deg,var(--indigo-500),var(--cyan-500));border:none;border-radius:0.75rem;color:#fff;font-weight:700;font-size:1.125rem;text-decoration:none;transition:all 0.3s;box-shadow:0 10px 40px rgba(99,102,241,0.25)}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 20px 50px rgba(99,102,241,0.35)}.btn-primary svg{transition:transform 0.3s}.btn-primary:hover svg{transform:translateX(4px)}.btn-secondary{padding:1rem 2rem;background:transparent;border:1px solid rgba(99,102,241,0.3);border-radius:0.75rem;color:var(--text-primary);font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:all 0.3s}.btn-secondary:hover{border-color:var(--indigo-500);background:rgba(99,102,241,0.1)}.scroll-indicator{position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);animation:bounce 2s infinite}@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-10px)}}.scroll-indicator-inner{width:24px;height:40px;border:2px solid rgba(99,102,241,0.3);border-radius:9999px;display:flex;justify-content:center;padding-top:8px}.scroll-indicator-dot{width:4px;height:10px;background:linear-gradient(to bottom,var(--indigo-500),var(--cyan-500));border-radius:9999px}.counters-section{padding:5rem 1.5rem}.counters-container{max-width:1152px;margin:0 auto}.counters-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}@media (min-width:768px){.counters-grid{grid-template-columns:repeat(4,1fr)}}.counter-card{text-align:center;padding:2rem 1.5rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:1rem;transition:all 0.3s}.counter-card:hover{border-color:rgba(99,102,241,0.3);transform:translateY(-5px)}.counter-value{font-family:'Syne',sans-serif;font-size:2.5rem;font-weight:700;background:linear-gradient(135deg,var(--indigo-400),var(--cyan-400));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:0.5rem}@media (min-width:768px){.counter-value{font-size:3rem}}.counter-label{color:var(--text-muted);font-size:0.875rem;text-transform:uppercase;letter-spacing:0.1em}.cursor-orb{position:fixed;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(99,102,241,0.12) 0%,rgba(6,182,212,0.06) 40%,transparent 70%);pointer-events:none;z-index:2;transform:translate(-50%,-50%);transition:left 0.15s ease-out,top 0.15s ease-out,opacity 0.3s;mix-blend-mode:screen;opacity:0}.cursor-orb.visible{opacity:1}@media (max-width:768px){.cursor-orb{display:none}}.projets-section{padding:6rem 1.5rem}.projets-container{max-width:1280px;margin:0 auto}.bento-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;grid-auto-rows:300px}@media (min-width:768px){.bento-grid{grid-template-columns:repeat(3,1fr)}}.bento-card{position:relative;overflow:hidden;border-radius:1.5rem;background:var(--bg-card);border:1px solid var(--border-color);transition:all .3s cubic-bezier(0.4,0,0.2,1)}.bento-card:hover{transform:translateY(-4px);border-color:rgba(99,102,241,0.3);box-shadow:0 20px 50px rgba(0,0,0,0.3)}.bento-card--wide{grid-column:span 1}@media (min-width:768px){.bento-card--wide{grid-column:span 2}}.bento-card__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.85) 0%,transparent 60%);z-index:2}.bento-card__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 0.7s ease}.bento-card:hover .bento-card__img{transform:scale(1.1)}.bento-card__content{position:absolute;bottom:0;left:0;padding:2rem;z-index:3;width:100%}.bento-card__tags{display:flex;gap:0.5rem;margin-bottom:0.75rem;flex-wrap:wrap}.bento-tag{padding:0.25rem 0.75rem;font-size:0.75rem;font-weight:600;border-radius:9999px;backdrop-filter:blur(8px)}.bento-tag--primary{background:rgba(99,102,241,0.2);color:var(--indigo-400);border:1px solid rgba(99,102,241,0.3)}.bento-card__title{font-family:'Syne',sans-serif;font-size:1.5rem;font-weight:700;color:#fff;margin-bottom:0.25rem}.bento-card__desc{color:var(--text-secondary);font-size:0.875rem}.bento-card--simple{display:flex;flex-direction:column;justify-content:space-between;padding:2rem}.bento-card__link{color:#fff;font-size:0.875rem;font-weight:600;text-decoration:none;display:flex;align-items:center;gap:0.5rem;transition:gap 0.3s}.bento-card:hover .bento-card__link{gap:0.75rem}.testimonials-section{padding:100px 0;background:#000;overflow:hidden;position:relative}.testimonials-carousel{position:relative;max-width:1400px;margin:0 auto;padding:0 20px}.carousel-track-container{overflow:hidden;width:100%}.carousel-track{display:flex;transition:transform 0.6s cubic-bezier(0.23,1,0.32,1);gap:2rem;padding:2rem 0;will-change:transform}.testimonial-card{flex:0 0 calc(100% / 3 - (4rem / 3));background:rgba(15,15,25,0.8);border:1px solid rgba(99,102,241,0.15);border-radius:1.5rem;padding:2.5rem;backdrop-filter:blur(10px);transition:all 0.4s ease;display:flex;flex-direction:column;height:auto;cursor:grab;user-select:none}.testimonial-card:active{cursor:grabbing}.testimonial-card:hover{border-color:rgba(99,102,241,0.5);transform:translateY(-10px);box-shadow:0 20px 40px rgba(0,0,0,0.4)}.testimonial-header{display:flex;align-items:center;gap:1.2rem;margin-bottom:1.5rem}.testimonial-avatar{width:55px;height:55px;border-radius:50%;background:linear-gradient(135deg,#6366f1 0%,#06b6d4 100%);display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-family:'Space Grotesk',sans-serif;font-size:1.2rem;flex-shrink:0}.testimonial-info{overflow:hidden}.testimonial-author{font-weight:700;color:#fff;font-size:1.1rem;margin-bottom:0.2rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.testimonial-role{font-size:0.85rem;color:rgba(255,255,255,0.5);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.testimonial-stars{color:#fbbf24;margin-bottom:1.2rem;font-size:0.9rem;letter-spacing:2px}.testimonial-quote{font-style:italic;line-height:1.7;color:rgba(255,255,255,0.85);font-size:1rem;margin:0}.carousel-nav{display:flex;justify-content:center;align-items:center;gap:2.5rem;margin-top:4rem}.carousel-btn{background:linear-gradient(135deg,#6366f1 0%,#06b6d4 100%);border:none;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:all 0.3s ease;box-shadow:0 4px 15px rgba(99,102,241,0.3);z-index:10}.carousel-btn:hover{transform:scale(1.1);box-shadow:0 6px 20px rgba(99,102,241,0.5)}.carousel-btn svg{width:24px;height:24px}.carousel-dots{display:flex;gap:0.8rem;align-items:center}.dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,0.2);cursor:pointer;transition:all 0.3s ease}.dot.active{background:#6366f1;width:30px;border-radius:5px}@media (max-width:1024px){.testimonial-card{flex:0 0 calc(100% / 2 - (2rem / 2))}}@media (max-width:768px){.testimonial-card{flex:0 0 100%}.testimonials-section{padding:60px 0}.carousel-nav{gap:1.5rem}}.timeline-section{padding:6rem 1.5rem}.timeline-container{max-width:800px;margin:0 auto;position:relative;padding-left:3rem}.timeline-line{position:absolute;left:1rem;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--indigo-500),var(--cyan-500),transparent)}.timeline-item{position:relative;margin-bottom:3rem}.timeline-dot{position:absolute;left:-2.45rem;top:0.5rem;width:16px;height:16px;border-radius:50%;background:var(--indigo-500);border:4px solid #000;z-index:2}.timeline-year{font-family:'Syne',sans-serif;font-size:1.25rem;font-weight:800;color:var(--indigo-400);margin-bottom:0.5rem}.timeline-content{background:var(--bg-card);border:1px solid var(--border-color);padding:1.5rem;border-radius:1rem}.about-section{padding:6rem 1.5rem}.about-container{max-width:1280px;margin:0 auto}.about-grid{display:grid;gap:4rem;align-items:center}@media (min-width:1024px){.about-grid{grid-template-columns:1fr 1fr}}.about-content h3{font-family:'Syne',sans-serif;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;margin-bottom:1.5rem}.about-content h3 span{background:linear-gradient(135deg,var(--indigo-400),var(--cyan-400));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.about-content p{color:var(--text-secondary);margin-bottom:2rem;line-height:1.8;font-size:1.05rem}.about-features-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.about-feat{display:flex;align-items:flex-start;gap:1rem}.about-feat-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.25rem}.about-feat-icon--indigo{background:rgba(99,102,241,0.15);color:var(--indigo-400)}.about-feat-icon--cyan{background:rgba(6,182,212,0.15);color:var(--cyan-400)}.about-feat-icon--purple{background:rgba(139,92,246,0.15);color:#a78bfa}.about-feat-icon--orange{background:rgba(249,115,22,0.15);color:#fb923c}.about-feat h4{font-weight:700;font-size:0.95rem;margin-bottom:0.25rem}.about-feat p{color:var(--text-muted);font-size:0.85rem;margin:0;line-height:1.5}.code-block{background:rgba(15,15,25,0.95);border:1px solid var(--border-color);border-radius:1.5rem;padding:2rem;box-shadow:0 25px 60px rgba(0,0,0,0.4)}.code-block__dots{display:flex;gap:0.5rem;margin-bottom:2rem}.code-block__dot{width:12px;height:12px;border-radius:50%}.code-block__dot--red{background:#ef4444}.code-block__dot--yellow{background:#eab308}.code-block__dot--green{background:#22c55e}.code-block__code{font-family:'JetBrains Mono',monospace;font-size:0.85rem;line-height:1.8;color:var(--text-secondary)}.code-block__code .kw{color:#a78bfa}.code-block__code .var{color:#fde68a}.code-block__code .str{color:#4ade80}.code-block__code .fn{color:var(--cyan-400)}.code-block__code .bool{color:var(--indigo-400)}.code-block__code .code-cursor{display:inline-block;width:8px;height:1.1em;background:var(--indigo-400);animation:blink 1s step-end infinite;vertical-align:text-bottom;margin-left:2px}.contact-section{padding:6rem 1.5rem}.contact-container{max-width:960px;margin:0 auto}.contact-icon{width:64px;height:64px;background:rgba(99,102,241,0.1);color:var(--indigo-400);border-radius:1rem;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;font-size:2rem}.contact-box{background:var(--bg-card);border:1px solid var(--border-color);border-radius:1.5rem;padding:2.5rem;position:relative;overflow:hidden}@media (min-width:768px){.contact-box{padding:3rem}}.contact-form{position:relative;z-index:1}.form-grid{display:grid;gap:1.5rem;margin-bottom:1.5rem}@media (min-width:640px){.form-grid{grid-template-columns:repeat(2,1fr)}}.form-group{display:flex;flex-direction:column;gap:0.5rem}.form-group.full{grid-column:1 / -1}.form-group label{color:var(--text-secondary);font-size:0.875rem;font-weight:500}.form-group input,.form-group select,.form-group textarea{padding:0.875rem 1rem;background:rgba(0,0,0,0.4);border:1px solid var(--border-color);border-radius:0.75rem;color:var(--text-primary);font-family:inherit;font-size:1rem;transition:all 0.3s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--indigo-500);box-shadow:0 0 0 3px rgba(99,102,241,0.15)}.form-group textarea{resize:vertical;min-height:120px}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted)}.form-submit{display:flex;justify-content:flex-end;margin-top:1.5rem}.btn-submit{padding:0.875rem 2.5rem;background:linear-gradient(135deg,var(--indigo-500),var(--cyan-500));border:none;border-radius:0.75rem;color:#fff;font-weight:700;font-size:1rem;cursor:pointer;transition:all 0.3s;box-shadow:0 10px 40px rgba(99,102,241,0.25)}.btn-submit:hover{transform:translateY(-2px);box-shadow:0 15px 50px rgba(99,102,241,0.35)}.btn-submit:disabled{opacity:0.7;cursor:not-allowed}.form-success{display:none;text-align:center;padding:2rem}.form-success.show{display:block}.form-success-icon{font-size:4rem;margin-bottom:1rem}.form-success h3{font-family:'Syne',sans-serif;font-size:1.5rem;margin-bottom:0.5rem;background:linear-gradient(135deg,var(--indigo-400),var(--cyan-400));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.form-success p{color:var(--text-secondary)}.contact-links{display:flex;justify-content:center;gap:1.5rem;margin-top:2rem;font-size:0.875rem;color:var(--text-muted)}.contact-links a{display:flex;align-items:center;gap:0.375rem;color:var(--text-muted);text-decoration:none;transition:color 0.3s}.contact-links a:hover{color:var(--indigo-400)}footer{position:relative;padding:4rem 1.5rem;border-top:1px solid var(--border-color);z-index:10;background:rgba(0,0,0,0.9)}.footer-container{max-width:1280px;margin:0 auto}.footer-grid{display:grid;gap:3rem;margin-bottom:3rem}@media (min-width:768px){.footer-grid{grid-template-columns:2fr 1fr 1fr}}.footer-brand h3{font-family:'Syne',sans-serif;font-size:1.5rem;font-weight:700;margin-bottom:1rem;background:linear-gradient(135deg,var(--indigo-500),var(--cyan-500));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.footer-brand p{color:var(--text-muted);max-width:400px;margin-bottom:1.5rem;line-height:1.7}.social-links{display:flex;gap:1rem}.social-link{width:40px;height:40px;background:rgba(99,102,241,0.1);border:1px solid rgba(99,102,241,0.2);border-radius:0.5rem;display:flex;align-items:center;justify-content:center;color:var(--indigo-400);text-decoration:none;transition:all 0.3s}.social-link:hover{background:rgba(99,102,241,0.2);border-color:var(--indigo-500)}.footer-links h4{color:#fff;font-weight:600;margin-bottom:1rem}.footer-links ul{list-style:none}.footer-links li{margin-bottom:0.5rem}.footer-links a{color:var(--text-muted);text-decoration:none;transition:color 0.3s}.footer-links a:hover{color:var(--indigo-400)}.footer-contact ul{list-style:none;color:var(--text-muted)}.footer-contact li{margin-bottom:0.5rem}.footer-bottom{padding-top:2rem;border-top:1px solid var(--border-color);text-align:center;color:var(--text-muted);font-size:0.875rem}.whatsapp-btn{position:fixed;bottom:2rem;right:2rem;width:56px;height:56px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:100;box-shadow:0 10px 25px rgba(37,211,102,0.3);transition:all 0.3s;animation:pulse-wa 2s infinite}.whatsapp-btn:hover{transform:scale(1.1)}@keyframes pulse-wa{0%{box-shadow:0 0 0 0 rgba(37,211,102,0.7)}70%{box-shadow:0 0 0 15px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}.reveal{opacity:0;transform:translateY(30px);transition:all 0.8s cubic-bezier(0.4,0,0.2,1)}.reveal.active{opacity:1;transform:none}@media (max-width:575.98px){.hero-title{font-size:2rem}.counter-value{font-size:2rem}.contact-box{padding:1.5rem}.about-features-grid{grid-template-columns:1fr}}#services{padding:100px 0;background:#0a0a0f;overflow:hidden}.services-inner{max-width:1200px;margin:0 auto;padding:0 20px}.terminal-window{background:#0d1117;border-radius:12px;border:1px solid rgba(255,255,255,0.1);box-shadow:0 20px 50px rgba(0,0,0,0.5);margin-bottom:80px;font-family:'Space Grotesk',monospace;overflow:hidden}.terminal-header{background:rgba(255,255,255,0.05);padding:12px 16px;display:flex;gap:8px;border-bottom:1px solid rgba(255,255,255,0.05)}.dot{width:12px;height:12px;border-radius:50%}.red{background:#ff5f56}.yellow{background:#ffbd2e}.green{background:#27c93f}.terminal-body{padding:24px;color:#e6edf3;font-size:14px;line-height:1.8;min-height:200px}.terminal-line{margin-bottom:6px;display:block;white-space:pre}.terminal-live{color:#22c55e;font-weight:bold;opacity:0;transition:opacity 0.3s}.terminal-live.visible{opacity:1}#services .svc-bento{display:grid;gap:24px;grid-template-columns:1fr}@media (min-width:768px){#services .svc-bento{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){#services .svc-bento{grid-template-columns:repeat(3,1fr)}#services .bento-wide{grid-column:span 2}}.bento-card{background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.06);border-radius:24px;padding:40px;transition:transform 0.4s cubic-bezier(0.175,0.885,0.32,1.275),border-color 0.3s,box-shadow 0.3s;display:flex;flex-direction:column;justify-content:space-between;cursor:default}.bento-card:hover{transform:scale(1.02);border-color:#6366f1;box-shadow:0 20px 40px rgba(99,102,241,0.1)}.card-number{font-family:'Syne',sans-serif;font-size:64px;font-weight:800;background:linear-gradient(135deg,#6366f1,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:16px;line-height:1}.card-title{font-family:'Syne',sans-serif;font-size:24px;font-weight:700;color:#fff;margin-bottom:12px}.card-punch{font-family:'Space Grotesk',sans-serif;font-size:16px;color:rgba(255,255,255,0.6);margin-bottom:32px}.card-project{font-family:'Space Grotesk',sans-serif;font-size:14px;color:#06b6d4;font-weight:600;text-transform:uppercase;letter-spacing:2px}.marquee-container{margin-top:100px;overflow:hidden;white-space:nowrap;position:relative;padding:40px 0}.marquee-content{display:inline-block;animation:marquee-scroll 30s linear infinite}.marquee-item{display:inline-block;font-family:'Space Grotesk',sans-serif;font-size:18px;font-weight:600;color:rgba(255,255,255,0.2);letter-spacing:12px;padding:0 60px}@keyframes marquee-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* COOKIE BANNER */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;background:rgba(15,15,25,0.95);backdrop-filter:blur(20px);border-top:1px solid var(--border-color);padding:1.25rem 1.5rem;z-index:9999;display:none;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.5rem}.cookie-banner.show{display:flex}.cookie-banner__text{color:var(--text-secondary);font-size:0.95rem;line-height:1.5;flex:1;min-width:300px}.cookie-banner__text a{color:var(--indigo-400);text-decoration:underline}.cookie-banner__btns{display:flex;gap:1rem}.cookie-banner__btn{padding:0.75rem 1.5rem;border-radius:0.5rem;font-weight:700;cursor:pointer;transition:all 0.3s;font-size:0.9rem}.cookie-banner__btn--accept{background:linear-gradient(135deg,var(--indigo-500),var(--cyan-500));color:#fff;border:none;box-shadow:0 4px 15px rgba(99,102,241,0.2)}.cookie-banner__btn--accept:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(99,102,241,0.3)}.cookie-banner__btn--refuse{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.cookie-banner__btn--refuse:hover{border-color:var(--indigo-500);color:#fff}@media (max-width:640px){.cookie-banner{flex-direction:column;align-items:flex-start}.cookie-banner__btns{width:100%}.cookie-banner__btn{flex:1}}
@media (prefers-reduced-motion: reduce) { .reveal { transition: none !important; } .badge-dot, .cursor, .scroll-indicator, .marquee-content, .whatsapp-btn { animation: none !important; } .bento-card, .testimonial-card, .counter-card, .btn-primary, .btn-submit, .btn-header, .carousel-btn { transition: none !important; } .cursor-orb { display: none !important; } #bg-canvas { display: none !important; } .carousel-track { transition: none !important; } }
/* BASE TYPOGRAPHY GLOBALE — Cohérence inter-pages */
h1,h2,h3,h4,h5,h6{font-family:'Syne',sans-serif;color:var(--text-primary);line-height:1.2;margin:0}
p{font-family:'Space Grotesk',sans-serif;line-height:1.75;color:var(--text-secondary);margin:0}
h2:not([class]){font-size:clamp(1.75rem,4vw,2.75rem);font-weight:700;margin-bottom:1.5rem}
h3:not([class]){font-size:clamp(1.1rem,2.5vw,1.5rem);font-weight:700;margin-bottom:0.75rem}
h4:not([class]){font-size:1.1rem;font-weight:600;margin-bottom:0.5rem}
p:not([class]){font-size:1rem;color:var(--text-secondary);line-height:1.75;margin-bottom:1rem}
/* INNER PAGES — TYPOGRAPHY STANDARDISÉE */
.inner-hero-title{font-family:'Syne',sans-serif;font-size:clamp(2.5rem,8vw,5.5rem);font-weight:800;line-height:1.1;margin-bottom:1.5rem;color:var(--text-primary)}
.inner-hero-title span{background:linear-gradient(135deg,var(--indigo-400),var(--cyan-400));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.inner-hero-desc{font-size:clamp(1.1rem,2vw,1.3rem);color:var(--text-secondary);max-width:750px;margin:0 auto 3rem;line-height:1.8}
.service-card-title{font-family:'Syne',sans-serif;color:var(--text-primary);font-size:1.2rem;font-weight:700;margin-bottom:0.75rem}
/* ALIGNER hero-title sur 800 comme référence visuelle index.html */
.hero-title{font-weight:800!important}
