@import url("https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap");

:root {
  --black: #050505;
  --blue: #0000d8;
  --cyan: #00ffff;
  --green: #00ff00;
  --yellow: #ffff00;
  --red: #ff0000;
  --magenta: #ff00ff;
  --white: #ffffff;
}

* {
  box-sizing: border-box;
}

html,
body {
  min-height: 100%;
}

body {
  margin: 0;
  overflow: hidden;
  background: #111;
  color: var(--white);
  font-family: "Press Start 2P", "Lucida Console", "Courier New", monospace;
  -webkit-font-smoothing: none;
  font-smooth: never;
  text-rendering: optimizeSpeed;
}

button,
a {
  font: inherit;
}

.tv-shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 0;
  background: #000;
}

.teletext-screen {
  position: relative;
  width: min(960px, 100vw);
  aspect-ratio: 4 / 3;
  max-height: 100vh;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: var(--black);
  box-shadow: none;
  image-rendering: pixelated;
}

.teletext-screen.is-tuning {
  animation: tuneFlicker 180ms steps(2) 2;
}

.teletext-screen::before {
  content: none;
  position: absolute;
  inset: 0;
  z-index: 19;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.12) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px);
  background-size: calc(100% / 40) calc(100% / 24);
  opacity: 0.18;
  pointer-events: none;
}

.teletext-screen::after {
  content: none;
}

.top-row,
.remote-row {
  position: absolute;
  left: 0;
  right: 0;
  z-index: 12;
  display: grid;
  align-items: center;
  min-height: 8.33%;
  padding: 0 1ch;
  font-size: clamp(0.52rem, 1.05vw, 0.92rem);
  font-weight: 900;
  letter-spacing: 0;
  text-shadow:
    1px 0 currentColor;
}

.top-row {
  top: 0;
  grid-template-columns: 1fr auto 1fr;
  gap: 2ch;
  background: var(--black);
  color: var(--white);
}

.top-row span {
  display: block;
  white-space: nowrap;
}

#serviceHeader {
  text-align: right;
}

.service-name {
  text-align: center;
}

.remote-row {
  bottom: 0;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 2.2em;
  align-content: center;
  align-items: stretch;
  gap: 0;
  background: var(--black);
  border-top: 0;
}

.remote-row button {
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 0;
  margin: 0;
  padding: 0;
  place-items: center;
  appearance: none;
  line-height: 1;
  white-space: nowrap;
}

.remote-row button,
.inline-button {
  border: 0;
  color: #000;
  cursor: pointer;
  font-weight: 900;
  border-radius: 0;
  text-transform: uppercase;
}

.red-key {
  background: var(--red);
}

.green-key {
  background: var(--green);
}

.yellow-key {
  background: var(--yellow);
}

.blue-key {
  background: var(--cyan);
}

.page {
  position: absolute;
  inset: 8.33% 0;
  bottom: 8.33%;
  display: none;
  padding: 0 1.25ch;
  font-size: clamp(0.62rem, 1.28vw, 1.08rem);
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.035em;
  font-weight: 900;
  text-shadow: 1px 0 currentColor;
}

.page.is-active {
  display: block;
}

.page p {
  margin: 0 0 0.28em;
  min-height: 1em;
}

.page a {
  color: var(--yellow);
  text-decoration: none;
}

.title-band {
  margin: 0 0 0.42em;
  padding: 0 0.35em;
  color: #000;
  font-weight: 900;
  box-shadow:
    inset 0 -0.12em rgba(0, 0, 0, 0.22),
    0 0.12em rgba(255, 255, 255, 0.16);
}

.aertel-logo {
  display: block;
  margin: 0 0 0.34em;
  padding: 0;
  background: var(--blue);
  overflow: hidden;
  image-rendering: pixelated;
}

.foxtel-mark {
  display: block;
  width: 100%;
  height: auto;
  max-height: 18.5vh;
  shape-rendering: crispEdges;
}

.logo-blue,
.logo-tile rect {
  fill: var(--blue);
}

.logo-tile .logo-green {
  fill: var(--green);
}

.section-label {
  color: var(--green);
  font-weight: 900;
  margin-bottom: 0.25em;
}

.breaking-panel {
  margin-top: 0.55em;
}

.breaking-label {
  display: inline-block;
  width: fit-content;
  margin-bottom: 0.55em;
  padding: 0.12em 0.45em 0.04em;
  color: #000;
  background: var(--yellow);
  line-height: 1;
}

