/* =====================================================================
   SUPERVIVENCIA · SLIDES
   Deck cinematográfico 1920×1080, escalado por <deck-stage>.
   ===================================================================== */

html, body {
	overflow: hidden;
}

deck-stage {
	--bg: var(--ink);
}

deck-stage > section {
	position: absolute;
	inset: 0;
	width: 1920px;
	height: 1080px;
	background: radial-gradient(ellipse 80% 60% at 50% 40%, #2a2e32 0%, #16191c 40%, #0a0c0e 75%, #050608 100%);
	color: var(--bone);
	overflow: hidden;
	isolation: isolate;
	visibility: hidden;
	opacity: 0;
	transition: opacity 0.5s ease;
	pointer-events: none;
}

deck-stage > section[data-deck-active] {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
}

/* Vignette + grano sobre todas las slides */
deck-stage > section::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 50;
	background:
		radial-gradient(ellipse 85% 65% at 50% 45%, transparent 30%, rgba(0,0,0,0.5) 70%, rgba(0,0,0,0.95) 100%),
		linear-gradient(180deg, rgba(0,0,0,0.35) 0%, transparent 25%, transparent 75%, rgba(0,0,0,0.65) 100%);
}

deck-stage > section::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 51;
	opacity: calc(0.32 * var(--grain-intensity));
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.4' numOctaves='3' stitchTiles='stitch' seed='3'/><feColorMatrix values='0 0 0 0 0.85, 0 0 0 0 0.78, 0 0 0 0 0.58, 0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
	animation: grain 0.5s steps(5) infinite;
}

@keyframes grain {
	0%   { transform: translate(0, 0); }
	25%  { transform: translate(-4px, 3px); }
	50%  { transform: translate(3px, -2px); }
	75%  { transform: translate(-2px, -3px); }
	100% { transform: translate(2px, 2px); }
}

/* ---------- CAPAS ATMOSFÉRICAS ---------- */
.bg-concrete {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 2;
	opacity: 0.25;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400'><filter id='c'><feTurbulence type='fractalNoise' baseFrequency='0.025' numOctaves='3' seed='3'/><feColorMatrix values='0 0 0 0 0.29, 0 0 0 0 0.30, 0 0 0 0 0.32, 0 0 0 1 0'/></filter><rect width='100%25' height='100%25' filter='url(%23c)'/></svg>");
	background-size: 600px;
	mix-blend-mode: overlay;
}

.bg-moss-tl, .bg-moss-tr, .bg-moss-bl, .bg-moss-br {
	position: absolute;
	width: 700px;
	height: 700px;
	pointer-events: none;
	z-index: 2;
	opacity: 0.45;
	mix-blend-mode: screen;
}
.bg-moss-tl { top: -180px; left: -180px;  background: radial-gradient(circle at top left,     rgba(74, 84, 64, 0.6) 0%, transparent 55%); }
.bg-moss-tr { top: -180px; right: -180px; background: radial-gradient(circle at top right,    rgba(42, 48, 40, 0.7) 0%, transparent 55%); }
.bg-moss-bl { bottom: -180px; left: -180px;  background: radial-gradient(circle at bottom left,  rgba(42, 48, 40, 0.7) 0%, transparent 55%); }
.bg-moss-br { bottom: -180px; right: -180px; background: radial-gradient(circle at bottom right, rgba(74, 84, 64, 0.6) 0%, transparent 55%); }

.bg-heat {
	position: absolute;
	top: -10%;
	left: 50%;
	transform: translateX(-50%);
	width: 1400px;
	height: 1000px;
	background: radial-gradient(ellipse, rgba(212, 205, 191, 0.12) 0%, rgba(122, 125, 131, 0.05) 30%, transparent 60%);
	pointer-events: none;
	z-index: 1;
	animation: heat-pulse calc(14s / var(--speed)) ease-in-out infinite;
}

