/* Global reset, fonts and base theme. Component-specific styles are generated
   from @css declarations into main.css. */

@font-face {
  font-family: 'Regular';
  src: url('/fonts/BebasNeue-Regular.ttf') format('truetype');
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('/fonts/Raleway-VariableFont_wght.ttf') format('truetype');
  font-weight: 100 900;
  font-display: swap;
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  min-height: 100vh;
  background-color: #101010;
  color: #ffffff;
  font-family: 'Raleway', sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

#app {
  min-height: 100vh;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font-family: inherit;
}

/* Hide scrollbars where the original app did, but keep scrolling. */
.no-scrollbar {
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.no-scrollbar::-webkit-scrollbar {
  display: none;
}

/* Line clamping — the CSS equivalent of Flutter's
   Text(maxLines: N, overflow: ellipsis). */
.clamp-1,
.clamp-2,
.clamp-3,
.clamp-4,
.clamp-5,
.clamp-6 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.clamp-1 { -webkit-line-clamp: 1; }
.clamp-2 { -webkit-line-clamp: 2; }
.clamp-3 { -webkit-line-clamp: 3; }
.clamp-4 { -webkit-line-clamp: 4; }
.clamp-5 { -webkit-line-clamp: 5; }
.clamp-6 { -webkit-line-clamp: 6; }

/* Pulsing "NOW" banner on the header drop timer. */
.now-banner {
  animation: now-pulse 1.4s linear infinite alternate;
}

@keyframes now-pulse {
  from { opacity: 0.1; }
  to { opacity: 1; }
}
