/* =========================================================
   LORD DANCER – PYRAMID MUSIC GALLERY ENTRANCE
   Final responsive replacement stylesheet – responsive desktop and portrait-phone galleries
   Shortcode: [lord_dancer_entrance_demo]

   This file replaces the entire previous Lord Dancer CSS.
   Do not keep any of the older guide-character patch blocks.
   ========================================================= */

/* =========================================================
   1. COMPONENT RESET AND DESIGN TOKENS
   ========================================================= */

.ld-entrance-demo,
.ld-entrance-demo *,
.ld-entrance-demo *::before,
.ld-entrance-demo *::after {
	box-sizing: border-box;
}

.ld-entrance-demo {
	--ld-black: #101010;
	--ld-deep-black: #050505;
	--ld-cream: #f4efe4;
	--ld-warm-white: #fffaf0;
	--ld-yellow: #ffc928;
	--ld-yellow-light: #ffe68a;
	--ld-gold: #dcae37;
	--ld-blue: #1647c8;

	--ld-guide-arrival-time: 2.9s;
	--ld-follow-time: 2.5s;
	--ld-follow-ease: cubic-bezier(.16, .72, .18, 1);

	/*
	 * The PHP supplies both image URLs on the component root.
	 * Desktop is the default; a portrait-phone media query swaps
	 * this active token to the dedicated mobile composition.
	 */
	--ld-gallery-image-active: var(--ld-gallery-image-desktop);

	/* Responsive gallery framing and singer scale. */
	--ld-gallery-size: 108% auto;
	--ld-gallery-position: 50% center;
	--ld-gallery-follow-size: 126% auto;
	--ld-gallery-follow-position: 76% center;
	--ld-guide-width: min(38vw, 60dvh, 600px);
	--ld-guide-min-width: 320px;

	position: relative;
	isolation: isolate;
	width: 100%;
	min-height: 100vh;
	min-height: 100svh;
	overflow: hidden;
	color: var(--ld-black);
	background: var(--ld-cream);
	font-family: Arial, Helvetica, sans-serif;
}

.ld-entrance-demo button,
.ld-entrance-demo img {
	-webkit-tap-highlight-color: transparent;
}

.ld-entrance-demo img {
	max-width: 100%;
}

.ld-entrance-transition,
.ld-gallery-arrival,
.ld-entrance-demo__eyebrow,
.ld-gallery-preview__status,
.ld-gallery-preview__replay,
.ld-guide-layer__caption {
	display: none !important;
}


/* =========================================================
   2. ENTRANCE BACKGROUND
   ========================================================= */

.ld-entrance-demo__background {
	position: absolute;
	inset: 0;
	z-index: -3;
	overflow: hidden;
	background:
		radial-gradient(
			circle at 65% 25%,
			rgba(255, 224, 128, .28),
			transparent 34%
		),
		linear-gradient(
			135deg,
			#fffdf7 0%,
			#eee6d7 52%,
			#f8f2e7 100%
		);
}

.ld-entrance-demo__background::before {
	position: absolute;
	inset: 0;
	content: "";
	background:
		linear-gradient(
			90deg,
			transparent 0%,
			rgba(255, 255, 255, .3) 50%,
			transparent 100%
		);
	transform: translateX(-110%);
	animation: ld-background-sheen 10s ease-in-out infinite;
}

.ld-entrance-demo__light {
	position: absolute;
	width: 42vw;
	height: 42vw;
	border-radius: 50%;
	filter: blur(80px);
	opacity: .18;
	pointer-events: none;
}

.ld-entrance-demo__light--one {
	top: -16vw;
	left: -18vw;
	background: var(--ld-blue);
}

.ld-entrance-demo__light--two {
	right: -12vw;
	bottom: -20vw;
	background: var(--ld-yellow);
}

.ld-entrance-demo__grain {
	position: absolute;
	inset: 0;
	opacity: .2;
	pointer-events: none;
	background-image:
		url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E");
}


/* =========================================================
   3. ENTRANCE SCENE
   ========================================================= */

.ld-entrance-demo__scene {
	position: relative;
	display: grid;
	grid-template-columns:
		minmax(220px, .72fr)
		minmax(480px, 1.35fr)
		minmax(160px, .48fr);
	align-items: center;
	width: min(1600px, 100%);
	min-height: 100vh;
	min-height: 100svh;
	margin: 0 auto;
	padding:
		clamp(24px, 4vw, 70px)
		clamp(20px, 4vw, 68px);
	gap: clamp(20px, 3vw, 52px);
	transition:
		opacity 1.8s ease,
		filter 1.8s ease,
		transform 2.2s ease,
		visibility 0s linear 0s;
}

.ld-entrance-demo__header {
	position: relative;
	z-index: 20;
	align-self: start;
	padding-top: clamp(8px, 2vh, 28px);
}

.ld-entrance-demo__symbol {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: clamp(58px, 5.6vw, 88px);
	height: auto;
	margin-bottom: 16px;
}

.ld-entrance-demo__symbol img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}

.ld-entrance-demo__symbol svg,
.ld-entrance-demo__symbol path {
	display: none !important;
}

.ld-entrance-demo__title {
	margin: 0;
	font-size: clamp(38px, 4.3vw, 76px);
	font-weight: 800;
	line-height: .92;
	letter-spacing: -.055em;
	text-transform: uppercase;
}

.ld-entrance-demo__intro {
	max-width: 320px;
	margin: 27px 0 0;
	font-size: clamp(15px, 1.2vw, 18px);
	line-height: 1.65;
}

.ld-entrance-demo__quote {
	position: relative;
	z-index: 20;
	align-self: end;
	padding-bottom: clamp(40px, 10vh, 130px);
}

.ld-entrance-demo__quote-line {
	display: block;
	width: 78px;
	height: 5px;
	margin-bottom: 19px;
	background: var(--ld-yellow);
}

.ld-entrance-demo__quote p {
	margin: 0;
	font-size: clamp(14px, 1.3vw, 18px);
	line-height: 1.45;
	text-transform: uppercase;
}

.ld-entrance-demo__quote strong {
	display: block;
	margin-top: 5px;
	font-size: 1.15em;
}


/* =========================================================
   4. ENTRANCE PERFORMER
   ========================================================= */

.ld-entrance-demo__performer-wrap {
	position: absolute;
	z-index: 30;
	left: clamp(17%, 23vw, 29%);
	bottom: 0;
	width: clamp(180px, 24vw, 390px);
	height: min(83vh, 820px);
	pointer-events: none;
	transform-origin: 50% 100%;
	animation: ld-performer-float 5s ease-in-out infinite;
}

.ld-entrance-demo__performer {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: 50% 100%;
	filter: drop-shadow(0 25px 28px rgba(0, 0, 0, .24));
}


/* =========================================================
   5. PYRAMID ENTRANCE
   ========================================================= */

.ld-pyramid-entrance {
	--ld-pyramid-top: 4.5%;
	--ld-pyramid-side: 4%;

	position: relative;
	z-index: 8;
	isolation: isolate;
	grid-column: 2;
	width: min(54vw, 790px);
	max-width: 100%;
	aspect-ratio: 1.08;
	margin-inline: auto;
	overflow: visible;
	transform-origin: 50% 48%;
	filter: drop-shadow(0 28px 35px rgba(0, 0, 0, .2));
	will-change: transform, filter;
	transition:
		transform 5.2s cubic-bezier(.18, .71, .22, 1),
		filter 4s ease;
}

.ld-pyramid-entrance::after {
	display: none !important;
	content: none !important;
}

.ld-pyramid-entrance__shadow {
	position: absolute;
	z-index: 0;
	left: 50%;
	bottom: -5%;
	width: 83%;
	height: 15%;
	border-radius: 50%;
	background: rgba(0, 0, 0, .24);
	filter: blur(22px);
	transform: translateX(-50%);
}

.ld-pyramid-entrance__gallery {
	position: absolute;
	z-index: 1;
	inset: 3.5% 4% 3%;
	overflow: hidden;
	background:
		linear-gradient(180deg, #17130b, #050505);
	background-image: var(--ld-gallery-image-active);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	clip-path: polygon(50% 0, 100% 100%, 0 100%);
	-webkit-clip-path: polygon(50% 0, 100% 100%, 0 100%);
	transform: scale(.94);
}

.ld-pyramid-entrance__gallery-overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			180deg,
			rgba(5, 5, 5, .1),
			rgba(5, 5, 5, .08) 45%,
			rgba(5, 5, 5, .45)
		),
		radial-gradient(
			circle at 50% 42%,
			rgba(255, 202, 51, .34),
			transparent 36%
		);
}

.ld-pyramid-entrance__gallery-depth {
	position: absolute;
	inset: 0;
	opacity: .65;
}

.ld-pyramid-entrance__gallery-line {
	position: absolute;
	top: 20%;
	bottom: -5%;
	width: 2px;
	background:
		linear-gradient(
			to bottom,
			transparent,
			var(--ld-yellow-light),
			transparent
		);
	transform-origin: 50% 100%;
}

.ld-pyramid-entrance__gallery-line--one {
	left: 31%;
	transform: rotate(10deg);
}

.ld-pyramid-entrance__gallery-line--two {
	left: 50%;
}

.ld-pyramid-entrance__gallery-line--three {
	right: 31%;
	transform: rotate(-10deg);
}


/* =========================================================
   6. WORDING INSIDE THE CORRIDOR
   ========================================================= */

.ld-pyramid-entrance__destination {
	position: absolute;
	z-index: 3;
	left: 50%;
	top: 48%;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: min(82%, 520px);
	color: #fff;
	text-align: center;
	text-transform: uppercase;
	opacity: 0;
	transform: translate3d(-50%, -50%, 0) scale(.72);
	transform-origin: 50% 50%;
	will-change: transform, opacity;
}

.ld-pyramid-entrance__destination span {
	margin-bottom: 6px;
	font-size: clamp(9px, 1.1vw, 15px);
	letter-spacing: .34em;
}

.ld-pyramid-entrance__destination strong {
	font-size: clamp(21px, 3.4vw, 48px);
	line-height: .94;
	letter-spacing: .05em;
}


/* =========================================================
   7. PYRAMID DOORS
   ========================================================= */

.ld-pyramid-entrance__door {
	position: absolute;
	z-index: 7;
	top: var(--ld-pyramid-top);
	bottom: 3.5%;
	width: 46%;
	overflow: hidden;
	backface-visibility: hidden;
	will-change: transform;
	transition:
		transform 2.35s cubic-bezier(.55, .02, .18, 1),
		filter 700ms ease;
}

.ld-pyramid-entrance__door--left {
	left: var(--ld-pyramid-side);
	right: auto;
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
	-webkit-clip-path: polygon(100% 0, 100% 100%, 0 100%);
	transform-origin: 100% 50%;
}

.ld-pyramid-entrance__door--right {
	right: var(--ld-pyramid-side);
	left: auto;
	clip-path: polygon(0 0, 100% 100%, 0 100%);
	-webkit-clip-path: polygon(0 0, 100% 100%, 0 100%);
	transform-origin: 0 50%;
}

.ld-pyramid-entrance__door-surface {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background:
		linear-gradient(
			110deg,
			#090909 0%,
			#292929 34%,
			#0b0b0b 68%,
			#202020 100%
		);
}

.ld-pyramid-entrance__door--left .ld-pyramid-entrance__door-surface {
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
	-webkit-clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.ld-pyramid-entrance__door--right .ld-pyramid-entrance__door-surface {
	clip-path: polygon(0 0, 100% 100%, 0 100%);
	-webkit-clip-path: polygon(0 0, 100% 100%, 0 100%);
}

.ld-pyramid-entrance__door-surface::before {
	position: absolute;
	inset: 0;
	content: "";
	opacity: .45;
	background:
		repeating-linear-gradient(
			118deg,
			transparent 0,
			transparent 29px,
			rgba(255, 255, 255, .04) 30px,
			transparent 31px
		);
}

.ld-pyramid-entrance__door-surface::after {
	position: absolute;
	inset: 0;
	content: "";
	background:
		radial-gradient(
			circle at 50% 100%,
			rgba(255, 201, 40, .12),
			transparent 45%
		);
}


/* =========================================================
   8. PYRAMID LIGHTING AND MIST
   ========================================================= */

.ld-pyramid-entrance__outline {
	position: absolute;
	z-index: 9;
	inset: 0;
	pointer-events: none;
}

.ld-pyramid-entrance__outline svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.ld-pyramid-entrance__outline path {
	fill: none;
	stroke: var(--ld-yellow);
	stroke-width: 12;
	stroke-linejoin: round;
	filter:
		drop-shadow(0 0 5px rgba(255, 201, 40, .95))
		drop-shadow(0 0 17px rgba(255, 201, 40, .48));
	transition:
		stroke-width 500ms ease,
		filter 700ms ease;
}

.ld-pyramid-entrance__seam {
	position: absolute;
	z-index: 8;
	left: 50%;
	top: 6%;
	bottom: 5%;
	width: 2px;
	background:
		linear-gradient(
			to bottom,
			transparent,
			rgba(255, 230, 138, .75),
			rgba(255, 230, 138, .2),
			transparent
		);
	box-shadow: 0 0 14px rgba(255, 201, 40, .7);
	transform: translateX(-50%);
	transition: opacity 300ms ease;
}

.ld-pyramid-entrance__mist {
	position: absolute;
	z-index: 6;
	left: 9%;
	right: 9%;
	bottom: 4%;
	height: 25%;
	overflow: hidden;
	clip-path: polygon(11% 100%, 89% 100%, 75% 0, 25% 0);
	-webkit-clip-path: polygon(11% 100%, 89% 100%, 75% 0, 25% 0);
	pointer-events: none;
	transition:
		opacity 1.8s ease,
		transform 2.2s ease;
}

.ld-pyramid-entrance__mist span {
	position: absolute;
	bottom: -55%;
	width: 58%;
	height: 120%;
	border-radius: 50%;
	background: rgba(255, 255, 255, .44);
	filter: blur(27px);
	animation: ld-mist-move 7s ease-in-out infinite;
}

.ld-pyramid-entrance__mist span:nth-child(1) {
	left: -8%;
}

.ld-pyramid-entrance__mist span:nth-child(2) {
	left: 29%;
	animation-delay: -2.3s;
}

.ld-pyramid-entrance__mist span:nth-child(3) {
	right: -10%;
	animation-delay: -4.6s;
}


/* =========================================================
   9. TEARING GOLDEN TICKET
   ========================================================= */

/*
 * The normal ticket floats down as one image. On click,
 * JavaScript locks its current centre and width to the
 * viewport. The split artwork then tears from top to bottom
 * and both paper pieces fall independently of the pyramid.
 */
.ld-admit-ticket,
.ld-admit-ticket:hover,
.ld-admit-ticket:focus,
.ld-admit-ticket:active,
.ld-admit-ticket:visited {
	--ld-ticket-perforation: 79.1%;

	position: absolute !important;
	z-index: 15 !important;
	left: 50% !important;
	top: 59% !important;
	display: block !important;
	width: clamp(230px, 29vw, 340px) !important;
	height: auto !important;
	aspect-ratio: 800 / 371;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
	color: transparent !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font: inherit !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	transform: translate3d(-50%, -50%, 0) !important;
	transform-origin: 50% 50% !important;
	translate: 0 0;
	rotate: -5deg;
	scale: 1;
	opacity: 1;
	filter:
		drop-shadow(0 15px 13px rgba(0, 0, 0, .28))
		drop-shadow(0 3px 4px rgba(0, 0, 0, .16)) !important;
	cursor: pointer !important;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	-webkit-tap-highlight-color: transparent !important;
	will-change: translate, rotate;
}

.ld-admit-ticket {
	animation:
		ld-ticket-silky-descent
		7.2s
		linear
		.25s
		1
		both !important;
}

.ld-admit-ticket__whole,
.ld-admit-ticket__split,
.ld-admit-ticket__tear {
	position: absolute;
	pointer-events: none;
}

.ld-admit-ticket__whole {
	z-index: 2;
	inset: 0;
	display: block;
	opacity: 1;
}

.ld-admit-ticket__image {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	object-fit: contain !important;
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
	transform: none !important;
	animation: none !important;
	opacity: 1 !important;
	pointer-events: none !important;
	user-select: none !important;
	-webkit-user-drag: none !important;
}

/*
 * The two supplied split files total 842 × 400:
 * left 672px (79.81%), right 170px (20.19%).
 * Their combined aspect ratio is slightly narrower than the
 * original 800 × 371 ticket, hence the 97.65% split width.
 */
.ld-admit-ticket__split {
	z-index: 3;
	left: 50%;
	top: 50%;
	display: block;
	width: 97.65%;
	height: 100%;
	overflow: visible;
	opacity: 0;
	clip-path: inset(0 0 100% 0);
	-webkit-clip-path: inset(0 0 100% 0);
	transform:
		translate3d(-50%, -50%, 0);
	transform-style: preserve-3d;
	perspective: 1400px;
	will-change: clip-path, opacity;
}

.ld-admit-ticket__piece {
	position: absolute;
	top: 0;
	display: block;
	height: 100%;
	overflow: visible;
	opacity: 1;
	transform: translate3d(0, 0, 0);
	transform-style: preserve-3d;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	will-change: transform, opacity, filter;
}

.ld-admit-ticket__piece--left {
	left: 0;
	width: 79.81%;
	transform-origin: 100% 0%;
}

.ld-admit-ticket__piece--right {
	right: 0;
	width: 20.19%;
	transform-origin: 0% 0%;
}

.ld-admit-ticket__piece img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	object-fit: fill;
	border: 0;
	outline: 0;
	box-shadow: none;
	pointer-events: none;
	user-select: none;
	-webkit-user-drag: none;
}

.ld-admit-ticket__tear {
	z-index: 5;
	left: var(--ld-ticket-perforation);
	top: 4%;
	width: 2px;
	height: 92%;
	opacity: 0;

	/*
	 * A narrow dark-gold fibres line replaces the previous bright
	 * cream strip. The old strip was the white area visible between
	 * the two ticket sections while the tear travelled downwards.
	 */
	background:
		linear-gradient(
			to right,
			rgba(83, 49, 3, .82),
			rgba(229, 174, 47, .74)
		);
	box-shadow:
		0 0 2px rgba(71, 40, 0, .56),
		0 0 5px rgba(236, 184, 54, .34);
	mix-blend-mode: multiply;
	filter: none;
	transform:
		translateX(-50%)
		scaleY(0);
	transform-origin: 50% 0%;
	will-change: transform, opacity;
}

.ld-entrance-demo:not(.is-ticket-tearing)
.ld-admit-ticket:hover {
	translate: 0 -6px;
	rotate: -3.5deg;
	scale: 1.015;
	filter:
		drop-shadow(0 20px 16px rgba(0, 0, 0, .33))
		drop-shadow(0 4px 6px rgba(0, 0, 0, .18))
		brightness(1.03) !important;
}

.ld-admit-ticket:focus {
	outline: none !important;
}

.ld-admit-ticket:focus-visible {
	outline: 3px solid rgba(255, 222, 126, .95) !important;
	outline-offset: 6px !important;
	border-radius: 12px !important;
	box-shadow:
		0 0 0 3px rgba(125, 84, 10, .28),
		0 0 28px rgba(255, 202, 53, .52) !important;
}

.ld-admit-ticket:disabled {
	cursor: default !important;
}

/*
 * Fix the ticket to the exact viewport position captured by
 * JavaScript. JavaScript first moves the button out of the
 * filtered pyramid so position:fixed remains viewport based
 * and cannot jump sideways when the tear state begins.
 *
 * Layer order during the tear:
 *   pyramid and opening gallery preview = below the ticket
 *   falling ticket pieces               = z-index 29
 *   entrance performer                  = z-index 30
 *
 * This keeps the paper in front of the black pyramid/gallery
 * layers while allowing the performer to remain in front of it.
 */
.ld-entrance-demo.is-ticket-tearing
.ld-admit-ticket {
	position: fixed !important;
	z-index: 29 !important;
	left: var(--ld-ticket-fixed-x, 50vw) !important;
	top: var(--ld-ticket-fixed-y, 58vh) !important;
	width: var(--ld-ticket-fixed-width, clamp(230px, 29vw, 340px)) !important;
	animation: none !important;
	transform:
		translate3d(-50%, -50%, 0)
		rotate(var(--ld-ticket-fixed-rotate, -5deg))
		scale(var(--ld-ticket-fixed-scale, 1)) !important;
	transform-origin: 50% 50% !important;
	translate: none !important;
	rotate: none !important;
	scale: none !important;
	filter: none !important;
	pointer-events: none !important;
}

.ld-entrance-demo.is-ticket-tearing
.ld-admit-ticket:focus-visible {
	outline: 0 !important;
	box-shadow: none !important;
}

.ld-entrance-demo.is-ticket-tearing
.ld-admit-ticket__whole {
	/*
	 * Keep the intact artwork visible underneath the split artwork
	 * until the top-to-bottom reveal has completely reached the
	 * bottom edge. This prevents the black pyramid from showing
	 * through the unrevealed section during the tear.
	 */
	animation:
		ld-ticket-whole-release
		.74s
		steps(1, end)
		forwards;
}

.ld-entrance-demo.is-ticket-tearing
.ld-admit-ticket__split {
	animation:
		ld-ticket-split-reveal
		.72s
		cubic-bezier(.18, .78, .2, 1)
		forwards;
}


/*
 * Once the top-to-bottom reveal is complete, remove the clip-path
 * from the split wrapper entirely. Keeping clip-path: inset(0)
 * would still clip its transformed children to the original ticket
 * rectangle, making the falling pieces appear to pass behind a
 * sharp black panel.
 */
.ld-entrance-demo.is-ticket-pieces-free
.ld-admit-ticket__split {
	animation: none !important;
	opacity: 1 !important;
	clip-path: none !important;
	-webkit-clip-path: none !important;
	overflow: visible !important;
}

.ld-entrance-demo.is-ticket-tearing
.ld-admit-ticket__tear {
	animation:
		ld-ticket-tear-down
		.7s
		cubic-bezier(.18, .78, .22, 1)
		forwards;
}

.ld-entrance-demo.is-ticket-tearing
.ld-admit-ticket__piece--left {
	/*
	 * Keep the split artwork exactly aligned with the intact ticket while the
	 * top-to-bottom reveal completes. The fall begins only after the intact
	 * artwork has been removed, preventing two visible tickets at once.
	 * The shorter active duration preserves the original overall timing.
	 */
	animation:
		ld-ticket-left-tear-and-drop
		2.21s
		linear
		.74s
		forwards;
}

.ld-entrance-demo.is-ticket-tearing
.ld-admit-ticket__piece--right {
	animation:
		ld-ticket-right-tear-and-drop
		2.31s
		linear
		.74s
		forwards;
}

.ld-entrance-demo.is-ticket-tearing
.ld-pyramid-entrance__instruction {
	opacity: 0;
	transform: translate3d(-50%, 14px, 0);
}

@keyframes ld-ticket-whole-release {
	0% {
		opacity: 1;
	}

	100% {
		opacity: 0;
	}
}

@keyframes ld-ticket-split-reveal {
	0% {
		opacity: 0;
		clip-path: inset(0 0 100% 0);
		-webkit-clip-path: inset(0 0 100% 0);
	}

	6% {
		opacity: 1;
	}

	100% {
		opacity: 1;
		clip-path: inset(0);
		-webkit-clip-path: inset(0);
	}
}

@keyframes ld-ticket-tear-down {
	0% {
		opacity: 0;
		transform:
			translateX(-50%)
			scaleY(0);
	}

	12% {
		opacity: 1;
	}

	82% {
		opacity: .95;
		transform:
			translateX(-50%)
			scaleY(1);
	}

	100% {
		opacity: 0;
		transform:
			translateX(-50%)
			scaleY(1);
	}
}

/*
 * Both halves remain almost aligned while the split reveal
 * moves downward. They then pivot at the perforation and
 * accelerate naturally towards the bottom of the viewport.
 */
@keyframes ld-ticket-left-tear-and-drop {
	0%,
	8% {
		opacity: 1;
		transform:
			translate3d(0, 0, 0)
			rotateZ(0)
			rotateY(0);
	}

	22% {
		opacity: 1;
		transform:
			translate3d(-4px, 3px, 0)
			rotateZ(-5deg)
			rotateY(-5deg);
	}

	32% {
		opacity: 1;
		transform:
			translate3d(-11px, 11px, 0)
			rotateZ(-8deg)
			rotateY(-9deg);
	}

	44% {
		opacity: 1;
		transform:
			translate3d(-1.8vw, 7vh, 0)
			rotateZ(-4deg)
			rotateY(-11deg);
	}

	58% {
		opacity: 1;
		transform:
			translate3d(-.8vw, 22vh, 0)
			rotateZ(-13deg)
			rotateY(-7deg);
	}

	72% {
		opacity: .98;
		transform:
			translate3d(-3.4vw, 45vh, 0)
			rotateZ(-7deg)
			rotateY(-12deg);
	}

	86% {
		opacity: .72;
		transform:
			translate3d(-4.8vw, 76vh, 0)
			rotateZ(-17deg)
			rotateY(-9deg);
	}

	100% {
		opacity: 0;
		transform:
			translate3d(-7vw, 116vh, 0)
			rotateZ(-26deg)
			rotateY(-14deg);
	}
}

@keyframes ld-ticket-right-tear-and-drop {
	0%,
	8% {
		opacity: 1;
		transform:
			translate3d(0, 0, 0)
			rotateZ(0)
			rotateY(0);
	}

	22% {
		opacity: 1;
		transform:
			translate3d(4px, 4px, 0)
			rotateZ(9deg)
			rotateY(10deg);
	}

	32% {
		opacity: 1;
		transform:
			translate3d(9px, 12px, 0)
			rotateZ(14deg)
			rotateY(16deg);
	}

	45% {
		opacity: 1;
		transform:
			translate3d(1.6vw, 8vh, 0)
			rotateZ(8deg)
			rotateY(18deg);
	}

	59% {
		opacity: 1;
		transform:
			translate3d(2.8vw, 24vh, 0)
			rotateZ(20deg)
			rotateY(13deg);
	}

	73% {
		opacity: .97;
		transform:
			translate3d(4.2vw, 48vh, 0)
			rotateZ(13deg)
			rotateY(19deg);
	}

	87% {
		opacity: .68;
		transform:
			translate3d(6.4vw, 80vh, 0)
			rotateZ(28deg)
			rotateY(15deg);
	}

	100% {
		opacity: 0;
		transform:
			translate3d(9vw, 120vh, 0)
			rotateZ(39deg)
			rotateY(21deg);
	}
}


.ld-pyramid-entrance__instruction {
	position: absolute;
	z-index: 10;
	left: 50%;
	bottom: 5.5%;
	margin: 0;
	color: rgba(255, 255, 255, .82);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .2em;
	text-transform: uppercase;
	white-space: nowrap;
	transform: translateX(-50%);
	transition:
		opacity 700ms ease,
		transform 900ms ease;
}

.ld-pyramid-entrance__instruction-mobile {
	display: none;
}


/* =========================================================
   10. OPENING AND WALK-IN STATES
   ========================================================= */

.ld-entrance-demo.is-opening .ld-pyramid-entrance__door--left {
	transform: translate3d(-113%, 0, 0);
}

.ld-entrance-demo.is-opening .ld-pyramid-entrance__door--right {
	transform: translate3d(113%, 0, 0);
}

.ld-entrance-demo.is-opening .ld-pyramid-entrance__seam {
	opacity: 0;
}

.ld-entrance-demo.is-opening .ld-pyramid-entrance__outline path {
	stroke-width: 17;
	filter:
		drop-shadow(0 0 8px rgba(255, 238, 179, 1))
		drop-shadow(0 0 25px rgba(255, 201, 40, .9))
		drop-shadow(0 0 52px rgba(255, 201, 40, .42));
}

.ld-entrance-demo.is-opening .ld-pyramid-entrance__mist {
	opacity: 0;
	transform: translate3d(0, 38px, 0) scale(1.25);
}

.ld-entrance-demo.is-opening:not(.is-ticket-tearing) .ld-admit-ticket {
	animation: none !important;
	opacity: 0 !important;
	translate: 0 42px !important;
	rotate: -8deg !important;
	scale: .82 !important;
	filter:
		drop-shadow(0 8px 8px rgba(0, 0, 0, .12))
		blur(3px) !important;
	transition:
		opacity 850ms ease,
		translate 1.2s ease,
		rotate 1.2s ease,
		scale 1.2s ease,
		filter 850ms ease;
	pointer-events: none;
}

.ld-entrance-demo.is-opening .ld-pyramid-entrance__instruction {
	opacity: 0;
	transform: translate3d(-50%, 14px, 0);
}

.ld-entrance-demo.is-opening .ld-pyramid-entrance__destination {
	opacity: 1;
	transform: translate3d(-50%, -50%, 0) scale(1);
	transition:
		opacity 1.4s ease 550ms,
		transform 1.8s ease 550ms;
}

.ld-entrance-demo.is-entering .ld-pyramid-entrance {
	transform: scale(3.75);
	filter: drop-shadow(0 48px 90px rgba(0, 0, 0, .26));
}

.ld-entrance-demo.is-entering .ld-entrance-demo__header,
.ld-entrance-demo.is-entering .ld-entrance-demo__performer-wrap,
.ld-entrance-demo.is-entering .ld-entrance-demo__quote {
	opacity: 0;
	filter: blur(8px);
}

.ld-entrance-demo.is-passing-words .ld-pyramid-entrance__destination {
	animation:
		ld-gallery-words-pass
		4.2s
		cubic-bezier(.17, .68, .18, 1)
		forwards;
}


/* =========================================================
   11. FULL-SCREEN GALLERY PREVIEW
   ========================================================= */

.ld-gallery-preview {
	position: absolute;
	z-index: 24;
	inset: 0;
	width: 100%;
	min-height: 100vh;
	min-height: 100svh;
	padding: 0;
	overflow: hidden;
	background-image: var(--ld-gallery-image-active);
	background-position: var(--ld-gallery-position);
	background-repeat: no-repeat;
	background-size: var(--ld-gallery-size);
	opacity: 0;
	clip-path: polygon(50% 7%, 80% 86%, 20% 86%);
	-webkit-clip-path: polygon(50% 7%, 80% 86%, 20% 86%);
	transform: translate3d(0, 0, 0) scale(.78);
	transform-origin: 50% 48%;
	pointer-events: none;
	will-change: transform, opacity, clip-path;
}

.ld-gallery-preview__light,
.ld-gallery-preview__vignette {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.ld-gallery-preview__light {
	z-index: 1;
	opacity: .7;
	background:
		radial-gradient(
			circle at 50% 48%,
			rgba(255, 212, 92, .16),
			transparent 36%
		);
	transition:
		opacity var(--ld-follow-time) ease,
		background var(--ld-follow-time) ease;
}

.ld-gallery-preview__vignette {
	z-index: 2;
	background:
		linear-gradient(
			180deg,
			rgba(0, 0, 0, .06),
			transparent 28%,
			transparent 70%,
			rgba(0, 0, 0, .28)
		);
}

.ld-entrance-demo.is-entering .ld-gallery-preview {
	opacity: 1;
	animation:
		ld-gallery-entry
		4.6s
		cubic-bezier(.16, .72, .2, 1)
		forwards;
}

.ld-entrance-demo.is-inside-gallery .ld-gallery-preview {
	position: fixed;
	inset: 0;
	width: 100vw;
	height: 100vh;
	height: 100dvh;
	min-height: 0;
	margin: 0;
	padding: 0;
	opacity: 1;
	clip-path: inset(0);
	-webkit-clip-path: inset(0);
	transform: none;
	background-position: var(--ld-gallery-position);
	background-size: var(--ld-gallery-size);
	overflow: hidden;
	pointer-events: auto;
	z-index: 999999;
	animation: none;
	transition:
		background-position var(--ld-follow-time) var(--ld-follow-ease),
		background-size var(--ld-follow-time) var(--ld-follow-ease);
}

.ld-entrance-demo.is-inside-gallery .ld-entrance-demo__scene {
	opacity: 0;
	visibility: hidden;
	filter: blur(8px);
	transition:
		opacity 700ms ease,
		filter 700ms ease,
		visibility 0s linear 700ms;
}


/* =========================================================
   12. GUIDE CHARACTER – LD.png SINGER + STAGE LIGHTS + RESPONSIVE SCALE
   ========================================================= */

.ld-guide-layer {
	position: absolute;
	inset: 0;
	z-index: 12;
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
	transition: opacity 500ms ease;
}

.ld-entrance-demo.is-guide-visible .ld-guide-layer {
	opacity: 1;
}

/*
 * Fixed focus layer. The blur value never changes; the layer
 * fades away when FOLLOW is clicked, revealing the already
 * sharp gallery beneath it.
 */
.ld-guide-layer::before {
	position: absolute;
	inset: 0;
	z-index: 1;
	content: "";
	background: rgba(7, 4, 0, .025);
	backdrop-filter: blur(5px) brightness(.92);
	-webkit-backdrop-filter: blur(5px) brightness(.92);
	opacity: 0;
	pointer-events: none;
	transition: opacity 1.35s cubic-bezier(.2, .72, .2, 1);
	will-change: opacity;
}

.ld-entrance-demo.is-guide-visible:not(.is-following-guide)
.ld-guide-layer::before {
	opacity: 1;
}

.ld-entrance-demo.is-following-guide
.ld-guide-layer::before {
	opacity: 0;
}

/*
 * Stage-light wash behind the singer.
 * Red comes from the left, green from the right, while a
 * narrow warm-white spot briefly sweeps across him.
 */
.ld-guide-layer::after {
	position: absolute;
	z-index: 2;
	inset: -10%;
	content: "";
	background-image:
		radial-gradient(
			circle,
			rgba(255, 252, 229, .42) 0%,
			rgba(255, 243, 197, .2) 10%,
			transparent 24%
		),
		radial-gradient(
			ellipse,
			rgba(255, 37, 49, .34) 0%,
			rgba(210, 10, 28, .17) 42%,
			transparent 72%
		),
		radial-gradient(
			ellipse,
			rgba(22, 255, 105, .31) 0%,
			rgba(0, 158, 75, .16) 42%,
			transparent 72%
		),
		radial-gradient(
			ellipse,
			rgba(255, 203, 62, .16) 0%,
			transparent 70%
		);
	background-repeat: no-repeat;
	background-size:
		42% 42%,
		58% 88%,
		58% 88%,
		70% 82%;
	background-position:
		50% -70%,
		12% 48%,
		88% 48%,
		50% 52%;
	mix-blend-mode: screen;
	filter: blur(7px) brightness(.92);
	opacity: 0;
	transform: translate3d(0, 0, 0) scale(.98);
	pointer-events: none;
	transition: opacity 850ms ease;
	will-change: background-position, filter, transform, opacity;
}

.ld-entrance-demo.is-guide-visible:not(.is-following-guide)
.ld-guide-layer::after {
	opacity: .9;
	animation:
		ld-guide-stage-light-sweep
		8.4s
		ease-in-out
		infinite;
}

.ld-entrance-demo.is-following-guide
.ld-guide-layer::after {
	opacity: 0;
}

/*
 * LD.png terminates at the waist. Its image edge is therefore
 * anchored directly to the bottom of the viewport on every
 * device, so it feels like the singer continues below screen.
 */
.ld-guide,
.ld-guide:hover,
.ld-guide:focus,
.ld-guide:active,
.ld-guide:visited {
	position: absolute;
	z-index: 3;
	left: 50%;
	bottom: 0;
	display: block;
	width: var(--ld-guide-width);
	min-width: min(var(--ld-guide-min-width), 88vw);
	height: auto;
	margin: 0;
	padding: 0;
	overflow: visible;
	isolation: isolate;
	color: transparent;
	background: transparent;
	background-color: transparent;
	background-image: none;
	border: 0;
	border-radius: 0;
	outline: 0;
	outline-offset: 0;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	touch-action: manipulation;
	opacity: 0;
	transform:
		translate3d(-50%, 46px, 0)
		scale(.78);
	transform-origin: 50% 100%;
	filter:
		brightness(1.65)
		blur(20px)
		drop-shadow(-14px 0 24px rgba(255, 38, 49, 0))
		drop-shadow(14px 0 24px rgba(20, 255, 105, 0))
		drop-shadow(0 0 0 rgba(255, 214, 104, 0));
	pointer-events: none;
	transition:
		transform var(--ld-guide-arrival-time) cubic-bezier(.16, .72, .18, 1),
		filter var(--ld-guide-arrival-time) cubic-bezier(.16, .72, .18, 1),
		opacity 2.45s ease .22s;
	will-change: transform, filter, opacity;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

/*
 * Pulsating coloured glow around the cut-out itself.
 * The left is red, the right is green, with a warm centre.
 */
.ld-guide::before {
	position: absolute;
	z-index: 0;
	left: 50%;
	top: 45%;
	width: 112%;
	height: 92%;
	content: "";
	border-radius: 50%;
	background-image:
		radial-gradient(
			ellipse at 29% 50%,
			rgba(255, 33, 46, .52) 0%,
			rgba(218, 7, 31, .24) 37%,
			transparent 68%
		),
		radial-gradient(
			ellipse at 71% 50%,
			rgba(24, 255, 111, .48) 0%,
			rgba(0, 166, 77, .22) 37%,
			transparent 68%
		),
		radial-gradient(
			ellipse at 50% 47%,
			rgba(255, 224, 132, .38) 0%,
			rgba(255, 190, 37, .14) 44%,
			transparent 72%
		);
	background-position: center;
	background-repeat: no-repeat;
	background-size:
		94% 94%,
		94% 94%,
		100% 100%;
	filter: blur(25px);
	opacity: 0;
	transform:
		translate(-50%, -50%)
		scale(.38);
	pointer-events: none;
	transition:
		opacity 1.45s ease,
		transform 1.9s cubic-bezier(.18, .72, .18, 1),
		filter 1.9s ease;
	will-change: background-size, opacity, transform, filter;
}

/* Gentle floor/contact shadow at the browser edge. */
.ld-guide::after {
	position: absolute;
	z-index: 1;
	left: 50%;
	bottom: .5%;
	width: 44%;
	height: 4%;
	content: "";
	border-radius: 50%;
	background:
		radial-gradient(
			ellipse at center,
			rgba(0, 0, 0, .28) 0%,
			rgba(0, 0, 0, .14) 48%,
			transparent 100%
		);
	filter: blur(9px);
	opacity: 0;
	transform:
		translateX(-50%)
		scaleX(.35);
	pointer-events: none;
	transition:
		opacity 1.5s ease .25s,
		transform 1.8s ease .25s;
}

.ld-guide__image {
	position: relative;
	z-index: 2;
	display: block;
	width: 100%;
	height: auto;
	max-width: none;
	margin: 0;
	padding: 0;
	object-fit: contain;
	object-position: center bottom;
	border: 0;
	outline: 0;
	box-shadow: none;
	transform: none;
	filter: none;
	opacity: 1;
	pointer-events: none;
	user-select: none;
	-webkit-user-drag: none;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

/* Mysterious arrival: glow forms first, then the singer clears. */
.ld-entrance-demo.is-guide-visible:not(.is-following-guide)
.ld-guide {
	opacity: 1;
	transform:
		translate3d(-50%, 0, 0)
		scale(1);
	filter:
		brightness(1.04)
		blur(0)
		drop-shadow(-16px 0 22px rgba(255, 38, 49, .38))
		drop-shadow(16px 0 22px rgba(20, 255, 105, .34))
		drop-shadow(0 0 18px rgba(255, 214, 104, .42));
	pointer-events: auto;
}

.ld-entrance-demo.is-guide-visible:not(.is-following-guide)
.ld-guide::before {
	opacity: .86;
	transform:
		translate(-50%, -50%)
		scale(1);
	filter: blur(23px);
	animation:
		ld-guide-colour-glow-pulse
		4.8s
		ease-in-out
		infinite;
}

.ld-entrance-demo.is-guide-visible:not(.is-following-guide)
.ld-guide::after {
	opacity: .28;
	transform:
		translateX(-50%)
		scaleX(1);
}

.ld-guide:focus-visible {
	outline: 3px solid rgba(255, 226, 145, .94);
	outline-offset: 7px;
	border-radius: 16px;
}

.ld-entrance-demo.is-following-guide
.ld-guide-layer {
	pointer-events: none;
}

/*
 * One smooth pass to the left. The singer stays visible for
 * most of the move, grows as the viewer approaches, becomes
 * increasingly blurred, then fades only near the edge.
 */
.ld-entrance-demo.is-following-guide
.ld-guide {
	opacity: 0;
	transform:
		translate3d(
			calc(-50% - 88vw),
			1.5vh,
			0
		)
		scale(1.78);
	filter:
		brightness(1.12)
		blur(14px)
		drop-shadow(-20px 0 30px rgba(255, 38, 49, .32))
		drop-shadow(20px 0 30px rgba(20, 255, 105, .28))
		drop-shadow(0 0 38px rgba(255, 207, 72, .4));
	pointer-events: none;
	transition:
		transform var(--ld-follow-time) var(--ld-follow-ease),
		filter var(--ld-follow-time) cubic-bezier(.2, .64, .2, 1),
		opacity .68s ease 1.72s;
}

.ld-entrance-demo.is-following-guide
.ld-guide::before {
	opacity: 0;
	transform:
		translate(-50%, -50%)
		scale(1.55);
	filter: blur(34px);
	transition:
		opacity 1.35s ease,
		transform 1.9s ease,
		filter 1.9s ease;
}

.ld-entrance-demo.is-following-guide
.ld-guide::after {
	opacity: 0;
	transform:
		translateX(-50%)
		scaleX(1.4);
	transition:
		opacity 1s ease,
		transform 1.45s ease;
}

/*
 * The untouched gallery stays sharp. Only the temporary focus
 * layer fades while the artwork pans and enlarges rightward.
 */
.ld-entrance-demo.is-following-guide
.ld-gallery-preview {
	background-position: var(--ld-gallery-follow-position);
	background-size: var(--ld-gallery-follow-size);
	filter: none;
}

.ld-entrance-demo.is-following-guide
.ld-gallery-preview__light {
	opacity: .84;
	background:
		radial-gradient(
			circle at 76% 48%,
			rgba(255, 218, 125, .22),
			rgba(255, 185, 34, .06) 38%,
			transparent 68%
		);
}

.ld-entrance-demo.is-following-guide
.ld-gallery-preview__vignette {
	filter: none;
}

.ld-gallery-preview::after {
	position: absolute;
	z-index: 40;
	inset: -8%;
	content: "";
	opacity: 0;
	pointer-events: none;
	background:
		radial-gradient(
			circle at 78% 48%,
			rgba(255, 235, 177, .78) 0%,
			rgba(255, 194, 54, .4) 22%,
			rgba(36, 20, 5, .86) 76%,
			#090603 100%
		);
	transition: opacity 780ms ease;
}

.ld-entrance-demo.is-blending-out .ld-gallery-preview::after {
	opacity: 1;
}


/* =========================================================
   13. RESET
   ========================================================= */

.ld-entrance-demo.is-resetting .ld-gallery-preview {
	animation: none;
	opacity: 0;
	clip-path: polygon(50% 7%, 80% 86%, 20% 86%);
	-webkit-clip-path: polygon(50% 7%, 80% 86%, 20% 86%);
	transform: scale(.78);
	transition:
		opacity 700ms ease,
		transform 800ms ease;
}

.ld-entrance-demo.is-resetting .ld-admit-ticket,
.ld-entrance-demo.is-resetting .ld-admit-ticket__piece,
.ld-entrance-demo.is-resetting .ld-guide {
	animation: none;
}


/* =========================================================
   14. ANIMATIONS
   ========================================================= */

@keyframes ld-background-sheen {
	0%,
	58% {
		transform: translateX(-110%);
	}

	78%,
	100% {
		transform: translateX(110%);
	}
}

@keyframes ld-performer-float {
	0%,
	100% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(-5px);
	}
}

@keyframes ld-mist-move {
	0%,
	100% {
		opacity: .32;
		transform: translateX(-8%) scale(1);
	}

	50% {
		opacity: .58;
		transform: translateX(12%) scale(1.22);
	}
}

@keyframes ld-ticket-silky-descent {
	0% {
		opacity: 1;
		translate: -2px -112vh;
		rotate: -8deg;
	}

	10% {
		translate: 7px -92vh;
		rotate: -6.5deg;
	}

	20% {
		translate: 10px -74vh;
		rotate: -4.5deg;
	}

	30% {
		translate: 5px -58vh;
		rotate: -3deg;
	}

	40% {
		translate: -4px -44vh;
		rotate: -3.5deg;
	}

	50% {
		translate: -9px -32vh;
		rotate: -5.5deg;
	}

	60% {
		translate: -7px -22vh;
		rotate: -6.5deg;
	}

	70% {
		translate: 0 -14vh;
		rotate: -6deg;
	}

	80% {
		translate: 5px -7vh;
		rotate: -5deg;
	}

	90% {
		translate: 2px -2.5vh;
		rotate: -4.7deg;
	}

	100% {
		opacity: 1;
		translate: 0 0;
		rotate: -5deg;
	}
}

@keyframes ld-gallery-words-pass {
	0% {
		opacity: 1;
		transform: translate3d(-50%, -50%, 0) scale(1);
	}

	42% {
		opacity: 1;
		transform: translate3d(-50%, -54%, 0) scale(2.2);
	}

	74% {
		opacity: .6;
		transform: translate3d(-50%, -64%, 0) scale(4.4);
	}

	100% {
		opacity: 0;
		transform: translate3d(-50%, -76%, 0) scale(7.8);
	}
}

@keyframes ld-gallery-entry {
	0% {
		opacity: 0;
		clip-path: polygon(50% 7%, 80% 86%, 20% 86%);
		-webkit-clip-path: polygon(50% 7%, 80% 86%, 20% 86%);
		transform: translate3d(0, 0, 0) scale(.78);
	}

	18% {
		opacity: .35;
	}

	48% {
		opacity: .9;
		clip-path: polygon(50% -15%, 108% 108%, -8% 108%);
		-webkit-clip-path: polygon(50% -15%, 108% 108%, -8% 108%);
		transform: translate3d(0, 0, 0) scale(.94);
	}

	78% {
		opacity: 1;
		clip-path: inset(0);
		-webkit-clip-path: inset(0);
		transform: translate3d(0, 0, 0) scale(1);
	}

	100% {
		opacity: 1;
		clip-path: inset(0);
		-webkit-clip-path: inset(0);
		transform: none;
	}
}



@keyframes ld-guide-colour-glow-pulse {
	0%,
	100% {
		background-size:
			92% 92%,
			92% 92%,
			100% 100%;
	}

	50% {
		background-size:
			108% 108%,
			108% 108%,
			114% 114%;
	}
}

@keyframes ld-guide-stage-light-sweep {
	0%,
	18%,
	34%,
	58%,
	74%,
	100% {
		background-position:
			50% -70%,
			12% 48%,
			88% 48%,
			50% 52%;
		filter: blur(7px) brightness(.9);
		transform: translate3d(0, 0, 0) scale(.98);
	}

	22%,
	27% {
		background-position:
			47% 4%,
			10% 45%,
			90% 46%,
			50% 50%;
		filter: blur(5px) brightness(1.15);
		transform: translate3d(-.7%, 0, 0) scale(1.01);
	}

	63%,
	68% {
		background-position:
			56% 7%,
			14% 46%,
			86% 44%,
			50% 50%;
		filter: blur(5px) brightness(1.12);
		transform: translate3d(.8%, 0, 0) scale(1.015);
	}
}


/* =========================================================
   15. TABLET
   ========================================================= */

@media (max-width: 1100px) {
	.ld-entrance-demo {
		--ld-gallery-size: 108% 100%;
		--ld-gallery-follow-size: 122% 106%;
		--ld-gallery-follow-position: 72% center;
		--ld-guide-width: min(45vw, 58dvh, 500px);
		--ld-guide-min-width: 280px;
	}

	.ld-entrance-demo__scene {
		grid-template-columns:
			minmax(190px, .7fr)
			minmax(420px, 1.3fr);
		gap: 14px;
	}

	.ld-entrance-demo__quote {
		display: none;
	}

	.ld-entrance-demo__symbol {
		width: clamp(54px, 6vw, 76px);
	}

	.ld-pyramid-entrance {
		grid-column: 2;
		width: min(64vw, 680px);
	}

	.ld-entrance-demo__performer-wrap {
		left: 16%;
		width: clamp(160px, 26vw, 310px);
	}

	.ld-admit-ticket {
		top: 59.5% !important;
		width: clamp(220px, 33vw, 310px) !important;
	}

}


/* =========================================================
   16. MOBILE
   ========================================================= */

@media (max-width: 767px) {
	.ld-entrance-demo {
		--ld-guide-arrival-time: 2.6s;
		--ld-follow-time: 2.35s;
		--ld-gallery-size: 100% 100%;
		--ld-gallery-position: 50% center;
		--ld-gallery-follow-size: 116% 106%;
		--ld-gallery-follow-position: 70% center;
		--ld-guide-width: min(72vw, 54dvh, 380px);
		--ld-guide-min-width: 220px;
	}

	.ld-entrance-demo,
	.ld-entrance-demo__scene {
		min-height: 100vh;
		min-height: 100svh;
	}

	.ld-entrance-demo__scene {
		display: block;
		padding: 22px 14px 18px;
	}

	.ld-entrance-demo__header {
		width: 100%;
		padding: 0 8px;
		text-align: center;
	}

	.ld-entrance-demo__symbol {
		width: 58px;
		margin-bottom: 12px;
	}

	.ld-entrance-demo__title {
		font-size: clamp(38px, 13vw, 59px);
		line-height: .9;
	}

	.ld-entrance-demo__intro {
		max-width: 320px;
		margin: 16px auto 0;
		font-size: 13px;
		line-height: 1.45;
	}

	.ld-pyramid-entrance {
		position: absolute;
		left: 50%;
		bottom: max(30px, env(safe-area-inset-bottom));
		width: min(96vw, 600px);
		transform: translateX(-50%);
	}

	.ld-entrance-demo__performer-wrap {
		left: -3%;
		bottom: 0;
		width: 43vw;
		max-width: 220px;
		height: 51vh;
		min-height: 360px;
	}

	.ld-admit-ticket {
		top: 60.5% !important;
		width: min(62vw, 270px) !important;
	}

	.ld-pyramid-entrance__instruction {
		bottom: 3.5%;
		font-size: 8px;
	}

	.ld-pyramid-entrance__instruction-desktop {
		display: none;
	}

	.ld-pyramid-entrance__instruction-mobile {
		display: inline;
	}

	.ld-entrance-demo.is-entering .ld-pyramid-entrance {
		transform: translateX(-50%) scale(4.35);
	}

	.ld-pyramid-entrance__destination {
		width: 74%;
	}

	.ld-pyramid-entrance__destination strong {
		font-size: clamp(18px, 6vw, 32px);
	}


	.ld-guide-layer::before {
		backdrop-filter: blur(4px) brightness(.94);
		-webkit-backdrop-filter: blur(4px) brightness(.94);
	}


	.ld-entrance-demo.is-following-guide .ld-guide {
		transform:
			translate3d(
				calc(-50% - 94vw),
				1vh,
				0
			)
			scale(1.64);
		filter:
			brightness(1.1)
			blur(11px)
			drop-shadow(-15px 0 24px rgba(255, 38, 49, .28))
			drop-shadow(15px 0 24px rgba(20, 255, 105, .24))
			drop-shadow(0 0 28px rgba(255, 207, 72, .38));
		transition:
			transform var(--ld-follow-time) var(--ld-follow-ease),
			filter var(--ld-follow-time) cubic-bezier(.2, .64, .2, 1),
			opacity .62s ease 1.6s;
	}

}


/* =========================================================
   17. SMALL MOBILE
   ========================================================= */

@media (max-width: 420px) {
	.ld-entrance-demo {
		--ld-gallery-follow-size: 112% 104%;
		--ld-gallery-follow-position: 67% center;
		--ld-guide-width: min(76vw, 50dvh, 330px);
		--ld-guide-min-width: 200px;
	}

	.ld-entrance-demo__intro {
		max-width: 280px;
	}

	.ld-pyramid-entrance {
		bottom: 5px;
		width: 108vw;
	}

	.ld-entrance-demo__performer-wrap {
		left: -7%;
		width: 47vw;
	}

	.ld-admit-ticket {
		top: 58.5% !important;
		width: min(60vw, 235px) !important;
	}

}


/* =========================================================
   19. PORTRAIT / SQUARER VIEWPORT BACKGROUND COVERAGE
   ========================================================= */

@media (max-aspect-ratio: 3 / 2) {
	.ld-entrance-demo {
		/* Show more of the gallery on squarer and portrait screens. */
		--ld-gallery-size: 102% 100%;
		--ld-gallery-follow-size: 118% 106%;
		--ld-gallery-follow-position: 70% center;
	}
}


/* =========================================================
   20. PORTRAIT PHONE GALLERY ARTWORK
   ========================================================= */

@media (max-width: 767px) and (orientation: portrait) {
	.ld-entrance-demo {
		--ld-gallery-image-active: var(--ld-gallery-image-mobile);

		/*
		 * The mobile artwork is intentionally wider than a portrait screen.
		 * It is centred at the entrance, with substantial image area held
		 * outside both viewport edges. The same image then enlarges and pans
		 * left to reveal the right-hand gallery wall when the guide is clicked.
		 * Keeping both states numeric allows a continuous camera movement.
		 */
		--ld-follow-time: 2.5s;
		--ld-gallery-size: auto 108%;
		--ld-gallery-position: 42% 50%;
		--ld-gallery-follow-size: auto 138%;
		--ld-gallery-follow-position: 77% 50%;

		/* Never expose the pale page background during the mobile pan. */
		background-color: #050505;
	}

	.ld-gallery-preview,
	.ld-pyramid-entrance__gallery {
		background-color: #050505;
	}
}


/* =========================================================
   21. SHORT / LANDSCAPE PHONE TUNING
   ========================================================= */

@media (max-height: 620px) and (orientation: landscape) {
	.ld-entrance-demo {
		--ld-gallery-size: 104% 100%;
		--ld-gallery-follow-size: 118% 104%;
		--ld-gallery-follow-position: 72% center;
		--ld-guide-width: min(34vw, 57dvh, 360px);
		--ld-guide-min-width: 210px;
	}
}


/* =========================================================
   22. REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	.ld-entrance-demo.is-ticket-tearing
	.ld-admit-ticket__piece--left,
	.ld-entrance-demo.is-ticket-tearing
	.ld-admit-ticket__piece--right {
		opacity: 0 !important;
		transform: translate3d(0, 110vh, 0) !important;
	}

	.ld-entrance-demo *,
	.ld-entrance-demo *::before,
	.ld-entrance-demo *::after {
		scroll-behavior: auto !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}

	.ld-admit-ticket {
		opacity: 1;
		translate: 0 0;
		rotate: -5deg;
	}

	.ld-entrance-demo.is-guide-visible:not(.is-following-guide)
	.ld-guide {
		opacity: 1;
		transform:
			translate3d(-50%, 0, 0)
			scale(1);
		filter:
			drop-shadow(0 0 16px rgba(255, 214, 104, .48));
	}

	.ld-entrance-demo.is-following-guide
	.ld-guide {
		opacity: 0;
		transform:
			translate3d(-80vw, 0, 0)
			scale(1.1);
		filter: none;
	}

	.ld-entrance-demo.is-entering .ld-gallery-preview {
		opacity: 1;
		clip-path: inset(0);
		-webkit-clip-path: inset(0);
		transform: none;
	}
}


/* =========================================================
   23. COMPACT BLACK-HOLE AUDIO CONSOLE
   ========================================================= */

.ld-audio-console-shell {
	position: fixed;
	z-index: 1000002;
	top: max(10px, env(safe-area-inset-top));
	isolation: isolate;
	perspective: 950px;
	transform-style: preserve-3d;
	left: 50%;
	width: min(680px, calc(100vw - 24px));
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
	transform: translate3d(-50%, -120%, 0);
	transition:
		opacity 320ms ease,
		visibility 0s linear 900ms;
}

.ld-entrance-demo:not(.is-gallery-entry-complete) .ld-audio-console-shell {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
	transform: translate3d(-50%, -130%, 0) !important;
	animation: none !important;
}

.ld-audio-console-shell::before,
.ld-audio-console-shell::after {
	position: absolute;
	left: 50%;
	content: "";
	pointer-events: none;
	opacity: 0;
	transition: opacity 420ms ease;
}

.ld-audio-console-shell::before {
	top: -12px;
	width: min(70%, 420px);
	height: 28px;
	transform: translateX(-50%);
	border-radius: 0 0 26px 26px;
	background:
		linear-gradient(180deg, rgba(255, 248, 222, .18), rgba(255, 210, 78, .08) 36%, rgba(75, 198, 255, .08) 68%, transparent 100%),
		radial-gradient(ellipse at center, rgba(255, 214, 92, .28), rgba(255, 214, 92, .08) 54%, transparent 78%);
	filter: blur(4px) drop-shadow(0 0 12px rgba(255, 209, 88, .18));
}

.ld-audio-console-shell::after {
	top: -3px;
	width: min(58%, 350px);
	height: 3px;
	transform: translateX(-50%);
	border-radius: 999px;
	background: linear-gradient(90deg, transparent, rgba(164, 233, 255, .75) 18%, rgba(255, 225, 136, .95) 50%, rgba(164, 233, 255, .75) 82%, transparent);
	box-shadow: 0 0 14px rgba(164, 233, 255, .32), 0 0 18px rgba(255, 204, 77, .26);
}

.ld-entrance-demo.is-audio-console-visible.is-gallery-entry-complete .ld-audio-console-shell {
	pointer-events: auto;
	opacity: 1;
	visibility: visible;
	animation:
		ld-audio-console-arrive 1.05s cubic-bezier(.16, .78, .22, 1) both,
		ld-audio-console-float 5.8s ease-in-out 1.05s infinite;
}

.ld-entrance-demo.is-audio-console-visible.is-gallery-entry-complete .ld-audio-console-shell::before,
.ld-entrance-demo.is-audio-console-visible.is-gallery-entry-complete .ld-audio-console-shell::after {
	opacity: 1;
}

.ld-audio-console {
	--ld-audio-gold: #f3c654;
	--ld-audio-gold-light: #fff0aa;
	--ld-audio-gold-deep: #9d6514;
	--ld-audio-progress: 0%;
	--ld-volume: 60%;

	position: relative;
	z-index: 10;
	display: grid;
	grid-template-columns: 76px auto minmax(190px, 1fr) 118px;
	align-items: center;
	width: 100%;
	min-height: 58px;
	padding: 7px 34px 7px 9px;
	gap: 9px;
	isolation: isolate;
	overflow: hidden;
	color: var(--ld-audio-gold-light);
	background:
		linear-gradient(180deg, rgba(255, 255, 255, .105), transparent 28%),
		radial-gradient(circle at 52% -58%, rgba(255, 214, 92, .15), transparent 48%),
		linear-gradient(135deg, rgba(25, 25, 25, .975), rgba(1, 1, 1, .99) 57%, rgba(18, 12, 3, .985));
	border: 1px solid rgba(255, 217, 109, .72);
	border-radius: 18px;
	box-shadow:
		0 0 0 1px rgba(92, 52, 3, .96),
		0 0 0 3px rgba(255, 203, 68, .13),
		inset 0 1px 0 rgba(255, 249, 220, .22),
		inset 0 -1px 0 rgba(255, 183, 39, .16),
		0 11px 28px rgba(0, 0, 0, .46),
		0 0 24px rgba(255, 190, 38, .11);
	transform-origin: 50% -12px;
	transition:
		opacity 440ms ease,
		transform 600ms cubic-bezier(.14, .82, .19, 1),
		filter 500ms ease,
		box-shadow 320ms ease;
	backdrop-filter: blur(16px) saturate(1.22);
	-webkit-backdrop-filter: blur(16px) saturate(1.22);
}

.ld-audio-console::before,
.ld-audio-console::after {
	position: absolute;
	content: "";
	pointer-events: none;
}

.ld-audio-console::before {
	z-index: -1;
	inset: 3px;
	border: 1px solid rgba(255, 215, 102, .19);
	border-radius: 14px;
}

.ld-audio-console::after {
	z-index: 7;
	top: 0;
	left: -42%;
	width: 28%;
	height: 100%;
	background: linear-gradient(
		100deg,
		transparent,
		rgba(255, 255, 255, .05) 38%,
		rgba(255, 229, 152, .19) 50%,
		rgba(255, 255, 255, .04) 63%,
		transparent
	);
	transform: skewX(-18deg);
	opacity: 0;
}

.ld-entrance-demo.is-audio-playing .ld-audio-console {
	box-shadow:
		0 0 0 1px rgba(92, 52, 3, .96),
		0 0 0 3px rgba(255, 203, 68, .18),
		inset 0 1px 0 rgba(255, 249, 220, .26),
		inset 0 -1px 0 rgba(255, 183, 39, .18),
		0 12px 31px rgba(0, 0, 0, .48),
		0 0 30px rgba(255, 190, 38, .2);
}

.ld-entrance-demo.is-audio-playing .ld-audio-console::after {
	opacity: 1;
	animation: ld-audio-console-sheen 6.8s ease-in-out infinite;
}

.ld-audio-console__shine {
	position: absolute;
	z-index: -1;
	inset: 0;
	background:
		radial-gradient(circle at 18% 0%, rgba(255, 243, 196, .1), transparent 27%),
		radial-gradient(circle at 82% 100%, rgba(255, 188, 35, .07), transparent 31%);
	pointer-events: none;
}

/*
 * Central plug-hole transition.
 * The complete controller compresses towards its own centre, spirals into
 * the dark portal and only then reveals the compact speaker tab.
 */
.ld-entrance-demo.is-audio-console-collapsing .ld-audio-console {
	pointer-events: none;
	animation: ld-audio-console-plughole-drain 780ms cubic-bezier(.5, .02, .2, 1) both;
}

.ld-entrance-demo.is-audio-console-collapsed .ld-audio-console {
	opacity: 0;
	pointer-events: none;
	filter: blur(7px) brightness(1.45) saturate(1.35);
	clip-path: circle(.1% at 50% 50%);
	-webkit-clip-path: circle(.1% at 50% 50%);
	transform: translate3d(0, 29px, 0) scale(.02) rotate(190deg);
}

.ld-entrance-demo.is-audio-console-expanding .ld-audio-console {
	animation: ld-audio-console-plughole-return 780ms cubic-bezier(.12, .84, .2, 1) both;
}

.ld-audio-console__suction-hole {
	position: absolute;
	z-index: 30;
	top: 50%;
	left: 50%;
	display: block;
	width: 74px;
	height: 25px;
	opacity: 0;
	pointer-events: none;
	filter: blur(.2px);
	transform: translate(-50%, -50%) scale(.15);
	transform-origin: 50% 50%;
}

.ld-audio-console__suction-orbit,
.ld-audio-console__suction-core {
	position: absolute;
	inset: 0;
	display: block;
	border-radius: 50%;
}

.ld-audio-console__suction-orbit {
	background:
		radial-gradient(ellipse at center, transparent 0 26%, rgba(255, 193, 66, .7) 31%, transparent 48%),
		conic-gradient(from 0deg, #2a0c00, #ff9f22 15%, #fff0a4 27%, #b83906 43%, #120300 56%, #ffc955 72%, #6c1d00 89%, #2a0c00);
	box-shadow:
		0 0 10px rgba(255, 135, 20, .65),
		0 0 24px rgba(255, 198, 68, .35);
}

.ld-audio-console__suction-core {
	inset: 6px 18px;
	background: radial-gradient(ellipse at center, #000 0 66%, #090300 82%, transparent 86%);
	box-shadow: inset 0 0 9px #000, 0 0 8px rgba(255, 173, 28, .25);
}

.ld-entrance-demo.is-audio-console-collapsing .ld-audio-console__suction-hole {
	animation: ld-audio-plughole-open 780ms ease-out both;
}

.ld-entrance-demo.is-audio-console-expanding .ld-audio-console__suction-hole {
	animation: ld-audio-plughole-close 780ms ease-out both;
}

.ld-entrance-demo.is-audio-console-collapsing .ld-audio-console__suction-orbit,
.ld-entrance-demo.is-audio-console-expanding .ld-audio-console__suction-orbit {
	animation: ld-blackhole-spin 420ms linear infinite;
}

.ld-audio-console__brand {
	display: grid;
	grid-template-rows: 24px auto;
	place-items: center;
	row-gap: 10px;
	min-width: 0;
	padding: 0 9px 0 2px;
	border-right: 1px solid rgba(255, 207, 76, .16);
}

/*
 * Use the official raster Lord Dancer logo, but recolour the black linework
 * into the same rich metallic gold family used across the transport panel.
 * Removing the old screen-blend approach keeps the mark bright, crisp and
 * consistently gold against the smoked-black console background.
 */
.ld-audio-console__logo {
	display: block;
	width: 30px;
	height: 24px;
	object-fit: contain;
	object-position: center;
	opacity: 1;
	mix-blend-mode: normal;
	filter:
		brightness(0)
		saturate(100%)
		invert(81%)
		sepia(61%)
		saturate(1163%)
		hue-rotate(356deg)
		brightness(101%)
		contrast(102%)
		drop-shadow(0 0 1px rgba(255, 240, 179, .95))
		drop-shadow(0 0 5px rgba(255, 196, 58, .42));
}

.ld-audio-console__album-button,
.ld-audio-console__album-button:hover,
.ld-audio-console__album-button:focus,
.ld-audio-console__album-button:active {
	min-width: 0;
	margin: 0;
	margin-top: 2px;
	padding: 1px 3px 0;
	color: rgba(255, 232, 166, .76);
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(255, 201, 56, .36) !important;
	border-radius: 0;
	box-shadow: none !important;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 6.5px;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: .14em;
	text-transform: uppercase;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: color 180ms ease, border-color 180ms ease, text-shadow 180ms ease;
}

.ld-audio-console__album-button:hover,
.ld-audio-console__album-button:focus-visible,
.ld-entrance-demo.is-audio-album-open .ld-audio-console__album-button {
	color: #fff4bd;
	border-bottom-color: #f5c64c !important;
	text-shadow: 0 0 8px rgba(255, 195, 40, .52);
	outline: 0;
}

.ld-audio-console__transport,
.ld-audio-console__volume {
	display: flex;
	align-items: center;
	gap: 5px;
}

.ld-audio-console__volume {
	justify-content: flex-end;
	min-width: 0;
	padding: 3px 2px 3px 8px;
	border-left: 1px solid rgba(255, 207, 76, .14);
	border-radius: 0 12px 12px 0;
	background: linear-gradient(90deg, rgba(255, 202, 54, .025), rgba(255, 202, 54, .055));
}

.ld-audio-console__button,
.ld-audio-console__button:hover,
.ld-audio-console__button:focus,
.ld-audio-console__button:active,
.ld-audio-console__button:visited {
	position: relative;
	display: inline-grid;
	place-items: center;
	flex: 0 0 auto;
	width: 30px;
	height: 30px;
	margin: 0;
	padding: 0;
	color: var(--ld-audio-gold-light);
	background:
		radial-gradient(circle at 38% 25%, rgba(255, 255, 255, .13), transparent 31%),
		linear-gradient(145deg, #181818, #020202 64%, #231300);
	border: 1px solid rgba(255, 207, 79, .74);
	border-radius: 50%;
	box-shadow:
		0 0 0 1px rgba(52, 29, 0, .9),
		inset 0 1px 1px rgba(255, 242, 196, .16),
		inset 0 -3px 7px rgba(0, 0, 0, .72),
		0 3px 8px rgba(0, 0, 0, .32),
		0 0 8px rgba(255, 186, 32, .1);
	outline: 0;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	transform: translateZ(0);
	transition:
		transform 170ms ease,
		border-color 180ms ease,
		box-shadow 200ms ease,
		color 180ms ease;
}

.ld-audio-console__button--play,
.ld-audio-console__button--play:hover,
.ld-audio-console__button--play:focus,
.ld-audio-console__button--play:active {
	width: 36px;
	height: 36px;
	color: #120b02;
	background:
		radial-gradient(circle at 38% 24%, rgba(255, 255, 255, .24), transparent 29%),
		linear-gradient(145deg, #f4ce69, #b97917 56%, #623804);
	border-color: #ffe69a;
	box-shadow:
		0 0 0 1px rgba(59, 32, 0, .96),
		0 0 0 2px rgba(255, 213, 94, .4),
		inset 0 1px 1px rgba(255, 255, 255, .52),
		inset 0 -5px 9px rgba(83, 40, 0, .35),
		0 4px 10px rgba(0, 0, 0, .38),
		0 0 13px rgba(255, 190, 31, .23);
}

.ld-audio-console__button:hover {
	color: #fff7d3;
	border-color: #fff0a8;
	box-shadow:
		0 0 0 1px rgba(52, 29, 0, .9),
		inset 0 1px 1px rgba(255, 242, 196, .22),
		inset 0 -3px 7px rgba(0, 0, 0, .68),
		0 4px 11px rgba(0, 0, 0, .38),
		0 0 13px rgba(255, 194, 38, .27);
	transform: translateY(-1px) scale(1.035);
}

.ld-audio-console__button--play:hover {
	color: #080501;
}

.ld-audio-console__button:active {
	transform: translateY(1px) scale(.96);
}

.ld-audio-console__button:focus-visible,
.ld-audio-console__collapse:focus-visible,
.ld-audio-blackhole-tab:focus-visible,
.ld-audio-album-card__close:focus-visible {
	outline: 2px solid #fff2b2;
	outline-offset: 3px;
}

.ld-audio-console__button svg {
	position: absolute;
	inset: 50% auto auto 50%;
	width: 16px;
	height: 16px;
	fill: currentColor;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
	transform: translate(-50%, -50%);
	filter: drop-shadow(0 0 4px rgba(255, 210, 91, .25));
	pointer-events: none;
}

.ld-audio-console__button--play svg {
	width: 19px;
	height: 19px;
}

.ld-audio-console__icon-pause,
.ld-audio-console__icon-muted {
	display: none;
}

.ld-entrance-demo.is-audio-playing .ld-audio-console__icon-play {
	display: none;
}

.ld-entrance-demo.is-audio-playing .ld-audio-console__icon-pause,
.ld-entrance-demo.is-audio-muted .ld-audio-console__icon-muted {
	display: block;
}

.ld-entrance-demo.is-audio-muted .ld-audio-console__icon-volume {
	display: none;
}

.ld-audio-console__sound-wave {
	fill: none;
}

.ld-audio-console__display {
	position: relative;
	display: grid;
	grid-template-rows: 25px 14px;
	align-items: center;
	min-width: 0;
	padding: 2px 8px 0;
	border-right: 1px solid rgba(255, 207, 76, .12);
	border-left: 1px solid rgba(255, 207, 76, .12);
	background:
		linear-gradient(180deg, rgba(255, 216, 109, .025), transparent),
		linear-gradient(90deg, transparent, rgba(255, 201, 63, .04), transparent);
}

.ld-audio-console__waveform {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 24px;
	gap: 3px;
	overflow: hidden;
}

.ld-audio-console__waveform::before,
.ld-audio-console__waveform::after {
	position: absolute;
	content: "";
	pointer-events: none;
}

.ld-audio-console__waveform::before {
	z-index: -1;
	left: 7%;
	right: 7%;
	top: 50%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(255, 208, 80, .31), transparent);
	box-shadow: 0 0 8px rgba(255, 190, 33, .16);
}

.ld-audio-console__waveform::after {
	top: 0;
	bottom: 0;
	left: -20%;
	width: 18%;
	background: linear-gradient(90deg, transparent, rgba(255, 242, 194, .32), transparent);
	opacity: 0;
}

.ld-entrance-demo.is-audio-playing .ld-audio-console__waveform::after {
	opacity: 1;
	animation: ld-audio-wave-scan 3.4s linear infinite;
}

.ld-audio-console__waveform span {
	--ld-audio-level: .25;
	--ld-audio-glow: .25;
	position: relative;
	z-index: 1;
	display: block;
	flex: 1 1 0;
	width: 3px;
	max-width: 4px;
	height: 22px;
	min-height: 3px;
	border-radius: 999px;
	background: linear-gradient(180deg, #fff6c4 0%, #f6cb59 26%, #d9911e 70%, #7e4205 100%);
	box-shadow:
		0 0 calc(2px + (7px * var(--ld-audio-glow))) rgba(255, 193, 38, calc(.18 + (.5 * var(--ld-audio-glow)))),
		inset 0 1px 0 rgba(255, 255, 255, .56);
	transform: scaleY(var(--ld-audio-level));
	transform-origin: 50% 50%;
	transition: transform 70ms linear, box-shadow 90ms linear;
	will-change: transform, box-shadow;
}

.ld-audio-console__timeline {
	display: grid;
	grid-template-columns: 30px minmax(84px, 1fr) 30px;
	align-items: center;
	gap: 5px;
	min-width: 0;
}

.ld-audio-console__timeline time {
	color: rgba(255, 231, 166, .8);
	font-family: "Courier New", Courier, monospace;
	font-size: 8px;
	font-variant-numeric: tabular-nums;
	letter-spacing: .01em;
	text-align: center;
	white-space: nowrap;
}

/* Strong browser/theme reset: no white slider wells. */
.ld-audio-console input[type="range"].ld-audio-console__range,
.ld-audio-console input[type="range"].ld-audio-console__range:hover,
.ld-audio-console input[type="range"].ld-audio-console__range:focus,
.ld-audio-console input[type="range"].ld-audio-console__range:active {
	position: relative;
	display: block;
	width: 100%;
	height: 16px;
	min-height: 0;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	outline: 0;
	-webkit-appearance: none !important;
	appearance: none !important;
	cursor: pointer;
}

.ld-audio-console__range::-webkit-slider-runnable-track {
	height: 3px;
	border: 0;
	border-radius: 999px;
	background:
		linear-gradient(
			90deg,
			var(--ld-audio-gold-light) 0%,
			var(--ld-audio-gold) var(--ld-range-fill, 0%),
			rgba(91, 64, 20, .9) var(--ld-range-fill, 0%),
			rgba(28, 22, 12, .96) 100%
		) !important;
	box-shadow:
		inset 0 1px 2px rgba(0, 0, 0, .95),
		0 0 5px rgba(255, 189, 31, .14);
}

.ld-audio-console__range::-moz-range-track {
	height: 3px;
	border: 0;
	border-radius: 999px;
	background: rgba(28, 22, 12, .96) !important;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, .95);
}

.ld-audio-console__range::-moz-range-progress {
	height: 3px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--ld-audio-gold-light), var(--ld-audio-gold));
	box-shadow: 0 0 5px rgba(255, 189, 31, .2);
}

.ld-audio-console__range::-webkit-slider-thumb {
	width: 10px;
	height: 10px;
	margin-top: -3.5px;
	border: 1px solid #fff0ad;
	border-radius: 50%;
	background: radial-gradient(circle at 38% 32%, #fff9d5, #e3a52e 56%, #7e4304 100%);
	box-shadow: 0 0 0 2px rgba(67, 35, 0, .72), 0 0 7px rgba(255, 194, 37, .5);
	-webkit-appearance: none;
	appearance: none;
}

.ld-audio-console__range::-moz-range-thumb {
	width: 10px;
	height: 10px;
	border: 1px solid #fff0ad;
	border-radius: 50%;
	background: radial-gradient(circle at 38% 32%, #fff9d5, #e3a52e 56%, #7e4304 100%);
	box-shadow: 0 0 0 2px rgba(67, 35, 0, .72), 0 0 7px rgba(255, 194, 37, .5);
}

.ld-audio-console__range:focus-visible {
	outline: 2px solid #fff0a7 !important;
	outline-offset: 2px;
	border-radius: 999px !important;
}

.ld-audio-console__range--progress {
	--ld-range-fill: var(--ld-progress);
}

.ld-audio-console input[type="range"].ld-audio-console__range--volume {
	--ld-range-fill: var(--ld-volume);
	flex: 1 1 auto;
	width: 72px;
	min-width: 50px;
	max-width: 76px;
}

.ld-audio-console__button--volume {
	width: 29px;
	height: 29px;
}

.ld-audio-console__button--volume svg {
	width: 16px;
	height: 16px;
}

/*
 * Keep the original compact black-hole collapse control in the top-right of
 * the bar. The small gold chevron hangs immediately beneath it as a visual
 * hint without replacing the control itself.
 */
.ld-audio-console__collapse,
.ld-audio-console__collapse:hover,
.ld-audio-console__collapse:focus,
.ld-audio-console__collapse:active {
	position: absolute;
	z-index: 35;
	top: 5px;
	right: 6px;
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	margin: 0;
	padding: 0;
	color: #f6ce63;
	background:
		radial-gradient(circle at 50% 50%, #010101 0 28%, transparent 30%),
		conic-gradient(from 10deg, #7d4306, #ffe08a, #9a5607, #fff0ab, #7d4306);
	border: 1px solid rgba(255, 224, 137, .72);
	border-radius: 50%;
	box-shadow:
		0 0 0 1px #311b02,
		0 0 8px rgba(255, 190, 39, .23);
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	overflow: visible;
	transform: translateZ(0);
	transition: transform 180ms ease, box-shadow 180ms ease, opacity 160ms ease;
}

.ld-audio-console__collapse::before,
.ld-audio-console__collapse::after {
	position: absolute;
	content: "";
	pointer-events: none;
}

.ld-audio-console__collapse::before {
	inset: 3px;
	border: 1px solid rgba(255, 226, 145, .72);
	border-right-color: transparent;
	border-bottom-color: rgba(119, 65, 5, .85);
	border-radius: 50%;
	animation: ld-blackhole-spin 2.3s linear infinite;
}

.ld-audio-console__collapse::after {
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: #000;
	box-shadow: 0 0 5px 2px rgba(255, 187, 35, .25);
}

.ld-audio-console__collapse-arrow {
	position: absolute;
	top: calc(100% + 4px);
	left: 50%;
	display: block;
	width: 11px;
	height: 8px;
	pointer-events: none;
	transform: translateX(-50%);
	animation: ld-audio-collapse-arrow-nudge 1.65s ease-in-out infinite;
}

.ld-audio-console__collapse-arrow svg {
	display: block;
	width: 11px;
	height: 8px;
	fill: none;
	stroke: #f7cf61;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	filter: drop-shadow(0 0 4px rgba(255, 197, 43, .72));
}

.ld-audio-console__collapse:hover,
.ld-audio-console__collapse:focus-visible {
	transform: scale(1.09);
	box-shadow:
		0 0 0 1px #311b02,
		0 0 13px rgba(255, 190, 39, .44);
}

.ld-audio-console__collapse:active {
	transform: scale(.95);
}

.ld-entrance-demo.is-audio-console-collapsing .ld-audio-console__collapse {
	opacity: 0;
	transform: translateY(8px) scale(.35);
	transition: opacity 160ms ease, transform 260ms ease;
}

/*
 * Chained album-art panel.
 * The panel begins hidden behind the transport bar, drops on two small gold
 * chains, settles into a gentle suspended swing and reverses back behind the
 * controls when it is closed.
 */
.ld-audio-album-card {
	--ld-album-x: 0%;

	position: absolute;
	z-index: 2;
	top: calc(100% + 12px);
	left: 0;
	display: grid;
	grid-template-columns: 102px minmax(82px, 1fr);
	align-items: center;
	width: 220px;
	padding: 8px;
	gap: 9px;
	isolation: isolate;
	color: #fff0b0;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, .08), transparent 25%),
		linear-gradient(135deg, rgba(20, 20, 20, .98), rgba(2, 2, 2, .99));
	border: 1px solid rgba(255, 209, 76, .68);
	border-radius: 15px;
	box-shadow:
		0 0 0 1px rgba(75, 42, 3, .94),
		0 15px 32px rgba(0, 0, 0, .5),
		0 0 25px rgba(255, 185, 29, .14);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform:
		translateX(var(--ld-album-x))
		translateY(-136px)
		rotateZ(-10deg)
		rotateX(-24deg)
		scale(.91);
	transform-origin: 50% -42px;
	transform-style: preserve-3d;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	will-change: transform, opacity;
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
}

/* Two longer metallic necklace-style chain runs, tucked partly behind the
 * transport bar so the album card appears to swing from it naturally. */
.ld-audio-album-card::before,
.ld-audio-album-card::after {
	position: absolute;
	z-index: 3;
	top: -50px;
	width: 12px;
	height: 56px;
	content: "";
	background-image: url("data:image/svg+xml,%3Csvg width='12' height='14' viewBox='0 0 12 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cellipse cx='6' cy='3.9' rx='3.15' ry='3.5' stroke='%23f3c654' stroke-width='1.15'/%3E%3Cellipse cx='6' cy='9.9' rx='3.15' ry='3.5' stroke='%23fff0aa' stroke-width='1.0'/%3E%3Cpath d='M6 6.9V6.95' stroke='%23d19a2a' stroke-width='1.0'/%3E%3C/g%3E%3C/svg%3E");
	background-position: center top;
	background-repeat: repeat-y;
	background-size: 12px 14px;
	filter:
		drop-shadow(0 1px 1px rgba(0, 0, 0, .78))
		drop-shadow(0 0 4px rgba(255, 190, 39, .36));
	pointer-events: none;
}

.ld-audio-album-card::before {
	left: 22px;
}

.ld-audio-album-card::after {
	right: 22px;
}

.ld-entrance-demo.is-audio-album-open .ld-audio-album-card {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	animation:
		ld-audio-album-swing-down
		920ms
		cubic-bezier(.16, .82, .24, 1)
		both,
		ld-audio-album-gentle-swing
		4.8s
		ease-in-out
		920ms
		infinite;
}

.ld-entrance-demo.is-audio-album-closing .ld-audio-album-card {
	opacity: 1;
	visibility: visible;
	pointer-events: none;
	animation:
		ld-audio-album-swing-up
		780ms
		cubic-bezier(.55, .02, .3, 1)
		both;
}

.ld-audio-album-card__art {
	position: relative;
	z-index: 2;
	width: 102px;
	aspect-ratio: 1;
	overflow: hidden;
	border: 1px solid rgba(255, 220, 111, .66);
	border-radius: 11px;
	box-shadow: 0 0 0 2px rgba(68, 38, 3, .9), 0 7px 18px rgba(0, 0, 0, .42);
}

.ld-audio-album-card__art img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ld-audio-album-card__copy {
	position: relative;
	z-index: 2;
	display: grid;
	align-content: center;
	min-width: 0;
}

.ld-audio-album-card__copy span {
	color: rgba(255, 226, 143, .6);
	font-size: 7px;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.ld-audio-album-card__copy strong {
	margin-top: 5px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 18px;
	line-height: 1;
	text-shadow: 0 0 12px rgba(255, 190, 35, .35);
}

.ld-audio-album-card__copy small {
	margin-top: 5px;
	color: rgba(255, 238, 190, .72);
	font-size: 9px;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.ld-audio-album-card__close,
.ld-audio-album-card__close:hover,
.ld-audio-album-card__close:focus,
.ld-audio-album-card__close:active {
	position: absolute;
	z-index: 5;
	top: 4px;
	right: 4px;
	display: grid;
	place-items: center;
	width: 23px;
	height: 23px;
	margin: 0;
	padding: 0;
	color: #fff0b0;
	background: rgba(4, 4, 4, .87);
	border: 1px solid rgba(255, 209, 76, .62);
	border-radius: 50%;
	box-shadow: 0 2px 7px rgba(0, 0, 0, .34);
	font-size: 17px;
	line-height: 1;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

@keyframes ld-audio-album-swing-down {
	0% {
		opacity: 0;
		transform:
			translateX(var(--ld-album-x))
			translateY(-136px)
			rotateZ(-10deg)
			rotateX(-24deg)
			scale(.91);
	}

	24% {
		opacity: 1;
	}

	43% {
		transform:
			translateX(var(--ld-album-x))
			translateY(9px)
			rotateZ(8deg)
			rotateX(1deg)
			scale(1);
	}

	60% {
		transform:
			translateX(var(--ld-album-x))
			translateY(-4px)
			rotateZ(-5deg)
			rotateX(0deg)
			scale(1);
	}

	74% {
		transform:
			translateX(var(--ld-album-x))
			translateY(2px)
			rotateZ(3deg)
			rotateX(0deg)
			scale(1);
	}

	87% {
		transform:
			translateX(var(--ld-album-x))
			translateY(-1px)
			rotateZ(-1.5deg)
			rotateX(0deg)
			scale(1);
	}

	100% {
		opacity: 1;
		transform:
			translateX(var(--ld-album-x))
			translateY(0)
			rotateZ(0deg)
			rotateX(0deg)
			scale(1);
	}
}

@keyframes ld-audio-album-gentle-swing {
	0%, 100% {
		transform:
			translateX(var(--ld-album-x))
			translateY(0)
			rotateZ(-1.15deg)
			rotateX(0deg)
			scale(1);
	}

	50% {
		transform:
			translateX(var(--ld-album-x))
			translateY(1.5px)
			rotateZ(1.25deg)
			rotateX(.35deg)
			scale(1);
	}
}

@keyframes ld-audio-album-swing-up {
	0% {
		opacity: 1;
		transform:
			translateX(var(--ld-album-x))
			translateY(0)
			rotateZ(0deg)
			rotateX(0deg)
			scale(1);
	}

	20% {
		transform:
			translateX(var(--ld-album-x))
			translateY(3px)
			rotateZ(4deg)
			rotateX(0deg)
			scale(1);
	}

	43% {
		transform:
			translateX(var(--ld-album-x))
			translateY(-16px)
			rotateZ(-6deg)
			rotateX(-3deg)
			scale(.99);
	}

	74% {
		opacity: 1;
		transform:
			translateX(var(--ld-album-x))
			translateY(-105px)
			rotateZ(8deg)
			rotateX(-16deg)
			scale(.95);
	}

	100% {
		opacity: 0;
		transform:
			translateX(var(--ld-album-x))
			translateY(-136px)
			rotateZ(-10deg)
			rotateX(-24deg)
			scale(.91);
	}
}

/* Collapsed black-hole speaker tab hanging from the page top. */
.ld-audio-blackhole-tab,
.ld-audio-blackhole-tab:hover,
.ld-audio-blackhole-tab:focus,
.ld-audio-blackhole-tab:active {
	position: fixed;
	z-index: 1000003;
	top: -7px;
	left: 50%;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	margin: 0;
	padding: 0;
	color: #ffe392;
	background: transparent;
	border: 0;
	border-radius: 0 0 50% 50%;
	box-shadow: none;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translate3d(-50%, -22px, 0) scale(.28) rotate(-80deg);
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	transition:
		opacity 260ms ease 180ms,
		transform 480ms cubic-bezier(.15, .82, .22, 1) 130ms,
		visibility 0s linear 520ms;
}

.ld-entrance-demo.is-audio-console-visible.is-audio-console-collapsed .ld-audio-blackhole-tab {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translate3d(-50%, 0, 0) scale(1) rotate(0deg);
	transition-delay: 0s;
}

.ld-audio-blackhole-tab::before {
	position: absolute;
	z-index: -3;
	top: 0;
	left: 50%;
	width: 18px;
	height: 12px;
	content: "";
	background: linear-gradient(180deg, #b97b18, #4e2b03);
	border-right: 1px solid #f7cf68;
	border-left: 1px solid #f7cf68;
	transform: translateX(-50%);
}

.ld-audio-blackhole-tab__orbit,
.ld-audio-blackhole-tab__core {
	position: absolute;
	inset: 8px 3px 1px;
	border-radius: 50%;
	pointer-events: none;
}

.ld-audio-blackhole-tab__orbit {
	background:
		radial-gradient(ellipse at center, transparent 0 27%, rgba(255, 153, 38, .55) 31%, transparent 48%),
		conic-gradient(from 0deg, #3b1700, #ffb13a 18%, #fff4c1 29%, #b73d08 42%, #1a0500 55%, #ffcc62 73%, #5d1800 88%, #3b1700);
	box-shadow: 0 0 14px rgba(255, 135, 19, .55), 0 0 24px rgba(255, 196, 64, .25);
	animation: ld-blackhole-spin 2.2s linear infinite;
}

.ld-audio-blackhole-tab__core {
	inset: 15px 10px 8px;
	background: radial-gradient(circle at 46% 44%, #090909, #000 68%);
	box-shadow: inset 0 0 8px #000, 0 0 7px 2px rgba(255, 175, 37, .18);
}

.ld-audio-blackhole-tab svg {
	position: relative;
	z-index: 2;
	width: 18px;
	height: 18px;
	margin-top: 7px;
	fill: currentColor;
	stroke: currentColor;
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
	filter: drop-shadow(0 0 4px rgba(255, 209, 93, .75));
}

.ld-audio-blackhole-tab svg path:last-child {
	fill: none;
}

.ld-audio-blackhole-tab:hover {
	filter: brightness(1.18);
	transform: translate3d(-50%, 1px, 0) scale(1.08) rotate(0deg) !important;
}

@keyframes ld-audio-console-arrive {
	0% {
		opacity: 0;
		transform: translate3d(-50%, -120%, 0);
	}

	68% {
		opacity: 1;
		transform: translate3d(-50%, 8px, 0);
	}

	100% {
		opacity: 1;
		transform: translate3d(-50%, 0, 0);
	}
}

@keyframes ld-audio-console-float {
	0%,
	100% {
		transform: translate3d(-50%, 0, 0);
	}

	50% {
		transform: translate3d(-50%, 4px, 0);
	}
}

@keyframes ld-audio-console-sheen {
	0%, 56% { left: -42%; }
	78%, 100% { left: 118%; }
}

@keyframes ld-audio-wave-scan {
	0% { left: -20%; }
	100% { left: 105%; }
}

@keyframes ld-blackhole-spin {
	to { transform: rotate(360deg); }
}

@keyframes ld-audio-collapse-arrow-nudge {
	0%, 100% { opacity: .62; transform: translateX(-50%) translateY(0); }
	50% { opacity: 1; transform: translateX(-50%) translateY(3px); }
}

@keyframes ld-audio-console-plughole-drain {
	0% {
		opacity: 1;
		filter: none;
		clip-path: inset(0 round 18px);
		-webkit-clip-path: inset(0 round 18px);
		transform: translate3d(0, 0, 0) scale(1) rotate(0deg);
	}
	24% {
		opacity: 1;
		filter: brightness(1.08) saturate(1.08);
		clip-path: inset(4% 4% round 23px);
		-webkit-clip-path: inset(4% 4% round 23px);
		transform: translate3d(0, 5px, 0) scale(.96, .88) rotate(0deg);
	}
	52% {
		opacity: .96;
		filter: blur(.45px) brightness(1.22) saturate(1.18);
		clip-path: inset(13% 24% round 48%);
		-webkit-clip-path: inset(13% 24% round 48%);
		transform: translate3d(0, 15px, 0) scale(.72, .62) rotate(8deg);
	}
	74% {
		opacity: .72;
		filter: blur(2px) brightness(1.5) saturate(1.35);
		clip-path: inset(34% 43% round 50%);
		-webkit-clip-path: inset(34% 43% round 50%);
		transform: translate3d(0, 25px, 0) scale(.28, .28) rotate(92deg);
	}
	100% {
		opacity: 0;
		filter: blur(7px) brightness(1.45) saturate(1.35);
		clip-path: circle(.1% at 50% 50%);
		-webkit-clip-path: circle(.1% at 50% 50%);
		transform: translate3d(0, 29px, 0) scale(.02) rotate(190deg);
	}
}

@keyframes ld-audio-console-plughole-return {
	0% {
		opacity: 0;
		filter: blur(7px) brightness(1.45) saturate(1.35);
		clip-path: circle(.1% at 50% 50%);
		-webkit-clip-path: circle(.1% at 50% 50%);
		transform: translate3d(0, 29px, 0) scale(.02) rotate(-190deg);
	}
	36% {
		opacity: .72;
		filter: blur(2px) brightness(1.42) saturate(1.3);
		clip-path: inset(34% 43% round 50%);
		-webkit-clip-path: inset(34% 43% round 50%);
		transform: translate3d(0, 24px, 0) scale(.3) rotate(-86deg);
	}
	72% {
		opacity: 1;
		filter: blur(0) brightness(1.08) saturate(1.08);
		clip-path: inset(4% 4% round 23px);
		-webkit-clip-path: inset(4% 4% round 23px);
		transform: translate3d(0, 3px, 0) scale(1.015, .96) rotate(0deg);
	}
	100% {
		opacity: 1;
		filter: none;
		clip-path: inset(0 round 18px);
		-webkit-clip-path: inset(0 round 18px);
		transform: translate3d(0, 0, 0) scale(1) rotate(0deg);
	}
}

@keyframes ld-audio-plughole-open {
	0% { opacity: 0; transform: translate(-50%, -50%) scale(.12); }
	24% { opacity: .2; transform: translate(-50%, -50%) scale(.42); }
	58% { opacity: 1; transform: translate(-50%, -50%) scale(1.18); }
	82% { opacity: 1; transform: translate(-50%, -50%) scale(.82); }
	100% { opacity: 0; transform: translate(-50%, -50%) scale(.28); }
}

@keyframes ld-audio-plughole-close {
	0% { opacity: 0; transform: translate(-50%, -50%) scale(.28); }
	22% { opacity: 1; transform: translate(-50%, -50%) scale(.82); }
	54% { opacity: 1; transform: translate(-50%, -50%) scale(1.18); }
	82% { opacity: .25; transform: translate(-50%, -50%) scale(.42); }
	100% { opacity: 0; transform: translate(-50%, -50%) scale(.12); }
}


/* =========================================================
   24. AUDIO CONSOLE – TABLET AND MOBILE
   ========================================================= */

@media (max-width: 760px) {
	.ld-audio-console-shell {
		top: max(7px, env(safe-area-inset-top));
		width: min(600px, calc(100vw - 14px));
	}

	.ld-audio-console {
		grid-template-columns: 58px auto minmax(120px, 1fr) 94px;
		min-height: 54px;
		padding: 6px 31px 6px 7px;
		gap: 6px;
		border-radius: 16px;
	}

	.ld-audio-console__brand {
		grid-template-rows: 25px auto;
		row-gap: 6px;
		padding-right: 4px;
	}

	.ld-audio-console__logo {
		width: 31px;
		height: 25px;
	}

	.ld-audio-console__album-button,
	.ld-audio-console__album-button:hover,
	.ld-audio-console__album-button:focus,
	.ld-audio-console__album-button:active {
		font-size: 5.7px;
		letter-spacing: .08em;
	}

	.ld-audio-console__button,
	.ld-audio-console__button:hover,
	.ld-audio-console__button:focus,
	.ld-audio-console__button:active {
		width: 27px;
		height: 27px;
	}

	.ld-audio-console__button--play,
	.ld-audio-console__button--play:hover,
	.ld-audio-console__button--play:focus,
	.ld-audio-console__button--play:active {
		width: 32px;
		height: 32px;
	}

	.ld-audio-console__button svg {
		width: 14px;
		height: 14px;
	}

	.ld-audio-console__button--play svg {
		width: 17px;
		height: 17px;
	}

	.ld-audio-console__display {
		grid-template-rows: 22px 13px;
		padding-right: 5px;
		padding-left: 5px;
	}

	.ld-audio-console__waveform {
		height: 21px;
		gap: 2px;
	}

	.ld-audio-console__waveform span {
		height: 19px;
	}

	.ld-audio-console__timeline {
		grid-template-columns: 25px minmax(48px, 1fr) 25px;
		gap: 3px;
	}

	.ld-audio-console__timeline time {
		font-size: 7px;
	}

	.ld-audio-console input[type="range"].ld-audio-console__range--volume {
		width: 51px;
		min-width: 38px;
	}

	.ld-audio-album-card {
		left: 0;
		width: 205px;
		grid-template-columns: 92px 1fr;
	}

	.ld-audio-album-card__art {
		width: 92px;
	}
}

@media (max-width: 520px) {
	.ld-audio-console-shell {
		width: calc(100vw - 10px);
	}

	.ld-audio-console {
		grid-template-columns: 48px auto minmax(74px, 1fr) 73px;
		padding: 5px 27px 5px 5px;
		gap: 4px;
	}

	.ld-audio-console__brand {
		grid-template-rows: 22px auto;
		row-gap: 5px;
		padding: 0 3px 0 0;
	}

	.ld-audio-console__logo {
		width: 28px;
		height: 22px;
	}

	.ld-audio-console__album-button,
	.ld-audio-console__album-button:hover,
	.ld-audio-console__album-button:focus,
	.ld-audio-console__album-button:active {
		font-size: 5px;
		letter-spacing: .04em;
	}

	.ld-audio-console__transport,
	.ld-audio-console__volume {
		gap: 3px;
	}

	.ld-audio-console__button,
	.ld-audio-console__button:hover,
	.ld-audio-console__button:focus,
	.ld-audio-console__button:active {
		width: 24px;
		height: 24px;
	}

	.ld-audio-console__button--play,
	.ld-audio-console__button--play:hover,
	.ld-audio-console__button--play:focus,
	.ld-audio-console__button--play:active {
		width: 29px;
		height: 29px;
	}

	.ld-audio-console__button svg {
		width: 12px;
		height: 12px;
	}

	.ld-audio-console__button--play svg {
		width: 15px;
		height: 15px;
	}

	.ld-audio-console__display {
		grid-template-rows: 20px 12px;
		padding-right: 3px;
		padding-left: 3px;
	}

	.ld-audio-console__waveform {
		height: 19px;
		gap: 1.5px;
	}

	.ld-audio-console__waveform span {
		height: 17px;
		max-width: 3px;
	}

	.ld-audio-console__waveform span:nth-child(2n) {
		display: none;
	}

	.ld-audio-console__timeline {
		grid-template-columns: 22px minmax(34px, 1fr) 22px;
		gap: 2px;
	}

	.ld-audio-console__timeline time {
		font-size: 6px;
	}

	.ld-audio-console__volume {
		padding-left: 4px;
	}

	.ld-audio-console__button--volume {
		width: 23px;
		height: 23px;
	}

	.ld-audio-console input[type="range"].ld-audio-console__range--volume {
		width: 37px;
		min-width: 28px;
	}

	.ld-audio-console__collapse,
	.ld-audio-console__collapse:hover,
	.ld-audio-console__collapse:focus,
	.ld-audio-console__collapse:active {
		top: 4px;
		right: 5px;
		width: 20px;
		height: 20px;
	}

	.ld-audio-console__collapse-arrow {
		top: calc(100% + 3px);
		width: 9px;
		height: 7px;
	}

	.ld-audio-console__collapse-arrow svg {
		width: 9px;
		height: 7px;
	}

	.ld-audio-album-card {
		--ld-album-x: -50%;

		left: 50%;
		grid-template-columns: 86px 1fr;
		width: 194px;
	}

	.ld-audio-album-card__art {
		width: 86px;
	}

	.ld-audio-album-card::before {
		left: 18px;
	}

	.ld-audio-album-card::after {
		right: 18px;
	}
}

@media (max-width: 380px) {
	.ld-audio-console {
		grid-template-columns: 43px auto minmax(60px, 1fr) 64px;
		gap: 3px;
	}

	.ld-audio-console__button,
	.ld-audio-console__button:hover,
	.ld-audio-console__button:focus,
	.ld-audio-console__button:active {
		width: 22px;
		height: 22px;
	}

	.ld-audio-console__button--play,
	.ld-audio-console__button--play:hover,
	.ld-audio-console__button--play:focus,
	.ld-audio-console__button--play:active {
		width: 27px;
		height: 27px;
	}

	.ld-audio-console__timeline time {
		display: none;
	}

	.ld-audio-console__timeline {
		grid-template-columns: 1fr;
	}

	.ld-audio-console input[type="range"].ld-audio-console__range--volume {
		width: 32px;
		min-width: 25px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ld-audio-console-shell,
	.ld-audio-console,
	.ld-audio-console::after,
	.ld-audio-console__waveform::after,
	.ld-audio-console__waveform span,
	.ld-audio-console__suction-hole,
	.ld-audio-console__suction-orbit,
	.ld-audio-blackhole-tab,
	.ld-audio-blackhole-tab__orbit,
	.ld-audio-album-card {
		animation: none !important;
		transition-duration: .01ms !important;
	}
}


/* =========================================================
   26. INTERACTIVE GALLERY ARTWORK HOTSPOTS
   ========================================================= */

/*
 * These transparent buttons sit precisely over interactive framed artwork.
 * JavaScript calculates their dimensions from the same source-image ratios,
 * background sizing and background positioning used by the gallery scene.
 * This keeps the click target aligned while the camera pans and zooms.
 */
.ld-gallery-track-hotspot,
.ld-gallery-track-hotspot:hover,
.ld-gallery-track-hotspot:focus,
.ld-gallery-track-hotspot:active,
.ld-gallery-track-hotspot:visited {
	position: absolute;
	z-index: 80;
	display: block;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 0;
	overflow: visible;
	color: #ffe9a1;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 2px;
	outline: 0;
	box-shadow: none !important;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	clip-path: polygon(4% 1%, 96% 6%, 96% 93%, 4% 100%);
	-webkit-clip-path: polygon(4% 1%, 96% 6%, 96% 93%, 4% 100%);
	transition:
		opacity 420ms ease,
		filter 260ms ease;
	will-change: left, top, width, height;
}

.ld-entrance-demo.is-entering .ld-gallery-preview,
.ld-entrance-demo.is-inside-gallery .ld-gallery-preview {
	pointer-events: auto;
}

.ld-entrance-demo.is-entering .ld-gallery-track-hotspot,
.ld-entrance-demo.is-passing-words .ld-gallery-track-hotspot,
.ld-entrance-demo.is-inside-gallery .ld-gallery-track-hotspot,
.ld-entrance-demo.is-inside-gallery.is-following-guide .ld-gallery-track-hotspot,
.ld-entrance-demo.is-inside-gallery.is-gallery-ready .ld-gallery-track-hotspot {
	opacity: 1;
	visibility: visible;
	pointer-events: auto !important;
}

/* Keep the artwork interactive throughout the live gallery pan and zoom.
 * JavaScript follows the rendered background every frame, while this high
 * layer prevents the guide and decorative foreground from stealing taps. */

.ld-gallery-track-hotspot::before {
	position: absolute;
	inset: -2px;
	content: "";
	border: 1px solid rgba(255, 213, 91, .72);
	border-radius: 4px;
	box-shadow:
		inset 0 0 0 1px rgba(52, 29, 2, .45),
		0 0 10px rgba(255, 186, 28, .18),
		0 0 26px rgba(255, 169, 11, .10);
	opacity: 0;
	transform: scale(.992);
	transition: opacity 220ms ease, transform 260ms ease, box-shadow 280ms ease;
	pointer-events: none;
}

.ld-gallery-track-hotspot:hover::before,
.ld-gallery-track-hotspot:focus-visible::before {
	opacity: .18;
	transform: scale(1);
}

.ld-gallery-track-hotspot.is-active-track::before,
.ld-gallery-track-hotspot.is-smoke-triggered::before {
	opacity: .62;
	transform: scale(1.003);
	animation: ld-gallery-active-frame-pulse 2.35s ease-in-out infinite;
}

.ld-gallery-track-hotspot__label,
.ld-gallery-track-hotspot__play {
	display: none !important;
}

.ld-gallery-track-hotspot::after {
	position: absolute;
	left: 50%;
	top: 42%;
	content: attr(data-track-title);
	padding: 0;
	color: rgba(255, 242, 210, 0);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(14px, 1.4vw, 20px);
	font-style: italic;
	font-weight: 500;
	letter-spacing: .04em;
	text-transform: none;
	white-space: nowrap;
	text-shadow:
		0 0 10px rgba(255, 229, 176, 0),
		0 0 22px rgba(255, 194, 94, 0);
	filter: blur(1px);
	opacity: 0;
	transform: translate(-50%, 0) scale(.94);
	pointer-events: none;
	mix-blend-mode: screen;
}

.ld-gallery-track-hotspot.is-smoke-triggered::after {
	animation: ld-gallery-smoke-word 1.85s ease-out forwards;
}

.ld-gallery-track-hotspot:focus-visible {
	outline: 2px solid rgba(255, 224, 128, .96) !important;
	outline-offset: 4px;
}

@keyframes ld-gallery-smoke-word {
	0% {
		opacity: 0;
		color: rgba(255, 242, 210, 0);
		text-shadow: 0 0 0 rgba(255, 229, 176, 0), 0 0 0 rgba(255, 194, 94, 0);
		filter: blur(3px);
		transform: translate(-50%, 6px) scale(.88);
	}

	18% {
		opacity: .92;
		color: rgba(255, 244, 219, .95);
		text-shadow: 0 0 12px rgba(255, 229, 176, .32), 0 0 24px rgba(255, 194, 94, .18);
		filter: blur(1.5px);
		transform: translate(-50%, -2px) scale(1);
	}

	60% {
		opacity: .72;
		color: rgba(255, 244, 219, .62);
		text-shadow: 0 0 14px rgba(255, 229, 176, .26), 0 0 28px rgba(255, 194, 94, .12);
		filter: blur(2.4px);
		transform: translate(-50%, -24px) scale(1.08);
	}

	100% {
		opacity: 0;
		color: rgba(255, 244, 219, 0);
		text-shadow: 0 0 16px rgba(255, 229, 176, 0), 0 0 34px rgba(255, 194, 94, 0);
		filter: blur(4px);
		transform: translate(-50%, -42px) scale(1.12);
	}
}

@keyframes ld-gallery-active-frame-pulse {
	0%, 100% {
		filter: brightness(.88);
		box-shadow:
			inset 0 0 0 1px rgba(52, 29, 2, .55),
			0 0 9px rgba(255, 186, 28, .22),
			0 0 20px rgba(255, 169, 11, .12);
	}
	50% {
		filter: brightness(1.15);
		box-shadow:
			inset 0 0 0 1px rgba(52, 29, 2, .55),
			0 0 16px rgba(255, 201, 63, .42),
			0 0 34px rgba(255, 169, 11, .23);
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	.ld-gallery-track-hotspot::after {
		font-size: 14px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ld-gallery-track-hotspot,
	.ld-gallery-track-hotspot::before,
	.ld-gallery-track-hotspot::after {
		transition-duration: 1ms !important;
		animation: none !important;
	}
}


/* Final hotspot interaction lock: invisible click target, hand cursor only. */
.ld-gallery-track-hotspot,
.ld-gallery-track-hotspot:hover,
.ld-gallery-track-hotspot:focus,
.ld-gallery-track-hotspot:active {
	cursor: pointer !important;
	touch-action: manipulation;
}

.ld-gallery-track-hotspot__label,
.ld-gallery-track-hotspot__play {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* =========================================================
   27. FINAL SMALL-SCREEN ENTRANCE TEXT SAFETY

   Keeps the title and introductory wording physically separate
   from the pyramid on compact portrait and short landscape screens.
   ========================================================= */

@media (max-width: 1100px) {
	.ld-entrance-demo__header,
	.ld-entrance-demo__title,
	.ld-entrance-demo__intro {
		max-width: 100%;
		min-width: 0;
	}

	.ld-entrance-demo__title,
	.ld-entrance-demo__intro {
		text-wrap: balance;
	}
}

@media (max-width: 767px) {
	.ld-entrance-demo__scene {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto minmax(0, 1fr);
		align-items: stretch;
		width: 100%;
		min-height: 100vh;
		min-height: 100svh;
		padding:
			max(10px, env(safe-area-inset-top))
			10px
			max(8px, env(safe-area-inset-bottom));
		gap: clamp(6px, 1.6svh, 14px);
	}

	.ld-entrance-demo__header {
		position: relative;
		z-index: 40;
		grid-column: 1;
		grid-row: 1;
		align-self: start;
		width: 100%;
		margin: 0;
		padding: 0 4px;
		text-align: center;
	}

	.ld-entrance-demo__symbol {
		width: clamp(38px, 10vw, 52px);
		margin-bottom: clamp(4px, 1svh, 8px);
	}

	.ld-entrance-demo__title {
		width: 100%;
		margin: 0;
		font-size: clamp(30px, 10.8vw, 50px);
		line-height: .9;
		letter-spacing: -.055em;
		white-space: nowrap;
	}

	.ld-entrance-demo__intro {
		width: auto;
		max-width: min(88vw, 320px);
		margin: clamp(6px, 1.3svh, 11px) auto 0;
		font-size: clamp(11px, 3.15vw, 13px);
		line-height: 1.35;
	}

	.ld-pyramid-entrance {
		position: relative;
		left: auto;
		right: auto;
		bottom: auto;
		grid-column: 1;
		grid-row: 2;
		align-self: end;
		justify-self: center;
		width: min(98vw, calc(100vh - 150px), 600px);
		width: min(98vw, calc(100svh - 150px), 600px);
		max-width: 100%;
		margin: 0;
		transform: none;
	}

	.ld-entrance-demo.is-entering .ld-pyramid-entrance {
		transform: scale(4.35);
	}

	.ld-entrance-demo__performer-wrap {
		left: -2%;
		bottom: 0;
		width: min(39vw, 180px);
		max-width: 180px;
		height: min(47vh, 340px);
		height: min(47svh, 340px);
		min-height: 0;
	}
}

@media (max-width: 360px) and (orientation: portrait) {
	.ld-entrance-demo__scene {
		padding:
			max(8px, env(safe-area-inset-top))
			7px
			max(5px, env(safe-area-inset-bottom));
		gap: 4px;
	}

	.ld-entrance-demo__symbol {
		width: 36px;
		margin-bottom: 3px;
	}

	.ld-entrance-demo__title {
		font-size: clamp(28px, 10.2vw, 36px);
	}

	.ld-entrance-demo__intro {
		max-width: 270px;
		margin-top: 5px;
		font-size: 10.5px;
		line-height: 1.3;
	}

	.ld-pyramid-entrance {
		width: min(100vw, calc(100vh - 128px), 480px);
		width: min(100vw, calc(100svh - 128px), 480px);
	}

	.ld-entrance-demo__performer-wrap {
		left: -3%;
		width: 34vw;
		height: 38vh;
		height: 38svh;
		min-height: 0;
	}
}

@media
	(max-width: 1100px)
	and (max-height: 620px)
	and (orientation: landscape) {

	.ld-entrance-demo__scene {
		display: grid;
		grid-template-columns: minmax(155px, .72fr) minmax(0, 1.28fr);
		grid-template-rows: minmax(0, 1fr);
		align-items: center;
		width: 100%;
		min-height: 100vh;
		min-height: 100svh;
		padding:
			max(10px, env(safe-area-inset-top))
			clamp(12px, 3vw, 34px)
			max(10px, env(safe-area-inset-bottom));
		gap: clamp(10px, 2.5vw, 30px);
	}

	.ld-entrance-demo__header {
		position: relative;
		z-index: 40;
		grid-column: 1;
		grid-row: 1;
		align-self: center;
		width: 100%;
		max-width: 360px;
		margin: 0;
		padding: 0;
		text-align: left;
	}

	.ld-entrance-demo__symbol {
		width: clamp(34px, 6.5vh, 48px);
		margin-bottom: clamp(4px, 1.2vh, 7px);
	}

	.ld-entrance-demo__title {
		width: 100%;
		margin: 0;
		font-size: clamp(30px, 7.8vh, 48px);
		line-height: .88;
		white-space: normal;
	}

	.ld-entrance-demo__intro {
		width: 100%;
		max-width: 320px;
		margin: clamp(7px, 2vh, 12px) 0 0;
		font-size: clamp(10px, 2.5vh, 13px);
		line-height: 1.35;
	}

	.ld-pyramid-entrance {
		position: relative;
		left: auto;
		right: auto;
		bottom: auto;
		grid-column: 2;
		grid-row: 1;
		align-self: center;
		justify-self: center;
		width: min(55vw, calc(100vh - 24px), 560px);
		width: min(55vw, calc(100svh - 24px), 560px);
		max-width: 100%;
		margin: 0;
		transform: none;
	}

	.ld-entrance-demo.is-entering .ld-pyramid-entrance {
		transform: scale(3.75);
	}

	.ld-entrance-demo__performer-wrap {
		left: 36%;
		bottom: 0;
		width: min(18vw, 160px);
		height: min(68vh, 340px);
		height: min(68svh, 340px);
		min-height: 0;
	}
}


/* =========================================================
   28. GALLERY SIGN AND RIGHT-SIDE CONTINUE AREA

   The singer remains visual only. The larger sign and the clear
   right-hand side of the gallery both start the same transition.
   The sign slides in once, settles on the floor and stays still.
   ========================================================= */

/* The guide character is deliberately non-interactive. */
.ld-guide,
.ld-guide:hover,
.ld-guide:focus,
.ld-guide:active,
.ld-guide:visited {
	left: 43%;
	cursor: default;
	pointer-events: none !important;
	user-select: none;
}

.ld-guide:focus-visible {
	outline: 0;
}

/*
 * Invisible pointer target over the open right-hand side of the scene.
 * It sits below the visible sign so the sign remains the obvious control.
 */
.ld-gallery-right-trigger,
.ld-gallery-right-trigger:hover,
.ld-gallery-right-trigger:focus,
.ld-gallery-right-trigger:active {
	position: absolute;
	z-index: 4;
	top: 0;
	right: 0;
	bottom: 0;
	display: block;
	width: 38%;
	min-width: 220px;
	margin: 0;
	padding: 0;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0;
	box-shadow: none !important;
	outline: 0;
	opacity: 0;
	visibility: hidden;
	cursor: pointer;
	pointer-events: none;
	-webkit-appearance: none;
	appearance: none;
}

.ld-entrance-demo.is-guide-visible:not(.is-following-guide)
.ld-gallery-right-trigger {
	visibility: visible;
	pointer-events: auto;
}

.ld-entrance-demo.is-following-guide
.ld-gallery-right-trigger {
	visibility: hidden;
	pointer-events: none;
}

.ld-take-my-hand,
.ld-take-my-hand:hover,
.ld-take-my-hand:focus,
.ld-take-my-hand:active,
.ld-take-my-hand:visited {
	position: absolute;
	z-index: 5;
	right: max(-1.8vw, -18px);
	bottom: max(-1vh, calc(env(safe-area-inset-bottom) - 7px));
	display: block;
	width: min(clamp(300px, 34vw, 560px), 58dvh);
	height: auto;
	aspect-ratio: 1000 / 1077;
	margin: 0;
	padding: 0;
	overflow: visible;
	color: transparent;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0;
	box-shadow: none !important;
	outline: 0;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	touch-action: manipulation;
	opacity: 0;
	visibility: hidden;
	transform: translate3d(116%, 0, 0) scale(.97);
	transform-origin: 100% 82%;
	filter:
		drop-shadow(0 22px 30px rgba(0, 0, 0, .48))
		drop-shadow(0 0 0 rgba(255, 207, 72, 0));
	pointer-events: none;
	animation: none !important;
	transition:
		transform 1.15s cubic-bezier(.16, .78, .2, 1),
		opacity .72s ease,
		visibility 0s linear 1.15s,
		filter .26s ease;
	will-change: transform, opacity, filter;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

.ld-take-my-hand__image {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	object-fit: contain;
	object-position: right bottom;
	border: 0;
	outline: 0;
	box-shadow: none;
	pointer-events: none;
	user-select: none;
	-webkit-user-drag: none;
}

/* Slide in from the right, stop with the sleeve naturally crossing the edge. */
.ld-entrance-demo.is-guide-visible:not(.is-following-guide)
.ld-take-my-hand {
	opacity: 1;
	visibility: visible;
	transform: translate3d(0, 0, 0) scale(1);
	filter:
		drop-shadow(0 22px 30px rgba(0, 0, 0, .48))
		drop-shadow(0 0 18px rgba(255, 202, 53, .24));
	pointer-events: auto;
	animation: none !important;
	transition-delay: .75s, .75s, 0s, 0s;
}

/* Hover strengthens the invitation without making the hand float or wobble. */
.ld-entrance-demo.is-guide-visible:not(.is-following-guide)
.ld-take-my-hand:hover {
	transform: translate3d(0, 0, 0) scale(1);
	filter:
		drop-shadow(0 24px 34px rgba(0, 0, 0, .52))
		drop-shadow(0 0 28px rgba(255, 211, 86, .48));
}

.ld-take-my-hand:focus-visible {
	outline: 3px solid rgba(255, 232, 157, .96);
	outline-offset: 6px;
	transform: translate3d(0, 0, 0) scale(1);
	filter:
		drop-shadow(0 24px 34px rgba(0, 0, 0, .52))
		drop-shadow(0 0 30px rgba(255, 211, 86, .56));
}

.ld-take-my-hand:active {
	transform: translate3d(0, 0, 0) scale(.985) !important;
}

.ld-take-my-hand:disabled {
	cursor: default;
}

/* The hand begins retracting immediately. The camera blend starts while this
 * movement is still visible, so the ending feels like one joined motion. */
.ld-entrance-demo.is-following-guide
.ld-take-my-hand {
	opacity: 0;
	visibility: visible;
	transform: translate3d(122%, 0, 0) scale(.985);
	filter:
		brightness(1.03)
		blur(5px)
		drop-shadow(0 20px 28px rgba(0, 0, 0, .4));
	pointer-events: none;
	animation: none !important;
	transition:
		transform 1.25s cubic-bezier(.2, .64, .2, 1),
		filter 1.25s cubic-bezier(.2, .64, .2, 1),
		opacity .5s ease .7s,
		visibility 0s linear 1.25s;
}

/* =========================================================
   29. ENTRANCE-TO-GALLERY PAGE BLEND

   The hand-off now uses two stacked background layers:
   1. an exact frozen copy of the current entrance frame;
   2. the matching turned-gallery frame.

   The layers overlap through a .9-second motion-blurred
   cross-dissolve, followed immediately by another 1.05 seconds
   of gentle zooming and rightward movement. There is no hard
   image replacement between the two camera moves.
   ========================================================= */

.ld-gallery-transition-stage {
	--ld-turn-blend-position: 61% 50%;
	--ld-turn-blend-size: 118% auto;
	--ld-turn-mid-position: 63.5% 50%;
	--ld-turn-mid-size: 121% auto;
	--ld-turn-final-position: 66% 50%;
	--ld-turn-final-size: 126% auto;
	--ld-turn-wait-position: 68% 50%;
	--ld-turn-wait-size: 129% auto;

	position: absolute;
	z-index: 10;
	inset: 0;
	display: block;
	overflow: hidden;
	background: #050301;
	opacity: 0;
	pointer-events: none;
	transition: opacity 120ms linear;
	will-change: opacity;
}

.ld-gallery-transition-stage::before,
.ld-gallery-transition-stage::after {
	position: absolute;
	inset: 0;
	content: "";
	background-color: #050301;
	background-position:
		var(--ld-transition-outgoing-position, var(--ld-gallery-follow-position));
	background-repeat: no-repeat;
	background-size:
		var(--ld-transition-outgoing-size, var(--ld-gallery-follow-size));
	transform-origin: 58% 50%;
	pointer-events: none;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	will-change:
		opacity,
		transform,
		filter,
		background-position,
		background-size;
}

/* Exact outgoing frame captured by JavaScript at hand-off time. */
.ld-gallery-transition-stage::before {
	z-index: 1;
	background-image: var(--ld-gallery-image-active);
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
	filter: blur(0) brightness(1) saturate(1);
}

/* Incoming turned-gallery frame starts hidden beneath the outgoing copy. */
.ld-gallery-transition-stage::after {
	z-index: 2;
	background-image: var(--ld-gallery-turn-image-desktop);
	opacity: 0;
	transform: translate3d(.35%, 0, 0) scale(1.018);
	filter: blur(16px) brightness(.9) saturate(.92);
}

/* The stage can appear almost instantly because its first visible layer is
 * a pixel-matched copy of the live background underneath it. */
.ld-entrance-demo.is-gallery-transitioning
.ld-gallery-transition-stage {
	opacity: 1;
}

.ld-entrance-demo.is-gallery-transitioning
.ld-gallery-transition-stage::before {
	animation:
		ld-gallery-outgoing-frame-dissolve
		.9s
		cubic-bezier(.22, .62, .2, 1)
		forwards;
}

/* One continuous 1.95-second camera move:
 * 0–.9s   = blurred cross-dissolve;
 * .9–1.95s = continued zoom and turn. */
.ld-entrance-demo.is-gallery-transitioning
.ld-gallery-transition-stage::after {
	animation:
		ld-gallery-incoming-frame-flow
		1.95s
		linear
		forwards;
}

.ld-entrance-demo.is-gallery-final-move
.ld-gallery-transition-stage::before {
	opacity: 0;
}

/* Disable entrance artwork controls as soon as travel begins. */
.ld-entrance-demo.is-following-guide
.ld-gallery-track-hotspot {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* On a slow connection the completed turned frame continues a nearly
 * imperceptible drift instead of freezing while the remaining assets load. */
.ld-entrance-demo.is-waiting-for-gallery-assets
.ld-gallery-transition-stage::after {
	opacity: 1;
	filter: blur(0) brightness(1.025) saturate(1.055);
	animation:
		ld-gallery-assets-wait-drift
		8s
		ease-in-out
		infinite
		alternate;
}

.ld-entrance-demo.is-gallery-ready
.ld-gallery-transition-stage::after {
	opacity: 1;
	background-position: var(--ld-turn-final-position);
	background-size: var(--ld-turn-final-size);
	transform: translate3d(-1.2%, 0, 0) scale(1.055);
	filter: blur(0) brightness(1.03) saturate(1.06);
}

@keyframes ld-gallery-outgoing-frame-dissolve {
	0%,
	12% {
		opacity: 1;
		transform: translate3d(0, 0, 0) scale(1);
		filter: blur(0) brightness(1) saturate(1);
	}

	48% {
		opacity: .84;
		transform: translate3d(-.25%, 0, 0) scale(1.012);
		filter: blur(1.5px) brightness(.995) saturate(1.01);
	}

	78% {
		opacity: .28;
		transform: translate3d(-.7%, 0, 0) scale(1.03);
		filter: blur(5px) brightness(.97) saturate(.98);
	}

	100% {
		opacity: 0;
		transform: translate3d(-1%, 0, 0) scale(1.045);
		filter: blur(9px) brightness(.94) saturate(.94);
	}
}

@keyframes ld-gallery-incoming-frame-flow {
	0% {
		opacity: 0;
		background-position:
			var(--ld-transition-outgoing-position, var(--ld-gallery-follow-position));
		background-size:
			var(--ld-transition-outgoing-size, var(--ld-gallery-follow-size));
		transform: translate3d(.35%, 0, 0) scale(1.018);
		filter: blur(16px) brightness(.9) saturate(.92);
	}

	8% {
		opacity: .06;
	}

	24% {
		opacity: .32;
		filter: blur(10px) brightness(.94) saturate(.97);
	}

	39% {
		opacity: .76;
		filter: blur(4px) brightness(.985) saturate(1.025);
	}

	46.154% {
		opacity: 1;
		background-position: var(--ld-turn-blend-position);
		background-size: var(--ld-turn-blend-size);
		transform: translate3d(0, 0, 0) scale(1.025);
		filter: blur(0) brightness(1) saturate(1.04);
	}

	72% {
		opacity: 1;
		background-position: var(--ld-turn-mid-position);
		background-size: var(--ld-turn-mid-size);
		transform: translate3d(-.55%, 0, 0) scale(1.038);
		filter: blur(0) brightness(1.015) saturate(1.05);
	}

	100% {
		opacity: 1;
		background-position: var(--ld-turn-final-position);
		background-size: var(--ld-turn-final-size);
		transform: translate3d(-1.2%, 0, 0) scale(1.055);
		filter: blur(0) brightness(1.025) saturate(1.055);
	}
}

@keyframes ld-gallery-assets-wait-drift {
	from {
		background-position: var(--ld-turn-final-position);
		background-size: var(--ld-turn-final-size);
		transform: translate3d(-1.2%, 0, 0) scale(1.055);
	}

	to {
		background-position: var(--ld-turn-wait-position);
		background-size: var(--ld-turn-wait-size);
		transform: translate3d(-1.7%, -.2%, 0) scale(1.07);
	}
}


/* The Take My Hand artwork is deliberately restrained so it remains an
 * invitation rather than covering the gallery scene. Its size now steps down
 * progressively on tablets, portrait phones, very small phones and short
 * landscape screens while preserving a generous clickable area. */

/* =========================================================
   30. RESPONSIVE HAND AND TRANSITION TUNING
   ========================================================= */

@media (max-width: 1100px) {
	.ld-guide,
	.ld-guide:hover,
	.ld-guide:focus,
	.ld-guide:active,
	.ld-guide:visited {
		left: 41%;
	}

	.ld-gallery-right-trigger,
	.ld-gallery-right-trigger:hover,
	.ld-gallery-right-trigger:focus,
	.ld-gallery-right-trigger:active {
		width: 40%;
		min-width: 190px;
	}

	.ld-take-my-hand,
	.ld-take-my-hand:hover,
	.ld-take-my-hand:focus,
	.ld-take-my-hand:active,
	.ld-take-my-hand:visited {
		right: max(-2.4vw, -20px);
		width: min(clamp(270px, 40vw, 500px), 56dvh);
	}
}

@media (max-width: 767px) {
	.ld-guide,
	.ld-guide:hover,
	.ld-guide:focus,
	.ld-guide:active,
	.ld-guide:visited {
		left: 38%;
	}

	.ld-gallery-right-trigger,
	.ld-gallery-right-trigger:hover,
	.ld-gallery-right-trigger:focus,
	.ld-gallery-right-trigger:active {
		width: 30%;
		min-width: 0;
	}

	.ld-take-my-hand,
	.ld-take-my-hand:hover,
	.ld-take-my-hand:focus,
	.ld-take-my-hand:active,
	.ld-take-my-hand:visited {
		right: max(-5vw, -22px);
		bottom: max(-.65vh, calc(env(safe-area-inset-bottom) - 5px));
		width: min(clamp(190px, 60vw, 360px), 48dvh);
	}

	.ld-entrance-demo.is-following-guide
	.ld-take-my-hand {
		transform: translate3d(124%, 0, 0) scale(.985);
		filter: none;
		transition:
			transform 1.15s cubic-bezier(.2, .64, .2, 1),
			opacity .46s ease .62s,
			visibility 0s linear 1.15s;
	}

	.ld-gallery-transition-stage {
		--ld-turn-blend-position: 60% 50%;
		--ld-turn-blend-size: auto 128%;
		--ld-turn-mid-position: 64% 50%;
		--ld-turn-mid-size: auto 135%;
		--ld-turn-final-position: 68% 50%;
		--ld-turn-final-size: auto 142%;
		--ld-turn-wait-position: 70% 50%;
		--ld-turn-wait-size: auto 145%;
	}

	.ld-gallery-transition-stage::after {
		background-image: var(--ld-gallery-turn-image-mobile);
		transform-origin: 66% 50%;
	}
}

@media (max-width: 420px) {
	.ld-guide,
	.ld-guide:hover,
	.ld-guide:focus,
	.ld-guide:active,
	.ld-guide:visited {
		left: 36%;
	}

	.ld-take-my-hand,
	.ld-take-my-hand:hover,
	.ld-take-my-hand:focus,
	.ld-take-my-hand:active,
	.ld-take-my-hand:visited {
		right: max(-5.5vw, -22px);
		width: min(clamp(170px, 56vw, 245px), 44dvh);
	}
}

@media (max-height: 620px) and (orientation: landscape) {
	.ld-guide,
	.ld-guide:hover,
	.ld-guide:focus,
	.ld-guide:active,
	.ld-guide:visited {
		left: 42%;
	}

	.ld-gallery-right-trigger,
	.ld-gallery-right-trigger:hover,
	.ld-gallery-right-trigger:focus,
	.ld-gallery-right-trigger:active {
		width: 38%;
	}

	.ld-take-my-hand,
	.ld-take-my-hand:hover,
	.ld-take-my-hand:focus,
	.ld-take-my-hand:active,
	.ld-take-my-hand:visited {
		right: max(-2.5vw, -18px);
		width: min(clamp(210px, 34vw, 390px), 65dvh);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ld-take-my-hand,
	.ld-take-my-hand:hover,
	.ld-take-my-hand:focus,
	.ld-take-my-hand:active,
	.ld-gallery-transition-stage,
	.ld-gallery-transition-stage::before,
	.ld-gallery-transition-stage::after {
		animation: none !important;
		transition-duration: .01ms !important;
	}

	.ld-entrance-demo.is-following-guide
	.ld-take-my-hand {
		opacity: 0;
		transform: translate3d(122%, 0, 0) scale(.985);
		filter: none;
	}

	.ld-entrance-demo.is-gallery-transitioning
	.ld-gallery-transition-stage {
		opacity: 1;
	}

	.ld-entrance-demo.is-gallery-transitioning
	.ld-gallery-transition-stage::before,
	.ld-entrance-demo.is-gallery-final-move
	.ld-gallery-transition-stage::before {
		opacity: 0;
	}

	.ld-entrance-demo.is-gallery-transitioning
	.ld-gallery-transition-stage::after,
	.ld-entrance-demo.is-gallery-final-move
	.ld-gallery-transition-stage::after {
		opacity: 1;
		background-position: var(--ld-turn-final-position);
		background-size: var(--ld-turn-final-size);
		transform: none;
		filter: none;
	}
}

/* =========================================================
   31. ADAPTIVE PERFORMANCE AND OLDER-PHONE PROTECTION

   JavaScript adds .is-performance-lite only when the browser reports
   constrained memory/CPU, Save-Data, reduced motion, or a dense small
   viewport. The full design remains on capable devices.

   Test overrides:
   ?ld_performance=lite
   ?ld_performance=full
   ========================================================= */

/*
 * Persistent will-change declarations keep large compositor surfaces alive.
 * Allocate them only while the relevant movement is actually taking place.
 */
.ld-pyramid-entrance,
.ld-pyramid-entrance__door,
.ld-pyramid-entrance__destination,
.ld-gallery-preview,
.ld-guide-layer::before,
.ld-guide-layer::after,
.ld-guide,
.ld-guide::before,
.ld-take-my-hand,
.ld-gallery-transition-stage,
.ld-gallery-transition-stage::before,
.ld-gallery-transition-stage::after,
.ld-audio-console__waveform span {
	will-change: auto !important;
}

.ld-entrance-demo.is-opening .ld-pyramid-entrance__door,
.ld-entrance-demo.is-entering .ld-pyramid-entrance,
.ld-entrance-demo.is-entering .ld-gallery-preview,
.ld-entrance-demo.is-guide-visible .ld-guide,
.ld-entrance-demo.is-guide-visible .ld-take-my-hand,
.ld-entrance-demo.is-following-guide .ld-guide,
.ld-entrance-demo.is-following-guide .ld-take-my-hand,
.ld-entrance-demo.is-audio-playing .ld-audio-console__waveform span {
	will-change: transform, opacity, filter !important;
}

.ld-entrance-demo.is-guide-visible .ld-guide-layer::before {
	will-change: opacity !important;
}

.ld-entrance-demo.is-guide-visible .ld-guide-layer::after {
	will-change: background-position, transform, opacity, filter !important;
}

.ld-entrance-demo.is-following-guide .ld-gallery-preview {
	will-change: background-position, background-size !important;
}

.ld-entrance-demo.is-gallery-transitioning .ld-gallery-transition-stage {
	will-change: opacity !important;
}

.ld-entrance-demo.is-gallery-transitioning .ld-gallery-transition-stage::before,
.ld-entrance-demo.is-gallery-transitioning .ld-gallery-transition-stage::after {
	will-change:
		opacity,
		transform,
		filter,
		background-position,
		background-size !important;
}

.ld-entrance-demo.is-performance-lite.is-gallery-transitioning
.ld-gallery-transition-stage::before,
.ld-entrance-demo.is-performance-lite.is-gallery-transitioning
.ld-gallery-transition-stage::after {
	will-change: opacity, transform !important;
}

/*
 * Mobile browsers have a much smaller compositor budget. The visual result
 * stays the same, but full-screen backdrop blur and animated blur are removed.
 */
@media (max-width: 767px) {
	.ld-guide-layer::before {
		background: rgba(7, 4, 0, .13);
		backdrop-filter: none !important;
		-webkit-backdrop-filter: none !important;
	}

	.ld-audio-console,
	.ld-audio-album-card {
		backdrop-filter: none !important;
		-webkit-backdrop-filter: none !important;
	}

	.ld-entrance-demo.is-entering .ld-pyramid-entrance {
		filter: none !important;
	}

	.ld-entrance-demo.is-entering .ld-entrance-demo__header,
	.ld-entrance-demo.is-entering .ld-entrance-demo__performer-wrap,
	.ld-entrance-demo.is-entering .ld-entrance-demo__quote {
		filter: none !important;
	}

	.ld-gallery-transition-stage::before,
	.ld-gallery-transition-stage::after,
	.ld-entrance-demo.is-gallery-transitioning
	.ld-gallery-transition-stage::before,
	.ld-entrance-demo.is-gallery-transitioning
	.ld-gallery-transition-stage::after,
	.ld-entrance-demo.is-waiting-for-gallery-assets
	.ld-gallery-transition-stage::after {
		filter: none !important;
	}

	.ld-entrance-demo.is-following-guide .ld-guide,
	.ld-entrance-demo.is-following-guide .ld-take-my-hand {
		filter: none !important;
	}
}

/* Constrained-device mode: preserve the story, remove decorative GPU load. */
.ld-entrance-demo.is-performance-lite .ld-entrance-demo__background::before,
.ld-entrance-demo.is-performance-lite .ld-entrance-demo__performer-wrap,
.ld-entrance-demo.is-performance-lite .ld-pyramid-entrance__mist span,
.ld-entrance-demo.is-performance-lite .ld-guide-layer::after,
.ld-entrance-demo.is-performance-lite .ld-guide::before,
.ld-entrance-demo.is-performance-lite .ld-audio-console-shell,
.ld-entrance-demo.is-performance-lite .ld-audio-console::after,
.ld-entrance-demo.is-performance-lite .ld-audio-console__waveform::after,
.ld-entrance-demo.is-performance-lite .ld-audio-console__collapse::before,
.ld-entrance-demo.is-performance-lite .ld-audio-blackhole-tab__orbit {
	animation: none !important;
}

.ld-entrance-demo.is-performance-lite .ld-entrance-demo__light {
	filter: blur(35px);
	opacity: .12;
}

.ld-entrance-demo.is-performance-lite .ld-entrance-demo__grain {
	display: none;
}

.ld-entrance-demo.is-performance-lite .ld-pyramid-entrance,
.ld-entrance-demo.is-performance-lite .ld-pyramid-entrance__outline path,
.ld-entrance-demo.is-performance-lite .ld-pyramid-entrance__shadow,
.ld-entrance-demo.is-performance-lite .ld-guide-layer::after,
.ld-entrance-demo.is-performance-lite .ld-guide,
.ld-entrance-demo.is-performance-lite .ld-guide::before,
.ld-entrance-demo.is-performance-lite .ld-guide::after,
.ld-entrance-demo.is-performance-lite .ld-take-my-hand,
.ld-entrance-demo.is-performance-lite .ld-gallery-transition-stage::before,
.ld-entrance-demo.is-performance-lite .ld-gallery-transition-stage::after {
	filter: none !important;
}

.ld-entrance-demo.is-performance-lite .ld-guide-layer::before {
	background: rgba(7, 4, 0, .17);
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
}

.ld-entrance-demo.is-performance-lite .ld-audio-console,
.ld-entrance-demo.is-performance-lite .ld-audio-album-card {
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
}

/* A simple opacity/scale entry avoids animating a full-screen clip-path. */
.ld-entrance-demo.is-performance-lite.is-entering .ld-gallery-preview {
	clip-path: inset(0);
	-webkit-clip-path: inset(0);
	animation:
		ld-gallery-entry-performance-lite
		3.9s
		cubic-bezier(.18, .7, .2, 1)
		forwards !important;
}

@keyframes ld-gallery-entry-performance-lite {
	0% {
		opacity: 0;
		transform: translate3d(0, 0, 0) scale(.9);
	}

	38% {
		opacity: .5;
		transform: translate3d(0, 0, 0) scale(.955);
	}

	76% {
		opacity: 1;
		transform: translate3d(0, 0, 0) scale(.995);
	}

	100% {
		opacity: 1;
		transform: none;
	}
}

/*
 * Lightweight final hand-off. It keeps the .9s dissolve and 1.05s continued
 * movement, but moves compositor layers instead of blurring and resizing a
 * full-screen background every frame.
 */
.ld-entrance-demo.is-performance-lite.is-gallery-transitioning
.ld-gallery-transition-stage::before {
	animation:
		ld-gallery-outgoing-performance-lite
		.9s
		ease
		forwards !important;
}

.ld-entrance-demo.is-performance-lite.is-gallery-transitioning
.ld-gallery-transition-stage::after {
	background-position: var(--ld-turn-final-position) !important;
	background-size: var(--ld-turn-final-size) !important;
	animation:
		ld-gallery-incoming-performance-lite
		1.95s
		cubic-bezier(.18, .66, .2, 1)
		forwards !important;
}

.ld-entrance-demo.is-performance-lite.is-waiting-for-gallery-assets
.ld-gallery-transition-stage::after {
	opacity: 1;
	background-position: var(--ld-turn-final-position);
	background-size: var(--ld-turn-final-size);
	transform: translate3d(-1%, 0, 0) scale(1.045);
	animation: none !important;
}

@keyframes ld-gallery-outgoing-performance-lite {
	0%,
	14% {
		opacity: 1;
		transform: translate3d(0, 0, 0) scale(1);
	}

	100% {
		opacity: 0;
		transform: translate3d(-.8%, 0, 0) scale(1.035);
	}
}

@keyframes ld-gallery-incoming-performance-lite {
	0% {
		opacity: 0;
		transform: translate3d(.5%, 0, 0) scale(1.015);
	}

	46.154% {
		opacity: 1;
		transform: translate3d(0, 0, 0) scale(1.028);
	}

	100% {
		opacity: 1;
		transform: translate3d(-1%, 0, 0) scale(1.055);
	}
}

/* Keep the audio controls stable rather than continuously floating. */
.ld-entrance-demo.is-performance-lite.is-audio-console-visible.is-gallery-entry-complete
.ld-audio-console-shell {
	animation:
		ld-audio-console-arrive
		.82s
		cubic-bezier(.16, .78, .22, 1)
		both !important;
}

/* Static waveform on constrained devices; JavaScript also stops updating it. */
.ld-entrance-demo.is-performance-lite .ld-audio-console__waveform span {
	transition: none;
	box-shadow:
		0 0 3px rgba(255, 193, 38, .2),
		inset 0 1px 0 rgba(255, 255, 255, .45);
}

/*
 * Compatibility fallback for browsers that predate the individual
 * translate/rotate/scale properties used by the ticket.
 */
@supports not (translate: 1px 1px) {
	.ld-admit-ticket {
		animation:
			ld-ticket-transform-fallback
			7.2s
			linear
			.25s
			1
			both !important;
	}

	@keyframes ld-ticket-transform-fallback {
		0% {
			opacity: 1;
			transform:
				translate3d(-50%, calc(-50% - 112vh), 0)
				rotate(-8deg);
		}

		50% {
			transform:
				translate3d(calc(-50% - 9px), calc(-50% - 32vh), 0)
				rotate(-5.5deg);
		}

		80% {
			transform:
				translate3d(calc(-50% + 5px), calc(-50% - 7vh), 0)
				rotate(-5deg);
		}

		100% {
			opacity: 1;
			transform:
				translate3d(-50%, -50%, 0)
				rotate(-5deg);
		}
	}
}

/* Stop decorative work when the tab is not visible. */
@media (prefers-reduced-data: reduce) {
	.ld-entrance-demo .ld-entrance-demo__background::before,
	.ld-entrance-demo .ld-entrance-demo__performer-wrap,
	.ld-entrance-demo .ld-pyramid-entrance__mist span,
	.ld-entrance-demo .ld-guide-layer::after {
		animation: none !important;
	}
}

/* =========================================================
   32. OPTIONAL RESPONSIVE ASSET PACK

   If the optimised files supplied with this package are uploaded to the
   July 2026 media folder, PHP detects them automatically. These rules use
   the smaller tablet and phone backgrounds without changing the design.
   ========================================================= */

@media (max-width: 1600px) {
	.ld-entrance-demo {
		--ld-gallery-image-active: var(
			--ld-gallery-image-tablet,
			var(--ld-gallery-image-desktop)
		);
	}

	.ld-gallery-transition-stage::after {
		background-image: var(
			--ld-gallery-turn-image-tablet,
			var(--ld-gallery-turn-image-desktop)
		);
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	.ld-entrance-demo {
		--ld-gallery-image-active: var(
			--ld-gallery-image-mobile,
			var(--ld-gallery-image-tablet)
		);
	}

	.ld-gallery-transition-stage::after {
		background-image: var(
			--ld-gallery-turn-image-mobile,
			var(--ld-gallery-turn-image-tablet)
		);
	}
}


/* =========================================================
   LORD DANCER – GALLERY ONE V142
   Standalone horizontal gallery stylesheet
   Shortcode: [lord_dancer_gallery_one]

   This is a NEW isolated component. It does not replace or edit
   the Lord Dancer entrance CSS.
   ========================================================= */


/* =========================================================
   1. PAGE LOCK AND COMPONENT RESET
   ========================================================= */

body.ldg1-page-lock {
	overflow: hidden !important;
	overscroll-behavior: none;
}

.ldg1,
.ldg1 *,
.ldg1 *::before,
.ldg1 *::after {
	box-sizing: border-box;
}

.ldg1 {
	--ldg1-join-shift: 0px;
	--ldg1-album-shift: 0px;
	--ldg1-seam-blend: clamp(34px, 3.6vw, 68px);
	--ldg1-seam-half: clamp(17px, 1.8vw, 34px);
	--ldg1-black: #050403;
	--ldg1-panel: rgba(9, 7, 4, .88);
	--ldg1-gold: #e2aa2f;
	--ldg1-gold-bright: #ffe59a;
	--ldg1-cream: #fff4ce;

	/* Gallery-1.jpg is 2400 × 1029: width is 233.236% of height. */
	--ldg1-room-width: max(100vw, 233.236vh);
	--ldg1-room-width: max(100vw, 233.236svh);

	/* Live Studio-Entrance-Background.jpg is 2401 × 1030; the 2048 × 878 reference remains the design-coordinate canvas. */
	--ldg1-studio-room-width: max(100vw, 228.765792vh);
	--ldg1-studio-room-width: max(100vw, 228.765792svh);

	position: fixed;
	z-index: 999990;
	inset: 0;
	isolation: isolate;
	width: 100vw;
	height: 100vh;
	height: 100svh;
	overflow: hidden;
	color: var(--ldg1-cream);
	background: #030201;
	font-family: Arial, Helvetica, sans-serif;
}

.ldg1 button,
.ldg1 a,
.ldg1 img {
	-webkit-tap-highlight-color: transparent;
}

.ldg1 button {
	font: inherit;
}

.ldg1__ambient {
	position: absolute;
	z-index: -1;
	inset: 0;
	background:
		radial-gradient(circle at 50% -10%, rgba(255, 192, 54, .14), transparent 36%),
		linear-gradient(180deg, #100b04, #020201 74%);
	pointer-events: none;
}


/* =========================================================
   2. HORIZONTAL VIEWPORT
   ========================================================= */

.ldg1__viewport {
	position: absolute;
	z-index: 1;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-x: contain;
	overscroll-behavior-y: none;
	scroll-behavior: auto;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	outline: 0;
	cursor: grab;
}

.ldg1__viewport::-webkit-scrollbar {
	display: none;
}

.ldg1__viewport.is-dragging {
	cursor: grabbing;
	scroll-behavior: auto;
	user-select: none;
}

.ldg1__viewport:focus-visible {
	outline: 1px solid rgba(255, 223, 128, .54);
	outline-offset: -3px;
}

.ldg1__track {
	position: relative;
	height: 100%;
}


/* =========================================================
   3. CONTINUOUS FOUR-ROOM TRACK
   Rooms 1–3 retain Gallery-1.jpg; Room 4 uses Studio-Entrance-Background.jpg.
   ========================================================= */

.ldg1__track--desktop {
	display: flex;
	align-items: stretch;
	width: max-content;
	padding-right: var(--ldg1-seam-blend);
}

.ldg1__room {
	position: relative;
	flex: 0 0 var(--ldg1-room-width);
	width: var(--ldg1-room-width);
	height: 100%;
	overflow: hidden;
	background-color: #080502;
	background-image: var(--ldg1-background-image);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: calc(100% + 2px) 100%;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	transform: translateZ(0);
}

/*
 * ROOM 4 STUDIO COORDINATE LOCK
 * Live source file: 2354 × 1029 px.
 * Placement reference canvas: 2354 × 1029 px.
 * X/Y placement is stored as percentages of the agreed 2354 × 1029 reference,
 * so those green-dot coordinates map proportionally onto the live source
 * without stretching the studio background.
 */
.ldg1__room--four {
	flex: 0 0 var(--ldg1-studio-room-width);
	width: var(--ldg1-studio-room-width);
	background-image: var(--ldg1-studio-background-image, var(--ldg1-background-image));
	background-position: 50% 50%;
	background-repeat: no-repeat;
	background-size: 100% 100%;
}

.ldg1__room::before {
	position: absolute;
	z-index: 0;
	inset: 0;
	content: "";
	background:
		linear-gradient(90deg, rgba(0, 0, 0, .12), transparent 5%, transparent 95%, rgba(0, 0, 0, .12)),
		linear-gradient(180deg, rgba(0, 0, 0, .03), transparent 64%, rgba(0, 0, 0, .12));
	pointer-events: none;
}

.ldg1__room + .ldg1__room {
	/*
	 * Every subsequent room overlaps and feathers into the room before it.
	 * The same treatment feathers every room join, including the transition
	 * from Gallery-1.jpg in Room 3 into Studio-Entrance-Background.jpg in Room 4.
	 */
	margin-left: calc(-1 * var(--ldg1-seam-blend));
	-webkit-mask-image: linear-gradient(
		90deg,
		transparent 0,
		rgba(0, 0, 0, .18) 18px,
		rgba(0, 0, 0, .72) calc(var(--ldg1-seam-blend) * .68),
		#000 var(--ldg1-seam-blend),
		#000 100%
	);
	mask-image: linear-gradient(
		90deg,
		transparent 0,
		rgba(0, 0, 0, .18) 18px,
		rgba(0, 0, 0, .72) calc(var(--ldg1-seam-blend) * .68),
		#000 var(--ldg1-seam-blend),
		#000 100%
	);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}




/* =========================================================
   3A. SEATED LORD DANCER CHARACTER
   Anchored to the first room itself rather than the viewport.
   Because the room and background scale together, the character
   remains seated on the same bench position on every screen size.
   ========================================================= */

.ldg1__seated-character {
	position: absolute;
	z-index: 2;
	left: 33.35%;
	bottom: 15.5%;
	display: block;
	height: 42.5%;
	width: auto;
	pointer-events: none;
	user-select: none;
	transform: translateX(-50%);
	transform-origin: 50% 100%;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	will-change: transform;
}

.ldg1__seated-character-img {
	display: block;
	width: auto;
	height: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	object-fit: contain;
	object-position: 50% 100%;
	opacity: 1;
	filter:
		drop-shadow(0 12px 11px rgba(0, 0, 0, .44))
		drop-shadow(0 0 9px rgba(255, 175, 28, .10));
	transform: translateZ(0);
	pointer-events: none;
	-webkit-user-drag: none;
}

/*
 * The room always retains the gallery-background coordinate system on
 * phones and tablets, so no separate viewport-based positioning is used.
 * The tiny adjustments below only compensate for browser safe-height
 * differences without detaching the character from the bench.
 */
@media (max-width: 991px) {
	.ldg1__seated-character {
		left: 33.35%;
		bottom: 15.5%;
		height: 42.5%;
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	.ldg1__seated-character {
		left: 33.35%;
		bottom: 15.5%;
		height: 42.5%;
	}
}



/* Keep every framed artwork and its controls visibly in front of the seated character. */
.ldg1__room .ldg1__exhibit,
.ldg1__room .ldg1__exhibit:hover,
.ldg1__room .ldg1__exhibit:focus,
.ldg1__room .ldg1__exhibit:active {
	z-index: 20 !important;
}

.ldg1__room .ldg1__artwork-shell,
.ldg1__room .ldg1__caption {
	position: relative;
	z-index: 21;
}

.ldg1__room .ldg1__play-trigger {
	position: absolute;
	z-index: 22;
}


/* =========================================================
   4. DESKTOP EXHIBIT POSITIONING
   Coordinates match the three recessed square areas in Gallery-1.jpg.
   ========================================================= */

.ldg1__exhibit,
.ldg1__exhibit:hover,
.ldg1__exhibit:focus,
.ldg1__exhibit:active {
	position: absolute;
	z-index: 20;
	display: block;
	margin: 0;
	padding: 0;
	overflow: visible;
	color: inherit;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0;
	box-shadow: none !important;
	outline: 0;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.ldg1__exhibit--slot-1 {
	left: 13.35%;
	top: 28.45%;
	width: 13.85%;
	height: 32.15%;
}

.ldg1__exhibit--slot-2 {
	left: 42.45%;
	top: 28.45%;
	width: 15.05%;
	height: 32.15%;
}

.ldg1__exhibit--slot-3 {
	left: 72.75%;
	top: 28.45%;
	width: 14.10%;
	height: 32.15%;
}


/* =========================================================
   5. ARTWORK, GLASS AND ACTIVE STATES
   ========================================================= */

.ldg1__artwork-shell {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background: #080604;
	box-shadow:
		inset 0 0 0 1px rgba(255, 218, 108, .16),
		0 7px 22px rgba(0, 0, 0, .42);
	transform: none;
	transition:
		filter 420ms ease,
		box-shadow 420ms ease;
}

.ldg1__artwork {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: none;
	transition: filter 500ms ease;
}


.ldg1__inside-artwork {
	position: absolute;
	z-index: 1;
	left: 15.3%;
	top: 15.2%;
	width: 69.5%;
	height: 69.7%;
	object-fit: cover;
	object-position: center;
	background: #050505;
	box-shadow:
		inset 0 0 14px rgba(0, 0, 0, .7),
		0 0 9px rgba(255, 62, 202, .22),
		0 0 12px rgba(51, 170, 255, .24);
	transform: scale(1.018);
	filter: brightness(.94) saturate(1.04);
}

.ldg1__artwork-glass {
	position: absolute;
	z-index: 3;
	inset: 0;
	background:
		linear-gradient(115deg, rgba(255, 255, 255, .16), transparent 16%, transparent 63%, rgba(255, 226, 152, .06)),
		linear-gradient(180deg, transparent 72%, rgba(0, 0, 0, .18));
	mix-blend-mode: screen;
	opacity: .34;
	pointer-events: none;
}


/* ---------------------------------------------------------
   Transparent gallery-frame objects with environmental backlighting
   --------------------------------------------------------- */
.ldg1__artwork-shell.has-gallery-frame {
	isolation: isolate;
	overflow: visible;
	background: transparent;
	box-shadow: none;
	transform: none;
}

.ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__artwork-shell.has-gallery-frame::after {
	position: absolute;
	content: "";
	pointer-events: none;
}

.ldg1__artwork-shell.has-gallery-frame::before {
	z-index: 0;
	inset: -9%;
	border-radius: 9%;
	background: radial-gradient(
		ellipse at center,
		transparent 43%,
		var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .2)) 55%,
		var(--ldg1-frame-glow, rgba(255, 188, 45, .42)) 68%,
		transparent 82%
	);
	filter: blur(10px);
	opacity: .86;
	mix-blend-mode: screen;
	animation: ldg1-frame-backlight-breathe 4.8s ease-in-out infinite;
}

.ldg1__artwork-shell.has-gallery-frame::after {
	z-index: 1;
	inset: -1.5%;
	border: 1px solid var(--ldg1-frame-edge, rgba(255, 218, 119, .45));
	border-radius: 4%;
	box-shadow:
		0 0 6px var(--ldg1-frame-glow, rgba(255, 188, 45, .36)),
		0 0 16px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .18)),
		inset 0 0 8px rgba(255, 237, 184, .07);
	opacity: .78;
	animation: ldg1-frame-edge-breathe 4.8s ease-in-out infinite;
}

.ldg1__artwork-shell.has-gallery-frame .ldg1__artwork {
	position: relative;
	z-index: 2;
	width: 100%;
	height: 100%;
	object-fit: contain;
	transform: scale(1.025);
	filter:
		drop-shadow(0 2px 2px rgba(0, 0, 0, .72))
		drop-shadow(0 8px 15px rgba(0, 0, 0, .48))
		drop-shadow(0 0 5px var(--ldg1-frame-glow, rgba(255, 188, 45, .34)));
}

.ldg1__artwork-shell.has-gallery-frame .ldg1__artwork-glass {
	z-index: 4;
	inset: 8%;
	border-radius: 2%;
	background:
		linear-gradient(118deg, rgba(255, 255, 255, .13), transparent 17%, transparent 66%, rgba(255, 222, 143, .05)),
		linear-gradient(180deg, transparent 73%, rgba(0, 0, 0, .14));
	opacity: .24;
}

.ldg1__artwork-shell--neon-dance {
	--ldg1-frame-edge: rgba(255, 211, 250, .56);
	--ldg1-frame-glow: rgba(196, 71, 255, .54);
	--ldg1-frame-glow-soft: rgba(54, 178, 255, .26);
}

.ldg1__artwork-shell--neon-dance::before {
	background:
		radial-gradient(ellipse at 23% 52%, transparent 38%, rgba(255, 37, 195, .36) 58%, transparent 78%),
		radial-gradient(ellipse at 78% 50%, transparent 38%, rgba(57, 164, 255, .42) 58%, transparent 78%),
		radial-gradient(ellipse at center, transparent 44%, rgba(177, 68, 255, .22) 62%, transparent 82%);
}

.ldg1__artwork-shell--neon-dance .ldg1__artwork {
	filter:
		drop-shadow(-3px 0 5px rgba(255, 49, 196, .42))
		drop-shadow(3px 0 5px rgba(66, 174, 255, .48))
		drop-shadow(0 9px 16px rgba(0, 0, 0, .55));
}

.ldg1__artwork-shell--graphiti {
	--ldg1-frame-edge: rgba(255, 222, 130, .52);
	--ldg1-frame-glow: rgba(228, 164, 45, .48);
	--ldg1-frame-glow-soft: rgba(255, 201, 91, .2);
}

.ldg1__artwork-shell--graphiti .ldg1__artwork {
	transform: scale(1.012);
	filter:
		drop-shadow(0 0 4px rgba(255, 205, 99, .3))
		drop-shadow(0 9px 17px rgba(0, 0, 0, .58));
}

.ldg1__artwork-shell--industrial-mesh {
	--ldg1-frame-edge: rgba(255, 214, 123, .56);
	--ldg1-frame-glow: rgba(255, 182, 44, .46);
	--ldg1-frame-glow-soft: rgba(255, 207, 117, .22);
}

.ldg1__artwork-shell--industrial-mesh .ldg1__artwork {
	transform: scale(1.006);
	filter:
		drop-shadow(0 0 4px rgba(255, 214, 134, .28))
		drop-shadow(0 8px 16px rgba(0, 0, 0, .58));
}

.ldg1__artwork-shell--angles {
	--ldg1-frame-edge: rgba(255, 218, 92, .6);
	--ldg1-frame-glow: rgba(255, 179, 20, .5);
	--ldg1-frame-glow-soft: rgba(255, 211, 85, .24);
}

.ldg1__artwork-shell--angles .ldg1__artwork {
	transform: none;
	filter:
		drop-shadow(0 0 4px rgba(255, 219, 100, .3))
		drop-shadow(0 9px 17px rgba(0, 0, 0, .6));
}

.ldg1__artwork-shell--crystal {
	--ldg1-frame-edge: rgba(179, 214, 255, .64);
	--ldg1-frame-glow: rgba(131, 170, 255, .54);
	--ldg1-frame-glow-soft: rgba(207, 151, 255, .22);
}

.ldg1__artwork-shell--crystal .ldg1__artwork {
	transform: none;
	filter:
		drop-shadow(0 0 5px rgba(176, 214, 255, .30))
		drop-shadow(0 9px 18px rgba(0, 0, 0, .60));
}

.ldg1__artwork-shell--pink-drip {
	--ldg1-frame-edge: rgba(255, 166, 228, .62);
	--ldg1-frame-glow: rgba(255, 86, 198, .54);
	--ldg1-frame-glow-soft: rgba(255, 147, 225, .24);
}

.ldg1__artwork-shell--pink-drip .ldg1__artwork {
	transform: none;
	filter:
		drop-shadow(0 0 5px rgba(255, 166, 228, .34))
		drop-shadow(0 9px 18px rgba(0, 0, 0, .60));
}

.ldg1__artwork-shell--heavy-gold {
	--ldg1-frame-edge: rgba(255, 235, 164, .68);
	--ldg1-frame-glow: rgba(255, 184, 34, .58);
	--ldg1-frame-glow-soft: rgba(255, 214, 92, .28);
}

.ldg1__artwork-shell--heavy-gold .ldg1__artwork {
	transform: none;
	filter:
		drop-shadow(0 0 5px rgba(255, 225, 143, .48))
		drop-shadow(0 0 11px rgba(255, 172, 24, .24))
		drop-shadow(0 10px 18px rgba(0, 0, 0, .58));
}

@keyframes ldg1-frame-backlight-breathe {
	0%, 100% {
		opacity: .74;
		transform: scale(.99);
	}

	50% {
		opacity: 1;
		transform: scale(1.022);
	}
}

@keyframes ldg1-frame-edge-breathe {
	0%, 100% {
		opacity: .72;
		box-shadow:
			0 0 6px var(--ldg1-frame-glow, rgba(255, 188, 45, .36)),
			0 0 16px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .18)),
			inset 0 0 8px rgba(255, 237, 184, .07);
	}

	50% {
		opacity: .95;
		box-shadow:
			0 0 10px var(--ldg1-frame-glow, rgba(255, 188, 45, .46)),
			0 0 24px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .24)),
			inset 0 0 11px rgba(255, 237, 184, .12);
	}
}

.ldg1__placeholder {
	position: absolute;
	inset: 0;
	display: grid;
	place-content: center;
	justify-items: center;
	gap: clamp(5px, 1vh, 12px);
	background:
		radial-gradient(circle at 50% 35%, rgba(255, 195, 48, .10), transparent 38%),
		linear-gradient(145deg, rgba(20, 14, 6, .92), rgba(3, 3, 3, .98));
	color: rgba(255, 226, 145, .48);
	text-transform: uppercase;
}

.ldg1__placeholder strong {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(26px, 3.1vw, 70px);
	font-weight: 400;
	letter-spacing: .06em;
	line-height: 1;
}

.ldg1__placeholder small {
	font-size: clamp(8px, .72vw, 13px);
	font-weight: 700;
	letter-spacing: .18em;
}

.ldg1__caption {
	position: absolute;
	z-index: 6;
	left: 50%;
	bottom: -54px;
	display: grid;
	justify-items: center;
	min-width: 130px;
	padding: 7px 13px 8px;
	gap: 2px;
	color: var(--ldg1-cream);
	background: linear-gradient(180deg, rgba(19, 14, 7, .93), rgba(4, 3, 2, .96));
	border: 1px solid rgba(226, 170, 47, .54);
	border-radius: 999px;
	box-shadow: 0 8px 22px rgba(0, 0, 0, .42), 0 0 18px rgba(226, 170, 47, .11);
	opacity: 0;
	transform: translate(-50%, 8px) scale(.92);
	transition: opacity 260ms ease, transform 360ms cubic-bezier(.16, .78, .22, 1);
	pointer-events: none;
	white-space: nowrap;
}

.ldg1__caption strong {
	font-size: 10px;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.ldg1__caption small {
	color: rgba(255, 232, 175, .6);
	font-size: 8px;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.ldg1__exhibit:hover .ldg1__artwork-shell,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell,
.ldg1__exhibit.is-current .ldg1__artwork-shell,
.ldg1__mobile-exhibit:hover .ldg1__artwork-shell,
.ldg1__mobile-exhibit:focus-visible .ldg1__artwork-shell,
.ldg1__mobile-exhibit.is-current .ldg1__artwork-shell {
	filter: brightness(1.08) saturate(1.05);
	box-shadow:
		inset 0 0 0 1px rgba(255, 234, 166, .56),
		0 0 12px rgba(255, 205, 74, .34),
		0 0 34px rgba(255, 174, 25, .24),
		0 10px 28px rgba(0, 0, 0, .48);
	transform: none;
}

.ldg1__exhibit:hover .ldg1__artwork,
.ldg1__exhibit:focus-visible .ldg1__artwork,
.ldg1__mobile-exhibit:hover .ldg1__artwork,
.ldg1__mobile-exhibit:focus-visible .ldg1__artwork {
	transform: none;
}


.ldg1__exhibit:hover .ldg1__artwork-shell.has-gallery-frame,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame,
.ldg1__exhibit.is-current .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit:hover .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit.is-current .ldg1__artwork-shell.has-gallery-frame {
	filter: brightness(1.04) saturate(1.06);
	box-shadow: none;
	transform: none;
}

.ldg1__exhibit:hover .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit.is-current .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit:hover .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit.is-current .ldg1__artwork-shell.has-gallery-frame::before {
	opacity: 1;
	filter: blur(12px) brightness(1.12);
}

.ldg1__exhibit:hover .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__mobile-exhibit:hover .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__mobile-exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork {
	transform: none;
}

.ldg1__exhibit:hover .ldg1__artwork-shell--heavy-gold .ldg1__artwork,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell--heavy-gold .ldg1__artwork,
.ldg1__mobile-exhibit:hover .ldg1__artwork-shell--heavy-gold .ldg1__artwork,
.ldg1__mobile-exhibit:focus-visible .ldg1__artwork-shell--heavy-gold .ldg1__artwork {
	transform: none;
}


.ldg1__exhibit:hover .ldg1__artwork-shell.has-gallery-frame,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame,
.ldg1__exhibit.is-current .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit:hover .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit.is-current .ldg1__artwork-shell.has-gallery-frame {
	filter: brightness(1.01) saturate(1.03);
	box-shadow: none;
	transform: none;
}

.ldg1__exhibit:hover .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit.is-current .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit:hover .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit.is-current .ldg1__artwork-shell.has-gallery-frame::before {
	opacity: .86;
	filter: blur(10px) brightness(1.04);
}

.ldg1__exhibit:hover .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit.is-current .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__mobile-exhibit:hover .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__mobile-exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__mobile-exhibit.is-current .ldg1__artwork-shell.has-gallery-frame::after {
	opacity: .78;
}

.ldg1__exhibit:hover .ldg1__caption,
.ldg1__exhibit:focus-visible .ldg1__caption {
	opacity: 1;
	transform: translate(-50%, 0) scale(1);
}

.ldg1__exhibit:focus-visible,
.ldg1__mobile-exhibit:focus-visible {
	outline: 2px solid rgba(255, 229, 147, .94) !important;
	outline-offset: 7px;
}


/* =========================================================
   6. PORTRAIT PHONE SIX-SLIDE VIEW
   ========================================================= */

.ldg1__track--mobile {
	display: none;
}

.ldg1__mobile-slide {
	--ldg1-crop-x: 50%;

	position: relative;
	flex: 0 0 84vw;
	width: 84vw;
	height: 100%;
	overflow: hidden;
	background-color: #080502;
	background-image: var(--ldg1-background-image);
	background-position: var(--ldg1-crop-x) center;
	background-repeat: no-repeat;
	background-size: auto 100%;
	border-radius: 0;
	scroll-snap-align: center;
	scroll-snap-stop: always;
}

.ldg1__mobile-slide--crop-1 {
	--ldg1-crop-x: 19.95%;
}

.ldg1__mobile-slide--crop-2 {
	--ldg1-crop-x: 50%;
}

.ldg1__mobile-slide--crop-3 {
	--ldg1-crop-x: 80.15%;
}

.ldg1__mobile-slide::before,
.ldg1__mobile-slide::after {
	position: absolute;
	z-index: 1;
	inset: 0;
	content: "";
	pointer-events: none;
}

.ldg1__mobile-slide::before {
	background: linear-gradient(90deg, rgba(0, 0, 0, .24), transparent 12%, transparent 88%, rgba(0, 0, 0, .24));
}

.ldg1__mobile-slide::after {
	background: linear-gradient(180deg, rgba(0, 0, 0, .04), transparent 62%, rgba(0, 0, 0, .18));
}

.ldg1__mobile-exhibit,
.ldg1__mobile-exhibit:hover,
.ldg1__mobile-exhibit:focus,
.ldg1__mobile-exhibit:active {
	position: absolute;
	z-index: 3;
	left: 50%;
	top: 44.45%;
	display: block;
	width: min(80%, 33svh);
	aspect-ratio: 1;
	margin: 0;
	padding: 0;
	color: inherit;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	outline: 0;
	transform: translate(-50%, -50%);
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.ldg1__mobile-exhibit .ldg1__caption {
	bottom: -62px;
}


/* =========================================================
   7. IMMERSIVE GALLERY PATH CONTROLS
   ========================================================= */

/*
 * The navigation is deliberately not presented as a conventional web
 * toolbar. The arrows behave like illuminated direction markers within the
 * gallery, while the progress track reads as a fine recessed floor light.
 */
.ldg1__hud {
	position: absolute;
	z-index: 30;
	left: 0;
	right: 0;
	bottom: max(18px, env(safe-area-inset-bottom));
	display: block;
	width: 100%;
	height: 62px;
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	transform: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	pointer-events: none;
}

.ldg1__hud::before {
	position: absolute;
	left: 50%;
	bottom: 10px;
	width: min(300px, 38vw);
	height: 22px;
	content: "";
	background:
		radial-gradient(
			ellipse at center,
			rgba(255, 205, 74, .12) 0%,
			rgba(255, 205, 74, .045) 43%,
			transparent 74%
		);
	filter: blur(7px);
	transform: translateX(-50%) perspective(180px) rotateX(66deg);
	pointer-events: none;
}

.ldg1__nav,
.ldg1__nav:hover,
.ldg1__nav:focus,
.ldg1__nav:active {
	position: absolute;
	bottom: 0;
	display: grid;
	place-items: center;
	width: 54px;
	height: 54px;
	margin: 0;
	padding: 0;
	color: rgba(255, 226, 143, .88);
	background: transparent !important;
	border: 0 !important;
	border-radius: 0;
	box-shadow: none !important;
	outline: 0;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	pointer-events: auto;
	transition:
		color 240ms ease,
		filter 240ms ease,
		transform 240ms ease,
		opacity 220ms ease;
}

.ldg1__nav--previous {
	left: clamp(12px, 3vw, 42px);
}

.ldg1__nav--next {
	right: clamp(12px, 3vw, 42px);
}

.ldg1__nav::before {
	position: absolute;
	inset: 8px;
	content: "";
	border: 1px solid rgba(228, 177, 54, .25);
	box-shadow:
		inset 0 0 14px rgba(255, 198, 49, .04),
		0 0 11px rgba(255, 189, 34, .05);
	transform: rotate(45deg) scale(.72);
	transition:
		border-color 240ms ease,
		box-shadow 240ms ease,
		transform 240ms ease,
		opacity 240ms ease;
	opacity: .72;
	pointer-events: none;
}

.ldg1__nav svg {
	position: relative;
	z-index: 2;
	width: 26px;
	height: 26px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
	filter:
		drop-shadow(0 0 4px rgba(255, 210, 91, .26))
		drop-shadow(0 0 12px rgba(255, 184, 24, .12));
	transition: transform 240ms ease;
}

.ldg1__nav:hover,
.ldg1__nav:focus-visible {
	color: #fff0b1;
	filter: brightness(1.18);
}

.ldg1__nav:hover::before,
.ldg1__nav:focus-visible::before {
	border-color: rgba(255, 218, 111, .68);
	box-shadow:
		inset 0 0 18px rgba(255, 204, 62, .11),
		0 0 18px rgba(255, 187, 27, .18);
	transform: rotate(45deg) scale(.82);
	opacity: 1;
}

.ldg1__nav--previous:hover svg,
.ldg1__nav--previous:focus-visible svg {
	transform: translateX(-3px);
}

.ldg1__nav--next:hover svg,
.ldg1__nav--next:focus-visible svg {
	transform: translateX(3px);
}

.ldg1__nav:active {
	transform: scale(.92);
}

.ldg1__nav:disabled {
	cursor: default;
	opacity: .18;
	filter: none;
	transform: none;
}

.ldg1__nav:disabled::before {
	opacity: .24;
}

.ldg1__progress {
	position: absolute;
	left: 50%;
	bottom: 10px;
	width: min(260px, 34vw);
	height: 2px;
	overflow: visible;
	background:
		linear-gradient(
			90deg,
			transparent,
			rgba(255, 222, 135, .12) 10%,
			rgba(255, 222, 135, .18) 50%,
			rgba(255, 222, 135, .12) 90%,
			transparent
		);
	border-radius: 999px;
	box-shadow:
		0 0 5px rgba(255, 194, 42, .12),
		0 0 14px rgba(255, 176, 14, .05);
	transform: translateX(-50%);
	pointer-events: none;
}

.ldg1__progress::before {
	position: absolute;
	inset: -5px 0;
	content: "";
	background:
		radial-gradient(
			circle,
			rgba(255, 224, 144, .55) 0 1.2px,
			transparent 1.8px
		)
		0 50% / 20% 100% repeat-x;
	opacity: .46;
	pointer-events: none;
}

.ldg1__progress-fill {
	position: relative;
	display: block;
	width: 16.6667%;
	height: 100%;
	background:
		linear-gradient(90deg, rgba(173, 110, 14, .9), #ffe69a 72%, #d49a20);
	border-radius: inherit;
	box-shadow:
		0 0 5px rgba(255, 216, 108, .7),
		0 0 15px rgba(255, 185, 24, .28);
	transition: width 520ms cubic-bezier(.16, .78, .22, 1);
}

.ldg1__progress-fill::after {
	position: absolute;
	right: -3px;
	top: 50%;
	width: 6px;
	height: 6px;
	content: "";
	background: #ffe69a;
	border-radius: 50%;
	box-shadow:
		0 0 7px rgba(255, 229, 154, .9),
		0 0 18px rgba(255, 183, 21, .46);
	transform: translateY(-50%);
}

.ldg1__counter {
	position: absolute;
	left: 50%;
	bottom: 22px;
	display: inline-flex;
	align-items: baseline;
	margin: 0;
	gap: 4px;
	color: rgba(255, 228, 157, .5);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 10px;
	letter-spacing: .08em;
	white-space: nowrap;
	text-shadow:
		0 0 8px rgba(255, 204, 67, .16),
		0 1px 2px rgba(0, 0, 0, .88);
	transform: translateX(-50%);
	pointer-events: none;
}

.ldg1__counter [data-ldg1-current] {
	color: rgba(255, 237, 185, .92);
	font-size: 18px;
	text-shadow:
		0 0 9px rgba(255, 213, 102, .24),
		0 1px 2px rgba(0, 0, 0, .9);
}


/* =========================================================
   8. INSTRUCTION, PAGE LINKS AND SELECTION TOAST
   ========================================================= */

.ldg1__instruction {
	position: absolute;
	z-index: 20;
	left: 50%;
	bottom: max(74px, calc(env(safe-area-inset-bottom) + 74px));
	margin: 0;
	color: rgba(255, 229, 166, .42);
	font-size: 8px;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	text-shadow:
		0 0 8px rgba(255, 207, 80, .16),
		0 1px 2px rgba(0, 0, 0, .9);
	transform: translateX(-50%) perspective(180px) rotateX(10deg);
	white-space: nowrap;
	animation: ldg1-instruction-fade 7s ease forwards;
	pointer-events: none;
}

.ldg1__instruction-mobile {
	display: none;
}

.ldg1__page-link {
	position: absolute;
	z-index: 40;
	top: max(20px, env(safe-area-inset-top));
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	padding: 0 3px 4px;
	gap: 7px;
	color: rgba(255, 231, 171, .68);
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(226, 170, 47, .3);
	border-radius: 0;
	box-shadow: none;
	font-size: 8px;
	font-weight: 700;
	letter-spacing: .16em;
	text-decoration: none;
	text-transform: uppercase;
	text-shadow: 0 0 8px rgba(255, 199, 50, .12);
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	transition:
		color 220ms ease,
		border-color 220ms ease,
		text-shadow 220ms ease,
		transform 220ms ease;
}

.ldg1__page-link--back {
	left: 22px;
}

.ldg1__page-link--next {
	right: 22px;
}

.ldg1__page-link:hover,
.ldg1__page-link:focus-visible {
	color: #fff0b1;
	border-color: rgba(255, 214, 104, .72);
	text-shadow: 0 0 12px rgba(255, 199, 50, .28);
	transform: translateY(-1px);
}

.ldg1__selection {
	position: absolute;
	z-index: 35;
	left: 50%;
	top: 15%;
	display: grid;
	grid-template-columns: auto auto;
	align-items: center;
	padding: 0;
	gap: 10px;
	color: rgba(255, 239, 197, .82);
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	opacity: 0;
	filter: blur(3px);
	transform: translate(-50%, 12px) scale(.94);
	transition:
		opacity 420ms ease,
		filter 520ms ease,
		transform 720ms cubic-bezier(.16, .78, .22, 1);
	pointer-events: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

.ldg1__selection.is-visible {
	opacity: 1;
	filter: blur(0);
	transform: translate(-50%, 0) scale(1);
}

.ldg1__selection span {
	color: var(--ldg1-gold-bright);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 20px;
	text-shadow:
		0 0 10px rgba(255, 210, 84, .3),
		0 1px 2px rgba(0, 0, 0, .9);
}

.ldg1__selection strong {
	font-size: 8px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	text-shadow:
		0 0 8px rgba(255, 210, 84, .16),
		0 1px 2px rgba(0, 0, 0, .9);
}

@keyframes ldg1-instruction-fade {
	0%, 60% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}


/* =========================================================
   9. PORTRAIT MOBILE LAYOUT
   ========================================================= */

@media (max-width: 768px) and (orientation: portrait) {
	.ldg1__viewport {
		scroll-snap-type: x mandatory;
		cursor: default;
	}

	.ldg1__track--desktop {
		display: none;
	}

	.ldg1__track--mobile {
		display: flex;
		align-items: stretch;
		width: max-content;
		height: 100%;
		padding-inline: 8vw;
		gap: 3vw;
	}

	.ldg1__hud {
		bottom: max(12px, env(safe-area-inset-bottom));
		height: 56px;
	}

	.ldg1__nav,
	.ldg1__nav:hover,
	.ldg1__nav:focus,
	.ldg1__nav:active {
		width: 46px;
		height: 46px;
	}

	.ldg1__nav--previous {
		left: 4px;
	}

	.ldg1__nav--next {
		right: 4px;
	}

	.ldg1__nav svg {
		width: 22px;
		height: 22px;
	}

	.ldg1__progress {
		bottom: 8px;
		width: 50vw;
	}

	.ldg1__counter {
		bottom: 20px;
	}

	.ldg1__instruction-desktop {
		display: none;
	}

	.ldg1__instruction-mobile {
		display: inline;
	}

	.ldg1__caption {
		opacity: 1;
		transform: translate(-50%, 0) scale(1);
	}

	.ldg1__selection {
		top: 12%;
	}

	.ldg1__page-link {
		min-height: 34px;
		padding-inline: 11px;
		font-size: 8px;
	}
}


/* =========================================================
   10. SHORT VIEWPORTS AND WORDPRESS ADMIN BAR
   ========================================================= */

@media (max-height: 640px) {
	.ldg1__hud {
		bottom: max(8px, env(safe-area-inset-bottom));
	}

	.ldg1__instruction {
		display: none;
	}

	.ldg1__caption {
		bottom: -43px;
	}
}

body.admin-bar .ldg1 {
	top: 32px;
	height: calc(100vh - 32px);
	height: calc(100svh - 32px);
}

@media (max-width: 782px) {
	body.admin-bar .ldg1 {
		top: 46px;
		height: calc(100vh - 46px);
		height: calc(100svh - 46px);
	}
}


/* =========================================================
   11. REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
	.ldg1__artwork-shell.has-gallery-frame::before {
		animation: none !important;
	}

	.ldg1__viewport {
		scroll-behavior: auto !important;
	}

	.ldg1 *,
	.ldg1 *::before,
	.ldg1 *::after {
		animation-duration: 1ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 1ms !important;
	}
}


/* =========================================================
   GALLERY ONE – STATIC FRAMES + IMMEDIATE INTERACTION STOP
   ========================================================= */

/* Frames and artwork never move or zoom when hovered, focused or selected. */
.ldg1__exhibit:hover .ldg1__artwork-shell,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell,
.ldg1__exhibit.is-current .ldg1__artwork-shell,
.ldg1__mobile-exhibit:hover .ldg1__artwork-shell,
.ldg1__mobile-exhibit:focus-visible .ldg1__artwork-shell,
.ldg1__mobile-exhibit.is-current .ldg1__artwork-shell,
.ldg1__exhibit:hover .ldg1__artwork,
.ldg1__exhibit:focus-visible .ldg1__artwork,
.ldg1__mobile-exhibit:hover .ldg1__artwork,
.ldg1__mobile-exhibit:focus-visible .ldg1__artwork {
	transform: none !important;
}

/* The supplied transparent frame assets keep their original fitted scale. */
.ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__exhibit:hover .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__mobile-exhibit:hover .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__mobile-exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork {
	transform: scale(1.025) !important;
}

.ldg1__artwork-shell--graphiti .ldg1__artwork,
.ldg1__exhibit:hover .ldg1__artwork-shell--graphiti .ldg1__artwork,
.ldg1__mobile-exhibit:hover .ldg1__artwork-shell--graphiti .ldg1__artwork {
	transform: scale(1.012) !important;
}

.ldg1__artwork-shell--heavy-gold .ldg1__artwork,
.ldg1__exhibit:hover .ldg1__artwork-shell--heavy-gold .ldg1__artwork,
.ldg1__mobile-exhibit:hover .ldg1__artwork-shell--heavy-gold .ldg1__artwork {
	transform: scale(1.055) !important;
}

/* No titles, captions or selected-exhibit wording appear over the gallery. */
.ldg1__caption,
.ldg1__selection {
	display: none !important;
}

/* Once a person touches, drags, wheels or presses a navigation key, any
   component-driven movement is forced into a stopped state immediately. */
.ldg1.has-user-interacted .ldg1__track,
.ldg1.has-user-interacted .ldg1__viewport {
	animation-play-state: paused !important;
}


/* =========================================================
   GALLERY ONE – LATLEY WALK-IN FOCUS + ENTRANCE-STYLE AUDIO
   ========================================================= */

.ldg1 {
	--ldg1-focus-x: 50%;
	--ldg1-focus-y: 46%;
}

.ldg1__viewport {
	transform: translateZ(0) scale(1);
	transform-origin: var(--ldg1-focus-x) var(--ldg1-focus-y);
	transition: filter 1.4s ease;
	will-change: transform, filter;
}

.ldg1::after {
	position: absolute;
	z-index: 24;
	inset: 0;
	content: "";
	background:
		radial-gradient(circle at var(--ldg1-focus-x) var(--ldg1-focus-y), transparent 0%, transparent 28%, rgba(0, 0, 0, .18) 62%, rgba(0, 0, 0, .48) 100%),
		linear-gradient(180deg, rgba(0, 0, 0, .04), rgba(0, 0, 0, .15));
	opacity: 0;
	transition: opacity 1.25s ease;
	pointer-events: none;
}

.ldg1.is-walking-to-artwork .ldg1__viewport {
	filter: saturate(1.05) contrast(1.025);
}

.ldg1.is-walking-to-artwork::after {
	opacity: 1;
}


.ldg1.is-walking-to-artwork .ldg1__hud,
.ldg1.is-walking-to-artwork .ldg1__instruction,
.ldg1.is-walking-to-artwork .ldg1__page-link {
	opacity: 0;
	pointer-events: none;
	transition: opacity 480ms ease;
}

.ldg1__soundtrack {
	display: none;
}

/* =========================================================
   23. COMPACT BLACK-HOLE AUDIO CONSOLE
   ========================================================= */

.ld-audio-console-shell {
	position: fixed;
	z-index: 1000002;
	top: max(10px, env(safe-area-inset-top));
	isolation: isolate;
	perspective: 950px;
	transform-style: preserve-3d;
	left: 50%;
	width: min(680px, calc(100vw - 24px));
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
	transform: translate3d(-50%, -120%, 0);
	transition:
		opacity 320ms ease,
		visibility 0s linear 900ms;
}

.ldg1:not(.is-audio-console-visible) .ld-audio-console-shell {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
	transform: translate3d(-50%, -130%, 0) !important;
	animation: none !important;
}

.ld-audio-console-shell::before,
.ld-audio-console-shell::after {
	position: absolute;
	left: 50%;
	content: "";
	pointer-events: none;
	opacity: 0;
	transition: opacity 420ms ease;
}

.ld-audio-console-shell::before {
	top: -12px;
	width: min(70%, 420px);
	height: 28px;
	transform: translateX(-50%);
	border-radius: 0 0 26px 26px;
	background:
		linear-gradient(180deg, rgba(255, 248, 222, .18), rgba(255, 210, 78, .08) 36%, rgba(75, 198, 255, .08) 68%, transparent 100%),
		radial-gradient(ellipse at center, rgba(255, 214, 92, .28), rgba(255, 214, 92, .08) 54%, transparent 78%);
	filter: blur(4px) drop-shadow(0 0 12px rgba(255, 209, 88, .18));
}

.ld-audio-console-shell::after {
	top: -3px;
	width: min(58%, 350px);
	height: 3px;
	transform: translateX(-50%);
	border-radius: 999px;
	background: linear-gradient(90deg, transparent, rgba(164, 233, 255, .75) 18%, rgba(255, 225, 136, .95) 50%, rgba(164, 233, 255, .75) 82%, transparent);
	box-shadow: 0 0 14px rgba(164, 233, 255, .32), 0 0 18px rgba(255, 204, 77, .26);
}

.ldg1.is-audio-console-visible .ld-audio-console-shell {
	pointer-events: auto;
	opacity: 1;
	visibility: visible;
	animation:
		ld-audio-console-arrive 1.05s cubic-bezier(.16, .78, .22, 1) both,
		ld-audio-console-float 5.8s ease-in-out 1.05s infinite;
}

.ldg1.is-audio-console-visible .ld-audio-console-shell::before,
.ldg1.is-audio-console-visible .ld-audio-console-shell::after {
	opacity: 1;
}

.ld-audio-console {
	--ld-audio-gold: #f3c654;
	--ld-audio-gold-light: #fff0aa;
	--ld-audio-gold-deep: #9d6514;
	--ld-audio-progress: 0%;
	--ld-volume: 60%;

	position: relative;
	z-index: 10;
	display: grid;
	grid-template-columns: 76px auto minmax(190px, 1fr) 118px;
	align-items: center;
	width: 100%;
	min-height: 58px;
	padding: 7px 34px 7px 9px;
	gap: 9px;
	isolation: isolate;
	overflow: hidden;
	color: var(--ld-audio-gold-light);
	background:
		linear-gradient(180deg, rgba(255, 255, 255, .105), transparent 28%),
		radial-gradient(circle at 52% -58%, rgba(255, 214, 92, .15), transparent 48%),
		linear-gradient(135deg, rgba(25, 25, 25, .975), rgba(1, 1, 1, .99) 57%, rgba(18, 12, 3, .985));
	border: 1px solid rgba(255, 217, 109, .72);
	border-radius: 18px;
	box-shadow:
		0 0 0 1px rgba(92, 52, 3, .96),
		0 0 0 3px rgba(255, 203, 68, .13),
		inset 0 1px 0 rgba(255, 249, 220, .22),
		inset 0 -1px 0 rgba(255, 183, 39, .16),
		0 11px 28px rgba(0, 0, 0, .46),
		0 0 24px rgba(255, 190, 38, .11);
	transform-origin: 50% -12px;
	transition:
		opacity 440ms ease,
		transform 600ms cubic-bezier(.14, .82, .19, 1),
		filter 500ms ease,
		box-shadow 320ms ease;
	backdrop-filter: blur(16px) saturate(1.22);
	-webkit-backdrop-filter: blur(16px) saturate(1.22);
}

.ld-audio-console::before,
.ld-audio-console::after {
	position: absolute;
	content: "";
	pointer-events: none;
}

.ld-audio-console::before {
	z-index: -1;
	inset: 3px;
	border: 1px solid rgba(255, 215, 102, .19);
	border-radius: 14px;
}

.ld-audio-console::after {
	z-index: 7;
	top: 0;
	left: -42%;
	width: 28%;
	height: 100%;
	background: linear-gradient(
		100deg,
		transparent,
		rgba(255, 255, 255, .05) 38%,
		rgba(255, 229, 152, .19) 50%,
		rgba(255, 255, 255, .04) 63%,
		transparent
	);
	transform: skewX(-18deg);
	opacity: 0;
}

.ldg1.is-audio-playing .ld-audio-console {
	box-shadow:
		0 0 0 1px rgba(92, 52, 3, .96),
		0 0 0 3px rgba(255, 203, 68, .18),
		inset 0 1px 0 rgba(255, 249, 220, .26),
		inset 0 -1px 0 rgba(255, 183, 39, .18),
		0 12px 31px rgba(0, 0, 0, .48),
		0 0 30px rgba(255, 190, 38, .2);
}

.ldg1.is-audio-playing .ld-audio-console::after {
	opacity: 1;
	animation: ld-audio-console-sheen 6.8s ease-in-out infinite;
}

.ld-audio-console__shine {
	position: absolute;
	z-index: -1;
	inset: 0;
	background:
		radial-gradient(circle at 18% 0%, rgba(255, 243, 196, .1), transparent 27%),
		radial-gradient(circle at 82% 100%, rgba(255, 188, 35, .07), transparent 31%);
	pointer-events: none;
}

/*
 * Central plug-hole transition.
 * The complete controller compresses towards its own centre, spirals into
 * the dark portal and only then reveals the compact speaker tab.
 */
.ldg1.is-audio-console-collapsing .ld-audio-console {
	pointer-events: none;
	animation: ld-audio-console-plughole-drain 780ms cubic-bezier(.5, .02, .2, 1) both;
}

.ldg1.is-audio-console-collapsed .ld-audio-console {
	opacity: 0;
	pointer-events: none;
	filter: blur(7px) brightness(1.45) saturate(1.35);
	clip-path: circle(.1% at 50% 50%);
	-webkit-clip-path: circle(.1% at 50% 50%);
	transform: translate3d(0, 29px, 0) scale(.02) rotate(190deg);
}

.ldg1.is-audio-console-expanding .ld-audio-console {
	animation: ld-audio-console-plughole-return 780ms cubic-bezier(.12, .84, .2, 1) both;
}

.ld-audio-console__suction-hole {
	position: absolute;
	z-index: 30;
	top: 50%;
	left: 50%;
	display: block;
	width: 74px;
	height: 25px;
	opacity: 0;
	pointer-events: none;
	filter: blur(.2px);
	transform: translate(-50%, -50%) scale(.15);
	transform-origin: 50% 50%;
}

.ld-audio-console__suction-orbit,
.ld-audio-console__suction-core {
	position: absolute;
	inset: 0;
	display: block;
	border-radius: 50%;
}

.ld-audio-console__suction-orbit {
	background:
		radial-gradient(ellipse at center, transparent 0 26%, rgba(255, 193, 66, .7) 31%, transparent 48%),
		conic-gradient(from 0deg, #2a0c00, #ff9f22 15%, #fff0a4 27%, #b83906 43%, #120300 56%, #ffc955 72%, #6c1d00 89%, #2a0c00);
	box-shadow:
		0 0 10px rgba(255, 135, 20, .65),
		0 0 24px rgba(255, 198, 68, .35);
}

.ld-audio-console__suction-core {
	inset: 6px 18px;
	background: radial-gradient(ellipse at center, #000 0 66%, #090300 82%, transparent 86%);
	box-shadow: inset 0 0 9px #000, 0 0 8px rgba(255, 173, 28, .25);
}

.ldg1.is-audio-console-collapsing .ld-audio-console__suction-hole {
	animation: ld-audio-plughole-open 780ms ease-out both;
}

.ldg1.is-audio-console-expanding .ld-audio-console__suction-hole {
	animation: ld-audio-plughole-close 780ms ease-out both;
}

.ldg1.is-audio-console-collapsing .ld-audio-console__suction-orbit,
.ldg1.is-audio-console-expanding .ld-audio-console__suction-orbit {
	animation: ld-blackhole-spin 420ms linear infinite;
}

.ld-audio-console__brand {
	display: grid;
	grid-template-rows: 24px auto;
	place-items: center;
	row-gap: 10px;
	min-width: 0;
	padding: 0 9px 0 2px;
	border-right: 1px solid rgba(255, 207, 76, .16);
}

/*
 * Use the official raster Lord Dancer logo, but recolour the black linework
 * into the same rich metallic gold family used across the transport panel.
 * Removing the old screen-blend approach keeps the mark bright, crisp and
 * consistently gold against the smoked-black console background.
 */
.ld-audio-console__logo {
	display: block;
	width: 30px;
	height: 24px;
	object-fit: contain;
	object-position: center;
	opacity: 1;
	mix-blend-mode: normal;
	filter:
		brightness(0)
		saturate(100%)
		invert(81%)
		sepia(61%)
		saturate(1163%)
		hue-rotate(356deg)
		brightness(101%)
		contrast(102%)
		drop-shadow(0 0 1px rgba(255, 240, 179, .95))
		drop-shadow(0 0 5px rgba(255, 196, 58, .42));
}

.ld-audio-console__album-button,
.ld-audio-console__album-button:hover,
.ld-audio-console__album-button:focus,
.ld-audio-console__album-button:active {
	min-width: 0;
	margin: 0;
	margin-top: 2px;
	padding: 1px 3px 0;
	color: rgba(255, 232, 166, .76);
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(255, 201, 56, .36) !important;
	border-radius: 0;
	box-shadow: none !important;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 6.5px;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: .14em;
	text-transform: uppercase;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: color 180ms ease, border-color 180ms ease, text-shadow 180ms ease;
}

.ld-audio-console__album-button:hover,
.ld-audio-console__album-button:focus-visible,
.ldg1.is-audio-album-open .ld-audio-console__album-button {
	color: #fff4bd;
	border-bottom-color: #f5c64c !important;
	text-shadow: 0 0 8px rgba(255, 195, 40, .52);
	outline: 0;
}

.ld-audio-console__transport,
.ld-audio-console__volume {
	display: flex;
	align-items: center;
	gap: 5px;
}

.ld-audio-console__volume {
	justify-content: flex-end;
	min-width: 0;
	padding: 3px 2px 3px 8px;
	border-left: 1px solid rgba(255, 207, 76, .14);
	border-radius: 0 12px 12px 0;
	background: linear-gradient(90deg, rgba(255, 202, 54, .025), rgba(255, 202, 54, .055));
}

.ld-audio-console__button,
.ld-audio-console__button:hover,
.ld-audio-console__button:focus,
.ld-audio-console__button:active,
.ld-audio-console__button:visited {
	position: relative;
	display: inline-grid;
	place-items: center;
	flex: 0 0 auto;
	width: 30px;
	height: 30px;
	margin: 0;
	padding: 0;
	color: var(--ld-audio-gold-light);
	background:
		radial-gradient(circle at 38% 25%, rgba(255, 255, 255, .13), transparent 31%),
		linear-gradient(145deg, #181818, #020202 64%, #231300);
	border: 1px solid rgba(255, 207, 79, .74);
	border-radius: 50%;
	box-shadow:
		0 0 0 1px rgba(52, 29, 0, .9),
		inset 0 1px 1px rgba(255, 242, 196, .16),
		inset 0 -3px 7px rgba(0, 0, 0, .72),
		0 3px 8px rgba(0, 0, 0, .32),
		0 0 8px rgba(255, 186, 32, .1);
	outline: 0;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	transform: translateZ(0);
	transition:
		transform 170ms ease,
		border-color 180ms ease,
		box-shadow 200ms ease,
		color 180ms ease;
}

.ld-audio-console__button--play,
.ld-audio-console__button--play:hover,
.ld-audio-console__button--play:focus,
.ld-audio-console__button--play:active {
	width: 36px;
	height: 36px;
	color: #120b02;
	background:
		radial-gradient(circle at 38% 24%, rgba(255, 255, 255, .24), transparent 29%),
		linear-gradient(145deg, #f4ce69, #b97917 56%, #623804);
	border-color: #ffe69a;
	box-shadow:
		0 0 0 1px rgba(59, 32, 0, .96),
		0 0 0 2px rgba(255, 213, 94, .4),
		inset 0 1px 1px rgba(255, 255, 255, .52),
		inset 0 -5px 9px rgba(83, 40, 0, .35),
		0 4px 10px rgba(0, 0, 0, .38),
		0 0 13px rgba(255, 190, 31, .23);
}

.ld-audio-console__button:hover {
	color: #fff7d3;
	border-color: #fff0a8;
	box-shadow:
		0 0 0 1px rgba(52, 29, 0, .9),
		inset 0 1px 1px rgba(255, 242, 196, .22),
		inset 0 -3px 7px rgba(0, 0, 0, .68),
		0 4px 11px rgba(0, 0, 0, .38),
		0 0 13px rgba(255, 194, 38, .27);
	transform: translateY(-1px) scale(1.035);
}

.ld-audio-console__button--play:hover {
	color: #080501;
}

.ld-audio-console__button:active {
	transform: translateY(1px) scale(.96);
}

.ld-audio-console__button:focus-visible,
.ld-audio-console__collapse:focus-visible,
.ld-audio-blackhole-tab:focus-visible,
.ld-audio-album-card__close:focus-visible {
	outline: 2px solid #fff2b2;
	outline-offset: 3px;
}

.ld-audio-console__button svg {
	position: absolute;
	inset: 50% auto auto 50%;
	width: 16px;
	height: 16px;
	fill: currentColor;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
	transform: translate(-50%, -50%);
	filter: drop-shadow(0 0 4px rgba(255, 210, 91, .25));
	pointer-events: none;
}

.ld-audio-console__button--play svg {
	width: 19px;
	height: 19px;
}

.ld-audio-console__icon-pause,
.ld-audio-console__icon-muted {
	display: none;
}

.ldg1.is-audio-playing .ld-audio-console__icon-play {
	display: none;
}

.ldg1.is-audio-playing .ld-audio-console__icon-pause,
.ldg1.is-audio-muted .ld-audio-console__icon-muted {
	display: block;
}

.ldg1.is-audio-muted .ld-audio-console__icon-volume {
	display: none;
}

.ld-audio-console__sound-wave {
	fill: none;
}

.ld-audio-console__display {
	position: relative;
	display: grid;
	grid-template-rows: 25px 14px;
	align-items: center;
	min-width: 0;
	padding: 2px 8px 0;
	border-right: 1px solid rgba(255, 207, 76, .12);
	border-left: 1px solid rgba(255, 207, 76, .12);
	background:
		linear-gradient(180deg, rgba(255, 216, 109, .025), transparent),
		linear-gradient(90deg, transparent, rgba(255, 201, 63, .04), transparent);
}

.ld-audio-console__waveform {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 24px;
	gap: 3px;
	overflow: hidden;
}

.ld-audio-console__waveform::before,
.ld-audio-console__waveform::after {
	position: absolute;
	content: "";
	pointer-events: none;
}

.ld-audio-console__waveform::before {
	z-index: -1;
	left: 7%;
	right: 7%;
	top: 50%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(255, 208, 80, .31), transparent);
	box-shadow: 0 0 8px rgba(255, 190, 33, .16);
}

.ld-audio-console__waveform::after {
	top: 0;
	bottom: 0;
	left: -20%;
	width: 18%;
	background: linear-gradient(90deg, transparent, rgba(255, 242, 194, .32), transparent);
	opacity: 0;
}

.ldg1.is-audio-playing .ld-audio-console__waveform::after {
	opacity: 1;
	animation: ld-audio-wave-scan 3.4s linear infinite;
}

.ld-audio-console__waveform span {
	--ld-audio-level: .25;
	--ld-audio-glow: .25;
	position: relative;
	z-index: 1;
	display: block;
	flex: 1 1 0;
	width: 3px;
	max-width: 4px;
	height: 22px;
	min-height: 3px;
	border-radius: 999px;
	background: linear-gradient(180deg, #fff6c4 0%, #f6cb59 26%, #d9911e 70%, #7e4205 100%);
	box-shadow:
		0 0 calc(2px + (7px * var(--ld-audio-glow))) rgba(255, 193, 38, calc(.18 + (.5 * var(--ld-audio-glow)))),
		inset 0 1px 0 rgba(255, 255, 255, .56);
	transform: scaleY(var(--ld-audio-level));
	transform-origin: 50% 50%;
	transition: transform 70ms linear, box-shadow 90ms linear;
	will-change: transform, box-shadow;
}

.ld-audio-console__timeline {
	display: grid;
	grid-template-columns: 30px minmax(84px, 1fr) 30px;
	align-items: center;
	gap: 5px;
	min-width: 0;
}

.ld-audio-console__timeline time {
	color: rgba(255, 231, 166, .8);
	font-family: "Courier New", Courier, monospace;
	font-size: 8px;
	font-variant-numeric: tabular-nums;
	letter-spacing: .01em;
	text-align: center;
	white-space: nowrap;
}

/* Strong browser/theme reset: no white slider wells. */
.ld-audio-console input[type="range"].ld-audio-console__range,
.ld-audio-console input[type="range"].ld-audio-console__range:hover,
.ld-audio-console input[type="range"].ld-audio-console__range:focus,
.ld-audio-console input[type="range"].ld-audio-console__range:active {
	position: relative;
	display: block;
	width: 100%;
	height: 16px;
	min-height: 0;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	outline: 0;
	-webkit-appearance: none !important;
	appearance: none !important;
	cursor: pointer;
}

.ld-audio-console__range::-webkit-slider-runnable-track {
	height: 3px;
	border: 0;
	border-radius: 999px;
	background:
		linear-gradient(
			90deg,
			var(--ld-audio-gold-light) 0%,
			var(--ld-audio-gold) var(--ld-range-fill, 0%),
			rgba(91, 64, 20, .9) var(--ld-range-fill, 0%),
			rgba(28, 22, 12, .96) 100%
		) !important;
	box-shadow:
		inset 0 1px 2px rgba(0, 0, 0, .95),
		0 0 5px rgba(255, 189, 31, .14);
}

.ld-audio-console__range::-moz-range-track {
	height: 3px;
	border: 0;
	border-radius: 999px;
	background: rgba(28, 22, 12, .96) !important;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, .95);
}

.ld-audio-console__range::-moz-range-progress {
	height: 3px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--ld-audio-gold-light), var(--ld-audio-gold));
	box-shadow: 0 0 5px rgba(255, 189, 31, .2);
}

.ld-audio-console__range::-webkit-slider-thumb {
	width: 10px;
	height: 10px;
	margin-top: -3.5px;
	border: 1px solid #fff0ad;
	border-radius: 50%;
	background: radial-gradient(circle at 38% 32%, #fff9d5, #e3a52e 56%, #7e4304 100%);
	box-shadow: 0 0 0 2px rgba(67, 35, 0, .72), 0 0 7px rgba(255, 194, 37, .5);
	-webkit-appearance: none;
	appearance: none;
}

.ld-audio-console__range::-moz-range-thumb {
	width: 10px;
	height: 10px;
	border: 1px solid #fff0ad;
	border-radius: 50%;
	background: radial-gradient(circle at 38% 32%, #fff9d5, #e3a52e 56%, #7e4304 100%);
	box-shadow: 0 0 0 2px rgba(67, 35, 0, .72), 0 0 7px rgba(255, 194, 37, .5);
}

.ld-audio-console__range:focus-visible {
	outline: 2px solid #fff0a7 !important;
	outline-offset: 2px;
	border-radius: 999px !important;
}

.ld-audio-console__range--progress {
	--ld-range-fill: var(--ld-progress);
}

.ld-audio-console input[type="range"].ld-audio-console__range--volume {
	--ld-range-fill: var(--ld-volume);
	flex: 1 1 auto;
	width: 72px;
	min-width: 50px;
	max-width: 76px;
}

.ld-audio-console__button--volume {
	width: 29px;
	height: 29px;
}

.ld-audio-console__button--volume svg {
	width: 16px;
	height: 16px;
}

/*
 * Keep the original compact black-hole collapse control in the top-right of
 * the bar. The small gold chevron hangs immediately beneath it as a visual
 * hint without replacing the control itself.
 */
.ld-audio-console__collapse,
.ld-audio-console__collapse:hover,
.ld-audio-console__collapse:focus,
.ld-audio-console__collapse:active {
	position: absolute;
	z-index: 35;
	top: 5px;
	right: 6px;
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	margin: 0;
	padding: 0;
	color: #f6ce63;
	background:
		radial-gradient(circle at 50% 50%, #010101 0 28%, transparent 30%),
		conic-gradient(from 10deg, #7d4306, #ffe08a, #9a5607, #fff0ab, #7d4306);
	border: 1px solid rgba(255, 224, 137, .72);
	border-radius: 50%;
	box-shadow:
		0 0 0 1px #311b02,
		0 0 8px rgba(255, 190, 39, .23);
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	overflow: visible;
	transform: translateZ(0);
	transition: transform 180ms ease, box-shadow 180ms ease, opacity 160ms ease;
}

.ld-audio-console__collapse::before,
.ld-audio-console__collapse::after {
	position: absolute;
	content: "";
	pointer-events: none;
}

.ld-audio-console__collapse::before {
	inset: 3px;
	border: 1px solid rgba(255, 226, 145, .72);
	border-right-color: transparent;
	border-bottom-color: rgba(119, 65, 5, .85);
	border-radius: 50%;
	animation: ld-blackhole-spin 2.3s linear infinite;
}

.ld-audio-console__collapse::after {
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: #000;
	box-shadow: 0 0 5px 2px rgba(255, 187, 35, .25);
}

.ld-audio-console__collapse-arrow {
	position: absolute;
	top: calc(100% + 4px);
	left: 50%;
	display: block;
	width: 11px;
	height: 8px;
	pointer-events: none;
	transform: translateX(-50%);
	animation: ld-audio-collapse-arrow-nudge 1.65s ease-in-out infinite;
}

.ld-audio-console__collapse-arrow svg {
	display: block;
	width: 11px;
	height: 8px;
	fill: none;
	stroke: #f7cf61;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	filter: drop-shadow(0 0 4px rgba(255, 197, 43, .72));
}

.ld-audio-console__collapse:hover,
.ld-audio-console__collapse:focus-visible {
	transform: scale(1.09);
	box-shadow:
		0 0 0 1px #311b02,
		0 0 13px rgba(255, 190, 39, .44);
}

.ld-audio-console__collapse:active {
	transform: scale(.95);
}

.ldg1.is-audio-console-collapsing .ld-audio-console__collapse {
	opacity: 0;
	transform: translateY(8px) scale(.35);
	transition: opacity 160ms ease, transform 260ms ease;
}

/*
 * Chained album-art panel.
 * The panel begins hidden behind the transport bar, drops on two small gold
 * chains, settles into a gentle suspended swing and reverses back behind the
 * controls when it is closed.
 */
.ld-audio-album-card {
	--ld-album-x: 0%;

	position: absolute;
	z-index: 2;
	top: calc(100% + 12px);
	left: 0;
	display: grid;
	grid-template-columns: 102px minmax(82px, 1fr);
	align-items: center;
	width: 220px;
	padding: 8px;
	gap: 9px;
	isolation: isolate;
	color: #fff0b0;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, .08), transparent 25%),
		linear-gradient(135deg, rgba(20, 20, 20, .98), rgba(2, 2, 2, .99));
	border: 1px solid rgba(255, 209, 76, .68);
	border-radius: 15px;
	box-shadow:
		0 0 0 1px rgba(75, 42, 3, .94),
		0 15px 32px rgba(0, 0, 0, .5),
		0 0 25px rgba(255, 185, 29, .14);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform:
		translateX(var(--ld-album-x))
		translateY(-136px)
		rotateZ(-10deg)
		rotateX(-24deg)
		scale(.91);
	transform-origin: 50% -42px;
	transform-style: preserve-3d;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	will-change: transform, opacity;
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
}

/* Two longer metallic necklace-style chain runs, tucked partly behind the
 * transport bar so the album card appears to swing from it naturally. */
.ld-audio-album-card::before,
.ld-audio-album-card::after {
	position: absolute;
	z-index: 3;
	top: -50px;
	width: 12px;
	height: 56px;
	content: "";
	background-image: url("data:image/svg+xml,%3Csvg width='12' height='14' viewBox='0 0 12 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cellipse cx='6' cy='3.9' rx='3.15' ry='3.5' stroke='%23f3c654' stroke-width='1.15'/%3E%3Cellipse cx='6' cy='9.9' rx='3.15' ry='3.5' stroke='%23fff0aa' stroke-width='1.0'/%3E%3Cpath d='M6 6.9V7.95' stroke='%23d19a2a' stroke-width='1.0'/%3E%3C/g%3E%3C/svg%3E");
	background-position: center top;
	background-repeat: repeat-y;
	background-size: 12px 14px;
	filter:
		drop-shadow(0 1px 1px rgba(0, 0, 0, .78))
		drop-shadow(0 0 4px rgba(255, 190, 39, .36));
	pointer-events: none;
}

.ld-audio-album-card::before {
	left: 22px;
}

.ld-audio-album-card::after {
	right: 22px;
}

.ldg1.is-audio-album-open .ld-audio-album-card {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	animation:
		ld-audio-album-swing-down
		920ms
		cubic-bezier(.16, .82, .24, 1)
		both,
		ld-audio-album-gentle-swing
		4.8s
		ease-in-out
		920ms
		infinite;
}

.ldg1.is-audio-album-closing .ld-audio-album-card {
	opacity: 1;
	visibility: visible;
	pointer-events: none;
	animation:
		ld-audio-album-swing-up
		780ms
		cubic-bezier(.55, .02, .3, 1)
		both;
}

.ld-audio-album-card__art {
	position: relative;
	z-index: 2;
	width: 102px;
	aspect-ratio: 1;
	overflow: hidden;
	border: 1px solid rgba(255, 220, 111, .66);
	border-radius: 11px;
	box-shadow: 0 0 0 2px rgba(68, 38, 3, .9), 0 7px 18px rgba(0, 0, 0, .42);
}

.ld-audio-album-card__art img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ld-audio-album-card__copy {
	position: relative;
	z-index: 2;
	display: grid;
	align-content: center;
	min-width: 0;
}

.ld-audio-album-card__copy span {
	color: rgba(255, 226, 143, .6);
	font-size: 7px;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.ld-audio-album-card__copy strong {
	margin-top: 5px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 18px;
	line-height: 1;
	text-shadow: 0 0 12px rgba(255, 190, 35, .35);
}

.ld-audio-album-card__copy small {
	margin-top: 5px;
	color: rgba(255, 238, 190, .72);
	font-size: 9px;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.ld-audio-album-card__close,
.ld-audio-album-card__close:hover,
.ld-audio-album-card__close:focus,
.ld-audio-album-card__close:active {
	position: absolute;
	z-index: 5;
	top: 4px;
	right: 4px;
	display: grid;
	place-items: center;
	width: 23px;
	height: 23px;
	margin: 0;
	padding: 0;
	color: #fff0b0;
	background: rgba(4, 4, 4, .87);
	border: 1px solid rgba(255, 209, 76, .62);
	border-radius: 50%;
	box-shadow: 0 2px 7px rgba(0, 0, 0, .34);
	font-size: 17px;
	line-height: 1;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

@keyframes ld-audio-album-swing-down {
	0% {
		opacity: 0;
		transform:
			translateX(var(--ld-album-x))
			translateY(-136px)
			rotateZ(-10deg)
			rotateX(-24deg)
			scale(.91);
	}

	24% {
		opacity: 1;
	}

	43% {
		transform:
			translateX(var(--ld-album-x))
			translateY(9px)
			rotateZ(8deg)
			rotateX(1deg)
			scale(1);
	}

	60% {
		transform:
			translateX(var(--ld-album-x))
			translateY(-4px)
			rotateZ(-5deg)
			rotateX(0deg)
			scale(1);
	}

	74% {
		transform:
			translateX(var(--ld-album-x))
			translateY(2px)
			rotateZ(3deg)
			rotateX(0deg)
			scale(1);
	}

	87% {
		transform:
			translateX(var(--ld-album-x))
			translateY(-1px)
			rotateZ(-1.5deg)
			rotateX(0deg)
			scale(1);
	}

	100% {
		opacity: 1;
		transform:
			translateX(var(--ld-album-x))
			translateY(0)
			rotateZ(0deg)
			rotateX(0deg)
			scale(1);
	}
}

@keyframes ld-audio-album-gentle-swing {
	0%, 100% {
		transform:
			translateX(var(--ld-album-x))
			translateY(0)
			rotateZ(-1.15deg)
			rotateX(0deg)
			scale(1);
	}

	50% {
		transform:
			translateX(var(--ld-album-x))
			translateY(1.5px)
			rotateZ(1.25deg)
			rotateX(.35deg)
			scale(1);
	}
}

@keyframes ld-audio-album-swing-up {
	0% {
		opacity: 1;
		transform:
			translateX(var(--ld-album-x))
			translateY(0)
			rotateZ(0deg)
			rotateX(0deg)
			scale(1);
	}

	20% {
		transform:
			translateX(var(--ld-album-x))
			translateY(3px)
			rotateZ(4deg)
			rotateX(0deg)
			scale(1);
	}

	43% {
		transform:
			translateX(var(--ld-album-x))
			translateY(-16px)
			rotateZ(-6deg)
			rotateX(-3deg)
			scale(.99);
	}

	74% {
		opacity: 1;
		transform:
			translateX(var(--ld-album-x))
			translateY(-105px)
			rotateZ(8deg)
			rotateX(-16deg)
			scale(.95);
	}

	100% {
		opacity: 0;
		transform:
			translateX(var(--ld-album-x))
			translateY(-136px)
			rotateZ(-10deg)
			rotateX(-24deg)
			scale(.91);
	}
}

/* Collapsed black-hole speaker tab hanging from the page top. */
.ld-audio-blackhole-tab,
.ld-audio-blackhole-tab:hover,
.ld-audio-blackhole-tab:focus,
.ld-audio-blackhole-tab:active {
	position: fixed;
	z-index: 1000003;
	top: -7px;
	left: 50%;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	margin: 0;
	padding: 0;
	color: #ffe392;
	background: transparent;
	border: 0;
	border-radius: 0 0 50% 50%;
	box-shadow: none;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translate3d(-50%, -22px, 0) scale(.28) rotate(-80deg);
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	transition:
		opacity 260ms ease 180ms,
		transform 480ms cubic-bezier(.15, .82, .22, 1) 130ms,
		visibility 0s linear 520ms;
}

.ldg1.is-audio-console-visible.is-audio-console-collapsed .ld-audio-blackhole-tab {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translate3d(-50%, 0, 0) scale(1) rotate(0deg);
	transition-delay: 0s;
}

.ld-audio-blackhole-tab::before {
	position: absolute;
	z-index: -3;
	top: 0;
	left: 50%;
	width: 18px;
	height: 12px;
	content: "";
	background: linear-gradient(180deg, #b97b18, #4e2b03);
	border-right: 1px solid #f7cf68;
	border-left: 1px solid #f7cf68;
	transform: translateX(-50%);
}

.ld-audio-blackhole-tab__orbit,
.ld-audio-blackhole-tab__core {
	position: absolute;
	inset: 8px 3px 1px;
	border-radius: 50%;
	pointer-events: none;
}

.ld-audio-blackhole-tab__orbit {
	background:
		radial-gradient(ellipse at center, transparent 0 27%, rgba(255, 153, 38, .55) 31%, transparent 48%),
		conic-gradient(from 0deg, #3b1700, #ffb13a 18%, #fff4c1 29%, #b73d08 42%, #1a0500 55%, #ffcc62 73%, #5d1800 88%, #3b1700);
	box-shadow: 0 0 14px rgba(255, 135, 19, .55), 0 0 24px rgba(255, 196, 64, .25);
	animation: ld-blackhole-spin 2.2s linear infinite;
}

.ld-audio-blackhole-tab__core {
	inset: 15px 10px 8px;
	background: radial-gradient(circle at 46% 44%, #090909, #000 68%);
	box-shadow: inset 0 0 8px #000, 0 0 7px 2px rgba(255, 175, 37, .18);
}

.ld-audio-blackhole-tab svg {
	position: relative;
	z-index: 2;
	width: 18px;
	height: 18px;
	margin-top: 7px;
	fill: currentColor;
	stroke: currentColor;
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
	filter: drop-shadow(0 0 4px rgba(255, 209, 93, .75));
}

.ld-audio-blackhole-tab svg path:last-child {
	fill: none;
}

.ld-audio-blackhole-tab:hover {
	filter: brightness(1.18);
	transform: translate3d(-50%, 1px, 0) scale(1.08) rotate(0deg) !important;
}

@keyframes ld-audio-console-arrive {
	0% {
		opacity: 0;
		transform: translate3d(-50%, -120%, 0);
	}

	68% {
		opacity: 1;
		transform: translate3d(-50%, 8px, 0);
	}

	100% {
		opacity: 1;
		transform: translate3d(-50%, 0, 0);
	}
}

@keyframes ld-audio-console-float {
	0%,
	100% {
		transform: translate3d(-50%, 0, 0);
	}

	50% {
		transform: translate3d(-50%, 4px, 0);
	}
}

@keyframes ld-audio-console-sheen {
	0%, 56% { left: -42%; }
	78%, 100% { left: 118%; }
}

@keyframes ld-audio-wave-scan {
	0% { left: -20%; }
	100% { left: 105%; }
}

@keyframes ld-blackhole-spin {
	to { transform: rotate(360deg); }
}

@keyframes ld-audio-collapse-arrow-nudge {
	0%, 100% { opacity: .62; transform: translateX(-50%) translateY(0); }
	50% { opacity: 1; transform: translateX(-50%) translateY(3px); }
}

@keyframes ld-audio-console-plughole-drain {
	0% {
		opacity: 1;
		filter: none;
		clip-path: inset(0 round 18px);
		-webkit-clip-path: inset(0 round 18px);
		transform: translate3d(0, 0, 0) scale(1) rotate(0deg);
	}
	24% {
		opacity: 1;
		filter: brightness(1.08) saturate(1.08);
		clip-path: inset(4% 4% round 23px);
		-webkit-clip-path: inset(4% 4% round 23px);
		transform: translate3d(0, 5px, 0) scale(.96, .88) rotate(0deg);
	}
	52% {
		opacity: 1 !important;
		filter: blur(.45px) brightness(1.22) saturate(1.18);
		clip-path: inset(13% 24% round 48%);
		-webkit-clip-path: inset(13% 24% round 48%);
		transform: translate3d(0, 15px, 0) scale(.72, .62) rotate(8deg);
	}
	74% {
		opacity: .72;
		filter: blur(2px) brightness(1.5) saturate(1.35);
		clip-path: inset(34% 43% round 50%);
		-webkit-clip-path: inset(34% 43% round 50%);
		transform: translate3d(0, 25px, 0) scale(.28, .28) rotate(92deg);
	}
	100% {
		opacity: 0;
		filter: blur(7px) brightness(1.45) saturate(1.35);
		clip-path: circle(.1% at 50% 50%);
		-webkit-clip-path: circle(.1% at 50% 50%);
		transform: translate3d(0, 29px, 0) scale(.02) rotate(190deg);
	}
}

@keyframes ld-audio-console-plughole-return {
	0% {
		opacity: 0;
		filter: blur(7px) brightness(1.45) saturate(1.35);
		clip-path: circle(.1% at 50% 50%);
		-webkit-clip-path: circle(.1% at 50% 50%);
		transform: translate3d(0, 29px, 0) scale(.02) rotate(-190deg);
	}
	36% {
		opacity: .72;
		filter: blur(2px) brightness(1.42) saturate(1.3);
		clip-path: inset(34% 43% round 50%);
		-webkit-clip-path: inset(34% 43% round 50%);
		transform: translate3d(0, 24px, 0) scale(.3) rotate(-86deg);
	}
	72% {
		opacity: 1;
		filter: blur(0) brightness(1.08) saturate(1.08);
		clip-path: inset(4% 4% round 23px);
		-webkit-clip-path: inset(4% 4% round 23px);
		transform: translate3d(0, 3px, 0) scale(1.015, .96) rotate(0deg);
	}
	100% {
		opacity: 1;
		filter: none;
		clip-path: inset(0 round 18px);
		-webkit-clip-path: inset(0 round 18px);
		transform: translate3d(0, 0, 0) scale(1) rotate(0deg);
	}
}

@keyframes ld-audio-plughole-open {
	0% { opacity: 0; transform: translate(-50%, -50%) scale(.12); }
	24% { opacity: .2; transform: translate(-50%, -50%) scale(.42); }
	58% { opacity: 1; transform: translate(-50%, -50%) scale(1.18); }
	82% { opacity: 1; transform: translate(-50%, -50%) scale(.82); }
	100% { opacity: 0; transform: translate(-50%, -50%) scale(.28); }
}

@keyframes ld-audio-plughole-close {
	0% { opacity: 0; transform: translate(-50%, -50%) scale(.28); }
	22% { opacity: 1; transform: translate(-50%, -50%) scale(.82); }
	54% { opacity: 1; transform: translate(-50%, -50%) scale(1.18); }
	82% { opacity: .25; transform: translate(-50%, -50%) scale(.42); }
	100% { opacity: 0; transform: translate(-50%, -50%) scale(.12); }
}


/* =========================================================
   24. AUDIO CONSOLE – TABLET AND MOBILE
   ========================================================= */

@media (max-width: 760px) {
	.ld-audio-console-shell {
		top: max(7px, env(safe-area-inset-top));
		width: min(600px, calc(100vw - 14px));
	}

	.ld-audio-console {
		grid-template-columns: 58px auto minmax(120px, 1fr) 94px;
		min-height: 54px;
		padding: 6px 31px 6px 7px;
		gap: 6px;
		border-radius: 16px;
	}

	.ld-audio-console__brand {
		grid-template-rows: 25px auto;
		row-gap: 6px;
		padding-right: 4px;
	}

	.ld-audio-console__logo {
		width: 31px;
		height: 25px;
	}

	.ld-audio-console__album-button,
	.ld-audio-console__album-button:hover,
	.ld-audio-console__album-button:focus,
	.ld-audio-console__album-button:active {
		font-size: 5.7px;
		letter-spacing: .08em;
	}

	.ld-audio-console__button,
	.ld-audio-console__button:hover,
	.ld-audio-console__button:focus,
	.ld-audio-console__button:active {
		width: 27px;
		height: 27px;
	}

	.ld-audio-console__button--play,
	.ld-audio-console__button--play:hover,
	.ld-audio-console__button--play:focus,
	.ld-audio-console__button--play:active {
		width: 32px;
		height: 32px;
	}

	.ld-audio-console__button svg {
		width: 14px;
		height: 14px;
	}

	.ld-audio-console__button--play svg {
		width: 17px;
		height: 17px;
	}

	.ld-audio-console__display {
		grid-template-rows: 22px 13px;
		padding-right: 5px;
		padding-left: 5px;
	}

	.ld-audio-console__waveform {
		height: 21px;
		gap: 2px;
	}

	.ld-audio-console__waveform span {
		height: 19px;
	}

	.ld-audio-console__timeline {
		grid-template-columns: 25px minmax(48px, 1fr) 25px;
		gap: 3px;
	}

	.ld-audio-console__timeline time {
		font-size: 7px;
	}

	.ld-audio-console input[type="range"].ld-audio-console__range--volume {
		width: 51px;
		min-width: 38px;
	}

	.ld-audio-album-card {
		left: 0;
		width: 205px;
		grid-template-columns: 92px 1fr;
	}

	.ld-audio-album-card__art {
		width: 92px;
	}
}

@media (max-width: 520px) {
	.ld-audio-console-shell {
		width: calc(100vw - 10px);
	}

	.ld-audio-console {
		grid-template-columns: 48px auto minmax(74px, 1fr) 73px;
		padding: 5px 27px 5px 5px;
		gap: 4px;
	}

	.ld-audio-console__brand {
		grid-template-rows: 22px auto;
		row-gap: 5px;
		padding: 0 3px 0 0;
	}

	.ld-audio-console__logo {
		width: 28px;
		height: 22px;
	}

	.ld-audio-console__album-button,
	.ld-audio-console__album-button:hover,
	.ld-audio-console__album-button:focus,
	.ld-audio-console__album-button:active {
		font-size: 5px;
		letter-spacing: .04em;
	}

	.ld-audio-console__transport,
	.ld-audio-console__volume {
		gap: 3px;
	}

	.ld-audio-console__button,
	.ld-audio-console__button:hover,
	.ld-audio-console__button:focus,
	.ld-audio-console__button:active {
		width: 24px;
		height: 24px;
	}

	.ld-audio-console__button--play,
	.ld-audio-console__button--play:hover,
	.ld-audio-console__button--play:focus,
	.ld-audio-console__button--play:active {
		width: 29px;
		height: 29px;
	}

	.ld-audio-console__button svg {
		width: 12px;
		height: 12px;
	}

	.ld-audio-console__button--play svg {
		width: 15px;
		height: 15px;
	}

	.ld-audio-console__display {
		grid-template-rows: 20px 12px;
		padding-right: 3px;
		padding-left: 3px;
	}

	.ld-audio-console__waveform {
		height: 19px;
		gap: 1.5px;
	}

	.ld-audio-console__waveform span {
		height: 17px;
		max-width: 3px;
	}

	.ld-audio-console__waveform span:nth-child(2n) {
		display: none;
	}

	.ld-audio-console__timeline {
		grid-template-columns: 22px minmax(34px, 1fr) 22px;
		gap: 2px;
	}

	.ld-audio-console__timeline time {
		font-size: 6px;
	}

	.ld-audio-console__volume {
		padding-left: 4px;
	}

	.ld-audio-console__button--volume {
		width: 23px;
		height: 23px;
	}

	.ld-audio-console input[type="range"].ld-audio-console__range--volume {
		width: 37px;
		min-width: 28px;
	}

	.ld-audio-console__collapse,
	.ld-audio-console__collapse:hover,
	.ld-audio-console__collapse:focus,
	.ld-audio-console__collapse:active {
		top: 4px;
		right: 5px;
		width: 20px;
		height: 20px;
	}

	.ld-audio-console__collapse-arrow {
		top: calc(100% + 3px);
		width: 9px;
		height: 7px;
	}

	.ld-audio-console__collapse-arrow svg {
		width: 9px;
		height: 7px;
	}

	.ld-audio-album-card {
		--ld-album-x: -50%;

		left: 50%;
		grid-template-columns: 86px 1fr;
		width: 194px;
	}

	.ld-audio-album-card__art {
		width: 86px;
	}

	.ld-audio-album-card::before {
		left: 18px;
	}

	.ld-audio-album-card::after {
		right: 18px;
	}
}

@media (max-width: 380px) {
	.ld-audio-console {
		grid-template-columns: 43px auto minmax(60px, 1fr) 64px;
		gap: 3px;
	}

	.ld-audio-console__button,
	.ld-audio-console__button:hover,
	.ld-audio-console__button:focus,
	.ld-audio-console__button:active {
		width: 22px;
		height: 22px;
	}

	.ld-audio-console__button--play,
	.ld-audio-console__button--play:hover,
	.ld-audio-console__button--play:focus,
	.ld-audio-console__button--play:active {
		width: 27px;
		height: 27px;
	}

	.ld-audio-console__timeline time {
		display: none;
	}

	.ld-audio-console__timeline {
		grid-template-columns: 1fr;
	}

	.ld-audio-console input[type="range"].ld-audio-console__range--volume {
		width: 32px;
		min-width: 25px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ld-audio-console-shell,
	.ld-audio-console,
	.ld-audio-console::after,
	.ld-audio-console__waveform::after,
	.ld-audio-console__waveform span,
	.ld-audio-console__suction-hole,
	.ld-audio-console__suction-orbit,
	.ld-audio-blackhole-tab,
	.ld-audio-blackhole-tab__orbit,
	.ld-audio-album-card {
		animation: none !important;
		transition-duration: .01ms !important;
	}
}

/* =========================================================
   GALLERY ONE – EXACT ENTRANCE PLAYER INTEGRATION
   Only root-state selectors differ from the entrance page.
   Every player element, size, spacing, gradient, border, shadow,
   animation and responsive breakpoint is copied from the entrance.
   ========================================================= */

.ldg1 .ld-audio-console-shell,
.ldg1 .ld-audio-blackhole-tab {
	font-family: Arial, Helvetica, sans-serif;
}

.ldg1.is-walking-to-artwork .ld-audio-console-shell,
.ldg1.is-walking-to-artwork .ld-audio-blackhole-tab {
	transform-origin: initial;
}

/* The player is fixed to the viewport and never participates in camera movement. */
.ldg1__viewport .ld-audio-console-shell,
.ldg1__viewport .ld-audio-blackhole-tab {
	display: none !important;
}

/* =========================================================
   25. EXACT ENTRANCE PLAYER – THEME/CASCADE LAYOUT LOCK

   This does not redesign the player. It repeats the Entrance master's
   structural grid values with Gallery One specificity so Themify/global
   flex, grid, button and input rules cannot rearrange the controls.
   ========================================================= */

.ldg1 .ld-audio-console-shell {
	left: 50% !important;
	width: min(680px, calc(100vw - 24px)) !important;
	max-width: none !important;
	margin: 0 !important;
}

.ldg1 .ld-audio-console {
	display: grid !important;
	grid-template-columns: 76px auto minmax(190px, 1fr) 118px !important;
	grid-template-rows: auto !important;
	grid-auto-flow: row !important;
	align-items: center !important;
	width: 100% !important;
	max-width: none !important;
	min-height: 58px !important;
	margin: 0 !important;
	padding: 7px 34px 7px 9px !important;
	gap: 9px !important;
	flex: none !important;
	flex-wrap: nowrap !important;
}

.ldg1 .ld-audio-console > * {
	min-width: 0;
}

.ldg1 .ld-audio-console__brand {
	display: grid !important;
	grid-template-columns: 1fr !important;
	grid-template-rows: 24px auto !important;
	place-items: center !important;
	row-gap: 10px !important;
	min-width: 0 !important;
	padding: 0 9px 0 2px !important;
}

.ldg1 .ld-audio-console__transport,
.ldg1 .ld-audio-console__volume {
	display: flex !important;
	flex-flow: row nowrap !important;
	align-items: center !important;
	gap: 5px !important;
}

.ldg1 .ld-audio-console__display {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	grid-template-rows: 25px 14px !important;
	align-items: center !important;
	min-width: 0 !important;
	padding: 2px 8px 0 !important;
}

.ldg1 .ld-audio-console__timeline {
	display: grid !important;
	grid-template-columns: 30px minmax(84px, 1fr) 30px !important;
	align-items: center !important;
	gap: 5px !important;
	min-width: 0 !important;
}

.ldg1 .ld-audio-console__button,
.ldg1 .ld-audio-console__button:hover,
.ldg1 .ld-audio-console__button:focus,
.ldg1 .ld-audio-console__button:active,
.ldg1 .ld-audio-console__button:visited {
	flex: 0 0 auto !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

.ldg1 .ld-audio-console input[type="range"].ld-audio-console__range {
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

@media (max-width: 760px) {
	.ldg1 .ld-audio-console-shell {
		width: min(600px, calc(100vw - 14px)) !important;
	}

	.ldg1 .ld-audio-console {
		grid-template-columns: 58px auto minmax(120px, 1fr) 94px !important;
		min-height: 54px !important;
		padding: 6px 31px 6px 7px !important;
		gap: 6px !important;
	}

	.ldg1 .ld-audio-console__brand {
		grid-template-rows: 25px auto !important;
		row-gap: 6px !important;
		padding-right: 4px !important;
	}

	.ldg1 .ld-audio-console__display {
		grid-template-rows: 22px 13px !important;
		padding-right: 5px !important;
		padding-left: 5px !important;
	}

	.ldg1 .ld-audio-console__timeline {
		grid-template-columns: 25px minmax(48px, 1fr) 25px !important;
		gap: 3px !important;
	}
}

@media (max-width: 520px) {
	.ldg1 .ld-audio-console-shell {
		width: calc(100vw - 10px) !important;
	}

	.ldg1 .ld-audio-console {
		grid-template-columns: 48px auto minmax(74px, 1fr) 73px !important;
		padding: 5px 27px 5px 5px !important;
		gap: 4px !important;
	}

	.ldg1 .ld-audio-console__brand {
		grid-template-rows: 22px auto !important;
		row-gap: 5px !important;
		padding: 0 3px 0 0 !important;
	}

	.ldg1 .ld-audio-console__transport,
	.ldg1 .ld-audio-console__volume {
		gap: 3px !important;
	}

	.ldg1 .ld-audio-console__display {
		grid-template-rows: 20px 12px !important;
		padding-right: 3px !important;
		padding-left: 3px !important;
	}

	.ldg1 .ld-audio-console__timeline {
		grid-template-columns: 22px minmax(34px, 1fr) 22px !important;
		gap: 2px !important;
	}
}

@media (max-width: 380px) {
	.ldg1 .ld-audio-console {
		grid-template-columns: 43px auto minmax(60px, 1fr) 64px !important;
		gap: 3px !important;
	}

	.ldg1 .ld-audio-console__timeline {
		grid-template-columns: 1fr !important;
	}
}



/* =========================================================
   26. ITEM 1 – STATIC ARTWORK / MP4 CYCLE

   Latley.jpg is the default content inside the transparent neon frame.
   The video slot is completely transparent and hidden before a click, so it
   cannot cover the still image with a black rectangle. During playback the
   MP4 crossfades over the still. When playback ends, JavaScript removes the
   active state and the still image becomes visible again.

   The framed video is display-only. It accepts no pointer interaction and
   exposes no native controls; the separate gold player panel controls it.
   ========================================================= */

.ldg1__media-parking {
	display: none !important;
}

/* Always show the supplied still artwork before playback. */
.ldg1__inside-artwork {
	position: absolute;
	z-index: 1;
	display: block !important;
	opacity: 1;
	visibility: visible;
	pointer-events: none;
	transition: opacity 280ms ease, visibility 0s linear 0s;
}

/* The inactive slot must not paint a background over Latley.jpg. */
.ldg1__video-slot {
	position: absolute;
	z-index: 2;
	left: 15.3%;
	top: 15.2%;
	display: block;
	width: 69.5%;
	height: 69.7%;
	overflow: hidden;
	background: transparent;
	box-shadow: none;
	opacity: 0;
	visibility: hidden;
	transform: scale(1.018);
	transition: opacity 280ms ease, visibility 0s linear 280ms;
	pointer-events: none !important;
}

.ldg1__video-slot .ldg1__frame-video,
.ldg1__video-slot .ldg1__soundtrack {
	position: absolute;
	z-index: 1;
	inset: 0;
	display: block !important;
	width: 100%;
	height: 100%;
	max-width: none;
	max-height: none;
	margin: 0;
	padding: 0;
	object-fit: cover;
	object-position: center;
	background: #050505;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	opacity: 1;
	visibility: visible;
	transform: translateZ(0);
	pointer-events: none !important;
	user-select: none;
	-webkit-user-select: none;
	-webkit-touch-callout: none;
}

/* Clicking Item 1 switches only the content inside the frame opening. */
.ldg1__exhibit.is-video-active .ldg1__video-slot,
.ldg1__mobile-exhibit.is-video-active .ldg1__video-slot {
	background: #050505;
	box-shadow:
		inset 0 0 14px rgba(0, 0, 0, .7),
		0 0 9px rgba(255, 62, 202, .22),
		0 0 12px rgba(51, 170, 255, .24);
	opacity: 1;
	visibility: visible;
	transition: opacity 280ms ease, visibility 0s linear 0s;
}

.ldg1__exhibit.is-video-active .ldg1__inside-artwork,
.ldg1__mobile-exhibit.is-video-active .ldg1__inside-artwork {
	opacity: 0;
	visibility: hidden;
	transition: opacity 280ms ease, visibility 0s linear 280ms;
}

/* The transparent neon frame and its glass stay above both media layers. */
.ldg1__artwork-shell.has-gallery-frame .ldg1__artwork {
	z-index: 3;
}

.ldg1__artwork-shell.has-gallery-frame .ldg1__artwork-glass {
	z-index: 4;
}

/* Defence-in-depth: no browser-native video control may appear in the frame. */
.ldg1__frame-video::-webkit-media-controls,
.ldg1__frame-video::-webkit-media-controls-enclosure,
.ldg1__frame-video::-webkit-media-controls-panel,
.ldg1__frame-video::-webkit-media-controls-overlay-play-button,
.ldg1__frame-video::-webkit-media-controls-play-button,
.ldg1__frame-video::-webkit-media-controls-start-playback-button,
.ldg1__frame-video::-webkit-media-controls-timeline,
.ldg1__frame-video::-webkit-media-controls-current-time-display,
.ldg1__frame-video::-webkit-media-controls-time-remaining-display,
.ldg1__frame-video::-webkit-media-controls-mute-button,
.ldg1__frame-video::-webkit-media-controls-volume-slider,
.ldg1__frame-video::-webkit-media-controls-fullscreen-button,
.ldg1__frame-video::-webkit-media-controls-picture-in-picture-button {
	display: none !important;
	opacity: 0 !important;
	-webkit-appearance: none !important;
}

/* =========================================================
   27. EXACT CLOSE-UP CENTRING
   JavaScript applies a measured pixel correction on both axes, so Item 1 can
   reach the true screen centre even though the gallery cannot scroll left of 0.
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
	.ldg1__video-slot .ldg1__frame-video,
	.ldg1__inside-artwork { transition-duration: .01ms !important; }
}

/* =========================================================
   28. V7 – RELIABLE PLAYER REVEAL + CINEMATIC CAMERA RETURN

   The player is anchored to the full-screen Gallery stage rather than the
   browser through a transformed Themify ancestor. Its direct shell state is
   controlled by Gallery JavaScript, so the reveal cannot depend on Entrance
   page state classes or an arbitrary reveal timer.
   ========================================================= */

.ldg1 > .ld-audio-console-shell {
	position: absolute !important;
	z-index: 1000006 !important;
	top: max(10px, env(safe-area-inset-top)) !important;
	left: 50% !important;
	display: block !important;
	max-width: none !important;
	margin: 0 !important;
}

.ldg1 > .ld-audio-console-shell:not(.is-ldg1-console-visible):not(.is-ldg1-console-leaving) {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
	transform: translate3d(-50%, -135%, 0) !important;
	animation: none !important;
}

.ldg1 > .ld-audio-console-shell.is-ldg1-console-visible {
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	animation:
		ld-audio-console-arrive 1.05s cubic-bezier(.16, .78, .22, 1) both,
		ld-audio-console-float 5.8s ease-in-out 1.05s infinite !important;
}

.ldg1 > .ld-audio-console-shell.is-ldg1-console-visible::before,
.ldg1 > .ld-audio-console-shell.is-ldg1-console-visible::after {
	opacity: 1 !important;
}

.ldg1 > .ld-audio-console-shell.is-ldg1-console-leaving {
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: none !important;
	animation: ldg1-audio-console-depart 680ms cubic-bezier(.55, .02, .78, .34) both !important;
}

@keyframes ldg1-audio-console-depart {
	0% {
		opacity: 1;
		transform: translate3d(-50%, 0, 0);
	}
	38% {
		opacity: 1;
		transform: translate3d(-50%, 5px, 0);
	}
	100% {
		opacity: 0;
		transform: translate3d(-50%, -135%, 0);
	}
}

/* Keep the close-up environmental treatment active after the approach ends. */
.ldg1.is-artwork-focused .ldg1__viewport {
	filter: saturate(1.05) contrast(1.025);
}

.ldg1.is-artwork-focused::after {
	opacity: 1;
}

/* The first exit gesture performs the backward walk. It must not also drag or
   horizontally scroll the room during that return journey. */
.ldg1.is-returning-from-artwork .ldg1__viewport {
	cursor: default;
	pointer-events: none;
	filter: saturate(1.025) contrast(1.012);
}

.ldg1.is-returning-from-artwork::after {
	opacity: .22;
	transition: opacity 1.75s ease;
}

.ldg1.is-walking-to-artwork .ldg1__hud,
.ldg1.is-walking-to-artwork .ldg1__instruction,
.ldg1.is-walking-to-artwork .ldg1__page-link,
.ldg1.is-artwork-focused .ldg1__hud,
.ldg1.is-artwork-focused .ldg1__instruction,
.ldg1.is-artwork-focused .ldg1__page-link,
.ldg1.is-returning-from-artwork .ldg1__hud,
.ldg1.is-returning-from-artwork .ldg1__instruction,
.ldg1.is-returning-from-artwork .ldg1__page-link {
	opacity: 0 !important;
	pointer-events: none !important;
}

.ldg1 > .ld-audio-blackhole-tab {
	position: absolute !important;
	z-index: 1000007 !important;
}

@media (prefers-reduced-motion: reduce) {
	.ldg1 > .ld-audio-console-shell.is-ldg1-console-visible,
	.ldg1 > .ld-audio-console-shell.is-ldg1-console-leaving {
		animation-duration: 1ms !important;
	}
}


/* =========================================================
   29. V7 – CANVAS VIDEO OUTPUT, CLOSER CAMERA AND PLAYER LOCK

   The actual MP4 element is permanently parked outside the visible viewport.
   Its decoded picture is copied into a canvas inside Item 1. Browser-native
   media controls therefore have no visible video element to attach to.
   ========================================================= */

/* Keep the source video decoding, but make it physically impossible to see or
   interact with. Do not use display:none because some Safari versions stop
   producing video frames for hidden media. */
.ldg1 .ldg1__media-parking {
	position: absolute !important;
	z-index: -100 !important;
	top: -20px !important;
	left: -20px !important;
	display: block !important;
	width: 2px !important;
	height: 2px !important;
	overflow: hidden !important;
	opacity: 0 !important;
	visibility: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(100%) !important;
	pointer-events: none !important;
}

.ldg1 .ldg1__media-parking .ldg1__soundtrack,
.ldg1 .ldg1__media-parking video[data-ldg1-audio] {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 2px !important;
	height: 2px !important;
	max-width: 2px !important;
	max-height: 2px !important;
	margin: 0 !important;
	padding: 0 !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.ldg1__video-canvas {
	position: absolute;
	z-index: 1;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	max-height: none;
	margin: 0;
	padding: 0;
	background: #050505;
	border: 0;
	box-shadow: none;
	object-fit: cover;
	pointer-events: none !important;
	user-select: none;
	-webkit-user-select: none;
}

/* The JPG stays visible until JavaScript has successfully painted a decoded
   MP4 frame. This prevents a black flash while playback starts. */
.ldg1__exhibit.is-video-active:not(.is-video-frame-ready) .ldg1__video-slot,
.ldg1__mobile-exhibit.is-video-active:not(.is-video-frame-ready) .ldg1__video-slot {
	background: transparent !important;
	box-shadow: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
}

.ldg1__exhibit.is-video-frame-ready .ldg1__video-slot,
.ldg1__mobile-exhibit.is-video-frame-ready .ldg1__video-slot {
	background: #050505 !important;
	box-shadow:
		inset 0 0 14px rgba(0, 0, 0, .7),
		0 0 9px rgba(255, 62, 202, .22),
		0 0 12px rgba(51, 170, 255, .24) !important;
	opacity: 1 !important;
	visibility: visible !important;
	transition: opacity 220ms ease, visibility 0s linear 0s !important;
}

.ldg1__exhibit.is-video-active:not(.is-video-frame-ready) .ldg1__inside-artwork,
.ldg1__mobile-exhibit.is-video-active:not(.is-video-frame-ready) .ldg1__inside-artwork {
	opacity: 1 !important;
	visibility: visible !important;
}

.ldg1__exhibit.is-video-frame-ready .ldg1__inside-artwork,
.ldg1__mobile-exhibit.is-video-frame-ready .ldg1__inside-artwork {
	opacity: 0 !important;
	visibility: hidden !important;
	transition: opacity 220ms ease, visibility 0s linear 220ms !important;
}

/* Player geometry is locked in every interaction state. Themify/global button
   typography cannot enlarge Album Art, wrap it or change the panel height. */
.ldg1 > .ld-audio-console-shell {
	width: min(680px, calc(100vw - 24px)) !important;
	height: 58px !important;
	min-height: 58px !important;
	max-height: 58px !important;
	contain: layout style !important;
}

.ldg1 > .ld-audio-console-shell .ld-audio-console,
.ldg1 > .ld-audio-console-shell .ld-audio-console:hover,
.ldg1 > .ld-audio-console-shell .ld-audio-console:focus-within {
	display: grid !important;
	grid-template-columns: 76px auto minmax(190px, 1fr) 118px !important;
	grid-template-rows: 44px !important;
	align-items: center !important;
	width: 100% !important;
	height: 58px !important;
	min-height: 58px !important;
	max-height: 58px !important;
	margin: 0 !important;
	padding: 7px 34px 7px 9px !important;
	gap: 9px !important;
	overflow: hidden !important;
}

.ldg1 > .ld-audio-console-shell .ld-audio-console__brand {
	display: grid !important;
	grid-template-columns: 1fr !important;
	grid-template-rows: 24px 10px !important;
	place-items: center !important;
	align-content: center !important;
	row-gap: 5px !important;
	width: 76px !important;
	min-width: 76px !important;
	max-width: 76px !important;
	height: 44px !important;
	min-height: 44px !important;
	max-height: 44px !important;
	margin: 0 !important;
	padding: 0 9px 0 2px !important;
	overflow: hidden !important;
}

.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button,
.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button:hover,
.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button:focus,
.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button:focus-visible,
.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button:active,
.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button:visited {
	display: block !important;
	box-sizing: border-box !important;
	width: 64px !important;
	min-width: 64px !important;
	max-width: 64px !important;
	height: 10px !important;
	min-height: 10px !important;
	max-height: 10px !important;
	margin: 0 !important;
	padding: 0 2px 1px !important;
	overflow: hidden !important;
	color: rgba(255, 232, 166, .76) !important;
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(255, 201, 56, .36) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 6.5px !important;
	font-style: normal !important;
	font-weight: 800 !important;
	line-height: 8px !important;
	letter-spacing: .14em !important;
	text-align: center !important;
	text-indent: 0 !important;
	text-transform: uppercase !important;
	white-space: nowrap !important;
	word-break: normal !important;
	overflow-wrap: normal !important;
	writing-mode: horizontal-tb !important;
	transform: none !important;
	transition: color 180ms ease, border-color 180ms ease, text-shadow 180ms ease !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button::before,
.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button::after {
	display: none !important;
	content: none !important;
}

.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button:hover,
.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button:focus-visible,
.ldg1.is-audio-album-open > .ld-audio-console-shell .ld-audio-console__album-button {
	color: #fff4bd !important;
	border-bottom-color: #f5c64c !important;
	text-shadow: 0 0 8px rgba(255, 195, 40, .52) !important;
}

@media (max-width: 760px) {
	.ldg1 > .ld-audio-console-shell {
		width: min(600px, calc(100vw - 14px)) !important;
		height: 54px !important;
		min-height: 54px !important;
		max-height: 54px !important;
	}

	.ldg1 > .ld-audio-console-shell .ld-audio-console,
	.ldg1 > .ld-audio-console-shell .ld-audio-console:hover,
	.ldg1 > .ld-audio-console-shell .ld-audio-console:focus-within {
		grid-template-columns: 58px auto minmax(120px, 1fr) 94px !important;
		grid-template-rows: 42px !important;
		height: 54px !important;
		min-height: 54px !important;
		max-height: 54px !important;
		padding: 6px 31px 6px 7px !important;
		gap: 6px !important;
	}

	.ldg1 > .ld-audio-console-shell .ld-audio-console__brand {
		grid-template-rows: 25px 9px !important;
		row-gap: 4px !important;
		width: 58px !important;
		min-width: 58px !important;
		max-width: 58px !important;
		height: 42px !important;
		min-height: 42px !important;
		max-height: 42px !important;
		padding: 0 4px 0 0 !important;
	}

	.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button,
	.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button:hover,
	.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button:focus,
	.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button:active {
		width: 52px !important;
		min-width: 52px !important;
		max-width: 52px !important;
		height: 9px !important;
		min-height: 9px !important;
		max-height: 9px !important;
		font-size: 5.7px !important;
		line-height: 7px !important;
		letter-spacing: .08em !important;
	}
}

@media (max-width: 520px) {
	.ldg1 > .ld-audio-console-shell .ld-audio-console,
	.ldg1 > .ld-audio-console-shell .ld-audio-console:hover,
	.ldg1 > .ld-audio-console-shell .ld-audio-console:focus-within {
		grid-template-columns: 48px auto minmax(74px, 1fr) 73px !important;
	}

	.ldg1 > .ld-audio-console-shell .ld-audio-console__brand {
		width: 48px !important;
		min-width: 48px !important;
		max-width: 48px !important;
		padding: 0 3px 0 0 !important;
	}

	.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button,
	.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button:hover,
	.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button:focus,
	.ldg1 > .ld-audio-console-shell .ld-audio-console__album-button:active {
		width: 43px !important;
		min-width: 43px !important;
		max-width: 43px !important;
		font-size: 5px !important;
		line-height: 7px !important;
		letter-spacing: .04em !important;
	}
}



/* =========================================================
   27. V9 MOBILE / SMALL-SCREEN CONTINUOUS WALL FIX
   =========================================================

   The earlier portrait layout used six separate cropped slides. Because each
   slide carried its own background crop while the frame was independently
   centred, the wall appeared static and the frame could drift away from the
   recessed square in the room image.

   V9 uses the exact same continuous two-room track at every screen size. The
   wall and the exhibits therefore share one coordinate system and always move
   together. The legacy mobile-card track remains in the PHP only for safe
   backwards compatibility and is permanently hidden here.
   ========================================================= */

.ldg1__viewport {
	touch-action: pan-x pinch-zoom;
}

.ldg1__track--mobile {
	display: none !important;
}

@media (max-width: 768px) and (orientation: portrait) {
	.ldg1 {
		/* Preserve the exact source-image ratios for both gallery environments. */
		--ldg1-room-width: max(100vw, 233.236svh);
		--ldg1-studio-room-width: max(100vw, 228.765792svh);
	}

	@supports (height: 100dvh) {
		.ldg1 {
			height: 100dvh;
			--ldg1-room-width: max(100vw, 233.236dvh);
			--ldg1-studio-room-width: max(100vw, 228.765792dvh);
		}
	}

	.ldg1__viewport {
		overflow-x: auto !important;
		overflow-y: hidden !important;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: 50vw;
		overscroll-behavior-x: contain;
		-webkit-overflow-scrolling: touch;
		touch-action: pan-x pinch-zoom;
		cursor: default;
	}

	.ldg1__track--desktop {
		display: flex !important;
		align-items: stretch;
		width: max-content;
		height: 100%;
		min-height: 100%;
	}

	.ldg1__track--mobile,
	.ldg1__mobile-slide,
	.ldg1__mobile-exhibit {
		display: none !important;
	}

	.ldg1__room {
		flex: 0 0 var(--ldg1-room-width);
		width: var(--ldg1-room-width);
		height: 100%;
		background-position: center center;
		background-size: calc(100% + 2px) 100%;
	}

	/* Room 4 preserves the 2048 × 878 design-coordinate mapping on portrait phones. */
	.ldg1__room--four {
		flex: 0 0 var(--ldg1-studio-room-width);
		width: var(--ldg1-studio-room-width);
		background-image: var(--ldg1-studio-background-image, var(--ldg1-background-image));
		background-position: 50% 50%;
		background-size: 100% 100%;
	}

	.ldg1__exhibit,
	.ldg1__exhibit:hover,
	.ldg1__exhibit:focus,
	.ldg1__exhibit:active {
		scroll-snap-align: center;
		scroll-snap-stop: always;
		touch-action: pan-x;
	}

	/* Keep captions out of the way on the smaller resting view. */
	.ldg1__exhibit .ldg1__caption {
		bottom: -48px;
	}
}

@media (max-width: 420px) and (orientation: portrait) {
	.ldg1__nav--previous {
		left: max(2px, env(safe-area-inset-left));
	}

	.ldg1__nav--next {
		right: max(2px, env(safe-area-inset-right));
	}

	.ldg1__progress {
		width: 46vw;
	}
}


/* =========================================================
   V13 — CONTROLLED COLD-START NEON INTERACTION
   The resting glow remains unchanged. Hover gives one shorter ignition.
   A clicked frame stays fully and steadily illuminated while media plays.
   Returning to the gallery restores the normal resting glow.
   ========================================================= */

.ldg1__exhibit .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit .ldg1__artwork-shell.has-gallery-frame {
	transition: filter 220ms ease;
}

/* Shorter cold-start with only two small falters before the light catches. */
.ldg1__exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame {
	animation: ldg1-neon-shell-cold-start var(--ldg1-neon-ignition-duration, .72s) steps(1, end) both !important;
}

.ldg1__exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame::before {
	animation: ldg1-neon-backlight-cold-start var(--ldg1-neon-ignition-duration, .72s) steps(1, end) both !important;
}

.ldg1__exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__mobile-exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame::after {
	animation: ldg1-neon-edge-cold-start var(--ldg1-neon-ignition-duration, .72s) steps(1, end) both !important;
}

/* Hover/focus remains gently illuminated only before the frame is selected. */
.ldg1__exhibit:hover:not(.is-neon-starting):not(.is-neon-engaged):not(.is-neon-cooldown) .ldg1__artwork-shell.has-gallery-frame,
.ldg1__exhibit:focus-visible:not(.is-neon-starting):not(.is-neon-engaged):not(.is-neon-cooldown) .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit:hover:not(.is-neon-starting):not(.is-neon-engaged):not(.is-neon-cooldown) .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit:focus-visible:not(.is-neon-starting):not(.is-neon-engaged):not(.is-neon-cooldown) .ldg1__artwork-shell.has-gallery-frame {
	filter: brightness(1.15) saturate(1.14) !important;
	box-shadow: none !important;
	transform: none !important;
}

.ldg1__exhibit:hover:not(.is-neon-starting):not(.is-neon-engaged):not(.is-neon-cooldown) .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit:focus-visible:not(.is-neon-starting):not(.is-neon-engaged):not(.is-neon-cooldown) .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit:hover:not(.is-neon-starting):not(.is-neon-engaged):not(.is-neon-cooldown) .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit:focus-visible:not(.is-neon-starting):not(.is-neon-engaged):not(.is-neon-cooldown) .ldg1__artwork-shell.has-gallery-frame::before {
	animation: ldg1-neon-backlight-hot 4.2s ease-in-out infinite !important;
	mix-blend-mode: screen;
}

.ldg1__exhibit:hover:not(.is-neon-starting):not(.is-neon-engaged):not(.is-neon-cooldown) .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit:focus-visible:not(.is-neon-starting):not(.is-neon-engaged):not(.is-neon-cooldown) .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__mobile-exhibit:hover:not(.is-neon-starting):not(.is-neon-engaged):not(.is-neon-cooldown) .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__mobile-exhibit:focus-visible:not(.is-neon-starting):not(.is-neon-engaged):not(.is-neon-cooldown) .ldg1__artwork-shell.has-gallery-frame::after {
	animation: ldg1-neon-edge-hot 4.2s ease-in-out infinite !important;
}

/* Selected/listening state: fully on and steady with no repeated flicker. */
.ldg1__exhibit.is-neon-engaged:not(.is-neon-starting) .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit.is-neon-engaged:not(.is-neon-starting) .ldg1__artwork-shell.has-gallery-frame {
	filter: brightness(1.15) saturate(1.14) !important;
	box-shadow: none !important;
	transform: none !important;
}

.ldg1__exhibit.is-neon-engaged:not(.is-neon-starting) .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit.is-neon-engaged:not(.is-neon-starting) .ldg1__artwork-shell.has-gallery-frame::before {
	animation: none !important;
	opacity: .98 !important;
	filter: blur(15px) brightness(1.38) saturate(1.18) !important;
	transform: scale(1.055) !important;
	mix-blend-mode: screen;
}

.ldg1__exhibit.is-neon-engaged:not(.is-neon-starting) .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__mobile-exhibit.is-neon-engaged:not(.is-neon-starting) .ldg1__artwork-shell.has-gallery-frame::after {
	animation: none !important;
	opacity: .98 !important;
	box-shadow:
		0 0 13px var(--ldg1-frame-glow, rgba(255, 188, 45, .58)),
		0 0 36px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .34)),
		0 0 56px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .22)),
		inset 0 0 15px rgba(255, 247, 217, .17) !important;
}

/* Returning to the gallery restores the normal resting glow immediately. */
.ldg1__exhibit.is-neon-cooldown .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit.is-neon-cooldown .ldg1__artwork-shell.has-gallery-frame {
	filter: none !important;
	box-shadow: none !important;
	transform: none !important;
}

.ldg1__exhibit.is-neon-cooldown .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit.is-neon-cooldown .ldg1__artwork-shell.has-gallery-frame::before {
	animation: ldg1-frame-backlight-breathe 4.8s ease-in-out infinite !important;
	opacity: .86 !important;
	filter: blur(10px) !important;
	transform: none !important;
}

.ldg1__exhibit.is-neon-cooldown .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__mobile-exhibit.is-neon-cooldown .ldg1__artwork-shell.has-gallery-frame::after {
	animation: ldg1-frame-edge-breathe 4.8s ease-in-out infinite !important;
	opacity: .78 !important;
	box-shadow:
		0 0 6px var(--ldg1-frame-glow, rgba(255, 188, 45, .36)),
		0 0 16px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .18)),
		inset 0 0 8px rgba(255, 237, 184, .07) !important;
}

@keyframes ldg1-neon-shell-cold-start {
	0%   { filter: brightness(1.02) saturate(1.04); }
	14%  { filter: brightness(1.22) saturate(1.17); }
	27%  { filter: brightness(.93) saturate(.98); }
	43%  { filter: brightness(1.25) saturate(1.20); }
	58%  { filter: brightness(1.02) saturate(1.04); }
	76%  { filter: brightness(1.18) saturate(1.15); }
	100% { filter: brightness(1.15) saturate(1.14); }
}

@keyframes ldg1-neon-backlight-cold-start {
	0% { opacity: .86; filter: blur(10px) brightness(1.04); transform: scale(1); }
	14% { opacity: 1; filter: blur(15px) brightness(1.46) saturate(1.18); transform: scale(1.055); }
	27% { opacity: .54; filter: blur(9px) brightness(.94); transform: scale(1.008); }
	43% { opacity: 1; filter: blur(16px) brightness(1.52) saturate(1.22); transform: scale(1.065); }
	58% { opacity: .76; filter: blur(12px) brightness(1.10); transform: scale(1.028); }
	76%, 100% { opacity: .98; filter: blur(15px) brightness(1.38) saturate(1.18); transform: scale(1.055); }
}

@keyframes ldg1-neon-edge-cold-start {
	0% { opacity: .78; box-shadow: 0 0 6px var(--ldg1-frame-glow, rgba(255, 188, 45, .36)), 0 0 16px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .18)), inset 0 0 8px rgba(255, 237, 184, .07); }
	14% { opacity: 1; box-shadow: 0 0 13px var(--ldg1-frame-glow, rgba(255, 188, 45, .56)), 0 0 34px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .34)), 0 0 52px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .22)), inset 0 0 15px rgba(255, 244, 205, .17); }
	27% { opacity: .52; box-shadow: 0 0 5px var(--ldg1-frame-glow, rgba(255, 188, 45, .34)), 0 0 13px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .15)), inset 0 0 7px rgba(255, 237, 184, .06); }
	43% { opacity: 1; box-shadow: 0 0 15px var(--ldg1-frame-glow, rgba(255, 188, 45, .62)), 0 0 40px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .38)), 0 0 60px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .24)), inset 0 0 17px rgba(255, 247, 217, .20); }
	58% { opacity: .74; box-shadow: 0 0 8px var(--ldg1-frame-glow, rgba(255, 188, 45, .42)), 0 0 22px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .22)), inset 0 0 10px rgba(255, 244, 205, .10); }
	76%, 100% { opacity: .98; box-shadow: 0 0 13px var(--ldg1-frame-glow, rgba(255, 188, 45, .58)), 0 0 36px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .34)), 0 0 56px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .22)), inset 0 0 15px rgba(255, 247, 217, .17); }
}

@keyframes ldg1-neon-backlight-hot {
	0%, 100% { opacity: .94; filter: blur(14px) brightness(1.26) saturate(1.13); transform: scale(1.045); }
	50% { opacity: 1; filter: blur(16px) brightness(1.40) saturate(1.19); transform: scale(1.065); }
}

@keyframes ldg1-neon-edge-hot {
	0%, 100% { opacity: .92; box-shadow: 0 0 11px var(--ldg1-frame-glow, rgba(255, 188, 45, .52)), 0 0 30px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .28)), 0 0 46px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .18)), inset 0 0 13px rgba(255, 244, 205, .14); }
	50% { opacity: .98; box-shadow: 0 0 14px var(--ldg1-frame-glow, rgba(255, 188, 45, .59)), 0 0 38px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .34)), 0 0 58px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .22)), inset 0 0 16px rgba(255, 247, 217, .18); }
}

@media (prefers-reduced-motion: reduce) {
	.ldg1__exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame,
	.ldg1__mobile-exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame {
		animation: none !important;
		filter: brightness(1.15) saturate(1.14) !important;
	}

	.ldg1__exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame::before,
	.ldg1__mobile-exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame::before {
		animation: none !important;
		opacity: .98;
		filter: blur(15px) brightness(1.38) saturate(1.18);
		transform: scale(1.055);
	}

	.ldg1__exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame::after,
	.ldg1__mobile-exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame::after {
		animation: none !important;
		opacity: .98;
		box-shadow: 0 0 13px var(--ldg1-frame-glow, rgba(255, 188, 45, .58)), 0 0 36px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .34)), 0 0 56px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .22)), inset 0 0 15px rgba(255, 247, 217, .17);
	}
}

/* =========================================================
   V15 — SOFTER MOVING WATER-LIGHT PLAY BUTTONS
   The light is deliberately less bright, but the coloured shimmer
   now moves clearly and continuously behind the full glass button.
   ========================================================= */

.ldg1__play-trigger {
	position: absolute;
	z-index: 22;
	left: 50%;
	bottom: -48px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	transform: translateX(-50%);
	pointer-events: auto;
	cursor: pointer;
	touch-action: manipulation;
	isolation: isolate;
}

/* No circular outer halo. */
.ldg1__play-trigger::before,
.ldg1__play-trigger::after {
	content: none;
}

/* Full-button moving colour field behind the translucent artwork. */
.ldg1__play-trigger-fx {
	position: absolute;
	pointer-events: none;
	inset: 0;
	overflow: hidden;
	border-radius: 11px;
	z-index: 1;
	opacity: .72;
	mix-blend-mode: screen;
	filter: blur(1.1px) saturate(1.18) brightness(.90);
	background:
		radial-gradient(circle at 12% 18%, rgba(255, 86, 212, .28) 0%, rgba(255, 86, 212, 0) 30%),
		radial-gradient(circle at 88% 16%, rgba(78, 202, 255, .27) 0%, rgba(78, 202, 255, 0) 30%),
		radial-gradient(circle at 18% 86%, rgba(170, 111, 255, .22) 0%, rgba(170, 111, 255, 0) 31%),
		radial-gradient(circle at 86% 82%, rgba(111, 255, 237, .20) 0%, rgba(111, 255, 237, 0) 32%),
		radial-gradient(circle at 50% 50%, rgba(255, 222, 136, .46) 0%, rgba(255, 198, 104, .26) 25%, rgba(255, 176, 71, .08) 50%, rgba(255, 176, 71, 0) 72%);
	background-size:
		92% 92%,
		96% 96%,
		94% 94%,
		98% 98%,
		120% 120%;
	background-repeat: no-repeat;
	animation: ldg1-play-water-drift 6.8s cubic-bezier(.45,.05,.55,.95) infinite alternate;
	will-change: transform, background-position, opacity;
}

.ldg1__play-trigger-fx::before,
.ldg1__play-trigger-fx::after {
	content: "";
	position: absolute;
	inset: -22%;
	border-radius: inherit;
	pointer-events: none;
	mix-blend-mode: screen;
	will-change: transform, opacity;
}

/* Slow translucent light ribbon that visibly travels across the button. */
.ldg1__play-trigger-fx::before {
	background:
		linear-gradient(
			112deg,
			rgba(255,255,255,0) 0%,
			rgba(90,210,255,.08) 18%,
			rgba(255,255,255,.13) 34%,
			rgba(255,208,134,.06) 48%,
			rgba(255,95,212,.09) 64%,
			rgba(255,255,255,0) 82%
		);
	filter: blur(2.4px);
	opacity: .64;
	transform: translate3d(-24%, -10%, 0) rotate(-7deg) scale(1.2);
	animation: ldg1-play-water-ribbon 7.4s ease-in-out infinite;
}

/* Separate pools drift at a different rate to avoid a static appearance. */
.ldg1__play-trigger-fx::after {
	background:
		radial-gradient(ellipse at 24% 34%, rgba(255,110,220,.13) 0%, rgba(255,110,220,0) 25%),
		radial-gradient(ellipse at 70% 28%, rgba(82,210,255,.14) 0%, rgba(82,210,255,0) 26%),
		radial-gradient(ellipse at 38% 76%, rgba(255,219,126,.12) 0%, rgba(255,219,126,0) 28%),
		radial-gradient(ellipse at 78% 74%, rgba(123,255,235,.10) 0%, rgba(123,255,235,0) 28%);
	filter: blur(2px);
	opacity: .72;
	transform: translate3d(0, 0, 0) scale(1.08);
	animation: ldg1-play-colour-pools 9.2s ease-in-out infinite alternate;
}

.ldg1__play-trigger-img {
	position: relative;
	pointer-events: none;
	z-index: 2;
	display: block;
	width: 100%;
	height: auto;
	max-width: 44px;
	opacity: .86;
	mix-blend-mode: screen;
	filter:
		drop-shadow(0 0 2px rgba(255, 214, 126, .12))
		drop-shadow(0 0 6px rgba(255, 165, 30, .07));
	transform: translateZ(0) scale(1);
	transition: transform .22s ease, filter .22s ease, opacity .22s ease;
}

/* Small, infrequent sparkles. */
.ldg1__play-spark {
	position: absolute;
	pointer-events: none;
	width: 2.5px;
	height: 2.5px;
	border-radius: 50%;
	opacity: 0;
	filter: blur(.3px);
	mix-blend-mode: screen;
	animation: ldg1-play-soft-sparkle 6.4s ease-in-out infinite;
}

.ldg1__play-spark.s1 { left: 20%; top: 26%; background: #ff58d0; animation-delay: .4s; }
.ldg1__play-spark.s2 { left: 72%; top: 22%; background: #50ccff; animation-delay: 1.7s; }
.ldg1__play-spark.s3 { left: 52%; top: 50%; background: #ffd34f; animation-delay: 3.0s; }
.ldg1__play-spark.s4 { left: 34%; top: 72%; background: #a86cff; animation-delay: 4.2s; }
.ldg1__play-spark.s5 { left: 70%; top: 68%; background: #73fff3; animation-delay: 5.3s; }

/* Interaction makes the motion slightly richer, not dramatically brighter. */
.ldg1__exhibit:hover .ldg1__play-trigger-fx,
.ldg1__exhibit:focus-visible .ldg1__play-trigger-fx,
.ldg1__exhibit.is-current .ldg1__play-trigger-fx,
.ldg1__exhibit.is-neon-engaged .ldg1__play-trigger-fx,
.ldg1__mobile-exhibit:hover .ldg1__play-trigger-fx,
.ldg1__mobile-exhibit:focus-visible .ldg1__play-trigger-fx,
.ldg1__mobile-exhibit.is-current .ldg1__play-trigger-fx,
.ldg1__mobile-exhibit.is-neon-engaged .ldg1__play-trigger-fx {
	opacity: .82;
	filter: blur(1.15px) saturate(1.26) brightness(.98);
	animation-duration: 5.6s;
}

.ldg1__exhibit:hover .ldg1__play-trigger-img,
.ldg1__exhibit:focus-visible .ldg1__play-trigger-img,
.ldg1__exhibit.is-current .ldg1__play-trigger-img,
.ldg1__exhibit.is-neon-engaged .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:hover .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:focus-visible .ldg1__play-trigger-img,
.ldg1__mobile-exhibit.is-current .ldg1__play-trigger-img,
.ldg1__mobile-exhibit.is-neon-engaged .ldg1__play-trigger-img {
	transform: translateZ(0) scale(1.025);
	opacity: .90;
	filter:
		drop-shadow(0 0 3px rgba(255, 219, 140, .15))
		drop-shadow(0 0 7px rgba(255, 165, 30, .08));
}

.ldg1__mobile-exhibit .ldg1__play-trigger {
	bottom: -44px;
	width: 40px;
	height: 40px;
}

.ldg1__mobile-exhibit .ldg1__play-trigger-img {
	max-width: 40px;
}

@media (max-width: 991px) {
	.ldg1__play-trigger {
		bottom: -45px;
		width: 41px;
		height: 41px;
	}

	.ldg1__play-trigger-img {
		max-width: 41px;
	}
}

@media (max-width: 767px) {
	.ldg1__play-trigger {
		bottom: -42px;
		width: 38px;
		height: 38px;
	}

	.ldg1__play-trigger-img {
		max-width: 38px;
	}
}

@keyframes ldg1-play-water-drift {
	0% {
		background-position:
			-18% -12%,
			112% -10%,
			-14% 112%,
			110% 108%,
			48% 52%;
		transform: translate3d(-2px, 1px, 0) scale(1.02);
		opacity: .66;
	}
	25% {
		background-position:
			8% 18%,
			84% 10%,
			16% 88%,
			88% 78%,
			56% 44%;
		transform: translate3d(2px, -2px, 0) scale(1.06);
		opacity: .74;
	}
	50% {
		background-position:
			28% 40%,
			64% 26%,
			32% 68%,
			70% 58%,
			42% 58%;
		transform: translate3d(-1px, -1px, 0) scale(1.04);
		opacity: .69;
	}
	75% {
		background-position:
			48% 18%,
			44% 54%,
			52% 54%,
			50% 72%,
			60% 48%;
		transform: translate3d(2px, 2px, 0) scale(1.08);
		opacity: .76;
	}
	100% {
		background-position:
			78% 8%,
			18% 74%,
			82% 30%,
			22% 48%,
			46% 54%;
		transform: translate3d(-2px, 1px, 0) scale(1.03);
		opacity: .68;
	}
}

@keyframes ldg1-play-water-ribbon {
	0% {
		transform: translate3d(-32%, -12%, 0) rotate(-9deg) scale(1.20);
		opacity: .46;
	}
	35% {
		transform: translate3d(-4%, 6%, 0) rotate(-2deg) scale(1.24);
		opacity: .68;
	}
	70% {
		transform: translate3d(18%, -3%, 0) rotate(5deg) scale(1.22);
		opacity: .58;
	}
	100% {
		transform: translate3d(34%, 10%, 0) rotate(9deg) scale(1.18);
		opacity: .48;
	}
}

@keyframes ldg1-play-colour-pools {
	0% {
		transform: translate3d(-6%, -4%, 0) scale(1.06) rotate(-3deg);
		opacity: .62;
	}
	33% {
		transform: translate3d(4%, -1%, 0) scale(1.13) rotate(2deg);
		opacity: .78;
	}
	66% {
		transform: translate3d(-2%, 5%, 0) scale(1.09) rotate(-1deg);
		opacity: .68;
	}
	100% {
		transform: translate3d(6%, 3%, 0) scale(1.14) rotate(4deg);
		opacity: .75;
	}
}

@keyframes ldg1-play-soft-sparkle {
	0%, 100% {
		transform: scale(.2);
		opacity: 0;
	}
	14% {
		transform: scale(.7);
		opacity: .18;
	}
	24% {
		transform: scale(1);
		opacity: .46;
	}
	38% {
		transform: scale(.55);
		opacity: .10;
	}
	55% {
		opacity: 0;
	}
}

/* =========================================================
   V19 — FIXED FRAME AND PLAY-BUTTON GEOMETRY
   The frame and button never move, scale or nudge on hover/click.
   The button sits fully below the frame and its light is clipped
   inside the button area so no colour passes in front of the frame.
   ========================================================= */

/* Keep each whole exhibit physically fixed while interacting. */
.ldg1__exhibit,
.ldg1__exhibit:hover,
.ldg1__exhibit:focus,
.ldg1__exhibit:focus-visible,
.ldg1__exhibit:active,
.ldg1__mobile-exhibit,
.ldg1__mobile-exhibit:hover,
.ldg1__mobile-exhibit:focus,
.ldg1__mobile-exhibit:focus-visible,
.ldg1__mobile-exhibit:active {
	transform: none !important;
}

/* The frame shell and its illuminated layers may change brightness,
   but they are not allowed to scale or shift. */
.ldg1__artwork-shell.has-gallery-frame,
.ldg1__exhibit:hover .ldg1__artwork-shell.has-gallery-frame,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame,
.ldg1__exhibit:active .ldg1__artwork-shell.has-gallery-frame,
.ldg1__exhibit.is-current .ldg1__artwork-shell.has-gallery-frame,
.ldg1__exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame,
.ldg1__exhibit.is-neon-engaged .ldg1__artwork-shell.has-gallery-frame,
.ldg1__exhibit.is-neon-cooldown .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit:hover .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit:active .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit.is-current .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit.is-neon-engaged .ldg1__artwork-shell.has-gallery-frame,
.ldg1__mobile-exhibit.is-neon-cooldown .ldg1__artwork-shell.has-gallery-frame {
	transform: none !important;
}

.ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit:hover .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit:hover .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit:active .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit:active .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit.is-current .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit.is-current .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit.is-neon-engaged .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit.is-neon-engaged .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit.is-neon-cooldown .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit.is-neon-cooldown .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__mobile-exhibit:hover .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit:hover .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__mobile-exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__mobile-exhibit:active .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit:active .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__mobile-exhibit.is-current .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit.is-current .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__mobile-exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__mobile-exhibit.is-neon-engaged .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit.is-neon-engaged .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__mobile-exhibit.is-neon-cooldown .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit.is-neon-cooldown .ldg1__artwork-shell.has-gallery-frame::after {
	transform: none !important;
}

/* Preserve each frame's intended static fit in every state. */
.ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__exhibit:hover .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__exhibit:active .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__exhibit.is-current .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__exhibit.is-neon-engaged .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__mobile-exhibit:hover .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__mobile-exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__mobile-exhibit:active .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__mobile-exhibit.is-current .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__mobile-exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork,
.ldg1__mobile-exhibit.is-neon-engaged .ldg1__artwork-shell.has-gallery-frame .ldg1__artwork {
	transform: scale(1.025) !important;
	transition-property: filter, opacity !important;
}

.ldg1__artwork-shell--graphiti .ldg1__artwork,
.ldg1__exhibit:hover .ldg1__artwork-shell--graphiti .ldg1__artwork,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell--graphiti .ldg1__artwork,
.ldg1__exhibit:active .ldg1__artwork-shell--graphiti .ldg1__artwork,
.ldg1__exhibit.is-current .ldg1__artwork-shell--graphiti .ldg1__artwork,
.ldg1__exhibit.is-neon-starting .ldg1__artwork-shell--graphiti .ldg1__artwork,
.ldg1__exhibit.is-neon-engaged .ldg1__artwork-shell--graphiti .ldg1__artwork {
	transform: scale(1.012) !important;
}

.ldg1__artwork-shell--heavy-gold .ldg1__artwork,
.ldg1__exhibit:hover .ldg1__artwork-shell--heavy-gold .ldg1__artwork,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell--heavy-gold .ldg1__artwork,
.ldg1__exhibit:active .ldg1__artwork-shell--heavy-gold .ldg1__artwork,
.ldg1__exhibit.is-current .ldg1__artwork-shell--heavy-gold .ldg1__artwork,
.ldg1__exhibit.is-neon-starting .ldg1__artwork-shell--heavy-gold .ldg1__artwork,
.ldg1__exhibit.is-neon-engaged .ldg1__artwork-shell--heavy-gold .ldg1__artwork {
	transform: none !important;
}

/* Frame always sits above the play button. */
.ldg1__room .ldg1__artwork-shell {
	z-index: 21 !important;
}

/* Play button is fully below the frame with a clean gap. */
.ldg1__room .ldg1__play-trigger,
.ldg1__play-trigger {
	position: absolute !important;
	z-index: 8 !important;
	left: 50% !important;
	bottom: -58px !important;
	width: 44px;
	height: 44px;
	overflow: hidden;
	border-radius: 11px;
	transform: translateX(-50%) !important;
	transition: none !important;
}

/* The button artwork itself never grows, shifts or presses down. */
.ldg1__play-trigger-img,
.ldg1__exhibit:hover .ldg1__play-trigger-img,
.ldg1__exhibit:focus-visible .ldg1__play-trigger-img,
.ldg1__exhibit:active .ldg1__play-trigger-img,
.ldg1__exhibit.is-current .ldg1__play-trigger-img,
.ldg1__exhibit.is-neon-starting .ldg1__play-trigger-img,
.ldg1__exhibit.is-neon-engaged .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:hover .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:focus-visible .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:active .ldg1__play-trigger-img,
.ldg1__mobile-exhibit.is-current .ldg1__play-trigger-img,
.ldg1__mobile-exhibit.is-neon-starting .ldg1__play-trigger-img,
.ldg1__mobile-exhibit.is-neon-engaged .ldg1__play-trigger-img {
	transform: translateZ(0) scale(1) !important;
	transition-property: filter, opacity !important;
}

/* The magical light remains behind the button and is clipped to its shape. */
.ldg1__play-trigger-fx {
	inset: 0 !important;
	overflow: hidden !important;
	border-radius: inherit !important;
}

@media (max-width: 991px) {
	.ldg1__room .ldg1__play-trigger,
	.ldg1__play-trigger {
		bottom: -54px !important;
		width: 41px;
		height: 41px;
	}
}

@media (max-width: 767px) {
	.ldg1__room .ldg1__play-trigger,
	.ldg1__play-trigger {
		bottom: -50px !important;
		width: 38px;
		height: 38px;
	}
}

/* =========================================================
   V21 — SEATED CHARACTER DEPTH OF FIELD
   The character remains sharp in the normal gallery view. As the
   visitor walks towards an artwork, he gradually falls out of focus,
   reinforcing that he is a separate foreground object in the room.
   He becomes sharp again during the backward walk.
   ========================================================= */

.ldg1__seated-character {
	opacity: 1;
	filter: blur(0) brightness(1) saturate(1);
	transition:
		filter 1850ms cubic-bezier(.20,.62,.24,1),
		opacity 1650ms ease;
	will-change: transform, filter, opacity;
}

.ldg1.is-walking-to-artwork .ldg1__seated-character,
.ldg1.is-artwork-focused .ldg1__seated-character {
	opacity: .78;
	filter: blur(5.5px) brightness(.82) saturate(.88);
}

/* Start restoring focus as soon as the visitor walks backwards. */
.ldg1.is-returning-from-artwork .ldg1__seated-character {
	opacity: 1;
	filter: blur(0) brightness(1) saturate(1);
	transition-duration: 1750ms, 1600ms;
}

@media (max-width: 767px) {
	.ldg1.is-walking-to-artwork .ldg1__seated-character,
	.ldg1.is-artwork-focused .ldg1__seated-character {
		opacity: .80;
		filter: blur(4.2px) brightness(.84) saturate(.90);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ldg1__seated-character {
		transition-duration: 1ms !important;
	}
}


/* =========================================================
   V22 — CHARACTER BLUR WITHOUT TRANSPARENCY
   The character remains fully opaque in every gallery state.
   Only focus/blur changes as the visitor moves towards or away
   from the artwork.
   ========================================================= */

.ldg1__seated-character,
.ldg1__seated-character-img,
.ldg1.is-walking-to-artwork .ldg1__seated-character,
.ldg1.is-walking-to-artwork .ldg1__seated-character-img,
.ldg1.is-artwork-focused .ldg1__seated-character,
.ldg1.is-artwork-focused .ldg1__seated-character-img,
.ldg1.is-returning-from-artwork .ldg1__seated-character,
.ldg1.is-returning-from-artwork .ldg1__seated-character-img {
	opacity: 1 !important;
}

/* =========================================================
   V23 — CHARACTER SEAT POSITION + SUBTLE PERSPECTIVE SHIFT
   Move the character slightly upward so he sits more naturally on
   the bench, while keeping his size unchanged. As the visitor scrolls
   right, the character drifts very slightly left on the seat, and
   vice versa, to create a subtle perspective effect.
   ========================================================= */

.ldg1 {
	--ldg1-seat-shift: 0px;
}

.ldg1__seated-character,
.ldg1__room .ldg1__seated-character {
	bottom: 17.4% !important;
	height: 42.5% !important;
	transform: translateX(calc(-50% + var(--ldg1-seat-shift, 0px))) !important;
	transition:
		transform 280ms ease-out,
		filter 1850ms cubic-bezier(.20,.62,.24,1) !important;
	will-change: transform, filter !important;
}

@media (max-width: 991px) {
	.ldg1__seated-character,
	.ldg1__room .ldg1__seated-character {
		bottom: 17.4% !important;
		height: 42.5% !important;
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	.ldg1__seated-character,
	.ldg1__room .ldg1__seated-character {
		bottom: 17.4% !important;
		height: 42.5% !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ldg1__seated-character,
	.ldg1__room .ldg1__seated-character {
		transition: filter 1ms linear !important;
	}
}

/* =========================================================
   V24 — FRAME 2 CHILL FRAME
   Exhibit 2 becomes a tall non-square frame that uses the full
   central wall area up towards the first ceiling break.
   ========================================================= */

.ldg1__artwork-shell--chill-frame {
	--ldg1-frame-edge: rgba(255, 226, 156, .68);
	--ldg1-frame-glow: rgba(255, 190, 54, .52);
	--ldg1-frame-glow-soft: rgba(181, 90, 255, .22);
}

.ldg1__artwork-shell--chill-frame::before {
	background:
		radial-gradient(ellipse at 50% 18%, rgba(255, 198, 72, .28) 0%, rgba(255, 198, 72, .18) 18%, transparent 58%),
		radial-gradient(ellipse at 50% 50%, transparent 42%, rgba(182, 82, 255, .18) 62%, transparent 84%),
		radial-gradient(ellipse at 50% 82%, rgba(255, 171, 45, .18) 0%, transparent 40%);
	filter: blur(11px);
	opacity: .88;
}

.ldg1__artwork-shell--chill-frame .ldg1__artwork {
	filter:
		drop-shadow(0 0 6px rgba(255, 215, 122, .34))
		drop-shadow(0 0 14px rgba(255, 180, 48, .16))
		drop-shadow(0 10px 18px rgba(0, 0, 0, .56));
}

.ldg1__artwork-shell--chill-frame .ldg1__inside-artwork {
	left: 16.8%;
	top: 14.1%;
	width: 66.4%;
	height: 72.5%;
	object-fit: cover;
	object-position: center;
	transform: none;
	box-shadow:
		inset 0 0 15px rgba(0, 0, 0, .72),
		0 0 10px rgba(255, 180, 54, .18),
		0 0 14px rgba(173, 92, 255, .14);
	filter: brightness(.96) saturate(1.02);
}

.ldg1__artwork-shell--chill-frame .ldg1__artwork-glass {
	inset: 7.2% 7.6% 7.8%;
	border-radius: 2.2%;
	background:
		linear-gradient(112deg, rgba(255, 255, 255, .12), transparent 20%, transparent 68%, rgba(255, 223, 154, .04)),
		linear-gradient(180deg, transparent 72%, rgba(0, 0, 0, .15));
	opacity: .21;
}

/* Only Exhibit 2 uses the tall wall-filling placement. */
.ldg1__room [data-index="1"].ldg1__exhibit {
	left: 42.15% !important;
	top: 11.2% !important;
	width: 15.8% !important;
	height: 49.6% !important;
}

.ldg1__room [data-index="1"].ldg1__exhibit .ldg1__caption {
	bottom: -50px;
}

.ldg1__room [data-index="1"].ldg1__exhibit .ldg1__play-trigger {
	bottom: -54px !important;
}

@media (max-width: 991px) {
	.ldg1__room [data-index="1"].ldg1__exhibit {
		left: 42.25% !important;
		top: 12.0% !important;
		width: 15.6% !important;
		height: 47.8% !important;
	}
}

@media (max-width: 767px) {
	.ldg1__room [data-index="1"].ldg1__exhibit {
		left: 42.35% !important;
		top: 12.8% !important;
		width: 15.4% !important;
		height: 45.8% !important;
	}

	.ldg1__room [data-index="1"].ldg1__exhibit .ldg1__caption {
		bottom: -48px;
	}

	.ldg1__room [data-index="1"].ldg1__exhibit .ldg1__play-trigger {
		bottom: -50px !important;
	}
}

/* =========================================================
   V25 — CHILL FRAME 2 + CHARACTER DEPTH/PARALLAX REFINEMENT
   ========================================================= */

/*
 * Frame 2 is smaller and lower than V24. Its lower edge remains in
 * approximately the same wall position, while the top is moved down
 * away from the ceiling.
 */
.ldg1__room [data-index="1"].ldg1__exhibit {
	left: 42.90% !important;
	top: 17.0% !important;
	width: 14.20% !important;
	height: 43.80% !important;
}

/* Keep the tall Chill frame entirely visible and stationary. */
.ldg1__room [data-index="1"] .ldg1__artwork-shell--chill-frame {
	width: 100% !important;
	height: 100% !important;
	overflow: visible !important;
	transform: none !important;
}

/* Chill still image opening. */
.ldg1__artwork-shell--chill-frame .ldg1__inside-artwork {
	left: 16.8% !important;
	top: 14.1% !important;
	width: 66.4% !important;
	height: 72.5% !important;
	object-fit: cover !important;
	object-position: center !important;
	transform: none !important;
	opacity: 1;
	visibility: visible;
}

/* Chill MP4 canvas uses exactly the same frame opening as Chill.jpg. */
.ldg1__artwork-shell--chill-frame .ldg1__video-slot {
	left: 16.8% !important;
	top: 14.1% !important;
	width: 66.4% !important;
	height: 72.5% !important;
	transform: none !important;
}

/* The transparent frame skin must remain visibly above the still/video. */
.ldg1__artwork-shell--chill-frame .ldg1__artwork {
	position: relative !important;
	z-index: 3 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
}

/* Keep the play button underneath the lower edge of the shorter frame. */
.ldg1__room [data-index="1"].ldg1__exhibit .ldg1__play-trigger {
	bottom: -52px !important;
}

.ldg1__room [data-index="1"].ldg1__exhibit .ldg1__caption {
	bottom: -50px !important;
}

/*
 * Smooth opposite-direction seat parallax. The JavaScript changes only
 * --ldg1-seat-shift; the asset remains attached to the bench coordinates.
 */
.ldg1__seated-character,
.ldg1__room .ldg1__seated-character {
	transform: translate3d(calc(-50% + var(--ldg1-seat-shift, 0px)), 0, 0) !important;
	transition:
		transform 360ms cubic-bezier(.22,.61,.36,1),
		filter 2100ms cubic-bezier(.20,.62,.24,1) !important;
}

/*
 * Fully opaque depth-of-field effect. Blur builds gradually during the
 * forward walk and reaches its maximum only at the close viewing position.
 */
.ldg1__seated-character,
.ldg1__seated-character-img {
	opacity: 1 !important;
}

.ldg1.is-walking-to-artwork .ldg1__seated-character {
	opacity: 1 !important;
	filter: blur(3.5px) brightness(.93) saturate(.95) !important;
}

.ldg1.is-artwork-focused .ldg1__seated-character {
	opacity: 1 !important;
	filter: blur(7px) brightness(.88) saturate(.91) !important;
}

.ldg1.is-returning-from-artwork .ldg1__seated-character {
	opacity: 1 !important;
	filter: blur(1.5px) brightness(.97) saturate(.98) !important;
	transition-duration: 1650ms, 1650ms !important;
}

@media (max-width: 991px) {
	.ldg1__room [data-index="1"].ldg1__exhibit {
		left: 42.95% !important;
		top: 17.6% !important;
		width: 14.10% !important;
		height: 43.20% !important;
	}
}

@media (max-width: 767px) {
	.ldg1__room [data-index="1"].ldg1__exhibit {
		left: 43.0% !important;
		top: 18.2% !important;
		width: 14.0% !important;
		height: 42.6% !important;
	}

	.ldg1__room [data-index="1"].ldg1__exhibit .ldg1__play-trigger {
		bottom: -48px !important;
	}

	.ldg1.is-walking-to-artwork .ldg1__seated-character {
		filter: blur(2.8px) brightness(.94) saturate(.96) !important;
	}

	.ldg1.is-artwork-focused .ldg1__seated-character {
		filter: blur(5.5px) brightness(.90) saturate(.93) !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ldg1__seated-character,
	.ldg1__room .ldg1__seated-character {
		transition-duration: 1ms !important;
	}
}

/* =========================================================
   V26 — CHILL FRAME BACKING + REMOVE THIN FRAME LINES
   Adds the tall recessed wall backing behind Frame 2 and removes the
   thin generic outline line that was visible around all gallery frames.
   ========================================================= */

/* Remove the thin line around every frame. Keep glow only. */
.ldg1__artwork-shell.has-gallery-frame::after {
	border: 0 !important;
	outline: 0 !important;
	box-shadow:
		0 0 6px var(--ldg1-frame-glow, rgba(255, 188, 45, .36)),
		0 0 16px var(--ldg1-frame-glow-soft, rgba(255, 188, 45, .18)),
		inset 0 0 8px rgba(255, 237, 184, .07) !important;
}

/*
 * Frame 2: make the frame a touch smaller and lower so it sits like the
 * bottom reference, further away from the ceiling. Then place the long
 * backing image behind the full frame/content stack so the recess fills
 * the extra height.
 */
.ldg1__room [data-index="1"].ldg1__exhibit {
	left: 42.95% !important;
	top: 18.9% !important;
	width: 13.7% !important;
	height: 41.9% !important;
	overflow: visible !important;
}

.ldg1__room [data-index="1"].ldg1__exhibit::before {
	content: "";
	position: absolute;
	z-index: 0;
	left: 50%;
	top: -12.5%;
	width: 132%;
	height: 148%;
	transform: translateX(-50%);
	background:
		linear-gradient(transparent, transparent)
		center center / 100% 100% no-repeat;
	pointer-events: none;
	opacity: 1;
	filter:
		drop-shadow(0 0 14px rgba(255, 189, 58, .18))
		drop-shadow(0 0 32px rgba(255, 180, 42, .10));
}

/* Ensure the frame/content/button sit above the new backing. */
.ldg1__room [data-index="1"] .ldg1__artwork-shell--chill-frame,
.ldg1__room [data-index="1"] .ldg1__caption,
.ldg1__room [data-index="1"] .ldg1__play-trigger {
	position: relative;
	z-index: 2;
}

.ldg1__room [data-index="1"] .ldg1__artwork-shell--chill-frame {
	width: 100% !important;
	height: 100% !important;
	overflow: visible !important;
	transform: none !important;
}

.ldg1__artwork-shell--chill-frame .ldg1__inside-artwork,
.ldg1__artwork-shell--chill-frame .ldg1__video-slot {
	left: 16.8% !important;
	top: 14.1% !important;
	width: 66.4% !important;
	height: 72.5% !important;
	transform: none !important;
}

.ldg1__room [data-index="1"].ldg1__exhibit .ldg1__caption {
	bottom: -48px !important;
}

.ldg1__room [data-index="1"].ldg1__exhibit .ldg1__play-trigger {
	bottom: -50px !important;
}

@media (max-width: 991px) {
	.ldg1__room [data-index="1"].ldg1__exhibit {
		left: 43.0% !important;
		top: 19.2% !important;
		width: 13.7% !important;
		height: 41.4% !important;
	}

	.ldg1__room [data-index="1"].ldg1__exhibit::before {
		top: -12.8%;
		width: 133%;
		height: 149%;
	}
}

@media (max-width: 767px) {
	.ldg1__room [data-index="1"].ldg1__exhibit {
		left: 43.05% !important;
		top: 19.6% !important;
		width: 13.9% !important;
		height: 40.8% !important;
	}

	.ldg1__room [data-index="1"].ldg1__exhibit::before {
		top: -12.8%;
		width: 135%;
		height: 150%;
	}

	.ldg1__room [data-index="1"].ldg1__exhibit .ldg1__caption {
		bottom: -46px !important;
	}

	.ldg1__room [data-index="1"].ldg1__exhibit .ldg1__play-trigger {
		bottom: -46px !important;
	}
}

/* =========================================================
   V27 — VISIBLE HORIZONTAL CHARACTER PARALLAX
   The character now moves clearly but gently in the opposite direction
   to the gallery scroll. JavaScript supplies a smoothed pixel offset;
   CSS applies it without an additional transform delay.
   ========================================================= */

.ldg1__seated-character,
.ldg1__room .ldg1__seated-character {
	transform:
		translate3d(
			calc(-50% + var(--ldg1-seat-shift, 0px)),
			0,
			0
		) !important;
	transition:
		filter 2100ms cubic-bezier(.20,.62,.24,1) !important;
	will-change: transform, filter !important;
}

/* =========================================================
   V28 — SLIGHTLY STRONGER CHARACTER PARALLAX
   The seated character now drifts a little further across the bench
   to make the horizontal parallax read more clearly while staying subtle.
   ========================================================= */

/* =========================================================
   V29 — FRAME 2 BACKING WIDTH + INTERACTIVE BIO TERMINAL
   ========================================================= */

/*
 * Frame 2 backing is now exactly the width of the Chill media frame.
 * It extends upwards to conceal the old square recess but ends at the
 * lower edge of the frame, so the play button remains outside it.
 */
.ldg1__room [data-index="1"].ldg1__exhibit::before {
	left: 50% !important;
	top: -12.8% !important;
	right: auto !important;
	bottom: 0 !important;
	width: 100% !important;
	height: auto !important;
	transform: translateX(-50%) !important;
	background:
		linear-gradient(transparent, transparent)
		center center / 100% 100% no-repeat !important;
}

/* Keep the frame and its content above the backing. */
.ldg1__room [data-index="1"] .ldg1__artwork-shell--chill-frame {
	position: relative !important;
	z-index: 3 !important;
}

/* The play button stays clearly below and outside the backing. */
.ldg1__room [data-index="1"] .ldg1__play-trigger {
	position: absolute !important;
	z-index: 5 !important;
	bottom: -50px !important;
}


/* ---------------------------------------------------------
   Clickable BIO / BIO-Push character
   --------------------------------------------------------- */

button.ldg1__seated-character,
button.ldg1__seated-character:hover,
button.ldg1__seated-character:focus,
button.ldg1__seated-character:focus-visible,
button.ldg1__seated-character:active {
	margin: 0;
	padding: 0;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0;
	box-shadow: none !important;
	outline: 0;
	appearance: none;
	-webkit-appearance: none;
	pointer-events: auto;
	cursor: pointer;
}

.ldg1__seated-character-visual {
	position: absolute;
	inset: 0;
	display: block;
	pointer-events: none;
}

.ldg1__seated-character-img {
	position: absolute !important;
	left: 50%;
	bottom: 0;
	display: block;
	width: auto !important;
	height: 100% !important;
	max-width: none !important;
	opacity: 1;
	transform: translate3d(-50%, 0, 0) !important;
	transition:
		opacity 520ms cubic-bezier(.22,.61,.36,1),
		filter 300ms ease !important;
	pointer-events: none;
	-webkit-user-drag: none;
}

.ldg1__seated-character-img--lead {
	z-index: 1;
	opacity: 1;
}

.ldg1__seated-character-img--push {
	z-index: 2;
	opacity: 0;
}

/* Hover/focus communicates interactivity without moving the character. */
button.ldg1__seated-character:hover .ldg1__seated-character-img--lead,
button.ldg1__seated-character:focus-visible .ldg1__seated-character-img--lead {
	filter:
		brightness(1.05)
		saturate(1.04)
		drop-shadow(0 0 8px rgba(255, 191, 55, .18));
}

button.ldg1__seated-character:focus-visible {
	outline: 1px solid rgba(116, 255, 141, .72) !important;
	outline-offset: 6px;
}

/* Character cross-fade while the BIO terminal is open. */
.ldg1.is-bio-open .ldg1__seated-character-img--lead {
	opacity: 0;
}

.ldg1.is-bio-open .ldg1__seated-character-img--push {
	opacity: 1;
}


/* ---------------------------------------------------------
   Retro narrow CRT BIO panel
   --------------------------------------------------------- */

.ldg1__bio-layer {
	position: absolute;
	z-index: 1000012;
	inset: 0;
	visibility: hidden;
	pointer-events: none;
}

.ldg1.is-bio-open .ldg1__bio-layer {
	visibility: visible;
	pointer-events: auto;
}

.ldg1__bio-backdrop,
.ldg1__bio-backdrop:hover,
.ldg1__bio-backdrop:focus,
.ldg1__bio-backdrop:active {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	background:
		radial-gradient(circle at 50% 78%, rgba(57, 122, 67, .12), transparent 34%),
		rgba(0, 0, 0, .54) !important;
	border: 0 !important;
	box-shadow: none !important;
	opacity: 0;
	appearance: none;
	-webkit-appearance: none;
	cursor: default;
	transition: opacity 460ms ease;
}

.ldg1.is-bio-open .ldg1__bio-backdrop {
	opacity: 1;
}

.ldg1__bio-panel {
	position: absolute;
	left: 50%;
	bottom: max(18px, env(safe-area-inset-bottom));
	width: min(680px, calc(100vw - 32px));
	max-width: 92vw;
	margin: 0;
	opacity: 0;
	transform: translate3d(-50%, calc(100% + 90px), 0);
	transition:
		transform 680ms cubic-bezier(.16,.82,.24,1),
		opacity 420ms ease;
	will-change: transform, opacity;
	outline: 0;
}

.ldg1.is-bio-open .ldg1__bio-panel {
	opacity: 1;
	transform: translate3d(-50%, 0, 0);
}

.ldg1__bio-chassis {
	position: relative;
	padding: 9px;
	overflow: hidden;
	background:
		linear-gradient(145deg, rgba(58, 47, 24, .98), rgba(10, 10, 8, .99) 36%, rgba(38, 30, 15, .98));
	border: 1px solid rgba(238, 185, 69, .62);
	border-radius: 18px;
	box-shadow:
		0 24px 70px rgba(0, 0, 0, .72),
		0 0 0 2px rgba(58, 40, 9, .92),
		0 0 30px rgba(255, 184, 42, .14),
		inset 0 1px 0 rgba(255, 224, 148, .20);
}

.ldg1__bio-chassis::before {
	position: absolute;
	inset: 4px;
	content: "";
	border: 1px solid rgba(255, 210, 109, .16);
	border-radius: 14px;
	pointer-events: none;
}

.ldg1__bio-header {
	position: relative;
	z-index: 3;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	min-height: 34px;
	padding: 0 9px 7px;
	gap: 8px;
	color: rgba(132, 255, 150, .78);
	font-family: "Courier New", Courier, monospace;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.ldg1__bio-status {
	width: 7px;
	height: 7px;
	background: #79ff8e;
	border-radius: 50%;
	box-shadow:
		0 0 5px rgba(121, 255, 142, .92),
		0 0 12px rgba(121, 255, 142, .40);
	animation: ldg1-bio-status-pulse 2.6s ease-in-out infinite;
}

.ldg1__bio-terminal-name {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ldg1__bio-close,
.ldg1__bio-close:hover,
.ldg1__bio-close:focus,
.ldg1__bio-close:active {
	min-width: 0;
	margin: 0;
	padding: 4px 5px;
	color: rgba(138, 255, 156, .76);
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	font: inherit;
	letter-spacing: .08em;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	transition: color 180ms ease, text-shadow 180ms ease;
}

.ldg1__bio-close:hover,
.ldg1__bio-close:focus-visible {
	color: #b6ffc0;
	text-shadow:
		0 0 6px rgba(113, 255, 134, .72),
		0 0 14px rgba(113, 255, 134, .28);
	outline: 0;
}

.ldg1__bio-screen {
	position: relative;
	height: min(58svh, 530px);
	min-height: 300px;
	overflow: hidden;
	background:
		radial-gradient(ellipse at center, rgba(15, 58, 27, .30), transparent 72%),
		linear-gradient(180deg, #021007, #010a04 56%, #020d05);
	border: 1px solid rgba(105, 233, 126, .35);
	border-radius: 38px / 20px;
	box-shadow:
		inset 0 0 24px rgba(0, 0, 0, .94),
		inset 0 0 70px rgba(34, 126, 52, .16),
		0 0 10px rgba(98, 255, 123, .10);
}

.ldg1__bio-screen::before {
	position: absolute;
	z-index: 1;
	inset: 0;
	content: "";
	background:
		linear-gradient(90deg, rgba(104, 255, 128, .035), transparent 10%, transparent 90%, rgba(104, 255, 128, .035)),
		radial-gradient(ellipse at center, transparent 62%, rgba(0, 0, 0, .62));
	border-radius: inherit;
	pointer-events: none;
}

.ldg1__bio-scanlines {
	position: absolute;
	z-index: 3;
	inset: 0;
	background:
		repeating-linear-gradient(
			180deg,
			rgba(0, 0, 0, 0) 0,
			rgba(0, 0, 0, 0) 3px,
			rgba(0, 0, 0, .18) 4px
		);
	opacity: .60;
	mix-blend-mode: multiply;
	pointer-events: none;
}

.ldg1__bio-copy {
	position: relative;
	z-index: 2;
	height: 100%;
	overflow-y: auto;
	padding: clamp(22px, 4vw, 38px) clamp(22px, 4.8vw, 48px) 34px;
	color: #8dffa1;
	font-family: "Courier New", Courier, monospace;
	font-size: clamp(12px, 1.25vw, 15px);
	line-height: 1.72;
	letter-spacing: .018em;
	text-shadow:
		0 0 4px rgba(112, 255, 133, .52),
		0 0 11px rgba(112, 255, 133, .18);
	scrollbar-width: thin;
	scrollbar-color: rgba(106, 255, 129, .45) rgba(0, 0, 0, .28);
}

.ldg1__bio-copy::-webkit-scrollbar {
	width: 7px;
}

.ldg1__bio-copy::-webkit-scrollbar-track {
	background: rgba(0, 0, 0, .26);
}

.ldg1__bio-copy::-webkit-scrollbar-thumb {
	background: rgba(106, 255, 129, .42);
	border-radius: 99px;
}

.ldg1__bio-copy h2 {
	margin: 0 0 5px;
	color: #b0ffbc;
	font-family: inherit;
	font-size: clamp(24px, 4.2vw, 42px);
	font-weight: 700;
	letter-spacing: .08em;
	line-height: 1.05;
	text-shadow:
		0 0 5px rgba(118, 255, 138, .76),
		0 0 18px rgba(118, 255, 138, .26);
}

.ldg1__bio-copy p {
	margin: 0 0 1.25em;
}

.ldg1__bio-kicker {
	margin-bottom: 10px !important;
	color: rgba(136, 255, 153, .66);
	font-size: .78em;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.ldg1__bio-rule {
	overflow: hidden;
	margin-bottom: 1.5em !important;
	color: rgba(116, 255, 137, .40);
	white-space: nowrap;
}

.ldg1__bio-end {
	margin-top: 1.8em !important;
	margin-bottom: 0 !important;
	color: rgba(161, 255, 174, .72);
	font-weight: 700;
	letter-spacing: .08em;
}

.ldg1__bio-end span {
	display: inline-block;
	width: .64em;
	height: 1em;
	margin-left: 4px;
	background: #9affad;
	box-shadow: 0 0 8px rgba(119, 255, 140, .72);
	vertical-align: -.12em;
	animation: ldg1-bio-cursor 1.05s steps(1, end) infinite;
}

@keyframes ldg1-bio-status-pulse {
	0%, 100% { opacity: .55; }
	50% { opacity: 1; }
}

@keyframes ldg1-bio-cursor {
	0%, 48% { opacity: 1; }
	49%, 100% { opacity: 0; }
}

@media (max-width: 767px) {
	.ldg1__room [data-index="1"].ldg1__exhibit::before {
		top: -12.5% !important;
		width: 100% !important;
		bottom: 0 !important;
	}

	.ldg1__bio-panel {
		bottom: max(10px, env(safe-area-inset-bottom));
		width: calc(100vw - 18px);
		max-width: none;
	}

	.ldg1__bio-chassis {
		padding: 7px;
		border-radius: 15px;
	}

	.ldg1__bio-header {
		min-height: 30px;
		padding: 0 6px 5px;
		font-size: 8px;
	}

	.ldg1__bio-screen {
		height: min(64svh, 560px);
		min-height: 280px;
		border-radius: 26px / 16px;
	}

	.ldg1__bio-copy {
		padding: 22px 20px 28px;
		font-size: 12px;
		line-height: 1.62;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ldg1__bio-panel,
	.ldg1__bio-backdrop,
	.ldg1__seated-character-img {
		transition-duration: 1ms !important;
	}

	.ldg1__bio-status,
	.ldg1__bio-end span {
		animation: none !important;
	}
}

/* =========================================================
   V30 — FULL RECESS COVER FOR CHILL FRAME
   The Long-Frame-Backing now covers the complete square recess that
   is baked into the gallery background. The Chill media frame is
   slightly wider and sits neatly inside the new backing.
   ========================================================= */

/* Widen Frame 2 while keeping it centred in the same wall section. */
.ldg1__room [data-index="1"].ldg1__exhibit {
	left: 42.30% !important;
	top: 18.45% !important;
	width: 15.40% !important;
	height: 42.35% !important;
	overflow: visible !important;
}

/*
 * Cover the complete original square recess:
 * - much wider than the media frame
 * - extends upwards to the top edge of the baked-in square
 * - extends only slightly below the media frame
 * - stops before the separate play button begins
 */
.ldg1__room [data-index="1"].ldg1__exhibit::before {
	position: absolute !important;
	z-index: 0 !important;
	left: 50% !important;
	top: -34% !important;
	right: auto !important;
	bottom: -6% !important;
	width: 145% !important;
	height: auto !important;
	transform: translateX(-50%) !important;
	background:
		linear-gradient(transparent, transparent)
		center center / 100% 100% no-repeat !important;
	opacity: 1 !important;
	pointer-events: none !important;
}

/* Media frame, still and MP4 remain above the recess-cover image. */
.ldg1__room [data-index="1"] .ldg1__artwork-shell--chill-frame {
	position: relative !important;
	z-index: 3 !important;
	width: 100% !important;
	height: 100% !important;
	overflow: visible !important;
	transform: none !important;
}

/* Keep the transparent Chill frame fully visible at the wider size. */
.ldg1__artwork-shell--chill-frame .ldg1__artwork {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	object-position: center !important;
	transform: none !important;
}

/* The still and video continue to fill the transparent frame opening. */
.ldg1__artwork-shell--chill-frame .ldg1__inside-artwork,
.ldg1__artwork-shell--chill-frame .ldg1__video-slot {
	left: 16.4% !important;
	top: 13.8% !important;
	width: 67.2% !important;
	height: 73.0% !important;
	transform: none !important;
}

/* Play button remains completely outside the new backing. */
.ldg1__room [data-index="1"] .ldg1__play-trigger {
	position: absolute !important;
	z-index: 5 !important;
	bottom: -60px !important;
}

/* Caption also stays outside the backing. */
.ldg1__room [data-index="1"] .ldg1__caption {
	bottom: -56px !important;
}

@media (max-width: 991px) {
	.ldg1__room [data-index="1"].ldg1__exhibit {
		left: 42.35% !important;
		top: 18.85% !important;
		width: 15.30% !important;
		height: 41.95% !important;
	}

	.ldg1__room [data-index="1"].ldg1__exhibit::before {
		top: -34.5% !important;
		bottom: -6% !important;
		width: 146% !important;
	}
}

@media (max-width: 767px) {
	.ldg1__room [data-index="1"].ldg1__exhibit {
		left: 42.35% !important;
		top: 19.20% !important;
		width: 15.30% !important;
		height: 41.55% !important;
	}

	.ldg1__room [data-index="1"].ldg1__exhibit::before {
		top: -35% !important;
		bottom: -5.5% !important;
		width: 148% !important;
	}

	.ldg1__room [data-index="1"] .ldg1__play-trigger {
		bottom: -52px !important;
	}

	.ldg1__room [data-index="1"] .ldg1__caption {
		bottom: -50px !important;
	}
}

/* =========================================================
   V31 — WORKING BIO CHARACTER CROSSFADE + CRT PANEL
   Fixes the zero-width character click target and overrides the older
   opacity safeguard that was forcing both character images to display.
   ========================================================= */

button.ldg1__seated-character,
button.ldg1__seated-character:hover,
button.ldg1__seated-character:focus,
button.ldg1__seated-character:focus-visible,
button.ldg1__seated-character:active {
	z-index: 18 !important;
	display: block !important;
	width: 35.66vh !important;
	width: 35.66svh !important;
	height: 42.5% !important;
	overflow: visible !important;
	pointer-events: auto !important;
	cursor: pointer !important;
	touch-action: manipulation;
}

.ldg1__seated-character-visual {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	pointer-events: none !important;
}

.ldg1__seated-character-img,
.ldg1__seated-character-img--lead,
.ldg1__seated-character-img--push {
	position: absolute !important;
	z-index: 1;
	inset: 0 !important;
	left: 0 !important;
	bottom: auto !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: contain !important;
	object-position: 50% 100% !important;
	transform: none !important;
	pointer-events: none !important;
	-webkit-user-drag: none;
	transition:
		opacity 720ms cubic-bezier(.22,.61,.36,1),
		filter 300ms ease !important;
}

.ldg1__seated-character-img--lead {
	z-index: 1 !important;
	opacity: 1 !important;
	visibility: visible !important;
}

.ldg1__seated-character-img--push {
	z-index: 2 !important;
	opacity: 0 !important;
	visibility: visible !important;
}

.ldg1.is-bio-open .ldg1__seated-character-img--lead,
.ldg1__seated-character.is-bio-pushed .ldg1__seated-character-img--lead {
	opacity: 0 !important;
}

.ldg1.is-bio-open .ldg1__seated-character-img--push,
.ldg1__seated-character.is-bio-pushed .ldg1__seated-character-img--push {
	opacity: 1 !important;
}

.ldg1__seated-character::after {
	position: absolute;
	inset: 0;
	content: "";
	pointer-events: auto;
	background: transparent;
}

.ldg1__room:first-child .ldg1__seated-character {
	pointer-events: auto !important;
}

/* BIO layer and slow bottom-up reveal. */
.ldg1__bio-layer {
	z-index: 1000040 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

.ldg1.is-bio-open .ldg1__bio-layer {
	visibility: visible !important;
	pointer-events: auto !important;
}

.ldg1__bio-panel {
	opacity: 0 !important;
	transform: translate3d(-50%, calc(100% + 150px), 0) !important;
	transition:
		transform 980ms cubic-bezier(.14,.86,.22,1),
		opacity 520ms ease !important;
}

.ldg1.is-bio-open .ldg1__bio-panel {
	opacity: 1 !important;
	transform: translate3d(-50%, 0, 0) !important;
}

.ldg1__bio-backdrop {
	opacity: 0 !important;
	transition: opacity 700ms ease !important;
}

.ldg1.is-bio-open .ldg1__bio-backdrop {
	opacity: 1 !important;
}

.ldg1__bio-panel,
.ldg1__bio-panel *,
.ldg1__bio-close,
.ldg1__bio-backdrop {
	pointer-events: auto;
}

@media (max-width: 991px) {
	button.ldg1__seated-character,
	button.ldg1__seated-character:hover,
	button.ldg1__seated-character:focus,
	button.ldg1__seated-character:focus-visible,
	button.ldg1__seated-character:active {
		width: 35.66vh !important;
		width: 35.66svh !important;
		height: 42.5% !important;
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	button.ldg1__seated-character,
	button.ldg1__seated-character:hover,
	button.ldg1__seated-character:focus,
	button.ldg1__seated-character:focus-visible,
	button.ldg1__seated-character:active {
		width: 35.66vh !important;
		width: 35.66svh !important;
		height: 42.5% !important;
	}

	.ldg1__bio-panel {
		transform: translate3d(-50%, calc(100% + 110px), 0) !important;
	}

	.ldg1.is-bio-open .ldg1__bio-panel {
		transform: translate3d(-50%, 0, 0) !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ldg1__seated-character-img,
	.ldg1__bio-panel,
	.ldg1__bio-backdrop {
		transition-duration: 1ms !important;
	}
}

/* =========================================================
   V32 — DELAYED BIO TERMINAL + RELIABLE INTERNAL SCROLL
   BIO transforms into BIO-Push first. The terminal waits 2.3 seconds,
   then slowly slides up. All biography copy scrolls inside the CRT.
   ========================================================= */

/* Give the character transformation time to be seen clearly. */
.ldg1__seated-character-img {
	transition:
		opacity 1100ms cubic-bezier(.22,.61,.36,1),
		filter 300ms ease !important;
}

/*
 * During the character morph the terminal layer stays fully hidden.
 * During closing it remains mounted long enough to slide off-screen.
 */
.ldg1__bio-layer {
	visibility: hidden !important;
	pointer-events: none !important;
}

.ldg1.is-bio-open .ldg1__bio-layer,
.ldg1.is-bio-closing .ldg1__bio-layer {
	visibility: visible !important;
}

.ldg1.is-bio-open .ldg1__bio-layer {
	pointer-events: auto !important;
}

.ldg1.is-bio-closing .ldg1__bio-layer {
	pointer-events: none !important;
}

/* Panel appears only after JavaScript adds is-bio-open. */
.ldg1__bio-panel {
	opacity: 0 !important;
	transform: translate3d(-50%, calc(100% + 170px), 0) !important;
	transition:
		transform 1050ms cubic-bezier(.14,.86,.22,1),
		opacity 600ms ease !important;
}

.ldg1.is-bio-open .ldg1__bio-panel {
	opacity: 1 !important;
	transform: translate3d(-50%, 0, 0) !important;
}

.ldg1.is-bio-closing .ldg1__bio-panel {
	opacity: 0 !important;
	transform: translate3d(-50%, calc(100% + 170px), 0) !important;
}

/* Backdrop follows the delayed panel reveal. */
.ldg1__bio-backdrop {
	opacity: 0 !important;
	transition: opacity 760ms ease !important;
}

.ldg1.is-bio-open .ldg1__bio-backdrop {
	opacity: 1 !important;
}

.ldg1.is-bio-closing .ldg1__bio-backdrop {
	opacity: 0 !important;
}

/*
 * Create a proper fixed-height internal scrolling region.
 * min-height: 0 is essential for scrolling inside nested flex containers.
 */
.ldg1__bio-chassis {
	display: flex !important;
	flex-direction: column !important;
	max-height: calc(100svh - 36px) !important;
	overflow: hidden !important;
}

.ldg1__bio-header {
	flex: 0 0 auto !important;
}

.ldg1__bio-screen {
	display: flex !important;
	flex: 1 1 auto !important;
	height: min(58svh, 530px) !important;
	min-height: 0 !important;
	max-height: min(58svh, 530px) !important;
	overflow: hidden !important;
}

.ldg1__bio-copy {
	position: relative !important;
	z-index: 4 !important;
	flex: 1 1 auto !important;
	width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: 100% !important;
	overflow-x: hidden !important;
	overflow-y: scroll !important;
	overscroll-behavior: contain !important;
	-webkit-overflow-scrolling: touch;
	touch-action: pan-y;
	scrollbar-gutter: stable;
	padding-bottom: 48px !important;
	pointer-events: auto !important;
}

/* Make the internal scrollbar clearly visible without losing the CRT style. */
.ldg1__bio-copy {
	scrollbar-width: thin;
	scrollbar-color: rgba(114, 255, 136, .68) rgba(2, 24, 8, .72);
}

.ldg1__bio-copy::-webkit-scrollbar {
	width: 9px !important;
}

.ldg1__bio-copy::-webkit-scrollbar-track {
	background: rgba(1, 19, 6, .84) !important;
	border-left: 1px solid rgba(105, 255, 128, .10);
}

.ldg1__bio-copy::-webkit-scrollbar-thumb {
	background:
		linear-gradient(
			180deg,
			rgba(142, 255, 158, .78),
			rgba(78, 210, 98, .54)
		) !important;
	border: 2px solid rgba(1, 21, 7, .88);
	border-radius: 999px !important;
	box-shadow: 0 0 7px rgba(105, 255, 128, .26);
}

/* Scanlines remain visual only and never block scrolling. */
.ldg1__bio-scanlines,
.ldg1__bio-screen::before {
	pointer-events: none !important;
}

@media (max-width: 767px) {
	.ldg1__bio-chassis {
		max-height: calc(100svh - 20px) !important;
	}

	.ldg1__bio-screen {
		height: min(64svh, 560px) !important;
		max-height: min(64svh, 560px) !important;
	}

	.ldg1__bio-panel,
	.ldg1.is-bio-closing .ldg1__bio-panel {
		transform: translate3d(-50%, calc(100% + 125px), 0) !important;
	}

	.ldg1.is-bio-open .ldg1__bio-panel {
		transform: translate3d(-50%, 0, 0) !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ldg1__seated-character-img,
	.ldg1__bio-panel,
	.ldg1__bio-backdrop {
		transition-duration: 1ms !important;
	}
}

/* =========================================================
   V33 — RATIO-CORRECT BACKING AND CHILL FRAME ALIGNMENT
   Backing.webp is displayed at its original 800 × 984 ratio.
   Chill-Frame.webp is displayed at its original 716 × 1000 ratio.
   Their bottom edges share the same wall coordinate, allowing the
   backing artwork to conceal the baked-in square recess precisely.
   ========================================================= */

/*
 * Frame 2 is centred in the middle wall position. Width defines its
 * natural size; aspect-ratio preserves the Chill frame without stretching.
 * The bottom stays aligned with the lower edge of the original wall frame.
 */
.ldg1__room [data-index="1"].ldg1__exhibit {
	left: 42.35% !important;
	right: auto !important;
	top: auto !important;
	bottom: 39.20% !important;
	width: 15.30% !important;
	height: auto !important;
	aspect-ratio: 716 / 1000 !important;
	overflow: visible !important;
}

/*
 * Backing.webp is designed to cover the square frame integrated into
 * Gallery-1.jpg. It is not stretched: width plus aspect-ratio determines
 * its height. Its bottom is aligned with the background frame's bottom.
 */
.ldg1__room [data-index="1"].ldg1__exhibit::before {
	content: "" !important;
	position: absolute !important;
	z-index: 0 !important;
	left: 50% !important;
	right: auto !important;
	top: auto !important;
	bottom: 0 !important;
	width: 132% !important;
	height: auto !important;
	aspect-ratio: 800 / 984 !important;
	transform: translateX(-50%) !important;
	background-color: transparent !important;
	background-image:
		linear-gradient(transparent, transparent) !important;
	background-position: center bottom !important;
	background-repeat: no-repeat !important;
	background-size: contain !important;
	opacity: 1 !important;
	filter: none !important;
	pointer-events: none !important;
}

/*
 * The Chill media frame remains above the backing and preserves its own
 * original ratio. It can now use more of the backing's inner opening.
 */
.ldg1__room [data-index="1"] .ldg1__artwork-shell--chill-frame {
	position: relative !important;
	z-index: 3 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	aspect-ratio: 716 / 1000 !important;
	overflow: visible !important;
	transform: none !important;
}

/* Never distort the transparent frame artwork. */
.ldg1__artwork-shell--chill-frame .ldg1__artwork {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: contain !important;
	object-position: 50% 100% !important;
	transform: none !important;
}

/*
 * Chill.jpg and Chill.mp4 share the exact same aperture inside the frame.
 * These percentages are tied to Chill-Frame.webp, not the background.
 */
.ldg1__artwork-shell--chill-frame .ldg1__inside-artwork,
.ldg1__artwork-shell--chill-frame .ldg1__video-slot {
	left: 16.40% !important;
	top: 13.80% !important;
	width: 67.20% !important;
	height: 73.00% !important;
	transform: none !important;
}

/* Keep all media layers behind the transparent frame skin. */
.ldg1__artwork-shell--chill-frame .ldg1__inside-artwork,
.ldg1__artwork-shell--chill-frame .ldg1__video-slot {
	z-index: 1 !important;
}

.ldg1__artwork-shell--chill-frame .ldg1__artwork {
	z-index: 3 !important;
}

/*
 * The play button is below both the Chill frame and Backing.webp;
 * it cannot sit inside the replacement wall backing.
 */
.ldg1__room [data-index="1"] .ldg1__play-trigger {
	position: absolute !important;
	z-index: 6 !important;
	bottom: -58px !important;
}

/* The backing is decorative only; no thin edge is added around it. */
.ldg1__room [data-index="1"].ldg1__exhibit::after {
	content: none !important;
}

@media (max-width: 991px) {
	.ldg1__room [data-index="1"].ldg1__exhibit {
		left: 42.35% !important;
		bottom: 39.20% !important;
		width: 15.30% !important;
		height: auto !important;
		aspect-ratio: 716 / 1000 !important;
	}

	.ldg1__room [data-index="1"].ldg1__exhibit::before {
		bottom: 0 !important;
		width: 132% !important;
		height: auto !important;
		aspect-ratio: 800 / 984 !important;
	}
}

@media (max-width: 767px) {
	.ldg1__room [data-index="1"].ldg1__exhibit {
		left: 42.35% !important;
		bottom: 39.20% !important;
		width: 15.30% !important;
		height: auto !important;
		aspect-ratio: 716 / 1000 !important;
	}

	.ldg1__room [data-index="1"].ldg1__exhibit::before {
		bottom: 0 !important;
		width: 132% !important;
		height: auto !important;
		aspect-ratio: 800 / 984 !important;
	}

	.ldg1__room [data-index="1"] .ldg1__play-trigger {
		bottom: -50px !important;
	}
}

/* =========================================================
   V34 — SINGLE-IMAGE BIO CHARACTER + GUARANTEED PANEL CONTROL
   Only one character image exists in the DOM. BIO fades out, its source
   changes to BIO-Push while invisible, then it fades back in. The reverse
   happens after the CRT panel closes.
   ========================================================= */

/* Real, high-layer click target covering the complete seated character. */
button.ldg1__bio-character-v34,
button.ldg1__bio-character-v34:hover,
button.ldg1__bio-character-v34:focus,
button.ldg1__bio-character-v34:focus-visible,
button.ldg1__bio-character-v34:active {
	z-index: 40 !important;
	display: block !important;
	width: 35.66svh !important;
	height: 42.5% !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	pointer-events: auto !important;
	cursor: pointer !important;
	touch-action: manipulation !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

/* Remove the old pseudo click layer; the button itself is now the hotspot. */
button.ldg1__bio-character-v34::after {
	content: none !important;
	pointer-events: none !important;
}

.ldg1__bio-character-v34 .ldg1__seated-character-visual {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	pointer-events: none !important;
}

.ldg1__bio-character-image-v34 {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: contain !important;
	object-position: 50% 100% !important;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
	pointer-events: none !important;
	transition:
		opacity 720ms cubic-bezier(.22,.61,.36,1),
		filter 300ms ease !important;
}

/*
 * Neutralise all obsolete lead/push selectors from earlier versions.
 * Those elements no longer exist, so they cannot accidentally appear.
 */
.ldg1__seated-character-img--lead,
.ldg1__seated-character-img--push {
	display: none !important;
}

/* New BIO panel states are independent of the old controller. */
.ldg1__bio-layer {
	z-index: 1000060 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

.ldg1.is-bio-v34-open .ldg1__bio-layer,
.ldg1.is-bio-v34-closing .ldg1__bio-layer {
	visibility: visible !important;
}

.ldg1.is-bio-v34-open .ldg1__bio-layer {
	pointer-events: auto !important;
}

.ldg1.is-bio-v34-closing .ldg1__bio-layer {
	pointer-events: none !important;
}

/* Panel stays completely below the page while BIO changes into BIO-Push. */
.ldg1__bio-panel {
	opacity: 0 !important;
	transform: translate3d(-50%, calc(100% + 180px), 0) !important;
	transition:
		transform 1050ms cubic-bezier(.14,.86,.22,1),
		opacity 600ms ease !important;
}

.ldg1.is-bio-v34-open .ldg1__bio-panel {
	opacity: 1 !important;
	transform: translate3d(-50%, 0, 0) !important;
}

.ldg1.is-bio-v34-closing .ldg1__bio-panel {
	opacity: 0 !important;
	transform: translate3d(-50%, calc(100% + 180px), 0) !important;
}

.ldg1__bio-backdrop {
	opacity: 0 !important;
	transition: opacity 760ms ease !important;
}

.ldg1.is-bio-v34-open .ldg1__bio-backdrop {
	opacity: 1 !important;
}

.ldg1.is-bio-v34-closing .ldg1__bio-backdrop {
	opacity: 0 !important;
}

/* Keep biography scrolling contained inside the CRT. */
.ldg1__bio-chassis {
	display: flex !important;
	flex-direction: column !important;
	max-height: calc(100svh - 36px) !important;
	overflow: hidden !important;
}

.ldg1__bio-screen {
	display: flex !important;
	flex: 1 1 auto !important;
	min-height: 0 !important;
	overflow: hidden !important;
}

.ldg1__bio-copy {
	flex: 1 1 auto !important;
	min-height: 0 !important;
	height: auto !important;
	max-height: 100% !important;
	overflow-x: hidden !important;
	overflow-y: auto !important;
	overscroll-behavior: contain !important;
	-webkit-overflow-scrolling: touch !important;
	touch-action: pan-y !important;
	pointer-events: auto !important;
}

@media (max-width: 767px) {
	button.ldg1__bio-character-v34,
	button.ldg1__bio-character-v34:hover,
	button.ldg1__bio-character-v34:focus,
	button.ldg1__bio-character-v34:focus-visible,
	button.ldg1__bio-character-v34:active {
		width: 35.66svh !important;
		height: 42.5% !important;
	}

	.ldg1__bio-panel,
	.ldg1.is-bio-v34-closing .ldg1__bio-panel {
		transform: translate3d(-50%, calc(100% + 130px), 0) !important;
	}

	.ldg1.is-bio-v34-open .ldg1__bio-panel {
		transform: translate3d(-50%, 0, 0) !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ldg1__bio-character-image-v34,
	.ldg1__bio-panel,
	.ldg1__bio-backdrop {
		transition-duration: 1ms !important;
	}
}

/* =========================================================
   V35 — NATIVE BIO TOGGLE, NO BLUE BUTTON, REAL LOVE FRAME 3
   The character uses a label + checkbox instead of a WordPress button.
   This removes the blue button skin and makes the interaction work without
   relying on the larger gallery JavaScript.
   ========================================================= */

/* Hidden native controller. */
.ldg1__bio-toggle-v35 {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/* Character hotspot — no button background or pseudo-elements. */
.ldg1__bio-character-v35,
.ldg1__bio-character-v35:hover,
.ldg1__bio-character-v35:focus,
.ldg1__bio-character-v35:focus-visible,
.ldg1__bio-character-v35:active {
	z-index: 40 !important;
	display: block !important;
	width: 35.66svh !important;
	height: 42.5% !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	outline: 0;
	pointer-events: auto !important;
	cursor: pointer !important;
	touch-action: manipulation !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.ldg1__bio-character-v35::before,
.ldg1__bio-character-v35::after {
	content: none !important;
	display: none !important;
	background: none !important;
	box-shadow: none !important;
}

.ldg1__bio-character-v35:focus-visible {
	outline: 1px solid rgba(120, 255, 141, .70) !important;
	outline-offset: 7px;
}

.ldg1__bio-character-v35 .ldg1__seated-character-visual {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	background: transparent !important;
	border-radius: 0 !important;
	pointer-events: none !important;
}

/* Both assets occupy the exact same physical canvas. */
.ldg1__bio-character-image-v35 {
	position: absolute !important;
	inset: 0 !important;
	left: 0 !important;
	bottom: auto !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: contain !important;
	object-position: 50% 100% !important;
	transform: none !important;
	visibility: visible !important;
	pointer-events: none !important;
	-webkit-user-drag: none;
	transition:
		opacity 1100ms cubic-bezier(.22,.61,.36,1),
		filter 300ms ease !important;
}

/*
 * Resting state: exactly one character is visible.
 * These rules deliberately override the older V22 opacity safeguard.
 */
.ldg1__bio-toggle-v35:not(:checked) ~ .ldg1__viewport .ldg1__bio-lead-v35 {
	opacity: 1 !important;
	transition-delay: 1050ms, 0ms !important;
}

.ldg1__bio-toggle-v35:not(:checked) ~ .ldg1__viewport .ldg1__bio-push-v35 {
	opacity: 0 !important;
	transition-delay: 1050ms, 0ms !important;
}

/* Clicked state: BIO smoothly blends into BIO-Push in the same space. */
.ldg1__bio-toggle-v35:checked ~ .ldg1__viewport .ldg1__bio-lead-v35 {
	opacity: 0 !important;
	transition-delay: 0ms !important;
}

.ldg1__bio-toggle-v35:checked ~ .ldg1__viewport .ldg1__bio-push-v35 {
	opacity: 1 !important;
	transition-delay: 0ms !important;
}

/* Neutralise obsolete V34 single-image styling. */
.ldg1__bio-character-image-v34,
.ldg1__bio-character-v34 {
	display: none !important;
}


/* ---------------------------------------------------------
   Delayed retro CRT panel
   --------------------------------------------------------- */

.ldg1__bio-layer-v35 {
	z-index: 1000080 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* Mount immediately, but keep the panel below the page during the blend. */
.ldg1__bio-toggle-v35:checked ~ .ldg1__bio-layer-v35 {
	visibility: visible !important;
	pointer-events: auto !important;
}

.ldg1__bio-layer-v35 .ldg1__bio-panel {
	opacity: 0 !important;
	transform: translate3d(-50%, calc(100% + 180px), 0) !important;
	transition:
		transform 1050ms cubic-bezier(.14,.86,.22,1),
		opacity 600ms ease !important;
	transition-delay: 0ms !important;
}

/*
 * Wait 2.25 seconds: BIO has time to blend into BIO-Push and remain visible
 * briefly before the terminal starts rising.
 */
.ldg1__bio-toggle-v35:checked ~ .ldg1__bio-layer-v35 .ldg1__bio-panel {
	opacity: 1 !important;
	transform: translate3d(-50%, 0, 0) !important;
	transition-delay: 2250ms, 2250ms !important;
}

.ldg1__bio-layer-v35 .ldg1__bio-backdrop {
	display: block !important;
	opacity: 0 !important;
	background:
		radial-gradient(circle at 50% 78%, rgba(57, 122, 67, .12), transparent 34%),
		rgba(0, 0, 0, .54) !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	cursor: default;
	pointer-events: auto !important;
	transition: opacity 760ms ease !important;
	transition-delay: 0ms !important;
}

.ldg1__bio-toggle-v35:checked ~ .ldg1__bio-layer-v35 .ldg1__bio-backdrop {
	opacity: 1 !important;
	transition-delay: 2150ms !important;
}

/* Closing is immediate: panel slides down, then character fades back. */
.ldg1__bio-toggle-v35:not(:checked) ~ .ldg1__bio-layer-v35 .ldg1__bio-panel,
.ldg1__bio-toggle-v35:not(:checked) ~ .ldg1__bio-layer-v35 .ldg1__bio-backdrop {
	transition-delay: 0ms !important;
}

/* Ensure the supplied full biography scrolls within the CRT. */
.ldg1__bio-layer-v35 .ldg1__bio-chassis {
	display: flex !important;
	flex-direction: column !important;
	max-height: calc(100svh - 36px) !important;
	overflow: hidden !important;
}

.ldg1__bio-layer-v35 .ldg1__bio-header {
	flex: 0 0 auto !important;
}

.ldg1__bio-layer-v35 .ldg1__bio-screen {
	display: flex !important;
	flex: 1 1 auto !important;
	height: min(58svh, 530px) !important;
	min-height: 0 !important;
	max-height: min(58svh, 530px) !important;
	overflow: hidden !important;
}

.ldg1__bio-layer-v35 .ldg1__bio-copy {
	position: relative !important;
	z-index: 4 !important;
	flex: 1 1 auto !important;
	width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: 100% !important;
	overflow-x: hidden !important;
	overflow-y: auto !important;
	overscroll-behavior: contain !important;
	-webkit-overflow-scrolling: touch !important;
	touch-action: pan-y !important;
	pointer-events: auto !important;
	scrollbar-gutter: stable;
	padding-bottom: 48px !important;
}

/* Close labels retain the existing CRT styling and are clickable. */
.ldg1__bio-layer-v35 .ldg1__bio-close {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	cursor: pointer !important;
	pointer-events: auto !important;
}

/* Frame 3 Real Love uses the Heavy Gold frame opening. */
.ldg1__artwork-shell--heavy-gold .ldg1__inside-artwork,
.ldg1__artwork-shell--heavy-gold .ldg1__video-slot {
	left: 14.7% !important;
	top: 14.6% !important;
	width: 70.6% !important;
	height: 70.8% !important;
	object-fit: cover !important;
	object-position: center !important;
	transform: none !important;
}

@media (max-width: 767px) {
	.ldg1__bio-character-v35,
	.ldg1__bio-character-v35:hover,
	.ldg1__bio-character-v35:focus,
	.ldg1__bio-character-v35:focus-visible,
	.ldg1__bio-character-v35:active {
		width: 35.66svh !important;
		height: 42.5% !important;
	}

	.ldg1__bio-layer-v35 .ldg1__bio-panel {
		transform: translate3d(-50%, calc(100% + 130px), 0) !important;
	}

	.ldg1__bio-toggle-v35:checked ~ .ldg1__bio-layer-v35 .ldg1__bio-panel {
		transform: translate3d(-50%, 0, 0) !important;
	}

	.ldg1__bio-layer-v35 .ldg1__bio-screen {
		height: min(64svh, 560px) !important;
		max-height: min(64svh, 560px) !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ldg1__bio-character-image-v35,
	.ldg1__bio-layer-v35 .ldg1__bio-panel,
	.ldg1__bio-layer-v35 .ldg1__bio-backdrop {
		transition-duration: 1ms !important;
		transition-delay: 0ms !important;
	}
}

/* =========================================================
   V43 — SEAM-FREE CHARACTER + ASSET-READY REVEAL

   One clean WebP is drawn for each pose. The duplicated filtered image clones
   used for the rim lighting have been removed because Chromium/Edge could
   rasterise the transparent WebP in two tiles and expose a line down its centre.
   The warm rear light is now made with silhouette-following drop shadows and a
   soft halo behind the figure. The whole unit remains hidden until the default
   figure and reflection have loaded and decoded, so no temporary blurred blob
   can appear while the remote character files are still arriving.
   ========================================================= */

/* Covers both repeated-room joins without moving with parallax. */
.ldg1__gallery-join-seam-concealer {
	position: absolute;
	z-index: 14;
	top: 0;
	bottom: 0;
	display: block;
	width: clamp(8px, .72vw, 15px);
	background: linear-gradient(
		90deg,
		transparent 0%,
		rgba(9, 5, 2, .48) 22%,
		rgba(8, 4, 1, .88) 50%,
		rgba(9, 5, 2, .48) 78%,
		transparent 100%
	);
	filter: blur(3px);
	opacity: .78;
	transform: translateX(-50%);
	pointer-events: none;
	user-select: none;
}

.ldg1__gallery-join-seam-concealer--one {
	left: calc(var(--ldg1-room-width) - var(--ldg1-seam-half));
}

.ldg1__gallery-join-seam-concealer--two {
	left: calc(
		var(--ldg1-room-width) + var(--ldg1-room-width)
		- var(--ldg1-seam-blend) - var(--ldg1-seam-half)
	);
}

.ldg1__gallery-join-seam-concealer--three {
	left: calc(
		var(--ldg1-room-width) + var(--ldg1-room-width) + var(--ldg1-room-width)
		- var(--ldg1-seam-blend) - var(--ldg1-seam-blend) - var(--ldg1-seam-half)
	);
}

.ldg1__gallery-join-character {
	position: absolute;
	z-index: 15;
	left: calc(var(--ldg1-room-width) - clamp(17px, 1.8vw, 34px));
	bottom: 18%;
	display: block;
	width: 28.48vh;
	width: 28.48svh;
	height: 52%;
	margin: 0;
	padding: 0;
	overflow: visible;
	pointer-events: none;
	user-select: none;
	isolation: isolate;
	opacity: 0;
	visibility: hidden;
	transform:
		translate3d(
			calc(-50% + var(--ldg1-join-shift, 0px)),
			0,
			0
		);
	transform-origin: 50% 100%;
	filter: none;
	transition:
		opacity 190ms cubic-bezier(.22,.61,.36,1),
		filter 1750ms cubic-bezier(.20,.62,.24,1);
	backface-visibility: visible;
	-webkit-backface-visibility: visible;
	will-change: transform;
}

/* Nothing—halo, shadow, figure or reflection—is painted before the main assets are ready. */
.ldg1__gallery-join-character.is-default-ready {
	opacity: 1;
	visibility: visible;
}

.ldg1__gallery-join-figure {
	position: absolute;
	z-index: 3;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

/* Warm light spill from the two real vertical bars, behind rather than over the person. */
.ldg1__gallery-join-figure::before {
	position: absolute;
	z-index: 1;
	inset: 3% -16% -1%;
	content: "";
	background:
		radial-gradient(
			ellipse at 50% 54%,
			rgba(255, 188, 79, .25) 0%,
			rgba(255, 149, 31, .14) 34%,
			rgba(255, 126, 15, .05) 55%,
			transparent 75%
		),
		linear-gradient(
			90deg,
			rgba(255, 164, 38, .16) 0%,
			transparent 21%,
			transparent 79%,
			rgba(255, 164, 38, .16) 100%
		);
	filter: blur(13px);
	mix-blend-mode: screen;
	opacity: .90;
	transform: scale(.96, .98);
	transform-origin: 50% 56%;
	pointer-events: none;
}

.ldg1__gallery-join-pose {
	position: absolute;
	z-index: 2;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	pointer-events: none;
	backface-visibility: visible;
	-webkit-backface-visibility: visible;
	/* One filter operation over one complete image prevents the old tiled centre seam. */
	filter:
		brightness(.80)
		contrast(1.10)
		saturate(.92)
		sepia(.10)
		drop-shadow(0 12px 12px rgba(0, 0, 0, .52))
		drop-shadow(-5px 0 7px rgba(255, 157, 30, .28))
		drop-shadow(5px 0 7px rgba(255, 157, 30, .28))
		drop-shadow(0 0 10px rgba(255, 178, 55, .12));
}

/* Fade-through timing: the outgoing pose clears before the incoming pose begins. */
.ldg1__gallery-join-pose--default {
	opacity: 1;
	transition: opacity 95ms cubic-bezier(.55,.06,.68,.19) 0ms;
}

.ldg1__gallery-join-pose--guide {
	z-index: 3;
	opacity: 0;
	transition: opacity 105ms cubic-bezier(.22,.61,.36,1) 105ms;
}

.ldg1__gallery-join-character.is-guide-pose.is-guide-ready .ldg1__gallery-join-pose--default {
	opacity: 0;
	transition-delay: 0ms;
}

.ldg1__gallery-join-character.is-guide-pose.is-guide-ready .ldg1__gallery-join-pose--guide {
	opacity: 1;
	transition-delay: 105ms;
}

/* On the return, the guide clears before the default pose fades back in. */
.ldg1__gallery-join-character:not(.is-guide-pose) .ldg1__gallery-join-pose--default {
	transition: opacity 105ms cubic-bezier(.22,.61,.36,1) 105ms;
}

.ldg1__gallery-join-character:not(.is-guide-pose) .ldg1__gallery-join-pose--guide {
	transition: opacity 95ms cubic-bezier(.55,.06,.68,.19) 0ms;
}

.ldg1__gallery-join-character-img {
	position: absolute;
	z-index: 2;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	object-fit: contain;
	object-position: 50% 100%;
	filter: none !important;
	transform: none !important;
	backface-visibility: visible !important;
	-webkit-backface-visibility: visible !important;
	image-rendering: auto;
	pointer-events: none;
	-webkit-user-drag: none;
}

.ldg1__gallery-join-contact-shadow {
	position: absolute;
	z-index: 2;
	left: 50%;
	bottom: -.15%;
	display: block;
	width: 46%;
	height: 3.4%;
	background: radial-gradient(
		ellipse at center,
		rgba(0, 0, 0, .78) 0%,
		rgba(0, 0, 0, .43) 46%,
		transparent 77%
	);
	filter: blur(2.6px);
	transform: translateX(-50%);
	pointer-events: none;
}

.ldg1__gallery-join-reflection {
	position: absolute;
	z-index: 1;
	left: -3%;
	top: calc(100% - 1px);
	display: block;
	width: 106%;
	height: 38%;
	overflow: hidden;
	pointer-events: none;
	opacity: .72;
	transform: perspective(560px) rotateX(3deg) scaleX(.94);
	transform-origin: 50% 0;
	-webkit-mask-image: linear-gradient(
		to bottom,
		rgba(0, 0, 0, .94) 0%,
		rgba(0, 0, 0, .73) 38%,
		rgba(0, 0, 0, .34) 72%,
		transparent 100%
	);
	mask-image: linear-gradient(
		to bottom,
		rgba(0, 0, 0, .94) 0%,
		rgba(0, 0, 0, .73) 38%,
		rgba(0, 0, 0, .34) 72%,
		transparent 100%
	);
}

.ldg1__gallery-join-reflection-pose {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	pointer-events: none;
	backface-visibility: visible;
	-webkit-backface-visibility: visible;
	filter:
		brightness(.56)
		contrast(1.12)
		saturate(.74)
		sepia(.26)
		blur(.58px)
		drop-shadow(0 0 5px rgba(255, 160, 37, .14));
}

.ldg1__gallery-join-reflection-pose--default {
	opacity: 1;
	transition: opacity 95ms cubic-bezier(.55,.06,.68,.19) 0ms;
}

.ldg1__gallery-join-reflection-pose--guide {
	opacity: 0;
	transition: opacity 105ms cubic-bezier(.22,.61,.36,1) 105ms;
}

.ldg1__gallery-join-character.is-guide-pose.is-guide-ready .ldg1__gallery-join-reflection-pose--default {
	opacity: 0;
	transition-delay: 0ms;
}

.ldg1__gallery-join-character.is-guide-pose.is-guide-ready .ldg1__gallery-join-reflection-pose--guide {
	opacity: 1;
	transition-delay: 105ms;
}

.ldg1__gallery-join-character:not(.is-guide-pose) .ldg1__gallery-join-reflection-pose--default {
	transition: opacity 105ms cubic-bezier(.22,.61,.36,1) 105ms;
}

.ldg1__gallery-join-character:not(.is-guide-pose) .ldg1__gallery-join-reflection-pose--guide {
	transition: opacity 95ms cubic-bezier(.55,.06,.68,.19) 0ms;
}

.ldg1__gallery-join-reflection-img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	object-fit: fill;
	object-position: 50% 50%;
	opacity: .90;
	mix-blend-mode: normal !important;
	filter: none !important;
	transform: scaleY(-1);
	transform-origin: 50% 50%;
	backface-visibility: visible !important;
	-webkit-backface-visibility: visible !important;
	image-rendering: auto;
	pointer-events: none;
	-webkit-user-drag: none;
}

/* Existing camera-depth treatment is only allowed after the default figure is ready. */
.ldg1.is-walking-to-artwork .ldg1__gallery-join-character.is-default-ready,
.ldg1.is-artwork-focused .ldg1__gallery-join-character.is-default-ready {
	filter: blur(4.7px) brightness(.84) saturate(.92);
}

.ldg1.is-returning-from-artwork .ldg1__gallery-join-character.is-default-ready {
	filter: none;
	transition-duration: 1650ms;
}

@supports (height: 100dvh) {
	.ldg1__gallery-join-character {
		width: 28.48dvh;
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	.ldg1.is-walking-to-artwork .ldg1__gallery-join-character.is-default-ready,
	.ldg1.is-artwork-focused .ldg1__gallery-join-character.is-default-ready {
		filter: blur(3.8px) brightness(.86) saturate(.93);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ldg1__gallery-join-character,
	.ldg1__gallery-join-pose,
	.ldg1__gallery-join-reflection-pose {
		transition-duration: 1ms !important;
		transition-delay: 0ms !important;
	}
}

/* =========================================================
   V43 — SILHOUETTE-ONLY BIO CHARACTER CLICK TARGET
   The BIO artwork sits inside a rectangular transparent image canvas.
   The old label made that entire rectangle clickable and intercepted
   Frame 1. The label now ignores pointer input; only this closely
   traced transparent hotspot accepts clicks. Areas around the visible
   character pass directly through to the gallery beneath it.
   ========================================================= */

.ldg1__bio-character-v35,
.ldg1__bio-character-v35:hover,
.ldg1__bio-character-v35:focus,
.ldg1__bio-character-v35:focus-visible,
.ldg1__bio-character-v35:active {
	pointer-events: none !important;
	cursor: default !important;
}

.ldg1__bio-character-hit-v43 {
	position: absolute;
	z-index: 20;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	background: transparent;
	pointer-events: auto;
	cursor: pointer;
	touch-action: manipulation;
	user-select: none;
	-webkit-user-select: none;
	-webkit-tap-highlight-color: transparent;
	clip-path: polygon(
		51.00% 1.26%,
		49.00% 2.24%,
		24.50% 28.11%,
		24.67% 29.51%,
		36.33% 30.63%,
		33.17% 34.55%,
		22.33% 38.46%,
		18.33% 41.12%,
		12.67% 54.13%,
		4.67% 65.45%,
		5.50% 72.03%,
		2.17% 74.41%,
		0.50% 78.18%,
		0.50% 82.94%,
		5.50% 88.11%,
		7.50% 88.67%,
		10.67% 91.61%,
		16.00% 94.55%,
		28.67% 98.74%,
		64.17% 99.16%,
		71.33% 98.32%,
		80.83% 94.69%,
		92.33% 88.67%,
		96.83% 85.03%,
		98.50% 82.52%,
		98.50% 79.16%,
		96.83% 75.10%,
		92.17% 72.31%,
		92.50% 64.76%,
		89.83% 62.38%,
		85.00% 55.24%,
		78.17% 42.10%,
		73.50% 38.32%,
		63.67% 35.24%,
		60.50% 31.05%,
		71.17% 30.49%,
		71.17% 29.65%,
		56.50% 7.97%
	);
	-webkit-clip-path: polygon(
		51.00% 1.26%,
		49.00% 2.24%,
		24.50% 28.11%,
		24.67% 29.51%,
		36.33% 30.63%,
		33.17% 34.55%,
		22.33% 38.46%,
		18.33% 41.12%,
		12.67% 54.13%,
		4.67% 65.45%,
		5.50% 72.03%,
		2.17% 74.41%,
		0.50% 78.18%,
		0.50% 82.94%,
		5.50% 88.11%,
		7.50% 88.67%,
		10.67% 91.61%,
		16.00% 94.55%,
		28.67% 98.74%,
		64.17% 99.16%,
		71.33% 98.32%,
		80.83% 94.69%,
		92.33% 88.67%,
		96.83% 85.03%,
		98.50% 82.52%,
		98.50% 79.16%,
		96.83% 75.10%,
		92.17% 72.31%,
		92.50% 64.76%,
		89.83% 62.38%,
		85.00% 55.24%,
		78.17% 42.10%,
		73.50% 38.32%,
		63.67% 35.24%,
		60.50% 31.05%,
		71.17% 30.49%,
		71.17% 29.65%,
		56.50% 7.97%
	);
}

/* Keyboard users still receive a clear character-shaped focus cue. */
.ldg1__bio-character-v35:focus-visible {
	outline: 0 !important;
}

.ldg1__bio-character-v35:focus-visible .ldg1__bio-character-image-v35 {
	filter:
		brightness(1.06)
		saturate(1.05)
		drop-shadow(0 0 9px rgba(120, 255, 141, .34)) !important;
}


/* =========================================================
   V47 — BIO TERMINAL HANDS SCOPED TO BIO PANEL ONLY
   The BIO terminal should feel as though the viewer is holding it.
   Two supplied transparent WebPs are mounted as non-interactive
   overlays, slightly wrapping over the left and right chassis edges.
   Their lower portions intentionally fall below the bottom of the
   viewport while the terminal rises from the page edge.
   ========================================================= */

.ldg1__bio-layer-v35 .ldg1__bio-panel {
	overflow: visible !important;
}

/*
 * Hard scope: the hand overlay can only exist as a direct child of the BIO
 * panel. Even if matching markup were accidentally added elsewhere, these
 * rules would not display or position it.
 */
.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands {
	position: absolute;
	z-index: 6;
	left: 0;
	right: 0;
	bottom: 0;
	height: 0;
	pointer-events: none !important;
	user-select: none;
	-webkit-user-select: none;
}

.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand {
	position: absolute;
	display: block;
	width: clamp(210px, 21.8vw, 338px);
	height: auto;
	max-width: 48%;
	margin: 0;
	padding: 0;
	pointer-events: none !important;
	user-select: none;
	-webkit-user-select: none;
	-webkit-user-drag: none;
	filter:
		drop-shadow(0 18px 30px rgba(0, 0, 0, .50))
		drop-shadow(0 4px 12px rgba(255, 170, 66, .08));
	transform-origin: 50% 100%;
}

.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand--left {
	left: clamp(-118px, -8.8vw, -64px);
	bottom: calc(-1 * clamp(78px, 6.6vw, 108px));
	transform: rotate(-2.6deg);
}

.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand--right {
	right: clamp(-122px, -9.1vw, -66px);
	bottom: calc(-1 * clamp(78px, 6.6vw, 108px));
	transform: rotate(2.6deg);
}

/* The soundtrack album-information card must never display BIO hands. */
.ldg1 .ld-audio-album-card .ldg1__bio-hands {
	display: none !important;
}

@media (max-width: 1100px) {
	.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand {
		width: clamp(194px, 24vw, 286px);
		max-width: 49%;
	}

	.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand--left {
		left: clamp(-102px, -10vw, -48px);
		bottom: calc(-1 * clamp(70px, 7.4vw, 98px));
	}

	.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand--right {
		right: clamp(-106px, -10.4vw, -50px);
		bottom: calc(-1 * clamp(70px, 7.4vw, 98px));
	}
}

@media (max-width: 767px) {
	.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand {
		width: clamp(168px, 29vw, 220px);
		max-width: 50%;
		filter:
			drop-shadow(0 14px 24px rgba(0, 0, 0, .48))
			drop-shadow(0 3px 10px rgba(255, 170, 66, .08));
	}

	.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand--left {
		left: clamp(-84px, -9.8vw, -36px);
		bottom: calc(-1 * clamp(58px, 8.2vw, 84px));
		transform: rotate(-2deg);
	}

	.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand--right {
		right: clamp(-88px, -10.2vw, -38px);
		bottom: calc(-1 * clamp(58px, 8.2vw, 84px));
		transform: rotate(2deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand {
		transform: none !important;
	}
}

/* =========================================================
   V48 — NARROWER BIO SCREEN + CLEAR HAND / TEXT SEPARATION
   The hands should sit on the frame edges and never intrude into the
   readable green text area. The visible BIO screen is narrowed and
   the hands are pushed farther outward across desktop, tablet and mobile.
   ========================================================= */

.ldg1__bio-layer-v35 .ldg1__bio-panel {
	width: min(640px, calc(100vw - 24px)) !important;
	max-width: 92vw !important;
}

.ldg1__bio-layer-v35 .ldg1__bio-chassis {
	padding-left: 10px !important;
	padding-right: 10px !important;
}

.ldg1__bio-layer-v35 .ldg1__bio-screen {
	width: calc(100% - 134px) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.ldg1__bio-layer-v35 .ldg1__bio-copy {
	padding-left: clamp(18px, 3.4vw, 30px) !important;
	padding-right: clamp(18px, 3.4vw, 30px) !important;
}

.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand {
	width: clamp(206px, 21.2vw, 328px) !important;
	max-width: 46% !important;
}

.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand--left {
	left: clamp(-174px, -13.2vw, -118px) !important;
	bottom: calc(-1 * clamp(82px, 6.9vw, 112px)) !important;
	transform: rotate(-2.6deg);
}

.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand--right {
	right: clamp(-178px, -13.5vw, -120px) !important;
	bottom: calc(-1 * clamp(82px, 6.9vw, 112px)) !important;
	transform: rotate(2.6deg);
}

@media (max-width: 1100px) {
	.ldg1__bio-layer-v35 .ldg1__bio-panel {
		width: min(590px, calc(100vw - 18px)) !important;
		max-width: 94vw !important;
	}

	.ldg1__bio-layer-v35 .ldg1__bio-screen {
		width: calc(100% - 118px) !important;
	}

	.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand {
		width: clamp(188px, 23vw, 278px) !important;
		max-width: 47% !important;
	}

	.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand--left {
		left: clamp(-152px, -14.2vw, -94px) !important;
		bottom: calc(-1 * clamp(72px, 7.5vw, 98px)) !important;
	}

	.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand--right {
		right: clamp(-156px, -14.6vw, -96px) !important;
		bottom: calc(-1 * clamp(72px, 7.5vw, 98px)) !important;
	}
}

@media (max-width: 767px) {
	.ldg1__bio-layer-v35 .ldg1__bio-panel {
		width: min(520px, calc(100vw - 12px)) !important;
		max-width: calc(100vw - 12px) !important;
	}

	.ldg1__bio-layer-v35 .ldg1__bio-screen {
		width: calc(100% - 92px) !important;
	}

	.ldg1__bio-layer-v35 .ldg1__bio-copy {
		padding-left: 18px !important;
		padding-right: 18px !important;
	}

	.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand {
		width: clamp(156px, 27vw, 210px) !important;
		max-width: 48% !important;
		filter:
			drop-shadow(0 14px 24px rgba(0, 0, 0, .48))
			drop-shadow(0 3px 10px rgba(255, 170, 66, .08)) !important;
	}

	.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand--left {
		left: clamp(-122px, -13vw, -72px) !important;
		bottom: calc(-1 * clamp(60px, 8.4vw, 84px)) !important;
		transform: rotate(-2deg);
	}

	.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand--right {
		right: clamp(-126px, -13.5vw, -74px) !important;
		bottom: calc(-1 * clamp(60px, 8.4vw, 84px)) !important;
		transform: rotate(2deg);
	}
}

/* =========================================================
   V49 — TWO-SECOND BIO CLOSE + OLD GREEN CRT SHUTDOWN
   The unchecked native toggle previously hid the whole layer instantly.
   JavaScript now adds is-bio-v49-closing before the browser repaints,
   keeping the complete pad and hands mounted for a full two-second slide.
   ========================================================= */

.ldg1.is-bio-v49-closing .ldg1__bio-layer-v35 {
	visibility: visible !important;
	opacity: 1 !important;
	pointer-events: none !important;
}

.ldg1.is-bio-v49-closing .ldg1__bio-layer-v35 .ldg1__bio-panel {
	opacity: 0 !important;
	transform: translate3d(-50%, calc(100% + 280px), 0) !important;
	transition:
		transform 2000ms cubic-bezier(.22,.61,.36,1),
		opacity 360ms ease 1640ms !important;
	transition-delay: 0ms !important;
}

.ldg1.is-bio-v49-closing .ldg1__bio-layer-v35 .ldg1__bio-backdrop {
	opacity: 0 !important;
	transition: opacity 900ms ease !important;
	transition-delay: 0ms !important;
}

/* Keep BIO-Push visible until the pad has completely left the screen. */
.ldg1.is-bio-v49-closing .ldg1__bio-lead-v35 {
	opacity: 0 !important;
	transition-delay: 0ms !important;
}

.ldg1.is-bio-v49-closing .ldg1__bio-push-v35 {
	opacity: 1 !important;
	transition-delay: 0ms !important;
}

/* Once the two-second slide is complete, restore the resting BIO pose. */
.ldg1.is-bio-v49-restoring .ldg1__bio-lead-v35 {
	opacity: 1 !important;
	transition-delay: 0ms !important;
}

.ldg1.is-bio-v49-restoring .ldg1__bio-push-v35 {
	opacity: 0 !important;
	transition-delay: 0ms !important;
}

.ldg1__bio-screen.is-crt-shutting-down-v49 {
	transform-origin: 50% 50%;
	animation: ldg1-bio-crt-shutdown-v49 820ms steps(1, end) forwards !important;
	will-change: opacity, transform, filter;
}

.ldg1__bio-screen.is-crt-shutting-down-v49::after {
	position: absolute;
	z-index: 8;
	left: 6%;
	right: 6%;
	top: 50%;
	height: 2px;
	content: "";
	background: rgba(175, 255, 187, .96);
	box-shadow:
		0 0 5px rgba(126, 255, 145, .94),
		0 0 16px rgba(126, 255, 145, .72),
		0 0 34px rgba(126, 255, 145, .34);
	opacity: 0;
	pointer-events: none;
	animation: ldg1-bio-crt-line-v49 820ms linear forwards;
}

@keyframes ldg1-bio-crt-shutdown-v49 {
	0% {
		opacity: 1;
		transform: scaleY(1);
		filter: brightness(1) contrast(1);
	}
	8% {
		opacity: .28;
		filter: brightness(2.5) contrast(1.35);
	}
	13% {
		opacity: 1;
		filter: brightness(1.2) contrast(1.08);
	}
	21% {
		opacity: .12;
		filter: brightness(2.8) contrast(1.45);
	}
	27% {
		opacity: .92;
		filter: brightness(.88) contrast(1.18);
	}
	36% {
		opacity: .24;
		filter: brightness(2.2) contrast(1.4);
	}
	44% {
		opacity: 1;
		transform: scaleY(1);
		filter: brightness(1.25) contrast(1.15);
	}
	55% {
		opacity: .18;
		filter: brightness(3) contrast(1.55);
	}
	63% {
		opacity: .92;
		transform: scaleY(1);
		filter: brightness(1.35) contrast(1.25);
	}
	72% {
		opacity: 1;
		transform: scaleY(.075);
		filter: brightness(3.2) contrast(1.6) saturate(.45);
	}
	84% {
		opacity: .86;
		transform: scaleY(.012);
		filter: brightness(4) contrast(1.8) saturate(.2);
	}
	100% {
		opacity: 0;
		transform: scaleY(.002);
		filter: brightness(0) contrast(2) saturate(0);
	}
}

@keyframes ldg1-bio-crt-line-v49 {
	0%, 58% {
		opacity: 0;
		transform: scaleX(.25);
	}
	70% {
		opacity: 1;
		transform: scaleX(1);
	}
	84% {
		opacity: .82;
		transform: scaleX(.48);
	}
	100% {
		opacity: 0;
		transform: scaleX(.04);
	}
}

/* =========================================================
   V49 — INDEPENDENT, SUBTLE HAND MOVEMENT
   The movement is deliberately small so the hands remain gripping the
   same edges. Different timings prevent them moving as a mirrored pair.
   ========================================================= */

.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand--left {
	animation: ldg1-bio-hand-left-v49 5.2s ease-in-out -1.1s infinite;
}

.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand--right {
	animation: ldg1-bio-hand-right-v49 6.1s ease-in-out -3.4s infinite;
}

@keyframes ldg1-bio-hand-left-v49 {
	0%, 100% {
		transform: translate3d(0, 0, 0) rotate(-2.6deg);
	}
	28% {
		transform: translate3d(0, -5px, 0) rotate(-2.25deg);
	}
	61% {
		transform: translate3d(0, 2px, 0) rotate(-2.8deg);
	}
	82% {
		transform: translate3d(0, -2px, 0) rotate(-2.5deg);
	}
}

@keyframes ldg1-bio-hand-right-v49 {
	0%, 100% {
		transform: translate3d(0, 1px, 0) rotate(2.6deg);
	}
	34% {
		transform: translate3d(0, -4px, 0) rotate(2.9deg);
	}
	67% {
		transform: translate3d(0, 3px, 0) rotate(2.3deg);
	}
	86% {
		transform: translate3d(0, -1px, 0) rotate(2.7deg);
	}
}

@media (max-width: 767px) {
	@keyframes ldg1-bio-hand-left-v49 {
		0%, 100% { transform: translate3d(0, 0, 0) rotate(-2deg); }
		28% { transform: translate3d(0, -4px, 0) rotate(-1.7deg); }
		61% { transform: translate3d(0, 2px, 0) rotate(-2.2deg); }
		82% { transform: translate3d(0, -1px, 0) rotate(-1.9deg); }
	}

	@keyframes ldg1-bio-hand-right-v49 {
		0%, 100% { transform: translate3d(0, 1px, 0) rotate(2deg); }
		34% { transform: translate3d(0, -3px, 0) rotate(2.25deg); }
		67% { transform: translate3d(0, 2px, 0) rotate(1.8deg); }
		86% { transform: translate3d(0, -1px, 0) rotate(2.1deg); }
	}
}

@media (prefers-reduced-motion: reduce) {
	.ldg1.is-bio-v49-closing .ldg1__bio-layer-v35 .ldg1__bio-panel {
		transition-duration: 1ms !important;
		transition-delay: 0ms !important;
	}

	.ldg1__bio-screen.is-crt-shutting-down-v49,
	.ldg1__bio-screen.is-crt-shutting-down-v49::after,
	.ldg1__bio-layer-v35 .ldg1__bio-panel > .ldg1__bio-hands .ldg1__bio-hand {
		animation: none !important;
	}
}

/* =========================================================
   V50 — FAR-RIGHT TV HEAD CHARACTER + ANIMATED SMILE SCREENS
   Added between the plants and the final frame on the far-right wall.
   The figure is non-interactive, lit by the gallery, and reflected on
   the polished floor. Four smile screens loop on the TV face, each held
   for four seconds before fading to the next.
   ========================================================= */

.ldg1__tv-head-character {
	position: absolute;
	z-index: 18;
	left: 67.55%;
	bottom: 17.4%;
	display: block;
	width: 19.8vh;
	width: 19.8svh;
	height: 39.5%;
	margin: 0;
	padding: 0;
	overflow: visible;
	pointer-events: none;
	user-select: none;
	isolation: isolate;
	transform: translateX(-50%);
	transform-origin: 50% 100%;
	backface-visibility: visible;
	-webkit-backface-visibility: visible;
	will-change: transform;
}

@supports (height: 100dvh) {
	.ldg1__tv-head-character {
		width: 19.8dvh;
	}
}

.ldg1__tv-head-figure,
.ldg1__tv-head-reflection-figure {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.ldg1__tv-head-figure::before {
	position: absolute;
	z-index: 1;
	inset: 1% -10% 0;
	content: "";
	background:
		radial-gradient(ellipse at 50% 46%, rgba(255, 188, 79, .23) 0%, rgba(255, 149, 31, .12) 36%, rgba(255, 126, 15, .04) 58%, transparent 78%),
		linear-gradient(90deg, rgba(255, 164, 38, .11) 0%, transparent 18%, transparent 82%, rgba(255, 164, 38, .11) 100%);
	filter: blur(10px);
	mix-blend-mode: screen;
	opacity: .88;
	pointer-events: none;
}

.ldg1__tv-head-character-img,
.ldg1__tv-head-reflection-img {
	position: absolute;
	z-index: 2;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	object-fit: contain;
	object-position: 50% 100%;
	pointer-events: none;
	-webkit-user-drag: none;
	backface-visibility: visible !important;
	-webkit-backface-visibility: visible !important;
}

.ldg1__tv-head-character-img {
	filter:
		brightness(.88)
		contrast(1.06)
		saturate(.94)
		sepia(.06)
		drop-shadow(0 12px 12px rgba(0, 0, 0, .52))
		drop-shadow(-4px 0 6px rgba(255, 157, 30, .20))
		drop-shadow(4px 0 6px rgba(255, 157, 30, .20));
}

.ldg1__tv-head-screen {
	position: absolute;
	z-index: 3;
	left: 34.2%;
	top: 10.6%;
	width: 30.8%;
	height: 15.1%;
	overflow: hidden;
	border-radius: 8% / 10%;
	background: rgba(1, 9, 9, .42);
	box-shadow:
		0 0 8px rgba(94, 255, 197, .16),
		inset 0 0 6px rgba(117, 255, 214, .10);
	pointer-events: none;
}

.ldg1__tv-head-screen::before {
	position: absolute;
	z-index: 4;
	inset: 0;
	content: "";
	background:
		linear-gradient(180deg, rgba(255,255,255,.12) 0%, rgba(255,255,255,0) 26%, rgba(0,0,0,0) 74%, rgba(0,0,0,.10) 100%),
		repeating-linear-gradient(180deg, rgba(0, 0, 0, .10) 0px, rgba(0, 0, 0, .10) 1px, transparent 1px, transparent 3px);
	mix-blend-mode: screen;
	opacity: .42;
	pointer-events: none;
}

.ldg1__tv-head-screen--reflection {
	left: 34.2%;
	top: 10.6%;
	width: 30.8%;
	height: 15.1%;
	transform: scaleY(-1);
	transform-origin: 50% 50%;
	box-shadow: none;
	opacity: .74;
}

.ldg1__tv-head-screen-img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center center;
	opacity: 0;
	filter:
		brightness(1.02)
		contrast(1.05)
		saturate(1.04)
		drop-shadow(0 0 5px rgba(107, 255, 218, .26));
	animation-duration: 16s;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
	pointer-events: none;
	-webkit-user-drag: none;
}

.ldg1__tv-head-screen-img--1 { animation-name: ldg1-tv-smile-1; }
.ldg1__tv-head-screen-img--2 { animation-name: ldg1-tv-smile-2; }
.ldg1__tv-head-screen-img--3 { animation-name: ldg1-tv-smile-3; }
.ldg1__tv-head-screen-img--4 { animation-name: ldg1-tv-smile-4; }

@keyframes ldg1-tv-smile-1 {
	0%, 21% { opacity: 1; }
	24%, 100% { opacity: 0; }
}

@keyframes ldg1-tv-smile-2 {
	0%, 22% { opacity: 0; }
	25%, 46% { opacity: 1; }
	49%, 100% { opacity: 0; }
}

@keyframes ldg1-tv-smile-3 {
	0%, 47% { opacity: 0; }
	50%, 71% { opacity: 1; }
	74%, 100% { opacity: 0; }
}

@keyframes ldg1-tv-smile-4 {
	0%, 72% { opacity: 0; }
	75%, 96% { opacity: 1; }
	100% { opacity: 0; }
}

.ldg1__tv-head-contact-shadow {
	position: absolute;
	z-index: 1;
	left: 50%;
	bottom: -.3%;
	display: block;
	width: 46%;
	height: 3.1%;
	background: radial-gradient(ellipse at center, rgba(0, 0, 0, .75) 0%, rgba(0, 0, 0, .40) 48%, transparent 77%);
	filter: blur(2.5px);
	transform: translateX(-50%);
	pointer-events: none;
}

.ldg1__tv-head-reflection {
	position: absolute;
	z-index: 0;
	left: -3%;
	top: calc(100% - 1px);
	display: block;
	width: 106%;
	height: 32%;
	overflow: hidden;
	pointer-events: none;
	opacity: .64;
	transform: perspective(560px) rotateX(3deg) scaleX(.95);
	transform-origin: 50% 0;
	-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .92) 0%, rgba(0, 0, 0, .70) 35%, rgba(0, 0, 0, .28) 72%, transparent 100%);
	mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .92) 0%, rgba(0, 0, 0, .70) 35%, rgba(0, 0, 0, .28) 72%, transparent 100%);
}

.ldg1__tv-head-reflection-figure {
	filter:
		brightness(.52)
		contrast(1.06)
		saturate(.72)
		sepia(.18)
		blur(.52px)
		drop-shadow(0 0 5px rgba(255, 160, 37, .12));
}

.ldg1__tv-head-reflection-img {
	opacity: .92;
	transform: scaleY(-1);
	transform-origin: 50% 50%;
	filter: none !important;
}

.ldg1__tv-head-screen--reflection::before {
	opacity: .28;
}

.ldg1.is-walking-to-artwork .ldg1__tv-head-character,
.ldg1.is-artwork-focused .ldg1__tv-head-character {
	filter: blur(4.3px) brightness(.84) saturate(.92);
}

.ldg1.is-returning-from-artwork .ldg1__tv-head-character {
	filter: none;
	transition: filter 1650ms cubic-bezier(.20,.62,.24,1);
}

@media (max-width: 991px) {
	.ldg1__tv-head-character {
		left: 67.3%;
		bottom: 17.2%;
		height: 38.6%;
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	.ldg1__tv-head-character {
		left: 67.15%;
		bottom: 17.15%;
		height: 37.9%;
	}

	.ldg1__tv-head-screen,
	.ldg1__tv-head-screen--reflection {
		left: 34%;
		top: 10.9%;
		width: 31%;
		height: 15.2%;
	}

	.ldg1.is-walking-to-artwork .ldg1__tv-head-character,
	.ldg1.is-artwork-focused .ldg1__tv-head-character {
		filter: blur(3.5px) brightness(.86) saturate(.93);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ldg1__tv-head-screen-img {
		animation-duration: 1ms !important;
	}
}

/* =========================================================
   V51 — TV HEAD SCALE + SCREEN FIT CORRECTION
   The TV Head must sit at the far-right end at a larger scale, with the
   smile images confined to the TV screen area only.
   ========================================================= */

.ldg1__tv-head-character {
	left: 69.4% !important;
	bottom: 14.8% !important;
	height: 50.8% !important;
	width: 25.8vh !important;
	width: 25.8svh !important;
}

@supports (height: 100dvh) {
	.ldg1__tv-head-character {
		width: 25.8dvh !important;
	}
}

.ldg1__tv-head-character-img {
	filter:
		brightness(.90)
		contrast(1.06)
		saturate(.94)
		sepia(.06)
		drop-shadow(0 14px 14px rgba(0, 0, 0, .54))
		drop-shadow(-4px 0 7px rgba(255, 157, 30, .22))
		drop-shadow(4px 0 7px rgba(255, 157, 30, .22)) !important;
}

.ldg1__tv-head-screen,
.ldg1__tv-head-screen--reflection {
	left: 31.8% !important;
	top: 1.6% !important;
	width: 36.6% !important;
	height: 10.4% !important;
	border-radius: 7% / 10% !important;
	background: rgba(2, 8, 8, .14) !important;
	overflow: hidden !important;
}

.ldg1__tv-head-screen::before {
	opacity: .30 !important;
}

.ldg1__tv-head-screen-img {
	object-fit: contain !important;
	object-position: center center !important;
	filter:
		brightness(1.02)
		contrast(1.04)
		saturate(1.02)
		drop-shadow(0 0 4px rgba(107, 255, 218, .22)) !important;
}

.ldg1__tv-head-reflection {
	height: 36% !important;
	opacity: .68 !important;
}

@media (max-width: 991px) {
	.ldg1__tv-head-character {
		left: 69.1% !important;
		bottom: 14.7% !important;
		height: 49.8% !important;
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	.ldg1__tv-head-character {
		left: 68.9% !important;
		bottom: 14.55% !important;
		height: 48.8% !important;
	}

	.ldg1__tv-head-screen,
	.ldg1__tv-head-screen--reflection {
		left: 31.6% !important;
		top: 1.8% !important;
		width: 36.9% !important;
		height: 10.6% !important;
	}
}

/* =========================================================
   V52 — TV HEAD REPOSITIONED INTO THE END BAY ON THE FLOOR
   Move the figure into the visible space between the right-side plants
   and the final frame, increase scale, and strengthen the correctly
   proportioned floor reflection so the character reads as standing on
   the polished gallery floor.
   ========================================================= */

.ldg1__tv-head-character {
	left: 57.8% !important;
	bottom: 12.2% !important;
	height: 57.5% !important;
	width: 29.2vh !important;
	width: 29.2svh !important;
}

@supports (height: 100dvh) {
	.ldg1__tv-head-character {
		width: 29.2dvh !important;
	}
}

.ldg1__tv-head-contact-shadow {
	width: 52% !important;
	height: 3.8% !important;
	bottom: -.45% !important;
	filter: blur(2.8px) !important;
}

.ldg1__tv-head-reflection {
	left: -4% !important;
	width: 108% !important;
	height: 40% !important;
	opacity: .76 !important;
	transform: perspective(560px) rotateX(3deg) scaleX(.96) !important;
	-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .95) 0%, rgba(0, 0, 0, .76) 34%, rgba(0, 0, 0, .40) 70%, transparent 100%) !important;
	mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .95) 0%, rgba(0, 0, 0, .76) 34%, rgba(0, 0, 0, .40) 70%, transparent 100%) !important;
}

.ldg1__tv-head-reflection-figure {
	filter:
		brightness(.58)
		contrast(1.08)
		saturate(.76)
		sepia(.18)
		blur(.5px)
		drop-shadow(0 0 6px rgba(255, 160, 37, .14)) !important;
}

@media (max-width: 991px) {
	.ldg1__tv-head-character {
		left: 57.4% !important;
		bottom: 12.0% !important;
		height: 56.4% !important;
	}

	.ldg1__tv-head-reflection {
		height: 39% !important;
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	.ldg1__tv-head-character {
		left: 57.0% !important;
		bottom: 11.85% !important;
		height: 55.4% !important;
	}

	.ldg1__tv-head-reflection {
		height: 38% !important;
		opacity: .74 !important;
	}
}

/* =========================================================
   V53 — TV SCREEN ANIMATION FILLS THE WHOLE TV SCREEN
   Expand the TV-head screen mask and force the smile assets to fill the
   whole visible TV screen area.
   ========================================================= */

.ldg1__tv-head-screen,
.ldg1__tv-head-screen--reflection {
	left: 29.4% !important;
	top: 0.5% !important;
	width: 41.4% !important;
	height: 12.8% !important;
	border-radius: 6% / 9% !important;
	background: rgba(2, 8, 8, .06) !important;
}

.ldg1__tv-head-screen-img {
	object-fit: fill !important;
	object-position: center center !important;
	width: 100% !important;
	height: 100% !important;
}

.ldg1__tv-head-screen::before {
	opacity: .22 !important;
}

@media (max-width: 991px) {
	.ldg1__tv-head-screen,
	.ldg1__tv-head-screen--reflection {
		left: 29.2% !important;
		top: 0.55% !important;
		width: 41.7% !important;
		height: 12.95% !important;
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	.ldg1__tv-head-screen,
	.ldg1__tv-head-screen--reflection {
		left: 29.0% !important;
		top: 0.7% !important;
		width: 42.0% !important;
		height: 13.1% !important;
	}
}

/* =========================================================
   V54 — TV HEAD MOVED RIGHT OF THE LAST FRAME + FULL SCREEN FILL
   Place the TV Head clearly to the right of the last frame and enlarge
   the smile overlays so they occupy the full visible TV screen.
   ========================================================= */

.ldg1__tv-head-character {
	left: 70.9% !important;
	bottom: 12.15% !important;
	height: 55.8% !important;
	width: 28.3vh !important;
	width: 28.3svh !important;
}

@supports (height: 100dvh) {
	.ldg1__tv-head-character {
		width: 28.3dvh !important;
	}
}

.ldg1__tv-head-screen,
.ldg1__tv-head-screen--reflection {
	left: 27.4% !important;
	top: 0.2% !important;
	width: 46.6% !important;
	height: 15.4% !important;
	border-radius: 5.5% / 8.5% !important;
	background: rgba(0, 0, 0, .04) !important;
}

.ldg1__tv-head-screen-img {
	object-fit: cover !important;
	object-position: center center !important;
	transform: scale(1.42) !important;
	transform-origin: 50% 50% !important;
}

.ldg1__tv-head-screen::before {
	opacity: .18 !important;
}

@media (max-width: 991px) {
	.ldg1__tv-head-character {
		left: 70.5% !important;
		bottom: 12.0% !important;
		height: 54.8% !important;
	}

	.ldg1__tv-head-screen,
	.ldg1__tv-head-screen--reflection {
		left: 27.2% !important;
		top: 0.25% !important;
		width: 46.9% !important;
		height: 15.55% !important;
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	.ldg1__tv-head-character {
		left: 70.2% !important;
		bottom: 11.85% !important;
		height: 53.9% !important;
	}

	.ldg1__tv-head-screen,
	.ldg1__tv-head-screen--reflection {
		left: 27.0% !important;
		top: 0.3% !important;
		width: 47.2% !important;
		height: 15.7% !important;
	}

	.ldg1__tv-head-screen-img {
		transform: scale(1.46) !important;
	}
}

/* =========================================================
   V55 — TV HEAD FULLY RIGHT OF LAST FRAME + FORCED FRONT STACKING
   The character must sit to the right of the last frame, slightly farther
   back on the floor, and always render in front of the frame and its glow.
   The smile animation is also expanded again to occupy the full TV screen.
   ========================================================= */

.ldg1__tv-head-character {
	z-index: 30 !important;
	left: 90.6% !important;
	bottom: 13.35% !important;
	height: 47.6% !important;
	width: 24.4vh !important;
	width: 24.4svh !important;
}

@supports (height: 100dvh) {
	.ldg1__tv-head-character {
		width: 24.4dvh !important;
	}
}

.ldg1__tv-head-character-img {
	filter:
		brightness(.91)
		contrast(1.07)
		saturate(.95)
		sepia(.05)
		drop-shadow(0 14px 16px rgba(0, 0, 0, .56))
		drop-shadow(-4px 0 7px rgba(255, 157, 30, .22))
		drop-shadow(4px 0 7px rgba(255, 157, 30, .22)) !important;
}

.ldg1__tv-head-screen,
.ldg1__tv-head-screen--reflection {
	left: 24.8% !important;
	top: -0.2% !important;
	width: 50.8% !important;
	height: 16.8% !important;
	border-radius: 5% / 8% !important;
	background: rgba(0, 0, 0, .02) !important;
}

.ldg1__tv-head-screen-img {
	object-fit: cover !important;
	object-position: center center !important;
	width: 100% !important;
	height: 100% !important;
	transform: scale(1.62) !important;
	transform-origin: 50% 50% !important;
}

.ldg1__tv-head-screen::before {
	opacity: .14 !important;
}

.ldg1__tv-head-contact-shadow {
	width: 48% !important;
	height: 3.5% !important;
	bottom: -.38% !important;
}

.ldg1__tv-head-reflection {
	left: -3% !important;
	width: 106% !important;
	height: 34% !important;
	opacity: .70 !important;
	transform: perspective(560px) rotateX(3deg) scaleX(.95) !important;
}

@media (max-width: 991px) {
	.ldg1__tv-head-character {
		left: 90.1% !important;
		bottom: 13.2% !important;
		height: 46.8% !important;
	}

	.ldg1__tv-head-screen,
	.ldg1__tv-head-screen--reflection {
		left: 24.6% !important;
		top: -0.1% !important;
		width: 51.0% !important;
		height: 16.95% !important;
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	.ldg1__tv-head-character {
		left: 89.8% !important;
		bottom: 13.05% !important;
		height: 46.1% !important;
	}

	.ldg1__tv-head-screen,
	.ldg1__tv-head-screen--reflection {
		left: 24.4% !important;
		top: 0% !important;
		width: 51.3% !important;
		height: 17.15% !important;
	}

	.ldg1__tv-head-screen-img {
		transform: scale(1.66) !important;
	}
}

/* =========================================================
   V56 — HIDE STANDING CHARACTER UNTIL FULL WEBP DECODE
   Prevent any low-resolution/LQIP block from appearing before the real
   standing character and reflection have fully loaded and decoded.
   ========================================================= */

.ldg1__gallery-join-character:not(.is-default-ready) {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

.ldg1__gallery-join-character.is-default-ready {
	opacity: 1 !important;
	visibility: visible !important;
	transition:
		opacity 320ms cubic-bezier(.22,.61,.36,1),
		filter 1750ms cubic-bezier(.20,.62,.24,1) !important;
}

.ldg1__gallery-join-character-img,
.ldg1__gallery-join-reflection-img {
	background: transparent !important;
}

/* =========================================================
   V57 — TV HEAD MATCHED TO MAIN STANDING CHARACTER HEIGHT
   Make the TV Head the same on-screen height as the main standing
   character, place its feet on the same floor level, and add a slight
   horizontal parallax movement so it responds subtly to scrolling.
   ========================================================= */

.ldg1__tv-head-character {
	z-index: 30 !important;
	left: calc(100% - clamp(16px, 1.6vw, 28px)) !important;
	bottom: 18% !important;
	width: 28.48vh !important;
	width: 28.48svh !important;
	height: 52% !important;
	transform: translate3d(calc(-50% + var(--ldg1-tv-shift, 0px)), 0, 0) !important;
	transform-origin: 50% 100% !important;
	will-change: transform !important;
}

@supports (height: 100dvh) {
	.ldg1__tv-head-character {
		width: 28.48dvh !important;
	}
}

.ldg1__tv-head-contact-shadow {
	left: 50% !important;
	bottom: -.15% !important;
	width: 46% !important;
	height: 3.4% !important;
	filter: blur(2.6px) !important;
	transform: translateX(-50%) !important;
}

.ldg1__tv-head-reflection {
	left: -3% !important;
	top: calc(100% - 1px) !important;
	width: 106% !important;
	height: 38% !important;
	opacity: .72 !important;
	transform: perspective(560px) rotateX(3deg) scaleX(.94) !important;
	transform-origin: 50% 0 !important;
	-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .94) 0%, rgba(0, 0, 0, .73) 38%, rgba(0, 0, 0, .34) 72%, transparent 100%) !important;
	mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .94) 0%, rgba(0, 0, 0, .73) 38%, rgba(0, 0, 0, .34) 72%, transparent 100%) !important;
}

.ldg1__tv-head-reflection-figure {
	filter:
		brightness(.56)
		contrast(1.12)
		saturate(.74)
		sepia(.26)
		blur(.58px)
		drop-shadow(0 0 5px rgba(255, 160, 37, .14)) !important;
}

@media (max-width: 991px) {
	.ldg1__tv-head-character {
		left: calc(100% - clamp(14px, 1.8vw, 24px)) !important;
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	.ldg1__tv-head-character {
		left: calc(100% - clamp(12px, 2vw, 20px)) !important;
	}
}

/* =========================================================
   V58 — TV HEAD FULLY ON SCREEN + SMILE OVERLAY INSIDE INNER TV DISPLAY
   Bring the TV Head fully onto the right side of the viewer's screen while
   preserving height/floor level, and constrain the smile animation to the
   true inner display area of the TV rather than the whole TV casing.
   ========================================================= */

.ldg1__tv-head-character {
	left: 77.2% !important;
	bottom: 18% !important;
	width: 28.48vh !important;
	width: 28.48svh !important;
	height: 52% !important;
	transform: translate3d(calc(-50% + var(--ldg1-tv-shift, 0px)), 0, 0) !important;
}

@supports (height: 100dvh) {
	.ldg1__tv-head-character {
		width: 28.48dvh !important;
	}
}

/* Inner green-screen area reference supplied by the user. */
.ldg1__tv-head-screen,
.ldg1__tv-head-screen--reflection {
	left: 17.4% !important;
	top: 1.9% !important;
	width: 43.2% !important;
	height: 11.7% !important;
	border-radius: 4.8% / 11.5% !important;
	background: rgba(0, 0, 0, .03) !important;
	overflow: hidden !important;
}

.ldg1__tv-head-screen-img {
	width: 100% !important;
	height: 100% !important;
	object-fit: fill !important;
	object-position: center center !important;
	transform: none !important;
	transform-origin: 50% 50% !important;
}

.ldg1__tv-head-screen::before {
	opacity: .10 !important;
}

@media (max-width: 991px) {
	.ldg1__tv-head-character {
		left: 76.9% !important;
	}

	.ldg1__tv-head-screen,
	.ldg1__tv-head-screen--reflection {
		left: 17.2% !important;
		top: 2.0% !important;
		width: 43.5% !important;
		height: 11.85% !important;
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	.ldg1__tv-head-character {
		left: 76.6% !important;
	}

	.ldg1__tv-head-screen,
	.ldg1__tv-head-screen--reflection {
		left: 17.0% !important;
		top: 2.05% !important;
		width: 43.8% !important;
		height: 12.0% !important;
	}
}

/* =========================================================
   V59 — TV HEAD POSITION AND TV SCREEN TAKEN FROM USER MOCK-UP
   Use the user's supplied placement image as the source of truth:
   - character sits to the right of the final frame and fully on screen
   - TV screen animation fills only the inner green-screen display area
   ========================================================= */

.ldg1__tv-head-character {
	left: 80.0% !important;
	bottom: 18.1% !important;
	width: 28.48vh !important;
	width: 28.48svh !important;
	height: 52% !important;
	transform: translate3d(calc(-50% + var(--ldg1-tv-shift, 0px)), 0, 0) !important;
}

@supports (height: 100dvh) {
	.ldg1__tv-head-character {
		width: 28.48dvh !important;
	}
}

/* Exact inner display area based on the user's green-screen TV reference. */
.ldg1__tv-head-screen,
.ldg1__tv-head-screen--reflection {
	left: 17.8% !important;
	top: 4.6% !important;
	width: 51.9% !important;
	height: 13.3% !important;
	border-radius: 4.6% / 10.8% !important;
	background: rgba(0, 0, 0, .02) !important;
	overflow: hidden !important;
}

.ldg1__tv-head-screen-img {
	width: 100% !important;
	height: 100% !important;
	object-fit: fill !important;
	object-position: center center !important;
	transform: none !important;
	transform-origin: 50% 50% !important;
}

.ldg1__tv-head-screen::before {
	opacity: .08 !important;
}

@media (max-width: 991px) {
	.ldg1__tv-head-character {
		left: 79.7% !important;
	}

	.ldg1__tv-head-screen,
	.ldg1__tv-head-screen--reflection {
		left: 17.6% !important;
		top: 4.65% !important;
		width: 52.1% !important;
		height: 13.45% !important;
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	.ldg1__tv-head-character {
		left: 79.4% !important;
	}

	.ldg1__tv-head-screen,
	.ldg1__tv-head-screen--reflection {
		left: 17.4% !important;
		top: 4.7% !important;
		width: 52.3% !important;
		height: 13.6% !important;
	}
}

/* =========================================================
   V61 — FULLY VISIBLE 2.5-SECOND BIO CLOSE
   The pad and hands remain opaque while the complete unit slides below
   the viewport. The CRT shuts down at the beginning; only the green
   display goes dark. The physical terminal and hands never fade away.
   ========================================================= */

.ldg1.is-bio-v61-closing .ldg1__bio-layer-v35 {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	pointer-events: none !important;
}

.ldg1.is-bio-v61-closing .ldg1__bio-layer-v35 .ldg1__bio-panel {
	visibility: visible !important;
	opacity: 1 !important;
	transform: translate3d(-50%, calc(100% + 360px), 0) !important;
	transition-property: transform !important;
	transition-duration: 2500ms !important;
	transition-timing-function: cubic-bezier(.22,.74,.20,1) !important;
	transition-delay: 0ms !important;
}

/* Never fade the terminal chassis or the hands during the downward travel. */
.ldg1.is-bio-v61-closing .ldg1__bio-chassis,
.ldg1.is-bio-v61-closing .ldg1__bio-hands,
.ldg1.is-bio-v61-closing .ldg1__bio-hand {
	visibility: visible !important;
	opacity: 1 !important;
}

/* The gallery dimmer may recede, but it does not control the pad opacity. */
.ldg1.is-bio-v61-closing .ldg1__bio-layer-v35 .ldg1__bio-backdrop {
	visibility: visible !important;
	opacity: 0 !important;
	transition: opacity 950ms ease !important;
	transition-delay: 0ms !important;
}

/* Stronger, clearly visible CRT shutdown before the panel has left view. */
.ldg1.is-bio-v61-closing .ldg1__bio-screen.is-crt-shutting-down-v49 {
	animation: ldg1-bio-crt-shutdown-v61 920ms steps(1, end) forwards !important;
	transform-origin: 50% 50% !important;
	will-change: opacity, transform, filter !important;
}

.ldg1.is-bio-v61-closing .ldg1__bio-screen.is-crt-shutting-down-v49::after {
	animation: ldg1-bio-crt-line-v61 920ms linear forwards !important;
}

@keyframes ldg1-bio-crt-shutdown-v61 {
	0% {
		opacity: 1;
		transform: scaleY(1);
		filter: brightness(1) contrast(1) saturate(1);
	}
	7% {
		opacity: .18;
		filter: brightness(3.4) contrast(1.55) saturate(1.2);
	}
	12% {
		opacity: 1;
		filter: brightness(1.05) contrast(1.1) saturate(.95);
	}
	20% {
		opacity: .08;
		filter: brightness(3.8) contrast(1.7) saturate(1.25);
	}
	27% {
		opacity: .94;
		filter: brightness(.86) contrast(1.2) saturate(.9);
	}
	35% {
		opacity: .22;
		filter: brightness(3.1) contrast(1.5) saturate(1.15);
	}
	43% {
		opacity: 1;
		transform: scaleY(1);
		filter: brightness(1.2) contrast(1.18) saturate(.9);
	}
	53% {
		opacity: .10;
		filter: brightness(4) contrast(1.8) saturate(1.3);
	}
	62% {
		opacity: .95;
		transform: scaleY(1);
		filter: brightness(1.3) contrast(1.3) saturate(.75);
	}
	72% {
		opacity: 1;
		transform: scaleY(.075);
		filter: brightness(3.6) contrast(1.8) saturate(.35);
	}
	84% {
		opacity: .9;
		transform: scaleY(.012);
		filter: brightness(4.4) contrast(2) saturate(.12);
	}
	100% {
		opacity: 0;
		transform: scaleY(.002);
		filter: brightness(0) contrast(2.2) saturate(0);
	}
}

@keyframes ldg1-bio-crt-line-v61 {
	0%, 58% {
		opacity: 0;
		transform: scaleX(.2);
	}
	69% {
		opacity: 1;
		transform: scaleX(1);
	}
	83% {
		opacity: .9;
		transform: scaleX(.46);
	}
	100% {
		opacity: 0;
		transform: scaleX(.025);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ldg1.is-bio-v61-closing .ldg1__bio-layer-v35 .ldg1__bio-panel {
		transition-duration: 2500ms !important;
	}

	.ldg1.is-bio-v61-closing .ldg1__bio-screen.is-crt-shutting-down-v49,
	.ldg1.is-bio-v61-closing .ldg1__bio-screen.is-crt-shutting-down-v49::after {
		animation: none !important;
	}
}

/* =========================================================
   V62 — BIO CHARACTER COORDINATE LOCK
   Reference grid: 2458 × 989
   Bottom-left anchor:  X 628, Y 812
   Bottom-right anchor: X 939, Y 812

   The label remains centre-anchored so the existing horizontal parallax
   continues to work. Both BIO.webp and BIO-Push.png fill this identical
   canvas, keeping the resting and active poses perfectly aligned.
   ========================================================= */

.ldg1__room:first-child > .ldg1__bio-character-v35 {
	/* Centre between X 628 and X 939. */
	left: 31.875509% !important;

	/* Y 812 on a 989-high reference leaves 177 units below the image. */
	bottom: 17.896866% !important;

	/* 311 reference units wide on a 2458-wide gallery background. */
	width: 12.652563% !important;

	/* Preserve the established BIO artwork canvas ratio: 35.66 / 42.5. */
	height: 35.170755% !important;
}

/* Explicitly keep both poses and the silhouette hit area on the same canvas. */
.ldg1__room:first-child > .ldg1__bio-character-v35 .ldg1__seated-character-visual,
.ldg1__room:first-child > .ldg1__bio-character-v35 .ldg1__bio-character-image-v35,
.ldg1__room:first-child > .ldg1__bio-character-v35 .ldg1__bio-character-hit-v43 {
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
}


/* =========================================================
   V63 — HARD-LOCKED BIO CHARACTER COORDINATES

   V62 supplied the intended coordinate percentages, but the live result
   remained on the earlier cumulative seated-character geometry. V63 locks
   the same values directly to the rendered BIO label in PHP and repeats
   them here with a dedicated room class and data attribute.

   Reference overlay: 2458 × 989
   Bottom-left:  X 628, Y 812
   Bottom-right: X 939, Y 812
   Centre X:     783.5

   These values apply to the shared canvas containing BIO.webp and
   BIO-Push.png, so both states occupy exactly the same position and scale.
   ========================================================= */

.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v63],
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v63]:hover,
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v63]:focus,
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v63]:focus-visible,
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v63]:active {
	position: absolute !important;
	left: 31.875509% !important;
	right: auto !important;
	top: auto !important;
	bottom: 17.896866% !important;
	width: 12.652563% !important;
	height: 35.170755% !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: none !important;
	max-height: none !important;
	aspect-ratio: auto !important;
	transform: translate3d(
		calc(-50% + var(--ldg1-seat-shift, 0px)),
		0,
		0
	) !important;
	transform-origin: 50% 100% !important;
}

.ldg1 .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v63]
.ldg1__seated-character-visual,
.ldg1 .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v63]
.ldg1__bio-character-image-v35,
.ldg1 .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v63]
.ldg1__bio-character-hit-v43 {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
}

.ldg1 .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v63]
.ldg1__bio-character-image-v35 {
	object-fit: contain !important;
	object-position: 50% 100% !important;
	transform: none !important;
}

/* =========================================================
   V64 — EXACT-GRID BIO CHARACTER PLACEMENT

   Corrected source grid: 2048 × 878, drawn mathematically over the
   unchanged Gallery-1 background.

   Green-dot centres read from the supplied marked screenshot:
   Bottom-left:  X 583.603, Y 691.098
   Bottom-right: X 848.593, Y 691.098
   Centre X:     716.098
   Display width: 264.990

   Percentage conversion used by the live room coordinate system:
   Centre X: 34.965715%
   Bottom:   21.287268%
   Width:    12.938958%
   Height:   35.970157%

   The label stays centre-anchored because the existing horizontal
   parallax adds --ldg1-seat-shift around that centre point. BIO.webp
   and BIO-Push.png continue to fill one identical shared canvas.
   ========================================================= */

.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v64],
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v64]:hover,
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v64]:focus,
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v64]:focus-visible,
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v64]:active {
	position: absolute !important;
	left: 34.965715% !important;
	right: auto !important;
	top: auto !important;
	bottom: 21.287268% !important;
	width: 12.938958% !important;
	height: 35.970157% !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: none !important;
	max-height: none !important;
	aspect-ratio: auto !important;
	transform: translate3d(
		calc(-50% + var(--ldg1-seat-shift, 0px)),
		0,
		0
	) !important;
	transform-origin: 50% 100% !important;
}

/* Default and active BIO images are forced onto precisely the same canvas. */
.ldg1 .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v64]
.ldg1__seated-character-visual,
.ldg1 .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v64]
.ldg1__bio-character-image-v35,
.ldg1 .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v64]
.ldg1__bio-character-hit-v43 {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
}

.ldg1 .ldg1__room--one >
.ldg1__bio-character-v35[data-ldg1-bio-coordinate-lock-v64]
.ldg1__bio-character-image-v35 {
	object-fit: contain !important;
	object-position: 50% 100% !important;
	transform: none !important;
}

/* =========================================================
   V65 — EXHIBIT 1 EXACT FRAME + MEDIA COORDINATE LOCK

   Corrected source grid: 2048 × 878.
   The four supplied green-dot centres define the OUTER displayed edge of
   Neon-Dance.webp, not merely the wall recess or an oversized shell.

   Top-left:     X 269.040, Y 252.451
   Top-right:    X 559.699, Y 252.451
   Bottom-left:  X 269.040, Y 542.156
   Bottom-right: X 559.699, Y 542.156

   Live room percentages:
   Left:   13.136713%
   Top:    28.752956%
   Width:  14.192331%
   Height: 32.996036%

   The still image and decoded MP4 canvas use the same inner aperture. They
   slightly overlap beneath the inner frame trim, preventing hairline gaps
   while remaining completely inside the visible Neon Dance opening.
   ========================================================= */

/* Exact outer frame box — applies only to Exhibit 1 in Gallery Room One. */
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97],
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]:hover,
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]:focus,
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]:focus-visible,
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]:active {
	position: absolute !important;
	left: 13.136713% !important;
	right: auto !important;
	top: 28.752956% !important;
	bottom: auto !important;
	width: 14.192331% !important;
	height: 32.996036% !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	transform: none !important;
	transform-origin: 50% 50% !important;
	overflow: visible !important;
}

/* Shell fills the exact four-corner box. */
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]
.ldg1__artwork-shell--neon-dance {
	position: relative !important;
	inset: auto !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
	transform: none !important;
	transform-origin: 50% 50% !important;
}

/* The green dots describe the frame image itself, therefore remove the old
   1.025 enlargement that previously pushed the visible frame beyond them. */
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]
.ldg1__artwork-shell--neon-dance > .ldg1__artwork,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]:hover
.ldg1__artwork-shell--neon-dance > .ldg1__artwork,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]:focus-visible
.ldg1__artwork-shell--neon-dance > .ldg1__artwork,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97].is-current
.ldg1__artwork-shell--neon-dance > .ldg1__artwork,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97].is-neon-starting
.ldg1__artwork-shell--neon-dance > .ldg1__artwork,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97].is-neon-engaged
.ldg1__artwork-shell--neon-dance > .ldg1__artwork {
	position: absolute !important;
	z-index: 3 !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: contain !important;
	object-position: 50% 50% !important;
	transform: none !important;
	transform-origin: 50% 50% !important;
}

/* One shared aperture for Lately.jpg and every painted MP4 frame. */
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]
.ldg1__artwork-shell--neon-dance > .ldg1__inside-artwork,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]
.ldg1__artwork-shell--neon-dance > .ldg1__video-slot {
	position: absolute !important;
	left: 15.3% !important;
	right: auto !important;
	top: 15.2% !important;
	bottom: auto !important;
	width: 69.5% !important;
	height: 69.7% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	object-fit: cover !important;
	object-position: 50% 50% !important;
	transform: scale(1.018) !important;
	transform-origin: 50% 50% !important;
}

/* The decoded MP4 canvas fills the video aperture exactly. */
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]
.ldg1__video-canvas {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover !important;
	object-position: 50% 50% !important;
}

/* Keep the glass highlight inside the media opening rather than washing over
   the newly measured outer frame. */
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]
.ldg1__artwork-shell--neon-dance > .ldg1__artwork-glass {
	inset: auto !important;
	left: 15.3% !important;
	right: auto !important;
	top: 15.2% !important;
	bottom: auto !important;
	width: 69.5% !important;
	height: 69.7% !important;
	border-radius: 1.5% !important;
}

/* The play control remains centred on the new frame and follows it on every
   screen size because it is positioned from the exact Exhibit 1 box. */
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]
.ldg1__play-trigger {
	left: 50% !important;
	right: auto !important;
	transform: translateX(-50%) !important;
}

/* =========================================================
   V66 — STAGED OLD-CRT SHUTDOWN + SLOWER PAD EXIT

   Stage 1: the terminal remains completely stationary while the green
   CRT visibly flickers, flashes, collapses to a bright horizontal line,
   and switches fully off.

   Stage 2: the dark screen is held briefly before movement starts.

   Stage 3: the complete opaque terminal, chassis and both hands travel
   smoothly below the viewport over 3.3 seconds.
   ========================================================= */

/* Keep the unchecked BIO layer mounted throughout the complete sequence. */
.ldg1.is-bio-v66-closing .ldg1__bio-layer-v35 {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	pointer-events: none !important;
}

/* Stage 1 and the dark-screen hold: absolutely no panel movement. */
.ldg1.is-bio-v66-closing .ldg1__bio-layer-v35 .ldg1__bio-panel {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	transform: translate3d(-50%, 0, 0) !important;
	transition: none !important;
	transition-delay: 0ms !important;
	will-change: transform;
}

/* Stage 3: begin only after JavaScript adds the exiting class. */
.ldg1.is-bio-v66-closing.is-bio-v66-exiting
.ldg1__bio-layer-v35 .ldg1__bio-panel {
	transform: translate3d(-50%, calc(100% + 420px), 0) !important;
	transition-property: transform !important;
	transition-duration: 3300ms !important;
	transition-timing-function: cubic-bezier(.20,.62,.24,1) !important;
	transition-delay: 0ms !important;
}

/* The physical pad and hands never fade during shutdown or travel. */
.ldg1.is-bio-v66-closing .ldg1__bio-chassis,
.ldg1.is-bio-v66-closing .ldg1__bio-hands,
.ldg1.is-bio-v66-closing .ldg1__bio-hand {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
}

/* Freeze the tiny independent hand motion at its current position so the
   hands remain visibly locked to the terminal during the exit. */
.ldg1.is-bio-v66-closing .ldg1__bio-hand {
	animation-play-state: paused !important;
}

/* Keep the gallery dimmer in place while the CRT shuts down. */
.ldg1.is-bio-v66-closing .ldg1__bio-layer-v35 .ldg1__bio-backdrop {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	transition: none !important;
}

/* Let the dimmer recede gently only after the physical pad starts moving. */
.ldg1.is-bio-v66-closing.is-bio-v66-exiting
.ldg1__bio-layer-v35 .ldg1__bio-backdrop {
	opacity: 0 !important;
	transition: opacity 1750ms ease 350ms !important;
}

/* BIO-Push remains visible until the complete pad has left the viewport. */
.ldg1.is-bio-v66-closing .ldg1__bio-lead-v35 {
	opacity: 0 !important;
	transition-delay: 0ms !important;
}

.ldg1.is-bio-v66-closing .ldg1__bio-push-v35 {
	opacity: 1 !important;
	transition-delay: 0ms !important;
}

/* Old television shutdown: irregular hard flickers followed by a smoother
   vertical collapse. The full effect finishes before the exit begins. */
.ldg1.is-bio-v66-closing
.ldg1__bio-screen.is-crt-shutting-down-v49 {
	animation: ldg1-bio-crt-shutdown-v66 1750ms linear forwards !important;
	transform-origin: 50% 50% !important;
	will-change: opacity, transform, filter !important;
}

.ldg1.is-bio-v66-closing
.ldg1__bio-screen.is-crt-shutting-down-v49::after {
	animation: ldg1-bio-crt-line-v66 1750ms linear forwards !important;
}

@keyframes ldg1-bio-crt-shutdown-v66 {
	0% {
		opacity: 1;
		transform: scaleY(1);
		filter: brightness(1) contrast(1) saturate(1);
		animation-timing-function: steps(1, end);
	}
	5% {
		opacity: .16;
		filter: brightness(3.8) contrast(1.65) saturate(1.25);
	}
	9% {
		opacity: 1;
		filter: brightness(1.05) contrast(1.12) saturate(.95);
	}
	15% {
		opacity: .34;
		filter: brightness(2.9) contrast(1.5) saturate(1.15);
	}
	19% {
		opacity: .98;
		filter: brightness(.88) contrast(1.25) saturate(.9);
	}
	25% {
		opacity: .08;
		filter: brightness(4.4) contrast(1.9) saturate(1.35);
	}
	30% {
		opacity: 1;
		filter: brightness(1.2) contrast(1.18) saturate(.95);
	}
	36% {
		opacity: .22;
		filter: brightness(3.6) contrast(1.7) saturate(1.2);
	}
	40% {
		opacity: .92;
		filter: brightness(.8) contrast(1.32) saturate(.82);
	}
	47% {
		opacity: .12;
		filter: brightness(4.2) contrast(1.95) saturate(1.25);
	}
	51% {
		opacity: 1;
		filter: brightness(1.32) contrast(1.28) saturate(.85);
	}
	57% {
		opacity: .28;
		filter: brightness(3.25) contrast(1.62) saturate(1.05);
	}
	61% {
		opacity: 1;
		transform: scaleY(1);
		filter: brightness(1.4) contrast(1.35) saturate(.72);
		animation-timing-function: cubic-bezier(.55,0,.86,.42);
	}
	70% {
		opacity: 1;
		transform: scaleY(.34);
		filter: brightness(2.2) contrast(1.55) saturate(.55);
	}
	78% {
		opacity: 1;
		transform: scaleY(.075);
		filter: brightness(3.8) contrast(1.9) saturate(.28);
	}
	86% {
		opacity: 1;
		transform: scaleY(.014);
		filter: brightness(5) contrast(2.2) saturate(.1);
	}
	93% {
		opacity: .96;
		transform: scaleY(.0035);
		filter: brightness(5.6) contrast(2.4) saturate(0);
	}
	100% {
		opacity: 0;
		transform: scaleY(.001);
		filter: brightness(0) contrast(2.4) saturate(0);
	}
}

@keyframes ldg1-bio-crt-line-v66 {
	0%, 60% {
		opacity: 0;
		transform: scaleX(.16);
	}
	68% {
		opacity: 1;
		transform: scaleX(1);
	}
	78% {
		opacity: 1;
		transform: scaleX(.92);
	}
	87% {
		opacity: .94;
		transform: scaleX(.48);
	}
	94% {
		opacity: .72;
		transform: scaleX(.12);
	}
	100% {
		opacity: 0;
		transform: scaleX(.018);
	}
}

/* On smaller screens retain the same visible shutdown sequence while the
   exit distance remains sufficient to clear the mobile viewport. */
@media (max-width: 767px) {
	.ldg1.is-bio-v66-closing.is-bio-v66-exiting
	.ldg1__bio-layer-v35 .ldg1__bio-panel {
		transform: translate3d(-50%, calc(100% + 320px), 0) !important;
		transition-duration: 3300ms !important;
	}
}

/* =========================================================
   V67 — EXHIBIT 3 / REAL LOVE / HEAVY GOLD
   EXACT FRAME + CONTENT COORDINATE LOCK

   Exact 2048 × 878 grid coordinates supplied by the four green dots:
   top-left     X 1501.356 / Y 245.513
   top-right    X 1770.087 / Y 245.513
   bottom-left  X 1501.356 / Y 539.198
   bottom-right X 1770.087 / Y 539.198

   The coordinates describe the outside edge of the Heavy-Gold.webp image.
   The still, video canvas and glass remain in the transparent inner opening.
   ========================================================= */

/* Lock the complete Exhibit 3 button to the measured outer frame rectangle. */
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67],
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67]:hover,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67]:focus,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67]:focus-visible,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67]:active {
	left: 73.308377% !important;
	top: 27.962808% !important;
	width: 13.121657% !important;
	height: 33.449215% !important;
	transform: none !important;
}

/* The shell uses the whole measured rectangle. */
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67]
.ldg1__artwork-shell--heavy-gold {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	overflow: visible !important;
	transform: none !important;
}

/* The transparent Heavy Gold frame touches all four measured green-dot edges. */
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67]
.ldg1__artwork-shell--heavy-gold > .ldg1__artwork,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67]:hover
.ldg1__artwork-shell--heavy-gold > .ldg1__artwork,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67]:focus-visible
.ldg1__artwork-shell--heavy-gold > .ldg1__artwork,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67].is-current
.ldg1__artwork-shell--heavy-gold > .ldg1__artwork,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67].is-neon-starting
.ldg1__artwork-shell--heavy-gold > .ldg1__artwork,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67].is-neon-engaged
.ldg1__artwork-shell--heavy-gold > .ldg1__artwork {
	position: absolute !important;
	z-index: 3 !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: fill !important;
	object-position: 50% 50% !important;
	transform: none !important;
	transform-origin: 50% 50% !important;
}

/* Real Love still and video share the same aperture beneath the transparent
   frame. The small overscan keeps every rounded inner edge filled without a
   visible gap when the frame is scaled responsively. */
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67]
.ldg1__artwork-shell--heavy-gold > .ldg1__inside-artwork,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67]
.ldg1__artwork-shell--heavy-gold > .ldg1__video-slot {
	position: absolute !important;
	left: 14.7% !important;
	right: auto !important;
	top: 14.6% !important;
	bottom: auto !important;
	width: 70.6% !important;
	height: 70.8% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	border-radius: 11% !important;
	object-fit: cover !important;
	object-position: 50% 50% !important;
	transform: none !important;
	transform-origin: 50% 50% !important;
}

/* Ensure the decoded MP4 canvas fills the exact same inner opening. */
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67]
.ldg1__video-canvas {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: cover !important;
	object-position: 50% 50% !important;
	transform: none !important;
}

/* Keep the glass highlight over the visible inner opening, not over the
   complete ornate frame image. */
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67]
.ldg1__artwork-shell--heavy-gold > .ldg1__artwork-glass {
	inset: auto !important;
	left: 14.7% !important;
	right: auto !important;
	top: 14.6% !important;
	bottom: auto !important;
	width: 70.6% !important;
	height: 70.8% !important;
	border-radius: 11% !important;
}

/* The existing Glass Play 3 control remains centred beneath the newly placed
   frame and follows its exact scale on every viewport. */
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-heavy-gold-coordinate-lock-v67]
.ldg1__play-trigger {
	left: 50% !important;
	right: auto !important;
	transform: translateX(-50%) !important;
}

/* =========================================================
   V68 — RESTORE HORIZONTAL GALLERY NAVIGATION ON BIO CLOSE

   The backdrop carries pointer-events:auto !important in older BIO rules.
   During the deliberately long V66 shutdown it could remain the full-screen
   wheel/pointer target even though the parent layer had pointer-events:none.

   V68 releases every BIO hit layer immediately when CLOSE is pressed while
   leaving the CRT shutdown, dark-screen hold and 3.3-second physical exit
   visually unchanged.
   ========================================================= */

.ldg1.is-bio-v68-scroll-released .ldg1__bio-layer-v35,
.ldg1.is-bio-v68-scroll-released .ldg1__bio-layer-v35 .ldg1__bio-panel,
.ldg1.is-bio-v68-scroll-released .ldg1__bio-layer-v35 .ldg1__bio-backdrop,
.ldg1.is-bio-v68-scroll-released .ldg1__bio-layer-v35 .ldg1__bio-chassis,
.ldg1.is-bio-v68-scroll-released .ldg1__bio-layer-v35 .ldg1__bio-screen,
.ldg1.is-bio-v68-scroll-released .ldg1__bio-layer-v35 .ldg1__bio-hands,
.ldg1.is-bio-v68-scroll-released .ldg1__bio-layer-v35 .ldg1__bio-hand {
	pointer-events: none !important;
}

.ldg1.is-bio-v68-scroll-released .ldg1__viewport {
	pointer-events: auto !important;
	overflow-x: auto !important;
	overflow-y: hidden !important;
	touch-action: pan-x pinch-zoom !important;
	-webkit-overflow-scrolling: touch !important;
	cursor: grab !important;
}

.ldg1.is-bio-v68-scroll-released .ldg1__viewport.is-dragging {
	cursor: grabbing !important;
}



/* =========================================================
   V69 — REDUCED CENTRAL STANDING-CHARACTER PARALLAX

   The parallax distances are calculated in the embedded JavaScript.
   No geometry, reflection, lighting or pose CSS has been changed.
   Desktop travel is reduced from 90px to 68px, tablet from 66px to
   50px, and mobile from 46px to 35px.
   ========================================================= */

/* =========================================================
   V71 — TV HEAD SCREEN INNER-DISPLAY LOCK

   The outer TV Head character position from V70 remains unchanged.
   The user then marked the exact inner-screen opening with four green dots
   on the positioned second-room background. The Smile-1.webp through
   Smile-4.webp assets are designed to fit that exact inner display area.

   Outer TV Head position remains:
   bottom-left  X 1774.582 / Y 746.197
   bottom-right X 1970.060 / Y 746.197
   centre       X 1872.321 / Y 746.197
   image width  195.478

   Inner screen green-dot corners read from the supplied room-grid screenshot:
   top-left     X 1819.121 / Y 293.881
   top-right    X 1913.968 / Y 293.881
   bottom-left  X 1819.121 / Y 358.279
   bottom-right X 1913.968 / Y 358.279

   Converted relative to the full TV-Head.webp character canvas:
   left   22.717867%
   top     2.047957%
   width  48.509601%
   height 13.415641%

   These values lock the smile animation to the exact visible inner screen
   while preserving the V70 character position, natural image ratio, floor
   shadow and reflection.
   ========================================================= */

.ldg1 .ldg1__room--two >
.ldg1__tv-head-character[data-ldg1-tv-head-coordinate-lock-v73] {
	left: 91.421918% !important;
	bottom: 15.011771% !important;
	width: 9.544820% !important;
	height: auto !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	transform: translate3d(calc(-50% + var(--ldg1-tv-shift, 0px)), 0, 0) !important;
	transform-origin: 50% 100% !important;
	overflow: visible !important;
	z-index: 30 !important;
}

.ldg1 .ldg1__room--two >
.ldg1__tv-head-character[data-ldg1-tv-head-coordinate-lock-v73]
.ldg1__tv-head-figure {
	position: relative !important;
	inset: auto !important;
	display: block !important;
	width: 100% !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}

.ldg1 .ldg1__room--two >
.ldg1__tv-head-character[data-ldg1-tv-head-coordinate-lock-v73]
.ldg1__tv-head-character-img {
	position: relative !important;
	inset: auto !important;
	display: block !important;
	width: 100% !important;
	height: auto !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: contain !important;
	object-position: 50% 100% !important;
}

.ldg1 .ldg1__room--two >
.ldg1__tv-head-character[data-ldg1-tv-head-coordinate-lock-v73]
.ldg1__tv-head-screen,
.ldg1 .ldg1__room--two >
.ldg1__tv-head-character[data-ldg1-tv-head-coordinate-lock-v73]
.ldg1__tv-head-screen--reflection {
	left: 22.717867% !important;
	top: 2.047957% !important;
	width: 48.509601% !important;
	height: 13.415641% !important;
	border-radius: 4.6% / 10.8% !important;
	overflow: hidden !important;
}

.ldg1 .ldg1__room--two >
.ldg1__tv-head-character[data-ldg1-tv-head-coordinate-lock-v73]
.ldg1__tv-head-screen-img {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: fill !important;
	object-position: 50% 50% !important;
	transform: none !important;
	transform-origin: 50% 50% !important;
}

.ldg1 .ldg1__room--two >
.ldg1__tv-head-character[data-ldg1-tv-head-coordinate-lock-v73]
.ldg1__tv-head-contact-shadow {
	left: 50% !important;
	bottom: -.15% !important;
	width: 46% !important;
	height: 3.4% !important;
	transform: translateX(-50%) !important;
}

.ldg1 .ldg1__room--two >
.ldg1__tv-head-character[data-ldg1-tv-head-coordinate-lock-v73]
.ldg1__tv-head-reflection {
	left: -3% !important;
	top: calc(100% - 1px) !important;
	width: 106% !important;
	height: 38% !important;
	transform: perspective(560px) rotateX(3deg) scaleX(.94) !important;
	transform-origin: 50% 0 !important;
}




/* =========================================================
   V72 — TV HEAD PARALLAX MATCHED TO JOIN CHARACTER

   The TV Head now uses the same horizontal parallax shift value as the
   central standing/join character. Because the Smile screen, contact shadow
   and reflection are all nested inside the same transformed wrapper, they
   automatically track the full movement as one unit. No geometry values have
   been changed from V71; only the parallax multiplier in the embedded
   JavaScript has been increased from 0.28× to 1.0×.
   ========================================================= */


/* =========================================================
   V73 — INDEPENDENT TV HEAD PARALLAX + CORRECT SCREEN CANVAS

   V72 reused the central join character's already-clamped parallax value.
   At the far-right TV Head location this remained at a constant extreme, so
   no local parallax movement was visible. V73 calculates TV Head movement
   from TV Head's own centre using the same maximum travel and smoothing as
   the central standing character.

   The inner screen is recalculated against the exact 367 × 900 source image
   canvas and the four user-marked room-grid points. Smile-1 through Smile-4,
   the reflected screen and the TV body now remain one tracked moving unit.
   ========================================================= */


/* =========================================================
   V74 — BIO CLOSE INTERACTION REPAIR

   The BIO terminal could be revealed by the native checkbox while its
   full-screen layer still retained the HTML inert attribute from the previous
   closed state. That made the visible CLOSE control and backdrop unable to
   receive input. The repair is implemented in the complete PHP/JavaScript:
   inert is removed on every open and both close targets have an explicit
   checkbox-close controller. No visual BIO, frame, character or parallax
   geometry has been changed in this version.
   ========================================================= */


/* =========================================================
   V75 — BIO CRT LINE-TO-POINT SHUTDOWN

   The terminal remains stationary while the green CRT performs this sequence:
   1. irregular old-screen flicker;
   2. vertical collapse into a narrow green horizontal line;
   3. the line contracts from both sides into the centre;
   4. a bright green point remains briefly in the middle;
   5. the point extinguishes and the display stays fully dark;
   6. only then does the terminal-and-hands unit begin its slower exit.

   The physical chassis and hands remain fully opaque throughout.
   ========================================================= */

.ldg1.is-bio-v66-closing
.ldg1__bio-screen.is-crt-shutting-down-v49 {
	animation: ldg1-bio-crt-shutdown-v75 2200ms linear forwards !important;
	transform-origin: 50% 50% !important;
	will-change: opacity, transform, filter !important;
}

.ldg1.is-bio-v66-closing
.ldg1__bio-screen.is-crt-shutting-down-v49::after {
	left: 50% !important;
	right: auto !important;
	top: 50% !important;
	width: 88% !important;
	height: 2px !important;
	margin: 0 !important;
	border-radius: 999px !important;
	background: rgb(157, 255, 174) !important;
	box-shadow:
		0 0 5px rgba(126, 255, 145, .98),
		0 0 15px rgba(126, 255, 145, .82),
		0 0 34px rgba(126, 255, 145, .48) !important;
	transform: translate3d(-50%, -50%, 0) scaleX(.12) !important;
	transform-origin: 50% 50% !important;
	animation: ldg1-bio-crt-line-to-point-v75 2200ms linear forwards !important;
	will-change: opacity, transform, height, filter, box-shadow !important;
}

@keyframes ldg1-bio-crt-shutdown-v75 {
	0% {
		opacity: 1;
		transform: scaleY(1);
		filter: brightness(1) contrast(1) saturate(1);
		animation-timing-function: steps(1, end);
	}
	5% {
		opacity: .15;
		filter: brightness(3.9) contrast(1.68) saturate(1.22);
	}
	9% {
		opacity: 1;
		filter: brightness(1.04) contrast(1.12) saturate(.95);
	}
	15% {
		opacity: .30;
		filter: brightness(3.05) contrast(1.55) saturate(1.12);
	}
	19% {
		opacity: .98;
		filter: brightness(.86) contrast(1.28) saturate(.9);
	}
	25% {
		opacity: .07;
		filter: brightness(4.5) contrast(1.92) saturate(1.3);
	}
	30% {
		opacity: 1;
		filter: brightness(1.18) contrast(1.2) saturate(.94);
	}
	36% {
		opacity: .20;
		filter: brightness(3.7) contrast(1.72) saturate(1.18);
	}
	40% {
		opacity: .92;
		filter: brightness(.78) contrast(1.34) saturate(.82);
	}
	46% {
		opacity: .11;
		filter: brightness(4.25) contrast(1.98) saturate(1.22);
	}
	50% {
		opacity: 1;
		transform: scaleY(1);
		filter: brightness(1.35) contrast(1.3) saturate(.85);
		animation-timing-function: cubic-bezier(.55, 0, .86, .42);
	}
	60% {
		opacity: 1;
		transform: scaleY(.38);
		filter: brightness(2.15) contrast(1.55) saturate(.56);
	}
	68% {
		opacity: 1;
		transform: scaleY(.09);
		filter: brightness(3.5) contrast(1.86) saturate(.3);
	}
	74% {
		opacity: 1;
		transform: scaleY(.018);
		filter: brightness(5.1) contrast(2.18) saturate(.12);
	}
	79% {
		opacity: .96;
		transform: scaleY(.004);
		filter: brightness(5.8) contrast(2.45) saturate(.03);
	}
	82% {
		opacity: 0;
		transform: scaleY(.001);
		filter: brightness(0) contrast(2.5) saturate(0);
	}
	100% {
		opacity: 0;
		transform: scaleY(.001);
		filter: brightness(0) contrast(2.5) saturate(0);
	}
}

@keyframes ldg1-bio-crt-line-to-point-v75 {
	0%, 51% {
		opacity: 0;
		height: 2px;
		transform: translate3d(-50%, -50%, 0) scaleX(.12);
		filter: brightness(1);
	}
	58% {
		opacity: .55;
		height: 2px;
		transform: translate3d(-50%, -50%, 0) scaleX(.55);
		filter: brightness(1.8);
	}
	66% {
		opacity: 1;
		height: 2px;
		transform: translate3d(-50%, -50%, 0) scaleX(1);
		filter: brightness(2.25);
	}
	75% {
		opacity: 1;
		height: 2px;
		transform: translate3d(-50%, -50%, 0) scaleX(.98);
		filter: brightness(2.7);
	}
	82% {
		opacity: 1;
		height: 2px;
		transform: translate3d(-50%, -50%, 0) scaleX(.62);
		filter: brightness(3.1);
	}
	88% {
		opacity: 1;
		height: 3px;
		transform: translate3d(-50%, -50%, 0) scaleX(.24);
		filter: brightness(3.8);
	}
	93% {
		opacity: 1;
		height: 5px;
		transform: translate3d(-50%, -50%, 0) scaleX(.045);
		filter: brightness(5.1);
		box-shadow:
			0 0 7px rgba(145, 255, 162, 1),
			0 0 24px rgba(126, 255, 145, .96),
			0 0 54px rgba(126, 255, 145, .68) !important;
	}
	96.5% {
		opacity: 1;
		height: 7px;
		transform: translate3d(-50%, -50%, 0) scaleX(.014);
		filter: brightness(6.2);
		box-shadow:
			0 0 8px rgba(174, 255, 188, 1),
			0 0 28px rgba(126, 255, 145, 1),
			0 0 70px rgba(126, 255, 145, .74) !important;
	}
	98% {
		opacity: .92;
		height: 7px;
		transform: translate3d(-50%, -50%, 0) scaleX(.010);
		filter: brightness(6.6);
	}
	100% {
		opacity: 0;
		height: 1px;
		transform: translate3d(-50%, -50%, 0) scaleX(.002);
		filter: brightness(0);
		box-shadow: none !important;
	}
}


/* =========================================================
   V76 — FRAME CONTROL PANEL WITH LCD DETAILS SCREEN
   ========================================================= */

.ldg1__play-spark {
	display: none !important;
}

.ldg1__room .ldg1__play-trigger,
.ldg1__play-trigger {
	position: absolute !important;
	left: 50% !important;
	top: calc(100% + 2.4%) !important;
	width: 42.5% !important;
	height: auto !important;
	aspect-ratio: 1024 / 358 !important;
	transform: translateX(-50%) !important;
	z-index: 14 !important;
	pointer-events: auto !important;
	filter: drop-shadow(0 0 12px rgba(0,0,0,.55)) drop-shadow(0 0 14px rgba(214, 170, 77, .16)) !important;
}

.ldg1__room [data-index="0"] .ldg1__play-trigger,
.ldg1__room [data-index="1"] .ldg1__play-trigger,
.ldg1__room [data-index="2"] .ldg1__play-trigger,
.ldg1__room [data-index="3"] .ldg1__play-trigger,
.ldg1__room [data-index="4"] .ldg1__play-trigger,
.ldg1__room [data-index="5"] .ldg1__play-trigger {
	left: 50% !important;
}

.ldg1__play-trigger-fx {
	position: absolute !important;
	inset: 2% 1.5% 3% !important;
	border-radius: 1.1em !important;
	background: radial-gradient(circle at 72% 42%, rgba(155, 255, 170, .12), transparent 30%), radial-gradient(circle at 24% 52%, rgba(212, 165, 77, .22), transparent 28%) !important;
	opacity: .9 !important;
	transform: none !important;
}

.ldg1__play-trigger-img,
.ldg1__exhibit:hover .ldg1__play-trigger-img,
.ldg1__exhibit:focus-visible .ldg1__play-trigger-img,
.ldg1__exhibit:active .ldg1__play-trigger-img,
.ldg1__exhibit.is-current .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:hover .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:focus-visible .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:active .ldg1__play-trigger-img,
.ldg1__mobile-exhibit.is-current .ldg1__play-trigger-img {
	position: relative !important;
	width: 100% !important;
	height: auto !important;
	display: block !important;
	transform: none !important;
	opacity: 1 !important;
	filter: none !important;
}

.ldg1__play-panel-screen {
	position: absolute !important;
	left: 39.2% !important;
	top: 17.5% !important;
	width: 48.8% !important;
	height: 60.2% !important;
	padding: 4.2% 5.2% !important;
	border-radius: .45em !important;
	background: linear-gradient(180deg, #dfe4de 0%, #cfd4ce 46%, #bfc4be 100%) !important;
	box-shadow: inset 0 0 0 1px rgba(14,14,14,.55), inset 0 0 0 3px rgba(78, 101, 79, .22), inset 0 0 18px rgba(0,0,0,.11), 0 0 12px rgba(120, 255, 140, .08) !important;
	overflow: hidden !important;
	cursor: zoom-in !important;
	pointer-events: auto !important;
}

.ldg1__play-panel-screen::before {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(180deg, rgba(255,255,255,.06) 0 1px, rgba(0,0,0,.025) 1px 3px);
	mix-blend-mode: multiply;
	pointer-events: none;
}

.ldg1__play-panel-screen-inner {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: .16em;
	width: 100%;
	height: 100%;
	font-family: "Courier New", Courier, monospace;
	font-weight: 700;
	letter-spacing: .015em;
	color: #181c18;
	text-align: left;
}

.ldg1__play-panel-lcd-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .4em;
	font-size: clamp(3px, .48vw, 8px);
	text-transform: uppercase;
	white-space: nowrap;
}

.ldg1__play-panel-lcd-status,
.ldg1__play-panel-lcd-tag,
.ldg1__play-panel-lcd-title,
.ldg1__play-panel-lcd-mix,
.ldg1__play-panel-lcd-meta {
	display: block;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ldg1__play-panel-lcd-title {
	font-size: clamp(6px, .88vw, 15px);
	line-height: 1.05;
	margin-top: .08em;
}

.ldg1__play-panel-lcd-mix {
	font-size: clamp(4px, .62vw, 10px);
	line-height: 1.1;
}

.ldg1__play-panel-lcd-meta {
	margin-top: auto;
	font-size: clamp(3.6px, .55vw, 9px);
	line-height: 1;
}

.ldg1__exhibit.is-current .ldg1__play-panel-screen,
.ldg1__mobile-exhibit.is-current .ldg1__play-panel-screen,
.ldg1__exhibit:hover .ldg1__play-panel-screen {
	box-shadow: inset 0 0 0 1px rgba(14,14,14,.62), inset 0 0 0 3px rgba(78, 101, 79, .24), inset 0 0 24px rgba(0,0,0,.14), 0 0 14px rgba(182, 231, 189, .22) !important;
}

.ldg1__lcd-layer {
	position: fixed;
	inset: 0;
	z-index: 120;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(18px, 3vw, 38px);
}

.ldg1__lcd-backdrop {
	position: absolute;
	inset: 0;
	border: 0;
	background: rgba(5, 7, 8, .74);
	backdrop-filter: blur(8px);
	cursor: pointer;
}

.ldg1__lcd-dialog {
	position: relative;
	width: min(980px, 92vw);
	max-width: 980px;
	z-index: 1;
	outline: none;
}

.ldg1__lcd-close {
	position: absolute;
	right: 0;
	top: -2.4rem;
	border: 1px solid rgba(212, 170, 77, .48);
	background: rgba(12, 14, 15, .92);
	color: #d9dbc9;
	padding: .52rem .82rem;
	border-radius: .65rem;
	font: 700 12px/1 "Courier New", monospace;
	letter-spacing: .18em;
	cursor: pointer;
}

.ldg1__lcd-device {
	position: relative;
	filter: drop-shadow(0 18px 30px rgba(0,0,0,.45)) drop-shadow(0 0 28px rgba(214,170,77,.14));
}

.ldg1__lcd-device-img {
	display: block;
	width: 100%;
	height: auto;
}

.ldg1__lcd-screen-viewport {
	position: absolute;
	left: 39.2%;
	top: 17.5%;
	width: 48.8%;
	height: 60.2%;
	border-radius: .9rem;
	overflow: hidden;
	background: linear-gradient(180deg, #dfe4de 0%, #cfd4ce 46%, #bfc4be 100%);
	box-shadow: inset 0 0 0 2px rgba(15,15,15,.58), inset 0 0 0 7px rgba(78, 101, 79, .2), inset 0 0 34px rgba(0,0,0,.13);
}

.ldg1__lcd-screen-viewport::before {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(180deg, rgba(255,255,255,.05) 0 2px, rgba(0,0,0,.025) 2px 5px);
	mix-blend-mode: multiply;
	pointer-events: none;
}

.ldg1__lcd-screen-scroll {
	position: absolute;
	inset: 0;
	overflow: auto;
	padding: clamp(16px, 2vw, 26px);
	font-family: "Courier New", Courier, monospace;
	color: #181c18;
	outline: none;
}

.ldg1__lcd-screen-topline,
.ldg1__lcd-screen-meta-row,
.ldg1__lcd-screen-footer {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	font-size: clamp(11px, 1.3vw, 20px);
	text-transform: uppercase;
	white-space: nowrap;
}

.ldg1__lcd-screen-head h3 {
	margin: .28em 0 .16em;
	font: 700 clamp(32px, 4.4vw, 66px)/1 "Courier New", monospace;
	letter-spacing: .025em;
}

.ldg1__lcd-screen-mix {
	margin: 0 0 .45em;
	font-size: clamp(18px, 2.1vw, 36px);
}

.ldg1__lcd-screen-rule {
	height: 2px;
	background: rgba(20, 24, 20, .84);
	margin: .8rem 0 1rem;
}

.ldg1__lcd-screen-body p {
	margin: 0 0 1em;
	font-size: clamp(14px, 1.55vw, 25px);
	line-height: 1.45;
}

.ldg1__lcd-screen-footer {
	margin-top: 1.2rem;
	padding-top: .9rem;
	border-top: 2px solid rgba(20, 24, 20, .68);
	font-size: clamp(12px, 1.25vw, 19px);
}

.ldg1.is-lcd-open .ldg1__viewport {
	pointer-events: none;
}

.ldg1.is-lcd-open .ldg1__hud,
.ldg1.is-lcd-open .ld-audio-console-shell,
.ldg1.is-lcd-open .ld-audio-blackhole-tab,
.ldg1.is-lcd-open .ldg1__selection,
.ldg1.is-lcd-open .ldg1__instruction {
	opacity: .25;
	pointer-events: none;
}

@media (max-width: 980px) {
	.ldg1__room .ldg1__play-trigger,
	.ldg1__play-trigger {
		width: 46% !important;
		top: calc(100% + 2.1%) !important;
	}
	.ldg1__lcd-dialog {
		width: min(92vw, 860px);
	}
}

@media (max-width: 768px) {
	.ldg1__room .ldg1__play-trigger,
	.ldg1__play-trigger {
		width: 34vw !important;
		max-width: 210px !important;
		min-width: 114px !important;
		top: calc(100% + 12px) !important;
	}
	.ldg1__play-panel-screen {
		padding: 5% 5.8% !important;
	}
	.ldg1__lcd-layer {
		padding: 14px;
	}
	.ldg1__lcd-close {
		top: -2.1rem;
		font-size: 11px;
		letter-spacing: .12em;
	}
	.ldg1__lcd-dialog {
		width: 96vw;
	}
	.ldg1__lcd-screen-scroll {
		padding: 12px;
	}
	.ldg1__lcd-screen-head h3 {
		font-size: clamp(22px, 6vw, 32px);
	}
	.ldg1__lcd-screen-mix {
		font-size: clamp(14px, 3.8vw, 20px);
	}
	.ldg1__lcd-screen-topline,
	.ldg1__lcd-screen-meta-row,
	.ldg1__lcd-screen-footer {
		font-size: clamp(10px, 2.6vw, 14px);
	}
	.ldg1__lcd-screen-body p {
		font-size: clamp(12px, 3vw, 15px);
	}
}


/* =========================================================
   V77 — LCD LAYER INITIAL-STATE AND CLOSE REPAIR

   V76 set .ldg1__lcd-layer to display:flex, which overrode the browser's
   native [hidden] rule. The layer therefore appeared on page load while
   still carrying inert, making it visible but impossible to close.
   ========================================================= */

.ldg1__lcd-layer[hidden],
.ldg1__lcd-layer[aria-hidden="true"] {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.ldg1__lcd-layer:not([hidden])[aria-hidden="false"] {
	display: flex !important;
	visibility: visible !important;
	opacity: 1 !important;
	pointer-events: auto !important;
}

.ldg1__lcd-layer:not([hidden]) .ldg1__lcd-backdrop,
.ldg1__lcd-layer:not([hidden]) .ldg1__lcd-dialog,
.ldg1__lcd-layer:not([hidden]) .ldg1__lcd-close,
.ldg1__lcd-layer:not([hidden]) .ldg1__lcd-screen-scroll {
	pointer-events: auto !important;
}


/* =========================================================
   V78 — PLAY PANEL SCALE, LCD CLARITY, AND INTERNAL CLOSE CONTROL
   ========================================================= */

/* Hard guarantee: the zoomed LCD panel must stay hidden until explicitly opened. */
.ldg1__lcd-layer[hidden] {
	display: none !important;
}

.ldg1__lcd-layer:not([hidden]) {
	display: flex !important;
}

/* Remove the old glow / atmospheric effect behind the new play panel. */
.ldg1__play-trigger-fx,
.ldg1__play-spark,
.ldg1__play-trigger::before,
.ldg1__play-trigger::after {
	display: none !important;
	content: none !important;
	background: none !important;
	box-shadow: none !important;
	filter: none !important;
}

/* Match the new panel more closely to the user grid references. */
.ldg1__room .ldg1__play-trigger,
.ldg1__play-trigger {
	left: 50% !important;
	top: calc(100% + 1.65%) !important;
	width: 44.6% !important;
	height: auto !important;
	aspect-ratio: 1024 / 358 !important;
	transform: translateX(-50%) !important;
	z-index: 16 !important;
	pointer-events: auto !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
	filter: drop-shadow(0 4px 10px rgba(0, 0, 0, .32)) !important;
}

@media (max-width: 980px) {
	.ldg1__room .ldg1__play-trigger,
	.ldg1__play-trigger {
		width: 45.2% !important;
		top: calc(100% + 1.5%) !important;
	}
}

@media (max-width: 768px) {
	.ldg1__room .ldg1__play-trigger,
	.ldg1__play-trigger {
		width: 34vw !important;
		max-width: 226px !important;
		min-width: 122px !important;
		top: calc(100% + 10px) !important;
	}
}

.ldg1__play-trigger-img,
.ldg1__exhibit:hover .ldg1__play-trigger-img,
.ldg1__exhibit:focus-visible .ldg1__play-trigger-img,
.ldg1__exhibit:active .ldg1__play-trigger-img,
.ldg1__exhibit.is-current .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:hover .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:focus-visible .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:active .ldg1__play-trigger-img,
.ldg1__mobile-exhibit.is-current .ldg1__play-trigger-img {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	height: auto !important;
	transform: none !important;
	opacity: 1 !important;
	filter: none !important;
	image-rendering: auto !important;
}

/* On-panel LCD preview: crisp, no blur, no green-glow look. */
.ldg1__play-panel-screen {
	position: absolute !important;
	left: 39.05% !important;
	top: 18.1% !important;
	width: 48.9% !important;
	height: 58.7% !important;
	padding: 3.25% 4.5% 3.7% !important;
	border-radius: .42em !important;
	background: linear-gradient(180deg, #e1e3dd 0%, #d7d9d2 48%, #c9cbc6 100%) !important;
	box-shadow: inset 0 0 0 1px rgba(30, 31, 31, .58), inset 0 0 0 2px rgba(128, 133, 127, .22) !important;
	overflow: hidden !important;
	cursor: zoom-in !important;
	pointer-events: auto !important;
	backdrop-filter: none !important;
	filter: none !important;
}

.ldg1__play-panel-screen::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	background: repeating-linear-gradient(180deg, rgba(255,255,255,.022) 0 1px, rgba(0,0,0,.018) 1px 3px) !important;
	pointer-events: none !important;
	mix-blend-mode: multiply !important;
}

.ldg1__play-panel-screen-inner {
	position: relative !important;
	display: flex !important;
	flex-direction: column !important;
	gap: .12em !important;
	width: 100% !important;
	height: 100% !important;
	font-family: "Courier New", Courier, monospace !important;
	font-weight: 400 !important;
	letter-spacing: .01em !important;
	color: #171a17 !important;
	text-align: left !important;
	text-shadow: none !important;
	transform: translateZ(0) !important;
}

.ldg1__play-panel-lcd-top {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: .35em !important;
	font-size: clamp(3.6px, .52vw, 8px) !important;
	line-height: 1.05 !important;
	text-transform: uppercase !important;
	white-space: nowrap !important;
}

.ldg1__play-panel-lcd-status,
.ldg1__play-panel-lcd-tag,
.ldg1__play-panel-lcd-title,
.ldg1__play-panel-lcd-mix,
.ldg1__play-panel-lcd-meta {
	display: block !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	text-shadow: none !important;
}

.ldg1__play-panel-lcd-title {
	font-size: clamp(7px, .98vw, 14px) !important;
	font-weight: 700 !important;
	line-height: .98 !important;
	margin-top: .18em !important;
}

.ldg1__play-panel-lcd-mix {
	font-size: clamp(4.9px, .68vw, 10px) !important;
	line-height: 1.04 !important;
	margin-top: .04em !important;
}

.ldg1__play-panel-lcd-meta {
	margin-top: auto !important;
	font-size: clamp(4px, .58vw, 8px) !important;
	line-height: 1 !important;
}

.ldg1__exhibit.is-current .ldg1__play-panel-screen,
.ldg1__mobile-exhibit.is-current .ldg1__play-panel-screen,
.ldg1__exhibit:hover .ldg1__play-panel-screen {
	box-shadow: inset 0 0 0 1px rgba(30, 31, 31, .6), inset 0 0 0 2px rgba(128, 133, 127, .28) !important;
}

/* Zoomed panel: no backdrop blur, tighter scale, close control inside top-right of the panel. */
.ldg1__lcd-layer {
	position: fixed !important;
	inset: 0 !important;
	z-index: 120 !important;
	align-items: center !important;
	justify-content: center !important;
	padding: clamp(18px, 3vw, 34px) !important;
}

.ldg1__lcd-backdrop {
	position: absolute !important;
	inset: 0 !important;
	border: 0 !important;
	background: rgba(5, 7, 8, .72) !important;
	backdrop-filter: none !important;
	cursor: pointer !important;
}

.ldg1__lcd-dialog {
	position: relative !important;
	width: min(760px, 82vw) !important;
	max-width: 760px !important;
	z-index: 1 !important;
	outline: none !important;
}

@media (max-width: 768px) {
	.ldg1__lcd-dialog {
		width: min(94vw, 620px) !important;
	}
}

.ldg1__lcd-device {
	position: relative !important;
	filter: drop-shadow(0 14px 26px rgba(0,0,0,.42)) !important;
}

.ldg1__lcd-device-img {
	display: block !important;
	width: 100% !important;
	height: auto !important;
}

.ldg1__lcd-close {
	position: absolute !important;
	right: 3.2% !important;
	top: 8% !important;
	z-index: 5 !important;
	border: 1px solid rgba(204, 172, 92, .4) !important;
	background: rgba(13, 14, 15, .78) !important;
	color: #e8e2d1 !important;
	padding: .44rem .72rem !important;
	border-radius: .55rem !important;
	font: 700 clamp(10px, 1vw, 12px)/1 "Courier New", monospace !important;
	letter-spacing: .16em !important;
	text-transform: uppercase !important;
	cursor: pointer !important;
	box-shadow: 0 0 0 1px rgba(255,255,255,.04) inset !important;
	transition: box-shadow .16s ease, background-color .16s ease, color .16s ease, border-color .16s ease, transform .16s ease !important;
}

.ldg1__lcd-close:hover,
.ldg1__lcd-close:focus-visible,
.ldg1__lcd-close:active {
	background: rgba(255, 255, 255, .15) !important;
	border-color: rgba(255,255,255,.58) !important;
	color: #fff9ef !important;
	box-shadow: 0 0 0 1px rgba(255,255,255,.18) inset, 0 0 16px rgba(255,255,255,.20) !important;
	outline: none !important;
	transform: translateY(-1px) !important;
}

.ldg1__lcd-screen-viewport {
	position: absolute !important;
	left: 39.05% !important;
	top: 18.1% !important;
	width: 48.9% !important;
	height: 58.7% !important;
	border-radius: .72rem !important;
	overflow: hidden !important;
	background: linear-gradient(180deg, #e1e3dd 0%, #d7d9d2 48%, #c9cbc6 100%) !important;
	box-shadow: inset 0 0 0 2px rgba(26, 27, 28, .64), inset 0 0 0 6px rgba(123, 129, 123, .18) !important;
}

.ldg1__lcd-screen-viewport::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	background: repeating-linear-gradient(180deg, rgba(255,255,255,.026) 0 2px, rgba(0,0,0,.018) 2px 5px) !important;
	pointer-events: none !important;
	mix-blend-mode: multiply !important;
}

.ldg1__lcd-screen-scroll {
	position: absolute !important;
	inset: 0 !important;
	overflow: auto !important;
	padding: clamp(16px, 2vw, 24px) !important;
	font-family: "Courier New", Courier, monospace !important;
	color: #191c19 !important;
	background: transparent !important;
	outline: none !important;
}

.ldg1__lcd-screen-topline,
.ldg1__lcd-screen-meta-row,
.ldg1__lcd-screen-footer {
	display: flex !important;
	justify-content: space-between !important;
	gap: 1rem !important;
	font-size: clamp(9px, 1vw, 16px) !important;
	line-height: 1.05 !important;
	text-transform: uppercase !important;
	white-space: nowrap !important;
}

.ldg1__lcd-screen-head h3 {
	margin: .28em 0 .12em !important;
	font: 700 clamp(24px, 4vw, 54px)/.98 "Courier New", monospace !important;
	letter-spacing: .01em !important;
	color: #121512 !important;
}

.ldg1__lcd-screen-mix {
	margin: 0 0 .42em !important;
	font-size: clamp(16px, 1.9vw, 31px) !important;
	line-height: 1.08 !important;
	color: #2b2f2b !important;
}

.ldg1__lcd-screen-rule {
	height: 2px !important;
	background: rgba(23, 26, 23, .86) !important;
	margin: .7rem 0 .85rem !important;
}

.ldg1__lcd-screen-body p {
	margin: 0 0 .9em !important;
	font-size: clamp(12px, 1.35vw, 21px) !important;
	line-height: 1.42 !important;
	color: #1f231f !important;
}

.ldg1__lcd-screen-footer {
	margin-top: 1rem !important;
	padding-top: .8rem !important;
	border-top: 2px solid rgba(23, 26, 23, .68) !important;
	font-size: clamp(10px, 1vw, 15px) !important;
}


/* =========================================================
   V79 — EXACT FRAME-CONTROL GEOMETRY, SHARP LCD, LARGER PANEL

   FRAME-Control.webp natural dimensions: 1000 × 318.
   Its transparent inner screen opening is:
   X 348–939 / Y 61–273 on the source image.

   Exact percentage geometry used for both the resting and enlarged panels:
   left: 34.8%; top: 19.18239%; width: 59.2%; height: 66.98113%.
   The LCD is painted behind the WebP, so the transparent opening itself is
   the final clipping mask and none of the LCD can cover the metal bezel.
   ========================================================= */

:root {
	--ldg1-frame-control-ratio: 1000 / 318;
	--ldg1-frame-control-screen-left: 34.8%;
	--ldg1-frame-control-screen-top: 19.18239%;
	--ldg1-frame-control-screen-width: 59.2%;
	--ldg1-frame-control-screen-height: 66.98113%;
}

/* Larger resting panel, based on the green-dot reference widths rather than
   the earlier undersized 44–45% implementation. */
.ldg1__room .ldg1__play-trigger,
.ldg1__play-trigger {
	position: absolute !important;
	left: 50% !important;
	top: calc(100% + 1.5%) !important;
	width: 82% !important;
	height: auto !important;
	aspect-ratio: var(--ldg1-frame-control-ratio) !important;
	transform: translateX(-50%) !important;
	transform-origin: 50% 0 !important;
	z-index: 22 !important;
	isolation: isolate !important;
	overflow: visible !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
	filter: none !important;
	backdrop-filter: none !important;
}

/* Frame 1 and Frame 3 have exact outer-frame coordinates and need slightly
   different panel-to-frame ratios to match the user's panel width marks. */
.ldg1__room [data-index="0"] .ldg1__play-trigger {
	width: 79.25% !important;
}

.ldg1__room [data-index="2"] .ldg1__play-trigger {
	width: 85.5% !important;
}

@media (max-width: 980px) {
	.ldg1__room .ldg1__play-trigger,
	.ldg1__play-trigger {
		width: 82% !important;
		top: calc(100% + 1.35%) !important;
	}

	.ldg1__room [data-index="0"] .ldg1__play-trigger {
		width: 79.25% !important;
	}

	.ldg1__room [data-index="2"] .ldg1__play-trigger {
		width: 85.5% !important;
	}
}

@media (max-width: 768px) {
	.ldg1__room .ldg1__play-trigger,
	.ldg1__play-trigger {
		width: min(82%, 270px) !important;
		max-width: none !important;
		min-width: 150px !important;
		top: calc(100% + 9px) !important;
	}
}

/* Eliminate all legacy lighting behind the play panel. */
.ldg1__play-trigger-fx,
.ldg1__play-spark,
.ldg1__play-trigger::before,
.ldg1__play-trigger::after {
	display: none !important;
	content: none !important;
	opacity: 0 !important;
	background: none !important;
	box-shadow: none !important;
	filter: none !important;
}

/* The source WebP is the visible top layer and therefore provides the exact
   transparent-window mask for the LCD underneath it. */
.ldg1__play-trigger-img,
.ldg1__exhibit:hover .ldg1__play-trigger-img,
.ldg1__exhibit:focus-visible .ldg1__play-trigger-img,
.ldg1__exhibit:active .ldg1__play-trigger-img,
.ldg1__exhibit.is-current .ldg1__play-trigger-img,
.ldg1__exhibit.is-neon-starting .ldg1__play-trigger-img,
.ldg1__exhibit.is-neon-engaged .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:hover .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:focus-visible .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:active .ldg1__play-trigger-img,
.ldg1__mobile-exhibit.is-current .ldg1__play-trigger-img {
	position: relative !important;
	z-index: 3 !important;
	display: block !important;
	width: 100% !important;
	height: auto !important;
	aspect-ratio: var(--ldg1-frame-control-ratio) !important;
	object-fit: contain !important;
	transform: none !important;
	opacity: 1 !important;
	filter: none !important;
	image-rendering: auto !important;
	backface-visibility: hidden !important;
}

/* Exact source-image LCD opening. The layer is below the WebP and cannot
   spill over the metal frame, buttons or bezel. */
.ldg1__play-panel-screen {
	position: absolute !important;
	z-index: 2 !important;
	left: var(--ldg1-frame-control-screen-left) !important;
	top: var(--ldg1-frame-control-screen-top) !important;
	width: var(--ldg1-frame-control-screen-width) !important;
	height: var(--ldg1-frame-control-screen-height) !important;
	box-sizing: border-box !important;
	padding: 4.6% 5.4% 4.8% !important;
	border: 0 !important;
	border-radius: 1.35% / 4.8% !important;
	background: linear-gradient(180deg, #e4e6e0 0%, #d9dcd5 47%, #cdd0ca 100%) !important;
	box-shadow: none !important;
	overflow: hidden !important;
	cursor: zoom-in !important;
	pointer-events: auto !important;
	filter: none !important;
	backdrop-filter: none !important;
	transform: none !important;
}

.ldg1__play-panel-screen::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	background: repeating-linear-gradient(
		180deg,
		rgba(255,255,255,.018) 0 1px,
		rgba(0,0,0,.014) 1px 3px
	) !important;
	mix-blend-mode: multiply !important;
	pointer-events: none !important;
}

.ldg1__play-panel-screen-inner {
	position: relative !important;
	z-index: 1 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: .08em !important;
	width: 100% !important;
	height: 100% !important;
	font-family: "Courier New", Courier, monospace !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
	color: #171a17 !important;
	text-align: left !important;
	text-shadow: none !important;
	filter: none !important;
	transform: none !important;
}

.ldg1__play-panel-lcd-top {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: .3em !important;
	font-size: clamp(4px, .53vw, 8px) !important;
	line-height: 1 !important;
	text-transform: uppercase !important;
	white-space: nowrap !important;
}

.ldg1__play-panel-lcd-status,
.ldg1__play-panel-lcd-tag,
.ldg1__play-panel-lcd-title,
.ldg1__play-panel-lcd-mix,
.ldg1__play-panel-lcd-meta {
	display: block !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	text-shadow: none !important;
}

.ldg1__play-panel-lcd-title {
	font-size: clamp(7px, 1vw, 15px) !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	margin-top: .16em !important;
}

.ldg1__play-panel-lcd-mix {
	font-size: clamp(5px, .7vw, 10px) !important;
	line-height: 1 !important;
	margin-top: .02em !important;
}

.ldg1__play-panel-lcd-meta {
	margin-top: auto !important;
	font-size: clamp(4px, .58vw, 9px) !important;
	line-height: 1 !important;
}

/* Reduce the frame lighting only towards the bottom edge so it no longer
   washes over the play panel. The upper and side illumination is retained. */
.ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit:hover .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit:hover .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit.is-neon-engaged .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit.is-neon-engaged .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__mobile-exhibit .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__mobile-exhibit .ldg1__artwork-shell.has-gallery-frame::after {
	-webkit-mask-image: linear-gradient(
		to bottom,
		#000 0%,
		#000 68%,
		rgba(0,0,0,.82) 77%,
		rgba(0,0,0,.36) 89%,
		transparent 100%
	) !important;
	mask-image: linear-gradient(
		to bottom,
		#000 0%,
		#000 68%,
		rgba(0,0,0,.82) 77%,
		rgba(0,0,0,.36) 89%,
		transparent 100%
	) !important;
}

/* The zoomed panel uses exactly the same image geometry and stacking order. */
.ldg1__lcd-dialog {
	position: relative !important;
	width: min(900px, 88vw) !important;
	max-width: 900px !important;
	aspect-ratio: var(--ldg1-frame-control-ratio) !important;
	z-index: 1 !important;
	outline: none !important;
}

.ldg1__lcd-device {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	aspect-ratio: var(--ldg1-frame-control-ratio) !important;
	isolation: isolate !important;
	filter: none !important;
}

.ldg1__lcd-device-img {
	position: relative !important;
	z-index: 3 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	aspect-ratio: var(--ldg1-frame-control-ratio) !important;
	object-fit: contain !important;
	filter: none !important;
	image-rendering: auto !important;
	backface-visibility: hidden !important;
}

.ldg1__lcd-screen-viewport {
	position: absolute !important;
	z-index: 2 !important;
	left: var(--ldg1-frame-control-screen-left) !important;
	top: var(--ldg1-frame-control-screen-top) !important;
	width: var(--ldg1-frame-control-screen-width) !important;
	height: var(--ldg1-frame-control-screen-height) !important;
	box-sizing: border-box !important;
	border: 0 !important;
	border-radius: 1.35% / 4.8% !important;
	overflow: hidden !important;
	background: linear-gradient(180deg, #e4e6e0 0%, #d9dcd5 47%, #cdd0ca 100%) !important;
	box-shadow: none !important;
	filter: none !important;
}

.ldg1__lcd-screen-viewport::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	background: repeating-linear-gradient(
		180deg,
		rgba(255,255,255,.018) 0 2px,
		rgba(0,0,0,.014) 2px 5px
	) !important;
	mix-blend-mode: multiply !important;
	pointer-events: none !important;
}

.ldg1__lcd-screen-scroll {
	position: absolute !important;
	z-index: 1 !important;
	inset: 0 !important;
	overflow: auto !important;
	box-sizing: border-box !important;
	padding: clamp(14px, 2vw, 25px) !important;
	font-family: "Courier New", Courier, monospace !important;
	color: #191c19 !important;
	background: transparent !important;
	outline: none !important;
	filter: none !important;
}

/* Close control sits on the metal top-right of the control panel rather than
   floating outside or tinting green. */
.ldg1__lcd-close {
	position: absolute !important;
	z-index: 5 !important;
	right: 2.1% !important;
	top: 2.8% !important;
	border: 1px solid rgba(198, 166, 84, .5) !important;
	background: rgba(12, 13, 14, .88) !important;
	color: #e9e3d2 !important;
	padding: .42rem .68rem !important;
	border-radius: .48rem !important;
	font: 700 clamp(9px, .9vw, 12px)/1 "Courier New", monospace !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	cursor: pointer !important;
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.035) !important;
	filter: none !important;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease, transform .15s ease !important;
}

.ldg1__lcd-close:hover,
.ldg1__lcd-close:focus-visible,
.ldg1__lcd-close:active {
	background: rgba(255,255,255,.17) !important;
	border-color: rgba(255,245,211,.9) !important;
	color: #fffdf5 !important;
	box-shadow:
		inset 0 0 0 1px rgba(255,255,255,.22),
		0 0 9px rgba(255,249,226,.48),
		0 0 19px rgba(226,190,95,.28) !important;
	outline: none !important;
	transform: translateY(-1px) !important;
}

@media (max-width: 768px) {
	.ldg1__lcd-dialog {
		width: 96vw !important;
		max-width: 96vw !important;
	}

	.ldg1__lcd-close {
		right: 2% !important;
		top: 2.2% !important;
		padding: .34rem .48rem !important;
		font-size: 9px !important;
		letter-spacing: .08em !important;
	}

	.ldg1__lcd-screen-scroll {
		padding: 11px !important;
	}
}


/* =========================================================
   V80 — RESTORE LCD PANEL SCROLLING

   FRAME-Control.webp must remain visually above the LCD content so its
   transparent opening acts as the bezel/mask. The image element previously
   intercepted all pointer and wheel input over that opening. V80 leaves the
   visual stacking intact but makes the metal image input-transparent, then
   gives the LCD viewport full wheel, touch and keyboard scrolling ownership.
   ========================================================= */

.ldg1__lcd-device-img {
	pointer-events: none !important;
	user-select: none !important;
	-webkit-user-drag: none !important;
}

.ldg1__lcd-screen-viewport {
	pointer-events: auto !important;
	touch-action: pan-y !important;
	overscroll-behavior: contain !important;
}

.ldg1__lcd-screen-scroll {
	pointer-events: auto !important;
	overflow-x: hidden !important;
	overflow-y: auto !important;
	touch-action: pan-y !important;
	overscroll-behavior-y: contain !important;
	-webkit-overflow-scrolling: touch !important;
	scroll-behavior: auto !important;
	scrollbar-gutter: stable !important;
	cursor: ns-resize !important;
}

.ldg1__lcd-screen-scroll:focus-visible {
	outline: 1px solid rgba(50, 54, 50, .42) !important;
	outline-offset: -3px !important;
}

.ldg1__lcd-screen-scroll::-webkit-scrollbar {
	width: 10px !important;
}

.ldg1__lcd-screen-scroll::-webkit-scrollbar-track {
	background: rgba(34, 38, 34, .09) !important;
}

.ldg1__lcd-screen-scroll::-webkit-scrollbar-thumb {
	background: rgba(38, 43, 38, .48) !important;
	border: 2px solid rgba(220, 223, 216, .72) !important;
	border-radius: 999px !important;
}

.ldg1__lcd-screen-scroll {
	scrollbar-width: thin !important;
	scrollbar-color: rgba(38, 43, 38, .48) rgba(34, 38, 34, .09) !important;
}


/* =========================================================
   V81 — FRAME-CONTROL-SMALL, EXACT FIRST-FRAME POSITION,
   AND FOCUS-ONLY LCD POPUP HOTSPOT

   Source image:
   FRAME-Control-Small.webp = 500 × 159 pixels (same ratio as 1000 × 318).

   User green-dot centres on the exact 2048 × 878 Gallery-1 room grid:
   bottom-left  X 348.429319 / Y 601.832461
   bottom-right X 480.740464 / Y 601.832461
   width        132.311144
   natural height from 500:159 ratio = 42.074944
   top          Y 559.757517

   Relative to the exact V65 Frame 1 canvas:
   centre X     50.074156%
   top          106.075613%
   width        45.521099%
   height       follows the source image ratio

   The visible LCD artwork is now part of FRAME-Control-Small.webp itself.
   No separate live LCD text layer is painted on the gallery wall. The retained
   screen element is an invisible hotspot that receives pointer input only when
   the viewer is fully focused on that exact exhibit.
   ========================================================= */

:root {
	--ldg1-frame-control-small-ratio: 500 / 159;
	--ldg1-frame-control-small-width: 45.521099%;
	--ldg1-frame-control-small-top: 106.075613%;
}

/* Remove every historical glow, spark, blur and generated layer behind the
   under-frame control. Only the source WebP is visible on the wall. */
.ldg1__play-trigger-fx,
.ldg1__play-spark,
.ldg1__play-trigger::before,
.ldg1__play-trigger::after {
	display: none !important;
	content: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
	background: none !important;
	box-shadow: none !important;
	filter: none !important;
}

/* One consistent relative geometry under every frame. For Frame 1 these
   values reproduce the supplied green-dot position precisely. */
.ldg1__room .ldg1__play-trigger,
.ldg1__play-trigger,
.ldg1__room [data-index="0"] .ldg1__play-trigger,
.ldg1__room [data-index="1"] .ldg1__play-trigger,
.ldg1__room [data-index="2"] .ldg1__play-trigger,
.ldg1__room [data-index="3"] .ldg1__play-trigger,
.ldg1__room [data-index="4"] .ldg1__play-trigger,
.ldg1__room [data-index="5"] .ldg1__play-trigger {
	position: absolute !important;
	left: 50.074156% !important;
	right: auto !important;
	top: var(--ldg1-frame-control-small-top) !important;
	bottom: auto !important;
	width: var(--ldg1-frame-control-small-width) !important;
	height: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	aspect-ratio: var(--ldg1-frame-control-small-ratio) !important;
	transform: translateX(-50%) !important;
	transform-origin: 50% 0 !important;
	z-index: 22 !important;
	isolation: isolate !important;
	overflow: visible !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
	filter: none !important;
	backdrop-filter: none !important;
	pointer-events: auto !important;
}

.ldg1__play-trigger-img,
.ldg1__exhibit:hover .ldg1__play-trigger-img,
.ldg1__exhibit:focus-visible .ldg1__play-trigger-img,
.ldg1__exhibit:active .ldg1__play-trigger-img,
.ldg1__exhibit.is-current .ldg1__play-trigger-img,
.ldg1__exhibit.is-neon-starting .ldg1__play-trigger-img,
.ldg1__exhibit.is-neon-engaged .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:hover .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:focus-visible .ldg1__play-trigger-img,
.ldg1__mobile-exhibit:active .ldg1__play-trigger-img,
.ldg1__mobile-exhibit.is-current .ldg1__play-trigger-img {
	position: relative !important;
	z-index: 3 !important;
	display: block !important;
	width: 100% !important;
	height: auto !important;
	max-width: none !important;
	aspect-ratio: var(--ldg1-frame-control-small-ratio) !important;
	object-fit: contain !important;
	transform: none !important;
	opacity: 1 !important;
	filter: none !important;
	box-shadow: none !important;
	image-rendering: auto !important;
	backface-visibility: hidden !important;
	user-select: none !important;
	-webkit-user-drag: none !important;
}

/* No HTML LCD is drawn on the wall. This element is now only the invisible
   screen-area hotspot. It is deliberately non-interactive during normal
   gallery scrolling and becomes active only after the camera reaches the
   focused exhibit state. */
.ldg1__play-panel-screen {
	position: absolute !important;
	z-index: 5 !important;
	left: 34.8% !important;
	top: 19.18239% !important;
	width: 59.2% !important;
	height: 66.98113% !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 1.35% / 4.8% !important;
	background: transparent !important;
	box-shadow: none !important;
	filter: none !important;
	backdrop-filter: none !important;
	overflow: hidden !important;
	opacity: 0 !important;
	visibility: visible !important;
	cursor: pointer !important;
	pointer-events: none !important;
}

.ldg1__play-panel-screen::before,
.ldg1__play-panel-screen::after,
.ldg1__play-panel-screen-inner,
.ldg1__play-panel-lcd-top,
.ldg1__play-panel-lcd-status,
.ldg1__play-panel-lcd-tag,
.ldg1__play-panel-lcd-title,
.ldg1__play-panel-lcd-mix,
.ldg1__play-panel-lcd-meta {
	display: none !important;
	content: none !important;
}

/* Only the LCD aperture becomes a popup trigger after the exact exhibit has
   finished its walk-in and the root enters is-artwork-focused. */
.ldg1.is-artwork-focused .ldg1__exhibit.is-current .ldg1__play-panel-screen,
.ldg1.is-artwork-focused .ldg1__mobile-exhibit.is-current .ldg1__play-panel-screen {
	opacity: 1 !important;
	pointer-events: auto !important;
	cursor: zoom-in !important;
}

/* Keep the wall panel crisp during hover/current states. Do not add colour,
   blur or scaling that would soften the pre-rendered LCD artwork. */
.ldg1__exhibit:hover .ldg1__play-trigger,
.ldg1__exhibit:focus-visible .ldg1__play-trigger,
.ldg1__exhibit.is-current .ldg1__play-trigger,
.ldg1__exhibit.is-neon-engaged .ldg1__play-trigger,
.ldg1__mobile-exhibit:hover .ldg1__play-trigger,
.ldg1__mobile-exhibit:focus-visible .ldg1__play-trigger,
.ldg1__mobile-exhibit.is-current .ldg1__play-trigger {
	transform: translateX(-50%) !important;
	filter: none !important;
}

/* Continue suppressing the frame illumination towards the lower edge so it
   cannot wash out the small control panel beneath the frame. */
.ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit:hover .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit:hover .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit:focus-visible .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit.is-neon-starting .ldg1__artwork-shell.has-gallery-frame::after,
.ldg1__exhibit.is-neon-engaged .ldg1__artwork-shell.has-gallery-frame::before,
.ldg1__exhibit.is-neon-engaged .ldg1__artwork-shell.has-gallery-frame::after {
	-webkit-mask-image: linear-gradient(
		to bottom,
		#000 0%,
		#000 64%,
		rgba(0,0,0,.72) 75%,
		rgba(0,0,0,.22) 87%,
		transparent 98%
	) !important;
	mask-image: linear-gradient(
		to bottom,
		#000 0%,
		#000 64%,
		rgba(0,0,0,.72) 75%,
		rgba(0,0,0,.22) 87%,
		transparent 98%
	) !important;
}

@media (max-width: 768px) {
	.ldg1__room .ldg1__play-trigger,
	.ldg1__play-trigger,
	.ldg1__room [data-index="0"] .ldg1__play-trigger,
	.ldg1__room [data-index="1"] .ldg1__play-trigger,
	.ldg1__room [data-index="2"] .ldg1__play-trigger,
	.ldg1__room [data-index="3"] .ldg1__play-trigger,
	.ldg1__room [data-index="4"] .ldg1__play-trigger,
	.ldg1__room [data-index="5"] .ldg1__play-trigger {
		left: 50.074156% !important;
		top: var(--ldg1-frame-control-small-top) !important;
		width: var(--ldg1-frame-control-small-width) !important;
		min-width: 0 !important;
		max-width: none !important;
	}
}


/* =========================================================
   V84 — COMPACT BOTTOM-LEFT SOCIAL TICKET
   Repairs live WordPress/theme button styling that painted the
   transparent areas green. The desktop resting size remains as
   approved; mobile is smaller. Each ticket face now flips
   independently for more reliable Safari/mobile rendering.
   ========================================================= */

.ldg1__social-ticket-layer,
.ldg1__social-ticket-layer *,
.ldg1__social-ticket-layer *::before,
.ldg1__social-ticket-layer *::after {
	box-sizing: border-box;
}

.ldg1__social-ticket-layer {
	position: fixed;
	z-index: 360;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	pointer-events: none;
	perspective: 1400px;
	isolation: isolate;
}

/*
 * Neutral click-away area. This is deliberately a DIV rather than a
 * BUTTON so WordPress/Theme button colours can never cover the viewport.
 */
.ldg1__social-ticket-backdrop {
	position: absolute;
	z-index: 0;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	filter: none !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	cursor: default;
	transition: visibility 0s linear 480ms;
}

.ldg1__social-ticket-backdrop::before,
.ldg1__social-ticket-backdrop::after {
	display: none !important;
	content: none !important;
}

.ldg1__social-ticket-shell {
	/* Approved desktop size. The visible amount keeps the share icon present. */
	--ldg1-social-rest-width: clamp(190px, 16vw, 260px);
	--ldg1-social-open-width: clamp(330px, 31vw, 430px);
	--ldg1-social-visible-stub: 65%;

	position: absolute;
	z-index: 2;
	left: max(0px, env(safe-area-inset-left));
	bottom: max(8px, env(safe-area-inset-bottom));
	width: var(--ldg1-social-rest-width);
	aspect-ratio: 800 / 367;
	margin: 0;
	padding: 0;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	transform: translate3d(calc(-100% + var(--ldg1-social-visible-stub)), 0, 0);
	transform-origin: 0 100%;
	pointer-events: auto;
	transition:
		width 560ms cubic-bezier(.22, .86, .24, 1),
		transform 560ms cubic-bezier(.22, .86, .24, 1),
		filter 240ms ease;
	will-change: width, transform;
	container-type: inline-size;
	container-name: ldg1-social-ticket;
}

@media (hover: hover) and (pointer: fine) {
	.ldg1__social-ticket-shell:hover,
	.ldg1__social-ticket-shell:focus-within {
		transform: translate3d(0, 0, 0);
		filter: drop-shadow(0 9px 13px rgba(0, 0, 0, .42));
	}
}

.ldg1__social-ticket-bob {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	transform-origin: 18% 100%;
	animation: ldg1-social-ticket-bob-v84 4.9s cubic-bezier(.45, 0, .55, 1) infinite;
	will-change: transform;
}

.ldg1__social-ticket-shell:hover .ldg1__social-ticket-bob,
.ldg1__social-ticket-shell:focus-within .ldg1__social-ticket-bob,
.ldg1__social-ticket-layer.is-open .ldg1__social-ticket-bob {
	animation-play-state: paused;
	transform: translate3d(0, 0, 0) rotate(0deg);
}

@keyframes ldg1-social-ticket-bob-v84 {
	0%,
	100% {
		transform: translate3d(0, 0, 0) rotate(0deg);
	}
	22% {
		transform: translate3d(0, -2px, 0) rotate(-.25deg);
	}
	46% {
		transform: translate3d(0, -5px, 0) rotate(.34deg);
	}
	68% {
		transform: translate3d(0, -2px, 0) rotate(-.18deg);
	}
	84% {
		transform: translate3d(0, -4px, 0) rotate(.2deg);
	}
}

.ldg1__social-ticket-card {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	perspective: 1200px;
	-webkit-perspective: 1200px;
	transform: translateZ(0);
	transform-style: preserve-3d;
	-webkit-transform-style: preserve-3d;
	will-change: transform;
}

.ldg1__social-ticket-face {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	outline: 0;
	appearance: none !important;
	-webkit-appearance: none !important;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	text-shadow: none !important;
	font: inherit;
	color: inherit;
	overflow: visible;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	transform-origin: 0 50%;
	transform-style: preserve-3d;
	-webkit-transform-style: preserve-3d;
	-webkit-tap-highlight-color: transparent;
	transition:
		transform 680ms cubic-bezier(.2, .78, .18, 1),
		opacity 220ms ease,
		visibility 0s linear;
	will-change: transform, opacity;
}

/* Defeat theme hover/active/focus button paint, including pseudo-elements. */
.ldg1__social-ticket-face:hover,
.ldg1__social-ticket-face:focus,
.ldg1__social-ticket-face:focus-visible,
.ldg1__social-ticket-face:active,
.ldg1__social-ticket-close:hover,
.ldg1__social-ticket-close:focus,
.ldg1__social-ticket-close:focus-visible,
.ldg1__social-ticket-close:active {
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	border-color: transparent !important;
	box-shadow: none !important;
}

.ldg1__social-ticket-face::before,
.ldg1__social-ticket-face::after,
.ldg1__social-ticket-close::before,
.ldg1__social-ticket-close::after {
	display: none !important;
	content: none !important;
	background: none !important;
}

.ldg1__social-ticket-face--front {
	z-index: 2;
	cursor: pointer;
	opacity: 1;
	visibility: visible;
	transform: rotateY(0deg) translateZ(1px);
	pointer-events: auto;
	transition-delay: 0s, 0s, 0s;
}

.ldg1__social-ticket-face--back {
	z-index: 1;
	opacity: 0;
	visibility: hidden;
	transform: rotateY(180deg) translateZ(1px);
	pointer-events: none;
	transition-delay: 0s, 160ms, 680ms;
}

.ldg1__social-ticket-face > img,
.ldg1__social-ticket-back-image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	object-fit: contain;
	object-position: 50% 50%;
	filter:
		drop-shadow(0 9px 12px rgba(0, 0, 0, .46))
		drop-shadow(0 0 5px rgba(255, 196, 52, .14));
	pointer-events: none;
	user-select: none;
	-webkit-user-drag: none;
}

.ldg1__social-ticket-face--front:focus-visible {
	outline: 2px solid rgba(255, 231, 151, .96);
	outline-offset: 3px;
}

.ldg1__social-ticket-heading {
	position: absolute;
	z-index: 5;
	left: 20%;
	right: 20%;
	top: 14.5%;
	margin: 0;
	padding: 0;
	/* Darker antique gold creates a stamped/embossed impression on bright foil. */
	color: #8b570d;
	-webkit-text-fill-color: #8b570d;
	-webkit-text-stroke: .25px rgba(76, 35, 0, .46);
	font-family: "Cinzel", "Trajan Pro", "Palatino Linotype", "Book Antiqua", Georgia, serif;
	font-size: clamp(12px, 1.34vw, 18px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: .065em;
	text-align: center;
	text-transform: uppercase;
	white-space: nowrap;
	text-shadow:
		0 -1px 0 rgba(255, 226, 139, .82),
		0 1px 0 rgba(66, 27, 0, .96),
		0 2px 2px rgba(71, 30, 0, .42),
		1px 0 0 rgba(111, 59, 5, .34),
		-1px 0 0 rgba(255, 211, 102, .22);
	filter: drop-shadow(0 1px 1px rgba(66, 29, 0, .2));
	transform: translateZ(5px);
	pointer-events: none;
}

.ldg1__social-ticket-links {
	position: absolute;
	z-index: 5;
	/* Slightly wider and taller grid area keeps larger controls inside the inset panel. */
	left: 28%;
	right: 28%;
	top: 31.5%;
	bottom: 12.5%;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: repeat(2, minmax(0, 1fr));
	place-items: center;
	/* Compact spacing preserves a clear 2x2 layout without crowding the embossing. */
	gap: 4px 16px;
	row-gap: clamp(3px, 1.35cqw, 6px);
	column-gap: clamp(12px, 5cqw, 23px);
	margin: 0;
	padding: 0;
	background: none !important;
	transform: translateZ(5px);
}

.ldg1__social-ticket-link {
	position: relative;
	display: block;
	/* Larger than V87 for easy recognition, still governed by the ticket container. */
	width: min(100%, 52px);
	width: clamp(29px, 12cqw, 52px);
	max-width: 100%;
	aspect-ratio: 1 / 1;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: clamp(5px, .75vw, 10px);
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: 0 5px 9px rgba(0, 0, 0, .24) !important;
	overflow: visible;
	transform: translate3d(0, 0, 0) scale(1);
	transition:
		transform 180ms ease,
		filter 180ms ease;
	-webkit-tap-highlight-color: transparent;
}

.ldg1__social-ticket-link::before {
	display: none !important;
	content: none !important;
}

.ldg1__social-ticket-link::after {
	position: absolute;
	inset: 8%;
	display: block !important;
	content: "" !important;
	border-radius: inherit;
	background: none !important;
	box-shadow: 0 0 0 rgba(255, 204, 73, 0);
	pointer-events: none;
	transition: box-shadow 180ms ease;
}

.ldg1__social-ticket-link img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	object-fit: contain;
	pointer-events: none;
	user-select: none;
	-webkit-user-drag: none;
}

.ldg1__social-ticket-link:hover,
.ldg1__social-ticket-link:focus-visible {
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	filter: brightness(1.13) saturate(1.08);
	transform: translate3d(0, -3%, 0) scale(1.07);
	outline: 0;
}

.ldg1__social-ticket-link:hover::after,
.ldg1__social-ticket-link:focus-visible::after {
	box-shadow: 0 0 13px rgba(255, 204, 73, .56);
}

.ldg1__social-ticket-link:active {
	background: none !important;
	transform: translate3d(0, 0, 0) scale(.97);
}

.ldg1__social-ticket-close {
	position: absolute;
	z-index: 6;
	top: 50%;
	right: 6.5%;
	display: block;
	width: 8.4%;
	aspect-ratio: 1 / 1;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50%;
	appearance: none !important;
	-webkit-appearance: none !important;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	cursor: pointer;
	transform: translate3d(0, -50%, 6px) scale(1);
	transition:
		transform 180ms ease,
		filter 180ms ease;
	-webkit-tap-highlight-color: transparent;
}

.ldg1__social-ticket-close img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	object-fit: contain;
	pointer-events: none;
	user-select: none;
	-webkit-user-drag: none;
}

.ldg1__social-ticket-close:hover,
.ldg1__social-ticket-close:focus-visible {
	filter: brightness(1.14) saturate(1.08);
	transform: translate3d(0, -50%, 6px) scale(1.1) rotate(5deg);
	outline: 2px solid rgba(255, 231, 151, .9);
	outline-offset: 2px;
}

.ldg1__social-ticket-close:active {
	transform: translate3d(0, -50%, 6px) scale(.96);
}

.ldg1__social-ticket-layer.is-open {
	pointer-events: auto;
}

.ldg1__social-ticket-layer.is-open .ldg1__social-ticket-backdrop {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition: visibility 0s linear 0s;
}

/* Open state stays attached to the lower-left and grows only modestly. */
.ldg1__social-ticket-layer.is-open .ldg1__social-ticket-shell {
	left: max(6px, env(safe-area-inset-left));
	bottom: max(8px, env(safe-area-inset-bottom));
	width: var(--ldg1-social-open-width);
	transform: translate3d(0, 0, 0);
	filter:
		drop-shadow(0 15px 20px rgba(0, 0, 0, .54))
		drop-shadow(0 0 12px rgba(255, 190, 30, .1));
}

/* Independent faces avoid the mobile/Safari blank-card failure. */
.ldg1__social-ticket-layer.is-open .ldg1__social-ticket-face--front {
	z-index: 1;
	opacity: 0;
	visibility: hidden;
	transform: rotateY(-180deg) translateZ(1px);
	pointer-events: none;
	transition-delay: 0s, 300ms, 680ms;
}

.ldg1__social-ticket-layer.is-open .ldg1__social-ticket-face--back {
	z-index: 2;
	opacity: 1;
	visibility: visible;
	transform: rotateY(0deg) translateZ(1px);
	pointer-events: auto;
	transition-delay: 0s, 250ms, 0s;
}

/* Gallery remains fully visible; only interaction is paused behind the open ticket. */
.ldg1.is-social-ticket-open .ldg1__viewport,
.ldg1.is-social-ticket-open .ldg1__hud,
.ldg1.is-social-ticket-open .ld-audio-console-shell,
.ldg1.is-social-ticket-open .ld-audio-blackhole-tab,
.ldg1.is-social-ticket-open .ldg1__selection,
.ldg1.is-social-ticket-open .ldg1__instruction,
.ldg1.is-social-ticket-open .ldg1__page-link {
	pointer-events: none !important;
}

@media (max-width: 767px) {
	.ldg1__social-ticket-shell {
		/* Roughly 25–30% smaller than V83 on phones. */
		--ldg1-social-rest-width: clamp(118px, 35vw, 150px);
		--ldg1-social-open-width: min(82vw, 320px);
		--ldg1-social-visible-stub: 69%;
		bottom: max(6px, env(safe-area-inset-bottom));
	}

	.ldg1__social-ticket-heading {
		top: 14%;
		font-size: clamp(10px, 2.9vw, 14px);
		font-weight: 700;
		letter-spacing: .045em;
	}

	.ldg1__social-ticket-links {
		left: 27.5%;
		right: 27.5%;
		top: 31%;
		bottom: 12%;
		gap: 3px 12px;
		row-gap: clamp(3px, 1.25cqw, 5px);
		column-gap: clamp(9px, 4.5cqw, 15px);
	}

	.ldg1__social-ticket-link {
		width: min(100%, 42px);
		width: clamp(29px, 12cqw, 42px);
		border-radius: clamp(4px, 1.25vw, 8px);
	}

	.ldg1__social-ticket-close {
		right: 6.2%;
		width: 9%;
	}
}

@media (max-height: 520px) and (orientation: landscape) {
	.ldg1__social-ticket-shell {
		--ldg1-social-rest-width: clamp(120px, 17vw, 165px);
		--ldg1-social-open-width: min(52vw, 315px);
		--ldg1-social-visible-stub: 69%;
		bottom: max(5px, env(safe-area-inset-bottom));
	}
}

@media (hover: none), (pointer: coarse) {
	/* Prevent sticky mobile hover/focus from leaving the complete front exposed. */
	.ldg1__social-ticket-layer:not(.is-open) .ldg1__social-ticket-shell:hover,
	.ldg1__social-ticket-layer:not(.is-open) .ldg1__social-ticket-shell:focus-within {
		transform: translate3d(calc(-100% + var(--ldg1-social-visible-stub)), 0, 0);
		filter: none;
	}

	.ldg1__social-ticket-link:hover {
		filter: none;
		transform: translate3d(0, 0, 0) scale(1);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ldg1__social-ticket-bob {
		animation: none !important;
	}

	.ldg1__social-ticket-shell,
	.ldg1__social-ticket-face,
	.ldg1__social-ticket-backdrop,
	.ldg1__social-ticket-link,
	.ldg1__social-ticket-close {
		transition-duration: 1ms !important;
		transition-delay: 0s !important;
	}
}



/* =========================================================
   V88 — SOCIAL CONTROL VISIBILITY / EMBOSSED HEADING
   The four controls are enlarged enough for clear recognition while retaining
   container-relative scaling and the approved 2x2 central-panel arrangement.
   The heading uses darker antique-gold colouring, highlight and recessed shadow
   layers to read as embossed lettering against the bright foil ticket artwork.
   ========================================================= */

/* =========================================================
   V86 — NEON IGNITION SOUND / MEDIA HAND-OFF
   Keep the original still artwork visible while the selected MP4 is silently
   primed under the user's click. The video and music become active only after
   the chosen neon-bulb effect has finished.
   ========================================================= */

.ldg1__exhibit.is-neon-audio-pending .ldg1__video-slot,
.ldg1__mobile-exhibit.is-neon-audio-pending .ldg1__video-slot {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

.ldg1__exhibit.is-neon-audio-pending .ldg1__inside-artwork,
.ldg1__mobile-exhibit.is-neon-audio-pending .ldg1__inside-artwork {
	opacity: 1 !important;
	visibility: visible !important;
}

.ldg1__neon-frame-audio {
	display: none !important;
}

/* =========================================================
   V142 — FRAME 2 EXACT-GRID GRAFFITI-SQUARE REPLACEMENT

   Coordinate source: the supplied 2048 × 878 Gallery One grid screenshot.
   Green-dot centres mark the new outer frame bottom corners:
   bottom-left  X 873.867192 / Y 544.330750
   bottom-right X 1175.557467 / Y 544.330750

   Graffiti-Frame-Final-1.webp is 800 × 802. Its natural ratio gives:
   top-left     X 873.867192 / Y 241.886249
   width        301.690275
   height       302.444501

   CSS lock:
   left   42.669296%
   top    27.549687%
   width  14.730970%
   height 34.446982%

   The obsolete Backing.webp layer is disabled completely. The neon pulse and
   steady backlight now use the square artwork shell itself, so every glow layer
   follows the new frame's outer dimensions on desktop, tablet and mobile.
   ========================================================= */

/* Exact outer-frame lock. Repeated interaction selectors prevent any old
   Frame 2 rules or theme button states from changing the grid geometry. */
.ldg1__room .ldg1__exhibit[data-index="1"][data-ldg1-graffiti-square-coordinate-lock-v97],
.ldg1__room .ldg1__exhibit[data-index="1"][data-ldg1-graffiti-square-coordinate-lock-v97]:hover,
.ldg1__room .ldg1__exhibit[data-index="1"][data-ldg1-graffiti-square-coordinate-lock-v97]:focus,
.ldg1__room .ldg1__exhibit[data-index="1"][data-ldg1-graffiti-square-coordinate-lock-v97]:focus-visible,
.ldg1__room .ldg1__exhibit[data-index="1"][data-ldg1-graffiti-square-coordinate-lock-v97]:active {
	left: 42.669296% !important;
	right: auto !important;
	top: 27.549687% !important;
	bottom: auto !important;
	width: 14.730970% !important;
	height: 34.446982% !important;
	aspect-ratio: 800 / 802 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
	transform: none !important;
}

/* Remove the historical recess-cover pseudo-elements from Frame 2. */
.ldg1__room .ldg1__exhibit[data-index="1"][data-ldg1-graffiti-square-coordinate-lock-v97]::before,
.ldg1__room .ldg1__exhibit[data-index="1"][data-ldg1-graffiti-square-coordinate-lock-v97]::after {
	display: none !important;
	content: none !important;
	background: none !important;
	background-image: none !important;
	box-shadow: none !important;
	filter: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
}

/* The shell is the exact square frame canvas. Its own ::before and ::after
   elements remain available for the existing classic neon pulse/backlight. */
.ldg1__room [data-index="1"] .ldg1__artwork-shell--graffiti-square {
	--ldg1-frame-edge: rgba(255, 224, 137, .66);
	--ldg1-frame-glow: rgba(255, 178, 31, .56);
	--ldg1-frame-glow-soft: rgba(255, 209, 93, .24);
	position: relative !important;
	z-index: 3 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	aspect-ratio: 800 / 802 !important;
	overflow: visible !important;
	background: transparent !important;
	box-shadow: none !important;
	transform: none !important;
}

/* Make the pulsing backlight follow the new square silhouette instead of the
   former tall Chill/backing dimensions. */
.ldg1__artwork-shell--graffiti-square::before {
	inset: -7.5% !important;
	border-radius: 4% !important;
	background:
		radial-gradient(ellipse at center,
			transparent 42%,
			rgba(255, 205, 91, .20) 54%,
			rgba(255, 174, 27, .48) 68%,
			transparent 83%) !important;
	filter: blur(10px) !important;
}

.ldg1__artwork-shell--graffiti-square::after {
	inset: -1.25% !important;
	border: 0 !important;
	border-radius: 2.5% !important;
	box-shadow:
		0 0 7px rgba(255, 193, 62, .48),
		0 0 18px rgba(255, 176, 31, .24),
		inset 0 0 8px rgba(255, 235, 172, .08) !important;
}

/* Natural 800 × 802 outer-frame asset: no stretch, scale or crop. */
.ldg1__artwork-shell--graffiti-square .ldg1__artwork,
.ldg1__exhibit[data-index="1"]:hover .ldg1__artwork-shell--graffiti-square .ldg1__artwork,
.ldg1__exhibit[data-index="1"]:focus-visible .ldg1__artwork-shell--graffiti-square .ldg1__artwork,
.ldg1__exhibit[data-index="1"].is-current .ldg1__artwork-shell--graffiti-square .ldg1__artwork,
.ldg1__exhibit[data-index="1"].is-neon-starting .ldg1__artwork-shell--graffiti-square .ldg1__artwork,
.ldg1__exhibit[data-index="1"].is-neon-engaged .ldg1__artwork-shell--graffiti-square .ldg1__artwork {
	position: relative !important;
	z-index: 3 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: contain !important;
	object-position: 50% 50% !important;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
	filter:
		drop-shadow(0 0 4px rgba(255, 205, 99, .28))
		drop-shadow(0 9px 17px rgba(0, 0, 0, .58)) !important;
}

/* Aperture measured directly from the transparent centre of the 800 × 802
   WebP. The square JPG and the MP4 canvas share this exact opening. */
.ldg1__artwork-shell--graffiti-square .ldg1__inside-artwork,
.ldg1__artwork-shell--graffiti-square .ldg1__video-slot {
	position: absolute !important;
	z-index: 1 !important;
	left: 17.500000% !important;
	top: 16.458853% !important;
	width: 64.750000% !important;
	height: 66.458853% !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	object-fit: cover !important;
	object-position: 50% 50% !important;
	background: #030303 !important;
	border: 0 !important;
	border-radius: 0 !important;
	transform: none !important;
	filter: none !important;
	box-shadow: inset 0 0 12px rgba(0, 0, 0, .72) !important;
}

.ldg1__artwork-shell--graffiti-square .ldg1__video-canvas {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: 50% 50% !important;
	background: #030303 !important;
}

/* Glass is clipped to the media aperture, not laid across the graffiti frame. */
.ldg1__artwork-shell--graffiti-square .ldg1__artwork-glass {
	z-index: 4 !important;
	inset: auto !important;
	left: 17.500000% !important;
	top: 16.458853% !important;
	width: 64.750000% !important;
	height: 66.458853% !important;
	border-radius: 0 !important;
	opacity: .18 !important;
}

/* The existing relative FRAME-Control-Small rule remains active. It now sits
   under the square Frame 2 geometry rather than the removed backing image. */
.ldg1__room [data-index="1"] .ldg1__play-trigger {
	z-index: 6 !important;
}

@media (max-width: 991px) {
	.ldg1__room .ldg1__exhibit[data-index="1"][data-ldg1-graffiti-square-coordinate-lock-v97] {
		left: 42.669296% !important;
		top: 27.549687% !important;
		width: 14.730970% !important;
		height: 34.446982% !important;
		aspect-ratio: 800 / 802 !important;
	}
}

@media (max-width: 767px) {
	.ldg1__room .ldg1__exhibit[data-index="1"][data-ldg1-graffiti-square-coordinate-lock-v97] {
		left: 42.669296% !important;
		top: 27.549687% !important;
		width: 14.730970% !important;
		height: 34.446982% !important;
		aspect-ratio: 800 / 802 !important;
	}
}



/* =========================================================
   V142 FINAL ACTIVATION LOCK — FRAME 2

   This block is intentionally last. It is scoped to the V142 root marker and
   therefore proves that the new PHP handler is active. It also outranks every
   historical Chill/Backing rule retained earlier in the full stylesheet.
   ========================================================= */

.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="1"],
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="1"]:hover,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="1"]:focus,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="1"]:focus-visible,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="1"]:active,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="1"].is-current,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="1"].is-neon-starting,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="1"].is-neon-engaged {
	left: 42.669296% !important;
	right: auto !important;
	top: 27.549687% !important;
	bottom: auto !important;
	width: 14.730970% !important;
	height: 34.446982% !important;
	aspect-ratio: 800 / 802 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="1"]::before,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="1"]::after {
	display: none !important;
	content: none !important;
	background: none !important;
	background-image: none !important;
	box-shadow: none !important;
	filter: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="1"] .ldg1__artwork-shell--graffiti-square {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	aspect-ratio: 800 / 802 !important;
	background: transparent !important;
	overflow: visible !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="1"] .ldg1__artwork-shell--graffiti-square .ldg1__artwork {
	position: relative !important;
	z-index: 3 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: contain !important;
	object-position: 50% 50% !important;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="1"] .ldg1__artwork-shell--graffiti-square .ldg1__inside-artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="1"] .ldg1__artwork-shell--graffiti-square .ldg1__video-slot {
	position: absolute !important;
	z-index: 1 !important;
	left: 17.5% !important;
	top: 16.458853% !important;
	width: 64.75% !important;
	height: 66.458853% !important;
	object-fit: cover !important;
	object-position: 50% 50% !important;
	overflow: hidden !important;
	background: #030303 !important;
	border: 0 !important;
	border-radius: 0 !important;
	transform: none !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="1"] .ldg1__artwork-shell--graffiti-square .ldg1__artwork-glass {
	z-index: 4 !important;
	inset: auto !important;
	left: 17.5% !important;
	top: 16.458853% !important;
	width: 64.75% !important;
	height: 66.458853% !important;
}


/* =========================================================
   V142 — FRAME 1 REPLACED WITH NEON-FRAME-FINAL-1.WEBP
   Exact 2048 × 878 grid lock from user-supplied green dots.
   Bottom-left ≈ X260.82 / Y544.10
   Bottom-right ≈ X545.62 / Y544.10
   ========================================================= */
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97],
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]:hover,
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]:focus,
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]:focus-visible,
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]:active {
	left: 12.735352% !important;
	top: 29.534624% !important;
	width: 13.906250% !important;
	height: 32.437358% !important;
}

.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]
.ldg1__artwork-shell--neon-dance,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="0"] .ldg1__artwork-shell--neon-dance {
	width: 100% !important;
	height: 100% !important;
	transform: none !important;
}

.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]
.ldg1__artwork-shell--neon-dance > .ldg1__artwork,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97] .ldg1__artwork-shell--neon-dance > .ldg1__artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="0"] .ldg1__artwork-shell--neon-dance .ldg1__artwork {
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	object-position: 50% 50% !important;
	transform: none !important;
}

.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]
.ldg1__artwork-shell--neon-dance > .ldg1__inside-artwork,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]
.ldg1__artwork-shell--neon-dance > .ldg1__video-slot,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="0"] .ldg1__artwork-shell--neon-dance .ldg1__inside-artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="0"] .ldg1__artwork-shell--neon-dance .ldg1__video-slot {
	left: 18.2% !important;
	top: 18.0% !important;
	width: 63.6% !important;
	height: 63.6% !important;
	object-fit: cover !important;
	object-position: 50% 50% !important;
	transform: scale(1.01) !important;
	transform-origin: 50% 50% !important;
}

.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="0"][data-ldg1-neon-square-coordinate-lock-v97]
.ldg1__artwork-shell--neon-dance > .ldg1__artwork-glass,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="0"] .ldg1__artwork-shell--neon-dance .ldg1__artwork-glass {
	left: 18.2% !important;
	top: 18.0% !important;
	width: 63.6% !important;
	height: 63.6% !important;
	border-radius: 2% !important;
}


/* =========================================================
   V142 — FRAME 3 REPLACED WITH LIQUID-GOLD-FINAL-1.WEBP
   Exact 2048 × 878 grid lock from user-supplied green-dot base corners.
   Bottom-left ≈ X1481.50 / Y543.80
   Bottom-right ≈ X1782.83 / Y543.80
   ========================================================= */
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-liquid-gold-coordinate-lock-v97],
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-liquid-gold-coordinate-lock-v97]:hover,
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-liquid-gold-coordinate-lock-v97]:focus,
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-liquid-gold-coordinate-lock-v97]:focus-visible,
.ldg1 .ldg1__track--desktop > .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-liquid-gold-coordinate-lock-v97]:active {
	position: absolute !important;
	left: 72.338867% !important;
	top: 27.324601% !important;
	width: 14.697266% !important;
	height: 34.658315% !important;
}

.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-liquid-gold-coordinate-lock-v97]
.ldg1__artwork-shell--liquid-gold,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="2"] .ldg1__artwork-shell--liquid-gold {
	position: relative !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
	transform: none !important;
}

.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-liquid-gold-coordinate-lock-v97]
.ldg1__artwork-shell--liquid-gold > .ldg1__artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="2"] .ldg1__artwork-shell--liquid-gold .ldg1__artwork {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	object-position: 50% 50% !important;
	transform: none !important;
}

.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-liquid-gold-coordinate-lock-v97]
.ldg1__artwork-shell--liquid-gold > .ldg1__inside-artwork,
.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-liquid-gold-coordinate-lock-v97]
.ldg1__artwork-shell--liquid-gold > .ldg1__video-slot,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="2"] .ldg1__artwork-shell--liquid-gold .ldg1__inside-artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="2"] .ldg1__artwork-shell--liquid-gold .ldg1__video-slot {
	position: absolute !important;
	left: 17.2% !important;
	top: 17.6% !important;
	width: 65.8% !important;
	height: 65.6% !important;
	overflow: hidden !important;
	border-radius: 10.2% !important;
	object-fit: cover !important;
	object-position: 50% 50% !important;
	transform: none !important;
}

.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-liquid-gold-coordinate-lock-v97]
.ldg1__video-canvas {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: 50% 50% !important;
}

.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-liquid-gold-coordinate-lock-v97]
.ldg1__artwork-shell--liquid-gold > .ldg1__artwork-glass,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="2"] .ldg1__artwork-shell--liquid-gold .ldg1__artwork-glass {
	left: 17.2% !important;
	top: 17.6% !important;
	width: 65.8% !important;
	height: 65.6% !important;
	border-radius: 10.2% !important;
}

.ldg1 .ldg1__room--one >
.ldg1__exhibit[data-index="2"][data-ldg1-liquid-gold-coordinate-lock-v97]
.ldg1__play-trigger {
	left: 50% !important;
	transform: translateX(-50%) !important;
}


/* =========================================================
   V142 — FRAME 4 ADDED TO SECOND ROOM (LIGHT CHANNEL FINAL)
   Exact 2048 × 878 room grid using the user-supplied green-dot base corners.
   Approx bottom-left ≈ X265.00 / Y542.84
   Approx bottom-right ≈ X555.00 / Y542.84
   ========================================================= */
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="3"][data-ldg1-light-channel-coordinate-lock-v97],
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="3"][data-ldg1-light-channel-coordinate-lock-v97]:hover,
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="3"][data-ldg1-light-channel-coordinate-lock-v97]:focus,
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="3"][data-ldg1-light-channel-coordinate-lock-v97]:focus-visible,
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="3"][data-ldg1-light-channel-coordinate-lock-v97]:active {
	position: absolute !important;
	left: 12.939453% !important;
	top: 28.815490% !important;
	width: 14.160156% !important;
	height: 33.029613% !important;
}

.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="3"][data-ldg1-light-channel-coordinate-lock-v97]
.ldg1__artwork-shell--light-channel,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="3"] .ldg1__artwork-shell--light-channel {
	position: relative !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
	transform: none !important;
}

.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="3"][data-ldg1-light-channel-coordinate-lock-v97]
.ldg1__artwork-shell--light-channel > .ldg1__artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="3"] .ldg1__artwork-shell--light-channel .ldg1__artwork {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	object-position: 50% 50% !important;
	transform: none !important;
}

.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="3"][data-ldg1-light-channel-coordinate-lock-v97]
.ldg1__artwork-shell--light-channel > .ldg1__inside-artwork,
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="3"][data-ldg1-light-channel-coordinate-lock-v97]
.ldg1__artwork-shell--light-channel > .ldg1__video-slot,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="3"] .ldg1__artwork-shell--light-channel .ldg1__inside-artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="3"] .ldg1__artwork-shell--light-channel .ldg1__video-slot {
	position: absolute !important;
	left: 14.8% !important;
	top: 15.6% !important;
	width: 70.4% !important;
	height: 70.8% !important;
	overflow: hidden !important;
	border-radius: 4.6% !important;
	object-fit: cover !important;
	object-position: 50% 50% !important;
	transform: none !important;
}

.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="3"][data-ldg1-light-channel-coordinate-lock-v97]
.ldg1__video-canvas {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: 50% 50% !important;
}

.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="3"][data-ldg1-light-channel-coordinate-lock-v97]
.ldg1__artwork-shell--light-channel > .ldg1__artwork-glass,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="3"] .ldg1__artwork-shell--light-channel .ldg1__artwork-glass {
	left: 14.8% !important;
	top: 15.6% !important;
	width: 70.4% !important;
	height: 70.8% !important;
	border-radius: 4.6% !important;
}

.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="3"][data-ldg1-light-channel-coordinate-lock-v97]
.ldg1__play-trigger {
	left: 50% !important;
	transform: translateX(-50%) !important;
}


/* =========================================================
   V142 — FRAME 5 ADDED TO SECOND ROOM (INDUSTRIAL MESH FINAL)
   Exact 2048 × 878 room grid using the user-supplied green-dot base corners.
   Approx bottom-left ≈ X871.00 / Y549.00
   Approx bottom-right ≈ X1180.00 / Y549.00
   ========================================================= */
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="4"][data-ldg1-industrial-mesh-coordinate-lock-v100],
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="4"][data-ldg1-industrial-mesh-coordinate-lock-v100]:hover,
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="4"][data-ldg1-industrial-mesh-coordinate-lock-v100]:focus,
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="4"][data-ldg1-industrial-mesh-coordinate-lock-v100]:focus-visible,
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="4"][data-ldg1-industrial-mesh-coordinate-lock-v100]:active {
	position: absolute !important;
	left: 42.529297% !important;
	top: 27.334852% !important;
	width: 15.087891% !important;
	height: 35.193622% !important;
}

.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="4"][data-ldg1-industrial-mesh-coordinate-lock-v100]
.ldg1__artwork-shell--industrial-mesh,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="4"] .ldg1__artwork-shell--industrial-mesh {
	position: relative !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
	transform: none !important;
}

.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="4"][data-ldg1-industrial-mesh-coordinate-lock-v100]
.ldg1__artwork-shell--industrial-mesh > .ldg1__artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="4"] .ldg1__artwork-shell--industrial-mesh .ldg1__artwork {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	object-position: 50% 50% !important;
	transform: none !important;
}

.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="4"][data-ldg1-industrial-mesh-coordinate-lock-v100]
.ldg1__artwork-shell--industrial-mesh > .ldg1__inside-artwork,
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="4"][data-ldg1-industrial-mesh-coordinate-lock-v100]
.ldg1__artwork-shell--industrial-mesh > .ldg1__video-slot,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="4"] .ldg1__artwork-shell--industrial-mesh .ldg1__inside-artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="4"] .ldg1__artwork-shell--industrial-mesh .ldg1__video-slot {
	position: absolute !important;
	left: 14.3% !important;
	top: 13.1% !important;
	width: 71.2% !important;
	height: 71.6% !important;
	overflow: hidden !important;
	border-radius: 2.8% !important;
	object-fit: cover !important;
	object-position: 50% 50% !important;
	transform: none !important;
}

.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="4"][data-ldg1-industrial-mesh-coordinate-lock-v100]
.ldg1__video-canvas {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: 50% 50% !important;
}

.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="4"][data-ldg1-industrial-mesh-coordinate-lock-v100]
.ldg1__artwork-shell--industrial-mesh > .ldg1__artwork-glass,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="4"] .ldg1__artwork-shell--industrial-mesh .ldg1__artwork-glass {
	left: 14.3% !important;
	top: 13.1% !important;
	width: 71.2% !important;
	height: 71.6% !important;
	border-radius: 2.8% !important;
}

.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="4"][data-ldg1-industrial-mesh-coordinate-lock-v100]
.ldg1__play-trigger {
	left: 50% !important;
	transform: translateX(-50%) !important;
}


/* =========================================================
   V142 — FRAME 6 ADDED TO SECOND ROOM (ANGLES FINAL / GRITTY)
   Exact 2048 × 878 room grid using the user-supplied green-dot base corners.
   Bottom-left ≈ X1482.95 / Y543.84
   Bottom-right ≈ X1784.09 / Y543.84
   ========================================================= */
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="5"][data-ldg1-angles-coordinate-lock-v100],
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="5"][data-ldg1-angles-coordinate-lock-v100]:hover,
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="5"][data-ldg1-angles-coordinate-lock-v100]:focus,
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="5"][data-ldg1-angles-coordinate-lock-v100]:focus-visible,
.ldg1 .ldg1__room--two >
.ldg1__exhibit[data-index="5"][data-ldg1-angles-coordinate-lock-v100]:active {
	position: absolute !important;
	left: 72.409890% !important;
	top: 27.643318% !important;
	width: 14.703924% !important;
	height: 34.297991% !important;
}
.ldg1 .ldg1__room--two > .ldg1__exhibit[data-index="5"][data-ldg1-angles-coordinate-lock-v100] .ldg1__artwork-shell--angles,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="5"] .ldg1__artwork-shell--angles {
	position: relative !important; width: 100% !important; height: 100% !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; transform: none !important;
}
.ldg1 .ldg1__room--two > .ldg1__exhibit[data-index="5"][data-ldg1-angles-coordinate-lock-v100] .ldg1__artwork-shell--angles > .ldg1__artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="5"] .ldg1__artwork-shell--angles .ldg1__artwork {
	position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; object-fit: contain !important; object-position: 50% 50% !important; transform: none !important;
}
.ldg1 .ldg1__room--two > .ldg1__exhibit[data-index="5"][data-ldg1-angles-coordinate-lock-v100] .ldg1__artwork-shell--angles > .ldg1__inside-artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="5"] .ldg1__artwork-shell--angles .ldg1__inside-artwork {
	position: absolute !important; left: 19.5% !important; top: 15.8% !important; width: 61.0% !important; height: 64.6% !important; overflow: hidden !important; border-radius: 1.8% !important; object-fit: cover !important; object-position: 50% 50% !important; transform: none !important;
}
.ldg1 .ldg1__room--two > .ldg1__exhibit[data-index="5"][data-ldg1-angles-coordinate-lock-v100] .ldg1__artwork-shell--angles > .ldg1__artwork-glass,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="5"] .ldg1__artwork-shell--angles .ldg1__artwork-glass {
	left: 19.5% !important; top: 15.8% !important; width: 61.0% !important; height: 64.6% !important; border-radius: 1.8% !important;
}
.ldg1 .ldg1__room--two > .ldg1__exhibit[data-index="5"][data-ldg1-angles-coordinate-lock-v100] .ldg1__play-trigger { left: 50% !important; transform: translateX(-50%) !important; }


/* =========================================================
   V142 — THIRD BACKGROUND ROOM + SECOND SEAM HARDENING
   ========================================================= */
.ldg1[data-ldg1-build="V142"] .ldg1__room--three {
	background-image: var(--ldg1-background-image) !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
	background-size: calc(100% + 2px) 100% !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__room--two,
.ldg1[data-ldg1-build="V142"] .ldg1__room--three {
	margin-left: calc(-1 * var(--ldg1-seam-blend)) !important;
	-webkit-mask-image: linear-gradient(
		90deg,
		transparent 0,
		rgba(0, 0, 0, .18) 18px,
		rgba(0, 0, 0, .72) calc(var(--ldg1-seam-blend) * .68),
		#000 var(--ldg1-seam-blend),
		#000 100%
	) !important;
	mask-image: linear-gradient(
		90deg,
		transparent 0,
		rgba(0, 0, 0, .18) 18px,
		rgba(0, 0, 0, .72) calc(var(--ldg1-seam-blend) * .68),
		#000 var(--ldg1-seam-blend),
		#000 100%
	) !important;
	-webkit-mask-repeat: no-repeat !important;
	mask-repeat: no-repeat !important;
}




/* =========================================================
   V142 — FRAME 7 ADDED TO THIRD ROOM (CRYSTAL FINAL / LATELY ORIGINAL)
   Exact 2048 × 878 room grid using the user-supplied green-dot base corners.
   Bottom-left ≈ X264.00 / Y543.00
   Bottom-right ≈ X577.00 / Y543.00
   ========================================================= */
.ldg1 .ldg1__room--three >
.ldg1__exhibit[data-index="6"][data-ldg1-crystal-coordinate-lock-v101],
.ldg1 .ldg1__room--three >
.ldg1__exhibit[data-index="6"][data-ldg1-crystal-coordinate-lock-v101]:hover,
.ldg1 .ldg1__room--three >
.ldg1__exhibit[data-index="6"][data-ldg1-crystal-coordinate-lock-v101]:focus,
.ldg1 .ldg1__room--three >
.ldg1__exhibit[data-index="6"][data-ldg1-crystal-coordinate-lock-v101]:focus-visible,
.ldg1 .ldg1__room--three >
.ldg1__exhibit[data-index="6"][data-ldg1-crystal-coordinate-lock-v101]:active {
	position: absolute !important;
	left: 12.890625% !important;
	top: 27.334852% !important;
	width: 15.283203% !important;
	height: 34.851936% !important;
}
.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="6"][data-ldg1-crystal-coordinate-lock-v101] .ldg1__artwork-shell--crystal,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="6"] .ldg1__artwork-shell--crystal {
	position: relative !important; width: 100% !important; height: 100% !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; transform: none !important;
}
.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="6"][data-ldg1-crystal-coordinate-lock-v101] .ldg1__artwork-shell--crystal > .ldg1__artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="6"] .ldg1__artwork-shell--crystal .ldg1__artwork {
	position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; object-fit: contain !important; object-position: 50% 50% !important; transform: none !important;
}
.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="6"][data-ldg1-crystal-coordinate-lock-v101] .ldg1__artwork-shell--crystal > .ldg1__inside-artwork,
.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="6"][data-ldg1-crystal-coordinate-lock-v101] .ldg1__artwork-shell--crystal > .ldg1__video-slot,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="6"] .ldg1__artwork-shell--crystal .ldg1__inside-artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="6"] .ldg1__artwork-shell--crystal .ldg1__video-slot {
	position: absolute !important; left: 24.8% !important; top: 16.2% !important; width: 50.8% !important; height: 61.0% !important; overflow: hidden !important; border-radius: 1.8% !important; object-fit: cover !important; object-position: 50% 50% !important; transform: none !important;
}
.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="6"][data-ldg1-crystal-coordinate-lock-v101] .ldg1__video-canvas {
	position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: 50% 50% !important;
}
.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="6"][data-ldg1-crystal-coordinate-lock-v101] .ldg1__artwork-shell--crystal > .ldg1__artwork-glass,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="6"] .ldg1__artwork-shell--crystal .ldg1__artwork-glass {
	left: 24.8% !important; top: 16.2% !important; width: 50.8% !important; height: 61.0% !important; border-radius: 1.8% !important;
}
.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="6"][data-ldg1-crystal-coordinate-lock-v101] .ldg1__play-trigger { left: 50% !important; transform: translateX(-50%) !important; }


/* =========================================================
   V142 — FRAME 8 ADDED TO THIRD ROOM (PINK DRIP FINAL / BACK 2 BACK)
   Exact 2048 × 878 room grid using the user-supplied green-dot base corners.
   Bottom-left ≈ X865.00 / Y543.00
   Bottom-right ≈ X1181.00 / Y543.00
   ========================================================= */
.ldg1 .ldg1__room--three >
.ldg1__exhibit[data-index="7"][data-ldg1-pink-drip-coordinate-lock-v104],
.ldg1 .ldg1__room--three >
.ldg1__exhibit[data-index="7"][data-ldg1-pink-drip-coordinate-lock-v104]:hover,
.ldg1 .ldg1__room--three >
.ldg1__exhibit[data-index="7"][data-ldg1-pink-drip-coordinate-lock-v104]:focus,
.ldg1 .ldg1__room--three >
.ldg1__exhibit[data-index="7"][data-ldg1-pink-drip-coordinate-lock-v104]:focus-visible,
.ldg1 .ldg1__room--three >
.ldg1__exhibit[data-index="7"][data-ldg1-pink-drip-coordinate-lock-v104]:active {
	position: absolute !important;
	left: 42.236328% !important;
	top: 27.106309% !important;
	width: 15.429688% !important;
	height: 34.851936% !important;
}
.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="7"][data-ldg1-pink-drip-coordinate-lock-v104] .ldg1__artwork-shell--pink-drip,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="7"] .ldg1__artwork-shell--pink-drip {
	position: relative !important; width: 100% !important; height: 100% !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; transform: none !important;
}
.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="7"][data-ldg1-pink-drip-coordinate-lock-v104] .ldg1__artwork-shell--pink-drip > .ldg1__artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="7"] .ldg1__artwork-shell--pink-drip .ldg1__artwork {
	position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; object-fit: contain !important; object-position: 50% 50% !important; transform: none !important;
}
.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="7"][data-ldg1-pink-drip-coordinate-lock-v104] .ldg1__artwork-shell--pink-drip > .ldg1__inside-artwork,
.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="7"][data-ldg1-pink-drip-coordinate-lock-v104] .ldg1__artwork-shell--pink-drip > .ldg1__video-slot,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="7"] .ldg1__artwork-shell--pink-drip .ldg1__inside-artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="7"] .ldg1__artwork-shell--pink-drip .ldg1__video-slot {
	position: absolute !important; left: 19.2% !important; top: 15.6% !important; width: 61.6% !important; height: 63.6% !important; overflow: hidden !important; border-radius: 1.6% !important; object-fit: cover !important; object-position: 50% 50% !important; transform: none !important;
}
.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="7"][data-ldg1-pink-drip-coordinate-lock-v104] .ldg1__video-canvas {
	position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: 50% 50% !important;
}
.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="7"][data-ldg1-pink-drip-coordinate-lock-v104] .ldg1__artwork-shell--pink-drip > .ldg1__artwork-glass,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="7"] .ldg1__artwork-shell--pink-drip .ldg1__artwork-glass {
	left: 19.2% !important; top: 15.6% !important; width: 61.6% !important; height: 63.6% !important; border-radius: 1.6% !important;
}
.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="7"][data-ldg1-pink-drip-coordinate-lock-v104] .ldg1__play-trigger { left: 50% !important; transform: translateX(-50%) !important; }

/* =========================================================
   V142 — TOP PLAYER ALBUM ART: HARD PER-EXHIBIT SYNC
   The wrapper background is the visible source of truth. The image node
   remains as an accessibility/fallback asset but cannot visually retain
   an earlier track after WordPress/lazy-load scripts intervene.
   ========================================================= */
.ldg1[data-ldg1-build="V142"] .ld-audio-album-card__art {
	background-position: 50% 50% !important;
	background-repeat: no-repeat !important;
	background-size: cover !important;
	background-color: #070707 !important;
}

.ldg1[data-ldg1-build="V142"] .ld-audio-album-card__art > img[data-ld-album-image] {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}


/* =========================================================
   V142 - SECOND BACKGROUND BENCH HOLOGRAM CHARACTER
   Adds the seated hologram figure between Frames 4 and 5 on room two.
   Position grounded from the user-supplied grid image:
   left green dot ~= X525 / Y1211
   right green dot ~= X1156 / Y1211
   source image size 1498 x 1536.
   ========================================================= */
.ldg1__hologram-character {
	position: absolute;
	z-index: 26;
	left: 39.062500%;
	bottom: 19.401709%;
	width: 19.531250%;
	height: 39.250000%;
	opacity: 1 !important;
	visibility: visible !important;
	display: block;
	margin: 0;
	padding: 0;
	overflow: visible;
	pointer-events: none;
	user-select: none;
	isolation: isolate;
	transform: translate3d(calc(-50% + var(--ldg1-hologram-shift, 0px)), 0, 0) !important;
	transform-origin: 50% 100%;
	filter: none;
	transition: filter 1650ms cubic-bezier(.20,.62,.24,1);
	will-change: transform;
}

.ldg1 .ldg1__room--two > .ldg1__hologram-character[data-ldg1-hologram-coordinate-lock-v107] {
	left: 56.074766% !important;
	bottom: 18.684896% !important;
	width: 42.122830% !important;
	height: 48.111979% !important;
}

.ldg1__hologram-figure {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.ldg1__hologram-figure::before {
	position: absolute;
	z-index: 1;
	inset: 4% -8% 2%;
	content: "";
	background:
		radial-gradient(ellipse at 50% 38%, rgba(92, 182, 255, .18) 0%, rgba(66, 148, 255, .10) 34%, rgba(66, 148, 255, 0) 70%),
		radial-gradient(ellipse at 50% 62%, rgba(255, 190, 129, .18) 0%, rgba(255, 154, 47, .10) 38%, rgba(255, 154, 47, 0) 72%);
	filter: blur(16px);
	mix-blend-mode: screen;
	opacity: .9;
	pointer-events: none;
}

.ldg1__hologram-character-img {
	position: absolute;
	z-index: 2;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	object-fit: contain;
	object-position: 50% 100%;
	filter:
		brightness(.98)
		contrast(1.02)
		drop-shadow(0 10px 16px rgba(0, 0, 0, .36))
		drop-shadow(0 0 14px rgba(95, 170, 255, .14));
	backface-visibility: visible !important;
	-webkit-backface-visibility: visible !important;
	image-rendering: auto;
	pointer-events: none;
	-webkit-user-drag: none;
}

.ldg1__hologram-contact-shadow {
	position: absolute;
	z-index: 1;
	left: 50%;
	bottom: 1.8%;
	display: block;
	width: 52%;
	height: 6.4%;
	background: radial-gradient(ellipse at center, rgba(0,0,0,.70) 0%, rgba(0,0,0,.34) 48%, transparent 78%);
	filter: blur(4px);
	transform: translateX(-50%);
	pointer-events: none;
}

.ldg1.is-walking-to-artwork .ldg1__hologram-character,
.ldg1.is-artwork-focused .ldg1__hologram-character {
	filter: blur(4.2px) brightness(.86) saturate(.93);
}

.ldg1.is-returning-from-artwork .ldg1__hologram-character {
	filter: none;
}

@media (max-width: 991px) {
	.ldg1__hologram-character,
	.ldg1 .ldg1__room--two > .ldg1__hologram-character[data-ldg1-hologram-coordinate-lock-v107] {
		left: 39.1% !important;
		bottom: 18.9% !important;
		width: 20.2% !important;
		height: 39.8% !important;
	}
}

@media (max-width: 767px) {
	.ldg1__hologram-character,
	.ldg1 .ldg1__room--two > .ldg1__hologram-character[data-ldg1-hologram-coordinate-lock-v107] {
		left: 39.1% !important;
		bottom: 18.6% !important;
		width: 22.0% !important;
		height: 41.2% !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ldg1__hologram-character {
		transition-duration: 1ms !important;
	}
}


/* =========================================================
   V142 HOTFIX — FORCE SECOND-BACKGROUND HOLOGRAM VISIBILITY
   V105 could fail to appear live if an older shortcode function namespace
   was still active. This rule block also hard-locks the position/size.
   ========================================================= */
.ldg1__room--two .ldg1__hologram-character[data-ldg1-hologram-coordinate-lock-v107] {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	z-index: 26 !important;
	left: 39.062500% !important;
	bottom: 19.401709% !important;
	width: 19.531250% !important;
	height: 39.250000% !important;
}

.ldg1__room--two .ldg1__hologram-character[data-ldg1-hologram-coordinate-lock-v107] .ldg1__hologram-character-img {
	opacity: 1 !important;
	visibility: visible !important;
}


/* =========================================================
   V142 FINAL HOLOGRAM LOCK
   The prior package configured the asset but failed to assign its URL to
   $hologram_character_url, so the PHP conditional never rendered the markup.
   This final lock centres the seated figure at approximately X800 on the
   2048-wide second-room coordinate system, between Frames 4 and 5.
   ========================================================= */
.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
.ldg1__hologram-character[data-ldg1-hologram-coordinate-lock-v107] {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	z-index: 26 !important;
	left: 39.062500% !important;
	bottom: 19.401709% !important;
	width: 19.531250% !important;
	height: 39.250000% !important;
	transform: translate3d(calc(-50% + var(--ldg1-hologram-shift, 0px)), 0, 0) !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
.ldg1__hologram-character[data-ldg1-hologram-coordinate-lock-v107]
.ldg1__hologram-character-img {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	object-position: 50% 100% !important;
}

/* =========================================================
   V108 — TV HEAD FLOOR REFLECTION RESTORE

   The TV Head figure on Room Two was visible, but its floor reflection was
   effectively collapsing away. Under the V73 coordinate-lock rules the
   character wrapper used width + auto height, while the reflection wrapper
   still relied on percentage height. Because that percentage height was not
   guaranteed to resolve from a definite containing-block height, the
   reflection box could collapse and disappear.

   Fix:
   - give the coordinate-locked TV Head wrapper a definite aspect ratio that
     matches the source figure (367 × 900)
   - keep the reflection directly under the feet
   - slightly strengthen visibility so it reads clearly on the polished floor
   - do not alter the character's placed X/Y coordinates or screen mapping
   ========================================================= */

.ldg1 .ldg1__room--two >
.ldg1__tv-head-character[data-ldg1-tv-head-coordinate-lock-v73] {
	aspect-ratio: 367 / 900 !important;
	height: auto !important;
	overflow: visible !important;
}

.ldg1 .ldg1__room--two >
.ldg1__tv-head-character[data-ldg1-tv-head-coordinate-lock-v73]
.ldg1__tv-head-reflection {
	left: -4% !important;
	top: calc(100% - 2px) !important;
	width: 108% !important;
	height: 39% !important;
	display: block !important;
	overflow: hidden !important;
	opacity: .82 !important;
	transform: perspective(560px) rotateX(3deg) scaleX(.95) !important;
	transform-origin: 50% 0 !important;
	-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .98) 0%, rgba(0, 0, 0, .78) 34%, rgba(0, 0, 0, .40) 72%, transparent 100%) !important;
	mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .98) 0%, rgba(0, 0, 0, .78) 34%, rgba(0, 0, 0, .40) 72%, transparent 100%) !important;
}

.ldg1 .ldg1__room--two >
.ldg1__tv-head-character[data-ldg1-tv-head-coordinate-lock-v73]
.ldg1__tv-head-reflection-figure {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	filter:
		brightness(.58)
		contrast(1.10)
		saturate(.74)
		sepia(.18)
		blur(.55px)
		drop-shadow(0 0 5px rgba(255, 160, 37, .16)) !important;
}

.ldg1 .ldg1__room--two >
.ldg1__tv-head-character[data-ldg1-tv-head-coordinate-lock-v73]
.ldg1__tv-head-reflection-img {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	object-position: 50% 0 !important;
	opacity: .92 !important;
	transform: scaleY(-1) !important;
	transform-origin: 50% 50% !important;
}

.ldg1 .ldg1__room--two >
.ldg1__tv-head-character[data-ldg1-tv-head-coordinate-lock-v73]
.ldg1__tv-head-screen--reflection {
	opacity: .74 !important;
}

@media (max-width: 991px) {
	.ldg1 .ldg1__room--two >
	.ldg1__tv-head-character[data-ldg1-tv-head-coordinate-lock-v73]
	.ldg1__tv-head-reflection {
		height: 38% !important;
		opacity: .80 !important;
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	.ldg1 .ldg1__room--two >
	.ldg1__tv-head-character[data-ldg1-tv-head-coordinate-lock-v73]
	.ldg1__tv-head-reflection {
		height: 37% !important;
		opacity: .78 !important;
	}
}


/* =========================================================
   V142 — FRAME 9 CHROMA CORE + 16+ ADVISORY GATE
   - Adds the final third-room frame (index 8 / Frame 9)
   - Adds a floating parental-advisory panel with YES / NO actions
   - Keeps styling aligned with the Lord Dancer gallery gold / black look
   ========================================================= */

.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="8"][data-ldg1-chroma-core-coordinate-lock-v142] .ldg1__artwork-shell--chroma-core,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="8"] .ldg1__artwork-shell--chroma-core {
	isolation: isolate;
}

.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="8"][data-ldg1-chroma-core-coordinate-lock-v142] .ldg1__artwork-shell--chroma-core > .ldg1__artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="8"] .ldg1__artwork-shell--chroma-core .ldg1__artwork {
	position: relative;
	z-index: 2;
}

.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="8"][data-ldg1-chroma-core-coordinate-lock-v142] .ldg1__artwork-shell--chroma-core > .ldg1__inside-artwork,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="8"] .ldg1__artwork-shell--chroma-core .ldg1__inside-artwork {
	position: absolute;
	left: 16.1%;
	top: 16.15%;
	width: 67.9%;
	height: 67.6%;
	border-radius: 3.4%;
	object-fit: cover;
	z-index: 1;
}

.ldg1 .ldg1__room--three > .ldg1__exhibit[data-index="8"][data-ldg1-chroma-core-coordinate-lock-v142] .ldg1__artwork-shell--chroma-core > .ldg1__artwork-glass,
.ldg1[data-ldg1-build="V142"] .ldg1__room .ldg1__exhibit[data-index="8"] .ldg1__artwork-shell--chroma-core .ldg1__artwork-glass {
	z-index: 4;
}

.ldg1__age-gate {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 76%;
	max-width: 24rem;
	transform: translate(-50%, -50%);
	z-index: 5;
	pointer-events: auto;
	opacity: 1;
	visibility: visible;
	transition: opacity .28s ease, visibility .28s ease, transform .28s ease;
}

.ldg1__age-gate-float {
	position: absolute;
	inset: -6% -4%;
	border-radius: 1.3rem;
	background: radial-gradient(circle at 50% 50%, rgba(255, 208, 92, .20), rgba(255, 208, 92, .06) 48%, transparent 74%);
	filter: blur(8px);
	animation: ldg1AgeGateGlow 4.4s ease-in-out infinite;
}

.ldg1__age-gate-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .7rem;
	padding: .8rem .85rem .95rem;
	border-radius: 1.25rem;
	border: 1px solid rgba(247, 212, 124, .78);
	background:
		linear-gradient(180deg, rgba(22, 18, 14, .88), rgba(8, 8, 10, .92)),
		radial-gradient(circle at 50% 0%, rgba(255, 226, 136, .16), transparent 62%);
	box-shadow:
		0 .55rem 1.8rem rgba(0, 0, 0, .34),
		0 0 0 .12rem rgba(255, 213, 117, .28),
		0 0 1.6rem rgba(243, 179, 66, .24);
	backdrop-filter: blur(5px);
	animation: ldg1AgeGateFloat 4.8s ease-in-out infinite;
}

.ldg1__age-gate-title {
	display: block;
	font-size: clamp(.92rem, 1.1vw, 1.16rem);
	font-weight: 800;
	letter-spacing: .16em;
	line-height: 1.1;
	color: #f7e0a2;
	text-align: center;
	text-shadow: 0 0 .85rem rgba(255, 220, 130, .28);
}

.ldg1__age-gate-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	width: 100%;
}

.ldg1__age-gate-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 4.8rem;
	padding: .52rem .95rem;
	border-radius: 999px;
	border: 1px solid rgba(255, 214, 124, .84);
	background: linear-gradient(180deg, rgba(38, 34, 28, .96), rgba(12, 11, 14, .96));
	color: #f8e6b0;
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .14em;
	line-height: 1;
	box-shadow: 0 0 0 .08rem rgba(255, 215, 128, .20), 0 .35rem 1.05rem rgba(0, 0, 0, .28);
	cursor: pointer;
	user-select: none;
	transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}

.ldg1__age-gate-action:hover,
.ldg1__age-gate-action:focus-visible {
	transform: translateY(-1px) scale(1.02);
	box-shadow: 0 0 0 .11rem rgba(255, 221, 139, .26), 0 .4rem 1.15rem rgba(245, 181, 72, .20);
	outline: none;
}

.ldg1__age-gate-action--yes:hover,
.ldg1__age-gate-action--yes:focus-visible {
	background: linear-gradient(180deg, rgba(109, 91, 31, .96), rgba(32, 24, 10, .96));
}

.ldg1__age-gate-action--no:hover,
.ldg1__age-gate-action--no:focus-visible {
	background: linear-gradient(180deg, rgba(56, 28, 32, .96), rgba(21, 10, 12, .96));
}

.ldg1__age-gate-image {
	display: block;
	width: 100%;
	height: auto;
	max-width: 11.5rem;
	border-radius: .8rem;
	border: 1px solid rgba(255, 215, 130, .34);
	box-shadow: 0 .45rem 1.2rem rgba(0, 0, 0, .34);
}

.ldg1__exhibit.is-age-gate-accepted .ldg1__age-gate {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translate(-50%, -48%) scale(.96);
}

.ldg1__exhibit.is-age-gate-visible .ldg1__age-gate-card {
	box-shadow:
		0 .55rem 1.8rem rgba(0, 0, 0, .34),
		0 0 0 .12rem rgba(255, 213, 117, .30),
		0 0 2rem rgba(243, 179, 66, .28);
}

@keyframes ldg1AgeGateFloat {
	0%, 100% { transform: translateY(0px); }
	50% { transform: translateY(-7px); }
}

@keyframes ldg1AgeGateGlow {
	0%, 100% { opacity: .55; transform: scale(1); }
	50% { opacity: .92; transform: scale(1.03); }
}

@media (max-width: 991px) {
	.ldg1__age-gate {
		width: 82%;
	}

	.ldg1__age-gate-card {
		padding: .75rem .72rem .86rem;
		gap: .62rem;
	}

	.ldg1__age-gate-image {
		max-width: 10.4rem;
	}
}

@media (max-width: 767px) {
	.ldg1__age-gate {
		width: 80%;
	}

	.ldg1__age-gate-title {
		font-size: .9rem;
		letter-spacing: .13em;
	}

	.ldg1__age-gate-action {
		min-width: 4.2rem;
		padding: .5rem .82rem;
		font-size: .76rem;
	}

	.ldg1__age-gate-image {
		max-width: 9.6rem;
	}
}


/* =========================================================
   V142 — FRAME 9 HARD ACTIVATION FIX

   V109 correctly added the Chroma Core assets and age gate, but retained the
   earlier "reserved Frame 9" CSS block. That legacy block set index 8 to
   pointer-events:none and hid its artwork shell/caption with opacity:0 and
   visibility:hidden. The bare wall and control plaque therefore remained.

   These final rules explicitly activate the completed ninth exhibit.
   ========================================================= */
.ldg1[data-ldg1-build="V142"] [data-ldg1-exhibit][data-index="8"],
.ldg1[data-ldg1-build="V142"] [data-ldg1-exhibit][data-index="8"]:hover,
.ldg1[data-ldg1-build="V142"] [data-ldg1-exhibit][data-index="8"]:focus,
.ldg1[data-ldg1-build="V142"] [data-ldg1-exhibit][data-index="8"]:active {
	display: block !important;
	cursor: pointer !important;
	pointer-events: auto !important;
	opacity: 1 !important;
	visibility: visible !important;
}

.ldg1[data-ldg1-build="V142"] [data-ldg1-exhibit][data-index="8"] .ldg1__artwork-shell,
.ldg1[data-ldg1-build="V142"] [data-ldg1-exhibit][data-index="8"] .ldg1__caption,
.ldg1[data-ldg1-build="V142"] [data-ldg1-exhibit][data-index="8"] .ldg1__artwork,
.ldg1[data-ldg1-build="V142"] [data-ldg1-exhibit][data-index="8"] .ldg1__inside-artwork,
.ldg1[data-ldg1-build="V142"] [data-ldg1-exhibit][data-index="8"] .ldg1__age-gate {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
}

.ldg1[data-ldg1-build="V142"] [data-ldg1-exhibit][data-index="8"].is-age-gate-accepted .ldg1__age-gate {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* =========================================================
   V142 — FRAME 9 CAPTION REMOVAL + HOLOGRAM ALIGNMENT REFINE

   1) Removes the rounded title pill/caption under the last frame (Frame 9)
      so the final exhibit only shows the gallery frame and control plaque.
   2) Refines the seated hologram character placement on room two so it sits
      more accurately on the bench and centres better between Frames 4 and 5,
      matching the latest user-supplied grid references.
   ========================================================= */
.ldg1[data-ldg1-build="V142"] [data-ldg1-exhibit][data-index="8"] .ldg1__caption {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
.ldg1__hologram-character[data-ldg1-hologram-coordinate-lock-v107] {
	left: 37.109375% !important;
	bottom: 19.205000% !important;
	width: 18.359375% !important;
	height: 38.350000% !important;
	transform: translate3d(calc(-50% + var(--ldg1-hologram-shift, 0px)), 0, 0) !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
.ldg1__hologram-character[data-ldg1-hologram-coordinate-lock-v107] .ldg1__hologram-character-img {
	object-position: 50% 100% !important;
}

@media (max-width: 991px) {
	.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
	.ldg1__hologram-character[data-ldg1-hologram-coordinate-lock-v107] {
		left: 37.0% !important;
		bottom: 19.0% !important;
		width: 18.7% !important;
		height: 38.6% !important;
	}
}

@media (max-width: 767px) {
	.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
	.ldg1__hologram-character[data-ldg1-hologram-coordinate-lock-v107] {
		left: 36.9% !important;
		bottom: 18.85% !important;
		width: 19.5% !important;
		height: 39.0% !important;
	}
}

/* =========================================================
   V142 — FRAME 9 AGE GATE: FULL-ZOOM ONLY

   The age gate must not be visible while the visitor is horizontally
   scrolling through the gallery or while the camera is walking towards the
   final frame. It is revealed only after the camera reaches the fully focused
   artwork state.
   ========================================================= */

/* Hidden during normal gallery scrolling, approach and camera return. */
.ldg1[data-ldg1-build="V142"] [data-ldg1-exhibit][data-index="8"] .ldg1__age-gate,
.ldg1[data-ldg1-build="V142"].is-walking-to-artwork [data-ldg1-exhibit][data-index="8"] .ldg1__age-gate,
.ldg1[data-ldg1-build="V142"].is-returning-from-artwork [data-ldg1-exhibit][data-index="8"] .ldg1__age-gate {
	display: block !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
	transform: translate(-50%, -47%) scale(.94) !important;
}

/* Revealed only once the last frame is fully zoomed/focused. */
.ldg1[data-ldg1-build="V142"].is-artwork-focused
[data-ldg1-exhibit][data-index="8"].is-age-gate-visible:not(.is-age-gate-accepted)
.ldg1__age-gate {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	transform: translate(-50%, -50%) scale(1) !important;
}

/* Once YES is selected, the gate remains hidden while the track plays. */
.ldg1[data-ldg1-build="V142"].is-artwork-focused
[data-ldg1-exhibit][data-index="8"].is-age-gate-accepted
.ldg1__age-gate {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}


/* =========================================================
   V142 STABLE RECOVERY — NON-FRAGILE PERFORMANCE SAFEGUARDS
   ========================================================= */

/* LiteSpeed/QUIC.cloud placeholders must never be shown inside the immersive
   gallery. The mandatory URI exclusion in V142-INSTALLATION prevents them from
   being generated; these selectors are a final visual safety net for stale
   cached HTML. The normal gallery wall remains visible underneath. */
.ldg1-no-lqip-zone img[data-lazyloaded]:not(.litespeed-loaded),
.ldg1-no-lqip-zone img[src^="data:image/svg+xml"],
.ldg1-no-lqip-zone img[src^="data:image/gif"] {
	opacity: 0 !important;
	visibility: hidden !important;
}

/* Once LiteSpeed has supplied the real file, restore the exact V112 image
   styling without a blur-up transition. */
.ldg1-no-lqip-zone img.litespeed-loaded,
.ldg1-no-lqip-zone img:not([data-lazyloaded]) {
	visibility: visible;
}

/* Pause continuous decorative work when the page is not visible. This cannot
   hide or defer any artwork and therefore fails open in every browser. */
.ldg1.is-v142-page-hidden *,
.ldg1.is-v142-page-hidden *::before,
.ldg1.is-v142-page-hidden *::after {
	animation-play-state: paused !important;
}

/* V113–V115 readiness/fallback artefacts can never appear if stale cached CSS
   survives during installation. */
.ldg1__room-readiness-cover,
.ldg1__immersive-loader,
.ldg1__asset-fallback,
.ldg1__play-control-fallback {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* =========================================================
   V142 FINAL LOCK — FRAME 9 COMPACT ACTIVE ADVISORY PANEL

   Requested visual correction:
   - keeps the existing Frame 9 full-focus-only age-gate behaviour;
   - reduces the active gate to approximately half its former visual footprint;
   - keeps the complete Parental Advisory artwork visible;
   - removes the rounded clipping that cut the advisory image corners;
   - preserves the existing YES / NO interaction and session approval logic.
   ========================================================= */

.ldg1[data-ldg1-build="V142"].is-artwork-focused
[data-ldg1-exhibit][data-index="8"].is-age-gate-visible:not(.is-age-gate-accepted)
.ldg1__age-gate[data-ldg1-age-gate-compact-v142="true"] {
	left: 50% !important;
	top: 50% !important;
	width: 50% !important;
	max-width: 15rem !important;
	transform: translate(-50%, -50%) scale(1) !important;
}

.ldg1[data-ldg1-build="V142"]
[data-ldg1-exhibit][data-index="8"]
.ldg1__age-gate[data-ldg1-age-gate-compact-v142="true"] .ldg1__age-gate-float {
	inset: -5% -4% !important;
	border-radius: 1rem !important;
	filter: blur(6px) !important;
	opacity: .72;
}

.ldg1[data-ldg1-build="V142"]
[data-ldg1-exhibit][data-index="8"]
.ldg1__age-gate[data-ldg1-age-gate-compact-v142="true"] .ldg1__age-gate-card {
	box-sizing: border-box !important;
	width: 100% !important;
	gap: .5rem !important;
	padding: .62rem .66rem .72rem !important;
	border: 1px solid rgba(247, 212, 124, .88) !important;
	border-radius: .92rem !important;
	overflow: visible !important;
	background:
		linear-gradient(180deg, rgba(21, 18, 14, .95), rgba(7, 7, 9, .97)),
		radial-gradient(circle at 50% 0%, rgba(255, 226, 136, .14), transparent 64%) !important;
	box-shadow:
		0 .42rem 1.35rem rgba(0, 0, 0, .42),
		0 0 0 .09rem rgba(255, 213, 117, .25),
		0 0 1.15rem rgba(243, 179, 66, .20) !important;
	backdrop-filter: blur(4px) !important;
	-webkit-backdrop-filter: blur(4px) !important;
	animation: ldg1V142AgeGateFloat 5.2s ease-in-out infinite !important;
}

.ldg1[data-ldg1-build="V142"]
[data-ldg1-exhibit][data-index="8"]
.ldg1__age-gate[data-ldg1-age-gate-compact-v142="true"] .ldg1__age-gate-title {
	font-size: clamp(.72rem, .86vw, .94rem) !important;
	font-weight: 800 !important;
	letter-spacing: .145em !important;
	line-height: 1.08 !important;
	white-space: nowrap !important;
}

.ldg1[data-ldg1-build="V142"]
[data-ldg1-exhibit][data-index="8"]
.ldg1__age-gate[data-ldg1-age-gate-compact-v142="true"] .ldg1__age-gate-actions {
	gap: .44rem !important;
	width: 100% !important;
}

.ldg1[data-ldg1-build="V142"]
[data-ldg1-exhibit][data-index="8"]
.ldg1__age-gate[data-ldg1-age-gate-compact-v142="true"] .ldg1__age-gate-action {
	box-sizing: border-box !important;
	flex: 1 1 0 !important;
	min-width: 0 !important;
	max-width: 6.5rem !important;
	padding: .4rem .5rem !important;
	border-width: 1px !important;
	font-size: .69rem !important;
	letter-spacing: .13em !important;
	box-shadow:
		0 0 0 .06rem rgba(255, 215, 128, .18),
		0 .25rem .72rem rgba(0, 0, 0, .32) !important;
}

.ldg1[data-ldg1-build="V142"]
[data-ldg1-exhibit][data-index="8"]
.ldg1__age-gate[data-ldg1-age-gate-compact-v142="true"] .ldg1__age-gate-image {
	display: block !important;
	box-sizing: border-box !important;
	width: 100% !important;
	height: auto !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	clip-path: none !important;
	-webkit-clip-path: none !important;
	mask-image: none !important;
	-webkit-mask-image: none !important;
	object-fit: contain !important;
	object-position: 50% 50% !important;
	overflow: visible !important;
	box-shadow: 0 .34rem .92rem rgba(0, 0, 0, .34) !important;
}

@keyframes ldg1V142AgeGateFloat {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-3px); }
}

@media (max-width: 991px) {
	.ldg1[data-ldg1-build="V142"].is-artwork-focused
	[data-ldg1-exhibit][data-index="8"].is-age-gate-visible:not(.is-age-gate-accepted)
	.ldg1__age-gate[data-ldg1-age-gate-compact-v142="true"] {
		width: 52% !important;
		max-width: 14.25rem !important;
	}
}

@media (max-width: 767px) {
	.ldg1[data-ldg1-build="V142"].is-artwork-focused
	[data-ldg1-exhibit][data-index="8"].is-age-gate-visible:not(.is-age-gate-accepted)
	.ldg1__age-gate[data-ldg1-age-gate-compact-v142="true"] {
		width: 56% !important;
		max-width: 13.25rem !important;
	}

	.ldg1[data-ldg1-build="V142"]
	[data-ldg1-exhibit][data-index="8"]
	.ldg1__age-gate[data-ldg1-age-gate-compact-v142="true"] .ldg1__age-gate-card {
		gap: .38rem !important;
		padding: .48rem .5rem .56rem !important;
		border-radius: .76rem !important;
	}

	.ldg1[data-ldg1-build="V142"]
	[data-ldg1-exhibit][data-index="8"]
	.ldg1__age-gate[data-ldg1-age-gate-compact-v142="true"] .ldg1__age-gate-title {
		font-size: .68rem !important;
		letter-spacing: .12em !important;
	}

	.ldg1[data-ldg1-build="V142"]
	[data-ldg1-exhibit][data-index="8"]
	.ldg1__age-gate[data-ldg1-age-gate-compact-v142="true"] .ldg1__age-gate-actions {
		gap: .34rem !important;
	}

	.ldg1[data-ldg1-build="V142"]
	[data-ldg1-exhibit][data-index="8"]
	.ldg1__age-gate[data-ldg1-age-gate-compact-v142="true"] .ldg1__age-gate-action {
		padding: .34rem .38rem !important;
		font-size: .62rem !important;
		letter-spacing: .11em !important;
	}
}

@media (max-height: 620px) and (orientation: landscape) {
	.ldg1[data-ldg1-build="V142"].is-artwork-focused
	[data-ldg1-exhibit][data-index="8"].is-age-gate-visible:not(.is-age-gate-accepted)
	.ldg1__age-gate[data-ldg1-age-gate-compact-v142="true"] {
		width: 44% !important;
		max-width: 12.5rem !important;
	}

	.ldg1[data-ldg1-build="V142"]
	[data-ldg1-exhibit][data-index="8"]
	.ldg1__age-gate[data-ldg1-age-gate-compact-v142="true"] .ldg1__age-gate-card {
		gap: .3rem !important;
		padding: .4rem .44rem .48rem !important;
	}
}



/* =========================================================
   V142 FINAL LOCK — SOCIAL TICKET HEADING + BUTTON FIT
   The back-of-ticket heading is now kept cleanly inside the
   central foil panel, clear of the internal vertical divider
   lines, with more deliberate spacing. The four social buttons
   are enlarged and rebalanced so they occupy the available
   space confidently instead of appearing lost on the ticket.
   ========================================================= */
.ldg1[data-ldg1-build="V142"] .ldg1__social-ticket-heading {
	left: 22.25%;
	right: 22.25%;
	top: 13.6%;
	font-size: clamp(11px, 1.12vw, 15px);
	letter-spacing: .052em;
	line-height: 1.04;
}

.ldg1[data-ldg1-build="V142"] .ldg1__social-ticket-links {
	left: 24.25%;
	right: 24.25%;
	top: 29.6%;
	bottom: 10.75%;
	row-gap: clamp(4px, 1.55cqw, 8px);
	column-gap: clamp(10px, 4.25cqw, 18px);
}

.ldg1[data-ldg1-build="V142"] .ldg1__social-ticket-link {
	width: clamp(34px, 14.5cqw, 62px);
	border-radius: clamp(6px, .82vw, 11px);
}

.ldg1[data-ldg1-build="V142"] .ldg1__social-ticket-close {
	right: 5.8%;
	width: 8.2%;
}

@media (max-width: 767px) {
	.ldg1[data-ldg1-build="V142"] .ldg1__social-ticket-heading {
		left: 21.5%;
		right: 21.5%;
		top: 13.4%;
		font-size: clamp(9px, 2.35vw, 12px);
		letter-spacing: .038em;
	}

	.ldg1[data-ldg1-build="V142"] .ldg1__social-ticket-links {
		left: 23.5%;
		right: 23.5%;
		top: 29.4%;
		bottom: 10.5%;
		row-gap: clamp(4px, 1.45cqw, 6px);
		column-gap: clamp(8px, 4cqw, 14px);
	}

	.ldg1[data-ldg1-build="V142"] .ldg1__social-ticket-link {
		width: clamp(30px, 14.5cqw, 48px);
	}

	.ldg1[data-ldg1-build="V142"] .ldg1__social-ticket-close {
		right: 5.9%;
		width: 8.8%;
	}
}

@media (max-height: 520px) and (orientation: landscape) {
	.ldg1[data-ldg1-build="V142"] .ldg1__social-ticket-heading {
		font-size: clamp(10px, 1.4vw, 13px);
	}

	.ldg1[data-ldg1-build="V142"] .ldg1__social-ticket-link {
		width: clamp(30px, 13.25cqw, 46px);
	}
}


/* =========================================================
   V142 FINAL LOCK — ROOM TWO CV CHARACTER REPLACEMENT
   Replaces HologramD.webp with CV.webp and hard-locks the seated
   character between Frames 4 and 5 using the latest grid reference.
   The bottom-left and bottom-right edges of the visible character art
   are aligned to the supplied green dots on the bench, while preserving
   the existing hologram/character parallax system.

   Grid reference used
   - source image size: 1614 x 1536
   - left green dot centre: 645 / 1223
   - right green dot centre: 1134 / 1223
   - target image bottom span: 489px
   ========================================================= */
.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
.ldg1__hologram-character[data-ldg1-hologram-coordinate-lock-v107] {
	left: 55.111524% !important;
	bottom: 20.377604% !important;
	width: 30.297398% !important;
	height: 47.395833% !important;
	transform: translate3d(calc(-50% + var(--ldg1-hologram-shift, 0px)), 0, 0) !important;
	z-index: 26 !important;
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
.ldg1__hologram-character[data-ldg1-hologram-coordinate-lock-v107] .ldg1__hologram-character-img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	object-position: 50% 100% !important;
	filter:
		brightness(.98)
		contrast(1.02)
		drop-shadow(0 10px 16px rgba(0, 0, 0, .36))
		drop-shadow(0 0 14px rgba(95, 170, 255, .14)) !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
.ldg1__hologram-character[data-ldg1-hologram-coordinate-lock-v107] .ldg1__hologram-contact-shadow {
	left: 50% !important;
	bottom: 1.8% !important;
	width: 52% !important;
}

@media (max-width: 991px) {
	.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
	.ldg1__hologram-character[data-ldg1-hologram-coordinate-lock-v107] {
		left: 55.111524% !important;
		bottom: 20.377604% !important;
		width: 30.297398% !important;
		height: 47.395833% !important;
	}
}

@media (max-width: 767px) {
	.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
	.ldg1__hologram-character[data-ldg1-hologram-coordinate-lock-v107] {
		left: 55.111524% !important;
		bottom: 20.377604% !important;
		width: 30.297398% !important;
		height: 47.395833% !important;
	}
}


/* =========================================================
   V142 FINAL LOCK — CV CHARACTER SWAP + HELD CV READER
   The room-two CV character now behaves like the BIO trigger.
   - Resting state uses CV-Forward.webp
   - Pressed/open state uses CV-Back.webp
   - Clicking the character launches the custom held-PDF reader
     instead of the BIO information panel
   ========================================================= */


.ldg1[data-ldg1-build="V142"] .ldg1__cv-character {
	pointer-events: auto !important;
	cursor: pointer;
	outline: none;
	-webkit-tap-highlight-color: transparent;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character .ldg1__hologram-figure {
	position: absolute;
	inset: 0;
	overflow: visible;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character-img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	object-position: 50% 100% !important;
	transition:
		opacity 520ms cubic-bezier(.2, .82, .2, 1),
		transform 520ms cubic-bezier(.2, .82, .2, 1),
		filter 520ms cubic-bezier(.2, .82, .2, 1);
	will-change: opacity, transform;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character-img--forward {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character-img--back {
	opacity: 0;
	transform: translate3d(.35%, 0, 0) scale(.992);
}

.ldg1[data-ldg1-build="V142"].is-cv-character-pushed .ldg1__cv-character-img--forward,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__cv-character-img--forward {
	opacity: 0;
	transform: translate3d(-.5%, 0, 0) scale(.992);
}

.ldg1[data-ldg1-build="V142"].is-cv-character-pushed .ldg1__cv-character-img--back,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__cv-character-img--back {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1.002);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character-prompt {
	position: absolute;
	left: 50%;
	bottom: 101%;
	display: inline-flex;
	align-items: center;
	gap: .42rem;
	padding: .42rem .72rem;
	border: 1px solid rgba(255, 214, 120, .42);
	border-radius: 999px;
	background: linear-gradient(180deg, rgba(18, 14, 24, .90), rgba(6, 5, 10, .86));
	box-shadow: 0 10px 18px rgba(0,0,0,.28), 0 0 14px rgba(255, 199, 90, .12);
	color: #f6d48f;
	font: 700 clamp(10px, .72vw, 13px) / 1.1 Inter, system-ui, sans-serif;
	letter-spacing: .12em;
	transform: translate(-50%, 0);
	opacity: .95;
	white-space: nowrap;
	pointer-events: none;
	transition: opacity .25s ease, transform .25s ease;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character-prompt-dot {
	width: .5rem;
	height: .5rem;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 35%, #fff6c7 0%, #ffd36e 30%, #ff9b38 62%, #c96311 100%);
	box-shadow: 0 0 8px rgba(255, 180, 58, .7);
	animation: ldg1CvPromptPulse 1.8s ease-in-out infinite;
}



.ldg1[data-ldg1-build="V142"] .ldg1__cv-character:hover .ldg1__cv-character-prompt,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-character:focus-visible .ldg1__cv-character-prompt {
	transform: translate(-50%, -3px);
}

.ldg1[data-ldg1-build="V142"].is-cv-character-pushed .ldg1__cv-character-prompt,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__cv-character-prompt {
	opacity: 0;
	transform: translate(-50%, 2px);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character:focus-visible {
	filter: drop-shadow(0 0 18px rgba(255, 196, 63, .26));
}





























.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-icon-sheet { fill: rgba(255, 246, 230, .08); stroke: currentColor; }
.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-icon-fold { fill: none; stroke: currentColor; }
.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-icon-arrow { fill: none; stroke: currentColor; }















































.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__viewport,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__hud,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ld-audio-console-shell,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ld-audio-blackhole-tab,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__selection,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__instruction,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__page-link {
	pointer-events: none !important;
}






/* =========================================================
   V142 FINAL LOCK — CV CHARACTER SWAP FIX
   Fixes the room-two CV character so only one image is ever shown:
   - resting state = CV-Forward.webp
   - pressed/open state = CV-Back.webp
   The old OPEN CV prompt is removed. The interaction remains BIO-style,
   but launches the CV reader instead of the BIO information panel.
   ========================================================= */
.ldg1[data-ldg1-build="V142"] .ldg1__cv-character-prompt {
	display: none !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character .ldg1__hologram-figure {
	position: absolute;
	inset: 0;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character-img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	object-position: 50% 100% !important;
	opacity: 1 !important;
	transform: translate3d(0, 0, 0) scale(1) !important;
	transition: filter 220ms ease, transform 220ms ease;
}

.ldg1[data-ldg1-build="V142"].is-cv-character-pushed .ldg1__cv-character-img,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__cv-character-img,
.ldg1[data-ldg1-build="V142"].is-cv-reader-opening .ldg1__cv-character-img {
	opacity: 1 !important;
	transform: translate3d(0, 0, 0) scale(1.002) !important;
	filter:
		brightness(1)
		contrast(1.02)
		drop-shadow(0 10px 16px rgba(0, 0, 0, .36))
		drop-shadow(0 0 14px rgba(95, 170, 255, .14)) !important;
}


/* =========================================================
   V142 FINAL LOCK — CV TRIGGER CLICK / LAUNCH FIX
   The CV character is now a real button and uses capture-phase
   interception, matching the proven BIO interaction so the gallery's
   horizontal drag system cannot consume the activation.
   ========================================================= */
.ldg1[data-ldg1-build="V142"] button.ldg1__cv-character,
.ldg1[data-ldg1-build="V142"] button.ldg1__cv-character:hover,
.ldg1[data-ldg1-build="V142"] button.ldg1__cv-character:focus,
.ldg1[data-ldg1-build="V142"] button.ldg1__cv-character:focus-visible,
.ldg1[data-ldg1-build="V142"] button.ldg1__cv-character:active {
	appearance: none !important;
	-webkit-appearance: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	font: inherit !important;
	color: inherit !important;
	overflow: visible !important;
	pointer-events: auto !important;
	cursor: pointer !important;
	-webkit-tap-highlight-color: transparent;
}

.ldg1[data-ldg1-build="V142"] button.ldg1__cv-character:focus-visible {
	outline: 2px solid rgba(255, 217, 132, .86) !important;
	outline-offset: 5px !important;
}

.ldg1[data-ldg1-build="V142"] button.ldg1__cv-character > * {
	pointer-events: none !important;
}


/* =========================================================
   V142 FINAL LOCK — CV CHARACTER SWAP + READER REDESIGN
   - Fix the room-two CV character so only one artwork state is visible
     at a time and the forward image visibly swaps to the back image
     before the reader opens.
   - Redesign the CV reader to sit more like the BIO panel: a tighter
     portrait reader, no oversized outer frame, correctly oriented hands
     gripping the page sides, gentle hand motion, refined controls above
     the page, and a Close button in the top-right corner of the viewer.
   ========================================================= */

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character {
	cursor: pointer;
	background: transparent;
	border: 0;
	padding: 0;
	outline: none;
	-webkit-tap-highlight-color: transparent;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character .ldg1__hologram-figure {
	position: absolute;
	inset: 0;
	overflow: visible;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character-img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	object-position: 50% 100% !important;
	will-change: opacity, transform;
	transition: opacity 240ms ease, transform 340ms cubic-bezier(.2,.82,.2,1), filter 280ms ease;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character-img--forward {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character-img--back {
	opacity: 0;
	transform: translate3d(0, 4px, 0) scale(.988);
}

.ldg1[data-ldg1-build="V142"].is-cv-character-pushed .ldg1__cv-character-img--forward,
.ldg1[data-ldg1-build="V142"].is-cv-reader-opening .ldg1__cv-character-img--forward,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__cv-character-img--forward {
	opacity: 0;
	transform: translate3d(0, -2px, 0) scale(.992);
}

.ldg1[data-ldg1-build="V142"].is-cv-character-pushed .ldg1__cv-character-img--back,
.ldg1[data-ldg1-build="V142"].is-cv-reader-opening .ldg1__cv-character-img--back,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__cv-character-img--back {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character-prompt {
	display: none !important;
}

























































































.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__viewport,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__hud,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ld-audio-console-shell,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ld-audio-blackhole-tab,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__selection,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__instruction,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__page-link {
	pointer-events: none !important;
}








/* =========================================================
   V142 FINAL LOCK — CV CHARACTER USES THE WORKING BIO PATTERN

   V125 still changed the forward image source in JavaScript while also
   revealing the separately rendered back image. That could place two copies
   of CV-Back on screen at once. V142 removes source swapping completely and
   follows the proven BIO implementation instead:

   - both transparent assets share the same exact physical canvas
   - the forward/lead asset is the only visible resting image
   - clicking adds is-cv-pushed to the character trigger
   - that class crossfades lead out and push in
   - closing the CV reader removes the class and restores the lead asset

   These rules are deliberately final, highly scoped and !important so no
   earlier CV safeguards can force both images visible.
   ========================================================= */

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character .ldg1__hologram-figure {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	overflow: visible !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character .ldg1__cv-character-img {
	position: absolute !important;
	inset: 0 !important;
	left: 0 !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: contain !important;
	object-position: 50% 100% !important;
	visibility: visible !important;
	pointer-events: none !important;
	transform: none !important;
	transition:
		opacity 760ms cubic-bezier(.22,.61,.36,1),
		filter 280ms ease !important;
}

/* Resting state: Forward only. */
.ldg1[data-ldg1-build="V142"] .ldg1__cv-character:not(.is-cv-pushed) .ldg1__cv-lead-v142 {
	z-index: 2 !important;
	opacity: 1 !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character:not(.is-cv-pushed) .ldg1__cv-push-v142 {
	z-index: 1 !important;
	opacity: 0 !important;
}

/* Active/open state: Back only. */
.ldg1[data-ldg1-build="V142"] .ldg1__cv-character.is-cv-pushed .ldg1__cv-lead-v142 {
	z-index: 1 !important;
	opacity: 0 !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character.is-cv-pushed .ldg1__cv-push-v142 {
	z-index: 2 !important;
	opacity: 1 !important;
}

/* Keep Back visible for the entire time the PDF reader is open. */
.ldg1[data-ldg1-build="V142"].is-cv-reader-opening
.ldg1__cv-character .ldg1__cv-lead-v142,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open
.ldg1__cv-character .ldg1__cv-lead-v142 {
	z-index: 1 !important;
	opacity: 0 !important;
}

.ldg1[data-ldg1-build="V142"].is-cv-reader-opening
.ldg1__cv-character .ldg1__cv-push-v142,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open
.ldg1__cv-character .ldg1__cv-push-v142 {
	z-index: 2 !important;
	opacity: 1 !important;
}

@media (prefers-reduced-motion: reduce) {
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-character .ldg1__cv-character-img {
		transition-duration: 1ms !important;
	}
}


/* =========================================================
   V142 ABSOLUTE FINAL LOCK — ONE CV CHARACTER IMAGE ONLY

   V126 still rendered two physical image layers. V142 removes the second
   layer completely and changes one image source between CV-Forward and
   CV-Back. The Back pose is held for 1.5 seconds before the reader appears.
   ========================================================= */
.ldg1[data-ldg1-build="V142"] .ldg1__cv-character .ldg1__hologram-figure {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	overflow: visible !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character .ldg1__cv-single-image-v142 {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: contain !important;
	object-position: 50% 100% !important;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
	pointer-events: none !important;
	transition: filter 280ms ease !important;
}

/* Defensive cache guard for stale two-layer markup. */
.ldg1[data-ldg1-build="V142"] .ldg1__cv-character .ldg1__cv-character-img--back,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-character .ldg1__cv-push-v142 {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
}

.ldg1[data-ldg1-build="V142"].is-cv-reader-opening .ldg1__cv-single-image-v142,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__cv-single-image-v142,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-character.is-cv-pushed .ldg1__cv-single-image-v142 {
	opacity: 1 !important;
	visibility: visible !important;
}


/* =========================================================
   V142 FINAL LOCK — CV READER LAYOUT REFINEMENT
   - Move the hands further away from the PDF edges and slightly lower
   - Pull the top controls into a tighter cluster
   - Move the Close control so it sits outside the page and appears to
     emerge from behind the top-right edge instead of covering content
   - The backdrop click-to-close behaviour remains active
   ========================================================= */




































/* =========================================================
   V142 ABSOLUTE FINAL LOCK — EXACT CV CHARACTER SEQUENCE

   The sequence is intentionally driven by one physical image element:
   1. Forward is the only resting pose.
   2. A 1.5s fade-through transition changes Forward to Back.
   3. Back remains fully visible for 1.5s before the CV panel opens.
   4. Back remains unchanged for the entire time the panel is open.
   5. After the panel has fully closed, Back remains for 1.5s.
   6. A 1.5s fade-through transition restores Forward.

   A CSS custom property controlled by the V142 state machine is used so
   older opacity rules cannot stop the transition or reveal a duplicate.
   ========================================================= */
.ldg1[data-ldg1-build="V142"] .ldg1__cv-character .ldg1__cv-single-image-v142 {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: contain !important;
	object-position: 50% 100% !important;
	opacity: var(--ldg1-cv-pose-opacity, 1) !important;
	visibility: visible !important;
	pointer-events: none !important;
	transform: none !important;
	transition: opacity 750ms cubic-bezier(.22,.61,.36,1) !important;
	will-change: opacity;
}

/* Any stale two-layer markup from an old cache must never be visible. */
.ldg1[data-ldg1-build="V142"] .ldg1__cv-character .ldg1__cv-character-img--back,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-character .ldg1__cv-push-v142,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-character img:not(.ldg1__cv-single-image-v142) {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
}

.ldg1[data-ldg1-build="V142"].is-cv-sequence-locked .ldg1__cv-character {
	pointer-events: none !important;
	cursor: default !important;
}

.ldg1[data-ldg1-build="V142"].is-cv-opening-hold .ldg1__cv-single-image-v142,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__cv-single-image-v142,
.ldg1[data-ldg1-build="V142"].is-cv-reader-closing .ldg1__cv-single-image-v142,
.ldg1[data-ldg1-build="V142"].is-cv-reader-return-hold .ldg1__cv-single-image-v142 {
	opacity: 1 !important;
}

@media (prefers-reduced-motion: reduce) {
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-character .ldg1__cv-single-image-v142 {
		transition-duration: 1ms !important;
	}
}


/* =========================================================
   V142 ABSOLUTE FINAL LOCK — BIO-PATTERN CV POSE SEQUENCE

   This deliberately mirrors the working BIO character implementation:
   two images occupy the same physical canvas and only their opacity changes.
   JavaScript never rewrites either image source.

   Visual states:
   - forward: only CV-Forward is visible
   - to-back: 1.5s Forward -> Back crossfade
   - back-hold / panel-open / panel-closing / back-after-close:
     only CV-Back is visible
   - to-forward: 1.5s Back -> Forward crossfade
   ========================================================= */
.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
button.ldg1__cv-character[data-ldg1-cv-open] .ldg1__cv-character-visual-v142 {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	pointer-events: none !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
button.ldg1__cv-character[data-ldg1-cv-open] .ldg1__cv-character-visual-v142 >
img.ldg1__cv-forward-v142,
.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
button.ldg1__cv-character[data-ldg1-cv-open] .ldg1__cv-character-visual-v142 >
img.ldg1__cv-back-v142 {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: contain !important;
	object-position: 50% 100% !important;
	pointer-events: none !important;
	transform: none !important;
	filter:
		brightness(.98)
		contrast(1.02)
		drop-shadow(0 10px 16px rgba(0, 0, 0, .36))
		drop-shadow(0 0 14px rgba(95, 170, 255, .14)) !important;
	transition: opacity 1500ms cubic-bezier(.22,.61,.36,1) !important;
	will-change: opacity;
}

/* Resting state: Forward only. */
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="forward"] .ldg1__room--two >
button.ldg1__cv-character[data-ldg1-cv-open] .ldg1__cv-character-visual-v142 >
img.ldg1__cv-forward-v142 {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	z-index: 3 !important;
}

.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="forward"] .ldg1__room--two >
button.ldg1__cv-character[data-ldg1-cv-open] .ldg1__cv-character-visual-v142 >
img.ldg1__cv-back-v142 {
	display: block !important;
	opacity: 0 !important;
	visibility: hidden !important;
	z-index: 2 !important;
}

/* 1.5 second Forward -> Back transition. */
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="to-back"] .ldg1__room--two >
button.ldg1__cv-character[data-ldg1-cv-open] .ldg1__cv-character-visual-v142 >
img.ldg1__cv-forward-v142 {
	display: block !important;
	opacity: 0 !important;
	visibility: visible !important;
	z-index: 3 !important;
}

.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="to-back"] .ldg1__room--two >
button.ldg1__cv-character[data-ldg1-cv-open] .ldg1__cv-character-visual-v142 >
img.ldg1__cv-back-v142 {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	z-index: 4 !important;
}

/* All settled Back states: Back only. */
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="back-hold"] .ldg1__cv-forward-v142,
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="panel-open"] .ldg1__cv-forward-v142,
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="panel-closing"] .ldg1__cv-forward-v142,
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="back-after-close"] .ldg1__cv-forward-v142 {
	display: block !important;
	opacity: 0 !important;
	visibility: hidden !important;
	z-index: 2 !important;
}

.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="back-hold"] .ldg1__cv-back-v142,
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="panel-open"] .ldg1__cv-back-v142,
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="panel-closing"] .ldg1__cv-back-v142,
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="back-after-close"] .ldg1__cv-back-v142 {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	z-index: 4 !important;
}

/* 1.5 second Back -> Forward transition. */
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="to-forward"] .ldg1__room--two >
button.ldg1__cv-character[data-ldg1-cv-open] .ldg1__cv-character-visual-v142 >
img.ldg1__cv-forward-v142 {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	z-index: 4 !important;
}

.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="to-forward"] .ldg1__room--two >
button.ldg1__cv-character[data-ldg1-cv-open] .ldg1__cv-character-visual-v142 >
img.ldg1__cv-back-v142 {
	display: block !important;
	opacity: 0 !important;
	visibility: visible !important;
	z-index: 3 !important;
}

.ldg1[data-ldg1-build="V142"].is-cv-sequence-locked .ldg1__cv-character {
	pointer-events: none !important;
	cursor: default !important;
}

@media (prefers-reduced-motion: reduce) {
	.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
	button.ldg1__cv-character[data-ldg1-cv-open] .ldg1__cv-character-visual-v142 >
	img.ldg1__cv-forward-v142,
	.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
	button.ldg1__cv-character[data-ldg1-cv-open] .ldg1__cv-character-visual-v142 >
	img.ldg1__cv-back-v142 {
		transition-duration: 1ms !important;
	}
}


/* =========================================================
   V142 ABSOLUTE FINAL LOCK — PANEL-LAUNCH FORWARD GHOST FIX

   The supplied screen recording shows the Forward pose reappearing for a
   fraction of a second while the CV panel/backdrop is being composited.
   V142 removes the inactive pose from layout after each 1.5-second crossfade.
   These rules isolate each transparent image into its own compositor layer;
   JavaScript controls display:block/none with inline !important once a pose
   has settled, so the backdrop cannot sample the inactive Forward artwork.
   ========================================================= */
.ldg1[data-ldg1-build="V142"] .ldg1__cv-character-visual-v142 {
	isolation: isolate !important;
	contain: layout paint style !important;
	transform: translateZ(0) !important;
	backface-visibility: hidden !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-character-visual-v142 >
img.ldg1__cv-forward-v142,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-character-visual-v142 >
img.ldg1__cv-back-v142 {
	backface-visibility: hidden !important;
	-webkit-backface-visibility: hidden !important;
	transform: translateZ(0) !important;
	-webkit-transform: translateZ(0) !important;
}

/* Settled Back states must never revive Forward during panel composition. */
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="back-hold"] .ldg1__cv-forward-v142,
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="panel-open"] .ldg1__cv-forward-v142,
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="panel-closing"] .ldg1__cv-forward-v142,
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="back-after-close"] .ldg1__cv-forward-v142 {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
}

.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="back-hold"] .ldg1__cv-back-v142,
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="panel-open"] .ldg1__cv-back-v142,
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="panel-closing"] .ldg1__cv-back-v142,
.ldg1[data-ldg1-build="V142"][data-ldg1-cv-sequence="back-after-close"] .ldg1__cv-back-v142 {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
}


/* =========================================================
   V142 ABSOLUTE FINAL LOCK — ONE PHYSICAL CV POSE SURFACE

   This is the decisive fix for the recurring double-character fault.
   The character artwork is no longer rendered by two overlapping images.
   One background surface displays either Forward or Back and fades through
   transparent while its artwork changes. Therefore Forward cannot appear
   underneath Back at the end of the turn or when the CV panel is composited.
   ========================================================= */
.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
button.ldg1__cv-character[data-ldg1-cv-open] .ldg1__cv-character-visual-v142 {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	overflow: visible !important;
	isolation: isolate !important;
	contain: layout paint style !important;
	pointer-events: none !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
button.ldg1__cv-character[data-ldg1-cv-open] .ldg1__cv-pose-surface-v142 {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	background-repeat: no-repeat !important;
	background-position: 50% 100% !important;
	background-size: contain !important;
	opacity: var(--ldg1-cv-pose-opacity, 1) !important;
	visibility: visible !important;
	pointer-events: none !important;
	transform: translateZ(0) !important;
	backface-visibility: hidden !important;
	-webkit-backface-visibility: hidden !important;
	filter:
		brightness(.98)
		contrast(1.02)
		drop-shadow(0 10px 16px rgba(0, 0, 0, .36))
		drop-shadow(0 0 14px rgba(95, 170, 255, .14)) !important;
	transition: opacity var(--ldg1-cv-pose-duration, 0ms) cubic-bezier(.22,.61,.36,1) !important;
	will-change: opacity;
}

/* No image pose layer is allowed inside the V142 CV character. */
.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
button.ldg1__cv-character[data-ldg1-cv-open] .ldg1__cv-character-visual-v142 > img {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
}

.ldg1[data-ldg1-build="V142"].is-cv-sequence-locked .ldg1__cv-character {
	pointer-events: none !important;
	cursor: default !important;
}

@media (prefers-reduced-motion: reduce) {
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-pose-surface-v142 {
		transition-duration: 1ms !important;
	}
}


/* =========================================================
   V142 ABSOLUTE FINAL LOCK — INSTANT CV TURN
   No fade is used between CV-Forward and CV-Back. The single pose
   surface changes artwork immediately in either direction.
   ========================================================= */
.ldg1[data-ldg1-build="V142"] .ldg1__room--two >
button.ldg1__cv-character[data-ldg1-cv-open] .ldg1__cv-pose-surface-v142 {
	opacity: 1 !important;
	transition: none !important;
	animation: none !important;
	will-change: auto !important;
}


/* =========================================================
   V142 FINAL LOCK — CV PANEL DIMENSIONS + HAND PLACEMENT
   Match the CV reader footprint and hand placement more closely to the
   working BIO panel so the hands sit on the outer page edges rather than
   floating too far inside the brochure.
   ========================================================= */

/* =========================================================
   V142 AUTHORITATIVE FINAL — FUTURISTIC CV CONTROLS

   One consolidated control and reader-layout system. Earlier CV reader,
   toolbar, close-button, page-shell and hand-placement declarations have
   been removed from this complete replacement stylesheet. The character
   launch/return sequence and all unrelated gallery styling remain intact.
   ========================================================= */

html.ldg1-cv-reader-document-open,
body.ldg1-cv-reader-document-open {
	overflow: hidden !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-layer {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(8px, 1.6vw, 20px);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 320ms ease, visibility 0s linear 320ms;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-layer.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition-delay: 0s;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-backdrop {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background:
		radial-gradient(circle at 50% 34%, rgba(255, 42, 126, .13), transparent 36%),
		radial-gradient(circle at 50% 78%, rgba(255, 176, 72, .07), transparent 38%),
		rgba(0, 0, 0, .80);
	backdrop-filter: blur(9px) saturate(1.04);
	-webkit-backdrop-filter: blur(9px) saturate(1.04);
	cursor: pointer;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-dialog {
	position: relative;
	z-index: 2;
	display: block;
	width: auto;
	max-width: 100%;
	max-height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	overflow: visible;
	outline: none;
	opacity: 0;
	transform: translate3d(0, 18px, 0) scale(.985);
	transition: opacity 300ms ease, transform 360ms cubic-bezier(.2,.82,.2,1);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-layer.is-open .ldg1__cv-dialog {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-archive-mark,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-footer,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-footer-code {
	display: none !important;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-reader-stage {
	--ldg1-cv-stage-width: min(640px, calc(100vw - 24px));
	--ldg1-cv-side-gutter: 67px;
	--ldg1-cv-gutter-total: 134px;
	--ldg1-cv-page-width: max(170px, min(
		calc(var(--ldg1-cv-stage-width) - var(--ldg1-cv-gutter-total)),
		calc(70.7vh - 110px)
	));
	--ldg1-cv-toolbar-width: min(560px, calc(100vw - 28px));
	--ldg1-cv-toolbar-height: 62px;
	--ldg1-cv-close-size: 72px;
	--ldg1-cv-close-overhang: -27px;
	--ldg1-cv-hand-width: clamp(206px, 21.2vw, 328px);
	--ldg1-cv-hand-shift-left: -64%;
	--ldg1-cv-hand-shift-right: 64%;
	--ldg1-cv-hand-bottom: clamp(-112px, -6.9vw, -82px);
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 22px;
	width: var(--ldg1-cv-stage-width);
	max-width: calc(100vw - 12px);
	min-width: 0;
	overflow: visible;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-sr-title,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Connected manufactured control assembly. */
.ldg1[data-ldg1-build="V142"] .ldg1__cv-toolbar {
	position: relative;
	z-index: 50;
	display: grid;
	grid-template-columns: 30fr 40fr 30fr;
	align-items: stretch;
	width: var(--ldg1-cv-toolbar-width);
	height: var(--ldg1-cv-toolbar-height);
	min-height: 44px;
	margin: 0;
	padding: 3px;
	gap: 0;
	isolation: isolate;
	filter:
		drop-shadow(0 13px 24px rgba(0, 0, 0, .56))
		drop-shadow(0 0 10px rgba(255, 43, 132, .12));
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-toolbar::before,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-toolbar::after {
	content: '';
	position: absolute;
	pointer-events: none;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-toolbar::before {
	z-index: -2;
	inset: 0;
	clip-path: polygon(17px 0, calc(100% - 17px) 0, 100% 17px, 100% calc(100% - 17px), calc(100% - 17px) 100%, 17px 100%, 0 calc(100% - 17px), 0 17px);
	background:
		linear-gradient(90deg, #84672e 0 2px, transparent 2px calc(100% - 2px), #84672e calc(100% - 2px)),
		linear-gradient(180deg, #e5e7eb 0%, #5c6068 9%, #161922 18%, #07080d 78%, #707680 91%, #ddd7c9 100%);
	box-shadow:
		0 0 0 1px rgba(255, 255, 255, .15) inset,
		0 0 0 3px rgba(5, 6, 10, .88) inset;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-toolbar::after {
	z-index: -1;
	inset: 5px;
	clip-path: polygon(13px 0, calc(100% - 13px) 0, 100% 13px, 100% calc(100% - 13px), calc(100% - 13px) 100%, 13px 100%, 0 calc(100% - 13px), 0 13px);
	background: linear-gradient(180deg, rgba(24, 26, 34, .98), rgba(5, 6, 10, .99));
	box-shadow:
		0 1px 0 rgba(255, 255, 255, .08) inset,
		0 -1px 0 rgba(255, 61, 143, .14) inset;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-control,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-download {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: clamp(6px, .7vw, 10px);
	min-width: 0;
	min-height: 44px;
	margin: 0;
	padding: 0 clamp(10px, 1.45vw, 20px);
	border: 0;
	border-radius: 0;
	outline: none;
	background: linear-gradient(180deg, rgba(21, 23, 31, .96), rgba(5, 6, 10, .98));
	box-shadow:
		0 1px 0 rgba(255,255,255,.06) inset,
		0 -1px 0 rgba(0,0,0,.8) inset;
	color: #f5f0e7;
	font: 700 clamp(11px, .95vw, 15px) / 1 Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	letter-spacing: .11em;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition: transform 180ms ease, filter 180ms ease, color 180ms ease, box-shadow 180ms ease;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-control::before,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-download::before,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-download::after {
	content: '';
	position: absolute;
	pointer-events: none;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-control::before {
	inset: 2px 0;
	background: linear-gradient(180deg, rgba(255,255,255,.035), transparent 45%, rgba(255, 42, 130, .035));
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-control--previous {
	z-index: 2;
	clip-path: polygon(14px 0, 100% 0, 100% 100%, 14px 100%, 0 calc(100% - 14px), 0 14px);
	border-right: 1px solid rgba(193, 198, 208, .20);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-control--next {
	z-index: 2;
	clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%);
	border-left: 1px solid rgba(193, 198, 208, .20);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-download {
	z-index: 6;
	align-self: center;
	height: calc(100% + 10px);
	margin-inline: -10px;
	padding-inline: clamp(13px, 2vw, 28px);
	clip-path: polygon(18px 0, calc(100% - 18px) 0, 100% 50%, calc(100% - 18px) 100%, 18px 100%, 0 50%);
	background:
		linear-gradient(180deg, rgba(73, 15, 45, .98), rgba(18, 5, 15, .99)),
		linear-gradient(90deg, transparent, rgba(255, 63, 151, .10), transparent);
	box-shadow:
		0 0 0 1px rgba(255, 92, 165, .78) inset,
		0 0 0 4px rgba(44, 10, 29, .88) inset,
		0 0 18px rgba(255, 37, 132, .26),
		0 1px 0 rgba(255,255,255,.10) inset;
	color: #ffb9da;
	letter-spacing: .075em;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-download::before {
	inset: 4px 9px;
	clip-path: polygon(14px 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 14px 100%, 0 50%);
	border: 1px solid rgba(255, 77, 157, .45);
	box-shadow: 0 0 9px rgba(255, 46, 142, .15) inset;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-download::after {
	left: 18%;
	right: 18%;
	bottom: 5px;
	height: 1px;
	background: linear-gradient(90deg, transparent, #ff4b9e, transparent);
	box-shadow: 0 0 7px #ff3b94;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-control-icon {
	position: relative;
	z-index: 2;
	flex: 0 0 auto;
	width: clamp(16px, 1.4vw, 21px);
	height: clamp(16px, 1.4vw, 21px);
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-control > span,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-download > span {
	position: relative;
	z-index: 2;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-control:not(:disabled):hover,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-download:hover {
	transform: translateY(-1px);
	filter: brightness(1.10);
	color: #fff;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-control:not(:disabled):active,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-download:active {
	transform: translateY(1px);
	filter: brightness(.94);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-control:focus-visible,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-download:focus-visible {
	box-shadow:
		0 0 0 2px #fff inset,
		0 0 0 4px #ff3e98 inset,
		0 0 16px rgba(255, 56, 149, .55);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-control:disabled {
	opacity: .38;
	filter: grayscale(.35) saturate(.55);
	cursor: not-allowed;
	transform: none !important;
	box-shadow: 0 1px 0 rgba(255,255,255,.03) inset;
}

/* Page, hand and close stacking are all tied to the same page width. */
.ldg1[data-ldg1-build="V142"] .ldg1__cv-viewer {
	position: relative;
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--ldg1-cv-stage-width);
	max-width: 100%;
	min-width: 0;
	padding: 0;
	overflow: visible;
	isolation: isolate;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-shell {
	position: relative;
	z-index: 10;
	width: var(--ldg1-cv-page-width);
	max-width: 100%;
	aspect-ratio: 1000 / 1414;
	perspective: 1600px;
	--ldg1-cv-tilt-x: 0deg;
	--ldg1-cv-tilt-y: 0deg;
	transform: rotateX(var(--ldg1-cv-tilt-x)) rotateY(var(--ldg1-cv-tilt-y));
	transform-origin: 50% 50%;
	transition: transform 140ms ease;
	overflow: visible;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-aura {
	position: absolute;
	z-index: -1;
	inset: 6% -8% -3%;
	background: radial-gradient(circle at 50% 45%, rgba(255, 48, 145, .16), rgba(255, 178, 77, .05) 38%, transparent 70%);
	filter: blur(24px);
	pointer-events: none;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-turner {
	position: relative;
	width: 100%;
	height: 100%;
	border: 2px solid rgba(194, 199, 209, .58);
	border-radius: 8px;
	background: #05060a;
	box-shadow:
		0 24px 52px rgba(0,0,0,.52),
		0 0 0 3px rgba(7,8,12,.90),
		0 0 0 4px rgba(255, 57, 147, .20),
		0 1px 0 rgba(255,255,255,.18) inset;
	overflow: hidden;
	transform-style: preserve-3d;
	will-change: transform;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-image {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 50%;
	background: #030408;
	user-select: none;
	-webkit-user-drag: none;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-glass {
	position: absolute;
	z-index: 2;
	inset: 0;
	background: linear-gradient(118deg, rgba(255,255,255,.08), transparent 20%, transparent 68%, rgba(255,62,150,.035));
	mix-blend-mode: screen;
	pointer-events: none;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-edge {
	position: absolute;
	z-index: 3;
	top: 0;
	bottom: 0;
	width: 12px;
	pointer-events: none;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-edge--left {
	left: 0;
	background: linear-gradient(90deg, rgba(0,0,0,.22), transparent);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-edge--right {
	right: 0;
	background: linear-gradient(270deg, rgba(0,0,0,.22), transparent);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-turner.is-turning-next {
	animation: ldg1CvTurnNextV142 470ms cubic-bezier(.2,.75,.2,1);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-turner.is-turning-previous {
	animation: ldg1CvTurnPreviousV142 470ms cubic-bezier(.2,.75,.2,1);
}

@keyframes ldg1CvTurnNextV142 {
	0% { transform: rotateY(0deg) translateX(0); }
	45% { transform: rotateY(-11deg) translateX(5px); }
	100% { transform: rotateY(0deg) translateX(0); }
}

@keyframes ldg1CvTurnPreviousV142 {
	0% { transform: rotateY(0deg) translateX(0); }
	45% { transform: rotateY(11deg) translateX(-5px); }
	100% { transform: rotateY(0deg) translateX(0); }
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-hands {
	position: absolute;
	z-index: 20;
	left: 50%;
	bottom: 0;
	width: var(--ldg1-cv-page-width);
	height: 0;
	transform: translateX(-50%);
	pointer-events: none;
	user-select: none;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-hand {
	position: absolute;
	display: block;
	bottom: var(--ldg1-cv-hand-bottom);
	width: var(--ldg1-cv-hand-width);
	height: auto;
	max-width: none;
	margin: 0;
	padding: 0;
	pointer-events: none;
	user-select: none;
	-webkit-user-drag: none;
	filter:
		drop-shadow(0 18px 30px rgba(0,0,0,.52))
		drop-shadow(0 4px 12px rgba(255, 58, 143, .07));
	transform-origin: 50% 100%;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-hand--left {
	left: 0;
	animation: ldg1CvHandLeftV142 5.2s ease-in-out -1.1s infinite;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-hand--right {
	right: 0;
	animation: ldg1CvHandRightV142 6.1s ease-in-out -3.4s infinite;
}

@keyframes ldg1CvHandLeftV142 {
	0%,100% { transform: translate3d(var(--ldg1-cv-hand-shift-left),0,0) rotate(-2.6deg); }
	28% { transform: translate3d(var(--ldg1-cv-hand-shift-left),-5px,0) rotate(-2.25deg); }
	61% { transform: translate3d(var(--ldg1-cv-hand-shift-left),2px,0) rotate(-2.8deg); }
	82% { transform: translate3d(var(--ldg1-cv-hand-shift-left),-2px,0) rotate(-2.5deg); }
}

@keyframes ldg1CvHandRightV142 {
	0%,100% { transform: translate3d(var(--ldg1-cv-hand-shift-right),1px,0) rotate(2.6deg); }
	34% { transform: translate3d(var(--ldg1-cv-hand-shift-right),-4px,0) rotate(2.9deg); }
	67% { transform: translate3d(var(--ldg1-cv-hand-shift-right),3px,0) rotate(2.3deg); }
	86% { transform: translate3d(var(--ldg1-cv-hand-shift-right),-1px,0) rotate(2.7deg); }
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-close-layer {
	position: absolute;
	z-index: 40;
	top: 0;
	left: 50%;
	width: var(--ldg1-cv-page-width);
	height: 0;
	transform: translateX(-50%);
	pointer-events: none;
	overflow: visible;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-close--floating {
	position: absolute;
	top: -18px;
	right: var(--ldg1-cv-close-overhang);
	display: grid;
	place-items: center;
	width: var(--ldg1-cv-close-size);
	height: var(--ldg1-cv-close-size);
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	outline: none;
	background:
		radial-gradient(circle at 38% 32%, rgba(77, 31, 55, .92), rgba(8, 7, 12, .98) 57%, #020308 100%);
	box-shadow:
		0 0 0 2px rgba(224, 229, 236, .90),
		0 0 0 5px rgba(66, 67, 75, .95),
		0 0 0 7px rgba(255, 53, 145, .88),
		0 0 0 10px rgba(13, 14, 20, .94),
		0 0 22px rgba(255, 41, 137, .48),
		0 12px 24px rgba(0,0,0,.44),
		0 0 16px rgba(255, 53, 145, .16) inset;
	color: #ffe8f3;
	cursor: pointer;
	pointer-events: auto;
	-webkit-tap-highlight-color: transparent;
	transition: transform 180ms ease, filter 180ms ease, box-shadow 180ms ease;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-close--floating::before,
.ldg1[data-ldg1-build="V142"] .ldg1__cv-close--floating::after {
	content: '';
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-close--floating::before {
	inset: 7px;
	border: 1px solid rgba(255, 91, 166, .55);
	box-shadow: 0 0 10px rgba(255, 44, 141, .34) inset;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-close--floating::after {
	inset: 2px;
	border: 1px solid rgba(255,255,255,.16);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-close--floating svg {
	position: relative;
	z-index: 2;
	width: 54%;
	height: 54%;
	fill: none;
	stroke: currentColor;
	stroke-width: 3;
	stroke-linecap: round;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-close--floating:hover {
	transform: translateY(-1px);
	filter: brightness(1.10);
	box-shadow:
		0 0 0 2px #fff,
		0 0 0 5px rgba(79, 81, 91, .98),
		0 0 0 7px #ff4197,
		0 0 0 10px rgba(13,14,20,.96),
		0 0 28px rgba(255, 45, 143, .62),
		0 12px 24px rgba(0,0,0,.44);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-close--floating:active {
	transform: translateY(1px);
	filter: brightness(.94);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-close--floating:focus-visible {
	box-shadow:
		0 0 0 2px #fff,
		0 0 0 5px #161922,
		0 0 0 8px #ff3f98,
		0 0 0 11px rgba(255,255,255,.70),
		0 0 28px rgba(255, 45, 143, .65);
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-layer.is-open .ldg1__cv-close--floating {
	animation: ldg1CvCloseRevealV142 360ms cubic-bezier(.2,.82,.2,1) both;
}

@keyframes ldg1CvCloseRevealV142 {
	0% { opacity: 0; transform: translate3d(-10px, 10px, 0) scale(.88); }
	100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-meta {
	position: relative;
	z-index: 25;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin-top: -8px;
	pointer-events: none;
}

.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 28px;
	padding: .48rem .84rem;
	border: 1px solid rgba(255, 78, 156, .22);
	border-radius: 999px;
	background: rgba(8, 7, 13, .72);
	box-shadow: 0 8px 18px rgba(0,0,0,.24);
	color: rgba(255, 220, 238, .82);
	font: 700 10px/1 Inter, system-ui, sans-serif;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__viewport,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__hud,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ld-audio-console-shell,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ld-audio-blackhole-tab,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__selection,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__instruction,
.ldg1[data-ldg1-build="V142"].is-cv-reader-open .ldg1__page-link {
	pointer-events: none !important;
}

@media (max-width: 1100px) {
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-reader-stage {
		--ldg1-cv-stage-width: min(590px, calc(100vw - 18px));
		--ldg1-cv-side-gutter: 59px;
		--ldg1-cv-gutter-total: 118px;
		--ldg1-cv-toolbar-width: min(540px, calc(100vw - 24px));
		--ldg1-cv-close-size: 66px;
		--ldg1-cv-close-overhang: -23px;
		--ldg1-cv-hand-width: clamp(188px, 23vw, 278px);
		--ldg1-cv-hand-shift-left: -63%;
		--ldg1-cv-hand-shift-right: 63%;
		--ldg1-cv-hand-bottom: clamp(-98px, -7.5vw, -72px);
	}
}

@media (max-width: 767px) {
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-layer {
		padding: 6px;
	}

	.ldg1[data-ldg1-build="V142"] .ldg1__cv-reader-stage {
		--ldg1-cv-stage-width: min(520px, calc(100vw - 12px));
		--ldg1-cv-side-gutter: 46px;
		--ldg1-cv-gutter-total: 92px;
		--ldg1-cv-toolbar-width: calc(100vw - 12px);
		--ldg1-cv-toolbar-height: 50px;
		--ldg1-cv-close-size: 54px;
		--ldg1-cv-close-overhang: -17px;
		--ldg1-cv-hand-width: clamp(156px, 27vw, 210px);
		--ldg1-cv-hand-shift-left: -60%;
		--ldg1-cv-hand-shift-right: 60%;
		--ldg1-cv-hand-bottom: clamp(-84px, -8.4vw, -60px);
		gap: 18px;
	}

	.ldg1[data-ldg1-build="V142"] .ldg1__cv-toolbar {
		grid-template-columns: 29fr 42fr 29fr;
		padding: 2px;
	}

	.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-control,
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-download {
		gap: 5px;
		min-height: 44px;
		padding-inline: clamp(5px, 2.5vw, 11px);
		font-size: clamp(9px, 3vw, 12px);
		letter-spacing: .065em;
	}

	.ldg1[data-ldg1-build="V142"] .ldg1__cv-download {
		height: calc(100% + 7px);
		margin-inline: -6px;
		padding-inline: clamp(8px, 2.6vw, 13px);
		letter-spacing: .035em;
	}

	.ldg1[data-ldg1-build="V142"] .ldg1__cv-control-icon {
		width: 16px;
		height: 16px;
	}

	.ldg1[data-ldg1-build="V142"] .ldg1__cv-close--floating {
		top: -12px;
	}

	.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-label {
		min-height: 25px;
		padding: .40rem .68rem;
		font-size: 9px;
	}
}

@media (max-width: 380px) {
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-control,
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-download {
		gap: 3px;
		padding-inline: 4px;
		font-size: 9px;
		letter-spacing: .035em;
	}

	.ldg1[data-ldg1-build="V142"] .ldg1__cv-download {
		padding-inline: 6px;
	}

	.ldg1[data-ldg1-build="V142"] .ldg1__cv-control-icon {
		width: 14px;
		height: 14px;
	}
}

@media (max-height: 520px) and (orientation: landscape) {
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-reader-stage {
		--ldg1-cv-toolbar-height: 46px;
		--ldg1-cv-close-size: 50px;
		--ldg1-cv-close-overhang: -15px;
		gap: 12px;
	}

	.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-control,
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-download {
		min-height: 42px;
		font-size: 10px;
	}

	.ldg1[data-ldg1-build="V142"] .ldg1__cv-close--floating {
		top: -8px;
	}

	.ldg1[data-ldg1-build="V142"] .ldg1__cv-meta {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-layer,
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-dialog,
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-control,
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-download,
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-shell,
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-page-turner,
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-close--floating,
	.ldg1[data-ldg1-build="V142"] .ldg1__cv-hand {
		transition-duration: 1ms !important;
		animation-duration: 1ms !important;
		animation-iteration-count: 1 !important;
	}
}


/* =========================================================
   V142 FINAL LOCK — THIRD-ROOM ALBUM CHARACTER

   Coordinate method
   - The supplied green dots represent the TOP-left and TOP-right corners
     of the complete 581 × 900 Album-Character.webp canvas.
   - The character is therefore positioned from top/left, never bottom.
   - The native portrait ratio is preserved and the room clips the small
     intentional lower overhang at the bottom of the viewport.
   - Placement scales with Gallery-1.jpg because the room and character
     use the same percentage coordinate system.
   ========================================================= */

.ldg1[data-ldg1-build="V142"] .ldg1__room--three >
.ldg1__album-character[data-ldg1-album-character-coordinate-lock-v142] {
	position: absolute;
	z-index: 18;
	display: block;
	left: 27.964203% !important;
	top: 42.698318% !important;
	bottom: auto !important;
	width: 15.491257% !important;
	height: auto !important;
	margin: 0;
	padding: 0;
	border: 0;
	line-height: 0;
	pointer-events: none !important;
	user-select: none;
	-webkit-user-select: none;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	transform: translate3d(var(--ldg1-album-shift, 0px), 0, 0);
	transform-origin: 50% 0;
	will-change: transform;
}

.ldg1[data-ldg1-build="V142"] .ldg1__room--three >
.ldg1__album-character[data-ldg1-album-character-coordinate-lock-v142] .ldg1__album-character-img {
	position: relative;
	display: block;
	width: 100% !important;
	height: auto !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0;
	padding: 0;
	border: 0;
	object-fit: contain;
	object-position: 50% 0;
	pointer-events: none !important;
	user-select: none;
	-webkit-user-select: none;
	-webkit-user-drag: none;
	filter:
		drop-shadow(0 14px 18px rgba(0, 0, 0, .34))
		drop-shadow(0 0 10px rgba(255, 191, 37, .08));
}

/* Framed artwork and its controls must always remain above the character. */
.ldg1[data-ldg1-build="V142"] .ldg1__room--three .ldg1__exhibit,
.ldg1[data-ldg1-build="V142"] .ldg1__room--three .ldg1__exhibit:hover,
.ldg1[data-ldg1-build="V142"] .ldg1__room--three .ldg1__exhibit:focus,
.ldg1[data-ldg1-build="V142"] .ldg1__room--three .ldg1__exhibit:focus-visible,
.ldg1[data-ldg1-build="V142"] .ldg1__room--three .ldg1__exhibit:active {
	z-index: 20 !important;
}

@media (prefers-reduced-motion: reduce) {
	.ldg1[data-ldg1-build="V142"] .ldg1__album-character {
		transition: none !important;
	}
}


/* =========================================================
   V142 FINAL LOCK — INTERACTIVE THIRD-ROOM ALBUM CHARACTER

   Behaviour
   - Album-Character.webp is the only resting artwork.
   - Clicking/tapping changes the same physical image element instantly to
     Album-Character-Look.webp, so no duplicate pose can appear.
   - The link opens the Who Am I EP page in a separate browser tab using a
     real target=_blank anchor, preserving browser popup reliability.
   - The original Album character returns when this gallery tab regains focus,
     becomes visible again, or after a short fallback interval.

   Placement
   - The V137 top-left/top-right green-dot coordinate lock is unchanged.
   - Both assets use the exact same element, dimensions and top-based position.
   ========================================================= */

.ldg1[data-ldg1-build="V142"] .ldg1__room--three >
.ldg1__album-character[data-ldg1-album-character-coordinate-lock-v142] {
	pointer-events: auto !important;
	cursor: pointer;
	text-decoration: none !important;
	outline: none;
	-webkit-tap-highlight-color: transparent;
	touch-action: manipulation;
}

.ldg1[data-ldg1-build="V142"] .ldg1__room--three >
.ldg1__album-character[data-ldg1-album-character-coordinate-lock-v142] .ldg1__album-character-img {
	pointer-events: none !important;
	transition: filter 180ms ease, transform 180ms ease;
	transform: translate3d(0, 0, 0);
}

.ldg1[data-ldg1-build="V142"] .ldg1__room--three >
.ldg1__album-character[data-ldg1-album-character-coordinate-lock-v142]:hover .ldg1__album-character-img,
.ldg1[data-ldg1-build="V142"] .ldg1__room--three >
.ldg1__album-character[data-ldg1-album-character-coordinate-lock-v142]:focus-visible .ldg1__album-character-img {
	filter:
		drop-shadow(0 14px 18px rgba(0, 0, 0, .34))
		drop-shadow(0 0 14px rgba(255, 191, 37, .18));
}

.ldg1[data-ldg1-build="V142"] .ldg1__room--three >
.ldg1__album-character[data-ldg1-album-character-coordinate-lock-v142]:focus-visible {
	filter: drop-shadow(0 0 9px rgba(255, 211, 95, .32));
}

.ldg1[data-ldg1-build="V142"] .ldg1__room--three >
.ldg1__album-character[data-ldg1-album-character-coordinate-lock-v142]:active .ldg1__album-character-img,
.ldg1[data-ldg1-build="V142"] .ldg1__room--three >
.ldg1__album-character[data-ldg1-album-character-coordinate-lock-v142].is-album-looking .ldg1__album-character-img {
	transform: translate3d(0, 0, 0) scale(1.002);
}

@media (prefers-reduced-motion: reduce) {
	.ldg1[data-ldg1-build="V142"] .ldg1__album-character,
	.ldg1[data-ldg1-build="V142"] .ldg1__album-character-img {
		transition: none !important;
	}
}


/* =========================================================
   LORD DANCER — SCOPED COOKIEYES DESIGN
   Active only on body.ld-cookie-theme--lord-dancer
   Dual-theme build: August 2026
   ========================================================= */


/* =========================================================
   1. DESIGN VARIABLES
   ========================================================= */

body.ld-cookie-theme--lord-dancer {
	--ld-cookie-black: #060605;
	--ld-cookie-black-soft: #11100c;
	--ld-cookie-panel: rgba(10, 9, 7, 0.975);
	--ld-cookie-panel-light: rgba(28, 24, 15, 0.96);

	--ld-cookie-gold: #d3a72d;
	--ld-cookie-gold-light: #f5d76e;
	--ld-cookie-gold-bright: #fff0aa;
	--ld-cookie-gold-dark: #8e6811;

	--ld-cookie-cream: #fff9e9;
	--ld-cookie-text: #ded6c2;
	--ld-cookie-muted: #c9c0aa;

	--ld-cookie-line: rgba(211, 167, 45, 0.52);
	--ld-cookie-line-soft: rgba(211, 167, 45, 0.22);

	--ld-cookie-logo:
		url("https://www.simme.co.uk/wp-content/uploads/2026/07/Gold-logo.webp");
}


/* =========================================================
   2. GLOBAL COOKIEYES BOX SIZING
   Prevents buttons and panels overflowing
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-consent-container,
body.ld-cookie-theme--lord-dancer .cky-consent-container *,
body.ld-cookie-theme--lord-dancer .cky-consent-container *::before,
body.ld-cookie-theme--lord-dancer .cky-consent-container *::after,
body.ld-cookie-theme--lord-dancer .cky-preference-center,
body.ld-cookie-theme--lord-dancer .cky-preference-center *,
body.ld-cookie-theme--lord-dancer .cky-preference-center *::before,
body.ld-cookie-theme--lord-dancer .cky-preference-center *::after,
body.ld-cookie-theme--lord-dancer .cky-btn-revisit-wrapper,
body.ld-cookie-theme--lord-dancer .cky-btn-revisit-wrapper *,
body.ld-cookie-theme--lord-dancer .cky-btn-revisit-wrapper *::before,
body.ld-cookie-theme--lord-dancer .cky-btn-revisit-wrapper *::after {
	box-sizing: border-box !important;
}


/* =========================================================
   3. PAGE OVERLAY
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-overlay {
	background:
		radial-gradient(
			circle at 50% 65%,
			rgba(211, 167, 45, 0.08) 0%,
			rgba(0, 0, 0, 0.52) 42%,
			rgba(0, 0, 0, 0.78) 100%
		) !important;

	backdrop-filter: blur(5px) !important;
	-webkit-backdrop-filter: blur(5px) !important;
}


/* =========================================================
   4. MAIN COOKIE BANNER POSITION
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-consent-container {
	position: fixed !important;

	top: 50% !important;
	left: 50% !important;
	right: auto !important;
	bottom: auto !important;

	width: min(760px, calc(100vw - 40px)) !important;
	max-width: 760px !important;
	min-width: 0 !important;

	margin: 0 !important;
	padding: 0 !important;

	transform: translate(-50%, -50%) !important;

	z-index: 2147483646 !important;

	font-family: inherit !important;
}


/* =========================================================
   5. MAIN COOKIE BANNER PANEL
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-consent-bar {
	position: relative !important;

	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;

	margin: 0 !important;

	padding:
		clamp(27px, 4vw, 43px)
		clamp(23px, 4vw, 42px)
		clamp(24px, 4vw, 38px) !important;

	overflow: hidden !important;

	background:
		linear-gradient(
			145deg,
			rgba(30, 26, 16, 0.98) 0%,
			rgba(8, 8, 7, 0.985) 52%,
			rgba(17, 14, 8, 0.985) 100%
		) !important;

	border: 1px solid rgba(211, 167, 45, 0.86) !important;
	border-radius: 18px !important;

	box-shadow:
		0 0 0 1px rgba(0, 0, 0, 0.9),
		0 0 25px rgba(211, 167, 45, 0.17),
		0 20px 70px rgba(0, 0, 0, 0.82),
		inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;

	font-family: inherit !important;
}


/* Illuminated gold line across the top */

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-consent-bar::before {
	content: "" !important;

	position: absolute !important;
	top: 0 !important;
	left: 8% !important;

	width: 84% !important;
	height: 2px !important;

	background:
		linear-gradient(
			90deg,
			transparent 0%,
			var(--ld-cookie-gold) 20%,
			var(--ld-cookie-gold-bright) 50%,
			var(--ld-cookie-gold) 80%,
			transparent 100%
		) !important;

	box-shadow:
		0 0 7px rgba(211, 167, 45, 0.85),
		0 0 17px rgba(211, 167, 45, 0.48) !important;

	pointer-events: none !important;
}


/* Subtle gallery spotlight */

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-consent-bar::after {
	content: "" !important;

	position: absolute !important;
	top: -130px !important;
	left: 50% !important;

	width: 480px !important;
	height: 270px !important;

	transform: translateX(-50%) !important;

	background:
		radial-gradient(
			ellipse,
			rgba(211, 167, 45, 0.12) 0%,
			rgba(211, 167, 45, 0.035) 43%,
			transparent 73%
		) !important;

	pointer-events: none !important;
}


/* Keep banner content above decorative effects */

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-notice,
body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-notice-group {
	position: relative !important;
	z-index: 2 !important;

	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
}


/* =========================================================
   6. MAIN COOKIE TITLE AND LOGO
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-title {
	position: relative !important;

	display: flex !important;
	align-items: center !important;

	width: 100% !important;
	min-height: 54px !important;

	margin: 0 0 23px !important;
	padding: 0 0 0 68px !important;

	color: var(--ld-cookie-cream) !important;

	font-family: inherit !important;
	font-size: clamp(28px, 4.4vw, 42px) !important;
	font-weight: 800 !important;
	line-height: 1.08 !important;
	letter-spacing: -0.025em !important;

	text-shadow:
		0 3px 3px rgba(0, 0, 0, 0.92),
		0 0 18px rgba(211, 167, 45, 0.1) !important;
}


/* White Lord Dancer logo */

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-title::before {
	content: "" !important;

	position: absolute !important;
	top: 50% !important;
	left: 0 !important;

	width: 52px !important;
	height: 52px !important;

	transform: translateY(-50%) !important;

	background-color: var(--ld-cookie-cream) !important;

	-webkit-mask-image: var(--ld-cookie-logo) !important;
	mask-image: var(--ld-cookie-logo) !important;

	-webkit-mask-repeat: no-repeat !important;
	mask-repeat: no-repeat !important;

	-webkit-mask-position: center !important;
	mask-position: center !important;

	-webkit-mask-size: contain !important;
	mask-size: contain !important;

	filter:
		drop-shadow(0 0 5px rgba(255, 255, 255, 0.2))
		drop-shadow(0 0 10px rgba(211, 167, 45, 0.2)) !important;

	pointer-events: none !important;
}


/* Gold line under the title text */

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-title::after {
	content: "" !important;

	position: absolute !important;
	left: 68px !important;
	bottom: -12px !important;

	width: 72px !important;
	height: 3px !important;

	margin: 0 !important;

	background:
		linear-gradient(
			90deg,
			var(--ld-cookie-gold-light),
			rgba(211, 167, 45, 0.1)
		) !important;

	box-shadow:
		0 0 8px rgba(211, 167, 45, 0.45) !important;

	pointer-events: none !important;
}


/* =========================================================
   7. MAIN COOKIE DESCRIPTION
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-notice-des {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;

	margin: 0 !important;
}

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-notice-des,
body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-notice-des p {
	color: var(--ld-cookie-text) !important;

	font-family: inherit !important;
	font-size: clamp(15px, 2vw, 18px) !important;
	font-weight: 400 !important;
	line-height: 1.68 !important;
	letter-spacing: 0.005em !important;
}

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-notice-des p {
	margin: 0 !important;
}

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-notice-des a {
	color: var(--ld-cookie-gold-light) !important;

	text-decoration-color: rgba(211, 167, 45, 0.58) !important;
	text-underline-offset: 3px !important;
}

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-notice-des a:hover {
	color: var(--ld-cookie-gold-bright) !important;
}


/* =========================================================
   8. MAIN BANNER BUTTON LAYOUT
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-notice-btn-wrapper {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 13px !important;

	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;

	margin: 28px 0 0 !important;
	padding: 0 !important;
}


/* All main banner buttons */

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-notice-btn-wrapper .cky-btn,
body.ld-cookie-theme--lord-dancer .cky-consent-container [data-cky-tag="customize-button"],
body.ld-cookie-theme--lord-dancer .cky-consent-container [data-cky-tag="reject-button"],
body.ld-cookie-theme--lord-dancer .cky-consent-container [data-cky-tag="accept-button"] {
	position: relative !important;

	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	min-height: 55px !important;

	margin: 0 !important;
	padding: 12px 14px !important;

	border-radius: 8px !important;

	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.025em !important;

	white-space: normal !important;
	overflow-wrap: break-word !important;
	word-break: normal !important;

	cursor: pointer !important;

	transition:
		transform 200ms ease,
		background 200ms ease,
		color 200ms ease,
		border-color 200ms ease,
		box-shadow 200ms ease !important;
}


/* Customise button */

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-btn-customize,
body.ld-cookie-theme--lord-dancer .cky-consent-container [data-cky-tag="customize-button"] {
	color: var(--ld-cookie-cream) !important;

	background:
		linear-gradient(
			180deg,
			rgba(211, 167, 45, 0.08),
			rgba(6, 6, 5, 0.84)
		) !important;

	border: 1px solid rgba(211, 167, 45, 0.78) !important;

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.05),
		0 6px 18px rgba(0, 0, 0, 0.3) !important;
}


/* Reject button */

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-btn-reject,
body.ld-cookie-theme--lord-dancer .cky-consent-container [data-cky-tag="reject-button"] {
	color: var(--ld-cookie-cream) !important;

	background:
		linear-gradient(
			180deg,
			rgba(211, 167, 45, 0.075),
			rgba(6, 6, 5, 0.9)
		) !important;

	border: 1px solid rgba(211, 167, 45, 0.78) !important;

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.05),
		0 6px 18px rgba(0, 0, 0, 0.3) !important;
}


/* Accept button */

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-btn-accept,
body.ld-cookie-theme--lord-dancer .cky-consent-container [data-cky-tag="accept-button"] {
	color: #080705 !important;

	background:
		linear-gradient(
			115deg,
			#fff0a5 0%,
			#f5d66d 30%,
			#d2a522 66%,
			#fff0a5 100%
		) !important;

	border: 1px solid var(--ld-cookie-gold-bright) !important;

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.7),
		0 0 16px rgba(211, 167, 45, 0.24),
		0 8px 21px rgba(0, 0, 0, 0.38) !important;

	text-shadow:
		0 1px 0 rgba(255, 255, 255, 0.28) !important;
}


/* Main button hover effects */

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-btn-customize:hover,
body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-btn-reject:hover,
body.ld-cookie-theme--lord-dancer .cky-consent-container [data-cky-tag="customize-button"]:hover,
body.ld-cookie-theme--lord-dancer .cky-consent-container [data-cky-tag="reject-button"]:hover {
	color: #080705 !important;

	background:
		linear-gradient(
			115deg,
			#fff0a5,
			#d3a72d 48%,
			#9e7414
		) !important;

	border-color: var(--ld-cookie-gold-bright) !important;

	box-shadow:
		0 0 18px rgba(211, 167, 45, 0.31),
		0 9px 24px rgba(0, 0, 0, 0.42) !important;

	transform: translateY(-2px) !important;
}

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-btn-accept:hover,
body.ld-cookie-theme--lord-dancer .cky-consent-container [data-cky-tag="accept-button"]:hover {
	background:
		linear-gradient(
			115deg,
			#fff8d5 0%,
			#ffe58a 30%,
			#dfb52f 68%,
			#fff4bd 100%
		) !important;

	border-color: #fff7d1 !important;

	box-shadow:
		0 0 24px rgba(211, 167, 45, 0.47),
		0 10px 27px rgba(0, 0, 0, 0.47) !important;

	transform: translateY(-2px) !important;
}


/* =========================================================
   9. PREFERENCE CENTRE PANEL
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-preference-center {
	overflow: hidden !important;

	width: min(820px, calc(100vw - 32px)) !important;
	max-width: 820px !important;
	min-width: 0 !important;

	max-height: min(850px, calc(100vh - 28px)) !important;

	background:
		linear-gradient(
			145deg,
			rgba(25, 22, 14, 0.995),
			rgba(7, 7, 6, 0.995) 53%,
			rgba(17, 14, 8, 0.995)
		) !important;

	border: 1px solid rgba(211, 167, 45, 0.85) !important;
	border-radius: 17px !important;

	box-shadow:
		0 0 0 1px rgba(0, 0, 0, 0.92),
		0 0 29px rgba(211, 167, 45, 0.18),
		0 26px 85px rgba(0, 0, 0, 0.88) !important;

	font-family: inherit !important;
}


/* =========================================================
   10. PREFERENCE CENTRE HEADER
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-header {
	position: relative !important;

	width: 100% !important;
	max-width: 100% !important;

	padding: 24px 28px !important;

	background:
		linear-gradient(
			180deg,
			rgba(211, 167, 45, 0.09),
			rgba(0, 0, 0, 0)
		) !important;

	border-bottom: 1px solid var(--ld-cookie-line) !important;
}


/* Preference centre title */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-title {
	position: relative !important;

	display: flex !important;
	align-items: center !important;

	width: 100% !important;
	min-height: 50px !important;

	margin: 0 !important;
	padding:
		0
		65px
		0
		64px !important;

	color: var(--ld-cookie-cream) !important;

	font-family: inherit !important;
	font-size: clamp(24px, 3.4vw, 34px) !important;
	font-weight: 800 !important;
	line-height: 1.15 !important;
	letter-spacing: -0.02em !important;

	text-shadow:
		0 2px 3px rgba(0, 0, 0, 0.82) !important;
}


/* White logo beside preference title */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-title::before {
	content: "" !important;

	position: absolute !important;
	top: 50% !important;
	left: 0 !important;

	width: 48px !important;
	height: 48px !important;

	transform: translateY(-50%) !important;

	background-color: var(--ld-cookie-cream) !important;

	-webkit-mask-image: var(--ld-cookie-logo) !important;
	mask-image: var(--ld-cookie-logo) !important;

	-webkit-mask-repeat: no-repeat !important;
	mask-repeat: no-repeat !important;

	-webkit-mask-position: center !important;
	mask-position: center !important;

	-webkit-mask-size: contain !important;
	mask-size: contain !important;

	filter:
		drop-shadow(0 0 5px rgba(255, 255, 255, 0.18))
		drop-shadow(0 0 10px rgba(211, 167, 45, 0.2)) !important;

	pointer-events: none !important;
}


/* Close button */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-close {
	position: absolute !important;
	top: 50% !important;
	right: 24px !important;

	width: 42px !important;
	height: 42px !important;

	margin: 0 !important;
	padding: 10px !important;

	transform: translateY(-50%) !important;

	background:
		linear-gradient(
			145deg,
			rgba(211, 167, 45, 0.12),
			rgba(7, 7, 6, 0.88)
		) !important;

	border: 1px solid rgba(211, 167, 45, 0.74) !important;
	border-radius: 50% !important;

	box-shadow:
		0 4px 13px rgba(0, 0, 0, 0.35) !important;

	transition:
		background 200ms ease,
		border-color 200ms ease,
		box-shadow 200ms ease,
		transform 200ms ease !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-close:hover {
	background:
		linear-gradient(
			145deg,
			#e0b73f,
			#9e7414
		) !important;

	border-color: var(--ld-cookie-gold-bright) !important;

	box-shadow:
		0 0 14px rgba(211, 167, 45, 0.38),
		0 6px 15px rgba(0, 0, 0, 0.42) !important;

	transform:
		translateY(-50%)
		rotate(90deg) !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-close img,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-close svg {
	filter:
		brightness(0)
		invert(95%)
		sepia(14%)
		saturate(491%)
		hue-rotate(335deg)
		brightness(107%)
		contrast(103%) !important;
}


/* =========================================================
   11. PREFERENCE CENTRE BODY
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-body-wrapper {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;

	background: transparent !important;
	overflow-x: hidden !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-content-wrapper {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;

	padding: 24px 28px !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center p,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-content-wrapper,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-header-des,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-header-des p {
	color: var(--ld-cookie-text) !important;

	font-family: inherit !important;
	font-size: 15px !important;
	line-height: 1.65 !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center a,
body.ld-cookie-theme--lord-dancer .cky-preference-center a:link,
body.ld-cookie-theme--lord-dancer .cky-preference-center a:visited {
	color: var(--ld-cookie-gold-light) !important;

	text-decoration-color: rgba(211, 167, 45, 0.55) !important;
	text-underline-offset: 3px !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center a:hover {
	color: var(--ld-cookie-gold-bright) !important;
}


/* Show more / show less */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-show-desc-btn,
body.ld-cookie-theme--lord-dancer .cky-preference-center button.cky-show-desc-btn,
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="detail-more-button"],
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="detail-less-button"] {
	color: var(--ld-cookie-gold-light) !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;

	font-family: inherit !important;
	font-weight: 800 !important;

	text-decoration: none !important;
	text-shadow:
		0 0 8px rgba(211, 167, 45, 0.22) !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-show-desc-btn:hover,
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="detail-more-button"]:hover,
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="detail-less-button"]:hover {
	color: var(--ld-cookie-gold-bright) !important;

	text-decoration: underline !important;
	text-decoration-color: rgba(211, 167, 45, 0.65) !important;
	text-underline-offset: 4px !important;
}


/* =========================================================
   12. COOKIE CATEGORY ACCORDIONS
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-wrapper {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;

	margin: 0 !important;
	padding: 0 28px 24px !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-item {
	position: relative !important;

	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;

	margin: 0 0 13px !important;

	overflow: hidden !important;

	background:
		linear-gradient(
			135deg,
			rgba(255, 255, 255, 0.04),
			rgba(211, 167, 45, 0.024)
		) !important;

	border: 1px solid rgba(211, 167, 45, 0.42) !important;
	border-radius: 12px !important;

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.025),
		0 6px 18px rgba(0, 0, 0, 0.16) !important;

	transition:
		border-color 200ms ease,
		box-shadow 200ms ease !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-item:hover {
	border-color: rgba(211, 167, 45, 0.75) !important;

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.04),
		0 0 15px rgba(211, 167, 45, 0.08),
		0 7px 20px rgba(0, 0, 0, 0.2) !important;
}


/* Accordion header */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-header {
	position: relative !important;

	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;

	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	min-height: 74px !important;

	margin: 0 !important;

	padding:
		18px
		22px
		18px
		80px !important;

	background: transparent !important;
}


/* Accordion category title */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-btn {
	position: relative !important;

	width: auto !important;
	max-width: 100% !important;
	min-width: 0 !important;

	margin: 0 !important;
	padding: 0 !important;

	color: var(--ld-cookie-cream) !important;
	background: transparent !important;

	border: 0 !important;
	border-radius: 0 !important;

	box-shadow: none !important;

	font-family: inherit !important;
	font-size: 17px !important;
	font-weight: 800 !important;
	line-height: 1.25 !important;

	text-align: left !important;
}


/* Always active label */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-always-active {
	flex-shrink: 0 !important;

	margin-left: auto !important;
	padding-left: 18px !important;

	color: var(--ld-cookie-gold-light) !important;

	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 800 !important;

	white-space: nowrap !important;
}


/* Accordion description */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-header-des {
	position: relative !important;

	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;

	margin: 0 !important;

	padding:
		4px
		22px
		24px
		22px !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-header-des p {
	width: 100% !important;
	max-width: 100% !important;

	margin: 0 !important;

	color: var(--ld-cookie-text) !important;
}


/* =========================================================
   13. ACCORDION ARROW CONTROLS
   Dark bronze/gold rather than bright yellow
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron {
	position: absolute !important;

	top: 18px !important;
	left: 21px !important;
	right: auto !important;
	bottom: auto !important;

	display: block !important;

	width: 40px !important;
	height: 40px !important;

	margin: 0 !important;
	padding: 0 !important;

	background:
		linear-gradient(
			145deg,
			#352b16 0%,
			#18140c 50%,
			#070706 100%
		) !important;

	border: 1px solid #b98b1c !important;
	border-radius: 10px !important;

	box-shadow:
		inset 0 1px 0 rgba(255, 244, 190, 0.12),
		inset 0 -1px 0 rgba(0, 0, 0, 0.72),
		0 0 0 1px rgba(0, 0, 0, 0.72),
		0 0 10px rgba(185, 139, 28, 0.18),
		0 5px 14px rgba(0, 0, 0, 0.42) !important;

	transform: rotate(0deg) !important;
	transform-origin: center center !important;

	overflow: visible !important;

	z-index: 5 !important;

	pointer-events: none !important;

	transition:
		transform 220ms ease,
		background 220ms ease,
		border-color 220ms ease,
		box-shadow 220ms ease !important;
}


/* Hide CookieYes's original arrow */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron i,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron img,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron svg,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron span,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron .cky-chevron-right {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
}


/* Draw the upper and lower chevron lines */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron::before,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron::after {
	content: "" !important;

	position: absolute !important;
	left: 50% !important;

	display: block !important;

	width: 12px !important;
	height: 3px !important;

	margin: 0 !important;

	background:
		linear-gradient(
			90deg,
			#b98819 0%,
			#f5d76e 50%,
			#c89a24 100%
		) !important;

	border: 0 !important;
	border-radius: 5px !important;

	box-shadow:
		0 0 4px rgba(211, 167, 45, 0.45) !important;

	opacity: 1 !important;
	visibility: visible !important;

	transform-origin: center center !important;
}


/* Top chevron stroke */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron::before {
	top: 14px !important;

	transform:
		translateX(-57%)
		rotate(45deg) !important;
}


/* Bottom chevron stroke */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron::after {
	top: 22px !important;

	transform:
		translateX(-57%)
		rotate(-45deg) !important;
}


/* Accordion control hover */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-item:hover
.cky-accordion-chevron {
	background:
		linear-gradient(
			145deg,
			#493917 0%,
			#241b0b 49%,
			#090806 100%
		) !important;

	border-color: #d3a72d !important;

	box-shadow:
		inset 0 1px 0 rgba(255, 244, 190, 0.17),
		inset 0 -1px 0 rgba(0, 0, 0, 0.72),
		0 0 0 1px rgba(0, 0, 0, 0.72),
		0 0 14px rgba(211, 167, 45, 0.28),
		0 6px 16px rgba(0, 0, 0, 0.46) !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-item:hover
.cky-accordion-chevron::before,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-item:hover
.cky-accordion-chevron::after {
	background:
		linear-gradient(
			90deg,
			#c99c28,
			#fff0aa 50%,
			#d6aa37
		) !important;

	box-shadow:
		0 0 6px rgba(211, 167, 45, 0.62) !important;
}


/* Open accordion states */

body.ld-cookie-theme--lord-dancer .cky-preference-center
.cky-accordion-item.cky-accordion-active
.cky-accordion-chevron,
body.ld-cookie-theme--lord-dancer .cky-preference-center
.cky-accordion-item.active
.cky-accordion-chevron,
body.ld-cookie-theme--lord-dancer .cky-preference-center
.cky-accordion-item:has(
	.cky-accordion-btn[aria-expanded="true"]
)
.cky-accordion-chevron,
body.ld-cookie-theme--lord-dancer .cky-preference-center
.cky-accordion-header[aria-expanded="true"]
.cky-accordion-chevron {
	transform: rotate(90deg) !important;

	background:
		linear-gradient(
			145deg,
			#4c3b18 0%,
			#281e0b 50%,
			#0a0805 100%
		) !important;

	border-color: #d3a72d !important;

	box-shadow:
		inset 0 1px 0 rgba(255, 244, 190, 0.18),
		0 0 0 1px rgba(0, 0, 0, 0.72),
		0 0 15px rgba(211, 167, 45, 0.3),
		0 6px 16px rgba(0, 0, 0, 0.44) !important;
}


/* =========================================================
   14. COOKIE SWITCHES
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-switch {
	flex-shrink: 0 !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-switch input[type="checkbox"] {
	background-color: #39362d !important;
	border-color: rgba(255, 255, 255, 0.16) !important;

	box-shadow:
		inset 0 2px 5px rgba(0, 0, 0, 0.45) !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-switch input[type="checkbox"]:checked {
	background-color: var(--ld-cookie-gold) !important;
	border-color: var(--ld-cookie-gold-light) !important;

	box-shadow:
		inset 0 1px 2px rgba(255, 255, 255, 0.22),
		0 0 9px rgba(211, 167, 45, 0.24) !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-switch input[type="checkbox"]::before {
	background-color: #ffffff !important;

	box-shadow:
		0 2px 4px rgba(0, 0, 0, 0.34) !important;
}


/* =========================================================
   15. COOKIE DETAIL TABLES
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-audit-table,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-cookie-des-table {
	width: 100% !important;
	max-width: 100% !important;

	overflow: hidden !important;

	background: rgba(0, 0, 0, 0.28) !important;

	border: 1px solid rgba(211, 167, 45, 0.2) !important;
	border-radius: 8px !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-audit-table th,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-cookie-des-table th {
	color: var(--ld-cookie-cream) !important;
	background: rgba(211, 167, 45, 0.08) !important;

	border-color: rgba(211, 167, 45, 0.18) !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-audit-table td,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-cookie-des-table td {
	color: var(--ld-cookie-text) !important;
	background: transparent !important;

	border-color: rgba(211, 167, 45, 0.12) !important;
}


/* =========================================================
   16. PREFERENCE CENTRE FOOTER
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-footer-shadow {
	box-shadow:
		0 -10px 28px rgba(0, 0, 0, 0.52) !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-footer-wrapper {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;

	margin: 0 !important;
	padding: 19px 28px !important;

	overflow-x: hidden !important;

	background: rgba(5, 5, 4, 0.985) !important;

	border-top: 1px solid var(--ld-cookie-line) !important;
}


/* Footer button layout */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-prefrence-btn-wrapper,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-btn-wrapper {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 14px !important;

	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;

	margin: 0 !important;
	padding: 0 !important;
}


/* All preference footer buttons */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-prefrence-btn-wrapper .cky-btn,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-btn-wrapper .cky-btn,
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="reject-button"],
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="accept-button"],
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="save-button"] {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	min-height: 55px !important;

	margin: 0 !important;
	padding: 12px 14px !important;

	border-radius: 8px !important;

	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.02em !important;

	white-space: normal !important;
	overflow-wrap: break-word !important;
	word-break: normal !important;

	cursor: pointer !important;

	transition:
		transform 200ms ease,
		color 200ms ease,
		background 200ms ease,
		border-color 200ms ease,
		box-shadow 200ms ease !important;
}


/* Preference Reject All */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-reject,
body.ld-cookie-theme--lord-dancer .cky-preference-center button.cky-btn-reject,
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="reject-button"] {
	color: var(--ld-cookie-cream) !important;

	background:
		linear-gradient(
			180deg,
			rgba(211, 167, 45, 0.07),
			rgba(6, 6, 5, 0.96)
		) !important;

	border: 1px solid rgba(211, 167, 45, 0.8) !important;

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.045),
		0 0 0 1px rgba(0, 0, 0, 0.5),
		0 6px 18px rgba(0, 0, 0, 0.36) !important;
}


/* Save My Preferences */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-preferences,
body.ld-cookie-theme--lord-dancer .cky-preference-center button.cky-btn-preferences,
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="save-button"] {
	color: #080705 !important;

	background:
		linear-gradient(
			115deg,
			#fff0a5 0%,
			#f5d66d 29%,
			#d2a522 66%,
			#fff0a5 100%
		) !important;

	border: 1px solid var(--ld-cookie-gold-bright) !important;

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.72),
		0 0 18px rgba(211, 167, 45, 0.27),
		0 8px 22px rgba(0, 0, 0, 0.42) !important;

	text-shadow:
		0 1px 0 rgba(255, 255, 255, 0.25) !important;
}


/* Preference Accept All */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-accept,
body.ld-cookie-theme--lord-dancer .cky-preference-center button.cky-btn-accept,
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="accept-button"] {
	color: #080705 !important;

	background:
		linear-gradient(
			115deg,
			#fff0a5 0%,
			#f5d66d 30%,
			#d2a522 66%,
			#fff0a5 100%
		) !important;

	border: 1px solid var(--ld-cookie-gold-bright) !important;

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.7),
		0 0 16px rgba(211, 167, 45, 0.24),
		0 8px 21px rgba(0, 0, 0, 0.38) !important;

	text-shadow:
		0 1px 0 rgba(255, 255, 255, 0.28) !important;
}


/* Preference button hover effects */

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-reject:hover,
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="reject-button"]:hover {
	color: #080705 !important;

	background:
		linear-gradient(
			115deg,
			#fff0a5,
			#d3a72d 48%,
			#9e7414
		) !important;

	border-color: var(--ld-cookie-gold-bright) !important;

	box-shadow:
		0 0 18px rgba(211, 167, 45, 0.34),
		0 9px 24px rgba(0, 0, 0, 0.42) !important;

	transform: translateY(-2px) !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-preferences:hover,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-accept:hover,
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="save-button"]:hover,
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="accept-button"]:hover {
	color: #050504 !important;

	background:
		linear-gradient(
			115deg,
			#fff8d5 0%,
			#ffe58a 30%,
			#dfb52f 68%,
			#fff4bd 100%
		) !important;

	border-color: #fff7d1 !important;

	box-shadow:
		0 0 25px rgba(211, 167, 45, 0.46),
		0 10px 27px rgba(0, 0, 0, 0.47) !important;

	transform: translateY(-2px) !important;
}


/* =========================================================
   17. ACCESSIBLE FOCUS STATES
   Removes CookieYes blue focus styling
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-btn:focus,
body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-btn:focus-visible,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn:focus,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn:focus-visible,
body.ld-cookie-theme--lord-dancer .cky-preference-center button:focus-visible {
	outline: 2px solid var(--ld-cookie-gold-bright) !important;
	outline-offset: 3px !important;

	border-color: var(--ld-cookie-gold-bright) !important;

	box-shadow:
		0 0 0 2px rgba(0, 0, 0, 0.95),
		0 0 0 4px rgba(211, 167, 45, 0.78),
		0 0 17px rgba(211, 167, 45, 0.38) !important;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-btn:focus,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-btn:focus-visible {
	outline: none !important;
}


/* =========================================================
   18. REVISIT COOKIE SETTINGS BUTTON
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-btn-revisit-wrapper {
	width: 46px !important;
	height: 46px !important;

	background:
		linear-gradient(
			145deg,
			#2a2212,
			#070706
		) !important;

	border: 1px solid rgba(211, 167, 45, 0.86) !important;
	border-radius: 50% !important;

	box-shadow:
		0 0 0 1px rgba(0, 0, 0, 0.75),
		0 0 14px rgba(211, 167, 45, 0.23),
		0 6px 20px rgba(0, 0, 0, 0.46) !important;

	transition:
		transform 200ms ease,
		box-shadow 200ms ease !important;
}

body.ld-cookie-theme--lord-dancer .cky-btn-revisit-wrapper:hover {
	transform:
		translateY(-3px)
		scale(1.05) !important;

	box-shadow:
		0 0 20px rgba(211, 167, 45, 0.44),
		0 9px 24px rgba(0, 0, 0, 0.56) !important;
}

body.ld-cookie-theme--lord-dancer .cky-btn-revisit-wrapper img,
body.ld-cookie-theme--lord-dancer .cky-btn-revisit-wrapper svg {
	filter:
		brightness(0)
		invert(89%)
		sepia(45%)
		saturate(847%)
		hue-rotate(351deg)
		brightness(101%)
		contrast(94%) !important;
}


/* =========================================================
   19. CUSTOM SCROLLBARS
   ========================================================= */

body.ld-cookie-theme--lord-dancer .cky-preference-center * {
	scrollbar-width: thin;
	scrollbar-color:
		rgba(211, 167, 45, 0.72)
		rgba(255, 255, 255, 0.04);
}

body.ld-cookie-theme--lord-dancer .cky-preference-center *::-webkit-scrollbar {
	width: 8px;
	height: 8px;
}

body.ld-cookie-theme--lord-dancer .cky-preference-center *::-webkit-scrollbar-track {
	background: rgba(255, 255, 255, 0.035);
}

body.ld-cookie-theme--lord-dancer .cky-preference-center *::-webkit-scrollbar-thumb {
	background:
		linear-gradient(
			180deg,
			var(--ld-cookie-gold-light),
			var(--ld-cookie-gold-dark)
		);

	border: 2px solid rgba(8, 8, 7, 0.92);
	border-radius: 20px;
}


/* =========================================================
   20. TABLET AND MOBILE
   ========================================================= */

@media screen and (max-width: 700px) {

	/* -----------------------------------------
	   Main cookie panel
	   ----------------------------------------- */

	body.ld-cookie-theme--lord-dancer .cky-consent-container {
		top: auto !important;
		left: 12px !important;
		right: 12px !important;
		bottom: 12px !important;

		width: auto !important;
		max-width: none !important;

		margin: 0 !important;

		transform: none !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-consent-bar {
		width: 100% !important;
		max-width: 100% !important;

		max-height: calc(100vh - 24px) !important;

		padding: 25px 20px 20px !important;

		border-radius: 14px !important;

		overflow-x: hidden !important;
		overflow-y: auto !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-title {
		min-height: 44px !important;

		margin-bottom: 22px !important;
		padding-left: 56px !important;

		font-size: clamp(24px, 7.7vw, 32px) !important;
		line-height: 1.1 !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-title::before {
		width: 42px !important;
		height: 42px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-title::after {
		left: 56px !important;
		bottom: -11px !important;

		width: 62px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-notice-des,
body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-notice-des p {
		font-size: 15px !important;
		line-height: 1.55 !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-notice-btn-wrapper {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(0, 1fr) !important;

		gap: 10px !important;

		margin-top: 21px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-notice-btn-wrapper .cky-btn {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;

		min-height: 50px !important;

		margin: 0 !important;
		padding: 11px 8px !important;

		font-size: 14px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-btn-customize,
body.ld-cookie-theme--lord-dancer .cky-consent-container [data-cky-tag="customize-button"] {
		grid-column: 1 !important;
		grid-row: 1 !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-btn-reject,
body.ld-cookie-theme--lord-dancer .cky-consent-container [data-cky-tag="reject-button"] {
		grid-column: 2 !important;
		grid-row: 1 !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-btn-accept,
body.ld-cookie-theme--lord-dancer .cky-consent-container [data-cky-tag="accept-button"] {
		grid-column: 1 / -1 !important;
		grid-row: 2 !important;
	}


	/* -----------------------------------------
	   Preference centre
	   ----------------------------------------- */

	body.ld-cookie-theme--lord-dancer .cky-preference-center {
		width: calc(100vw - 20px) !important;
		max-width: calc(100vw - 20px) !important;

		max-height: calc(100vh - 20px) !important;

		margin-left: 0 !important;
		margin-right: 0 !important;

		border-radius: 13px !important;

		overflow-x: hidden !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-header {
		padding: 20px 18px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-title {
		min-height: 42px !important;

		padding:
			0
			52px
			0
			53px !important;

		font-size: clamp(22px, 6.5vw, 27px) !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-title::before {
		width: 40px !important;
		height: 40px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-close {
		right: 16px !important;

		width: 38px !important;
		height: 38px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-content-wrapper {
		padding: 19px 18px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-wrapper {
		padding:
			0
			18px
			18px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-header {
		min-height: 68px !important;

		padding:
			16px
			16px
			16px
			68px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron {
		top: 16px !important;
		left: 15px !important;

		width: 36px !important;
		height: 36px !important;

		border-radius: 9px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron::before {
		top: 13px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron::after {
		top: 20px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-header-des {
		padding:
			4px
			16px
			21px
			16px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-always-active {
		padding-left: 12px !important;

		font-size: 13px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-footer-wrapper {
		padding: 15px 18px 18px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-prefrence-btn-wrapper,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-btn-wrapper {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(0, 1fr) !important;

		gap: 10px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-prefrence-btn-wrapper .cky-btn,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-btn-wrapper .cky-btn {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;

		min-height: 50px !important;

		margin: 0 !important;
		padding:
			11px
			9px !important;

		font-size: 14px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-preferences,
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="save-button"] {
		grid-column: 1 / -1 !important;
		grid-row: 1 !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-reject,
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="reject-button"] {
		grid-column: 1 !important;
		grid-row: 2 !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-accept,
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="accept-button"] {
		grid-column: 2 !important;
		grid-row: 2 !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-btn-revisit-wrapper {
		width: 42px !important;
		height: 42px !important;
	}
}


/* =========================================================
   21. VERY SMALL MOBILE SCREENS
   ========================================================= */

@media screen and (max-width: 420px) {

	/* -----------------------------------------
	   Main cookie panel
	   ----------------------------------------- */

	body.ld-cookie-theme--lord-dancer .cky-consent-container {
		left: 8px !important;
		right: 8px !important;
		bottom: 8px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-consent-bar {
		max-height: calc(100vh - 16px) !important;

		padding: 22px 16px 16px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-title {
		min-height: 38px !important;

		padding-left: 47px !important;

		font-size: clamp(22px, 7.5vw, 28px) !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-title::before {
		width: 35px !important;
		height: 35px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-title::after {
		left: 47px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-notice-btn-wrapper {
		grid-template-columns: 1fr !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-btn-customize,
body.ld-cookie-theme--lord-dancer .cky-consent-container [data-cky-tag="customize-button"] {
		grid-column: 1 !important;
		grid-row: 1 !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-btn-reject,
body.ld-cookie-theme--lord-dancer .cky-consent-container [data-cky-tag="reject-button"] {
		grid-column: 1 !important;
		grid-row: 2 !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-consent-container .cky-btn-accept,
body.ld-cookie-theme--lord-dancer .cky-consent-container [data-cky-tag="accept-button"] {
		grid-column: 1 !important;
		grid-row: 3 !important;
	}


	/* -----------------------------------------
	   Preference centre
	   ----------------------------------------- */

	body.ld-cookie-theme--lord-dancer .cky-preference-center {
		width: calc(100vw - 12px) !important;
		max-width: calc(100vw - 12px) !important;

		max-height: calc(100vh - 12px) !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-header {
		padding:
			18px
			14px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-title {
		min-height: 38px !important;

		padding:
			0
			47px
			0
			47px !important;

		font-size: 21px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-title::before {
		width: 35px !important;
		height: 35px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-close {
		right: 12px !important;

		width: 35px !important;
		height: 35px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-content-wrapper {
		padding:
			17px
			14px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-wrapper {
		padding:
			0
			14px
			14px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-header {
		align-items: flex-start !important;

		min-height: 64px !important;

		padding:
			15px
			13px
			15px
			61px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron {
		top: 14px !important;
		left: 12px !important;

		width: 34px !important;
		height: 34px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron::before,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron::after {
		width: 10px !important;
		height: 2px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron::before {
		top: 12px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-chevron::after {
		top: 19px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-btn {
		font-size: 16px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-always-active {
		padding-left: 9px !important;

		font-size: 12px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-header-des {
		padding:
			2px
			14px
			19px
			14px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-footer-wrapper {
		padding: 14px !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-prefrence-btn-wrapper,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-btn-wrapper {
		grid-template-columns: 1fr !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-preferences,
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="save-button"] {
		grid-column: 1 !important;
		grid-row: 1 !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-accept,
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="accept-button"] {
		grid-column: 1 !important;
		grid-row: 2 !important;
	}

	body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-btn-reject,
body.ld-cookie-theme--lord-dancer .cky-preference-center [data-cky-tag="reject-button"] {
		grid-column: 1 !important;
		grid-row: 3 !important;
	}
}


/* =========================================================
   22. REDUCED MOTION ACCESSIBILITY
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	body.ld-cookie-theme--lord-dancer .cky-consent-container *,
body.ld-cookie-theme--lord-dancer .cky-preference-center *,
body.ld-cookie-theme--lord-dancer .cky-btn-revisit-wrapper {
		animation: none !important;
		transition-duration: 0.01ms !important;
	}
}






/* =========================================================
   LORD DANCER — REMOVE THIN LINE ABOVE COOKIE PANELS
   ========================================================= */

/* Remove the separator line above the cookie category panels */
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-wrapper {
	border-top: 0 !important;
	box-shadow: none !important;
	margin-top: 0 !important;
	padding-top: 8px !important;
}

/* Remove any top line added by CookieYes pseudo elements */
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-wrapper::before,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-wrapper::after,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-content-wrapper::before,
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-preference-content-wrapper::after {
	content: none !important;
	display: none !important;
	border: 0 !important;
	box-shadow: none !important;
}

/* Make sure the first panel has a bit of breathing room */
body.ld-cookie-theme--lord-dancer .cky-preference-center .cky-accordion-item:first-child {
	margin-top: 0 !important;
}


/* =========================================================