@keyframes heat-pulse {
	0%, 100% { opacity: 0.6; }
	50%      { opacity: 1; }
}

.bg-cracks {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 3;
	opacity: 0.45;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 1080'><g stroke='%23000' stroke-width='1.4' fill='none' opacity='0.8'><path d='M 200 0 L 240 200 L 220 400 L 280 600 L 250 900 L 300 1080'/><path d='M 1700 0 L 1680 250 L 1750 500 L 1720 800 L 1780 1080'/><path d='M 0 300 L 200 320 L 400 290 L 700 340'/><path d='M 1200 0 L 1230 180 L 1180 360 L 1240 540'/><path d='M 800 1080 L 820 880 L 760 700 L 800 500'/><path d='M 400 700 L 600 720 L 800 680 L 1100 740 L 1500 700'/><path d='M 100 100 L 250 140 L 380 90 L 520 130'/></g></svg>");
	background-size: cover;
	mix-blend-mode: multiply;
}

.bg-debris {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 320px;
	pointer-events: none;
	z-index: 4;
	background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 60%, rgba(0,0,0,0.85) 100%);
}

.silhouette {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 360px;
	pointer-events: none;
	z-index: 4;
	opacity: 0.55;
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 360' preserveAspectRatio='none'><path d='M0,360 L0,260 L60,250 L80,180 L100,250 L160,240 L180,200 L200,250 L260,230 L300,210 L320,180 L340,210 L380,220 L420,160 L440,220 L500,210 L520,170 L540,220 L600,200 L640,230 L660,80 L700,230 L740,210 L780,230 L820,200 L860,140 L880,210 L940,200 L980,220 L1020,140 L1060,220 L1100,200 L1140,230 L1180,210 L1240,180 L1280,230 L1320,210 L1360,140 L1380,220 L1440,210 L1480,180 L1500,230 L1560,200 L1600,160 L1640,220 L1680,210 L1720,180 L1760,230 L1820,210 L1880,200 L1920,230 L1920,360 Z' fill='%230a0805'/></svg>") bottom center / cover no-repeat;
}

.silhouette.distant {
	height: 220px;
	opacity: 0.3;
	bottom: 320px;
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 220' preserveAspectRatio='none'><path d='M0,220 L0,140 L100,130 L140,80 L180,130 L240,120 L280,140 L320,90 L340,140 L420,130 L460,110 L500,140 L560,130 L600,40 L640,140 L700,120 L760,140 L800,110 L840,140 L900,130 L960,120 L1000,140 L1060,130 L1100,80 L1140,140 L1200,130 L1260,110 L1300,140 L1360,130 L1400,120 L1460,140 L1500,130 L1560,110 L1600,140 L1660,130 L1700,80 L1760,140 L1820,130 L1880,140 L1920,130 L1920,220 Z' fill='%23150d08'/></svg>") bottom center / cover no-repeat;
}

