/*!
 * Reel Showcase – landing page styles (hero, contact form, tabs, grid, image viewer, glass popup).
 * Loaded only on pages that use [reel_showcase_page], the Page block or the Page widget.
 */

/* ==========================================================================
   Tokens
   ========================================================================== */
.rlsc-page,
.rlsc-glass,
.rlsc-viewer {
	--rlsc-bg: #0b0b0c;
	--rlsc-surface: #151517;
	--rlsc-text: #f4f4f2;
	--rlsc-muted: #a3a3a8;
	--rlsc-subtle: #75757b;
	--rlsc-border: rgba(255, 255, 255, 0.08);
	--rlsc-border-strong: rgba(255, 255, 255, 0.18);
	--rlsc-accent: #c8ff5a;
	--rlsc-accent-ink: #0b0b0c;
	--rlsc-violet: #7c5cff;
	--rlsc-cyan: #19d3ff;
	--rlsc-radius: 18px;
	--rlsc-radius-sm: 999px;
	--rlsc-pad-x: clamp(16px, 4vw, 56px);
	--rlsc-max: 1560px;
	--rlsc-font-display: "Instrument Serif", "Cormorant Garamond", "Playfair Display", Georgia, "Times New Roman", serif;
	--rlsc-ease: cubic-bezier(0.22, 0.68, 0.18, 1);
	--rlsc-dur: 420ms;
	--rlsc-dur-fast: 200ms;
}

.rlsc-page {
	position: relative;
	background: var(--rlsc-bg);
	color: var(--rlsc-text);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.rlsc-page *,
.rlsc-page *::before,
.rlsc-page *::after,
.rlsc-glass *,
.rlsc-glass *::before,
.rlsc-glass *::after,
.rlsc-viewer *,
.rlsc-viewer *::before,
.rlsc-viewer *::after {
	box-sizing: border-box;
}

.rlsc-page button,
.rlsc-glass button,
.rlsc-viewer button {
	-webkit-appearance: none;
	appearance: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	color: inherit;
	font: inherit;
	letter-spacing: normal;
	text-transform: none;
	text-shadow: none;
	min-height: 0;
	cursor: pointer;
}

.rlsc-page a,
.rlsc-glass a,
.rlsc-viewer a {
	text-decoration: none;
	box-shadow: none;
}

.rlsc-page .rlsc-icon,
.rlsc-glass .rlsc-icon,
.rlsc-viewer .rlsc-icon {
	display: block;
	width: 1em;
	height: 1em;
	flex: none;
}

.rlsc-page .rlsc__accent-word,
.rlsc-glass .rlsc__accent-word {
	padding-right: 0.04em;
	font-family: var(--rlsc-font-display);
	font-style: italic;
	font-weight: 400;
	letter-spacing: -0.02em;
	background: linear-gradient(100deg, var(--rlsc-text) 20%, var(--rlsc-accent) 120%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.rlsc-page :focus-visible,
.rlsc-glass :focus-visible,
.rlsc-viewer :focus-visible {
	outline: 2px solid var(--rlsc-accent);
	outline-offset: 3px;
}

/* ==========================================================================
   Hero – compact, with a "magic motion" orbit
   ========================================================================== */
.rlsc-hero {
	container: rlscHero / inline-size;
	position: relative;
	isolation: isolate;
	/* Generous top space so floating / transparent theme headers never cover the hero (adjustable in Settings). */
	padding: var(--rlsc-hero-top, clamp(112px, 10vw, 152px)) var(--rlsc-pad-x) clamp(48px, 6vw, 88px);
	overflow: hidden;
	background: var(--rlsc-bg);
	border-bottom: 1px solid var(--rlsc-border);
	--mx: 70%;
	--my: 40%;
}

.rlsc-hero__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
}

.rlsc-hero__aurora {
	position: absolute;
	top: -60%;
	right: -15%;
	width: 85%;
	height: 200%;
	background:
		radial-gradient(40% 35% at 60% 45%, color-mix(in srgb, var(--rlsc-accent) 26%, transparent), transparent 70%),
		radial-gradient(35% 30% at 35% 60%, color-mix(in srgb, var(--rlsc-violet) 30%, transparent), transparent 70%),
		radial-gradient(30% 25% at 70% 70%, color-mix(in srgb, var(--rlsc-cyan) 18%, transparent), transparent 70%);
	filter: blur(60px);
	opacity: 0.75;
	animation: rlsc-aurora 18s ease-in-out infinite alternate;
	will-change: transform;
}

.rlsc-hero__grid {
	position: absolute;
	inset: -48px 0 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
	background-size: 48px 48px;
	-webkit-mask-image: radial-gradient(ellipse 60% 70% at 72% 50%, #000 10%, transparent 72%);
	mask-image: radial-gradient(ellipse 60% 70% at 72% 50%, #000 10%, transparent 72%);
	animation: rlsc-grid-pan-sm 20s linear infinite;
}

.rlsc-hero__spot {
	position: absolute;
	inset: 0;
	background: radial-gradient(520px circle at var(--mx) var(--my), rgba(255, 255, 255, 0.06), transparent 60%);
}

.rlsc-hero__inner {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.6fr);
	align-items: center;
	gap: clamp(28px, 4vw, 72px);
	width: 100%;
	max-width: var(--rlsc-max);
	margin: 0 auto;
}

.rlsc-hero__content {
	min-width: 0;
}

.rlsc-page .rlsc-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 clamp(16px, 2vw, 24px);
	padding: 7px 14px 7px 11px;
	border: 1px solid var(--rlsc-border-strong);
	border-radius: var(--rlsc-radius-sm);
	background: rgba(255, 255, 255, 0.04);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	color: var(--rlsc-text);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.18em;
	line-height: 1;
	text-transform: uppercase;
	animation: rlsc-rise-in 0.8s var(--rlsc-ease) both;
}

.rlsc-hero__eyebrow-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--rlsc-accent);
	animation: rlsc-ping 2.2s ease-out infinite;
}

.rlsc-page .rlsc-hero__title {
	max-width: 16ch;
	margin: 0;
	padding: 0;
	color: var(--rlsc-text);
	font-family: inherit;
	font-size: clamp(36px, 5vw, 78px);
	font-size: clamp(34px, 6.2cqi, 78px);
	font-weight: 500;
	letter-spacing: -0.048em;
	line-height: 0.98;
	text-transform: none;
	text-wrap: balance;
}

/* Shimmer sweep across the accent word. */
.rlsc-page .rlsc-hero__title .rlsc__accent-word {
	background: linear-gradient(100deg, var(--rlsc-text) 25%, var(--rlsc-accent) 45%, #fff 50%, var(--rlsc-accent) 55%, var(--rlsc-text) 75%);
	background-size: 250% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	animation: rlsc-shimmer 6s 1.4s ease-in-out infinite;
}

.rlsc-w {
	display: inline-block;
	overflow: hidden;
	padding-bottom: 0.1em;
	margin-bottom: -0.1em;
	vertical-align: top;
}

.rlsc-w > span {
	display: inline-block;
	transform: translateY(110%) rotate(4deg);
	transform-origin: left bottom;
	animation: rlsc-word-up 0.95s var(--rlsc-ease) forwards;
	animation-delay: calc(0.1s + var(--w, 0) * 0.07s);
}

.rlsc-page .rlsc-hero__rotator {
	display: flex;
	align-items: baseline;
	gap: 0.35em;
	margin: clamp(10px, 1.2vw, 16px) 0 0;
	color: var(--rlsc-muted);
	font-size: clamp(18px, 2.2vw, 30px);
	font-size: clamp(18px, 2.6cqi, 30px);
	line-height: 1.2;
	animation: rlsc-rise-in 0.8s 0.45s var(--rlsc-ease) both;
}

.rlsc-hero__words {
	position: relative;
	display: inline-grid;
	height: 1.25em;
	overflow: hidden;
	vertical-align: bottom;
}

.rlsc-hero__word {
	grid-area: 1 / 1;
	color: var(--rlsc-accent);
	font-family: var(--rlsc-font-display);
	font-style: italic;
	white-space: nowrap;
	opacity: 0;
	transform: translateY(100%);
	transition: transform 0.7s var(--rlsc-ease), opacity 0.5s ease;
}

.rlsc-hero__word.is-active {
	opacity: 1;
	transform: none;
}

.rlsc-hero__word.is-leaving {
	opacity: 0;
	transform: translateY(-100%);
}

.rlsc-page .rlsc-hero__text {
	max-width: 52ch;
	margin: clamp(14px, 1.6vw, 20px) 0 0;
	color: var(--rlsc-muted);
	font-size: clamp(15px, 1.15vw, 17px);
	line-height: 1.65;
	animation: rlsc-rise-in 0.8s 0.55s var(--rlsc-ease) both;
}

.rlsc-hero__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px clamp(24px, 3vw, 44px);
	margin-top: clamp(22px, 2.6vw, 32px);
	animation: rlsc-rise-in 0.8s 0.65s var(--rlsc-ease) both;
}

