:root{
  --bg1:#241a52; --bg2:#3a2a7a; --bg3:#5a2e9c;
  --panel:rgba(255,255,255,.06); --panel-b:rgba(255,255,255,.13);
  --ink:#f5f3ff; --muted:#bcb6e6;
  --cyan:#22d3ee; --green:#39d98a; --yellow:#ffd23f; --pink:#ff5db1; --purple:#b98cff;
  --radius:20px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{
  color:var(--ink);
  font:16px/1.55 "Fredoka",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  background:
    radial-gradient(1200px 700px at 50% -10%, #6a34c6 0%, rgba(106,52,198,0) 55%),
    linear-gradient(180deg,var(--bg1) 0%,var(--bg2) 45%,#1a1340 100%);
  background-attachment:fixed;
}
.hidden{display:none!important}
.wrap{width:min(560px,92vw);margin:0 auto}
a{color:var(--cyan);text-decoration:none}
b{font-weight:700}
.muted{color:var(--muted)}

/* twinkling stars */
.stars{position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:
    radial-gradient(2px 2px at 20% 30%, #fff 50%, transparent),
    radial-gradient(2px 2px at 70% 20%, #fff 50%, transparent),
    radial-gradient(1.5px 1.5px at 40% 60%, #fff 50%, transparent),
    radial-gradient(1.5px 1.5px at 85% 55%, #fff 50%, transparent),
    radial-gradient(2px 2px at 15% 80%, #fff 50%, transparent),
    radial-gradient(1.5px 1.5px at 60% 85%, #fff 50%, transparent),
    radial-gradient(1.5px 1.5px at 90% 90%, #fff 50%, transparent);
  opacity:.5; animation:tw 4s ease-in-out infinite alternate}
@keyframes tw{from{opacity:.35}to{opacity:.7}}

/* hero */
.hero{text-align:center;padding:26px 0 14px}
.badge{display:inline-block;background:rgba(255,255,255,.1);border:1px solid var(--panel-b);
  border-radius:999px;padding:6px 16px;font-weight:600;font-size:14px;color:#e9e5ff}
.ufo{position:relative;height:150px;margin:14px auto 6px;width:200px;animation:bob 3.2s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.saucer{position:absolute;left:50%;top:8px;transform:translateX(-50%);width:150px;height:40px;
  background:linear-gradient(180deg,#e6e9ff,#9aa2e0);border-radius:50%;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.saucer::before{content:"";position:absolute;left:50%;top:-16px;transform:translateX(-50%);
  width:66px;height:34px;background:linear-gradient(180deg,#bfe9ff,#7cc8f0);border-radius:50% 50% 40% 40%}
.saucer::after{content:"";position:absolute;left:50%;bottom:6px;transform:translateX(-50%);
  width:90px;height:6px;background:radial-gradient(var(--yellow),transparent 70%);filter:blur(1px)}
.ray{position:absolute;left:50%;top:44px;transform:translateX(-50%);width:40px;height:96px;
  background:linear-gradient(180deg,rgba(57,217,138,.55),rgba(57,217,138,.05));
  clip-path:polygon(28% 0,72% 0,100% 100%,0 100%);border-radius:6px}
.cow{position:absolute;left:50%;bottom:-2px;transform:translateX(-50%);font-size:34px;animation:cowbob 3.2s ease-in-out infinite}
@keyframes cowbob{0%,100%{transform:translateX(-50%) translateY(0) rotate(-4deg)}50%{transform:translateX(-50%) translateY(-6px) rotate(4deg)}}
.hero h1{font-size:clamp(34px,8vw,52px);line-height:1.05;margin:6px 0 10px;font-weight:700;
  text-shadow:0 3px 0 rgba(0,0,0,.18)}
.hero .sub{color:#e9e5ff;font-size:17px;margin:0 auto 16px;max-width:34ch}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:16px}
.chip{background:rgba(255,255,255,.08);border:1px solid var(--panel-b);border-radius:999px;
  padding:6px 14px;font-size:14px;font-weight:500}
.chip b{color:var(--yellow)}
.chip-prize{background:rgba(255,210,63,.14);border-color:rgba(255,210,63,.4)}
.chip-free{background:rgba(57,217,138,.14);border-color:rgba(57,217,138,.4);color:#c9ffe6}
.cta-scroll{display:inline-block;font-weight:600;color:var(--yellow);font-size:15px}

/* panels */
.panel{background:var(--panel);border:1px solid var(--panel-b);border-radius:var(--radius);
  padding:20px;margin:16px 0;backdrop-filter:blur(6px);box-shadow:0 10px 30px rgba(10,5,40,.25)}
.panel-title{font-weight:700;font-size:19px;margin-bottom:12px}

/* buttons */
.btn{cursor:pointer;border:0;border-radius:14px;padding:12px 20px;font-family:inherit;font-size:16px;
  font-weight:700;color:#08331f;background:linear-gradient(180deg,#5cf0a8,#2fc27c);
  box-shadow:0 5px 0 #1c7d50, 0 8px 18px rgba(0,0,0,.25);transition:transform .08s,box-shadow .08s;width:100%}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(4px);box-shadow:0 1px 0 #1c7d50,0 3px 8px rgba(0,0,0,.25)}
.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:0 5px 0 #1c7d50}
.btn-big{background:linear-gradient(180deg,#ffe27a,#ffc21f);color:#5a3d00;box-shadow:0 5px 0 #b98700,0 8px 18px rgba(0,0,0,.25);font-size:20px;padding:15px}
.btn-big:active{box-shadow:0 1px 0 #b98700}
.btn-sm{width:auto;padding:9px 16px;font-size:14px;box-shadow:0 4px 0 #1c7d50,0 6px 12px rgba(0,0,0,.2)}
.btn-google{background:#fff;color:#2a2a3a;display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 5px 0 #b9bed6,0 8px 18px rgba(0,0,0,.2)}
.btn-google:active{box-shadow:0 1px 0 #b9bed6}
.btn-link{background:none;border:0;color:var(--muted);font-family:inherit;font-size:14px;cursor:pointer;margin-top:8px}

/* game */
.game{text-align:center}
#stage{position:relative;width:100%;max-width:360px;margin:0 auto}
#gameCanvas{width:100%;aspect-ratio:360/440;display:block;border-radius:16px;background:#0e1230;
  box-shadow:0 0 0 3px rgba(57,217,138,.3),0 14px 40px rgba(0,0,0,.4);touch-action:none}
.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(14,15,40,.78);border-radius:16px;text-align:center;padding:16px}
#gate h2{margin:0 0 6px;font-size:26px}
#gate .btn{margin-top:10px}
.msg{min-height:1.2em;margin:10px 0 0;color:var(--yellow);font-weight:600}
.buyArea{margin-top:14px}
.packs{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.packBtn{cursor:pointer;border:0;border-radius:12px;padding:10px 16px;font-family:inherit;font-weight:700;
  color:#08331f;background:linear-gradient(180deg,#7ef6ff,#22c7e0);box-shadow:0 4px 0 #0b7285}
.packBtn:active{transform:translateY(3px);box-shadow:0 1px 0 #0b7285}
.packBtn b{color:#053}

/* forms */
label{display:block;margin:12px 0;font-size:14px;color:var(--muted);font-weight:500}
input{width:100%;margin-top:6px;padding:13px;border-radius:12px;border:1px solid var(--panel-b);
  background:rgba(0,0,0,.25);color:var(--ink);font-family:inherit;font-size:16px}
input:focus{outline:2px solid var(--cyan);border-color:transparent}
.or{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;margin:16px 0}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--panel-b)}

/* earn */
.earnItem{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--panel-b)}
.reflink{display:flex;gap:8px;margin-top:14px}
.reflink input{flex:1}

/* leaderboard */
.board{list-style:none;margin:0;padding:0}
.board li{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;font-weight:600}
.board li:nth-child(odd){background:rgba(255,255,255,.04)}
.board li:nth-child(1){background:rgba(255,210,63,.16)}
.board li:nth-child(2){background:rgba(200,200,220,.12)}
.board li:nth-child(3){background:rgba(205,127,50,.14)}
.board .rank{width:34px;color:var(--muted)}
.board li:nth-child(1) .rank::after{content:" 🥇"}
.board li:nth-child(2) .rank::after{content:" 🥈"}
.board li:nth-child(3) .rank::after{content:" 🥉"}
.board .name{flex:1}
.board b{color:var(--yellow)}
.board .empty{justify-content:center;color:var(--muted);font-weight:500}

/* how it works */
.steps{display:grid;gap:12px}
.step{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:center;
  background:rgba(255,255,255,.04);border-radius:14px;padding:12px 14px}
.step-emoji{grid-row:span 2;font-size:28px}
.step b{align-self:end}
.step .muted{font-size:14px}
.fineprint{color:var(--muted);font-size:13px;margin-top:14px}

/* modal */
.modal{position:fixed;inset:0;background:rgba(10,8,30,.85);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}
.modalbox{background:#20194a;border:1px solid var(--panel-b);border-radius:var(--radius);padding:16px;width:min(400px,100%);text-align:center}
.modalbox img,.modalbox video{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;background:#000}
.adbar{height:8px;background:rgba(0,0,0,.3);border-radius:999px;overflow:hidden;margin:12px 0}
#adProgress{height:100%;width:0;background:linear-gradient(90deg,var(--green),var(--cyan))}

footer{text-align:center;padding:28px 0 44px;color:var(--muted);font-size:14px}
.tiny{font-size:12px;opacity:.7;margin-top:6px}
