/* ─────────────────────────────────────────
   GIA4SOCCER — style.css
   Left panel: fixed, no scroll, fills 100vh
   Right panel: scrollable
───────────────────────────────────────── */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  cursor: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDM2IDM2Ij48Y2lyY2xlIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLXdpZHRoPSIxIiBjeD0iMTgiIGN5PSIxOCIgcj0iMTgiLz48cGF0aCBkPSJNMTggMTFjLS41NTIgMC0xLS40NDgtMS0xVjNjMC0uNTUyLjQ0OC0xIDEtMXMxIC40NDggMSAxdjdjMCAuNTUyLS40NDggMS0xIDF6bS02LjU4MyA0LjVjLS4xIDAtLjIwMi0uMDE1LS4zMDItLjA0N2wtOC4wNDEtMi41NDJjLS41MjctLjE2Ny0uODE5LS43MjgtLjY1Mi0xLjI1NS4xNjYtLjUyNy43My0uODE4IDEuMjU1LS42NTJsOC4wNDIgMi41NDJjLjUyNy4xNjcuODE5LjcyOS42NTIgMS4yNTUtLjEzNi40MjYtLjUzLjY5OS0uOTU0LjY5OXptMTMuNjI1LS4yOTFjLS40MzQgMC0uODMzLS4yODUtLjk2LS43MjItLjE1NC0uNTMxLjE1MS0xLjA4NS42ODItMS4yMzlsNi43NS0xLjk1OGMuNTMxLS4xNTMgMS4wODUuMTUzIDEuMjM4LjY4Mi4xNTQuNTMxLS4xNTEgMS4wODUtLjY4MiAxLjIzOWwtNi43NSAxLjk1OGMtLjA5Mi4wMjctLjE4Ni4wNC0uMjc4LjA0em0yLjAwMSAxNC45NThjLS4zMDYgMC0uNjA2LS4xNC0uODAzLS40MDNsLTUuNDU5LTcuMzMzYy0uMzMtLjQ0Mi0uMjM4LTEuMDY5LjIwNS0xLjM5OS40NDItLjMzMSAxLjA2OS0uMjM4IDEuMzk5LjIwNWw1LjQ1OSA3LjMzM2MuMzMuNDQyLjIzOCAxLjA2OS0uMjA1IDEuMzk5LS4xNzkuMTM0LS4zODkuMTk4LS41OTYuMTk4em0tMTguMjk0LS4wODNjLS4xOTcgMC0uMzk1LS4wNTgtLjU3LS4xNzktLjQ1NC0uMzE2LS41NjUtLjkzOC0uMjUtMS4zOTJsNS4xMjUtNy4zNzVjLjMxNS0uNDU0LjkzOC0uNTY2IDEuMzkyLS4yNTEuNDU0LjMxNS41NjUuOTM5LjI1IDEuMzkybC01LjEyNSA3LjM3NWMtLjE5NC4yODEtLjUwNi40My0uODIyLjQzek0zLjUgMjcuMDYyYy0uNDQgMC0uODQ0LS4yOTMtLjk2NS0uNzM4TC4zNDcgMTguMjYyYy0uMTQ1LS41MzMuMTctMS4wODIuNzA0LTEuMjI3LjUzNS0uMTQxIDEuMDgzLjE3MSAxLjIyNy43MDRsMi4xODggOC4wNjJjLjE0NS41MzMtLjE3IDEuMDgyLS43MDQgMS4yMjYtLjA4OC4wMjUtLjE3Ni4wMzUtLjI2Mi4wMzV6TTIyIDM0aC05Yy0uNTUyIDAtMS0uNDQ3LTEtMXMuNDQ4LTEgMS0xaDljLjU1MyAwIDEgLjQ0NyAxIDFzLS40NDcgMS0xIDF6bTEwLjEyNi02Ljg3NWMtLjA3OSAwLS4xNi0uMDA5LS4yNC0uMDI5LS41MzYtLjEzMi0uODY0LS42NzQtLjczMS0xLjIxbDIuMTI1LTguNjI1Yy4xMzMtLjUzNi42NzktLjg2MiAxLjIxLS43MzIuNTM2LjEzMi44NjQuNjc0LjczMSAxLjIxMWwtMi4xMjUgOC42MjVjLS4xMTMuNDU1LS41MjEuNzYtLjk3Ljc2ek0zMC4zMTIgNy42ODhjLS4xNyAwLS4zNDItLjA0My0uNS0uMTM0TDIyLjI1IDMuMTc5Yy0uNDc4LS4yNzctLjY0Mi0uODg4LS4zNjQtMS4zNjcuMjc1LS40NzguODg2LS42NDMgMS4zNjYtLjM2NWw3LjU2MiA0LjM3NWMuNDc4LjI3Ny42NDIuODg4LjM2NCAxLjM2Ny0uMTg1LjMyLS41MjEuNDk5LS44NjYuNDk5em0tMjQuODExIDBjLS4zMTIgMC0uNjE4LS4xNDUtLjgxMy0uNDE3LS4zMjItLjQ1LS4yMi0xLjA3NC4yMjktMS4zOTZsNi4xODgtNC40MzhjLjQ0OS0uMzIyIDEuMDc0LS4yMTkgMS4zOTYuMjI5LjMyMi40NDkuMjE5IDEuMDc0LS4yMjkgMS4zOTZMNi4wODMgNy41Yy0uMTc3LjEyNi0uMzguMTg4LS41ODIuMTg4eiIgZmlsbD0iIzAwMDAwMCIvPjxwYXRoIGQ9Ik0yNS40OTMgMTMuNTE2bC03LjIwOC01LjA4M2MtLjM0OC0uMjQ1LS44MTQtLjI0My0xLjE2MS4wMDZsLTcuMTY3IDUuMTY3Yy0uMzQzLjI0OC0uNDk0LjY4NC0uMzc1IDEuMDkxbDIuNSA4LjU4M2MuMTI0LjQyNi41MTUuNzIuOTYuNzJIMjJjLjQzIDAgLjgxLS4yNzQuOTQ4LS42ODFsMi45MTctOC42NjdjLjE0MS0uNDE5LS4wMTEtLjg4MS0uMzcyLTEuMTM2ek0xLjI5MiAxOS41NDJjLjA1OCAwIC4xMTctLjAwNS4xNzUtLjAxNi4yOTQtLjA1Mi41NS0uMjMzLjY5Ny0uNDk0bDMuMzc1LTZjLjA1MS0uMDkxLjA4Ny0uMTg4LjEwOC0uMjkxTDYuOTggNi4yYy4wNi0uMjk0LS4wMTYtLjYtLjIwNi0uODMyQzYuNTg0IDUuMTM1IDYuMyA1IDYgNWgtLjQyOEMyLjE0NSA4LjI3NyAwIDEyLjg4NCAwIDE4YzAgLjI2Ni4wMjguNTI1LjA0Ljc4OGwuNjAyLjUxNGMuMTgyLjE1Ni40MTMuMjQuNjUuMjR6bTkuMzI1LTE2LjU0N2MuMTA2LjIxOS4zMTMuMzczLjU1My40MTJsNi4zNzUgMS4wNDJjLjA0LjAwNi4wODEuMDEuMTIxLjAxLjA0IDAgLjA4MS0uMDAzLjEyMi0uMDFsNi4wODQtMWMuMi0uMDMzLjM4LS4xNDYuNDk1LS4zMTQuMTE2LS4xNjguMTU4LS4zNzUuMTE4LS41NzVsLS4yOTItMS40NDNDMjIuMjYuNDA3IDIwLjE4IDAgMTggMGMtMi40MjUgMC00LjczNC40ODYtNi44NDUgMS4zNTZsLS41MjEuOTVjLS4xMTcuMjEzLS4xMjMuNDctLjAxNy42ODl6bTIwLjUxNyAyLjcyNGwtMS41MDQtLjA5NWMtLjIyOC0uMDEzLS40NTUuMDc2LS42MDkuMjQ5LS4xNTIuMTczLS4yMTguNDAyLS4xNzUuNjNsMS4xNjcgNi4xOThjLjAxNy4wODYuMDQ4LjE0OC4wOTMuMjI0IDEuNDkyIDIuNTA0IDMuMTUyIDUuMzAxIDMuMzgxIDUuNzgyLjAyNC4wODQuMDYyLjA3OS4xMTQuMTUxLjE0LjE5NS4zNzIuMTQyLjYxMi4xNDJoLjAwN2MuMTk4IDAgLjMyMy4wOTQgMS43NjgtLjc1My4wMDEtLjA4My4wMTItLjE2NC4wMTItLjI0NyAwLTQuNzUzLTEuODU2LTkuMDY0LTQuODY2LTEyLjI4MXpNMTQuNTQxIDMzLjM3NmMuMDExLS4xOTktLjA1OC0uMzk1LS4xOTEtLjU0NGwtNC41LTVjLS4wNi0uMDY2LS4xMzEtLjEyMi0uMjExLS4xNjMtNS44ODUtMy4wNjktNS45OTQtMy4xMDUtNi4wNjYtMy4xMy0uMDc4LS4wMjUtLjE2MS0uMDM5LS4yNDItLjAzOS0uNTM3IDAtLjY5NS4wNjUtMS4xODUgMi4wMjQgMi4yMzYgNC4xNDkgNi4wNTMgNy4zMTYgMTAuNjQ0IDguNzAzbDEuNS0xLjMzM2MuMTQ5LS4xMzIuMjM5LS4zMTkuMjUxLS41MTh6bTE3LjgzMy04LjU2N2MtLjE4OS0uMDgtLjQwNS0uMDc4LS41OTIuMDA1bC02LjA4MyAyLjY2N2MtLjEwNi4wNDYtLjIuMTE2LS4yNzQuMjA1bC00LjI1IDUuMDgzYy0uMTI5LjE1NC0uMTkuMzUyLS4xNzIuNTUyLjAyLjIuMTE3LjM4NC4yNzIuNTEuNjgzLjU1OSAxLjI2MSAxLjAzIDEuNzY3IDEuNDQgNC40MzctMS4yOTQgOC4xNTQtNC4yNDggMTAuNDU0LTguMTQ2bC0uNzEyLTEuODg5Yy0uMDcyLS4xOTMtLjIyMS0uMzQ3LS40MS0uNDI3eiIgZmlsbD0iIzAwMDAwMCIvPjwvc3ZnPg==") 20 20, auto;
}

