:root { --bg:#0f172a; --fg:#0f172a; --accent:#1d4ed8; --paper:#fff; --muted:#475569; }
* { box-sizing: border-box; }
html, body { margin:0; height:100%; background:var(--bg); font-family: system-ui, -apple-system, "Segoe UI", sans-serif; }
#stage { position:fixed; left:50%; top:50%; width:1280px; height:720px; transform-origin:center; background:var(--paper); color:var(--fg); overflow:hidden; }
.slide { display:none; position:absolute; inset:0; padding:48px 72px; font-size:30px; line-height:1.4; }
.slide.active { display:block; }
.slide h1 { margin:0 0 24px; font-size:44px; color:var(--accent); border-bottom:3px solid var(--accent); padding-bottom:10px; }
.slide.title { text-align:center; }
.slide.title.active { display:flex; flex-direction:column; justify-content:center; }
.slide.title h1 { font-size:68px; border:none; }
.slide.title p { color:var(--muted); margin:6px 0; }
ul, ol { margin:8px 0; padding-left:1.2em; } li { margin:6px 0; }
table { border-collapse:collapse; margin:12px auto; }
th, td { border-top:1px solid #94a3b8; border-bottom:1px solid #94a3b8; padding:6px 18px; text-align:left; }
th { border-top:2px solid var(--fg); border-bottom:2px solid var(--fg); }
.opts { list-style:upper-alpha; }
.reveal { display:none; margin-top:16px; padding:12px 20px; background:#eff6ff; border-left:6px solid var(--accent); font-size:27px; }
.reveal.shown { display:block; }
.note { color:var(--muted); font-size:22px; margin-top:20px; }
.center { text-align:center; }
#bar { position:fixed; left:0; bottom:0; height:4px; background:#60a5fa; width:0; transition:width .2s; z-index:5; }
#count { position:fixed; right:12px; bottom:8px; color:#94a3b8; font-size:14px; z-index:5; }
body.overview #stage { transform:none !important; position:static; width:auto; height:auto; display:grid; grid-template-columns:repeat(4,1fr); gap:12px; padding:12px; background:var(--bg); overflow:visible; }
body.overview .slide, body.overview .slide.title { display:block; position:relative; width:1280px; height:720px; zoom:.2; cursor:pointer; background:#fff; }
body.overview .reveal { display:block; }
@media print {
  @page { size:1280px 720px; margin:0; }
  html, body { background:#fff; height:auto; }
  #stage { position:static; transform:none !important; width:auto; height:auto; overflow:visible; }
  .slide, .slide.title { display:block !important; position:relative; width:1280px; height:720px; page-break-after:always; }
  .slide.title { display:flex !important; }
  .reveal { display:block !important; }
  #bar, #count { display:none; }
}
.opts.row { display:grid; grid-template-columns:repeat(3,1fr); column-gap:40px; padding-left:1.4em; }
