
	.wall.svelte-16h6p05 {
		position: relative;
		height: 100svh;
		background: var(--color-ink);
		overflow: hidden;
	}
	/* stationary dot backdrop — sits behind the rising tiles, doesn't move */
	.g-ascii.svelte-16h6p05 {
		position: absolute;
		inset: 0;
		z-index: 0;
		pointer-events: none;
	}
	@media (prefers-reduced-motion: reduce) {
		.g-ascii.svelte-16h6p05 {
			position: fixed;
		}
	}
	.wall-head.svelte-16h6p05 {
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		z-index: 5;
		padding-top: 6rem;
		padding-bottom: 4rem;
		pointer-events: none;
		/* blurred, fading backdrop so the title + copy read clearly over the moving wall */
		background: linear-gradient(
			180deg,
			var(--color-ink) 20%,
			color-mix(in srgb, var(--color-ink) 60%, transparent) 62%,
			transparent 100%
		);
		-webkit-backdrop-filter: blur(9px);
		backdrop-filter: blur(9px);
		-webkit-mask-image: linear-gradient(180deg, #000 74%, transparent 100%);
		mask-image: linear-gradient(180deg, #000 74%, transparent 100%);
	}

	/* the rising stream: two stacked fields; translate up one field-height and loop */
	.stream.svelte-16h6p05 {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		z-index: 1;
		animation-name: svelte-16h6p05-rise;
		animation-timing-function: linear;
		animation-iteration-count: infinite;
		will-change: transform;
	}
	.stream.paused.svelte-16h6p05 {
		animation-play-state: paused;
	}
	@keyframes svelte-16h6p05-rise {
		from { transform: translateY(0); }
		to { transform: translateY(-50%); }
	}

	/* fade pieces out as they leave the top / enter at the bottom */
	.fade.svelte-16h6p05 {
		position: absolute;
		left: 0;
		right: 0;
		height: 26vh;
		z-index: 4;
		pointer-events: none;
	}
	.fade-top.svelte-16h6p05 {
		top: 0;
		background: linear-gradient(180deg, var(--color-ink) 20%, transparent);
	}
	.fade-bottom.svelte-16h6p05 {
		bottom: 0;
		background: linear-gradient(0deg, var(--color-ink) 10%, transparent);
	}
	.wall-head.svelte-16h6p05 .back:where(.svelte-16h6p05) {
		pointer-events: auto;
		display: inline-flex;
		align-items: center;
		gap: 0.4rem;
		margin-bottom: 1.4rem;
		color: var(--color-bone);
		text-decoration: none;
		font-weight: 600;
		font-size: 0.85rem;
		padding: 0.5rem 0.95rem;
		border: 1px solid var(--color-line);
		border-radius: 99px;
		background: color-mix(in srgb, var(--color-ink) 58%, transparent);
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
		transition: color 0.3s, border-color 0.3s, background 0.3s;
	}
	.wall-head.svelte-16h6p05 .back:where(.svelte-16h6p05):hover {
		color: var(--color-acid);
		border-color: var(--color-acid);
	}
	.wall-head.svelte-16h6p05 h1:where(.svelte-16h6p05) {
		margin: 0;
		color: var(--color-bone);
	}
	.wall-head.svelte-16h6p05 p:where(.svelte-16h6p05) {
		margin: 1rem 0 0;
		max-width: 44ch;
		color: var(--color-bone);
		font-size: 1rem;
	}

	.field.svelte-16h6p05 {
		position: relative;
		width: 100%;
	}
	.tile.svelte-16h6p05 {
		position: absolute;
		padding: 0;
		border: 1px solid var(--color-line);
		border-radius: 12px;
		overflow: hidden;
		background: var(--color-ink-2);
		box-shadow: 0 30px 55px -30px rgba(0, 0, 0, 0.9);
		cursor: pointer;
		transition: transform 0.4s var(--ease-out-expo), box-shadow 0.4s, filter 0.4s, z-index 0s;
		will-change: transform;
		animation-timing-function: ease-in-out;
		animation-iteration-count: infinite;
	}
	.tile.svelte-16h6p05 img:where(.svelte-16h6p05) {
		display: block;
		width: 100%;
		height: auto;
	}
	.tile.svelte-16h6p05:hover,
	.tile.svelte-16h6p05:focus-visible {
		filter: saturate(1.1);
		box-shadow: 0 40px 70px -28px rgba(0, 0, 0, 0.95);
		z-index: 50;
		animation-play-state: paused;
	}

	/* continuous ambient drift — several variants for organic motion */
	.d0.svelte-16h6p05 { animation-name: svelte-16h6p05-fl0; }
	.d1.svelte-16h6p05 { animation-name: svelte-16h6p05-fl1; }
	.d2.svelte-16h6p05 { animation-name: svelte-16h6p05-fl2; }
	.d3.svelte-16h6p05 { animation-name: svelte-16h6p05-fl3; }
	.d4.svelte-16h6p05 { animation-name: svelte-16h6p05-fl4; }
	@keyframes svelte-16h6p05-fl0 { 0%,100% { transform: translate(0,0) rotate(-2deg); } 50% { transform: translate(14px,-26px) rotate(2deg); } }
	@keyframes svelte-16h6p05-fl1 { 0%,100% { transform: translate(0,0) rotate(2deg); } 50% { transform: translate(-20px,18px) rotate(-2deg); } }
	@keyframes svelte-16h6p05-fl2 { 0%,100% { transform: translate(0,0) rotate(0deg); } 33% { transform: translate(18px,16px) rotate(3deg); } 66% { transform: translate(-14px,-18px) rotate(-1deg); } }
	@keyframes svelte-16h6p05-fl3 { 0%,100% { transform: translate(0,0) rotate(1deg); } 50% { transform: translate(-16px,-24px) rotate(-3deg); } }
	@keyframes svelte-16h6p05-fl4 { 0%,100% { transform: translate(0,0) rotate(-1deg); } 50% { transform: translate(22px,14px) rotate(2deg); } }

	.tile.svelte-16h6p05:hover {
		transform: scale(1.06);
	}

	.lightbox.svelte-16h6p05 {
		position: fixed;
		inset: 0;
		z-index: 9500;
		display: grid;
		place-items: center;
		padding: 5vw;
		background: color-mix(in srgb, var(--color-ink) 88%, transparent);
		backdrop-filter: blur(8px);
		cursor: zoom-out;
		animation: svelte-16h6p05-fade 0.25s ease;
	}
	@keyframes svelte-16h6p05-fade { from { opacity: 0; } to { opacity: 1; } }
	.lb-fig.svelte-16h6p05 {
		margin: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 1rem;
		max-width: min(92vw, 900px);
	}
	.lightbox.svelte-16h6p05 img:where(.svelte-16h6p05) {
		max-width: 100%;
		max-height: 76vh;
		border-radius: 14px;
		box-shadow: 0 50px 100px -30px #000;
		object-fit: contain;
	}
	.lb-cap.svelte-16h6p05 {
		text-align: center;
	}
	.lb-cap.svelte-16h6p05 strong:where(.svelte-16h6p05) {
		display: block;
		font-family: var(--font-display);
		font-weight: 600;
		font-size: clamp(1.1rem, 2.6vw, 1.7rem);
		letter-spacing: -0.01em;
		color: var(--color-bone);
	}
	.lb-cap.svelte-16h6p05 span:where(.svelte-16h6p05) {
		display: inline-block;
		margin-top: 0.4rem;
		font-family: var(--font-body);
		font-size: 0.72rem;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.16em;
		color: var(--color-acid);
	}
	.close.svelte-16h6p05 {
		position: fixed;
		top: 1.2rem;
		right: 1.4rem;
		width: 44px;
		height: 44px;
		border-radius: 99px;
		border: 1px solid var(--color-line);
		background: var(--color-ink-2);
		color: var(--color-bone);
		font-size: 1.1rem;
		cursor: pointer;
	}

	/* no auto-motion → make it a static, scrollable single-copy wall instead */
	@media (prefers-reduced-motion: reduce) {
		.wall.svelte-16h6p05 {
			height: auto;
			overflow: visible;
		}
		.stream.svelte-16h6p05 {
			position: relative;
		}
		.field[aria-hidden='true'].svelte-16h6p05 {
			display: none;
		}
		.fade.svelte-16h6p05 {
			display: none;
		}
	}

