:root{
  --bg:#0b0d12; --bg2:#12151d; --panel:#171b24; --card:#1d2230;
  --text:#eef1f6; --muted:#8a93a6; --brand:#e50914; --brand2:#ff3b4a;
  --border:rgba(255,255,255,.08); --radius:14px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--text); font-family:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased; line-height:1.4; overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
.wrap{max-width:1400px;margin:0 auto;padding:0 24px 60px}

/* Header */
.topbar{display:flex;align-items:center;gap:14px;padding:18px 0 6px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px;letter-spacing:.3px}
.brand .logo{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--brand),var(--brand2));display:flex;align-items:center;justify-content:center;font-size:17px}
.brand .name span{color:var(--brand2)}
.section-title{font-size:14px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text);margin:26px 2px 14px;display:flex;align-items:center;gap:10px}
.section-title .n{color:var(--muted);font-weight:500}

/* Grid de portadas */
.grid{display:grid;gap:16px;grid-template-columns:repeat(2,1fr);
  grid-auto-rows:minmax(0,auto)}
@media(min-width:560px){.grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:800px){.grid{grid-template-columns:repeat(4,1fr)}}
@media(min-width:1100px){.grid{grid-template-columns:repeat(5,1fr)}}
@media(min-width:1500px){.grid{grid-template-columns:repeat(7,1fr)}}

.card{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--card);
  border:1px solid var(--border);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.card:hover{transform:translateY(-3px)}
.card .poster{width:100%;aspect-ratio:2/3;display:block;object-fit:cover;background:#0e1116}
.card .shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.85));pointer-events:none}
.card .meta{position:absolute;left:0;right:0;bottom:0;padding:12px 12px 10px}
.card .t{font-weight:700;font-size:14px;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.7)}
.card .yr{font-size:12px;color:var(--muted);margin-top:2px}
.card .play{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;
  background:rgba(0,0,0,.55);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}
.card.focused{outline:3px solid var(--brand2);outline-offset:2px;transform:translateY(-4px);box-shadow:0 12px 30px rgba(0,0,0,.5)}

/* Detalle */
.hero{position:relative;border-radius:var(--radius);overflow:hidden;margin-bottom:20px;min-height:300px;background:#0e1116}
.hero .backdrop{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.45;filter:blur(3px)}
.hero .hero-in{position:relative;display:flex;gap:24px;padding:26px;align-items:flex-end;flex-wrap:wrap}
.hero .poster-lg{width:190px;flex:0 0 auto;border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.6)}
@media(max-width:560px){.hero .hero-in{padding:16px}.hero .poster-lg{width:130px}}
.hero .info{flex:1 1 300px;min-width:240px}
.hero h1{margin:0 0 6px;font-size:30px;line-height:1.05}
@media(max-width:560px){.hero h1{font-size:22px}}
.hero .orig{color:var(--muted);font-size:14px;margin-bottom:10px}
.hero .pill-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;
  background:var(--panel);border:1px solid var(--border);font-size:12.5px;font-weight:600}
.pill.score{color:#ffd54a}.pill.year{color:#9fe0a0}
.genres{color:var(--muted);font-size:13px;margin-bottom:14px}
.genres .g{color:var(--brand2);font-weight:600}
.back{display:inline-flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--border);
  color:var(--text);font-weight:600;font-size:13.5px;padding:9px 16px;border-radius:999px;margin:14px 0;cursor:pointer}
.back:hover{background:var(--card)}

/* Botones de reproducción */
.playlist-title{font-size:13px;font-weight:700;color:var(--muted);margin:6px 0 12px;text-transform:uppercase;letter-spacing:.5px}
.plays{display:flex;flex-wrap:wrap;gap:12px}
.play-btn{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:12px;
  background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;font-weight:700;font-size:14px;border:none;cursor:pointer;min-width:200px;justify-content:flex-start}
