/* Loader de entrada del sitio — mismo efecto de components/loader.html,
   adaptado para vivir sobre el contenido real mientras carga. */
#site-loader{
  position:fixed;
  inset:0;
  z-index:1000;
  background:#FFFFFF;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:opacity var(--motion-slow) var(--ease), visibility var(--motion-slow) var(--ease);
}
#site-loader.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.loader-stage{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:32px;
  animation: softJump 400ms cubic-bezier(0.33,0,0.2,1) forwards;
  animation-delay: 900ms;
}
@keyframes softJump{
  0%{ transform: translateY(0); }
  45%{ transform: translateY(-10px); }
  100%{ transform: translateY(0); }
}
.loader-mark{ width:180px; height:180px; overflow:visible; }

.loader-piece-plane{
  opacity:0;
  transform-box: fill-box;
  transform-origin:center;
  transform: scale(0.94);
  animation: loaderPlaneIn 400ms var(--ease) forwards;
  animation-delay: 500ms;
}
.loader-piece-top{
  opacity:0;
  transform-box: fill-box;
  transform-origin:center;
  transform: translateY(-260px);
  animation: loaderDropIn 400ms var(--ease) forwards;
  animation-delay: 120ms;
}
.loader-piece-bottom{
  opacity:0;
  transform-box: fill-box;
  transform-origin:center;
  transform: translateY(260px);
  animation: loaderRiseIn 400ms var(--ease) forwards;
  animation-delay: 120ms;
}
.loader-meet-flash{
  opacity:0;
  transform-box: fill-box;
  transform-origin:center;
  transform: scale(0.5);
  animation: loaderFlash 400ms var(--ease) forwards;
  animation-delay: 480ms;
}
@keyframes loaderDropIn{ to{ opacity:1; transform: translateY(0); } }
@keyframes loaderRiseIn{ to{ opacity:1; transform: translateY(0); } }
@keyframes loaderPlaneIn{ to{ opacity:1; transform: scale(1); } }
@keyframes loaderFlash{
  0%{ opacity:0; transform:scale(0.5); }
  45%{ opacity:0.85; transform:scale(1.2); }
  100%{ opacity:0; transform:scale(1.5); }
}
.loader-wordmark{
  display:flex;
  align-items:baseline;
  gap:8px;
  opacity:0;
  animation: loaderWordIn 400ms var(--ease) forwards;
  animation-delay: 760ms;
}
.loader-wordmark .w1{ color:var(--color-ink); font-weight:700; font-size:22px; letter-spacing:0.02em; }
.loader-wordmark .w2{ color:var(--color-ink); opacity:0.5; font-weight:400; font-size:22px; }
@keyframes loaderWordIn{
  from{ opacity:0; transform: translateY(6px); }
  to{ opacity:1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce){
  .loader-piece-plane,.loader-piece-top,.loader-piece-bottom,.loader-meet-flash,.loader-wordmark,.loader-stage{
    animation-duration:1ms !important;
    animation-delay:0ms !important;
    transform:none !important;
  }
}
