html, body {
  height: 100%;
}

body {
  margin: 0;
  padding: 0;
  font-family: "Manrope", "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

@media (prefers-color-scheme: dark) {
  body {
    background: #0f0c18;
  }
}

.root {
  display: flex;
  flex-direction: column;
  height: 100%;
}

@keyframes osg-fade-up {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes osg-pulse-ring {
  0% {
    box-shadow: 0 0 0 0 rgba(15, 159, 110, 0.45);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(15, 159, 110, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(15, 159, 110, 0);
  }
}

@keyframes osg-drift {
  0%, 100% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  50% {
    transform: translate3d(2%, -1.5%, 0) scale(1.04);
  }
}

.osg-fade-up {
  animation: osg-fade-up 0.55s ease-out both;
}

.osg-fade-up-delay {
  animation: osg-fade-up 0.7s ease-out 0.12s both;
}

.osg-status-online {
  animation: osg-pulse-ring 2.2s ease-out infinite;
}

@media print {
  * {
    height: auto !important;
    overflow: visible !important;
  }
}
