/* ==========================================================================
   Lumière des Nations Magazine — 7e édition · page v2 (editorial minimal)
   CONTENT → Elementor V4 widgets  |  STYLE → this file  |  MOTION → project-v2.js
   Hooks: Elementor global classes ldn2-* (rendered with their label).
   ========================================================================== */

/* Neutralise V4 atomic defaults on this page. */
body.ldn2-page .e-div-block-base { display: block; min-width: 0; padding: 0; gap: 0; }
body.ldn2-page .e-heading-base,
body.ldn2-page .e-paragraph-base { display: block; margin: 0; cursor: auto; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; }
body.ldn2-page .e-image-base { display: block; max-width: 100%; height: auto; }
body.ldn2-page .e-button-base { display: inline-flex; padding: 0; border: 0; border-radius: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
body.ldn2-page h1 em, body.ldn2-page h2 em, body.ldn2-page h3 em { font-style: normal; }
body.ldn2-page .ldn2-scene__text { display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); }
body.ldn2-page .ldn2-contact__col p span { display: block; font-family: var(--mono); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); margin-top: 0.9rem; }
body.ldn2-page .ldn2-footer__col .ldn2-footer-link { display: inline-flex; min-height: 2.5rem; align-items: center; justify-self: start; font-size: 0.9375rem; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 calc(100% - 0.55rem) / 0 1px no-repeat; transition: background-size 0.4s var(--ease); }
body.ldn2-page .ldn2-footer__col .ldn2-footer-link:hover { background-size: 100% 1px; }
body.ldn2-page .ldn2-footer__col > p:not(.ldn2-kicker) { display: flex; min-height: 2.5rem; align-items: center; font-size: 0.9375rem; }
body.ldn2-page .ldn2-bar > p { margin: 0; }
/* Buttons without a URL render as <button>: hidden on the live page, visible in the editor. */
body.ldn2-page:not(.elementor-editor-active) button.ldn2-btn { display: none; }

:root  {
	--ink: #362020;
	--ink-deep: #241514;
	--paper: #fbf5ec;
	--cream: #f5e5cd;
	--orange: #e8672a;
	--muted: #6e5a52;
	--display: "Bricolage Grotesque", "Arial Narrow", sans-serif;
	--text: "Inter", Arial, sans-serif;
	--serif: "Source Serif 4", Georgia, serif;
	--mono: "IBM Plex Mono", "Courier New", monospace;
	--gutter: clamp(1.25rem, 5vw, 6rem);
	--max: 75.5rem;
	--ease: cubic-bezier(0.2, 0, 0, 1);
}

body.ldn2-page *, body.ldn2-page *::before, body.ldn2-page *::after { box-sizing: border-box; }
html, body.ldn2-page { margin: 0; }
body.ldn2-page {
	background: var(--paper);
	color: var(--ink);
	font-family: var(--text);
	font-size: 1.0625rem;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
body.ldn2-page img { display: block; max-width: 100%; height: auto; }
body.ldn2-page a { color: inherit; }
body.ldn2-page :focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }

body.ldn2-page .ldn2-wrap { width: min(100% - 2 * var(--gutter), var(--max)); margin-inline: auto; }
:root  { --edge: max(var(--gutter), calc((100% - var(--max)) / 2)); }
@media (min-width: 1024px) {
	:root  { --edge: max(5%, calc((100% - var(--max)) / 2)); }
	body.ldn2-page .ldn2-wrap { width: min(90%, var(--max)); }
}

/* Eyebrow: small caps + the single orange square, the only accent. */
body.ldn2-page .ldn2-kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	margin: 0;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
body.ldn2-page .ldn2-kicker::before { content: ""; width: 0.5rem; height: 0.5rem; background: var(--orange); }

