.page-projets{background:var(--noir);color:var(--blanc);min-height:100vh}.page-projets footer{border-top:1px solid rgba(255,255,255,0.08)}.projets-header{padding:clamp(7rem,12vw,10rem) var(--marge) clamp(2rem,4vw,3rem);display:flex;flex-direction:column;gap:2rem;position:relative;z-index:10}.projets-titre{font-family:var(--font-titre);font-weight:400;font-size:clamp(3rem,8vw,7rem);line-height:1;letter-spacing:.02em;color:var(--blanc);overflow:hidden}.projets-titre span{display:block;opacity:0;transform:translateY(60px);animation:titre-in .9s var(--ease-out) forwards;animation-delay:.1s}@keyframes titre-in{to{opacity:1;transform:translateY(0)}}.projets-controls{display:flex;align-items:center;opacity:0;transform:translateY(12px);animation:titre-in .7s var(--ease-out) .38s forwards}.vue-toggles{display:flex;gap:.75rem;align-items:center;margin-left:auto}.toggle-vue{background:0;border:0;color:rgba(255,255,255,0.25);padding:.25rem;transition:color var(--dur-rapide) ease;line-height:0}.toggle-vue:hover,.toggle-vue.actif{color:var(--blanc)}.controls-sep{width:1px;height:14px;background:rgba(255,255,255,0.08);margin:0 clamp(1.2rem,2.5vw,2.2rem);flex-shrink:0}.projets-filtres-wrap{display:flex;align-items:center;gap:.6rem}.filtres-label{font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,0.28);margin-right:.4rem;white-space:nowrap}.filtre-dropdown{position:relative}.filtre-dropdown-btn{display:flex;align-items:center;gap:.55rem;padding:.55rem 1.1rem;border:1px solid rgba(255,255,255,0.18);border-radius:100px;background:transparent;color:var(--blanc);font-family:var(--font-corps);font-size:.875rem;font-weight:500;letter-spacing:.01em;white-space:nowrap;cursor:pointer;transition:border-color .3s ease,background .3s ease}.filtre-dropdown-btn:hover{border-color:rgba(255,255,255,0.42)}.filtre-dropdown-btn.actif{border-color:rgba(255,255,255,0.55);background:rgba(255,255,255,0.07)}.filtre-dropdown-chevron{width:10px;height:10px;flex-shrink:0;transition:transform .25s ease;color:rgba(255,255,255,0.5)}.filtre-dropdown.ouvert .filtre-dropdown-chevron{transform:rotate(180deg)}.filtre-dropdown-menu{position:absolute;top:calc(100% + 0.5rem);left:0;min-width:180px;background:#111;border:1px solid rgba(255,255,255,0.1);border-radius:24px;padding:.4rem;list-style:none;z-index:200;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .2s ease,transform .2s var(--ease-out)}.filtre-dropdown.ouvert .filtre-dropdown-menu{opacity:1;transform:translateY(0);pointer-events:all}.filtre-dropdown-menu li{list-style:none}.filtre-dropdown-item{display:block;width:100%;text-align:left;background:0;border:0;padding:.55rem .9rem;border-radius:20px;font-family:var(--font-corps);font-size:.875rem;color:rgba(255,255,255,0.45);cursor:pointer;transition:background .18s ease,color .18s ease;white-space:nowrap}.filtre-dropdown-item::after{display:none}.filtre-dropdown-item:hover{background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.88)}.filtre-dropdown-item.actif{color:rgba(255,255,255,0.95);background:rgba(255,255,255,0.1)}#projets-liste{transition:opacity .28s ease,transform .28s var(--ease-out)}.projets-grille.vue-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gutter);padding:0 var(--marge) clamp(4rem,8vw,8rem)}.vue-grille .split-nav{display:none !important}.vue-grille .split-main{display:contents}.vue-grille .projet-item{position:relative;overflow:hidden;border-radius:20px}.vue-grille .projet-cover-lien{display:block;overflow:hidden}.vue-grille .projet-cover{display:block !important;position:relative !important;width:100% !important;aspect-ratio:1 / 1 !important;overflow:hidden !important;opacity:1 !important;transform:none !important;top:auto !important;left:auto !important;pointer-events:none !important;transition:none !important}.vue-grille .projet-cover img,.vue-grille .projet-cover video{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1s var(--ease-out)}.vue-grille .projet-cover-placeholder{width:100%;height:100%;background:rgba(255,255,255,0.06);transition:transform 1s var(--ease-out)}.vue-grille .projet-item:hover .projet-cover img,.vue-grille .projet-item:hover .projet-cover video,.vue-grille .projet-item:hover .projet-cover-placeholder{transform:scale(1.06)}.vue-grille .projet-lien{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;color:inherit}.vue-grille .projet-info{padding:2.5rem 1.5rem 1.5rem;background:linear-gradient(to top,rgba(0,0,0,0.92) 0,rgba(0,0,0,0.5) 50%,transparent 100%);opacity:0;transform:translateY(12px);transition:opacity .4s var(--ease-out),transform .4s var(--ease-out)}.vue-grille .projet-item:hover .projet-info{opacity:1;transform:translateY(0)}.vue-grille .projet-numero{display:block;font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:.05em;color:rgba(255,255,255,0.5);text-transform:uppercase;margin-bottom:.5rem}.vue-grille .projet-nom{font-family:var(--font-titre);font-weight:400;font-size:clamp(1.6rem,3vw,2.8rem);letter-spacing:.02em;line-height:1;color:#fff;font-style:normal;transition:font-style .01s,transform .55s var(--ease-out),opacity .45s ease,letter-spacing .55s var(--ease-out)}.vue-grille .projet-item:hover .projet-nom{font-style:italic;transform:translateX(0.15em);opacity:.75;letter-spacing:.02em}.vue-grille .projet-meta{font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:.1em;color:rgba(255,255,255,0.55);margin-top:.5rem;text-transform:uppercase}.vue-grille .projet-item-arrow{display:none}.projets-grille.vue-liste{display:flex;align-items:flex-start;padding:0 var(--marge) clamp(6rem,12vw,12rem);margin-top:-40vh;border-top:0;position:relative;z-index:1}.split-nav{position:sticky;top:0;height:100vh;width:clamp(220px,22vw,340px);flex-shrink:0;display:flex;flex-direction:column;justify-content:center;padding-right:clamp(2rem,3.5vw,4rem);padding-left:0;overflow:visible;z-index:2;will-change:max-width,opacity}.split-nav::after{content:'';position:absolute;bottom:0;left:-4rem;right:0;height:18%;background:linear-gradient(to bottom,transparent,#0a0a0a);pointer-events:none}.split-nav-track{display:flex;flex-direction:column;align-items:flex-start;overflow:visible}.split-nav-item{display:flex;align-items:baseline;gap:.2em;padding:.55rem 0;opacity:.18;text-decoration:none;color:var(--blanc);transform:translateX(0);transition:opacity .35s ease,transform .6s cubic-bezier(0.25,0.46,0.45,0.94)}.split-nav-item.actif{opacity:1;transform:translateX(12px)}.split-nav-item:not(.actif):hover{opacity:.42}.split-nav-item::before{display:none}.split-nav-num{font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:.05em;color:rgba(255,255,255,0.25);flex-shrink:0;line-height:1;transition:color .35s ease}.split-nav-item.actif .split-nav-num{color:rgba(255,255,255,0.5)}.split-nav-titre{font-family:var(--font-titre);font-weight:400;font-size:clamp(2.1rem,3.4vw,4.4rem);letter-spacing:.02em;line-height:1;font-style:normal;white-space:nowrap;flex-shrink:0;padding-right:.2em;transition:font-style .01s}.split-nav-item.actif .split-nav-titre{font-style:italic}.vue-liste .projet-numero,.vue-liste .projet-nom{display:none !important}.split-main{flex:1;min-width:0;padding-top:40vh;display:flex;flex-direction:column;transition:margin-left 1s cubic-bezier(0.65,0,0.35,1);will-change:margin-left}.vue-liste .projet-item{padding:clamp(2.5rem,5vw,5rem) 0;position:relative}.vue-liste .projet-item::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:rgba(255,255,255,0.07);transition:left .8s cubic-bezier(0.4,0,0.2,1)}.vue-liste .projet-item:first-child::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:rgba(255,255,255,0.07);transition:left .8s cubic-bezier(0.4,0,0.2,1)}.vue-liste.nav-visible .projet-item::after,.vue-liste.nav-visible .projet-item:first-child::before{left:0}.vue-liste .projet-cover-lien{display:block;overflow:hidden;border-radius:20px;width:100%;margin-left:0;transition:width .8s cubic-bezier(0.4,0,0.2,1),margin-left .8s cubic-bezier(0.4,0,0.2,1)}.vue-liste.nav-visible .projet-cover-lien{width:100%;margin-left:0}.vue-liste .projet-cover{position:relative !important;width:100% !important;aspect-ratio:16 / 9 !important;overflow:hidden !important;opacity:1 !important;transform:none !important;top:auto !important;left:auto !important;pointer-events:none !important;display:block !important;transition:none !important}.vue-liste .projet-cover img,.vue-liste .projet-cover video{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s var(--ease-out)}.vue-liste .projet-cover-placeholder{width:100%;height:100%;background:rgba(255,255,255,0.05);transition:transform 1.1s var(--ease-out)}.vue-liste .projet-item:hover .projet-cover img,.vue-liste .projet-item:hover .projet-cover video,.vue-liste .projet-item:hover .projet-cover-placeholder{transform:scale(1.03)}.vue-liste .projet-lien{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-top:clamp(1rem,2vw,1.75rem);margin-left:0;color:inherit;transition:margin-left .8s cubic-bezier(0.4,0,0.2,1)}.vue-liste.nav-visible .projet-lien{margin-left:0;transition-delay:.1s}.vue-liste .projet-info{display:flex;flex-direction:column;min-width:0}.vue-liste .projet-numero{display:block;font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:.05em;color:rgba(255,255,255,0.2);text-transform:uppercase;margin-bottom:.5rem}.vue-liste .projet-nom{display:block;font-family:var(--font-titre);font-weight:400;font-size:clamp(2rem,4.5vw,5.5rem);letter-spacing:.02em;line-height:1;color:var(--blanc);font-style:normal;will-change:transform;transition:font-style .01s,transform .65s var(--ease-out),letter-spacing .65s var(--ease-out),opacity .5s ease}.vue-liste .projet-item:hover .projet-nom{font-style:italic;transform:translateX(0.2em);opacity:.72;letter-spacing:.02em}.vue-liste .projet-meta{display:block;font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:.04em;color:rgba(255,255,255,0.28);text-transform:uppercase;margin-top:.75rem;transition:color .4s var(--ease-out)}.vue-liste .projet-item:hover .projet-meta{color:rgba(255,255,255,0.6)}.projet-item-arrow{font-family:var(--font-mono);font-size:1rem;color:rgba(255,255,255,0.18);flex-shrink:0;align-self:flex-end;line-height:1;padding-bottom:.15em;transition:color .4s var(--ease-out),transform .5s var(--ease-out)}.vue-liste .projet-item:hover .projet-item-arrow{color:rgba(255,255,255,0.9);transform:translate(5px,-5px)}.projet-item:nth-child(1){transition-delay:.05s}.projet-item:nth-child(2){transition-delay:.13s}.projet-item:nth-child(3){transition-delay:.21s}.projet-item:nth-child(4){transition-delay:.29s}.projet-item:nth-child(5){transition-delay:.37s}.projet-item:nth-child(6){transition-delay:.45s}.projet-item:nth-child(7){transition-delay:.53s}.filtre-dots-btn{display:none;background:0;border:0;color:rgba(255,255,255,0.25);padding:.25rem;line-height:0;transition:color var(--dur-rapide) ease}.filtre-dots-btn:hover,.filtre-dots-btn.actif{color:var(--blanc)}.filtre-popup{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(0.95);z-index:calc(var(--z-overlay) - 1);background:#111;border:1px solid rgba(255,255,255,0.1);padding:1.5rem;min-width:220px;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s var(--ease-out)}.filtre-popup.visible{display:flex;flex-direction:column;gap:0;opacity:1;pointer-events:all;transform:translate(-50%,-50%) scale(1)}.filtre-popup-label{font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,0.28);margin-bottom:1rem}.filtre-popup .filtre-btn{font-size:.9rem;padding:.6rem 0;border-bottom:1px solid rgba(255,255,255,0.07);color:rgba(255,255,255,0.55);text-align:left;letter-spacing:.1em}.filtre-popup .filtre-btn:last-child{border-bottom:0}.filtre-popup .filtre-btn.actif{color:rgba(255,255,255,0.95)}.filtre-popup-backdrop{display:none;position:fixed;inset:0;z-index:calc(var(--z-overlay) - 2);background:rgba(0,0,0,0.5)}.filtre-popup-backdrop.visible{display:block}@media(max-width:1200px){.vue-grille .projet-nom{font-size:clamp(1.5rem,2.5vw,2.2rem)}.split-nav-titre{font-size:clamp(1.2rem,1.9vw,2.1rem)}}@media(max-width:900px){.projets-grille.vue-grille{grid-template-columns:repeat(2,1fr)}.projets-grille.vue-liste{flex-direction:column;padding:0 var(--marge) clamp(4rem,8vw,8rem);border-top:1px solid rgba(255,255,255,0.1);margin-top:0}.split-nav{display:none}.split-main{width:100%}.vue-liste .projet-numero,.vue-liste .projet-nom{display:block !important}.vue-liste .projet-nom{font-size:clamp(1.4rem,5.5vw,2.6rem)}.vue-liste .projet-cover{aspect-ratio:16 / 7 !important}}@media(max-width:768px){.projets-titre{font-size:clamp(2.8rem,13vw,6rem)}.projets-header{gap:1.5rem}.projets-controls{flex-wrap:nowrap;gap:.5rem;align-items:center}.projets-filtres-wrap{display:none}.filtre-dots-btn{display:flex}.vue-toggles{margin-left:0}}@media(max-width:560px){.projets-grille.vue-grille{grid-template-columns:1fr;padding:0 var(--marge) clamp(3rem,8vw,6rem)}.vue-grille .projet-nom{font-size:1.3rem}.vue-grille .projet-info{padding:1.5rem 1rem 1rem}}@media(max-width:600px){.projets-header{padding:clamp(5rem,12vh,7rem) var(--marge) 1.5rem;gap:1.2rem}.projets-titre{font-size:clamp(2.6rem,14vw,5rem)}.projets-grille.vue-grille{gap:1.5rem}.vue-grille .projet-cover{aspect-ratio:4 / 3;border-radius:12px}.vue-liste .projet-cover{aspect-ratio:16 / 9 !important;border-radius:12px}.vue-liste .projet-info{padding:.8rem 0 1.2rem}.vue-liste .projet-nom{font-size:1.4rem}.vue-liste .projet-numero{font-size:.7rem}.vue-liste .projet-meta{font-size:.75rem}.toggle-vue{padding:.35rem}.filtre-dots-btn{padding:.5rem}.filtre-popup{padding:1.2rem}}@media(min-width:1800px){.projets-header{padding:clamp(6rem,9vw,8rem) var(--marge) clamp(2rem,3vw,2.5rem)}.projets-titre{font-size:clamp(3rem,5vw,6rem)}.vue-grille .projet-nom{font-size:clamp(1.5rem,2vw,2.2rem)}.vue-liste .projet-nom{font-size:clamp(2.4rem,3.3vw,4.2rem)}.split-nav{width:clamp(220px,16vw,290px)}.split-nav-titre{font-size:clamp(1.9rem,2.4vw,3rem)}.vue-liste .projet-cover-lien,.vue-liste.nav-visible .projet-cover-lien,.vue-liste .projet-lien,.vue-liste.nav-visible .projet-lien{max-width:clamp(900px,55vw,1280px);margin-left:auto;margin-right:0}}@media(min-width:2100px){.projets-titre{font-size:clamp(3.2rem,4.5vw,6.5rem)}.vue-liste .projet-nom{font-size:clamp(2.7rem,3vw,4.5rem)}.vue-liste .projet-cover-lien,.vue-liste.nav-visible .projet-cover-lien,.vue-liste .projet-lien,.vue-liste.nav-visible .projet-lien{max-width:clamp(1000px,52vw,1380px);margin-left:auto;margin-right:0}}