/* The North China Times — the video desk (/video, /video/<slug>, /live), in the redesign's Concept A: black bands,
   heavy Anton titles, Courier kickers, Newsreader text, the blue pencil as the one accent. Loaded after nct.css on
   these pages only. Older browsers: grid with fixed fallbacks, no :has, no gap on flex rows that matter. */

.vd-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #ff3b30; box-shadow: 0 0 0 0 rgba(255, 59, 48, .6); animation: vd-pulse 1.8s infinite; vertical-align: 1px; }
@keyframes vd-pulse { 0% { box-shadow: 0 0 0 0 rgba(255, 59, 48, .55); } 70% { box-shadow: 0 0 0 9px rgba(255, 59, 48, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 59, 48, 0); } }
@media (prefers-reduced-motion: reduce) { .vd-dot { animation: none; } }
.vd-tag { display: inline-block; margin: 0; background: #1f3fa6; color: #fff; font-family: var(--mono); font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; padding: 5px 10px 4px; }
.vd-meta { margin: 10px 0 0; font-family: var(--mono); font-size: 12.5px; line-height: 1.6; letter-spacing: 0.02em; color: #a9aeb8; }
.vd-meta a { text-decoration: underline; text-underline-offset: 3px; }
.vd-synth { color: #8c9099; }
.vd-h { font-family: var(--display); font-weight: 400; font-size: 26px; line-height: 1; letter-spacing: 0.02em; text-transform: uppercase; border-bottom: 4px solid currentColor; padding-bottom: 6px; margin: 0 0 12px; }
.vd-note { font-family: var(--serif); font-style: italic; font-size: 15px; line-height: 1.45; color: var(--ink-3); margin: 14px 0 0; }

/* the live strip in the page head */
.vd-head { padding-bottom: 26px; }
.vd-live-pill { display: inline-block; margin-top: 22px; max-width: 100%; background: #fff; color: #121212; padding: 10px 14px; font-family: var(--mono); font-size: 13px; line-height: 1.4; }
.vd-live-pill b { margin: 0 10px 0 6px; letter-spacing: 0.16em; text-transform: uppercase; }
.vd-live-pill__now { font-family: var(--serif); font-weight: 700; font-size: 16px; }
.vd-live-pill__go { display: inline-block; margin-left: 12px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; color: #1f3fa6; }
.vd-live-pill:hover .vd-live-pill__go { color: #121212; }
.vd-live-link { display: inline-block; margin-left: 12px; font-family: var(--mono); font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #fff; }
.vd-live-link .vd-dot { margin-right: 6px; width: 8px; height: 8px; }

/* the player */
.vd-player { position: relative; padding-top: 56.25%; background: #000; }
.vd-player video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: #000; }

/* the featured film */
.vd-feature { padding: 28px 0 34px; }
.vd-feature__grid { display: block; }
.vd-feature__text { margin-top: 18px; }
@media (min-width: 980px) { .vd-feature__grid { display: grid; grid-template-columns: minmax(0, 2.1fr) minmax(0, 1fr); grid-gap: 32px; align-items: end; } .vd-feature__text { margin-top: 0; padding-bottom: 6px; } }
.vd-feature__title { margin: 12px 0 0; font-family: var(--serif); font-weight: 780; font-size: 30px; font-size: clamp(28px, 3vw, 44px); line-height: 1.04; letter-spacing: -0.02em; }
.vd-feature__title a:hover { color: #8ea6ff; }
.vd-feature__dek { margin: 10px 0 0; font-family: var(--serif); font-style: italic; font-size: 19px; line-height: 1.35; color: #c3c7cf; }
.vd-btn { display: inline-block; margin-top: 18px; background: #fff; color: #121212; font-family: var(--mono); font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; padding: 12px 16px 11px; }
.vd-btn svg { width: 14px; height: 14px; vertical-align: -2px; margin-right: 8px; }
.band--black .vd-btn:hover { background: #8ea6ff; color: #121212; }

/* rows: one per series, a shelf of cards */
.vd-row, .vd-latest, .vd-voices { padding: 30px 0 8px; }
.vd-row + .vd-row { padding-top: 10px; }
.vd-row__head { border-bottom: 4px solid currentColor; padding-bottom: 8px; margin-bottom: 16px; }
.vd-row__title { font-family: var(--display); font-weight: 400; font-size: 38px; font-size: clamp(34px, 4vw, 56px); line-height: 0.95; letter-spacing: 0.005em; text-transform: uppercase; margin: 0; }
.vd-row__dek { margin: 6px 0 0; font-family: var(--serif); font-style: italic; font-size: 17px; color: var(--ink-2); }
.vd-row__voices { margin: 4px 0 0; font-family: var(--mono); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); }
.vd-shelf { display: flex; overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory; margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--gutter) 14px; }
.vd-shelf > .vd-card { flex: 0 0 78%; max-width: 420px; margin-right: 18px; scroll-snap-align: start; }
@media (min-width: 760px) { .vd-shelf > .vd-card { flex-basis: 40%; } }
@media (min-width: 1100px) { .vd-shelf { overflow: visible; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-gap: 22px; margin: 0; padding: 0 0 14px; } .vd-shelf > .vd-card { max-width: none; margin: 0; } }
.vd-grid { display: grid; grid-template-columns: minmax(0, 1fr); grid-gap: 26px 22px; }
@media (min-width: 700px) { .vd-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .vd-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .vd-grid .vd-card--big { grid-column: span 2; grid-row: span 2; } }

/* a card */
.vd-card { display: block; color: inherit; }
.vd-card__poster { position: relative; display: block; padding-top: 56.25%; background: #000; overflow: hidden; }
.vd-card__poster img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.vd-card:hover .vd-card__poster img { transform: scale(1.03); }
.vd-card__play { position: absolute; left: 0; bottom: 0; width: 48px; height: 48px; background: #1f3fa6; color: #fff; text-align: center; }
.vd-card__play svg { width: 22px; height: 22px; margin-top: 13px; }
.vd-card__dur { position: absolute; left: 48px; bottom: 0; height: 48px; line-height: 48px; padding: 0 12px; background: #121212; color: #fff; font-family: var(--mono); font-size: 12.5px; font-weight: 700; }
.vd-card__series { display: block; margin-top: 12px; font-family: var(--mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent); }
.band--black .vd-card__series { color: #8ea6ff; }
.vd-card__title { display: block; margin-top: 5px; font-family: var(--serif); font-weight: 760; font-size: 20px; line-height: 1.15; letter-spacing: -0.015em; }
.vd-card--big .vd-card__title { font-size: 28px; font-size: clamp(24px, 2.4vw, 34px); }
.vd-card:hover .vd-card__title { color: var(--accent); }
.band--black .vd-card:hover .vd-card__title { color: #8ea6ff; }
@media (prefers-reduced-motion: reduce) { .vd-card__poster img { transition: none; } }

/* the voices */
.vd-voices { padding-bottom: 40px; }
.vd-voices__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); grid-gap: 0 26px; }
@media (min-width: 700px) { .vd-voices__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .vd-voices__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.vd-voice { padding: 12px 0 14px; border-bottom: 1px solid var(--hair); }
.vd-voice__name { margin: 0; font-family: var(--serif); font-weight: 760; font-size: 20px; }
.vd-voice__role { margin: 2px 0 8px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-3); }
.vd-voice audio { width: 100%; height: 36px; }

/* a film's page */
.vd-stage { padding: 20px 0 28px; }
.vd-stage__top { margin: 0 0 12px; }
.vd-stage__title { margin: 18px 0 0; font-family: var(--serif); font-weight: 760; font-size: 30px; font-size: clamp(28px, 3.6vw, 48px); line-height: 1.04; letter-spacing: -0.02em; }
.vd-stage__dek { margin: 10px 0 0; font-family: var(--serif); font-style: italic; font-size: 19px; color: #c3c7cf; }
.vd-body { padding-top: 30px; padding-bottom: 30px; }
@media (min-width: 980px) { .vd-body { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); grid-gap: 40px; align-items: start; } }
.vd-transcript__list { list-style: none; margin: 0; padding: 0; }
.vd-transcript__list li { position: relative; padding: 10px 0 10px 64px; border-bottom: 1px solid var(--hair); font-family: var(--serif); font-size: 18px; line-height: 1.5; }
.vd-transcript__list li.is-on { background: var(--accent-tint); }
.vd-t { position: absolute; left: 0; top: 12px; border: 0; background: none; padding: 0 6px 0 0; font-family: var(--mono); font-size: 12.5px; font-weight: 700; color: var(--accent); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.vd-speaker { display: block; font-family: var(--mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-2); }
.vd-sources { margin-top: 0; }
.vd-more { margin-top: 10px; padding-bottom: 30px; }

/* the live channel */
.vd-live { background: #121212; color: #fff; padding: 22px 0 36px; }
.vd-live__grid { display: block; }
@media (min-width: 1040px) { .vd-live__grid { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr); grid-gap: 30px; align-items: start; } }
.vd-live__screen { position: relative; padding-top: 56.25%; background: #000; overflow: hidden; }
.vd-live__video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: #000; }
.vd-live__screen:-webkit-full-screen { padding-top: 0; width: 100%; height: 100%; }
.vd-live__screen:fullscreen { padding-top: 0; width: 100%; height: 100%; }
.vd-live__bug { position: absolute; left: 12px; top: 12px; background: rgba(18, 18, 18, .82); color: #fff; font-family: var(--mono); font-size: 12px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; padding: 6px 10px 5px; }
.vd-live__bug .vd-dot { margin-right: 7px; width: 8px; height: 8px; }
.vd-live__next { position: absolute; left: 0; bottom: 12%; max-width: 80%; }
.vd-live__next[hidden] { display: none; }
.vd-live__next-k { display: inline-block; background: #1f3fa6; color: #fff; font-family: var(--mono); font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; padding: 6px 10px; }
.vd-live__next-t { display: block; background: #fff; color: #121212; font-family: var(--serif); font-weight: 760; font-size: 18px; line-height: 1.2; padding: 8px 12px; }
.vd-live__top { margin: 0; padding: 0 0 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: #a9aeb8; }
.vd-live__top b { margin: 0 12px 0 8px; color: #fff; letter-spacing: 0.2em; }
.vd-live__controls { padding-top: 8px; text-align: right; }
.vd-live__btn { margin-left: 6px; margin-top: 6px; border: 1px solid #2a2e36; background: #1b1e24; color: #fff; font-family: var(--mono); font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 8px 11px; cursor: pointer; }
.vd-live__btn:hover, .vd-live__btn:focus-visible { background: #1f3fa6; }
.vd-live__btn[data-sound][aria-pressed="false"] { background: #fff; color: #121212; }
.vd-live__screen.needs-tap::after { content: 'Tap to watch live'; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); background: #1f3fa6; color: #fff; font-family: var(--mono); font-weight: 700; font-size: 14px; letter-spacing: 0.1em; text-transform: uppercase; padding: 14px 18px; pointer-events: none; }
.vd-live__nojs { position: absolute; left: 0; right: 0; top: 40%; text-align: center; padding: 0 20px; font-family: var(--serif); color: #fff; }
.vd-live__nojs a { text-decoration: underline; }
.vd-live__now { margin-top: 8px; }
.vd-live__title { margin: 10px 0 0; font-family: var(--serif); font-weight: 760; font-size: 28px; font-size: clamp(26px, 3vw, 42px); line-height: 1.06; letter-spacing: -0.02em; }
.vd-progress { margin-top: 14px; height: 4px; background: #2a2e36; }
.vd-progress span { display: block; height: 4px; background: #8ea6ff; transition: width 1s linear; }
.vd-live__rail { margin-top: 28px; }
@media (min-width: 1040px) { .vd-live__rail { margin-top: 0; } }
.vd-live .vd-h { color: #fff; }
.vd-upnext { margin-bottom: 26px; }
.vd-upnext__item { display: block; overflow: hidden; }
.vd-upnext__item img { float: left; width: 46%; height: auto; margin-right: 14px; background: #000; }
.vd-upnext__series { display: block; font-family: var(--mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #8ea6ff; }
.vd-upnext__title { display: block; margin-top: 4px; font-family: var(--serif); font-weight: 760; font-size: 19px; line-height: 1.15; }
.vd-upnext time { display: block; margin-top: 6px; font-family: var(--mono); font-size: 12.5px; color: #a9aeb8; }
.vd-tz { font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em; color: #a9aeb8; vertical-align: 4px; margin-left: 6px; }
.vd-schedule__list { list-style: none; margin: 0; padding: 0; }
.vd-schedule__list li { display: table; width: 100%; padding: 9px 0; border-bottom: 1px solid #2a2e36; }
.vd-schedule__list time { display: table-cell; width: 64px; font-family: var(--mono); font-size: 13px; font-weight: 700; color: #a9aeb8; vertical-align: top; padding-top: 2px; }
.vd-schedule__list span { display: table-cell; font-family: var(--serif); font-size: 17px; line-height: 1.3; }
.vd-schedule__list em { display: block; font-style: normal; font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: #8c9099; margin-top: 2px; }
.vd-schedule__list li.is-now time { color: #8ea6ff; }
.vd-onair { display: inline-block; margin-left: 8px; background: #ff3b30; color: #fff; font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; padding: 2px 6px 1px; vertical-align: 2px; }
.vd-live .vd-note { color: #a9aeb8; }
.vd-live a:hover { color: #8ea6ff; }
@media (max-width: 600px) { .vd-live__top span:last-child { display: none; } }