.play-btn:hover{filter:brightness(1.08)}
.play-btn .ic{font-size:18px}
.play-btn .sub{display:block;font-size:11px;font-weight:500;opacity:.85}
.play-btn .fmt{margin-left:auto;background:rgba(255,255,255,.2);padding:2px 8px;border-radius:6px;font-size:11px;text-transform:uppercase}
.section{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:16px}
.section h3{margin:0 0 10px;font-size:14px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.overview{font-size:14.5px;color:#c8cfdb;line-height:1.62}
.cast{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:12px}
.cast .c{text-align:center}
.cast .c .ava{position:relative;width:70px;height:70px;border-radius:50%;margin:0 auto 6px;background:linear-gradient(135deg,#2a3040,#1a1e2a);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:22px;overflow:hidden}.cast .c .ava .avaimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%}
.cast .c .nm{font-size:12px;font-weight:600}
.cast .c .ch{font-size:11px;color:var(--muted)}

/* Estado */
.state{text-align:center;color:var(--muted);padding:60px 12px}
.spinner{width:38px;height:38px;margin:0 auto 14px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--brand);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.footer{text-align:center;font-size:11px;color:var(--muted);margin-top:30px}

/* Badges de modo */
.badge{font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--panel);color:var(--muted)}
.badge.on{color:#7bd88f;border-color:rgba(123,216,143,.4)}

/* Galería */
.gal{display:flex;align-items:center;gap:10px;margin-top:6px}
.galMain{flex:1;border-radius:12px;overflow:hidden;background:#000;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center}
.galMain img{width:100%;height:100%;object-fit:cover;display:block}
.galNav{flex:0 0 auto;width:44px;height:44px;border-radius:50%;background:var(--card);border:1px solid var(--border);color:#fff;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.galNav:hover{background:var(--brand)}
.galThumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto;padding-bottom:6px}
.galThumb{flex:0 0 auto;width:96px;height:60px;border-radius:8px;background-size:cover;background-position:center;border:2px solid transparent;cursor:pointer}
.galThumb.on{border-color:var(--brand2)}
.galThumb:hover{border-color:rgba(255,255,255,.5)}

/* Volver + hero refinado */
.back{background:var(--panel)}
.hero{background:#0b0d12}
.hero .backdrop{opacity:.35;filter:blur(6px) saturate(1.1)}
.hero h1{text-shadow:0 2px 12px rgba(0,0,0,.6)}

/* Scrollbar oscuro */
.grid::-webkit-scrollbar,.galThumbs::-webkit-scrollbar{height:8px}
.grid::-webkit-scrollbar-thumb,.galThumbs::-webkit-scrollbar-thumb{background:#2a3040;border-radius:8px}


/* Ficha estilo TMDB */
.tagline{font-style:italic;color:#c8cfdb;margin:8px 0;font-size:15px}
.scoreWrap{display:flex;align-items:center;gap:12px;margin:8px 0 12px}
.scoreRing{width:56px;height:56px;border-radius:50%;background:conic-gradient(var(--brand) 0deg,var(--brand) calc(var(--score,0)*3.6deg),#2a3040 0);display:flex;align-items:center;justify-content:center;flex-direction:column;color:#fff;font-weight:800}
.scoreRing b{font-size:16px;line-height:1}.scoreRing small{font-size:10px;opacity:.8}
.scoreLbl{font-size:13px;color:var(--muted)}
.hero .info{max-width:640px}
.overview{color:#c8cfdb}

/* Póster no cortado + layout ficha + vista general */
.hero .poster-lg{width:190px;height:auto;max-height:460px;object-fit:contain;flex:0 0 auto}
.hero-in{align-items:center}
.hero .info{max-width:680px}
.overview-block{margin:14px 0 4px;color:#c8cfdb}
.overview-block b{color:var(--text);text-transform:uppercase;font-size:12px;letter-spacing:.5px;display:block;margin-bottom:6px}
.plays{margin-top:14px}
