/*
 * Ruby Overdrive Theme for Reveal.js
 * Neo-brutalist presentation styles matching rubyoverdrive.com
 */

:root {
  --r-background-color: #fbf9f8;
  --r-main-font: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  --r-main-font-size: 24px;
  --r-main-color: #1b1c1c;
  --r-block-margin: 14px;
  --r-heading-margin: 0 0 14px 0;
  --r-heading-font: "Bricolage Grotesque", -apple-system, BlinkMacSystemFont, sans-serif;
  --r-heading-color: #1b1c1c;
  --r-heading-line-height: 1.15;
  --r-heading-letter-spacing: -0.02em;
  --r-heading-text-transform: uppercase;
  --r-heading-text-shadow: none;
  --r-heading-font-weight: 800;
  --r-heading1-size: 2.3em;
  --r-heading2-size: 1.8em;
  --r-heading3-size: 1.3em;
  --r-heading4-size: 1.1em;
  --r-code-font: "Space Mono", monospace;
  --r-link-color: #00327d;
  --r-link-color-hover: #1b1c1c;
  --r-selection-background-color: #FFEE58;
  --r-selection-color: #1b1c1c;
}

/* Base Viewport & Reveal Container */
html.presentation-html,
body.presentation-body {
  background-color: var(--r-background-color);
  color: var(--r-main-color);
  margin: 0;
  padding: 0;
  height: 100%;
}

.reveal-viewport {
  background-color: var(--r-background-color);
  color: var(--r-main-color);
  font-family: var(--r-main-font);
  font-size: var(--r-main-font-size);
}

.reveal {
  font-family: var(--r-main-font);
  font-weight: 400;
  color: var(--r-main-color);
}

.reveal .slides section {
  padding-bottom: 48px;
  box-sizing: border-box;
}

/* Headings */
.reveal h1,
.reveal h2,
.reveal h3,
.reveal h4,
.reveal h5,
.reveal h6 {
  font-family: var(--r-heading-font);
  font-weight: var(--r-heading-font-weight);
  color: var(--r-heading-color);
  letter-spacing: var(--r-heading-letter-spacing);
  text-transform: var(--r-heading-text-transform);
  line-height: var(--r-heading-line-height);
  margin: var(--r-heading-margin);
}

.reveal h1 { font-size: var(--r-heading1-size); }
.reveal h2 { font-size: var(--r-heading2-size); }
.reveal h3 { font-size: var(--r-heading3-size); }
.reveal h4 { font-size: var(--r-heading4-size); }

/* Paragraphs & Text */
.reveal p {
  margin: var(--r-block-margin) 0;
  line-height: 1.5;
}

.reveal strong, .reveal b {
  font-weight: 700;
  color: #000;
}

.reveal em, .reveal i {
  font-style: italic;
}

/* Links */
.reveal a {
  color: var(--r-link-color);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
  font-weight: 600;
  transition: color 0.15s ease;
}

.reveal a:hover {
  color: var(--r-link-color-hover);
  background-color: #FFEE58;
}

/* Lists */
.reveal ul,
.reveal ol {
  text-align: left;
  margin: var(--r-block-margin) 0;
  padding-left: 2rem;
  line-height: 1.5;
}

.reveal li {
  margin-bottom: 0.4rem;
}

/* Neo-brutalist Cards & Badges */
.reveal .brutal-badge {
  display: inline-block;
  padding: 4px 12px;
  background-color: #FFEE58;
  color: #1b1c1c;
  border: 2px solid #1b1c1c;
  box-shadow: 3px 3px 0 #1b1c1c;
  font-family: var(--r-code-font);
  font-weight: 700;
  font-size: 0.75em;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
}

.reveal .brutal-box {
  border: 3px solid #1b1c1c;
  box-shadow: 6px 6px 0 #1b1c1c;
  background-color: #ffffff;
  padding: 1.1rem 1.35rem;
  text-align: left;
  margin: var(--r-block-margin) auto;
  max-width: 92%;
}

.reveal .brutal-box.yellow {
  background-color: #FFEE58;
}

.reveal .brutal-box.cream {
  background-color: #FFFDD0;
}

.reveal .brutal-box.blue {
  background-color: #00327d;
  color: #ffffff;
  border-color: #ffffff;
  box-shadow: 6px 6px 0 #1b1c1c;
}

.reveal .brutal-box.blue h1,
.reveal .brutal-box.blue h2,
.reveal .brutal-box.blue h3 {
  color: #FFEE58;
}