.breaking-layout {
  display: grid;
  grid-template-columns: minmax(120px, 31%) minmax(0, 1fr);
  align-items: center;
  gap: 1.2ch;
  margin-top: 0.15em;
}

.breaking-copy {
  display: grid;
  align-content: center;
  justify-items: start;
  min-width: 0;
}

.pixel-fox {
  display: block;
  width: 100%;
  max-height: 38vh;
  justify-self: center;
  transform: translateY(1.05em);
  shape-rendering: crispEdges;
}

.breaking-layout h1 {
  margin: 0;
  color: var(--yellow);
  font-size: clamp(0.9rem, 2.25vw, 1.85rem);
  line-height: 1.18;
  letter-spacing: 0;
  text-shadow: 1px 0 currentColor;
}

.cyan-text {
  color: var(--cyan);
}

.blue {
  background: var(--blue);
  color: var(--white);
}

.green {
  background: var(--green);
}

.red {
  background: var(--red);
  color: var(--white);
}

.cyan {
  background: var(--cyan);
}

.magenta {
  background: var(--magenta);
}

.yellow {
  color: var(--yellow);
}

.green-text {
  color: var(--green);
}

.red-text {
  color: var(--red);
}

.hero-answer {
  margin: 0 0 0.35em;
  color: var(--white);
  font-size: clamp(0.92rem, 2.15vw, 1.78rem);
  font-weight: 900;
}

.hero-answer span,
.verdict {
  color: var(--yellow);
  font-size: clamp(2.6rem, 7.5vw, 6.2rem);
  line-height: 0.78;
  letter-spacing: -0.04em;
  text-shadow:
    0.045em 0 var(--red),
    -0.045em 0 var(--cyan);
}

.page-404 {
  top: 8.33%;
  padding-top: 0.6em;
}

.page-404 .title-band {
  margin-bottom: 0.7em;
  min-height: 1em;
}

.lost-page-layout {
  display: grid;
  grid-template-columns: minmax(210px, 42%) minmax(0, 1fr);
  align-items: center;
  gap: 2.2ch;
  min-height: calc(100% - 2.1em);
}

.lost-fox {
  display: block;
  width: 100%;
  max-height: 60vh;
  object-fit: contain;
  image-rendering: pixelated;
  shape-rendering: crispEdges;
}

.lost-page-copy {
  display: grid;
  align-content: center;
  justify-items: start;
  min-width: 0;
}

.error-code {
  margin-bottom: 0.12em;
  color: var(--yellow);
  font-size: clamp(3.4rem, 10vw, 8rem);
  line-height: 0.78;
  letter-spacing: -0.08em;
  text-shadow:
    0.045em 0 var(--red),
    -0.045em 0 var(--cyan);
}

.lost-page-headline {
  margin-bottom: 0.8em !important;
  color: var(--white);
  font-size: clamp(0.82rem, 1.8vw, 1.45rem);
  line-height: 1.15;
}

.return-key {
  margin-top: 1.1em;
  padding: 0.4em 0.65em 0.28em;
  border: 0;
  border-radius: 0;
  color: #000;
  background: var(--red);
  cursor: pointer;
  text-transform: uppercase;
}

.return-key:hover,
.return-key:focus-visible {
  color: var(--white);
  outline: 0.18em solid var(--white);
  outline-offset: 0.16em;
}

.two-col,
.weather-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2ch;
}

.weather-page {
  padding-top: 0.7em;
}

.weather-page .data-panel {
  min-height: 84%;
}

.weather-page .source {
  display: none;
}

.weather-title {
  margin: 0.1em 0 0.2em;
  color: var(--green);
  font-size: clamp(1.75rem, 5.25vw, 4.1rem);
  line-height: 0.86;
  letter-spacing: 0;
  text-transform: lowercase;
  text-shadow: 0.035em 0 var(--green);
  border-bottom: 0.12em solid var(--green);
}

.weather-meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 15ch;
  gap: 1ch;
  align-items: start;
  margin-bottom: 0.32em;
  line-height: 1.05;
}

.weather-meta span:last-child {
  color: var(--green);
}

.weather-meta strong {
  color: var(--green);
}

.weather-line {
  margin-top: 0.95em !important;
}

.weather-line span,
.weather-section .green-text {
  color: var(--green);
}