body.ldn2-page .ldn2-bar {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: 0.75rem;
	margin-bottom: clamp(1.75rem, 3.5vw, 2.75rem);
	border-bottom: 1px solid rgba(54, 32, 32, 0.35);
	font-family: var(--mono);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
body.ldn2-page .ldn2-bar > :first-child::before { content: ""; display: inline-block; width: 0.45rem; height: 0.45rem; margin-right: 0.6rem; background: var(--orange); vertical-align: 0.05em; }
body.ldn2-page .ldn2-bar b { font-weight: 500; opacity: 0.55; margin-right: 0.5rem; }
body.ldn2-page .ldn2-archive .ldn2-bar, body.ldn2-page .ldn2-launch .ldn2-bar { border-bottom-color: rgba(251, 245, 236, 0.3); }

body.ldn2-page .ldn2-display {
	margin: 0;
	font-family: var(--display);
	font-weight: 800;
	font-size: clamp(3rem, 1.2rem + 7.4vw, 8.25rem);
	line-height: 0.92;
	letter-spacing: -0.035em;
	font-variation-settings: "opsz" 96;
}
body.ldn2-page .ldn2-display em, body.ldn2-page .ldn2-h2 em, body.ldn2-page .ldn2-footer__word em { color: var(--orange); }
/* top: 0 cancels Hello's reset.css (sup { top: -0.5em }); the lift comes from the transform only. */
body.ldn2-page sup { top: 0; display: inline-block; margin-left: 0.02em; font-size: 0.42em; line-height: 1; vertical-align: baseline; transform: translateY(-1.05em); letter-spacing: 0; }
body.ldn2-page .ldn2-kicker sup { margin-left: -0.12em; margin-right: 0.1em; font-size: 0.7em; transform: translateY(-0.45em); }

/* ---------- Loader ---------- */
body.ldn2-page .ldn2-loader {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: none;
	flex-direction: column;
	justify-content: space-between;
	padding: var(--gutter);
	background: var(--ink-deep);
	color: var(--paper);
}
html.ldn2-js body.ldn2-page .ldn2-loader { display: flex; }
body.ldn2-page .ldn2-loader__top, body.ldn2-page .ldn2-loader__bottom { display: flex; justify-content: space-between; align-items: flex-end; }
body.ldn2-page .ldn2-loader__label { font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; opacity: 0.7; }
body.ldn2-page .ldn2-loader__sun { width: clamp(5rem, 12vw, 8rem); fill: var(--paper); align-self: center; overflow: visible; }
body.ldn2-page .ldn2-loader__count {
	font-family: var(--display);
	font-weight: 800;
	font-size: clamp(4rem, 14vw, 12rem);
	line-height: 0.8;
	letter-spacing: -0.04em;
	font-variant-numeric: tabular-nums;
}
body.ldn2-page .ldn2-loader__count span { color: var(--orange); }

/* ---------- Top bar: marquee + header ---------- */
body.ldn2-page .ldn2-topbar {
	position: fixed;
	z-index: 50;
	top: 0;
	left: 0;
	right: 0;
	pointer-events: none;
}
body.ldn2-page .ldn2-topbar > * { pointer-events: auto; }

/* Infinite marquee: the only orange surface of the page, reserved for the call to action. */
body.ldn2-page .ldn2-marquee {
	display: block;
	overflow: hidden;
	background: var(--orange);
	color: var(--ink-deep);
	text-decoration: none;
	white-space: nowrap;
}
body.ldn2-page .ldn2-marquee__track { display: inline-flex; will-change: transform; }
body.ldn2-page .ldn2-marquee__group { display: inline-flex; align-items: center; flex: none; }
body.ldn2-page .ldn2-marquee__item {
	display: inline-block;
	padding: 0.55rem 1.1rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
body.ldn2-page .ldn2-marquee__item::after { content: ""; display: inline-block; vertical-align: middle; width: 0.35rem; height: 0.35rem; margin-left: 2.2rem; background: var(--ink-deep); border-radius: 50%; }
body.ldn2-page .ldn2-marquee__item strong { font-weight: 700; text-decoration: underline; text-underline-offset: 0.25em; }
html:not(.ldn2-js) body.ldn2-page .ldn2-marquee__group[aria-hidden] { display: none; }
body.ldn2-page .ldn2-marquee__item sup { margin-left: 0.05em; margin-right: 0.05em; font-size: 0.72em; text-transform: lowercase; transform: translateY(-0.4em); }

body.ldn2-page .ldn2-site-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1.5rem;
	padding: 1.1rem var(--gutter);
	color: var(--paper);
	background: rgba(36, 21, 20, 0.55);
	-webkit-backdrop-filter: blur(16px) saturate(140%);
	backdrop-filter: blur(16px) saturate(140%);
	border-bottom: 1px solid rgba(251, 245, 236, 0.12);
	transition: color 0.5s var(--ease), background-color 0.5s var(--ease), border-color 0.5s var(--ease);
}
body.ldn2-page .ldn2-site-header.ldn2-is-light {
	color: var(--ink);
	background: rgba(251, 245, 236, 0.7);
	border-bottom-color: rgba(54, 32, 32, 0.12);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	body.ldn2-page .ldn2-site-header { background: rgba(36, 21, 20, 0.92); }
	body.ldn2-page .ldn2-site-header.ldn2-is-light { background: rgba(251, 245, 236, 0.95); }
}
body.ldn2-page .ldn2-brand {
	font-family: var(--display);
	font-weight: 800;
	font-size: clamp(1.25rem, 1rem + 0.8vw, 1.75rem);
	line-height: 1;
	letter-spacing: -0.03em;
	text-decoration: none;
	font-variation-settings: "opsz" 48;
}
body.ldn2-page .ldn2-contact-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	min-height: 2.75rem;
	padding: 0.7rem 1.25rem;
	border: 1.5px solid currentColor;
	border-radius: 999px;
	color: inherit;
	font: 600 0.8125rem/1 var(--text);
	letter-spacing: 0.02em;
	text-decoration: none;
	transition: background-color 0.3s var(--ease), color 0.3s var(--ease), border-color 0.3s var(--ease);
}
body.ldn2-page .ldn2-contact-btn::after { content: "→"; transition: transform 0.3s var(--ease); }
body.ldn2-page .ldn2-contact-btn:hover { background: var(--orange); border-color: var(--orange); color: var(--ink-deep); }
body.ldn2-page .ldn2-contact-btn:hover::after { transform: translateX(4px); }

