/* Responsive Next1K site with gradient glow dots and continuous canvas lights */
:root {
  --bg-start: #3b0b66;
  --bg-end: #1b0b2e;
  --purple: #7248ff;
  --pink: #ff6aa6;
  --white: #ffffff;
  --card-border: rgba(255,255,255,0.14);
  --shadow: 0 20px 60px rgba(0,0,0,0.25);
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  height: 100%;
  font-family: 'Inter', system-ui, sans-serif;
  color: var(--white);
  background: linear-gradient(145deg, var(--bg-start), var(--bg-end));
  overflow-x: hidden;
}

#bg-canvas {
  position: fixed;
  inset: 0;
  z-index: 0;
}

.hero {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: clamp(32px, 5vw, 64px) 20px;
}

.card {
  width: min(860px, 94vw);
  text-align: center;
  background: rgba(255,255,255,0.08);
  border: 1px solid var(--card-border);
  backdrop-filter: blur(12px);
  border-radius: 24px;
  padding: clamp(24px, 5vw, 48px);
  box-shadow: var(--shadow);
}

.logo {
  width: clamp(120px, 28vw, 220px);
  display: block;
  margin: 0 auto clamp(12px, 2.2vw, 24px);
  border-radius: 20px;
  background: var(--white);
  padding: clamp(10px, 2vw, 16px);
}

.headline {
  font-size: clamp(36px, 8vw, 92px);
  margin: 6px auto;
  font-weight: 800;
  color: var(--white);
}

.accent {
  background: linear-gradient(90deg, var(--purple), var(--pink));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.tagline {
  font-size: clamp(16px, 2.6vw, 26px);
  margin: 4px 0 10px;
  font-weight: 600;
  color: #E9E6FF;
}

.blurb {
  max-width: 720px;
  margin: 0 auto 18px;
  color: #D8D6EF;
  line-height: 1.55;
  font-size: clamp(14px, 1.6vw, 16px);
  padding-inline: clamp(0px, 2vw, 8px);
}

.dots {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 14px;
}

.dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: linear-gradient(90deg, var(--purple), var(--pink));
  opacity: 0.3;
  animation: pulse 3.5s ease-in-out infinite;
}

.dot:nth-child(1) { animation-delay: 0s; }
.dot:nth-child(2) { animation-delay: 0.3s; }
.dot:nth-child(3) { animation-delay: 0.6s; }

@keyframes pulse {
  0%, 80%, 100% { opacity: 0.3; transform: scale(1); }
  40% { opacity: 1; transform: scale(1.4); }
}

.footer {
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  color: #C8C5E0;
  font-size: 14px;
}

@media (max-width: 480px) {
  .footer { position: static; margin-top: 16px; }
}


/* Legal pages */
body.legal-page {
  background: linear-gradient(145deg, var(--bg-start), var(--bg-end));
  color: white;
  text-align: center;
  padding: 40px 20px;
}

.legal-content {
  max-width: 800px;
  margin: 0 auto;
  text-align: left;
  background: rgba(0,0,0,0.4);
  border-radius: 20px;
  padding: 40px;
  line-height: 1.6;
}

.legal-content h1 {
  text-align: center;
  margin-bottom: 20px;
}

.logo.small {
  width: 160px;
  display: block;
  margin: 0 auto 20px;
}

.footer.legal {
  text-align: center;
  margin-top: 30px;
}
.footer.legal a {
  color: #fff;
  text-decoration: none;
}
.footer.legal a:hover {
  text-decoration: underline;
}


/* Footer visibility fix */
.hero {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
}

.footer {
  position: relative;
  bottom: 0;
  left: 0;
  width: 100%;
  text-align: center;
  color: #C8C5E0;
  font-size: 14px;
  margin-top: 40px;
  padding-bottom: 20px;
}

.footer a {
  color: #ffffff;
  text-decoration: none;
  margin: 0 8px;
  font-weight: 500;
  opacity: 0.85;
}

.footer a:hover {
  opacity: 1;
  text-decoration: underline;
}


