/* Vector controls stay crisp and retain the page's reading direction. */
.page-arrow {
  display: block;
  inline-size: 1.25rem;
  block-size: 1.25rem;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.directional-arrow:has(>.page-arrow) { display: inline-flex; align-items: center; }
.back-top .page-arrow { inline-size: 1.5rem; block-size: 1.5rem; }
.workbench, .demo-panel, .review-fields { min-inline-size: 0; }
.workbench { max-inline-size: 100%; }
.demo-tabs { gap: .25rem; padding-block-start: .25rem; }
.demo-tabs button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  min-inline-size: 0;
  min-block-size: 48px;
  padding-inline: .2rem;
  border-block-end-width: 2px;
}
.demo-tabs button[aria-selected="true"] {
  color: var(--deep-bronze);
  background: color-mix(in srgb, var(--deep-bronze) 9%, transparent);
}
.demo-tab-arrow { opacity: 0; }
.demo-tab-arrow .page-arrow { inline-size: .9rem; block-size: .9rem; }
.demo-tabs button[aria-selected="true"] .demo-tab-arrow { opacity: 1; }
.workbench-media {
  isolation: isolate;
  min-inline-size: 0;
  background: color-mix(in srgb, var(--deep) 92%, var(--deep-bronze));
}
.workbench-media>img, .workbench-media .media-overlay { transition: opacity 180ms ease-out; }
.workbench-media[data-media-state="loading"]>img,
.workbench-media[data-media-state="loading"] .media-overlay,
.workbench-media[data-media-state="error"]>img,
.workbench-media[data-media-state="error"] .media-overlay { opacity: 0; }
.workbench-media[data-media-state="loading"] .media-overlay,
.workbench-media[data-media-state="error"] .media-overlay { visibility: hidden; pointer-events: none; }
.workbench-media[data-media-state="loading"]>img,
.workbench-media[data-media-state="loading"] .media-overlay { transition: none; }
.workbench-media-status {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  margin: 0;
  padding: 1.5rem;
  color: var(--deep-muted);
  font-size: .9rem;
  line-height: 1.8;
  text-align: center;
}
.workbench-media-status[hidden] { display: none; }
.review-button .page-arrow { inline-size: 1rem; block-size: 1rem; }
/* The scene keeps its photographic crop LTR; controls follow the page direction. */
.scene-arrow { width: auto; min-width: 30px; height: 26px; padding: 0 5px; bottom: 8px; border-radius: 0; }
.scene-arrow .page-arrow { inline-size: 1.2rem; block-size: 1.2rem; }
.scene-arrow:focus-visible, .demo-next:focus-visible { outline-color: var(--deep-text); outline-offset: 3px; }
html[dir="rtl"] .scene-previous { left: auto; right: 10px; }
html[dir="rtl"] .scene-next { right: auto; left: 10px; }
html[dir="rtl"] .scene-arrow .page-arrow { transform: scaleX(-1); }
/* Reserve real footer space for a usable Next button at every viewport width. */
.workbench-footer { align-items: center; gap: 12px; }
#demo-caption { min-inline-size: 0; overflow-wrap: anywhere; }
.demo-next-slot { width: auto; height: auto; flex: 0 0 auto; }
.demo-next { position: relative; inset: auto; top: auto; transform: none; width: auto; min-width: 44px; height: 30px; padding: 0 10px; gap: 7px; border-radius: 0; }
.demo-next-label { display: inline; }
.demo-next-arrow { display: inline-flex; }
.workbench:has(.demo-panel:not([hidden]) [data-media-state="loading"]) .demo-next { visibility: hidden; }
/* Keep the scene's shared sweep, including its root-direction RTL mirror. */
.scene-arrow::before, .demo-next::before { opacity: .55; }
.scene-arrow:hover::before, .demo-next:hover::before { opacity: .8; }
@media (max-width: 380px) {
  .demo-tabs button { gap: .2rem; font-size: .82rem; }
  .demo-tab-arrow .page-arrow { inline-size: .75rem; block-size: .75rem; }
}
@media (prefers-reduced-motion: reduce) {
  .workbench-media>img, .workbench-media .media-overlay { transition: none; }
  .scene-arrow::before, .demo-next::before { animation: none; opacity: 0; }
}
