/* ── RESET & TOKENS ─────────────────────────────────────── */
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}
html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}
img {
	max-width: 100%;
	display: block;
}

:root {
	--black: #080808;
	--dark: #0d0d0d;
	--charcoal: #161616;
	--ash: #232323;
	--blood: #8b1a1a;
	--rust: #a83228;
	--bone: #cdc3aa;
	--fog: #8a8a7a;
	--white: #ede9e0;
}

@media (prefers-reduced-motion: reduce) {
	* {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

@media (prefers-contrast: more) {
	:root {
		--blood: #a83738;
	}
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

body {
	background-color: var(--black);
	color: var(--bone);
	font-family: "Poppins", sans-serif;
	font-weight: 300;
	font-size: clamp(.85rem, 2vw, 1rem);

	&.no-scroll {
		overflow: hidden;
	}
}

/* ── NAV ────────────────────────────────────────────────── */
header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	min-height: 3px;
	z-index: 200;
	padding: 1rem 3rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: linear-gradient(rgb(8, 8.8, 0.95), transparent);
	transition: background 0.3s;

	&:before {
		content: "";
		position: absolute;
		inset: 0;
		height: 100%;
		transition: height 0.3s;
		background: linear-gradient(rgb(8, 8.8, 1), transparent);
		z-index: 0;
	}

	& > * {
		position: relative;
		z-index: 1;
	}

	&.stuck:before {
		height: 200%;
	}
}

.no-scroll header {
	z-index: 0;
}
.nav-logo {
	text-decoration: none;
	display: flex;
	align-items: center;
}
.nav-logo img {
	height: 36px;
	width: auto;
	opacity: 0.85;
	transition: opacity 0.2s;
}
.nav-logo:hover img {
	opacity: 1;
}

.nav-links {
	display: flex;
	gap: 4rem;
	list-style: none;
}
.nav-links a {
	font-family: "Poppins", sans-serif;
	font-weight: 400;
	font-size: 0.7rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--fog);
	text-decoration: none;
	transition: color 0.25s;
}
.nav-links a:hover {
	color: var(--white);
}

/* Hamburger */
.nav-hamburger {
	display: none;
	flex-direction: column;
	gap: 5px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 4px;
}
.nav-hamburger span {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--bone);
	transition: all 0.3s;
}

.nav-social a {
	color: var(--fog);
	text-decoration: none;
	transition: color 0.25s;
	display: flex;
	align-items: center;
}
.nav-social a:hover {
	color: var(--blood);
}

/* Mobile nav drawer */
.nav-drawer {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(8, 8, 8, 0.97);
	z-index: 199;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2.5rem;
}
.nav-drawer.open {
	display: flex;
}
.nav-drawer a {
	font-family: "Bebas Neue", sans-serif;
	font-size: 2.5rem;
	letter-spacing: 0.1em;
	color: var(--bone);
	text-decoration: none;
	transition: color 0.2s;
}
.nav-drawer a:hover {
	color: var(--white);
}
.nav-drawer .drawer-close {
	position: absolute;
	top: 1.5rem;
	right: 1.5rem;
	background: none;
	border: none;
	color: var(--fog);
	font-size: 2rem;
	cursor: pointer;
	line-height: 1;
}

