/* Circuit Tonique, partagé par Angular et le splash pré-Angular.
   PNG original uniquement ; calques absolus, seules les opacités sont animées. */
.fx-logo-loader {
  --fx-loader-size: 32px;
  --fx-loader-cycle: 3600ms;
  --fx-light-emission: var(--fx-text);
  --fx-light-wide: clamp(3px, calc(var(--fx-loader-size) * .09), 10px);
  position: relative;
  display: inline-block;
  width: var(--fx-loader-size);
  height: var(--fx-loader-size);
  flex: 0 0 var(--fx-loader-size);
  vertical-align: middle;
  isolation: isolate;
}
[data-theme="flexoramaLight"] .fx-logo-loader, .fx-logo-loader--light { --fx-light-emission: var(--fx-accent-mid); }
.fx-logo-loader--page { --fx-loader-size: 96px; }
.fx-logo-loader img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
.fx-logo-loader__base { opacity: 1; }
.fx-logo-loader__element { position: absolute; inset: 0; display: none; --fx-light-shift: 0ms; }
.fx-logo-loader__core, .fx-logo-loader__aura { position: absolute; inset: 0; opacity: 0; }
.fx-logo-loader__aura { filter: drop-shadow(0 0 1px var(--fx-light-emission)) drop-shadow(0 0 var(--fx-light-wide) color-mix(in srgb, var(--fx-light-emission) 85%, transparent)); }
.light-left { --fx-light-shift: -2700ms; }
.light-bottom { --fx-light-shift: -1800ms; }
.light-diamond { --fx-light-shift: -900ms; --fx-light-emission: var(--fx-accent); }
.cut-top { clip-path: circle(14.9% at 50% 15.625%); }
.cut-left { clip-path: circle(16.6% at 15.625% 50.78%); }
.cut-bottom { clip-path: circle(14.9% at 50% 83.59%); }
.cut-diamond { clip-path: polygon(82.5% 30.5%, 101% 50.5%, 82.5% 70.5%, 63% 50.5%); }
@supports (clip-path: circle(15% at 50% 15%)) and (filter: drop-shadow(0 0 1px currentColor)) {
  @media (prefers-reduced-motion: no-preference) {
    .fx-logo-loader:not(.fx-logo-loader--static):not(.fx-logo-loader--inactive) .fx-logo-loader__base { opacity: .24; }
    .fx-logo-loader:not(.fx-logo-loader--static):not(.fx-logo-loader--inactive) .fx-logo-loader__element { display: block; }
    .fx-logo-loader:not(.fx-logo-loader--static):not(.fx-logo-loader--inactive) .fx-logo-loader__core { animation: fx-tonic-core var(--fx-loader-cycle) cubic-bezier(.45,0,.25,1) var(--fx-light-shift) infinite; }
    .fx-logo-loader:not(.fx-logo-loader--static):not(.fx-logo-loader--inactive) .fx-logo-loader__aura { animation: fx-tonic-aura var(--fx-loader-cycle) cubic-bezier(.45,0,.25,1) var(--fx-light-shift) infinite; }
  }
}
/* Cœur : montée 216, tenue 216, descente 468 ms ; halo : pic 360, fin 1170 ms. */
@keyframes fx-tonic-core { 0%,25%,100% { opacity:0; } 6%,12% { opacity:1; } }
@keyframes fx-tonic-aura { 0%,3%,32.5%,100% { opacity:0; } 10%,14% { opacity:1; } 26% { opacity:.22; } }
.fx-logo-loader--inactive { visibility: hidden; }
.fx-logo-loader__label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (prefers-reduced-motion: reduce) {
  .fx-logo-loader__base { opacity: 1 !important; }
  .fx-logo-loader__element { display: none !important; }
  .fx-logo-loader__core, .fx-logo-loader__aura { animation: none !important; filter: none !important; }
}
