/* =========================================================
   ZUKANI TV — DOWNLOAD / COMING SOON PAGE
   ---------------------------------------------------------
   Note: the shared site nav (layouts/app.blade.php) is
   position:fixed, top:0, height:var(--nav-h) -- the ChatGPT
   mockup reserved a hardcoded ~92/86/84px of top spacing for
   "the existing nav" per breakpoint. Replaced each with
   calc(var(--nav-h) + Npx), keeping the same extra breathing
   room the mockup intended but deriving it from the real nav
   height instead of a guessed magic number.
========================================================= */

:root {
  --gold: #FDC830;
  --orange: #F37335;
  --gradient: linear-gradient(135deg, #FDC830, #F37335);
  --bg: #0a0a0f;
  --surface-1: #13131a;
  --surface-2: #1c1c26;
  --surface-3: #242433;
  --text: #f0f0f0;
  --muted: #888899;
  --hairline: rgba(255,255,255,0.08);
  --display: "Bebas Neue", sans-serif;
  --body: "DM Sans", sans-serif;
  --page-width: 1440px;
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-xl: 32px;
  --ease: cubic-bezier(.22,.8,.26,1);
}

.gradient-text {
  color: transparent;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
}

.page-width {
  width: min(calc(100% - 32px), var(--page-width));
  margin-inline: auto;
}


/* =========================================================
   PAGE
========================================================= */

.download-page {
  position: relative;
  min-height: 100vh;
  padding-top: calc(var(--nav-h) + 24px);
  overflow: hidden;
}

.download-page::before {
  content: "ZUKANI";
  position: absolute;
  top: 110px;
  right: -40px;
  pointer-events: none;
  font-family: var(--display);
  font-size: clamp(11rem, 31vw, 27rem);
  line-height: .75;
  color: rgba(255,255,255,.015);
  letter-spacing: -.02em;
  white-space: nowrap;
}


/* =========================================================
   HERO
========================================================= */

.hero {
  position: relative;
  z-index: 2;
  min-height: calc(100vh - var(--nav-h) - 24px);
  display: flex;
  align-items: center;
  padding: 48px 0 68px;
}

.hero-grid {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  align-items: center;
  gap: 54px;
}


/* =========================================================
   LEFT CONTENT
========================================================= */

.hero-copy { max-width: 760px; }

.launch-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 17px;
  color: rgba(240,240,240,.69);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .19em;
  text-transform: uppercase;
}

.pulse-dot {
  position: relative;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 0 rgba(253,200,48,.22);
}

.pulse-dot::after {
  content: "";
  position: absolute;
  inset: -5px;
  border: 1px solid rgba(253,200,48,.38);
  border-radius: 50%;
  animation: launchPulse 2s ease-out infinite;
}

@keyframes launchPulse {
  0% { transform: scale(.65); opacity: .8; }
  70%, 100% { transform: scale(1.7); opacity: 0; }
}


/* =========================================================
   TITLE
========================================================= */

.hero-title {
  max-width: 800px;
  margin: 0;
  font-family: var(--display);
  font-size: clamp(4.4rem, 17vw, 9rem);
  font-weight: 400;
  line-height: .79;
  letter-spacing: .018em;
  text-transform: uppercase;
  text-wrap: balance;
}

.hero-subtitle {
  max-width: 650px;
  margin: 20px 0 0;
  color: rgba(240,240,240,.67);
  font-size: clamp(.88rem, 2.6vw, 1rem);
  line-height: 1.72;
}


/* =========================================================
   FEATURE PILLS
========================================================= */

.feature-pills {
  margin-top: 27px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.feature-pill {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 13px;
  border: 1px solid var(--hairline);
  border-radius: 999px;
  color: rgba(240,240,240,.72);
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.012)), var(--surface-1);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
  font-size: .68rem;
  font-weight: 600;
}

.feature-icon {
  width: 22px; height: 22px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 50%;
  color: var(--gold);
  background: rgba(253,200,48,.08);
}


/* =========================================================
   STORE CTA AREA
========================================================= */

.store-section { margin-top: 32px; }