:root {
  --blue:   #0d2b6e;
  --red:    #c8102e;
  --black:  #111;
  --mid:    #444;
  --gray:   #888;
  --border: #e0e0e0;
  --bg:     #fff;

  --sw: 33vw;   /* sidebar width */
  --font: 'Inter', system-ui, -apple-system, sans-serif;
}

html { font-size: 16px; }
body { font-family: var(--font); background: var(--bg); color: var(--black); -webkit-font-smoothing: antialiased; }
img  { display: block; max-width: 100%; }
a    { color: var(--red); text-decoration: none; }
a:hover { text-decoration: underline; }
ul   { padding-left: 1.1rem; }
li   { margin-bottom: .2rem; }
p    { line-height: 1.55; }

/* ─────────────────────────────────────────
   SIDEBAR — fixed, no inner scroll
───────────────────────────────────────── */
#sidebar {
  position: fixed;
  top: 0; left: 0;
  width: var(--sw);
  height: 100vh;
  background: var(--blue);
  overflow: hidden;          /* NO inner scrollbar */
  display: flex;
  flex-direction: column;
  z-index: 100;
}

/* ── Top block: name + logos ── */
.sidebar-top {
  flex-shrink: 0;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  padding: 1.4rem 1.25rem .9rem;
}

.sidebar-logo-left {
  height: clamp(44px, 5vw, 66px);
  width: auto;
  object-fit: contain;
  background: #fff;
  border-radius: 6px;
  padding: 4px 6px;
  flex-shrink: 0;
}

