[hidden] {
  display: none !important;
}

body.presentation-ready {
  height: 100vh;
  overflow: hidden;
}

.presentation:fullscreen {
  width: 100vw;
  height: 100vh;
  min-height: 0;
  background: var(--paper);
}

.presentation-tools {
  display: flex;
  align-items: center;
  gap: 24px;
}

.fullscreen-button {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  color: var(--muted);
  background: transparent;
  font-family: var(--sans);
  font-size: .6rem;
  font-weight: 650;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.fullscreen-button:hover,
.fullscreen-button.is-active {
  color: var(--navy);
  border-color: var(--gold);
}

.fullscreen-icon {
  width: 15px;
  height: 15px;
  background:
    linear-gradient(var(--gold), var(--gold)) left top / 6px 1px no-repeat,
    linear-gradient(var(--gold), var(--gold)) left top / 1px 6px no-repeat,
    linear-gradient(var(--gold), var(--gold)) right top / 6px 1px no-repeat,
    linear-gradient(var(--gold), var(--gold)) right top / 1px 6px no-repeat,
    linear-gradient(var(--gold), var(--gold)) left bottom / 6px 1px no-repeat,
    linear-gradient(var(--gold), var(--gold)) left bottom / 1px 6px no-repeat,
    linear-gradient(var(--gold), var(--gold)) right bottom / 6px 1px no-repeat,
    linear-gradient(var(--gold), var(--gold)) right bottom / 1px 6px no-repeat;
}

@media (max-width: 600px) {
  .presentation-tools { gap: 10px; }
  .fullscreen-button { padding: 8px; }
  .fullscreen-button b { display: none; }
  .slide-status i { width: 22px; }
}

/* Spacious slide rhythm: use the available viewport instead of compressing content. */
@media (min-width: 901px) {
  .pres-slide {
    padding-top: clamp(28px, 4vh, 52px);
    padding-bottom: clamp(28px, 4vh, 52px);
    row-gap: clamp(24px, 4vh, 52px);
    align-content: space-between;
    overflow: hidden;
    min-height: 0;
  }

  .cover,
  .ordec,
  .closing,
  .profile-slide {
    align-content: stretch;
  }

  .slide-heading {
    align-self: start;
  }

  .challenge-grid,
  .capability-list,
  .method-flow,
  .team-grid {
    align-self: stretch;
  }

  .challenge-grid article,
  .capability-list article,
  .method-flow article {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: clamp(170px, 24vh, 255px);
    padding: clamp(28px, 3vw, 46px);
  }

  .team-grid article {
    min-height: clamp(245px, 34vh, 355px);
    padding: clamp(30px, 3.5vw, 54px);
  }

  .profile-slide {
    grid-template-columns: minmax(285px, .7fr) minmax(600px, 1.3fr);
    gap: clamp(48px, 7vw, 110px);
    align-items: stretch;
  }

  .profile-photo {
    height: 100%;
    min-height: 0;
  }

  .profile-photo > img {
    object-position: center 28%;
  }

  .profile-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
  }

  .profile-content h2 {
    font-size: clamp(3rem, 4.6vw, 5.2rem);
  }

  .profile-intro {
    margin-block: clamp(18px, 2.5vh, 32px);
  }

  .profile-facts {
    gap: clamp(20px, 2.6vw, 42px);
    margin-top: clamp(20px, 3vh, 38px);
    border: 0;
    background: transparent;
  }

  .profile-facts div {
    min-height: 145px;
    padding: 24px 4px 18px;
    border-top: 2px solid var(--gold);
    background: transparent;
  }

  .profile-facts strong {
    margin: 13px 0 10px;
    font-size: 1.08rem;
    line-height: 1.35;
  }

  .profile-facts small {
    line-height: 1.6;
  }

  .profile-quote,
  .university-mark {
    margin-top: auto;
    padding-top: clamp(18px, 3vh, 34px);
  }
}

@media (min-width: 901px) {
  .challenges-slide {
    grid-template-rows: auto minmax(0, 1fr) auto;
  }

  .challenges-slide .challenge-grid {
    min-height: 0;
  }

  .challenges-slide .challenge-grid article {
    min-height: 0;
    height: 100%;
  }

  .challenges-slide blockquote {
    align-self: end;
  }
}

@media (min-width: 901px) and (max-height: 760px) {
  .pres-slide { padding-top: 20px; padding-bottom: 20px; row-gap: 14px; }
  .pres-slide h2 { font-size: clamp(2.5rem, 4.5vw, 4.7rem); }
  .profile-content h2 { font-size: clamp(2.6rem, 4vw, 4.2rem); }
  .profile-intro { margin-block: 12px; }
  .profile-facts { margin-top: 12px; }
  .profile-facts div { min-height: 112px; padding-top: 16px; }
  .challenge-grid article,
  .capability-list article,
  .method-flow article { min-height: 0; padding: 20px 26px; }
  .challenge-grid h3,
  .method-flow h3 { margin-block: 10px; }
  .challenge-grid p,
  .method-flow p { margin-block: 6px; line-height: 1.45; }
  .pres-slide blockquote { font-size: 1.05rem; }
  .team-grid article { min-height: 0; padding: 22px 28px; }
}

@media (min-width: 901px) and (max-height: 640px) {
  .presentation-header { height: 64px; }
  .pres-slide { inset: 64px 0 58px; padding-top: 14px; padding-bottom: 14px; row-gap: 10px; }
  .presentation-controls { height: 58px; }
  .pres-kicker { margin-bottom: 8px; }
  .pres-slide h2 { font-size: clamp(2.1rem, 3.8vw, 3.8rem); }
  .profile-content h2 { font-size: clamp(2.2rem, 3.4vw, 3.4rem); }
  .profile-role { margin-block: 7px; }
  .profile-intro { margin-block: 7px; font-size: .92rem; line-height: 1.45; }
  .profile-facts { margin-top: 7px; }
  .profile-facts div { min-height: 84px; padding: 10px 2px; }
  .profile-facts strong { margin: 5px 0; font-size: .92rem; }
  .profile-quote,
  .university-mark { padding-top: 8px; margin-top: 8px; }
  .university-mark img { max-height: 38px; }
}