.rlsc-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.rlsc-page .rlsc-hero__btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	height: 52px;
	padding: 0 24px;
	border-radius: var(--rlsc-radius-sm);
	font-size: 14.5px;
	font-weight: 600;
	white-space: nowrap;
	transition: transform 0.35s var(--rlsc-ease), background-color var(--rlsc-dur-fast) ease, color var(--rlsc-dur-fast) ease, border-color var(--rlsc-dur-fast) ease, box-shadow 0.35s ease;
	will-change: transform;
}

.rlsc-page .rlsc-hero__btn--primary {
	padding: 0 7px 0 24px;
	background: var(--rlsc-accent);
	color: var(--rlsc-accent-ink);
	box-shadow: 0 14px 40px -14px color-mix(in srgb, var(--rlsc-accent) 75%, transparent);
}

.rlsc-hero__btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--rlsc-accent-ink);
	color: var(--rlsc-accent);
	font-size: 17px;
	transition: transform 0.4s var(--rlsc-ease);
}

.rlsc-page .rlsc-hero__btn--ghost {
	border: 1px solid var(--rlsc-border-strong);
	background: rgba(255, 255, 255, 0.03);
	color: var(--rlsc-text);
}

@media (hover: hover) {
	.rlsc-page .rlsc-hero__btn--primary:hover .rlsc-hero__btn-icon {
		transform: rotate(-45deg);
	}

	.rlsc-page .rlsc-hero__btn--ghost:hover {
		border-color: var(--rlsc-text);
		background: rgba(255, 255, 255, 0.08);
	}
}

.rlsc-page .rlsc-hero__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 28px;
	margin: 0;
	padding: 4px 0 4px clamp(20px, 2.4vw, 32px);
	border-left: 1px solid var(--rlsc-border-strong);
}

.rlsc-hero__stat {
	display: flex;
	flex-direction: column-reverse;
	gap: 4px;
}

.rlsc-page .rlsc-hero__stat-value {
	margin: 0;
	color: var(--rlsc-text);
	font-size: clamp(22px, 2vw, 30px);
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.03em;
	line-height: 1;
}

.rlsc-page .rlsc-hero__stat-label {
	margin: 0;
	color: var(--rlsc-subtle);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* Orbit visual */
.rlsc-hero__visual {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	animation: rlsc-orbit-in 1.2s 0.2s var(--rlsc-ease) both;
}

.rlsc-orbit {
	--size: clamp(220px, 26vw, 380px);
	--size: clamp(220px, 30cqi, 380px);
	position: relative;
	width: var(--size);
	height: var(--size);
	flex: none;
	transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
	transition: transform 0.7s var(--rlsc-ease);
	transform-style: preserve-3d;
}

.rlsc-orbit__glow {
	position: absolute;
	inset: -18%;
	border-radius: 50%;
	background: radial-gradient(closest-side, color-mix(in srgb, var(--rlsc-accent) 28%, transparent), color-mix(in srgb, var(--rlsc-violet) 14%, transparent) 55%, transparent);
	filter: blur(30px);
	animation: rlsc-breathe 6s ease-in-out infinite;
}

.rlsc-orbit__ring {
	--d: 30s;
	position: absolute;
	top: 50%;
	left: 50%;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 50%;
	animation: rlsc-orbit-spin var(--d) linear infinite;
}

.rlsc-orbit__ring--1 {
	--d: 16s;
	--r: calc(var(--size) * 0.27);
	width: calc(var(--size) * 0.54);
	height: calc(var(--size) * 0.54);
	margin: calc(var(--size) * -0.27) 0 0 calc(var(--size) * -0.27);
	border-color: rgba(255, 255, 255, 0.18);
}

.rlsc-orbit__ring--2 {
	--d: 26s;
	--r: calc(var(--size) * 0.385);
	width: calc(var(--size) * 0.77);
	height: calc(var(--size) * 0.77);
	margin: calc(var(--size) * -0.385) 0 0 calc(var(--size) * -0.385);
	border-style: dashed;
	animation-direction: reverse;
}

.rlsc-orbit__ring--3 {
	--d: 40s;
	--r: calc(var(--size) * 0.5);
	width: var(--size);
	height: var(--size);
	margin: calc(var(--size) * -0.5) 0 0 calc(var(--size) * -0.5);
	border-color: rgba(255, 255, 255, 0.07);
}

.rlsc-orbit__chip {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 42px;
	height: 42px;
	margin: -21px 0 0 -21px;
	transform: rotate(var(--a)) translateX(var(--r)) rotate(calc(var(--a) * -1));
}

/* Counter-rotate so icons stay upright while their ring spins. */
.rlsc-orbit__chip > span {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 13px;
	background: rgba(20, 20, 24, 0.78);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.8);
	color: var(--rlsc-text);
	font-size: 18px;
	animation: rlsc-orbit-spin var(--d) linear infinite reverse;
}

.rlsc-orbit__ring--2 .rlsc-orbit__chip > span {
	animation-direction: normal;
}

.rlsc-orbit__chip--accent > span {
	border-color: transparent;
	background: var(--rlsc-accent);
	color: var(--rlsc-accent-ink);
	box-shadow: 0 10px 30px -8px color-mix(in srgb, var(--rlsc-accent) 70%, transparent);
}

.rlsc-orbit__chip--heart > span {
	color: #ff3b5c;
}

.rlsc-orbit__chip--heart .rlsc-icon {
	animation: rlsc-beat 1.6s ease-in-out infinite;
}

.rlsc-orbit__dot {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 7px;
	height: 7px;
	margin: -3.5px 0 0 -3.5px;
	border-radius: 50%;
	background: var(--rlsc-accent);
	box-shadow: 0 0 12px var(--rlsc-accent);
	transform: rotate(var(--a)) translateX(var(--r));
}

.rlsc-orbit__core {
	position: absolute;
	inset: 33%;
	border-radius: 50%;
}

.rlsc-orbit__blob {
	position: absolute;
	inset: 0;
	border-radius: 42% 58% 63% 37% / 41% 44% 56% 59%;
	background: conic-gradient(from var(--rlsc-angle), var(--rlsc-accent), var(--rlsc-violet), var(--rlsc-cyan), var(--rlsc-accent));
	filter: blur(1px) saturate(120%);
	animation: rlsc-morph 9s ease-in-out infinite, rlsc-spin-angle 7s linear infinite;
}

.rlsc-orbit__blob--2 {
	inset: 8%;
	opacity: 0.7;
	mix-blend-mode: screen;
	filter: blur(6px);
	animation-direction: reverse, reverse;
	animation-duration: 7s, 5s;
}

.rlsc-orbit__glass {
	position: absolute;
	inset: 24%;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.14);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
	color: #fff;
	font-size: calc(var(--size) * 0.07);
}

.rlsc-orbit__glass .rlsc-icon {
	animation: rlsc-twinkle 3s ease-in-out infinite;
}

.rlsc-orbit__sparkle {
	position: absolute;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 8px #fff;
	opacity: 0;
	animation: rlsc-twinkle 3.6s ease-in-out infinite;
}

.rlsc-orbit__sparkle--1 { top: 8%; left: 22%; animation-delay: 0.2s; }
.rlsc-orbit__sparkle--2 { top: 18%; right: 6%; animation-delay: 1.1s; }
.rlsc-orbit__sparkle--3 { bottom: 14%; left: 4%; animation-delay: 2s; }
.rlsc-orbit__sparkle--4 { bottom: 4%; right: 26%; animation-delay: 0.7s; }
.rlsc-orbit__sparkle--5 { top: 46%; left: -4%; animation-delay: 2.6s; }
.rlsc-orbit__sparkle--6 { top: 40%; right: -3%; animation-delay: 1.6s; }

/* Hero responsiveness: the orbit floats behind the text on narrow screens, keeping the hero compact. */
@container rlscHero (max-width: 820px) {
	.rlsc-hero__inner {
		grid-template-columns: minmax(0, 1fr);
	}

	.rlsc-hero__visual {
		position: absolute;
		top: -24px;
		right: -70px;
		z-index: -1;
		opacity: 0.5;
	}

	.rlsc-orbit {
		--size: 260px;
	}

	.rlsc-page .rlsc-hero__title {
		max-width: 14ch;
	}
}

@container rlscHero (max-width: 560px) {
	.rlsc-hero__foot {
		flex-direction: column;
		align-items: stretch;
	}

	.rlsc-page .rlsc-hero__btn {
		flex: 1;
		justify-content: center;
		height: 50px;
	}

	.rlsc-page .rlsc-hero__btn--primary {
		justify-content: space-between;
	}

	.rlsc-page .rlsc-hero__stats {
		justify-content: space-between;
		padding: 16px 0 0;
		border-left: 0;
		border-top: 1px solid var(--rlsc-border);
	}

	.rlsc-orbit {
		--size: 210px;
	}

	.rlsc-hero__visual {
		right: -80px;
		opacity: 0.35;
	}
}

/* ==========================================================================
   Contact form card (glass)
   ========================================================================== */
@property --rlsc-angle {
	syntax: "<angle>";
	initial-value: 0deg;
	inherits: false;
}

