/* Approved package motion; geometry and timing are intentionally unchanged. */
:root { --sif-emblem-loader-size: 112px; --sif-emblem-loader-duration: 2.45s; --sif-emblem-loader-easing: cubic-bezier(.68,-.35,.27,1.35); }
.sif-loader { position: fixed; inset: 0; z-index: 1500; display: grid; place-items: center; opacity: 1; visibility: visible; transition: opacity .45s ease, visibility .45s ease; }
.sif-loader[hidden] { display: none; }
.sif-loader.is-hiding { opacity: 0; visibility: hidden; pointer-events: none; }
.sif-loader--frontend { background: #fff; }
.sif-loader__content { display: grid; justify-items: center; gap: 22px; padding: 30px; max-width: 100%; }
.sif-loader__label { font-family: Montserrat, Arial, sans-serif; font-size: clamp(18px, 2vw, 25px); font-weight: 600; letter-spacing: .025em; color: #50635a; text-align: center; animation: sif-loader-label-pulse 2.45s ease-in-out infinite; }
.sif-loader--frontend { --sif-emblem-loader-size: clamp(74px, 7vw, 112px); }
.sif-loader--admin { --sif-emblem-loader-size: clamp(74px, 7vw, 96px); top: var(--adm-topbar-height, 64px); left: var(--adm-sidebar-current-width, var(--adm-sidebar, 240px)); background: rgba(246,249,246,.78); transition-duration: .25s; }
@supports ((backdrop-filter: blur(11px)) or (-webkit-backdrop-filter: blur(11px))) {
 .sif-loader--admin { background: rgba(246,249,246,.58); backdrop-filter: blur(11px) saturate(.9); -webkit-backdrop-filter: blur(11px) saturate(.9); }
}
/* JS opts in before body parsing. No JS or blocked controller: no blocking splash.
   A CSS safety release also covers a controller failure before initialization. */
.sif-loaders-ready .sif-loader--frontend:not([data-initialized]) { display: grid; animation: sif-loader-release 0s 12s forwards; }
@keyframes sif-loader-release { to { visibility: hidden; opacity: 0; pointer-events: none; } }
.sif-emblem-loader {
  width: var(--sif-emblem-loader-size);
  height: auto;
  overflow: visible;
  filter: drop-shadow(0 8px 20px rgba(16, 50, 35, .08));
}

.sif-emblem-loader__piece {
  transform-box: fill-box;
  transform-origin: center;
  will-change: transform, opacity;
  animation-duration: var(--sif-emblem-loader-duration);
  animation-timing-function: var(--sif-emblem-loader-easing);
  animation-iteration-count: infinite;
}

/*
 * Each path keeps its own shape, moves away from the emblem, rotates independently,
 * crosses through a second motion state, and then locks back into the exact logo.
 */
.sif-emblem-loader__piece--1 {
  animation-name: sif-emblem-piece-1;
}

.sif-emblem-loader__piece--2 {
  animation-name: sif-emblem-piece-2;
}

.sif-emblem-loader__piece--3 {
  animation-name: sif-emblem-piece-3;
}

.sif-emblem-loader__piece--4 {
  animation-name: sif-emblem-piece-4;
}

@keyframes sif-emblem-piece-1 {
  0%, 9%   { transform: translate(0, 0) rotate(0deg) scale(1); opacity: 1; }
  35%      { transform: translate(-30px, -19px) rotate(-145deg) scale(.82); opacity: .90; }
  70%      { transform: translate(17px, 10px) rotate(-315deg) scale(1.04); opacity: .96; }
  88%,100% { transform: translate(0, 0) rotate(-360deg) scale(1); opacity: 1; }
}

@keyframes sif-emblem-piece-2 {
  0%, 9%   { transform: translate(0, 0) rotate(0deg) scale(1); opacity: 1; }
  35%      { transform: translate(22px, -31px) rotate(150deg) scale(.80); opacity: .90; }
  70%      { transform: translate(-11px, 18px) rotate(315deg) scale(1.05); opacity: .96; }
  88%,100% { transform: translate(0, 0) rotate(360deg) scale(1); opacity: 1; }
}

@keyframes sif-emblem-piece-3 {
  0%, 9%   { transform: translate(0, 0) rotate(0deg) scale(1); opacity: 1; }
  35%      { transform: translate(-20px, 31px) rotate(148deg) scale(.82); opacity: .90; }
  70%      { transform: translate(13px, -13px) rotate(318deg) scale(1.04); opacity: .96; }
  88%,100% { transform: translate(0, 0) rotate(360deg) scale(1); opacity: 1; }
}

@keyframes sif-emblem-piece-4 {
  0%, 9%   { transform: translate(0, 0) rotate(0deg) scale(1); opacity: 1; }
  35%      { transform: translate(32px, 19px) rotate(-152deg) scale(.80); opacity: .90; }
  70%      { transform: translate(-18px, -8px) rotate(-320deg) scale(1.05); opacity: .96; }
  88%,100% { transform: translate(0, 0) rotate(-360deg) scale(1); opacity: 1; }
}


@keyframes sif-loader-label-pulse {
  0%, 100% { opacity: .42; }
  50%      { opacity: 1; }
}


.sif-loader[hidden][data-initialized] .sif-emblem-loader__piece { animation: none; will-change: auto; }
@media(max-width: 1100px) { .sif-loader--admin { left: 0; } }
@media(prefers-reduced-motion: reduce) {
 .sif-emblem-loader__piece, .sif-loader__label { animation: none !important; }
 .sif-loader { transition-duration: .15s; }
}
