.three-gallery-stage.is-active,
.three-gallery-stage.is-active canvas,
.three-gallery-stage.is-inspecting,
.three-gallery-stage.is-inspecting canvas { cursor: none; }
body.three-gallery-controls-active .custom-cursor { opacity: 0 !important; visibility: hidden !important; }
.three-gallery-stage.is-art-hover .three-gallery-reticle { opacity: 0; }
.three-gallery-hover { top: 50%; width: 1.2rem; height: 1.2rem; border: 0; padding: 0; background: transparent; transform: translate(-50%, -50%); }
.three-gallery-hover::before { content: ""; position: absolute; left: .05rem; top: .05rem; width: .72rem; height: .72rem; border: 2.5px solid rgba(255,255,255,.96); border-radius: 50%; background: rgba(0,0,0,.32); box-shadow: 0 0 0 1px rgba(0,0,0,.82), inset 0 0 0 1px rgba(0,0,0,.62); }
.three-gallery-hover::after { content: ""; position: absolute; left: .75rem; top: .75rem; width: .42rem; height: .16rem; background: rgba(255,255,255,.94); transform: rotate(45deg); transform-origin: left center; box-shadow: 0 0 0 1px rgba(0,0,0,.45); }
.three-gallery-hover span { position: absolute; left: .8rem; top: -.65rem; color: #62e989; font-size: .8rem; font-weight: bold; }
.three-gallery-stage.is-exit-hover .three-gallery-hover,
.three-gallery-stage.is-bench-hover .three-gallery-hover { width: auto; height: auto; border: 1px solid rgba(255,255,255,.65); padding: .42rem .58rem; background: rgba(0,0,0,.76); font-size: .66rem; letter-spacing: .1em; white-space: nowrap; }
.three-gallery-stage.is-exit-hover .three-gallery-hover::before,
.three-gallery-stage.is-exit-hover .three-gallery-hover::after,
.three-gallery-stage.is-bench-hover .three-gallery-hover::before,
.three-gallery-stage.is-bench-hover .three-gallery-hover::after { display: none; }
.three-gallery-contemplation-track { position: relative; }
.three-gallery-contemplation-icon { position: absolute; z-index: 2; top: 50%; width: 1.35rem; height: 1.35rem; object-fit: contain; filter: invert(1) drop-shadow(0 1px 2px #000); animation: contemplation-icon-pulse var(--contemplation-pulse-duration,1.25s) ease-in-out infinite; }
.three-gallery-contemplation-eye { right: calc(100% + .45rem); transform: translateY(-50%); }
.three-gallery-contemplation-brain { left: calc(100% + .45rem); transform: translateY(-50%); }
@keyframes contemplation-icon-pulse { 0%,100% { opacity: .52; scale: .92; } 50% { opacity: 1; scale: var(--contemplation-pulse-scale,1.08); } }
.three-gallery-focus-hud.is-complete .three-gallery-contemplation-icon { animation: none; opacity: 1; scale: 1; }
.three-gallery-contemplation { right: 14%; left: 14%; }
.three-gallery-focus-help { display: flex; justify-content: center; gap: 1.1rem; margin-top: .42rem; color: rgba(255,255,255,.62); font-size: .55rem; letter-spacing: .11em; text-shadow: 0 1px 3px #000; }
.three-gallery { margin-bottom: 0; }
.three-gallery-stage { border-color: rgba(210,212,220,.2); }
.three-gallery-enter-content { display: flex; flex-direction: column; align-items: center; gap: 2.35rem; transform: translateY(-.15rem); }
.three-gallery-enter-title { margin: 0; color: #fff; font-family: 'Bebas Neue',Impact,sans-serif; font-size: clamp(2.8rem,7vw,5.4rem); font-weight: 700; line-height: .9; letter-spacing: .025em; text-shadow: 0 2px 20px rgba(0,0,0,.8); }
.three-gallery-quality { display: flex; flex-direction: column; align-items: center; gap: .45rem; color: rgba(255,255,255,.66); font-size: .56rem; letter-spacing: .14em; text-transform: uppercase; text-shadow: 0 1px 5px #000; }
.three-gallery-quality-options { display: flex; align-items: center; gap: .75rem; }
.three-gallery-quality button { pointer-events: auto; border: 0; padding: .12rem 0; background: transparent; color: rgba(255,255,255,.55); font: inherit; letter-spacing: .13em; text-transform: uppercase; cursor: pointer; }
.three-gallery-quality button:hover,
.three-gallery-quality button:focus-visible { color: #fff; }
.three-gallery-quality button.is-selected { color: #fff; text-decoration: underline; text-underline-offset: .25rem; }
.three-gallery-experimental-note { position: absolute; z-index: 6; left: .65rem; bottom: .55rem; margin: 0; max-width: min(31rem,calc(100% - 1.3rem)); color: rgba(255,255,255,.48); font-size: .52rem; line-height: 1.35; letter-spacing: .045em; text-shadow: 0 1px 4px #000; }
.three-gallery-loading:not(.is-ready) { background: linear-gradient(rgba(0,0,0,.16),rgba(0,0,0,.28)); text-shadow: 0 2px 8px #000,0 0 18px #000; }
.three-gallery-loading:not(.is-ready) .three-gallery-loading-mark { filter: drop-shadow(0 0 .8rem rgba(0,0,0,.9)) drop-shadow(0 0 1.2rem rgba(240,74,167,.22)); }
.three-gallery-close-screen { position: absolute; z-index: 11; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .8rem; pointer-events: none; }
.three-gallery-close-actions { display: flex; align-items: center; gap: .65rem; }
.three-gallery-close-screen[hidden] { display: none; }
.three-gallery-close-actions button { pointer-events: auto; border: 1px solid rgba(255,255,255,.72); padding: .7rem 1.2rem; background: rgba(0,0,0,.78); color: #fff; font: inherit; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; box-shadow: 0 .25rem 1.25rem rgba(0,0,0,.38); }
.three-gallery-close-actions button:hover,
.three-gallery-close-actions button:focus-visible { background: #fff; color: #111; }

/* Shared responsive embed layout for the virtual-gallery series pages. */
.page-work-gallery .page-main {
  --three-gallery-page-gap: clamp(1.5rem, 3vw, 2.4rem);
  gap: var(--three-gallery-page-gap);
  padding-top: var(--three-gallery-page-gap);
}
body.has-wip-banner.page-work-gallery .page-main {
  padding-top: calc(1.05rem + var(--three-gallery-page-gap));
}
.page-work-gallery .three-gallery {
  width: 50%;
  max-width: none;
  margin-bottom: 0;
}
.page-work-gallery .gallery-grid {
  margin-top: 0;
}
.page-work-gallery .three-gallery-stage {
  height: 650px;
  min-height: 0;
  aspect-ratio: auto;
}
@media (max-width: 1500px) {
  .page-work-gallery .three-gallery { width: 100%; }
}
@media (max-width: 760px) {
  .page-work-gallery .three-gallery { display: none; }
}
