/* Lucky · by Gennie — lucky.gennie.life */
:root{
  --bg1:#241b63; --bg2:#0f0b33; --ink:#F5F2EA; --muted:rgba(245,242,234,.62);
  --gold:#E7C98A; --gold-ink:#1a1407; --line:rgba(255,255,255,.14);
  --card:rgba(255,255,255,.06); --r:18px;
  --serif:'Fraunces',Georgia,serif; --sans:'Inter',-apple-system,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;overflow-x:clip}
body{
  font-family:var(--sans); color:var(--ink); line-height:1.55; font-size:16px;
  background:linear-gradient(160deg,var(--bg1),var(--bg2) 70%); min-height:100vh;
}
.wrap{max-width:640px;margin:0 auto;padding:40px 20px 60px}

/* hero */
.hero{text-align:center;margin-bottom:26px}
.mark{width:56px;height:56px;border:3px solid var(--gold);border-radius:50%;margin:0 auto 10px;display:flex;align-items:center;justify-content:center}
.mark span{width:16px;height:16px;background:var(--gold);border-radius:50%}
.brand{font:600 15px var(--serif);letter-spacing:.4em;color:var(--gold);margin:0}
.byline{font-size:13px;color:var(--muted);margin:2px 0 22px}
.byline a{color:var(--muted)}
h1{font:600 clamp(25px,7vw,42px)/1.18 var(--serif);margin:0 0 14px;text-wrap:balance}
.lede{color:var(--muted);max-width:480px;margin:0 auto 10px}
.lede b{color:var(--ink)}
.privacy-line{font-size:13px;color:var(--muted)}

/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px 22px;margin:18px 0;backdrop-filter:blur(4px)}
.form-card label{display:block;font-weight:600;font-size:14px;margin:14px 0 6px}
.form-card input{
  width:100%;font-size:16px;font-family:var(--sans);color:var(--ink);
  background:rgba(255,255,255,.08);border:1px solid var(--line);border-radius:12px;padding:13px 15px;
}
.form-card input::placeholder{color:rgba(245,242,234,.35)}
.form-card input:focus{outline:2px solid var(--gold);border-color:transparent}
.small-note{font-size:12.5px;color:var(--muted);text-align:center;margin:12px 0 0}

/* CTAs */
.cta{
  display:inline-block;background:transparent;border:1.5px solid var(--gold);color:var(--gold);
  border-radius:999px;padding:12px 26px;font:600 15px var(--sans);cursor:pointer;text-decoration:none;
  transition:.15s;text-align:center;
}
.cta:hover{background:rgba(231,201,138,.12)}
.cta.gold{background:var(--gold);color:var(--gold-ink);border-color:var(--gold)}
.cta.gold:hover{filter:brightness(1.06)}
.cta.big{width:100%;padding:15px;font-size:16px;margin-top:20px}

/* results */
.err{color:#ffb3a7;text-align:center}
.kicker{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:center;margin:0 0 14px}
.balls{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:6px 0 14px}
.ball{
  width:54px;height:54px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.1);border:2px solid var(--gold);font:600 20px var(--sans);
}
/* EuroMillions Lucky Stars: gold-filled, to read as special next to the open mains. */
.ball.star{background:var(--gold);color:var(--gold-ink);border-color:var(--gold)}
.ball-plus{display:flex;align-items:center;font:600 22px var(--sans);color:var(--muted);padding:0 1px}

/* two stacked games in one result card */
.game + .game{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}
.game-title{font:600 19px var(--serif);text-align:center;margin:0 0 12px}
.game-sub{display:block;font:500 12px var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-top:3px}

/* the two secondary games behind a reveal */
.more-games{margin-top:16px;border-top:1px solid var(--line);padding-top:4px}
.more-games > summary{cursor:pointer;list-style:none;text-align:center;color:var(--gold);font-weight:600;font-size:14px;padding:11px 0}
.more-games > summary::-webkit-details-marker{display:none}
.more-games > summary::before{content:"+ "}
.more-games[open] > summary{margin-bottom:10px}
.more-games[open] > summary::before{content:"\2212 "}
.whys{margin:0 0 18px;border:1px solid var(--line);border-radius:12px;padding:4px 14px;font-size:14px}
.whys summary{cursor:pointer;padding:9px 0;color:var(--gold);font-weight:600;list-style:none}
.whys summary::-webkit-details-marker{display:none}
.whys summary::before{content:"+ "}
.whys[open] summary::before{content:"− "}
.whys ul{margin:0 0 10px;padding-left:20px;color:var(--muted)}
.whys li{margin:4px 0}
.whys b{color:var(--ink)}

