.reveal { --r-main-font: var(--ugent-font-normal); }
.reveal .content-slide .lead,
.reveal .content-slide .block p,
.reveal .content-slide ul,
.reveal .content-slide ol { font-family: var(--ugent-font-normal); font-size: 0.82em; line-height: 1.4; }
.reveal .content-slide ul, .reveal .content-slide ol {
  box-sizing: border-box; margin: 0; padding-inline-start: 1.4em; list-style-position: outside; text-align: left;
}
.reveal .content-slide li + li { margin-top: 0.6em; }
.reveal .ugent-title h1 { font-size: 2.1em; max-width: 1150px; }
.reveal .ugent-title.bg-primary .title-logo { filter: brightness(0) invert(1); }
.reveal .ugent-title .presenter { color: white; font-size: 0.85em; }
.reveal .kicker { color: var(--ugent-blue); font-size: 0.52em; text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 18px; }
.reveal .ghentcdh-intro { text-align: center; }
.reveal .ghentcdh-intro .intro-logo { display: block; width: 900px; height: 216px; max-width: 100%; object-fit: contain; margin: 15px auto 20px; }
.reveal .ghentcdh-branches { max-width: 1320px; margin: 0 auto; }
.reveal .ghentcdh-connectors { display: block; width: 100%; height: 110px; }
.reveal .ghentcdh-roles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.reveal .ghentcdh-role { padding: 30px 12px 24px; }
.reveal .ghentcdh-role h2 { margin: 0 0 18px; font-size: 0.95em; text-align: center; }
.reveal .ghentcdh-role p { margin: 0; font-size: 0.61em; line-height: 1.4; color: var(--ugent-grey); }
.reveal .ghentcdh-role .role-subtitle { margin-bottom: 22px; color: var(--ugent-blue); font-size: 0.68em; }
.reveal .ghentcdh-role-focus { background: var(--ugent-pale); border-top: 6px solid var(--ugent-yellow); border-radius: 4px; padding-top: 24px; }
.reveal .ghentcdh-role .role-focus-label { display: inline-block; margin-top: 24px; padding: 8px 18px; background: var(--ugent-blue); color: white; font-size: 0.6em; border-radius: 3px; }
.reveal .statement { font-size: 1.35em; max-width: 1150px; line-height: 1.25; }
.reveal .takeaway { margin-top: 45px; border-left: 7px solid var(--ugent-yellow); padding: 15px 25px; background: var(--ugent-pale); font-size: 0.85em; }
.reveal .project-layout { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 45px; align-items: center; }
.reveal .project-layout ul { font-size: 0.75em; }
.reveal .project-pile { position: relative; height: 560px; perspective: 1400px; }
.reveal .project-shot { position: absolute; width: 510px; margin: 0; padding: 9px; background: white; border: 1px solid var(--ugent-pale); box-shadow: 0 16px 28px #20202030; }
.reveal .project-shot img { display: block; width: 100%; height: 240px; object-fit: cover; object-position: top; margin: 0; }
.reveal .project-shot figcaption { color: var(--ugent-blue); font-size: 17px; padding: 7px 5px 0; }
.reveal .project-shot:nth-child(1) { top: 5px; left: 30px; transform: rotate(-9deg) rotateY(-8deg); }
.reveal .project-shot:nth-child(2) { top: 85px; left: 130px; transform: rotate(7deg) rotateY(-8deg); }
.reveal .project-shot:nth-child(3) { top: 175px; left: 15px; transform: rotate(-5deg) rotateY(-8deg); }
.reveal .project-shot:nth-child(4) { top: 265px; left: 125px; transform: rotate(4deg) rotateY(-8deg); }
.reveal .interface-pile { position: relative; height: 830px; perspective: 1800px; cursor: pointer; }
.reveal .slides .interface-card {
  position: absolute; left: var(--card-x); top: var(--card-y); width: 1250px;
}
.reveal .slides .interface-card.fragment {
  opacity: 0; visibility: hidden; transform: translateY(-45px) scale(1.04);
  transition: opacity 300ms ease, transform 450ms ease, visibility 300ms ease;
}
.reveal .slides .interface-card.fragment.visible { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
.reveal .interface-card img {
  display: block; width: auto; max-width: 100%; height: 740px; object-fit: contain; margin: 0 auto;
  box-sizing: border-box; padding: 8px; background: white;
  border: 1px solid var(--ugent-pale); box-shadow: 0 15px 30px #20202035;
  transform: rotate(var(--card-angle)) rotateY(-2deg);
  transition: transform 350ms ease;
}
.reveal .interface-card.current-fragment img { transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal .slides .interface-card.fragment { transition: none; }
  .reveal .interface-card img { transition: none; }
}
.reveal .diagram { width: 100%; margin: 20px 0 0; }
.reveal .diagram svg { display: block; width: 100%; height: auto; max-height: 570px; font-family: var(--ugent-font-normal); }
.reveal .source { font-size: 0.48em; line-height: 1.4; color: var(--ugent-grey); }
.reveal .seco-logo { height: 55px; width: auto; vertical-align: middle; margin: 0 20px 0 0; }
.reveal .architecture-image { display: block; max-height: 580px; max-width: 100%; width: auto; margin: 20px auto; }
.reveal .demo-screenshot { display: block; max-height: 530px; max-width: 100%; margin: 15px auto; }
.reveal .slides .demo-slide.is-live > :not(.notes) { visibility: hidden; }
.reveal .slides .demo-slide.is-live { pointer-events: none; }
.reveal .demo-toolbar { position: fixed; bottom: 15px; left: 20px; right: 130px; z-index: 45; background: var(--ugent-blue); color: white; padding: 12px 18px; border-radius: 4px; display: flex; align-items: center; gap: 20px; font-size: clamp(12px, 1.8vw, 23px); }
.reveal .demo-toolbar[hidden] { display: none; }
.reveal .demo-toolbar a { color: white; border-color: #ffffff80; }
.reveal .demo-toolbar button { margin-left: auto; flex-shrink: 0; font: inherit; color: var(--ugent-black); background: var(--ugent-yellow); border: 0; padding: 8px 12px; border-radius: 3px; cursor: pointer; }
@media print {
  .reveal .demo-toolbar { display: none; }
  .reveal .slides .demo-slide.is-live > :not(.notes) { visibility: visible; }
}

.reveal .repetition-layout { display: grid; grid-template-columns: 0.95fr 1.05fr; gap: 35px; align-items: center; }
.reveal .repetition-layout ul { font-size: 0.73em; }
.reveal .repetition-layout .takeaway { font-size: 0.68em; margin-top: 32px; }
.reveal .repetition-diagram svg { display: block; width: 100%; max-height: 585px; }
.reveal .icon-heading { display: flex; align-items: center; gap: 26px; margin-bottom: 24px; }
.reveal .icon-heading h2 { margin: 0; }
.reveal .heading-icon { width: 105px; height: 105px; flex: 0 0 105px; margin: 0; }

@media (prefers-reduced-motion: reduce), print {
  .reveal .repetition-runner { display: none; }
}
