:root{
  --bg:#0F1113;
  --bg2:#1C1E21;
  --bg3:#202326;
  --line:#2a2d31;
  --text:#ffffff;
  --muted:#898a8b;
  --accent:#D1FE17;
  --accent-dim:#829b19;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Archivo',system-ui,-apple-system,sans-serif;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{display:block}

/* ---------- topbar ---------- */
#topbar{
  position:fixed;inset:0 0 auto 0;z-index:100;
  display:flex;align-items:center;gap:28px;
  padding:14px 4vw;
  background:linear-gradient(to bottom,rgba(15,17,19,.92),rgba(15,17,19,0));
  transition:background .25s;
}
#topbar.solid{background:rgba(15,17,19,.96);border-bottom:1px solid var(--line)}
.brand,.brand-mini{
  font-family:'Bebas Neue',sans-serif;
  font-size:32px;letter-spacing:3px;color:var(--accent);
  line-height:1;
}
.brand-mini{font-size:18px;letter-spacing:2px}
.navlinks{display:flex;gap:22px;font-size:14px;font-weight:500;color:#d7d8d9}
.navlinks a:hover{color:var(--accent)}
.search{margin-left:auto}
.search input{
  background:rgba(28,30,33,.85);border:1px solid var(--line);color:var(--text);
  font-family:inherit;font-size:14px;
  padding:9px 14px;border-radius:4px;width:210px;outline:none;
  transition:border-color .2s,width .2s;
}
.search input:focus{border-color:var(--accent);width:260px}
.search input::placeholder{color:var(--muted)}

/* ---------- hero ---------- */
#hero{position:relative;min-height:82vh;display:flex;align-items:flex-end}
.hero-bg{
  position:absolute;inset:0;
  background-image:var(--hero-img);
  background-size:cover;background-position:center 25%;
  filter:brightness(.55) saturate(1.05);
}
.hero-fade{
  position:absolute;inset:0;
  background:
    linear-gradient(to right,rgba(15,17,19,.96) 0%,rgba(15,17,19,.6) 45%,rgba(15,17,19,.25) 100%),
    linear-gradient(to top,var(--bg) 0%,rgba(15,17,19,0) 45%);
}
.hero-content{position:relative;z-index:2;padding:0 4vw 9vh;max-width:640px}
.hero-tag{
  display:inline-block;
  font-family:'Bebas Neue',sans-serif;font-size:16px;letter-spacing:3px;
  color:var(--bg);background:var(--accent);
  padding:4px 12px;border-radius:3px;margin-bottom:16px;
}
.hero-title{
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(42px,7vw,84px);line-height:.95;letter-spacing:1px;
  margin-bottom:14px;text-shadow:0 4px 30px rgba(0,0,0,.5);
}
.hero-meta{display:flex;gap:14px;align-items:center;font-size:15px;color:#d7d8d9;margin-bottom:14px;flex-wrap:wrap}
.hero-desc{font-size:16px;line-height:1.55;color:#e6e7e8;margin-bottom:22px;max-width:560px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}

.score{
  color:var(--accent);font-weight:800;
  border:1px solid var(--accent-dim);border-radius:3px;
  padding:2px 8px;font-size:13px;letter-spacing:.5px;
}
.pill{color:var(--muted);font-size:13px;border:1px solid var(--line);border-radius:999px;padding:2px 10px}
.flag{font-size:13px;color:#d7d8d9}

.btn{
  display:inline-flex;align-items:center;gap:6px;
  font-family:inherit;font-size:15px;font-weight:700;
  padding:11px 24px;border-radius:4px;border:none;cursor:pointer;
  transition:transform .12s,filter .15s;
}
.btn:hover{transform:translateY(-1px);filter:brightness(1.08)}
.btn-primary{background:var(--accent);color:#111}
.btn-ghost{background:rgba(109,110,111,.35);color:#fff;backdrop-filter:blur(4px)}

/* ---------- rows ---------- */
#rows{position:relative;z-index:3;margin-top:-40px;padding-bottom:40px}
.row{margin-bottom:38px}
.row-title{
  font-size:20px;font-weight:800;letter-spacing:.2px;
  padding:0 4vw;margin-bottom:12px;
  display:flex;align-items:baseline;gap:10px;
}
.row-title .sub{font-size:13px;font-weight:500;color:var(--muted)}
.strip{
  display:flex;gap:10px;overflow-x:auto;padding:6px 4vw 14px;
  scrollbar-width:none;scroll-snap-type:x proximity;
}
.strip::-webkit-scrollbar{display:none}

/* card */
.card{
  position:relative;flex:0 0 auto;width:172px;cursor:pointer;
  scroll-snap-align:start;
  transition:transform .18s ease;
}
.card:hover{transform:scale(1.06);z-index:5}
.card img{
  width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;
  background:var(--bg2);
  box-shadow:0 2px 14px rgba(0,0,0,.45);
}
.card .c-top10{
  position:absolute;top:0;right:0;
  background:var(--accent);color:#111;
  font-size:10px;font-weight:900;letter-spacing:1px;
  padding:3px 7px;border-radius:0 6px 0 6px;
}
.card .c-info{padding:8px 2px 0}
.card .c-name{font-size:13.5px;font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .c-sub{display:flex;gap:8px;align-items:center;margin-top:4px;font-size:12px;color:var(--muted)}
.card .c-sub .score{font-size:11px;padding:1px 6px}

/* top10 numbered cards */
.card.big{width:230px;display:flex;align-items:flex-end}
.card.big .n{
  font-family:'Bebas Neue',sans-serif;
  font-size:150px;line-height:.75;
  color:var(--bg);
  -webkit-text-stroke:3px var(--accent);
  margin-right:-26px;z-index:1;
  flex:0 0 auto;
}
.card.big .big-imgwrap{position:relative;z-index:2;width:160px}
.card.big img{width:160px}

/* grid (search results) */
#results{padding:110px 4vw 60px;min-height:60vh}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:18px 12px;margin-top:14px}
.grid .card{width:auto}

/* ---------- modal ---------- */
#modal[hidden],#results[hidden],.btn[hidden]{display:none!important}
#modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.75)}
.modal-card{
  position:relative;background:var(--bg2);border-radius:10px;overflow:hidden;
  width:min(520px,94vw);max-height:92vh;overflow-y:auto;
  box-shadow:0 20px 80px rgba(0,0,0,.7);
  animation:pop .22s ease;
}
@keyframes pop{from{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}
.modal-close{
  position:absolute;top:12px;right:12px;z-index:3;
  background:rgba(15,17,19,.8);color:#fff;border:none;border-radius:50%;
  width:34px;height:34px;font-size:15px;cursor:pointer;
}
.modal-media{position:relative}
.modal-media img{width:100%;aspect-ratio:1;object-fit:cover}
.modal-media-fade{position:absolute;inset:0;background:linear-gradient(to top,var(--bg2) 0%,rgba(28,30,33,0) 35%)}
.modal-body{padding:0 24px 26px;margin-top:-30px;position:relative;z-index:2}
.m-rank{
  font-family:'Bebas Neue',sans-serif;font-size:15px;letter-spacing:2px;
  color:var(--accent);margin-bottom:6px;
}
.modal-body h2{font-size:26px;line-height:1.1;margin-bottom:10px}
.m-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px;font-size:14px;color:#d7d8d9}
.modal-body p{font-size:14.5px;line-height:1.6;color:#e6e7e8;margin-bottom:14px}
.m-genres{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.m-actions{display:flex;gap:10px;flex-wrap:wrap}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding:34px 4vw 46px;color:var(--muted);font-size:13px}
footer p{margin-bottom:8px}
footer a{color:var(--accent-dim)}
footer a:hover{color:var(--accent)}
.foot-note{max-width:640px;line-height:1.5}

/* ---------- responsive ---------- */
@media (max-width:720px){
  .navlinks{display:none}
  .search input{width:150px}
  .search input:focus{width:180px}
  .card{width:138px}
  .card.big{width:178px}
  .card.big .n{font-size:104px;-webkit-text-stroke:2px var(--accent);margin-right:-18px}
  .card.big .big-imgwrap,.card.big img{width:128px}
  #hero{min-height:72vh}
}
