/* Primer frame web y vista previa: el brillo queda recortado a la silueta. */
#startup-splash {
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  display: grid;
  place-items: center;
  background: #141414;
  pointer-events: none;
}
.startup-logo {
  position: relative;
  width: clamp(128px, 38vmin, 192px);
  aspect-ratio: 1;
  background: url('/icons/startup-logo.webp?v=4') center / contain no-repeat;
}
.startup-logo::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,.15) 43%, rgba(255,255,255,.95) 49%, rgba(255,255,255,.15) 55%, transparent 63%) -150% 0 / 250% 100% no-repeat;
  -webkit-mask: url('/icons/startup-logo.webp?v=4') center / contain no-repeat;
  mask: url('/icons/startup-logo.webp?v=4') center / contain no-repeat;
  animation: startup-light-sweep 2s ease-in-out infinite;
}
@keyframes startup-light-sweep {
  0% { background-position: 150% 0; opacity: 0; }
  15% { opacity: 1; }
  65% { background-position: -50% 0; opacity: 1; }
  85%, 100% { background-position: -50% 0; opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .startup-logo::after { animation: none; opacity: 0; }
}
