/* Cinema theme — poster card */
.cn-poster { position: relative; display: block; color: var(--cinema-text); transition: transform 240ms ease; }
.cn-poster:hover { transform: translateY(-4px); color: var(--cinema-text); }
.cn-poster-image { position: relative; aspect-ratio: 2 / 3; overflow: hidden; border-radius: 8px; background: var(--cinema-bg-elevated); box-shadow: var(--cinema-shadow); transition: box-shadow 240ms ease, transform 240ms ease; }
.cn-poster-image::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(10,14,26,0.7) 0%, transparent 35%); pointer-events: none; opacity: 0; transition: opacity 240ms ease; z-index: 1; }
.cn-poster:hover .cn-poster-image { box-shadow: var(--cinema-shadow), var(--cinema-glow); }
.cn-poster:hover .cn-poster-image::before { opacity: 1; }
.cn-poster-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms ease; }
.cn-poster:hover .cn-poster-image img { transform: scale(1.06); }

.cn-poster-imdb { position: absolute; top: 8px; left: 8px; background: var(--cinema-imdb); color: #000; font-weight: 700; font-size: 11px; padding: 2px 7px; border-radius: 3px; letter-spacing: 0.04em; z-index: 2; display: inline-flex; align-items: center; gap: 4px; }
.cn-poster-imdb::before { content: "★"; font-size: 10px; }
.cn-poster-res { position: absolute; top: 8px; right: 8px; background: var(--cinema-accent); color: #fff; font-weight: 600; font-size: 10px; padding: 3px 7px; border-radius: 3px; z-index: 2; letter-spacing: 0.04em; }
.cn-poster-res.is-fullhd { background: #f2ae3e; color: #000; }
.cn-poster-res.is-zm { background: #6b46c1; }
.cn-poster-new { position: absolute; bottom: 8px; left: 8px; background: var(--cinema-accent); color: #fff; font-size: 10px; font-weight: 600; padding: 2px 8px; border-radius: 3px; z-index: 2; }

.cn-poster-body { padding: 10px 4px 4px; }
.cn-poster-title { font-size: 13px; font-weight: 600; color: var(--cinema-text); margin: 0 0 2px; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cn-poster-meta { font-size: 11px; color: var(--cinema-text-muted); margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Compact variant for spotlight side list */
.cn-poster-row { display: flex; gap: 12px; align-items: center; padding: 8px; border-radius: 8px; transition: background 200ms ease; }
.cn-poster-row:hover { background: rgba(255,255,255,0.04); }
.cn-poster-row .cn-poster-image { flex: 0 0 60px; aspect-ratio: 2 / 3; height: auto; }
.cn-poster-row .cn-poster-body { flex: 1; padding: 0; }
.cn-poster-row .cn-poster-title { font-size: 14px; }
.cn-poster-row .cn-poster-meta { font-size: 12px; }
