:root {
  --ink: #070809;
  --ink-2: #0d0f12;
  --panel: #121519;
  --line: #292d32;
  --blood: #d10a17;
  --blood-light: #ff313d;
  --bone: #f0ede7;
  --muted: #a7a9ad;
  --display: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  --body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; color: var(--bone); background: var(--ink); font-family: var(--body); font-size: 16px; line-height: 1.6; }
button, a { font: inherit; }
a { color: inherit; }
button { color: inherit; }
.skip-link { position: fixed; top: -100px; left: 1rem; z-index: 100; padding: .7rem 1rem; background: var(--bone); color: var(--ink); }
.skip-link:focus { top: 1rem; }

.site-header { height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 0 clamp(1.25rem, 5vw, 5rem); border-bottom: 1px solid var(--line); background: rgba(7,8,9,.96); position: sticky; top: 0; z-index: 20; backdrop-filter: blur(12px); }
.brand { height: 100%; display: flex; align-items: center; gap: .85rem; color: var(--bone); text-decoration: none; letter-spacing: .08em; font-size: .95rem; }
.brand img { width: 70px; height: 68px; object-fit: cover; object-position: center; mix-blend-mode: screen; }
.brand b { color: var(--blood-light); }
.main-nav { display: flex; align-items: center; gap: clamp(.65rem, 1.3vw, 1.45rem); }
.main-nav a { position: relative; text-decoration: none; color: #d7d8da; font-weight: 600; font-size: .78rem; white-space: nowrap; }
.main-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.4rem; height: 2px; background: var(--blood-light); transition: right .25s ease; }
.main-nav a:hover::after, .main-nav a:focus-visible::after { right: 0; }
.main-nav .nav-highlight { padding: .55rem .75rem; border: 1px solid #6f222b; color: #fff; background: #211014; }
.nav-dropdown { position: relative; display: flex; align-items: center; gap: .2rem; }
.nav-dropdown-toggle { width: 25px; height: 28px; display: grid; place-items: center; padding: 0 0 .2rem; border: 0; background: transparent; color: #aaaeb4; cursor: pointer; font-size: 1rem; line-height: 1; }
.nav-dropdown.open .nav-dropdown-toggle { transform: rotate(180deg); }
.nav-dropdown-toggle:hover, .nav-dropdown-toggle:focus-visible { color: var(--blood-light); }
.nav-submenu { min-width: 235px; position: absolute; top: calc(100% + 1rem); left: -.8rem; display: none; padding: .55rem; border: 1px solid #4d2025; background: rgba(9,10,12,.98); box-shadow: 0 18px 45px rgba(0,0,0,.55); }
.nav-dropdown:hover .nav-submenu, .nav-dropdown:focus-within .nav-submenu, .nav-dropdown.open .nav-submenu { display: grid; }
.main-nav .nav-submenu a { padding: .7rem .8rem; border-bottom: 1px solid #26292e; color: #c5c7ca; font-size: .76rem; }
.main-nav .nav-submenu a:last-child { border-bottom: 0; }
.main-nav .nav-submenu a::after { bottom: 0; }
.main-nav .nav-submenu a:hover { color: #fff; background: #211014; }
.platform-strip, .editorial-feature, .classic-horror, .hidden-gem-spotlight, .saga-night, .marathon-feature { scroll-margin-top: 105px; }
.menu-button { display: none; border: 1px solid var(--line); background: transparent; padding: .5rem .8rem; }

.hero { min-height: 630px; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, .7fr); gap: clamp(3rem, 7vw, 8rem); align-items: center; padding: clamp(4.5rem, 8vw, 8rem) clamp(1.25rem, 7vw, 7.5rem); position: relative; overflow: hidden; background: radial-gradient(circle at 68% 40%, rgba(146,0,12,.23), transparent 25%), linear-gradient(120deg, #090a0c 55%, #13080a); }
.hero::before { content: ""; position: absolute; inset: 0; opacity: .14; background-image: repeating-linear-gradient(90deg, transparent 0, transparent 79px, #74777b 80px), repeating-linear-gradient(0deg, transparent 0, transparent 79px, #74777b 80px); mask-image: linear-gradient(to right, transparent 20%, black); }
.hero-copy, .now-playing { position: relative; z-index: 1; }
.eyebrow { margin: 0 0 .8rem; color: var(--blood-light); font-size: .78rem; line-height: 1.2; font-weight: 700; letter-spacing: .19em; }
h1, h2, h3, p { margin-top: 0; }
h1 { max-width: 900px; margin-bottom: 1.5rem; font-family: var(--display); font-size: clamp(4.8rem, 10vw, 9.6rem); line-height: .84; font-weight: 400; letter-spacing: .01em; }
h1 em { color: var(--blood-light); font-style: normal; }
.hero-text { max-width: 620px; color: #c2c3c5; font-size: clamp(1rem, 1.5vw, 1.2rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: .7rem 1.25rem; border: 1px solid var(--blood); text-decoration: none; font-weight: 700; font-size: .9rem; }
.button-primary { background: var(--blood); }
.button-primary:hover { background: var(--blood-light); }
.button-ghost:hover { background: #1b0b0d; }
.now-playing { border: 1px solid #652029; background: rgba(12,12,14,.78); padding: clamp(1.5rem, 3vw, 2.5rem); box-shadow: 18px 18px 0 rgba(139,0,11,.14); }
.signal { color: #d7d8da; font-size: .72rem; font-weight: 700; letter-spacing: .17em; }
.signal span { display: inline-block; width: 7px; height: 7px; margin-right: .45rem; border-radius: 50%; background: var(--blood-light); box-shadow: 0 0 12px var(--blood-light); }
.case-number { margin: 2.5rem 0 .2rem; color: #71747a; font-size: .72rem; letter-spacing: .15em; }
.now-playing h2 { font-family: var(--display); font-size: 3.2rem; line-height: .95; font-weight: 400; }
.now-playing p { color: var(--muted); }
.now-playing a { display: inline-flex; gap: 1rem; color: var(--blood-light); text-decoration: none; font-weight: 700; }
.featured-slide { min-height: 315px; animation: reveal .4s ease; }
.featured-slide[hidden] { display: none; }
.feature-dots { display: flex; gap: .55rem; margin-top: 1.2rem; }
.feature-dot { width: 32px; height: 4px; padding: 0; border: 0; background: #494b50; cursor: pointer; }
.feature-dot.active { background: var(--blood-light); }
@keyframes reveal { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.ticker { overflow: hidden; border-top: 1px solid #6e0a12; border-bottom: 1px solid #6e0a12; background: var(--blood); color: white; font-family: var(--display); font-size: 1.35rem; letter-spacing: .08em; white-space: nowrap; }
.ticker span { display: block; width: max-content; padding: .45rem 0; animation: crawl 24s linear infinite; }
@keyframes crawl { to { transform: translateX(-50%); } }

.premieres-banner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 2rem clamp(1.25rem, 7vw, 7.5rem); border-bottom: 1px solid #5e1920; background: linear-gradient(110deg, #24090c, #0d0f12 60%); }
.premieres-banner h2 { margin-bottom: .35rem; font-family: var(--display); font-size: clamp(2.4rem, 4vw, 4rem); line-height: .95; font-weight: 400; }
.premieres-banner p:last-child { margin: 0; color: var(--muted); }
.premieres-banner .button { flex: 0 0 auto; }

/* Terror oculto */
.hidden-horror-page { background: #08090b; }
.hidden-horror-hero { min-height: 590px; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .55fr); gap: clamp(3rem, 8vw, 8rem); align-items: center; padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 8vw, 8rem); background: radial-gradient(circle at 78% 42%, rgba(88,35,101,.24), transparent 24%), repeating-linear-gradient(90deg, transparent 0, transparent 119px, rgba(255,255,255,.025) 120px), linear-gradient(135deg, #090a0c 48%, #170d19); }
.hidden-horror-hero h1 { margin-bottom: 1.8rem; font-size: clamp(5rem, 11vw, 10rem); }
.hidden-horror-hero > div > p:last-child { max-width: 760px; color: #c2c3c7; font-size: 1.08rem; }
.hidden-horror-note { padding: clamp(1.5rem, 3vw, 2.2rem); border: 1px solid #5d3164; background: rgba(8,9,11,.82); box-shadow: 18px 18px 0 rgba(91,28,104,.12); }
.hidden-horror-note strong { display: block; margin-bottom: .7rem; font-family: var(--display); font-size: clamp(2rem, 4vw, 3.2rem); line-height: .95; font-weight: 400; }
.hidden-horror-note p { margin: 0; color: var(--muted); }
.hidden-horror-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: end; padding: 5rem clamp(1.25rem, 8vw, 8rem) 2rem; }
.hidden-horror-intro h2 { margin: 0; font-family: var(--display); font-size: clamp(3.2rem, 6vw, 5.8rem); line-height: .9; font-weight: 400; }
.hidden-horror-intro > p { margin: 0; color: var(--muted); }
.hidden-film-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; padding: 2rem clamp(1.25rem, 8vw, 8rem) 7rem; background: #08090b; }
.hidden-film-card { min-height: 330px; display: flex; flex-direction: column; align-items: flex-start; padding: 1.5rem; border: 1px solid #30333a; background: linear-gradient(145deg, #151419, #0d0f12 68%); }
.hidden-film-card.featured-hidden { border-color: #74307e; background: linear-gradient(145deg, #28132c, #0d0f12 70%); }
.hidden-film-card > span:first-child { color: #d76be5; font-size: .68rem; font-weight: 800; letter-spacing: .12em; }
.hidden-film-card h2 { margin: auto 0 .8rem; font-family: var(--display); font-size: clamp(2rem, 3vw, 3rem); line-height: .92; font-weight: 400; }
.hidden-film-card p { color: #aeb0b5; font-size: .88rem; }
.hidden-film-card a, .card-coming { margin-top: auto; color: #f08cff; font-weight: 750; text-decoration: none; border-bottom: 1px solid currentColor; }
.card-coming { color: #767980; }
.hidden-feature-review { border-top-color: #67316e; }
.jenny-pen-figure img { object-position: center 35%; }
.trailer-placeholder { padding: 1.2rem; border: 1px dashed #53565c; color: #8f9297; }
.trailer-placeholder span { color: #bbbcc0; font-size: .72rem; font-weight: 800; letter-spacing: .13em; }
.trailer-placeholder p { margin: .5rem 0 0; }

/* Agenda de estrenos */
.premieres-page { background: #08090b; }
.premieres-hero { min-height: 500px; padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 9vw, 9rem); background: radial-gradient(circle at 78% 35%, rgba(201,10,24,.25), transparent 24%), repeating-linear-gradient(90deg, transparent 0, transparent 119px, rgba(255,255,255,.025) 120px), #090a0c; }
.premieres-hero h1 { margin-bottom: 1.8rem; font-size: clamp(4.2rem, 9vw, 8.8rem); }
.premieres-hero > p:not(.eyebrow) { max-width: 760px; color: #c3c5c8; font-size: 1.08rem; }
.premiere-key { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 2rem; }
.premiere-key span { padding: .35rem .65rem; border: 1px solid #5e2228; color: #d7d8da; font-size: .72rem; font-weight: 700; letter-spacing: .12em; }
.premieres-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: end; padding: 5rem clamp(1.25rem, 9vw, 9rem) 2rem; }
.premieres-intro h2, .premiere-watch h2, .premieres-next h2 { margin-bottom: 0; font-family: var(--display); font-size: clamp(3.2rem, 6vw, 5.6rem); line-height: .9; font-weight: 400; }
.premieres-intro > p { margin: 0; color: var(--muted); }
.premiere-list { padding: 2rem clamp(1.25rem, 9vw, 9rem) 6rem; }
.premiere-card { display: grid; grid-template-columns: minmax(160px, .45fr) 1.3fr; min-height: 390px; border: 1px solid #34373c; }
.premiere-card + .premiere-card { margin-top: 1.4rem; }
.premiere-card.prime { background: radial-gradient(circle at 16% 45%, rgba(45,123,174,.35), transparent 30%), linear-gradient(120deg, #101b22, #0b0d10 55%); }
.premiere-card.cinema { background: radial-gradient(circle at 16% 45%, rgba(176,22,32,.33), transparent 30%), linear-gradient(120deg, #211012, #0b0d10 55%); }
.premiere-card.featured-premiere { grid-template-columns: minmax(300px, .8fr) 1.2fr; background: linear-gradient(120deg, #1b0c0e, #0b0d10 62%); border-color: #6f222b; }
.premiere-card.colony-premiere { background: linear-gradient(120deg, #08201f, #0b0d10 62%); border-color: #21625d; }
.premiere-card.boiuna-premiere { background: linear-gradient(120deg, #221b0e, #0b0d10 62%); border-color: #6d5730; }
.premiere-card.hope-premiere { background: linear-gradient(120deg, #15191d, #0b0d10 62%); border-color: #555e66; }
.premiere-card.clayface-premiere { background: linear-gradient(120deg, #21150f, #0b0d10 62%); border-color: #76503d; }
.premiere-media { position: relative; min-height: 390px; overflow: hidden; border-right: 1px solid #34373c; background: #111316; }
.premiere-media img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.premiere-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(7,8,9,.72), transparent 55%); pointer-events: none; }
.premiere-media .premiere-date { position: absolute; left: 1.2rem; bottom: 1rem; z-index: 1; border: 0; align-items: flex-start; }
.premiere-date { display: flex; flex-direction: column; align-items: center; justify-content: center; border-right: 1px solid #34373c; }
.premiere-date strong { font-family: var(--display); font-size: clamp(5rem, 10vw, 9rem); line-height: .75; font-weight: 400; color: rgba(255,255,255,.92); }
.premiere-date span { color: var(--blood-light); font-weight: 800; letter-spacing: .28em; }
.premiere-copy { padding: clamp(2rem, 5vw, 4.5rem); }
.premiere-copy h2 { margin-bottom: 1.3rem; font-family: var(--display); font-size: clamp(3.8rem, 7vw, 6.5rem); line-height: .85; font-weight: 400; }
.premiere-copy > p:not(.eyebrow) { max-width: 760px; color: #bfc1c5; }
.premiere-copy .premiere-note { color: #e0ddd7; font-weight: 650; }
.premiere-copy small { display: block; margin-top: .75rem; color: #7f8389; }
.premiere-watch { padding: 5rem clamp(1.25rem, 9vw, 9rem); background: #111316; border-top: 1px solid #34373c; border-bottom: 1px solid #34373c; }
.radar-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 3rem; background: #34373c; border: 1px solid #34373c; }
.radar-grid article { min-height: 240px; padding: 1.5rem; background: #0d0f12; }
.radar-grid time { color: var(--blood-light); font-weight: 800; letter-spacing: .12em; }
.radar-grid h3 { margin: 2.7rem 0 .7rem; font-family: var(--display); font-size: 2.3rem; line-height: .95; font-weight: 400; }
.radar-grid p, .radar-disclaimer { color: var(--muted); }
.radar-disclaimer { max-width: 760px; margin: 1.5rem 0 0; font-size: .88rem; }
.premieres-next { padding: 6rem clamp(1.25rem, 9vw, 9rem); background: linear-gradient(120deg, #22090c, #090a0c 65%); }
.premieres-next > p:not(.eyebrow) { max-width: 720px; color: #bfc1c5; margin: 1.5rem 0 2rem; }

.section { padding: clamp(5rem, 9vw, 8rem) clamp(1.25rem, 7vw, 7.5rem); }
.section-heading { display: flex; justify-content: space-between; gap: 3rem; align-items: end; margin-bottom: 2.5rem; }
.section-heading h2, .warren-copy > h2, .site-footer h2 { margin-bottom: 0; font-family: var(--display); font-size: clamp(3.4rem, 7vw, 6rem); line-height: .9; font-weight: 400; }
.section-heading > p { max-width: 520px; margin: 0; color: var(--muted); }
.halloween-section { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem, 8vw, 8rem); align-items: center; background: radial-gradient(circle at 15% 50%, rgba(181,34,10,.18), transparent 28%), #11100f; border-bottom: 1px solid #40221a; }
.halloween-copy h2 { margin-bottom: 1.5rem; font-family: var(--display); font-size: clamp(4rem, 8vw, 7rem); line-height: .87; font-weight: 400; }
.halloween-copy > p:not(.eyebrow) { max-width: 560px; color: #b8b5af; }
.halloween-categories { border-top: 1px solid #533025; }
.halloween-categories a { display: grid; grid-template-columns: 50px 1fr; gap: .1rem 1rem; padding: 1.3rem .4rem; border-bottom: 1px solid #533025; text-decoration: none; transition: background .2s ease, padding .2s ease; }
.halloween-categories a:hover { padding-left: 1rem; background: rgba(175,42,14,.13); }
.halloween-categories span { grid-row: 1 / 3; color: #db431f; font-family: var(--display); font-size: 1.7rem; }
.halloween-categories strong { font-size: 1.05rem; }
.halloween-categories small { color: #8f8c88; font-size: .78rem; }
.films-section { background: #0a0b0d; }
.year-tabs { display: flex; gap: .5rem; margin-bottom: 2rem; overflow-x: auto; }
.year-tab { min-width: 72px; border: 1px solid var(--line); background: transparent; padding: .55rem 1rem; cursor: pointer; color: var(--muted); font-weight: 700; }
.year-tab:hover, .year-tab.active { border-color: var(--blood); background: var(--blood); color: white; }
.film-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.film-card { min-height: 340px; padding: 1.5rem; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; background: var(--panel); }
.film-card-image { position: absolute; top: 3.9rem; left: 1.5rem; right: 1.5rem; z-index: 1; width: calc(100% - 3rem); height: 112px; border: 1px solid rgba(255,255,255,.16); object-fit: cover; box-shadow: 0 12px 28px rgba(0,0,0,.34); filter: saturate(.82) contrast(1.08); }
.film-card-with-image .film-year, .film-card-with-image .film-number { position: relative; z-index: 2; }
.film-card-with-image .film-number { position: absolute; }
.film-card-with-image.violet .film-card-image { object-position: center; }
.film-card::after { content: ""; position: absolute; width: 230px; height: 230px; right: -85px; top: 50px; border: 30px solid currentColor; border-radius: 50%; opacity: .1; filter: blur(1px); }
.film-card-with-image::after { display: none; }
.film-card[hidden] { display: none; }
.film-number { position: absolute; top: .2rem; left: 1rem; font-family: var(--display); font-size: 8rem; line-height: 1; color: rgba(255,255,255,.035); }
.film-year { align-self: flex-end; padding: .25rem .55rem; border: 1px solid currentColor; font-size: .75rem; font-weight: 700; }
.film-card-body { position: relative; z-index: 2; }
.film-card-body > p, .product-card > p { margin-bottom: .5rem; color: currentColor; font-size: .7rem; font-weight: 700; letter-spacing: .13em; }
.film-card h3 { max-width: 290px; margin-bottom: 1.8rem; color: var(--bone); font-family: var(--display); font-size: 2.5rem; line-height: .98; font-weight: 400; }
.crimson { color: #ee3843; background: linear-gradient(145deg, #211014, #0d0f12 70%); }
.smoke { color: #b7c3c7; background: linear-gradient(145deg, #192124, #0d0f12 70%); }
.ochre { color: #dfa33b; background: linear-gradient(145deg, #261d0d, #0d0f12 70%); }
.violet { color: #aa6bc4; background: linear-gradient(145deg, #201326, #0d0f12 70%); }
.ice { color: #9db9c7; background: linear-gradient(145deg, #12212a, #0d0f12 70%); }
.red { color: #d31c25; background: linear-gradient(145deg, #251012, #0d0f12 70%); }
.text-link { padding: 0 0 .3rem; border: 0; border-bottom: 1px solid currentColor; background: transparent; cursor: pointer; font-weight: 700; font-size: .9rem; }
.film-card a.text-link { align-self: flex-start; text-decoration: none; }
.text-link span { margin-left: .65rem; }
.series-section { background: #090a0c; border-top: 1px solid var(--line); }
.series-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.series-card { min-height: 430px; padding: 1.4rem; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid #30343a; overflow: hidden; position: relative; }
.series-card::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, #08090b 12%, transparent 75%); }
.series-card > span, .series-card > div { position: relative; z-index: 1; }
.series-card > span { align-self: flex-end; padding: .22rem .5rem; border: 1px solid currentColor; color: #d0d2d5; font-size: .7rem; font-weight: 700; }
.series-card div > p:first-child { color: var(--blood-light); font-size: .7rem; font-weight: 700; letter-spacing: .14em; }
.series-card h3 { margin-bottom: .5rem; font-family: var(--display); font-size: 4rem; line-height: .9; font-weight: 400; }
.series-card div > p:not(:first-child) { max-width: 340px; color: #b1b4b8; font-size: .9rem; }
.series-card .text-link { color: #ece9e4; }
.from-card { background: radial-gradient(circle at 68% 25%, #a79a60 0, #3a3020 5%, transparent 27%), linear-gradient(145deg, #27200f, #0c1013); }
.mercedes-card { background: radial-gradient(circle at 70% 20%, #83131c 0, #310d12 10%, transparent 32%), linear-gradient(145deg, #211015, #0b0d10); }
.keeper-card { background: radial-gradient(circle at 65% 22%, #7a8892 0, #242d33 8%, transparent 30%), linear-gradient(145deg, #14202a, #0b0d10); }
.ahs-card { background: linear-gradient(to top, rgba(8,9,11,.96) 5%, rgba(8,9,11,.28) 76%), url("american-horror-story-13.jpeg") center / cover no-repeat; }
.ahs-card::before { background: linear-gradient(to top, #08090b 6%, rgba(8,9,11,.12) 78%); }
.ahs-card h3 { max-width: 620px; }

.warren-section { display: grid; grid-template-columns: .65fr 1.35fr; gap: clamp(3rem, 8vw, 9rem); background: #ece9e2; color: #111316; }
.warren-mark { min-height: 570px; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #111316; color: var(--blood-light); position: relative; box-shadow: -22px 22px 0 #b90915; }
.warren-mark::before, .warren-mark::after { content: ""; position: absolute; width: 52%; height: 1px; background: #8b2229; transform: rotate(45deg); }
.warren-mark::after { transform: rotate(-45deg); }
.warren-mark span { position: relative; z-index: 1; font-family: var(--display); font-size: clamp(9rem, 20vw, 18rem); line-height: .8; }
.warren-mark small { position: relative; z-index: 1; color: var(--bone); letter-spacing: .5em; }
.warren-copy > p:not(.eyebrow) { max-width: 650px; color: #555960; font-size: 1.05rem; }
.episode-list { margin-top: 3rem; border-top: 1px solid #bbb8b2; }
.episode-list article { display: grid; grid-template-columns: 72px 1fr 46px; gap: 1rem; align-items: center; padding: 1.4rem 0; border-bottom: 1px solid #bbb8b2; }
.episode-list article > span { color: #8f1119; font-size: .72rem; font-weight: 700; }
.episode-list h3 { margin: 0; font-size: 1.05rem; }
.episode-list p { margin: .2rem 0 0; color: #676b71; font-size: .88rem; }
.round-button { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #a6a39d; border-radius: 50%; background: transparent; color: inherit; cursor: pointer; text-decoration: none; }
.round-button:hover { border-color: var(--blood); background: var(--blood); color: white; }
.podcast-section { display: grid; grid-template-columns: .45fr 1.55fr; gap: 2rem; align-items: stretch; background: var(--blood); }
.podcast-label { display: flex; align-items: center; gap: .7rem; border-right: 1px solid rgba(255,255,255,.28); font-weight: 700; font-size: .75rem; letter-spacing: .14em; }
.podcast-label span { color: #ffb8bc; animation: pulse 1.6s ease infinite; }
.podcast-main { display: flex; justify-content: space-between; gap: 3rem; align-items: center; }
.podcast-main .eyebrow { color: #ffd4d7; }
.podcast-main h2 { margin-bottom: .6rem; font-family: var(--display); font-size: clamp(3rem, 6vw, 5.5rem); line-height: .9; font-weight: 400; }
.podcast-main p:not(.eyebrow) { max-width: 700px; margin-bottom: 0; color: #f1cfd2; }
.podcast-play { flex: 0 0 auto; min-height: 54px; display: inline-flex; align-items: center; padding: .8rem 1.2rem; border: 1px solid white; background: white; color: #99101a; cursor: pointer; font-weight: 700; text-decoration: none; }
.podcast-play span { margin-right: .55rem; }
@keyframes pulse { 50% { opacity: .35; } }

.bazaar-section { background: #0e1013; }
.bazaar-page { min-height: 100vh; background: #0b0d10; }
.bazaar-hero { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(280px, .7fr); gap: clamp(2.5rem, 7vw, 7rem); align-items: end; min-height: 500px; padding: clamp(5rem, 9vw, 8rem) clamp(1.25rem, 7vw, 7.5rem); border-bottom: 1px solid #542029; background: radial-gradient(circle at 78% 35%, rgba(211,28,37,.22), transparent 25%), linear-gradient(135deg, #08090b 45%, #190b0e); }
.bazaar-hero h1 { margin: .5rem 0 1.4rem; font-size: clamp(4.2rem, 9vw, 8rem); }
.bazaar-hero-copy > p:last-of-type { max-width: 720px; color: #b8bbc0; font-size: 1.05rem; line-height: 1.75; }
.bazaar-hero-note { padding: 1.5rem; border: 1px solid #70232b; background: rgba(10,11,13,.78); }
.bazaar-hero-note strong { display: block; margin-bottom: .65rem; color: #fff; font-family: var(--display); font-size: 2.4rem; font-weight: 400; }
.bazaar-hero-note p { margin: 0; color: #b7b9bd; line-height: 1.65; }
.bazaar-collection { padding: clamp(4rem, 8vw, 7rem) clamp(1.25rem, 7vw, 7.5rem); }
.bazaar-collection .affiliate-note { margin-top: 2rem; }
.halloween-bazaar-link { display: inline-flex; margin-top: 1.2rem; }
.bazaar-category { margin: 0 0 1.2rem; color: #dedfe1; font-family: var(--display); font-size: clamp(2.4rem, 5vw, 4rem); font-weight: 400; }
.product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.2rem; }
.product-card { padding: 1rem 1rem 1.7rem; border: 1px solid var(--line); background: #111419; }
.product-card-featured { border-color: #6f2a20; background: linear-gradient(145deg, #1d1210, #111419 68%); }
.product-card-licensed { border-color: #783039; background: linear-gradient(145deg, #211014, #111419 68%); }
.product-image-link { display: grid; aspect-ratio: 1 / 1; place-items: center; margin: 0 0 1.2rem; overflow: hidden; background: #090a0c; }
.product-image-link img { display: block; width: 100%; height: 100%; object-fit: contain; transition: transform .25s ease, filter .25s ease; }
.product-image-link:hover img, .product-image-link:focus-visible img { transform: scale(1.025); filter: brightness(1.06); }
.product-visual { height: 230px; display: grid; place-items: center; margin-bottom: 1.5rem; font-family: var(--display); font-size: 7rem; overflow: hidden; color: rgba(255,255,255,.8); }
.product-visual.candle { background: radial-gradient(circle, #bb4a1b 0, #40100e 20%, #130b0b 55%); }
.product-visual.decor { background: radial-gradient(circle at 70% 30%, #7987a0 0, #232b3b 13%, #101217 55%); }
.product-visual.books { background: repeating-linear-gradient(90deg, #231011 0 48px, #71131a 50px 54px, #101217 56px 105px); }
.product-card > p { color: var(--blood-light); }
.product-card h3 { min-height: 58px; font-size: 1.15rem; }
.product-card > .product-copy { min-height: 70px; margin: 0 0 1.15rem; color: #adb0b5; font-size: .88rem; line-height: 1.65; letter-spacing: 0; font-weight: 400; }
.collector-heading { scroll-margin-top: 110px; }
.collector-grid { grid-template-columns: repeat(3, minmax(220px, 1fr)); }
.collector-grid .product-image-link { height: 340px; aspect-ratio: auto; padding: 1rem; background: #f4f3f0; }
.collector-grid .product-image-link img { width: 100%; height: 100%; object-fit: contain; }
.product-card > .product-price { min-height: 0; margin: -.25rem 0 1.15rem; color: #dadbdd; font-size: .86rem; letter-spacing: 0; font-weight: 400; }
.product-price strong { color: #fff; }
.price-note { max-width: 760px; margin: 1rem 0 0; color: #858991; font-size: .76rem; line-height: 1.55; }
.product-card .text-link {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  padding: .7rem 1.15rem;
  border: 1px solid var(--blood);
  border-radius: 999px;
  background: var(--blood);
  color: #fff;
  text-decoration: none;
  box-shadow: 0 8px 22px rgba(209, 10, 23, .2);
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.product-card .text-link:hover,
.product-card .text-link:focus-visible {
  border-color: var(--blood-light);
  background: var(--blood-light);
  transform: translateY(-2px);
}
.amazon-collection { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 1.5rem; padding: clamp(1.4rem, 3vw, 2.2rem); border: 1px solid #71313a; background: linear-gradient(120deg, #241014, #111419 68%); }
.amazon-collection h3 { margin: 0 0 .45rem; font-family: var(--display); font-size: clamp(1.8rem, 4vw, 2.7rem); font-weight: 400; }
.amazon-collection p:last-child { max-width: 680px; margin: 0; color: #b9bbc0; }
.amazon-collection .button { flex: 0 0 auto; border-radius: 999px; white-space: nowrap; }
.affiliate-note { max-width: 850px; margin: 2rem 0 0; color: #7f8389; font-size: .78rem; }

.site-footer { padding: clamp(4rem, 8vw, 7rem) clamp(1.25rem, 7vw, 7.5rem) 2rem; background: #070809; border-top: 1px solid var(--line); }
.site-footer > div:first-child { margin-bottom: 3rem; }
.social-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.social-link { display: flex; justify-content: space-between; min-height: 74px; align-items: center; padding: 1rem; border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: transparent; cursor: pointer; text-align: left; font-weight: 600; }
.social-link { text-decoration: none; }
.social-link:hover { background: var(--blood); }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; padding-top: 3rem; color: #696d73; font-size: .75rem; }
.legal-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem 1rem; }
.legal-links a, .legal-links button { color: #9da1a8; text-decoration: none; }
.legal-links a:hover, .legal-links button:hover { color: var(--bone); }
.legal-links button { padding: 0; border: 0; background: transparent; cursor: pointer; font-size: inherit; }
.affiliate-note a { color: #b8bbc1; }
.toast { position: fixed; left: 50%; bottom: 1.5rem; z-index: 50; transform: translate(-50%, 150%); max-width: calc(100% - 2rem); padding: .85rem 1.1rem; background: var(--bone); color: #101114; box-shadow: 0 12px 35px #000; font-size: .85rem; transition: transform .25s ease; }
.toast.show { transform: translate(-50%, 0); }

/* Especial Halloween */
.halloween-page { background: #090a0c; }
.halloween-hero { min-height: 560px; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .55fr); gap: clamp(2.5rem, 7vw, 7rem); align-items: end; padding: clamp(5rem, 9vw, 8rem) clamp(1.25rem, 7vw, 7.5rem); background: radial-gradient(circle at 76% 34%, rgba(196,14,28,.24), transparent 24%), linear-gradient(130deg, #08090b 45%, #18090c); border-bottom: 1px solid #542029; }
.halloween-hero h1 { margin-bottom: 1.5rem; font-size: clamp(4rem, 8.5vw, 8rem); }
.halloween-hero h1 em { display: block; }
.halloween-hero > div > p:last-child { max-width: 720px; color: #bbbcc0; font-size: 1.08rem; }
.selection-note { padding: 1.5rem; border: 1px solid #70232b; background: rgba(10,11,13,.72); }
.selection-note > span { color: var(--blood-light); font-family: var(--display); font-size: 4rem; line-height: 1; }
.selection-note p { margin: .8rem 0 0; color: #bfc0c3; }
.platform-strip { display: flex; gap: 1px; padding: 0 clamp(1.25rem, 7vw, 7.5rem); background: #2b2e33; border-bottom: 1px solid #2b2e33; }
.platform-filter { flex: 1; padding: 1rem; border: 0; background: #101216; color: #b9bbc0; text-align: center; font: inherit; font-size: .78rem; font-weight: 700; letter-spacing: .08em; cursor: pointer; transition: color .2s ease, background .2s ease; }
.platform-filter span { display: inline-grid; min-width: 1.6rem; height: 1.6rem; margin-left: .45rem; place-items: center; border: 1px solid #44484f; border-radius: 999px; color: #92969d; font-size: .7rem; letter-spacing: 0; }
.platform-filter:hover, .platform-filter:focus-visible { color: #fff; background: #191c21; }
.platform-filter.active { color: #fff; background: #471219; box-shadow: inset 0 -3px 0 var(--blood-light); }
.platform-filter.active span { border-color: #a6353e; color: #fff; }
.platform-status { margin: 0; padding: .8rem clamp(1.25rem, 7vw, 7.5rem); border-bottom: 1px solid #2b2e33; background: #0c0e11; color: #8f9298; font-size: .82rem; }
.marathon-spotlight { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(0, 1.1fr); min-height: 300px; border-bottom: 1px solid #70232b; background: radial-gradient(circle at 82% 35%, rgba(196,14,28,.2), transparent 35%), #111216; }
.marathon-spotlight-images { position: relative; min-height: 300px; overflow: hidden; background: #050506; }
.marathon-spotlight-images img { position: absolute; width: 70%; height: 78%; object-fit: cover; border: 1px solid #45484e; box-shadow: 0 20px 50px rgba(0,0,0,.55); filter: saturate(.82) contrast(1.05); }
.marathon-spotlight-images img:first-child { left: 7%; bottom: 7%; z-index: 2; }
.marathon-spotlight-images img:last-child { top: 7%; right: 5%; }
.marathon-spotlight-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(2rem, 5vw, 4rem); }
.marathon-spotlight-copy h2 { margin: .65rem 0 1rem; font-family: var(--display); font-size: clamp(3rem, 6vw, 5.5rem); font-weight: 400; line-height: .9; }
.marathon-spotlight-copy h2 cite { font-style: normal; }
.marathon-spotlight-copy > p:not(.eyebrow) { max-width: 640px; margin-bottom: 1.5rem; color: #b9bbc0; font-size: 1rem; line-height: 1.7; }
.platform-empty { margin: clamp(4rem, 8vw, 7rem) clamp(1.25rem, 7vw, 7.5rem); padding: clamp(2rem, 5vw, 4rem); border: 1px solid #4c2025; background: linear-gradient(145deg, #171015, #0d0f12); text-align: center; }
.platform-empty h2 { max-width: 720px; margin: .5rem auto 1rem; font-family: var(--display); font-size: clamp(2.8rem, 6vw, 5rem); font-weight: 400; line-height: .95; }
.platform-empty > p:not(.eyebrow) { max-width: 650px; margin: 0 auto 1.5rem; color: #b9bbc0; }
.series-feature { display: grid; grid-template-columns: minmax(320px, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; padding: clamp(3.5rem, 7vw, 6rem) clamp(1.25rem, 7vw, 7.5rem); border-bottom: 1px solid #4c2025; background: radial-gradient(circle at 18% 50%, rgba(183,11,24,.12), transparent 34%), linear-gradient(135deg, #111318, #090a0c); }
.series-feature-media { margin: 0; }
.series-feature-media img { display: block; width: 100%; border: 1px solid #393c42; box-shadow: 0 24px 60px rgba(0,0,0,.38); }
.series-feature-media figcaption { padding-top: .65rem; color: #777a80; font-size: .72rem; }
.series-feature-copy { max-width: 720px; }
.series-feature-copy h2 { margin: .8rem 0 1.2rem; font-family: var(--display); font-size: clamp(3.8rem, 7vw, 6.6rem); font-weight: 400; line-height: .82; }
.series-feature-copy h2 small { color: #b9bbc0; font-family: var(--sans); font-size: .22em; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.series-lead { color: #e0e0e2; font-size: 1.08rem; line-height: 1.65; }
.series-feature-copy > p:not(.eyebrow):not(.series-lead) { color: #b7b9bd; line-height: 1.75; }
.series-release { display: flex; flex-wrap: wrap; gap: .35rem 1.25rem; margin: 1.5rem 0; padding: 1rem 0; border-block: 1px solid #35383e; }
.series-release strong { color: #fff; }
.series-release span { color: #9b9ea4; }
.series-actions { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: center; margin-top: 1.8rem; }
.series-actions > span { color: #8d9096; font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.movie-review { padding: clamp(5rem, 9vw, 8rem) clamp(1.25rem, 7vw, 7.5rem); }
.movie-review-separated { border-top: 1px solid #3a181c; background: linear-gradient(180deg, #0c0d10, #090a0c); }
.premiere-watch { border-top-color: #8e812d; background: linear-gradient(180deg, #17160d, #090a0c 42%); }
.premiere-watch .eyebrow { color: #e4d35b; }
.premiere-watch .feature-figure img { border-color: #716b35; filter: saturate(.9) contrast(1.03); }
.review-heading { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(300px, .7fr); gap: 3rem; align-items: end; margin-bottom: 2.5rem; }
.review-heading h2 { margin-bottom: .7rem; font-family: var(--display); font-size: clamp(5rem, 11vw, 9rem); line-height: .82; font-weight: 400; }
.review-heading .review-page-title { margin-bottom: .7rem; font-family: var(--display); font-size: clamp(5rem, 11vw, 9rem); line-height: .82; font-weight: 400; }
.review-lead { max-width: 700px; margin-bottom: 0; color: #b7b9bd; font-size: 1.05rem; }
.movie-data { margin: 0; border-top: 1px solid #3a3d42; }
.movie-data div { display: grid; grid-template-columns: 1fr 1.2fr; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid #3a3d42; }
.movie-data dt { color: #777b82; font-size: .78rem; }
.movie-data dd { margin: 0; font-weight: 600; font-size: .88rem; }
.feature-figure { width: min(100%, 760px); margin: 0 auto clamp(3rem, 6vw, 5rem); }
.feature-figure img { display: block; width: 100%; max-height: 428px; object-fit: cover; border: 1px solid #34373c; filter: saturate(.8) contrast(1.04); }
.feature-figure figcaption { padding-top: .7rem; color: #777a80; font-size: .72rem; }
.marathon-feature { scroll-margin-top: 105px; background: radial-gradient(circle at 50% 8%, rgba(196,14,28,.17), transparent 25%), linear-gradient(180deg, #111216, #090a0c); }
.marathon-heading { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); gap: clamp(2.5rem, 7vw, 7rem); align-items: end; margin-bottom: clamp(3rem, 6vw, 5rem); }
.marathon-heading h2 { margin: .65rem 0 1rem; font-family: var(--display); font-size: clamp(4.5rem, 10vw, 8.5rem); font-weight: 400; line-height: .82; }
.marathon-heading h2 em { color: var(--blood-light); font-style: normal; }
.marathon-heading > div > p:last-child { max-width: 720px; color: #b9bbc0; font-size: 1.05rem; line-height: 1.75; }
.marathon-data { margin: 0; border-top: 1px solid #3a3d42; }
.marathon-data div { display: grid; grid-template-columns: 1fr 1.3fr; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid #3a3d42; }
.marathon-data dt { color: #777b82; font-size: .78rem; }
.marathon-data dd { margin: 0; font-size: .88rem; font-weight: 600; }
.marathon-films { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.5rem, 4vw, 3rem); }
.marathon-film { overflow: hidden; border: 1px solid #393c42; background: #101216; }
.marathon-film figure { margin: 0; }
.marathon-film img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; filter: saturate(.88) contrast(1.04); }
.marathon-film figcaption { padding: .65rem 1.25rem 0; color: #777a80; font-size: .72rem; }
.marathon-film > div { padding: clamp(1.5rem, 4vw, 2.5rem); }
.marathon-number { color: var(--blood-light); font-size: .72rem; font-weight: 700; letter-spacing: .14em; }
.marathon-film h3 { margin: .6rem 0 1rem; font-family: var(--display); font-size: clamp(3rem, 5vw, 4.8rem); font-weight: 400; line-height: .9; }
.marathon-film p:not(.marathon-number) { color: #b9bbc0; line-height: 1.75; }
.marathon-film .button { margin-top: .75rem; }
.marathon-footer { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: 1rem; margin-top: 1rem; }
.marathon-footer .catalog-note, .marathon-footer .content-warning { height: 100%; }
.availability-date { margin-top: .85rem !important; color: #7f848b !important; font-size: .76rem !important; }
.classic-horror { padding: clamp(5rem, 9vw, 8rem) clamp(1.25rem, 7vw, 7.5rem); border-top: 1px solid #552028; background: radial-gradient(circle at 82% 8%, rgba(179,15,29,.14), transparent 22%), #0b0c0f; }
.editorial-feature { padding: clamp(4.5rem, 8vw, 7rem) clamp(1.25rem, 7vw, 7.5rem); border-top: 1px solid #4d2025; }
.editorial-feature-heading { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: clamp(2rem, 6vw, 6rem); align-items: end; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.editorial-feature-heading h2 { margin: .7rem 0 0; font-family: var(--display); font-size: clamp(3.4rem, 7vw, 6.5rem); font-weight: 400; line-height: .9; }
.editorial-feature-heading h2 em { color: var(--blood-light); font-style: normal; }
.editorial-feature-heading > p { margin: 0; color: #aeb1b6; line-height: 1.8; }
.sitges-feature { background: radial-gradient(circle at 12% 12%, rgba(161,23,33,.18), transparent 24%), linear-gradient(130deg, #120b0d, #08090b 68%); }
.editorial-lead-card { display: grid; grid-template-columns: minmax(280px, .82fr) minmax(0, 1.18fr); gap: clamp(1.5rem, 5vw, 4rem); padding: clamp(1.5rem, 4vw, 3.5rem); border: 1px solid #6c2730; background: rgba(13,14,17,.82); }
.editorial-card-mark { min-height: 230px; display: grid; place-content: center; text-align: center; border: 1px solid #6c2730; background: radial-gradient(circle, rgba(210,10,22,.24), transparent 64%); }
.editorial-card-mark span { display: block; color: #ececed; font-family: var(--display); font-size: clamp(5rem, 10vw, 8rem); line-height: .75; }
.editorial-card-mark small { margin-top: 1rem; color: var(--blood-light); font-weight: 800; letter-spacing: .22em; }
.editorial-lead-card > div:last-child { align-self: center; }
.sanguine-gallery { position: relative; margin: 0; align-self: center; overflow: hidden; border: 1px solid #6c2730; background: #07080a; }
.sanguine-main { width: 100%; display: block; aspect-ratio: 16 / 9; object-fit: cover; }
.sanguine-detail { width: 40%; position: absolute; right: .8rem; bottom: 2.4rem; display: block; aspect-ratio: 1.91 / 1; object-fit: cover; border: 2px solid #dec8c8; box-shadow: 0 12px 30px rgba(0,0,0,.55); }
.sanguine-gallery figcaption { padding: .65rem .8rem; color: #88858a; font-size: .65rem; }
.editorial-kicker { margin: 0 0 1rem; color: #c66d76; font-size: .72rem; font-weight: 800; letter-spacing: .12em; }
.editorial-lead-card h3, .director-cards h3 { margin: 0 0 1rem; font-family: var(--display); font-size: clamp(3.4rem, 6vw, 5.6rem); font-weight: 400; line-height: .9; }
.editorial-lead-card p:not(.editorial-kicker):not(.editorial-status), .director-cards article > p:not(.editorial-kicker):not(.editorial-status) { color: #b8bbc0; line-height: 1.75; }
.editorial-status { margin: 1.5rem 0 0; color: #e3d4b2; font-size: .82rem; font-weight: 700; }
.directors-feature { background: radial-gradient(circle at 88% 20%, rgba(116,47,89,.18), transparent 24%), #0c0c10; }
.director-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.director-cards article { min-height: 360px; padding: clamp(1.6rem, 4vw, 3rem); border: 1px solid #42303d; background: linear-gradient(145deg, rgba(55,25,45,.26), rgba(15,16,20,.95)); }
.director-card-featured { grid-column: 1 / -1; }
.director-film-gallery { position: relative; margin: 0 0 2.2rem; overflow: hidden; border: 1px solid #523144; background: #08090b; }
.director-film-main { width: 100%; display: block; aspect-ratio: 16 / 7; object-fit: cover; }
.director-film-detail { width: clamp(145px, 25%, 270px); position: absolute; right: clamp(.8rem, 2.5vw, 2rem); bottom: 2.5rem; display: block; aspect-ratio: 16 / 9; object-fit: cover; border: 3px solid #e6dedf; box-shadow: 0 14px 35px rgba(0,0,0,.55); }
.director-film-gallery figcaption { padding: .65rem .85rem; color: #88858a; font-size: .65rem; }
.director-trailer { margin-top: 1.6rem; }
.editorial-opinion { margin: 1.5rem 0; padding: 1.15rem 1.25rem; border-left: 3px solid var(--blood-light); background: rgba(255,255,255,.035); }
.editorial-opinion strong { color: #eee; font-size: .72rem; letter-spacing: .11em; text-transform: uppercase; }
.editorial-opinion p { margin: .7rem 0 0; color: #c4c5c8; line-height: 1.75; }
.revenge-feature { display: grid; grid-template-columns: minmax(280px, .82fr) minmax(0, 1.18fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.revenge-film-image { margin: 0; border: 1px solid #5c3b49; background: #08090b; }
.revenge-film-image img { width: 100%; display: block; aspect-ratio: 16 / 9; object-fit: cover; }
.revenge-film-image figcaption { padding: .65rem .8rem; color: #88858a; font-size: .65rem; }
.classic-horror-heading { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(280px, .7fr); gap: clamp(2rem, 6vw, 6rem); align-items: end; margin-bottom: clamp(3rem, 6vw, 5rem); }
.classic-horror-heading h2 { margin: .7rem 0 0; font-family: var(--display); font-size: clamp(3.8rem, 7.5vw, 7rem); font-weight: 400; line-height: .88; }
.classic-horror-heading h2 em, .hidden-gem-spotlight h2 em { color: var(--blood-light); font-style: normal; }
.classic-horror-heading > p { margin: 0; color: #aeb1b6; line-height: 1.8; }
.classic-picks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid #303339; background: #303339; gap: 1px; }
.classic-pick { min-height: 330px; position: relative; padding: clamp(1.5rem, 4vw, 3rem); background: linear-gradient(145deg, #111318, #0b0c0f); }
.classic-pick-featured { grid-column: 1 / -1; min-height: 430px; padding-right: min(47vw, 650px); overflow: hidden; background: linear-gradient(125deg, #171015, #08090b 72%); }
.classic-pick-featured > *:not(.classic-pick-image) { position: relative; z-index: 2; }
.classic-pick-image { width: min(45vw, 620px); height: 100%; position: absolute; inset: 0 0 0 auto; margin: 0; }
.classic-pick-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #0d0e12 0, transparent 34%), linear-gradient(0deg, rgba(4,5,7,.72), transparent 42%); pointer-events: none; }
.classic-pick-image img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; filter: saturate(.88) contrast(1.05); }
.classic-pick-image figcaption { position: absolute; right: 1rem; bottom: .8rem; z-index: 1; color: rgba(225,226,230,.68); font-size: .65rem; }
.classic-pick-with-image { min-height: 590px; padding-top: 285px; overflow: hidden; }
.classic-card-image { height: 250px; position: absolute; inset: 0 0 auto; margin: 0; overflow: hidden; background: #06080a; }
.classic-card-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, #111318 0, transparent 40%); pointer-events: none; }
.classic-card-image img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 42% center; filter: saturate(.75) contrast(1.07); }
.classic-card-image figcaption { position: absolute; right: .8rem; bottom: .55rem; z-index: 1; color: rgba(220,223,228,.65); font-size: .62rem; }
.classic-label { color: var(--blood-light); font-size: .72rem; font-weight: 800; letter-spacing: .13em; }
.classic-year { position: absolute; top: 1.5rem; right: 1.7rem; color: #52565d; font-family: var(--display); font-size: 2.3rem; }
.classic-pick h3 { max-width: 680px; margin: 2.1rem 0 1rem; font-family: var(--display); font-size: clamp(2.8rem, 5.5vw, 5.1rem); font-weight: 400; line-height: .9; }
.classic-pick h3 small { display: block; margin-top: .45rem; color: #858990; font-family: inherit; font-size: .46em; }
.classic-pick > p:not(.classic-label):not(.availability-hint) { max-width: 700px; color: #b8bbc0; line-height: 1.75; }
.classic-tags { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1.5rem; }
.classic-tags span { padding: .35rem .65rem; border: 1px solid #41454c; color: #92969d; font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }
.availability-hint { max-width: 720px; margin-top: 1.4rem; padding-left: 1rem; border-left: 2px solid #6d7380; color: #8f939a; font-size: .8rem; line-height: 1.6; }
.hidden-gem-spotlight { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(3rem, 8vw, 8rem); padding: clamp(5rem, 9vw, 8rem) clamp(1.25rem, 7vw, 7.5rem); border-block: 1px solid #654d22; background: radial-gradient(circle at 16% 48%, rgba(153,112,25,.19), transparent 20%), linear-gradient(120deg, #15120b, #090a0c 65%); }
.hidden-gem-spotlight h2 { margin: .8rem 0 1rem; font-family: var(--display); font-size: clamp(4.5rem, 9vw, 8.5rem); font-weight: 400; line-height: .82; }
.hidden-gem-credit { color: #a08755; font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.hidden-gem-media { margin: 2rem 0 0; overflow: hidden; border: 1px solid #66532d; background: #070806; }
.hidden-gem-media img { width: 100%; display: block; aspect-ratio: 2.37 / 1; object-fit: cover; filter: saturate(.84) contrast(1.08); }
.hidden-gem-media figcaption { padding: .65rem .8rem; color: #817b6e; font-size: .65rem; }
.hidden-gem-copy { align-self: center; max-width: 760px; }
.hidden-gem-copy > p:first-child { color: #c0c1c4; font-size: 1.08rem; line-height: 1.85; }
.hidden-gem-copy blockquote { margin: 2rem 0; padding: 1.4rem 0 1.4rem 1.5rem; border-left: 3px solid #a9863e; color: #e2d4b6; font-family: Georgia, serif; font-size: clamp(1.25rem, 2.4vw, 1.9rem); line-height: 1.5; }
.saga-night { padding: clamp(5rem, 9vw, 8rem) clamp(1.25rem, 7vw, 7.5rem); background: #0b0c0f; }
.saga-night > header { max-width: 900px; margin-bottom: 3rem; }
.saga-night h2 { margin: .8rem 0 0; font-family: var(--display); font-size: clamp(3.8rem, 7vw, 6.5rem); font-weight: 400; line-height: .9; }
.saga-night-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.saga-night-grid article { min-height: 320px; padding: clamp(1.6rem, 4vw, 3rem); border: 1px solid #35383e; background: radial-gradient(circle at 88% 15%, rgba(131,149,170,.13), transparent 18%), #111318; }
.saga-night-grid span { color: #899fb7; font-size: .72rem; font-weight: 800; letter-spacing: .13em; }
.saga-night-grid h3 { margin: 2rem 0 1rem; font-family: var(--display); font-size: clamp(3rem, 5vw, 4.8rem); font-weight: 400; line-height: .9; }
.saga-night-grid p { color: #afb2b7; line-height: 1.75; }
.saga-night-grid strong { display: block; margin-top: 1.5rem; color: #e0e1e3; font-size: .85rem; }
.saga-night-grid .saga-featured { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(300px, .9fr) minmax(0, 1.1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.descent-gallery, .saga-gallery { position: relative; margin: 0; overflow: hidden; border: 1px solid #454a51; background: #060708; }
.descent-main, .saga-main { width: 100%; height: auto; display: block; aspect-ratio: 16 / 9; object-fit: cover; }
.descent-detail, .saga-detail { width: 38%; height: auto; position: absolute; right: .8rem; bottom: 2.4rem; display: block; aspect-ratio: 1.54 / 1; object-fit: cover; border: 2px solid #d9dadd; box-shadow: 0 12px 30px rgba(0,0,0,.58); }
.descent-gallery figcaption, .saga-gallery figcaption { padding: .65rem .8rem; color: #858990; font-size: .65rem; }
.descent-saga .content-warning, .jack-box-saga .content-warning { margin-top: 1.4rem; }
.jack-box-saga { background: radial-gradient(circle at 12% 22%, rgba(105,133,153,.16), transparent 25%), #101217 !important; }
.saga-night-grid .jack-box-saga { grid-template-columns: minmax(250px, .68fr) minmax(0, 1.32fr); align-items: start; }
.jack-box-gallery { width: min(100%, 430px); justify-self: center; }
.jack-box-gallery .saga-main { object-position: 58% center; }
.jack-box-gallery .saga-detail { width: 31%; right: .6rem; bottom: 2.1rem; object-position: center 35%; }
.catalog-disclaimer { margin: 1.3rem 0 0; color: #757980; font-size: .76rem; }
.review-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(290px, .65fr); gap: clamp(3rem, 7vw, 7rem); align-items: start; }
.review-copy { max-width: 780px; }
.review-copy section + section { margin-top: 4rem; }
.review-copy h3, .verdict-card h3, .points-card h3 { margin-bottom: 1rem; font-family: var(--display); font-size: 2.6rem; line-height: .95; font-weight: 400; }
.review-copy h2, .verdict-card h2, .points-card h2, .catalog-note h2, .next-film-card h2 { margin-bottom: 1rem; font-family: var(--display); font-size: 2.6rem; line-height: .95; font-weight: 400; }
.verdict-card h2, .catalog-note h2, .next-film-card h2 { margin-top: .8rem; font-size: 2.2rem; }
.points-card h2 { font-size: 2rem; }
.review-copy p:not(.eyebrow) { color: #c3c4c7; font-size: 1.02rem; line-height: 1.8; }
.review-sidebar { position: sticky; top: 118px; display: grid; gap: 1rem; }
.verdict-card, .points-card, .content-warning { padding: 1.4rem; border: 1px solid #393c42; background: #111419; }
.verdict-card { border-color: #7a1b24; background: linear-gradient(145deg, #241014, #101216); }
.verdict-card.verdict-mixed { border-color: #805f2b; background: linear-gradient(145deg, #251d11, #101216); }
.verdict-card.verdict-pending { border-color: #82762f; background: linear-gradient(145deg, #25220f, #101216); }
.verdict-card > span { color: var(--blood-light); font-size: .72rem; font-weight: 700; letter-spacing: .15em; }
.verdict-card h3 { margin-top: .8rem; font-size: 2.2rem; }
.verdict-card p, .content-warning p { margin-bottom: 0; color: #aaaeb4; font-size: .88rem; }
.points-card h3 { font-size: 2rem; }
.points-card ul { margin: 0; padding-left: 1.1rem; color: #b8bbc0; font-size: .88rem; }
.points-card li + li { margin-top: .55rem; }
.content-warning { border-left: 3px solid #d79827; }
.content-warning strong { color: #efbd63; }
.next-film-card { padding: 1.4rem; border: 1px solid #49373d; background: #151216; }
.next-film-card > span { color: var(--blood-light); font-size: .72rem; font-weight: 700; letter-spacing: .15em; }
.next-film-card h3 { margin: .8rem 0 .7rem; font-family: var(--display); font-size: 2.2rem; line-height: .95; font-weight: 400; }
.next-film-card p { margin: 0; color: #aaaeb4; font-size: .88rem; }
.catalog-note { padding: 1.4rem; border: 1px solid #315469; background: linear-gradient(145deg, #10202a, #101216); }
.catalog-note > span { color: #8ec7e8; font-size: .72rem; font-weight: 700; letter-spacing: .15em; }
.catalog-note h3 { margin: .8rem 0 .7rem; font-family: var(--display); font-size: 2.2rem; line-height: .95; font-weight: 400; }
.catalog-note p { margin: 0; color: #aaaeb4; font-size: .88rem; }
.podcast-bridge { padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid #6f222b; background: radial-gradient(circle at 90% 10%, rgba(183,11,24,.2), transparent 32%), #141014; }
.podcast-bridge h3 { max-width: 620px; }
.podcast-bridge p:not(.eyebrow) { margin-bottom: 1.5rem; }
.podcast-bridge .button { width: fit-content; }
.short-bridge { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 280px); gap: clamp(1.5rem, 4vw, 3rem); align-items: center; padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid #34373c; background: #101216; }
.short-bridge h3 { margin-bottom: 1rem; }
.short-bridge .text-link { display: inline-flex; margin-top: .5rem; }
.short-frame { width: 100%; max-width: 280px; margin-inline: auto; }
.short-frame iframe { display: block; width: 100%; aspect-ratio: 9 / 16; border: 1px solid #3f4248; background: #050506; }
.short-bridge-link { grid-template-columns: 1fr; }
.short-bridge-link > div { max-width: 720px; }
.short-bridge-link .button { width: fit-content; margin-top: .5rem; }

/* Información legal y consentimiento */
.legal-page { background: #090a0c; }
.legal-hero { padding: clamp(5rem, 9vw, 8rem) clamp(1.25rem, 7vw, 7.5rem) clamp(3rem, 6vw, 5rem); border-bottom: 1px solid #4a1b20; background: radial-gradient(circle at 82% 30%, rgba(194,12,27,.2), transparent 25%), #090a0c; }
.legal-hero h1 { max-width: 900px; font-size: clamp(4rem, 9vw, 8rem); }
.legal-hero > p:last-child { max-width: 760px; color: #b7b9bd; }
.legal-layout { display: grid; grid-template-columns: minmax(210px, .35fr) minmax(0, 1fr); gap: clamp(2.5rem, 7vw, 7rem); padding: clamp(4rem, 8vw, 7rem) clamp(1.25rem, 7vw, 7.5rem); }
.legal-index { position: sticky; top: 116px; align-self: start; display: grid; border-top: 1px solid var(--line); }
.legal-index a { padding: .8rem 0; border-bottom: 1px solid var(--line); color: #afb1b5; text-decoration: none; }
.legal-index a:hover { color: var(--blood-light); }
.legal-content { max-width: 850px; }
.legal-section { scroll-margin-top: 110px; }
.legal-section + .legal-section { margin-top: 5rem; padding-top: 5rem; border-top: 1px solid var(--line); }
.legal-section h2 { margin-bottom: 1.5rem; font-family: var(--display); font-size: clamp(3rem, 6vw, 5rem); line-height: .9; font-weight: 400; }
.legal-section h3 { margin: 2rem 0 .65rem; font-size: 1.05rem; }
.legal-section p, .legal-section li { color: #b8bbc0; }
.legal-section a { color: #ff6972; }
.legal-highlight { padding: 1.25rem; border-left: 3px solid var(--blood); background: #121519; }
.legal-update { color: #767a80; font-size: .8rem; }

.trailer-button { width: 100%; }
.source-link { color: #8e9299; text-align: center; font-size: .76rem; }
.coming-next { padding: clamp(4rem, 7vw, 6rem) clamp(1.25rem, 7vw, 7.5rem); border-top: 1px solid #3a181c; background: radial-gradient(circle at 82% 50%, rgba(160,10,22,.2), transparent 25%), #100b0c; }
.coming-next h2 { margin-bottom: 1rem; font-family: var(--display); font-size: clamp(3.5rem, 7vw, 6rem); line-height: .9; font-weight: 400; }
.coming-next > p:last-child { max-width: 720px; color: #aeb0b4; }
.compact-footer { padding-top: 1rem; }
.compact-footer .footer-bottom { padding-top: 1rem; }
.compact-footer a { color: #999da3; }

/* El narrador de sombras */
.storyteller-banner { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(2rem, 7vw, 7rem); align-items: center; padding: clamp(4rem, 8vw, 7rem) clamp(1.25rem, 7vw, 7.5rem); border-bottom: 1px solid #55365e; background: radial-gradient(circle at 80% 45%, rgba(105,53,126,.28), transparent 25%), linear-gradient(125deg, #120d16, #08090b 68%); }
.storyteller-banner h2 { margin-bottom: .8rem; font-family: var(--display); font-size: clamp(3.8rem, 7vw, 6.5rem); line-height: .9; font-weight: 400; }
.storyteller-banner p:not(.eyebrow) { max-width: 690px; color: #bfc0c4; }
.storyteller-banner blockquote { margin: 0; padding: 2rem; border: 1px solid #653c70; background: rgba(10,9,13,.72); color: #e8d9ec; font-family: Georgia, serif; font-size: clamp(1.25rem, 2.5vw, 2rem); line-height: 1.45; }
.storyteller-page { --story-accent: #d5232f; --story-deep: #25080b; background: #080708; }
.storyteller-hero { min-height: 600px; display: grid; grid-template-columns: 1.25fr .65fr; gap: clamp(3rem, 8vw, 8rem); align-items: center; padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 8vw, 8rem); position: relative; overflow: hidden; border-bottom: 1px solid #58151b; background: radial-gradient(circle at 78% 35%, rgba(145,9,20,.28), transparent 22%), repeating-linear-gradient(110deg, transparent 0 116px, rgba(255,255,255,.018) 117px 118px), linear-gradient(135deg, #080708 42%, #1c080b); }
.storyteller-hero::before { content: ""; width: 290px; height: 430px; position: absolute; right: 13%; bottom: -145px; border: 1px solid rgba(169,28,38,.36); border-radius: 48% 48% 0 0; background: radial-gradient(ellipse at 50% 25%, rgba(213,35,47,.16), transparent 38%), #070708; box-shadow: 0 0 90px rgba(160,15,27,.18), inset 0 0 45px #000; transform: perspective(600px) rotateY(-5deg); }
.storyteller-hero > * { position: relative; z-index: 1; }
.storyteller-hero h1 { margin-bottom: 1.7rem; font-size: clamp(4.8rem, 10vw, 9rem); text-transform: uppercase; text-shadow: 0 5px 0 #160306, 0 12px 30px rgba(0,0,0,.75); }
.storyteller-hero h1 span { color: #f0e9df; }
.storyteller-hero h1 em { color: var(--story-accent); }
.storyteller-hero > div > p:last-child { max-width: 760px; color: #c3c1c7; font-size: 1.08rem; }
.storyteller-promise { padding: clamp(1.6rem, 3vw, 2.5rem); border: 1px solid #6f2027; background: rgba(8,7,8,.9); box-shadow: 18px 18px 0 rgba(117,8,17,.15); }
.storyteller-promise > span { color: var(--story-accent); font-family: var(--display); font-size: 2rem; letter-spacing: .28em; }
.storyteller-promise strong { display: block; margin: 1rem 0 .7rem; font-family: var(--display); font-size: clamp(2rem, 4vw, 3.2rem); line-height: .95; font-weight: 400; }
.storyteller-promise p { margin: 0; color: #b6b2bb; }
.story-builder { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .8fr); gap: clamp(2rem, 5vw, 5rem); padding: clamp(4rem, 8vw, 7rem) clamp(1.25rem, 7vw, 7.5rem); background: radial-gradient(circle at 75% 28%, rgba(115,8,17,.1), transparent 26%), #09090b; }
.story-controls h2, .story-values h2 { margin-bottom: 2rem; font-family: var(--display); font-size: clamp(3.4rem, 6vw, 5.8rem); line-height: .9; font-weight: 400; }
.story-controls fieldset { margin: 0 0 2rem; padding: 0; border: 0; }
.story-controls legend { margin-bottom: .8rem; font-weight: 800; }
.choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.choice-grid label { cursor: pointer; }
.choice-grid input { position: absolute; opacity: 0; }
.choice-grid span { min-height: 96px; display: flex; flex-direction: column; justify-content: center; padding: 1rem; border: 1px solid #35323a; background: #101116; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.choice-grid input:checked + span { border-color: var(--story-accent); background: var(--story-deep); box-shadow: inset 3px 0 var(--story-accent); transform: translateY(-2px); }
.choice-grid input:focus-visible + span { outline: 2px solid #f27a82; outline-offset: 2px; }
.choice-grid b { color: #f1eaf3; }
.choice-grid small { margin-top: .3rem; color: #99959f; }
.story-selects { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.story-selects label { color: #d8d4dc; font-size: .85rem; font-weight: 750; }
.story-selects select { width: 100%; margin-top: .45rem; padding: .8rem; border: 1px solid #3b3740; background: #111217; color: #f0ede7; }
.story-submit { width: 100%; margin-top: 1.3rem; border-color: #9f1721; background: linear-gradient(90deg, #a3131e, #d5232f); cursor: pointer; text-transform: uppercase; letter-spacing: .06em; }
.story-submit:hover { background: #ec2e3a; }
.family-note { margin: 1.3rem 0 0; padding: 1rem; border-left: 3px solid var(--story-accent); background: #141012; color: #aaa6af; font-size: .82rem; }
.story-chat { min-height: 720px; align-self: start; position: sticky; top: 110px; display: flex; flex-direction: column; border: 1px solid #562027; background: radial-gradient(circle at 50% 0, rgba(145,9,20,.16), transparent 26%), #0c0d10; box-shadow: 20px 20px 0 rgba(104,8,16,.12); }
.chat-heading { display: flex; align-items: center; gap: .8rem; padding: 1rem 1.2rem; border-bottom: 1px solid #342b38; }
.chat-heading div { display: flex; flex-direction: column; }
.chat-heading small { color: #858189; }
.story-orb { width: 13px; height: 13px; border-radius: 50%; background: var(--story-accent); box-shadow: 0 0 18px var(--story-accent); }
.story-messages { flex: 1; display: flex; flex-direction: column; gap: 1rem; max-height: 610px; padding: 1.3rem; overflow-y: auto; }
.chat-message { max-width: 92%; padding: 1rem 1.1rem; border: 1px solid #343039; background: #15151a; color: #d3d0d5; animation: reveal .35s ease; }
.chat-message p { margin-bottom: .9rem; }
.chat-message p:last-child { margin-bottom: 0; }
.chat-message.visitor { align-self: flex-end; border-color: #77222a; background: #261014; }
.story-actions { display: flex; flex-wrap: wrap; gap: .5rem; padding: 1rem; border-top: 1px solid #342b38; }
.story-actions button { flex: 1 1 140px; padding: .7rem; border: 1px solid #702129; background: transparent; color: #e6dce9; cursor: pointer; }
.story-actions button:hover { background: #261014; }
.story-values { padding: clamp(4rem, 8vw, 7rem) clamp(1.25rem, 7vw, 7.5rem); border-top: 1px solid #4d171d; background: #100d0f; }
.story-values > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; border: 1px solid #302d33; background: #302d33; }
.story-values article { min-height: 240px; padding: 1.5rem; background: #0d0e11; }
.story-values article span { color: var(--story-accent); font-family: var(--display); font-size: 2rem; }

.storyteller-page[data-level="small"] { --story-accent: #e2a64c; --story-deep: #271c10; }
.storyteller-page[data-level="kids"] { --story-accent: #8bbf83; --story-deep: #14221a; }
.storyteller-page[data-level="young"] { --story-accent: #889bb8; --story-deep: #121a25; }
.story-values h3 { margin: 2.2rem 0 .7rem; font-size: 1.2rem; }
.story-values article p { color: #a6a3aa; }

/* Chat flotante: El narrador de sombras */
.shadow-widget { --shadow-accent: #d5232f; --shadow-deep: #25080b; position: fixed; right: 22px; bottom: 20px; z-index: 60; }
.shadow-launcher { min-height: 52px; display: flex; align-items: center; gap: .65rem; padding: .75rem 1rem; border: 1px solid #7f2028; border-radius: 999px; background: linear-gradient(135deg, #310c11, #0d0e11); color: #fff; cursor: pointer; box-shadow: 0 12px 36px rgba(0,0,0,.5), 0 0 25px rgba(190,22,35,.2); }
.shadow-launcher > span { color: #ff4a55; font-size: 1.25rem; animation: pulse 2s ease infinite; }
.shadow-label-mobile { display: none; }
.shadow-panel { width: min(390px, calc(100vw - 28px)); height: min(690px, calc(100vh - 110px)); position: absolute; right: 0; bottom: 64px; display: flex; flex-direction: column; overflow: hidden; border: 1px solid color-mix(in srgb, var(--shadow-accent) 55%, #272a30); border-radius: 18px; background: #0e0f13; box-shadow: 0 24px 70px rgba(0,0,0,.65); }
.shadow-panel[hidden] { display: none; }
.shadow-header { height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; position: relative; z-index: 3; border-bottom: 1px solid rgba(255,255,255,.1); background: rgba(10,11,14,.86); backdrop-filter: blur(12px); }
.shadow-header > div:first-child { display: grid; grid-template-columns: 13px 1fr; gap: 0 .7rem; align-items: center; }
.shadow-header > div:first-child strong, .shadow-header > div:first-child small { grid-column: 2; }
.shadow-header small { color: #999ba2; }
.shadow-light { width: 12px; height: 12px; grid-row: 1 / 3; border-radius: 50%; background: var(--shadow-accent); box-shadow: 0 0 16px var(--shadow-accent); }
.shadow-header-actions { display: flex; gap: .3rem; }
.shadow-close, .shadow-back, .shadow-reset { width: 32px; height: 32px; padding: 0; border: 1px solid #3a3d43; border-radius: 50%; background: #15171b; color: #ddd; cursor: pointer; font-size: 1.1rem; line-height: 1; }
.shadow-close { font-size: 1.35rem; }
.shadow-back:disabled { opacity: .28; cursor: default; }
.shadow-close:hover, .shadow-back:not(:disabled):hover, .shadow-reset:hover { border-color: var(--shadow-accent); background: var(--shadow-deep); }
.shadow-scene { height: 115px; flex: 0 0 115px; position: relative; z-index: 1; overflow: hidden; background: radial-gradient(circle at 72% 30%, var(--shadow-accent), transparent 7%), linear-gradient(to top, var(--shadow-deep), #11131a); transition: background .4s ease; }
.shadow-scene::before, .shadow-scene::after { position: absolute; inset: auto 0 0; pointer-events: none; }
.shadow-scene::before { content: "NO MIRES ATRÁS"; top: 25px; color: rgba(239,230,222,.72); font-family: var(--display); font-size: 1.35rem; text-align: center; letter-spacing: .18em; text-shadow: 0 0 18px rgba(213,35,47,.5); }
.shadow-scene::after { content: ""; height: 48px; background: linear-gradient(140deg, transparent 35%, rgba(0,0,0,.55) 36% 55%, transparent 56%), linear-gradient(220deg, transparent 34%, rgba(0,0,0,.75) 35% 62%, transparent 63%); }
.shadow-widget[data-level="small"] { --shadow-accent: #ffb64d; --shadow-deep: #37204d; }
.shadow-widget[data-level="small"] .shadow-scene::before { content: "🎃   👻   🦇"; top: 21px; font-size: 2.4rem; letter-spacing: 1rem; }
.shadow-widget[data-level="small"] .shadow-scene::after { height: 30px; background: radial-gradient(ellipse at 20% 100%, #182a34 0 30%, transparent 32%), radial-gradient(ellipse at 70% 100%, #23364c 0 38%, transparent 40%); }
.shadow-widget[data-level="kids"] { --shadow-accent: #9edc8b; --shadow-deep: #182d31; }
.shadow-widget[data-level="kids"] .shadow-scene { background: radial-gradient(circle at 78% 25%, #dce7bd, transparent 9%), linear-gradient(to top, #23443e, #101a25); }
.shadow-widget[data-level="kids"] .shadow-scene::before { content: "🌲   🐈‍⬛   🏮   🌙"; top: 19px; font-size: 2rem; letter-spacing: .45rem; filter: drop-shadow(0 3px 8px rgba(0,0,0,.45)); }
.shadow-widget[data-level="kids"] .shadow-scene::after { height: 38px; background: radial-gradient(ellipse at 15% 100%, #132d2b 0 35%, transparent 37%), radial-gradient(ellipse at 65% 100%, #1b3834 0 42%, transparent 44%), linear-gradient(8deg, #102526, #1d3734); }
.shadow-widget[data-level="young"] { --shadow-accent: #8499bb; --shadow-deep: #17202b; }
.shadow-widget[data-level="young"] .shadow-scene { background: radial-gradient(circle at 78% 24%, #c1ccda, transparent 9%), linear-gradient(to top, #26384b, #090e17); }
.shadow-widget[data-level="young"] .shadow-scene::before { content: "🌫️   🏚️   🌙"; top: 18px; color: rgba(216,224,235,.72); font-size: 2.15rem; letter-spacing: .7rem; filter: grayscale(.25) drop-shadow(0 4px 10px rgba(0,0,0,.6)); }
.shadow-widget[data-level="young"] .shadow-scene::after { height: 42px; background: linear-gradient(170deg, transparent 0 34%, rgba(126,145,164,.16) 35% 48%, transparent 49%), linear-gradient(to top, #111c29, transparent); }
.shadow-widget[data-level="adult"] { --shadow-accent: #ad2530; --shadow-deep: #260b0e; }
.shadow-widget[data-level="adult"] .shadow-scene { background: radial-gradient(circle at 78% 28%, #8e1a21, transparent 9%), linear-gradient(to top, #3b1418, #07080a); }
.shadow-widget[data-level="adult"] .shadow-scene::before { content: "LA PUERTA YA ESTÁ ABIERTA"; top: 24px; color: rgba(225,211,206,.72); font-family: var(--display); font-size: 1.15rem; letter-spacing: .13em; text-shadow: 0 0 16px rgba(174,20,31,.55); }
.shadow-widget[data-level="adult"] .shadow-scene::after { height: 45px; background: linear-gradient(90deg, rgba(0,0,0,.78), transparent 25% 70%, rgba(0,0,0,.74)), linear-gradient(to top, #18090b, transparent); }
.shadow-conversation { min-height: 0; flex: 1 1 auto; display: flex; flex-direction: column; gap: .75rem; padding: 1rem; overflow-y: auto; position: relative; z-index: 2; background: linear-gradient(rgba(12,13,17,.92), rgba(12,13,17,.98)); }
.shadow-message { max-width: 88%; align-self: flex-start; padding: .8rem .9rem; border: 1px solid #34373d; border-radius: 4px 14px 14px 14px; background: #191a1f; color: #ddd9df; font-size: .88rem; line-height: 1.55; animation: reveal .25s ease; }
.shadow-message.visitor { align-self: flex-end; border-color: color-mix(in srgb, var(--shadow-accent) 55%, #34373d); border-radius: 14px 4px 14px 14px; background: var(--shadow-deep); }
.shadow-typing, .story-typing { color: #aaa6af; font-style: italic; }
.shadow-typing::after, .story-typing::after { content: "…"; display: inline-block; width: 1.4em; overflow: hidden; vertical-align: bottom; animation: typing-dots 1.1s steps(4, end) infinite; }
@keyframes typing-dots { from { width: 0; } to { width: 1.4em; } }
.story-paragraph-reveal { animation: story-paragraph-in .45s ease both; }
@keyframes story-paragraph-in { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
.shadow-options { min-height: 78px; flex: 0 0 auto; display: grid; grid-template-columns: repeat(2, 1fr); gap: .4rem; padding: .7rem; overflow: visible; position: relative; z-index: 3; border-top: 1px solid #2a2d32; background: #111216; }
.shadow-options:empty { display: none; }
.shadow-options button { min-height: 42px; display: flex; flex-direction: column; justify-content: center; padding: .5rem .65rem; border: 1px solid color-mix(in srgb, var(--shadow-accent) 48%, #34373d); background: transparent; color: #ebe7ed; cursor: pointer; font-size: .78rem; text-align: left; }
.shadow-options button:hover, .shadow-options button:focus-visible { background: var(--shadow-deep); }
.shadow-options small { color: #999ca2; font-size: .68rem; }
.shadow-footer { height: 38px; flex: 0 0 38px; display: grid; place-items: center; position: relative; z-index: 3; border-top: 1px solid #292c31; background: #0b0c0f; }
.shadow-footer a { color: #aaa7ad; font-size: .72rem; text-decoration: none; }
.shadow-footer a:hover { color: var(--shadow-accent); }

@media (max-width: 900px) {
  .editorial-feature-heading, .classic-horror-heading, .hidden-gem-spotlight { grid-template-columns: 1fr; }
  .classic-pick-featured { padding-right: clamp(1.5rem, 4vw, 3rem); padding-top: 290px; }
  .classic-pick-image { width: 100%; height: 260px; inset: 0 0 auto; }
  .classic-pick-image::after { background: linear-gradient(0deg, #111318 0, transparent 42%); }
  .storyteller-banner, .storyteller-hero, .story-builder { grid-template-columns: 1fr; }
  .story-chat { position: static; min-height: 600px; }
  .story-values > div { grid-template-columns: 1fr; }
  .hidden-horror-hero, .hidden-horror-intro { grid-template-columns: 1fr; }
  .hidden-film-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .premieres-intro, .premiere-card, .premiere-card.featured-premiere { grid-template-columns: 1fr; }
  .premiere-media { min-height: 300px; border-right: 0; border-bottom: 1px solid #34373c; }
  .premiere-card > .premiere-date { min-height: 170px; border-right: 0; border-bottom: 1px solid #34373c; }
  .radar-grid { grid-template-columns: 1fr; }
  .brand span { display: none; }
  .hero { grid-template-columns: 1fr; }
  .now-playing { max-width: 550px; }
  .film-grid, .series-grid { grid-template-columns: repeat(2, 1fr); }
  .halloween-section { grid-template-columns: 1fr; }
  .marathon-spotlight { grid-template-columns: 1fr; }
  .marathon-spotlight-images { min-height: 245px; }
  .marathon-heading, .marathon-films, .marathon-footer { grid-template-columns: 1fr; }
  .warren-section { grid-template-columns: 1fr; }
  .warren-mark { min-height: 390px; }
  .social-grid { grid-template-columns: repeat(2, 1fr); }
  .podcast-section { grid-template-columns: 1fr; }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .halloween-hero, .bazaar-hero, .series-feature, .review-heading, .review-layout { grid-template-columns: 1fr; }
  .review-sidebar { position: static; }
  .short-bridge { grid-template-columns: 1fr; }
  .legal-layout { grid-template-columns: 1fr; }
  .legal-index { position: static; }
  .podcast-label { padding-bottom: 1rem; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.28); }
}

@media (max-width: 1050px) {
  .site-header { height: 76px; }
  .brand span { display: none; }
  .brand img { width: 58px; height: 56px; }
  .menu-button { display: block; }
  .main-nav { display: none; position: absolute; top: 76px; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; padding: .75rem clamp(1rem, 5vw, 3rem) 1rem; background: #090a0c; border-bottom: 1px solid var(--line); }
  .main-nav.open { display: flex; }
  .main-nav a { padding: .72rem .2rem; border-bottom: 1px solid #202328; font-size: .86rem; }
  .nav-dropdown { display: grid; grid-template-columns: 1fr 42px; gap: 0; }
  .nav-dropdown > a { grid-column: 1; }
  .nav-dropdown-toggle { width: 42px; height: 100%; grid-column: 2; grid-row: 1; border-bottom: 1px solid #202328; border-left: 1px solid #202328; }
  .nav-submenu { min-width: 0; position: static; grid-column: 1 / -1; padding: 0 0 .4rem 1rem; border: 0; background: #0e1013; box-shadow: none; }
  .main-nav .nav-dropdown .nav-submenu { display: none; }
  .main-nav .nav-dropdown.open .nav-submenu { display: grid; }
  .main-nav .nav-submenu a { padding: .65rem .75rem; color: #aeb1b6; font-size: .8rem; }
}

@media (max-width: 680px) {
  .editorial-lead-card, .director-cards, .classic-picks, .saga-night-grid, .saga-night-grid .saga-featured { grid-template-columns: 1fr; }
  .editorial-card-mark { min-height: 170px; }
  .sanguine-detail { width: 42%; bottom: 2.3rem; }
  .saga-night-grid .jack-box-saga { grid-template-columns: 1fr; }
  .jack-box-gallery { width: min(100%, 360px); }
  .jack-box-gallery .saga-detail { width: 28%; bottom: 2rem; }
  .director-film-main { aspect-ratio: 16 / 9; }
  .director-film-detail { width: 38%; bottom: 2.3rem; border-width: 2px; }
  .revenge-feature { grid-template-columns: 1fr; }
  .classic-pick-featured { grid-column: auto; min-height: 650px; padding-top: 245px; }
  .classic-pick-image { height: 220px; }
  .classic-year { position: static; display: block; margin-top: 1rem; }
  .classic-pick h3 { margin-top: 1rem; }
  .shadow-widget { right: 12px; bottom: 12px; }
  .shadow-launcher { min-width: 190px; height: 54px; justify-content: center; padding: 0 1rem; border-color: #8b252d; background: linear-gradient(135deg, #351014, #101114); box-shadow: 0 12px 34px rgba(0,0,0,.52), 0 0 22px rgba(208,35,48,.2); }
  .shadow-launcher > span { font-size: 1.55rem; }
  .shadow-label-desktop { display: none; }
  .shadow-label-mobile { display: inline; font-size: .84rem; letter-spacing: .01em; }
  .shadow-panel { width: calc(100vw - 24px); height: min(78vh, 680px); right: 0; bottom: 64px; }
  .shadow-scene { height: 95px; flex-basis: 95px; }
  .storyteller-hero { min-height: auto; padding-top: 4.5rem; }
  .storyteller-hero h1 { font-size: clamp(4rem, 20vw, 6rem); }
  .storyteller-banner { grid-template-columns: 1fr; }
  .choice-grid, .story-selects { grid-template-columns: 1fr; }
  .story-chat { min-height: 560px; }
  .hidden-horror-hero { min-height: auto; padding-top: 4.5rem; }
  .hidden-horror-hero h1 { font-size: clamp(4.2rem, 22vw, 6.3rem); }
  .hidden-horror-intro { gap: 1.5rem; padding-top: 3.5rem; }
  .hidden-film-grid { grid-template-columns: 1fr; padding-inline: 1rem; }
  .hidden-film-card { min-height: 290px; }
  .premieres-banner { align-items: stretch; flex-direction: column; }
  .premieres-banner .button { width: 100%; }
  .premieres-hero { min-height: 0; }
  .premieres-hero h1 { font-size: clamp(3.5rem, 18vw, 5.4rem); }
  .premieres-intro { gap: 1.5rem; padding-top: 3.5rem; }
  .premiere-list { padding-inline: 1rem; }
  .premiere-media { min-height: 230px; }
  .premiere-copy { padding: 1.5rem; }
  .premiere-copy h2 { font-size: 3.8rem; }
  .amazon-collection { align-items: flex-start; flex-direction: column; }
  .site-header { height: 76px; padding-inline: 1rem; }
  .brand img { width: 58px; height: 56px; }
  .brand span { font-size: .76rem; }
  .menu-button { display: block; }
  .main-nav { display: none; position: absolute; top: 76px; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; padding: .75rem 1rem 1rem; background: #090a0c; border-bottom: 1px solid var(--line); }
  .main-nav.open { display: flex; }
  .main-nav a { padding: .8rem .2rem; border-bottom: 1px solid #202328; }
  .hero { min-height: auto; padding-top: 4.5rem; }
  h1 { font-size: clamp(4.2rem, 22vw, 6.3rem); }
  .section-heading { align-items: start; flex-direction: column; gap: 1rem; }
  .film-grid, .series-grid { grid-template-columns: 1fr; }
  .film-card { min-height: 280px; padding: 1.15rem; }
  .film-card-with-image.crimson { min-height: 310px; }
  .film-card-image { top: 3.45rem; left: 1.15rem; right: 1.15rem; width: calc(100% - 2.3rem); height: 88px; }
  .film-number { left: .8rem; font-size: 6.5rem; }
  .film-card h3 { max-width: 260px; margin-bottom: 1.15rem; font-size: 2.15rem; }
  .warren-mark { min-height: 320px; }
  .episode-list article { grid-template-columns: 58px 1fr 42px; }
  .social-grid { grid-template-columns: 1fr 1fr; }
  .podcast-main { align-items: flex-start; flex-direction: column; gap: 1.5rem; }
  .footer-bottom { flex-direction: column; }
  .legal-links { justify-content: flex-start; }
  .halloween-hero { min-height: auto; padding-top: 4.5rem; }
  .halloween-hero h1 { font-size: clamp(3.8rem, 19vw, 5.7rem); }
  .platform-strip { padding: 0; overflow-x: auto; }
  .platform-filter { flex: 0 0 auto; min-width: max-content; padding-inline: 1.25rem; }
  .platform-status { padding-inline: 1.25rem; }
  .product-grid { grid-template-columns: minmax(0, 470px); }
  .collector-grid .product-image-link { height: 290px; padding: .85rem; }
  .series-feature { padding-top: 3rem; padding-bottom: 3.5rem; }
  .series-feature-copy h2 { font-size: clamp(3.7rem, 17vw, 5.3rem); }
  .movie-review { padding-top: 4rem; }
  .review-heading h2 { font-size: 5.3rem; }
  .review-heading .review-page-title { font-size: 5.3rem; }
  .feature-figure img { min-height: 250px; object-position: center; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