.rlsc-form-card {
	position: relative;
	z-index: 1;
	padding: clamp(24px, 3vw, 40px);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 28px;
	background: linear-gradient(160deg, rgba(255, 255, 255, 0.085), rgba(255, 255, 255, 0.02) 60%);
	-webkit-backdrop-filter: blur(22px) saturate(140%);
	backdrop-filter: blur(22px) saturate(140%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 50px 120px -40px rgba(0, 0, 0, 0.9);
	scroll-margin-top: 90px;
}

.rlsc-form-card__ring {
	position: absolute;
	inset: -1px;
	padding: 1px;
	border-radius: inherit;
	background: conic-gradient(from var(--rlsc-angle), transparent 0 62%, var(--rlsc-accent) 78%, var(--rlsc-violet) 88%, transparent 100%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	mask-composite: exclude;
	animation: rlsc-spin-angle 6s linear infinite;
	pointer-events: none;
}

.rlsc-page .rlsc-form-card__status {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin: 0 0 16px;
	padding: 6px 12px 6px 10px;
	border-radius: var(--rlsc-radius-sm);
	background: rgba(52, 211, 153, 0.1);
	color: #6ee7b7;
	font-size: 12px;
	font-weight: 500;
}

.rlsc-form-card__dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #34d399;
	box-shadow: 0 0 0 0 rgba(52, 211, 153, 0.7);
	animation: rlsc-ping-green 2s ease-out infinite;
}

.rlsc-page .rlsc-form-card__title {
	margin: 0;
	padding: 0;
	color: var(--rlsc-text);
	font-family: inherit;
	font-size: clamp(24px, 2.4vw, 34px);
	font-weight: 500;
	letter-spacing: -0.03em;
	line-height: 1.1;
	text-transform: none;
}

.rlsc-page .rlsc-form-card__text {
	margin: 10px 0 0;
	color: var(--rlsc-muted);
	font-size: 15px;
}

.rlsc-form {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 22px 0 0;
}

.rlsc-form__hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.rlsc-form__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.rlsc-field {
	position: relative;
}

.rlsc-page .rlsc-field__input {
	display: block;
	width: 100%;
	height: 58px;
	margin: 0;
	padding: 24px 16px 8px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.04);
	box-shadow: none;
	color: var(--rlsc-text);
	font: inherit;
	font-size: 15px;
	line-height: 1.3;
	outline: none;
	transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.25s ease;
	-webkit-appearance: none;
	appearance: none;
}

.rlsc-page textarea.rlsc-field__input {
	height: 128px;
	min-height: 110px;
	padding-top: 28px;
	resize: vertical;
}

.rlsc-page select.rlsc-field__input {
	padding-right: 40px;
	cursor: pointer;
}

.rlsc-page select.rlsc-field__input option {
	background: #151517;
	color: var(--rlsc-text);
}

.rlsc-field__chevron {
	position: absolute;
	top: 50%;
	right: 18px;
	width: 8px;
	height: 8px;
	margin-top: -2px;
	border-right: 1.5px solid var(--rlsc-muted);
	border-bottom: 1.5px solid var(--rlsc-muted);
	transform: translateY(-50%) rotate(45deg);
	pointer-events: none;
}

.rlsc-field__label {
	position: absolute;
	top: 19px;
	left: 17px;
	color: var(--rlsc-muted);
	font-size: 15px;
	line-height: 1.2;
	transform-origin: left top;
	transition: transform 0.25s var(--rlsc-ease), color 0.2s ease;
	pointer-events: none;
}

.rlsc-field__input:focus + .rlsc-field__label,
.rlsc-field__input:not(:placeholder-shown) + .rlsc-field__label,
.rlsc-field__label.is-static {
	transform: translateY(-10px) scale(0.78);
}

.rlsc-field__input:focus + .rlsc-field__label {
	color: var(--rlsc-accent);
}

.rlsc-page .rlsc-field__input:hover {
	border-color: rgba(255, 255, 255, 0.2);
}

.rlsc-page .rlsc-field__input:focus {
	border-color: var(--rlsc-accent);
	background: rgba(255, 255, 255, 0.06);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--rlsc-accent) 18%, transparent);
}

.rlsc-field.has-error .rlsc-field__input {
	border-color: #ff5c7a;
}

.rlsc-field__error {
	display: block;
	min-height: 0;
	color: #ff8aa0;
	font-size: 12px;
}

.rlsc-field__error:not(:empty) {
	margin-top: 6px;
}

.rlsc-form__chips {
	margin: 4px 0 0;
	padding: 0;
	border: 0;
}

.rlsc-page .rlsc-form__chips legend {
	margin-bottom: 8px;
	padding: 0;
	color: var(--rlsc-muted);
	font-size: 13px;
}

.rlsc-form__chip-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.rlsc-chip {
	position: relative;
	cursor: pointer;
}

.rlsc-chip input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.rlsc-chip span {
	display: inline-flex;
	align-items: center;
	height: 38px;
	padding: 0 14px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: var(--rlsc-radius-sm);
	color: var(--rlsc-text);
	font-size: 13px;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s var(--rlsc-ease);
}

.rlsc-chip input:checked + span {
	border-color: var(--rlsc-accent);
	background: var(--rlsc-accent);
	color: var(--rlsc-accent-ink);
	transform: scale(1.03);
}

.rlsc-chip input:focus-visible + span {
	outline: 2px solid var(--rlsc-accent);
	outline-offset: 2px;
}

@media (hover: hover) {
	.rlsc-chip:hover span {
		border-color: rgba(255, 255, 255, 0.35);
	}
}

.rlsc-form__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 18px;
	margin-top: 6px;
}

.rlsc-page .rlsc-form__submit {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	height: 56px;
	padding: 0 8px 0 26px;
	border-radius: var(--rlsc-radius-sm);
	background: var(--rlsc-text);
	color: var(--rlsc-bg);
	font-size: 15px;
	font-weight: 600;
	transition: background-color 0.2s ease, transform 0.3s var(--rlsc-ease);
}

.rlsc-form__submit-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--rlsc-bg);
	color: var(--rlsc-text);
	font-size: 18px;
	transition: transform 0.4s var(--rlsc-ease), opacity 0.2s ease;
}

.rlsc-form__spinner {
	position: absolute;
	right: 19px;
	width: 20px;
	height: 20px;
	border: 2px solid rgba(255, 255, 255, 0.3);
	border-top-color: var(--rlsc-text);
	border-radius: 50%;
	opacity: 0;
}

.rlsc-form.is-sending .rlsc-form__submit-icon {
	opacity: 0;
}

.rlsc-form.is-sending .rlsc-form__spinner {
	opacity: 1;
	animation: rlsc-spin 0.8s linear infinite;
}

.rlsc-form.is-sending .rlsc-form__submit {
	pointer-events: none;
	opacity: 0.85;
}

@media (hover: hover) {
	.rlsc-page .rlsc-form__submit:hover {
		background: var(--rlsc-accent);
		color: var(--rlsc-accent-ink);
	}

	.rlsc-page .rlsc-form__submit:hover .rlsc-form__submit-icon {
		transform: rotate(-45deg);
	}
}

.rlsc-page .rlsc-form__privacy {
	margin: 0;
	color: var(--rlsc-subtle);
	font-size: 12px;
}

.rlsc-page .rlsc-form__live {
	margin: 0;
	color: #ff8aa0;
	font-size: 13px;
}

.rlsc-page .rlsc-form__live:empty {
	display: none;
}

.rlsc-page .rlsc-form__notice {
	margin: 16px 0 0;
	padding: 12px 14px;
	border-radius: 12px;
	font-size: 14px;
}

.rlsc-form__notice.is-success {
	background: rgba(52, 211, 153, 0.12);
	color: #6ee7b7;
}

.rlsc-form__notice.is-error {
	background: rgba(255, 92, 122, 0.12);
	color: #ff8aa0;
}

.rlsc-form-card__success {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 40px 10px 20px;
	text-align: center;
	outline: none;
	animation: rlsc-rise-in 0.7s var(--rlsc-ease) both;
}

.rlsc-form-card__success[hidden] {
	display: none;
}

.rlsc-form-card__check {
	color: var(--rlsc-accent);
}

.rlsc-form-card__check circle {
	stroke-dasharray: 160;
	stroke-dashoffset: 160;
	animation: rlsc-draw-160 0.8s var(--rlsc-ease) forwards;
}

.rlsc-form-card__check path {
	stroke-dasharray: 40;
	stroke-dashoffset: 40;
	animation: rlsc-draw-40 0.5s 0.6s var(--rlsc-ease) forwards;
}

.rlsc-page .rlsc-form-card__success-title {
	margin: 10px 0 0;
	color: var(--rlsc-text);
	font-size: 22px;
	font-weight: 600;
}

.rlsc-page .rlsc-form-card__success-text {
	max-width: 36ch;
	margin: 0;
	color: var(--rlsc-muted);
	font-size: 15px;
}

.rlsc-form-card.is-sent .rlsc-form,
.rlsc-form-card.is-sent .rlsc-form-card__text {
	display: none;
}

/* ==========================================================================
   Work section: page tabs + panels
   ========================================================================== */
.rlsc.rlsc--work {
	scroll-margin-top: 60px;
}

.rlsc-page .rlsc__tabbar {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 2px;
	padding: 5px;
	border: 1px solid var(--rlsc-border);
	border-radius: var(--rlsc-radius-sm);
	background: rgba(255, 255, 255, 0.03);
	white-space: nowrap;
	vertical-align: top;
}

