* { margin: 0; padding: 0; box-sizing: border-box; }
:root {
  --bg: #111111;
  --text: #e5e5e5;
  --muted: #a0a0a0;
  --line: #2a2a2a;
  --card: #1a1a1a;
  --accent: #c4a574;
}
html, body {
  height: 100%;
  touch-action: pan-y;
  background: var(--bg);
  color: var(--text);
  font-family: Inter, -apple-system, BlinkMacSystemFont, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.deck { height: 100%; }
.slide {
  display: none;
  height: 100%;
  padding: 64px 72px 80px;
  flex-direction: column;
  justify-content: center;
  max-width: 920px;
  margin: 0 auto;
}
.slide.active { display: flex; }
.kicker { font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); margin-bottom: 0.75rem; }
h1 { font-size: 2.6rem; font-weight: 600; line-height: 1.15; margin-bottom: 1rem; }
h2 { font-size: 2rem; font-weight: 600; line-height: 1.2; margin-bottom: 1.25rem; }
p, li { font-size: 1.15rem; line-height: 1.55; color: var(--text); }
.muted { color: var(--muted); }
.lede { font-size: 1.25rem; color: var(--muted); max-width: 36em; }
ul { list-style: none; }
li { margin-bottom: 0.55rem; padding-left: 1.1rem; position: relative; }
li::before { content: ""; position: absolute; left: 0; top: 0.7em; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem 2rem; }
.card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 1.1rem 1.2rem;
}
.card h3 { font-size: 0.95rem; color: var(--accent); font-weight: 500; margin-bottom: 0.35rem; }
.card p, .card li { font-size: 1.02rem; }
.big { font-size: 3rem; font-weight: 600; letter-spacing: -0.03em; }
.big span { display: block; font-size: 1rem; color: var(--muted); font-weight: 400; letter-spacing: 0; margin-top: 0.4rem; }
table { width: 100%; border-collapse: collapse; font-size: 1.05rem; }
th, td { text-align: left; padding: 0.55rem 0; border-bottom: 1px solid var(--line); }
th { color: var(--muted); font-weight: 500; font-size: 0.85rem; }
td.num { text-align: right; font-variant-numeric: tabular-nums; }
.bar {
  position: fixed; bottom: 0; left: 0; right: 0;
  display: flex; justify-content: space-between; align-items: center;
  padding: 14px 24px; color: var(--muted); font-size: 0.85rem;
  background: linear-gradient(transparent, var(--bg) 40%);
}
.bar a { color: var(--muted); }
.bar button {
  background: transparent; border: 1px solid var(--line); color: var(--text);
  padding: 6px 12px; border-radius: 6px; cursor: pointer; font: inherit;
}
.bar button:hover { border-color: var(--muted); }
.progress { position: fixed; top: 0; left: 0; height: 2px; background: var(--accent); width: 0; }
@media (max-width: 720px) {
  .slide { padding: 48px 22px 88px; }
  h1 { font-size: 2rem; }
  h2 { font-size: 1.55rem; }
  p, li { font-size: 1.02rem; }
  .grid { grid-template-columns: 1fr; }
  .big { font-size: 2.2rem; }
}
.slide.photo {
  padding: 0;
  max-width: none;
  position: relative;
  justify-content: flex-end;
}
.slide.photo > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.slide.photo .cap {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 100px 72px 56px;
  background: linear-gradient(transparent, rgba(0,0,0,0.78) 45%);
}
.slide.photo .cap h2,
.slide.photo .cap p { text-shadow: 0 1px 12px rgba(0,0,0,0.45); }
.credit { font-size: 0.75rem; color: var(--muted); margin-top: 2rem; }
@media (max-width: 720px) {
  .slide.photo .cap { padding: 72px 22px 48px; }
}

.deck, .slide { touch-action: pan-y; }