/* ── HERO ──────────────────────────────────────────────── */
.hero {
	position: relative;
	height: 100dvh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	padding-bottom: 6rem;
	overflow: hidden;
}
.hero-bg {
	position: absolute;
	inset: 0;
	overflow: hidden;
}
.hero-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 30%;
	filter: brightness(0.58) contrast(1.08) saturate(0.9);
	animation: slowzoom 22s ease-in-out infinite alternate;
	display: block;
}
@keyframes slowzoom {
	from {
		transform: scale(1);
	}
	to {
		transform: scale(1.07);
	}
}
.hero-grad {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(
			ellipse at 50% 40%,
			transparent 20%,
			rgba(8, 8, 8, 0.45) 80%
		),
		linear-gradient(
			to bottom,
			rgba(8, 8, 8, 0.25) 0%,
			transparent 25%,
			transparent 45%,
			rgba(8, 8, 8, 0.88) 100%
		);
}
.hero-content {
	position: relative;
	z-index: 2;
	text-align: center;
	max-width: 960px;
	padding: 0 2rem;
}
.hero-eyebrow {
	position: relative;
	font-weight: 400;
	font-size: 0.8rem;
	letter-spacing: 0.5em;
	text-transform: uppercase;
	color: var(--blood);
	width: fit-content;
	margin: 0 auto 0.75em;
	animation: fadeup 1.2s 0.2s both;
	text-shadow:
		0 0 3px var(--black),
		0 0 5px var(--black),
		0 0 10px var(--black),
		0 0 15px var(--black),
		0 0 20px var(--black),
		0 0 25px var(--black),
		0 0 30px var(--black),
		0 0 40px var(--black);

		&:before {
			content: '';
			position: absolute;
			left: -100%;
			top: 0;
			width: 300%;
			height: 900%;
			transform: translateY(-40%);
			background: radial-gradient(black, transparent 70%);
			z-index: 0;
		}

		& > * {
			position: relative;
			display: inline-block;
			z-index: 1;
		}
}
.hero-logo-wrap {
	margin-bottom: 0.7rem;
	animation: fadeup 1.2s 0.35s both;
}
.hero-logo-wrap img {
	height: clamp(220px, 35vw, 480px);
	width: auto;
	margin: 0 auto;
}
.hero-subtitle {
	font-weight: 300;
	font-style: italic;
	font-size: clamp(1rem, 2.2vw, 1.45rem);
	color: var(--fog);
	letter-spacing: 0.08em;
	margin-bottom: 2.2rem;
	animation: fadeup 1.2s 0.5s both;
}
.hero-btn-row {
	display: flex;
	gap: 1rem;
	justify-content: center;
	flex-wrap: wrap;
	animation: fadeup 1.2s 0.65s both;
}
@keyframes fadeup {
	from {
		opacity: 0;
		transform: translateY(24px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
.btn-outline {
	font-weight: 500;
	font-size: 0.65rem;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--white);
	border: 1px solid rgba(212, 200, 176, 0.3);
	padding: 0.75rem 2rem;
	text-decoration: none;
	display: inline-block;
	transition: all 0.3s;
}
.btn-outline:hover {
	border-color: var(--blood);
	background: rgba(139, 26, 26, 0.12);
}
.btn-solid {
	font-weight: 500;
	font-size: 0.65rem;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--white);
	background: var(--blood);
	border: 1px solid var(--blood);
	padding: 0.75rem 2rem;
	text-decoration: none;
	display: inline-block;
	transition: background 0.3s;
	cursor: pointer;
}
.btn-solid:hover {
	background: var(--rust);
}

.scroll-cue {
	position: absolute;
	bottom: 1.8rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	animation: fadeup 1.6s 1.2s both;
	pointer-events: none;
}
.scroll-cue span {
	font-size: 0.48rem;
	letter-spacing: 0.4em;
	text-transform: uppercase;
	color: var(--fog);
}
.scroll-cue-line {
	width: 1px;
	height: 36px;
	background: linear-gradient(to bottom, var(--fog), transparent);
	animation: pulse 2.2s ease infinite;
}
@keyframes pulse {
	0%,
	100% {
		opacity: 0.35;
	}
	50% {
		opacity: 1;
	}
}

/* ── TICKER ──────────────────────────────────────────────*/
.ticker {
	background: var(--blood);
	overflow: hidden;
	height: 36px;
	position: relative;
	display: block;
	contain: paint;
}
.ticker-inner {
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
	width: max-content;
	min-width: max-content;
	height: 100%;
	animation: ticker 60s linear infinite;
	transform: translate3d(0, 0, 0);
	will-change: transform;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	font-weight: 500;
	font-size: 0.58rem;
	letter-spacing: 0.35em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.9);
}
.ticker-group {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	height: 100%;
	white-space: nowrap;
}
.ticker-item {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	height: 100%;
	padding: 0 0.5rem;
	transform: translateZ(0);
}
.ticker-item::before {
	content: ">";
	margin-right: 1rem;
	color: rgba(255, 255, 255, 0.75);
}
@keyframes ticker {
	from {
		transform: translate3d(0, 0, 0);
	}
	to {
		transform: translate3d(-33.333%, 0, 0);
	}
}