.sidebar-logo-right {
  height: clamp(44px, 5vw, 66px);
  width: auto;
  object-fit: contain;
  background: #fff;
  border-radius: 6px;
  padding: 4px 6px;
  flex-shrink: 0;
}

.sidebar-name {
  display: flex;
  flex-direction: column;
  line-height: .92;
  text-align: center;
}
.sidebar-name span {
  font-size: clamp(1.6rem, 3.2vw, 3rem);
  font-weight: 900;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: -.01em;
}

/* ── Photo: flex-grow fills remaining space ── */
.sidebar-photo {
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
  background: #ddeaf8;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.sidebar-photo-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: bottom center;
  display: block;
  mix-blend-mode: multiply;
}

/* ── Bottom block: info + social ── */
.sidebar-bottom {
  flex-shrink: 0;
  text-align: center;
  padding: .9rem 1.5rem 1rem;
}

.s-club   { font-size: clamp(.65rem, .9vw, .82rem); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.9); margin-bottom: .15rem; }
.s-role   { font-size: clamp(.85rem, 1.1vw, 1.1rem); font-weight: 800; color: #fff; margin-bottom: .15rem; }
.s-school { font-size: clamp(.7rem, .88vw, .88rem); color: rgba(255,255,255,.75); }
.s-class  { font-size: clamp(.65rem, .82vw, .82rem); color: rgba(255,255,255,.55); margin-bottom: .7rem; }

.sidebar-social {
  display: flex;
  justify-content: center;
  gap: 1rem;
}
.sidebar-social a { color: rgba(255,255,255,.75); transition: color .2s; }
.sidebar-social a:hover { color: #fff; text-decoration: none; }
.sidebar-social svg { width: clamp(18px, 1.6vw, 24px); height: clamp(18px, 1.6vw, 24px); }

/* ─────────────────────────────────────────
   MAIN CONTENT — right scrollable panel
───────────────────────────────────────── */
#main-content {
  margin-left: var(--sw);
  min-height: 100vh;
  background: #fff;
}

/* ─────────────────────────────────────────
   TOP SCHEDULE BANNER
───────────────────────────────────────── */
.schedule-banner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  overflow: hidden;
  margin-top: 1.75rem;
  padding: 1.33rem 2rem;
  background: linear-gradient(90deg, #a10d26, var(--red) 45%, #e8213f 55%, var(--red) 100%);
  background-size: 220% 100%;
  color: #fff;
  font-size: 1.13rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  box-shadow: 0 4px 16px rgba(200,16,46,.4);
  animation: sb-sheen 3.5s ease-in-out infinite;
  transition: transform .18s, box-shadow .18s;
}
.schedule-banner:hover {
  color: #fff;
  text-decoration: none;
  transform: scale(1.015);
  box-shadow: 0 6px 22px rgba(200,16,46,.6);
}

@keyframes sb-sheen {
  0%   { background-position: 0% 0; }
  50%  { background-position: 100% 0; }
  100% { background-position: 0% 0; }
}

.sb-icon { width: 24px; height: 24px; flex-shrink: 0; }

.sb-arrow {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  transition: transform .2s;
}
.schedule-banner:hover .sb-arrow { transform: translateX(5px); }

.sb-pulse {
  position: absolute;
  left: 1.85rem;
  top: 50%;
  transform: translateY(-50%);
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 0 rgba(255,255,255,.7);
  animation: sb-ping 1.8s ease-out infinite;
}
@keyframes sb-ping {
  0%   { box-shadow: 0 0 0 0 rgba(255,255,255,.6); }
  70%  { box-shadow: 0 0 0 9px rgba(255,255,255,0); }
  100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); }
}