/* winnings */
.game h3{font:600 18px var(--serif);margin:14px 0 8px;text-align:center}
.checking{text-align:center;color:var(--muted)}
.win-block{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:10px 0}
.win-scope{font-weight:600;font-size:14px;margin:0 0 6px}
.win-total{font-size:17px;margin:4px 0}
.win-total b{color:var(--gold)}
.win-detail{font-size:13px;color:var(--muted);margin:4px 0 0}
.jackpot{background:rgba(231,201,138,.14);border:1px solid var(--gold);border-radius:10px;padding:10px 12px;font-size:14.5px;margin:8px 0}
.jackpot b{color:var(--gold)}
.muted{color:var(--muted);font-size:12.5px}
.reality{font-size:12.5px;color:var(--muted);text-align:center;margin:12px 0 0}

/* share + funnel */
.share-row{text-align:center;margin:16px 0}
.funnel{border-top:1px solid var(--line);margin-top:18px;padding-top:18px;text-align:center}
.funnel-kicker{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:0 0 12px}
.tease{border:1px solid rgba(231,201,138,.45);border-radius:14px;padding:16px 18px 14px;max-width:460px;margin:0 auto 16px;background:rgba(231,201,138,.06)}
.tease-lede{color:var(--muted);font-size:14px;margin:0 0 8px}
.tease-type{font:600 22px var(--serif);margin:0;color:var(--ink)}
.reel{display:flex;align-items:center;justify-content:center;gap:14px;margin:12px 0 4px;opacity:1;transition:opacity .22s ease}
.reel.fade{opacity:0}
.reel img{width:60px;height:60px;object-fit:cover;object-position:50% 22%;border-radius:50%;border:2px solid var(--gold);flex:none;box-shadow:0 4px 14px rgba(0,0,0,.3)}
.reel-txt{text-align:left}
.reel-line{color:var(--gold);font-size:13.5px;margin:2px 0 0}
.tease-sub{color:var(--muted);font-size:13.5px;margin:12px 0 0}
.funnel-note{color:var(--muted);font-size:12.5px;margin:10px 0 0}
.cta.pulse{position:relative;overflow:hidden;animation:glow 2.4s ease-in-out infinite}
.cta.pulse::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.45) 50%,transparent 65%);transform:translateX(-120%);animation:sheen 3.6s ease-in-out infinite}
@keyframes glow{
  0%,100%{box-shadow:0 0 0 0 rgba(231,201,138,.0)}
  50%{box-shadow:0 0 26px 4px rgba(231,201,138,.45)}
}
@keyframes sheen{
  0%,55%{transform:translateX(-120%)}
  85%,100%{transform:translateX(120%)}
}
@media (prefers-reduced-motion: reduce){
  .cta.pulse,.cta.pulse::after,.redact::after{animation:none}
}

/* footer */
.block-card{text-align:center}
.block-card h2{font:600 22px var(--serif);margin:0 0 8px}
.block-card p{color:var(--muted)}
.foot{text-align:center;margin-top:26px}
.small-print{max-width:520px;margin:0 auto}
.small-print summary{
  cursor:pointer;font-size:12px;color:rgba(245,242,234,.45);list-style:none;padding:6px 0;
}
.small-print summary::-webkit-details-marker{display:none}
.small-print summary::after{content:" \25BE"}
.small-print[open] summary::after{content:" \25B4"}
.small-print p{font-size:11.5px;line-height:1.55;color:rgba(245,242,234,.4);text-align:left}
.small-print a{color:rgba(245,242,234,.6)}

@media (max-width:420px){
  .ball{width:46px;height:46px;font-size:17px}
  .balls{gap:7px}
}
