/* Splash screen — Kilnio wordmark, no image assets. */

.splash-screen {
  --primary: #4F46E5; /* brand indigo (kilnio_logo_v2) */
  --bg: #f9fafb;
  --text: #1f2430;

  background: var(--bg);
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-family: Roboto, "Segoe UI", system-ui, sans-serif;
}

.splash-screen .spinner-wrap {
  position: relative;
  width: 100px;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.splash-screen .logo {
  position: absolute;
  z-index: 1;
  width: 40px;
  height: 40px;
  border-radius: 9px;
  user-select: none;
}

.splash-screen .brand {
  margin-top: 22px;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.5px;
  color: var(--text);
  animation: brand-pulse 1.8s ease-in-out infinite;
  user-select: none;
}

.splash-screen .brand span {
  color: var(--primary);
}

@keyframes brand-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.55; }
}

.splash-screen .spinner {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: linear-gradient(to right, var(--primary) 10%, rgba(0, 0, 0, 0) 42%);
  animation: loading 1.4s infinite linear;
  transform: translateZ(0);
}

.splash-screen .spinner:before {
  width: 50%;
  height: 50%;
  background: var(--primary);
  border-radius: 100% 0 0 0;
  position: absolute;
  top: 0;
  left: 0;
  content: '';
}

.splash-screen .spinner:after {
  background: var(--bg);
  width: 90%;
  height: 90%;
  border-radius: 50%;
  content: '';
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}

@keyframes loading {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

[data-bs-theme="dark"] .splash-screen,
[data-bs-theme="dark"] .splash-screen .spinner:after {
  background: #0a0b0d;
}

[data-bs-theme="dark"] .splash-screen .brand {
  color: #e9ecf3;
}