.weather-board {
  display: grid;
  grid-template-columns: minmax(0, 50ch) minmax(15ch, 1fr);
  gap: 3.2ch;
  min-height: 20.8em;
  margin-top: 1.05em;
  align-items: start;
}

.weather-readings {
  display: grid;
  align-content: start;
  gap: 1.75em;
}

.weather-section {
  margin-top: 0;
  max-width: 46ch;
}

.weather-section + .weather-section {
  margin-top: 0;
}

.weather-section p {
  margin-bottom: 0.2em;
  line-height: 1.12;
}

.weather-reading {
  display: grid;
  grid-template-columns: 9ch 15ch minmax(0, 1fr);
  gap: 1.35ch;
}

.weather-reading span {
  color: var(--white);
}

.weather-reading strong {
  color: var(--yellow);
  font-style: normal;
}

.weather-reading em {
  color: var(--white);
  font-style: normal;
}

.weather-summary {
  padding-left: 10.35ch;
  color: var(--white);
}

.weather-current-forecast {
  display: grid;
  grid-template-columns: 13.2ch minmax(0, 1fr);
  gap: 2ch;
  align-items: center;
  margin-top: 0.55em;
  padding: 0.32em 1.4ch;
  border: 0.28em solid var(--blue);
}

.weather-current-forecast-icon {
  width: 12.2ch;
  height: auto;
  justify-self: center;
  image-rendering: pixelated;
  filter:
    drop-shadow(0.14em 0 #454162)
    drop-shadow(-0.14em 0 #454162)
    drop-shadow(0 0.14em #454162)
    drop-shadow(0 -0.14em #454162);
}

.weather-current-forecast-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 5ch 14ch;
  gap: 0.45em 1.2ch;
  align-items: baseline;
}

.weather-current-place {
  color: var(--white);
  font-size: 1.34em;
}

.weather-current-temp {
  color: var(--green);
  font-size: 1.52em;
}

.weather-current-wind {
  color: var(--white);
}

.weather-current-condition {
  grid-column: 1 / -1;
  color: var(--cyan);
  font-size: 1.05em;
}

.weather-current-detail {
  grid-column: 1 / -1;
  color: var(--white);
  font-size: 0.72em;
}

.weather-three-day {
  margin-top: 0.55em;
  border: 0.28em solid var(--blue);
}

.weather-three-day-header {
  min-height: 1.75em;
  display: grid;
  place-items: center;
  color: var(--yellow);
  background: var(--blue);
  font-size: 1.14em;
}

.weather-three-day-columns {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  min-height: 15.7em;
}

.weather-three-day-column {
  display: grid;
  grid-template-rows: 1.7em 8.2em 1.5em 1.35em 1.35em;
  align-items: center;
  justify-items: center;
  padding: 0.6em 0.8ch 0.7em;
  border-right: 0.28em solid var(--blue);
  text-align: center;
}

.weather-three-day-column:last-child {
  border-right: 0;
}

.weather-three-day-column h2 {
  margin: 0;
  font-size: 0.86em;
  line-height: 1;
}

.weather-three-day-column svg,
.weather-three-day-column img {
  width: 12.2ch;
  height: auto;
  image-rendering: pixelated;
  filter:
    drop-shadow(0.12em 0 #454162)
    drop-shadow(-0.12em 0 #454162)
    drop-shadow(0 0.12em #454162)
    drop-shadow(0 -0.12em #454162);
}

.weather-three-day-column strong {
  color: var(--white);
  line-height: 1;
}

.weather-temp-range {
  color: var(--yellow);
  text-align: right;
}

.weather-rain-risk {
  color: var(--white);
  font-size: 0.78em;
}

.weather-visuals {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.35em;
  align-content: start;
  justify-items: end;
  padding-top: 0.4em;
}

.weather-visual {
  margin: 0;
}

.weather-visual svg,
.weather-visual img {
  display: block;
  width: 100%;
  max-width: 17ch;
  height: auto;
  margin-left: auto;
  image-rendering: pixelated;
}

.weather-visual figcaption {
  margin-top: 0.35em;
  color: var(--green);
  font-size: 0.72em;
  line-height: 1.15;
  text-align: center;
}

.weather-more {
  position: absolute;
  right: 2ch;
  bottom: 1.55em;
  color: var(--green);
}

.weather-strap {
  position: absolute;
  left: 1.65ch;
  right: 1.65ch;
  bottom: 0.75em;
  min-height: 1.05em;
  padding: 0.08em 0.35em 0;
  color: #000;
  background: var(--green);
  text-align: center;
}

.notice {
  margin-top: 0.4em !important;
  padding: 0 0.35em;
  color: #000;
  font-weight: 900;
}

.source {
  color: #aaa;
  font-size: 0.75em;
}

.sport-page {
  padding-top: 0.7em;
}

.sport-page.is-active {
  display: flex;
  flex-direction: column;
}

.sport-page > .source {
  display: none;
}

.sport-page .data-panel {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: 0;
}

.sport-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: calc(4.25em + 4px);
  margin-bottom: 0.65em;
  padding: calc(0.2em + 4px) 0.65em 0.06em;
  color: var(--yellow);
  background: var(--blue);
  border-bottom: 0.24em solid var(--green);
  line-height: 1;
}

.sport-banner strong {
  font-size: 3.1em;
  letter-spacing: 0.14em;
  text-shadow: 0.055em 0 var(--red);
}

.sport-banner time {
  align-self: flex-end;
  padding-bottom: 0.35em;
  color: var(--cyan);
  font-size: 0.72em;
  white-space: nowrap;
}

.sport-headlines {
  display: grid;
  flex: 1;
  align-content: space-between;
  gap: 0.4em;
  margin: 0;
  padding: 0 0 0.25em;
  list-style: none;
}

.sport-headline {
  display: grid;
  grid-template-rows: auto 1fr;
  align-content: start;
  min-height: 0;
}

.sport-article-heading {
  display: grid;
  grid-template-columns: 9ch minmax(0, 1fr);
  gap: 1ch;
  align-items: baseline;
}

.sport-article-heading span {
  color: var(--cyan);
  font-size: 0.98em;
  line-height: 1.08;
}

.sport-article-heading h1 {
  margin: 0;
  padding: 0;
  color: var(--yellow);
  font-size: 0.98em;
  line-height: 1.08;
  text-transform: uppercase;
}

.sport-headline p {
  margin: 0.22em 0 0;
  color: var(--white);
  font-size: 0.98em;
  line-height: 1.08;
  text-transform: uppercase;
}

.subtitle {
  color: var(--cyan);
}

.inline-button {
  min-height: 2.2em;
  margin-top: 1em;
  padding: 0 1ch;
  background: var(--yellow);
}

.number-entry {
  position: fixed;
  right: 28px;
  bottom: 24px;
  z-index: 30;
  min-width: 4ch;
  color: var(--yellow);
  font: 900 clamp(1.4rem, 4.2vw, 3.6rem) "Press Start 2P", "Courier New", monospace;
  text-shadow:
    0.045em 0 var(--red),
    -0.045em 0 var(--cyan);
}

.wordle-page {
  top: 8.33%;
  padding: 0.45em 1.25ch 0.2em;
}

.wordle-page.is-active {
  display: flex;
  flex-direction: column;
}

.wordle-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 3.2em;
  padding: 0.3em 0.6em 0.22em;
  color: var(--yellow);
  background: var(--blue);
  border-bottom: 0.28em solid var(--green);
}

.wordle-heading h1,
.wordle-heading p {
  margin: 0;
}

.wordle-heading h1 {
  font-size: 1.3em;
  line-height: 1;
}

.wordle-heading h1 span {
  color: var(--cyan);
}

.wordle-heading p {
  margin-top: 0.45em;
  color: var(--white);
  font-size: 0.62em;
}

.wordle-message {
  min-height: 1.4em !important;
  margin: 0.4em 0 0.25em !important;
  color: var(--cyan);
  font-size: 0.68em;
  line-height: 1.2;
  text-align: center;
}

.wordle-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18ch, 27ch);
  flex: 1 1 auto;
  align-items: center;
  gap: 2.2ch;
  min-height: 0;
}

.wordle-board {
  display: grid;
  width: min(20em, 100%, 50vh);
  align-content: center;
  gap: 0.28em;
  min-height: 0;
  margin: 0 auto;
}

.wordle-row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.3em;
  min-height: 0;
}

.wordle-cell {
  display: grid;
  aspect-ratio: 1;
  place-items: center;
  border: 0.18em solid #555;
  color: var(--white);
  background: #000;
  font-size: clamp(0.78rem, 2.3vw, 1.8rem);
  line-height: 1;
}

.wordle-cell.has-letter {
  border-color: var(--white);
}

.wordle-cell.is-correct,
.wordle-key.is-correct,
.wordle-legend .is-correct {
  border-color: var(--green);
  color: #000;
  background: var(--green);
}

.wordle-cell.is-present,
.wordle-key.is-present,
.wordle-legend .is-present {
  border-color: var(--yellow);
  color: #000;
  background: var(--yellow);
}

.wordle-cell.is-absent,
.wordle-key.is-absent,
.wordle-legend .is-absent {
  border-color: var(--blue);
  color: var(--white);
  background: var(--blue);
}

.wordle-keyboard {
  display: grid;
  gap: 0.35em;
  padding: 0 0 0.3em;
}

.wordle-key-row {
  display: flex;
  justify-content: center;
  gap: 0.3ch;
}

.wordle-key {
  width: min(3.05em, 8.4%);
  min-height: 2.55em;
  padding: 0;
  border: 0;
  color: #000;
  background: var(--white);
  cursor: pointer;
  font-size: 0.66em;
  line-height: 1;
}

.wordle-key.is-wide {
  width: min(6.4em, 15%);
  font-size: 0.48em;
}

.wordle-key:hover,
.wordle-key:focus-visible {
  outline: 0.2em solid var(--cyan);
  outline-offset: 0.08em;
}

.wordle-guide {
  display: grid;
  align-content: center;
  gap: 0.65em;
  padding: 0.8em 0 0.8em 1.5ch;
  border-left: 0.28em solid var(--blue);
  font-size: 0.64em;
  line-height: 1.35;
}

.wordle-guide h2,
.wordle-guide p {
  margin: 0;
}

.wordle-guide h2 {
  color: var(--green);
  font-size: 1.25em;
}

.wordle-legend {
  display: grid;
  gap: 0.45em;
  margin: 0.25em 0;
}

.wordle-legend p {
  display: flex;
  align-items: center;
  gap: 0.75ch;
}

.wordle-legend span {
  display: grid;
  width: 2.35em;
  flex: 0 0 2.35em;
  aspect-ratio: 1;
  place-items: center;
  border: 0.18em solid var(--white);
  font-size: 1.05em;
}

.wordle-share {
  width: 100%;
  margin: 0.35em 0 0;
  padding: 0.65em 0.5em;
  border: 0;
  color: #000;
  background: var(--green);
  cursor: pointer;
}

.wordle-share[hidden] {
  display: none;
}

.is-pop {
  animation: wordlePop 120ms steps(2);
}

.is-flipping {
  animation: wordleFlip 520ms steps(4);
}

.is-shaking {
  animation: wordleShake 280ms steps(4);
}

@keyframes wordlePop {
  50% { transform: scale(1.12); }
}

@keyframes wordleFlip {
  50% { transform: scaleY(0); }
}

@keyframes wordleShake {
  25% { transform: translateX(-0.5em); }
  50% { transform: translateX(0.5em); }
  75% { transform: translateX(-0.25em); }
}

@keyframes tuneFlicker {
  0% {
    transform: translateX(-2px);
  }

  50% {
    transform: translateX(3px);
  }

  100% {
    transform: translateX(0);
  }
}

@media (max-width: 760px) {
  body {
    overflow: auto;
  }

  .tv-shell {
    padding: 0;
    place-items: start;
  }

  .teletext-screen {
    min-height: 100svh;
    max-height: none;
    border-radius: 0;
    border-width: 0;
  }

  .two-col,
  .weather-grid,
  .breaking-layout,
  .lost-page-layout {
    grid-template-columns: 1fr;
  }

  .top-row {
    grid-template-columns: auto auto minmax(0, 1fr);
    gap: 1ch;
    padding: 0 0.6ch;
    font-size: clamp(0.38rem, 2vw, 0.52rem);
  }

  .pixel-fox {
    width: min(62vw, 240px);
    margin: 0 auto;
  }

  .page-404 {
    overflow-y: auto;
  }

  .lost-page-layout {
    gap: 0.4em;
    align-content: start;
    text-align: center;
  }

  .lost-fox {
    width: min(54vw, 220px);
    max-height: 36svh;
    margin: 0 auto;
  }

  .lost-page-copy {
    justify-items: center;
  }

  .error-code {
    font-size: clamp(3rem, 15vw, 5rem);
  }

  .remote-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    min-height: 8.33%;
  }

  .page {
    bottom: 8.33%;
  }

  .remote-row button {
    min-width: 0;
    padding: 0 0.25ch;
    font-size: clamp(0.38rem, 1.9vw, 0.52rem);
  }

  .weather-page {
    padding-top: 0.4em;
    font-size: clamp(0.5rem, 2vw, 0.62rem);
  }

  .weather-title {
    font-size: clamp(1.55rem, 9vw, 2.2rem);
  }

  .weather-meta {
    grid-template-columns: minmax(0, 1fr) 13ch;
    gap: 0.6ch;
  }

  .weather-current-forecast {
    grid-template-columns: 10.5ch minmax(0, 1fr);
    gap: 1ch;
    padding: 0.3em 0.6ch;
  }

  .weather-current-forecast-icon {
    width: 9.5ch;
  }

  .weather-current-forecast-copy {
    min-width: 0;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.4em 0.8ch;
  }

  .weather-current-place {
    grid-column: 1 / -1;
    font-size: 1.05em;
  }

  .weather-current-temp {
    font-size: 1.35em;
  }

  .weather-current-wind {
    min-width: 0;
    font-size: 0.78em;
    overflow-wrap: anywhere;
  }

  .weather-current-condition {
    font-size: 0.9em;
  }

  .weather-current-detail {
    font-size: 0.62em;
    overflow-wrap: anywhere;
  }

  .weather-three-day-columns {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    min-height: 13em;
  }

  .weather-three-day-column {
    min-width: 0;
    grid-template-rows: 2em 6.6em 2em 1.35em 1.35em;
    padding: 0.45em 0.2ch 0.55em;
  }

  .weather-three-day-column h2 {
    max-width: 100%;
    font-size: 0.68em;
    overflow-wrap: anywhere;
  }

  .weather-three-day-column svg,
  .weather-three-day-column img {
    width: 9.2ch;
    max-width: 90%;
  }

  .weather-three-day-column strong {
    max-width: 100%;
    font-size: 0.72em;
    overflow-wrap: anywhere;
  }

  .weather-rain-risk {
    font-size: 0.66em;
  }

  .sport-page {
    top: 8.33%;
  }

  .sport-banner {
    min-height: calc(3.35em + 4px);
  }

  .sport-banner strong {
    font-size: 2.55em;
  }

  .sport-banner time {
    padding-bottom: 0.2em;
    font-size: 0.62em;
  }

  .wordle-page {
    overflow: hidden;
    padding-right: 0.7ch;
    padding-left: 0.7ch;
  }

  .wordle-heading {
    min-height: 3.8em;
  }

  .wordle-heading h1 {
    font-size: 1.05em;
  }

  .wordle-heading p,
  .wordle-message {
    font-size: 0.58em;
  }

  .wordle-main {
    grid-template-columns: 1fr;
    align-content: center;
    gap: 0.45em;
  }

  .wordle-board {
    width: min(18em, 66vw, 36svh);
  }

  .wordle-guide {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.35em 1.2ch;
    padding: 0.55em 0.4em 0;
    border-top: 0.25em solid var(--blue);
    border-left: 0;
    font-size: 0.52em;
  }

  .wordle-guide h2,
  .wordle-legend,
  .wordle-share {
    grid-column: 1 / -1;
  }

  .wordle-legend {
    grid-template-columns: repeat(3, 1fr);
  }

  .wordle-legend p {
    gap: 0.4ch;
  }

  .wordle-legend span {
    width: 2em;
    flex-basis: 2em;
  }

  .wordle-key {
    width: 8.7%;
    min-height: 3.15em;
    font-size: 0.62em;
  }

  .wordle-key.is-wide {
    width: 15.5%;
    font-size: 0.43em;
  }

}

@media (min-width: 761px) {
  .weather-page {
    padding-top: 0.35em;
    font-size: clamp(0.58rem, 1.1vw, 0.95rem);
  }

  .weather-three-day-columns {
    min-height: 14.2em;
  }

  .weather-three-day-column {
    grid-template-rows: 1.7em 7.2em 1.5em 1.35em 1.35em;
  }

  .sport-page .data-panel {
    font-size: 0.7em;
  }

  .sport-banner {
    min-height: calc(3.75em + 4px);
  }

  .sport-banner strong {
    font-size: 2.8em;
  }
}

@media (prefers-reduced-motion: reduce) {
  .wordle-cell,
  .wordle-row {
    animation-duration: 1ms !important;
  }
}
