/* Media Center — tema gelap modern, responsif, ramah mobile */
:root{
  color-scheme:dark;
  --bg:#08080c;
  --bg-soft:#0f0f16;
  --card:#14141d;
  --card-hi:#1b1b26;
  --line:#262633;
  --fg:#f2f2f7;
  --muted:#9a9aab;
  --accent:#e50914;
  --r:16px; --r-sm:10px; --r-xs:8px;
  --shadow:0 18px 48px rgba(0,0,0,.55);
  --focus:0 0 0 3px rgba(255,255,255,.18),0 0 0 1px rgba(255,255,255,.55);
  --maxw:1500px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html,body{margin:0;padding:0}
body{
  background:
    radial-gradient(1100px 560px at 82% -12%,rgba(229,9,20,.10),transparent 62%),
    var(--bg);
  color:var(--fg);
  font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;min-height:100vh;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--r-xs)}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  background:#1c1c27;padding:2px 7px;border-radius:6px;font-size:.86em;color:#d5d5e6}
.muted{color:var(--muted)}

/* ---------- topbar ---------- */
.topbar{display:flex;align-items:center;gap:20px;
  padding:14px clamp(16px,3vw,30px);
  padding-top:max(14px,env(safe-area-inset-top));
  position:sticky;top:0;z-index:40;
  background:rgba(8,8,12,.72);
  backdrop-filter:saturate(1.4) blur(16px);
  border-bottom:1px solid rgba(255,255,255,.06)}
.brand{font-weight:800;letter-spacing:2.4px;font-size:16px;white-space:nowrap}
.brand span{color:var(--accent)}
.nav{display:flex;gap:4px;font-size:13.5px}
.nav a{color:var(--muted);padding:7px 12px;border-radius:999px;transition:color .18s,background .18s}
.nav a:hover{color:var(--fg);background:rgba(255,255,255,.06)}
.nav a.active{color:var(--fg);background:rgba(255,255,255,.09)}
.stat{margin-left:auto;color:var(--muted);font-size:12.5px;white-space:nowrap;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.06);
  padding:5px 12px;border-radius:999px}
.back{margin-left:auto;color:var(--muted);font-size:13px;padding:7px 12px;border-radius:999px;transition:.18s}
.back:hover{color:var(--fg);background:rgba(255,255,255,.06)}

.wrap{max-width:var(--maxw);margin:0 auto;
  padding:clamp(18px,3vw,28px) clamp(16px,3vw,30px) 72px}

/* ---------- hero ---------- */
.hero{position:relative;display:flex;align-items:flex-end;overflow:hidden;
  min-height:clamp(340px,52vh,520px);border-bottom:1px solid rgba(255,255,255,.05)}
.hero.small{min-height:clamp(240px,38vh,340px)}
.hero-bg{position:absolute;inset:0;overflow:hidden}
.hero-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);
  filter:saturate(.92) brightness(.92)}
.hero-grad{position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(8,8,12,.97) 0%,rgba(8,8,12,.78) 42%,rgba(8,8,12,.30) 100%),
    linear-gradient(0deg,var(--bg) 3%,rgba(8,8,12,0) 62%)}
.hero-body{position:relative;z-index:2;width:100%;
  max-width:var(--maxw);margin:0 auto;
  padding:clamp(26px,4vw,44px) clamp(16px,3vw,30px)}
