/*! Forge splash v1 — intro del logo para la primera visita y después del login.
   Colores de marca: volt #C8F560, iron #0B0C0E. Sin fuentes externas: el nombre FORGE es un trazo SVG. */

html.fs-pending::before {
  content: ""; position: fixed; inset: 0; z-index: 2147483647; background: #C8F560;
}
html.fs-lock, html.fs-lock body { overflow: hidden; }

.fs {
  position: fixed; inset: 0; z-index: 2147483647;
  display: grid; place-items: center;
  background: #C8F560; overflow: hidden; cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  animation: fs-out .42s cubic-bezier(.5, 0, .75, 0) 2.45s both;
}
.fs.fs-skip { animation: fs-skip .25s ease-out both; }
.fs-in { animation: fs-zoom .42s cubic-bezier(.5, 0, .75, 0) 2.45s both; }
.fs svg { display: block; overflow: visible; height: auto; }
.fs .fs-h { width: min(56vw, 640px); }
@media (max-width: 760px) { .fs .fs-h { width: min(72vw, 420px); } }
.fs .k { fill: #0B0C0E; }
.fs .w { fill: #FFFFFF; }

/* Estado final como base: si no hay animación, el logo queda armado. */
.fs-sk { transform-box: view-box; transform-origin: 0 50px; transform: skewX(-10deg);
  animation: fs-lean .38s cubic-bezier(.34, 1.7, .64, 1) .28s both; }
.fs-bar { transform-box: fill-box; transform-origin: 50% 100%;
  animation: fs-rise .5s cubic-bezier(.34, 1.56, .64, 1) 0s both; }
.fs-top, .fs-plus { transform-box: fill-box; transform-origin: 0 50%;
  animation: fs-load .5s linear .5s both; }
.fs-plus { animation-delay: .82s; }
.fs-dip { animation: fs-dip .36s ease-in-out 1.08s both; }
.fs-pos { transform-box: view-box; transform-origin: 51.5px 50px;
  animation: fs-h-move .58s cubic-bezier(.65, 0, .35, 1) 1.3s both; }
.fs-wm { animation: fs-h-wm .62s cubic-bezier(.34, 1.25, .64, 1) 1.48s both; }

@keyframes fs-rise {
  0% { transform: translateY(55%) scaleY(1.06); opacity: 0; }
  30% { opacity: 1; }
  100% { transform: none; opacity: 1; }
}
@keyframes fs-lean { 0% { transform: skewX(0deg); } 100% { transform: skewX(-10deg); } }
@keyframes fs-load {
  0% { transform: translateX(64px) scaleX(1.14); opacity: 0; animation-timing-function: cubic-bezier(.5, 0, .9, .4); }
  30% { opacity: 1; }
  55% { transform: translateX(0) scale(1, 1); opacity: 1; animation-timing-function: ease-out; }
  72% { transform: scale(.88, 1.1); }
  88% { transform: scale(1.03, .98); }
  100% { transform: none; opacity: 1; }
}
@keyframes fs-dip {
  0% { transform: none; } 45% { transform: translateY(1.4px); }
  78% { transform: translateY(-.4px); } 100% { transform: none; }
}
@keyframes fs-h-move { 0% { transform: translate(95.5px, 0) scale(1.35); } 100% { transform: none; } }
@keyframes fs-h-wm { 0% { transform: translateX(-192px); } 100% { transform: none; } }
@keyframes fs-zoom { to { transform: scale(1.04); } }
@keyframes fs-out { to { opacity: 0; visibility: hidden; } }
@keyframes fs-skip { to { opacity: 0; visibility: hidden; } }

@media (prefers-reduced-motion: reduce) {
  .fs * { animation: none !important; }
  .fs { animation: fs-out .3s ease .8s both; }
}
