.projet-detail{min-height:100vh;background:var(--le-beige);border-left:2px solid var(--le-noir);border-right:2px solid var(--le-noir)}[data-animate]{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1)}[data-animate].is-visible{opacity:1;transform:translateY(0)}[data-stagger-item]{opacity:0;transform:translateY(20px) scale(.95);transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1);transition-delay:calc(var(--stagger-index) * .05s)}[data-stagger-item].is-visible{opacity:1;transform:translateY(0) scale(1)}.projet-nav{position:sticky;top:0;z-index:100;background:var(--le-beige);backdrop-filter:blur(10px);border-bottom:2px solid var(--le-noir);padding:1.5rem}@media(min-width:1280px){.projet-nav{padding:1.5rem 3rem}}.projet-back{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--le-noir);color:var(--le-beige);text-decoration:none;font-size:.875rem;font-weight:500;border:2px solid var(--le-noir);transition:all .4s cubic-bezier(.34,1.56,.64,1);cursor:pointer}.projet-back:hover{transform:translate(-4px);box-shadow:0 4px 12px #00000026,0 0 0 1px var(--le-rouge);background:var(--le-rouge);border-color:var(--le-noir)}.projet-back:active{transform:translate(-2px) scale(.98)}.projet-back svg{width:16px;height:16px;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.projet-back:hover svg{transform:translate(-3px)}.projet-hero{max-width:1400px;margin:0 auto;padding:4rem 1.5rem;display:grid;grid-template-columns:1fr;gap:3rem;align-items:center;border-bottom:2px solid var(--le-noir)}@media(min-width:1024px){.projet-hero{grid-template-columns:1fr 1.2fr;padding:6rem 3rem;gap:5rem}}@media(min-width:1024px){.projet-hero-content{padding-right:2rem}}.projet-tag{display:inline-flex;align-items:center;padding:.5rem 1rem;background:var(--le-beige);border:2px solid var(--le-noir);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);color:var(--le-noir)}.projet-tag:hover{background:var(--le-noir);color:var(--le-beige);transform:translateY(-1px)}.projet-titre{font-size:clamp(2.5rem,6vw,4.5rem);font-weight:800;line-height:1.1;margin-bottom:1.5rem;color:var(--le-noir);font-family:Unbounded,sans-serif;text-transform:uppercase}.projet-intro{font-size:1.25rem;line-height:1.7;color:var(--le-noir);margin-bottom:2.5rem;max-width:600px;opacity:.8}.projet-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem}.btn{display:inline-flex;align-items:center;gap:.75rem;padding:1.125rem 2.25rem;text-decoration:none;font-size:1rem;font-weight:600;transition:all .4s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden;cursor:pointer}.btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,transparent 100%);opacity:0;transition:opacity .3s}.btn:hover:before{opacity:1}.btn:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(255,255,255,.3),transparent 70%);opacity:0;transform:scale(0);transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1)}.btn:active:after{opacity:1;transform:scale(1);transition:opacity 0s,transform 0s}.btn-primary{background:var(--le-noir);color:var(--le-beige);box-shadow:0 4px 12px #00000026,0 1px 3px #0000001a;border:2px solid var(--le-noir)}.btn-primary:hover{box-shadow:0 12px 28px #00000040,0 4px 10px #00000026,0 0 0 1px var(--le-rouge);background:var(--le-rouge);border-color:var(--le-noir)}.btn-primary:active{box-shadow:0 2px 8px #0003}.btn-primary svg{transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.btn-primary:hover svg{transform:translate(3px,-3px) rotate(5deg)}.btn-primary[data-scroll-to]:hover svg{transform:translateY(4px)}.btn-secondary{background:#0000000a;color:#333;border:1px solid rgba(0,0,0,.08);box-shadow:none}.btn-secondary:hover{background:#00000014;border-color:#00000026;box-shadow:0 4px 12px #00000014}.btn-secondary:active{background:#0000001a}.btn-secondary svg{transition:transform .4s cubic-bezier(.34,1.56,.64,1);color:#666}.btn-secondary:hover svg{transform:rotate(90deg);color:#000}.projet-meta-info{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#0000000a;border:1px solid rgba(0,0,0,.08);font-size:.875rem;font-weight:500;color:#333;transition:all .3s cubic-bezier(.4,0,.2,1)}.projet-meta-info svg{width:16px;height:16px;color:#666;transition:transform .3s cubic-bezier(.4,0,.2,1)}.projet-meta-info:hover{background:#0000000f;border-color:#0000001f;transform:translateY(-2px)}.projet-meta-info:hover svg{transform:rotate(90deg)}.projet-hero-visual{position:relative}.projet-image-wrapper{position:relative;overflow:hidden;border:2px solid var(--le-noir);box-shadow:0 20px 40px #0000001a,0 10px 20px #0000000f;transition:all .4s cubic-bezier(.4,0,.2,1)}.projet-image-wrapper:before{content:"";position:absolute;inset:0;background-color:var(--le-rouge);opacity:0;z-index:1;pointer-events:none;transition:opacity .4s;mix-blend-mode:multiply}.projet-image-wrapper:hover{box-shadow:0 30px 60px #00000026,0 15px 30px #00000014,0 0 0 1px var(--le-rouge)}.projet-image-wrapper:hover:before{opacity:1}.projet-image{width:100%;height:auto;display:block;transition:transform .8s cubic-bezier(.4,0,.2,1);transform-origin:center}.projet-image-wrapper:hover .projet-image{transform:scale(1.08)}.projet-contenu{max-width:1100px;margin:0 auto;padding:3rem 1.5rem 6rem}@media(min-width:1024px){.projet-contenu{padding:5rem 3rem 8rem}}.projet-section{padding:4rem 0;border-bottom:2px solid var(--le-noir)}.projet-section:last-child{border-bottom:none}.section-titre{font-size:2rem;font-weight:700;margin-bottom:2rem;position:relative;padding-bottom:1rem;color:var(--le-noir);text-transform:uppercase;font-family:Unbounded,sans-serif}.section-titre:after{content:"";position:absolute;left:0;bottom:0;width:60px;height:4px;background:var(--le-rouge);transition:width .6s cubic-bezier(.4,0,.2,1)}.projet-section.is-visible .section-titre:after{animation:slideInUnderline .8s cubic-bezier(.4,0,.2,1) .2s backwards}@keyframes slideInUnderline{0%{width:0}to{width:60px}}.projet-texte .section-content{font-size:1.125rem;line-height:1.8;color:var(--le-noir)}.projet-texte .section-content :global(h2){font-size:1.75rem;font-weight:700;margin-top:3rem;margin-bottom:1.5rem;line-height:1.3}.projet-texte .section-content :global(h3){font-size:1.5rem;font-weight:600;margin-top:2.5rem;margin-bottom:1.25rem}.projet-texte .section-content :global(p){margin-bottom:1.5rem}.projet-texte .section-content :global(ul),.projet-texte .section-content :global(ol){margin-bottom:1.5rem;padding-left:1.5rem}.projet-texte .section-content :global(li){margin-bottom:.75rem}.projet-texte .section-content :global(code){padding:.2rem .5rem;background:#0000000d;font-size:.9em;font-family:Courier New,monospace}.projet-texte .section-content :global(pre){padding:1.5rem;background:#f8f8f8;overflow-x:auto;margin-bottom:1.5rem}.technologies-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}@media(min-width:768px){.technologies-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}.tech-card{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background:var(--le-beige);border:2px solid var(--le-noir);transition:all .4s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden;cursor:default}.tech-card:before{content:"";position:absolute;inset:0;background-color:var(--le-rouge);opacity:0;transition:opacity .3s;mix-blend-mode:multiply}.tech-card:after{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--le-noir);opacity:0;transform:translate(-4px);transition:all .3s cubic-bezier(.4,0,.2,1)}.tech-card:hover{transform:translateY(-6px) translate(4px);box-shadow:0 12px 28px #0000001f,0 0 0 1px var(--le-rouge)}.tech-card:hover:before{opacity:1}.tech-card:hover:after{opacity:1;transform:translate(0)}.tech-card:hover .tech-icon{transform:scale(1.2) rotate(90deg);color:var(--le-beige)}.tech-card:hover .tech-name{transform:translate(4px);color:var(--le-beige)}.tech-icon{font-size:1.25rem;color:var(--le-noir);flex-shrink:0;transition:all .4s cubic-bezier(.34,1.56,.64,1)}.tech-name{font-size:.95rem;font-weight:600;color:var(--le-noir);transition:transform .4s cubic-bezier(.34,1.56,.64,1)}
