/* ---------- winner poster template ---------- */
.poster { position: relative; margin: 0; width: 100%; aspect-ratio: var(--ratio, 794 / 1123); background: var(--bg) center / cover no-repeat #2f7a3b; border-radius: 10px; overflow: hidden; box-shadow: 0 6px 22px rgba(0,0,0,.18); container-type: inline-size; font-family: var(--font); }
.poster-photo { position: absolute; left: var(--px); top: var(--py); width: var(--pw); height: var(--ph); object-fit: cover; object-position: center top; border-radius: var(--pr); border: var(--pb) solid #fff; box-sizing: border-box; box-shadow: 2px 2px 8px rgba(0,0,0,.35); }
.poster-photo.empty { display: grid; place-items: center; background: rgba(255,255,255,.25); font-size: 9cqw; }
.poster-text { position: absolute; left: 4%; right: 4%; top: var(--ty); display: flex; flex-direction: column; gap: .3cqw; color: var(--tc); text-shadow: 0 2px 6px rgba(0,0,0,.45); line-height: 1.12; }
.poster-title { font-size: var(--ts); font-weight: 700; letter-spacing: .02em; }
.poster-name { font-size: var(--ns); font-weight: 800; color: var(--ac); letter-spacing: .02em; margin: .4cqw 0; }
.poster-meta { font-size: var(--ms); font-weight: 600; }
.winners.posters .win-grid a { text-decoration: none; display: block; transition: transform .15s; }
.winners.posters .win-grid a:hover { transform: translateY(-3px); }
.winner-poster-band .wpb { display: grid; grid-template-columns: 300px 1fr; gap: 30px; align-items: center; background: var(--green-950); border-radius: 14px; padding: 24px; color: #fff; }
.winner-poster-band .wpb h2 { font-family: var(--display); font-size: clamp(1.4rem, 3vw, 2.4rem); line-height: 1.15; margin: 0; }
@media (max-width: 700px) { .winner-poster-band .wpb { grid-template-columns: 1fr; } }
