:root{--color-text:#000;--color-text-muted:#717171;--color-surface-dark:#161616;--color-bg:#fff;--color-border:#0000001f;--color-surface:#0000000a;--color-scrollbar:#0003;--color-scrollbar-hover:#00000059;--font-sans:"Inter", system-ui, sans-serif;--dur-quick:.15s;--dur-base:.3s;--dur-slow:.55s;--dur-liftoff:.55s;--switch-travel:400;--switch-idle:250;--switch-settle:90;--focus-anchor:.18;--focus-step:.75;--focus-speed:2.5;--focus-repeat:110;--dim-filter:brightness(1.18) saturate(.7) opacity(.55) blur(3px);--stagger-max:.18s;--intro-stagger:70ms;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:linear(0, .009, .035 2.1%, .141 4.4%, .723 12.9%, .938 16.7%, 1.017, 1.077 20.4%, 1.121, 1.149 24.3%, 1.159, 1.163 27%, 1.154, 1.129 32.8%, 1.051 39.6%, 1.017 43.1%, .991, .977 51%, .974 53.8%, .975 57.1%, .997 69.8%, 1.003 76.9%, 1);--ease-spring-soft:linear(0, .006, .025 2.8%, .101 6.1%, .539 18.9%, .721 25.3%, .849 31.5%, .937 38.1%, .968 41.8%, .991 45.7%, 1.006 50.1%, 1.015 55%, 1.017 63.9%, 1.001);--hover-scale:1.03;--hover-scale-tuile:1.06;--hover-lift:-2px;--focus-ring:0 0 0 2px var(--color-bg), 0 0 0 4px var(--color-text);--shadow-window:0 12px 24px #00000040;--shadow-float:0 12px 12px #00000040;--grid-gutter:12px;--grid-margin:48px;--grid-max:1376px;--grid-overlay-color:#ff3b300f;--dock-w:340;--dock-peek:64;--dock-near:80;--magnet-range:150;--magnet-pull:12;--carousel-resistance:.3;--carousel-threshold:240;--carousel-falloff:.75;--carousel-idle:160;--spring-stiffness:300;--spring-damping:30;--cursor-fleche:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23fff' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.127 19.986 3.135 5.01c-.386-1.16.717-2.262 1.876-1.876l14.975 4.992c1.31.437 1.364 2.27.082 2.784l-5.951 2.38c-.377.15-.675.45-.826.826l-2.38 5.95c-.513 1.283-2.347 1.23-2.784-.081'/%3E%3C/svg%3E") 3 3;--cursor-doigt:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23fff' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.25 11.25v1.5m0-1.5a1.5 1.5 0 0 1 3 0v6a4.5 4.5 0 0 1-4.5 4.5h-4.568a6 6 0 0 1-5.735-4.235L3.75 11.25c1.5-1.5 2.448.396 2.448.396L8.25 15.75v-12a1.5 1.5 0 1 1 3 0V9m6 2.25v-1.5a1.5 1.5 0 0 0-3 0m-3-.75a1.5 1.5 0 0 1 3 0v.75m-3-.75v1.5m3-.75v1.5'/%3E%3C/svg%3E") 10 2;--cursor-grab:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23fff' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.5 9.75v-1.5a1.5 1.5 0 1 1 3 0m-3 1.5v3.75m0-3.75-1.737 1.303a3 3 0 0 0-1.198 2.524l.1 2.412c.02.515.093 1.032.307 1.5A6 6 0 0 0 10.432 21H15a4.5 4.5 0 0 0 4.5-4.5v-6a1.5 1.5 0 0 0-3 0m0 0V12m0-1.5V9a1.5 1.5 0 0 0-3 0m-3-.75a1.5 1.5 0 1 1 3 0V9m-3-.75v1.5m3-.75v1.5'/%3E%3C/svg%3E") 12 13}body{cursor:var(--cursor-fleche), default}a,button,input{cursor:var(--cursor-doigt), pointer}.mode-clavier,.mode-clavier *{cursor:none!important}.app{--content-offset:0px;--grid-w:min(100vw - var(--content-offset) - 2 * var(--grid-margin), var(--grid-max));--grid-col:calc((var(--grid-w) - 11 * var(--grid-gutter)) / 12)}.app.dock-open{--content-offset:calc(var(--dock-w) * 1px)}.app.dock-peek{--content-offset:calc(var(--dock-peek) * 1px)}*{scrollbar-width:none}::-webkit-scrollbar{display:none}.os-windows *{scrollbar-width:thin;scrollbar-color:var(--color-scrollbar) transparent}.os-windows ::-webkit-scrollbar{width:8px;height:8px;display:block}.os-windows ::-webkit-scrollbar-track{background:0 0}.os-windows ::-webkit-scrollbar-thumb{background:var(--color-scrollbar);background-clip:content-box;border:2px solid #0000;border-radius:99px}.os-windows ::-webkit-scrollbar-thumb:hover{background-color:var(--color-scrollbar-hover)}*{box-sizing:border-box}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;margin:0}p{margin:0}img{max-width:100%;display:block}.squircle{border-radius:var(--r,24px)}@supports (corner-shape:squircle){.squircle{corner-shape:squircle;border-radius:calc(var(--r,24px) * 1.84)}}:focus-visible{outline:none}:is(a,button,input,.fenetre--docked):focus-visible{box-shadow:var(--focus-ring)}.post:focus-visible{box-shadow:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.avatar{object-fit:cover;border-radius:50%;width:32px;height:32px}.btn{font:500 14px / 16px var(--font-sans);--r:12px;transition:transform var(--dur-base) var(--ease-spring), box-shadow var(--dur-quick) var(--ease-out);border:none;padding:12px}.btn:hover{transform:scale(var(--hover-scale));box-shadow:var(--shadow-float)}.btn--primaire{background:var(--color-surface-dark);color:#fff}.btn--ghost{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text)}.btn--icone{background:var(--color-bg);border:1px solid var(--color-border);width:40px;height:40px;color:var(--color-text);justify-content:center;align-items:center;padding:0;display:inline-flex}.btn--sombre{background:var(--color-surface-dark);color:#fff;border:none}.tuile{background:var(--color-bg);border:1px solid var(--color-border);--r:24px;font:500 12px / 14px var(--font-sans);color:var(--color-text);transition:transform var(--dur-base) var(--ease-spring), box-shadow var(--dur-quick) var(--ease-out);flex-direction:column;align-items:center;gap:6px;padding:12px;text-decoration:none;display:flex}.tuile:not(.radial-item):hover{transform:scale(var(--hover-scale));box-shadow:var(--shadow-float)}.tuile-sous{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10px;font-weight:400;line-height:12px;overflow:hidden}.feed,.carousel-track,.projet,.projet-sections,.section-image,.projet-hero-wrap,.projet-fin-hero{--span:calc(var(--cols) * var(--grid-col) + (var(--cols) - 1) * var(--grid-gutter));width:var(--span);transition:width var(--dur-base) var(--ease-out), margin var(--dur-base) var(--ease-out)}.feed,.carousel-track{--cols:6}.projet{--cols:8}.projet-sections{--cols:6}.section-image{--cols:8}.projet-hero-wrap{--cols:10}@media (width>=1600px){.feed,.carousel-track{--cols:4}}@media (width<=1200px){.feed,.carousel-track,.projet-sections{--cols:8}.projet,.section-image{--cols:10}.projet-hero-wrap{--cols:12}}@media (width<=900px){.feed,.carousel-track,.projet-sections{--cols:10}.projet,.section-image,.projet-hero-wrap{--cols:12}}@media (width<=640px){.feed,.carousel-track,.projet,.projet-sections,.section-image,.projet-hero-wrap{--cols:12}}.feed{flex-direction:column;gap:32px;margin-inline:auto;padding-block:188px 80px;display:flex}.post{color:inherit;align-items:flex-start;gap:12px;text-decoration:none;display:flex}.post-body{flex-direction:column;flex:1;gap:10px;min-width:0;padding-block:8px;display:flex}.date{color:var(--color-text-muted);font-size:14px;line-height:20px}.post-description{font-size:16px;font-weight:500;line-height:24px}.post-image{aspect-ratio:40/30;object-fit:cover;--r:24px;width:100%}.post-galerie{flex-direction:column;gap:8px;display:flex}.post-vignettes{grid-template-columns:repeat(var(--n,2), 1fr);gap:8px;display:grid}.post-vignette{aspect-ratio:40/30;object-fit:cover;--r:12px;width:100%}.section-image{max-width:none;margin-inline:calc((100% - var(--span)) / 2);aspect-ratio:40/30;object-fit:cover;--r:24px;margin-block:64px 24px}.app{min-height:100svh}.app.dock-open .view{margin-left:calc(var(--dock-w) * 1px)}.app.dock-peek .view{margin-left:calc(var(--dock-peek) * 1px)}.dock{inset-block:0;width:calc(var(--dock-w) * 1px);background:var(--color-bg);border-right:1px solid var(--color-border);z-index:15;animation:dock-in var(--dur-base) var(--ease-out) backwards;transition:transform var(--dur-base) var(--ease-out);position:fixed;left:0}.dock--peek{transform:translateX(calc((var(--dock-peek) - var(--dock-w)) * 1px))}.dock--out{pointer-events:none;transform:translate(-100%)}.dock-scroll{flex-direction:column;gap:12px;height:100%;padding:20px 12px;display:flex;overflow-y:auto}@keyframes dock-in{0%{transform:translate(-100%)}}.dock-hint{margin:auto}.fenetre.fenetre--docked{width:100%;animation:widget-in var(--dur-slow) var(--ease-spring) backwards;box-shadow:none;flex-shrink:0;position:static}.fenetre.fenetre--docked:hover{box-shadow:none;translate:none}@keyframes widget-in{0%{opacity:0;transform:scale(.7)translateY(16px)}}.fenetre.fenetre--docked .fenetre-body{max-height:min(40vh,380px);overflow-y:auto}.fenetre.fenetre--docked.fenetre--lifting{z-index:2;box-shadow:var(--shadow-window);opacity:.95;position:relative}.dock-sorting .dock-scroll{overflow:visible}.dock-sorting .fenetre--docked:not(.fenetre--lifting){transition:transform var(--dur-base) var(--ease-spring)}.dock-close{--d:0s;z-index:1;position:absolute;top:12px;left:calc(100% + 12px)}.dock:after{content:"";width:72px;height:76px;position:absolute;top:0;left:100%}.dock:hover .dock-close,.dock:focus-within .dock-close{transform:scale(1)}.dock:hover .dock-close:hover,.dock:focus-within .dock-close:hover{transform:scale(var(--hover-scale-tuile)) translateY(var(--hover-lift));box-shadow:var(--shadow-window);transition-delay:0s}.projet{margin-inline:auto;padding-block:270px 120px}.projet-header{text-align:center;flex-direction:column;gap:23px;display:flex}.projet-meta{justify-content:center;align-items:center;gap:10px;display:flex}.avatar-sm{width:24px;height:24px}.projet-title{margin:0;font-size:clamp(32px,6vw,48px);font-weight:500;line-height:normal}.projet-liens{justify-content:center;gap:8px;display:flex}.projet-liens .btn{align-items:center;gap:8px;text-decoration:none;display:inline-flex}.projet-kpis{text-align:center;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:172px;display:grid}@media (width<=768px){.projet-kpis{grid-template-columns:repeat(2,1fr)}}.kpi{flex-direction:column;gap:6px;font-weight:500;display:flex}.kpi-value{font-size:32px}.kpi-label{font-size:14px}.projet-sections{flex-direction:column;gap:48px;margin:124px auto 0;display:flex}.projet-section{flex-direction:column;gap:12px;display:flex}.section-title{margin:0;font-size:24px;font-weight:500;line-height:normal}.section-body{font-size:16px;line-height:24px}.ds .projet-section{gap:16px}.ds-card{background:var(--color-bg);border:1px solid var(--color-border);--r:24px;flex-direction:column;align-items:flex-start;gap:16px;padding:24px;display:flex}.ds-card .post{width:100%}.ds-row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.ds-swatch{border:1px solid var(--color-border);--r:12px;flex-shrink:0;width:32px;height:32px}.ds-code{color:var(--color-text-muted);font-family:ui-monospace,monospace;font-size:13px}.ds-specimen{min-width:260px}.ds-demo{border:1px solid var(--color-border);width:64px;height:64px;color:var(--color-text-muted);justify-content:center;align-items:center;font-size:12px;display:inline-flex}.ds-icons{gap:24px}.ds-icon{flex-direction:column;align-items:center;gap:6px;display:inline-flex}.radial-item.ds-static{animation:none;position:static;transform:none}.ds-motion-demo{transition:transform var(--dur-base) var(--ease-spring)}.ds-motion-demo:hover{transform:scale(var(--hover-scale))}.ds-motion-token{min-width:220px}.radial-backdrop{z-index:39;position:fixed;inset:0}.radial-backdrop.closing{pointer-events:none}.radial-menu{z-index:40;position:fixed}.radial-ring{border:2px dashed var(--color-border);animation:ring-in var(--dur-slow) var(--ease-spring) backwards;background:#ffffff80;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.radial-avatar{max-width:none;animation:ring-in var(--dur-base) var(--ease-spring) backwards;position:absolute;transform:translate(-50%,-50%)}@keyframes ring-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}}.radial-item{width:80px;transform:translate(calc(-50% + var(--mx,0px)), calc(-50% + var(--my,0px))) scale(var(--s,1));transition:transform var(--dur-quick) var(--ease-out), box-shadow var(--dur-quick) var(--ease-out);animation:bloom var(--dur-slow) var(--ease-spring) var(--d-in) backwards;position:absolute}@keyframes bloom{0%{opacity:0;transform:translate(calc(-50% - var(--bx)), calc(-50% - var(--by))) scale(0)}}.radial-item:hover{--s:var(--hover-scale-tuile);box-shadow:var(--shadow-float)}.radial-menu.closing .radial-ring,.radial-menu.closing .radial-avatar{animation:ring-out var(--dur-base) var(--ease-out) both}@keyframes ring-out{to{opacity:0;transform:translate(-50%,-50%)scale(.85)}}.radial-menu.closing .radial-item{animation:pop-out var(--dur-base) var(--ease-out) var(--d-out) both;pointer-events:none}@keyframes pop-out{to{opacity:0;transform:translate(-50%,-50%)scale(0)}}.radial-item svg{transition:transform var(--dur-quick) var(--ease-out)}.radial-item[data-action=projets]:hover svg{animation:icon-pop var(--dur-base) var(--ease-spring)}@keyframes icon-pop{50%{transform:scale(1.3)}}.radial-item[data-action=profil]:hover svg{animation:icon-nod var(--dur-slow) var(--ease-spring)}@keyframes icon-nod{30%{transform:rotate(-12deg)}60%{transform:rotate(10deg)}}.radial-item[data-action=contact]:hover svg{animation:icon-jump var(--dur-slow) var(--ease-spring)}@keyframes icon-jump{35%{transform:translateY(-6px)scale(1.1)}70%{transform:translateY(1px)}}.radial-item[data-action=vibe]:hover svg{animation:icon-groove var(--dur-slow) var(--ease-spring) infinite}@keyframes icon-groove{25%{transform:rotate(-10deg)scale(1.08)}75%{transform:rotate(10deg)scale(1.08)}}.radial-item[data-action=retour]:hover svg{animation:icon-rewind var(--dur-slow) var(--ease-spring)}@keyframes icon-rewind{to{transform:rotate(-360deg)}}.radial-item[data-action=design]:hover svg{animation:icon-paint var(--dur-slow) var(--ease-spring)}@keyframes icon-paint{40%{transform:rotate(15deg)scale(1.2)}70%{transform:rotate(-8deg)}}.fenetre{background:var(--color-bg);border:1px solid var(--color-border);--r:24px;box-shadow:var(--shadow-window);animation:fenetre-in var(--dur-slow) var(--ease-spring) backwards;transition:box-shadow var(--dur-base) var(--ease-out), translate var(--dur-base) var(--ease-spring);flex-direction:column;display:flex;position:fixed}.fenetre:hover{translate:0 var(--hover-lift);box-shadow:0 18px 32px #00000047}@keyframes fenetre-in{0%{opacity:0;transform:scale(.6)translateY(16px)}}.fenetre.closing{animation:fenetre-out var(--dur-base) var(--ease-out) both;pointer-events:none}@keyframes fenetre-out{to{opacity:0;transform:scale(.82)rotate(-2deg)translateY(12px)}}.fenetre-handle{cursor:var(--cursor-grab), grab;touch-action:none;color:var(--color-text-muted);justify-content:center;padding:6px 12px;display:flex}.fenetre-handle:active{cursor:var(--cursor-grab), grabbing}.fenetre-body{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;corner-shape:inherit;max-height:min(60vh,600px);padding:4px 12px 12px;overflow:auto}.fenetre-actions{z-index:1;gap:8px;padding-bottom:8px;display:flex;position:absolute;bottom:100%;right:0}.fenetre-action{background:var(--color-bg);border:1px solid var(--color-border);width:40px;height:40px;color:var(--color-text);box-shadow:var(--shadow-float);cursor:pointer;transition:transform var(--dur-base) var(--ease-spring) var(--d), box-shadow var(--dur-quick) var(--ease-out);border-radius:50%;justify-content:center;align-items:center;display:inline-flex;transform:scale(0)}.fenetre:hover .fenetre-action,.fenetre:focus-within .fenetre-action{transform:scale(1)}.fenetre:hover .fenetre-action:hover,.fenetre:focus-within .fenetre-action:hover{transform:scale(var(--hover-scale-tuile)) translateY(var(--hover-lift));box-shadow:var(--shadow-window);transition-delay:0s}.fenetre-action svg{transition:transform var(--dur-quick) var(--ease-out)}.fenetre-action--maximize:hover svg{animation:icon-expand var(--dur-slow) var(--ease-spring)}@keyframes icon-expand{50%{transform:scale(1.3)}}.fenetre-action--close:hover svg{animation:icon-twist var(--dur-slow) var(--ease-spring)}@keyframes icon-twist{25%{transform:rotate(20deg)scale(1.15)}75%{transform:rotate(-20deg)scale(1.15)}}.wprofil{flex-direction:column;gap:16px;display:flex}.wprofil-hero{text-align:center;flex-direction:column;align-items:center;display:flex}.wprofil-portrait{object-fit:cover;border-radius:50%;width:80px;height:80px;margin-top:8px}.wprofil-nom{margin-top:10px;font-size:20px;font-weight:500;line-height:26px}.wprofil-desc{color:var(--color-text-muted);max-width:32ch;margin-top:4px;font-size:13px;line-height:19px}.wprofil-desc svg{vertical-align:-2px}.wprofil-stats{background:var(--color-surface);--r:12px;grid-template-columns:repeat(3,1fr);width:100%;margin-top:16px;padding:14px 8px;display:grid}.wprofil-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.wprofil-stat-valeur{font-size:18px;font-weight:500;line-height:22px}.wtitle{margin:8px 0 0;font-size:16px;font-weight:500}.wtext{color:var(--color-text-muted);font-size:13px;line-height:19px}.wexp-liste{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.wexp{border:1px solid var(--color-border);--r:12px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.wexp-org{font-size:15px;font-weight:500;line-height:20px}.wexp-role{font-size:13px;line-height:18px}.wexp-date{align-items:center;gap:6px;margin-top:2px;font-size:12px;display:flex}.wcontact-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.wcontact-grid .tuile{min-width:0}.wcontact-grid .tuile:last-child:nth-child(odd){grid-column:1/-1}.wvibe{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.wvibe-cover{--r:24px;border:1px solid var(--color-border);width:96px;height:96px;color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.wvibe-progress{width:100%;accent-color:var(--color-surface-dark)}.wvibe-controls{gap:8px;display:flex}.wvibe-list{flex-direction:column;gap:4px;width:100%;margin:4px 0 0;padding:0;list-style:none;display:flex}.wvibe-track{--r:12px;width:100%;font:inherit;text-align:left;transition:border-color var(--dur-quick) var(--ease-out);background:0 0;border:1px solid #0000;justify-content:space-between;align-items:baseline;gap:8px;padding:8px 10px;display:flex}.wvibe-track:hover,.wvibe-track.active{border-color:var(--color-border)}.carousel{height:100svh;overflow:hidden}.carousel-track{will-change:transform;flex-direction:column;gap:32px;margin-inline:auto;display:flex}.carousel-item{transform:scale(calc(.94 + .06 * var(--f,1)));opacity:calc(.4 + .6 * var(--f,1))}.carousel .post,.feed .post{transition:transform var(--dur-base) var(--ease-spring)}.carousel .post:hover,.feed .post:hover{transform:scale(var(--hover-scale))}.carousel--intro .carousel-item{animation:intro-item var(--dur-slow) var(--ease-spring) calc(var(--dist,0) * var(--intro-stagger)) backwards}@keyframes intro-item{0%{opacity:0;transform:translateY(calc(32px + var(--dir,0) * 96px)) scale(.94)}}.carousel--intro .post .avatar{animation:intro-pop var(--dur-slow) var(--ease-spring) calc(2 * var(--intro-stagger)) backwards}@keyframes intro-pop{0%{opacity:0;transform:scale(0)rotate(-12deg)}}.carousel--intro .post .date{animation:intro-slide var(--dur-slow) var(--ease-spring-soft) calc(3 * var(--intro-stagger)) backwards}@keyframes intro-slide{0%{opacity:0;transform:translate(-14px)}}.carousel--intro .post-description{animation:rise var(--dur-slow) var(--ease-spring-soft) calc(4 * var(--intro-stagger)) backwards}.carousel--intro .post-image{animation:intro-hero var(--dur-slow) var(--ease-spring-soft) calc(5 * var(--intro-stagger)) backwards}@keyframes intro-hero{0%{opacity:0;filter:blur(12px);transform:scale(1.06)}}.carousel--intro .post-vignette{animation:intro-pop-v var(--dur-slow) var(--ease-spring) calc((7 + var(--i,0)) * var(--intro-stagger)) backwards}@keyframes intro-pop-v{0%{opacity:0;transform:translateY(18px)scale(.7)}}.view:has(.carousel--intro){animation:none}.toolstack{align-items:center;margin-top:16px;display:flex}.tool-bulle{background:var(--color-bg);border:1px solid var(--color-border);width:28px;height:28px;box-shadow:0 0 0 2px var(--color-bg);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.tool-bulle img{width:14px;height:14px}.tool-bulle--reste{font:500 11px / 1 var(--font-sans);color:var(--color-text-muted)}.toolstack:not(.toolstack--etendu)>*+*{margin-left:-9px}.toolstack--etendu{flex-wrap:wrap;justify-content:center;gap:10px 18px;margin-top:0}.ds-card .toolstack--etendu{justify-content:flex-start;margin-top:16px}.tool{animation:tool-expand var(--dur-slow) var(--ease-spring) calc(var(--i,0) * var(--intro-stagger) / 2) backwards;align-items:center;gap:8px;display:inline-flex}@keyframes tool-expand{0%{transform:translateX(calc(var(--i,0) * -34px))}}.toolstack--etendu .tool-bulle{width:32px;height:32px}.toolstack--etendu .tool-bulle img{width:16px;height:16px}.tool-nom{font:500 14px / 1 var(--font-sans);animation:tool-nom-in var(--dur-slow) var(--ease-out) calc(var(--i,0) * var(--intro-stagger) / 2 + var(--dur-base)) backwards}@keyframes tool-nom-in{0%{opacity:0}}.grid-overlay{inset:0;left:var(--content-offset);width:var(--grid-w);gap:var(--grid-gutter);pointer-events:none;z-index:9999;transition:width var(--dur-base) var(--ease-out), left var(--dur-base) var(--ease-out);grid-template-columns:repeat(12,1fr);margin-inline:auto;display:grid;position:fixed}.grid-overlay>div{background:var(--grid-overlay-color)}.focus-marker{z-index:30;color:var(--color-text);pointer-events:none;will-change:transform;position:fixed;top:0;left:0}.focus-marker svg{fill:var(--color-bg);animation:marker-in var(--dur-slow) var(--ease-spring) backwards;display:block}@keyframes marker-in{0%{opacity:0;transform:scale(0)rotate(-45deg)}}.focus-marker-bob{animation:marker-bob calc(var(--dur-slow) * 2) ease-in-out infinite alternate;display:block}@keyframes marker-bob{to{transform:translate(-3px,-3px)}}.touche{--r:6px;background:var(--color-bg);border:1px solid var(--color-border);min-width:22px;height:22px;box-shadow:0 2px 0 var(--color-border);font:500 12px / 1 var(--font-sans);color:var(--color-text);justify-content:center;align-items:center;padding:0 6px;display:inline-flex}.barre-raccourcis{bottom:16px;left:calc(var(--content-offset) + (100vw - var(--content-offset)) / 2);--r:16px;background:var(--color-bg);border:1px solid var(--color-border);box-shadow:var(--shadow-float);z-index:10;font:500 12px / 1 var(--font-sans);color:var(--color-text-muted);white-space:nowrap;transition:left var(--dur-base) var(--ease-out);align-items:center;gap:20px;padding:10px 18px;display:flex;position:fixed;transform:translate(-50%)}.raccourci{align-items:center;gap:6px;display:inline-flex}.radial-item.selected{box-shadow:var(--focus-ring)}.reveal{opacity:0;transform:translateY(24px)}.reveal.revealed{animation:rise var(--dur-slow) var(--ease-spring-soft) var(--d,0s) both}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}.view{animation:view-in var(--dur-slow) var(--ease-spring-soft) backwards;transition:margin-left var(--dur-base) var(--ease-out), filter var(--dur-base) var(--ease-out)}.app:has(.dock :focus) .view{filter:var(--dim-filter)}.fenetre--docked:focus-within{box-shadow:var(--focus-ring)}@keyframes view-in{0%{opacity:0;transform:translateY(16px)}}.carousel.exiting .carousel-item:not(.leaving){transition:opacity var(--dur-base) var(--ease-out);pointer-events:none;opacity:0!important}.carousel-item.leaving{z-index:2;animation:post-liftoff var(--dur-liftoff) both;position:relative}.carousel-item,.projet-fin-hero{--liftoff-scale:calc((1 + 12 / var(--cols)) / 2)}@keyframes post-liftoff{0%{animation-timing-function:var(--ease-spring);transform:scale(1)}45%{transform:scale(var(--liftoff-scale));animation-timing-function:ease-in-out}58%{transform:scale(var(--liftoff-scale)) translateY(-3vh);animation-timing-function:cubic-bezier(.55,0,.85,.36)}to{transform:scale(calc(var(--liftoff-scale) * .95)) translateY(135vh)}}.view--projet{animation:view-slide-up var(--dur-slow) var(--ease-spring-soft) backwards}@keyframes view-slide-up{0%{transform:translateY(70vh)}}.projet-fin{height:calc(100svh + var(--switch-travel) * 1px);margin-top:124px}.projet-fin-pin{place-items:center;height:100svh;display:grid;position:sticky;top:0}.projet-fin-hero{--cols:6;aspect-ratio:1184/864;object-fit:cover;--r:24px;transform:scale(calc(.85 + .15 * var(--switch-progress,0)));will-change:transform}.projet-fin-pin.leaving .projet-fin-hero{animation:post-liftoff var(--dur-liftoff) both}.projet-hero-wrap{margin-inline:calc((100% - var(--span)) / 2);margin-top:124px}.projet-hero{aspect-ratio:1184/864;object-fit:cover;--r:24px;width:100%}
