@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Source+Serif+4:opsz,wght@8..60,400;8..60,600;8..60,700;8..60,900&family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@500&display=swap');

:root{
  --ink: #14171C;
  --paper: #FFFFFF;
  --paper-dim: #F3F3F1;
  --line: rgba(20,23,28,0.13);
  --accent: #1B3A6B;        /* navy — links, interactive, focus */
  --accent-deep: #0E2340;
  --highlight: #B3242B;     /* masthead red — CTAs, live, badges */
  --highlight-deep: #8A1B21;
  --error: #C0392B;
  --shadow-soft: 0 3px 14px rgba(20,23,28,0.09);
  --shadow-med: 0 8px 28px rgba(20,23,28,0.13);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Space Grotesk', sans-serif;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001s !important; animation-iteration-count:1 !important; transition-duration:0.001s !important; scroll-behavior:auto !important;}
}

a{color:inherit; text-decoration:none;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}

/* ---------- TICKER ---------- */
.ticker-bar{background:var(--ink); color:var(--paper); overflow:hidden; white-space:nowrap; border-bottom:2px solid var(--highlight);}
.ticker-track{display:inline-flex; animation:scroll-left 32s linear infinite; padding:8px 0;}
.ticker-track span{font-family:'JetBrains Mono', monospace; font-size:12.5px; letter-spacing:0.02em; padding:0 26px; border-right:1px solid rgba(255,255,255,0.14); opacity:0.92;}
.ticker-track span b{color:#FF8A80; font-weight:700;}
.ticker-track span i{font-style:normal; color:#8FB4E8;}
@keyframes scroll-left{0%{transform:translateX(0);} 100%{transform:translateX(-50%);}}

/* ---------- NAV ---------- */
header.site{background:rgba(255,255,255,0.96); backdrop-filter:blur(6px); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50;}
nav{display:flex; align-items:center; justify-content:space-between; padding:16px 28px; gap:16px; max-width:1180px; margin:0 auto; flex-wrap:wrap;}
.logo{font-family:'Archivo Black', sans-serif; font-size:24px; letter-spacing:-0.01em; display:flex; align-items:baseline; gap:2px; flex-shrink:0;}
.logo .g{color:var(--accent);}
.logo .s{color:var(--highlight);}
.logo .n{font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:11px; letter-spacing:0.16em; color:var(--ink); align-self:center; margin-left:7px; padding:3px 7px; background:var(--paper-dim); border:1px solid var(--line); border-radius:2px;}
.navlinks{display:flex; gap:22px; font-size:13.5px; font-weight:600; flex-shrink:0;}
.navlinks a{position:relative; padding-bottom:3px; white-space:nowrap; color:rgba(20,23,28,0.78);}
.navlinks a::after{content:''; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--highlight); transition:width 0.2s ease;}
.navlinks a:hover{color:var(--ink);}
.navlinks a:hover::after{width:100%;}
.nav-cta{font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; background:var(--highlight); color:white; padding:10px 16px; border:none; border-radius:2px; transition:background 0.15s ease; flex-shrink:0; white-space:nowrap;}
.nav-cta:hover{background:var(--highlight-deep);}
.nav-cta.admin{background:var(--ink); color:var(--paper);}
.nav-cta.admin:hover{background:#000;}

.nav-search{flex:1; max-width:200px; display:flex; border:1px solid var(--line); border-radius:2px; background:var(--paper-dim); overflow:hidden;}
.nav-search input{flex:1; border:none; padding:9px 10px; font-family:'Space Grotesk', sans-serif; font-size:13px; background:transparent; min-width:0;}
.nav-search input:focus{outline:none;}
.nav-search button{border:none; background:transparent; padding:0 12px; cursor:pointer; font-size:14px; color:var(--ink);}
.nav-search button:hover{color:var(--highlight);}

/* ---------- HERO ---------- */
.hero{padding:60px 28px 52px; max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1.3fr 1fr; gap:48px; align-items:end;}
.eyebrow{font-family:'JetBrains Mono', monospace; font-size:12px; font-weight:500; letter-spacing:0.12em; text-transform:uppercase; color:var(--highlight-deep); margin-bottom:18px; display:flex; align-items:center; gap:9px;}
.eyebrow::before{content:''; width:7px; height:7px; border-radius:50%; background:var(--highlight); display:inline-block; animation:pulse 1.6s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;} 50%{opacity:0.35;}}
.hero h1{font-family:'Source Serif 4', Georgia, serif; font-weight:900; font-size:clamp(38px, 5.6vw, 68px); line-height:1.02; letter-spacing:-0.01em;}
.hero h1 .hl-blue{color:var(--accent);}
.hero h1 .hl-green{color:var(--highlight);}
.hero-sub{font-size:16.5px; line-height:1.6; color:rgba(20,23,28,0.68); margin-top:22px; max-width:52ch;}
.hero-actions{display:flex; gap:14px; margin-top:28px; flex-wrap:wrap;}
.btn{font-weight:700; font-size:14px; padding:12px 22px; border:1px solid var(--ink); border-radius:2px; display:inline-block; cursor:pointer; font-family:inherit; transition:all 0.15s ease;}
.btn-primary{background:var(--highlight); color:white; border-color:var(--highlight);}
.btn-primary:hover{background:var(--highlight-deep); border-color:var(--highlight-deep);}
.btn-ghost{background:transparent; border-color:var(--line); color:var(--ink);}
.btn-ghost:hover{background:var(--paper-dim); border-color:var(--ink);}
.btn-danger{background:var(--error); color:white; border-color:var(--error);}
.btn-danger:hover{background:#a12e21;}

.hero-panel{background:var(--ink); color:var(--paper); border-top:3px solid var(--highlight); padding:26px; box-shadow:var(--shadow-med);}
.hero-panel .panel-label{font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:#8FB4E8; margin-bottom:14px;}
.score-row{display:flex; justify-content:space-between; align-items:center; padding:11px 0; border-bottom:1px solid rgba(255,255,255,0.1); font-size:14px;}
.score-row:last-child{border-bottom:none;}
.score-row .teams{font-weight:600;}
.score-row .score{font-family:'JetBrains Mono', monospace; color:#FF8A80;}

/* ---------- SECTION HEADERS ---------- */
.section{padding:52px 28px; max-width:1180px; margin:0 auto;}
.section-head{display:flex; align-items:baseline; justify-content:space-between; border-bottom:2px solid var(--ink); padding-bottom:14px; margin-bottom:32px; gap:20px; flex-wrap:wrap;}
.section-head h2{font-family:'Source Serif 4', Georgia, serif; font-weight:900; font-size:28px; letter-spacing:-0.01em;}
.section-tag{font-family:'JetBrains Mono', monospace; font-size:11.5px; letter-spacing:0.08em; color:rgba(20,23,28,0.5);}

/* ---------- ARTICLE GRID ---------- */
.grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;}
.card{border:1px solid var(--line); border-radius:2px; background:var(--paper); display:flex; flex-direction:column; transition:box-shadow 0.18s ease, transform 0.18s ease; overflow:hidden;}
.card:hover{box-shadow:var(--shadow-med); transform:translateY(-2px);}
.card-media{height:148px; position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; font-family:'Archivo Black', sans-serif; font-size:14px; color:white; text-align:center;}
.card-body{padding:20px; display:flex; flex-direction:column; gap:10px; flex:1;}
.card-cat{font-family:'JetBrains Mono', monospace; font-size:10.5px; font-weight:500; letter-spacing:0.08em; text-transform:uppercase;}
.card-cat.biz{color:var(--accent);}
.card-cat.sport{color:var(--highlight-deep);}
.card h3{font-family:'Source Serif 4', Georgia, serif; font-size:20px; line-height:1.26; font-weight:700;}
.card p{font-size:14px; color:rgba(20,23,28,0.65); line-height:1.5; flex:1; font-family:'Space Grotesk', sans-serif;}
.card-meta{font-size:12px; color:rgba(20,23,28,0.45); border-top:1px solid var(--line); padding-top:10px; display:flex; justify-content:space-between;}
.card.readable{cursor:pointer;}
.card.readable .card-meta span:last-child{color:var(--accent); font-weight:700;}
.card.readable:hover .card-meta span:last-child{text-decoration:underline;}
.card-badge{position:absolute; top:10px; right:10px; background:var(--highlight); color:white; font-family:'JetBrains Mono', monospace; font-size:10px; font-weight:700; padding:3px 8px; letter-spacing:0.05em; text-transform:uppercase; border-radius:2px;}

.media-a{background:radial-gradient(circle at 30% 20%, #2a4d85, var(--accent-deep) 70%), linear-gradient(135deg, var(--accent), var(--accent-deep)); position:relative;}
.media-b{background:radial-gradient(circle at 30% 20%, #8b93a0, var(--ink) 70%), linear-gradient(135deg, #6B7280, var(--ink)); position:relative;}
.media-c{background:radial-gradient(circle at 30% 20%, #16305c, var(--ink) 70%), linear-gradient(135deg, var(--accent-deep), var(--ink)); position:relative;}
.media-d{background:radial-gradient(circle at 30% 20%, #d33a42, var(--highlight-deep) 70%), linear-gradient(135deg, var(--highlight), var(--highlight-deep)); position:relative;}
.media-e{background:radial-gradient(circle at 30% 20%, #3f6ba8, var(--highlight-deep) 70%), linear-gradient(135deg, var(--accent), var(--highlight)); position:relative;}
.media-f{background:radial-gradient(circle at 30% 20%, #2c3a52, var(--ink) 70%), linear-gradient(135deg, var(--ink), var(--accent-deep)); position:relative;}
.media-g{background:radial-gradient(circle at 30% 20%, #6f688c, var(--ink) 70%), linear-gradient(135deg, #55506B, var(--ink)); position:relative;}

.card-media, .fs-media, .article-hero-media{position:relative; overflow:hidden;}
.card-media::before, .fs-media::before, .article-hero-media::before{
  content:''; position:absolute; inset:0; opacity:0.5; mix-blend-mode:overlay; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
}
.card-media::after, .fs-media::after, .article-hero-media::after{
  content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.45) 100%); pointer-events:none;
}
.media-icon{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:46%; height:46%; opacity:0.16; z-index:0; pointer-events:none;}
.media-icon svg{width:100%; height:100%; stroke:white; fill:none; stroke-width:1; overflow:visible;}
.card-media > *:not(.media-icon), .fs-media > *:not(.media-icon), .article-hero-media > *:not(.media-icon){position:relative; z-index:1;}
.card-badge{z-index:2;}

/* ---------- FEATURED STORY (hub page hero) ---------- */
.featured-story{
  display:grid; grid-template-columns:1.3fr 1fr; gap:0; border:1px solid var(--line); border-radius:2px;
  margin-bottom:38px; background:var(--paper); box-shadow:var(--shadow-soft); overflow:hidden;
}
.featured-story .fs-media{
  min-height:300px; display:flex; align-items:flex-end; padding:24px;
  font-family:'Archivo Black', sans-serif; color:white; font-size:15px;
}
.featured-story .fs-body{padding:32px; display:flex; flex-direction:column; justify-content:center; gap:14px;}
.featured-story .fs-eyebrow{
  font-family:'JetBrains Mono', monospace; font-size:11px; font-weight:700; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--highlight-deep); display:flex; align-items:center; gap:8px;
}
.featured-story .fs-eyebrow::before{content:'\2605'; color:var(--highlight);}
.featured-story h2{
  font-family:'Source Serif 4', Georgia, serif; font-weight:900; font-size:clamp(23px, 2.9vw, 32px);
  line-height:1.14;
}
.featured-story p{font-family:'Source Serif 4', Georgia, serif; font-size:16px; line-height:1.55; color:rgba(20,23,28,0.66);}
.featured-story .fs-meta{
  font-family:'JetBrains Mono', monospace; font-size:12px; color:rgba(20,23,28,0.5);
  padding-top:10px; border-top:1px solid var(--line);
}
@media (max-width:860px){
  .featured-story{grid-template-columns:1fr;}
  .featured-story .fs-media{min-height:170px;}
}

/* ---------- HUB / GENERIC PAGE HERO ---------- */
.page-hero{padding:52px 28px 30px; max-width:1180px; margin:0 auto;}
.page-hero h1{font-family:'Source Serif 4', Georgia, serif; font-weight:900; font-size:clamp(34px, 5vw, 54px); line-height:1.04; letter-spacing:-0.01em; margin-bottom:16px;}
.page-hero p{font-size:16px; line-height:1.6; color:rgba(20,23,28,0.68); max-width:60ch;}
.back-link{display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; color:var(--accent); margin-bottom:20px;}
.back-link:hover{text-decoration:underline;}

.filter-bar{display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-bottom:28px; padding:14px 16px; border:1px solid var(--line); border-radius:2px; background:var(--paper-dim);}
.filter-bar input[type=text]{flex:1; min-width:180px; border:1px solid var(--line); border-radius:2px; padding:10px 12px; font-family:'Space Grotesk', sans-serif; font-size:14px; background:var(--paper);}
.filter-bar select{border:1px solid var(--line); border-radius:2px; padding:10px 12px; font-family:'JetBrains Mono', monospace; font-size:13px; background:var(--paper); cursor:pointer;}
.filter-bar .filter-count{font-family:'JetBrains Mono', monospace; font-size:12px; color:rgba(20,23,28,0.5); white-space:nowrap;}

/* ---------- ARTICLE PAGE ---------- */
.article-page{max-width:740px; margin:0 auto; padding:44px 28px 80px;}
.article-hero-media{height:210px; display:flex; align-items:center; justify-content:center; font-family:'Archivo Black', sans-serif; color:white; font-size:19px; border-radius:2px; margin-bottom:28px; position:relative;}
.article-cat{font-family:'JetBrains Mono', monospace; font-size:12px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--accent); display:block; margin-bottom:12px;}
.article-page h1{font-family:'Source Serif 4', Georgia, serif; font-weight:900; font-size:clamp(29px, 4.6vw, 44px); line-height:1.09; margin-bottom:16px;}
.article-dek{font-family:'Source Serif 4', Georgia, serif; font-size:19px; font-weight:400; font-style:italic; color:rgba(20,23,28,0.66); line-height:1.5; margin-bottom:22px;}
.article-meta{font-size:12px; color:rgba(20,23,28,0.5); font-family:'JetBrains Mono', monospace; margin-bottom:28px; padding-bottom:20px; border-bottom:2px solid var(--ink); display:flex; gap:16px; flex-wrap:wrap; text-transform:uppercase; letter-spacing:0.04em;}
.article-page .body p{font-family:'Source Serif 4', Georgia, serif; font-size:18px; line-height:1.72; color:rgba(20,23,28,0.88); margin-bottom:20px;}
.article-page .body p:first-of-type::first-letter{
  font-family:'Source Serif 4', Georgia, serif; font-weight:900; font-size:62px; float:left;
  line-height:0.85; padding:6px 8px 0 0; color:var(--highlight);
}

.website-callout{margin-top:32px; padding:20px 24px; border:1px solid var(--line); border-radius:2px; background:var(--paper-dim); display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;}
.website-callout .label{font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:rgba(20,23,28,0.5); margin-bottom:4px;}
.website-callout .name{font-family:'Archivo Black', sans-serif; font-size:15px;}
.website-callout a.visit-btn{font-weight:700; font-size:13px; padding:10px 18px; border-radius:2px; background:var(--highlight); color:white; white-space:nowrap;}
.website-callout a.visit-btn:hover{background:var(--highlight-deep);}

.tag-list{display:flex; flex-wrap:wrap; gap:8px; margin-top:32px;}
.tag-list a{font-family:'JetBrains Mono', monospace; font-size:11px; padding:6px 12px; border-radius:2px; border:1px solid var(--line); color:rgba(20,23,28,0.6);}
.tag-list a:hover{border-color:var(--accent); color:var(--accent);}

.related-block{margin-top:54px; padding-top:34px; border-top:2px solid var(--ink);}
.related-block h3{font-family:'Source Serif 4', Georgia, serif; font-weight:900; font-size:20px; margin-bottom:22px;}

/* ---------- SEARCH PAGE ---------- */
.search-hero{padding:52px 28px 20px; max-width:1180px; margin:0 auto; text-align:center;}
.search-hero h1{font-family:'Source Serif 4', Georgia, serif; font-weight:900; font-size:clamp(30px, 4.6vw, 44px); margin-bottom:20px;}
.search-box-lg{display:flex; max-width:640px; margin:0 auto; border:1px solid var(--line); border-radius:2px; box-shadow:var(--shadow-soft); overflow:hidden;}
.search-box-lg input{flex:1; border:none; padding:16px 18px; font-size:16px; font-family:'Space Grotesk', sans-serif;}
.search-box-lg input:focus{outline:none;}
.search-box-lg button{border:none; background:var(--highlight); color:white; padding:0 24px; font-weight:700; cursor:pointer; font-family:inherit; font-size:14px;}
.search-box-lg button:hover{background:var(--highlight-deep);}
.search-results{max-width:840px; margin:0 auto; padding:36px 28px 80px;}
.search-meta{font-family:'JetBrains Mono', monospace; font-size:13px; color:rgba(20,23,28,0.55); margin-bottom:22px;}
.result-row{display:block; padding:20px 0; border-bottom:1px solid var(--line);}
.result-row .rcat{font-family:'JetBrains Mono', monospace; font-size:11px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--highlight-deep);}
.result-row h3{font-family:'Source Serif 4', Georgia, serif; font-size:19px; margin:6px 0 6px; font-weight:700;}
.result-row p{font-size:14px; color:rgba(20,23,28,0.6); line-height:1.5;}
.result-row:hover h3{color:var(--accent); text-decoration:underline;}
.no-results{text-align:center; padding:60px 20px; color:rgba(20,23,28,0.5);}

/* ---------- FORMS (submit / login / admin uploads) ---------- */
.form-page{max-width:680px; margin:0 auto; padding:52px 28px 90px;}
.form-page h1{font-family:'Source Serif 4', Georgia, serif; font-weight:900; font-size:clamp(27px, 4.2vw, 38px); margin-bottom:12px;}
.form-page > p.lede{font-size:15px; color:rgba(20,23,28,0.65); line-height:1.6; margin-bottom:30px;}
.form-block{border:1px solid var(--line); border-radius:3px; background:var(--paper); padding:28px; box-shadow:var(--shadow-soft);}
.form-row{margin-bottom:18px;}
.form-row label{display:block; font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:rgba(20,23,28,0.55); margin-bottom:6px;}
.form-row input[type=text], .form-row input[type=email], .form-row input[type=password], .form-row input[type=url], .form-row select, .form-row textarea{
  width:100%; font-family:'Space Grotesk', sans-serif; font-size:14px; padding:12px 14px; border:1px solid var(--line); border-radius:2px; background:var(--paper);
}
.form-row textarea{resize:vertical; min-height:160px; line-height:1.6;}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent);}
.form-row-2col{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.form-hint{font-size:12px; color:rgba(20,23,28,0.5); margin-top:6px;}
.form-msg{margin-top:16px; font-size:13px; font-family:'JetBrains Mono', monospace; padding:12px 14px; display:none; border-radius:2px; border:1px solid var(--line);}
.form-msg.show{display:block;}
.form-msg.success{background:#EDF6EF; color:#1E7A3D; border-color:#1E7A3D;}
.form-msg.error{background:#FBEAEA; color:var(--error); border-color:var(--error);}
.notice-box{border:1px solid var(--line); border-left:3px solid var(--accent); background:var(--paper-dim); padding:16px 20px; font-size:13px; line-height:1.6; margin-bottom:28px; border-radius:0 2px 2px 0;}
.notice-box b{color:var(--accent);}

/* ---------- ADMIN DASHBOARD ---------- */
.admin-page{max-width:980px; margin:0 auto; padding:48px 28px 90px;}
.admin-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; flex-wrap:wrap; gap:12px;}
.admin-head h1{font-family:'Source Serif 4', Georgia, serif; font-weight:900; font-size:30px;}
.admin-tabs{display:flex; gap:6px; margin:30px 0 24px; border-bottom:2px solid var(--ink);}
.admin-tab{font-family:'JetBrains Mono', monospace; font-size:13px; font-weight:700; padding:10px 16px; cursor:pointer; border:1px solid transparent; border-bottom:none; color:rgba(20,23,28,0.55); border-radius:2px 2px 0 0;}
.admin-tab.active{border-color:var(--line); background:var(--paper); color:var(--ink); transform:translateY(2px);}
.submission-card{border:1px solid var(--line); border-radius:2px; background:var(--paper); padding:20px 22px; margin-bottom:16px;}
.submission-card .s-meta{font-family:'JetBrains Mono', monospace; font-size:11px; color:rgba(20,23,28,0.5); margin-bottom:8px; display:flex; gap:14px; flex-wrap:wrap;}
.submission-card h3{font-family:'Source Serif 4', Georgia, serif; font-size:18px; margin-bottom:8px;}
.submission-card p{font-size:14px; color:rgba(20,23,28,0.7); line-height:1.55; margin-bottom:14px;}
.submission-actions{display:flex; gap:10px;}
.submission-actions button{font-weight:700; font-size:12px; padding:9px 16px; border-radius:2px; border:1px solid var(--line); cursor:pointer; font-family:'JetBrains Mono', monospace;}
.btn-approve{background:#1E7A3D; color:white; border-color:#1E7A3D;}
.btn-approve:hover{background:#175c2e;}
.btn-reject{background:var(--paper); color:var(--error); border-color:var(--error);}
.btn-reject:hover{background:var(--error); color:white;}
.empty-state{text-align:center; padding:50px 20px; color:rgba(20,23,28,0.5); border:1px dashed var(--line); border-radius:2px;}

/* ---------- CITIES STRIP ---------- */
.cities{background:var(--ink); color:var(--paper); padding:44px 28px;}
.cities-inner{max-width:1180px; margin:0 auto;}
.cities h3{font-family:'JetBrains Mono', monospace; font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:#8FB4E8; margin-bottom:20px;}
.city-list{display:flex; flex-wrap:wrap; gap:10px;}
.city-list a{border:1px solid rgba(255,255,255,0.22); border-radius:2px; padding:8px 16px; font-size:14px; font-weight:600; transition:border-color 0.15s ease, color 0.15s ease, background 0.15s ease; display:inline-block;}
.city-list a:hover{border-color:var(--highlight); color:white; background:var(--highlight);}

/* ---------- NEWSLETTER ---------- */
.signup{padding:52px 28px; max-width:1180px; margin:0 auto; border:1px solid var(--line); border-radius:3px; background:var(--paper-dim); box-shadow:var(--shadow-soft);}
.signup-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:start;}
.signup h2{font-family:'Source Serif 4', Georgia, serif; font-weight:900; font-size:27px; margin-bottom:10px;}
.signup > .signup-grid > div:first-child p{color:rgba(20,23,28,0.65); font-size:15px; max-width:44ch;}
.signup-form-full{display:flex; flex-direction:column; gap:14px;}
.field-label{font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:rgba(20,23,28,0.55); margin-bottom:6px; display:block;}
.signup-form-full input[type=email], .signup-form-full select{width:100%; font-family:'Space Grotesk', sans-serif; font-size:14px; padding:12px 14px; border:1px solid var(--line); border-radius:2px; background:var(--paper);}
.signup-form-full input[type=email]:focus, .signup-form-full select:focus{outline:2px solid var(--accent); outline-offset:1px;}
.topic-checks{display:flex; gap:14px; flex-wrap:wrap;}
.topic-checks label{display:flex; align-items:center; gap:8px; font-size:14px; font-weight:600; cursor:pointer; border:1px solid var(--line); border-radius:2px; padding:10px 14px; background:var(--paper);}
.topic-checks input{width:16px; height:16px; accent-color:var(--highlight);}
.signup-form-full button{font-weight:700; font-size:14px; padding:14px 20px; border:none; border-radius:2px; background:var(--highlight); color:white; cursor:pointer; margin-top:4px;}
.signup-form-full button:hover{background:var(--highlight-deep);}

/* ---------- FOOTER ---------- */
footer{border-top:1px solid var(--line); padding:36px 28px; margin-top:20px; background:var(--paper-dim);}
.footer-inner{max-width:1180px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;}
.footer-logo{font-family:'Archivo Black', sans-serif; font-size:16px;}
.footer-logo .g{color:var(--accent);} .footer-logo .s{color:var(--highlight);}
.footer-links{display:flex; gap:22px; font-size:13px; font-weight:600; color:rgba(20,23,28,0.62); flex-wrap:wrap;}
.footer-links a:hover{color:var(--ink);}
.footer-contact{font-size:12.5px; color:rgba(20,23,28,0.55); font-family:'JetBrains Mono', monospace;}
.footer-contact a{color:var(--accent); font-weight:600;}
.footer-contact a:hover{text-decoration:underline;}
.footer-fine{font-size:12px; color:rgba(20,23,28,0.4); font-family:'JetBrains Mono', monospace;}
.footer-bottom{max-width:1180px; margin:14px auto 0; padding-top:14px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}

/* ---------- MODAL (kept for compatibility) ---------- */
.modal-backdrop{position:fixed; inset:0; background:rgba(20,23,28,0.6); display:none; align-items:flex-start; justify-content:center; padding:6vh 20px; overflow-y:auto; z-index:200;}
.modal-backdrop.open{display:flex;}

/* ---------- LIVE SCOREBOARD ---------- */
.game-card{padding:18px 20px; gap:12px;}
.game-league{font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:0.1em; color:rgba(20,23,28,0.45); display:flex; justify-content:space-between; align-items:center;}
.status-pill{font-family:'JetBrains Mono', monospace; font-size:10px; font-weight:700; letter-spacing:0.06em; padding:3px 8px; text-transform:uppercase; border-radius:2px;}
.status-live{background:var(--highlight); color:white;}
.status-live .dot{display:inline-block; width:6px; height:6px; background:white; border-radius:50%; margin-right:5px; animation:pulse 1.2s ease-in-out infinite;}
.status-final{background:var(--paper-dim); color:rgba(20,23,28,0.6); border:1px solid var(--line);}
.status-pre{background:var(--accent); color:white;}
.matchup{display:flex; flex-direction:column; gap:8px;}
.team-row{display:flex; justify-content:space-between; align-items:center; font-size:16px; font-weight:700;}
.team-row .tname{display:flex; align-items:center; gap:8px;}
.team-row .tname.ca::before{content:'\25CF'; color:var(--highlight-deep); font-size:10px;}
.team-row .tscore{font-family:'JetBrains Mono', monospace; font-size:18px;}
.live-empty{padding:30px; text-align:center; color:rgba(20,23,28,0.5); font-size:14px; grid-column:1/-1;}

/* ---------- PAST GAMES ---------- */
.past-games-block{margin-top:48px; padding-top:38px; border-top:2px solid var(--ink);}
.past-games-head{display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:22px; flex-wrap:wrap;}
.past-games-head h3{font-family:'Source Serif 4', Georgia, serif; font-weight:900; font-size:21px;}
.past-games-sub{font-size:13px; color:rgba(20,23,28,0.55); margin-top:6px;}
#pastGamesFilter{font-family:'JetBrains Mono', monospace; font-size:13px; padding:9px 12px; border:1px solid var(--line); border-radius:2px; background:var(--paper); cursor:pointer;}
.past-games-list{display:flex; flex-direction:column; border:1px solid var(--line); border-radius:2px; overflow:hidden;}
.past-game-row{display:grid; grid-template-columns:90px 70px 1fr auto; align-items:center; gap:16px; padding:13px 18px; border-bottom:1px solid var(--line); font-size:14px;}
.past-game-row:last-child{border-bottom:none;}
.past-game-row:nth-child(even){background:var(--paper-dim);}
.pg-date{font-family:'JetBrains Mono', monospace; font-size:12px; color:rgba(20,23,28,0.5);}
.pg-league{font-family:'JetBrains Mono', monospace; font-size:11px; font-weight:700; color:var(--highlight-deep);}
.pg-teams{font-weight:600;}
.pg-teams .ca-team{color:var(--accent);}
.pg-score{font-family:'JetBrains Mono', monospace; font-weight:700; text-align:right;}

/* ---------- RESPONSIVE ---------- */
@media (max-width:860px){
  .hero{grid-template-columns:1fr; gap:32px;}
  .grid{grid-template-columns:1fr;}
  .navlinks{display:none;}
  .nav-search{display:none;}
  .signup-grid{grid-template-columns:1fr;}
  .form-row-2col{grid-template-columns:1fr;}
  .past-game-row{grid-template-columns:1fr 1fr; row-gap:6px;}
  .pg-teams{grid-column:1/-1; order:3;}
  .pg-score{grid-column:1/-1; order:4; text-align:left;}
  .website-callout{flex-direction:column; align-items:flex-start;}
  .admin-head{flex-direction:column; align-items:flex-start;}
}

:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}