/* ---------- Opening (pinned, 3 scenes) ---------- */
body.ldn2-page .ldn2-opening { position: relative; background: var(--ink-deep); color: var(--paper); }
body.ldn2-page .ldn2-opening__stage { position: relative; min-height: 100svh; overflow: hidden; }
body.ldn2-page .ldn2-opening__bg { position: absolute; inset: 0; }
body.ldn2-page .ldn2-opening__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 100% 60%; transform: scaleX(-1); }
body.ldn2-page .ldn2-opening__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(36, 21, 20, 0.7) 0%, rgba(36, 21, 20, 0.35) 45%, rgba(36, 21, 20, 0.85) 100%),
		linear-gradient(90deg, rgba(36, 21, 20, 0.75) 0%, rgba(36, 21, 20, 0.1) 70%);
}

body.ldn2-page .ldn2-scene {
	position: relative;
	display: flex;
	flex-direction: column;
	/* safe: never pushes the text up under the top bar when the screen is short. */
	justify-content: safe center;
	min-height: 100svh;
	/* --topbar-h is measured by the script; the fallback matches the desktop top bar. */
	padding-block: calc(var(--topbar-h, 7.25rem) + 45px) 5rem;
}
/* With JS the scenes stack on the pinned stage; without it they simply follow each other. */
html.ldn2-js body.ldn2-page .ldn2-scene { position: absolute; inset: 0; }
html.ldn2-js body.ldn2-page .ldn2-scene--2, html.ldn2-js body.ldn2-page .ldn2-scene--3 { visibility: hidden; }

body.ldn2-page .ldn2-scene__inner { position: relative; display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); }
body.ldn2-page .ldn2-scene--1 .ldn2-display { max-width: 11ch; font-size: min(clamp(3rem, 1.2rem + 7.4vw, 8.25rem), 15svh); }
body.ldn2-page .ldn2-scene--3 .ldn2-display { font-size: min(clamp(2.75rem, 1rem + 6.4vw, 7.25rem), 13svh); }
body.ldn2-page .ldn2-lead { max-width: 36rem; margin: 0; font-size: clamp(1.0625rem, 0.95rem + 0.45vw, 1.3125rem); line-height: 1.55; color: rgba(251, 245, 236, 0.82); }

body.ldn2-page .ldn2-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem 2rem; padding-top: 0.5rem; }
body.ldn2-page .ldn2-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	min-height: 3rem;
	padding: 0.85rem 1.4rem;
	border-radius: 999px;
	background: var(--orange);
	color: var(--ink-deep);
	font: 600 0.8125rem/1 var(--text);
	letter-spacing: 0.04em;
	text-decoration: none;
	transition: background-color 0.25s var(--ease);
}
body.ldn2-page .ldn2-btn::after { content: "→"; transition: transform 0.25s var(--ease); }
body.ldn2-page .ldn2-btn:hover { background: var(--paper); }
body.ldn2-page .ldn2-btn:hover::after { transform: translateX(4px); }
body.ldn2-page .ldn2-link {
	display: inline-flex;
	min-height: 2.75rem;
	align-items: center;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	background: linear-gradient(currentColor, currentColor) 0 calc(100% - 0.7rem) / 100% 1px no-repeat;
}

