@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.home-page{display:flex;justify-content:center;align-items:flex-start;padding:8px 0 40px}.hero-card{display:flex;align-items:center;gap:48px;background:#fff;border:1px solid #D0DCE8;border-radius:20px;padding:48px;max-width:860px;width:100%;box-shadow:0 4px 32px #0d1b2a12;animation:fadeUp .55s ease both}.hero-photo-wrap{flex-shrink:0;width:160px;height:160px;border-radius:50%;background:#eef2f7;border:3px solid rgba(0,200,232,.35);overflow:hidden;box-shadow:0 0 0 6px #00c8e81a,0 8px 24px #0d1b2a26;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease}.hero-photo-wrap:hover{transform:translateY(-8px) scale(1.04);box-shadow:0 0 0 8px #00c8e833,0 18px 40px #00c8e840,0 6px 20px #0d1b2a2e}.hero-photo{width:100%;height:100%;object-fit:cover}.hero-content{display:flex;flex-direction:column;gap:14px;flex:1}.hero-role{font-family:JetBrains Mono,Fira Code,monospace;font-size:.8rem;font-weight:700;color:#06c;text-transform:uppercase;letter-spacing:.1em;margin:0}.hero-name{font-size:2rem;font-weight:700;color:#0d1b2a;line-height:1.1;margin:0;letter-spacing:-.02em}.hero-name span{color:#06c}.hero-about{font-size:.93rem;line-height:1.65;color:#4a6080;margin:0}.hero-tags{display:flex;flex-wrap:wrap;gap:8px}.tag{display:inline-flex;align-items:center;padding:4px 12px;border-radius:20px;font-size:.78rem;font-weight:500;font-family:JetBrains Mono,Fira Code,monospace;letter-spacing:.02em}.tag-location{background:#eef2f7;color:#4a6080;border:1px solid #D0DCE8}.tag-status{background:#00c8e81a;color:#007082;border:1px solid rgba(0,200,232,.25)}.hero-languages{display:flex;flex-wrap:wrap;gap:8px}.lang-badge{display:flex;flex-direction:column;padding:8px 14px;background:#eef2f7;border:1px solid #D0DCE8;border-radius:10px;min-width:90px}.lang-label{font-size:.82rem;font-weight:600;color:#0d1b2a}.lang-level{font-size:.73rem;color:#8aa0b8;font-family:JetBrains Mono,Fira Code,monospace;margin-top:2px}.cv-btn{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:11px 24px;font-size:.9rem;font-weight:600;font-family:Poppins,sans-serif;background:#0d1b2a;color:#f8faff;border:none;border-radius:10px;cursor:pointer;transition:background .2s ease,transform .15s ease,box-shadow .2s ease;box-shadow:0 4px 14px #0d1b2a2e}.cv-btn:hover:not(:disabled){background:#1e3a5f;transform:translateY(-2px);box-shadow:0 8px 20px #0d1b2a3d}.cv-btn:active:not(:disabled){transform:translateY(0)}.cv-btn:disabled{opacity:.7;cursor:not-allowed}.cv-btn-loading{display:flex;align-items:center;gap:8px}.spinner{width:14px;height:14px;border:2px solid rgba(248,250,255,.35);border-top-color:#f8faff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 1024px){.hero-card{gap:36px;padding:40px}}@media (max-width: 768px){.hero-card{flex-direction:column;align-items:center;text-align:center;padding:32px 24px;gap:24px}.hero-content{align-items:center}.hero-tags,.hero-languages{justify-content:center}.cv-btn{align-self:center}.hero-name{font-size:1.7rem}}@media (max-width: 480px){.hero-card{padding:24px 16px;border-radius:14px}.hero-photo-wrap{width:130px;height:130px}.hero-name{font-size:1.4rem}.lang-badge{min-width:80px}}.project-card{background:#fff;border:1px solid #D0DCE8;border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:12px;transition:transform .28s ease,box-shadow .28s ease,border-color .25s ease;animation:fadeIn 1.2s ease-in-out}.project-card:hover{transform:translateY(-8px) scale(1.01);box-shadow:0 4px 8px #0d1b2a12,0 12px 28px #0d1b2a21,0 0 0 1px #00c8e838;border-color:#00c8e866}.project-card .header{display:flex;align-items:center;justify-content:space-between;gap:10px}.project-card .header h3{font-size:1.1rem;font-weight:700;color:#0d1b2a;margin:0;flex:1;text-align:center;line-height:1.3}.project-card .github-icon-container,.project-card .details-icon-container{display:flex;align-items:center;flex-shrink:0}.project-card .github-icon-container a,.project-card .details-icon-container a{display:flex}.project-card .github-circle,.project-card .details-circle{width:46px;height:46px;background:#fff;border:1.5px solid rgba(0,200,232,.35);border-radius:50%;display:flex;justify-content:center;align-items:center;box-shadow:0 0 0 4px #00c8e814,0 4px 12px #0d1b2a1a;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease,background .2s ease,border-color .2s ease}.project-card .github-circle:hover,.project-card .details-circle:hover{transform:translateY(-6px) scale(1.1);background:#00c8e8;border-color:#00c8e8;box-shadow:0 0 0 7px #00c8e833,0 14px 32px #00c8e859}.project-card .github-circle .github-icon,.project-card .github-circle .details-icon,.project-card .details-circle .github-icon,.project-card .details-circle .details-icon{width:56%;height:56%;object-fit:contain;filter:brightness(0);transition:filter .2s ease}.project-card .github-circle:hover .github-icon,.project-card .github-circle:hover .details-icon,.project-card .details-circle:hover .github-icon,.project-card .details-circle:hover .details-icon{filter:brightness(0) invert(1)}.project-card .image-container{width:100%;height:200px;overflow:hidden;border-radius:12px;background:#eef2f7;display:flex;justify-content:center;align-items:center;flex-shrink:0}.project-card .image-container img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .4s ease}.project-card .image-container:hover img{transform:scale(1.05)}.project-card p{font-size:.9rem;color:#4a6080;line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:1}.project-card .tech-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;justify-content:center}.project-card .tech-badges .badge{display:inline-block;padding:4px 11px;background:#eef2f7;color:#4a6080;border:1px solid #D0DCE8;border-radius:20px;font-size:.76rem;font-weight:500;font-family:JetBrains Mono,Fira Code,monospace;transition:background .2s ease,color .2s ease,transform .2s ease}.project-card .tech-badges .badge:hover{background:#0d1b2a;color:#f8faff;border-color:#0d1b2a;transform:translateY(-2px)}@media (max-width: 768px){.project-card .header h3{font-size:1rem}.project-card .image-container{height:160px}.project-card .github-circle,.project-card .details-circle{width:42px;height:42px}}@media (max-width: 480px){.project-card .github-circle,.project-card .details-circle{width:38px;height:38px}}.icon-legend{display:flex;justify-content:center;gap:24px;margin-bottom:24px}.icon-legend .legend-item{display:flex;align-items:center;gap:8px}.icon-legend .legend-item img{width:20px;height:20px;opacity:.7}.icon-legend .legend-item span{font-size:.8rem;font-family:JetBrains Mono,Fira Code,monospace;color:#8aa0b8}.projets-page .project-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;animation:fadeIn .5s ease both}.projets-page .loading-state{text-align:center;padding:48px 0;color:#8aa0b8;font-size:.9rem;font-family:JetBrains Mono,Fira Code,monospace}.projets-page .error-state{text-align:center;padding:48px 0;color:#e63946;font-size:.9rem}@media (max-width: 1024px){.projets-page .project-list{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.projets-page .project-list{grid-template-columns:1fr;gap:12px}.icon-legend{gap:16px;flex-wrap:wrap}}@media (max-width: 480px){.icon-legend{gap:12px}.icon-legend .legend-item span{font-size:.73rem}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes popIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.details-container{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:20px;animation:fadeIn .8s ease forwards}.details-container .header{display:flex;justify-content:space-between;align-items:center;gap:16px}.details-container .header h1{font-size:2rem;font-weight:700;color:#0d1b2a;margin:0;flex:1;text-align:center;animation:popIn .6s ease forwards}.details-container .header .back-button{text-decoration:none;flex-shrink:0}.details-container .header .back-button .back-circle{width:46px;height:46px;background:#fff;border:1.5px solid rgba(0,200,232,.35);border-radius:50%;display:flex;justify-content:center;align-items:center;box-shadow:0 0 0 4px #00c8e814,0 4px 12px #0d1b2a1a;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease,background .2s ease,border-color .2s ease}.details-container .header .back-button .back-circle:hover{transform:translateY(-6px) scale(1.1);background:#00c8e8;border-color:#00c8e8;box-shadow:0 0 0 7px #00c8e833,0 14px 32px #00c8e859}.details-container .header .back-button .back-circle .back-icon{width:58%;height:58%;object-fit:contain;filter:brightness(0);transition:filter .2s ease}.details-container .header .back-button .back-circle:hover .back-icon{filter:brightness(0) invert(1)}.details-container .image-container{width:100%;height:300px;overflow:hidden;border-radius:14px;background:#eef2f7;border:1px solid #D0DCE8;display:flex;justify-content:center;align-items:center;animation:slideIn .8s ease forwards}.details-container .image-container img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .4s ease}.details-container .image-container:hover img{transform:scale(1.05)}.details-container .description,.details-container .project-info,.details-container .gallery,.details-container .stack-animated,.details-container .learnings{background:#fff;border:1px solid #D0DCE8;border-radius:14px;padding:22px;margin:0;animation:fadeIn .8s ease forwards;box-shadow:0 4px 12px #0d1b2a0f;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease,border-color .3s ease;align-self:stretch;will-change:transform}.details-container .description:hover,.details-container .project-info:hover,.details-container .gallery:hover,.details-container .stack-animated:hover,.details-container .learnings:hover{transform:translateY(-6px);box-shadow:0 4px 8px #0d1b2a0f,0 14px 32px #0d1b2a29;border-color:#00c8e840}.details-container .description h3,.details-container .project-info h3,.details-container .gallery h3,.details-container .stack-animated h3,.details-container .learnings h3{font-size:1.3rem;font-weight:700;color:#06c;margin-bottom:12px;text-align:center}.details-container .description:hover{box-shadow:0 6px 20px #00c8e833}.details-container .description p{font-size:.95rem;color:#0d1b2a;line-height:1.75;white-space:pre-wrap;margin:0}.details-container .project-info p{font-size:.9rem;color:#4a6080;margin:6px 0;white-space:pre-wrap;line-height:1.6}.details-container .gallery:hover{box-shadow:0 6px 20px #0066cc2e}.details-container .gallery .gallery-grid{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}.details-container .gallery .gallery-grid img{max-width:100%;width:320px;height:auto;object-fit:contain;border-radius:10px;border:1px solid #D0DCE8;transition:transform .4s ease,box-shadow .4s ease}.details-container .gallery .gallery-grid img:hover{transform:scale(1.05) rotate(1deg);box-shadow:0 8px 18px #00c8e84d}.details-container .stack-animated{background:#eef2f7;display:flex;flex-direction:column;align-items:center}.details-container .stack-animated h3{color:#1e3a5f}.details-container .stack-animated .stack-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:40px;margin-bottom:10px}.details-container .stack-animated .flip-card{width:120px;height:120px;perspective:1000px;margin-bottom:10px}.details-container .stack-animated .flip-card .flip-inner{width:100%;height:100%;text-align:center;transform-style:preserve-3d;border-radius:10px;box-shadow:0 4px 10px #00000026;transition:transform .6s ease,box-shadow .3s ease;position:relative}.details-container .stack-animated .flip-card .flip-inner:hover{transform:rotateY(180deg);box-shadow:0 10px 24px #00c8e84d}.details-container .stack-animated .flip-card .flip-inner .flip-front,.details-container .stack-animated .flip-card .flip-inner .flip-back{position:absolute;width:100%;height:100%;border-radius:10px;display:flex;justify-content:center;align-items:center;font-weight:700;padding:10px;backface-visibility:hidden;font-family:JetBrains Mono,Fira Code,monospace;font-size:.82rem;line-height:1.35}.details-container .stack-animated .flip-card .flip-inner .flip-front{background:#fff;border:1px solid #D0DCE8;color:#0d1b2a;box-shadow:0 3px 8px #0066cc1f}.details-container .stack-animated .flip-card .flip-inner .flip-back{background:#0d1b2a;color:#f8faff;transform:rotateY(180deg);box-shadow:0 8px 14px #00c8e840;font-size:.75rem;font-weight:500}.details-container .learnings p{font-size:.95rem;color:#0d1b2a;line-height:1.75;white-space:pre-wrap;margin:0}.details-container .github-circle-link{display:flex;justify-content:center;text-decoration:none}.details-container .github-circle-link .github-circle{width:80px;height:80px;background:#fff;border:1.5px solid rgba(0,200,232,.35);border-radius:50%;display:flex;justify-content:center;align-items:center;box-shadow:0 0 0 5px #00c8e814,0 4px 14px #0d1b2a1a;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease,background .2s ease,border-color .2s ease}.details-container .github-circle-link .github-circle:hover{transform:translateY(-8px) scale(1.06);background:#00c8e8;border-color:#00c8e8;box-shadow:0 0 0 9px #00c8e833,0 18px 40px #00c8e866}.details-container .github-circle-link .github-circle .github-icon{width:55%;height:55%;object-fit:contain;filter:brightness(0);transition:filter .2s ease}.details-container .github-circle-link .github-circle:hover .github-icon{filter:brightness(0) invert(1)}@media (max-width: 1024px){.details-container .stack-animated .flip-card{width:100px;height:100px}}@media (max-width: 768px){.details-container{gap:16px}.details-container .header h1{font-size:1.5rem}.details-container .stack-animated .stack-grid{gap:20px}.details-container .stack-animated .flip-card{width:90px;height:90px}.details-container .github-circle-link .github-circle{width:70px;height:70px}}@media (max-width: 480px){.details-container{gap:12px}.details-container .header h1{font-size:1.2rem}.details-container .description,.details-container .project-info,.details-container .gallery,.details-container .stack-animated,.details-container .learnings{padding:16px}.details-container .stack-animated .flip-card{width:80px;height:80px}.details-container .github-circle-link .github-circle{width:60px;height:60px}}.skills-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;animation:fadeUp .5s ease both}@media (max-width: 768px){.skills-grid{grid-template-columns:1fr}}.skills-card{background:#fff;border:1px solid #D0DCE8;border-radius:14px;padding:20px;transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.skills-card:hover{box-shadow:0 6px 24px #0d1b2a14;transform:translateY(-2px);border-color:#00c8e84d}.skills-card-header{display:flex;align-items:center;gap:10px;margin-bottom:14px}.skills-icon-img{width:36px;height:36px;object-fit:contain;flex-shrink:0;border-radius:6px}.skills-category{font-size:.9rem;font-weight:700;color:#0d1b2a;margin:0;line-height:1.3}.skills-badges{display:flex;flex-wrap:wrap;gap:7px}.skill-badge{display:inline-block;padding:4px 11px;background:#eef2f7;color:#4a6080;border:1px solid #D0DCE8;border-radius:20px;font-size:.76rem;font-weight:500;font-family:JetBrains Mono,Fira Code,monospace;transition:background .15s ease,color .15s ease,border-color .15s ease}.skill-badge:hover{background:#0d1b2a;color:#f8faff;border-color:#0d1b2a}@media (max-width: 480px){.skills-card{padding:16px}.skills-category{font-size:.85rem}.skill-badge{font-size:.73rem}}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.parcours-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;animation:fadeUp .5s ease both}.parcours-divider{display:none}.parcours-col{display:flex;flex-direction:column;gap:0}.parcours-col:first-child{padding-right:40px;border-right:1px solid #D0DCE8}.parcours-col:last-child{padding-left:40px}.parcours-col-title{font-size:1rem;font-weight:700;font-family:JetBrains Mono,Fira Code,monospace;color:#4a6080;text-transform:uppercase;letter-spacing:.1em;margin-bottom:20px;display:flex;align-items:center;gap:8px}.col-title-icon{width:18px;height:18px;flex-shrink:0;color:#00c8e8}.parcours-col:last-child .col-title-icon{color:#e63946}.parcours-list{display:flex;flex-direction:column;gap:16px}.parcours-card{background:#fff;border:1px solid #D0DCE8;border-radius:14px;padding:20px;transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.parcours-card.formation:hover{box-shadow:0 6px 24px #00c8e826;transform:translateY(-2px);border-color:#00c8e880}.parcours-card.experience:hover{box-shadow:0 6px 24px #e6394626;transform:translateY(-2px);border-color:#e6394680}.parcours-card.formation.current{border-color:#00c8e866;background:linear-gradient(135deg,#fff,#00c8e80a)}.parcours-card.experience.current{border-color:#e6394659;background:linear-gradient(135deg,#fff,#e6394608)}.parcours-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:12px}.parcours-logo-wrap{width:40px;height:40px;border-radius:10px;background:#eef2f7;border:1px solid #D0DCE8;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.parcours-logo-wrap img{width:30px;height:30px;object-fit:contain}.parcours-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.parcours-period{font-family:JetBrains Mono,Fira Code,monospace;font-size:.75rem;color:#8aa0b8;font-weight:500;white-space:nowrap}.parcours-card.formation .parcours-badge{background:#00c8e81f;color:#007082;border:1px solid rgba(0,200,232,.3)}.parcours-card.experience .parcours-badge{background:#e639461a;color:#d21a28;border:1px solid rgba(230,57,70,.3)}.parcours-badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:.7rem;font-weight:600;font-family:JetBrains Mono,Fira Code,monospace;white-space:nowrap}.parcours-title{font-size:.92rem;font-weight:700;color:#0d1b2a;margin:0 0 4px;line-height:1.35}.parcours-org{font-size:.8rem;color:#06c;font-weight:500;margin:0 0 10px;font-family:JetBrains Mono,Fira Code,monospace}.parcours-desc{font-size:.83rem;color:#4a6080;line-height:1.6;margin:0}@media (max-width: 1024px){.parcours-col:first-child{padding-right:28px}.parcours-col:last-child{padding-left:28px}}@media (max-width: 768px){.parcours-grid{grid-template-columns:1fr}.parcours-col:first-child{padding-right:0;border-right:none;border-bottom:1px solid #D0DCE8;padding-bottom:32px;margin-bottom:32px}.parcours-col:last-child{padding-left:0}.parcours-col-title{font-size:.9rem}}@media (max-width: 480px){.parcours-card{padding:16px}.parcours-title{font-size:.88rem}}.formulaire-container{max-width:600px;margin:0 auto;animation:fadeIn 1.2s ease-in-out}.formulaire-container .contact-form{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid #D0DCE8;border-radius:16px;padding:32px;box-shadow:0 4px 16px #0d1b2a14}.formulaire-container .contact-form .page-title{font-size:1.6rem;font-weight:700;color:#0d1b2a;margin-bottom:16px;text-align:center}.formulaire-container .contact-form label{font-size:.9rem;font-weight:600;color:#4a6080;margin-top:10px}.formulaire-container .contact-form input,.formulaire-container .contact-form textarea{padding:10px 14px;font-size:1rem;font-family:Poppins,sans-serif;border:1px solid #D0DCE8;border-radius:8px;background:#f8faff;color:#0d1b2a;outline:none;box-shadow:0 3px 6px #0d1b2a0f;transition:transform .3s ease,box-shadow .3s ease,border-color .18s ease}.formulaire-container .contact-form input:focus,.formulaire-container .contact-form textarea:focus{transform:scale(1.02);border-color:#06c;box-shadow:0 4px 12px #06c3}.formulaire-container .contact-form input.valid,.formulaire-container .contact-form textarea.valid{border-color:#d0dce8}.formulaire-container .contact-form input.invalid,.formulaire-container .contact-form textarea.invalid{border-color:#e63946;box-shadow:0 3px 8px #e6394633}.formulaire-container .contact-form textarea{min-height:110px;resize:vertical;min-width:98%;max-width:100%}.formulaire-container .contact-form .error{font-size:.85rem;color:#e63946;font-weight:500;margin-top:2px}.formulaire-container .contact-form .success-msg{font-size:1rem;color:#00c896;font-weight:600;text-align:center;padding:12px;background:#00c89614;border:1px solid rgba(0,200,150,.3);border-radius:8px;margin-top:8px}.formulaire-container .contact-form .btn{margin-top:14px;padding:12px 24px;font-family:Poppins,sans-serif;font-size:1.1rem;font-weight:600;border:4px solid transparent;border-radius:20px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;background:#0d1b2a;color:#f8faff;box-shadow:0 4px 10px #0d1b2a33}.formulaire-container .contact-form .btn:hover{transform:translateY(-3px);box-shadow:0 8px 20px #00c8e84d}.formulaire-container .contact-form .btn:active{transform:translateY(0)}.formulaire-container .contact-form .btn.ready{background:#06c;border-color:#06c;box-shadow:0 4px 12px #0066cc4d}.formulaire-container .contact-form .btn.ready:hover{background:#0d1b2a;border-color:#0d1b2a;box-shadow:0 8px 20px #00c8e84d}.formulaire-container .contact-form .btn.error{background:#eef2f7;color:#8aa0b8;border-color:#d0dce8;cursor:default;box-shadow:none}.formulaire-container .contact-form .btn.error:hover{transform:none}@media (max-width: 768px){.formulaire-container .contact-form{padding:24px 20px}}@media (max-width: 480px){.formulaire-container .contact-form{padding:20px 16px;border-radius:12px}.formulaire-container .contact-form .page-title{font-size:1.3rem}.formulaire-container .contact-form input,.formulaire-container .contact-form textarea{font-size:.95rem}}.contact-logos{display:flex;justify-content:center;gap:30px;margin:20px auto;animation:fadeIn 1.2s ease-in-out}.contact-logos .logo-container{width:100px;height:100px;background:#fff;border:1px solid #D0DCE8;border-radius:50%;box-shadow:0 4px 10px #0d1b2a1a;display:flex;align-items:center;justify-content:center;transition:transform .3s ease,box-shadow .3s ease}.contact-logos .logo-container:hover{transform:scale(1.1)}.contact-logos .logo-container img{width:50%;height:50%;object-fit:contain}.contact-logos .gmail:hover{box-shadow:0 8px 20px #d1483673}.contact-logos .linkedin:hover{box-shadow:0 8px 20px #0077b573}.contact-logos .phone:hover{box-shadow:0 8px 20px #34a85373}.contact-logos .instagram:hover{box-shadow:0 8px 20px #e1306c73}@media (max-width: 768px){.contact-logos{gap:20px}.contact-logos .logo-container{width:80px;height:80px}}@media (max-width: 480px){.contact-logos{gap:15px}.contact-logos .logo-container{width:65px;height:65px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.not-found{display:flex;justify-content:center;align-items:center;height:calc(100vh - 100px);animation:fadeIn 1.2s ease-in-out}.not-found .not-found-container{display:flex;flex-direction:column;align-items:center;gap:20px}.not-found .not-found-triangle{width:0;height:0;border-left:100px solid transparent;border-right:100px solid transparent;border-bottom:150px solid #0D1B2A;position:relative;margin:20px;transition:transform .3s ease,filter .3s ease}.not-found .not-found-triangle:hover{transform:translateY(-5px);filter:drop-shadow(0 8px 16px rgba(0,200,232,.4))}.not-found .not-found-triangle .exclamation{position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);font-size:50px;font-weight:700;color:#f8faff}.not-found .not-found-numbers{display:flex;gap:20px}.not-found .not-found-numbers .number{font-size:120px;font-weight:700;font-family:JetBrains Mono,Fira Code,monospace;background:#0d1b2a;color:#f8faff;border-radius:20px;box-shadow:0 6px 16px #0d1b2a40;padding:20px;transition:transform .3s ease,box-shadow .3s ease}.not-found .not-found-numbers .number:hover{transform:translateY(-5px) scale(1.1)}.not-found .not-found-numbers .number4:hover{box-shadow:0 10px 24px #0066cc80}.not-found .not-found-numbers .number0:hover{box-shadow:0 10px 24px #00c8e880}.not-found .message{text-align:center;margin-top:20px}.not-found .message h1{font-size:2.2rem;font-weight:700;color:#0d1b2a;margin-bottom:10px}.not-found .message p{font-size:1.1rem;color:#4a6080;margin-bottom:15px;line-height:1.6}.not-found .message .bouton3D{height:3rem;padding:0 2rem;background-color:#fff;color:#0d1b2a;border-radius:15rem;border:2px solid #0D1B2A;outline:none;cursor:pointer;font-family:Poppins,sans-serif;font-size:1rem;font-weight:600;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease,border-color .3s ease;box-shadow:0 4px 14px #0d1b2a1a;margin:.33rem;text-decoration:none;display:inline-flex;justify-content:center;align-items:center}.not-found .message .bouton3D:hover{transform:translateY(-6px) scale(1.04);border-color:#00c8e8;box-shadow:0 0 0 6px #00c8e826,0 16px 36px #00c8e838,0 6px 18px #0d1b2a24}.not-found .message .bouton3D:active{transform:translateY(-2px) scale(1.01);box-shadow:0 4px 12px #00c8e82e}@media (max-width: 768px){.not-found .not-found-triangle{border-left:70px solid transparent;border-right:70px solid transparent;border-bottom:100px solid #0D1B2A}.not-found .not-found-triangle .exclamation{font-size:40px}.not-found .not-found-numbers .number{font-size:80px;padding:15px}.not-found .message h1{font-size:1.8rem}.not-found .message p,.not-found .message .bouton3D{font-size:1rem}}@media (max-width: 480px){.not-found .not-found-triangle{border-left:50px solid transparent;border-right:50px solid transparent;border-bottom:80px solid #0D1B2A}.not-found .not-found-triangle .exclamation{font-size:30px}.not-found .not-found-numbers .number{font-size:60px;padding:10px}.not-found .message h1{font-size:1.5rem}.not-found .message p,.not-found .message .bouton3D{font-size:.9rem}}.navbar-header{position:sticky;top:0;z-index:100;background:#f8faffe0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid #D0DCE8;font-family:Poppins,sans-serif}.navbar-inner{padding:0 32px;height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px}.navbar-brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}.brand-mono{font-family:JetBrains Mono,Fira Code,monospace;font-size:.85rem;font-weight:700;color:#f8faff;background:#0d1b2a;padding:4px 10px;border-radius:6px;letter-spacing:.08em}.brand-name{font-size:.95rem;font-weight:600;color:#0d1b2a}@media (max-width: 480px){.brand-name{display:none}}.navbar-nav{display:flex;align-items:center;gap:2px;flex:1;justify-content:center}.nav-link{display:flex;align-items:center;gap:6px;text-decoration:none;color:#4a6080;font-size:.88rem;font-weight:500;padding:6px 14px;border-radius:20px;transition:color .18s ease,background .18s ease;white-space:nowrap}.nav-link:hover{color:#0d1b2a;background:#eef2f7}.nav-link:hover .nav-icon{filter:brightness(0)}.nav-link.active{color:#06c;background:#0066cc14;font-weight:600}.nav-link.active .nav-icon{filter:brightness(0) saturate(100%) invert(26%) sepia(98%) saturate(600%) hue-rotate(194deg)}.nav-icon{width:16px;height:16px;object-fit:contain;flex-shrink:0;filter:brightness(0) opacity(.45);transition:filter .18s ease}.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:6px;flex-shrink:0}.hamburger span{display:block;width:22px;height:2px;background:#0d1b2a;border-radius:2px;transition:transform .25s ease,opacity .25s ease;transform-origin:center}.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media (max-width: 768px){.hamburger{display:flex}.navbar-nav{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;align-items:stretch;background:#f8fafff7;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid #D0DCE8;padding:12px 32px 20px;gap:4px;box-shadow:0 4px 12px #0d1b2a0f}.navbar-nav.open{display:flex}.nav-link{padding:11px 16px;border-radius:10px;font-size:.95rem}}@media (max-width: 480px){.navbar-inner{padding:0 16px}}.lang-switcher{display:flex;gap:4px;flex-shrink:0}.lang-switcher--mobile{display:none;margin-top:8px;padding-top:12px;border-top:1px solid #D0DCE8}.lang-btn{font-family:JetBrains Mono,Fira Code,monospace;font-size:.72rem;font-weight:700;padding:4px 9px;border-radius:6px;border:1px solid #D0DCE8;background:transparent;color:#4a6080;cursor:pointer;letter-spacing:.06em;transition:color .18s ease,background .18s ease,border-color .18s ease}.lang-btn:hover{color:#0d1b2a;background:#eef2f7}.lang-btn.active{background:#0d1b2a;color:#f8faff;border-color:#0d1b2a}@media (max-width: 768px){.lang-switcher--desktop{display:none}.lang-switcher--mobile{display:flex}}.site-footer{border-top:1px solid #D0DCE8;background:#fff;font-family:Poppins,sans-serif;margin-top:48px}.footer-inner{max-width:1200px;margin:0 auto;padding:20px 32px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.footer-brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.footer-mono{font-family:JetBrains Mono,Fira Code,monospace;font-size:.82rem;font-weight:700;color:#f8faff;background:#0d1b2a;padding:4px 10px;border-radius:6px;letter-spacing:.08em}.footer-name{font-size:.88rem;font-weight:500;color:#4a6080}.footer-socials{display:flex;gap:12px;align-items:center}.footer-social-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#eef2f7;border:1px solid #D0DCE8;text-decoration:none;transition:transform .3s ease,box-shadow .3s ease,background .2s ease}.footer-social-btn img{width:52%;height:52%;object-fit:contain;display:block}.footer-social-btn:hover{transform:scale(1.12)}.footer-social-btn.github:hover{box-shadow:0 6px 18px #00000059;background:#fff}.footer-social-btn.linkedin:hover{box-shadow:0 6px 18px #0077b573}.footer-social-btn.gmail:hover{box-shadow:0 6px 18px #d1483673}.footer-social-btn.phone:hover{box-shadow:0 6px 18px #00c86473}.footer-social-btn.instagram:hover{box-shadow:0 6px 18px #e1306c73}.footer-copy{font-size:.8rem;color:#8aa0b8;font-family:JetBrains Mono,Fira Code,monospace;white-space:nowrap}@media (max-width: 768px){.footer-inner{flex-direction:column;align-items:center;text-align:center;padding:20px;gap:14px}}@media (max-width: 480px){.footer-inner{padding:16px;gap:12px}.footer-name{display:none}.footer-social-btn{width:40px;height:40px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Poppins,sans-serif;background-color:#f8faff;color:#0d1b2a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{display:flex;flex-direction:column;min-height:100vh}main{flex:1;padding:24px;max-width:1200px;width:100%;margin:0 auto}@media (max-width: 768px){main{padding:16px}}@media (max-width: 480px){main{padding:12px}}.page-title{text-align:center;font-weight:700;font-size:2rem;margin:0 0 28px;color:#0d1b2a;letter-spacing:-.02em}@media (max-width: 768px){.page-title{font-size:1.6rem;margin-bottom:20px}}@media (max-width: 480px){.page-title{font-size:1.4rem;margin-bottom:16px}}a{color:inherit}img{max-width:100%;display:block}
