:root{
  --bg:#0e0e10;
  --bg-card:#18181b;
  --bg-card-hover:#202024;
  --accent:#ff5a1f;
  --accent-dim:#ff5a1f33;
  --text:#e8e6e3;
  --text-dim:#8a8a90;
  --border:#28282c;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Segoe UI', system-ui, -apple-system, sans-serif;
  min-height:100vh;
}

/* header */
header{
  background:var(--bg-card);
  border-bottom:2px solid var(--accent);
  padding:14px 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  position:sticky;
  top:0;
  z-index:10;
}
.logo{
  font-size:22px;
  font-weight:800;
  letter-spacing:-0.5px;
  color:var(--text);
}
.logo span{color:var(--accent);}
nav{display:flex; gap:22px;}
nav a{
  color:var(--text-dim);
  text-decoration:none;
  font-size:13px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.5px;
  transition:color .15s;
}
nav a:hover, nav a.active{color:var(--accent);}
.search-box{
  display:flex;
  align-items:center;
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:4px;
  padding:6px 10px;
  width:240px;
}
.search-box input{
  background:none;
  border:none;
  outline:none;
  color:var(--text);
  font-size:13px;
  width:100%;
}
.search-box svg{flex-shrink:0; opacity:.6;}

/* page title bar */
.page-bar{
  max-width:1400px;
  margin:0 auto;
  padding:22px 28px 6px;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
}
.page-bar h1{
  font-size:19px;
  font-weight:700;
}
.page-bar .count{
  color:var(--text-dim);
  font-size:13px;
}

/* grid */
.grid{
  max-width:1400px;
  margin:0 auto;
  padding:16px 28px 60px;
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:18px;
}

.card{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:6px;
  overflow:hidden;
  cursor:pointer;
  transition:transform .15s ease, border-color .15s ease, background .15s ease;
}
.card:hover{
  transform:translateY(-3px);
  border-color:var(--accent);
  background:var(--bg-card-hover);
}

.thumb-wrap{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#000;
}
.thumb-wrap img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .3s ease, opacity .2s ease;
}
.card:hover .thumb-wrap img{transform:scale(1.06);}

.duration{
  position:absolute;
  bottom:6px;
  right:6px;
  background:rgba(0,0,0,.85);
  color:#fff;
  font-size:11px;
  font-weight:700;
  font-family:'Courier New', monospace;
  padding:2px 6px;
  border-radius:3px;
  letter-spacing:0.3px;
}

.hd-badge{
  position:absolute;
  top:6px;
  left:6px;
  background:var(--accent);
  color:#fff;
  font-size:10px;
  font-weight:800;
  padding:2px 6px;
  border-radius:3px;
  letter-spacing:0.5px;
}

.play-overlay{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,0);
  opacity:0;
  transition:opacity .2s ease, background .2s ease;
}
.card:hover .play-overlay{
  opacity:1;
  background:rgba(0,0,0,.25);
}
.play-overlay svg{
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.6));
}

.progress-bar{
  position:absolute;
  bottom:0;
  left:0;
  height:3px;
  background:var(--accent);
}

.meta{
  padding:10px 12px 12px;
}
.meta h3{
  font-size:13.5px;
  font-weight:600;
  line-height:1.35;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  color:var(--text);
  min-height:36px;
}
.meta .stats{
  margin-top:8px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:11.5px;
  color:var(--text-dim);
}
.meta .stats .views{display:flex; align-items:center; gap:4px;}
.uploader{
  margin-top:6px;
  font-size:11px;
  color:var(--accent);
  font-weight:600;
}

footer{
  text-align:center;
  padding:24px;
  color:var(--text-dim);
  font-size:12px;
  border-top:1px solid var(--border);
}

@media (max-width:1180px){ .grid{grid-template-columns:repeat(4,1fr);} }
@media (max-width:920px){ .grid{grid-template-columns:repeat(3,1fr);} .search-box{display:none;} }
@media (max-width:680px){
  .grid{grid-template-columns:repeat(2,1fr); gap:10px; padding:10px 12px 40px;}
  nav{display:none;}
  header{padding:12px 14px;}
  .page-bar{padding:16px 14px 4px;}
}
@media (max-width:420px){ .grid{grid-template-columns:1fr;} }