/**
 * AIContestList — Gallery (/studio/gallery/, one work, one creator).
 *
 * Built in the homepage's language (theme home.css), not a museum skeuomorph:
 * Immersive Dark, the editorial column lines, light borrowed from the work itself,
 * the gradient horizon, Instrument Sans set large and tight with one Instrument Serif
 * italic line, outlined Roman-numeral chapters and live figures set like a wall label.
 * The works carry the colour; the interface stays quiet around them.
 *
 * Every work keeps its own proportions: no crop, no mat, no frame. A room is hung,
 * not gridded — two works to a row on a 12-column wall, columns by shape, rows
 * alternating weight and alignment (Gallery::hang()). Below 1024px: one work per
 * row, wide works full width, tall works narrower and alternating sides.
 *
 * Specificity: the theme's element rules (.acl h1–h6, .acl p, .acl a) are (0,1,1), so
 * every rule here is scoped under .aicl-gallery (0,2,0) and wins without !important.
 * Performance: no backdrop blur, no filters on large surfaces; each work's own tone
 * fills its box until the picture has decoded, so nothing shifts or pops.
 */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: 320ms; animation-timing-function: cubic-bezier(.4, 0, .2, 1); }
::view-transition-group(*) { animation-duration: 560ms; animation-timing-function: cubic-bezier(.16, 1, .3, 1); }

/* ---------------------------------------------------------------- canvas */
/* <body> sits outside every [data-theme] scope: without this the transparent header
   shows a porcelain strip above the dark page. */