/* ---------- TENDRILS CORDYCEPS ---------- */
.tendril {
	position: absolute;
	pointer-events: none;
	z-index: 6;
	width: 520px;
	height: 520px;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 520 520'><g fill='none' stroke='%23c25a1f' stroke-width='2.5' stroke-linecap='round' opacity='0.9'><path d='M 0 480 C 60 460 120 440 180 410 C 240 380 290 340 340 290'/><path d='M 0 460 C 50 450 100 430 150 400 C 200 370 240 330 280 290 C 310 260 330 230 340 200'/><path d='M 30 510 C 90 490 160 460 220 420 C 280 380 330 330 370 270'/><path d='M 180 410 L 150 380'/><path d='M 180 410 L 210 390'/><path d='M 240 380 L 220 340'/><path d='M 280 290 L 310 270'/><path d='M 280 290 L 260 250'/><path d='M 340 290 L 320 250'/><path d='M 340 290 L 370 280'/><path d='M 220 420 L 195 395'/><path d='M 150 400 L 130 370'/><path d='M 100 430 L 80 410'/><path d='M 60 460 L 50 440'/><path d='M 340 200 L 360 180'/></g><g fill='%23c25a1f' opacity='0.7'><circle cx='180' cy='410' r='4'/><circle cx='240' cy='380' r='3.5'/><circle cx='280' cy='290' r='4.5'/><circle cx='340' cy='290' r='3.5'/><circle cx='150' cy='400' r='3'/><circle cx='340' cy='200' r='3'/><circle cx='220' cy='420' r='3'/></g><g fill='none' stroke='%238a3a15' stroke-width='1.5' stroke-linecap='round' opacity='0.6'><path d='M 0 500 C 80 480 160 450 230 410'/><path d='M 0 440 C 70 430 130 410 180 380'/><path d='M 40 520 C 110 500 180 470 240 430'/></g></svg>");
	background-size: contain;
	background-repeat: no-repeat;
	filter: drop-shadow(0 0 14px rgba(0,0,0,0.7));
}
.tendril-bl       { bottom: -40px; left:  -40px; }
.tendril-br       { bottom: -40px; right: -40px; transform: scaleX(-1); }
.tendril-tl       { top:    -40px; left:  -40px; transform: scaleY(-1); }
.tendril-tr       { top:    -40px; right: -40px; transform: scale(-1, -1); }
.tendril-small    { width: 320px; height: 320px; opacity: 0.7; }

/* ---------- LAYOUT PRIMITIVES ---------- */
.slide-pad {
	position: absolute;
	inset: 0;
	padding: 80px 120px 70px;
	display: flex;
	flex-direction: column;
	z-index: 10;
}

.slide-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-family: 'Special Elite', monospace;
	font-size: 24px;
	color: var(--bone-dim);
	letter-spacing: 0.25em;
	text-transform: uppercase;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--ochre-dim);
	opacity: 0.8;
}

.slide-header .stamp {
	border: 1px solid var(--ochre-dim);
	padding: 6px 16px;
	color: var(--ochre);
}

.slide-footer {
	margin-top: auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	font-family: 'Special Elite', monospace;
	font-size: 24px;
	color: var(--bone-dim);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	opacity: 0.7;
	padding-top: 24px;
	border-top: 1px solid rgba(196, 168, 120, 0.25);
}

/* ---------- COVER ---------- */
.cover-body {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	max-width: 1500px;
}

.title-eyebrow {
	font-family: 'Special Elite', monospace;
	font-size: 26px;
	letter-spacing: 0.4em;
	text-transform: uppercase;
	color: var(--ochre);
	margin-bottom: 28px;
}

.title-h1 {
	font-family: 'Cinzel', serif;
	font-weight: 700;
	font-size: 118px;
	line-height: 0.96;
	letter-spacing: 0.005em;
	text-transform: uppercase;
	color: var(--bone);
	position: relative;
	margin-bottom: 40px;
	text-shadow:
		0 0 1px rgba(212, 205, 191, 0.4),
		0 5px 0 rgba(0,0,0,0.85),
		0 -2px 0 rgba(0,0,0,0.4),
		4px 4px 30px rgba(0,0,0,0.8);
}

.title-h1 .accent {
	color: var(--rust);
	font-style: normal;
	text-shadow:
		0 0 1px rgba(194, 90, 31, 0.5),
		0 6px 0 rgba(0,0,0,0.85),
		0 0 30px rgba(194, 90, 31, 0.3);
}

.title-sub {
	font-family: 'IM Fell English', serif;
	font-style: italic;
	font-size: 34px;
	color: var(--ochre);
	letter-spacing: 0.02em;
	max-width: 1300px;
	margin-bottom: 56px;
	line-height: 1.4;
}

.title-meta {
	display: flex;
	gap: 60px;
	font-family: 'Special Elite', monospace;
	font-size: 26px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--bone-dim);
}

.title-meta .item span {
	display: block;
	color: var(--rust);
	font-size: 24px;
	margin-bottom: 10px;
	opacity: 0.9;
	letter-spacing: 0.3em;
}

