/* ============================================================
   NETFLIX-STYLE THEME
   ============================================================ */
:root{
  --nf-red:        #e50914;
  --nf-red-dark:   #b20710;
  --nf-black:      #141414;
  --nf-black-2:    #0b0b0b;
  --nf-gray:       #808080;
  --nf-light:      #e5e5e5;
  --nf-card-radius: 4px;
  --nf-shadow: 0 10px 30px rgba(0,0,0,.6);
  --font-display: "Bebas Neue", "Arial Narrow", sans-serif;
  --font-body: "Netflix Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--nf-black);
  color:#fff;
  font-family:var(--font-body);
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
::-webkit-scrollbar{height:8px;width:8px}
::-webkit-scrollbar-thumb{background:#333;border-radius:4px}

/* ---------------- HEADER ---------------- */
.nf-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 4%;
  transition:background-color .4s ease;
  background:linear-gradient(180deg,rgba(0,0,0,.8) 0%,rgba(0,0,0,0) 100%);
}
.nf-header.scrolled{background:var(--nf-black)}
.nf-logo{
  font-family:var(--font-display);
  color:var(--nf-red);
  font-size:34px;
  letter-spacing:2px;
  line-height:1;
}
.nf-nav{display:flex;gap:22px;align-items:center;margin-left:36px}
.nf-nav a{font-size:14px;color:var(--nf-light);transition:color .2s}
.nf-nav a:hover,.nf-nav a.active{color:#fff}
.nf-header-left{display:flex;align-items:center}
.nf-header-right{display:flex;align-items:center;gap:18px}
.nf-search{
  display:flex;align-items:center;background:rgba(0,0,0,.6);
  border:1px solid #444;border-radius:4px;padding:6px 10px;
}
.nf-search input{
  background:none;border:none;color:#fff;outline:none;
  width:180px;font-size:14px;
}
.nf-search svg{width:18px;height:18px;fill:#fff}
.nf-avatar{width:34px;height:34px;border-radius:4px;object-fit:cover}

/* ---------------- HERO ---------------- */
.nf-hero{
  position:relative;height:85vh;min-height:520px;
  display:flex;align-items:flex-end;
  padding:0 4% 9vh;
}
.nf-hero::before{
  content:"";position:absolute;inset:0;
  background-size:cover;background-position:center top;
  background-image:var(--hero-img);
  z-index:-2;
}
.nf-hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(77deg,rgba(0,0,0,.8) 0%,rgba(0,0,0,0) 55%),
    linear-gradient(180deg,rgba(20,20,20,0) 50%,rgba(20,20,20,1) 100%);
}
.nf-hero-content{max-width:600px;animation:fadeUp .8s ease both}
.nf-hero-title{
  font-family:var(--font-display);
  font-size:clamp(40px,6vw,80px);
  line-height:.95;letter-spacing:1px;
  text-shadow:2px 2px 8px rgba(0,0,0,.7);
}
.nf-hero-meta{display:flex;gap:14px;align-items:center;margin:14px 0;font-size:14px;color:#ddd}
.nf-badge{border:1px solid #888;padding:1px 6px;border-radius:3px;font-size:12px}
.nf-hero-desc{
  font-size:17px;line-height:1.5;color:#e5e5e5;
  text-shadow:1px 1px 4px rgba(0,0,0,.6);
  margin-bottom:22px;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.nf-hero-btns{display:flex;gap:14px}

.btn{
  display:inline-flex;align-items:center;gap:8px;
  border:none;cursor:pointer;font-size:17px;font-weight:600;
  padding:11px 26px;border-radius:4px;transition:opacity .2s,background .2s;
}
.btn svg{width:22px;height:22px}
.btn-play{background:#fff;color:#000}
.btn-play:hover{background:rgba(255,255,255,.78)}
.btn-info{background:rgba(109,109,110,.7);color:#fff}
.btn-info:hover{background:rgba(109,109,110,.5)}

/* ---------------- ROWS ---------------- */
.nf-rows{position:relative;z-index:2;margin-top:-6vh;padding-bottom:60px}
.nf-row{margin:0 0 38px;padding:0 4%}
.nf-row-title{
  font-size:1.35rem;font-weight:700;margin-bottom:12px;color:#e5e5e5;
}
.nf-slider{
  display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:6px;
}
.nf-slider::-webkit-scrollbar{height:0}
.nf-card{
  position:relative;flex:0 0 auto;width:200px;
  border-radius:var(--nf-card-radius);overflow:hidden;
  scroll-snap-align:start;cursor:pointer;
  transition:transform .35s ease,box-shadow .35s ease;
  background:#222;
}
.nf-card img{width:100%;height:300px;object-fit:cover}
.nf-card:hover{transform:scale(1.08);box-shadow:var(--nf-shadow);z-index:5}
.nf-card-overlay{
  position:absolute;inset:0;display:flex;flex-direction:column;
  justify-content:flex-end;padding:10px;
  background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.9));
  opacity:0;transition:opacity .3s;
}
.nf-card:hover .nf-card-overlay{opacity:1}
.nf-card-overlay h4{font-size:14px;margin-bottom:4px}
.nf-card-overlay .quality{font-size:11px;color:#46d369;font-weight:700}
.nf-progress{
  position:absolute;left:0;bottom:0;height:4px;background:var(--nf-red);
}

/* ---------------- DETAIL PAGE ---------------- */
.nf-detail-hero{
  position:relative;min-height:70vh;display:flex;align-items:flex-end;
  padding:0 6% 6vh;
}
.nf-detail-hero::before{
  content:"";position:absolute;inset:0;z-index:-2;
  background-size:cover;background-position:center;
  background-image:var(--hero-img);
}
.nf-detail-hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(20,20,20,.2),rgba(20,20,20,1)),
             linear-gradient(90deg,rgba(20,20,20,.85),rgba(20,20,20,0) 60%);
}
.nf-detail-body{display:flex;gap:40px;padding:0 6% 60px;flex-wrap:wrap}
.nf-detail-main{flex:1 1 480px}
.nf-detail-side{flex:0 0 300px;font-size:14px;color:#999;line-height:1.9}
.nf-detail-side strong{color:#fff;font-weight:600}
.nf-detail-side .tags span{color:#ddd}
.nf-rating{color:#46d369;font-weight:700}
.nf-cast-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));
  gap:16px;margin-top:14px;
}
.nf-cast-card{text-align:center;font-size:13px}
.nf-cast-card img{
  width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;margin-bottom:6px;
  background:#333;
}
.nf-cast-card .char{color:#888;font-size:12px}
.nf-section-title{font-size:1.3rem;font-weight:700;margin:30px 0 6px}

/* ---------------- PLAYER ---------------- */
.nf-player-wrap{background:#000;display:flex;justify-content:center}
.nf-player-wrap video{width:100%;max-height:100vh}

/* ---------------- GRID PAGE (search/genre) ---------------- */
.nf-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:12px;padding:120px 4% 60px;
}
/* grid di dalam halaman index (sudah ada hero/row di atasnya) */
.nf-grid-flush{padding:14px 4% 30px}

.nf-grid .nf-card{width:100%}
.nf-grid .nf-card img{height:auto;aspect-ratio:2/3}

.nf-grid-loader{
  text-align:center;color:#888;font-size:14px;padding:26px;
  letter-spacing:.5px;
}

/* ---------------- FOOTER ---------------- */
.nf-footer{
  padding:40px 4%;color:#777;font-size:13px;
  border-top:1px solid #222;max-width:1000px;margin:0 auto;
}
.nf-footer a{color:#777;display:block;margin:6px 0}

/* ---------------- ANIM ---------------- */
@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}

/* ---------------- RESPONSIVE ---------------- */
@media (max-width:768px){
  .nf-nav{display:none}
  .nf-card{width:140px}
  .nf-card img{height:210px}
  .nf-search input{width:110px}
  .nf-hero{height:70vh;padding-bottom:12vh}
}

/* toast */
.nf-toast{
  position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(100px);
  background:#222;border-left:4px solid var(--nf-red);
  padding:14px 22px;border-radius:4px;font-size:14px;z-index:999;
  opacity:0;transition:all .35s ease;
}
.nf-toast.show{transform:translateX(-50%) translateY(0);opacity:1}