@media (max-width: 480px) {
  .sb-pulse { display: none; }
  .schedule-banner { font-size: .96rem; padding: 1.13rem 1.33rem; gap: .53rem; }
}

@media (prefers-reduced-motion: reduce) {
  .schedule-banner { animation: none; }
  .sb-pulse { animation: none; }
}

/* ─────────────────────────────────────────
   NEWS RIBBON (scrolling marquee)
───────────────────────────────────────── */
.news-ribbon {
  overflow: hidden;
  white-space: nowrap;
  background: var(--blue);
  border-bottom: 2px solid var(--red);
  padding: .55rem 0;
}

.news-track {
  display: inline-flex;
  width: max-content;
  animation: news-scroll 22s linear infinite;
}

.news-item {
  display: inline-block;
  padding: 0 2.5rem;
  color: #fff;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .02em;
}
.news-item b {
  color: var(--red);
  font-weight: 900;
  letter-spacing: .08em;
  margin-right: .4rem;
}

@keyframes news-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

.news-ribbon:hover .news-track { animation-play-state: paused; }

@media (prefers-reduced-motion: reduce) {
  .news-track { animation: none; }
}

/* ─────────────────────────────────────────
   SECTIONS
───────────────────────────────────────── */
section {
  padding: 2.5rem 3rem;
  border-bottom: 1px solid var(--border);
  background: transparent;
}
section:last-child { border-bottom: none; }

#main-content section:nth-child(odd) {
  background: #c9daf0;
}
#main-content section:nth-child(even) {
  background: #e8f0fa;
}

h2 {
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--black);
  padding-bottom: .35rem;
  border-bottom: 2px solid var(--red);
  display: inline-block;
  margin-bottom: 1.1rem;
}