body.ldn2-page .ldn2-launch-line {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 1.75rem;
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(251, 245, 236, 0.75);
}
body.ldn2-page .ldn2-launch-line strong { color: var(--orange); font-weight: 600; }

body.ldn2-page .ldn2-statement {
	max-width: 22ch;
	margin: 0;
	font-family: var(--display);
	font-weight: 500;
	font-size: clamp(1.875rem, 1rem + 3vw, 4rem);
	line-height: 1.06;
	letter-spacing: -0.025em;
	font-variation-settings: "opsz" 72;
}

body.ldn2-page .ldn2-scene--3 .ldn2-scene__inner { padding-right: clamp(0rem, 4vw, 4rem); grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); }
body.ldn2-page .ldn2-scene--3 .ldn2-display { font-size: clamp(2.75rem, 1rem + 6.4vw, 7.25rem); }
body.ldn2-page .ldn2-scene--3 .ldn2-display strong { position: relative; display: inline-block; }
body.ldn2-page .ldn2-scene--3 .ldn2-display strong::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.06em;
	height: 0.1em;
	background: var(--orange);
	transform: scaleX(var(--bar, 1));
	transform-origin: left center;
}
body.ldn2-page .ldn2-subtitle { margin: 0; max-width: 24ch; font-family: var(--serif); font-weight: 400; font-size: clamp(1.25rem, 1rem + 1vw, 2rem); line-height: 1.25; color: rgba(251, 245, 236, 0.86); }
body.ldn2-page .ldn2-cover { width: 100%; max-width: 21rem; justify-self: center; box-shadow: 0 2.5rem 5rem rgba(0, 0, 0, 0.5); }

body.ldn2-page .ldn2-progress {
	position: absolute;
	right: var(--gutter);
	top: 50%;
	display: none;
	gap: 0.9rem;
	transform: translateY(-50%);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	color: rgba(251, 245, 236, 0.45);
}
html.ldn2-js body.ldn2-page .ldn2-progress { display: grid; }
body.ldn2-page .ldn2-progress p { transition: color 0.3s var(--ease); }
body.ldn2-page .ldn2-progress p.ldn2-is-active { color: var(--paper); }

/* ---------- Numbers ---------- */
body.ldn2-page .ldn2-numbers { padding-block: clamp(3.5rem, 7vw, 6rem); background: var(--paper); }
body.ldn2-page .ldn2-numbers__intro { display: grid; grid-template-columns: minmax(0, 1fr); max-width: 58rem; gap: 2rem clamp(2rem, 5vw, 5rem); margin-bottom: clamp(3rem, 6vw, 5rem); }
body.ldn2-page .ldn2-numbers__text {
	margin: 0;
	font-family: var(--display);
	font-weight: 500;
	font-size: clamp(1.5rem, 1rem + 1.8vw, 2.75rem);
	line-height: 1.15;
	letter-spacing: -0.02em;
	font-variation-settings: "opsz" 60;
}
body.ldn2-page .ldn2-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 clamp(1.5rem, 3vw, 3rem); }
body.ldn2-page .ldn2-stat { display: grid; align-content: start; gap: 1rem; padding-top: 1.5rem; border-top: 1px solid rgba(54, 32, 32, 0.2); }
body.ldn2-page .ldn2-stat__value {
	margin: 0;
	font-family: var(--display);
	font-weight: 800;
	font-size: clamp(3.25rem, 1.5rem + 5vw, 6.5rem);
	line-height: 0.85;
	letter-spacing: -0.045em;
	font-variant-numeric: tabular-nums;
}
body.ldn2-page .ldn2-stat__value sup { font-size: 0.38em; transform: translateY(-1.25em); }
body.ldn2-page .ldn2-stat__value span { font-size: 0.42em; letter-spacing: -0.02em; }
body.ldn2-page .ldn2-stat__label { margin: 0; font-family: var(--mono); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; }
body.ldn2-page .ldn2-stat__text { margin: 0; max-width: 24ch; color: var(--muted); font-size: 0.9375rem; line-height: 1.5; }

body.ldn2-page .next { padding-block: 8rem; background: var(--cream); text-align: center; }
body.ldn2-page .next p { margin: 0 auto; max-width: 40ch; color: var(--muted); }