.rlsc-page .rlsc__tabs--page .rlsc__tablist {
	padding: 0;
	border: 0;
	background: none;
}

.rlsc-page .rlsc__tabs--page .rlsc__tab-indicator {
	top: 0;
	bottom: 0;
}

.rlsc-page .rlsc__tab--popup {
	margin-left: 2px;
	color: var(--rlsc-text);
	background: linear-gradient(120deg, rgba(124, 92, 255, 0.22), rgba(25, 211, 255, 0.14));
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);
}

.rlsc__tab-pop {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	font-size: 12px;
	transition: transform 0.35s var(--rlsc-ease);
}

@media (hover: hover) {
	.rlsc-page .rlsc__tab--popup:hover .rlsc__tab-pop {
		transform: rotate(45deg) scale(1.08);
	}
}

.rlsc-panels {
	position: relative;
}

.rlsc-panel[hidden] {
	display: none;
}

.rlsc-panel:focus {
	outline: none;
}

.rlsc-panel:focus-visible {
	outline: 2px solid var(--rlsc-accent);
	outline-offset: 8px;
	border-radius: 12px;
}

.rlsc-panel.is-entering {
	animation: rlsc-panel-in 0.65s var(--rlsc-ease) both;
}

.rlsc-panel > .rlsc + .rlsc-grid {
	margin-top: clamp(40px, 5vw, 64px);
}

/* ==========================================================================
   Portfolio image grid (masonry)
   ========================================================================== */
.rlsc-grid__list {
	columns: 3 280px;
	column-gap: clamp(12px, 1.6vw, 22px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.rlsc-grid__item {
	margin: 0 0 clamp(12px, 1.6vw, 22px);
	padding: 0;
	break-inside: avoid;
	list-style: none;
}

.rlsc-grid__item[hidden] {
	display: none;
}

.rlsc-grid.is-ready .rlsc-grid__item {
	opacity: 0;
	transform: translateY(36px) scale(0.98);
	transition: opacity 0.8s ease, transform 1s var(--rlsc-ease);
	transition-delay: calc(var(--g, 0) % 6 * 70ms);
}

.rlsc-grid.is-ready .rlsc-grid__item.is-in {
	opacity: 1;
	transform: none;
}

.rlsc-grid__card {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: var(--rlsc-radius);
	background: var(--rlsc-surface);
	isolation: isolate;
}

.rlsc-grid__card::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
	border-radius: inherit;
	box-shadow: inset 0 0 0 1px var(--rlsc-border);
	pointer-events: none;
}

.rlsc-grid__link {
	display: block;
	color: inherit;
	outline: none;
}

.rlsc-page .rlsc-grid__img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	margin: 0;
	border-radius: 0;
	transition: transform 1.1s var(--rlsc-ease), filter 0.6s ease;
}

.rlsc-grid__shade {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.2) 45%, rgba(0, 0, 0, 0) 70%);
	opacity: 0.55;
	transition: opacity 0.5s ease;
}

.rlsc-grid__zoom {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--rlsc-text);
	color: var(--rlsc-bg);
	font-size: 18px;
	opacity: 0;
	transform: scale(0.6) rotate(-45deg);
	transition: opacity 0.35s ease, transform 0.5s var(--rlsc-ease);
}

.rlsc-grid__caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: clamp(14px, 1.6vw, 22px);
	pointer-events: none;
	transform: translateY(6px);
	transition: transform 0.5s var(--rlsc-ease);
}

.rlsc-grid__cat {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: rgba(255, 255, 255, 0.8);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.rlsc-grid__cat::before {
	content: "";
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--rlsc-accent);
}

.rlsc-grid__title {
	color: #fff;
	font-size: clamp(15px, 1.25vw, 19px);
	font-weight: 500;
	letter-spacing: -0.01em;
	line-height: 1.25;
}

.rlsc-grid__link:focus-visible ~ .rlsc-grid__caption,
.rlsc-grid__card:focus-within .rlsc-grid__caption {
	transform: none;
}

.rlsc-grid__link:focus-visible {
	outline: none;
}

.rlsc-grid__card:focus-within::after {
	box-shadow: inset 0 0 0 2px var(--rlsc-accent);
}

@media (hover: hover) {
	.rlsc-grid__card:hover .rlsc-grid__img {
		transform: scale(1.06);
	}

	.rlsc-grid__card:hover .rlsc-grid__shade {
		opacity: 1;
	}

	.rlsc-grid__card:hover .rlsc-grid__zoom {
		opacity: 1;
		transform: none;
	}

	.rlsc-grid__card:hover .rlsc-grid__caption {
		transform: none;
	}
}

.rlsc-grid__more-wrap {
	display: flex;
	justify-content: center;
	margin-top: clamp(20px, 3vw, 36px);
}

.rlsc-page .rlsc-grid__more {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 50px;
	padding: 0 10px 0 24px;
	border: 1px solid var(--rlsc-border-strong);
	border-radius: var(--rlsc-radius-sm);
	color: var(--rlsc-text);
	font-size: 14px;
	font-weight: 500;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.rlsc-grid__more-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 32px;
	height: 32px;
	padding: 0 8px;
	border-radius: 16px;
	background: var(--rlsc-accent);
	color: var(--rlsc-accent-ink);
	font-size: 12px;
	font-weight: 600;
}

@media (hover: hover) {
	.rlsc-page .rlsc-grid__more:hover {
		border-color: var(--rlsc-text);
		background: rgba(255, 255, 255, 0.06);
	}
}

@media (max-width: 700px) {
	.rlsc-grid__list {
		columns: 2;
		column-gap: 10px;
	}

	.rlsc-grid__item {
		margin-bottom: 10px;
	}

	.rlsc-grid__card {
		border-radius: 14px;
	}

	.rlsc-grid__shade {
		opacity: 0.85;
	}

	.rlsc-grid__caption {
		gap: 3px;
		padding: 10px 12px;
		transform: none;
	}

	.rlsc-grid__cat {
		font-size: 9.5px;
		letter-spacing: 0.12em;
	}

	.rlsc-grid__title {
		font-size: 13px;
	}
}

/* ==========================================================================
   Image viewer
   ========================================================================== */
.rlsc-viewer {
	position: fixed;
	inset: 0;
	width: 100%;
	max-width: 100%;
	height: 100%;
	max-height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--rlsc-text);
	font-family: inherit;
	line-height: 1.5;
	overflow: hidden;
}

.rlsc-viewer:not([open]) {
	display: none;
}

.rlsc-viewer::backdrop {
	background: rgba(6, 6, 7, 0.94);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.rlsc-viewer__inner {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 18px;
	width: 100%;
	height: 100%;
	padding: 76px clamp(16px, 7vw, 110px) 24px;
	touch-action: pan-y;
}

.rlsc-viewer__figure {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 1;
	min-height: 0;
	width: 100%;
	margin: 0;
}

.rlsc-viewer__img {
	display: block;
	max-width: 100%;
	max-height: 100%;
	border-radius: 14px;
	object-fit: contain;
	box-shadow: 0 40px 120px -30px rgba(0, 0, 0, 0.9);
	animation: rlsc-img-in 0.55s var(--rlsc-ease) both;
}

.rlsc-viewer__caption {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px 24px;
	width: min(100%, 1100px);
}

.rlsc-viewer__text {
	min-width: 0;
	max-width: 70ch;
}

.rlsc-viewer__cat {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	color: var(--rlsc-muted);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.rlsc-viewer__cat::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--rlsc-accent);
}

.rlsc-viewer .rlsc-viewer__title {
	margin: 6px 0 0;
	padding: 0;
	color: var(--rlsc-text);
	font-family: inherit;
	font-size: clamp(18px, 1.8vw, 26px);
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.2;
	text-transform: none;
}

.rlsc-viewer__desc {
	margin: 6px 0 0;
	color: var(--rlsc-muted);
	font-size: 14px;
}

.rlsc-viewer .rlsc-viewer__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 44px;
	padding: 0 18px;
	border-radius: var(--rlsc-radius-sm);
	background: var(--rlsc-text);
	color: var(--rlsc-bg);
	font-size: 14px;
	font-weight: 500;
}

.rlsc-viewer .rlsc-viewer__btn {
	position: absolute;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: 1px solid var(--rlsc-border-strong);
	border-radius: 50%;
	background: rgba(20, 20, 22, 0.7);
	color: var(--rlsc-text);
	font-size: 22px;
	transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}

.rlsc-viewer .rlsc-viewer__btn:disabled {
	opacity: 0.3;
	cursor: default;
}

.rlsc-viewer__close {
	top: 18px;
	right: 18px;
}

.rlsc-viewer__prev,
.rlsc-viewer__next {
	top: 50%;
	margin-top: -24px;
}

.rlsc-viewer__prev {
	left: clamp(10px, 2vw, 28px);
}

.rlsc-viewer__next {
	right: clamp(10px, 2vw, 28px);
}

.rlsc-viewer__counter {
	position: absolute;
	top: 30px;
	left: 24px;
	color: var(--rlsc-muted);
	font-size: 13px;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.06em;
}

.rlsc-viewer .is-hidden {
	display: none !important;
}