/* Blockquotes */
.reveal blockquote {
  border-left: 6px solid #1b1c1c;
  background-color: #FFFDD0;
  color: #1b1c1c;
  padding: 0.75rem 1.25rem;
  margin: var(--r-block-margin) auto;
  box-shadow: 4px 4px 0 #1b1c1c;
  text-align: left;
  font-style: italic;
  max-width: 92%;
}

/* Tables */
.reveal table {
  border: 3px solid #1b1c1c;
  box-shadow: 6px 6px 0 #1b1c1c;
  background-color: #ffffff;
  border-collapse: separate;
  border-spacing: 0;
  margin: var(--r-block-margin) auto;
  width: 95%;
  text-align: left;
  font-size: 0.8em;
}

.reveal th {
  background-color: #FFEE58;
  color: #1b1c1c;
  font-family: var(--r-heading-font);
  font-weight: 700;
  text-transform: uppercase;
  padding: 0.5rem 0.75rem;
  border-bottom: 2px solid #1b1c1c;
}

.reveal td {
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid #e0dedc;
  word-break: break-word;
}

.reveal tr:last-child td {
  border-bottom: none;
}

/* Code & Preformatted Text */
.reveal code {
  font-family: var(--r-code-font);
  background-color: #FFEE58;
  color: #1b1c1c;
  padding: 2px 6px;
  font-size: 0.85em;
  border: 1px solid #1b1c1c;
}

.reveal pre {
  margin: var(--r-block-margin) auto;
  width: 95%;
  border: 3px solid #1b1c1c;
  box-shadow: 6px 6px 0 #1b1c1c;
  background-color: #1b1c1c;
  padding: 0.75rem 1rem;
  box-sizing: border-box;
  overflow-x: auto;
  text-align: left;
}

.reveal pre code {
  background: transparent;
  color: #e4e2e1;
  border: none;
  padding: 0;
  font-size: 0.82em;
  line-height: 1.42;
  display: block;
}

