.sci-presentation {
  position: fixed; inset: 0; z-index: 10010; display: grid;
  grid-template-rows: auto minmax(0,1fr) auto; height: 100vh; height: 100dvh;
  background: var(--bg, #fff); color: var(--ink); font-family: inherit;
}
.sci-presentation-head, .sci-presentation-controls { display: flex; align-items: center; gap: .75rem; padding: .75rem 1rem; }
.sci-presentation-head { border-bottom: 1px solid var(--line); justify-content: space-between; }
.sci-presentation-head > div { min-width: 0; display: grid; gap: .25rem; }
.sci-presentation-head strong { font-size: 1rem; overflow-wrap: anywhere; max-height: 4.5em; overflow: auto; }
.sci-presentation-head span { font-size: .875rem; }
.sci-presentation button {
  min-height: 44px; min-width: 44px; border: 1px solid var(--line); border-radius: .625rem;
  background: var(--panel); color: var(--ink); font: inherit; font-size: 1rem;
  padding: .5rem .75rem; cursor: pointer; flex-shrink: 0;
}
.sci-presentation button:disabled { opacity: .45; cursor: default; }
.sci-presentation button:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.sci-presentation-stage { position: relative; overflow: auto; overscroll-behavior: contain; background: var(--bg, #f4f2fa); }
.sci-presentation-surface { display: grid; place-items: center; min-width: 100%; min-height: 100%; width: max-content; }
.sci-presentation-surface img { display: block; max-width: none; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.sci-presentation-message {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 1rem; padding: 1.5rem; background: var(--bg, #fff); text-align: center; line-height: 1.65;
}
.sci-presentation-message p { margin: 0; max-width: 50ch; }
.sci-presentation-controls { justify-content: center; flex-wrap: wrap; border-top: 1px solid var(--line); }
.sci-presentation-zoom { display: flex; align-items: center; gap: .5rem; }
.sci-presentation [data-pv-count], .sci-presentation [data-pv-zoom] { min-width: 4.5ch; text-align: center; font-size: .875rem; font-variant-numeric: tabular-nums; }
.sci-presentation [hidden] { display: none !important; }
@media (max-width: 620px) {
  .sci-presentation-head { padding: .5rem .75rem; }
  .sci-presentation-controls { padding: .5rem; gap: .375rem; padding-bottom: max(.5rem, env(safe-area-inset-bottom)); }
  .sci-presentation-head strong { font-size: .9375rem; }
  .sci-presentation-zoom { gap: .25rem; }
}