.store-label {
  margin-bottom: 10px;
  color: var(--muted);
  font-size: .59rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.store-actions { display: flex; flex-wrap: wrap; gap: 10px; }


/* =========================================================
   SHARED STORE BUTTON
========================================================= */

.store-cta {
  position: relative;
  min-height: 58px;
  min-width: 205px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 0 17px;
  overflow: hidden;
  border-radius: 14px;
  transition: transform 200ms var(--ease), border-color 180ms ease, background 180ms ease, box-shadow 200ms ease;
}

.store-cta svg { width: 25px; height: 25px; flex: 0 0 auto; }
.store-copy { text-align: left; }
.store-small { display: block; margin-bottom: 3px; font-size: .52rem; line-height: 1; letter-spacing: .01em; }
.store-name { display: block; font-size: .82rem; line-height: 1.05; font-weight: 700; }


/* STORE STATE: LIVE */

.store-cta.is-live {
  border: 1px solid rgba(255,255,255,.12);
  color: var(--text);
  background: var(--surface-2);
  box-shadow: 0 12px 30px rgba(0,0,0,.2);
}

.store-cta.is-live::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  background: linear-gradient(110deg, rgba(253,200,48,.045), rgba(243,115,53,.065), transparent 72%);
  transition: opacity 180ms ease;
}

.store-cta.is-live:hover {
  transform: translateY(-3px);
  border-color: rgba(253,200,48,.27);
  box-shadow: 0 18px 38px rgba(0,0,0,.28);
}

.store-cta.is-live:hover::before { opacity: 1; }
.store-cta.is-live .store-small { color: var(--muted); }


/* STORE STATE: COMING SOON */

.store-cta.is-coming {
  cursor: default;
  border: 1px dashed rgba(253,200,48,.18);
  color: rgba(240,240,240,.62);
  background: linear-gradient(135deg, rgba(253,200,48,.035), rgba(243,115,53,.018)), var(--surface-1);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}

.store-cta.is-coming::after {
  content: "SOON";
  position: absolute;
  top: 8px; right: 9px;
  padding: 3px 5px;
  border: 1px solid rgba(253,200,48,.13);
  border-radius: 999px;
  color: rgba(253,200,48,.62);
  background: rgba(253,200,48,.04);
  font-size: .42rem;
  font-weight: 700;
  letter-spacing: .11em;
}

.store-cta.is-coming .store-small { color: rgba(136,136,153,.75); }


/* =========================================================
   PHONE STAGE
========================================================= */

.phone-stage {
  position: relative;
  min-height: 520px;
  display: grid;
  place-items: center;
}

.phone-stage::before {
  content: "";
  position: absolute;
  width: 410px; height: 410px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(253,200,48,.11), rgba(243,115,53,.055) 38%, transparent 68%);
  filter: blur(8px);
}

.phone-stage::after {
  content: "";
  position: absolute;
  width: 270px; height: 48px;
  bottom: 45px;
  border-radius: 50%;
  background: rgba(0,0,0,.42);
  filter: blur(18px);
}


/* =========================================================
   PHONE BODY
========================================================= */

