:root {
	color-scheme: light dark;
	--black: #090909;
	--light-on-black: #f4f1ea;
	--paper: #f3efe7;
	--ink: #171512;
	--muted: #8e877d;
	--rule-dark: rgba(244, 241, 234, .18);
	--rule-paper: rgba(24, 22, 20, .17);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

html,
body {
	margin: 0;
	width: 100%;
	height: 100%;
	background: var(--black);
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	overflow: hidden;
	font-family: "Source Serif 4", Georgia, serif;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

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

.cdo-stage {
	position: relative;
	display: grid;
	place-items: center;
	width: 100%;
	height: 100dvh;
	min-height: 100%;
	isolation: isolate;
}

.cdo-page {
	position: relative;
	z-index: 1;
	width: 100%;
	min-height: 100dvh;
	padding: max(3rem, env(safe-area-inset-top)) max(1.5rem, env(safe-area-inset-right)) max(3rem, env(safe-area-inset-bottom)) max(1.5rem, env(safe-area-inset-left));
	display: flex;
	flex-direction: column;
	justify-content: center;
}

/* Portada */
.cdo-reader--cover,
.cdo-reader--blackout {
	color: var(--light-on-black);
	background: var(--black);
}

.cdo-reader--cover::before,
.cdo-reader--blackout::before {
	content: "";
	position: fixed;
	inset: 0;
	pointer-events: none;
	background: radial-gradient(circle at 50% 38%, rgba(255, 255, 255, .025), transparent 46%);
}

.cdo-page--cover {
	align-items: center;
	text-align: center;
}

.cdo-cover-mark {
	display: flex;
	gap: .52rem;
	margin-bottom: clamp(3.5rem, 11vh, 6.5rem);
}

.cdo-cover-mark span {
	width: 1px;
	height: clamp(2rem, 5vh, 3.3rem);
	background: #a59679;
	opacity: .48;
}

.cdo-cover-mark span:nth-child(2) { opacity: .16; transform: translateY(.55rem); }
.cdo-cover-mark span:nth-child(3) { opacity: .3; transform: translateY(-.38rem); }

.cdo-cover-title {
	max-width: 11ch;
	margin: 0;
	font-family: "Cormorant Garamond", Garamond, Georgia, serif;
	font-size: clamp(3.3rem, 10vw, 7rem);
	font-weight: 400;
	line-height: .88;
	letter-spacing: -.042em;
}

.cdo-cover-author {
	margin: clamp(3.8rem, 12vh, 7rem) 0 0;
	font-family: Inter, Arial, sans-serif;
	font-size: .68rem;
	font-weight: 500;
	letter-spacing: .3em;
	color: var(--muted);
}

/* Página 2 */
.cdo-page--blackout { align-items: center; }

.cdo-blackout-copy {
	display: flex;
	flex-direction: column;
	width: min(100%, 35rem);
	min-height: 0;
	margin: auto;
	gap: clamp(3rem, 8vh, 5.5rem);
}

.cdo-blackout-main {
	max-width: 32rem;
	margin: 0;
	font-size: clamp(1.25rem, 2vw, 1.62rem);
	font-weight: 400;
	line-height: 1.62;
	letter-spacing: -.012em;
	color: #d8d4cc;
}

.cdo-blackout-main strong {
	display: block;
	margin-bottom: clamp(1.2rem, 3vh, 2rem);
	font-family: "Cormorant Garamond", Garamond, Georgia, serif;
	font-size: clamp(2.5rem, 5vw, 4rem);
	font-weight: 500;
	line-height: 1;
	letter-spacing: -.035em;
	color: var(--light-on-black);
}

.cdo-blackout-ending {
	max-width: 25rem;
	margin: 0 0 0 auto;
	padding-top: 1.4rem;
	border-top: 1px solid var(--rule-dark);
	font-family: "Cormorant Garamond", Garamond, Georgia, serif;
	font-size: clamp(1.7rem, 3vw, 2.35rem);
	font-weight: 500;
	line-height: 1.22;
	letter-spacing: -.02em;
	color: var(--light-on-black);
}

/* Página 3: lectura continua sobre papel cálido */
.cdo-reader--opening {
	color: var(--ink);
	background: var(--paper);
	height: auto;
	min-height: 100%;
	overflow-x: hidden;
	overflow-y: auto;
	touch-action: pan-y pinch-zoom;
}

.cdo-reader--opening .cdo-stage {
	place-items: start center;
	height: auto;
	min-height: 100dvh;
	overflow: visible;
	touch-action: pan-y pinch-zoom;
}

.cdo-page--opening {
	height: auto;
	justify-content: flex-start;
	padding-top: max(4.5rem, 9vh);
	padding-bottom: max(6rem, 11vh);
	touch-action: pan-y pinch-zoom;
}

.cdo-copy {
	width: min(100%, 35rem);
	margin: 0 auto;
	font-size: clamp(1.08rem, 1.38vw, 1.23rem);
	font-weight: 400;
	line-height: 1.68;
}

.cdo-copy p { margin: 0 0 1.25em; }

.cdo-eyebrow {
	margin: 0 0 .9rem !important;
	font-family: Inter, Arial, sans-serif;
	font-size: .63rem;
	font-weight: 500;
	letter-spacing: .25em;
	color: var(--muted);
}

.cdo-title {
	max-width: 14ch;
	margin: 0 0 clamp(2.8rem, 7vh, 4.5rem);
	font-family: "Cormorant Garamond", Garamond, Georgia, serif;
	font-size: clamp(3.1rem, 5.5vw, 4.7rem);
	font-weight: 500;
	line-height: .96;
	letter-spacing: -.038em;
}

.cdo-intro {
	color: #312e2a;
}

.cdo-intro p:nth-child(2) { margin-top: 1.8rem; }

.cdo-intro p:nth-child(n+3) {
	margin: .65rem 0;
	font-style: italic;
	color: #4f4a43;
}

.cdo-intro p:nth-child(3) { margin-top: 2rem; }
.cdo-intro p:nth-child(5) { margin-bottom: 0; }

.cdo-section {
	margin: clamp(3.8rem, 8vh, 5.5rem) 0 .55rem;
	font-family: "Cormorant Garamond", Garamond, Georgia, serif;
	font-size: 1.45rem;
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: .035em;
}

.cdo-scene {
	margin: 0 0 2.5rem !important;
	font-family: Inter, Arial, sans-serif;
	font-size: .86rem;
	font-weight: 400;
	line-height: 1.45;
	letter-spacing: .12em;
	color: var(--muted);
}

.cdo-scene .cdo-header-title,
.cdo-subscene .cdo-header-title {
	display: block;
	font-family: Inter, Arial, sans-serif;
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: .08em;
}

.cdo-scene .cdo-header-support,
.cdo-subscene .cdo-header-support {
	display: block;
	margin-top: .24rem;
	font-weight: 400;
	color: var(--muted);
}

.cdo-section {
	font-family: "Cormorant Garamond", Garamond, Georgia, serif;
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: .02em;
}

.cdo-time {
	display: inline-block;
}

.cdo-clock-colon {
	display: inline-block;
	visibility: visible;
	animation: cdo-clock-colon-blink 1s steps(1, end) infinite;
}

@keyframes cdo-clock-colon-blink {
	0%, 49.999% { visibility: visible; }
	50%, 100% { visibility: hidden; }
}

.cdo-quote {
	max-width: 31rem;
	margin: 0 0 3.4rem !important;
	font-style: italic;
	line-height: 1.62;
	color: #5c564f;
}

.cdo-prose { max-width: 35rem; }

.cdo-prose p:first-child {
	margin: 0 0 1.5rem;
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
}

.cdo-prose p:last-child { margin-bottom: 0; }

/* Selector mínimo de modo de lectura */
.cdo-mode-control {
	position: fixed;
	z-index: 7;
	top: max(.72rem, env(safe-area-inset-top));
	left: 50%;
	width: 0;
	font-family: Inter, Arial, sans-serif;
}

.cdo-mode-trigger {
	position: absolute;
	top: 0;
	left: 0;
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: inherit;
	transform: translateX(-50%);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.cdo-mode-trigger > span {
	display: block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
	opacity: .42;
	transition: opacity 180ms ease, transform 180ms ease;
}

.cdo-mode-trigger:hover > span,
.cdo-mode-trigger:focus-visible > span,
.cdo-mode-trigger[aria-expanded="true"] > span {
	opacity: .85;
	transform: scale(1.15);
}

.cdo-mode-trigger:focus,
.cdo-mode-trigger:focus-visible { outline: none; }

.cdo-mode-menu {
	position: absolute;
	top: 2.25rem;
	left: 0;
	display: flex;
	gap: .15rem;
	padding: .38rem;
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: 999px;
	background: rgba(18, 18, 18, .9);
	box-shadow: 0 .5rem 1.7rem rgba(0, 0, 0, .16);
	backdrop-filter: blur(12px);
	transform: translateX(-50%);
	animation: cdo-menu-in 180ms ease both;
}

.cdo-mode-menu[hidden] { display: none; }

.cdo-mode-menu button {
	padding: .55rem .72rem;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: #aaa49a;
	font: 500 .58rem/1 Inter, Arial, sans-serif;
	letter-spacing: .12em;
	cursor: pointer;
}

.cdo-mode-menu button[aria-pressed="true"] {
	background: rgba(255, 255, 255, .1);
	color: #f4f1ea;
}

@keyframes cdo-menu-in {
	from { opacity: 0; transform: translate(-50%, -.3rem); }
}

/* Navegación visible y zonas táctiles */
.cdo-zone {
	position: fixed;
	z-index: 3;
	top: 0;
	bottom: 0;
	display: flex;
	align-items: center;
	width: 20vw;
	min-width: 4rem;
	color: inherit;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
	touch-action: pan-y pinch-zoom;
}

.cdo-zone--previous {
	left: 0;
	justify-content: flex-start;
	cursor: w-resize;
}

.cdo-zone--next {
	right: 0;
	justify-content: flex-end;
	cursor: e-resize;
}

.cdo-zone > span {
	display: grid;
	place-items: center;
	width: 2.2rem;
	height: 3.6rem;
	margin: 0 clamp(.55rem, 2vw, 1.8rem);
	font-family: Inter, Arial, sans-serif;
	font-size: 2rem;
	font-weight: 400;
	line-height: 1;
	opacity: .48;
	transition: opacity 160ms ease, transform 160ms ease;
}

.cdo-zone:hover > span,
.cdo-zone:focus-visible > span { opacity: .88; }
.cdo-zone--previous:hover > span { transform: translateX(-.14rem); }
.cdo-zone--next:hover > span { transform: translateX(.14rem); }
.cdo-zone.is-disabled { pointer-events: none; }
.cdo-zone.is-disabled > span { opacity: .15; }

.cdo-reader--cover .cdo-zone--next { width: 100vw; }
.cdo-reader--cover .cdo-zone--previous { z-index: 4; }

.cdo-progress {
	position: fixed;
	z-index: 5;
	left: max(1.5rem, env(safe-area-inset-left));
	right: max(1.5rem, env(safe-area-inset-right));
	bottom: max(.8rem, env(safe-area-inset-bottom));
	height: 1px;
	background: var(--rule-dark);
}

.cdo-reader--opening .cdo-progress { background: var(--rule-paper); }

.cdo-progress span {
	display: block;
	width: var(--cdo-progress);
	height: 100%;
	background: rgba(142, 135, 125, .72);
}

.cdo-counter {
	position: fixed;
	z-index: 5;
	right: max(1.5rem, env(safe-area-inset-right));
	top: max(1.15rem, env(safe-area-inset-top));
	margin: 0;
	font: 500 .66rem/1 Inter, Arial, sans-serif;
	letter-spacing: .16em;
	color: var(--muted);
}

.cdo-stage.is-leaving-forward .cdo-page { animation: cdo-out-forward 210ms ease both; }
.cdo-stage.is-entering-forward .cdo-page { animation: cdo-in-forward 240ms ease both; }
.cdo-stage.is-leaving-back .cdo-page { animation: cdo-out-back 210ms ease both; }
.cdo-stage.is-entering-back .cdo-page { animation: cdo-in-back 240ms ease both; }

@keyframes cdo-out-forward { to { opacity: .12; transform: translateX(-1rem); filter: drop-shadow(.5rem 0 .7rem rgba(0, 0, 0, .08)); } }
@keyframes cdo-in-forward { from { opacity: .18; transform: translateX(1rem); filter: drop-shadow(-.5rem 0 .7rem rgba(0, 0, 0, .08)); } }
@keyframes cdo-out-back { to { opacity: .12; transform: translateX(1rem); filter: drop-shadow(-.5rem 0 .7rem rgba(0, 0, 0, .08)); } }
@keyframes cdo-in-back { from { opacity: .18; transform: translateX(-1rem); filter: drop-shadow(.5rem 0 .7rem rgba(0, 0, 0, .08)); } }

/* Preferencias del lector. La portada conserva siempre su identidad negra. */
body[data-reading-mode="light"]:not(.cdo-reader--cover) {
	color: var(--ink);
	background: var(--paper);
}

body[data-reading-mode="light"].cdo-reader--blackout::before { display: none; }
body[data-reading-mode="light"] .cdo-blackout-main { color: #312e2a; }
body[data-reading-mode="light"] .cdo-blackout-main strong,
body[data-reading-mode="light"] .cdo-blackout-ending { color: var(--ink); }
body[data-reading-mode="light"] .cdo-blackout-ending { border-color: var(--rule-paper); }
body[data-reading-mode="light"] .cdo-progress { background: var(--rule-paper); }

body[data-reading-mode="dark"]:not(.cdo-reader--cover) {
	color: var(--light-on-black);
	background: var(--black);
}

body[data-reading-mode="dark"].cdo-reader--opening .cdo-intro,
body[data-reading-mode="dark"].cdo-reader--opening .cdo-prose { color: #e0dcd3; }
body[data-reading-mode="dark"].cdo-reader--opening .cdo-intro p:nth-child(n+3),
body[data-reading-mode="dark"].cdo-reader--opening .cdo-quote { color: #bbb5aa; }
body[data-reading-mode="dark"].cdo-reader--opening .cdo-section { color: var(--light-on-black); }
body[data-reading-mode="dark"].cdo-reader--opening .cdo-scene,
body[data-reading-mode="dark"].cdo-reader--opening .cdo-eyebrow { color: #969086; }
body[data-reading-mode="dark"] .cdo-progress { background: var(--rule-dark); }

body[data-reading-mode="light"] .cdo-mode-menu,
body[data-reading-mode="narrative"].cdo-reader--opening .cdo-mode-menu {
	border-color: rgba(24, 22, 20, .12);
	background: rgba(243, 239, 231, .94);
	box-shadow: 0 .5rem 1.7rem rgba(35, 29, 22, .12);
}

body[data-reading-mode="light"] .cdo-mode-menu button,
body[data-reading-mode="narrative"].cdo-reader--opening .cdo-mode-menu button { color: #6d675f; }

body[data-reading-mode="light"] .cdo-mode-menu button[aria-pressed="true"],
body[data-reading-mode="narrative"].cdo-reader--opening .cdo-mode-menu button[aria-pressed="true"] {
	background: rgba(24, 22, 20, .08);
	color: var(--ink);
}

@media (max-width: 600px), (hover: none) and (pointer: coarse) and (max-width: 900px) {
	.cdo-page {
		padding-left: max(10px, env(safe-area-inset-left));
		padding-right: max(10px, env(safe-area-inset-right));
	}
	.cdo-cover-title { max-width: 10ch; font-size: clamp(3.35rem, 15vw, 4.5rem); }
	.cdo-cover-author { font-size: .84rem; }
	.cdo-reader--blackout .cdo-stage { height: 100dvh; min-height: 100dvh; overflow: hidden; }
	.cdo-reader--blackout {
		height: 100dvh;
		min-height: 100dvh;
		overflow-x: hidden;
		overflow-y: hidden;
	}
	.cdo-page--blackout { height: 100dvh; min-height: 0; padding: 3.5rem 0 2.75rem; overflow: hidden; }
	.cdo-blackout-copy { width: calc(100% - 48px); max-width: none; min-width: 0; margin: auto 24px; gap: clamp(1.75rem, 4vh, 2.5rem); }
	.cdo-blackout-main { max-width: none; font-size: 23px; font-weight: 500; line-height: 1.47; color: var(--light-on-black); }
	.cdo-blackout-main strong { font-size: 35px; }
	.cdo-blackout-ending { width: 100%; max-width: none; font-size: 28px; line-height: 1.2; }
	/* Página narrativa activa: bloque móvil canónico, sin columna editorial heredada. */
	.cdo-zone { width: 23vw; min-width: 4.5rem; }
	.cdo-zone > span { width: 1.35rem; height: 4.8rem; margin-inline: 0; font-size: 2rem; opacity: .58; }
	.cdo-counter { right: max(10px, env(safe-area-inset-right)); font-size: .8rem; }
	.cdo-mode-menu button { font-size: .72rem; }
	body[data-reading-mode="dark"].cdo-reader--opening .cdo-intro,
	body[data-reading-mode="dark"].cdo-reader--opening .cdo-prose,
	body[data-reading-mode="dark"].cdo-reader--opening .cdo-intro p:nth-child(n+3),
	body[data-reading-mode="dark"].cdo-reader--opening .cdo-quote { color: var(--light-on-black); }
	body[data-reading-mode="light"] .cdo-blackout-main { color: var(--ink); }
}

@media (prefers-reduced-motion: reduce) {
	.cdo-stage[class*="is-leaving-"] .cdo-page,
	.cdo-stage[class*="is-entering-"] .cdo-page,
	.cdo-mode-menu { animation: none; }
}

/* Contrato responsive final: únicamente la narración activa en teléfonos. */
@media (max-width: 600px), (hover: none) and (pointer: coarse) and (max-width: 900px) {
	html,
	body,
	body.cdo-reader {
		width: 100%;
		max-width: none;
		min-width: 0;
		box-sizing: border-box;
		overflow-x: hidden;
		-webkit-text-size-adjust: 100%;
		text-size-adjust: 100%;
	}

	body.cdo-reader--cover,
	body.cdo-reader--blackout {
		height: 100dvh;
		min-height: 100dvh;
		overflow: hidden;
	}

	body.cdo-reader--cover .cdo-stage,
	body.cdo-reader--cover .cdo-page--cover,
	body.cdo-reader--blackout .cdo-stage,
	body.cdo-reader--blackout .cdo-page--blackout {
		height: 100dvh;
		min-height: 0;
		overflow: hidden;
	}

	body.cdo-reader--opening {
		overflow-y: auto;
		touch-action: pan-y pinch-zoom;
	}

	body.cdo-reader--opening .cdo-stage {
		display: block;
		width: 100%;
		max-width: none;
		min-width: 0;
		height: auto;
		min-height: 100dvh;
		overflow: visible;
		transform: none;
		touch-action: pan-y pinch-zoom;
	}

	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-page--opening {
		width: 100%;
		max-width: none;
		min-width: 0;
		height: auto;
		min-height: 100dvh;
		padding: max(4.5rem, env(safe-area-inset-top)) 0 max(5.5rem, env(safe-area-inset-bottom));
		box-sizing: border-box;
		justify-content: flex-start;
	}

	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-copy {
		width: calc(100% - 48px);
		max-width: none;
		min-width: 0;
		margin-left: 24px;
		margin-right: 24px;
		box-sizing: border-box;
		font-size: 22px;
		font-weight: 500;
		line-height: 1.55;
		color: var(--ink);
		transform: none;
		zoom: 1;
	}

	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-intro,
	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-prose,
	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-quote {
		width: 100%;
		max-width: none;
		min-width: 0;
		box-sizing: border-box;
	}

	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-intro p,
	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-prose p,
	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-quote {
		font-size: 22px;
		font-weight: 500;
		line-height: 1.55;
		color: var(--ink);
	}

	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-intro p:nth-child(n+3) { margin-left: 0; }

	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-prose p:first-child {
		font-size: 22px;
		font-weight: 500;
		line-height: 1.55;
	}

	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-title { font-size: 35px; }
	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-section { font-size: 21px; }
	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-eyebrow { font-size: 13px; }
	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-scene { font-size: 15px; }

	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-prose p:has(+ .cdo-dialogue) {
		margin-bottom: .18em;
	}

	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-dialogue {
		margin-top: 0;
	}

	body.cdo-reader--opening [data-cdo-stage][data-screen="4"] .cdo-page--opening {
		width: 100%;
		max-width: none;
		min-width: 0;
		height: auto;
		min-height: 100dvh;
		padding: max(4.5rem, env(safe-area-inset-top)) 0 max(5.5rem, env(safe-area-inset-bottom));
		box-sizing: border-box;
		justify-content: flex-start;
	}

	body.cdo-reader--opening [data-cdo-stage][data-screen="4"] .cdo-copy {
		width: calc(100% - 48px);
		max-width: none;
		min-width: 0;
		margin-left: 24px;
		margin-right: 24px;
		box-sizing: border-box;
		font-size: 22px;
		font-weight: 500;
		line-height: 1.55;
		color: var(--ink);
	}

	body.cdo-reader--opening [data-cdo-stage][data-screen="4"] .cdo-prose {
		width: 100%;
		max-width: none;
		min-width: 0;
	}

	body.cdo-reader--opening [data-cdo-stage][data-screen="4"] .cdo-prose p {
		font-size: 22px;
		font-weight: 500;
		line-height: 1.55;
		color: var(--ink);
	}

	body.cdo-reader--opening [data-cdo-stage][data-screen="4"] .cdo-scene { font-size: 15px; }

	body.cdo-reader--opening [data-cdo-stage][data-screen="4"] .cdo-prose p:has(+ .cdo-dialogue) {
		margin-bottom: .18em;
	}

	body.cdo-reader--opening [data-cdo-stage][data-screen="4"] .cdo-dialogue {
		margin-top: 0;
	}

	body.cdo-reader--opening [data-cdo-stage][data-screen="5"] .cdo-page--opening {
		width: 100%; max-width: none; min-width: 0; height: auto; min-height: 100dvh;
		padding: max(4.5rem, env(safe-area-inset-top)) 0 max(5.5rem, env(safe-area-inset-bottom));
		box-sizing: border-box; justify-content: flex-start;
	}

	body.cdo-reader--opening [data-cdo-stage][data-screen="5"] .cdo-copy {
		width: calc(100% - 48px); max-width: none; min-width: 0;
		margin-left: 24px; margin-right: 24px; box-sizing: border-box;
		font-size: 22px; font-weight: 500; line-height: 1.55; color: var(--ink);
	}

	body.cdo-reader--opening [data-cdo-stage][data-screen="5"] .cdo-prose { width: 100%; max-width: none; min-width: 0; }
	body.cdo-reader--opening [data-cdo-stage][data-screen="5"] .cdo-prose p {
		font-size: 22px; font-weight: 500; line-height: 1.55; color: var(--ink);
	}
	body.cdo-reader--opening [data-cdo-stage][data-screen="5"] .cdo-scene { font-size: 15px; }
	body.cdo-reader--opening [data-cdo-stage][data-screen="5"] .cdo-prose p:has(+ .cdo-dialogue) { margin-bottom: .18em; }
	body.cdo-reader--opening [data-cdo-stage][data-screen="5"] .cdo-dialogue { margin-top: 0; }
	body.cdo-reader--opening [data-cdo-stage][data-screen="6"] .cdo-page--opening {
		width: 100%; max-width: none; min-width: 0; height: auto; min-height: 100dvh;
		padding: max(4.5rem, env(safe-area-inset-top)) 0 max(5.5rem, env(safe-area-inset-bottom));
		box-sizing: border-box; justify-content: flex-start;
	}
	body.cdo-reader--opening [data-cdo-stage][data-screen="6"] .cdo-copy {
		width: calc(100% - 48px); max-width: none; min-width: 0; margin: 0 24px;
		box-sizing: border-box; font-size: 22px; font-weight: 500; line-height: 1.55; color: var(--ink);
	}
	body.cdo-reader--opening [data-cdo-stage][data-screen="6"] .cdo-prose { width: 100%; max-width: none; min-width: 0; }
	body.cdo-reader--opening [data-cdo-stage][data-screen="6"] .cdo-prose p { font-size: 22px; font-weight: 500; line-height: 1.55; color: var(--ink); }
	body.cdo-reader--opening [data-cdo-stage][data-screen="6"] .cdo-scene { font-size: 15px; }
	body.cdo-reader--opening [data-cdo-stage][data-screen="6"] .cdo-prose p:has(+ .cdo-dialogue) { margin-bottom: .18em; }
	body.cdo-reader--opening [data-cdo-stage][data-screen="6"] .cdo-dialogue { margin-top: 0; }
	body.cdo-reader--opening [data-cdo-stage][data-screen="7"] .cdo-page--opening {
		width: 100%; max-width: none; min-width: 0; height: auto; min-height: 100dvh;
		padding: max(4.5rem, env(safe-area-inset-top)) 0 max(5.5rem, env(safe-area-inset-bottom));
		box-sizing: border-box; justify-content: flex-start;
	}
	body.cdo-reader--opening [data-cdo-stage][data-screen="7"] .cdo-copy {
		width: calc(100% - 48px); max-width: none; min-width: 0; margin: 0 24px;
		box-sizing: border-box; font-size: 22px; font-weight: 500; line-height: 1.55;
	}
	body.cdo-reader--opening [data-cdo-stage][data-screen="7"] .cdo-prose { width: 100%; max-width: none; min-width: 0; }
	body.cdo-reader--opening [data-cdo-stage][data-screen="7"] .cdo-prose p { font-size: 22px; font-weight: 500; line-height: 1.55; }
	body.cdo-reader--opening [data-cdo-stage][data-screen="7"] .cdo-scene { font-size: 15px; }
	body.cdo-reader--opening [data-cdo-stage][data-screen="7"] .cdo-prose p:has(+ .cdo-dialogue) { margin-bottom: .18em; }
	body.cdo-reader--opening [data-cdo-stage][data-screen="7"] .cdo-dialogue { margin-top: 0; }
}

.cdo-emphasis { font-weight: 500; }

body.cdo-screen--7:not([data-reading-mode]),
body.cdo-screen--7[data-reading-mode="narrative"] { background: #090909; color: #f4f1ea; }
body.cdo-screen--7:not([data-reading-mode]) .cdo-page--opening,
body.cdo-screen--7[data-reading-mode="narrative"] .cdo-page--opening { background: #090909; }
body.cdo-screen--7:not([data-reading-mode]) .cdo-copy,
body.cdo-screen--7:not([data-reading-mode]) .cdo-prose,
body.cdo-screen--7:not([data-reading-mode]) .cdo-prose p,
body.cdo-screen--7:not([data-reading-mode]) .cdo-scene,
body.cdo-screen--7[data-reading-mode="narrative"] .cdo-copy,
body.cdo-screen--7[data-reading-mode="narrative"] .cdo-prose,
body.cdo-screen--7[data-reading-mode="narrative"] .cdo-prose p,
body.cdo-screen--7[data-reading-mode="narrative"] .cdo-scene { color: #f4f1ea; }

.cdo-subscene {
	font-family: "Inter", sans-serif;
	font-size: .86rem;
	font-weight: 400;
	letter-spacing: .1em;
	text-transform: uppercase;
	margin-top: 5.4rem;
}

/* Un sistema editorial único para todos los encabezados temporales.
 * El margen exterior propio de cada unidad se conserva sin cambios. */
.cdo-unit-header {
	font-family: Inter, Arial, sans-serif;
	font-size: .86rem;
	font-weight: 400;
	line-height: 1.45;
	letter-spacing: .12em;
	text-align: left;
	text-transform: none;
	color: var(--muted);
}

.cdo-unit-header .cdo-header-title {
	display: block;
	font-family: Inter, Arial, sans-serif;
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: .08em;
	color: inherit;
}

.cdo-unit-header .cdo-header-support {
	display: block;
	margin-top: .24rem;
	font-weight: 400;
	color: inherit;
}

.cdo-centered {
	max-width: 28rem;
	margin: 2.5rem auto;
	text-align: center;
	font-style: italic;
	white-space: pre-line;
}

/* En la unidad larga, avanzar solo se revela después de completar la lectura. */
[data-cdo-stage][data-screen="3"] .cdo-zone--next {
	opacity: 0;
	pointer-events: none;
	transition: opacity 220ms ease;
}

[data-cdo-stage][data-screen="4"] .cdo-zone--next {
	opacity: 0;
	pointer-events: none;
	transition: opacity 220ms ease;
}

[data-cdo-stage][data-screen="4"].cdo-can-advance a.cdo-zone--next {
	opacity: 1;
	pointer-events: auto;
}

[data-cdo-stage][data-screen="5"] .cdo-zone--next {
	opacity: 0;
	pointer-events: none;
}

[data-cdo-stage][data-screen="5"].cdo-can-advance a.cdo-zone--next {
	opacity: 1;
	pointer-events: auto;
}

[data-cdo-stage][data-screen="6"] .cdo-zone--next {
	opacity: 0;
	pointer-events: none;
}

[data-cdo-stage][data-screen="6"].cdo-can-advance a.cdo-zone--next { opacity: 1; pointer-events: auto; }

[data-cdo-stage][data-screen="7"] .cdo-zone--next { opacity: 0; pointer-events: none; }

[data-cdo-stage][data-screen="7"].cdo-final-interference {
	animation: cdo-final-screen-interference 900ms steps(1, end) both;
}

[data-cdo-stage][data-screen="7"].cdo-final-interference::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 2147483646;
	pointer-events: none;
	background: #090909;
	animation: cdo-final-overlay-interference 900ms steps(1, end) both;
}

@keyframes cdo-final-overlay-interference {
	0%, 14%, 32%, 52%, 72%, 100% { opacity: 0; }
	7%, 24%, 43%, 63%, 84% { opacity: .86; }
	10%, 28%, 47%, 67%, 90% { opacity: .28; }
}

@keyframes cdo-final-screen-interference {
	0%, 100% { opacity: 1; filter: none; }
	9% { opacity: .08; filter: brightness(.18) contrast(1.35); }
	18% { opacity: .82; filter: brightness(.9) contrast(1.08); }
	27% { opacity: .02; filter: brightness(.08) contrast(1.5); }
	39% { opacity: .68; filter: brightness(.72) contrast(1.16); }
	47% { opacity: .12; filter: brightness(.22) contrast(1.42); }
	61% { opacity: .92; filter: brightness(.96) contrast(1.04); }
	69% { opacity: .04; filter: brightness(.1) contrast(1.48); }
	82% { opacity: .74; filter: brightness(.78) contrast(1.12); }
	90% { opacity: .22; filter: brightness(.32) contrast(1.3); }
}

[data-cdo-stage][data-screen="3"].cdo-can-advance .cdo-zone--next {
	opacity: 1;
	pointer-events: auto;
}

[data-cdo-stage][data-screen="7"].cdo-can-advance .cdo-final-arrow {
	opacity: 1;
	pointer-events: auto;
}
[data-cdo-stage][data-screen="7"].cdo-can-advance .cdo-final-arrow > span {
	animation: cdo-final-arrow-flicker 1.45s steps(3, end) infinite;
}
@keyframes cdo-final-arrow-flicker {
	0%, 100% { opacity: .72; transform: translateX(0); }
	32% { opacity: .26; transform: translateX(1px); }
	38% { opacity: .78; transform: translateX(-1px); }
	45% { opacity: .42; transform: translateX(2px); }
	70% { opacity: .68; transform: translateX(0); }
}
.is-signal-cut { animation: cdo-signal-cut 180ms steps(2, end) both; }
@keyframes cdo-signal-cut { 0% { opacity: 1; filter: none; } 38% { opacity: .18; filter: contrast(1.35); } 58% { opacity: .72; transform: translateX(1px); } 100% { opacity: 0; } }

/* Pantalla 08: espacio posterior a la obra. */
.cdo-reader--afterlife {
	height: auto;
	min-height: 100%;
	overflow-x: hidden;
	overflow-y: auto;
	touch-action: pan-y pinch-zoom;
	background: #090909;
	color: #f4f1ea;
}
.cdo-reader--afterlife .cdo-stage { display: block; height: auto; min-height: 100dvh; }
.cdo-page--afterlife { display: block; min-height: 100dvh; padding: 0; background: #090909; }
.cdo-afterlife { width: min(100% - 48px, 54rem); margin: 0 auto; padding: max(4.75rem, 10vh) 0 12rem; }
.cdo-afterlife-intro { display: flex; flex-direction: column; justify-content: flex-start; }
.cdo-afterlife-intro h1 {
	position: relative; width: fit-content; margin: 0 0 clamp(2rem, 5vh, 3.5rem);
	font: 500 clamp(2.8rem, 9vw, 5.8rem)/.95 "Cormorant Garamond", Georgia, serif;
	letter-spacing: .08em;
	animation: cdo-title-signal 5.5s steps(2, end) infinite;
}
.cdo-afterlife-intro h1::after {
	content: attr(data-text); position: absolute; inset: 0; color: rgba(244,241,234,.26);
	clip-path: inset(48% 0 42% 0); transform: translateX(2px); pointer-events: none;
}
@keyframes cdo-title-signal { 0%, 92%, 100% { opacity: 1; text-shadow: none; } 93% { opacity: .72; text-shadow: 2px 0 rgba(244,241,234,.24); } 94% { opacity: .94; transform: translateX(-1px); } 95% { opacity: .78; transform: translateX(1px); } 96% { opacity: 1; transform: none; } }
.cdo-afterlife-intro p { max-width: 32rem; margin: 0; font-size: clamp(1.35rem, 3vw, 1.75rem); line-height: 1.55; }
.cdo-message-form { max-width: 36rem; margin: 1rem 0 5rem; }
.cdo-message-field {
	position: relative; border: 1px solid rgba(244,241,234,.2); border-radius: .35rem;
	background: rgba(244,241,234,.025); transition: border-color 180ms ease, background 180ms ease;
}
.cdo-message-field:focus-within { border-color: rgba(244,241,234,.48); background: rgba(244,241,234,.04); }
.cdo-message-field textarea {
	display: block; width: 100%; min-height: 10rem; padding: 1rem 3.5rem 1.25rem .15rem;
	resize: vertical; border: 0; outline: 0; background: transparent; color: inherit;
	font: 400 1.35rem/1.55 "Source Serif 4", Georgia, serif;
}
.cdo-message-field textarea:focus { box-shadow: none; }
.cdo-message-field button {
	position: absolute; right: 0; bottom: .75rem; width: 46px; height: 46px; border: 0; border-radius: 50%;
	background: rgba(244,241,234,.09); color: #f4f1ea; font-size: 1.1rem; cursor: pointer;
}
.cdo-message-field button:disabled { opacity: .3; }
.cdo-anonymous-note, .cdo-form-status { font: 400 .72rem/1.4 Inter, sans-serif; color: rgba(244,241,234,.52); }
.cdo-form-status { min-height: 1.3em; }
.cdo-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; }
.cdo-message-wall { columns: 2 18rem; column-gap: clamp(.7rem, 2.4vw, 1.35rem); padding-bottom: 18vh; }
.cdo-wall-message {
	display: inline-block; width: 94%; break-inside: avoid; margin: 0 0 1.15rem; padding: 1.25rem 1.2rem;
	border: 1px solid rgba(244,241,234,.12); border-radius: .25rem; background: rgba(244,241,234,.035);
	white-space: pre-wrap; font-size: clamp(1.15rem, 2.4vw, 1.42rem); line-height: 1.5; color: rgba(244,241,234,.82);
}
.cdo-wall-message:nth-child(6n+1) { width: 88%; margin-left: 2%; }
.cdo-wall-message:nth-child(6n+2) { width: 96%; margin-left: 4%; transform: translateY(.55rem); }
.cdo-wall-message:nth-child(6n+3) { width: 82%; margin-left: 14%; }
.cdo-wall-message:nth-child(6n+4) { width: 91%; margin-left: 0; transform: translateY(.2rem); }
.cdo-wall-message:nth-child(6n+5) { width: 86%; margin-left: 9%; }
.cdo-wall-message:nth-child(6n) { width: 97%; margin-left: 1%; }
.cdo-wall-message.is-own { color: #f4f1ea; border-color: rgba(244,241,234,.34); background: rgba(244,241,234,.07); }

.cdo-journey-drawer {
	position: fixed; z-index: 30; left: 50%; bottom: max(10px, env(safe-area-inset-bottom));
	width: min(calc(100% - 24px), 42rem); transform: translateX(-50%); text-align: center; pointer-events: none;
}
.cdo-journey-tab {
	pointer-events: auto; min-width: 11rem; min-height: 42px; padding: .7rem 1.25rem;
	border: 1px solid rgba(244,241,234,.12); border-radius: 2rem; background: rgba(9,9,9,.78); backdrop-filter: blur(12px);
	color: rgba(244,241,234,.48); font: 500 .66rem/1 Inter, sans-serif; letter-spacing: .18em; cursor: pointer;
}
.cdo-journey-drawer.is-open .cdo-journey-tab { color: rgba(244,241,234,.86); background: #111; }
.cdo-journey-panel {
	pointer-events: auto; max-height: min(72dvh, 42rem); overflow-y: auto; margin: 0 0 .6rem; padding: 1.4rem;
	border: 1px solid rgba(244,241,234,.13); border-radius: 1.25rem; background: rgba(9,9,9,.97); box-shadow: 0 1rem 4rem rgba(0,0,0,.45);
}
.cdo-journey-reveal { padding: clamp(.5rem, 2vh, 1.2rem) .4rem .35rem; text-align: center; }
.cdo-journey-reveal h2 {
	margin: 0; color: #f4f1ea; font: 500 clamp(2rem, 6vw, 3.6rem)/.9 "Cormorant Garamond", Georgia, serif;
	letter-spacing: .035em;
}
.cdo-journey-origin {
	max-width: 23rem; margin: clamp(2rem, 6vh, 3.5rem) auto 0; color: rgba(244,241,234,.62);
	font: 400 clamp(.82rem, 2vw, 1rem)/1.55 Inter, sans-serif; letter-spacing: .035em;
}
.cdo-journey-invitation {
	margin: clamp(2.6rem, 7vh, 4.5rem) auto 1.25rem; color: rgba(244,241,234,.9);
	font: 400 clamp(1.15rem, 3vw, 1.42rem)/1.45 "Source Serif 4", Georgia, serif;
}
.cdo-journey-want {
	display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: .75rem 1.5rem; border: 0; border-bottom: 1px solid rgba(244,241,234,.42);
	background: transparent; color: #f4f1ea; font: 500 .68rem/1 Inter, sans-serif; letter-spacing: .18em; cursor: pointer;
	text-decoration: none;
}

body.cdo-screen--8[data-reading-mode="light"], body.cdo-screen--8[data-reading-mode="light"] .cdo-page--afterlife { background: #f3efe7; color: #171512; }
body.cdo-screen--8[data-reading-mode="light"] .cdo-journey-tab,
body.cdo-screen--8[data-reading-mode="light"] .cdo-journey-panel { background: rgba(243,239,231,.97); color: #171512; border-color: rgba(23,21,18,.18); }
body.cdo-screen--8[data-reading-mode="light"] .cdo-journey-origin { color: rgba(23,21,18,.62); }
body.cdo-screen--8[data-reading-mode="light"] .cdo-afterlife-intro,
body.cdo-screen--8[data-reading-mode="light"] .cdo-wall-message,
body.cdo-screen--8[data-reading-mode="light"] .cdo-message-field textarea,
body.cdo-screen--8[data-reading-mode="light"] .cdo-journey-reveal h2,
body.cdo-screen--8[data-reading-mode="light"] .cdo-journey-invitation,
body.cdo-screen--8[data-reading-mode="light"] .cdo-journey-want,
body.cdo-screen--8[data-reading-mode="light"] .cdo-message-field { color: #171512; }
body.cdo-screen--8[data-reading-mode="light"] .cdo-message-field { border-color: rgba(23,21,18,.3); }

@media (max-width: 600px) {
	.cdo-afterlife { width: calc(100% - 32px); padding-top: max(4.25rem, 8vh); }
	.cdo-afterlife-intro h1 { font-size: 3.15rem; margin-bottom: 2rem; }
	.cdo-afterlife-intro p, .cdo-wall-message { font-size: 1.3rem; }
	.cdo-message-form { margin-top: .65rem; margin-bottom: 4rem; }
	.cdo-message-field textarea { min-height: 8.5rem; font-size: 1.25rem; }
	.cdo-message-wall { columns: 2; column-gap: .7rem; }
	.cdo-wall-message { margin-bottom: .7rem; padding: 1rem .85rem; font-size: 1.04rem; }
	.cdo-journey-reveal h2 { font-size: 2.2rem; }
	.cdo-journey-origin { margin-top: 2.25rem; }
}

/* Jerarquía editorial de aperturas 03–07: título, referencia y cuerpo. */
@media (max-width: 600px) {
	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-title {
		font-size: 35px;
		font-weight: 600;
		line-height: 1;
	}
	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-section {
		font-family: "Cormorant Garamond", Garamond, Georgia, serif;
		font-size: 30px;
		font-weight: 700;
		line-height: 1.05;
		letter-spacing: .02em;
	}
	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-scene,
	body.cdo-reader--opening [data-cdo-stage][data-screen="4"] .cdo-scene,
	body.cdo-reader--opening [data-cdo-stage][data-screen="5"] .cdo-scene,
	body.cdo-reader--opening [data-cdo-stage][data-screen="6"] .cdo-scene,
	body.cdo-reader--opening [data-cdo-stage][data-screen="7"] .cdo-scene {
		font-size: 17px;
		font-weight: 400;
		line-height: 1.45;
	}
	body.cdo-reader--opening [data-cdo-stage] .cdo-scene .cdo-header-title,
	body.cdo-reader--opening [data-cdo-stage] .cdo-subscene .cdo-header-title {
		font-family: "Cormorant Garamond", Garamond, Georgia, serif;
		font-size: 30px;
		font-weight: 700;
		line-height: 1.05;
		letter-spacing: .02em;
	}
	body.cdo-reader--opening [data-cdo-stage][data-screen="5"] .cdo-prose p.cdo-subscene,
	body.cdo-reader--opening [data-cdo-stage][data-screen="6"] .cdo-prose p.cdo-subscene {
		margin-top: 5.8rem;
		font-size: 17px;
		font-weight: 400;
		line-height: 1.45;
	}
	body.cdo-reader--opening [data-cdo-stage][data-screen="3"] .cdo-prose p,
	body.cdo-reader--opening [data-cdo-stage][data-screen="4"] .cdo-prose p,
	body.cdo-reader--opening [data-cdo-stage][data-screen="5"] .cdo-prose p,
	body.cdo-reader--opening [data-cdo-stage][data-screen="6"] .cdo-prose p,
	body.cdo-reader--opening [data-cdo-stage][data-screen="7"] .cdo-prose p {
		font-size: 22px;
		font-weight: 500;
		line-height: 1.55;
	}
	body.cdo-reader--opening [data-cdo-stage] .cdo-prose p.cdo-subscene {
		font-size: 17px;
		font-weight: 400;
	}
	body.cdo-reader--opening [data-cdo-stage] .cdo-unit-header,
	body.cdo-screen--7:not([data-reading-mode]) [data-cdo-stage] .cdo-unit-header,
	body.cdo-screen--7[data-reading-mode="narrative"] [data-cdo-stage] .cdo-unit-header {
		color: #8e877d !important;
	}

	body.cdo-screen--7:not([data-reading-mode]) [data-cdo-stage] .cdo-unit-header .cdo-header-title,
	body.cdo-screen--7:not([data-reading-mode]) [data-cdo-stage] .cdo-unit-header .cdo-header-support,
	body.cdo-screen--7[data-reading-mode="narrative"] [data-cdo-stage] .cdo-unit-header .cdo-header-title,
	body.cdo-screen--7[data-reading-mode="narrative"] [data-cdo-stage] .cdo-unit-header .cdo-header-support {
		color: #8e877d !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cdo-clock-colon, [data-cdo-stage][data-screen="7"].cdo-can-advance .cdo-final-arrow > span { animation: none; }
	[data-cdo-stage][data-screen="7"].cdo-final-interference,
	[data-cdo-stage][data-screen="7"].cdo-final-interference::after { animation-duration: 900ms; }
	.is-signal-cut { animation-duration: 1ms; }
}
