:root{
  --accent:#6ee7ff; --accent2:#a78bfa;
  --bg:#0b1020; --bg2:#131a33; --ink:#eaf0ff; --muted:#94a3c8;
  --card:rgba(255,255,255,.04); --stroke:rgba(255,255,255,.09);
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
/* belt-and-braces: nothing should ever push the page sideways on a phone */
html,body{max-width:100%;overflow-x:hidden}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);min-height:100vh;-webkit-font-smoothing:antialiased}
.bg{position:fixed;inset:0;z-index:-1;background:
  radial-gradient(1200px 700px at 12% -8%, rgba(110,231,255,.16), transparent 55%),
  radial-gradient(1100px 800px at 105% 0%, rgba(167,139,250,.16), transparent 55%),
  linear-gradient(180deg,var(--bg),var(--bg2))}
.wrap{width:min(1120px,92vw);margin:0 auto}
.hero{padding:46px 0 22px}
.brand{display:flex;align-items:center;gap:16px}
.logo{font-size:44px;filter:drop-shadow(0 6px 20px rgba(110,231,255,.4))}
h1{margin:0;font-size:clamp(28px,5vw,44px);font-weight:900;letter-spacing:-1px;
  background:linear-gradient(120deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent}
.sub{margin:6px 0 0;color:var(--muted);font-size:clamp(13px,2.2vw,16px);font-weight:500}
.sub b{color:var(--ink)}
.toolbar{display:flex;gap:12px;align-items:center;margin-top:26px;flex-wrap:wrap}
.stat{font-size:12px;font-weight:800;letter-spacing:1px;color:var(--muted);text-transform:uppercase;
  padding:8px 14px;border:1px solid var(--stroke);border-radius:999px;background:var(--card)}
.search{flex:1;min-width:200px;padding:12px 16px;border-radius:14px;border:1px solid var(--stroke);
  background:var(--card);color:var(--ink);font-size:15px;font-family:inherit;outline:none;transition:.2s}
.search:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(110,231,255,.14)}
.search::placeholder{color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;padding:14px 0 40px}
.card{position:relative;display:flex;flex-direction:column;text-decoration:none;color:var(--ink);
  border-radius:20px;overflow:hidden;border:1px solid var(--stroke);background:var(--card);
  transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s,border-color .18s;animation:rise .5s both}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.card:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--a,#6ee7ff) 60%,transparent);
  box-shadow:0 22px 50px rgba(0,0,0,.5), 0 0 0 1px color-mix(in srgb,var(--a,#6ee7ff) 30%,transparent)}
.screen{position:relative;aspect-ratio:16/10;display:grid;place-items:center;overflow:hidden;
  background:
    radial-gradient(120% 120% at 20% 0%, color-mix(in srgb,var(--a,#6ee7ff) 40%,transparent), transparent 60%),
    radial-gradient(120% 120% at 100% 100%, color-mix(in srgb,var(--b,#a78bfa) 42%,transparent), transparent 55%),
    var(--sbg,#070b1a)}
.screen::after{content:"";position:absolute;inset:0;opacity:.5;
  background:repeating-linear-gradient(115deg, rgba(255,255,255,.05) 0 2px, transparent 2px 22px)}
.glyph{font-size:56px;filter:drop-shadow(0 8px 22px rgba(0,0,0,.4));z-index:1;transition:transform .25s}
.card:hover .glyph{transform:scale(1.12) rotate(-4deg)}
.badge{position:absolute;top:10px;left:10px;z-index:2;font-size:10px;font-weight:900;letter-spacing:1px;
  padding:5px 9px;border-radius:999px;background:var(--accent);color:#04121b;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.play{position:absolute;bottom:10px;right:10px;z-index:2;font-size:11px;font-weight:800;padding:7px 12px;border-radius:999px;
  background:rgba(4,7,18,.5);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(6px)}
.meta{padding:14px 16px 16px;min-width:0}
.title{font-size:17px;font-weight:800;margin:0;overflow-wrap:anywhere}
.tag{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.chip{font-size:10px;font-weight:700;letter-spacing:.4px;color:var(--muted);
  padding:4px 9px;border-radius:999px;border:1px solid var(--stroke);background:rgba(255,255,255,.03);
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.date{margin-left:auto;font-size:10px;color:var(--muted);align-self:center;flex:0 0 auto}
/* wraps so tags + date never spill out of a narrow card on a phone */
.chiprow{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:11px;min-width:0}
.empty{text-align:center;color:var(--muted);padding:60px 0 90px;font-size:15px}
.hidden{display:none}
.foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);
  font-size:13px;padding:22px 0 40px;border-top:1px solid var(--stroke)}
.foot a{color:var(--muted);text-decoration:none;font-weight:700}
.foot a:hover{color:var(--accent)}
@media (max-width:520px){
  .hero{padding:26px 0 14px}
  .grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
  .glyph{font-size:42px}
  .logo{font-size:34px}
  .brand{gap:12px}
  .toolbar{margin-top:18px;gap:10px}
  .meta{padding:12px 12px 14px}
  .title{font-size:15px}
  .tag{font-size:12px}
  .foot{padding:18px 0 32px;font-size:12px}
}
/* one column on the narrowest handsets so cards stay readable */
@media (max-width:330px){
  .grid{grid-template-columns:1fr}
  .date{display:none}
}
/* the hover lift is meaningless on touch and can cause sticky states */
@media (hover:none){
  .card:hover{transform:none}
  .card:active{transform:scale(.985)}
}