/* ================= Phase 2 ================= */
body.ldn2-page .ldn2-section-head { display: grid; gap: 1rem; margin-bottom: clamp(2rem, 4vw, 3.25rem); }
body.ldn2-page .ldn2-h2 {
	margin: 0;
	max-width: 16ch;
	font-family: var(--display);
	font-weight: 800;
	font-size: clamp(2.25rem, 1.1rem + 3.4vw, 4.5rem);
	line-height: 0.95;
	letter-spacing: -0.035em;
	font-variation-settings: "opsz" 96;
}
body.ldn2-page .ldn2-h2 em { color: var(--orange); }

/* ---------- Personnalités: pinned index, portrait frame follows the active name ---------- */
body.ldn2-page .ldn2-people { padding-block: clamp(3.5rem, 7vw, 6rem) 0; background: var(--cream); }
body.ldn2-page .ldn2-people__stage {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	align-items: center;
	gap: clamp(2rem, 6vw, 6rem);
	min-height: 100svh;
	padding-block: 2.5rem;
}
body.ldn2-page .ldn2-people__list { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(54, 32, 32, 0.2); }
body.ldn2-page .ldn2-person {
	display: grid;
	grid-template-columns: 3rem minmax(0, 1fr);
	gap: 0.4rem 1rem;
	padding-block: clamp(1.1rem, 2vw, 1.75rem);
	border-bottom: 1px solid rgba(54, 32, 32, 0.2);
}
body.ldn2-page .ldn2-person__num { grid-row: span 2; padding-top: 0.5rem; font-family: var(--mono); font-size: 0.6875rem; font-weight: 500; color: var(--muted); }
body.ldn2-page .ldn2-person__name {
	margin: 0;
	font-family: var(--display);
	font-weight: 700;
	font-size: clamp(1.5rem, 1rem + 1.6vw, 2.5rem);
	line-height: 1;
	letter-spacing: -0.03em;
}
body.ldn2-page .ldn2-person__role { margin: 0; max-width: 46ch; font-size: 0.9375rem; line-height: 1.5; color: var(--muted); }
body.ldn2-page .ldn2-person.ldn2-is-active .ldn2-person__num { color: var(--orange); }

body.ldn2-page .ldn2-people__frame { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--ink); }
body.ldn2-page .ldn2-people__frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* The frame is filled by the script from these photos; without JS they stay in the list. */
html.ldn2-js body.ldn2-page .ldn2-person__photo { display: none; }
html:not(.ldn2-js) body.ldn2-page .ldn2-people__frame { display: none; }