/* ── SHARED SECTION STYLES ──────────────────────────────── */
section {
	padding: 7rem 0;
}
.container {
	max-width: 1080px;
	margin: 0 auto;
	padding: 0 3rem;
}

.label {
	font-family: "Poppins", sans-serif;
	font-weight: 500;
	font-size: 0.85rem;
	letter-spacing: 0.5em;
	text-transform: uppercase;
	color: var(--blood);
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 2rem;
}
.label::after {
	content: "";
	width: 40px;
	height: 1px;
	background: var(--blood);
	flex-shrink: 0;
}

/* ── SECTION DIVIDERS ───────────────────────────────────── */
.section-rule {
	width: 100%;
	height: 1px;
	background: linear-gradient(
		to right,
		transparent,
		rgba(139, 26, 26, 0.3) 20%,
		rgba(139, 26, 26, 0.3) 80%,
		transparent
	);
}

/* ── INTRO ──────────────────────────────────────────────── */
.intro {
	background: var(--dark);
}
.intro-grid {
	display: grid;
	grid-template-columns: 5fr 7fr;
	gap: 6rem;
	align-items: center;
}
.intro-left h2 {
	font-family: "Bebas Neue", sans-serif;
	font-size: clamp(3.3rem, 10vw, 4.9rem);
	line-height: 1;
	color: var(--white);
	letter-spacing: 0.04em;
}
.intro-right p {
	font-size: clamp(1.05rem, 1.6vw, 1.25rem);
	line-height: 1.9;
	color: var(--bone);
}
.intro-right p strong {
	color: var(--white);
	font-weight: 500;
}

/* ── DEFINITION ──────────────────────────────────────────── */
.definition {
	background: var(--charcoal);
	position: relative;
	overflow: hidden;
}
.definition::before {
	content: '"';
	position: absolute;
	top: -4rem;
	left: 1rem;
	font-family: "Bebas Neue", sans-serif;
	font-size: 28rem;
	color: rgba(139, 26, 26, 0.05);
	line-height: 1;
	pointer-events: none;
	user-select: none;
}
.def-inner {
	max-width: 780px;
	margin: 0 auto;
	text-align: center;
	position: relative;
	z-index: 1;
}
.def-word {
	font-weight: 500;
	font-size: 0.75rem;
	letter-spacing: 0.5em;
	text-transform: uppercase;
	color: var(--blood);
	margin-bottom: 0.4rem;
}
.def-phonetic {
	font-weight: 300;
	font-style: italic;
	font-size: 0.92rem;
	color: var(--fog);
	margin-bottom: 2.5rem;
}
.def-rule {
	width: 50px;
	height: 2px;
	background: var(--blood);
	margin: 0 auto 2.5rem;
}
.def-text {
	font-weight: 300;
	font-size: clamp(1.05rem, 1.6vw, 1.25rem);;
	line-height: 1.75;
	color: var(--bone);
}
.def-text em {
	color: var(--white);
	font-style: italic;
	font-weight: 400;
}

/* ── CAROUSEL ──────────────────────────────────────────── */
.carousel-wrap {
	background: var(--black);
	padding: 3.5rem 0;
	overflow: hidden;
	width: 100%;
}
.c-track {
	display: flex;
	gap: 1.2rem;
	animation: slide 70s linear infinite;
	width: max-content;
	transform: translate3d(0, 0, 0);
	will-change: transform;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}
