/* ============================================================
   GAMES.HUZI.PK — Neon Arcade Portal
   100% client-side. Built for Cloudflare Pages.
   ============================================================ */
:root{
  --bg:#04060b;
  --bg-soft:#070b13;
  --panel:#0a0f1a;
  --line:#152238;
  --line-bright:#1e3a5f;
  --cyan:#22d3ee;
  --cyan-dim:#0e7490;
  --mag:#e879f9;
  --grn:#4ade80;
  --gold:#fbbf24;
  --red:#fb7185;
  --txt:#dbe7f4;
  --dim:#5b7290;
  --dimmer:#3a4d66;
  --radius:14px;
  --font-display:var(--font-orbitron, 'Orbitron'), 'Orbitron', sans-serif;
  --font-body:var(--font-rajdhani, 'Rajdhani'), 'Rajdhani', sans-serif;
}
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--bg); color:var(--txt);
  font-family:var(--font-body); font-size:17px; line-height:1.55;
  min-height:100vh; display:flex; flex-direction:column;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:var(--cyan);}
::selection{background:rgba(34,211,238,.3);}
:focus-visible{outline:2px solid var(--cyan); outline-offset:2px; border-radius:4px;}

/* scrollbar */
::-webkit-scrollbar{width:10px; height:10px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--line-bright); border-radius:5px;}
::-webkit-scrollbar-thumb:hover{background:var(--cyan-dim);}

