.home-winners { --winner-surface: #fff; --winner-ink: #303633; --winner-muted: #707570; margin: 18px 0; color: var(--winner-ink); }
.home-winners.is-dark { --winner-surface: #313131; --winner-ink: #f4f4f4; --winner-muted: #b8b8b8; }
.home-winners-header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.home-winners-header > div:first-child { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 8px; min-width:0; }
.home-winners-header h2 { margin:0; font-size:1.13em; font-weight:600; line-height:1.4; }
.home-winners-header p { margin:0; font-size:.85em; line-height:1.4; color:var(--winner-muted); }
.home-winners-controls { display:flex; gap:7px; flex-shrink:0; }
.home-winners-controls button { display:grid; place-items:center; width:30px; height:30px; border:0; border-radius:7px; background:var(--winner-surface); color:var(--winner-ink); font-size:14px; cursor:pointer; }
.home-winners-controls button span { font-size:24px; line-height:1; }
.home-winners-controls button:disabled { opacity:.4; cursor:default; }
.home-winners-track { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#b7b9b7 transparent; padding:0 0 8px; }
.home-winner-card { display:flex; align-items:center; gap:12px; flex:0 0 calc(50% - 6px); min-width:0; padding:12px; border:1px solid #92929224; border-left:3px solid #bd8e2d; border-radius:12px; background:var(--winner-surface); box-shadow:0 3px 4px #00000009; scroll-snap-align:start; }
.home-winner-photo { display:grid; place-items:center; position:relative; width:80px; height:96px; flex:0 0 80px; overflow:hidden; border-radius:9px; background:#455750; color:#fff; }
.home-winner-photo span { font-size:1.2em; font-weight:600; }
.home-winner-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.home-winner-copy { min-width:0; flex:1; }
.home-winner-copy h3 { margin:0; font-size:.9em; line-height:1.3; font-weight:500; overflow-wrap:anywhere; }
.home-winner-copy h3 > span { color:#b98a29; font-size:.9em; }
.home-winner-campaign { display:block; margin-top:3px; color:var(--winner-ink); font-size:.74em; line-height:1.4; overflow-wrap:anywhere; }
.home-winner-meta { display:flex; flex-wrap:wrap; align-items:center; gap:5px 9px; margin-top:7px; }
.home-winner-meta strong { padding:2px 6px; border-radius:5px; background:#92929212; font-size:.75em; letter-spacing:.035em; font-weight:600; }
.home-winner-meta time { color:var(--winner-muted); font-size:.66em; }
.home-winner-video { display:inline-flex; align-items:center; gap:5px; margin-top:8px; padding:4px 8px; border:1px solid #bd8e2d66; border-radius:6px; background:transparent; color:var(--winner-ink); font:inherit; font-size:.65em; cursor:pointer; }
.home-winner-video > span { color:#b98a29; }
.home-winners button:focus-visible, .home-winners a:focus-visible { outline:2px solid #bd8e2d; outline-offset:2px; }
.winner-video-dialog { width:calc(100% - 28px); max-width:760px; max-height:90dvh; padding:14px; border:1px solid #ffffff33; border-radius:14px; background:#161c19; color:#fff; }
.winner-video-dialog::backdrop { background:#000a; backdrop-filter:blur(7px); }
.winner-video-dialog header { display:flex; align-items:center; gap:12px; justify-content:space-between; margin-bottom:12px; }
.winner-video-dialog h2 { margin:0; font-size:16px; line-height:1.4; }
.winner-video-dialog button { width:36px; height:36px; flex-shrink:0; border:0; border-radius:50%; background:#ffffff18; color:#fff; cursor:pointer; }
.winner-video-dialog button span { font-size:24px; line-height:1; }
.winner-video-dialog video { display:block; width:100%; max-height:72dvh; background:#000; border-radius:8px; }
html.winner-video-open, html.winner-video-open body { overflow:hidden; }
@media(max-width:768px) { .home-winner-card { flex-basis:100%; } }
@media(max-width:380px) { .home-winner-photo { width:64px; flex-basis:64px; height:86px; } .home-winner-card { padding:10px; gap:10px; } .home-winners-header h2 { font-size:1em; } .home-winners-header p { font-size:.72em; } }
