.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,
.three-gallery-close-screen { font-family: 'Inconsolata',Consolas,'Liberation Mono',monospace; }
.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: 'Inconsolata',Consolas,'Liberation Mono',monospace; font-size: clamp(2.8rem,7vw,5.4rem); font-weight: 900; line-height: .9; letter-spacing: -.035em; 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)::after { content:"ESC TO CANCEL"; margin-top:.8rem; color:rgba(255,255,255,.62); font-size:.56rem; letter-spacing:.12em; }
.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 menu-style start and pause presentation. */
.three-gallery-enter { place-items: start; padding: clamp(1.65rem,3.2vw,2.75rem); }
.three-gallery-enter-content { display:flex; width:min(28rem,72%); flex-direction:column; align-items:flex-start; gap:.95rem; transform:none; }
.three-gallery-enter-title { margin:0; color:#fff; font-family:'Inconsolata',Consolas,'Liberation Mono',monospace; font-size:.86rem; font-weight:700; font-style:italic; line-height:1.12; letter-spacing:.02em; text-align:left; text-transform:uppercase; text-shadow:0 2px 20px rgba(0,0,0,.8); }
.three-gallery-enter [data-gallery-enter]:not(.three-gallery-enter-center),
.three-gallery-enter-link { margin-left:.5rem; border:0; padding:.1rem 0; background:transparent; box-shadow:none; color:rgba(255,255,255,.88); font-family:'Inconsolata',Consolas,'Liberation Mono',monospace; font-size:.78rem; font-weight:400; font-style:normal; line-height:1.12; letter-spacing:0; text-align:left; text-transform:none; }
.three-gallery-enter [data-gallery-enter]:not(.three-gallery-enter-center):hover,
.three-gallery-enter [data-gallery-enter]:not(.three-gallery-enter-center):focus-visible,
.three-gallery-enter-link:hover,
.three-gallery-enter-link:focus-visible { background:transparent; color:var(--theme-accent); outline:none; }
.three-gallery-enter-link { display:table; margin-top:-.78rem; text-decoration:none; }
.three-gallery-enter [data-gallery-enter].three-gallery-enter-center { position:absolute; left:50%; top:50%; margin:0; padding:.72rem 1.35rem; transform:translate(-50%,-50%); border:1px solid rgba(255,255,255,.82); background:#000; color:#fff; font-family:'Inconsolata',Consolas,'Liberation Mono',monospace; font-size:.8rem; font-weight:400; font-style:normal; line-height:1; letter-spacing:normal; text-transform:none; box-shadow:0 .25rem 1.2rem rgba(0,0,0,.35); }
.three-gallery-enter [data-gallery-enter].three-gallery-enter-center:hover,
.three-gallery-enter [data-gallery-enter].three-gallery-enter-center:focus-visible { border-color:var(--theme-accent); background:#000; color:#fff; }
.three-gallery-enter .three-gallery-quality { align-items:flex-start; margin-top:.25rem; }
.three-gallery-enter .three-gallery-quality > span { font-weight:700; font-style:italic; }
.three-gallery-enter .three-gallery-quality-options { flex-direction:column; align-items:flex-start; gap:.18rem; margin-left:.5rem; }
.three-gallery-quality button:hover,
.three-gallery-quality button:focus-visible { background:#000 !important; color:#fff !important; }
.three-gallery-close-screen { align-items:flex-start; justify-content:flex-start; padding:clamp(1.65rem,3.2vw,2.75rem); background:rgba(0,0,0,.16); }
.three-gallery-close-content { display:flex; width:min(28rem,72%); flex-direction:column; align-items:flex-start; gap:.95rem; }
.three-gallery-close-actions { flex-direction:column; align-items:flex-start; gap:.12rem; margin-left:.5rem; }
.three-gallery-close-actions button { border:0; padding:.1rem 0; background:transparent; color:rgba(255,255,255,.88); font-family:'Inconsolata',Consolas,'Liberation Mono',monospace; font-size:.78rem; font-weight:400; font-style:normal; line-height:1.12; letter-spacing:0; text-transform:none; box-shadow:none; }
.three-gallery-close-actions button:hover,
.three-gallery-close-actions button:focus-visible { background:transparent; color:var(--theme-accent); }
.three-gallery-close-link { display:table; margin-top:-.78rem; margin-left:.5rem; padding:.1rem 0; color:rgba(255,255,255,.88); font-family:'Inconsolata',Consolas,'Liberation Mono',monospace; font-size:.78rem; line-height:1.12; text-decoration:none; }
.three-gallery-close-link:hover,
.three-gallery-close-link:focus-visible { color:var(--theme-accent); outline:none; }
.three-gallery-close-content .three-gallery-quality { align-items:flex-start; margin-top:.25rem; }
.three-gallery-close-content .three-gallery-quality > span { font-weight:700; font-style:italic; }
.three-gallery-close-content .three-gallery-quality-options { flex-direction:column; align-items:flex-start; gap:.18rem; margin-left:.5rem; }
.three-gallery-close-screen [data-gallery-resume].three-gallery-resume-center { position:absolute; left:50%; top:50%; margin:0; padding:.72rem 1.35rem; transform:translate(-50%,-50%); border:1px solid rgba(255,255,255,.82); background:#000; color:#fff; font-family:'Inconsolata',Consolas,'Liberation Mono',monospace; font-size:.8rem; font-weight:400; font-style:normal; line-height:1; letter-spacing:normal; text-transform:none; box-shadow:0 .25rem 1.2rem rgba(0,0,0,.35); pointer-events:auto; }
.three-gallery-close-screen [data-gallery-resume].three-gallery-resume-center:hover,
.three-gallery-close-screen [data-gallery-resume].three-gallery-resume-center:focus-visible { border-color:var(--theme-accent); background:#000; color:#fff; }

/* Virtual-gallery page composition: 2 columns + information on standard
   desktops, 1.5 columns on true ultrawide viewports, stacked when narrow. */
.page-work-gallery .page-main { display:grid !important; grid-template-columns:repeat(6,minmax(0,1fr)); align-items:start; gap:clamp(1.2rem,2.2vw,2rem); }
.page-work-gallery .three-gallery { grid-column:1 / span 4; grid-row:1; width:100%; max-width:none; margin:0; }
.page-work-gallery .page-header { grid-column:5 / -1; grid-row:1; align-self:start; order:initial !important; max-width:none; margin:0 !important; padding:0 !important; border-top:0; text-align:left; }
.page-work-gallery .page-title,
.page-work-gallery .page-breadcrumb,
.page-work-gallery .page-intro { width:100%; max-width:none; text-align:left; }
.page-work-gallery .gallery-grid { grid-column:1 / -1; grid-row:2; order:initial !important; margin-top:0; }
.page-work-gallery .site-footer { grid-column:1 / -1; }
@media (min-width:1800px) and (min-aspect-ratio:2/1) {
  .page-work-gallery .three-gallery { grid-column:1 / span 3; }
  .page-work-gallery .page-header { grid-column:4 / -1; }
}
@media (max-width:1100px) {
  .page-work-gallery .three-gallery { grid-column:1 / -1; grid-row:1; }
  .page-work-gallery .page-header { grid-column:1 / -1; grid-row:2; }
  .page-work-gallery .gallery-grid { grid-row:3; }
}

/* 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: 100%;
  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: 760px) {
  .page-work-gallery .three-gallery { display: none; }
  .page-work-gallery .page-header { grid-row: 1; }
  .page-work-gallery .gallery-grid { grid-row: 2; }
}