/* ---------- WARNING ---------- */
.warning-body {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.tag {
	font-size: 24px;
	margin-bottom: 24px;
}

.warning-h {
	font-size: 110px;
	color: var(--bone);
	line-height: 0.98;
	margin-bottom: 28px;
	text-shadow: 0 5px 0 rgba(0,0,0,0.85), 0 0 30px rgba(0,0,0,0.6);
	max-width: 1600px;
}

.warning-h .accent { color: var(--rust); }
.warning-h .muted  { color: var(--ochre-dim); }

.warning-sub {
	font-size: 32px;
	color: var(--ochre);
	max-width: 1400px;
	line-height: 1.4;
}

/* ---------- STAT (Doomsday Clock) ---------- */
.stat-body {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	max-width: 1500px;
}

.stat-big {
	display: flex;
	align-items: baseline;
	gap: 40px;
	margin: 24px 0 16px;
}

.stat-big .big-num {
	font-family: 'Cinzel', serif;
	font-weight: 700;
	font-size: 380px;
	line-height: 0.85;
	color: var(--rust);
	letter-spacing: -0.02em;
	text-shadow:
		0 6px 0 rgba(0,0,0,0.9),
		0 0 80px rgba(194, 90, 31, 0.4);
}

.stat-big .big-unit {
	font-family: 'IM Fell English', serif;
	font-style: italic;
	font-size: 80px;
	color: var(--bone);
	letter-spacing: 0.02em;
}

.stat-caption {
	font-family: 'Cinzel', serif;
	font-size: 56px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--bone);
	margin-bottom: 32px;
}

.stat-desc {
	font-size: 28px;
	color: var(--ochre);
	line-height: 1.5;
	max-width: 1300px;
}

/* ---------- THREATS GRID ---------- */
.threats-h {
	font-size: 84px;
	color: var(--bone);
	margin-top: 24px;
}

.threats-sub {
	font-size: 26px;
	color: var(--ochre);
	max-width: 1100px;
	margin-top: 12px;
}

.threats-grid {
	display: grid;
	gap: 28px;
	margin-top: 40px;
	flex: 1;
	align-content: start;
}

.threat-card {
	background: linear-gradient(180deg, rgba(28, 32, 36, 0.92), rgba(10, 12, 14, 0.95));
	border: 1px solid rgba(154, 146, 133, 0.25);
	border-left: 4px solid var(--rust);
	padding: 26px 30px 24px;
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	gap: 10px;
	box-shadow: 0 12px 32px rgba(0,0,0,0.5), inset 0 1px 0 rgba(212, 205, 191, 0.04);
}

.threat-card::before {
	content: "";
	position: absolute;
	top: 0; right: 0;
	width: 240px;
	height: 240px;
	background: radial-gradient(circle at top right, rgba(194, 90, 31, 0.18), transparent 60%);
	pointer-events: none;
}

.threat-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 18px;
	margin-bottom: 4px;
}

.threat-num {
	font-family: 'Cinzel', serif;
	font-size: 24px;
	color: var(--rust);
	letter-spacing: 0.3em;
}

.threat-card h3 {
	font-family: 'Cinzel', serif;
	font-weight: 700;
	font-size: 34px;
	color: var(--bone);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	line-height: 1;
	margin-bottom: 10px;
}

.threat-card p {
	font-family: 'Special Elite', monospace;
	font-size: 22px;
	color: var(--bone-dim);
	line-height: 1.42;
}

.threat-prob {
	font-family: 'Special Elite', monospace;
	font-size: 20px;
	color: var(--warning);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	border: 1px solid var(--warning);
	padding: 4px 12px;
	white-space: nowrap;
}