.c-track:hover {
	animation-play-state: paused;
}
@keyframes slide {
	from {
		transform: translate3d(0, 0, 0);
	}
	to {
		transform: translate3d(-50%, 0, 0);
	}
}
.c-item {
	width: 360px;
	height: 260px;
	flex-shrink: 0;
	overflow: hidden;
	position: relative;
}
.c-item::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		transparent 55%,
		rgba(8, 8, 8, 0.45) 100%
	);
	transition: opacity 0.35s;
}
.c-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	filter: grayscale(15%) contrast(1.05) brightness(0.92);
	transition:
		transform 0.6s ease,
		filter 0.35s;
}
.c-item:hover img {
	transform: scale(1.06);
	filter: grayscale(0%) contrast(1.1) brightness(1);
}

/* ── SYNOPSIS ──────────────────────────────────────────── */
.synopsis {
	background: var(--dark);
}
.syn-grid {
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: 5rem;
	align-items: start;
	width: 100%;
}
.synopsis h2 {
	font-family: "Bebas Neue", sans-serif;
	font-size: clamp(2.8rem, 10vw, 4.9rem);
	color: var(--white);
	letter-spacing: 0.04em;
	margin-bottom: 1.8rem;
	line-height: 1;
}
.synopsis p {
	line-height: 1.9;
	color: var(--bone);
	margin-bottom: 1.2rem;
}
.pull-quote {
	border-left: 2px solid var(--blood);
	padding-left: 1.8rem;
	margin-top: 2.5rem;
}
.pull-quote p {
	font-style: italic;
	font-size: 1.15rem;
	line-height: 1.65;
	color: var(--fog);
}
.syn-aside {
	position: sticky;
	top: 7rem;
}
.premiere-box {
	border: 1px solid rgba(139, 26, 26, 0.35);
	padding: 2.2rem;
	margin-bottom: 2rem;
}
.pb-label {
	font-weight: 500;
	font-size: 0.72rem;
	letter-spacing: 0.45em;
	text-transform: uppercase;
	color: var(--fog);
	margin-bottom: 1rem;
}
.pb-date {
	font-weight: 300;
	font-style: italic;
	font-size: 1rem;
	color: var(--bone);
	margin-bottom: 1.5rem;
}

/* ── BIOS ──────────────────────────────────────────────── */
.bios-section {
	background: var(--charcoal);
}

.bios-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4rem;
	margin-bottom: 5rem;
}
.bio-photo {
	width: 100%;
	aspect-ratio: 4/3;
	overflow: hidden;
	margin-bottom: 1.8rem;
	background: var(--ash);
}
.bio-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	filter: grayscale(20%) contrast(1.05);
	transition: transform 0.5s ease;
}
.bio-photo:hover img {
	transform: scale(1.04);
}/* 
.bio-card {
	border-top: 2px solid var(--blood);
	padding-top: 1rem;
} */
.bio-name {
	font-family: "Bebas Neue", sans-serif;
	font-size: clamp(1.6rem, 4vw, 2.8rem);
	color: var(--white);
	letter-spacing: 0.06em;
	margin-bottom: 0.3rem;
}
.bio-title {
	font-size: 0.75rem;
	letter-spacing: 0.35em;
	text-transform: uppercase;
	color: var(--blood);
	margin-bottom: 1.5rem;
	font-weight: 500;
}
.bio-text {
	line-height: 1.85;
	color: var(--bone);
	font-weight: 300;
}

/* Filmmakers section within bios */
.filmmakers {
	border-top: 1px solid rgba(255, 255, 255, 0.06);
	padding-top: 4rem;
	margin-top: 1rem;
}
.filmmakers-header {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 4rem;
	align-items: start;
}
.filmmakers-left svg {
	width: 250px;
}
.filmmakers-left h3 {
	font-family: "Bebas Neue", sans-serif;
	font-size: clamp(1.8rem, 3vw, 2.8rem);
	color: var(--white);
	letter-spacing: 0.05em;
	line-height: 1.05;
	margin-bottom: 1rem;
}
.filmmakers-eyebrow {
	font-size: 0.68rem;
	letter-spacing: 0.4em;
	text-transform: uppercase;
	color: var(--blood);
	font-weight: 500;
	margin-bottom: 0.8rem;
}
.filmmakers-text {
	line-height: 1.85;
	color: var(--bone);
	font-weight: 300;
}
.filmmakers-text + .filmmakers-text {
	margin-top: 1rem;
}

