/* Entering an exhibit. Gallery art and typography remain the source of the interior. */
.gallery-slide[data-slot="0"]{cursor:pointer}
/* Side copies remain visible scenery, never interactive targets. */
.gallery-slide:not([data-slot="0"]){pointer-events:none;cursor:default}
.gallery-slide:not([data-slot="0"]):hover{opacity:.55}
/* Keep Exhibit 04's surrounding field free of corner darkening. */
.gallery-slide[data-exhibit="3"] .art-stage:after{box-shadow:none}
.gallery-slide .entry-invite{position:absolute;right:24px;bottom:22px;z-index:2;display:flex;align-items:center;justify-content:center;gap:12px;width:max-content;min-height:48px;padding:0 16px 0 21px;border:1px solid #343a30;background:#343a30;color:#f0f0e9;font:500 14px/1.2 'IBM Plex Sans',Arial,sans-serif;letter-spacing:.015em;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s,background .2s,border-color .2s}
/* Equivalent slides swap instantly at the loop boundary; their button must too. */
.gallery-track.is-rebasing .entry-invite{transition:none}
.entry-invite svg{display:block;width:28px;height:24px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:square;stroke-linejoin:miter}
.entry-invite .entry-doorway{opacity:.55;transition:opacity .2s}
.entry-invite .entry-direction{transform:translateX(-2px);transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.gallery-slide[data-slot="0"] .entry-invite{opacity:1;transform:none}
.gallery-slide[data-slot="0"]:hover .entry-invite,.gallery-slide[data-slot="0"]:focus-visible .entry-invite{background:#242a22;border-color:#242a22}
.gallery-slide[data-slot="0"]:hover .entry-direction,.gallery-slide[data-slot="0"]:focus-visible .entry-direction{transform:translateX(1px)}
.gallery-slide[data-slot="0"]:hover .entry-doorway,.gallery-slide[data-slot="0"]:focus-visible .entry-doorway{opacity:1}
/* A focused slide shows it on its Enter button alone. */
.gallery-slide:focus-visible{outline:none}
.gallery-slide[data-slot="0"]:active .entry-invite{transform:translateY(1px);background:#171d16}
.gallery-slide .entry-invite--create{isolation:isolate;overflow:hidden;background:transparent}
.entry-invite--create .entry-invite-fill{position:absolute;inset:0;z-index:-1;background:#343a30;transform-origin:left center;pointer-events:none;transition:background .2s}
.entry-invite--create .entry-invite-text{display:block}
.gallery-slide[data-slot="0"]:hover .entry-invite--create,.gallery-slide[data-slot="0"]:focus-visible .entry-invite--create,.gallery-slide[data-slot="0"]:active .entry-invite--create{background:transparent}
.gallery-slide[data-slot="0"]:hover .entry-invite-fill,.gallery-slide[data-slot="0"]:focus-visible .entry-invite-fill{background:#242a22}
.gallery-slide[data-slot="0"]:active .entry-invite-fill{background:#171d16}
body.is-entering{overflow:hidden}
.entry-source{visibility:hidden!important}
#stream-viewer{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;outline:none;overflow:hidden;background:transparent;color:#343a30;overscroll-behavior:none}
#stream-viewer::backdrop{background:transparent}
.entry-veil{position:absolute;inset:0;background:#e8e8e2;opacity:0;pointer-events:none}
.entry-field{position:absolute;left:0;top:0;overflow:hidden;background:#c6c7c0;isolation:isolate}
.entry-field:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 90px #1111100a;pointer-events:none}
.entry-atmosphere{position:absolute;inset:0;opacity:0;background:radial-gradient(ellipse at 36% 31%,#e1e4d969,transparent 69%),linear-gradient(170deg,#c6c9c0 5%,#c1c6bb 55%,#b9c0b2 100%);pointer-events:none}
.entry-art{position:absolute;left:0;top:0;pointer-events:none}
.entry-art>.glass-art{width:100%;height:100%;display:block}
.entry-front,.entry-back,.entry-contents{transform-box:view-box;transform-origin:0 0}
.entry-interface{position:absolute;inset:0;z-index:3;opacity:0;pointer-events:none}
.entry-exit{position:absolute;top:27px;left:4%;display:flex;align-items:center;gap:18px;min-height:44px;padding:10px 0;border:0;background:transparent;color:inherit;font:10px/1.5 'IBM Plex Mono',monospace;letter-spacing:.035em;text-transform:uppercase;pointer-events:auto}
.entry-exit span:first-child{font:20px/1 Arial,sans-serif;transition:transform .2s}
.entry-exit:hover span:first-child{transform:translateX(-4px)}
.entry-brand{position:absolute;top:41px;right:4%;font:9px/1.5 'IBM Plex Mono',monospace;letter-spacing:.035em;color:#636c5b}
.entry-identity{position:absolute;bottom:36px;left:4%;display:flex;align-items:baseline;gap:20px}
.entry-identity .eyebrow{color:#636c5b;font-size:9px}
.entry-identity h1{font-size:30px;line-height:1.1;font-weight:450;letter-spacing:-.035em}
.entry-preview{position:absolute;right:4%;bottom:42px;font:8px/1.5 'IBM Plex Mono',monospace;letter-spacing:.035em;color:#68715f}
/* Duties' live picture: above the artwork, beneath the interface. */
.entry-stream{position:absolute;inset:0;opacity:0;pointer-events:none;overflow:hidden;container-type:size}
/* While the picture plays, the exhibit's plain interior replaces the art around it. */
.entry-stream:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 36% 31%,#e1e4d969,transparent 69%),linear-gradient(170deg,#c6c9c0 5%,#c1c6bb 55%,#b9c0b2 100%);opacity:0;transition:opacity .6s}
.entry-stream.is-shown:before{opacity:1}
/* The 16:9 picture fits between the Exit above and the title below, and nothing is drawn over it.
   YouTube's player must be at least 200px square; on a smaller screen it letterboxes the picture. */
.entry-stream iframe{--stream-top:112px;--stream-bottom:112px;--stream-side:4cqw;--stream-width:calc(100cqw - 2*var(--stream-side));--stream-height:calc(100cqh - var(--stream-top) - var(--stream-bottom));position:absolute;left:50%;top:calc(var(--stream-top) + var(--stream-height)/2);width:min(var(--stream-width),var(--stream-height)*16/9);height:min(var(--stream-height),var(--stream-width)*9/16);min-width:200px;min-height:200px;transform:translate(-50%,-50%);border:0;opacity:0;transition:opacity .6s}
/* A shown picture takes clicks, so YouTube's own links in the player work. */
.entry-stream.is-shown iframe:not(.is-leaving){opacity:1;pointer-events:auto}
.entry-live{position:absolute;right:4%;bottom:24px;display:flex;align-items:center;gap:22px;font:10px/1.5 'IBM Plex Mono',monospace;letter-spacing:.035em;text-transform:uppercase;color:#4c5446}
.entry-sound{min-height:44px;padding:10px 0;border:0;background:transparent;color:#343a30;font:inherit;letter-spacing:inherit;text-transform:inherit;pointer-events:auto;cursor:pointer}
.entry-sound[aria-pressed="true"]{text-decoration:underline;text-underline-offset:4px}
.entry-status{display:flex;align-items:center;gap:8px}
.entry-status[data-state="live"]:before{content:'';width:6px;height:6px;border-radius:50%;background:#a3402c}
@media(max-width:650px){
  .gallery-slide .entry-invite{right:16px;bottom:16px;min-height:44px;padding:0 14px 0 18px;font-size:13px}
  .entry-exit{top:15px;left:22px;font-size:9px;gap:13px}
  .entry-brand{top:31px;right:22px;font-size:7px}
  .entry-identity{left:22px;bottom:29px;display:block}
  .entry-identity .eyebrow{display:block;font-size:8px;margin-bottom:8px}
  .entry-identity h1{font-size:28px}
  .entry-preview{right:22px;bottom:34px;font-size:7px}
  .entry-live{right:22px;bottom:22px;gap:16px;font-size:9px}
  .entry-stream iframe{--stream-top:84px;--stream-bottom:108px;--stream-side:0px}
}
@media(prefers-reduced-motion:reduce){.entry-invite,.entry-invite .entry-direction,.entry-invite .entry-doorway,.entry-invite-fill,.entry-exit span:first-child,.entry-stream iframe,.entry-stream:before{transition:none}}