/* ---------- DATA CARD ---------- */
.data-body {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.data-h {
	font-size: 68px;
	color: var(--bone);
	margin: 20px 0 32px;
	max-width: 1600px;
	line-height: 1;
}

.data-quote {
	font-family: 'IM Fell English', serif;
	font-style: italic;
	font-size: 36px;
	color: var(--bone);
	border-left: 4px solid var(--rust);
	padding: 8px 0 8px 32px;
	margin: 0 0 36px;
	max-width: 1500px;
	line-height: 1.35;
}

.data-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	margin-bottom: 36px;
	max-width: 1600px;
}

.data-stat .big {
	font-family: 'Cinzel', serif;
	font-weight: 700;
	font-size: 110px;
	color: var(--rust);
	line-height: 0.9;
	letter-spacing: -0.01em;
	margin-bottom: 12px;
	text-shadow: 0 4px 0 rgba(0,0,0,0.85), 0 0 30px rgba(194, 90, 31, 0.25);
}

.data-stat .label {
	font-family: 'Special Elite', monospace;
	font-size: 22px;
	color: var(--bone-dim);
	letter-spacing: 0.05em;
	line-height: 1.4;
	text-transform: uppercase;
}

.data-bullets {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-bottom: 8px;
	max-width: 1500px;
}

.data-bullets li {
	font-family: 'Special Elite', monospace;
	font-size: 24px;
	color: var(--bone);
	padding-left: 36px;
	position: relative;
	line-height: 1.45;
}

.data-bullets li::before {
	content: "›";
	position: absolute;
	left: 0;
	color: var(--rust);
	font-family: 'Cinzel', serif;
	font-size: 28px;
}

.source {
	font-size: 20px;
	max-width: 1500px;
}

/* ---------- GALLERY ---------- */
.gallery-body {
	flex: 1;
	display: flex;
	flex-direction: column;
}

.gallery-h {
	font-size: 76px;
	color: var(--bone);
	margin: 16px 0 14px;
}

.gallery-sub {
	font-size: 26px;
	color: var(--ochre);
	max-width: 1500px;
	line-height: 1.4;
	margin-bottom: 36px;
}

.gallery-grid {
	display: grid;
	gap: 28px;
	flex: 1;
	align-content: start;
}

.gallery-cell {
	position: relative;
	aspect-ratio: 1 / 1;
	background:
		radial-gradient(ellipse at 50% 30%, rgba(154, 146, 133, 0.18) 0%, transparent 60%),
		linear-gradient(170deg, rgba(74, 77, 82, 0.5) 0%, rgba(20, 23, 26, 0.95) 75%);
	border: 1px solid var(--ochre-dim);
	border-left: 4px solid var(--rust);
	overflow: hidden;
	box-shadow: inset 0 0 80px rgba(0,0,0,0.7), 0 20px 40px rgba(0,0,0,0.5);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
}

.gallery-cell::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400'><filter id='c'><feTurbulence type='fractalNoise' baseFrequency='0.04' numOctaves='3' seed='5'/><feColorMatrix values='0 0 0 0 0.32, 0 0 0 0 0.33, 0 0 0 0 0.30, 0 0 0 1 0'/></filter><rect width='100%25' height='100%25' filter='url(%23c)'/></svg>");
	background-size: 300px;
	opacity: 0.55;
	mix-blend-mode: overlay;
}

.gallery-cell::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 70% 60% at 50% 40%, transparent 30%, rgba(0,0,0,0.65) 100%);
	pointer-events: none;
}

.gallery-cell .ph-icon {
	position: absolute;
	top: 45%; left: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;
	font-family: 'Cinzel', serif;
	font-size: 130px;
	color: var(--bone);
	opacity: 0.16;
	filter: drop-shadow(0 4px 12px rgba(0,0,0,0.6));
}

.gallery-cell .ph-label {
	position: relative;
	z-index: 2;
	font-family: 'Special Elite', monospace;
	font-size: 18px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--bone);
	opacity: 0.8;
	padding: 16px 20px;
	background: rgba(0,0,0,0.55);
	border-top: 1px solid var(--ochre-dim);
	width: 100%;
	text-align: left;
	line-height: 1.4;
}