.two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
}

.three-col {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 2.5rem;
}

.two-col p, .two-col li {
  font-size: .88rem;
  color: var(--mid);
}
.two-col b { color: var(--black); }
.two-col h2 { margin-top: 0; }
a.info-link { color: var(--mid); }
a.info-link:hover { color: var(--black); text-decoration: underline; }
a.ncsa-link { color: var(--red); font-weight: 700; }
a.ncsa-link:hover { color: #a10d26; }

/* ─────────────────────────────────────────
   HIGHLIGHTS
───────────────────────────────────────── */
.video-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.video-wrap {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  background: #000;
}
.video-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.vcap {
  font-size: .76rem;
  color: var(--mid);
  margin-top: .35rem;
  line-height: 1.4;
}

/* ─────────────────────────────────────────
   EVENT HISTORY
───────────────────────────────────────── */
.event-list {
  display: flex;
  flex-direction: column;
}

.event-row {
  display: grid;
  grid-template-columns: 64px 1fr auto;
  align-items: center;
  gap: 1rem;
  padding: .55rem 0;
  border-bottom: 1px solid var(--border);
  font-size: .85rem;
}
.event-row:first-child { border-top: 1px solid var(--border); }

.ev-date { font-weight: 700; color: var(--black); white-space: nowrap; }
.ev-name { color: var(--mid); }
.ev-loc  { font-size: .75rem; color: var(--gray); white-space: nowrap; }

/* ─────────────────────────────────────────
   COACHING REFERENCES
───────────────────────────────────────── */
.refs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.ref-block p {
  font-size: .86rem;
  color: var(--mid);
  line-height: 1.65;
}
.ref-block a { font-weight: 700; color: var(--black); }
.ref-block a:hover { color: var(--red); }

/* ─────────────────────────────────────────
   MOBILE
───────────────────────────────────────── */
@media (max-width: 800px) {
  :root { --sw: 0px; }

  #sidebar {
    position: relative;
    width: 100%;
    height: auto;
    overflow: visible;
  }

  .sidebar-photo {
    flex: none;
    height: 55vw;
    max-height: 320px;
  }

  .sidebar-top   { padding: 1.5rem 1.5rem .75rem; }
  .sidebar-bottom { padding: .75rem 1.5rem 1.25rem; }

  #main-content  { margin-left: 0; }

  section { padding: 2rem 1.5rem; }

  .video-grid { grid-template-columns: repeat(2, 1fr); }
  .two-col    { grid-template-columns: 1fr; gap: 1.5rem; }
  .three-col  { grid-template-columns: 1fr; gap: 1.5rem; }
  .refs-grid  { grid-template-columns: 1fr; gap: 1.25rem; }

  .event-row { grid-template-columns: 56px 1fr; }
  .ev-loc { display: none; }
}

/* ─────────────────────────────────────────
   SCHEDULE PAGE — dark poster theme
───────────────────────────────────────── */
:root {
  --sch-bg:     #0a1226;
  --sch-bg2:    #0f1c3a;
  --sch-card:   #121f42;
  --sch-line:   rgba(255,255,255,.08);
  --sch-txt:    #f2f5fb;
  --sch-dim:    rgba(242,245,251,.5);
  --sch-away:   #ff3b5c;
  --sch-home:   #23d3a0;
  --sch-show:   #ff2f7e;
  --sch-gold:   #f5b942;
  --sch-next:   #3aa0ff;
}

body.schedule-page {
  background:
    radial-gradient(1100px 500px at 15% -10%, rgba(58,160,255,.16), transparent 60%),
    radial-gradient(900px 500px at 100% 0%, rgba(255,59,92,.14), transparent 55%),
    var(--sch-bg);
  color: var(--sch-txt);
  font-family: 'Oswald', var(--font);
}

