:root {
  /* SSEC global tokens from uw-ssec.github.io/design-system */
  --color-purple-950: #1a0038;
  --color-purple-900: #32006e;
  --color-purple-800: #3d1a7a;
  --color-purple-700: #4b2e83;
  --color-purple-600: #5a3d94;
  --color-purple-200: #c5b4e3;
  --color-purple-100: #e0d7f0;
  --color-purple-50: #f0ecf7;

  --color-gold-700: #85754d;
  --color-gold-500: #b7a57a;
  --color-gold-200: #e8e3d3;
  --color-gold-100: #f2efe6;
  --color-gold-50: #f9f7f2;

  --color-teal-600: #1fb8b0;
  --color-teal-700: #00857e;
  --color-teal-500: #2ad2c9;
  --color-teal-300: #8fe9e4;
  --color-green-600: #2e7d32;
  --color-green-100: #e8f5e9;
  --color-pink-600: #c6287c;
  --color-pink-100: #fde8f4;

  --color-neutral-950: #0d0f10;
  --color-neutral-900: #1a1d1f;
  --color-neutral-700: #373a3c;
  --color-neutral-600: #555a5e;
  --color-neutral-500: #72777c;
  --color-neutral-300: #c2c6ca;
  --color-neutral-200: #d5d8de;
  --color-neutral-100: #eceef0;
  --color-neutral-50: #f6f7f8;
  --color-white: #ffffff;

  --heading-font: "Encode Sans", Helvetica, sans-serif;
  --ui-font: "Encode Sans Compressed", "Encode Sans", Helvetica, sans-serif;
  --body-font: "Open Sans", Helvetica, sans-serif;
  --mono-font: "JetBrains Mono", "Fira Code", "Source Code Pro", Consolas, monospace;

  --base-font-size: 32px;
  --text-size: 15pt;
  --h1-size: 46pt;
  --h2-size: 29pt;
  --h3-size: 20pt;
  --footnote-size: 10pt;

  --slide-padding: 56px;
  --slide-padding-top: 54px;
  --content-gap: 24px;
  --radius-md: 8px;
  --angle-brand: 15deg;

  /* Backward-compatible aliases used by inline slide content. */
  --background-color: var(--color-gold-50);
  --section-divider-bg: var(--color-purple-950);
  --primary-color: var(--color-purple-700);
  --secondary-color: var(--color-gold-700);
  --accent-blue: var(--color-teal-700);
  --text-color: var(--color-neutral-900);
  --muted-color: var(--color-neutral-600);
  --line-color: var(--color-neutral-200);
  --card-bg: var(--color-white);
  --card-border: var(--color-neutral-200);
}

.reveal {
  font-family: var(--body-font);
  font-size: var(--base-font-size);
  color: var(--text-color);
}

.reveal-viewport {
  background: var(--color-purple-950);
}

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

.reveal h1,
.reveal h2,
.reveal h3,
.reveal h4,
.reveal h5,
.reveal h6 {
  color: var(--text-color);
  font-family: var(--heading-font);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.15;
  text-transform: none;
}

.reveal h1 {
  font-size: var(--h1-size);
  font-weight: 800;
}

.reveal h2 {
  font-size: var(--h2-size);
  margin: 0;
}

.reveal h3 {
  font-size: var(--h3-size);
}

.reveal p,
.reveal li,
.reveal td,
.reveal th,
.reveal blockquote {
  color: var(--text-color);
  font-size: var(--text-size);
  line-height: 1.52;
}

.reveal ul {
  list-style: none;
  margin: 12px 0;
  padding-left: 0;
}

.reveal ul li {
  margin-bottom: 8px;
  padding-left: 22px;
  position: relative;
}

.reveal ul li::before {
  background: var(--color-purple-700);
  content: "";
  height: 7px;
  left: 0;
  position: absolute;
  top: 0.68em;
  transform: skewX(-15deg);
  width: 10px;
}

.reveal ul ul li::before {
  background: var(--color-gold-700);
  height: 5px;
  width: 7px;
}