@media (hover: hover) {
	.rlsc-viewer .rlsc-viewer__btn:not(:disabled):hover {
		background: var(--rlsc-text);
		color: var(--rlsc-bg);
	}
}

@media (max-width: 700px) {
	.rlsc-viewer__inner {
		padding: 70px 12px 20px;
	}

	.rlsc-viewer__prev,
	.rlsc-viewer__next {
		top: auto;
		bottom: 18px;
		margin: 0;
	}

	.rlsc-viewer__prev {
		left: auto;
		right: 76px;
	}

	.rlsc-viewer__next {
		right: 18px;
	}

	.rlsc-viewer__caption {
		padding-right: 130px;
	}

	.rlsc-viewer .rlsc-viewer__cta {
		height: 40px;
	}
}

/* ==========================================================================
   Glass popup (popup tabs, e.g. Branding)
   ========================================================================== */
.rlsc-glass {
	position: fixed;
	inset: 0;
	width: 100%;
	max-width: 100%;
	height: 100%;
	max-height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--rlsc-text);
	font-family: inherit;
	line-height: 1.5;
	overflow-x: hidden;
	overflow-y: auto;
}

.rlsc-glass:not([open]) {
	display: none;
}

.rlsc-glass::backdrop {
	background: rgba(5, 5, 8, 0.6);
	-webkit-backdrop-filter: blur(16px) saturate(130%);
	backdrop-filter: blur(16px) saturate(130%);
}

.rlsc-glass__wrap {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100%;
	padding: clamp(16px, 4vw, 48px);
}

.rlsc-glass__orbs {
	position: fixed;
	inset: 0;
	pointer-events: none;
	overflow: hidden;
}

.rlsc-glass__orbs span {
	position: absolute;
	border-radius: 50%;
	filter: blur(70px);
	opacity: 0;
	animation: rlsc-orb-in 1.2s var(--rlsc-ease) forwards, rlsc-orb-drift 14s ease-in-out infinite alternate;
}

.rlsc-glass__orbs span:nth-child(1) {
	top: 12%;
	left: 18%;
	width: 380px;
	height: 380px;
	background: var(--rlsc-violet);
}

.rlsc-glass__orbs span:nth-child(2) {
	bottom: 8%;
	right: 16%;
	width: 420px;
	height: 420px;
	background: var(--rlsc-accent);
	animation-delay: 0.1s, -4s;
}

.rlsc-glass__orbs span:nth-child(3) {
	top: 40%;
	right: 40%;
	width: 300px;
	height: 300px;
	background: var(--rlsc-cyan);
	animation-delay: 0.2s, -8s;
}

.rlsc-glass__card {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	width: min(1000px, 100%);
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 32px;
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.04) 60%, rgba(255, 255, 255, 0.08));
	-webkit-backdrop-filter: blur(30px) saturate(170%);
	backdrop-filter: blur(30px) saturate(170%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), inset 0 -1px 0 rgba(255, 255, 255, 0.06), 0 60px 140px -40px rgba(0, 0, 0, 0.8);
	animation: rlsc-glass-in 0.8s cubic-bezier(0.2, 0.85, 0.2, 1) both;
}

.rlsc-glass__card.has-media {
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.rlsc-glass__sheen {
	position: absolute;
	top: 0;
	left: -60%;
	z-index: 3;
	width: 50%;
	height: 100%;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.22), transparent);
	transform: skewX(-18deg);
	animation: rlsc-sheen 1.6s 0.5s ease-out both;
	pointer-events: none;
}

.rlsc-glass .rlsc-glass__close {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 4;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.1);
	color: var(--rlsc-text);
	font-size: 20px;
	transition: background-color 0.2s ease, transform 0.35s var(--rlsc-ease);
}

@media (hover: hover) {
	.rlsc-glass .rlsc-glass__close:hover {
		background: rgba(255, 255, 255, 0.24);
		transform: rotate(90deg);
	}
}

.rlsc-glass__media {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 280px;
	padding: clamp(32px, 4vw, 56px);
	border-right: 1px solid rgba(255, 255, 255, 0.14);
	background: radial-gradient(circle at 50% 45%, rgba(255, 255, 255, 0.16), transparent 65%);
}

.rlsc-glass__halo {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 70%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: conic-gradient(from 0deg, var(--rlsc-accent), var(--rlsc-violet), var(--rlsc-cyan), var(--rlsc-accent));
	filter: blur(40px);
	opacity: 0.45;
	transform: translate(-50%, -50%);
	animation: rlsc-halo 10s linear infinite;
}

.rlsc-glass .rlsc-glass__img {
	position: relative;
	display: block;
	width: auto;
	max-width: 100%;
	max-height: 340px;
	height: auto;
	margin: 0;
	object-fit: contain;
	filter: drop-shadow(0 24px 40px rgba(0, 0, 0, 0.45));
	animation: rlsc-hover 6s ease-in-out infinite, rlsc-img-in 0.9s 0.2s var(--rlsc-ease) both;
}

.rlsc-glass__body {
	position: relative;
	padding: clamp(32px, 4.5vw, 60px);
	padding-right: clamp(32px, 5vw, 72px);
}

.rlsc-glass__body > * {
	animation: rlsc-rise-in 0.8s var(--rlsc-ease) both;
}

.rlsc-glass__body > :nth-child(2) {
	animation-delay: 0.08s;
}

.rlsc-glass__body > :nth-child(3) {
	animation-delay: 0.16s;
}

.rlsc-glass__body > :nth-child(4) {
	animation-delay: 0.24s;
}

.rlsc-glass .rlsc-glass__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin: 0 0 16px;
	padding: 7px 14px 7px 11px;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: var(--rlsc-radius-sm);
	background: rgba(255, 255, 255, 0.08);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.rlsc-glass__eyebrow::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--rlsc-accent);
}

.rlsc-glass .rlsc-glass__title {
	margin: 0;
	padding: 0;
	color: var(--rlsc-text);
	font-family: inherit;
	font-size: clamp(28px, 3.4vw, 46px);
	font-weight: 500;
	letter-spacing: -0.035em;
	line-height: 1.05;
	text-transform: none;
}

.rlsc-glass__details {
	margin-top: 18px;
	color: rgba(244, 244, 242, 0.8);
	font-size: 15.5px;
	line-height: 1.7;
}

.rlsc-glass__details p {
	margin: 0 0 12px;
}

.rlsc-glass__details ul,
.rlsc-glass__details ol {
	margin: 0 0 12px;
	padding-left: 0;
	list-style: none;
}

.rlsc-glass__details li {
	position: relative;
	margin: 6px 0;
	padding-left: 22px;
}

.rlsc-glass__details li::before {
	content: "";
	position: absolute;
	top: 0.65em;
	left: 2px;
	width: 8px;
	height: 8px;
	border-radius: 2px;
	background: var(--rlsc-accent);
	transform: rotate(45deg);
}

.rlsc-glass__details a {
	color: var(--rlsc-text);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.rlsc-glass__details h3,
.rlsc-glass__details h4 {
	margin: 18px 0 8px;
	color: var(--rlsc-text);
	font-size: 17px;
	font-weight: 600;
}

.rlsc-glass__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-top: 28px;
}

.rlsc-glass .rlsc-glass__download {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 10px 10px 10px 10px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 20px;
	background: rgba(255, 255, 255, 0.12);
	color: var(--rlsc-text);
	transition: transform 0.35s var(--rlsc-ease), background-color 0.2s ease, border-color 0.2s ease;
}

.rlsc-glass__file {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 54px;
	border-radius: 8px 14px 8px 8px;
	background: linear-gradient(160deg, #ff5c7a, #d6234b);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	box-shadow: 0 10px 24px -8px rgba(214, 35, 75, 0.7);
}

.rlsc-glass__download-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding-right: 6px;
}

.rlsc-glass__download-text strong {
	font-size: 15px;
	font-weight: 600;
}

.rlsc-glass__download-text span {
	color: rgba(244, 244, 242, 0.65);
	font-size: 12px;
}

.rlsc-glass__download-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--rlsc-accent);
	color: var(--rlsc-accent-ink);
}

.rlsc-glass .rlsc-glass__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 50px;
	padding: 0 20px;
	border-radius: var(--rlsc-radius-sm);
	color: var(--rlsc-text);
	font-size: 14px;
	font-weight: 500;
	transition: background-color 0.2s ease;
}

.rlsc-glass .rlsc-glass__link .rlsc-icon {
	font-size: 16px;
}

@media (hover: hover) {
	.rlsc-glass .rlsc-glass__download:hover {
		border-color: rgba(255, 255, 255, 0.45);
		background: rgba(255, 255, 255, 0.18);
		transform: translateY(-3px);
	}

	.rlsc-glass .rlsc-glass__download:hover .rlsc-glass__download-icon svg {
		animation: rlsc-bounce 0.8s ease infinite;
	}

	.rlsc-glass .rlsc-glass__link:hover {
		background: rgba(255, 255, 255, 0.1);
	}
}