body.acl.aicl-gallery-page,
body.aicl-gallery-page { background: var(--acl-obsidian, #08090B); color-scheme: dark; }

.aicl-gallery {
	--gx-ease: var(--ease-enter, cubic-bezier(.16, 1, .3, 1));
	--gx-gutter: var(--gutter, clamp(20px, 4vw, 64px));
	--gx-wrap: min(var(--container-wide, 1400px), 100% - 2 * var(--gx-gutter));
	--gx-col-gap: clamp(16px, 2.2vw, 32px);
	--gx-cap: min(76vh, 860px);
	--gx-glow: rgba(108, 92, 231, .22);
	--gx-halo: rgba(108, 92, 231, .32);
	position: relative;
	isolation: isolate;
	min-height: 70vh;
	padding-bottom: var(--section-y, clamp(56px, 8vw, 128px));
	overflow-x: clip;
	font-family: var(--font-sans);
	color: var(--text-primary);
}
/* Light borrowed from the work: its tone, lifted with the brand's Iris so even a dark
   image throws a coloured glow (never a grey fog). */
@supports (color: color-mix(in oklab, red, blue)) {
	.aicl-gallery,
	.aicl-gallery [style*="--tone"] {
		--gx-glow: color-mix(in oklab, color-mix(in oklab, var(--tone, #6C5CE7), #9F96FF 30%) 34%, transparent);
		--gx-halo: color-mix(in oklab, color-mix(in oklab, var(--tone, #6C5CE7), #9F96FF 24%) 60%, transparent);
	}
}
.aicl-gallery *, .aicl-gallery *::before, .aicl-gallery *::after { box-sizing: border-box; }
.aicl-gallery-page .aicl-sr-only { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }

.aicl-gallery .aicl-gx-wrap { width: var(--gx-wrap); margin-inline: auto; }

.aicl-gallery .aicl-gx-eyebrow {
	display: inline-flex; align-items: center; gap: 10px; margin: 0 0 var(--space-6, 24px);
	font-size: var(--text-xs, .75rem); font-weight: 600; line-height: 1.35; letter-spacing: .12em; text-transform: uppercase;
	color: var(--text-secondary);
}
.aicl-gallery .aicl-gx-eyebrow a { color: inherit; text-decoration: none; padding: 10px 0; margin: -10px 0; transition: color var(--motion-base, 200ms) var(--ease-standard); }
.aicl-gallery .aicl-gx-eyebrow a:hover { color: var(--text-primary); }
.aicl-gallery .aicl-gx-eyebrow__sep { width: 18px; height: 1px; background: var(--border-strong); }

/* Text link with an arrow — the homepage's section-head link */
.aicl-gallery .aicl-gx-link {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
	font-size: .9375rem; font-weight: 600; color: var(--text-primary); text-decoration: none;
}
.aicl-gallery .aicl-gx-link .aicl-icon { transition: transform var(--motion-base, 200ms) var(--ease-standard); }
.aicl-gallery .aicl-gx-link:hover { color: var(--text-link); }
.aicl-gallery .aicl-gx-link:hover .aicl-icon { transform: translateX(3px); }

/* ------------------------------------------------------------------ hero */
.aicl-gallery .aicl-gx-hero {
	--acl-mx: 0;
	--acl-my: 0;
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: flex-end;
	min-height: min(100svh, 980px);
	margin-top: calc(var(--header-h, 72px) * -1);
	padding: calc(var(--header-h, 72px) + clamp(40px, 6vw, 88px)) 0 clamp(56px, 7vw, 104px);
	overflow: hidden;
}
.aicl-gallery .aicl-gx-hero.is-compact { min-height: 0; padding-bottom: clamp(40px, 5vw, 72px); }

/* The homepage's editorial column lines — felt, not noticed */
.aicl-gallery .aicl-gx-hero::before,
.aicl-gallery.aicl-work::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background-image: linear-gradient(to right, var(--overlay-white-04, rgba(255,255,255,.04)) 1px, transparent 1px);
	background-size: calc(100% / 6) 100%;
	-webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 26%, #000 72%, transparent 100%);
	mask-image: linear-gradient(to bottom, transparent 0%, #000 26%, #000 72%, transparent 100%);
}
.aicl-gallery.aicl-work::before { bottom: auto; height: min(110vh, 1100px); }

.aicl-gallery .aicl-gx-hero__light { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.aicl-gallery .aicl-gx-orb { position: absolute; aspect-ratio: 1; border-radius: 50%; opacity: 0; will-change: transform; transition: transform 1.4s var(--ease-standard, ease); }
.aicl-gallery .aicl-gx-orb--tone {
	width: min(1180px, 110vw); top: -34%; right: -20%;
	background: radial-gradient(circle, var(--gx-glow) 0%, transparent 62%);
	transform: translate(calc(var(--acl-mx) * -40px), calc(var(--acl-my) * -30px));
}
.aicl-gallery .aicl-gx-orb--iris {
	width: min(820px, 86vw); bottom: -46%; left: -18%;
	background: radial-gradient(circle, rgba(108, 92, 231, .2) 0%, rgba(108, 92, 231, .06) 40%, transparent 66%);
	transform: translate(calc(var(--acl-mx) * 30px), calc(var(--acl-my) * 24px));
}
.aicl-gallery .aicl-gx-orb--pink {
	width: min(440px, 50vw); top: 30%; right: 38%;
	background: radial-gradient(circle, rgba(255, 121, 198, .09) 0%, transparent 62%);
	transform: translate(calc(var(--acl-mx) * 60px), calc(var(--acl-my) * 50px));
}
.aicl-gallery .aicl-gx-hero__horizon { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--gradient-ai); opacity: .45; }

.aicl-gallery .aicl-gx-hero__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); }
.aicl-gallery .aicl-gx-hero__eyebrow { justify-self: start; }

.aicl-gallery .aicl-gx-hero__title {
	width: fit-content; max-width: 100%;
	margin: 0 0 clamp(24px, 3vw, 40px);
	font-family: var(--font-sans);
	font-size: clamp(3.4rem, 9vw, 9.5rem);
	font-weight: 600;
	line-height: .9;
	letter-spacing: -.055em;
	color: var(--text-primary);
	text-wrap: balance;
}
.aicl-gallery .aicl-gx-hero__line { display: block; }
.aicl-gallery .aicl-gx-hero__line--serif {
	max-width: 16ch;
	margin-top: .14em;
	padding-bottom: .08em;
	font-family: var(--font-serif);
	font-size: .5em;
	font-style: italic;
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: -.02em;
	text-wrap: balance;
}
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
	.aicl-gallery .aicl-gx-hero__line--serif {
		background: linear-gradient(100deg, var(--acl-white, #fff) 0%, var(--acl-white, #fff) 30%, var(--acl-iris-dark-text, #9F96FF) 70%, var(--acl-ai-pink, #FF79C6) 100%);
		-webkit-background-clip: text; background-clip: text; color: transparent;
	}
}
.aicl-gallery .is-compact .aicl-gx-hero__title { font-size: clamp(2.8rem, 6vw, 6rem); }
/* Longer titles and names step down so a single word never runs into the cover. */
.aicl-gallery .aicl-gx-hero__title.is-long { font-size: clamp(2.6rem, 6vw, 6.5rem); letter-spacing: -.045em; }
.aicl-gallery .aicl-gx-hero__title.is-longer { font-size: clamp(2.2rem, 4.4vw, 4.75rem); letter-spacing: -.04em; }
.aicl-gallery .aicl-gx-hero__line:first-child { overflow-wrap: anywhere; }

.aicl-gallery .aicl-gx-hero__copy { max-width: 520px; }
.aicl-gallery .aicl-gx-hero__intro { margin: 0; font-size: var(--text-md, 1.125rem); line-height: 1.6; color: var(--text-secondary); text-wrap: pretty; }
.aicl-gallery .aicl-gx-hero__intro a { color: var(--text-primary); text-decoration: underline; text-decoration-color: var(--overlay-white-24, rgba(255,255,255,.24)); text-underline-offset: .25em; }

/* Live figures, set like the homepage's legend: a wall label with real counts */
.aicl-gallery .aicl-gx-legend { margin-top: clamp(32px, 4vw, 48px); padding-top: var(--space-5, 20px); border-top: 1px solid var(--border-default); max-width: 520px; }
.aicl-gallery .aicl-gx-legend__title { margin: 0 0 var(--space-4, 16px); font-size: var(--text-sm, .875rem); line-height: 1.5; color: var(--text-secondary); }
.aicl-gallery .aicl-gx-legend__title a { color: var(--text-primary); text-decoration: none; border-bottom: 1px solid var(--overlay-white-24, rgba(255,255,255,.24)); }
.aicl-gallery .aicl-gx-legend__keys { display: flex; flex-wrap: wrap; gap: var(--space-3, 12px) var(--space-6, 24px); margin: 0; padding: 0; list-style: none; }
.aicl-gallery .aicl-gx-legend__key { display: inline-flex; align-items: baseline; gap: var(--space-2, 8px); font-size: 12px; color: var(--text-secondary); }
.aicl-gallery .aicl-gx-legend__key::before {
	content: ""; align-self: center; width: 7px; height: 7px; border-radius: 50%;
	background: var(--acl-iris-dark-text, #9F96FF); color: var(--acl-iris-dark-text, #9F96FF); box-shadow: 0 0 10px currentColor;
}
.aicl-gallery .aicl-gx-legend__key:nth-child(2)::before { background: var(--acl-ai-blue, #58C7FF); color: var(--acl-ai-blue, #58C7FF); }
.aicl-gallery .aicl-gx-legend__key:nth-child(3)::before { background: var(--acl-ai-pink, #FF79C6); color: var(--acl-ai-pink, #FF79C6); }
.aicl-gallery .aicl-gx-legend__key:nth-child(4)::before { background: transparent; border: 1px solid var(--text-secondary); box-shadow: none; }
.aicl-gallery .aicl-gx-legend__num { font-size: var(--text-md, 1.125rem); font-weight: 600; letter-spacing: -.02em; color: var(--text-primary); font-variant-numeric: tabular-nums; }

/* The cover: one work, at its own proportions, in its own light */
.aicl-gallery .aicl-gx-cover { position: relative; margin: clamp(40px, 8vw, 64px) 0 0; }
.aicl-gallery .aicl-gx-cover__media {
	position: relative; display: block; width: min(100%, calc(min(70vh, 760px) * var(--r, 1))); aspect-ratio: var(--r, 1);
	overflow: hidden; border-radius: 4px; background: var(--tone, #16171b);
	box-shadow: 0 0 0 1px var(--overlay-white-06, rgba(255,255,255,.06)), 0 60px 120px -60px rgba(0, 0, 0, .95), 0 40px 160px -70px var(--gx-halo);
}
.aicl-gallery .aicl-gx-cover__media::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px var(--overlay-white-06, rgba(255,255,255,.06)); pointer-events: none; }
.aicl-gallery .aicl-gx-cover__media img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: opacity .9s var(--gx-ease), transform 1.6s var(--gx-ease); }
.aicl-gallery .aicl-gx-cover__label {
	display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; column-gap: var(--space-6, 24px); row-gap: 4px;
	width: min(100%, calc(min(70vh, 760px) * var(--r, 1))); margin-top: var(--space-5, 20px);
}
.aicl-gallery .aicl-gx-cover__kicker {
	grid-column: 1 / -1; display: inline-flex; align-items: center; gap: 10px; margin: 0 0 4px;
	font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--text-secondary);
}
.aicl-gallery .aicl-gx-cover__kicker::before { content: ""; width: 24px; height: 1px; background: var(--gradient-ai); }
.aicl-gallery .aicl-gx-cover__title { margin: 0; font-family: var(--font-serif); font-size: clamp(1.5rem, 1.1rem + 1vw, 2.125rem); font-style: italic; font-weight: 400; line-height: 1.1; letter-spacing: -.01em; }
.aicl-gallery .aicl-gx-cover__title a { color: var(--text-primary); text-decoration: none; background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size .5s var(--gx-ease); }
.aicl-gallery .aicl-gx-cover__meta { margin: 0; font-size: var(--text-sm, .875rem); color: var(--text-secondary); }
.aicl-gallery .aicl-gx-cover__meta a { color: var(--text-primary); text-decoration: none; }
.aicl-gallery .aicl-gx-cover__meta a:hover { color: var(--text-link); }
@media (max-width: 599px) {
	.aicl-gallery .aicl-gx-cover__label { grid-template-columns: minmax(0, 1fr); }
}
@media (hover: hover) {
	.aicl-gallery .aicl-gx-cover:hover .aicl-gx-cover__media img { transform: scale(1.02); }
	.aicl-gallery .aicl-gx-cover:hover .aicl-gx-cover__title a { background-size: 100% 1px; }
}

@media (min-width: 1024px) {
	.aicl-gallery .aicl-gx-hero.has-cover .aicl-gx-hero__inner {
		/* Wide works take up to 56% of the wall; tall ones take what 70vh allows. */
		--gx-cover-w: min(56%, calc(min(70vh, 760px) * var(--r, 1)));
		grid-template-columns: minmax(0, 1fr) minmax(0, var(--gx-cover-w));
		grid-template-areas:
			"eyebrow cover"
			"title   cover"
			"copy    cover"
			"legend  cover";
		grid-template-rows: auto auto auto 1fr;
		column-gap: clamp(48px, 5vw, 96px);
		align-items: end;
	}
	.aicl-gallery .has-cover .aicl-gx-hero__eyebrow { grid-area: eyebrow; }
	.aicl-gallery .has-cover .aicl-gx-hero__title { grid-area: title; font-size: clamp(3.6rem, 8.4vw, 9.5rem); }
	.aicl-gallery .has-cover .aicl-gx-hero__title.is-long { font-size: clamp(2.8rem, 5.2vw, 6rem); }
	.aicl-gallery .has-cover .aicl-gx-hero__title.is-longer { font-size: clamp(2.4rem, 3.6vw, 4.25rem); }
	.aicl-gallery .has-cover .aicl-gx-hero__copy { grid-area: copy; }
	.aicl-gallery .has-cover .aicl-gx-legend { grid-area: legend; align-self: end; }
	.aicl-gallery .has-cover .aicl-gx-cover { grid-area: cover; align-self: end; justify-self: end; width: 100%; margin: 0; }
	.aicl-gallery .has-cover .aicl-gx-cover__media,
	.aicl-gallery .has-cover .aicl-gx-cover__label { width: 100%; }
	.aicl-gallery .aicl-gx-hero:not(.has-cover) .aicl-gx-hero__inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
		grid-template-areas: "eyebrow ." "title title" "copy legend";
		column-gap: var(--space-16, 64px); align-items: end;
	}
	.aicl-gallery .aicl-gx-hero:not(.has-cover) .aicl-gx-hero__eyebrow { grid-area: eyebrow; }
	.aicl-gallery .aicl-gx-hero:not(.has-cover) .aicl-gx-hero__title { grid-area: title; }
	.aicl-gallery .aicl-gx-hero:not(.has-cover) .aicl-gx-hero__copy { grid-area: copy; }
	.aicl-gallery .aicl-gx-hero:not(.has-cover) .aicl-gx-legend { grid-area: legend; margin: 0; }
}

/* One-time staged entrance. The title and intro are the LCP candidates: no stage. */
@keyframes aicl-gx-light { to { opacity: 1; } }
@keyframes aicl-gx-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes aicl-gx-hang { from { opacity: 0; transform: translateY(26px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes aicl-gx-draw { from { transform: scaleX(0); opacity: 0; } to { transform: none; opacity: .45; } }
.aicl-gallery .aicl-gx-orb { animation: aicl-gx-light var(--motion-hero, 760ms) var(--gx-ease) 380ms forwards; }
.aicl-gallery .aicl-gx-hero__horizon { transform-origin: left center; animation: aicl-gx-draw 1.6s var(--gx-ease) .25s both; }
.acl-js .aicl-gallery [data-gx-stage] { animation: aicl-gx-rise var(--motion-hero, 760ms) var(--gx-ease) both; }
.acl-js .aicl-gallery [data-gx-stage="1"] { animation-delay: 60ms; }
.acl-js .aicl-gallery [data-gx-stage="2"] { animation-delay: 160ms; }
.acl-js .aicl-gallery [data-gx-stage="3"] { animation-delay: 260ms; }
.acl-js .aicl-gallery .aicl-gx-cover[data-gx-stage] { animation-name: aicl-gx-hang; animation-duration: 1.1s; }

/* --------------------------------------------------------------- chapter */
.aicl-gallery .aicl-gx-chapter {
	position: relative;
	display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: end;
	gap: var(--space-4, 16px) clamp(20px, 3vw, 48px);
	margin-block: clamp(72px, 9vw, 144px) 0;
	padding-top: var(--space-6, 24px);
	border-top: 1px solid var(--border-strong);
}
.aicl-gallery .aicl-gx-chapter::before { content: ""; position: absolute; top: -1px; left: 0; width: clamp(64px, 10vw, 160px); height: 1px; background: var(--gradient-ai); }
.aicl-gallery .aicl-gx-chapter__numeral {
	font-family: var(--font-serif); font-size: clamp(4.5rem, 11vw, 10rem); font-weight: 400; line-height: .78; letter-spacing: -.02em;
	color: transparent; -webkit-text-stroke: 1px var(--text-tertiary);
}
.aicl-gallery .aicl-gx-chapter__line {
	margin: 0; padding-bottom: .04em;
	font-family: var(--font-serif); font-size: clamp(2rem, 4.8vw, 4.5rem); font-style: italic; font-weight: 400; line-height: 1; letter-spacing: -.02em;
	color: var(--text-primary);
}
.aicl-gallery .aicl-gx-chapter__count {
	position: absolute; top: var(--space-6, 24px); right: 0; margin: 0;
	font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--text-secondary); font-variant-numeric: tabular-nums;
}
@media (max-width: 599px) {
	.aicl-gallery .aicl-gx-chapter { grid-template-columns: minmax(0, 1fr); padding-top: var(--space-10, 40px); }
	.aicl-gallery .aicl-gx-chapter__numeral { font-size: 4.5rem; }
}

/* ----------------------------------------------------------------- rooms */
/* Wayfinding under the chapter line: numeral, room, how many are in it. */
.aicl-gallery .aicl-gx-rooms { margin: clamp(28px, 3vw, 44px) auto clamp(56px, 7vw, 104px); }
.aicl-gallery .aicl-gx-rooms__list {
	display: flex; gap: 0; margin: 0; padding: 0; list-style: none;
	overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity;
	border-bottom: 1px solid var(--border-default);
}
.aicl-gallery .aicl-gx-rooms__list::-webkit-scrollbar { display: none; }
.aicl-gallery .aicl-gx-rooms__item { flex: 1 0 auto; scroll-snap-align: start; }
.aicl-gallery .aicl-gx-rooms__link {
	position: relative; display: flex; align-items: baseline; gap: 10px; min-height: 52px; padding: 14px 24px 16px 0;
	font-size: .9375rem; font-weight: 600; letter-spacing: -.005em; white-space: nowrap;
	color: var(--text-secondary); text-decoration: none;
	transition: color var(--motion-base, 200ms) var(--ease-standard);
}
.aicl-gallery .aicl-gx-rooms__link::after {
	content: ""; position: absolute; left: 0; right: 24px; bottom: -1px; height: 1px;
	background: var(--gradient-ai); transform: scaleX(0); transform-origin: left center;
	transition: transform .6s var(--gx-ease);
}
.aicl-gallery .aicl-gx-rooms__num { font-family: var(--font-serif); font-size: 1.25rem; font-style: italic; font-weight: 400; color: var(--text-tertiary); transition: color var(--motion-base, 200ms); }
.aicl-gallery .aicl-gx-rooms__count { font-size: 12px; font-weight: 500; color: var(--text-tertiary); font-variant-numeric: tabular-nums; }
.aicl-gallery a.aicl-gx-rooms__link:hover { color: var(--text-primary); }
.aicl-gallery a.aicl-gx-rooms__link:hover .aicl-gx-rooms__num { color: var(--acl-iris-dark-text, #9F96FF); }
.aicl-gallery .aicl-gx-rooms__link[aria-current="page"] { color: var(--text-primary); }
.aicl-gallery .aicl-gx-rooms__link[aria-current="page"] .aicl-gx-rooms__num { color: var(--text-primary); }
.aicl-gallery .aicl-gx-rooms__link[aria-current="page"]::after { transform: none; }
.aicl-gallery .aicl-gx-rooms__link.is-empty { opacity: .42; }
@media (max-width: 767px) {
	.aicl-gallery .aicl-gx-rooms { width: 100%; }
	.aicl-gallery .aicl-gx-rooms__list {
		padding-inline: var(--gx-gutter) calc(var(--gx-gutter) + 48px); scroll-padding-inline: var(--gx-gutter);
		scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
		-webkit-mask-image: linear-gradient(to right, #000 calc(100% - 48px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 48px), transparent);
	}
	.aicl-gallery .aicl-gx-rooms__item { flex: none; }
	.aicl-gallery .aicl-gx-rooms__link { padding-right: 20px; }
}

/* ------------------------------------------------------- one work on a wall */
.aicl-gallery .aicl-gw { position: relative; min-width: 0; }
.aicl-gallery .aicl-gw__media {
	position: relative; display: block; aspect-ratio: var(--r, 1); overflow: hidden;
	border-radius: 3px; background: var(--tone, #16171b);
	box-shadow: 0 0 0 1px var(--overlay-white-06, rgba(255,255,255,.06));
	transition: box-shadow .9s var(--gx-ease), transform .9s var(--gx-ease);
	outline-offset: 6px;
}
/* The signature detail: a gradient hairline drawn under the work on hover/focus */
.aicl-gallery .aicl-gw__media::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
	background: var(--gradient-ai); transform: scaleX(0); transform-origin: left center;
	transition: transform .8s var(--gx-ease);
}
.aicl-gallery .aicl-gw__img,
.aicl-gallery .aicl-gw__media img {
	display: block; width: 100%; height: 100%; max-width: none; object-fit: cover;
	transition: opacity .9s var(--gx-ease), transform 1.6s var(--gx-ease);
}
.acl-js .aicl-gallery .aicl-gw__img:not(.is-loaded),
.acl-js .aicl-gallery .aicl-gx-cover__media img:not(.is-loaded),
.acl-js .aicl-gallery .aicl-gx-exhibit__media img:not(.is-loaded),
.acl-js .aicl-gallery .aicl-work__img img:not(.is-loaded) { opacity: 0; }
.aicl-gallery .aicl-gw__blank { display: block; width: 100%; height: 100%; background: linear-gradient(160deg, #1b1c22, #101115); }

.aicl-gallery .aicl-gw__label { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 14px; padding-top: var(--space-4, 16px); }
.aicl-gallery .aicl-gw--numbered .aicl-gw__label { grid-template-columns: auto minmax(0, 1fr); }
.aicl-gallery .aicl-gw__no { grid-row: span 3; padding-top: .55em; font-size: 11px; font-weight: 600; letter-spacing: .08em; color: var(--text-tertiary); font-variant-numeric: tabular-nums; }
.aicl-gallery .aicl-gw__title {
	margin: 0; font-family: var(--font-serif); font-size: clamp(1.25rem, 1rem + .55vw, 1.625rem); font-style: italic; font-weight: 400;
	line-height: 1.15; letter-spacing: -.005em; color: var(--text-primary);
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.aicl-gallery .aicl-gw__title a {
	color: inherit; text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%;
	transition: background-size .5s var(--gx-ease);
}
.aicl-gallery .aicl-gw__meta { display: flex; flex-wrap: wrap; gap: 0 8px; margin: 6px 0 0; font-size: 13px; line-height: 1.45; color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.aicl-gallery .aicl-gw__meta > span + span::before { content: "·"; margin-right: 8px; color: var(--text-tertiary); }
.aicl-gallery .aicl-gw__by { color: var(--text-primary); }
.aicl-gallery .aicl-gw__badge {
	justify-self: start; display: inline-flex; align-items: center; gap: 8px; margin: 10px 0 0;
	font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--text-secondary);
}
.aicl-gallery .aicl-gw__badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--acl-ai-pink, #FF79C6); box-shadow: 0 0 8px var(--acl-ai-pink, #FF79C6); }
@media (hover: hover) {
	.aicl-gallery .aicl-gw:hover .aicl-gw__media { box-shadow: 0 0 0 1px var(--overlay-white-10, rgba(255,255,255,.1)), 0 50px 110px -60px var(--gx-halo); }
	.aicl-gallery .aicl-gw:hover .aicl-gw__media::after { transform: none; }
	.aicl-gallery .aicl-gw:hover .aicl-gw__img { transform: scale(1.025); }
	.aicl-gallery .aicl-gw:hover .aicl-gw__title a { background-size: 100% 1px; }
}
.aicl-gallery .aicl-gw:focus-within .aicl-gw__media::after { transform: none; }

/* ------------------------------------------------------------ the hang */
.aicl-gallery .aicl-gx-wall {
	display: grid; grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--gx-col-gap); row-gap: clamp(72px, 8.5vw, 144px);
	margin: 0 auto; padding: 0; list-style: none;
}
.aicl-gallery .aicl-gx-wall__item {
	display: grid; justify-items: var(--j, start); align-self: var(--a, start); min-width: 0;
	grid-column: var(--c, auto) / span var(--s, 6);
}
.aicl-gallery .aicl-gx-wall--spaced { margin-top: clamp(48px, 6vw, 96px); }
/* Tall works never outgrow the screen: width follows the height they are allowed. */
.aicl-gallery .aicl-gx-wall .aicl-gw { width: min(100%, calc(var(--gx-cap) * var(--r, 1))); }
@media (max-width: 1023px) {
	.aicl-gallery .aicl-gx-wall { display: flex; flex-direction: column; gap: clamp(56px, 11vw, 96px); }
	.aicl-gallery .aicl-gx-wall__item { width: var(--m, 100%); align-self: flex-start; justify-items: start; }
	.aicl-gallery .aicl-gx-wall__item:nth-child(even) { align-self: flex-end; }
	.aicl-gallery .aicl-gx-wall__item.is-landscape { --m: 100%; }
	.aicl-gallery .aicl-gx-wall__item.is-square { --m: 78%; }
	.aicl-gallery .aicl-gx-wall__item.is-portrait { --m: 64%; }
}
@media (max-width: 599px) {
	.aicl-gallery .aicl-gx-wall__item.is-square { --m: 100%; }
	.aicl-gallery .aicl-gx-wall__item.is-portrait { --m: 84%; }
}

/* Works come into the light as they arrive (scroll-driven; the first row is never held back). */
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.acl-js .aicl-gallery .aicl-gx-wall__item:nth-child(n+3),
		.acl-js .aicl-gallery .aicl-gx-exhibit:nth-child(n+2) { animation: aicl-gx-hang linear both; animation-timeline: view(); animation-range: entry 0% entry 55%; }
		.acl-js .aicl-gallery.has-spotlight .aicl-gx-wall__item:nth-child(n+3) .aicl-gw__media { animation: aicl-gx-lamp linear both; animation-timeline: view(); animation-range: entry 0% cover 45%; }
	}
}
@keyframes aicl-gx-lamp { from { filter: brightness(.55) saturate(.8); } to { filter: none; } }
/* Browsers without scroll timelines: one entrance per work (gallery.js adds .is-in). */
.aicl-gx-io .aicl-gallery .aicl-gx-wall__item:nth-child(n+3):not(.is-in),
.aicl-gx-io .aicl-gallery .aicl-gx-exhibit:nth-child(n+2):not(.is-in) { opacity: 0; transform: translateY(26px); }
.aicl-gx-io .aicl-gallery .aicl-gx-wall__item,
.aicl-gx-io .aicl-gallery .aicl-gx-exhibit { transition: opacity 1s var(--gx-ease), transform 1.1s var(--gx-ease); }

/* ------------------------------------------------- main wall (the editors) */
.aicl-gallery .aicl-gx-mainwall { margin-top: clamp(72px, 9vw, 144px); }
.aicl-gallery .aicl-gx-head { display: grid; gap: 0; margin-bottom: clamp(40px, 5vw, 72px); }
.aicl-gallery .aicl-gx-head .aicl-gx-eyebrow { margin-bottom: var(--space-4, 16px); }
.aicl-gallery .aicl-gx-head__title { margin: 0; max-width: 18ch; font-family: var(--font-sans); font-size: var(--text-3xl, clamp(2.1rem, 3vw, 3rem)); font-weight: 600; line-height: 1.08; letter-spacing: -.03em; color: var(--text-primary); }
.aicl-gallery .aicl-gx-exhibits { display: grid; gap: clamp(80px, 10vw, 160px); margin: 0; padding: 0; list-style: none; }
.aicl-gallery .aicl-gx-exhibit { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-6, 24px); }
.aicl-gallery .aicl-gx-exhibit__media { position: relative; display: block; width: min(100%, calc(var(--gx-cap) * var(--r, 1))); aspect-ratio: var(--r, 1); overflow: hidden; border-radius: 3px; background: var(--tone, #16171b); box-shadow: 0 0 0 1px var(--overlay-white-06, rgba(255,255,255,.06)), 0 50px 110px -60px var(--gx-halo); }
.aicl-gallery .aicl-gx-exhibit__media img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: opacity .9s var(--gx-ease), transform 1.6s var(--gx-ease); }
.aicl-gallery .aicl-gx-exhibit__label { display: grid; align-content: end; gap: 0; max-width: 420px; }
.aicl-gallery .aicl-gx-exhibit__no { margin: 0 0 var(--space-6, 24px); font-family: var(--font-serif); font-size: clamp(3rem, 5vw, 4.5rem); line-height: .8; color: transparent; -webkit-text-stroke: 1px var(--text-tertiary); }
.aicl-gallery .aicl-gx-exhibit__title { margin: 0; font-family: var(--font-serif); font-size: clamp(1.875rem, 1.2rem + 1.8vw, 3rem); font-style: italic; font-weight: 400; line-height: 1.04; letter-spacing: -.015em; }
.aicl-gallery .aicl-gx-exhibit__title a { color: var(--text-primary); text-decoration: none; }
.aicl-gallery .aicl-gx-exhibit__by { margin: 14px 0 0; font-size: 1rem; color: var(--text-secondary); }
.aicl-gallery .aicl-gx-exhibit__by a { color: var(--text-primary); text-decoration: none; border-bottom: 1px solid var(--overlay-white-24, rgba(255,255,255,.24)); transition: border-color var(--motion-base, 200ms); }
.aicl-gallery .aicl-gx-exhibit__by a:hover { border-color: var(--acl-iris-dark-text, #9F96FF); }
.aicl-gallery .aicl-gx-exhibit__meta { margin: 4px 0 0; font-size: 13px; color: var(--text-tertiary); font-variant-numeric: tabular-nums; }
.aicl-gallery .aicl-gx-exhibit__note { margin: var(--space-6, 24px) 0 var(--space-2, 8px); padding-left: var(--space-4, 16px); border-left: 1px solid var(--border-strong); font-size: 1rem; line-height: 1.65; color: var(--text-primary); }
.aicl-gallery .aicl-gx-exhibit .aicl-gx-link { margin-top: var(--space-4, 16px); justify-self: start; }
@media (hover: hover) { .aicl-gallery .aicl-gx-exhibit:hover .aicl-gx-exhibit__media img { transform: scale(1.02); } }
@media (min-width: 1024px) {
	.aicl-gallery .aicl-gx-exhibit { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gx-col-gap); align-items: end; }
	.aicl-gallery .aicl-gx-exhibit__media { grid-column: 1 / span 7; grid-row: 1; }
	.aicl-gallery .aicl-gx-exhibit__label { grid-column: 9 / span 4; grid-row: 1; }
	.aicl-gallery .aicl-gx-exhibit.is-flip .aicl-gx-exhibit__media { grid-column: 6 / span 7; justify-self: end; }
	.aicl-gallery .aicl-gx-exhibit.is-flip .aicl-gx-exhibit__label { grid-column: 1 / span 4; }
	.aicl-gallery .aicl-gx-exhibit.is-portrait .aicl-gx-exhibit__media { grid-column: 2 / span 5; }
	.aicl-gallery .aicl-gx-exhibit.is-portrait .aicl-gx-exhibit__label { grid-column: 8 / span 5; }
	.aicl-gallery .aicl-gx-exhibit.is-portrait.is-flip .aicl-gx-exhibit__media { grid-column: 7 / span 5; }
	.aicl-gallery .aicl-gx-exhibit.is-portrait.is-flip .aicl-gx-exhibit__label { grid-column: 1 / span 5; }
}

/* ---------------------------------------------------------- pager, empty */
.aicl-gallery .aicl-pager { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin: clamp(80px, 10vw, 144px) auto 0; }
.aicl-gallery .aicl-pager .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 14px;
	border: 1px solid var(--border-default); border-radius: var(--radius-sm, 12px);
	font-size: .875rem; font-weight: 600; color: var(--text-secondary); text-decoration: none; font-variant-numeric: tabular-nums;
	transition: color var(--motion-base, 200ms), background-color var(--motion-base, 200ms), border-color var(--motion-base, 200ms);
}
.aicl-gallery .aicl-pager a.page-numbers:hover { color: var(--text-primary); background: var(--overlay-white-06, rgba(255,255,255,.06)); border-color: var(--border-strong); }
.aicl-gallery .aicl-pager .page-numbers.current { color: var(--text-primary); background: var(--interactive-soft); border-color: var(--interactive-primary); }
.aicl-gallery .aicl-pager .prev, .aicl-gallery .aicl-pager .next { padding: 0 20px; }
.aicl-gallery .aicl-pager .dots { border-color: transparent; }

.aicl-gallery .aicl-gx-empty { display: grid; justify-items: start; gap: 12px; padding: clamp(32px, 4vw, 56px) 0 0; }
.aicl-gallery .aicl-gx-empty > * { max-width: 560px; }
.aicl-gallery .aicl-gx-empty__title { margin: 0; font-family: var(--font-serif); font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.5rem); font-style: italic; font-weight: 400; line-height: 1.1; color: var(--text-primary); }
.aicl-gallery .aicl-gx-empty__body { margin: 0; font-size: 1rem; line-height: 1.6; color: var(--text-secondary); }
.aicl-gallery .aicl-gx-empty .aicl-gx-link { margin-top: 4px; }

/* -------------------------------------------------------------- exit band */
.aicl-gallery .aicl-gx-exit { margin: clamp(120px, 14vw, 208px) auto 0; }
.aicl-gallery .aicl-gx-exit__inner {
	position: relative; isolation: isolate; overflow: hidden;
	display: grid; gap: var(--space-8, 32px);
	padding: clamp(40px, 7vw, 96px) clamp(24px, 6vw, 96px);
	border: 1px solid var(--border-default); border-radius: var(--radius-xl, 32px);
	background: var(--bg-surface);
}
.aicl-gallery .aicl-gx-exit__inner::after {
	content: ""; position: absolute; z-index: -1; right: -12%; top: -80%; width: 60%; aspect-ratio: 1; border-radius: 50%;
	background: radial-gradient(circle, rgba(108, 92, 231, .16) 0%, transparent 65%);
}
.aicl-gallery .aicl-gx-exit__title { margin: 0; max-width: 13ch; font-family: var(--font-serif); font-size: var(--text-4xl, clamp(2.6rem, 5vw, 4.75rem)); font-weight: 400; line-height: 1; letter-spacing: -.02em; color: var(--text-primary); }
.aicl-gallery .aicl-gx-exit__body { margin: 0 0 var(--space-6, 24px); max-width: 42ch; font-size: var(--text-md, 1.125rem); line-height: 1.6; color: var(--text-secondary); }
.aicl-gallery .aicl-gx-exit__actions { display: flex; flex-wrap: wrap; gap: var(--space-3, 12px); }
@media (min-width: 1024px) { .aicl-gallery .aicl-gx-exit__inner { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: end; } }
@media (max-width: 479px) { .aicl-gallery .aicl-gx-exit .aicl-gbtn { width: 100%; } }

/* ------------------------------------------------------------- buttons */
/* The theme's .acl-btn, rebuilt here so the Gallery looks the same on any theme. */
.aicl-gbtn,
.aicl-gallery .aicl-gbtn {
	--btn-h: 48px;
	position: relative; display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2, 8px);
	min-height: var(--btn-h); padding: 0 var(--space-5, 20px);
	border: 1px solid var(--border-default); border-radius: var(--radius-sm, 12px);
	background: var(--bg-surface); color: var(--text-primary);
	font: 600 .9375rem/1.1 var(--font-sans); letter-spacing: -.005em; text-decoration: none; white-space: nowrap; cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition: background-color var(--motion-base, 200ms) var(--ease-standard), border-color var(--motion-base, 200ms) var(--ease-standard), color var(--motion-base, 200ms) var(--ease-standard), transform var(--motion-fast, 140ms) var(--ease-standard);
}
.aicl-gallery .aicl-gbtn:hover { background: var(--bg-elevated); border-color: var(--border-strong); color: var(--text-primary); }
.aicl-gallery .aicl-gbtn:active { background: var(--overlay-white-10, rgba(255,255,255,.1)); transition-duration: var(--motion-instant, 80ms); }
.aicl-gallery .aicl-gbtn:focus-visible { outline: 2px solid var(--focus-outline, #9F96FF); outline-offset: 2px; }
.aicl-gallery .aicl-gbtn--primary { border-color: transparent; background: var(--interactive-primary); color: var(--acl-white, #fff); }
.aicl-gallery .aicl-gbtn--primary:hover { border-color: transparent; background: var(--interactive-hover); color: var(--acl-white, #fff); transform: translateY(-1px); }
.aicl-gallery .aicl-gbtn--primary:active { background: var(--interactive-pressed); transform: none; }
.aicl-gallery .aicl-gbtn--lg { --btn-h: 56px; padding: 0 var(--space-6, 24px); font-size: 1rem; }
.aicl-gallery .aicl-gbtn--icon { width: var(--btn-h); padding: 0; }
.aicl-gallery .aicl-gbtn--quiet { --btn-h: 32px; padding: 0 10px; border-color: transparent; background: transparent; font-size: .75rem; color: var(--text-secondary); }
.aicl-gallery .aicl-gbtn--quiet:hover { border-color: transparent; background: var(--overlay-white-06, rgba(255,255,255,.06)); color: var(--text-primary); }
.aicl-gallery .aicl-gbtn .aicl-icon { flex: none; transition: transform var(--motion-base, 200ms) var(--ease-standard); }
.aicl-gallery .aicl-gbtn:hover .aicl-icon--arrow-right { transform: translateX(2px); }
.aicl-gallery .aicl-gbtn--pin:hover { border-color: transparent; background: #E60023; color: #fff; }
/* Appreciate: the heart fills with Iris, a ring opens and the count rolls */
.aicl-gallery .aicl-gbtn--like .aicl-icon { overflow: visible; }
.aicl-gallery .aicl-gbtn--like[aria-pressed="true"] { border-color: var(--interactive-primary); background: var(--interactive-soft); color: var(--acl-white, #fff); }
.aicl-gallery .aicl-gbtn--like[aria-pressed="true"] .aicl-icon { fill: var(--acl-iris-dark-text, #9F96FF); stroke: #c4bcff; }
.aicl-gallery .aicl-gbtn--like.is-pop .aicl-icon { animation: aicl-gx-heart .6s var(--gx-ease); }
.aicl-gallery .aicl-gbtn--like::after { content: ""; position: absolute; left: 30px; top: 50%; width: 30px; height: 30px; margin: -15px 0 0 -15px; border-radius: 50%; border: 2px solid rgba(159, 150, 255, .8); opacity: 0; transform: scale(.3); pointer-events: none; }
.aicl-gallery .aicl-gbtn--like.is-pop::after { animation: aicl-gx-ring .7s var(--gx-ease); }
.aicl-gallery .aicl-gbtn__count { min-width: 1.4em; padding-left: 10px; margin-left: 2px; border-left: 1px solid var(--border-strong); font-variant-numeric: tabular-nums; color: var(--text-secondary); text-align: left; }
.aicl-gallery .aicl-gbtn--like[aria-pressed="true"] .aicl-gbtn__count { color: var(--acl-white, #fff); }
.aicl-gallery .aicl-gbtn__count.is-roll { animation: aicl-gx-roll .4s var(--gx-ease); }
@keyframes aicl-gx-heart { 0% { transform: scale(1); } 30% { transform: scale(.72); } 60% { transform: scale(1.28); } 100% { transform: scale(1); } }
@keyframes aicl-gx-ring { 0% { opacity: .9; transform: scale(.3); } 100% { opacity: 0; transform: scale(1.7); } }
@keyframes aicl-gx-roll { 0% { transform: translateY(60%); opacity: 0; } 100% { transform: none; opacity: 1; } }

/* --------------------------------------------------------------- work page */
.aicl-gallery .aicl-crumbs { margin: clamp(16px, 2vw, 28px) auto clamp(8px, 1.4vw, 20px); }
.aicl-gallery .aicl-crumbs ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: .8125rem; color: var(--text-tertiary); }
.aicl-gallery .aicl-crumbs li + li::before { content: "/"; margin-right: 8px; opacity: .5; }
.aicl-gallery .aicl-crumbs a { color: var(--text-secondary); text-decoration: none; }
.aicl-gallery .aicl-crumbs a:hover { color: var(--text-primary); }
.aicl-gallery .aicl-crumbs [aria-current] { color: var(--text-tertiary); }

.aicl-gallery .aicl-work__room { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(32px, 5vw, 64px); }
.aicl-gallery .aicl-work__piece { position: relative; isolation: isolate; display: grid; place-items: center; margin: 0; padding: clamp(16px, 3vw, 40px) 0; }
.aicl-gallery .aicl-work__glow { position: absolute; inset: -8% -10%; z-index: -1; pointer-events: none; background: radial-gradient(48% 46% at 50% 48%, var(--gx-glow) 0%, transparent 72%); }
.aicl-gallery .aicl-work__img {
	display: block; width: min(100%, calc(min(78vh, 880px) * var(--r, 1))); aspect-ratio: var(--r, 1); overflow: hidden;
	border-radius: 4px; background: var(--tone, #16171b);
	box-shadow: 0 0 0 1px var(--overlay-white-06, rgba(255,255,255,.06)), 0 70px 140px -70px rgba(0, 0, 0, 1), 0 40px 170px -80px var(--gx-halo);
}
.aicl-gallery .aicl-work__img img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: opacity .9s var(--gx-ease); }
.aicl-gallery .aicl-work__label { align-self: center; max-width: 520px; }
.aicl-gallery .aicl-work__label .aicl-gx-eyebrow { margin-bottom: var(--space-5, 20px); }
.aicl-gallery .aicl-work__title { margin: 0; font-family: var(--font-serif); font-size: clamp(2.25rem, 1.4rem + 2.6vw, 3.75rem); font-style: italic; font-weight: 400; line-height: 1.02; letter-spacing: -.02em; color: var(--text-primary); text-wrap: balance; }
.aicl-gallery .aicl-work__by { margin: 16px 0 0; font-size: 1rem; color: var(--text-secondary); }
.aicl-gallery .aicl-work__by a { color: var(--text-primary); text-decoration: none; border-bottom: 1px solid var(--overlay-white-24, rgba(255,255,255,.24)); transition: border-color var(--motion-base, 200ms); }
.aicl-gallery .aicl-work__by a:hover { border-color: var(--acl-iris-dark-text, #9F96FF); }
.aicl-gallery .aicl-work__medium { margin: 4px 0 0; font-size: .8125rem; color: var(--text-tertiary); font-variant-numeric: tabular-nums; }
.aicl-gallery .aicl-work__hairline { display: block; width: 48px; height: 1px; margin: 28px 0; background: var(--gradient-ai); }
.aicl-gallery .aicl-work__note { margin: 0 0 24px; padding: 0 0 0 16px; border-left: 1px solid var(--border-strong); }
.aicl-gallery .aicl-work__note p { margin: 0; font-size: 1rem; line-height: 1.65; color: var(--text-primary); }
.aicl-gallery .aicl-work__note footer { margin-top: 8px; font-size: .75rem; color: var(--text-tertiary); }
.aicl-gallery .aicl-work__contest { margin: 0 0 24px; font-size: .875rem; color: var(--text-secondary); }
.aicl-gallery .aicl-work__contest a { color: var(--text-link); text-decoration: none; }
.aicl-gallery .aicl-work__contest a:hover { text-decoration: underline; text-underline-offset: 3px; }
.aicl-gallery .aicl-work__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 4px 0 28px; }
.aicl-gallery .aicl-work__prompt { padding: 18px 18px 6px; border: 1px solid var(--border-default); border-radius: var(--radius-md, 16px); background: var(--bg-surface); }
.aicl-gallery .aicl-work__prompt-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.aicl-gallery .aicl-work__prompt h2 { margin: 0; font-family: var(--font-sans); font-size: .6875rem; font-weight: 600; line-height: 1.4; letter-spacing: .14em; text-transform: uppercase; color: var(--text-tertiary); }
.aicl-gallery .aicl-work__prompt p { margin: 0 0 14px; font-size: .9375rem; line-height: 1.65; color: var(--text-secondary); }
/* A long prompt folds to ten lines; gallery.js adds .is-clamped only when it really overflows,
   and the toggle under it. No scrollbar inside the page (a nested scroll on a phone is a trap). */
.aicl-gallery .aicl-work__prompt.is-clamped:not(.is-open) p {
	max-height: 16.5em; /* ten lines at 1.65 */ overflow: hidden;
	-webkit-mask-image: linear-gradient(to bottom, #000 62%, transparent 100%); mask-image: linear-gradient(to bottom, #000 62%, transparent 100%);
}
.aicl-gallery .aicl-work__prompt-toggle { margin: -8px 0 10px -10px; }
.aicl-gallery .aicl-work__prompt-toggle[aria-expanded="true"] { margin-top: -4px; }
.aicl-gallery .aicl-work__fine { margin: 22px 0 0; font-size: .75rem; color: var(--text-tertiary); }
.aicl-gallery .aicl-work__fine a { margin-left: 10px; color: var(--text-tertiary); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--border-strong); }
.aicl-gallery .aicl-work__fine a:hover { color: var(--text-secondary); }
@media (min-width: 1024px) {
	.aicl-gallery .aicl-work__room { grid-template-columns: minmax(0, 1fr) minmax(320px, 440px); gap: clamp(40px, 5vw, 96px); align-items: center; }
	.aicl-gallery .aicl-work__piece { min-height: min(84vh, 920px); }
}
@media (prefers-reduced-motion: no-preference) {
	.aicl-gallery .aicl-work__label > * { animation: aicl-gx-rise .8s var(--gx-ease) both; }
	.aicl-gallery .aicl-work__label > :nth-child(n+3) { animation-delay: .08s; }
	.aicl-gallery .aicl-work__label > :nth-child(n+6) { animation-delay: .16s; }
	.aicl-gallery .aicl-work__glow { opacity: 0; animation: aicl-gx-light 1.6s var(--gx-ease) forwards; }
}

/* More by the same creator: a strip at one height, each work at its own width */
.aicl-gallery .aicl-corridor { margin-top: clamp(96px, 11vw, 160px); }
.aicl-gallery .aicl-corridor__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: clamp(24px, 3vw, 40px); }
.aicl-gallery .aicl-corridor__title { margin: 0; font-family: var(--font-sans); font-size: var(--text-2xl, clamp(1.75rem, 2vw, 2.25rem)); font-weight: 600; line-height: 1.15; letter-spacing: -.02em; color: var(--text-primary); }
.aicl-gallery .aicl-corridor__rail {
	--strip-h: clamp(170px, 18vw, 240px);
	display: flex; gap: clamp(16px, 2vw, 28px); margin: 0; padding: 4px 0 16px; list-style: none;
	overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity;
	-webkit-mask-image: linear-gradient(to right, #000 calc(100% - 64px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 64px), transparent);
}
.aicl-gallery .aicl-corridor__rail::-webkit-scrollbar { display: none; }
.aicl-gallery .aicl-corridor__rail > li { flex: none; scroll-snap-align: start; }
.aicl-gallery .aicl-gw--strip { width: calc(var(--strip-h) * var(--r, 1)); min-width: 120px; }
.aicl-gallery .aicl-gw--strip .aicl-gw__title { font-size: 1.0625rem; -webkit-line-clamp: 1; }
.aicl-gallery .aicl-gw--strip .aicl-gw__meta { font-size: 12px; }
.aicl-gallery .aicl-room--also .aicl-gx-wall { margin-top: clamp(40px, 5vw, 72px); }
.aicl-gallery .aicl-room__all { margin: clamp(56px, 7vw, 96px) 0 0; text-align: center; }

/* ------------------------------------------------- toast, contest page */
.aicl-gtoast { position: fixed; left: 50%; bottom: calc(28px + env(safe-area-inset-bottom, 0px)); max-width: calc(100vw - 32px); box-sizing: border-box; text-align: center; z-index: 1000; padding: 12px 18px; border-radius: 12px; font: 600 .875rem/1 var(--font-sans); color: #0b0c0e; background: #fff; box-shadow: 0 18px 40px -12px rgba(0, 0, 0, .7); transform: translate(-50%, 20px); opacity: 0; transition: transform .45s cubic-bezier(.16, 1, .3, 1), opacity .3s; pointer-events: none; }
.aicl-gtoast.is-on { transform: translate(-50%, 0); opacity: 1; }

/* Contest page blocks (theme hooks; Editorial Light or Dark, tokens only) */
.aicl-entry-panel { margin-top: 16px; }
.aicl-entry-panel__kicker { margin: 0 0 6px; font-size: .6875rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--interactive-soft-text, #9F96FF); }
.aicl-entry-panel__text { margin: 0 0 12px; font-size: .875rem; line-height: 1.55; color: var(--text-secondary); }
.aicl-contest-works .aicl-contest-works__lede { color: var(--text-secondary); font-size: .875rem; }
.aicl-contest-works .aicl-gw-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 20px; align-items: start; margin: 24px 0; padding: 0; list-style: none; }
.aicl-contest-works .aicl-gw__media { position: relative; display: block; aspect-ratio: var(--r, 1); overflow: hidden; border-radius: 3px; background: var(--tone, #16171b); }
.aicl-contest-works .aicl-gw__media img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.aicl-contest-works .aicl-gw__label { padding-top: 10px; }
.aicl-contest-works .aicl-gw__no { display: none; }
.aicl-contest-works .aicl-gw__title { margin: 0; font-family: var(--font-serif); font-size: 1.0625rem; font-style: italic; font-weight: 400; line-height: 1.25; letter-spacing: 0; }
.aicl-contest-works .aicl-gw__title a { color: var(--text-primary); text-decoration: none; }
.aicl-contest-works .aicl-gw__meta { display: flex; flex-wrap: wrap; gap: 0 6px; margin: 2px 0 0; font-size: .75rem; color: var(--text-secondary); }
.aicl-contest-works .aicl-gw__meta > span + span::before { content: "·"; margin-right: 6px; }
.aicl-contest-works .aicl-gw__badge { display: none; }
@media (max-width: 599px) { .aicl-contest-works .aicl-gw-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ------------------------------------------------------------ phones, touch */
/* 0.1.21: a tighter rhythm on phones (one work per screen instead of a screen of
   air), the strip and the rooms swipe edge to edge, the work page's actions fit one
   screen, and every tap target is at least 40px on touch screens. */
@media (pointer: coarse) {
	.aicl-gallery .aicl-gbtn--quiet { --btn-h: 40px; padding: 0 12px; font-size: .8125rem; }
	.aicl-gallery .aicl-crumbs a { display: inline-block; padding: 8px 0; margin: -8px 0; }
	.aicl-gallery .aicl-work__fine a { display: inline-block; padding: 10px 0; margin: -10px 0; }
	/* Touch gets the hover reward on press instead */
	.aicl-gallery .aicl-gw__media:active .aicl-gw__img,
	.aicl-gallery .aicl-gx-cover__media:active img,
	.aicl-gallery .aicl-gx-exhibit__media:active img { transform: scale(.985); transition-duration: 160ms; }
}
@media (max-width: 767px) {
	/* More by …: the strip runs to the screen edges, the first work starts at the gutter,
	   the last one clears the fade. */
	.aicl-gallery .aicl-corridor__rail {
		margin-inline: calc(var(--gx-gutter) * -1); padding-inline: var(--gx-gutter) calc(var(--gx-gutter) + 64px);
		scroll-padding-inline: var(--gx-gutter); overscroll-behavior-x: contain;
	}
	.aicl-gallery .aicl-corridor__head { margin-bottom: 20px; }
}
@media (max-width: 599px) {
	.aicl-gallery { padding-bottom: 56px; }
	.aicl-gallery .aicl-gx-hero { padding-bottom: 40px; }
	.aicl-gallery .aicl-gx-hero__title { margin-bottom: 20px; }
	.aicl-gallery .aicl-gx-hero__copy { max-width: none; }
	.aicl-gallery .aicl-gx-cover { margin-top: 32px; }
	.aicl-gallery .aicl-gx-cover__label { margin-top: 16px; }
	.aicl-gallery .aicl-gx-legend { margin-top: 28px; }

	/* Main wall and the rooms: less air between works */
	.aicl-gallery .aicl-gx-mainwall { margin-top: 56px; }
	.aicl-gallery .aicl-gx-head { margin-bottom: 28px; }
	.aicl-gallery .aicl-gx-exhibits { gap: 56px; }
	.aicl-gallery .aicl-gx-exhibit { gap: 16px; }
	.aicl-gallery .aicl-gx-exhibit__no { margin-bottom: 12px; font-size: 2.5rem; }
	.aicl-gallery .aicl-gx-exhibit__note { margin: 16px 0 4px; font-size: .9375rem; }
	.aicl-gallery .aicl-gx-exhibit .aicl-gx-link { margin-top: 8px; }
	.aicl-gallery .aicl-gx-chapter { margin-top: 56px; }
	.aicl-gallery .aicl-gx-rooms { margin: 20px auto 40px; }
	.aicl-gallery .aicl-gx-wall { gap: 44px; }
	.aicl-gallery .aicl-gx-wall__item.is-portrait { --m: 76%; }
	.aicl-gallery .aicl-gw__label { padding-top: 12px; }
	.aicl-gallery .aicl-pager { margin-top: 56px; }
	.aicl-gallery .aicl-gx-exit { margin-top: 80px; }
	.aicl-gallery .aicl-gx-exit__inner { gap: 20px; padding: 32px 22px; border-radius: 24px; }
	.aicl-gallery .aicl-gx-exit__body { margin-bottom: 16px; }

	/* Work page: the breadcrumb stays one line, the work sits close to the top, the
	   label uses the full width, Use this prompt takes the first row on its own. */
	.aicl-gallery .aicl-crumbs { margin: 12px auto 4px; }
	.aicl-gallery .aicl-crumbs ol { flex-wrap: nowrap; gap: 6px; }
	.aicl-gallery .aicl-crumbs li { flex: none; white-space: nowrap; }
	.aicl-gallery .aicl-crumbs li + li::before { margin-right: 6px; }
	.aicl-gallery .aicl-crumbs li:last-child { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
	.aicl-gallery .aicl-work__room { gap: 24px; }
	.aicl-gallery .aicl-work__piece { padding: 8px 0 0; }
	.aicl-gallery .aicl-work__label { max-width: none; }
	.aicl-gallery .aicl-work__label .aicl-gx-eyebrow { margin-bottom: 12px; }
	.aicl-gallery .aicl-work__by { margin-top: 12px; }
	.aicl-gallery .aicl-work__hairline { margin: 20px 0; }
	.aicl-gallery .aicl-work__note { margin-bottom: 18px; }
	.aicl-gallery .aicl-work__contest { margin-bottom: 18px; }
	.aicl-gallery .aicl-work__actions { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; margin: 0 0 20px; }
	.aicl-gallery .aicl-work__actions .aicl-gbtn--primary { grid-column: 1 / -1; order: -1; --btn-h: 52px; }
	.aicl-gallery .aicl-work__actions .aicl-gbtn--like { min-width: 0; justify-content: flex-start; padding-left: 16px; }
	.aicl-gallery .aicl-work__actions .aicl-gbtn--like .aicl-gbtn__count { margin-left: auto; }
	.aicl-gallery .aicl-work__prompt { padding: 16px 16px 6px; }
	.aicl-gallery .aicl-work__fine { margin-top: 16px; }
	.aicl-gallery .aicl-corridor { margin-top: 64px; }
	.aicl-gallery .aicl-corridor__title { font-size: 1.5rem; }
	.aicl-gallery .aicl-corridor__rail { --strip-h: 190px; gap: 14px; }
	.aicl-gallery .aicl-gw--strip { min-width: 128px; }
	.aicl-gallery .aicl-gw--strip .aicl-gw__title { font-size: 1rem; -webkit-line-clamp: 2; }
	.aicl-gallery .aicl-room--also .aicl-gx-wall { margin-top: 32px; }
	.aicl-gallery .aicl-room__all { margin-top: 44px; }
	.aicl-gallery .aicl-room__all .aicl-gbtn { width: 100%; }
}
@media (max-width: 379px) {
	.aicl-gallery .aicl-gx-hero__title { font-size: 3rem; }
	.aicl-gallery .aicl-work__actions { grid-template-columns: minmax(0, 1fr) auto; }
	.aicl-gallery .aicl-work__actions .aicl-gbtn--pin { display: none; }
}

/* ------------------------------------------------------------ reduced motion */
@media (prefers-reduced-motion: reduce) {
	.aicl-gallery *, .aicl-gallery *::before, .aicl-gallery *::after { animation: none !important; transition-duration: 1ms !important; }
	.aicl-gallery .aicl-gx-orb, .aicl-gallery .aicl-work__glow { opacity: 1; transform: none; }
	.aicl-gallery img { opacity: 1 !important; }
	@view-transition { navigation: none; }
}