.phone-mockup {
  position: relative;
  z-index: 5;
  width: min(270px, 68vw);
  padding: 8px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 38px;
  background: linear-gradient(145deg, #242433, #13131a);
  box-shadow: 0 34px 80px rgba(0,0,0,.47), inset 0 1px 1px rgba(255,255,255,.1);
  transform: rotate(4deg);
  animation: phoneFloat 6s ease-in-out infinite;
}

@keyframes phoneFloat {
  0%, 100% { transform: rotate(4deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-12px); }
}

.phone-screen {
  position: relative;
  aspect-ratio: 9 / 19.3;
  overflow: hidden;
  border-radius: 31px;
  background: #060608;
}

.phone-notch {
  position: absolute;
  z-index: 8;
  top: 10px; left: 50%;
  width: 82px; height: 22px;
  transform: translateX(-50%);
  border-radius: 999px;
  background: #050507;
}

.phone-screen.has-screenshot .phone-screenshot { display: block; }
.phone-screenshot { display: none; width: 100%; height: 100%; object-fit: cover; }

.phone-screen.is-placeholder {
  background:
    radial-gradient(circle at 50% 34%, rgba(253,200,48,.08), transparent 14rem),
    linear-gradient(180deg, #13131a, #0a0a0f);
}

.phone-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 28px;
  text-align: center;
}

.placeholder-mark {
  width: 70px; height: 70px;
  display: grid;
  place-items: center;
  margin-bottom: 20px;
  border-radius: 20px;
  color: #0a0a0f;
  background: var(--gradient);
  font-family: var(--display);
  font-size: 3rem;
  box-shadow: 0 16px 38px rgba(243,115,53,.18);
}

.placeholder-title {
  margin: 0;
  font-family: var(--display);
  font-size: 2.15rem;
  line-height: .9;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.placeholder-copy { margin: 10px 0 0; color: var(--muted); font-size: .66rem; line-height: 1.55; }

.placeholder-line { width: 70%; height: 6px; margin-top: 26px; border-radius: 999px; background: var(--surface-3); }
.placeholder-line.short { width: 48%; margin-top: 8px; }


/* =========================================================
   FLOATING PRODUCT BADGES
========================================================= */

.float-badge {
  position: absolute;
  z-index: 8;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 11px 13px;
  border: 1px solid rgba(255,255,255,.095);
  border-radius: 14px;
  background: rgba(19,19,26,.88);
  backdrop-filter: blur(16px);
  box-shadow: 0 16px 38px rgba(0,0,0,.26);
}

.float-badge.coins { left: 2px; top: 27%; }
.float-badge.new { right: 0; bottom: 24%; }

.badge-emoji {
  width: 31px; height: 31px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 9px;
  background: rgba(253,200,48,.075);
  font-size: .95rem;
}

.badge-copy { min-width: 0; }
.badge-title { display: block; color: var(--text); font-size: .69rem; font-weight: 700; }
.badge-sub { display: block; margin-top: 2px; color: var(--muted); font-size: .56rem; font-weight: 500; }


/* =========================================================
   LAUNCH DIVIDER
========================================================= */

.launch-divider {
  position: relative;
  z-index: 2;
  width: min(calc(100% - 32px), var(--page-width));
  margin-inline: auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--hairline) 15%, var(--hairline) 85%, transparent);
}


/* =========================================================
   FOOTER
========================================================= */

.site-footer { position: relative; z-index: 2; padding: 30px 0 34px; }
.footer-inner { display: flex; flex-direction: column; gap: 18px; }
.footer-brand { display: inline-flex; align-items: center; gap: 9px; }
.footer-logo-mark { width: 31px; height: 31px; display: block; }

.footer-name {
  font-family: var(--display);
  font-size: 1.3rem;
  letter-spacing: .035em;
  color: transparent;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
}

.footer-bottom { display: flex; flex-direction: column; gap: 12px; color: var(--muted); font-size: .64rem; }
.footer-links { display: flex; align-items: center; gap: 17px; }
.footer-links a { transition: color 180ms ease; }
.footer-links a:hover { color: var(--gold); }


/* =========================================================
   RESPONSIVE
========================================================= */

@media (min-width: 700px) {
  .download-page { padding-top: calc(var(--nav-h) + 18px); }
  .hero { min-height: calc(100vh - var(--nav-h) - 18px); }
  .footer-bottom { flex-direction: row; align-items: center; justify-content: space-between; }
  .float-badge.coins { left: 8%; }
  .float-badge.new { right: 7%; }
}

@media (min-width: 980px) {
  .hero { padding: 50px 0 74px; }
  .hero-grid { grid-template-columns: minmax(0,1.05fr) minmax(400px,.95fr); gap: 72px; }
  .phone-stage { min-height: 610px; }
  .phone-mockup { width: 300px; }
  .float-badge.coins { left: 2%; top: 25%; }
  .float-badge.new { right: 2%; bottom: 25%; }
}

@media (min-width: 1250px) {
  .hero-grid { grid-template-columns: minmax(0,1.12fr) minmax(440px,.88fr); gap: 95px; }
  .phone-stage { min-height: 650px; }
  .phone-mockup { width: 320px; }
  .float-badge.coins { left: 3%; }
  .float-badge.new { right: 4%; }
}

@media (max-width: 699px) {
  .download-page { padding-top: calc(var(--nav-h) + 16px); }
  .hero { min-height: calc(100vh - var(--nav-h) - 16px); padding-top: 35px; }
  .hero-grid { gap: 42px; }
  .phone-stage { min-height: 500px; }
  .float-badge { padding: 9px 10px; }
  .float-badge.coins { left: 0; top: 26%; }
  .float-badge.new { right: 0; bottom: 22%; }
  .store-actions { flex-direction: column; }
  .store-cta { width: 100%; }
}

@media (max-width: 410px) {
  .phone-mockup { width: 235px; }
  .float-badge { transform: scale(.9); }
  .float-badge.coins { left: -8px; }
  .float-badge.new { right: -8px; }
}

:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}
