/* Finovas Global - reset & base elements */

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }

html, body { height: 100%; }

body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  font-size: 14px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  transition: background .25s var(--ease), color .25s var(--ease);
}

h1, h2, h3, h4 { line-height: 1.3; font-weight: 700; letter-spacing: -.01em; }
h1 { font-size: 22px; }
h2 { font-size: 17px; }
h3 { font-size: 15px; }

a { color: var(--brand); text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
ul { list-style: none; padding: 0; }

img, svg { display: block; max-width: 100%; }

.num { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }

:focus-visible {
  outline: none;
  box-shadow: var(--ring);
  border-radius: var(--r-xs);
}

::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-thumb {
  background: var(--border-strong);
  border-radius: 99px;
  border: 3px solid transparent;
  background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover { background: var(--text-soft); background-clip: content-box; }
::-webkit-scrollbar-track { background: transparent; }

@keyframes fvFadeUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes fvFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes fvSpin { to { transform: rotate(360deg); } }
@keyframes fvShimmer { 100% { transform: translateX(100%); } }
@keyframes fvPop { from { opacity: 0; transform: scale(.96) translateY(6px); } to { opacity: 1; transform: none; } }

.boot {
  height: 100vh; display: grid; place-items: center;
  color: var(--text-soft); font-weight: 600;
}

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