/* Rouge Syntax Highlighting */
.reveal .highlight .k, .reveal .highlight .kw { color: #f6e550; font-weight: bold; }
.reveal .highlight .s, .reveal .highlight .s1, .reveal .highlight .s2 { color: #a3e635; }
.reveal .highlight .c, .reveal .highlight .c1, .reveal .highlight .cm { color: #94a3b8; font-style: italic; }
.reveal .highlight .nf, .reveal .highlight .fm { color: #60a5fa; font-weight: bold; }
.reveal .highlight .nc, .reveal .highlight .no { color: #f472b6; font-weight: bold; }
.reveal .highlight .mi, .reveal .highlight .mf { color: #fb923c; }
.reveal .highlight .ss { color: #c084fc; }
.reveal .highlight .vi, .reveal .highlight .iv { color: #38bdf8; }

/* Editable diagrams and code emphasis for the PhRUG talk. */
.reveal .talk-phases {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: 95%;
  margin: 30px auto;
  padding: 0;
  list-style: none;
  border-top: 4px solid #1b1c1c;
}

.reveal .talk-phases li {
  margin: 0;
  padding: 18px 16px 8px;
  border-right: 1px solid #b8b5b3;
}

.reveal .talk-phases li:last-child { border-right: none; }

.reveal .talk-step-number {
  display: block;
  margin-bottom: 12px;
  font-family: var(--r-code-font);
  font-size: 1.5em;
  font-weight: 700;
  color: #00327d;
}

.reveal .talk-phases h3 { font-size: 1.15em; }
.reveal .talk-phases p { font-size: 0.9em; }

.reveal .talk-check-layers {
  width: 95%;
  margin: 24px auto;
  padding: 0;
  list-style: none;
  border-top: 3px solid #1b1c1c;
}

.reveal .talk-check-layers li {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 24px;
  align-items: baseline;
  margin: 0;
  padding: 18px 16px;
  border-bottom: 1px solid #b8b5b3;
}

.reveal .talk-check-layers strong { color: #00327d; }
.reveal .talk-agent-loop li { padding: 14px 16px; }
.reveal .talk-agent-loop .talk-loop-check { background: #FFEE58; }

.reveal .talk-demo-code code { line-height: 1.6; }
.reveal .talk-code-focus { background: #FFEE58; color: #1b1c1c; }
.reveal .talk-code-remove { background: #5a2929; color: #ffd4d4; }
.reveal .talk-code-add { background: #183d2c; color: #d7f8db; }

.reveal .talk-demo-results {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  width: 95%;
  margin: 18px auto;
  text-align: left;
}

.reveal .talk-demo-results > div {
  padding: 8px 16px;
  border-left: 4px solid #00327d;
}

.reveal .talk-demo-results dt { font-weight: 700; }
.reveal .talk-demo-results dd { margin: 8px 0 0; }
.reveal .talk-diagnostic { font-family: var(--r-code-font); font-size: 0.9em; }
.reveal .talk-caption { font-size: 0.85em; }

/* Slide Layouts & Polaroid Component */
.reveal .slide-cols {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  text-align: left;
  margin: var(--r-block-margin) 0;
}

.reveal .slide-col-main {
  flex: 1 1 64%;
  min-width: 0;
}

.reveal .slide-col-side {
  flex: 0 0 32%;
  display: flex;
  justify-content: center;
}

.reveal .slide-polaroid {
  position: relative;
  background-color: #ffffff;
  padding: 12px 12px 24px 12px;
  border: 3px solid #1b1c1c;
  box-shadow: 10px 10px 0 #1b1c1c;
  transform: rotate(-2deg);
  transition: transform 0.2s ease;
  max-width: 320px;
  width: 100%;
  box-sizing: border-box;
}

.reveal .slide-polaroid:hover {
  transform: rotate(0deg);
}

.reveal .slide-polaroid-frame {
  border: 2px solid #1b1c1c;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background-color: #e4e2e1;
}

.reveal .slide-polaroid-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  margin: 0 !important;
  border: none !important;
  box-shadow: none !important;
  max-width: none !important;
  max-height: none !important;
}

.reveal .slide-polaroid-caption {
  font-family: var(--r-code-font);
  font-size: 0.65em;
  font-weight: 700;
  text-align: center;
  color: #1b1c1c;
  margin-top: 10px !important;
  margin-bottom: 0 !important;
  line-height: 1.3;
}

/* ==========================================================================
   Home Hero Section Replica (Exact match to rubyoverdrive.com home)
   ========================================================================== */

.reveal .hero-blueprint-container {
  background-color: #00327d;
  background-image: 
    linear-gradient(rgba(255, 255, 255, 0.15) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.15) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
  background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px;
  background-position: -1px -1px, -1px -1px, -1px -1px, -1px -1px;
  border: 4px solid #1b1c1c;
  box-shadow: 12px 12px 0 #1b1c1c;
  padding: 24px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  text-align: left;
  box-sizing: border-box;
  width: 100%;
  max-width: 1140px;
  margin: 0 auto;
}

.reveal .hero-left-col {
  flex: 1 1 58%;
  min-width: 0;
}

.reveal .hero-right-col {
  flex: 0 0 38%;
  display: flex;
  justify-content: center;
}

/* Ransom Header */
.reveal .hero-ransom-header {
  font-family: var(--r-heading-font);
  font-weight: 800;
  text-transform: uppercase;
  margin-bottom: 18px;
  line-height: 1.2;
}

.reveal .hero-ransom-word {
  display: inline-block;
  padding: 4px 12px;
  margin: 2px 3px;
  border: 2px solid #1b1c1c;
  font-size: 0.9em;
  letter-spacing: -0.01em;
}

.reveal .hero-ransom-word.cream {
  background-color: #FFFDD0;
  color: #1b1c1c;
  transform: rotate(-1.5deg);
}

.reveal .hero-ransom-word.red {
  background-color: #ba1a1a;
  color: #FFFDD0;
  transform: rotate(1deg);
}

.reveal .hero-ransom-word.yellow {
  background-color: #FFEE58;
  color: #1b1c1c;
  transform: rotate(-1deg);
}

.reveal .hero-ransom-word.black {
  background-color: #1b1c1c;
  color: #FFFDD0;
  transform: rotate(1.5deg);
}

/* Bio Card */
.reveal .hero-card-stack {
  background-color: #FFFDD0;
  border: 3px solid #1b1c1c;
  box-shadow: 8px 8px 0 #1b1c1c;
  transform: rotate(0.8deg);
  padding: 18px 22px;
}

.reveal .hero-dymo-label {
  display: inline-block;
  background-color: #1b1c1c;
  color: #ffffff;
  font-family: var(--r-code-font);
  font-size: 0.65em;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 4px 10px;
  text-transform: uppercase;
  margin-bottom: 10px;
}

.reveal .hero-bio-paragraph {
  font-family: var(--r-main-font);
  font-size: 0.56em;
  line-height: 1.48;
  color: #1b1c1c;
  margin: 0 0 10px 0 !important;
}

.reveal .hero-community-line {
  font-size: 0.62em;
  line-height: 1.45;
  color: #1b1c1c;
  border-top: 2px solid #1b1c1c;
  padding-top: 10px;
  margin: 10px 0 !important;
}

/* Product screenshots in the speaker introduction. */
.reveal .talk-project-lead {
  margin: 0 0 16px;
  font-size: 0.9em;
}

.reveal .talk-project-gallery {
  width: 95%;
  margin: 0 auto;
}

.reveal .talk-project-figure {
  width: 100%;
  margin: 0;
}

.reveal .talk-project-figure img {
  display: block;
  width: 100%;
  height: 440px;
  max-width: 100%;
  max-height: none;
  object-fit: cover;
  object-position: top;
  margin: 0;
  border: 2px solid #1b1c1c;
  box-shadow: 5px 5px 0 #1b1c1c;
  background: #ffffff;
  box-sizing: border-box;
}

.reveal .talk-project-figure .talk-project-details {
  object-position: center 60%;
}

.reveal .talk-project-chat img {
  height: 350px;
}

.reveal .talk-project-tutor-body {
  display: grid;
  grid-template-columns: 1fr 280px;
  align-items: center;
  gap: 36px;
  text-align: left;
}

.reveal .talk-project-tutor-copy h3 {
  font-size: 1.1em;
  margin: 0 0 24px;
}

.reveal .talk-project-tutor-copy p {
  font-size: 0.8em;
  line-height: 1.5;
  margin: 18px 0;
}

.reveal .talk-project-tutor-copy blockquote {
  width: auto;
  margin: 0;
  font-size: 0.95em;
  line-height: 1.5;
}

.reveal .talk-project-tutor img {
  width: 280px;
  object-position: center 46%;
}

.reveal .talk-project-figure figcaption {
  margin: 12px 0 0;
  font-size: 0.75em;
  line-height: 1.4;
}

.reveal .talk-project-footer {
  margin: 16px 0 0;
  font-size: 0.75em;
  line-height: 1.4;
}

.reveal .talk-capstone-question {
  font-size: 1.25em;
  font-weight: 600;
  line-height: 1.45;
  margin: 24px auto;
  max-width: 960px;
}

.reveal .talk-discussion-close {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  align-items: center;
  gap: 40px;
  padding: 30px;
}

.reveal .talk-discussion-copy h2 {
  font-size: 1.5em;
}

.reveal .talk-discussion-copy h3 {
  font-size: 1em;
  margin-top: 24px;
}

.reveal .talk-discussion-close a {
  color: #FFEE58;
}

.reveal .talk-discussion-close a:hover {
  color: #1b1c1c;
}

.reveal .talk-follow-description {
  font-size: 0.85em;
}

.reveal .talk-profile-link,
.reveal .talk-resources-link {
  font-size: 0.8em;
  overflow-wrap: anywhere;
}

.reveal .talk-contact-handle {
  font-size: 0.7em;
  color: #FFFDD0;
}

.reveal .talk-linkedin-qr {
  margin: 0;
  text-align: center;
}

.reveal .talk-linkedin-qr a {
  display: block;
  line-height: 0;
}

.reveal .talk-linkedin-qr img {
  display: block;
  width: 320px;
  height: auto;
  max-width: 100%;
  max-height: none;
  margin: 0;
  background: #ffffff;
}

.reveal .talk-linkedin-qr figcaption {
  margin-top: 12px;
  font-size: 0.75em;
  line-height: 1.4;
}

.reveal .hero-mono-line {
  font-family: var(--r-code-font);
  font-size: 0.48em;
  line-height: 1.35;
  color: #55575e;
  margin: 0 0 3px 0 !important;
}

.reveal .hero-btn-touch {
  display: block;
  width: 100%;
  text-align: center;
  box-sizing: border-box;
  background-color: #ffffff;
  color: #1b1c1c;
  border: 2px solid #1b1c1c;
  box-shadow: 4px 4px 0 #1b1c1c;
  font-family: var(--r-heading-font);
  font-weight: 700;
  font-size: 0.62em;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 8px 14px;
  margin-top: 12px;
  text-decoration: none !important;
  transition: transform 0.1s ease, box-shadow 0.1s ease;
}

.reveal .hero-btn-touch:hover {
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 #1b1c1c;
  background-color: #FFEE58;
}

/* Polaroid Box */
.reveal .hero-polaroid-box {
  position: relative;
  background-color: #ffffff;
  border: 3px solid #1b1c1c;
  box-shadow: 10px 10px 0 #1b1c1c;
  transform: rotate(2.5deg);
  padding: 14px 14px 20px 14px;
  max-width: 320px;
  box-sizing: border-box;
}

.reveal .hero-tape-top {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%) rotate(-1deg);
  width: 80px;
  height: 24px;
  background-color: rgba(255, 255, 255, 0.7);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(2px);
  z-index: 10;
}

.reveal .hero-polaroid-photo-frame {
  border: 2px solid #1b1c1c;
  overflow: hidden;
  aspect-ratio: 4 / 4.2;
  background-color: #e4e2e1;
}

.reveal .hero-polaroid-photo-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  margin: 0 !important;
  border: none !important;
  box-shadow: none !important;
  max-width: none !important;
  max-height: none !important;
}

.reveal .hero-polaroid-text {
  font-family: var(--r-main-font);
  font-size: 0.5em;
  line-height: 1.38;
  color: #1b1c1c;
  text-align: center;
  margin-top: 10px !important;
  margin-bottom: 0 !important;
  font-weight: 500;
}

/* Progress bar & Controls */
.reveal .progress {
  height: 6px;
  background-color: rgba(0, 0, 0, 0.08);
  color: #00327d;
}

.reveal .progress span {
  background-color: #00327d;
}

.reveal .slide-number {
  display: none !important;
}

.reveal .controls {
  color: #1b1c1c;
  bottom: 16px;
  right: 16px;
}

body:has(#race-widget) .reveal .controls {
  bottom: 54px;
  right: 16px;
}

body:has(.reveal.paused) #race-widget {
  display: none !important;
}

/* Blueprint slide variant */
.reveal .slides section[data-background-color="#00327d"],
.reveal .slides section.bg-blueprint {
  color: #ffffff;
}

.reveal .slides section[data-background-color="#00327d"] h1,
.reveal .slides section[data-background-color="#00327d"] h2,
.reveal .slides section[data-background-color="#00327d"] h3 {
  color: #FFEE58;
}

/* ==========================================================================
   Race Widget: Turtle vs Hare Overlay
   ========================================================================== */

.race-widget {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 48px;
  background-color: #002254;
  border-top: 2px solid rgba(255, 255, 255, 0.4);
  box-shadow: 0 -3px 12px rgba(0, 0, 0, 0.35);
  z-index: 9999;
  user-select: none;
  font-family: var(--r-code-font);
}

.race-widget-inner {
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 16px;
  gap: 12px;
  max-width: 1400px;
  margin: 0 auto;
}

.race-col {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.race-col-start,
.race-col-finish {
  gap: 6px;
}

.race-badge {
  background-color: #1b1c1c;
  color: #FFEE58;
  border: 1px solid rgba(255, 255, 255, 0.4);
  padding: 2px 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  box-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);
}

.race-finish-flag {
  font-size: 14px;
}

.race-track-wrapper {
  flex: 1;
  position: relative;
  height: 24px;
  display: flex;
  align-items: center;
  margin: 0 8px;
}

.race-track {
  position: relative;
  width: 100%;
  height: 6px;
  background-color: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 3px;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.4);
}

.race-tick {
  position: absolute;
  top: -4px;
  width: 1px;
  height: 14px;
  background-color: rgba(255, 255, 255, 0.45);
}

.race-runner {
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: default;
}

.race-turtle {
  z-index: 10;
}

.race-hare {
  z-index: 12;
  transition: left 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.runner-icon {
  font-size: 32px;
  line-height: 1;
  display: inline-block !important;
  transform: scaleX(-1) !important;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.7));
}

.race-finish-flag {
  font-size: 24px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
}

.runner-tooltip {
  display: none;
}

.race-col-status {
  display: flex;
  align-items: center;
  gap: 8px;
}

.race-pace-pill {
  font-size: 11px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 2px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border: 1px solid #1b1c1c;
}

.race-pace-pill.is-ready {
  background-color: rgba(255, 255, 255, 0.2);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.4);
}

.race-pace-pill.is-ahead {
  background-color: #a3e635;
  color: #1b1c1c;
  box-shadow: 1px 1px 0 #1b1c1c;
}

.race-pace-pill.is-behind {
  background-color: #ff5c5c;
  color: #ffffff;
  box-shadow: 1px 1px 0 #1b1c1c;
}

.race-pace-pill.is-ontime {
  background-color: #FFEE58;
  color: #1b1c1c;
  box-shadow: 1px 1px 0 #1b1c1c;
}

.race-clock {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.85);
  letter-spacing: 0.05em;
  min-width: 40px;
}

/* PDF Print Export Styles */
@media print {
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .race-widget,
  #race-widget,
  .reveal .controls,
  .reveal .progress {
    display: none !important;
  }
}

html.reveal-print .race-widget,
html.reveal-print #race-widget {
  display: none !important;
}