@media (max-width: 760px) {
	.rlsc-glass__card.has-media {
		grid-template-columns: minmax(0, 1fr);
	}

	.rlsc-glass__media {
		min-height: 0;
		padding: 40px 28px 24px;
		border-right: 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.14);
	}

	.rlsc-glass .rlsc-glass__img {
		max-height: 180px;
	}

	.rlsc-glass__card {
		border-radius: 26px;
	}

	.rlsc-glass__wrap {
		align-items: flex-start;
		padding-top: 24px;
	}

	.rlsc-glass .rlsc-glass__download {
		width: 100%;
	}

	.rlsc-glass__download-icon {
		margin-left: auto;
	}
}

html.rlsc-lock,
html.rlsc-lock body {
	overflow: hidden;
}

/* Page pinned while a popup is open (top offset set by JS keeps the visual position). */
body.rlsc-lock-fixed {
	position: fixed !important;
	left: 0;
	right: 0;
	width: 100%;
	overflow: hidden !important;
}

/* Scrolling inside popups never chains to the page. */
.rlsc-glass,
.rlsc-viewer,
.rlsc-glass__side,
.rlsc-pdf__scroll,
.rlsc-docs__list {
	overscroll-behavior: contain;
}

/* ==========================================================================
   Portfolio cards: natural shape, slightly taller
   ========================================================================== */
/* Each image keeps its own shape and column width, drawn ~15% taller (set per image as --ar). */
.rlsc-page .rlsc-grid__img {
	aspect-ratio: var(--ar, auto);
	height: auto;
	object-fit: cover;
	object-position: center 30%;
}

.rlsc-grid__card {
	border-radius: 22px;
}

@media (max-width: 700px) {
	.rlsc-grid__card {
		border-radius: 16px;
	}
}

/* ==========================================================================
   Client logos – two rows, opposite directions
   ========================================================================== */
.rlsc-logos {
	position: relative;
	padding: clamp(48px, 6vw, 96px) 0;
	overflow: hidden;
	background: var(--rlsc-bg);
	border-top: 1px solid var(--rlsc-border);
}

.rlsc-logos__head {
	display: flex;
	align-items: center;
	gap: clamp(14px, 2vw, 24px);
	max-width: var(--rlsc-max);
	margin: 0 auto clamp(26px, 3.4vw, 44px);
	padding: 0 var(--rlsc-pad-x);
}

.rlsc-logos__line {
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--rlsc-border-strong));
}

.rlsc-logos__line:last-child {
	background: linear-gradient(90deg, var(--rlsc-border-strong), transparent);
}

.rlsc-page .rlsc-logos__title {
	margin: 0;
	padding: 0;
	color: var(--rlsc-muted);
	font-family: inherit;
	font-size: clamp(12px, 1.1vw, 14px);
	font-weight: 500;
	letter-spacing: 0.18em;
	line-height: 1.3;
	text-align: center;
	text-transform: uppercase;
}

.rlsc-logos__title .rlsc__accent-word {
	font-size: 1.3em;
	letter-spacing: 0.02em;
	text-transform: none;
}

.rlsc-logos__rows {
	display: flex;
	flex-direction: column;
	gap: clamp(12px, 1.6vw, 18px);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}

.rlsc-logos__row {
	overflow: hidden;
}

.rlsc-logos__track {
	display: flex;
	width: max-content;
	animation: rlsc-marquee calc(var(--n, 8) * 3.6s) linear infinite;
}

.rlsc-logos__row--reverse .rlsc-logos__track {
	animation-direction: reverse;
}

.rlsc-logos__group {
	display: flex;
	gap: clamp(10px, 1.2vw, 16px);
	margin: 0;
	padding: 0 clamp(10px, 1.2vw, 16px) 0 0;
	list-style: none;
}

/* White logo cards; logos always shown in their real colours (no hover effects). */
.rlsc-logos__item {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: clamp(140px, 14vw, 210px);
	height: clamp(72px, 7vw, 100px);
	margin: 0;
	padding: clamp(14px, 1.6vw, 22px) clamp(20px, 2vw, 30px);
	border: 0;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 10px 30px -18px rgba(0, 0, 0, 0.6);
	list-style: none;
}

.rlsc-page .rlsc-logos__img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
	margin: 0;
	object-fit: contain;
}

/* ==========================================================================
   Contact section (end of page)
   ========================================================================== */
.rlsc-contact {
	container: rlscContact / inline-size;
	position: relative;
	isolation: isolate;
	padding: clamp(64px, 8vw, 128px) var(--rlsc-pad-x);
	overflow: hidden;
	background: var(--rlsc-bg);
	border-top: 1px solid var(--rlsc-border);
}

.rlsc-contact__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
}

.rlsc-contact__glow {
	position: absolute;
	bottom: -35%;
	left: -12%;
	width: min(65vw, 820px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(closest-side, color-mix(in srgb, var(--rlsc-accent) 13%, transparent), color-mix(in srgb, var(--rlsc-violet) 8%, transparent) 50%, transparent);
	animation: rlsc-breathe 9s ease-in-out infinite;
}

.rlsc-contact__word {
	position: absolute;
	top: 4%;
	right: -3vw;
	color: transparent;
	font-size: clamp(90px, 17vw, 280px);
	font-weight: 600;
	letter-spacing: -0.06em;
	line-height: 0.8;
	white-space: nowrap;
	-webkit-text-stroke: 1px rgba(255, 255, 255, 0.06);
	animation: rlsc-drift-x 20s ease-in-out infinite alternate;
}

.rlsc-contact__inner {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
	align-items: start;
	gap: clamp(36px, 6vw, 104px);
	max-width: var(--rlsc-max);
	margin: 0 auto;
}

.rlsc-contact__intro {
	position: sticky;
	top: 96px;
}

.rlsc-page .rlsc-contact__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 20px;
	padding: 7px 14px 7px 11px;
	border: 1px solid var(--rlsc-border-strong);
	border-radius: var(--rlsc-radius-sm);
	color: var(--rlsc-text);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.18em;
	line-height: 1;
	text-transform: uppercase;
}

.rlsc-contact__eyebrow span {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--rlsc-accent);
}

.rlsc-page .rlsc-contact__title {
	max-width: 13ch;
	margin: 0;
	padding: 0;
	color: var(--rlsc-text);
	font-family: inherit;
	font-size: clamp(36px, 5vw, 76px);
	font-size: clamp(34px, 5.4cqi, 76px);
	font-weight: 500;
	letter-spacing: -0.048em;
	line-height: 0.98;
	text-transform: none;
	text-wrap: balance;
}

.rlsc-page .rlsc-contact__text {
	max-width: 44ch;
	margin: 18px 0 0;
	color: var(--rlsc-muted);
	font-size: clamp(15px, 1.2vw, 17px);
	line-height: 1.65;
}

.rlsc-contact__details {
	display: grid;
	gap: 10px;
	max-width: 520px;
	margin: clamp(26px, 3vw, 36px) 0 0;
	padding: 0;
	list-style: none;
}

.rlsc-contact__detail {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid var(--rlsc-border);
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.025);
	transition: border-color 0.3s ease, background-color 0.3s ease;
}

@media (hover: hover) {
	.rlsc-contact__detail:hover {
		border-color: var(--rlsc-border-strong);
		background: rgba(255, 255, 255, 0.045);
	}
}

.rlsc-contact__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.06);
	color: var(--rlsc-accent);
	font-size: 18px;
}

