:root{
  --bg:#0b0b12; --fg:#f5f5ff; --muted:#a3a3c2;
  --pink:#ff3df2; --lime:#c6ff3d; --cyan:#3df0ff; --orange:#ff8a3d; --violet:#8b5cff;
  --card:rgba(255,255,255,.06); --border:rgba(255,255,255,.14);
}
:root[data-theme="light"]{
  --bg:#fff7ee; --fg:#1a1030; --muted:#5c4a7a;
  --card:rgba(26,16,48,.06); --border:rgba(26,16,48,.18);
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{
  font-family:"Space Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  background:var(--bg); color:var(--fg); line-height:1.5; min-height:100vh; overflow-x:hidden;
  transition:background .4s,color .4s;
}
a{color:inherit}
#glow{
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(500px circle at var(--x,50%) var(--y,30%), rgba(255,61,242,.28), rgba(61,240,255,.12) 45%, transparent 70%);
}
.blob{position:fixed;z-index:0;border-radius:50%;filter:blur(90px);opacity:.35;pointer-events:none;animation:float 16s ease-in-out infinite}
.b1{width:340px;height:340px;background:var(--violet);top:-80px;left:-80px}
.b2{width:300px;height:300px;background:var(--lime);bottom:-60px;right:-60px;animation-delay:-6s;opacity:.22}
@keyframes float{50%{transform:translate(40px,30px) scale(1.15)}}
.wrap{position:relative;z-index:1;max-width:980px;margin:0 auto;padding:1.25rem}
.top{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0}
.logo{font-weight:800;text-decoration:none;font-size:1.1rem}
.logo span{color:var(--lime)}
.pill{
  border:1px solid var(--border);background:var(--card);color:var(--fg);
  padding:.5rem .9rem;border-radius:999px;font:inherit;font-size:.9rem;cursor:pointer;text-decoration:none;
  transition:transform .15s,border-color .15s;
}
.pill:hover{transform:translateY(-2px) rotate(-2deg);border-color:var(--pink)}
.hero{padding:clamp(2rem,8vw,5rem) 0 2rem;text-align:center}
.tag{display:inline-block;background:var(--lime);color:#111;font-weight:700;padding:.3rem .8rem;border-radius:999px;font-size:.85rem;transform:rotate(-3deg)}
h1{font-size:clamp(3rem,13vw,8rem);line-height:.95;font-weight:900;letter-spacing:-.04em;margin:1rem 0}
.grad{background:linear-gradient(90deg,var(--pink),var(--orange),var(--lime),var(--cyan),var(--pink));background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:slide 6s linear infinite}
@keyframes slide{to{background-position:300% 0}}
.sub{font-size:clamp(1.1rem,3vw,1.5rem);color:var(--muted);min-height:2.2em}
.sub b{color:var(--fg);border-bottom:3px solid var(--pink)}
.cta{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:1.5rem}
.btn{
  font:inherit;font-weight:800;font-size:1.05rem;border:0;cursor:pointer;color:#111;
  background:linear-gradient(135deg,var(--lime),var(--cyan));padding:.9rem 1.5rem;border-radius:16px;
  box-shadow:0 6px 0 rgba(0,0,0,.35);transition:transform .1s,box-shadow .1s;
}
.btn:hover{transform:translateY(-3px) scale(1.04)}
.btn:active{transform:translateY(4px);box-shadow:0 2px 0 rgba(0,0,0,.35)}
.btn.alt{background:linear-gradient(135deg,var(--pink),var(--orange))}
.marquee{overflow:hidden;border-block:1px solid var(--border);margin:2.5rem -1.25rem;white-space:nowrap;background:var(--card)}
.marquee div{display:inline-block;padding:.7rem 0;font-weight:800;font-size:1.2rem;animation:scroll 22s linear infinite}
.marquee span{margin:0 1.2rem}
@keyframes scroll{to{transform:translateX(-50%)}}
h2{font-size:clamp(1.6rem,5vw,2.4rem);font-weight:900;margin-bottom:1rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;perspective:900px}
.card{
  position:relative;display:block;text-decoration:none;padding:1.4rem;border-radius:22px;
  background:var(--card);border:1px solid var(--border);backdrop-filter:blur(8px);
  transform-style:preserve-3d;transition:transform .15s ease-out,border-color .2s;
}
.card:hover{border-color:var(--c,var(--pink))}
.card .emoji{font-size:2.6rem;display:block;transition:transform .3s}
.card:hover .emoji{transform:scale(1.3) rotate(12deg)}
.card h3{font-size:1.4rem;margin:.5rem 0 .2rem;font-weight:900}
.card p{color:var(--muted);font-size:.95rem}
.card .go{display:inline-block;margin-top:.8rem;font-weight:800;color:var(--c,var(--pink))}
.vibe{margin:3rem 0;text-align:center;padding:2rem 1rem;border-radius:26px;border:2px dashed var(--border)}
#vibe-out{font-size:clamp(1.3rem,4vw,2rem);font-weight:900;margin-top:1rem;min-height:2.6em}
.foot{padding:2.5rem 0 1.5rem;text-align:center;color:var(--muted);font-size:.9rem}
.page h1{font-size:clamp(2.5rem,10vw,5.5rem)}
.page p.lead{font-size:1.2rem;color:var(--muted);max-width:34rem;margin:1rem auto}
.confetti{position:fixed;z-index:50;pointer-events:none;width:10px;height:14px;border-radius:2px}
.toast{position:fixed;left:50%;bottom:1.5rem;transform:translate(-50%,120px);z-index:60;background:var(--lime);color:#111;font-weight:800;padding:.8rem 1.3rem;border-radius:999px;transition:transform .35s}
.toast.show{transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}
.game{position:relative;max-width:560px;margin:0 auto;border-radius:24px;overflow:hidden;border:2px solid var(--border);background:linear-gradient(180deg,rgba(139,92,255,.25),rgba(61,240,255,.1))}
#game{display:block;width:100%;aspect-ratio:3/4;touch-action:none;cursor:none}
.hud{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;padding:.7rem 1rem;font-weight:800;pointer-events:none;text-shadow:0 2px 6px rgba(0,0,0,.4)}
.hud b{color:var(--lime)}
.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;text-align:center;padding:1.5rem;background:rgba(11,11,18,.72);backdrop-filter:blur(4px);color:#f5f5ff}
.overlay.hide{display:none}
.overlay h3{font-size:2.2rem;font-weight:900}
.overlay p{color:#c9c9e6}
