/* The source PNG remains the final image; moving layers use exact original pixels. */
.cn-animated-logo{position:relative;display:inline-block;width:300px;max-width:100%;aspect-ratio:300/107;vertical-align:middle;isolation:isolate}
.cn-animated-logo .cn-logo-source{display:block!important;width:100%!important;height:auto!important;max-width:100%!important;margin:0!important}
.cn-animated-logo .cn-logo-part{position:absolute;inset:0;display:none;pointer-events:none;background:var(--cn-logo-url) center/100% 100% no-repeat;transform-origin:50% 50%}
.cn-logo-part--collectif{clip-path:inset(0 89% 0 0);--x:0px;--y:14px;--turn:0deg;--delay:850ms;--duration:600ms}
.cn-logo-part--n{clip-path:inset(0 62.666667% 0 11%);--x:-48px;--y:8px;--turn:-7deg;--delay:0ms;--duration:1000ms}
.cn-logo-part--u{clip-path:inset(0 36.333333% 0 37.333333%);--x:0px;--y:-38px;--turn:0deg;--delay:200ms;--duration:1050ms}
.cn-logo-part--m{clip-path:inset(0 0 0 63.666667%);--x:48px;--y:8px;--turn:7deg;--delay:80ms;--duration:1000ms}
.cn-animated-logo.is-playing .cn-logo-source{opacity:0}
.cn-animated-logo.is-playing .cn-logo-part{display:block;animation:cn-logo-assemble var(--duration) cubic-bezier(.22,1,.36,1) var(--delay) both}
@keyframes cn-logo-assemble{0%{opacity:0;transform:translate(var(--x),var(--y)) rotate(var(--turn)) scale(.97)}35%{opacity:1}80%{transform:translate(0,-1px) rotate(0) scale(1)}100%{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.cn-animated-logo.is-playing .cn-logo-source{opacity:1}.cn-animated-logo.is-playing .cn-logo-part{display:none;animation:none}}