.reveal .slides section {
  background:
    linear-gradient(90deg, rgba(75, 46, 131, 0.06), transparent 34%),
    var(--color-white);
  box-sizing: border-box;
  display: flex !important;
  flex-direction: column !important;
  height: 100%;
  overflow: hidden;
  padding: var(--slide-padding-top) var(--slide-padding) var(--slide-padding) var(--slide-padding) !important;
  text-align: left;
}

.reveal .slides section:nth-child(4n + 2):not(.section-divider):not(.stack),
.reveal .slides section.warm-slide {
  background:
    linear-gradient(105deg, rgba(183, 165, 122, 0.18), transparent 36%),
    var(--color-gold-50);
}

.reveal .slides section.stack {
  background: transparent;
  padding: 0 !important;
}

.reveal .slides section:not(.stack)::before {
  color: var(--color-gold-700);
  content: "UW SSEC";
  font-family: var(--ui-font);
  font-size: 10pt;
  font-weight: 700;
  left: var(--slide-padding);
  letter-spacing: 0.12em;
  line-height: 1;
  position: absolute;
  text-transform: uppercase;
  top: 24px;
  z-index: 2;
}

.reveal .slides section:not(.section-divider):not(.stack)::after {
  background: repeating-linear-gradient(
    105deg,
    transparent,
    transparent 9px,
    rgba(75, 46, 131, 0.07) 9px,
    rgba(75, 46, 131, 0.07) 10px
  );
  bottom: -120px;
  content: "";
  height: 220px;
  pointer-events: none;
  position: absolute;
  right: -80px;
  transform: rotate(var(--angle-brand));
  width: 300px;
}

.reveal .slides section > .content {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: flex-start;
  padding-top: var(--content-gap);
  text-align: left;
  z-index: 1;
}

.reveal .slides section > .footnote {
  bottom: 14px;
  color: var(--muted-color);
  font-size: var(--footnote-size);
  left: var(--slide-padding);
  position: absolute;
  right: var(--slide-padding);
  z-index: 2;
}

.reveal .slides section > h2 {
  border-bottom: 3px solid var(--color-gold-500);
  color: var(--color-purple-700);
  flex-shrink: 0;
  padding-bottom: 12px;
  position: relative;
  z-index: 1;
}

.reveal .slides section.section-divider {
  align-items: flex-start !important;
  background:
    repeating-linear-gradient(
      105deg,
      transparent,
      transparent 10px,
      rgba(255, 255, 255, 0.035) 10px,
      rgba(255, 255, 255, 0.035) 11px
    ),
    radial-gradient(circle at 82% 26%, rgba(42, 210, 201, 0.16), transparent 25%),
    linear-gradient(135deg, var(--color-purple-950), var(--color-purple-900));
  color: var(--color-white);
  justify-content: center !important;
  text-align: left;
}

.reveal .slides section.section-divider::before {
  color: var(--color-gold-500);
}

.reveal .slides section.section-divider::after {
  background: var(--color-gold-500);
  bottom: 0;
  clip-path: polygon(0 35%, 100% 0, 100% 100%, 0 100%);
  content: "";
  height: 72px;
  left: 0;
  position: absolute;
  right: 0;
}

.reveal .slides section.section-divider h1,
.reveal .slides section.section-divider h2 {
  color: var(--color-white);
  font-size: 52pt;
  letter-spacing: 0;
  max-width: 940px;
  text-align: left;
  z-index: 1;
}

.reveal .slides section.section-divider h2 {
  border-bottom: none;
  font-size: 32pt;
  padding-bottom: 0;
}

.reveal .slides section.section-divider h1::after {
  background: var(--color-teal-500);
  content: "";
  display: block;
  height: 4px;
  margin: 16px 0 0;
  transform: skewX(-15deg);
  width: 112px;
}

.reveal .slides section.section-divider p {
  color: var(--color-gold-200);
  font-size: 20pt;
  z-index: 1;
}

.reveal .slides section.section-divider .subtitle {
  color: var(--color-gold-200);
  font-size: 18pt;
  margin-top: 16px;
  max-width: 760px;
}

.reveal .slides section.section-divider .event-tag {
  color: var(--color-teal-300);
  font-family: var(--ui-font);
  font-size: 12pt;
  font-weight: 700;
  letter-spacing: 0.12em;
  margin-bottom: 20px;
  text-transform: uppercase;
}

