:root {
  --navy: #08111f;
  --blue: #1f4f8f;
  --red: #bf202a;
  --gold: #f5c451;
  --green: #1d7a5f;
  --ink: #f5f7fb;
  --muted: #bac4d6;
  --panel: rgba(255, 255, 255, 0.09);
  --line: rgba(255, 255, 255, 0.18);
}

.reveal {
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.reveal .slides {
  text-align: left;
}

.deck-logo {
  filter: drop-shadow(0 10px 24px rgba(0, 0, 0, 0.55));
  height: clamp(54px, 8.5vh, 96px);
  opacity: 0.96;
  pointer-events: none;
  position: fixed;
  right: clamp(18px, 3vw, 42px);
  top: clamp(14px, 2.5vh, 30px);
  width: auto;
  z-index: 40;
}

.reveal .slides section {
  box-sizing: border-box;
  padding-top: 0.35em;
}

.reveal .slides section:not(.hero):not(.closing) h2:first-child {
  max-width: calc(100% - 160px);
}

.reveal h1,
.reveal h2,
.reveal h3 {
  color: #ffffff;
  font-family: inherit;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: none;
}

.reveal h1 {
  font-size: 3.25em;
  line-height: 0.93;
  margin: 0;
}

.reveal h2 {
  font-size: 2.2em;
  line-height: 1;
  margin-bottom: 0.55em;
}

.reveal h3 {
  font-size: 1.05em;
  margin: 0 0 0.4em;
}

.reveal p {
  color: var(--muted);
  font-size: 0.82em;
  line-height: 1.35;
}

.reveal small,
.small {
  color: #ccd4e3;
  font-size: 0.48em;
  line-height: 1.35;
}

.hero,
.chapter,
.closing,
.photo-moment {
  overflow: hidden;
}

.has-bg {
  position: relative;
}

.has-bg::before {
  background:
    linear-gradient(90deg, rgba(8, 17, 31, 0.9) 0%, rgba(8, 17, 31, 0.68) 42%, rgba(8, 17, 31, 0.2) 100%),
    radial-gradient(circle at 20% 20%, rgba(191, 32, 42, 0.24), transparent 42%);
  content: "";
  inset: -1px;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}

.has-bg > * {
  position: relative;
  z-index: 1;
}

.closing.has-bg::before {
  background:
    linear-gradient(0deg, rgba(8, 17, 31, 0.72), rgba(8, 17, 31, 0.72)),
    radial-gradient(circle at 50% 30%, rgba(191, 32, 42, 0.34), transparent 52%);
}

.hero h1,
.closing h2 {
  max-width: 10ch;
  text-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
}

.eyebrow,
.chapter-no {
  color: var(--gold) !important;
  font-size: 0.42em !important;
  font-weight: 900;
  letter-spacing: 0.18em !important;
  margin: 0 0 1.1em;
  text-transform: uppercase;
}

.season {
  color: #ffffff !important;
  font-size: 1.05em !important;
  font-weight: 800;
  margin-top: 0.55em;
}

.motto {
  display: inline-flex;
  align-items: center;
  border: 2px solid rgba(255, 255, 255, 0.34);
  border-radius: 999px;
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.28);
  color: #ffffff;
  font-size: 0.56em;
  font-weight: 900;
  margin-top: 1.5em;
  padding: 0.55em 1.05em;
}

.stadium-lines,
.motion-lines {
  inset: -18%;
  opacity: 0.38;
  pointer-events: none;
  position: absolute;
  transform: rotate(-12deg);
}

.stadium-lines {
  background:
    repeating-linear-gradient(90deg, transparent 0 74px, rgba(255, 255, 255, 0.2) 76px 79px),
    linear-gradient(180deg, transparent 0 48%, rgba(255, 255, 255, 0.25) 50%, transparent 52%);
  animation: drift 16s linear infinite;
}

.motion-lines {
  background: repeating-linear-gradient(115deg, transparent 0 22px, rgba(255, 255, 255, 0.18) 23px 27px);
  animation: rush 9s linear infinite;
}

@keyframes drift {
  from { transform: rotate(-12deg) translateX(0); }
  to { transform: rotate(-12deg) translateX(88px); }
}