/* Centered footer adjustment */
.footer {
  width: 100%;
  text-align: center;
  color: #C8C5E0;
  font-size: 14px;
  margin-top: 40px;
  padding: 20px 0;
  position: relative;
}

.footer a {
  color: #ffffff;
  text-decoration: none;
  margin: 0 8px;
  font-weight: 500;
  opacity: 0.85;
}

.footer a:hover {
  opacity: 1;
  text-decoration: underline;
}


/* Final fixed footer (always visible and centered) */
.footer {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  text-align: center;
  color: #C8C5E0;
  font-size: 14px;
  background: transparent;
  padding: 14px 0;
  z-index: 5;
}

.footer a {
  color: #ffffff;
  text-decoration: none;
  margin: 0 8px;
  font-weight: 500;
  opacity: 0.85;
}

.footer a:hover {
  opacity: 1;
  text-decoration: underline;
}


/* Final layout and footer centering fix */
.hero {
  display: block !important;
  min-height: calc(100vh - 60px);
  text-align: center;
  padding-bottom: 60px;
}

.footer {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: auto;
  text-align: center;
  color: #C8C5E0;
  font-size: 14px;
  background: transparent;
  padding: 14px 20px;
  z-index: 10;
}

.footer a {
  color: #ffffff;
  text-decoration: none;
  margin: 0 8px;
  font-weight: 500;
  opacity: 0.85;
}

.footer a:hover {
  opacity: 1;
  text-decoration: underline;
}


/* Footer visibility and layering fix */
#footer-container,
footer.footer {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: auto;
  text-align: center;
  color: #C8C5E0;
  font-size: 14px;
  background: transparent;
  padding: 14px 20px;
  z-index: 9999; /* always above canvas and cards */
}

#footer-container a,
footer.footer a {
  color: #ffffff;
  text-decoration: none;
  margin: 0 8px;
  font-weight: 500;
  opacity: 0.85;
}

#footer-container a:hover,
footer.footer a:hover {
  opacity: 1;
  text-decoration: underline;
}


/* Footer inside main content layer (visible above canvas) */
#footer-container footer {
  position: relative;
  width: 100%;
  text-align: center;
  color: #C8C5E0;
  font-size: 14px;
  background: transparent;
  padding: 20px 0;
  z-index: 10;
}

#footer-container a {
  color: #ffffff;
  text-decoration: none;
  margin: 0 8px;
  font-weight: 500;
  opacity: 0.85;
}

#footer-container a:hover {
  opacity: 1;
  text-decoration: underline;
}


/* Safari and Chrome centering + overflow fixes */
html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  overflow-x: hidden;
}

.hero {
  margin: 0 auto;
  text-align: center;
}


/* JS-loaded footer styling */
#footer-container footer {
  position: relative;
  width: 100%;
  text-align: center;
  color: #C8C5E0;
  font-size: 14px;
  background: transparent;
  padding: 20px 0;
  z-index: 10;
}

#footer-container a {
  color: #ffffff;
  text-decoration: none;
  margin: 0 8px;
  font-weight: 500;
  opacity: 0.85;
}

#footer-container a:hover {
  opacity: 1;
  text-decoration: underline;
}


/* Static footer, no scroll needed, centered and transparent */
.footer-container, footer.footer {
  position: relative;
  margin-top: 60px;
  width: 100%;
  text-align: center;
  color: #C8C5E0;
  font-size: 14px;
  background: transparent;
  padding: 20px 0 30px;
  z-index: 10;
}

footer.footer a {
  color: #ffffff;
  text-decoration: none;
  margin: 0 8px;
  font-weight: 500;
  opacity: 0.85;
}

footer.footer a:hover {
  opacity: 1;
  text-decoration: underline;
}

@media (max-height: 800px) {
  .footer-container, footer.footer {
    margin-top: 40px;
    padding: 10px 0 20px;
  }
}


/* Final footer positioning fix (slightly higher, no duplicates) */
.footer-container, footer.footer {
  margin-top: 40px;
  padding: 10px 0 20px;
}


/* Adjust content spacing after footer cleanup */
main.hero {
  margin-bottom: 40px;
}