.sch-header {
  position: relative;
  padding: 1.75rem 2rem 2.5rem;
  overflow: hidden;
  background: linear-gradient(165deg, #050a18 0%, #0d1a38 55%, #142a52 100%);
  box-shadow: 0 1px 0 rgba(255,255,255,.06) inset;
}
.sch-header::before {
  content: "";
  position: absolute;
  inset: -40% -10% auto -10%;
  height: 220%;
  background:
    repeating-linear-gradient(120deg, rgba(255,255,255,.05) 0 2px, transparent 2px 42px);
  transform: rotate(-3deg);
  pointer-events: none;
}
.sch-header::after {
  content: "";
  position: absolute;
  right: -10%;
  top: -30%;
  width: 60%;
  height: 220%;
  background: linear-gradient(100deg, transparent 40%, rgba(255,59,92,.22) 55%, transparent 70%);
  pointer-events: none;
}

.sch-header-divider {
  height: 4px;
  background: linear-gradient(90deg, var(--sch-away) 0%, var(--sch-gold) 35%, var(--sch-next) 70%, var(--sch-home) 100%);
  box-shadow: 0 2px 16px rgba(58,160,255,.35);
}

.sch-back {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: #fff;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
  padding: .55rem 1.1rem;
  border-radius: 8px;
  font-size: .82rem;
  font-weight: 700;
  font-family: var(--font);
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: 1.75rem;
  transition: background .2s, border-color .2s, transform .15s;
}
.sch-back:hover {
  color: #fff;
  background: rgba(255,255,255,.16);
  border-color: rgba(255,255,255,.32);
  text-decoration: none;
  transform: translateX(-2px);
}

.sch-title-block {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.75rem;
  max-width: 960px;
  margin: 0 auto;
  text-align: center;
}

.sch-logo {
  height: clamp(50px, 6.5vw, 80px);
  width: auto;
  object-fit: contain;
  background: #fff;
  border-radius: 8px;
  padding: 6px 8px;
  flex-shrink: 0;
  box-shadow: 0 6px 20px rgba(0,0,0,.4);
}

.sch-title h1 {
  font-family: 'Bebas Neue', var(--font);
  font-size: clamp(2.4rem, 6vw, 4rem);
  line-height: .95;
  letter-spacing: .01em;
  text-transform: uppercase;
}
.sch-title h1 .yr { color: #fff; }
.sch-title h1 .sc { color: var(--sch-away); font-style: italic; }

.sch-eyebrow {
  font-family: var(--font);
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--sch-away);
  background: rgba(255,59,92,.12);
  border: 1px solid rgba(255,59,92,.4);
  display: inline-block;
  padding: .25rem .75rem;
  border-radius: 20px;
  margin-bottom: .75rem;
}

.sch-main {
  max-width: 960px;
  margin: 0 auto;
  padding: 2.25rem 2rem 4rem;
}

/* stat cards */
.sch-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .9rem;
  margin-bottom: 1.5rem;
}
.stat {
  background: var(--sch-card);
  border: 1px solid var(--sch-line);
  border-radius: 10px;
  padding: 1rem .5rem;
  text-align: center;
}
.stat-num {
  display: block;
  font-family: 'Bebas Neue', var(--font);
  font-size: 2rem;
  color: #fff;
  line-height: 1;
}
.stat-label {
  display: block;
  font-family: var(--font);
  font-size: .64rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--sch-dim);
  margin-top: .35rem;
}

/* legend */
.sch-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  margin-bottom: 1.5rem;
  padding: 0 .25rem;
}
.lg-item {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-family: var(--font);
  font-size: .7rem;
  font-weight: 700;
  color: var(--sch-dim);
  text-transform: uppercase;
  letter-spacing: .05em;
}
.lg-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.lg-dot.home { background: var(--sch-home); box-shadow: 0 0 8px var(--sch-home); }
.lg-dot.away { background: var(--sch-away); box-shadow: 0 0 8px var(--sch-away); }
.lg-dot.showcase { background: var(--sch-gold); box-shadow: 0 0 8px var(--sch-gold); }
.lg-dot.next { background: var(--sch-next); box-shadow: 0 0 8px var(--sch-next); }

.sch-table {
  display: flex;
  flex-direction: column;
  gap: .55rem;
}

.sch-month {
  font-family: var(--font);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--sch-away);
  padding: 1.1rem .35rem .3rem;
  border-bottom: 1px solid var(--sch-line);
  margin-bottom: .15rem;
}
.sch-month:first-child { padding-top: 0; }

