/* ---------------------------------- */
/* Fonts & Root Theme Variables       */
/* ---------------------------------- */
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800&display=swap");

:root {
  --color-primary: #9333ea;
  --color-secondary: #7c3aed;
  --color-accent: #a78bfa;
  --color-dark: #1f2937;
}

/* ---------------------------------- */
/* Typography & Base Styles          */
/* ---------------------------------- */
body {
  font-family: "Montserrat", sans-serif;
  background-color: #0f172a;
  color: white;
  font-size: 16px;
}

@media (max-width: 640px) {
  body {
    font-size: 14px;
  }
}

/* ---------------------------------- */
/* Tailwind-style Custom Utilities   */
/* ---------------------------------- */
/* Text colors */
.text-primary {
  color: var(--color-primary);
}
.text-secondary {
  color: var(--color-secondary);
}
.text-accent {
  color: var(--color-accent);
}
.text-dark {
  color: var(--color-dark);
}

/* Background colors */
.bg-primary {
  background-color: var(--color-primary);
}
.bg-secondary {
  background-color: var(--color-secondary);
}
.bg-accent {
  background-color: var(--color-accent);
}
.bg-dark {
  background-color: var(--color-dark);
}

/* Hover utilities */
.hover\:text-accent:hover {
  color: var(--color-accent);
}
.hover\:bg-accent:hover {
  background-color: var(--color-accent);
}

/* Shadow */
.shadow-accent\/30 {
  box-shadow: 0 4px 6px -1px rgba(167, 139, 250, 0.3),
    0 2px 4px -2px rgba(167, 139, 250, 0.3);
}

/* ---------------------------------- */
/* Mobile Menu                       */
/* ---------------------------------- */
.mobile-menu {
  display: none;
  position: fixed;
  top: 80px;
  left: 0;
  right: 0;
  background-color: #1e293b;
  z-index: 30;
  padding: 1rem;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.mobile-menu.open {
  display: block;
}

.mobile-menu a {
  display: block;
  padding: 0.75rem 1rem;
  color: white;
  border-bottom: 1px solid #334155;
}

@media (min-width: 1024px) {
  .mobile-menu {
    display: none !important;
  }
}

/* ---------------------------------- */
/* Components & Effects              */
/* ---------------------------------- */
.gradient-bg {
  background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
}

.game-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(124, 58, 237, 0.3);
}

.modal-overlay {
  background-color: rgba(0, 0, 0, 0.8);
}

.auth-modal {
  animation: fadeIn 0.3s ease-out;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ---------------------------------- */
/* Footer Styles                     */
/* ---------------------------------- */
footer a {
  transition: color 0.2s;
}
footer a:hover {
  color: var(--color-accent);
}
footer h3 {
  font-size: 1rem;
  letter-spacing: 0.05em;
}

/* ---------------------------------- */
/* Misc                              */
/* ---------------------------------- */
.age-gate {
  display: none;
}

iframe {
  border: none;
  width: 100%;
  height: 80vh;
}