.gallery-note {
	font-family: 'Special Elite', monospace;
	font-size: 18px;
	color: var(--bone-dim);
	letter-spacing: 0.1em;
	opacity: 0.7;
	margin-top: 24px;
	font-style: italic;
}

/* ---------- QR SLIDE ---------- */
.qr-body {
	flex: 1;
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 80px;
	align-items: center;
}

.qr-left {
	display: flex;
	flex-direction: column;
}

.qr-h {
	font-size: 100px;
	color: var(--bone);
	margin: 16px 0 32px;
	line-height: 0.98;
}

.qr-h .accent { color: var(--rust); }

.qr-sub {
	font-size: 30px;
	color: var(--ochre);
	max-width: 800px;
	line-height: 1.4;
	margin-bottom: 32px;
}

.qr-cta {
	font-family: 'Special Elite', monospace;
	font-size: 30px;
	color: var(--rust);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	margin-bottom: 20px;
}

.qr-url {
	font-family: 'Special Elite', monospace;
	font-size: 18px;
	color: var(--bone-dim);
	letter-spacing: 0.08em;
	opacity: 0.7;
	word-break: break-all;
	max-width: 800px;
}

.qr-right {
	display: flex;
	align-items: center;
	justify-content: center;
}

.qr-frame {
	position: relative;
	background: var(--bone);
	padding: 40px;
	width: 640px;
	height: 640px;
	box-shadow: 0 30px 60px rgba(0,0,0,0.6), 0 0 0 1px var(--ochre-dim);
}

.qr-frame .qr-code {
	width: 100%;
	height: 100%;
}

.qr-frame .qr-code svg,
.qr-frame .qr-code canvas,
.qr-frame .qr-code img {
	width: 100% !important;
	height: 100% !important;
	display: block;
}

.qr-corner {
	position: absolute;
	width: 50px;
	height: 50px;
	border: 4px solid var(--rust);
}
.qr-corner.tl { top: -8px; left: -8px;  border-right: 0; border-bottom: 0; }
.qr-corner.tr { top: -8px; right: -8px; border-left: 0;  border-bottom: 0; }
.qr-corner.bl { bottom: -8px; left: -8px;  border-right: 0; border-top: 0; }
.qr-corner.br { bottom: -8px; right: -8px; border-left: 0;  border-top: 0; }

.qr-missing {
	background: rgba(106, 32, 24, 0.25);
	border: 1px solid var(--blood);
	border-left: 4px solid var(--blood);
	padding: 48px 40px;
	max-width: 640px;
	text-align: left;
}

.qr-missing-icon {
	font-family: 'Cinzel', serif;
	font-size: 80px;
	color: var(--warning);
	line-height: 1;
	margin-bottom: 16px;
}

.qr-missing-title {
	font-family: 'Cinzel', serif;
	font-weight: 700;
	font-size: 34px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--bone);
	margin-bottom: 16px;
}

.qr-missing-desc {
	font-family: 'Special Elite', monospace;
	font-size: 22px;
	color: var(--bone-dim);
	line-height: 1.5;
}

.qr-missing-desc strong {
	color: var(--bone);
}

/* ---------- QUESTION SLIDE (transición narrativa) ---------- */
.question-body {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	max-width: 1600px;
}

.question-h {
	font-size: 130px;
	color: var(--bone);
	line-height: 0.92;
	margin: 20px 0 36px;
	text-shadow: 0 5px 0 rgba(0,0,0,0.85), 0 0 40px rgba(0,0,0,0.6);
}

.question-h .accent { color: var(--rust); }

.question-sub {
	font-size: 32px;
	color: var(--ochre);
	max-width: 1300px;
	line-height: 1.4;
}

/* ---------- HERO IMAGE ---------- */
.hero-body {
	flex: 1;
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: 80px;
	align-items: center;
}

