/* Lexend, weights 400-900, printable ASCII plus · and —. Inlined so the game
   page gains no request and the font arrives with the stylesheet, before the
   board is ever drawn. Built by subset-font.mjs. Copyright 2018 The Lexend
   Project Authors; SIL Open Font License 1.1, in Lexend-OFL.txt. */
@font-face {
  font-family: 'Lexend';
  font-weight: 400 900;
  font-display: block;
  src: url(data:font/woff2;base64,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) format('woff2');
}
* { margin: 0; padding: 0; box-sizing: border-box; }
/* Form controls do not inherit a font, so without this every button on the
   page is set in the browser's own: Arial, in Chrome on a Mac. */
button { font-family: inherit; }
body {
  font-family: 'Lexend', sans-serif;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #1a1a2e;
  padding: 10px;
  overflow-x: hidden;
}
.game-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;
  width: 100%;
  max-width: 500px;
}
.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 10px 5px;
}
.boards-icon {
  width: 36px;
  height: 36px;
  /* Darker than the brand teal: white on #008E97 is 3.95:1 and this glyph is
     under the large-text size, so it needs 4.5. #00787f is 5.26:1. */
  background: #00787f;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: bold;
}
.boards-value {
  color: #008E97;
  font-size: 28px;
  font-weight: 900;
}
/* Had no colour rule at all, so it inherited black onto navy at 1.23:1 -
   invisible. check-styles.js could not catch it: that checks classes game.js
   applies at runtime, and this one is static in game.html. */
.score-sep { color: #8a8aa2; }
.score-value {
  color: #fff;
  font-size: 48px;
  font-weight: 900;
}
.score-target {
  color: #008E97;
  font-size: 24px;
}
.timer {
  color: #4a9eda;
  font-size: 48px;
  font-weight: 900;
}
.timer.warning { color: #FF9800; }
.timer.critical { color: #F44336; animation: pulse 0.5s ease-in-out infinite; }
canvas {
  border-radius: 16px;
  background: #16213e;
  box-shadow: 0 10px 30px rgba(0,0,0,0.5);
  touch-action: none;
}
.word-area {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}
.word-pill {
  padding: 10px 25px;
  border-radius: 30px;
  font-size: 20px;
  font-weight: 800;
  color: #ffffff;
  text-align: center;
  opacity: 0;
  transition: opacity 0.15s ease;
}
.word-pill.visible { opacity: 1; }
.word-pill.selecting { background: rgba(255, 255, 255, 0.15); }
.word-pill.valid { background: #4CAF50; color: #1a1a2e; }
.word-pill.invalid { background: #F44336; }
.word-pill.duplicate { background: #FF9800; color: #1a1a2e; }
.word-pill.trap { background: #F44336; animation: shake 0.5s ease-in-out; }
.word-pill.overshoot { background: #F44336; animation: shake 0.5s ease-in-out; }
.word-pill.bonus { background: linear-gradient(135deg, #FF9800, #FFC107); color: #1a1a2e; animation: pulse 0.5s ease-in-out; }
.word-pill.timeout { background: #FF9800; color: #1a1a2e; }
.boards.winner { animation: pulse 0.5s ease-in-out; }
@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-5px); }
  75% { transform: translateX(5px); }
}

/* A challenge's result, under the board when the game ends (game.js, showDuel):
   who won, or who it was sent to. Gold for a win, navy on it 8.9:1. */
.duel {
  display: none;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  width: 100%;
  max-width: 300px;
  box-sizing: border-box;
  padding: 14px 18px;
  border-radius: 18px;
  text-align: center;
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}
.duel.visible { display: flex; animation: duel-in 0.45s cubic-bezier(0.2, 1.4, 0.4, 1); }
.duel-head { font-size: 22px; font-weight: 800; line-height: 1.2; }
.duel-sub { font-size: 15px; opacity: 0.85; }
.duel.win { background: linear-gradient(135deg, #f5a623, #ffc94d); color: #1a1a2e; box-shadow: 0 6px 24px rgba(245, 166, 35, 0.45); }
.duel.win .duel-head { font-size: 26px; }
.duel.win .duel-sub { opacity: 1; }
.duel.lose { border: 2px solid rgba(255, 255, 255, 0.25); }
.duel.tie { border: 2px solid #14a5ae; }
.duel.sent { border: 2px solid #f5a623; }
@keyframes duel-in {
  from { transform: scale(0.6); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}
.confetti { position: fixed; inset: 0; pointer-events: none; overflow: hidden; z-index: 10; }
.confetti span {
  position: absolute;
  top: -12px;
  width: 9px;
  height: 14px;
  border-radius: 2px;
  animation: confetti-fall 2.4s ease-in forwards;
}
@keyframes confetti-fall {
  to { transform: translate(var(--drift, 0), 105vh) rotate(720deg); }
}

/* Every animation here fires on a bust or a win, when the player is already
   tense. Respect the system setting rather than shaking the screen at someone
   who asked for less motion. index.html has carried this rule for longer. */
@media (prefers-reduced-motion: reduce) {
  .timer.critical,
  .word-pill.trap,
  .word-pill.overshoot,
  .word-pill.bonus,
  .boards.winner,
  .duel.visible {
    animation: none;
  }
  .confetti { display: none; }
}