.hero-body>*{max-width:660px}
.tag{display:inline-block;background:linear-gradient(90deg,var(--accent),#ff3b30);color:#fff;
  font-size:11px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;
  padding:5px 11px;border-radius:999px;margin-bottom:14px;
  box-shadow:0 6px 18px rgba(229,9,20,.35)}
.hero h1{font-size:clamp(26px,4.4vw,42px);line-height:1.12;margin:0 0 14px;font-weight:800;
  letter-spacing:-.01em;text-shadow:0 2px 26px rgba(0,0,0,.7)}
.hero.small h1{font-size:clamp(21px,3.2vw,30px)}
.hero-meta{display:flex;flex-wrap:wrap;gap:10px;color:#c8c8d8;font-size:13px;margin-bottom:20px}
.hero-meta span{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);
  padding:4px 11px;border-radius:999px}
.btn-play{display:inline-flex;align-items:center;gap:9px;background:#fff;color:#0a0a0f;
  font-weight:700;font-size:15px;padding:12px 26px;border-radius:999px;
  box-shadow:0 10px 30px rgba(0,0,0,.45);
  transition:transform .16s,box-shadow .16s,background .16s}
.btn-play:hover{background:#f0f0f0;transform:translateY(-2px)}
.btn-play:active{transform:translateY(0)}

/* ---------- rows ---------- */
.row{margin-bottom:clamp(26px,4vw,44px)}
.row-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:14px}
.row-head h3{margin:0;font-size:clamp(14px,1.6vw,16px);font-weight:700;letter-spacing:.2px}
.row-head .muted{font-size:12px}
.more{font-size:12.5px;color:var(--muted);padding:6px 10px;border-radius:999px;transition:.18s}
.more:hover{color:var(--fg);background:rgba(255,255,255,.07)}

/* ---------- grid & rail ---------- */
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.grid.kol{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.rail{display:grid;gap:14px;grid-auto-flow:column;grid-auto-columns:200px;
  overflow-x:auto;overflow-y:hidden;padding:6px 2px 16px;
  scroll-snap-type:x proximity;overscroll-behavior-x:contain;
  scrollbar-width:thin;scrollbar-color:#33333f transparent}
.rail::-webkit-scrollbar{height:8px}
.rail::-webkit-scrollbar-thumb{background:#33333f;border-radius:8px}
.rail::-webkit-scrollbar-track{background:transparent}

/* ---------- kartu video ---------- */
.card{display:block;border-radius:var(--r);overflow:hidden;background:var(--card);
  border:1px solid rgba(255,255,255,.04);scroll-snap-align:start;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.card:hover,.card:focus-visible{transform:translateY(-5px);box-shadow:var(--shadow);
  border-color:rgba(255,255,255,.1)}
.card .poster{position:relative;aspect-ratio:16/9;background:#0b0b12;overflow:hidden}
.card .poster img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.card:hover .poster img{transform:scale(1.07)}
.card .badge{position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.78);
  backdrop-filter:blur(6px);padding:3px 8px;border-radius:7px;font-size:11px;
  font-weight:600;letter-spacing:.3px}
.card .bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.16)}
.card .bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .3s}
.card .meta{padding:11px 13px 14px}
.card .title{font-size:13.5px;font-weight:600;line-height:1.34;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .sub{color:var(--muted);font-size:11.5px;margin-top:6px}
.card.small .meta{padding:9px 11px 12px}
.card.small .title{font-size:12.5px}

/* ---------- kartu playlist ---------- */
.kcard{display:block;border-radius:var(--r);overflow:hidden;background:var(--card);
  border:1px solid rgba(255,255,255,.04);
  transition:transform .18s,box-shadow .18s,border-color .18s}
.kcard:hover,.kcard:focus-visible{transform:translateY(-5px);box-shadow:var(--shadow);
  border-color:rgba(255,255,255,.1)}
.kcovers{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;aspect-ratio:16/9;background:#0b0b12}
.kcovers span{display:block;overflow:hidden;background:#0b0b12}
.kcovers img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.kcard:hover .kcovers img{transform:scale(1.06)}
.kmeta{padding:13px 15px 16px}
.ktitle{font-weight:700;font-size:14.5px;line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ksub{color:var(--muted);font-size:12px;margin-top:6px}

/* ---------- daftar episode ---------- */
.eplist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.eplist li a{display:flex;align-items:center;gap:16px;background:var(--card);
  border:1px solid rgba(255,255,255,.04);border-radius:var(--r-sm);
  padding:10px 16px 10px 14px;transition:background .16s,transform .16s,border-color .16s}
.eplist li a:hover{background:var(--card-hi);transform:translateX(4px);
  border-color:rgba(255,255,255,.1)}
.eplist .num{min-width:34px;text-align:center;font-weight:800;font-size:14px;
  color:var(--accent);font-variant-numeric:tabular-nums}
.eplist .th{flex:0 0 116px;aspect-ratio:16/9;border-radius:var(--r-xs);overflow:hidden;background:#0b0b12}
.eplist .th img{width:100%;height:100%;object-fit:cover}
.eplist .txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.eplist .tt{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eplist .ts{font-size:11.5px;color:var(--muted)}
.eplist .pbar{height:3px;background:rgba(255,255,255,.13);border-radius:3px;margin-top:6px;max-width:300px}
.eplist .pbar i{display:block;height:100%;width:0;background:var(--accent);border-radius:3px}
.eplist .go{color:#5a5a70;font-size:14px;flex:0 0 auto;transition:color .16s,transform .16s}
.eplist li a:hover .go{color:#fff;transform:translateX(2px)}

/* ---------- halaman tonton ---------- */
body.watch{background:#06060a}
body.watch .wrap{max-width:1320px}
.player-wrap{padding-top:clamp(14px,2.4vw,22px)}
.stage{background:#000;border-radius:var(--r);overflow:hidden;position:relative;
  border:1px solid rgba(255,255,255,.05);box-shadow:0 24px 64px rgba(0,0,0,.7)}
.stage video{width:100%;display:block;max-height:82vh;max-height:82dvh;background:#000}
.info{margin:22px 0 26px}
.info h1{font-size:clamp(20px,2.6vw,26px);margin:0 0 14px;font-weight:750;
  line-height:1.25;letter-spacing:-.01em}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.chips span{background:var(--card);border:1px solid var(--line);border-radius:999px;
  padding:5px 12px;font-size:12px;color:#c6c6d6}
.path{color:#5f5f74;font-size:11.5px;margin:0;word-break:break-all;
  font-family:ui-monospace,Menlo,Consolas,monospace}
.pn{display:flex;gap:12px;margin-bottom:38px}
.pbtn{flex:1;text-align:center;padding:13px 16px;border-radius:var(--r-sm);
  background:var(--card);border:1px solid var(--line);font-size:13.5px;font-weight:600;
  transition:background .16s,border-color .16s,transform .16s}
.pbtn:hover{background:var(--card-hi);border-color:#3a3a4a;transform:translateY(-1px)}
.pbtn.off{color:#4c4c5e;pointer-events:none;opacity:.5}

/* ---------- kosong & footer ---------- */
.empty{text-align:center;padding:72px 24px;border:1px dashed var(--line);
  border-radius:20px;background:var(--bg-soft)}
.empty-ico{font-size:46px;margin-bottom:14px;opacity:.9}
.empty h2{margin:0 0 12px;font-size:21px}
.empty p{color:var(--muted);margin:8px 0}
.empty pre{display:inline-block;text-align:left;background:#12121b;border:1px solid var(--line);
  color:#bcbccd;padding:15px 18px;border-radius:12px;font-size:12.5px;
  margin:14px 0 6px;overflow-x:auto;max-width:100%}
.foot{text-align:center;color:#5a5a6e;font-size:12px;
  padding:26px 16px max(26px,env(safe-area-inset-bottom));
  border-top:1px solid #14141c}

/* ---------- halaman error ---------- */
.err-page{min-height:100vh;display:grid;place-items:center}
.err-box{text-align:center;background:var(--card);border:1px solid var(--line);
  border-radius:20px;padding:40px 34px;max-width:min(420px,90vw)}
.err-box h2{margin:0 0 14px;font-size:20px}
.err-box a{color:var(--accent);font-weight:600}

/* ---------- responsif ---------- */
@media(max-width:900px){
  .hero-body>*{max-width:100%}
}
@media(max-width:820px){
  .nav{display:none}
  .hero{min-height:clamp(300px,60vh,420px)}
  .hero.small{min-height:clamp(210px,42vh,300px)}
  .grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
  .grid.kol{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
  .rail{grid-auto-columns:162px;gap:12px}
  .card .title{font-size:12.5px}
  .eplist li a{padding:9px 12px;gap:12px}
  .eplist .th{flex-basis:98px}
  .stage{border-radius:var(--r-sm)}
  .pn{flex-direction:column}
}
@media(max-width:560px){
  .stat{display:none}
  .grid{grid-template-columns:repeat(2,1fr)}
  .grid.kol{grid-template-columns:1fr}
  .rail{grid-auto-columns:150px}
  .hero h1{font-size:23px}
  .btn-play{padding:11px 22px;font-size:14px}
  .eplist .num{min-width:26px;font-size:13px}
  .eplist .th{flex-basis:84px}
  .eplist .go{display:none}
  .info h1{font-size:19px}
}
@media(prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  .card:hover,.card:focus-visible,.kcard:hover,.kcard:focus-visible{transform:none}
  .card:hover .poster img,.kcard:hover .kcovers img{transform:none}
}