/* ============ animated backdrop ============ */
#fx-canvas{
  position:fixed; inset:0; z-index:-2; width:100%; height:100%;
}
.fx-glow{
  position:fixed; z-index:-3; border-radius:50%; filter:blur(90px); opacity:.14; pointer-events:none;
}
.fx-glow.g1{width:44vw; height:44vw; background:var(--cyan); top:-18vw; left:-12vw; animation:drift1 26s ease-in-out infinite alternate;}
.fx-glow.g2{width:38vw; height:38vw; background:var(--mag); bottom:-16vw; right:-10vw; animation:drift2 31s ease-in-out infinite alternate;}
.fx-glow.g3{width:26vw; height:26vw; background:var(--grn); top:38%; left:56%; opacity:.07; animation:drift1 37s ease-in-out infinite alternate-reverse;}
@keyframes drift1{to{transform:translate(6vw,4vh) scale(1.15);}}
@keyframes drift2{to{transform:translate(-5vw,-6vh) scale(1.2);}}
.fx-scanlines{
  position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.05;
  background:repeating-linear-gradient(0deg, transparent 0 2px, #22d3ee 2px 4px);
}

/* ============ header ============ */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(4,6,11,.86); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  max-width:1180px; margin:0 auto; padding:14px 22px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.logo{
  font-family:var(--font-display); font-weight:900; font-size:clamp(15px,2.4vw,19px);
  letter-spacing:.16em; color:var(--txt); text-decoration:none; white-space:nowrap;
  display:flex; align-items:center; gap:10px;
}
.logo .mark{
  width:34px; height:34px; display:grid; place-items:center; flex:none;
  border:1px solid var(--cyan); border-radius:8px; color:var(--cyan);
  background:rgba(34,211,238,.06); box-shadow:0 0 16px rgba(34,211,238,.35), inset 0 0 12px rgba(34,211,238,.15);
  animation:markPulse 3.2s ease-in-out infinite;
}
.logo .mark svg{width:18px; height:18px;}
@keyframes markPulse{0%,100%{box-shadow:0 0 14px rgba(34,211,238,.3), inset 0 0 10px rgba(34,211,238,.12);}50%{box-shadow:0 0 26px rgba(34,211,238,.6), inset 0 0 16px rgba(34,211,238,.25);}}
.logo b{color:var(--cyan); font-weight:900;}
.logo i{font-style:normal; color:var(--mag);}
.main-nav{display:flex; align-items:center; gap:6px;}
.main-nav a{
  font-family:var(--font-display); font-size:11px; font-weight:700; letter-spacing:.16em;
  color:var(--dim); text-decoration:none; padding:9px 14px; border-radius:8px; transition:.18s;
}
.main-nav a:hover, .main-nav a.active{color:var(--cyan); background:rgba(34,211,238,.07);}
.main-nav a.cta{
  color:var(--cyan); border:1px solid var(--cyan-dim); background:rgba(34,211,238,.06);
  box-shadow:0 0 14px rgba(34,211,238,.15);
}
.main-nav a.cta:hover{background:rgba(34,211,238,.16); box-shadow:0 0 22px rgba(34,211,238,.4);}
@media (max-width:640px){ .main-nav a:not(.cta){display:none;} }

/* ============ hero ============ */
.hero{
  max-width:1180px; margin:0 auto; padding:clamp(40px,7vw,84px) 22px 34px;
  text-align:center; position:relative;
}
.hero .eyebrow{
  font-family:var(--font-display); font-size:11px; font-weight:700; letter-spacing:.34em;
  color:var(--mag); text-transform:uppercase; margin:0 0 18px;
  text-shadow:0 0 16px rgba(232,121,249,.6);
}
.hero h1{
  font-family:var(--font-display); font-weight:900; line-height:1.04; margin:0 0 18px;
  font-size:clamp(34px,7vw,72px); letter-spacing:.04em;
}
.hero h1 .glow-c{
  color:var(--cyan);
  text-shadow:0 0 22px rgba(34,211,238,.8), 0 0 80px rgba(34,211,238,.4);
}
.hero h1 .glow-m{
  color:var(--mag);
  text-shadow:0 0 22px rgba(232,121,249,.8), 0 0 80px rgba(232,121,249,.4);
}
.hero p.lead{
  color:var(--dim); font-size:clamp(16px,2.2vw,20px); font-weight:500;
  max-width:640px; margin:0 auto 28px; line-height:1.6;
}
.hero p.lead b{color:var(--txt); font-weight:600;}
.hero-stats{
  display:flex; justify-content:center; gap:clamp(18px,4vw,44px); flex-wrap:wrap;
}
.hstat{display:flex; flex-direction:column; align-items:center; gap:2px;}
.hstat .num{
  font-family:var(--font-display); font-weight:700; font-size:clamp(20px,3vw,28px); color:var(--txt);
}
.hstat .lbl{font-size:11px; letter-spacing:.26em; color:var(--dimmer); font-weight:600; text-transform:uppercase;}

/* ============ controls bar ============ */
.controls-bar{
  max-width:1180px; margin:8px auto 26px; padding:0 22px;
  display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:space-between;
  position:relative; z-index:2;
}
.search-wrap{
  position:relative; flex:1 1 260px; max-width:420px;
}
.search-wrap svg{
  position:absolute; left:14px; top:50%; transform:translateY(-50%);
  width:16px; height:16px; color:var(--dimmer); pointer-events:none;
}
#search{
  width:100%; padding:12px 16px 12px 40px;
  background:var(--panel); border:1px solid var(--line); border-radius:10px;
  color:var(--txt); font-family:var(--font-body); font-size:16px; font-weight:500;
  transition:.18s;
}
#search::placeholder{color:var(--dimmer);}
#search:focus{outline:none; border-color:var(--cyan-dim); box-shadow:0 0 0 3px rgba(34,211,238,.12), 0 0 20px rgba(34,211,238,.15);}
.chips{display:flex; gap:8px; flex-wrap:wrap;}
.chip{
  font-family:var(--font-display); font-size:10.5px; font-weight:700; letter-spacing:.14em;
  padding:10px 16px; border-radius:999px; cursor:pointer; user-select:none;
  background:var(--panel); border:1px solid var(--line); color:var(--dim); transition:.18s;
  text-transform:uppercase;
}
.chip:hover{color:var(--txt); border-color:var(--line-bright);}
.chip.active{
  color:#031318; background:var(--cyan); border-color:var(--cyan);
  box-shadow:0 0 22px rgba(34,211,238,.5); text-shadow:none;
}

/* ============ section titles ============ */
.section-head{
  max-width:1180px; margin:26px auto 14px; padding:0 22px;
  display:flex; align-items:baseline; gap:14px;
}
.section-head h2{
  font-family:var(--font-display); font-size:13px; font-weight:700; letter-spacing:.3em;
  color:var(--dim); margin:0; text-transform:uppercase; white-space:nowrap;
}
.section-head .rule{flex:1; height:1px; background:linear-gradient(90deg, var(--line-bright), transparent);}
.section-head .count{font-size:12px; color:var(--dimmer); letter-spacing:.1em; font-weight:600; white-space:nowrap;}