/* ---------- Thématiques: editorial index that fills in with the scroll ---------- */
body.ldn2-page .ldn2-topics { padding-block: clamp(3.5rem, 7vw, 6rem); background: var(--paper); }
body.ldn2-page .ldn2-topics__list {
	display: grid;
	grid-auto-flow: column;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: repeat(6, auto);
	column-gap: clamp(2rem, 5vw, 5rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
body.ldn2-page .ldn2-topic:first-child, body.ldn2-page .ldn2-topic:nth-child(7) { border-top: 1px solid rgba(54, 32, 32, 0.2); }
@media (max-width: 767px) {
	body.ldn2-page .ldn2-topics__list { grid-auto-flow: row; grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
	body.ldn2-page .ldn2-topic:nth-child(7) { border-top: 0; }
}
body.ldn2-page .ldn2-topic {
	position: relative;
	display: flex;
	align-items: baseline;
	gap: clamp(1rem, 3vw, 3rem);
	padding-block: clamp(0.75rem, 1.4vw, 1.2rem);
	border-bottom: 1px solid rgba(54, 32, 32, 0.2);
	transition: padding-left 0.5s var(--ease);
}
body.ldn2-page .ldn2-topic__num { flex: none; width: 2.5rem; font-family: var(--mono); font-size: 0.6875rem; font-weight: 500; color: var(--orange); }
body.ldn2-page .ldn2-topic__title {
	margin: 0;
	font-family: var(--display);
	font-weight: 500;
	font-size: min(1.75rem, 1.85vw);
	line-height: 1.1;
	letter-spacing: -0.025em;
	white-space: nowrap;
}
@media (max-width: 767px) {
	body.ldn2-page .ldn2-topic__title { font-size: min(1.5rem, 4.3vw); }
}
@media (hover: hover) {
	body.ldn2-page .ldn2-topic:hover { padding-left: 1.5rem; }
}

body.ldn2-page .ldn2-headlines {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2rem clamp(1.5rem, 3vw, 3rem);
	margin-top: clamp(3rem, 6vw, 4.5rem);
}
body.ldn2-page .ldn2-headline { display: grid; gap: 1rem; align-content: start; padding-top: 1.25rem; border-top: 2px solid var(--ink); }
body.ldn2-page .ldn2-headline p { margin: 0; font-size: 1rem; line-height: 1.55; }
body.ldn2-page .ldn2-headline strong { font-weight: 600; }

body.ldn2-page .ldn2-tagline-band { overflow: hidden; margin-top: clamp(3rem, 6vw, 4.5rem); }
body.ldn2-page .ldn2-tagline {
	margin: 0;
	white-space: nowrap;
	font-family: var(--serif);
	font-weight: 400;
	font-style: italic;
	font-size: clamp(2.5rem, 1rem + 6vw, 7.5rem);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--ink);
}
body.ldn2-page .ldn2-tagline span { color: var(--orange); }

/* ---------- Lancement: dark, the date travels across the screen ---------- */
body.ldn2-page .ldn2-launch { padding-block: clamp(3.5rem, 7vw, 6rem); background: var(--ink-deep); color: var(--paper); overflow: hidden; }
body.ldn2-page .ldn2-launch .ldn2-kicker { color: var(--paper); }
body.ldn2-page .ldn2-launch__date-band { margin-block: clamp(1.5rem, 3vw, 2.5rem); padding-inline: var(--edge); }
body.ldn2-page .ldn2-launch__date {
	margin: 0;
	white-space: nowrap;
	font-family: var(--display);
	font-weight: 800;
	font-size: clamp(3.5rem, 1rem + 10vw, 12rem);
	line-height: 0.9;
	letter-spacing: -0.045em;
	font-variation-settings: "opsz" 96;
}
body.ldn2-page .ldn2-launch__date span { color: var(--orange); }
body.ldn2-page .ldn2-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(251, 245, 236, 0.22); }
body.ldn2-page .ldn2-fact { display: grid; gap: 0.6rem; padding: 1.75rem 1.5rem 1.75rem 0; }
body.ldn2-page .ldn2-fact + .ldn2-fact { padding-left: 1.5rem; border-left: 1px solid rgba(251, 245, 236, 0.22); }
body.ldn2-page .ldn2-fact__label { margin: 0; font-family: var(--mono); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(251, 245, 236, 0.6); }
body.ldn2-page .ldn2-fact__value { margin: 0; font-family: var(--display); font-weight: 700; font-size: clamp(1.5rem, 1rem + 1.6vw, 2.5rem); line-height: 1.05; letter-spacing: -0.02em; }
body.ldn2-page .ldn2-launch__photos { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(1rem, 2vw, 2rem); align-items: end; margin-top: clamp(2.5rem, 5vw, 4rem); }
body.ldn2-page .ldn2-launch__photo { overflow: hidden; }
body.ldn2-page .ldn2-launch__photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transform: scale(1.12); }
body.ldn2-page .ldn2-launch__photo--b { margin-bottom: clamp(2rem, 5vw, 5rem); }
body.ldn2-page .ldn2-launch__photo p { padding-top: 0.75rem; font-size: 0.75rem; letter-spacing: 0.08em; color: rgba(251, 245, 236, 0.55); }
body.ldn2-page .ldn2-launch__cta { margin-top: clamp(2rem, 4vw, 3rem); }

/* ================= Phase 3 ================= */

/* ---------- Découvrir ---------- */
body.ldn2-page .ldn2-discover { padding-block: clamp(3.5rem, 7vw, 6rem); background: var(--cream); overflow: hidden; }
body.ldn2-page .ldn2-discover__inner { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; gap: clamp(3rem, 7vw, 7rem); }
body.ldn2-page .ldn2-discover__text { display: grid; justify-items: start; gap: clamp(1.25rem, 2.5vw, 2rem); }
body.ldn2-page .ldn2-discover__access {
	margin: 0;
	max-width: 40ch;
	padding: 0.9rem 1.1rem;
	border: 1px dashed var(--muted);
	color: var(--muted);
	font-size: 0.9375rem;
}
body.ldn2-page .ldn2-discover__cover { width: 100%; max-width: 19rem; margin-block: 1.5rem; justify-self: center; box-shadow: 0 2.5rem 5rem rgba(54, 32, 32, 0.35); }

