:root{
  --red:#e50914; --red2:#b20710; --bg:#141414; --muted:#b3b3b3;
  --display:'Bebas Neue',Impact,'Arial Narrow',sans-serif;
  --body:'DM Sans','Segoe UI',Helvetica,Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:#fff;font-family:var(--body);font-size:16px;line-height:1.5; overflow-x: hidden;}
a{color:inherit;text-decoration:none}
::selection{background:var(--red)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.55rem 1.3rem;
  border-radius:4px;font-weight:700;font-size:.95rem;border:0;cursor:pointer;white-space: nowrap;
  transition:background .2s,transform .15s,box-shadow .2s;font-family:var(--body)}
.btn:active{transform:scale(.97)}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:#f6121d;box-shadow:0 6px 22px rgba(229,9,20,.4)}
.btn-ghost{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.35)}
.btn-ghost:hover{background:rgba(255,255,255,.2)}
.btn-dim{background:rgba(109,109,110,.55)}
.btn-dim:hover{background:rgba(109,109,110,.78)}
.btn.big{padding:.8rem 1.8rem;font-size:1.1rem}

/* ---------- top bar ---------- */
.topbar{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;gap:2rem;
  padding:14px 4%;background:linear-gradient(180deg,rgba(0,0,0,.75),transparent);transition:background .35s}