.sch-row {
  position: relative;
  display: grid;
  grid-template-columns: 46px 60px 64px 74px 1fr 96px;
  align-items: center;
  gap: 1rem;
  padding: .95rem 1.25rem .95rem 1.4rem;
  border-radius: 8px;
  background: var(--sch-card);
  border: 1px solid var(--sch-line);
  border-left: 4px solid var(--sch-away);
  font-family: var(--font);
  font-size: .85rem;
  transition: transform .15s, box-shadow .15s, background .15s;
}
.sch-row:hover { transform: translateX(3px); background: #16264e; }

.sch-row.home { border-left-color: var(--sch-home); }
.sch-row.away { border-left-color: var(--sch-away); }
.sch-row.showcase { border-left-color: var(--sch-show); background: linear-gradient(90deg, rgba(255,47,126,.14), var(--sch-card) 40%); }
.sch-row.showcase.gold { border-left-color: var(--sch-gold); background: linear-gradient(90deg, rgba(245,185,66,.16), var(--sch-card) 40%); }

.sch-num {
  font-family: 'Bebas Neue', var(--font);
  font-size: 1.5rem;
  color: rgba(255,255,255,.25);
  font-style: italic;
}
.sch-day { font-weight: 600; color: var(--sch-dim); text-transform: uppercase; font-size: .72rem; }
.sch-date { font-weight: 700; color: #fff; white-space: nowrap; }
.sch-time { font-size: .78rem; font-weight: 600; color: var(--sch-dim); white-space: nowrap; }
.sch-time.tbd { color: rgba(242,245,251,.35); font-style: italic; font-weight: 500; }

.sch-opp { color: var(--sch-dim); display: flex; flex-direction: column; }
.sch-opp b { color: #fff; font-weight: 700; margin-right: .35rem; }
.sch-opp small { color: var(--sch-dim); font-size: .72rem; margin-top: .15rem; text-transform: uppercase; letter-spacing: .04em; }

.sch-tag {
  justify-self: end;
  font-size: .68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: .32rem .65rem;
  border-radius: 20px;
  white-space: nowrap;
}
.sch-tag.home  { color: var(--sch-home); background: rgba(35,211,160,.14); border: 1px solid rgba(35,211,160,.35); }
.sch-tag.away  { color: var(--sch-away); background: rgba(255,59,92,.14); border: 1px solid rgba(255,59,92,.35); }
.sch-tag.showcase-tag { color: var(--sch-show); background: rgba(255,47,126,.14); border: 1px solid rgba(255,47,126,.4); }
.sch-tag.showcase-tag.gold { color: var(--sch-gold); background: rgba(245,185,66,.14); border: 1px solid rgba(245,185,66,.4); }
.sch-tag.canceled-tag { color: #9aa3b5; background: rgba(154,163,181,.14); border: 1px solid rgba(154,163,181,.4); }

.sch-row.canceled { border-left-color: #6b7280; }
.sch-row.canceled .sch-opp small { color: #ff7a7a; font-weight: 700; }
.sch-row.canceled .sch-opp b { text-decoration: line-through; text-decoration-color: rgba(255,255,255,.4); }

/* next game highlight */
.sch-row.next-game {
  border-left-color: var(--sch-next);
  background: linear-gradient(90deg, rgba(58,160,255,.18), var(--sch-card) 55%);
  box-shadow: 0 0 0 1px rgba(58,160,255,.4), 0 8px 24px rgba(58,160,255,.18);
}
.sch-row.next-game .sch-num { color: var(--sch-next); }
.sch-row.next-game::after {
  content: "NEXT GAME";
  position: absolute;
  top: -9px;
  right: 1.25rem;
  background: var(--sch-next);
  color: #06182f;
  font-family: var(--font);
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .08em;
  padding: .2rem .55rem;
  border-radius: 3px;
  box-shadow: 0 2px 10px rgba(58,160,255,.5);
}

/* played (past) games */
.sch-row.played { opacity: .4; filter: grayscale(.3); }
.sch-row.played:hover { opacity: .65; transform: none; }

@media (max-width: 700px) {
  .sch-title-block { flex-direction: column; gap: .9rem; }
  .sch-stats { grid-template-columns: repeat(2, 1fr); }
  .sch-row {
    grid-template-columns: 34px 1fr auto;
    grid-template-areas:
      "num date tag"
      "num time time"
      "num opp opp";
    row-gap: .3rem;
  }
  .sch-num  { grid-area: num; }
  .sch-day  { display: none; }
  .sch-date { grid-area: date; }
  .sch-time { grid-area: time; }
  .sch-tag  { grid-area: tag; justify-self: start; }
  .sch-opp  { grid-area: opp; }
  .sch-row.next-game::after { top: .6rem; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}
