/* Controls, editorial cards and native dialogs. */
.button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);padding:10px 24px;border:1px solid var(--border-hover);border-radius:var(--radius-control);background:var(--surface-2);font-weight:700;line-height:1.35;transition:background var(--duration),border-color var(--duration),color var(--duration)}
.button:hover{background:#29292d;border-color:#ffffff60}.button-primary{background:var(--action);border-color:var(--action);color:#fff}.button-primary:hover{background:#bc1620;border-color:#bc1620}
.text-link{position:relative;display:inline-flex;align-items:center;min-height:44px}
.text-link:after{content:'';position:absolute;inset:auto 0 7px;height:1px;background:currentColor;transform:scaleX(.3);transform-origin:left;opacity:.5;transition:transform var(--duration) var(--ease),opacity var(--duration)}
.text-link:is(:hover,:focus-visible):after{transform:scaleX(1);opacity:1}
.card{border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden;background:var(--surface-1);transition:border-color var(--duration),background var(--duration)}
.card:is(:hover,:focus-within){border-color:var(--border-hover)}
.chip,.country-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:26px;padding-inline:8px;border:1px solid var(--border);border-radius:6px;font-size:11px;line-height:1.4;color:var(--secondary)}
.chip{letter-spacing:.025em;text-transform:uppercase}.game-chip img{width:14px;height:14px;filter:grayscale(1)}
/* One dominant story, two supporting photographic panels. */
.news-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:24px;align-items:stretch}
.news-grid.single{grid-template-columns:1fr;max-width:780px}.news-side{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:20px}
.news-card{min-width:0}.news-action{display:flex;width:100%;height:100%;text-align:left}
.news-image{display:block;overflow:hidden;flex-shrink:0}.news-image img{width:100%;height:100%;object-fit:cover;object-position:50% 24%;transition:transform .5s var(--ease)}
.news-copy{display:flex;flex-direction:column;justify-content:center;gap:16px;padding:28px}.editorial-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:12px;letter-spacing:.025em}.editorial-category{color:var(--text);font-weight:700}.editorial-meta time{font-variant-numeric:tabular-nums}
.news-title{font-size:clamp(23px,2.1vw,32px);line-height:1.2;font-weight:700;letter-spacing:-.025em;text-wrap:balance}
.news-excerpt{color:var(--secondary)}
.news-card.featured .news-action{flex-direction:column}.news-card.featured .news-image{aspect-ratio:16/9;width:100%}
.news-card.featured .news-copy{flex:1}
.news-card.compact .news-action{display:grid;grid-template-columns:47% minmax(0,1fr)}
.news-card.compact .news-image{width:100%;height:100%;min-height:190px}
.news-card.compact .news-copy{padding:24px;gap:14px}.news-card.compact .news-title{font-size:clamp(21px,1.8vw,28px)}
@media(hover:hover){.news-card:hover .news-image img{transform:scale(1.025)}}
/* These column ratios keep 16:9 and 9:16 covers at the same height. */
.video-grid{display:grid;grid-template-columns:256fr 81fr 81fr;gap:24px;align-items:stretch}.video-grid .video-card{height:100%}
.video-action{display:flex;flex-direction:column;text-align:left;width:100%;height:100%}
.video-image{display:block;width:100%;flex-shrink:0;position:relative;overflow:hidden;aspect-ratio:16/9;background:var(--bg)}
.video-image>img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.short-card .video-image{aspect-ratio:9/16}.short-card .video-image>img{object-fit:contain}
.play{position:absolute;inset:0;margin:auto;display:grid;place-items:center;width:52px;height:52px;border:1px solid var(--border-hover);border-radius:50%;background:#0a0a0bbd;color:#fff;transition:background var(--duration)}
.video-card:hover .play{background:var(--action)}.video-duration{position:absolute;right:8px;bottom:8px;padding:2px 6px;background:var(--scrim);border-radius:4px;font-size:12px;font-variant-numeric:tabular-nums}
.video-copy{display:flex;flex:1;flex-direction:column;gap:14px;padding:24px;border-top:1px solid var(--border);width:100%}.video-tags{display:flex;gap:12px;flex-wrap:wrap}.video-tags .chip{border:0;padding:0;min-height:20px;font-size:12px;color:var(--secondary);letter-spacing:.035em}.video-tags .game-chip{color:var(--text);font-weight:700}.video-title{font-size:clamp(21px,1.8vw,28px);line-height:1.25}.short-card .video-copy{padding:24px 20px}.short-card .video-title{font-size:clamp(20px,1.65vw,26px)}
.results-heading{margin-bottom:16px}.results-heading h2{font-family:var(--font);font-size:14px;line-height:1.4;color:var(--secondary);letter-spacing:.035em;font-weight:700;text-transform:uppercase}
.results-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.result-card{display:flex;flex-direction:column;justify-content:center;gap:20px;padding:24px;min-height:164px}.result-card:hover{background:var(--surface-2)}.result-meta{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:12px;letter-spacing:.015em}.result-meta>span{color:var(--text);text-align:right}.result-fixture{display:grid;gap:10px;min-width:0}.result-club{display:flex;align-items:center;gap:10px;font-size:18px;line-height:1.2}.result-club img,.result-logo-space{width:28px;height:28px;flex:0 0 28px;object-fit:contain}
.result-teams{display:flex;align-items:center;justify-content:space-between;gap:16px;line-height:1.35}.result-score{font-size:48px;line-height:1;letter-spacing:-.045em;font-variant-numeric:tabular-nums;white-space:nowrap}
.score-win{font-weight:700;color:var(--text)}.score-loss,.score-draw{font-weight:400;color:var(--secondary)}
.match-history{display:flex;justify-content:flex-end;margin-top:12px}
.match-history summary{display:inline-flex;align-items:center;list-style:none;cursor:pointer;min-height:44px;padding:8px 0;border-bottom:1px solid var(--border-hover);font-size:14px;transition:border-color var(--duration),color var(--duration);color:var(--secondary)}
summary::-webkit-details-marker{display:none}.match-history summary:hover{border-color:var(--text);color:var(--text)}.match-history[open]{display:block}.match-history .results-grid{padding-top:16px}
.social-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.social-link{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:48px;padding:10px 16px;border:1px solid var(--border);border-radius:var(--radius-control);font-size:15px;transition:background var(--duration),border-color var(--duration)}
.social-link svg{fill:currentColor;width:20px;height:20px}.social-link:hover{border-color:var(--border-hover);background:var(--surface-2)}
.social-primary{background:var(--action);border-color:var(--action);color:#fff}.social-primary:hover{background:#bc1620;border-color:#bc1620}
.community{padding-block:var(--section-space)}.community.compact{padding-block:48px}.community.compact h2{font-size:26px}.secondary-social{color:var(--secondary);margin-top:12px;font-size:14px}
/* Native dialogs: one surface and focusable close control, type-specific content. */
dialog{width:calc(100% - 48px);max-width:var(--dialog-width);max-height:calc(100dvh - 48px);padding:var(--dialog-padding);color:var(--text);background:var(--surface-1);border:1px solid var(--border-hover);border-radius:var(--radius-large);box-shadow:0 24px 80px #0008;overscroll-behavior:contain;scrollbar-width:thin;scroll-padding-top:84px}
dialog::backdrop{background:#030305bf;backdrop-filter:blur(7px)}
.dialog-header{position:sticky;top:calc(-1*var(--dialog-padding));z-index:3;display:flex;align-items:center;justify-content:space-between;gap:24px;margin:calc(-1*var(--dialog-padding)) calc(-1*var(--dialog-padding)) 24px;padding:20px var(--dialog-padding) 16px;background:var(--surface-1);border-bottom:1px solid var(--border)}
.dialog-header h2{font-size:28px;line-height:1.2}.dialog-header .eyebrow+h2{margin-top:6px}
.dialog-close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid var(--border-hover);border-radius:50%;background:var(--surface-2);transition:background var(--duration)}
.dialog-close svg{width:22px;height:22px}.dialog-close:hover{background:#323237}
dialog p{color:var(--secondary)}dialog p+p{margin-top:16px}
.gallery-stage img{display:block;width:auto;max-width:100%;height:auto;max-height:56dvh;margin-inline:auto;object-fit:contain;border-radius:6px}
.gallery-stage figcaption{font-size:14px;color:var(--secondary);margin-top:16px}
.gallery-thumbnails{display:flex;gap:8px;margin-top:12px;overflow-x:auto;padding:6px 2px;scrollbar-width:thin}
.gallery-thumbnails button{flex:0 0 64px;min-height:48px;border:2px solid transparent;border-radius:8px;overflow:hidden}
.gallery-thumbnails img{width:100%;height:44px;object-fit:cover}.gallery-thumbnails [aria-pressed=true]{border-color:var(--text)}
.gallery-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;font-variant-numeric:tabular-nums}
.gallery-controls button{min-height:48px;padding:10px 18px;border:1px solid var(--border-hover);border-radius:var(--radius-control)}
.gallery-controls button:hover{background:var(--surface-2)}
.story-layout{display:grid;grid-template-columns:.82fr 1fr;gap:32px;align-items:start}
.story-layout>img{width:100%;height:auto;max-height:60dvh;object-fit:cover;border-radius:var(--radius-card)}
.story-layout>img.is-poster{object-fit:contain}
.story-layout>img.is-photo{aspect-ratio:auto;max-height:none;object-fit:contain}
.story-content h2{font-size:clamp(28px,3vw,40px);margin-bottom:20px}
#story-body{max-width:68ch;line-height:1.65}.story-sources{display:flex;flex-direction:column;align-items:start;margin-top:24px;gap:8px}
#story-body p{margin:0 0 1em}#story-body h3{font-size:clamp(22px,2vw,28px);margin:1.5em 0 .65em;line-height:1.25}#story-body h4{font-size:20px;margin:1.3em 0 .6em;line-height:1.3}#story-body ul,#story-body ol{padding-left:1.4em;margin:0 0 1em}#story-body ul{list-style:disc}#story-body ol{list-style:decimal}#story-body li{margin:.3em 0}#story-body li>ul,#story-body li>ol{margin-top:.3em;margin-bottom:.3em}#story-body a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}#story-body a:hover{color:var(--red,#ed1c24)}#story-body strong{font-weight:700}
#video-dialog{max-width:var(--dialog-media-width)}#video-dialog.is-short{max-width:540px}
#video-frame{aspect-ratio:16/9;background:var(--bg)}
#video-dialog.is-short #video-frame{width:min(100%,calc(62dvh * 9/16));aspect-ratio:9/16;margin-inline:auto}
#video-frame iframe{display:block;width:100%;height:100%;border:0}#video-dialog>p{margin-top:16px;font-size:14px}
#video-external{text-decoration:underline;text-underline-offset:4px}
#calendar-dialog{max-width:740px}
.match-detail-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--secondary);font-size:14px;flex-wrap:wrap}
dialog .match-detail-tournament{font-size:18px;color:var(--text);margin-top:10px}
.match-detail-scoreboard{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:28px 0}
.match-detail-scoreboard>div{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;min-width:0;font-size:22px}
.match-detail-scoreboard img{height:56px;width:56px;object-fit:contain}
.match-team img[src="assets/vitality.webp"],.match-detail-scoreboard img[src="assets/vitality.webp"]{transform:scale(1.4)}
.match-team img[src="assets/furia.webp"],.match-detail-scoreboard img[src="assets/furia.webp"],.result-club img[src="assets/furia.webp"]{transform:scale(1.3)}
.match-detail-score{font-size:52px;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.match-detail-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--border);padding-block:18px;gap:16px;margin:0}
.match-detail-facts dt{font-size:13px;color:var(--secondary);margin-bottom:6px}.match-detail-facts dd{margin:0;font-size:16px}
dialog .match-detail-description{font-size:16px;line-height:1.6;margin-top:20px}
.match-map-results{width:100%;border-collapse:collapse;margin-top:24px;font-size:15px;font-variant-numeric:tabular-nums}
.match-map-results caption{text-align:left;font-size:18px;font-weight:700;color:var(--text);margin-bottom:8px}
.match-map-results th,.match-map-results td{padding:10px 0;border-bottom:1px solid var(--border)}
.match-map-results thead th{font-size:12px;color:var(--secondary);font-weight:400}
.match-map-results th:first-child{text-align:left}.match-map-results tbody th{font-weight:400}
.match-map-results td,.match-map-results thead th:not(:first-child){text-align:right;width:76px}
.match-map-results td{color:var(--secondary)}.match-map-results strong{color:var(--text);font-weight:700}
.match-dialog-actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-top:24px}
.match-dialog-actions .button{background:var(--text);color:#111;border-color:var(--text)}.match-dialog-actions .button:hover{background:#fff}
.match-back{margin:-12px 0 12px;color:var(--secondary);font-size:14px}
.match-history-row{display:grid;grid-template-columns:148px 1fr auto;gap:24px;align-items:center;width:100%;text-align:left;padding:20px 8px;border-bottom:1px solid var(--border);transition:background var(--duration)}
.match-history-row:first-child{padding-top:8px}.match-history-row:last-child{border-bottom:0}.match-history-row:hover{background:var(--surface-2)}
.match-history-row .result-score{font-size:32px}
.match-history-date{color:var(--secondary);font-size:14px;line-height:1.4}.match-history-date small{display:block;font-size:12px;margin-top:4px}.match-history-teams{font-size:20px;line-height:1.3}
@media(max-width:1100px){.news-grid{gap:20px}.news-card.compact .news-copy{padding:18px}.video-grid{gap:16px}.video-copy{padding:20px}.short-card .video-copy{padding:20px 16px}.video-title{font-size:23px}.result-card{padding:20px}.result-score{font-size:42px}.result-meta{flex-wrap:wrap;font-size:11px}.result-club{font-size:17px}.results-grid{gap:12px}}
@media(max-width:800px){
 .news-grid{grid-template-columns:1fr}.news-side{grid-template-columns:1fr 1fr;grid-template-rows:auto}
 .news-card.compact .news-action{display:flex;flex-direction:column}.news-card.compact .news-image{height:auto;min-height:0;aspect-ratio:16/9}
 .results-grid{grid-template-columns:1fr}.story-layout{grid-template-columns:1fr}
 .story-layout>img{max-height:240px;aspect-ratio:16/9;object-position:50% 22%}
}
@media(max-width:680px){
 .news-side{grid-template-columns:1fr;gap:16px}.news-copy{padding:20px}
 .news-card.compact .news-action{display:grid;grid-template-columns:43% minmax(0,1fr)}
 .news-card.compact .news-image{height:100%;min-height:170px;aspect-ratio:auto}
 .news-card.compact .news-copy{padding:16px;gap:10px}.news-card.compact .news-title{font-size:22px}
 .news-card.compact .meta{font-size:12px;letter-spacing:0}
 .video-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.video-grid>.video-featured{grid-column:1/-1}.video-copy{gap:10px}
 .video-title{font-size:24px}.short-card .video-title{font-size:21px}.video-copy,.short-card .video-copy{padding:20px 16px}.video-tags .game-chip img{display:none}.result-meta{font-size:12px}
 .social-link{flex:1 0 auto}.social-row{gap:8px}.community.compact{padding-block:40px}
 dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);border-radius:16px}
 .dialog-header{gap:12px;padding-top:16px;margin-bottom:20px}.dialog-header h2{font-size:23px}.dialog-header .eyebrow{font-size:11px}
 .gallery-stage img{max-height:48dvh}.gallery-stage figcaption{font-size:13px;margin-top:12px}.gallery-controls{margin-top:12px}
 .story-layout{gap:20px}.story-layout>img{max-height:180px}.story-content h2{font-size:28px;margin-bottom:16px}
 .match-detail-meta{font-size:13px}.match-detail-scoreboard{gap:12px;padding-block:24px}.match-detail-scoreboard>div{font-size:18px}.match-detail-scoreboard img{width:48px;height:48px}.match-detail-score{font-size:40px}
 .match-detail-facts{gap:12px}.match-detail-facts dt{font-size:12px}.match-detail-facts dd{font-size:15px}
 .match-dialog-actions{align-items:stretch;flex-direction:column;gap:12px}.match-dialog-actions .button{width:100%}
 .match-history-row{grid-template-columns:1fr auto;gap:8px 16px;padding:16px 0}
 .match-history-date{grid-column:1/-1;display:flex;gap:12px;align-items:center}.match-history-date small{margin:0}.match-history-teams{font-size:18px}
}