.topbar.solid{background:#141414;box-shadow:0 2px 18px rgba(0,0,0,.6)}
.logo{font-family:var(--display);font-size:2rem;letter-spacing:2px;color:var(--red);
  text-shadow:0 1px 10px rgba(229,9,20,.35)}
.links{display:flex;gap:1.4rem;font-size:.92rem;color:#e5e5e5}
.links a{opacity:.85;transition:.2s}
.links a:hover,.links a.active{opacity:1;color:#fff}
.actions{margin-left:auto;display:flex;gap:.6rem}

@media(max-width:760px){
  .links{display:none}
  .topbar { gap: 1rem; padding: 10px 4%; }
  .logo { font-size: 1.5rem; }
  .actions .btn { padding: 0.45rem 0.8rem; font-size: 0.82rem; }
}
@media(max-width:380px){
  .actions .btn-ghost { display: none; } /* Hides Sign In on tiny screens to prevent breakage */
}

/* ---------- hero ---------- */
.hero{position:relative;min-height:94vh;display:flex;align-items:center;padding:0 4%;overflow:hidden;
  background:
    linear-gradient(90deg,rgba(10,10,10,.94) 0%,rgba(10,10,10,.62) 45%,rgba(10,10,10,.15) 100%),
    url('images/crimson-protocol.jpg') center center/cover no-repeat #0a0a0a}
.hero::before{content:"";position:absolute;inset:0;
  background:radial-gradient(700px 420px at 65% 30%,rgba(255,120,80,.13),transparent 70%);
  animation:pulse 9s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(-14px)}}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:220px;
  background:linear-gradient(180deg,transparent,var(--bg))}
.hero-inner{position:relative;z-index:2;max-width:640px;animation:rise .8s ease both}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.kicker{letter-spacing:4px;font-size:.78rem;color:#ddd;font-weight:700;margin-bottom:.8rem}
.hero h1{font-family:var(--display);font-size:clamp(3.4rem,9vw,7.5rem);line-height:.95;
  letter-spacing:1px;text-shadow:0 6px 30px rgba(0,0,0,.7)}
.synopsis{margin:1.1rem 0 1.5rem;color:#e8e8e8;max-width:52ch;font-size:1.05rem}
.hero-btns{display:flex;gap:.8rem;flex-wrap:wrap}
.age{margin-top:1.1rem;color:var(--muted);font-size:.85rem;letter-spacing:1px}

@media(max-width: 760px){
  .hero {
    background:
      linear-gradient(180deg,rgba(10,10,10,.85) 0%,rgba(10,10,10,.7) 100%),
      url('images/crimson-protocol.jpg') center center/cover no-repeat #0a0a0a;
    align-items: flex-end;
    padding-bottom: 60px;
    min-height: 80vh;
  }
  .hero-inner { max-width: 100%; }
  .hero h1 { font-size: clamp(2.5rem, 10vw, 4rem); }
  .synopsis {
    font-size: 0.95rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .hero-btns { width: 100%; }
  .hero-btns .btn { flex: 1; justify-content: center; }
}

/* ---------- rows ---------- */
.row{position:relative;z-index:3;margin:2.6rem 0}
.row h2{font-family:var(--display);font-size:1.9rem;letter-spacing:1px;padding:0 4%;margin-bottom:.4rem}
.track{display:flex;gap:10px;overflow-x:auto;padding:14px 4% 26px;scrollbar-width:none; scroll-behavior: smooth;}
.track::-webkit-scrollbar{display:none}
.card{flex:0 0 232px;aspect-ratio:16/9;border-radius:4px;position:relative;overflow:hidden;cursor:pointer;
  background:#1a1a1a;box-shadow:0 4px 14px rgba(0,0,0,.5);transition:transform .25s ease,box-shadow .25s ease}
.card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .45s ease}
.card:hover img{transform:scale(1.07)}
.card::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.8) 100%)}
.card::before{z-index:3}
.ttl,.badge{z-index:2}

.badge {
  position: absolute;
  top: 10px;
  left: 10px;
  background: var(--red);
  color: #fff;
  padding: 2px 8px;
  border-radius: 3px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}

.ttl {
  position: absolute;
  bottom: 12px;
  left: 14px;
  right: 14px;
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  text-shadow: 0 2px 6px rgba(0,0,0,0.8);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media(hover: none) {
  .card:hover img { transform: none; }
}

@media(max-width: 600px) {
  .card { flex: 0 0 160px; }
  .row h2 { font-size: 1.5rem; }
}

/* ---------- sign-in page (near-red) ---------- */
body.auth{min-height:100vh;display:flex;flex-direction:column;
  background:
    radial-gradient(1000px 700px at 72% -10%,rgba(229,9,20,.55),transparent 62%),
    radial-gradient(860px 620px at 6% 110%,rgba(140,4,12,.6),transparent 58%),
    linear-gradient(160deg,#2a0508,#120203 70%)}
body.auth .topbar{position:static;background:transparent}
.wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 16px}
.panel{width:100%;max-width:480px;background:rgba(0,0,0,.78);border:1px solid rgba(255,255,255,.05);
  border-radius:8px;padding:44px 46px 32px;box-shadow:0 30px 80px rgba(0,0,0,.6);animation:rise .55s ease both}
@media(max-width:540px){.panel{padding:32px 22px}}
.panel h1{font-family:var(--display);font-size:2.3rem;letter-spacing:1px;margin-bottom:.3rem}
.panel .sub{color:var(--muted);font-size:.92rem;margin-bottom:1.6rem}
.field{margin-bottom:1rem}
.field label{display:block;font-size:.82rem;letter-spacing:.4px;color:#d2d2d2;margin-bottom:.35rem;font-weight:700}
.control{position:relative}
.control input{width:100%;background:#262626;border:1px solid #3f3f3f;border-radius:4px;
  padding:13px 14px;color:#fff;font-size:.98rem;font-family:var(--body);transition:.2s}
.control input::placeholder{color:#7c7c7c}
.control input:focus{outline:none;border-color:var(--red);background:#2c2c2c;
  box-shadow:0 0 0 3px rgba(229,9,20,.18)}
.control input.bad{border-color:#ffb020}
.hint{display:flex;justify-content:space-between;font-size:.75rem;color:#9a9a9a;margin-top:.3rem}
.err{display:none;color:#ffb020;font-size:.78rem;margin-top:.3rem}
.err.show{display:block;animation:rise .25s ease both}
.brand-chip{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:.68rem;
  font-weight:700;letter-spacing:.5px;color:#0e0e0e;background:#e6e6e6;padding:3px 8px;border-radius:3px;
  opacity:0;transition:opacity .2s;pointer-events:none}
.brand-chip.on{opacity:1}
.divider{height:1px;background:rgba(255,255,255,.12);margin:1.4rem 0 1.1rem}
.note{display:flex;gap:.7rem;background:rgba(255,255,255,.06);border-left:3px solid var(--red);
  border-radius:4px;padding:12px 14px;font-size:.86rem;color:#e6e6e6;margin-bottom:1.2rem}
.note b{color:#fff}
.form-err{display:none;background:rgba(229,9,20,.15);border:1px solid rgba(229,9,20,.5);
  border-radius:4px;padding:10px 12px;font-size:.85rem;margin-bottom:1rem}
.form-err.show{display:block;animation:rise .25s ease both}
.submit{width:100%;padding:.9rem;font-size:1.05rem;margin-top:.4rem}
.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;
  border-radius:50%;animation:spin .7s linear infinite;display:none}
.submit.loading .spinner{display:inline-block}
.submit:disabled{opacity:.75;cursor:wait}
@keyframes spin{to{transform:rotate(360deg)}}
.fineprint{margin-top:1.2rem;font-size:.72rem;color:#8f8f8f;text-align:center}
.mode-swap{margin-top:1.2rem;font-size:.9rem;color:var(--muted)}
.mode-swap a{color:#fff;font-weight:700}

/* ---------- movies page ---------- */
.page-head{padding:110px 4% 10px;display:flex;align-items:end;gap:1.4rem;flex-wrap:wrap}
.page-head h1{font-family:var(--display);font-size:clamp(2.6rem,6vw,4.5rem);letter-spacing:1px}
.page-head p{color:var(--muted)}
.chips{display:flex;gap:.5rem;flex-wrap:wrap;padding:0 4% 10px}
.chip{padding:.4rem .95rem;border-radius:999px;border:1px solid rgba(255,255,255,.25);
  font-size:.83rem;color:#ddd;cursor:pointer;background:transparent;transition:.2s;font-family:var(--body)}
.chip:hover,.chip.on{background:var(--red);border-color:var(--red);color:#fff}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:16px;padding:16px 4% 60px}
.tile{aspect-ratio:2/3;border-radius:5px;position:relative;overflow:hidden;cursor:pointer;
  background:linear-gradient(160deg,var(--a),var(--b));box-shadow:0 4px 16px rgba(0,0,0,.45);
  transition:transform .25s,box-shadow .25s}
.tile:hover{transform:translateY(-8px) scale(1.03);box-shadow:0 18px 40px rgba(0,0,0,.7)}
.tile .ttl{
  position: absolute; left:14px; bottom:34px; font-size:1.5rem; 
  font-family: var(--display); z-index: 2; color: #fff; 
  text-shadow: 0 2px 4px rgba(0,0,0,0.5); letter-spacing: 1px;
}
.tile .meta{position:absolute;left:14px;bottom:12px;font-size:.72rem;color:rgba(255,255,255,.75);letter-spacing:.6px}
.tile .play{position:absolute;top:50%;left:50%;width:52px;height:52px;border-radius:50%;
  background:rgba(229,9,20,.92);display:grid;place-items:center;font-size:1.2rem;
  transform:translate(-50%,-50%) scale(.6);opacity:0;transition:.25s; z-index: 3;}
.tile:hover .play{opacity:1;transform:translate(-50%,-50%) scale(1)}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:#1f1f1f;
  border:1px solid rgba(255,255,255,.15);border-left:4px solid var(--red);padding:.85rem 1.2rem;
  border-radius:6px;font-size:.9rem;box-shadow:0 12px 40px rgba(0,0,0,.6);z-index:80;animation:rise .4s ease both}
footer{padding:40px 4% 30px;color:#777;font-size:.8rem;border-top:1px solid rgba(255,255,255,.06); text-align: center;}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

@media(max-width: 540px) {
  .grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; }
  .page-head { padding-top: 90px; }
  .page-head h1 { font-size: 2.2rem; }
}