/* ============ NEON ARCADE — shared theme ============ */
:root{
  --bg:#07070f;
  --bg2:#0f0524;
  --teal:#2dd4bf;
  --pink:#ff2d75;
  --purple:#c14dff;
  --accent:#ffb02d;
  --text:#e0fff8;
  --muted:#8a93b2;
  --card:#11132a;
  --card2:#171a36;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{min-height:100%;background:
  radial-gradient(1200px 600px at 50% -10%, color-mix(in srgb, var(--teal) 14%, transparent), transparent),
  linear-gradient(180deg,var(--bg),var(--bg2));
  transition:background .4s ease;
  color:var(--text);font-family:'Segoe UI',system-ui,sans-serif;}
a{color:inherit;text-decoration:none}
.mono{font-family:'Courier New',monospace}

/* header */
.nav{display:flex;align-items:center;justify-content:space-between;
  padding:18px 26px;max-width:1100px;margin:0 auto;position:sticky;top:0;
  backdrop-filter:blur(8px);background:rgba(7,7,15,.55);z-index:50}
.logo{font-family:'Courier New',monospace;font-weight:bold;font-size:24px;
  letter-spacing:3px;color:var(--teal);text-shadow:0 0 18px rgba(45,212,191,.6)}
.logo span{color:var(--pink);text-shadow:0 0 18px rgba(255,45,117,.6)}
.nav-links a{color:var(--muted);margin-left:22px;font-size:14px;letter-spacing:1px;
  text-transform:uppercase;transition:.2s}
.nav-links a:hover{color:var(--teal)}

/* hero */
.hero{text-align:center;padding:56px 20px 30px;max-width:900px;margin:0 auto}
.hero h1{font-family:'Courier New',monospace;font-size:clamp(34px,7vw,68px);
  letter-spacing:4px;line-height:1.05;
  background:linear-gradient(90deg,var(--teal),var(--purple),var(--pink));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 24px rgba(193,77,255,.35))}
.hero p{color:var(--muted);margin-top:16px;font-size:18px}

/* ad slots */
.ad{margin:26px auto;max-width:1100px;min-height:90px;display:flex;
  align-items:center;justify-content:center;border:1px dashed rgba(138,147,178,.35);
  border-radius:12px;color:var(--muted);font-size:13px;letter-spacing:2px;
  text-transform:uppercase;background:rgba(255,255,255,.02)}
.ad.tall{min-height:250px}

/* grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:20px;max-width:1100px;margin:10px auto 40px;padding:0 20px}
.card{background:linear-gradient(160deg,var(--card),var(--card2));
  border:1px solid rgba(255,255,255,.06);border-radius:16px;overflow:hidden;
  transition:.22s;cursor:pointer;position:relative}
.card:hover{transform:translateY(-6px);border-color:var(--teal);
  box-shadow:0 14px 40px rgba(45,212,191,.18)}
.thumb{height:185px;display:flex;align-items:center;justify-content:center;
  font-size:54px;position:relative;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.55))}
.card h3{padding:14px 16px 4px;font-size:18px;letter-spacing:1px}
.card p{padding:0 16px 16px;color:var(--muted);font-size:13px}
.tag{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.5);
  color:var(--teal);font-size:11px;padding:4px 8px;border-radius:20px;
  letter-spacing:1px;z-index:2}

/* play page frame */
.play-wrap{max-width:1000px;margin:0 auto;padding:20px}
.play-frame{width:100%;border:none;border-radius:14px;
  box-shadow:0 0 50px rgba(45,212,191,.12);background:#07070f;display:block}
.back{display:inline-block;color:var(--muted);margin:10px 0;font-size:14px}
.back:hover{color:var(--teal)}

/* footer */
footer{border-top:1px solid rgba(255,255,255,.06);margin-top:40px;
  padding:30px 20px;text-align:center;color:var(--muted);font-size:13px}
footer a{color:var(--teal)}

/* generic page text */
.page{max-width:760px;margin:0 auto;padding:30px 22px 60px;line-height:1.7}
.page h1{font-family:'Courier New',monospace;color:var(--teal);margin-bottom:18px;letter-spacing:2px}
.page h2{margin:24px 0 8px;color:var(--text)}
.page p,.page li{color:var(--muted);margin-bottom:10px}
.page ul{padding-left:22px}

/* ============ AD ARCHITECTURE — layout reflow (zero-clutter) ============ */
/* Sidebar anchors live in fixed outer margins. We indent the page content
   by --ad-margin (set by ad-manager.js) so gameplay/content NEVER overlaps
   an ad. On premium or narrow screens --ad-margin is unset (= 0). */
:root{ --ad-margin: 0px; }
/* Side anchors only appear on ultra-wide screens (>=1620px) and sit in the
   genuinely-empty margin beyond the centered content (max ~1280px), so they
   NEVER squeeze the game grid or gameplay. No content reflow needed —
   the layout stays fully immersive at every normal screen size. */
/* Premium users: hide every ad surface entirely, reclaim the margins */
html.is-premium #neon-ad-left,
html.is-premium #neon-ad-right,
html.is-premium .ad{ display:none !important; }
html.is-premium{ --ad-margin: 0px; }

/* The in-content ad placeholders inherit the neon look already (.ad).
   Give them a subtle premium-removable shimmer line for polish. */
.ad{ position:relative; overflow:hidden; }
.ad::before{
  content:""; position:absolute; top:0; left:-40%; width:40%; height:100%;
  background:linear-gradient(90deg,transparent,rgba(45,212,191,.08),transparent);
  animation:adsheen 4s linear infinite;
}
@keyframes adsheen{ to{ left:140%; } }
html.is-premium .ad::before{ display:none; }

/* ============ PREMIUM cosmetics ============ */
/* Zen mode: ultra-clean — dims non-essential chrome for distraction-free play */
html.cos-zen .ad,
html.cos-zen #neon-ad-left,
html.cos-zen #neon-ad-right{ display:none !important; }
html.cos-zen .share,
html.cos-zen footer p:last-child{ opacity:.0; pointer-events:none; }
html.cos-zen .nav{ background:transparent; backdrop-filter:none; }
/* premium star button in nav */
.nav .premium-link{ color:var(--accent,#ffb02d)!important; text-shadow:0 0 12px rgba(255,176,45,.5);
  border:1px solid rgba(255,176,45,.4); padding:5px 12px; border-radius:18px; }
.nav .premium-link:hover{ box-shadow:0 0 16px rgba(255,176,45,.4); }
html.is-premium .nav .premium-link::before{ content:"⭐ "; }

/* ============ FLUID ANIMATION SYSTEM (site-wide) ============ */
/* GPU-friendly defaults + a smooth global easing token */
:root{ --ease: cubic-bezier(.16,1,.3,1); }

/* Card hover: lift + glow, GPU-accelerated, springy */
.card{ transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .25s ease; will-change:transform; }
.card:hover{ transform:translateY(-8px) scale(1.015); }
.card img{ transition:transform .5s var(--ease), opacity .5s ease; }
.card:hover img{ transform:scale(1.07); }
/* thumbnails fade in as they load */
.card img{ opacity:0; }
.card img.loaded, .card img[data-loaded]{ opacity:1; }

/* Card entrance stagger (applied via .reveal on grid items) */
@keyframes cardIn{ from{ opacity:0; transform:translateY(18px) scale(.98);} to{ opacity:1; transform:none; } }
.card.reveal{ animation:cardIn .5s var(--ease) both; }

/* Pill/button micro-interactions everywhere */
.pillbtn, .btn, .catbtn, .np-cta{ transition:transform .15s var(--ease), box-shadow .25s ease, color .2s, border-color .2s, background .2s; }
.pillbtn:active, .btn:active, .np-cta:active{ transform:scale(.95); }

/* Smooth category sidebar item slide */
.catbtn{ transition:background .2s var(--ease), color .2s, box-shadow .2s, transform .15s var(--ease); }
.catbtn:hover{ transform:translateX(3px); }

/* Hero title subtle float */
@keyframes heroFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-4px); } }
.hero h1{ animation:heroFloat 6s ease-in-out infinite; }

/* Logo pulse glow */
.logo{ transition:filter .3s; }
.logo:hover{ filter:drop-shadow(0 0 10px var(--teal)); }

/* Modal/overlay fade+scale (used by premium/store/help overlays) */
@keyframes overlayIn{ from{ opacity:0; } to{ opacity:1; } }
@keyframes cardPop{ from{ opacity:0; transform:translateY(14px) scale(.96);} to{ opacity:1; transform:none; } }

/* Bigger, more immersive thumbnails on wide screens */
@media(min-width:900px){
  .grid2{ grid-template-columns:repeat(auto-fill,minmax(240px,1fr)) !important; gap:22px !important; }
}

/* Page-level smooth load */
body{ animation:overlayIn .4s ease both; }

/* Respect users who prefer less motion (accessibility + perf) */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .hero h1{ animation:none; }
}

/* 3D game badge */
.tag.badge3d{ background:rgba(193,77,255,.22); color:var(--purple)!important; }

/* ============ SHARED MODAL SYSTEM (premium/store/earn/support) ============ */
.neon-modal-ov{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;
  background:rgba(3,3,10,.82);backdrop-filter:blur(8px);padding:20px;animation:overlayIn .25s ease both}
