/* Digital GB brand sheet — dark ground, blue/red wordmark, a blue-to-red ribbon behind the hero,
   uppercase heavy headings, tight 9:16 poster grid with lightbox. */
:root{
  --bg:#0f1220; --bg-2:#181c2c; --fg:#f3f3f3; --muted:#9aa0b4; --line:#2a2f42;
  --blue:#5f85d1; --red:#ff3d4e; --accent:#ff3d4e; --accent-ink:#ffffff;
  --display:"Montserrat",ui-sans-serif,system-ui,sans-serif;
  --body:"Montserrat",ui-sans-serif,system-ui,sans-serif;
  color-scheme:dark;
}

html{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
img{max-width:100%}
[hidden]{display:none!important}

*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:16px;line-height:1.5;padding-block:0 48px;padding-inline:clamp(16px,4vw,48px);overflow-x:hidden}
a{color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}

/* Header */
header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-block:22px 16px;border-bottom:2px solid var(--line)}
.brand{display:block;line-height:0}
.brand img{height:34px;width:auto;display:block}
.meta{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.14em;text-transform:uppercase}

/* Hero */
.hero{position:relative;display:grid;grid-template-columns:1fr;gap:24px 48px;align-items:end;padding-block:56px 40px}
.ribbon{position:absolute;right:-6%;top:-10px;width:min(62vw,560px);height:auto;max-width:none;pointer-events:none;z-index:0;opacity:.8;filter:blur(.3px)}
.hero>div{position:relative;z-index:1}
.hero h1{font-family:var(--display);font-weight:800;font-size:clamp(38px,7vw,88px);line-height:.95;letter-spacing:-.03em;margin:0;text-wrap:balance;text-transform:uppercase;color:var(--fg)}
.hero h1 em{font-style:normal;color:var(--red)}
.hero .sub{margin:18px 0 0;font-size:13px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);display:inline-flex;align-items:center;gap:12px}
.hero .sub::before{content:"";width:36px;height:3px;background:linear-gradient(90deg,var(--blue),var(--red))}

/* Filter rail */
.rail{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:20px}
.rail button{font:600 12px var(--body);letter-spacing:.1em;text-transform:uppercase;padding:9px 14px;border-radius:4px;border:2px solid var(--line);background:transparent;color:var(--fg);cursor:pointer}
.rail button[aria-pressed="true"]{background:var(--blue);color:#fff;border-color:var(--blue)}

/* Poster grid */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.card{position:relative;aspect-ratio:9/16;max-width:100%;overflow:hidden;background:linear-gradient(160deg,var(--bg-2),#22283d);border:0;padding:0;cursor:pointer;text-align:left;color:#fff;font:inherit;border-radius:4px}
.card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.card img.missing{visibility:hidden}
.card:hover img{transform:scale(1.04)}
.card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,24,42,.85) 0%,rgba(20,24,42,0) 48%)}
.card .cap{position:absolute;left:14px;right:14px;bottom:14px;z-index:1;display:grid;gap:4px;color:#fff}
.card .cap b{font-family:var(--display);font-weight:800;font-size:16px;line-height:1.1;letter-spacing:-.01em;text-transform:uppercase}
.card .cap span{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;opacity:.8}
.card .play{position:absolute;top:12px;right:12px;z-index:1;width:36px;height:36px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-size:13px;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.card .dur{position:absolute;top:12px;left:12px;z-index:1;font-size:12px;font-weight:600;padding:3px 8px;border-radius:3px;background:var(--blue);color:#fff;font-variant-numeric:tabular-nums}

/* Footer */
footer{margin-top:56px;padding-top:24px;border-top:2px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;color:var(--muted);font-size:14px}
footer b{color:var(--fg);font-weight:700}
footer a{text-decoration:none}
footer a:hover b{color:var(--red)}

/* Lightbox */
.lb{position:fixed;inset:0;z-index:50;background:rgba(16,19,32,.94);display:grid;grid-template-rows:1fr auto;padding:env(safe-area-inset-top,0px) 16px env(safe-area-inset-bottom,0px)}
.lb .player{min-height:0;display:grid;place-items:center;padding-top:8px}
.lb iframe{display:block;height:100%;max-height:calc(100vh - 110px);width:auto;max-width:100%;aspect-ratio:9/16;border:0;background:#000;border-radius:6px}
.lb .bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0 16px;color:#fff}
.lb .bar b{font-family:var(--display);font-size:16px;font-weight:800;text-transform:uppercase}
.lb .bar span{display:block;font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}
.lb .btns{display:flex;gap:8px}
.lb .btns button{font:700 13px var(--body);padding:9px 14px;border-radius:4px;border:2px solid #fff;background:transparent;color:#fff;cursor:pointer;text-transform:uppercase;letter-spacing:.06em}
.lb .btns button.x{background:var(--red);color:#fff;border-color:#e52d3c}

@media (max-width:900px){.grid{grid-template-columns:repeat(3,1fr)}.ribbon{width:70vw;top:0}}
@media (max-width:560px){.grid{grid-template-columns:repeat(2,1fr);gap:10px}.card .cap b{font-size:13px}.card .cap span{display:none}.lb .btns button{padding:8px 10px;font-size:12px}}
@media (prefers-reduced-motion:reduce){.card img{transition:none}}
