:root{
  --cream:#F7F1E4; --card:#fff; --tan:#E4D8BC;
  --orange:#F2994A; --purple:#5B3FA8; --purple-deep:#3B2A6B; --ink:#6d6486;
}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--purple-deep)}
a{color:var(--purple);text-decoration:none}
a:hover{color:var(--purple-deep)}

.wrap{max-width:1240px;margin:0 auto;padding:20px 20px 64px}

/* top bar */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:8px 2px 20px}
.wordmark{font-family:'Luckiest Guy',system-ui;font-weight:400;font-size:clamp(24px,5.5vw,34px);color:var(--purple);letter-spacing:.03em;text-transform:uppercase}
.topnav{display:flex;gap:24px;font:600 14px/1 system-ui;color:var(--ink);flex-wrap:wrap}
.topnav a.on{color:var(--purple-deep)}

/* hero countdown */
.hero{background:var(--card);border:3px solid var(--purple);border-radius:14px;padding:clamp(22px,4vw,32px);box-shadow:0 10px 26px rgba(59,42,107,.12)}
.hero-row{display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap}
.pill{display:inline-block;background:var(--orange);color:#fff;font:700 12px/1 system-ui;letter-spacing:.1em;padding:7px 13px;border-radius:999px}
.hero-label{margin-top:15px;font:600 18px/1.2 system-ui;color:var(--purple-deep)}
.hero-sub{margin-top:6px;font:600 13px/1 system-ui;color:var(--purple-deep)}
.hero-count{display:flex;align-items:flex-end;gap:clamp(6px,1.6vw,10px);font-family:'Baloo 2',system-ui;color:var(--purple-deep)}
.cnum{font-weight:800;font-size:clamp(42px,9vw,64px);line-height:.9}
.cunit{font:700 clamp(10px,1.6vw,13px)/1 system-ui;color:var(--purple-deep);letter-spacing:.14em;margin-top:4px}
.csep{font-weight:800;font-size:clamp(30px,6vw,46px);line-height:.9;padding-bottom:14px;color:#C9BEEC}

/* bento grid */
.bento{margin-top:20px;display:grid;grid-template-columns:1.15fr 1fr 1fr;grid-auto-rows:minmax(150px,auto);gap:16px}

.cta-cell{grid-row:span 2;position:relative;overflow:hidden;background:var(--card);border:2px solid var(--tan);border-radius:10px;padding:24px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .26s ease, border-color .26s ease, box-shadow .26s ease}
.cta-cell:hover{transform:translateY(-4px);border-color:#C9BEEC;box-shadow:0 16px 34px rgba(59,42,107,.22)}
.cta-kicker{font:800 12px/1 system-ui;letter-spacing:.14em;color:var(--orange)}
.cta-title{margin-top:10px;font-family:'Baloo 2',system-ui;font-weight:800;font-size:clamp(28px,3.4vw,36px);color:var(--purple-deep);line-height:1}
.cta-desc{margin-top:12px;font:500 15px/1.5 system-ui;color:#5a5270}
.cta-lock{display:flex;align-items:center;gap:9px;font:700 14px/1 system-ui;color:var(--purple-deep);background:#F3EEFB;border:1px solid #DDD1F2;padding:13px 15px;border-radius:11px}
.cta-btn{width:100%;padding:16px 18px;border:none;border-radius:11px;background:var(--orange);color:#fff;font:800 16px/1 system-ui;cursor:pointer;box-shadow:0 8px 20px rgba(242,153,74,.34);transition:background .15s ease, transform .12s ease}
.cta-btn:hover{background:var(--purple);transform:translateY(-2px)}

/* CTA card: faint Battle Bros art at rest, art reveals to full color on hover
   with a light scrim; a small frosted plate sits behind the text only. */
.cta-art{position:absolute;inset:0;background-image:url("/public/hero.jpg");background-size:cover;background-position:center;opacity:.14;transition:opacity .45s ease}
.cta-scrim{position:absolute;inset:0;opacity:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.5),rgba(255,255,255,.1) 32%,rgba(255,255,255,.1) 66%,rgba(255,255,255,.46));transition:opacity .4s ease}
.cta-cell:hover .cta-art{opacity:1}
.cta-cell:hover .cta-scrim{opacity:1}
.cta-content{position:relative;z-index:2}
.cta-textplate{border-radius:11px;margin:-8px -10px;padding:8px 10px;transition:background .35s ease, box-shadow .35s ease, backdrop-filter .35s ease}
.cta-cell:hover .cta-textplate{background:rgba(255,255,255,.8);backdrop-filter:blur(3px);box-shadow:0 6px 18px rgba(59,42,107,.14)}

.b2{position:relative;display:flex;flex-direction:column;background:var(--card);border:2px solid var(--tan);border-radius:10px;padding:20px;overflow:hidden;min-height:170px;transition:transform .26s ease, background .26s ease, border-color .26s ease, box-shadow .26s ease}
.b-icon{flex:0 0 auto;width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:20px;background:#F5EFE0;border-radius:10px;transition:color .22s ease, background .22s ease}
.b-title{flex:0 0 auto;margin-top:14px;font:800 18px/1.1 system-ui;color:var(--purple-deep);transition:color .22s ease}
.b-body{flex:1 1 auto;margin-top:8px;position:relative}
.b-desc{font:500 14px/1.4 system-ui;color:#6a6280;transition:opacity .22s ease}
.b-peek{position:absolute;inset:0;opacity:0;transition:opacity .22s ease}
.b-peek .lbl{display:inline-block;font:800 10px/1 system-ui;letter-spacing:.14em;color:var(--orange);margin-bottom:6px}
.b-peek .txt{font:600 13.5px/1.4 system-ui;color:var(--purple-deep)}
.b2:hover{transform:translateY(-4px);border-color:var(--purple);background:#FBF7EC;box-shadow:0 12px 26px rgba(91,63,168,.15)}
.b2:hover .b-icon{background:#EFE7FB;color:var(--purple)}
.b2:hover .b-desc{opacity:0}
.b2:hover .b-peek{opacity:1}

/* Touch / narrow screens have no hover: show each bento peek by default and
   lift the CTA art so both read without hovering. Desktop hover is unchanged. */
@media (hover:none), (max-width:560px){
  .b-desc{opacity:0}
  .b-peek{opacity:1}
  .cta-art{opacity:.28}
}

/* site footer */
.site-footer{margin-top:44px;padding-top:26px;border-top:2px solid var(--tan)}
.footer-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px 28px;flex-wrap:wrap}
.footer-brand{display:flex;flex-direction:column;gap:5px}
.footer-wordmark{font-family:'Luckiest Guy',system-ui;font-size:20px;color:var(--purple);letter-spacing:.02em;text-transform:uppercase;line-height:1}
.footer-tagline{margin:0;font:500 13px/1.4 system-ui;color:var(--ink)}
.footer-links{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center}
.footer-links a{font:600 14px/1 system-ui;color:var(--purple)}
.footer-links a:hover{color:var(--purple-deep);text-decoration:underline}
.footer-legal{margin:22px 0 0;max-width:760px;font:500 12px/1.6 system-ui;color:var(--ink)}
.footer-copy{margin:12px 0 0;font:600 12px/1.5 system-ui;color:var(--purple-deep)}
@media (max-width:560px){
  .footer-top{flex-direction:column;gap:14px}
}

/* overlay email capture */
.overlay{position:fixed;inset:0;background:rgba(59,42,107,.42);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;padding:20px;z-index:1000}
.overlay.show{display:flex}
.sheet{width:100%;max-width:440px;background:var(--card);border:3px solid var(--purple);border-radius:16px;padding:clamp(22px,4vw,30px);box-shadow:0 24px 60px rgba(59,42,107,.4);position:relative;max-height:92vh;overflow:auto}
.sheet-x{position:absolute;top:12px;right:14px;width:34px;height:34px;border:none;border-radius:9px;background:#F1ECDF;color:var(--purple-deep);font:700 18px/1 system-ui;cursor:pointer}
.sheet-x:hover{background:#E7DFC9}
.sheet-tags{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tag-o{background:var(--orange);color:#fff;font:700 11px/1 system-ui;letter-spacing:.1em;padding:6px 11px;border-radius:999px}
.tag-t{font:600 12px/1 system-ui;color:var(--ink)}
.sheet h2{margin:16px 0 4px;font-family:'Baloo 2',system-ui;font-weight:800;font-size:26px;color:var(--purple-deep)}
.sheet p.lead{margin:0 0 18px;font:500 14px/1.5 system-ui;color:#6a6280}
.field{display:block;margin-bottom:16px}
.field span{display:block;font:700 12px/1 system-ui;letter-spacing:.04em;color:var(--purple-deep);margin-bottom:7px}
.field input{width:100%;padding:14px 15px;border:2px solid var(--tan);border-radius:11px;background:#FBF7EC;font:500 15px/1 system-ui;color:var(--purple-deep)}
.field input:focus{outline:none;border-color:var(--purple);background:#fff}
.agewrap span.q{display:block;font:700 12px/1 system-ui;color:var(--purple-deep);margin-bottom:9px}
.agewrap span.req{color:var(--orange)}
.pills{display:flex;gap:8px;flex-wrap:wrap}
.agepill{padding:11px 16px;border-radius:999px;border:2px solid var(--tan);background:#fff;color:var(--purple-deep);font:600 14px/1 system-ui;cursor:pointer;transition:transform .12s ease, background .12s ease, border-color .12s ease}
.agepill:hover{transform:translateY(-1px)}
.agepill.sel{background:var(--purple);border-color:var(--purple);color:#fff}
.agepill.bad{background:#E5484D;border-color:#E5484D;color:#fff}
.msg{display:none;align-items:center;gap:9px;margin-top:16px;padding:12px 14px;border-radius:11px;font:600 13px/1.4 system-ui}
.msg.show{display:flex}
.dl-btn{width:100%;margin-top:18px;padding:16px 18px;border:none;border-radius:11px;background:var(--orange);color:#fff;font:800 16px/1 system-ui;cursor:pointer;box-shadow:0 8px 20px rgba(242,153,74,.34);transition:background .15s ease, transform .12s ease}
.dl-btn:hover{background:var(--purple);transform:translateY(-2px)}
.dl-btn:disabled{background:#C9BFA6;box-shadow:none;cursor:not-allowed;transform:none}
.note{margin:12px 0 0;text-align:center;font:500 12px/1 system-ui;color:var(--ink)}

@media (max-width:820px){
  .bento{grid-template-columns:1fr 1fr}
  .cta-cell{grid-column:1 / -1;grid-row:auto;min-height:220px}
}
@media (max-width:560px){
  .bento{grid-template-columns:1fr}
  .hero-row{flex-direction:column;align-items:flex-start}
  .hero-count{width:100%;justify-content:space-between}
  .topnav{width:100%;justify-content:flex-start}
}

/* ---------------------------------------------------------------------------
   Added for the wired result states (Step 5): the success download view and
   the non-Android notify view injected by js/beta.js. The download link is an
   <a> reusing the .dl-btn look, so it needs block/centered text.
   --------------------------------------------------------------------------- */
a.dl-btn{display:block;text-align:center;text-decoration:none;line-height:1}
.result-box{margin-top:4px}
.result-lead{margin:0 0 14px;font:500 14px/1.5 system-ui;color:#6a6280}
.fresh-link{display:block;width:100%;margin-top:12px;padding:0;background:none;border:none;color:var(--purple);font:600 13px/1.4 system-ui;text-decoration:underline;cursor:pointer}
.fresh-link:hover{color:var(--purple-deep)}
.fresh-link:disabled{color:var(--ink);cursor:default;text-decoration:none}