/* ---------- Archive: horizontal gallery driven by the vertical scroll ---------- */
body.ldn2-page .ldn2-archive { background: var(--ink-deep); color: var(--paper); padding-top: clamp(3.5rem, 7vw, 6rem); }
body.ldn2-page .ldn2-archive .ldn2-kicker { color: var(--paper); }
body.ldn2-page .ldn2-archive__intro { margin: 0; max-width: 40ch; color: rgba(251, 245, 236, 0.7); }
body.ldn2-page .ldn2-archive__pin { overflow: hidden; }
body.ldn2-page .ldn2-archive__viewport { display: flex; flex-direction: column; justify-content: center; min-height: 100svh; padding-block: 2rem 3rem; }
body.ldn2-page .ldn2-archive__track {
	display: flex;
	gap: clamp(1.25rem, 2.5vw, 2.5rem);
	width: max-content;
	padding-inline: var(--edge);
	margin: 0;
	list-style: none;
}
body.ldn2-page .ldn2-edition { flex: none; width: clamp(15rem, 22vw, 21rem); display: grid; gap: 0.6rem; }
body.ldn2-page .ldn2-edition__media { aspect-ratio: 602 / 848; overflow: hidden; background: #2f2a26; }
body.ldn2-page .ldn2-edition__media img { width: 100%; height: 100%; object-fit: contain; transition: transform 0.8s var(--ease); }
body.ldn2-page .ldn2-edition__number { margin: 0.5rem 0 0; font-family: var(--mono); font-size: 0.6875rem; font-weight: 500; color: var(--orange); }
body.ldn2-page .ldn2-edition__title { margin: 0; font-family: var(--display); font-weight: 700; font-size: clamp(1.2rem, 1rem + 0.6vw, 1.6rem); line-height: 1.1; letter-spacing: -0.02em; }
@media (hover: hover) {
	body.ldn2-page .ldn2-edition:hover .ldn2-edition__media img { transform: scale(1.04); }
}
body.ldn2-page .ldn2-archive__bar { position: relative; height: 2px; margin: clamp(2rem, 4vw, 3rem) var(--edge) 0; background: rgba(251, 245, 236, 0.18); }
body.ldn2-page .ldn2-archive__bar > div { position: absolute; inset: 0; background: var(--orange); transform: scaleX(0); transform-origin: left center; }
body.ldn2-page .ldn2-archive__count { display: flex; justify-content: space-between; margin: 0.9rem var(--edge) 0; font-family: var(--mono); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.06em; color: rgba(251, 245, 236, 0.6); }

/* ---------- Contact ---------- */
body.ldn2-page .ldn2-contact { padding-block: clamp(3.5rem, 7vw, 6rem); background: var(--paper); }
body.ldn2-page .ldn2-contact__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem clamp(2rem, 4vw, 4rem); }
body.ldn2-page .ldn2-contact__col { display: grid; align-content: start; gap: 0.35rem; }
body.ldn2-page .ldn2-contact__col h3 { margin: 0 0 1rem; padding-bottom: 1rem; border-bottom: 1px solid rgba(54, 32, 32, 0.2); font-family: var(--mono); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; }
body.ldn2-page .ldn2-contact__col p { margin: 0; font-family: var(--display); font-weight: 500; font-size: clamp(1.0625rem, 0.95rem + 0.35vw, 1.3125rem); line-height: 1.35; letter-spacing: -0.01em; overflow-wrap: break-word; }
body.ldn2-page .ldn2-contact__col p span { display: block; font-family: var(--mono); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); margin-top: 0.9rem; }
body.ldn2-page .ldn2-demo-note { display: inline-block; margin-top: clamp(2rem, 4vw, 3rem); padding: 0.6rem 0.9rem; border: 1px dashed var(--muted); color: var(--muted); font-size: 0.8125rem; }

