/* ==========================================================================
   Egalicare : fresque de vie en 3D (calques HTML par-dessus le canvas WebGL).
   Les styles ne s'appliquent qu'une fois la 3D montée (classe .is-3d) :
   sans WebGL, le repli SVG garde son apparence d'origine.
   ========================================================================== */

.f3d { position: relative; }

.f3d.is-3d {
	--f3d-verre: var(--verre, rgba(19, 29, 51, .72));
	--f3d-verre-f: rgba(12, 17, 51, .86);
	--f3d-ligne: var(--jeu-ligne, rgba(255, 255, 255, .12));
	--f3d-texte: var(--jeu-texte, #e8eef9);
	--f3d-gris: var(--jeu-gris, #9aa7bd);
	--f3d-fond: var(--jeu-fond, #0c1133);
	--f3d-fond-2: var(--jeu-fond-2, #161d4b);
	--f3d-lagon: var(--neon-lagon, #a3a9ff);
	--f3d-corail: var(--neon-corail, #ff6a3d);
	--f3d-or: var(--neon-or, #ffc94a);
	--f3d-anneau: 0 0 0 2px var(--f3d-fond), 0 0 0 5px #fff;
	--f3d-marge: 16px;

	position: relative;
	overflow: hidden;
	isolation: isolate;
	height: 78vh;
	height: 78svh;
	min-height: 460px;
	max-width: 100%;
	border-radius: 24px;
	color: var(--f3d-texte);
	font-family: var(--f-texte);
	/* Dégradé de nuit, visible tant que le canvas n'est pas prêt */
	background:
		radial-gradient(120% 60% at 70% 100%, rgba(255, 106, 61, .35), transparent 60%),
		linear-gradient(180deg, #0c1133 0%, #1b1d42 36%, #3e2c55 62%, #5a3a5c 80%, #6d4058 100%);
	touch-action: pan-y;
	-webkit-tap-highlight-color: transparent;
}
.f3d.is-3d.f3d--accueil { height: 520px; min-height: 0; }

/* Le repli 2D reste dans le DOM mais n'est plus affiché */
.f3d.is-3d .f3d__repli { display: none; }

/* --- Canvas ----------------------------------------------------------------- */
.f3d__scene {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity .7s ease;
	user-select: none;
	-webkit-user-select: none;
}
.f3d.is-pret .f3d__scene { opacity: 1; }
.f3d__scene canvas { display: block; width: 100%; height: 100%; cursor: grab; outline: none; }
.f3d.is-glisse .f3d__scene canvas, .f3d.is-glisse .f3d__lib { cursor: grabbing; }

/* Voile bas et haut pour la lisibilité du HUD et des boutons */
.f3d.is-3d::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(180deg, rgba(12, 17, 51, .45) 0%, transparent 18%),
		linear-gradient(0deg, rgba(12, 17, 51, .55) 0%, transparent 22%);
}

/* --- Icônes ----------------------------------------------------------------- */
.f3d .f3d__ico {
	width: 1.1em;
	height: 1.1em;
	flex: none;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* --- Focus visibles : double anneau blanc + fond ---------------------------- */
.f3d.is-3d :focus { outline: none; }
.f3d.is-3d :focus-visible {
	outline: 3px solid transparent;
	outline-offset: 2px;
	box-shadow: var(--f3d-anneau);
}

/* --- Libellés des stations (positionnés en JS) ------------------------------ */
.f3d__stations {
	position: absolute;
	inset: 0;
	z-index: 2;
	margin: 0;
	padding: 0;
	list-style: none;
	pointer-events: none;
	user-select: none;
	-webkit-user-select: none;
}
.f3d__station {
	position: absolute;
	left: 0;
	top: 0;
	width: 0;
	height: 0;
	margin: 0;
	opacity: 0;
	will-change: transform, opacity;
	transition: opacity .3s ease;
}
.f3d__station.is-actif { z-index: 2; }
.f3d__station:focus-within { z-index: 3; }
.f3d__tige {
	position: absolute;
	left: -1px;
	bottom: 0;
	width: 2px;
	height: 18px;
	border-radius: 2px;
	background: linear-gradient(0deg, transparent, var(--c, var(--f3d-lagon)));
}
.f3d__lib {
	position: absolute;
	left: 0;
	bottom: 18px;
	display: flex;
	align-items: center;
	gap: .6em;
	min-height: 44px;
	padding: .4em .85em .4em .45em;
	border: 1px solid var(--f3d-ligne);
	border-radius: 14px;
	background: var(--f3d-verre-f);
	color: var(--f3d-texte);
	font: 700 .9rem/1.15 var(--f-texte);
	text-align: left;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	pointer-events: auto;
	transform: translateX(-50%) scale(.9);
	transform-origin: 50% 100%;
	box-shadow: 0 10px 30px -14px rgba(0, 0, 0, .8);
	transition: transform .3s cubic-bezier(.2, .9, .3, 1.2), border-color .3s ease, box-shadow .3s ease, background-color .3s ease;
	-webkit-appearance: none;
	appearance: none;
}
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
	@media (min-width: 681px) {
		.f3d__lib {
			background: var(--f3d-verre);
			-webkit-backdrop-filter: blur(10px) saturate(1.3);
			backdrop-filter: blur(10px) saturate(1.3);
		}
	}
}
.f3d__lib::before {
	/* petit trait de la couleur de l'étape */
	content: "";
	position: absolute;
	left: 14px;
	right: 14px;
	top: -1px;
	height: 2px;
	border-radius: 2px;
	background: var(--c, var(--f3d-lagon));
	opacity: .85;
}
.f3d__station.is-cache .f3d__lib { pointer-events: none; }
.f3d__station.is-actif .f3d__lib,
.f3d__lib:hover,
.f3d__lib:focus-visible {
	transform: translateX(-50%) scale(1);
	border-color: color-mix(in srgb, var(--c, #fff) 70%, transparent);
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--c, #fff) 45%, transparent), 0 12px 34px -12px var(--c, #000);
}
.f3d__lib:focus-visible { box-shadow: var(--f3d-anneau), 0 12px 34px -12px var(--c, #000); }
.f3d__lib[aria-expanded="true"] { background: color-mix(in srgb, var(--c, #161d4b) 22%, rgba(12, 17, 51, .9)); }

.f3d__num {
	display: grid;
	place-items: center;
	flex: none;
	width: 30px;
	height: 30px;
	border-radius: 10px;
	background: var(--c, var(--f3d-lagon));
	color: var(--f3d-fond);
	font: 800 .95rem/1 var(--f-titre);
	box-shadow: 0 0 14px -2px var(--c, transparent);
}
/* Portrait du public accompagné, numéro de l'étape en pastille */
.f3d__public {
	position: relative;
	flex: none;
	width: 46px;
	height: 46px;
	margin: -6px 0 -6px -4px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--c, #a3a9ff) 45%, #fff);
	box-shadow: 0 0 0 2px var(--c, var(--f3d-lagon)), 0 0 16px -2px var(--c, transparent);
}
.f3d__public img { display: block; width: 100%; height: 100%; border-radius: 50%; }
.f3d__station.is-actif .f3d__public { width: 62px; height: 62px; margin: -16px 2px -16px -10px; transition: width .3s ease, height .3s ease, margin .3s ease; }
.f3d__public .f3d__num {
	position: absolute;
	right: -6px;
	bottom: -4px;
	width: 20px;
	height: 20px;
	border-radius: 7px;
	font-size: .72rem;
	box-shadow: 0 0 0 2px var(--f3d-fond);
}
.f3d__info-public {
	width: 92px;
	height: 92px;
	margin: 0 0 12px;
	border-radius: 50%;
	overflow: hidden;
	background: color-mix(in srgb, var(--c, #a3a9ff) 45%, #fff);
	box-shadow: 0 0 0 3px var(--c, var(--f3d-lagon)), 0 0 28px -6px var(--c, transparent);
}
.f3d__info-public img { display: block; width: 100%; height: 100%; }
.f3d__txt { display: flex; flex-direction: column; gap: 2px; }
.f3d__nom { font: 800 1rem/1.1 var(--f-titre); letter-spacing: -.01em; }
.f3d__age { font: 700 .74rem/1.2 var(--f-texte); color: var(--f3d-gris); letter-spacing: .02em; }
.f3d__etoiles { display: inline-flex; align-items: center; color: var(--f3d-or); font-size: .82rem; line-height: 1; letter-spacing: 1px; }
.f3d__etoiles i { font-style: normal; opacity: .28; }
.f3d__etoiles i.is-pleine { opacity: 1; text-shadow: 0 0 8px rgba(255, 201, 74, .55); }
.f3d__vu {
	display: grid;
	place-items: center;
	flex: none;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--c, #a3a9ff) 30%, transparent);
	color: var(--f3d-texte);
	font-size: .8rem;
}

/* --- HUD (haut gauche) -------------------------------------------------------- */
.f3d__hud {
	position: absolute;
	top: var(--f3d-marge);
	left: var(--f3d-marge);
	z-index: 4;
	min-width: 168px;
	max-width: calc(100% - 2 * var(--f3d-marge));
	padding: 10px 14px 12px;
	border: 1px solid var(--f3d-ligne);
	border-radius: 14px;
	background: var(--f3d-verre);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	pointer-events: none;
}
.f3d__hud p { margin: 0; }
.f3d__compteur { font: 700 .72rem/1.2 var(--f-texte); text-transform: uppercase; letter-spacing: .1em; color: var(--f3d-gris); }
.f3d__compteur strong { font: 800 1.15rem/1 var(--f-titre); color: var(--f3d-texte); letter-spacing: 0; }
.f3d__compteur-total { color: var(--f3d-gris); }
.f3d__hud-nom {
	margin-top: 2px !important;
	font: 800 .95rem/1.2 var(--f-titre);
	color: var(--f3d-texte);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.f3d__barre {
	position: relative;
	height: 4px;
	margin-top: 9px;
	border-radius: 4px;
	background: rgba(255, 255, 255, .12);
	overflow: hidden;
}
.f3d__barre span {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--f3d-lagon), var(--f3d-or) 60%, var(--f3d-corail));
	transform: scaleX(0);
	transform-origin: 0 50%;
	box-shadow: 0 0 10px rgba(163, 169, 255, .5);
}

/* --- Aide « Glisse pour avancer » --------------------------------------------- */
.f3d__aide {
	position: absolute;
	left: 50%;
	bottom: calc(var(--f3d-marge) + 9px);
	z-index: 4;
	display: inline-flex;
	align-items: center;
	gap: .5em;
	margin: 0;
	padding: .45em 1em;
	border: 1px solid var(--f3d-ligne);
	border-radius: 999px;
	background: rgba(12, 17, 51, .6);
	color: var(--f3d-texte);
	font: 700 .82rem/1.2 var(--f-texte);
	white-space: nowrap;
	pointer-events: none;
	transform: translateX(-50%);
	transition: opacity .5s ease, transform .5s ease;
}
.f3d__aide .f3d__ico { color: var(--f3d-lagon); animation: f3d-glisse 1.8s ease-in-out infinite; }
.f3d__aide.is-cache { opacity: 0; transform: translate(-50%, 8px); }
@keyframes f3d-glisse {
	0%, 100% { transform: translateX(-3px); }
	50% { transform: translateX(3px); }
}

/* --- Boutons précédent / suivant ---------------------------------------------- */
.f3d__nav {
	position: absolute;
	left: var(--f3d-marge);
	right: var(--f3d-marge);
	bottom: var(--f3d-marge);
	z-index: 4;
	display: flex;
	justify-content: space-between;
	gap: 12px;
	pointer-events: none;
	transition: right .35s ease;
}
.f3d__pas {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	min-width: 44px;
	min-height: 48px;
	padding: 0 1.15em;
	border: 1px solid var(--f3d-ligne);
	border-radius: 999px;
	background: var(--f3d-verre);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	color: var(--f3d-texte);
	font: 700 .92rem/1.1 var(--f-texte);
	cursor: pointer;
	pointer-events: auto;
	transition: border-color .2s ease, background-color .2s ease, transform .15s ease, opacity .2s ease;
	-webkit-appearance: none;
	appearance: none;
}
.f3d__pas span[aria-hidden] { font-size: .75em; }
.f3d__pas--suiv { border-color: rgba(163, 169, 255, .45); background: rgba(163, 169, 255, .14); }
.f3d__pas:hover { border-color: var(--f3d-lagon); }
.f3d__pas:active { transform: scale(.97); }
.f3d__pas[aria-disabled="true"] { opacity: .38; cursor: default; }
.f3d__pas[aria-disabled="true"]:hover { border-color: var(--f3d-ligne); }
.f3d__pas[aria-disabled="true"]:active { transform: none; }

/* --- Panneau d'information (mode page) ---------------------------------------- */
.f3d__info {
	position: absolute;
	top: var(--f3d-marge);
	right: var(--f3d-marge);
	bottom: var(--f3d-marge);
	z-index: 5;
	display: flex;
	flex-direction: column;
	width: min(380px, 42%);
	max-height: calc(100% - 2 * var(--f3d-marge));
	overflow: auto;
	overscroll-behavior: contain;
	padding: 26px 24px 22px;
	border: 1px solid var(--f3d-ligne);
	border-radius: 20px;
	background: var(--f3d-verre-f);
	-webkit-backdrop-filter: blur(14px) saturate(1.2);
	backdrop-filter: blur(14px) saturate(1.2);
	box-shadow: 0 24px 60px -24px rgba(0, 0, 0, .8);
	color: var(--f3d-texte);
	user-select: text;
	-webkit-user-select: text;
	animation: f3d-entree .35s cubic-bezier(.2, .9, .3, 1) both;
}
.f3d__info[hidden] { display: none !important; }
.f3d__info::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--c, var(--f3d-lagon)), transparent);
}
@keyframes f3d-entree {
	from { opacity: 0; transform: translateX(16px); }
	to { opacity: 1; transform: none; }
}
.f3d__fermer {
	position: absolute;
	top: 10px;
	right: 10px;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--f3d-ligne);
	border-radius: 50%;
	background: rgba(255, 255, 255, .06);
	color: var(--f3d-texte);
	font-size: 1.1rem;
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease;
}
.f3d__fermer:hover { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .3); }
.f3d__info-sur {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5em .8em;
	margin: 0 52px 8px 0;
	font: 700 .74rem/1.3 var(--f-texte);
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--c, var(--f3d-lagon));
}
.f3d__info-vu {
	display: inline-flex;
	align-items: center;
	gap: .35em;
	padding: .2em .6em;
	border-radius: 999px;
	background: rgba(163, 169, 255, .14);
	color: var(--f3d-lagon);
	letter-spacing: .04em;
}
.f3d__info-titre {
	margin: 0 52px 12px 0;
	font: 800 clamp(1.5rem, 2.4vw, 1.9rem)/1.05 var(--f-titre);
	letter-spacing: -.02em;
	color: var(--f3d-texte);
	border-radius: 6px;
}
.f3d__info-titre small {
	display: block;
	margin-top: 6px;
	font: 700 .9rem/1.2 var(--f-texte);
	letter-spacing: 0;
	color: var(--f3d-gris);
}
.f3d__info-phrase { margin: 0 0 16px; font-size: 1rem; line-height: 1.55; color: var(--f3d-texte); }
.f3d__info-faits {
	display: grid;
	gap: 10px;
	margin: 0 0 20px;
	padding: 14px 0 0;
	border-top: 1px solid var(--f3d-ligne);
	list-style: none;
}
.f3d__info-faits li {
	display: flex;
	align-items: flex-start;
	gap: .6em;
	margin: 0;
	font-size: .95rem;
	line-height: 1.4;
	color: var(--f3d-texte);
}
.f3d__info-faits li[hidden] { display: none; }
.f3d__info-faits .f3d__ico { margin-top: .1em; color: var(--c, var(--f3d-lagon)); }
.f3d__info-faits strong { font: 800 1.05rem var(--f-titre); color: var(--f3d-or); }
.f3d__info-etoiles { align-items: center !important; }
.f3d__info-label { font: 700 .74rem/1.2 var(--f-texte); text-transform: uppercase; letter-spacing: .08em; color: var(--f3d-gris); }
.f3d__info-etoiles .f3d__etoiles { font-size: 1.15rem; letter-spacing: 3px; }
.f3d__entrer {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	min-height: 50px;
	margin-top: auto;
	padding: .7em 1.3em;
	border-radius: 999px;
	background: var(--f3d-lagon);
	color: var(--f3d-fond);
	font: 800 1rem/1.15 var(--f-titre);
	text-decoration: none;
	box-shadow: 0 10px 30px -10px rgba(163, 169, 255, .7);
	transition: transform .15s ease, box-shadow .2s ease, filter .2s ease;
}
.f3d__entrer:hover { filter: brightness(1.08); box-shadow: 0 14px 34px -10px rgba(163, 169, 255, .85); }
.f3d__entrer:active { transform: scale(.98); }
.f3d__entrer:focus-visible { box-shadow: var(--f3d-anneau); }

/* --- Bouton « Entrer » posé devant l'établissement ------------------------------ */
.f3d__porte {
	position: absolute;
	left: 0;
	top: 0;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: .45em;
	min-height: 46px;
	margin: 10px 0 0;
	padding: .55em 1.05em .55em 1.25em;
	border-radius: 999px;
	background: var(--c, var(--f3d-lagon));
	color: var(--f3d-fond);
	font: 800 .98rem/1 var(--f-titre);
	letter-spacing: .01em;
	text-decoration: none;
	white-space: nowrap;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .35) inset, 0 10px 30px -8px var(--c, var(--f3d-lagon)), 0 0 26px -6px var(--c, var(--f3d-lagon));
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	translate: -50% 8px;
	scale: .9;
	transition: opacity .25s ease, translate .35s cubic-bezier(.2, .9, .3, 1.2), scale .35s cubic-bezier(.2, .9, .3, 1.2), visibility 0s linear .25s, filter .2s ease;
}
.f3d__porte .f3d__ico { width: 1.15em; height: 1.15em; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.f3d__porte.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	translate: -50% 0;
	scale: 1;
	transition-delay: .05s, .05s, .05s, 0s, 0s;
}
.f3d__porte.is-visible::after {
	/* pulsation discrète pour attirer l'œil */
	content: "";
	position: absolute;
	inset: -4px;
	border-radius: inherit;
	border: 2px solid var(--c, var(--f3d-lagon));
	opacity: 0;
	animation: f3dPorte 2.2s ease-out .6s infinite;
	pointer-events: none;
}
@keyframes f3dPorte { 0% { opacity: .7; transform: scale(1); } 70%, 100% { opacity: 0; transform: scale(1.25, 1.5); } }
.f3d__porte:hover { filter: brightness(1.1); }
.f3d__porte:active { scale: .97; }
.f3d__porte:focus-visible { outline: none; box-shadow: var(--f3d-anneau); }
.f3d.is-glisse .f3d__porte { opacity: 0; pointer-events: none; }

/* --- Plongée : l'interface s'efface, un rideau couleur de l'étape s'ouvre ---------- */
.f3d.is-plonge .f3d__stations,
.f3d.is-plonge .f3d__porte,
.f3d.is-plonge .f3d__nav,
.f3d.is-plonge .f3d__hud,
.f3d.is-plonge .f3d__aide { opacity: 0 !important; pointer-events: none !important; transition: opacity .25s ease; }
.f3d.is-plonge .f3d__scene canvas { cursor: default; }
.f3d-rideau {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: grid;
	place-items: center;
	pointer-events: none;
	background: radial-gradient(circle at var(--x, 50%) var(--y, 50%), color-mix(in srgb, var(--c, #a3a9ff) 62%, #0c1133) 0, #0c1133 78%);
	clip-path: circle(0 at var(--x, 50%) var(--y, 50%));
	transition: clip-path .6s cubic-bezier(.7, 0, .3, 1) .62s;
}
.f3d-rideau.is-on { clip-path: circle(150vmax at var(--x, 50%) var(--y, 50%)); }
.f3d-rideau__txt {
	display: grid;
	gap: .25em;
	margin: 0;
	text-align: center;
	color: #fff;
	opacity: 0;
	transform: scale(.92);
	transition: opacity .3s ease .95s, transform .5s cubic-bezier(.2, .9, .3, 1) .95s;
}
.f3d-rideau__txt span { font: 800 .8rem/1 var(--f-titre, sans-serif); letter-spacing: .18em; text-transform: uppercase; opacity: .75; }
.f3d-rideau__txt strong { font: 800 clamp(1.6rem, 5vw, 2.8rem)/1.1 var(--f-titre, sans-serif); letter-spacing: -.01em; }
.f3d-rideau.is-on .f3d-rideau__txt { opacity: 1; transform: none; }

/* Panneau ouvert sur grand écran : les boutons restent à gauche du panneau */
.f3d.a-info .f3d__nav { right: calc(min(380px, 42%) + 2 * var(--f3d-marge)); }
.f3d.a-info .f3d__aide { display: none; }

/* --- Petits écrans -------------------------------------------------------------- */
@media (max-width: 680px) {
	.f3d.is-3d {
		--f3d-marge: 12px;
		height: 72vh;
		height: 72svh;
		min-height: 460px;
		border-radius: 18px;
	}
	.f3d.is-3d.f3d--accueil { height: 440px; min-height: 0; }
	.f3d__lib { gap: .5em; padding: .35em .7em .35em .4em; font-size: .82rem; }
	.f3d__num { width: 26px; height: 26px; border-radius: 8px; font-size: .85rem; }
	.f3d__public { width: 38px; height: 38px; }
	.f3d__station.is-actif .f3d__public { width: 50px; height: 50px; margin: -12px 0 -12px -8px; }
	.f3d__public .f3d__num { width: 18px; height: 18px; font-size: .66rem; }
	.f3d__info-public { width: 72px; height: 72px; }
	.f3d__nom { font-size: .92rem; }
	.f3d__age { font-size: .7rem; }
	.f3d__hud { min-width: 0; padding: 8px 12px 10px; }
	.f3d__hud-nom { font-size: .88rem; max-width: 52vw; }
	.f3d__pas { flex: 1 1 0; padding: 0 .8em; font-size: .86rem; }
	.f3d__aide { bottom: auto; top: var(--f3d-marge); left: auto; right: var(--f3d-marge); padding: .4em .8em; font-size: .74rem; transform: none; }
	.f3d__aide.is-cache { transform: translateY(-8px); }

	/* Panneau en feuille du bas, pleine largeur */
	.f3d__info {
		top: auto;
		left: 0;
		right: 0;
		bottom: 0;
		width: auto;
		max-height: 64%;
		padding: 22px 18px 18px;
		border-width: 1px 0 0;
		border-radius: 20px 20px 0 0;
		animation-name: f3d-entree-bas;
	}
	.f3d__entrer { margin-top: 4px; width: 100%; }
	.f3d.a-info .f3d__nav, .f3d.a-info .f3d__aide { display: none; }
	@keyframes f3d-entree-bas {
		from { opacity: 0; transform: translateY(24px); }
		to { opacity: 1; transform: none; }
	}
}

/* --- Mouvement réduit ------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
	.f3d__scene, .f3d__station, .f3d__lib, .f3d__aide, .f3d__nav, .f3d__pas, .f3d__entrer { transition: none; }
	.f3d__aide .f3d__ico, .f3d__info { animation: none; }
}

/* --- Contraste forcé (Windows) ----------------------------------------------- */
@media (forced-colors: active) {
	.f3d__lib, .f3d__pas, .f3d__info, .f3d__hud, .f3d__fermer, .f3d__entrer { border: 1px solid CanvasText; forced-color-adjust: auto; }
	.f3d.is-3d :focus-visible { outline: 3px solid Highlight; }
}
