:root {
  --ink:#101820;
  --paper:#f4f1e9;
  --white:#fffdf8;
  --red:#d94b3d;
  --panel:#faf8f2;
  --soft:#eee9dd;
  --secondary:#1c6674;
  --link:#075ca8;
  --on-accent:#fff;
  --line:rgba(16,24,32,.16);
  --muted:#65717a;
  --serif:"Newsreader",Georgia,serif;
  --sans:"DM Sans",Arial,sans-serif;
}
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); }
a { color:inherit; }
.skip-link { position:fixed; left:1rem; top:-5rem; z-index:100; padding:.55rem .8rem; background:var(--white); }
.skip-link:focus { top:.5rem; }
.site-header {
  min-height:60px;
  padding:0 clamp(.75rem,2.2vw,2.4rem);
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:color-mix(in srgb,var(--paper) 96%,transparent);
  border-bottom:1px solid var(--line);
}
.brand { display:inline-flex; align-items:center; gap:.58rem; text-decoration:none; }
.brand-mark { width:41px; height:34px; display:block; flex:0 0 auto; overflow:hidden; color:transparent; background:url("assets/logo-mark.svg?v=ck1") center/contain no-repeat; font-size:0; }
html[data-theme="midnight"] .brand-mark,
html[data-theme="royal"] .brand-mark,
html[data-theme="digital"] .brand-mark { background-image:url("assets/logo-mark-dark.svg?v=ck1"); }
.brand strong { display:block; font:650 1rem var(--serif); line-height:1; }
.header-actions { display:flex; align-items:center; gap:.5rem; }
.selector-group { display:flex; align-items:center; gap:.3rem; flex:0 0 auto; }
.region-switcher { height:30px; display:flex; align-items:center; border:1px solid var(--line); background:var(--soft); }
.region-switcher span { padding:0 .42rem; color:var(--muted); font-size:.54rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.region-switcher select { width:148px; height:100%; padding:0 1.4rem 0 .45rem; border:0; border-left:1px solid var(--line); color:var(--ink); background:var(--white); font:700 .61rem var(--sans); cursor:pointer; outline:none; }
.region-switcher select:focus-visible { box-shadow:inset 0 0 0 2px var(--red); }
.account-button { padding:.32rem .62rem; border:1px solid var(--red); color:var(--on-accent); background:var(--red); font:700 .61rem var(--sans); letter-spacing:.04em; cursor:pointer; text-transform:uppercase; }
.account-button:hover { filter:brightness(.92); }
.account-button[data-authenticated="true"] { max-width:150px; overflow:hidden; color:var(--ink); background:var(--soft); border-color:var(--line); text-overflow:ellipsis; white-space:nowrap; text-transform:none; }
.theme-lab-link { padding:.3rem .5rem; border:1px solid var(--line); color:var(--ink); font-size:.61rem; font-weight:700; letter-spacing:.06em; text-decoration:none; text-transform:uppercase; }
.theme-lab-link:hover { color:var(--on-accent); background:var(--red); border-color:var(--red); }
.language-switcher { height:30px; display:flex; align-items:center; border:1px solid var(--line); background:var(--soft); }
.language-switcher span { padding:0 .42rem; color:var(--muted); font-size:.54rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.language-switcher select { width:92px; height:100%; padding:0 1.25rem 0 .42rem; border:0; border-left:1px solid var(--line); color:var(--ink); background:var(--white); font:700 .61rem var(--sans); cursor:pointer; outline:none; }
.language-switcher select:focus-visible { box-shadow:inset 0 0 0 2px var(--red); }
.selector-icon { min-width:30px; padding:0 !important; text-align:center; font-size:.78rem !important; letter-spacing:0 !important; }
.selector-icon svg { width:13px; height:13px; display:block; margin:auto; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.compact-switcher select { border-left:1px solid var(--line); }
.header-source { color:var(--muted); font-size:.67rem; font-weight:700; text-decoration:none; text-transform:uppercase; letter-spacing:.08em; }
.header-source:hover { color:var(--red); }
.ratings-page { padding:.55rem clamp(.55rem,2.2vw,2.4rem) .75rem; }
.ratings-topline { min-height:24px; display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.3rem; }
.ratings-topline p { margin:0; color:var(--red); font-size:.62rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
#back-button { padding:.22rem .48rem; border:1px solid var(--line); color:var(--ink); background:transparent; font:700 .63rem var(--sans); cursor:pointer; }
#back-button:hover { color:var(--paper); background:var(--ink); }
.ratings-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); border:1px solid var(--line); border-top:3px solid var(--ink); background:var(--panel); }
.rating-column { min-width:0; border-right:1px solid var(--line); }
.rating-column:nth-child(6n) { border-right:0; }
.country-grid .rating-column:nth-child(n+7) { border-top:3px solid var(--red); }
.rating-column h2 { min-height:40px; margin:0; padding:.42rem .5rem; display:flex; align-items:center; border-bottom:1px solid var(--line); background:var(--soft); font:700 .72rem/1.2 var(--sans); }
.rating-column h2 > span, .rating-column h2 button span { margin-left:.28rem; color:var(--red); font-variant-numeric:tabular-nums; }
.rating-column h2 button { width:100%; padding:0; border:0; color:inherit; background:transparent; font:inherit; text-align:left; cursor:pointer; }
.rating-column h2 button:hover { color:var(--red); text-decoration:underline; }
.rating-column ol { margin:0; padding:.22rem .42rem .28rem 1.62rem; }
.rating-column li { padding-left:.02rem; color:#66727a; font-size:.66rem; line-height:1.68; }
.rating-column li::marker { color:#8a949b; font-variant-numeric:tabular-nums; }
.rating-column a { display:grid; grid-template-columns:minmax(0,1fr) 4ch; gap:.3rem; color:var(--ink); text-decoration:none; }
.rating-column a:hover .rank-name { color:var(--red); text-decoration:underline; }
.rank-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rating-column strong { width:4ch; display:block; text-align:right; font:700 .66rem/1.68 Consolas,"Courier New",monospace; }
.empty-list { min-height:178px; margin:0; padding:.65rem .55rem; color:var(--muted); font-size:.65rem; }
.country-grid .rating-column h2 { min-height:46px; padding:.5rem .58rem; font-size:.84rem; }
.country-grid .rating-column ol { padding:.3rem .5rem .38rem 1.78rem; }
.country-grid .rating-column li { font-size:.78rem; line-height:1.78; }
.country-grid .rating-column a { gap:.38rem; }
.country-grid .rating-column strong { font-size:.78rem; line-height:1.78; }
.country-grid .empty-list { min-height:205px; font-size:.76rem; }
.main-dashboard { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:.65rem; margin-top:.65rem; align-items:start; }
.main-dashboard[hidden] { display:none; }
.media-layer { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,360px); gap:.65rem; align-items:start; }
.tournaments-panel, .video-panel, .news-panel, .announcements-panel { min-width:0; border:1px solid var(--line); background:var(--panel); }
.panel-heading { min-height:44px; padding:.4rem .6rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; border-top:3px solid var(--ink); }
.panel-heading h2 { margin:.06rem 0 0; font:650 1.05rem/1.1 var(--serif); }
.title-date { color:var(--red); font:700 .62rem/1 var(--sans); letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
.panel-heading > span { color:var(--muted); font-size:.6rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.panel-source { color:var(--muted); font-size:.58rem; font-weight:700; text-decoration:none; text-transform:uppercase; letter-spacing:.08em; }
.panel-source:hover { color:var(--red); }
.eyebrow { margin:0; color:var(--red); font-size:.56rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.tournament-table-wrap { overflow-x:auto; }
.tournament-table { width:100%; table-layout:fixed; border-collapse:collapse; font-size:.68rem; white-space:nowrap; }
.tournament-table th { height:29px; padding:0 .3rem; color:var(--on-accent); background:var(--secondary); font-size:.58rem; letter-spacing:.025em; line-height:1.15; text-align:left; text-transform:uppercase; }
.tournament-table td { height:32px; padding:0 .3rem; overflow:hidden; border-top:1px solid var(--line); border-right:1px solid var(--line); font-variant-numeric:tabular-nums; line-height:1.15; text-overflow:ellipsis; }
.tournament-table th:nth-child(n+3), .tournament-table td:nth-child(n+3) { text-align:center; }
.tournament-table td:last-child, .tournament-table th:last-child { border-right:0; text-align:center; }
.tournament-table a { color:var(--link); font-weight:700; text-decoration:none; }
.tournament-table a:hover { color:var(--red); text-decoration:underline; }
.tournament-table .empty-slot td { height:32px; padding:0; border-right:0; color:transparent; }
.news-panel { border-top:3px solid var(--ink); }
.news-split { display:grid; grid-template-columns:minmax(245px,.82fr) minmax(0,1.18fr); }
.news-stream { min-width:0; }
.news-heading { min-height:48px; padding:.42rem .6rem; display:flex; align-items:center; border-bottom:1px solid var(--line); }
.news-heading h2 { margin:.05rem 0 0; font:650 1.05rem/1.1 var(--serif); }
.news-heading h2 a { text-decoration:none; }
.news-heading h2 a:hover { color:var(--red); }
.news-list { display:flex; flex-direction:column; }
.news-empty { margin:0; padding:1rem .7rem; color:var(--muted); font-size:.7rem; }
.news-list a { min-width:0; min-height:38px; padding:.34rem .6rem; display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:.55rem; border-bottom:1px solid var(--line); font-size:.72rem; font-weight:700; line-height:1.2; text-decoration:none; }
.news-list a:last-child { border-bottom:0; }
.news-list a:hover { color:var(--red); background:var(--soft); }
.news-list time { color:var(--muted); font-size:.6rem; font-weight:600; font-variant-numeric:tabular-nums; }
.news-list b { color:var(--red); }
.photo-news { position:relative; min-height:276px; order:-1; overflow:hidden; border-right:1px solid var(--line); color:#fff; background:#102131; text-decoration:none; }
.photo-news::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 30%,rgba(5,15,24,.9) 100%); }
.photo-news img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .25s ease; }
.photo-news:hover img { transform:scale(1.025); }
.photo-news-overlay { position:absolute; z-index:1; inset:auto .8rem .72rem; display:grid; gap:.2rem; }
.photo-news-overlay small { color:#fff; font-size:.55rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.photo-news-overlay strong { font:650 1.12rem/1.05 var(--serif); text-wrap:balance; }
.photo-news-overlay time { color:rgba(255,255,255,.78); font-size:.56rem; font-variant-numeric:tabular-nums; }
.video-panel { width:100%; max-width:360px; justify-self:end; overflow:hidden; border-top:3px solid var(--red); background:var(--panel); }
.video-heading { min-height:36px; padding:.35rem .55rem; display:flex; align-items:center; justify-content:space-between; gap:.6rem; border-bottom:1px solid var(--line); }
.video-heading span { color:var(--red); font-size:.56rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.video-heading strong { font:650 .82rem var(--serif); }
.video-frame { aspect-ratio:16/9; background:#000; }
.video-panel iframe { width:100%; height:100%; display:block; border:0; }
.video-caption { min-height:37px; padding:.34rem .55rem; display:flex; align-items:center; border-top:1px solid var(--line); text-decoration:none; }
.video-caption strong { overflow:hidden; font-size:.62rem; text-overflow:ellipsis; white-space:nowrap; }
.video-caption:hover strong { color:var(--red); }
.announcements-panel { border-top:3px solid var(--red); }
.announcements-panel .panel-heading { border-top:0; }
.announcement-table-wrap { overflow-x:auto; }
.announcement-table { width:100%; table-layout:fixed; border-collapse:collapse; font-size:.69rem; white-space:nowrap; }
.announcement-table th { height:29px; padding:0 .32rem; color:var(--on-accent); background:var(--red); font-size:.58rem; letter-spacing:.025em; line-height:1.15; text-align:left; text-transform:uppercase; }
.announcement-table td { height:32px; padding:0 .32rem; overflow:hidden; border-top:1px solid var(--line); font-variant-numeric:tabular-nums; line-height:1.15; text-overflow:ellipsis; }
.announcement-table td:first-child { font-weight:700; }
.announcement-table a { color:var(--link); font-weight:700; text-decoration:none; }
.announcement-table td:first-child a { color:var(--link); }
.announcement-table a:hover { color:var(--red); text-decoration:underline; }

.auth-dialog { width:min(430px,calc(100% - 1.4rem)); padding:0; color:var(--ink); background:var(--white); border:1px solid var(--line); border-top:4px solid var(--red); box-shadow:0 24px 80px rgba(0,0,0,.28); }
.auth-dialog::backdrop { background:rgba(9,16,22,.58); backdrop-filter:blur(3px); }
.auth-close { position:absolute; top:.45rem; right:.55rem; width:32px; height:32px; border:0; color:var(--muted); background:transparent; font:400 1.5rem/1 var(--sans); cursor:pointer; }
.auth-close:hover { color:var(--red); }
.auth-entry, .auth-account { padding:1.55rem 1.55rem 1.35rem; }
.auth-heading { display:flex; align-items:center; gap:.75rem; padding-right:2rem; }
.auth-heading .brand-mark { flex:0 0 auto; }
.auth-heading h2, .auth-profile h2 { margin:0; font:650 1.55rem/1 var(--serif); }
.auth-heading p, .auth-profile p { margin:.25rem 0 0; color:var(--muted); font-size:.7rem; line-height:1.35; }
.auth-tabs { display:grid; grid-template-columns:1fr 1fr; margin:1.3rem 0 .8rem; border-bottom:1px solid var(--line); }
.auth-tabs button { padding:.55rem; border:0; border-bottom:3px solid transparent; color:var(--muted); background:transparent; font:700 .7rem var(--sans); cursor:pointer; }
.auth-tabs button[aria-selected="true"] { color:var(--ink); border-bottom-color:var(--red); }
.google-auth-button { width:100%; min-height:42px; display:flex; align-items:center; justify-content:center; gap:.65rem; padding:.55rem .8rem; border:1px solid var(--line); color:var(--ink); background:var(--white); font:700 .72rem var(--sans); cursor:pointer; }
.google-auth-button:hover { background:var(--soft); }
.google-auth-button svg { width:18px; height:18px; flex:0 0 auto; }
.auth-divider { display:flex; align-items:center; gap:.65rem; margin:.85rem 0; color:var(--muted); font-size:.58rem; text-transform:uppercase; letter-spacing:.06em; }
.auth-divider::before, .auth-divider::after { content:""; height:1px; flex:1; background:var(--line); }
.email-auth-form { display:grid; gap:.65rem; }
.email-auth-form label[hidden], .auth-entry[hidden], .auth-account[hidden] { display:none !important; }
.email-auth-form label { display:grid; gap:.25rem; color:var(--muted); font-size:.61rem; font-weight:700; }
.email-auth-form input { width:100%; min-height:40px; padding:.55rem .62rem; border:1px solid var(--line); color:var(--ink); background:var(--panel); font:500 .75rem var(--sans); outline:none; }
.email-auth-form input:focus { border-color:var(--red); box-shadow:0 0 0 2px color-mix(in srgb,var(--red) 15%,transparent); }
.auth-primary { width:100%; min-height:41px; padding:.55rem .8rem; border:1px solid var(--ink); color:var(--paper); background:var(--ink); font:700 .72rem var(--sans); cursor:pointer; }
.auth-primary:hover { background:var(--red); border-color:var(--red); color:var(--on-accent); }
.auth-text-button { display:block; margin:.6rem auto 0; padding:.2rem; border:0; color:var(--link); background:transparent; font:600 .62rem var(--sans); cursor:pointer; }
.auth-text-button:hover { color:var(--red); text-decoration:underline; }
.auth-status { min-height:1.1rem; margin:.65rem 0 0; color:var(--red); font-size:.62rem; line-height:1.35; text-align:center; }
.auth-status[data-kind="success"] { color:#27824c; }
.auth-terms { margin:.5rem 0 0; color:var(--muted); font-size:.52rem; line-height:1.4; text-align:center; }
.auth-profile { display:flex; align-items:center; gap:.8rem; padding:.35rem 1.8rem 1.1rem 0; border-bottom:1px solid var(--line); }
.auth-profile img, .auth-profile > span { width:46px; height:46px; flex:0 0 auto; border-radius:50%; }
.auth-profile img { object-fit:cover; }
.auth-profile > span { display:grid; place-items:center; color:var(--on-accent); background:var(--red); font:650 1.35rem var(--serif); }
.auth-identities { margin:1rem 0; }
.auth-identities > p { margin:0 0 .45rem; color:var(--muted); font-size:.58rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
#auth-identity-list { display:flex; flex-wrap:wrap; gap:.35rem; }
.identity-chip { padding:.35rem .5rem; border:1px solid var(--line); background:var(--soft); font-size:.62rem; font-weight:700; }
.auth-account .google-auth-button { margin:.8rem 0; }
.auth-account .auth-primary { margin-top:.8rem; }

.news-archive-main { width:min(980px,calc(100% - 2rem)); margin:0 auto; padding:1.2rem 0 3rem; }
.archive-heading { margin:.7rem 0 1rem; padding-bottom:.8rem; border-bottom:3px solid var(--ink); }
.archive-heading p { margin:0 0 .25rem; color:var(--red); font-size:.62rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.archive-heading h1 { margin:0; font:650 clamp(2rem,5vw,3.6rem)/1 var(--serif); }
.archive-list { display:flex; flex-direction:column; }
.archive-item { display:grid; grid-template-columns:7.5rem minmax(0,1fr) auto; gap:1rem; align-items:center; padding:1rem .2rem; border-bottom:1px solid var(--line); text-decoration:none; }
.archive-item[hidden] { display:none; }
.archive-item time { color:var(--red); font-size:.66rem; font-weight:700; font-variant-numeric:tabular-nums; }
.archive-item h2 { margin:0 0 .18rem; font:650 1.25rem/1.05 var(--serif); }
.archive-item p { margin:0; color:var(--muted); font-size:.68rem; line-height:1.35; }
.archive-item b { color:var(--red); }
.archive-item:hover h2 { color:var(--red); }
.archive-loader { min-height:120px; display:grid; place-items:start center; padding-top:1rem; color:var(--muted); font-size:.62rem; }

.article-page { min-height:100vh; }
.article-header .header-source { text-transform:none; }
.article-main { width:min(960px,calc(100% - 2rem)); margin:0 auto; padding:1.2rem 0 2.5rem; }
.article-back { color:var(--muted); font-size:.68rem; font-weight:700; text-decoration:none; }
.article-back:hover { color:var(--red); }
.article-kicker { margin:1.2rem 0 .25rem; color:var(--red); font-size:.62rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.article-main h1 { max-width:800px; margin:0 0 .7rem; font:650 clamp(2rem,5vw,3.8rem)/.98 var(--serif); }
.article-deck { max-width:720px; margin:0 0 1.2rem; color:var(--muted); font:500 1rem/1.5 var(--serif); }
.article-hero { width:100%; height:auto; display:block; object-fit:contain; border-top:4px solid var(--red); background:var(--soft); }
.article-body { width:min(720px,100%); margin:1.25rem auto 0; font:500 1.03rem/1.72 var(--serif); }
.article-body p { margin:0 0 1rem; }
.article-links { display:flex; flex-wrap:wrap; gap:.4rem; margin:1.2rem 0; }
.article-links a { padding:.43rem .65rem; color:var(--on-accent); background:var(--secondary); font:700 .66rem var(--sans); text-decoration:none; }
.article-links a:hover { background:var(--red); }
.article-gallery { display:grid; grid-template-columns:1fr 1fr; gap:.65rem; margin:1.4rem 0 .55rem; }
.article-gallery img { width:100%; height:250px; display:block; object-fit:cover; }
.article-video { width:100%; aspect-ratio:16/9; margin:1.4rem 0; border:0; }
.photo-credit { color:var(--muted); font:500 .56rem/1.5 var(--sans); }
.photo-credit a { color:inherit; }

@media (max-width:1120px) {
  .ratings-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .rating-column { border-bottom:1px solid var(--line); }
  .rating-column:nth-child(3n) { border-right:0; }
  .rating-column:nth-last-child(-n+3) { border-bottom:0; }
  .country-grid .rating-column:nth-child(n+7) { border-top:0; }
  .country-grid .rating-column:nth-child(7), .country-grid .rating-column:nth-child(8), .country-grid .rating-column:nth-child(9) { border-top:3px solid var(--red); }
}
@media (max-width:860px) {
  .media-layer { grid-template-columns:1fr; }
  .video-panel { justify-self:end; }
}
@media (max-width:680px) {
  .site-header { min-height:56px; flex-wrap:wrap; gap:.35rem; padding-top:.35rem; padding-bottom:.35rem; }
  .brand strong { display:none; }
  .header-actions { flex:1; justify-content:flex-end; gap:.3rem; }
  .region-switcher span { display:none; }
  .region-switcher select { width:112px; border-left:0; }
  .language-switcher span { display:none; }
  .language-switcher select { width:76px; border-left:0; }
  .header-source { display:none; }
  .ratings-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rating-column { border-right:1px solid var(--line); }
  .rating-column:nth-child(3n) { border-right:1px solid var(--line); }
  .rating-column:nth-child(2n) { border-right:0; }
  .rating-column:nth-last-child(-n+3) { border-bottom:1px solid var(--line); }
  .rating-column:nth-last-child(-n+2) { border-bottom:0; }
  .country-grid .rating-column:nth-child(7), .country-grid .rating-column:nth-child(8), .country-grid .rating-column:nth-child(9) { border-top:0; }
  .country-grid .rating-column:nth-child(7), .country-grid .rating-column:nth-child(8) { border-top:3px solid var(--red); }
  .main-dashboard { grid-template-columns:1fr; }
  .news-split { grid-template-columns:1fr; }
  .photo-news { min-height:210px; border-right:0; border-bottom:1px solid var(--line); }
  .video-panel { max-width:none; justify-self:stretch; }
  .news-list a { grid-template-columns:minmax(0,1fr) auto; }
  .news-list time { grid-column:1; grid-row:2; }
  .news-list b { grid-column:2; grid-row:1 / span 2; }
  .article-gallery { grid-template-columns:1fr; }
  .archive-item { grid-template-columns:1fr auto; gap:.45rem; }
  .archive-item time { grid-column:1; }
  .archive-item div { grid-column:1; }
  .archive-item b { grid-column:2; grid-row:1 / span 2; }
}