/* ---------- Footer ---------- */
body.ldn2-page .ldn2-footer { background: var(--ink-deep); color: rgba(251, 245, 236, 0.85); padding-top: clamp(3.5rem, 7vw, 5.5rem); overflow: hidden; }
body.ldn2-page .ldn2-footer__top { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); gap: 3rem clamp(2rem, 4vw, 4rem); }
body.ldn2-page .ldn2-footer__lead { margin: 0; max-width: 30ch; font-family: var(--display); font-weight: 500; font-size: clamp(1.25rem, 1rem + 1vw, 1.875rem); line-height: 1.2; letter-spacing: -0.015em; color: var(--paper); }
body.ldn2-page .ldn2-footer__col { display: grid; align-content: start; gap: 0.2rem; }
body.ldn2-page .ldn2-footer__col .ldn2-kicker { margin-bottom: 0.9rem; color: var(--paper); }
body.ldn2-page .ldn2-footer__col a, body.ldn2-page .ldn2-footer__col span { display: inline-flex; min-height: 2.5rem; align-items: center; text-decoration: none; font-size: 0.9375rem; }
body.ldn2-page .ldn2-footer__col a { background: linear-gradient(currentColor, currentColor) 0 calc(100% - 0.55rem) / 0 1px no-repeat; transition: background-size 0.4s var(--ease); justify-self: start; }
body.ldn2-page .ldn2-footer__col a:hover { background-size: 100% 1px; }
body.ldn2-page .ldn2-footer__word {
	margin: clamp(2.5rem, 5vw, 4rem) auto 0;
	width: min(100% - 2 * var(--gutter), var(--max));
	font-family: var(--display);
	font-weight: 800;
	font-size: clamp(2.5rem, 10.2vw, 11.5rem);
	line-height: 0.82;
	letter-spacing: -0.055em;
	white-space: nowrap;
	color: var(--paper);
	font-variation-settings: "opsz" 96;
}
body.ldn2-page .ldn2-footer__word em { color: var(--orange); }
body.ldn2-page .ldn2-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 2rem; padding: 1.5rem var(--edge) 2rem; margin-top: 2rem; border-top: 1px solid rgba(251, 245, 236, 0.15); font-size: 0.8125rem; color: rgba(251, 245, 236, 0.6); }
body.ldn2-page .ldn2-footer__bottom a { color: var(--paper); text-decoration: none; }

@media (max-width: 1023px) {
	body.ldn2-page .ldn2-discover__inner { grid-template-columns: minmax(0, 1fr); }
	body.ldn2-page .ldn2-discover__cover { justify-self: start; max-width: 16rem; }
	body.ldn2-page .ldn2-archive__viewport { min-height: 0; padding-block: 3rem 5rem; }
	body.ldn2-page .ldn2-archive__track { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: auto; gap: 2.5rem 1.25rem; }
	body.ldn2-page .ldn2-edition { width: auto; }
	body.ldn2-page .ldn2-archive__bar, body.ldn2-page .ldn2-archive__count { display: none; }
	body.ldn2-page .ldn2-contact__grid, body.ldn2-page .ldn2-footer__top { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
	body.ldn2-page .ldn2-archive__track { grid-template-columns: minmax(0, 1fr); }
	body.ldn2-page .ldn2-edition { max-width: 24rem; }
}

@media (max-width: 1023px) {
	body.ldn2-page .ldn2-people__stage { grid-template-columns: minmax(0, 1fr); min-height: 0; padding-block: 0 5rem; }
	body.ldn2-page .ldn2-people__frame { display: none; }
	body.ldn2-page .ldn2-person__photo { display: block; grid-column: 1 / -1; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; margin-bottom: 1rem; }
	body.ldn2-page .ldn2-headlines { grid-template-columns: minmax(0, 1fr); }
	body.ldn2-page .ldn2-facts, body.ldn2-page .ldn2-launch__photos { grid-template-columns: minmax(0, 1fr); }
	body.ldn2-page .ldn2-fact, body.ldn2-page .ldn2-fact + .ldn2-fact { padding: 1.25rem 0; border-left: 0; }
	body.ldn2-page .ldn2-fact + .ldn2-fact { border-top: 1px solid rgba(251, 245, 236, 0.22); }
	body.ldn2-page .ldn2-launch__photo--b { margin-bottom: 0; }
}

@media (max-width: 1023px) {
	body.ldn2-page .ldn2-scene--3 .ldn2-scene__inner { padding-right: clamp(0rem, 4vw, 4rem); grid-template-columns: minmax(0, 1fr); }
	body.ldn2-page .ldn2-cover { justify-self: start; max-width: 14rem; }
	body.ldn2-page .ldn2-progress { display: none !important; }
	body.ldn2-page .ldn2-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem 1.5rem; }
}
@media (max-width: 767px) {
	body.ldn2-page .ldn2-numbers__intro { grid-template-columns: minmax(0, 1fr); }
	body.ldn2-page .ldn2-launch-line { flex-direction: column; gap: 0.25rem; }
	body.ldn2-page .ldn2-marquee__item { font-size: 0.6875rem; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	html.ldn2-js body.ldn2-page .ldn2-loader { display: none; }
}
