:root{
  --brand-red:#E8321E;      /* Rewind Red — accents/LIVE only, never buttons */
  --brand-bg:#101114;       /* Deep Charcoal */
  --brand-ink:#EDE6D6;      /* Warm Bone */
  --brand-action:#2B2B30;   /* Action Graphite — primary CTAs (Emerald's replacement) */
  --brand-secondary:#F4F1EA;/* Pearl/Ivory — secondary buttons */
}
/* Free on YouTube — big-artwork grid (James, 2026-09-24). Layout/chrome only.
   1 col phone (<720px) / 2 col tablet / 3 col desktop (>=1024px). 16/9 art boxes
   reserve space before load (no layout shift). No badges, no verification chrome. */
.free-head{margin:0 0 20px}
.free-h1{margin:0;font-size:clamp(26px,3.2vw,34px);font-weight:750;letter-spacing:-.01em;color:#f2e9d8;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.free-count{font-size:14px;font-weight:600;letter-spacing:.02em;color:var(--muted,#a89c86)}
.free-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:0;padding:0 0 8px}
@media(max-width:1023px){.free-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:719px){.free-grid{grid-template-columns:minmax(0,1fr);gap:16px}}
.free-card{position:relative;margin:0;min-width:0}
.free-tap{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;text-align:left;border-radius:14px;color:inherit;font:inherit}
.free-tap:focus-visible{outline:2px solid var(--brand-ink,#EDE6D6);outline-offset:3px}
.free-art{position:relative;display:block;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#161311}
.free-art img{width:100%;height:100%;object-fit:cover;display:block}
.free-ring{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .18s ease;pointer-events:none}
.free-tap:hover .free-ring,.free-tap:focus-visible .free-ring,.free-tap:active .free-ring{opacity:1}
.free-dot{width:66px;height:66px;border-radius:50%;background:rgba(43,43,48,.94);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 28px rgba(0,0,0,.55)}
.free-tri{width:0;height:0;border-style:solid;border-width:11px 0 11px 19px;border-color:transparent transparent transparent #fff;margin-left:5px}
button.free-title{display:block;width:100%;margin:11px 2px 0;padding:0;border:0;background:none;cursor:pointer;text-align:left;font:inherit;font-size:16.5px;font-weight:650;line-height:1.3;color:#f2e9d8}
button.free-title:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
button.free-title:focus-visible{outline:2px solid var(--brand-ink,#EDE6D6);outline-offset:3px}
/* the (i) details affordance: always visible on touch, on hover/focus elsewhere */
.free-info{position:absolute;z-index:2;top:10px;right:10px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid rgba(242,233,216,.32);background:rgba(8,7,6,.72);color:#f2e9d8;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .18s ease,background .18s ease,transform .12s ease}
.free-card:hover .free-info,.free-card:focus-within .free-info{opacity:1}
.free-info svg{width:20px;height:20px}
.free-info:hover{background:var(--brand-action,#2B2B30);border-color:var(--brand-action,#2B2B30)}
.free-info:active{transform:scale(.94)}
.free-info:focus-visible{opacity:1;outline:2px solid var(--brand-ink,#EDE6D6);outline-offset:2px}
@media(hover:none){.free-info{opacity:1}}
.free-channel{display:block;margin:3px 2px 0;font-size:13px;line-height:1.4;color:var(--muted,#a89c86)}
.free-yt{display:inline-block;margin:7px 2px 0;font-size:13px;font-weight:700;color:#EDE6D6;text-decoration:underline;text-underline-offset:3px}
.free-yt:hover{color:#ffffff}
@media(prefers-reduced-motion:reduce){.free-ring{transition:none}}

/* ---------- instant premium player overlay (James, 2026-09-26) ----------
   Artwork tap -> the full movie starts IMMEDIATELY in this large cinematic
   overlay: 16:9 stage, graphite controls, fullscreen, honest errors. */
.fnow{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(4,3,2,.93);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);animation:fnowIn .22s ease}
@keyframes fnowIn{from{opacity:0}to{opacity:1}}
.fnow-card{width:min(1120px,100%);max-height:94svh;overflow:auto;background:#0d0b0a;border:1px solid rgba(242,233,216,.16);border-radius:20px;box-shadow:0 40px 120px rgba(0,0,0,.65)}
.fnow-stage{position:relative;aspect-ratio:16/9;background:#070605;overflow:hidden}
.fnow-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fnow-stage iframe{position:absolute;inset:0;z-index:1;width:100%;height:100%;border:0}
.fnow-badge{position:absolute;z-index:3;right:14px;bottom:14px;display:inline-flex;align-items:center;min-height:34px;padding:0 14px;border-radius:999px;background:var(--brand-action,#2B2B30);color:#fff;font-size:11px;font-weight:800;letter-spacing:.14em;pointer-events:none;box-shadow:0 8px 24px rgba(0,0,0,.45)}
.fnow-loading{position:absolute;z-index:3;left:50%;top:16px;transform:translateX(-50%);padding:9px 16px;border-radius:999px;background:rgba(5,5,4,.88);color:#fff;font-size:12px;font-weight:760;letter-spacing:.03em;pointer-events:none}
.fnow-ctrls{position:absolute;z-index:3;top:14px;left:14px;display:flex;gap:10px}
.fnow-btn{display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(242,233,216,.28);border-radius:50%;background:rgba(8,7,6,.78);color:#fff;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .18s,border-color .18s}
.fnow-btn:hover{background:var(--brand-action,#2B2B30);border-color:#4a4a52}
.fnow-btn svg{width:20px;height:20px}
.fnow-btn .snd-off{display:none}
.fnow-btn.muted .snd-off{display:block}
.fnow-btn.muted .snd-on{display:none}
.fnow-x{position:absolute;z-index:3;top:14px;right:14px;display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(242,233,216,.28);border-radius:50%;background:rgba(8,7,6,.78);color:#fff;font-size:22px;line-height:1;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.fnow-x:hover{background:var(--brand-action,#2B2B30);border-color:#4a4a52}
.fnow-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 22px}
.fnow-meta{min-width:0}
.fnow-title{display:block;font-size:19px;font-weight:750;color:#f2e9d8}
.fnow-sub{display:block;margin-top:4px;font-size:13px;color:var(--muted,#a89c86)}
.fnow-actions{display:flex;gap:10px}
.fnow-action{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:999px;border:1px solid rgba(242,233,216,.25);background:transparent;color:#f2e9d8;font-size:14px;font-weight:720;cursor:pointer}
.fnow-action:hover{border-color:#4a4a52}
.fnow-action:focus-visible{outline:2px solid var(--brand-ink,#EDE6D6);outline-offset:2px}
.fnow-details{background:var(--brand-action,#2B2B30);border-color:var(--brand-action,#2B2B30);color:#fff}
.fnow-details:hover{background:#1f1f24;border-color:#1f1f24}
.fnow-err{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;background:rgba(5,5,4,.84)}
.fnow-err p{margin:0;color:#f2e9d8;font-size:16px;font-weight:650}
.fnow-retry{min-width:200px}
@media(max-width:600px){.fnow{padding:10px}.fnow-card{border-radius:16px}.fnow-bar{padding:16px}}
@media(prefers-reduced-motion:reduce){.fnow{animation:none}.free-info{transition:none}}

/* ---------- sort control (James, 2026-09-26) ---------- */
.free-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.free-sort-wrap{display:inline-flex;align-items:center;flex:none}
.free-sort{appearance:none;-webkit-appearance:none;min-height:44px;border:1px solid var(--line);border-radius:999px;background-color:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a89c86' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;color:var(--muted,#a89c86);padding:0 38px 0 17px;font:inherit;font-size:12px;font-weight:650;cursor:pointer;transition:color .17s,border-color .17s}
.free-sort:hover{color:var(--ink);border-color:var(--line-strong)}
.free-sort:focus-visible{outline:2px solid var(--brand-ink,#EDE6D6);outline-offset:2px}
.free-sort option{background-color:#161311;color:#f2e9d8}

/* ---------- series cards (James, 2026-09-27) ----------
   These shipped with zero styles anywhere and rendered as plain browser
   buttons. Same design DNA as the film cards: 16/9 art box, initials tile
   under the artwork (a failed image removes itself and reveals the tile),
   episode-count badge, warm-bone title, muted channel line. */
.series-tap{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;text-align:left;border-radius:14px;color:inherit;font:inherit}
.series-tap:focus-visible{outline:2px solid var(--brand-ink,#EDE6D6);outline-offset:3px}
.series-art{position:relative;display:block;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:linear-gradient(135deg,#1e1a17 0%,#100e0c 100%)}
.series-initials{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:64px;font-weight:750;letter-spacing:-.02em;color:rgba(237,230,214,.88);text-shadow:0 4px 24px rgba(0,0,0,.5)}
.series-art-img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;display:block}
.series-eps-badge{position:absolute;z-index:2;left:12px;bottom:12px;display:inline-flex;align-items:center;min-height:30px;padding:0 13px;border-radius:999px;background:rgba(8,7,6,.78);border:1px solid rgba(242,233,216,.28);color:#f2e9d8;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.series-sub{display:block;margin:3px 2px 0;font-size:13px;line-height:1.4;color:var(--muted,#a89c86)}

/* ---------- search input (James, 2026-09-27) ----------
   The toolbar search shipped unstyled (default browser input). Pill treatment
   matching the sort control: graphite-adjacent surface, warm-bone text. */
.free-search-wrap{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background-color:var(--surface);color:var(--muted,#a89c86);transition:border-color .17s ease,color .17s ease}
.free-search-wrap:hover{border-color:var(--line-strong);color:var(--ink)}
.free-search-wrap:focus-within{border-color:var(--brand-ink,#EDE6D6);color:var(--ink)}
.free-search-wrap svg{flex:none}
.free-search-wrap input{border:0;background:transparent;outline:none;color:var(--ink,#EDE6D6);font:inherit;font-size:13px;min-width:170px;max-width:100%;padding:0}
.free-search-wrap input::placeholder{color:var(--faint,#8d8478)}
.free-search-wrap input::-webkit-search-cancel-button{cursor:pointer}

/* ---------- artwork-unavailable state (James, 2026-09-27) ----------
   A title whose thumbnails all fail keeps its card: an initials tile takes
   the art box's place, the play ring and info button keep working. */
.free-art-missing{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e1a17 0%,#100e0c 100%)}
.free-art-missing .series-initials{position:static;inset:auto;font-size:56px}

/* ---------- Signature layered title (2026-09-27 second round) ----------
   James's standing rule: every page title is a standout layered/overlapping
   piece, in one unified language (Games hero is the sibling here). Layers:
   1) ghost "FREE" word behind (outlined, bone stroke), 2) Rewind-Red kicker
   pill + hairline rule, 3) the title itself in warm bone with a Rewind-Red
   rewind glyph and a soft ghost glyph tucked behind the wordmark, 4) count
   as a graphite pill (pearl text, graphite is a surface — never a red fill).
   Rewind Red #E8321E appears as accent only. Frozen Home hero untouched. */
.free-head{position:relative;margin:0 0 20px;padding:4px 0 6px;overflow:hidden}
.free-ghost{position:absolute;top:-24px;left:-8px;font-size:clamp(76px,11vw,132px);font-weight:800;letter-spacing:.14em;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(237,230,214,.16);pointer-events:none;user-select:none;white-space:nowrap}
.free-kicker{position:relative;z-index:1;display:flex;align-items:center;gap:12px;margin:0 0 8px}
.free-kicker .k{font-size:11px;letter-spacing:.28em;font-weight:700;color:var(--brand-red,#E8321E);border:1px solid rgba(232,50,30,.45);border-radius:999px;padding:6px 14px;background:rgba(232,50,30,.08);white-space:nowrap}
.free-kicker .rule{flex:1;height:1px;background:rgba(237,230,214,.14)}
.free-h1{position:relative;z-index:1;margin:0;font-size:clamp(40px,6vw,64px);font-weight:800;letter-spacing:-.02em;line-height:.95;color:var(--brand-ink,#EDE6D6);display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;text-shadow:0 3px 22px rgba(0,0,0,.65)}
.free-h1::before{content:"»";position:absolute;z-index:-1;left:.3em;top:-.16em;font-size:.85em;line-height:1;font-weight:800;letter-spacing:-.06em;color:rgba(232,50,30,.12);pointer-events:none;user-select:none}
.free-h1 .glyph{color:var(--brand-red,#E8321E)}
.free-h1 .free-yt{font-weight:600;color:#F4F1EA}
.free-count{font-size:14px;font-weight:600;letter-spacing:.02em;color:#F4F1EA;background:#2B2B30;border:1px solid rgba(237,230,214,.18);border-radius:999px;padding:5px 13px}
.free-head .free-sub{position:relative;z-index:1;color:rgba(237,230,214,.72);font-size:15.5px;line-height:1.6;margin:8px 0 0}