@keyframes rush {
  from { transform: rotate(-16deg) translateX(-60px); }
  to { transform: rotate(-16deg) translateX(120px); }
}

.agenda-grid,
.staff-board,
.equipment,
.duty-grid,
.discussion,
.helmet-care,
.comms,
.support-grid,
.focus-list,
.three-beats,
.groups {
  display: grid;
  gap: 0.38em;
}

.agenda-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tile,
.staff-card,
.stat,
.rule-card,
.quote-card,
.discussion > div,
.helmet-care > div,
.comms > div,
.support-grid > div,
.focus-list > div,
.three-beats > div,
.duty-grid > div,
.groups > div,
.support-strip > div {
  backdrop-filter: blur(14px);
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 16px 60px rgba(0, 0, 0, 0.18);
}

.tile {
  color: #ffffff;
  font-size: 0.58em;
  font-weight: 800;
  min-height: 96px;
  padding: 1em;
}

.tile span {
  color: var(--gold);
  display: block;
  font-size: 0.68em;
  margin-bottom: 1.5em;
}

.chapter {
  text-align: left;
}

.chapter h2 {
  font-size: 3em;
  margin-bottom: 0.25em;
}

.chapter p:last-child {
  color: #ffffff;
  font-size: 0.78em;
  max-width: 18em;
}

.scoreboard {
  align-items: center;
  background: linear-gradient(120deg, rgba(31, 79, 143, 0.72), rgba(255, 255, 255, 0.08));
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  justify-content: space-between;
  margin-bottom: 0.75em;
  overflow: hidden;
  padding: 0.65em 0.9em;
}

.scoreboard.champion {
  background: linear-gradient(120deg, rgba(191, 32, 42, 0.78), rgba(245, 196, 81, 0.22));
}

.scoreboard strong {
  color: #ffffff;
  font-size: 1.9em;
  line-height: 1;
}

.label {
  color: var(--gold) !important;
  font-size: 0.38em !important;
  font-weight: 900;
  margin: 0 0 0.25em;
  text-transform: uppercase;
}