/* ============ game grid ============ */
.game-grid{
  max-width:1180px; margin:0 auto; padding:0 22px 30px;
  display:grid; gap:22px;
  grid-template-columns:repeat(auto-fill, minmax(272px, 1fr));
}
.game-card{
  position:relative; border-radius:var(--radius); overflow:hidden;
  background:var(--panel); border:1px solid var(--line);
  text-decoration:none; color:var(--txt); display:flex; flex-direction:column;
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease;
  isolation:isolate;
}
.game-card:hover, .game-card:focus-visible{
  transform:translateY(-5px);
  border-color:var(--accent, var(--cyan));
  box-shadow:0 14px 44px -8px rgba(0,0,0,.7), 0 0 30px -4px var(--accent-glow, rgba(34,211,238,.4));
}
.card-media{position:relative; aspect-ratio:16/9.4; overflow:hidden; background:var(--bg-soft);}
.card-media img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s ease, filter .3s ease;
  filter:saturate(1.05);
}
.game-card:hover .card-media img{transform:scale(1.06); filter:saturate(1.2) brightness(1.08);}
.card-media::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(4,6,11,.06) 40%, rgba(4,6,11,.82) 100%);
}
.card-media .sweep{
  position:absolute; top:0; bottom:0; width:44%;
  left:-60%; z-index:1; pointer-events:none;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.14), transparent);
  transform:skewX(-18deg); transition:left .6s ease;
}
.game-card:hover .sweep{left:120%;}
.card-badges{position:absolute; top:10px; left:10px; right:10px; z-index:2; display:flex; gap:6px; flex-wrap:wrap;}
.badge{
  font-family:var(--font-display); font-size:9px; font-weight:700; letter-spacing:.14em;
  padding:4px 9px; border-radius:5px; text-transform:uppercase;
  backdrop-filter:blur(4px);
}
.badge.feat{color:#031318; background:var(--gold); box-shadow:0 0 14px rgba(251,191,36,.55);}
.badge.cat{color:var(--cyan); background:rgba(34,211,238,.14); border:1px solid rgba(34,211,238,.35);}
.badge.recent{color:var(--grn); background:rgba(74,222,128,.13); border:1px solid rgba(74,222,128,.4);}
.card-body{padding:16px 18px 18px; display:flex; flex-direction:column; gap:8px; flex:1;}
.card-title{
  font-family:var(--font-display); font-weight:700; font-size:16.5px; letter-spacing:.06em;
  display:flex; align-items:center; justify-content:space-between; gap:10px;
}
.card-title .arrow{
  color:var(--accent, var(--cyan)); opacity:0; transform:translateX(-6px);
  transition:.2s; font-size:14px; flex:none;
}
.game-card:hover .card-title .arrow{opacity:1; transform:translateX(0);}
.card-tagline{color:var(--accent, var(--cyan)); font-size:13.5px; font-weight:600; letter-spacing:.04em; margin:0;}
.card-desc{
  color:var(--dim); font-size:14.5px; line-height:1.5; margin:0; flex:1;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.card-meta{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  border-top:1px solid var(--line); padding-top:12px; margin-top:4px;
}
.card-tags{display:flex; gap:6px; flex-wrap:wrap; overflow:hidden;}
.tag{
  font-size:11px; font-weight:600; color:var(--dim);
  border:1px solid var(--line); border-radius:4px; padding:2px 7px; letter-spacing:.04em;
}
.play-btn{
  flex:none; font-family:var(--font-display); font-size:10.5px; font-weight:700; letter-spacing:.16em;
  color:#031318; background:var(--accent, var(--cyan)); border-radius:7px; padding:8px 14px;
  display:inline-flex; align-items:center; gap:6px;
  box-shadow:0 0 16px -2px var(--accent-glow, rgba(34,211,238,.55));
}

/* empty state */
.empty-state{
  max-width:1180px; margin:0 auto; padding:40px 22px 60px; text-align:center; color:var(--dimmer);
  display:none;
}
.empty-state .big{font-family:var(--font-display); font-size:20px; letter-spacing:.14em; color:var(--dim); margin-bottom:8px;}

/* ============ marquee ticker ============ */
.ticker{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:rgba(10,15,26,.6); overflow:hidden; padding:11px 0; margin-top:8px;
}
.ticker-track{
  display:flex; gap:48px; white-space:nowrap; width:max-content;
  animation:ticker 30s linear infinite;
}
.ticker span{
  font-family:var(--font-display); font-size:10.5px; font-weight:700; letter-spacing:.24em;
  color:var(--dimmer); text-transform:uppercase;
}
.ticker span b{color:var(--cyan); font-weight:700;}
.ticker span i{color:var(--mag); font-style:normal;}
@keyframes ticker{to{transform:translateX(-50%);}}

/* ============ about / features ============ */
.features{
  max-width:1180px; margin:14px auto 0; padding:30px 22px 10px;
  display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:18px;
}
.feature{
  border:1px solid var(--line); border-radius:var(--radius); padding:22px;
  background:linear-gradient(160deg, rgba(34,211,238,.045), transparent 55%);
}
.feature .ico{
  width:40px; height:40px; border-radius:10px; display:grid; place-items:center; margin-bottom:14px;
  border:1px solid var(--cyan-dim); color:var(--cyan); background:rgba(34,211,238,.06);
}
.feature .ico svg{width:19px; height:19px;}
.feature h3{font-family:var(--font-display); font-size:12.5px; font-weight:700; letter-spacing:.16em; margin:0 0 8px; color:var(--txt); text-transform:uppercase;}
.feature p{margin:0; color:var(--dim); font-size:14.5px; line-height:1.55;}

/* ============ footer ============ */
.site-footer{
  margin-top:auto; border-top:1px solid var(--line); background:rgba(7,11,19,.7);
}
.footer-inner{
  max-width:1180px; margin:0 auto; padding:26px 22px 30px;
  display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
}
.footer-inner .f-brand{
  font-family:var(--font-display); font-weight:900; font-size:13px; letter-spacing:.18em; color:var(--dim);
}
.footer-inner .f-brand b{color:var(--cyan);} .footer-inner .f-brand i{font-style:normal; color:var(--mag);}
.footer-inner .f-note{color:var(--dimmer); font-size:13px; letter-spacing:.06em;}
.footer-inner .f-note b{color:var(--dim); font-weight:600;}
.footer-links{display:flex; gap:18px;}
.footer-links a{
  font-family:var(--font-display); font-size:10.5px; font-weight:700; letter-spacing:.16em;
  color:var(--dim); text-decoration:none; transition:.18s;
}
.footer-links a:hover{color:var(--cyan);}
@media (max-width:640px){
  .footer-inner{justify-content:center; text-align:center;}
}

/* ============ loader ============ */
.boot{
  position:fixed; inset:0; z-index:100; background:var(--bg);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px;
  transition:opacity .45s ease, visibility .45s;
}
.boot.done{opacity:0; visibility:hidden;}
.boot .b-logo{
  font-family:var(--font-display); font-weight:900; font-size:clamp(22px,5vw,34px); letter-spacing:.2em;
  color:var(--txt);
}
.boot .b-logo b{color:var(--cyan);} .boot .b-logo i{font-style:normal; color:var(--mag);}
.boot .b-bar{width:180px; height:3px; background:var(--line); border-radius:2px; overflow:hidden;}
.boot .b-bar::after{
  content:''; display:block; height:100%; width:40%;
  background:var(--cyan); border-radius:2px; box-shadow:0 0 12px var(--cyan);
  animation:bootbar 1.1s ease-in-out infinite;
}
@keyframes bootbar{0%{transform:translateX(-110%);}100%{transform:translateX(450%);}}
.boot .b-txt{font-family:var(--font-display); font-size:10px; letter-spacing:.34em; color:var(--dimmer);}

/* ============ reveal animation ============ */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .5s ease, transform .5s ease;}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
  .reveal{opacity:1; transform:none;}
}