.neon-modal{max-width:420px;width:100%;text-align:center;background:linear-gradient(160deg,var(--bg2),var(--bg));
  border:1px solid color-mix(in srgb,var(--teal) 45%,transparent);border-radius:20px;padding:28px 26px;
  box-shadow:0 0 70px color-mix(in srgb,var(--purple) 30%,transparent);
  font-family:'Segoe UI',system-ui,sans-serif;color:#e0fff8;animation:cardPop .4s var(--ease) both;max-height:88vh;overflow:auto}
.np-cta{background:var(--teal);border:none;color:#04201c;font-weight:bold;padding:12px 20px;border-radius:12px;
  cursor:pointer;font-family:inherit;letter-spacing:.5px;font-size:15px;transition:transform .15s var(--ease),box-shadow .25s}
.np-cta:hover{box-shadow:0 0 22px color-mix(in srgb,var(--teal) 60%,transparent);transform:translateY(-1px)}
.np-cta:active{transform:scale(.96)}
.np-ghost{display:block;width:100%;background:none;border:none;color:var(--muted);cursor:pointer;font-family:inherit;font-size:13px;padding:6px;transition:color .2s}
.np-ghost:hover{color:#cfe}
.coin-chip b{color:var(--accent)}

/* ============ MOBILE NAV — collapsing dropdown ============ */
.nav-toggle{display:none;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);
  color:var(--teal);font-size:20px;line-height:1;padding:6px 12px;border-radius:10px;cursor:pointer}
@media(max-width:760px){
  .nav{flex-wrap:nowrap;padding:12px 14px;gap:8px}
  .nav-toggle{display:inline-block}
  /* turn the link row into a dropdown panel */
  .nav-links{position:absolute;top:100%;right:10px;left:10px;flex-direction:column;align-items:stretch;
    background:linear-gradient(180deg,var(--bg2),var(--bg));border:1px solid rgba(45,212,191,.25);
    border-radius:14px;padding:8px;gap:2px;box-shadow:0 12px 40px rgba(0,0,0,.6);
    max-height:0;overflow:hidden;opacity:0;pointer-events:none;transform:translateY(-8px);
    transition:max-height .25s ease,opacity .2s ease,transform .25s ease;z-index:120}
  .nav-links.open{max-height:80vh;opacity:1;pointer-events:auto;transform:translateY(0);overflow:auto}
  .nav-links a{margin-left:0;padding:12px 14px;border-radius:10px;font-size:15px;text-transform:none;letter-spacing:.5px}
  .nav-links a:hover,.nav-links a:active{background:rgba(255,255,255,.05);color:var(--teal)}
  /* keep coin chip + account chip inside the dropdown too, full width */
  .nav-links .coin-chip,.nav-links .acct-chip{margin-left:0;width:100%;justify-content:flex-start;border-radius:10px;padding:12px 14px}
  .nav{position:relative}
}

/* ============ THEME SWATCHES (hero picker) ============ */
.theme-swatch{width:26px;height:26px;border-radius:50%;border:2px solid rgba(255,255,255,.18);
  cursor:pointer;padding:0;transition:transform .15s cubic-bezier(.16,1,.3,1),box-shadow .2s,border-color .2s}
.theme-swatch:hover{transform:scale(1.18)}
.theme-swatch.active{border-color:#fff;box-shadow:0 0 14px rgba(255,255,255,.45),0 0 6px var(--teal);transform:scale(1.12)}

/* ============ UNIFIED MENU / SETTINGS PANEL ============ */
.menu-btn{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);color:var(--teal);
  font-size:20px;line-height:1;padding:7px 13px;border-radius:10px;cursor:pointer;transition:.15s}
.menu-btn:hover{box-shadow:0 0 14px rgba(45,212,191,.3);border-color:var(--teal)}
.menu-scrim{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(3px);z-index:480;opacity:0;pointer-events:none;transition:opacity .25s}
.menu-scrim.show{opacity:1;pointer-events:auto}
.menu-panel{position:fixed;top:0;right:0;bottom:0;width:300px;max-width:86vw;z-index:490;
  background:linear-gradient(180deg,var(--bg2),var(--bg));border-left:1px solid rgba(45,212,191,.25);
  box-shadow:-12px 0 50px rgba(0,0,0,.6);transform:translateX(100%);transition:transform .3s cubic-bezier(.16,1,.3,1);
  overflow-y:auto;padding:16px 16px 30px;display:flex;flex-direction:column;gap:6px}
.menu-panel.open{transform:translateX(0)}
.menu-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.menu-logo{font-family:'Courier New',monospace;font-weight:bold;letter-spacing:2px;color:var(--teal)}
.menu-x{background:none;border:none;color:var(--muted);font-size:26px;line-height:1;cursor:pointer}
.menu-x:hover{color:var(--text)}
.menu-sec{padding:8px 0;border-top:1px solid rgba(255,255,255,.06)}
.menu-lab{color:var(--muted);font-size:10px;letter-spacing:2px;margin:2px 4px 8px}
.menu-item{display:block;color:var(--text);text-decoration:none;padding:11px 12px;border-radius:10px;font-size:15px;transition:.15s}
.menu-item:hover{background:rgba(255,255,255,.06);color:var(--teal)}
.menu-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;color:var(--text);font-size:14px}
.menu-swatches{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:180px}
.menu-toggle-btn{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.15);color:var(--muted);
  padding:5px 14px;border-radius:16px;cursor:pointer;font-family:inherit;font-size:13px;min-width:54px}
.menu-toggle-btn.on{border-color:var(--teal);color:var(--teal)}
.menu-foot{margin-top:auto;color:var(--muted);font-size:11px;text-align:center;opacity:.5;padding-top:14px}
/* keep the top bar minimal — coins chip stays visible, hide old inline links */
@media(max-width:760px){ .nav{flex-wrap:nowrap} }