.trophy {
  align-items: center;
  aspect-ratio: 1;
  background:
    radial-gradient(circle at 50% 25%, #fff2b4 0 10%, transparent 11%),
    linear-gradient(135deg, #f8da78, #b57a18);
  border-radius: 50%;
  color: #111827;
  display: flex;
  font-size: 2em;
  font-weight: 1000;
  filter: drop-shadow(0 14px 25px rgba(0, 0, 0, 0.35));
  justify-content: center;
  width: 1.55em;
}

.stat-row {
  display: grid;
  gap: 0.45em;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.stat {
  min-height: 128px;
  padding: 0.65em;
}

.stat b {
  color: var(--gold);
  display: block;
  font-size: 1.65em;
  line-height: 0.95;
}

.stat span,
.staff-card span,
.support-grid span,
.focus-list span,
.three-beats span,
.discussion span,
.helmet-care span,
.comms span {
  color: var(--muted);
  display: block;
  font-size: 0.42em;
  line-height: 1.25;
  margin-top: 0.35em;
}

.photo-moment h2 {
  font-size: 2.8em;
  max-width: 9ch;
  position: relative;
}

.photo-moment p {
  color: #ffffff;
  max-width: 18em;
  position: relative;
}

.coach-feature,
.split,
.uniform {
  align-items: center;
  display: grid;
  gap: 0.85em;
  grid-template-columns: 0.9fr 1.5fr;
}

.avatar {
  align-items: center;
  aspect-ratio: 1;
  background:
    linear-gradient(135deg, rgba(245, 196, 81, 0.95), rgba(191, 32, 42, 0.95)),
    repeating-linear-gradient(90deg, transparent 0 24px, rgba(255,255,255,0.2) 24px 26px);
  border-radius: 50%;
  box-shadow: 0 24px 75px rgba(0, 0, 0, 0.38);
  color: #111827;
  display: flex;
  font-size: 1.9em;
  font-weight: 1000;
  justify-content: center;
  max-width: 260px;
}

.staff-board {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.staff-card {
  min-height: 118px;
  padding: 0.72em;
}

.staff-card b,
.support-strip b,
.discussion b,
.helmet-care b,
.comms b,
.support-grid b,
.focus-list b,
.three-beats b {
  color: #ffffff;
  display: block;
  font-size: 0.62em;
  line-height: 1.08;
}

.offense .staff-card {
  border-top: 5px solid var(--red);
}

.defense .staff-card {
  border-top: 5px solid var(--blue);
}

.support-strip {
  display: grid;
  gap: 0.45em;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 0.75em;
}

.support-strip > div {
  padding: 0.72em;
}

.support-strip span {
  color: var(--gold);
  display: block;
  font-size: 0.38em;
  font-weight: 900;
  text-transform: uppercase;
}

.philosophy {
  border-left: 7px solid var(--gold);
  color: #ffffff;
  font-size: 0.68em;
  padding-left: 0.7em;
}

.big-icon {
  color: var(--gold);
  font-size: 4.2em;
  line-height: 1;
  text-align: center;
}

.shield-mark {
  align-items: center;
  background: linear-gradient(135deg, #f5c451, #ffffff);
  clip-path: polygon(50% 0, 92% 16%, 82% 78%, 50% 100%, 18% 78%, 8% 16%);
  color: #111827;
  display: flex;
  font-weight: 1000;
  height: 1.3em;
  justify-content: center;
  margin-inline: auto;
  width: 1.08em;
}

.rule-card {
  border-left: 8px solid var(--gold);
  padding: 1em;
}

.rule-card strong {
  color: #ffffff;
  display: block;
  font-size: 1.05em;
}

.rule-card p {
  font-size: 0.78em;
}

.three-beats,
.focus-list,
.support-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.three-beats > div,
.focus-list > div,
.support-grid > div {
  min-height: 140px;
  padding: 0.75em;
}

.urgent {
  border-color: rgba(191, 32, 42, 0.8) !important;
  box-shadow: inset 0 0 0 2px rgba(191, 32, 42, 0.25), 0 18px 55px rgba(191, 32, 42, 0.14) !important;
}

.young-pros {
  text-align: center;
}

.young-pros h2 {
  font-size: 3.1em;
}

.young-pros p {
  color: #ffffff;
  margin-inline: auto;
  max-width: 18em;
}

.groups {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.groups > div {
  min-height: 330px;
  padding: 0.8em;
}

.groups h3 {
  border-bottom: 1px solid var(--line);
  color: var(--gold);
  padding-bottom: 0.5em;
}

.groups p {
  color: #ffffff;
  font-size: 0.58em;
  margin: 0.5em 0;
}

.timeline {
  display: grid;
  gap: 0.28em;
  margin-bottom: 0.6em;
}

.timeline > div {
  align-items: center;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.04));
  border-left: 6px solid var(--blue);
  border-radius: 6px;
  display: grid;
  gap: 0.5em;
  grid-template-columns: 0.8fr 1.6fr;
  padding: 0.38em 0.65em;
}

.timeline b {
  color: #ffffff;
  font-size: 0.68em;
}

.timeline span {
  color: var(--muted);
  font-size: 0.44em;
}

.timeline .fixed {
  border-left-color: var(--gold);
}

.training-clock,
.money-slide {
  display: grid;
  gap: 0.5em;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.training-clock > div,
.money-slide > div {
  background: linear-gradient(135deg, rgba(31, 79, 143, 0.7), rgba(255, 255, 255, 0.08));
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0.85em;
}

.training-clock b,
.money-slide b {
  color: #ffffff;
  display: block;
  font-size: 1.2em;
}

.training-clock span,
.money-slide span {
  color: var(--gold);
  display: block;
  font-size: 0.46em;
  font-weight: 900;
  margin-bottom: 0.35em;
  text-transform: uppercase;
}

.callout {
  background: rgba(245, 196, 81, 0.16);
  border: 1px solid rgba(245, 196, 81, 0.4);
  border-radius: 8px;
  color: #ffffff !important;
  font-weight: 800;
  padding: 0.58em 0.75em;
}

.danger {
  background: rgba(191, 32, 42, 0.22);
  border-color: rgba(191, 32, 42, 0.7);
}

.comms,
.helmet-care,
.discussion {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.comms > div,
.helmet-care > div,
.discussion > div {
  min-height: 112px;
  padding: 0.68em;
}

.playbook {
  display: grid;
  gap: 0.5em;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 0.8em;
}

.playbook > div {
  align-items: center;
  aspect-ratio: 1.7;
  background:
    linear-gradient(rgba(29, 122, 95, 0.74), rgba(29, 122, 95, 0.74)),
    repeating-linear-gradient(90deg, transparent 0 38px, rgba(255,255,255,0.22) 39px 42px);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 8px;
  display: flex;
  justify-content: center;
}

.playbook span {
  color: #ffffff;
  font-size: 0.58em;
  font-weight: 900;
}

.priority-stack {
  display: grid;
  gap: 0.36em;
  margin-bottom: 0.7em;
}

.priority-stack > div {
  background: linear-gradient(90deg, rgba(245, 196, 81, 0.86), rgba(191, 32, 42, 0.84));
  border-radius: 8px;
  color: #111827;
  font-size: 0.8em;
  font-weight: 1000;
  padding: 0.45em 0.7em;
}

.quote-card {
  padding: 0.8em 1em;
}

.quote-card p {
  color: #ffffff;
  font-size: 0.72em;
  margin: 0;
}

.big-statement {
  color: var(--gold);
  font-size: 2.3em;
  font-weight: 1000;
  line-height: 1;
  margin-bottom: 0.25em;
}

.equipment {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.equipment > div {
  align-items: center;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid var(--line);
  border-radius: 8px;
  color: #ffffff;
  display: flex;
  flex-direction: column;
  font-size: 0.55em;
  font-weight: 900;
  justify-content: center;
  min-height: 126px;
  padding: 0.55em;
  text-align: center;
}

.equipment small {
  color: var(--gold);
  font-size: 0.58em;
  font-weight: 800;
  margin-top: 0.25em;
}

.jersey {
  align-items: center;
  aspect-ratio: 0.9;
  background:
    radial-gradient(circle at 50% 24%, rgba(255,255,255,0.25), transparent 17%),
    linear-gradient(135deg, #153e85, #0b2555);
  border: 5px solid rgba(255,255,255,0.4);
  border-radius: 8px 8px 22px 22px;
  box-shadow: 0 24px 75px rgba(0, 0, 0, 0.35);
  color: #ffffff;
  display: flex;
  font-size: 1.3em;
  font-weight: 1000;
  justify-content: center;
  max-width: 280px;
}

.no-list {
  display: grid;
  gap: 0.32em;
}

.no-list > div {
  background: rgba(191, 32, 42, 0.18);
  border-left: 6px solid var(--red);
  border-radius: 6px;
  color: #ffffff;
  font-size: 0.56em;
  font-weight: 800;
  padding: 0.43em 0.7em;
}

.big-copy {
  color: #ffffff !important;
  font-size: 1.05em !important;
  max-width: 18em;
}

.closing {
  text-align: center;
}

.closing h2 {
  font-size: 3.8em;
  margin-inline: auto;
}

.closing p {
  color: #ffffff;
  font-size: 0.75em;
  margin: 0.25em 0;
}

.closing .motto {
  margin-top: 1em;
}

@media (max-width: 760px) {
  .deck-logo {
    height: 48px;
    right: 14px;
    top: 12px;
  }

  .reveal .slides section:not(.hero):not(.closing) h2:first-child {
    max-width: calc(100% - 78px);
  }

  .reveal h1 {
    font-size: 2.35em;
  }

  .reveal h2,
  .chapter h2 {
    font-size: 1.75em;
  }

  .agenda-grid,
  .stat-row,
  .staff-board,
  .three-beats,
  .focus-list,
  .groups,
  .training-clock,
  .money-slide,
  .equipment,
  .comms,
  .helmet-care,
  .discussion,
  .support-grid,
  .coach-feature,
  .split,
  .uniform,
  .support-strip,
  .playbook {
    grid-template-columns: 1fr;
  }

  .tile,
  .stat,
  .staff-card,
  .three-beats > div,
  .focus-list > div,
  .groups > div,
  .equipment > div {
    min-height: auto;
  }
}
