/* =====================
   RESET
===================== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* =====================
   BASE
===================== */
body {
  min-height: 100vh;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  background: linear-gradient(135deg, #0b3f37, #0f5c50);
  color: #ffffff;
  overflow: hidden;
}

/* =====================
   BACKGROUND PATTERN
===================== */
.bg-pattern {
  position: fixed;
  inset: 0;
  background:
    linear-gradient(45deg, rgba(255,255,255,.04) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(255,255,255,.04) 25%, transparent 25%),
    linear-gradient(135deg, rgba(255,255,255,.04) 25%, transparent 25%),
    linear-gradient(-135deg, rgba(255,255,255,.04) 25%, transparent 25%);
  background-size: 80px 80px;
  background-position: 0 0, 0 40px, 40px -40px, -40px 0;
  opacity: .25;
}

/* =====================
   LAYOUT
===================== */
.container {
  position: relative;
  z-index: 2;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 24px;
}

/* =====================
   LOGO — HERO
===================== */
.logo-img {
  width: clamp(260px, 45vw, 800px);
  height: auto;
  margin-bottom: 8px;
}

/* =====================
   PICKLEBALL ANIMATION
===================== */
.pickleball {
  width: clamp(44px, 6vw, 72px);
  margin-bottom: 12px;
  animation: bounce 1.6s ease-in-out infinite;
}

/* Bounce + squash */
@keyframes bounce {
  0% {
    transform: translateY(0) scale(1, 1);
  }
  20% {
    transform: translateY(0) scale(1.05, 0.95);
  }
  50% {
    transform: translateY(-34px) scale(0.95, 1.05);
  }
  80% {
    transform: translateY(0) scale(1.03, 0.97);
  }
  100% {
    transform: translateY(0) scale(1, 1);
  }
}

/* =====================
   COMING SOON
===================== */
.coming-soon {
  display: flex;
  gap: 12px;
  font-size: clamp(16px, 3vw, 30px);
  letter-spacing: 5px;
  font-weight: 500;
}

/* =====================
   TEXT ANIMATION
===================== */
.coming-soon span {
  opacity: 0;
  transform: translateY(8px);
  animation: reveal 1.2s ease forwards;
}

.coming-soon span:nth-child(2) {
  animation-delay: .25s;
}

/* =====================
   LOADER
===================== */
.loader {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}

.loader span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ffffff;
  opacity: .3;
  animation: pulse 1.4s infinite ease-in-out;
}

.loader span:nth-child(2) { animation-delay: .2s; }
.loader span:nth-child(3) { animation-delay: .4s; }

/* =====================
   ANIMATIONS
===================== */
@keyframes reveal {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes pulse {
  0%, 80%, 100% { opacity: .3; }
  40% { opacity: 1; }
}

/* =====================
   SMALL MOBILE TWEAK
===================== */
@media (max-width: 360px) {
  .logo-img {
    width: 220px;
  }
}
