/* ═══════════════════════════════════════
   RESET, TYPOGRAPHY & ANIMATIONS
   ═══════════════════════════════════════ */

* { margin: 0; padding: 0; box-sizing: border-box }
html, body { height: 100%; overflow: hidden }

body {
  font-family: var(--f);
  background: var(--base);
  color: var(--tx);
  font-size: 13px;
  -webkit-font-smoothing: antialiased;
  letter-spacing: -.01em;
  transition: background .2s, color .2s;
}

input, select, textarea, button {
  font-family: inherit;
  font-size: inherit;
  letter-spacing: inherit;
}

::selection { background: var(--sapphire); color: white }

::-webkit-scrollbar { width: 5px; height: 5px }
::-webkit-scrollbar-track { background: transparent }
::-webkit-scrollbar-thumb { background: var(--bdr); border-radius: 3px }

/* ═══ Focus Rings (WCAG AA) ═══ */
:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

/* ═══ Inline Lucide Icons ═══ */
svg.lc {
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
}

/* ═══ Animations ═══ */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(12px) }
  to   { opacity: 1; transform: translateY(0) }
}
@keyframes fadeIn {
  from { opacity: 0 }
  to   { opacity: 1 }
}
@keyframes slideIn {
  from { transform: translateX(100%) }
  to   { transform: translateX(0) }
}
@keyframes slideOut {
  from { transform: translateX(0) }
  to   { transform: translateX(100%) }
}
@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(39, 70, 194, .15) }
  50%      { box-shadow: 0 0 0 6px rgba(39, 70, 194, 0) }
}
@keyframes spin {
  to { transform: rotate(360deg) }
}
@keyframes shimmer {
  0%   { background-position: 200% 0 }
  100% { background-position: -200% 0 }
}
@keyframes rowReveal {
  from { opacity: 0; transform: translateY(6px) }
  to   { opacity: 1; transform: translateY(0) }
}

.anim { animation: fadeUp .45s cubic-bezier(.16, 1, .3, 1) both }
.a1 { animation-delay: .05s }
.a2 { animation-delay: .1s }
.a3 { animation-delay: .15s }
.a4 { animation-delay: .2s }
.a5 { animation-delay: .25s }

.dn { display: none !important }