/* ── PLEDGE ──────────────────────────────────────────────── */
.pledge-section {
	background: var(--ash);
	text-align: center;
}
.pledge-section h2 {
	font-family: "Bebas Neue", sans-serif;
	font-size: clamp(2.8rem, 6vw, 5.2rem);
	color: var(--white);
	letter-spacing: 0.1em;
	margin-bottom: 0.8rem;
}
.pledge-section .tagline {
	font-weight: 300;
	font-style: italic;
	font-size: 1rem;
	color: var(--fog);
	max-width: 440px;
	margin: 0 auto 3rem;
	line-height: 1.7;
}
.pledge-cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2px;
	max-width: 760px;
	width: 100%;
	margin: 0 auto;
	border: 1px solid rgba(212, 200, 176, 0.1);
}
.pledge-col {
	padding: 2.5rem 2rem;
	background: rgba(255, 255, 255, 0.02);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.pledge-col:first-child {
	border-right: 1px solid rgba(212, 200, 176, 0.1);
}
.pledge-col-title {
	font-weight: 500;
	font-size: 0.75rem;
	letter-spacing: 0.4em;
	text-transform: uppercase;
	color: var(--blood);
	margin-bottom: 0.7rem;
}
.pledge-col p {
	font-size: 0.9rem;
	color: var(--fog);
	line-height: 1.6;
	margin-bottom: 1.5rem;
}
.email-row {
	display: flex;
	width: 100%;
}
.email-row input {
	flex: 1;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(212, 200, 176, 0.18);
	border-right: none;
	color: var(--white);
	padding: 0.8rem 1rem;
	font-family: "Poppins", sans-serif;
	font-size: 0.75rem;
	outline: none;
	transition: border-color 0.25s;
}
.email-row input::placeholder {
	color: var(--fog);
}
.email-row input:focus {
	border-color: rgba(139, 26, 26, 0.5);
}
.email-row button {
	background: var(--blood);
	color: var(--white);
	border: 1px solid var(--blood);
	padding: 0.8rem 1.2rem;
	font-weight: 500;
	font-size: 0.65rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	font-family: "Poppins", sans-serif;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.25s;
}
.email-row button:hover {
	background: var(--rust);
}
.signup-success {
	display: none;
	font-size: 0.7rem;
	letter-spacing: 0.2em;
	color: var(--blood);
	text-transform: uppercase;
	margin-top: 0.8rem;
}
.spacer {
	flex: 1;
	min-height: 1rem;
}

/* ── FOOTER ──────────────────────────────────────────────── */
footer {
	background: var(--black);
	border-top: 1px solid rgba(212, 200, 176, 0.07);
	padding: 4rem 3rem 2.5rem;
}
.footer-grid {
	max-width: 1080px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 2rem;
	align-items: start;
	padding-bottom: 3rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.05);

	& > * {
		padding: 1em;
	}
}
.footer-label {
	font-weight: 500;
	font-size: 0.64rem;
	letter-spacing: 0.45em;
	text-transform: uppercase;
	color: var(--fog);
	margin-bottom: 1.2rem;
}
.ilcp-wrap {
	display: flex;
	align-items: center;
	gap: 1rem;
	text-decoration: none;
}
.ilcp-logo-img {
	width: 64px;
	height: auto;
	object-fit: contain;
	opacity: 0.85;
	transition: opacity 0.25s;
}
.ilcp-wrap:hover .ilcp-logo-img {
	opacity: 1;
}
.ilcp-text {
	font-weight: 300;
	font-size: 0.72rem;
	color: var(--fog);
	line-height: 1.5;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.footer-center-col {
	text-align: center;
}
.footer-tagline {
	font-weight: 300;
	font-style: italic;
	font-size: 0.8rem;
	color: var(--fog);
	letter-spacing: 0.08em;
}
@keyframes rotate {
	to {
		--angle: 360deg;
	}
}

@property --angle {
	syntax: "<angle>";
	initial-value: 0deg;
	inherits: false;
}
.footer-right-col {
	text-align: right;
	background: var(--black);
	position: relative;

	&:before {
		content: "";
		position: absolute;
		top: -1px;
		left: -1px;
		right: -1px;
		bottom: -1px;
		background: linear-gradient(
			var(--angle),
			var(--blood),
			var(--black),
			var(--blood)
		);
		opacity: 0;
		animation: 10s rotate linear infinite;
		z-index: 0;
	}

	&:after {
		content: "";
		position: absolute;
		inset: 0;
		background: var(--black);
	}

	& > * {
		position: relative;
		z-index: 1;
	}
}
:target .footer-right-col:before {
	opacity: 1;
}
.footer-contact-label {
	font-weight: 500;
	font-size: 0.64rem;
	letter-spacing: 0.45em;
	text-transform: uppercase;
	color: var(--fog);
	margin-bottom: 0.6rem;
}
.footer-contact-link {
	font-weight: 300;
	font-size: 0.88rem;
	color: var(--bone);
	text-decoration: none;
	letter-spacing: 0.04em;
	border-bottom: 1px solid rgba(139, 26, 26, 0.35);
	padding-bottom: 2px;
	transition:
		color 0.25s,
		border-color 0.25s;
}
.footer-contact-link:hover {
	color: var(--white);
	border-color: var(--blood);
}
.footer-social {
	display: flex;
	justify-content: flex-end;
	gap: 1.2rem;
	margin-top: 1.5rem;
}
.footer-social a {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	font-weight: 400;
	font-size: 0.55rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--fog);
	text-decoration: none;
	transition: color 0.25s;
}
.footer-social a:hover {
	color: var(--blood);
}
.footer-social svg {
	width: 14px;
	height: 14px;
	fill: currentColor;
}
.footer-bottom {
	max-width: 1080px;
	margin: 2rem auto 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.footer-bottom p {
	font-weight: 300;
	font-size: 0.5rem;
	letter-spacing: 0.18em;
	color: rgba(138, 138, 122, 0.45);
	text-transform: uppercase;
}

/* ── SCROLL REVEAL (desktop only) ──────────────────────── */
.reveal {
	opacity: 0;
	transform: translateY(14px);
	transition:
		opacity 0.55s ease,
		transform 0.55s ease;
}
.reveal.visible {
	opacity: 1;
	transform: translateY(0);
}

/* ── RESPONSIVE ─────────────────────────────────────────── */
@media (min-width: 769px) and (max-width: 1100px) {
	.container {
		padding: 0 2rem;
	}
	.syn-grid {
		gap: 3rem;
	}
	.intro-grid {
		gap: 2.5rem;
	}
	.footer-grid {
		gap: 1.5rem;
	}
	.bios-grid {
		gap: 2.5rem;
	}
	.filmmakers-header {
		gap: 2.5rem;
	}
}

@media (max-width: 768px) {
	/* Force all reveal elements visible on mobile */
	.reveal {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}

	/* Nav */
	header {
		padding: 0.8rem 1.2rem;

		&:after {
			content: "";
			display: block;
			position: absolute;
			bottom: 0;
			left: 0;
			height: 100vh;
			width: 100%;
			transform: translateY(-60px);
			background: var(--black);
		}
	}
	.nav-logo img {
		height: 30px !important;
	}
	.nav-links {
		display: none;
	}
	.nav-hamburger {
		display: flex;
	}
	.nav-social {
		display: none;
	}

	/* Hero */
	.hero {
		justify-content: center;
	}
	.scroll-cue {
		display: none;
	}
	.hero-content {
		padding: 0 1.2rem;
		transform: translateY(10%);
	}
	.hero-logo-wrap img {
		height: clamp(150px, 55vw, 260px) !important;
	}
	.hero-eyebrow {
		font-size: 0.6rem;
		letter-spacing: 0.35em;
	}
	.hero-subtitle {
		font-size: 0.95rem;
	}
	.hero-btn-row {
		flex-direction: column;
		align-items: center;
		gap: 0.8rem;
	}
	.btn-outline,
	.btn-solid {
		width: 100%;
		max-width: 260px;
		text-align: center;
		padding: 0.9rem 1rem;
	}

	/* Ticker */
	.ticker {
		height: 28px;
	}
	.ticker-inner {
		font-size: 0.48rem;
		letter-spacing: 0.22em;
	}

	/* Sections */
	section {
		padding: 3.5rem 0;
	}
	.container {
		padding: 0 1.2rem;
	}
	.label {
		font-size: 0.75rem;
		margin-bottom: 1rem;
	}

	/* Intro */
	.intro-grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
	/* Definition */
	.def-inner {
		padding: 0;
	}
	.definition::before {
		font-size: 10rem;
		top: 0;
	}
	.def-phonetic {
		font-size: 0.82rem;
		margin-bottom: 1.5rem;
	}
	.def-rule {
		margin-bottom: 1.5rem;
	}

	/* Carousel */
	.carousel-wrap {
		padding: 2rem 0;
	}
	.c-item {
		width: 240px;
		height: 170px;
	}
	.c-item img {
		filter: none;
	}

	/* Synopsis */
	.syn-grid {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}
	.syn-aside {
		position: static;
	}
	.synopsis h2 {
		margin-bottom: 1rem;
	}
	.synopsis p {
		line-height: 1.8;
	}
	.pull-quote {
		margin-top: 1.5rem;
		padding-left: 1rem;
	}
	.pull-quote p {
		font-size: 1rem;
	}
	.premiere-box {
		padding: 1.5rem;
	}
	.premiere-box img {
		max-width: 200px !important;
	}

	/* Bios */
	.bios-grid {
		grid-template-columns: 1fr;
		gap: 3rem;
	}
	.filmmakers-header {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	/* Pledge */
	.pledge-section .tagline {
		font-size: 0.92rem;
		margin-bottom: 2rem;
	}
	.pledge-cols {
		grid-template-columns: 1fr;
		max-width: 100%;
	}
	.pledge-col:first-child {
		border-right: none;
		border-bottom: 1px solid rgba(212, 200, 176, 0.1);
	}
	.pledge-col {
		padding: 1.8rem 1.2rem;
		align-items: stretch;
	}
	.email-row {
		flex-direction: column;
	}
	.email-row input {
		border-right: 1px solid rgba(212, 200, 176, 0.18);
		border-bottom: none;
		width: 100%;
	}
	.email-row button {
		width: 100%;
		padding: 0.9rem;
	}
	.pledge-col:last-child {
		align-items: center;
		text-align: center;
	}

	/* Footer */
	footer {
		padding: 2.5rem 1.2rem 2rem;
	}
	.footer-grid {
		grid-template-columns: 1fr;
		gap: 2rem;
		text-align: center;
	}
	.footer-right-col {
		text-align: center;
	}
	.footer-social {
		justify-content: center;
	}
	.ilcp-wrap {
		justify-content: center;
	}
	.footer-center-col img {
		margin: 0 auto;
		height: 48px !important;
	}
	.footer-bottom {
		flex-direction: column;
		gap: 0.5rem;
		text-align: center;
	}
	.footer-contact-label {
		text-align: center;
		display: block;
	}
}

@media (max-width: 380px) {
	.hero-logo-wrap img {
		height: 130px !important;
	}
	.pledge-section h2 {
		font-size: 2rem;
	}
	.c-item {
		width: 200px;
		height: 145px;
	}
}
