/* ──────────────────────────────────────────────────────────
   SOL-COMMON · базовые стили для всех страниц решений
   ────────────────────────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Montserrat', system-ui, -apple-system, sans-serif;
  background: #ffffff; color: #1a1a1a;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "tnum" 1;
  line-height: 1.5;
}
a { color: inherit; }
button { font-family: inherit; cursor: pointer; }

/* Boot loader */
#boot {
  position: fixed; inset: 0; display: flex; align-items: center; justify-content: center;
  background: #fff; z-index: 100; transition: opacity .4s ease;
}
#boot.hide { opacity: 0; pointer-events: none; }
#boot > div {
  width: 36px; height: 36px; border-radius: 50%;
  background: linear-gradient(135deg, #06B6D4, #22D3EE);
  box-shadow: 0 0 30px rgba(34,211,238,0.5);
  animation: pulse 1.4s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.3); }
}
@keyframes floatY {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}
@keyframes orbit {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes drift {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(10px, -8px); }
}
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
@keyframes blink {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}
@keyframes typing {
  from { width: 0; }
  to { width: 100%; }
}
@keyframes scan {
  0% { transform: translateY(0); opacity: 0.5; }
  50% { opacity: 1; }
  100% { transform: translateY(100%); opacity: 0; }
}

/* Tabular numerics for monospace contexts */
.mono { font-family: 'JetBrains Mono', 'Fira Code', monospace; font-variant-numeric: tabular-nums; }

/* Smooth img loading */
img { max-width: 100%; height: auto; }

/* Selection */
::selection { background: rgba(6,182,212,0.25); color: #0d1117; }
