/* Custom reveal.js theme tweaks for the SPEE deck */
.reveal { font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
.reveal h1, .reveal h2, .reveal h3 { text-transform: none; letter-spacing: normal; }
.reveal h1 { font-size: 2.0em; }
.reveal h2 { font-size: 1.35em; color: #2dd4bf; }
.reveal h3 { font-size: 1.05em; color: #38bdf8; }
.reveal .subtitle { color: #9fb3c8; font-size: .7em; }
.reveal ul { display: block; }
.reveal li { margin: .28em 0; line-height: 1.35; }
.reveal .cols { display: flex; gap: 32px; align-items: flex-start; }
.reveal .cols > div { flex: 1; }
.reveal .tag { display: inline-block; padding: 2px 12px; border-radius: 999px; background: rgba(45,212,191,.15); color: #2dd4bf; font-size: .5em; letter-spacing: 2px; text-transform: uppercase; }
.reveal .stem-s { color: #f472b6; font-weight: 700; }
.reveal .stem-t { color: #fbbf24; font-weight: 700; }
.reveal .stem-e { color: #34d399; font-weight: 700; }
.reveal .stem-m { color: #60a5fa; font-weight: 700; }
.reveal .card {
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px; padding: 18px 22px; font-size: .8em;
}
.reveal .quote { border-left: 4px solid #2dd4bf; padding-left: 18px; font-style: italic; color: #cbd5e1; }
.reveal .small { font-size: .62em; color: #9fb3c8; }
.reveal .live-wrap { background: rgba(255,255,255,.04); border-radius: 14px; padding: 16px; }
.reveal .join-row { display: flex; gap: 28px; align-items: center; justify-content: center; }
.reveal .qr { background: #fff; padding: 12px; border-radius: 12px; width: 260px; height: 260px; }
.reveal .qr img { width: 100%; height: 100%; }
.reveal .join-code { font-size: 1.4em; letter-spacing: 2px; color: #2dd4bf; font-weight: 800; }
.reveal .join-url { font-size: .7em; color: #e6edf3; }
.reveal .counter { font-size: 2.4em; font-weight: 800; color: #2dd4bf; }
.reveal canvas { max-height: 460px; }
.reveal abbr[title] { text-decoration: underline dotted #2dd4bf; text-decoration-thickness: 2px; text-underline-offset: 4px; cursor: help; }
.control-bar {
  position: fixed; bottom: 8px; left: 8px; z-index: 40; display: flex; gap: 8px; align-items: center;
  background: rgba(6,18,31,.85); border: 1px solid #24405c; border-radius: 10px; padding: 6px 10px; font-size: 12px; color: #9fb3c8;
}
.control-bar input { width: 130px; background: #0e2033; color: #e6edf3; border: 1px solid #24405c; border-radius: 6px; padding: 4px 6px; }
.control-bar .live-dot { width: 8px; height: 8px; border-radius: 50%; background: #ef4444; }
.control-bar .live-dot.on { background: #22c55e; box-shadow: 0 0 8px #22c55e; }

/* language toggle */
body.lang-en .lang-ms { display: none !important; }
body.lang-ms .lang-en { display: none !important; }
.lang-toggle {
  position: fixed; top: 10px; right: 12px; z-index: 50; display: flex; gap: 3px;
  background: rgba(6,18,31,.85); border: 1px solid #24405c; border-radius: 999px; padding: 4px;
}
.lang-toggle button {
  border: none; background: transparent; color: #9fb3c8; font-size: 13px; font-weight: 700;
  padding: 5px 14px; border-radius: 999px; cursor: pointer;
}
.lang-toggle button.active { background: linear-gradient(90deg, #2dd4bf, #38bdf8); color: #04121f; }

/* Let a tall slide scroll instead of being clipped */
.reveal .slides > section {
  max-height: 96vh;
  overflow-y: auto;
  overflow-x: hidden;
  box-sizing: border-box;
  padding: 10px 20px;
  scrollbar-width: thin;
  scrollbar-color: rgba(45,212,191,.5) transparent;
}
.reveal .slides > section::-webkit-scrollbar { width: 9px; }
.reveal .slides > section::-webkit-scrollbar-thumb { background: rgba(45,212,191,.5); border-radius: 5px; }
.reveal .slides > section::-webkit-scrollbar-track { background: transparent; }