.text-lg { font-size: 18pt !important; }
.text-xl { font-size: 20pt !important; }
.text-2xl { font-size: 24pt !important; }
.text-3xl { font-size: 28pt !important; }
.text-4xl { font-size: 32pt !important; }
.text-muted { color: var(--muted-color) !important; }
.text-red { color: var(--color-purple-700) !important; }
.text-green { color: var(--color-gold-700) !important; }
.text-blue { color: var(--color-teal-600) !important; }
.text-center { text-align: center !important; }
.text-uppercase {
  font-family: var(--ui-font);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.font-mono { font-family: var(--mono-font) !important; }

.reveal blockquote {
  background: var(--color-gold-50);
  border: 0;
  box-shadow: inset 7px 0 0 var(--color-gold-500);
  margin: 16px 0;
  max-width: none;
  padding: 18px 22px 18px 28px;
  width: 100%;
}

.reveal blockquote p {
  color: var(--color-neutral-900);
  font-size: 16pt;
  font-style: italic;
}

.reveal blockquote cite {
  color: var(--color-neutral-600);
  display: block;
  font-style: normal;
  margin-top: 8px;
}

.reveal table {
  border-collapse: collapse;
  box-shadow: 0 1px 3px rgba(13, 15, 16, 0.08);
  font-size: 12pt;
  width: 100%;
}

.reveal table th {
  background: var(--color-purple-700);
  border: none;
  color: var(--color-white);
  font-family: var(--ui-font);
  font-size: 11pt;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 9px 12px;
  text-align: left;
  text-transform: uppercase;
}

.reveal table td {
  border-bottom: 1px solid var(--color-neutral-200);
  color: var(--color-neutral-900);
  font-size: 12pt;
  padding: 8px 12px;
  vertical-align: top;
}

.reveal table tr:nth-child(even) td {
  background: var(--color-gold-50);
}

.card,
.card-red,
.card-green,
.card-blue {
  background: var(--color-white);
  border: 1px solid var(--color-neutral-200);
  border-radius: var(--radius-md);
  box-shadow: 0 1px 3px rgba(13, 15, 16, 0.08);
  overflow: hidden;
  padding: 18px 20px;
  position: relative;
}

.card::before,
.card-red::before,
.card-green::before,
.card-blue::before {
  background: var(--color-purple-700);
  content: "";
  height: 4px;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.card-red {
  background: var(--color-purple-50);
  border-color: var(--color-purple-200);
}

.card-red::before {
  background: var(--color-purple-700);
}

.card-green {
  background: var(--color-gold-50);
  border-color: var(--color-gold-200);
}

.card-green::before {
  background: var(--color-gold-500);
}

.card-blue {
  background: #effcfc;
  border-color: var(--color-teal-300);
}

.card-blue::before {
  background: var(--color-teal-500);
}

.reveal .badge {
  background: var(--color-purple-700);
  border-radius: 0;
  color: var(--color-white);
  display: inline-block;
  font-family: var(--ui-font);
  font-size: 10pt;
  font-weight: 700;
  letter-spacing: 0.09em;
  margin-bottom: 8px;
  padding: 4px 10px;
  text-transform: uppercase;
  transform: skewX(-15deg);
}

.reveal .badge-green {
  background: var(--color-gold-700);
}

.reveal .badge-blue {
  background: var(--color-teal-500);
  color: var(--color-purple-950);
}

.check-item {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  margin-bottom: 8px;
}

.check-item i {
  color: var(--color-purple-700) !important;
  flex-shrink: 0;
  margin-top: 4px;
}

.reveal code {
  background: var(--color-purple-50);
  border: 1px solid var(--color-purple-100);
  border-radius: 4px;
  color: var(--color-purple-700);
  font-family: var(--mono-font);
  font-size: 0.86em;
  padding: 2px 6px;
}

.section-divider code {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(42, 210, 201, 0.22);
  color: var(--color-teal-300);
}

@media print {
  .reveal .slides section:not(.stack)::before {
    print-color-adjust: exact;
  }
}
