/* SIGRAF — loader "Sceau Ouvert" | public/css/sigraf-loader.css */
.sigraf-loader { color: #0A2C4D; line-height: 0; display: inline-block; }
.sigraf-loader--inverse { color: #FFFFFF; }
.sigraf-loader .sg-frame,
.sigraf-loader .sg-core { transform-box: fill-box; transform-origin: center; }
.sigraf-loader .sg-frame { animation: sg-seal-rotate 2.8s cubic-bezier(.65,0,.35,1) infinite; }
.sigraf-loader .sg-core  { animation: sg-core-pulse  2.8s cubic-bezier(.65,0,.35,1) infinite; }

@keyframes sg-seal-rotate{0%{transform:rotate(0deg)}22%,28%{transform:rotate(90deg)}50%,56%{transform:rotate(180deg)}78%,84%{transform:rotate(270deg)}100%{transform:rotate(360deg)}}
@keyframes sg-core-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.62);opacity:.55}}

/* Écran plein page */
.sigraf-splash { position: fixed; inset: 0; z-index: 9999; background: #FFFFFF;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; }
.sigraf-splash__wordmark { font-family: 'Archivo', system-ui, sans-serif; font-weight: 600;
  font-size: 22px; letter-spacing: .22em; color: #0A2C4D; line-height: 1; }
.sigraf-splash__hint { font-family: 'IBM Plex Mono', monospace; font-size: 10px;
  letter-spacing: .16em; color: #94A3B8; }

/* Barre de traitement indéterminée */
.sigraf-progress { height: 3px; background: #DDDAD3; overflow: hidden; }
.sigraf-progress > span { display: block; width: 25%; height: 100%; background: #1D6B4F;
  animation: sg-bar-run 1.6s cubic-bezier(.65,0,.35,1) infinite; }
@keyframes sg-bar-run { 0% { transform: translateX(-100%); } 100% { transform: translateX(400%); } }

@media (prefers-reduced-motion: reduce) {
  .sigraf-loader .sg-frame { animation: none; }
  .sigraf-loader .sg-core { animation: sg-core-pulse 1.8s ease-in-out infinite; }
  .sigraf-progress > span { animation: none; width: 100%; opacity: .5; }
}