.rlsc-contact__meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.rlsc-contact__label {
	color: var(--rlsc-subtle);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.rlsc-page .rlsc-contact__value {
	display: inline-flex;
	align-items: center;
	color: var(--rlsc-text);
	font-size: 15.5px;
	font-weight: 500;
	overflow-wrap: anywhere;
	transition: color 0.2s ease;
}

.rlsc-page a.rlsc-contact__value:hover {
	color: var(--rlsc-accent);
}

.rlsc-contact__live {
	width: 8px;
	height: 8px;
	margin-right: 9px;
	border-radius: 50%;
	background: #34d399;
	animation: rlsc-ping-green 2s ease-out infinite;
}

.rlsc-page .rlsc-contact__copy {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	flex: none;
	height: 34px;
	margin-left: auto;
	padding: 0 12px;
	border: 1px solid var(--rlsc-border-strong);
	border-radius: var(--rlsc-radius-sm);
	color: var(--rlsc-text);
	font-size: 12px;
	font-weight: 500;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.rlsc-contact__copy .rlsc-icon {
	font-size: 14px;
}

.rlsc-page .rlsc-contact__copy.is-copied {
	border-color: var(--rlsc-accent);
	background: var(--rlsc-accent);
	color: var(--rlsc-accent-ink);
}

.rlsc-contact__steps {
	position: relative;
	display: grid;
	gap: 18px;
	max-width: 520px;
	margin: clamp(28px, 3.4vw, 44px) 0 0;
	padding: 0;
	list-style: none;
}

.rlsc-contact__steps::before {
	content: "";
	position: absolute;
	top: 10px;
	bottom: 10px;
	left: 19px;
	width: 1px;
	background: linear-gradient(var(--rlsc-accent), var(--rlsc-border-strong) 40%, transparent);
}

.rlsc-contact__step {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 16px;
	margin: 0;
}

.rlsc-contact__num {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 40px;
	height: 40px;
	border: 1px solid var(--rlsc-border-strong);
	border-radius: 50%;
	background: var(--rlsc-bg);
	color: var(--rlsc-text);
	font-size: 12px;
	font-variant-numeric: tabular-nums;
}

.rlsc-contact__step:first-child .rlsc-contact__num {
	border-color: var(--rlsc-accent);
	color: var(--rlsc-accent);
}

.rlsc-contact__step-text {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding-top: 2px;
}

.rlsc-contact__step-text strong {
	color: var(--rlsc-text);
	font-size: 15px;
	font-weight: 600;
}

.rlsc-contact__step-text span {
	color: var(--rlsc-muted);
	font-size: 14px;
	line-height: 1.5;
}

.rlsc-contact__form {
	min-width: 0;
}

.rlsc-contact .rlsc-form-card {
	scroll-margin-top: 90px;
}

[data-rlsc-reveal].is-pending {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity 0.9s ease, transform 1.1s var(--rlsc-ease);
}

[data-rlsc-reveal].is-pending + [data-rlsc-reveal].is-pending {
	transition-delay: 0.12s;
}

[data-rlsc-reveal].is-in {
	opacity: 1;
	transform: none;
}

@container rlscContact (max-width: 900px) {
	.rlsc-contact__inner {
		grid-template-columns: minmax(0, 1fr);
	}

	.rlsc-contact__intro {
		position: static;
	}
}

@container rlscContact (max-width: 520px) {
	.rlsc-form__row {
		grid-template-columns: minmax(0, 1fr);
	}

	.rlsc-page .rlsc-form__submit {
		width: 100%;
		justify-content: space-between;
	}

	.rlsc-contact__detail {
		flex-wrap: wrap;
	}

	.rlsc-page .rlsc-contact__copy {
		margin-left: 56px;
	}
}

/* ==========================================================================
   Popup with PDFs: reader on the left, documents list on the right
   ========================================================================== */
/* Popups without PDFs keep the original two-column layout. */
.rlsc-glass__card:not(.has-pdf) .rlsc-glass__side {
	display: contents;
}

.rlsc-glass--doc .rlsc-glass__wrap {
	padding: clamp(10px, 2.4vw, 32px);
}

.rlsc-glass__card.has-pdf {
	grid-template-columns: minmax(0, 1.32fr) minmax(300px, 0.68fr);
	grid-template-rows: minmax(0, 1fr);
	width: min(1340px, 100%);
	height: min(90vh, 960px);
}

.rlsc-glass__doc {
	grid-column: 1;
	grid-row: 1;
	min-height: 0;
	border-right: 1px solid rgba(255, 255, 255, 0.14);
	background: rgba(0, 0, 0, 0.22);
}

.rlsc-glass__card.has-pdf .rlsc-glass__side {
	grid-column: 2;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-color: rgba(255, 255, 255, 0.25) transparent;
	scrollbar-width: thin;
}

.rlsc-glass__card.has-pdf .rlsc-glass__media {
	justify-content: flex-start;
	min-height: 0;
	padding: 72px clamp(22px, 2.6vw, 34px) 0;
	border: 0;
	background: none;
}

.rlsc-glass__card.has-pdf .rlsc-glass__halo {
	display: none;
}

.rlsc-glass__card.has-pdf .rlsc-glass__img {
	max-height: 92px;
}

.rlsc-glass__card.has-pdf .rlsc-glass__body {
	padding: 22px clamp(22px, 2.6vw, 34px) clamp(24px, 3vw, 36px);
}

.rlsc-glass__card.has-pdf:not(.has-media) .rlsc-glass__body {
	padding-top: 72px;
}

.rlsc-glass__card.has-pdf .rlsc-glass__title {
	font-size: clamp(24px, 2.3vw, 34px);
}

.rlsc-glass__card.has-pdf .rlsc-glass__details {
	font-size: 14.5px;
}

/* Documents list */
.rlsc-docs {
	margin-top: 24px;
}

.rlsc-glass .rlsc-docs__label {
	margin: 0 0 10px;
	color: rgba(244, 244, 242, 0.6);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.rlsc-docs__list {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rlsc-docs__item {
	margin: 0;
	list-style: none;
}

.rlsc-glass .rlsc-docs__btn {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	gap: 12px;
	width: 100%;
	padding: 14px 16px;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.05);
	color: var(--rlsc-text);
	text-align: left;
	transition: background-color 0.25s ease, border-color 0.25s ease, transform 0.35s var(--rlsc-ease);
}

.rlsc-docs__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 50%;
	font-size: 11px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.rlsc-docs__text {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
	padding-top: 5px;
}

.rlsc-docs__title {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
}

.rlsc-docs__desc {
	color: rgba(244, 244, 242, 0.68);
	font-size: 13px;
	line-height: 1.55;
}

.rlsc-docs__progress {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background: rgba(255, 255, 255, 0.08);
	opacity: 0;
	transition: opacity 0.25s ease;
}

.rlsc-docs__progress span {
	display: block;
	height: 100%;
	background: var(--rlsc-accent);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.2s linear;
}

.rlsc-docs__item.is-active .rlsc-docs__btn {
	border-color: color-mix(in srgb, var(--rlsc-accent) 55%, transparent);
	background: rgba(255, 255, 255, 0.12);
}

.rlsc-docs__item.is-active .rlsc-docs__num {
	border-color: var(--rlsc-accent);
	background: var(--rlsc-accent);
	color: var(--rlsc-accent-ink);
}

.rlsc-docs__item.is-active .rlsc-docs__progress {
	opacity: 1;
}

.rlsc-docs__item.is-done .rlsc-docs__num {
	border-color: var(--rlsc-accent);
	color: var(--rlsc-accent);
}

@media (hover: hover) {
	.rlsc-glass .rlsc-docs__item:not(.is-active) .rlsc-docs__btn:hover {
		border-color: rgba(255, 255, 255, 0.28);
		background: rgba(255, 255, 255, 0.09);
		transform: translateX(3px);
	}
}

/* Reader */
.rlsc-pdf {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 0;
}

.rlsc-pdf__bar {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 20px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.rlsc-pdf__file {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 32px;
	height: 38px;
	border-radius: 6px 10px 6px 6px;
	background: linear-gradient(160deg, #ff5c7a, #d6234b);
	color: #fff;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.rlsc-pdf__name {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	color: var(--rlsc-text);
	font-size: 14px;
	font-weight: 600;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.rlsc-pdf__count {
	flex: none;
	color: rgba(244, 244, 242, 0.65);
	font-size: 12px;
	font-variant-numeric: tabular-nums;
}

.rlsc-pdf__scroll {
	position: relative;
	flex: 1;
	min-height: 0;
	padding: clamp(14px, 2vw, 26px);
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-color: rgba(255, 255, 255, 0.25) transparent;
	scrollbar-width: thin;
	-webkit-overflow-scrolling: touch;
}

.rlsc-pdf__scroll:focus-visible {
	outline: 2px solid var(--rlsc-accent);
	outline-offset: -4px;
}

.rlsc-pdf__pages {
	display: flex;
	flex-direction: column;
	max-width: 860px;
	margin: 0 auto;
}

.rlsc-pdf__doc {
	display: flex;
	flex-direction: column;
	gap: clamp(12px, 1.6vw, 20px);
}

.rlsc-pdf__doc + .rlsc-pdf__doc {
	margin-top: clamp(26px, 3vw, 40px);
	padding-top: clamp(26px, 3vw, 40px);
	border-top: 1px dashed rgba(255, 255, 255, 0.2);
}

.rlsc-pdf__doc-head {
	position: sticky;
	top: calc(clamp(14px, 2vw, 26px) * -1);
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 14px;
	background: rgba(14, 14, 17, 0.82);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.rlsc-pdf__doc-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	min-width: 30px;
	height: 24px;
	padding: 0 8px;
	border-radius: 12px;
	background: var(--rlsc-accent);
	color: var(--rlsc-accent-ink);
	font-size: 11px;
	font-weight: 700;
}

.rlsc-pdf__doc-title {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	color: var(--rlsc-text);
	font-size: 13.5px;
	font-weight: 600;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.rlsc-pdf__doc-pages {
	flex: none;
	color: rgba(244, 244, 242, 0.6);
	font-size: 12px;
}

.rlsc-pdf__doc-body {
	display: flex;
	flex-direction: column;
	gap: clamp(12px, 1.6vw, 20px);
}

.rlsc-pdf__page {
	position: relative;
	width: 100%;
	overflow: hidden;
	border-radius: 6px;
	background: linear-gradient(100deg, #ececec 30%, #f8f8f8 50%, #ececec 70%);
	background-size: 250% 100%;
	box-shadow: 0 24px 60px -24px rgba(0, 0, 0, 0.75), 0 0 0 1px rgba(0, 0, 0, 0.05);
	animation: rlsc-shimmer 1.6s linear infinite;
}

.rlsc-pdf__page.is-rendered {
	background: #fff;
	animation: rlsc-img-in 0.5s var(--rlsc-ease) both;
}

.rlsc-pdf__canvas {
	display: block;
	width: 100%;
	height: auto;
}

.rlsc-pdf__skeleton {
	aspect-ratio: 1 / 1.414;
	border-radius: 6px;
	background: linear-gradient(100deg, rgba(255, 255, 255, 0.05) 30%, rgba(255, 255, 255, 0.12) 50%, rgba(255, 255, 255, 0.05) 70%);
	background-size: 250% 100%;
	animation: rlsc-shimmer 1.4s linear infinite;
}

.rlsc-pdf__frame {
	display: block;
	width: 100%;
	height: 72vh;
	border: 0;
	border-radius: 6px;
	background: #fff;
}

.rlsc-glass .rlsc-pdf__status {
	position: absolute;
	left: 50%;
	top: 50%;
	margin: 0;
	padding: 10px 16px;
	border-radius: var(--rlsc-radius-sm);
	background: rgba(0, 0, 0, 0.55);
	color: var(--rlsc-text);
	font-size: 13px;
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.rlsc-glass .rlsc-pdf__status:empty {
	display: none;
}

/* Phones & small tablets: details + documents list first, then the reader. */
@media (max-width: 860px) {
	.rlsc-glass--doc .rlsc-glass__wrap {
		align-items: flex-start;
		padding: 10px;
	}

	.rlsc-glass__card.has-pdf {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto;
		height: auto;
	}

	.rlsc-glass__card.has-pdf .rlsc-glass__side {
		grid-column: 1;
		grid-row: 1;
		overflow: visible;
	}

	.rlsc-glass__doc {
		grid-column: 1;
		grid-row: 2;
		border-right: 0;
		border-top: 1px solid rgba(255, 255, 255, 0.14);
		scroll-margin-top: 10px;
	}

	.rlsc-glass__card.has-pdf .rlsc-glass__media {
		padding-top: 28px;
	}

	.rlsc-glass__card.has-pdf:not(.has-media) .rlsc-glass__body {
		padding-top: 64px;
	}

	.rlsc-docs__desc {
		display: -webkit-box;
		overflow: hidden;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
	}

	.rlsc-pdf__scroll {
		flex: none;
		height: 76vh;
		padding: 12px;
	}

	.rlsc-pdf__doc-head {
		top: -12px;
	}
}

/* ==========================================================================
   New motion keyframes
   ========================================================================== */
@keyframes rlsc-aurora {
	0% { transform: translate(0, 0) rotate(0deg) scale(1); }
	50% { transform: translate(-6%, 4%) rotate(8deg) scale(1.08); }
	100% { transform: translate(4%, -3%) rotate(-6deg) scale(0.96); }
}

@keyframes rlsc-grid-pan-sm {
	to { background-position: 0 48px, 48px 0; }
}

@keyframes rlsc-shimmer {
	0% { background-position: 100% 0; }
	100% { background-position: -150% 0; }
}

@keyframes rlsc-orbit-in {
	from { opacity: 0; transform: scale(0.8) rotate(-20deg); }
	to { opacity: 1; transform: none; }
}

@keyframes rlsc-orbit-spin {
	to { transform: rotate(360deg); }
}

@keyframes rlsc-morph {
	0%, 100% { border-radius: 42% 58% 63% 37% / 41% 44% 56% 59%; transform: scale(1); }
	33% { border-radius: 63% 37% 45% 55% / 55% 61% 39% 45%; transform: scale(1.05); }
	66% { border-radius: 38% 62% 35% 65% / 62% 38% 62% 38%; transform: scale(0.96); }
}

@keyframes rlsc-breathe {
	0%, 100% { opacity: 0.7; transform: scale(1); }
	50% { opacity: 1; transform: scale(1.08); }
}

@keyframes rlsc-twinkle {
	0%, 100% { opacity: 0; transform: scale(0.4); }
	50% { opacity: 1; transform: scale(1); }
}

@keyframes rlsc-drift-x {
	from { transform: translateX(0); }
	to { transform: translateX(-6%); }
}

@media (prefers-reduced-motion: reduce) {
	.rlsc-orbit,
	.rlsc-orbit * {
		animation: none !important;
	}

	.rlsc-orbit__sparkle {
		opacity: 0.6;
	}

	.rlsc-logos__track {
		animation: none !important;
	}

	.rlsc-logos__row {
		overflow-x: auto;
	}

	[data-rlsc-reveal].is-pending {
		opacity: 1;
		transform: none;
	}
}


/* ==========================================================================
   Keyframes
   ========================================================================== */
@keyframes rlsc-word-up {
	to { transform: none; }
}

@keyframes rlsc-rise-in {
	from { opacity: 0; transform: translateY(24px); }
	to { opacity: 1; transform: none; }
}

@keyframes rlsc-side-in {
	from { opacity: 0; transform: translateY(40px) scale(0.97); }
	to { opacity: 1; transform: none; }
}

@keyframes rlsc-grid-pan {
	to { background-position: 0 64px, 64px 0; }
}

@keyframes rlsc-drift-a {
	to { transform: translate(-12%, 14%) scale(1.15); }
}

@keyframes rlsc-drift-b {
	to { transform: translate(18%, -10%) scale(0.9); }
}

@keyframes rlsc-drift-c {
	to { transform: translate(-20%, -16%) scale(1.2); }
}

@keyframes rlsc-beam {
	0%, 15% { transform: translateX(0) rotate(18deg); opacity: 0; }
	35% { opacity: 1; }
	60%, 100% { transform: translateX(380%) rotate(18deg); opacity: 0; }
}

@keyframes rlsc-ping {
	0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--rlsc-accent) 60%, transparent); }
	80%, 100% { box-shadow: 0 0 0 10px transparent; }
}

@keyframes rlsc-ping-green {
	0% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0.6); }
	80%, 100% { box-shadow: 0 0 0 9px rgba(52, 211, 153, 0); }
}

@keyframes rlsc-float {
	0%, 100% { translate: 0 0; }
	50% { translate: 0 -12px; }
}

@keyframes rlsc-draw {
	to { stroke-dashoffset: 0; }
}

@keyframes rlsc-glow {
	0%, 100% { filter: none; }
	50% { filter: drop-shadow(0 0 6px var(--rlsc-accent)); }
}

@keyframes rlsc-beat {
	0%, 100% { transform: scale(1); }
	15% { transform: scale(1.22); }
	30% { transform: scale(0.96); }
	45% { transform: scale(1.12); }
}

@keyframes rlsc-bubble {
	0% { opacity: 0; transform: translate(0, 0) scale(0.6); }
	20% { opacity: 1; }
	100% { opacity: 0; transform: translate(-14px, -70px) scale(1.1); }
}

@keyframes rlsc-lead {
	0%, 8% { opacity: 0; transform: translateY(16px) scale(0.96); }
	14%, 78% { opacity: 1; transform: none; }
	86%, 100% { opacity: 0; transform: translateY(-10px) scale(0.98); }
}

@keyframes rlsc-device {
	0%, 100% { transform: perspective(1400px) rotateY(-14deg) rotateX(6deg) translateY(0); }
	50% { transform: perspective(1400px) rotateY(-8deg) rotateX(3deg) translateY(-14px); }
}

@keyframes rlsc-shine {
	0%, 40% { transform: translateX(-100%); }
	70%, 100% { transform: translateX(100%); }
}

@keyframes rlsc-marquee {
	to { transform: translateX(-50%); }
}

@keyframes rlsc-spin-angle {
	to { --rlsc-angle: 360deg; }
}

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

@keyframes rlsc-draw-160 {
	to { stroke-dashoffset: 0; }
}

@keyframes rlsc-draw-40 {
	to { stroke-dashoffset: 0; }
}

@keyframes rlsc-panel-in {
	from { opacity: 0; transform: translateY(22px); }
	to { opacity: 1; transform: none; }
}

@keyframes rlsc-img-in {
	from { opacity: 0; transform: scale(0.96); }
	to { opacity: 1; transform: none; }
}

@keyframes rlsc-glass-in {
	from { opacity: 0; transform: translateY(30px) scale(0.94); filter: blur(8px); }
	to { opacity: 1; transform: none; filter: none; }
}

@keyframes rlsc-orb-in {
	to { opacity: 0.45; }
}

@keyframes rlsc-orb-drift {
	to { transform: translate(40px, -30px) scale(1.12); }
}

@keyframes rlsc-sheen {
	from { left: -60%; }
	to { left: 130%; }
}

@keyframes rlsc-halo {
	to { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes rlsc-hover {
	0%, 100% { translate: 0 0; }
	50% { translate: 0 -10px; }
}

@keyframes rlsc-bounce {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(3px); }
}

@keyframes rlsc-fade-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

/* ==========================================================================
   Reduced motion: keep the layout, drop the movement
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	.rlsc-page *,
	.rlsc-page *::before,
	.rlsc-page *::after,
	.rlsc-glass *,
	.rlsc-glass *::before,
	.rlsc-glass *::after,
	.rlsc-viewer *,
	.rlsc-viewer *::before,
	.rlsc-viewer *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		animation-delay: 0s !important;
		transition-duration: 0.01ms !important;
	}

	.rlsc-w > span {
		transform: none;
	}

	.rlsc-hero__canvas,
	.rlsc-hero__beam {
		display: none;
	}

	.rlsc-hero__marquee-track {
		animation: none;
	}

	.rlsc-grid.is-ready .rlsc-grid__item {
		opacity: 1;
		transform: none;
	}
}