.hero-text {
	display: flex;
	flex-direction: column;
}

.hero-h {
	font-size: 76px;
	color: var(--bone);
	line-height: 0.98;
	margin: 16px 0 28px;
}

.hero-h .accent { color: var(--rust); }

.hero-sub {
	font-size: 28px;
	color: var(--ochre);
	max-width: 760px;
	line-height: 1.4;
	margin-bottom: 24px;
}

.hero-note {
	font-family: 'Special Elite', monospace;
	font-size: 18px;
	color: var(--bone-dim);
	letter-spacing: 0.08em;
	opacity: 0.7;
	font-style: italic;
	max-width: 760px;
}

.hero-image {
	position: relative;
	aspect-ratio: 4 / 3;
	background:
		radial-gradient(ellipse at 50% 30%, rgba(154, 146, 133, 0.2) 0%, transparent 60%),
		linear-gradient(170deg, rgba(74, 77, 82, 0.55) 0%, rgba(20, 23, 26, 0.95) 75%);
	border: 1px solid var(--ochre-dim);
	border-left: 4px solid var(--rust);
	overflow: hidden;
	box-shadow: inset 0 0 100px rgba(0,0,0,0.7), 0 30px 60px rgba(0,0,0,0.55);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
}

.hero-image::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400'><filter id='c'><feTurbulence type='fractalNoise' baseFrequency='0.04' numOctaves='3' seed='5'/><feColorMatrix values='0 0 0 0 0.32, 0 0 0 0 0.33, 0 0 0 0 0.30, 0 0 0 1 0'/></filter><rect width='100%25' height='100%25' filter='url(%23c)'/></svg>");
	background-size: 400px;
	opacity: 0.45;
	mix-blend-mode: overlay;
}

.hero-image .ph-icon {
	font-family: 'Cinzel', serif;
	font-size: 200px;
	color: var(--bone);
	opacity: 0.16;
	filter: drop-shadow(0 4px 12px rgba(0,0,0,0.6));
	z-index: 2;
}

.hero-image .ph-label {
	font-family: 'Special Elite', monospace;
	font-size: 22px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--bone);
	opacity: 0.75;
	margin-top: 24px;
	z-index: 2;
	text-align: center;
	line-height: 1.4;
}

/* ---------- CLOSER ---------- */
.closer-body {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	max-width: 1500px;
}

.closer-h {
	font-size: 220px;
	line-height: 0.92;
	margin-bottom: 40px;
}

.closer-body .title-sub {
	font-size: 38px;
}

/* ---------- FULLSCREEN IMAGE (slides 15, 17, 18) ---------- */
.fullscreen-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	background-color: var(--bg-deep);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

/* Overlay degradado para legibilidad del texto sobreimpreso */
.fullscreen-overlay {
	position: absolute;
	inset: 0;
	z-index: 5;
	pointer-events: none;
	background:
		linear-gradient(180deg,
			rgba(5, 6, 8, 0.85) 0%,
			rgba(5, 6, 8, 0.35) 18%,
			rgba(5, 6, 8, 0.15) 35%,
			rgba(5, 6, 8, 0.15) 60%,
			rgba(5, 6, 8, 0.55) 82%,
			rgba(5, 6, 8, 0.9) 100%),
		linear-gradient(90deg,
			rgba(5, 6, 8, 0.45) 0%,
			rgba(5, 6, 8, 0) 25%,
			rgba(5, 6, 8, 0) 75%,
			rgba(5, 6, 8, 0.45) 100%);
}

.fullscreen-overlay.light {
	background:
		linear-gradient(180deg,
			rgba(5, 6, 8, 0.78) 0%,
			rgba(5, 6, 8, 0.1) 18%,
			rgba(5, 6, 8, 0) 40%,
			rgba(5, 6, 8, 0) 65%,
			rgba(5, 6, 8, 0.55) 88%,
			rgba(5, 6, 8, 0.92) 100%);
}

