/* copie de skyview-logo.css limitée au bloc .sv-logo.sv-flap (essai dans le footer, sans toucher au logo des autres emplacements) */
.sv-logo.sv-flap {
  position: relative;
  width: 100%;
  max-width: 900px;
  aspect-ratio: 1800 / 904;          
  margin-inline: auto;
}.sv-flap .sv-part {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 83.3%;                       
  pointer-events: none;
}.sv-flap .sv-part > * {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: none;
  user-select: none;
}.sv-flap .sv-wing--l { transform-origin: 40% 70.6%; }.sv-flap .sv-wing--r { transform-origin: 60% 70.6%; }.sv-flap .sv-lens { transform-origin: 50% 75.55%; }.sv-flap .sv-shine {
  background: linear-gradient(105deg,
      transparent 42%,
      rgba(255,255,255,.55) 47%,
      #fff 50%,
      rgba(255,255,255,.55) 53%,
      transparent 58%) no-repeat;
  background-size: 300% 100%;
  background-position: 0% 0;            
  -webkit-mask: var(--m) center / 100% 100% no-repeat;
          mask: var(--m) center / 100% 100% no-repeat;
  opacity: .9;
}.sv-flap .sv-wing--l .sv-shine { --m: url("images/shine-left.webp"); }.sv-flap .sv-wing--r .sv-shine { --m: url("images/shine-right.webp"); }.sv-flap .sv-lens    .sv-shine { --m: url("images/shine-lens.webp"); }.sv-logo.sv-flap.sv-armed:not(.sv-play) .sv-part { opacity: 0; }:root {
  --sv-flap: 1.5s;          
  --sv-fly-at: 1.6s;        
}.sv-logo.sv-flap.sv-play .sv-lens {
  animation:
    sv-lens 1s cubic-bezier(.16,1,.3,1) both,
    sv-bob var(--sv-flap) var(--sv-fly-at) ease-in-out infinite;
}.sv-logo.sv-flap.sv-play .sv-wing--l {
  animation:
    sv-wing-l 1.15s .45s cubic-bezier(.22,1,.36,1) both,
    sv-flap-l var(--sv-flap) var(--sv-fly-at) infinite,
    sv-bob var(--sv-flap) var(--sv-fly-at) ease-in-out infinite;
}.sv-logo.sv-flap.sv-play .sv-wing--r {
  animation:
    sv-wing-r 1.15s .45s cubic-bezier(.22,1,.36,1) both,
    sv-flap-r var(--sv-flap) var(--sv-fly-at) infinite,
    sv-bob var(--sv-flap) var(--sv-fly-at) ease-in-out infinite;
}.sv-logo.sv-flap.sv-play .sv-shine {
  animation: sv-shine 8s 1.45s cubic-bezier(.45,0,.25,1) infinite;
}.sv-logo.sv-flap[data-flight="once"].sv-play .sv-part { animation-iteration-count: 1, 3, 3; }.sv-logo.sv-flap[data-flight="once"].sv-play .sv-lens { animation-iteration-count: 1, 3; }.sv-logo.sv-flap[data-flight="off"].sv-play .sv-wing--l { animation: sv-wing-l 1.15s .45s cubic-bezier(.22,1,.36,1) both; }.sv-logo.sv-flap[data-flight="off"].sv-play .sv-wing--r { animation: sv-wing-r 1.15s .45s cubic-bezier(.22,1,.36,1) both; }.sv-logo.sv-flap[data-flight="off"].sv-play .sv-lens { animation: sv-lens 1s cubic-bezier(.16,1,.3,1) both; }

@keyframes sv-lens {
  0%   { opacity: 0; transform: scale(.35) rotate(-140deg); }
  55%  { opacity: 1; }
  82%  { filter: brightness(1.18); }
  100% { opacity: 1; transform: none; filter: none; }
}
@keyframes sv-wing-l {
  0%   { opacity: 0; transform: rotate(-38deg) scale(.2); }
  30%  { opacity: 1; }
  72%  { transform: rotate(2.5deg) scale(1.015); }
  100% { opacity: 1; transform: none; }
}
@keyframes sv-wing-r {
  0%   { opacity: 0; transform: rotate(38deg) scale(.2); }
  30%  { opacity: 1; }
  72%  { transform: rotate(-2.5deg) scale(1.015); }
  100% { opacity: 1; transform: none; }
}


@keyframes sv-flap-l {
  0%   { transform: none;                         animation-timing-function: cubic-bezier(.45,0,.55,1); }
  45%  { transform: rotate(17deg) scaleX(.92);    animation-timing-function: cubic-bezier(.6,0,.4,1); }
  72%  { transform: rotate(-9deg) scaleX(.96);    animation-timing-function: cubic-bezier(.45,0,.55,1); }
  100% { transform: none; }
}
@keyframes sv-flap-r {
  0%   { transform: none;                         animation-timing-function: cubic-bezier(.45,0,.55,1); }
  45%  { transform: rotate(-17deg) scaleX(.92);   animation-timing-function: cubic-bezier(.6,0,.4,1); }
  72%  { transform: rotate(9deg) scaleX(.96);     animation-timing-function: cubic-bezier(.45,0,.55,1); }
  100% { transform: none; }
}

@keyframes sv-bob {
  0%, 100% { translate: 0 0; }
  45%      { translate: 0 1.6%; }
  72%      { translate: 0 -1.4%; }
}

@keyframes sv-shine {
  0%   { background-position: 100% 0; }
  13%  { background-position: 0% 0; }
  100% { background-position: 0% 0; }
}

@media (prefers-reduced-motion: reduce) {.sv-logo.sv-flap .sv-part, .sv-logo.sv-flap .sv-shine { animation: none !important; opacity: 1 !important; }
}