.fullscreen-pad {
	z-index: 10;
}

.fullscreen-body {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	max-width: 1500px;
	padding-bottom: 40px;
}

.fullscreen-h {
	font-size: 96px;
	color: var(--bone);
	line-height: 0.98;
	margin-bottom: 28px;
	text-shadow:
		0 6px 0 rgba(0, 0, 0, 0.95),
		0 0 40px rgba(0, 0, 0, 0.9),
		0 0 80px rgba(0, 0, 0, 0.7);
}

.fullscreen-h .accent { color: var(--rust); }

.fullscreen-sub {
	font-size: 32px;
	color: var(--bone);
	max-width: 1300px;
	line-height: 1.4;
	text-shadow: 0 3px 0 rgba(0, 0, 0, 0.85), 0 0 30px rgba(0, 0, 0, 0.85);
}

/* Vignette + grano siguen aplicándose por el ::before/::after de la sección,
   pero atenuamos su contraste para no oscurecer demasiado la imagen */
deck-stage > section[data-slide-type="hero-fullscreen"]::before,
deck-stage > section[data-slide-type="gallery-fullscreen"]::before {
	background:
		radial-gradient(ellipse 95% 75% at 50% 45%, transparent 50%, rgba(0,0,0,0.4) 85%, rgba(0,0,0,0.85) 100%);
}

/* ---------- GALLERY FULLSCREEN (slide 12) ---------- */
.gallery-fullscreen-grid {
	position: absolute;
	inset: 0;
	z-index: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 6px;
	background: var(--ink);
}

.gallery-fs-cell {
	position: relative;
	overflow: hidden;
}

.gallery-fs-img {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	background-color: var(--bg-soft);
	filter: contrast(1.05) saturate(0.95);
}

.gallery-fs-img.missing {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bg-soft);
	border: 1px dashed var(--ochre-dim);
}

.gallery-fs-img.missing span {
	font-family: 'Special Elite', monospace;
	font-size: 20px;
	color: var(--bone-dim);
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.gallery-fs-label {
	position: absolute;
	bottom: 14px;
	left: 14px;
	font-family: 'Special Elite', monospace;
	font-size: 16px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--bone);
	background: rgba(5, 6, 8, 0.7);
	border-left: 3px solid var(--rust);
	padding: 6px 12px;
	z-index: 3;
}

/* Texto sobreimpreso en la slide de galería: arriba a la izquierda, compacto */
.gallery-fs-pad {
	z-index: 10;
}

.gallery-fs-text {
	max-width: 1000px;
	margin-top: 8px;
}

.gallery-fs-h {
	font-size: 64px;
	color: var(--bone);
	line-height: 0.98;
	margin-top: 12px;
	text-shadow:
		0 5px 0 rgba(0, 0, 0, 0.95),
		0 0 30px rgba(0, 0, 0, 0.85);
}

/* En la slide de galería, el footer se sienta sobre fondo oscuro garantizado */
.gallery-fs-pad .slide-footer {
	background: linear-gradient(0deg, rgba(5,6,8,0.85), transparent);
	padding: 24px 0 0;
	margin-left: -120px;
	margin-right: -120px;
	padding-left: 120px;
	padding-right: 120px;
}

/* ---------- IMAGE ONLY (slides de imagen pura, sin texto) ---------- */
.image-only-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	background-color: var(--ink);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

.image-only-bg[data-fit="contain"] {
	background-size: contain;
}

.image-only-missing {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Special Elite', monospace;
	font-size: 24px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--bone-dim);
	background: var(--bg-soft);
}

/* En slides image-only, suprimimos el vignette y el grano para que la imagen
   se vea limpia a pantalla completa. */
deck-stage > section[data-slide-type="image-only"]::before,
deck-stage > section[data-slide-type="image-only"]::after {
	display: none !important;
}

deck-stage > section[data-slide-type="image-only"] {
	background: var(--ink);
}
