body.asmon-page-template,
body.asmon-tpl-page {
	--asmon-bg: #0e0b08;
	--asmon-bg-elevated: #16120d;
	--asmon-text: #7a6a52;
	--asmon-text-bright: #e8dec8;
	--asmon-accent: #c9a84c;
	--asmon-line: #1a1208;
	--asmon-content: min(42rem, 100%);
	--asmon-wide: min(72rem, 100%);
	--asmon-hero-gutter: clamp(1rem, 4vw, 4rem);
	--asmon-chrome-top: clamp(0.5rem, 1.5vw, 0.75rem);
	--asmon-chrome-gutter: var(--asmon-hero-gutter);
	--asmon-chrome-right: var(--asmon-hero-gutter);
	--asmon-chrome-burger-top: 45px;
	--asmon-chrome-burger-size: 44px;
	--asmon-chrome-burger-gap: calc(var(--asmon-chrome-right) + var(--asmon-chrome-burger-size) + 0.5rem);
	--asmon-chrome-band: clamp(3rem, 10vw, 4rem);
	--asmon-hero-inner-max: 52rem;
	--asmon-font-body: "Crimson Pro", Georgia, "Times New Roman", serif;
	--asmon-font-display: "Cinzel", Georgia, serif;
	color: var(--asmon-text);
	background-color: var(--asmon-bg);
	font-family: var(--asmon-font-body);
}

body.asmon-page-template main,
body.asmon-tpl-page main,
body.asmon-page-template .site-main,
body.asmon-page-template #main,
body.asmon-page-template .asmon-layout,
body.asmon-tpl-page .asmon-layout,
body.asmon-page-template .asmon-hero,
body.asmon-tpl-page .asmon-hero {
	background: transparent;
	color: var(--asmon-text);
}

body.asmon-page-template :where(
	.entry-content,
	.wp-block-post-content,
	.asmon-layout,
	.asmon-prose,
	.asmon-immersif,
	.tpl-section-band,
	.asmon-contact-grid
) :where(h1, h2, h3, h4, h5, h6, strong, b, dt) {
	color: var(--asmon-text-bright) !important;
}

body.asmon-page-template :where(
	.entry-content,
	.wp-block-post-content,
	.asmon-prose,
	.asmon-layout,
	.asmon-immersif
) :where(p, li, dd, td, th, label, figcaption, .wp-block-paragraph) {
	color: var(--asmon-text) !important;
}

body.asmon-page-template .asmon-immersif :where(.section__label, .chapter__num, .portal__tag, .portal__arrow, .quote-band__attr, .hero__eyebrow) {
	color: var(--asmon-accent) !important;
}

body.asmon-page-template :where(.entry-content, .asmon-prose) a:not(.btn):not(.asmon-card):not(.portal) {
	color: var(--asmon-accent);
	text-decoration: underline;
	text-underline-offset: 0.18em;
	text-decoration-color: rgba(201, 168, 76, 0.45);
	transition: color 0.25s ease, text-decoration-color 0.25s ease, text-shadow 0.25s ease;
}

body.asmon-page-template :where(.entry-content, .asmon-prose) a:not(.btn):not(.asmon-card):not(.portal):hover {
	color: var(--asmon-text-bright);
	text-decoration-color: var(--asmon-accent);
	text-shadow: 0 0 14px rgba(201, 168, 76, 0.25);
}

body.asmon-page-template .asmon-immersif a.portal,
body.asmon-page-template .asmon-immersif a.portal:visited,
body.asmon-page-template .asmon-immersif a.portal:hover {
	color: var(--asmon-text) !important;
	text-decoration: none !important;
}

body.asmon-page-template--accueil-immersif .entry-content .asmon-immersif :is(
	.section__title,
	.chapter__title,
	.portal__title,
	.meta__card h3
) {
	text-transform: none !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
	color: var(--asmon-text-bright) !important;
}

body.asmon-page-template--accueil-immersif .entry-content .asmon-immersif .portal__content p {
	color: var(--asmon-text) !important;
}

body.asmon-page-template--accueil-immersif .entry-content .asmon-immersif .portal__tag,
body.asmon-page-template--accueil-immersif .entry-content .asmon-immersif .portal__arrow {
	color: var(--asmon-accent) !important;
}

body.asmon-tpl-page :where(h1, h2, h3, h4, h5, h6, strong, b) {
	color: var(--asmon-text-bright);
}

body.asmon-tpl-page :where(p, li, figcaption) {
	color: var(--asmon-text);
}

body.asmon-page-template .ct-container,
body.asmon-page-template .ct-container-narrow,
body.asmon-page-template .ct-container-full,
body.asmon-page-template .entry-content,
body.asmon-page-template article {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
	background: transparent;
}

.asmon-scroll-progress-rail {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 10000;
	height: 3px;
	pointer-events: none;
	background: rgba(201, 168, 76, 0.1);
	box-shadow: 0 0 20px rgba(201, 168, 76, 0.06);
}

.asmon-scroll-progress {
	--asmon-scroll-ratio: 0;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transform: scaleX(var(--asmon-scroll-ratio));
	transform-origin: 0 50%;
	background: linear-gradient(
		90deg,
		rgba(201, 168, 76, 0.9) 0%,
		var(--asmon-accent) 38%,
		rgba(255, 232, 170, 1) 72%,
		rgba(232, 210, 140, 0.98) 100%
	);
	box-shadow: 0 0 14px rgba(201, 168, 76, 0.45);
	will-change: transform;
}

.asmon-scroll-progress::after {
	content: "";
	position: absolute;
	inset: -3px 0;
	background: linear-gradient(
		90deg,
		transparent 0%,
		rgba(255, 232, 170, 0.35) 50%,
		transparent 100%
	);
	box-shadow:
		0 0 14px rgba(255, 220, 150, 0.55),
		0 0 28px rgba(201, 168, 76, 0.4);
	opacity: 0.55;
	animation: asmon-scroll-progress-glow 3.2s ease-in-out infinite;
	pointer-events: none;
}

@keyframes asmon-scroll-progress-glow {
	0%,
	100% {
		opacity: 0.4;
	}

	50% {
		opacity: 1;
	}
}

@media (max-width: 899px) {
	.asmon-scroll-progress-rail {
		top: auto;
		bottom: 0;
	}
}

.asmon-hero {
	position: relative;
	padding: 0;
	border-bottom: 1px solid var(--asmon-line);
	overflow: hidden;
}

.asmon-hero--interlude {
	min-height: min(70vh, 640px);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.asmon-hero--interlude .asmon-hero__inner {
	max-width: 36rem;
	align-items: center;
	text-align: center;
}

.asmon-hero--interlude .asmon-hero__title-row {
	justify-content: center;
}

.asmon-hero--interlude .asmon-hero__scroll {
	display: none;
}

.asmon-hero--interlude .asmon-hero__lead {
	max-width: none;
	font-size: clamp(1.35rem, 4vw, 2rem);
	line-height: 1.45;
	color: var(--asmon-text-bright);
}

.asmon-page-template--chronologie .asmon-prose > h2 {
	position: relative;
	margin-left: 0.35rem;
	padding-left: 1rem;
	border-left: 2px solid var(--asmon-accent);
}

.asmon-hero__media {
	position: absolute;
	inset: 0;
	overflow: hidden;
	background-size: cover;
	background-position: center;
}

.asmon-hero__media .asmon-hero__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	filter: sepia(0.35) brightness(0.38);
}

.asmon-hero__media--fallback {
	filter: sepia(0.35) brightness(0.38);
	will-change: transform;
	animation: asmon-ken-burns 28s ease-in-out infinite alternate;
}

.asmon-hero__media:has(.asmon-hero__img) {
	will-change: transform;
	animation: asmon-ken-burns 28s ease-in-out infinite alternate;
}

.asmon-hero__media:has(.asmon-hero__img) .asmon-hero__img {
	will-change: transform;
	animation: inherit;
}

@keyframes asmon-ken-burns {
	from { transform: scale(1.05); }
	to { transform: scale(1.12); }
}

.asmon-hero__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		var(--asmon-bg) 0%,
		rgba(14, 11, 8, 0.88) 38%,
		rgba(14, 11, 8, 0.35) 100%
	);
}

.asmon-hero__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	gap: 0.5rem;
	width: 100%;
	max-width: var(--asmon-hero-inner-max);
	margin: 0 auto;
	padding: clamp(1.25rem, 4vh, 2rem) var(--asmon-hero-gutter) clamp(1rem, 2.5vh, 1.5rem);
	box-sizing: border-box;
}

.asmon-hero--has-image .asmon-hero__inner {
	padding-top: clamp(2rem, 7vh, 3.5rem);
	padding-bottom: clamp(1.25rem, 4vh, 2rem);
}

.asmon-hero--compact .asmon-hero__inner {
	padding-top: clamp(1rem, 3vh, 1.5rem);
	padding-bottom: clamp(0.75rem, 2vh, 1.25rem);
}

.asmon-hero__title-row {
	display: flex;
	align-items: flex-start;
	width: 100%;
}

.asmon-hero__scroll {
	display: flex;
	flex-shrink: 0;
	flex-direction: column;
	align-items: flex-start;
	margin-top: 0.8rem;
	margin-right: 1rem;
}

.asmon-hero__scroll-line {
	display: block;
	width: 1px;
	height: 2.5rem;
	background: linear-gradient(to bottom, var(--asmon-accent), transparent);
	animation: asmon-hero-scroll-pulse 2.2s ease-in-out infinite;
}

@keyframes asmon-hero-scroll-pulse {
	0%,
	100% {
		opacity: 0.35;
		transform: scaleY(0.7);
	}

	50% {
		opacity: 1;
		transform: scaleY(1);
	}
}

.asmon-hero__title-group {
	flex: 1;
	min-width: 0;
}

.asmon-hero__title-row:not(:has(.asmon-hero__scroll)) .asmon-hero__title-group {
	padding-left: calc(1rem + 1px);
}

.asmon-hero--interlude .asmon-hero__title-group {
	padding-left: 0;
}

.asmon-hero__label {
	margin: 0 0 0.75rem;
	font-family: var(--asmon-font-display);
	font-size: 0.625rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--asmon-accent);
}

.asmon-hero__title {
	margin: 0 0 1rem;
	font-family: var(--asmon-font-display);
	font-size: clamp(2rem, 6vw, 3.25rem);
	font-weight: 400;
	line-height: 1.15;
	color: var(--asmon-text-bright);
}

.asmon-hero__lead {
	max-width: 36rem;
	width: 100%;
	margin: 0;
	font-size: clamp(1.05rem, 2.8vw, 1.2rem);
	font-style: italic;
	color: var(--asmon-text);
}

.asmon-hero__meta {
	margin-top: 1.25rem;
	font-size: 0.875rem;
	letter-spacing: 0.06em;
	color: var(--asmon-text);
}

body.asmon-page-template:not(.asmon-page-template--accueil-immersif) .asmon-hero__inner,
body.asmon-page-template:not(.asmon-page-template--accueil-immersif) .univers-hero__inner {
	align-items: center;
	text-align: center;
}

body.asmon-page-template:not(.asmon-page-template--accueil-immersif) .asmon-hero__label,
body.asmon-page-template:not(.asmon-page-template--accueil-immersif) .univers-kicker,
body.asmon-page-template:not(.asmon-page-template--accueil-immersif) .univers-hero__kicker {
	width: 100%;
	text-align: center;
}

body.asmon-page-template:not(.asmon-page-template--accueil-immersif) .asmon-hero__title-row {
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

body.asmon-page-template:not(.asmon-page-template--accueil-immersif) .asmon-hero__title-row:not(:has(.asmon-hero__scroll)) .asmon-hero__title-group,
body.asmon-page-template:not(.asmon-page-template--accueil-immersif) .asmon-hero__title-group {
	padding-left: 0;
	width: 100%;
}

body.asmon-page-template:not(.asmon-page-template--accueil-immersif) .asmon-hero__scroll {
	margin: 0 0 0.5rem;
	align-items: center;
}

body.asmon-page-template:not(.asmon-page-template--accueil-immersif) .asmon-hero__lead,
body.asmon-page-template:not(.asmon-page-template--accueil-immersif) .asmon-hero__meta,
body.asmon-page-template:not(.asmon-page-template--accueil-immersif) .univers-hero__lead {
	margin-left: auto;
	margin-right: auto;
}

body.asmon-page-template--univers .univers-hero .asmon-hero__title-row {
	flex-direction: row;
	align-items: flex-start;
	justify-content: center;
}

body.asmon-page-template--univers .univers-hero .asmon-hero__scroll,
body.asmon-page-template--univers .univers-hero .asmon-hero__scroll--hunt {
	flex-shrink: 0;
	margin: 0.8rem 1rem 0 0;
	align-items: flex-start;
}

body.asmon-page-template--univers .univers-hero .asmon-hero__title-group {
	width: auto;
	flex: 0 1 auto;
	max-width: 100%;
	text-align: left;
}

body.asmon-page-template--univers .univers-hero .asmon-hero__title,
body.asmon-page-template--univers .univers-hero .univers-hero__lead {
	margin-left: 0;
	margin-right: 0;
	text-align: left;
}

.asmon-hero--motion::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 90% 70% at 50% -10%, rgba(201, 168, 76, 0.12), transparent 65%);
	animation: asmon-hero-glow 9s ease-in-out infinite alternate;
	pointer-events: none;
}

.asmon-hero--motion {
	--asmon-hero-fade-dur: 2.1s;
	--asmon-hero-fade-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

.asmon-hero--motion .asmon-hero__inner > *,
.asmon-hero--motion .univers-hero__inner > * {
	opacity: 0;
	transform: none;
	filter: blur(8px);
	animation: asmon-hero-fade-in var(--asmon-hero-fade-dur) var(--asmon-hero-fade-ease) forwards;
}

.asmon-hero--motion .asmon-hero__label,
.asmon-hero--motion .univers-hero__kicker { animation-delay: 0.2s; }
.asmon-hero--motion .asmon-hero__title-row,
.asmon-hero--motion .asmon-hero__title,
.asmon-hero--motion .univers-hero__title { animation-delay: 0.55s; }
.asmon-hero--motion .asmon-hero__lead,
.asmon-hero--motion .univers-hero__lead { animation-delay: 0.95s; }
.asmon-hero--motion .asmon-hero__meta { animation-delay: 1.25s; }
.asmon-hero--motion .asmon-hero__scroll { animation-delay: 1.25s; }

@keyframes asmon-hero-glow {
	from { opacity: 0.55; }
	to { opacity: 1; }
}

@keyframes asmon-hero-fade-in {
	to {
		opacity: 1;
		filter: blur(0);
	}
}

.asmon-layout {
	max-width: var(--asmon-wide);
	margin: 0 auto;
	padding: clamp(2rem, 6vh, 3.5rem) clamp(1.25rem, 5vw, 2rem);
}

.asmon-layout--grid-aside {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
}

.asmon-layout--article {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
}

.asmon-layout--split {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
}

@media (min-width: 900px) {
	.asmon-layout--grid-aside {
		grid-template-columns: 14rem 1fr;
		align-items: start;
	}

	.asmon-layout--article {
		grid-template-columns: minmax(0, var(--asmon-content)) minmax(11rem, 16rem);
		justify-content: center;
		column-gap: clamp(2rem, 4vw, 3.5rem);
		align-items: start;
	}

	.asmon-layout--split {
		grid-template-columns: 1fr 1fr;
		align-items: start;
	}
}

.asmon-layout--narrow {
	max-width: calc(var(--asmon-content) + 2.5rem);
}

.asmon-rail {
	width: 100%;
	position: static;
	transform: none;
}

.asmon-prose {
	max-width: var(--asmon-content);
	line-height: 1.7;
}

.asmon-layout--wide .asmon-prose,
.asmon-prose--wide {
	max-width: none;
}

.asmon-prose > :first-child {
	margin-top: 0;
}

.asmon-prose h2 {
	margin: 2.5rem 0 1rem;
	font-family: var(--asmon-font-display);
	font-size: 1.35rem;
	font-weight: 400;
	color: var(--asmon-text-bright);
}

.asmon-prose--doc .asmon-prose-section,
.asmon-prose--legal .asmon-prose-section {
	margin-top: 2.75rem;
	border-bottom: 1px solid rgba(201, 168, 76, 0.12);
}

.asmon-prose--doc > .asmon-prose-section:first-child,
.asmon-prose--legal > .asmon-prose-section:first-child {
	margin-top: 0;
}

.asmon-prose--doc .asmon-prose-section__summary,
.asmon-prose--legal .asmon-prose-section__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: 0;
	padding: 0 0 0.5rem;
	list-style: none;
	cursor: pointer;
	user-select: none;
	-webkit-tap-highlight-color: transparent;
}

.asmon-prose--doc .asmon-prose-section__summary::-webkit-details-marker,
.asmon-prose--legal .asmon-prose-section__summary::-webkit-details-marker {
	display: none;
}

.asmon-prose--doc .asmon-prose-section__summary::marker,
.asmon-prose--legal .asmon-prose-section__summary::marker {
	content: '';
}

.asmon-prose--doc .asmon-prose-section__summary:focus,
.asmon-prose--legal .asmon-prose-section__summary:focus {
	outline: none;
}

.asmon-prose--doc .asmon-prose-section__summary:focus-visible,
.asmon-prose--legal .asmon-prose-section__summary:focus-visible {
	outline: 2px solid rgba(201, 168, 76, 0.45);
	outline-offset: 4px;
	border-radius: 2px;
}

.asmon-prose--doc .asmon-prose-section__summary h2,
.asmon-prose--legal .asmon-prose-section__summary h2 {
	flex: 1;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: none;
	font-size: 1.2rem;
	scroll-margin-top: clamp(4.5rem, 14vh, 6rem);
}

.asmon-prose--doc .asmon-prose-section__chevron,
.asmon-prose--legal .asmon-prose-section__chevron {
	flex-shrink: 0;
	width: 0.55rem;
	height: 0.55rem;
	margin-top: -0.1em;
	border-right: 2px solid rgba(201, 168, 76, 0.75);
	border-bottom: 2px solid rgba(201, 168, 76, 0.75);
	transform: rotate(45deg);
	transition: transform 0.22s ease, margin-top 0.22s ease;
}

.asmon-prose--doc .asmon-prose-section[open] .asmon-prose-section__chevron,
.asmon-prose--legal .asmon-prose-section[open] .asmon-prose-section__chevron {
	margin-top: 0.2em;
	transform: rotate(-135deg);
}

.asmon-prose--doc .asmon-prose-section__body,
.asmon-prose--legal .asmon-prose-section__body {
	padding-top: 0.35rem;
}

.asmon-prose--doc .asmon-prose-section:not([open]) .asmon-prose-section__body,
.asmon-prose--legal .asmon-prose-section:not([open]) .asmon-prose-section__body {
	display: none;
}

.asmon-prose--doc > p.asmon-accordion-break:empty,
.asmon-prose--legal > p.asmon-accordion-break:empty {
	display: none;
	margin: 0;
	padding: 0;
}

.asmon-prose h3 {
	margin: 1.75rem 0 0.65rem;
	font-family: var(--asmon-font-display);
	font-size: 1.05rem;
	color: var(--asmon-text-bright);
}

.asmon-prose p {
	margin: 0 0 1rem;
}

.asmon-prose ul,
.asmon-prose ol {
	margin: 0 0 1rem;
	padding-left: 1.25rem;
}

.asmon-prose blockquote,
.asmon-prose .wp-block-quote,
.asmon-prose .wp-block-pullquote {
	margin: 1.5rem 0;
}

.asmon-prose blockquote,
.asmon-prose .wp-block-quote blockquote {
	padding-left: 1.25rem;
	border-left: 2px solid var(--asmon-accent);
	font-style: italic;
	color: var(--asmon-text-bright);
}

.asmon-prose .wp-block-quote,
.asmon-prose .wp-block-pullquote {
	opacity: 1;
	transform: none;
}

.asmon-prose img {
	max-width: 100%;
	height: auto;
}

.asmon-prose .wp-block-image img,
.asmon-prose figure img {
	border: 1px solid var(--asmon-line);
	filter: sepia(0.28) brightness(0.62);
}

.asmon-prose figcaption,
.figure figcaption {
	color: var(--asmon-text);
	font-style: italic;
}

.asmon-toc {
	padding: 1.25rem;
	border: 1px solid var(--asmon-line);
	background: transparent;
}

@media (min-width: 900px) {
	.asmon-toc {
		position: sticky;
		top: 4rem;
	}
}

.asmon-toc__title {
	margin: 0 0 0.75rem;
	font-family: var(--asmon-font-display);
	font-size: 0.625rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--asmon-accent);
}

.asmon-toc ol {
	margin: 0;
	padding-left: 1.1rem;
	font-size: 0.95rem;
}

.asmon-toc a {
	color: var(--asmon-text);
	text-decoration: none;
}

.asmon-toc a:hover {
	color: var(--asmon-text-bright);
}

.asmon-callout {
	margin: 1.5rem 0;
	padding: 1.25rem 1.5rem;
	border: 1px solid var(--asmon-line);
	background: var(--asmon-bg-elevated);
}

.asmon-callout__title {
	margin: 0 0 0.5rem;
	font-family: var(--asmon-font-display);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--asmon-accent);
}

.asmon-callout p {
	margin: 0;
	color: var(--asmon-text);
}

.asmon-fiche-meta {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.75rem;
	margin-bottom: 2rem;
}

@media (min-width: 560px) {
	.asmon-fiche-meta {
		grid-template-columns: repeat(2, 1fr);
	}
}

.asmon-fiche-meta__item {
	padding: 0.85rem 1rem;
	border: 1px solid var(--asmon-line);
	background: var(--asmon-bg-elevated);
}

.asmon-fiche-meta__label {
	display: block;
	margin-bottom: 0.25rem;
	font-family: var(--asmon-font-display);
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--asmon-accent);
}

.asmon-fiche-meta__value {
	color: var(--asmon-text-bright);
}

.asmon-cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
}

.asmon-card {
	display: block;
	padding: 1.35rem 0;
	border-bottom: 1px solid var(--asmon-line);
	color: inherit;
	text-decoration: none;
	transition:
		border-color 0.3s ease,
		transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
		color 0.2s ease;
	transform: perspective(800px) rotateX(calc(var(--card-y, 0) * -3deg)) rotateY(calc(var(--card-x, 0) * 4deg));
}

.asmon-card:hover {
	transform: perspective(800px) rotateX(calc(var(--card-y, 0) * -3deg)) rotateY(calc(var(--card-x, 0) * 4deg)) translateY(-3px);
}

.asmon-card:hover .asmon-card__title {
	color: var(--asmon-text-bright);
}

.asmon-card__tag {
	font-family: var(--asmon-font-display);
	font-size: 0.5625rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--asmon-accent);
}

.asmon-card__title {
	margin: 0.35rem 0;
	font-family: var(--asmon-font-display);
	font-size: 1.15rem;
	color: var(--asmon-text-bright);
	transition: color 0.2s ease;
}

.asmon-card__excerpt {
	margin: 0;
	font-size: 1rem;
}

.asmon-card__date {
	display: block;
	margin-top: 0.45rem;
	font-size: 0.8125rem;
}

.asmon-timeline {
	position: relative;
	margin: 0;
	padding: 0 0 0 1.5rem;
	list-style: none;
	border-left: 1px solid var(--asmon-line);
}

.asmon-timeline__item {
	position: relative;
	margin-bottom: 2rem;
	padding-left: 0.5rem;
}

.asmon-timeline__item::before {
	content: "";
	position: absolute;
	left: -1.62rem;
	top: 0.45rem;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--asmon-accent);
	box-shadow: 0 0 0 4px var(--asmon-bg);
}

.asmon-timeline__date {
	margin: 0 0 0.35rem;
	font-family: var(--asmon-font-display);
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--asmon-accent);
}

.asmon-timeline__title {
	margin: 0 0 0.5rem;
	font-family: var(--asmon-font-display);
	font-size: 1.1rem;
	color: var(--asmon-text-bright);
}

.asmon-magazine .wp-block-columns,
.asmon-magazine .asmon-magazine-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	margin: 2rem 0;
	align-items: center;
}

@media (min-width: 768px) {
	.asmon-magazine .wp-block-columns,
	.asmon-magazine .asmon-magazine-row {
		grid-template-columns: 1fr 1fr;
	}

	.asmon-magazine .asmon-magazine-row--flip .asmon-magazine-row__media {
		order: 2;
	}
}

.asmon-magazine-row__media img,
.asmon-magazine .wp-block-image img,
.asmon-magazine-row img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border: 1px solid var(--asmon-line);
	filter: sepia(0.3) brightness(0.58);
	transition: filter 0.5s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.asmon-magazine-row.is-visible img {
	filter: sepia(0.22) brightness(0.68);
}

.asmon-contact-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	margin-bottom: 2.5rem;
}

@media (min-width: 560px) {
	.asmon-contact-grid {
		grid-template-columns: 1fr 1fr;
	}
}

.asmon-contact-grid__item {
	padding: 1.15rem;
	border: 1px solid var(--asmon-line);
	background: var(--asmon-bg-elevated);
}

.asmon-contact-grid__item h3 {
	margin: 0 0 0.45rem;
	font-family: var(--asmon-font-display);
	font-size: 0.8rem;
	color: var(--asmon-text-bright);
}

.asmon-contact-grid__item p {
	margin: 0;
	font-size: 0.95rem;
}

.asmon-rail__heading {
	margin: 0 0 0.75rem;
	font-family: var(--asmon-font-display);
	font-size: 0.625rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--asmon-accent);
}

html.asmon-js {
	overflow-x: clip;
}

body.asmon-immersive {
	overflow-x: clip;
}

.reveal,
.asmon-callout {
	opacity: 0;
	transform: translateY(1.75rem);
	transition:
		opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal.is-visible,
.asmon-callout.is-visible {
	opacity: 1;
	transform: translateY(var(--reveal-shift, 0));
}

.reveal[data-reveal-from="above"]:not(.is-visible),
.reveal.is-exiting[data-reveal-exit="above"] {
	transform: translateY(-1.35rem);
}

.reveal[data-reveal-from="below"]:not(.is-visible),
.reveal.is-exiting[data-reveal-exit="below"] {
	transform: translateY(1.75rem);
}

body.asmon-scroll-up .reveal:not(.is-visible) {
	transform: translateY(-1.35rem);
}

body.asmon-scroll-down .reveal:not(.is-visible) {
	transform: translateY(1.75rem);
}

.reveal--d1 { transition-delay: 0.08s; }
.reveal--d2 { transition-delay: 0.16s; }
.reveal--d3 { transition-delay: 0.24s; }

.reveal:not(.is-visible) {
	transition-delay: calc(0.06s * var(--reveal-i, 0));
}

.asmon-grain {
	position: fixed;
	inset: 0;
	z-index: 9998;
	pointer-events: none;
	opacity: 0.04;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-size: 200px 200px;
	mix-blend-mode: soft-light;
	animation: asmon-grain-pulse 10s ease-in-out infinite alternate;
}

@keyframes asmon-grain-pulse {
	0% { opacity: 0.03; }
	100% { opacity: 0.05; }
}

.asmon-embers {
	position: absolute;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	z-index: 0;
}

.asmon-embers span {
	position: absolute;
	bottom: -5%;
	left: var(--e-left, 50%);
	width: var(--e-size, 3px);
	height: var(--e-size, 3px);
	border-radius: 50%;
	background: rgba(201, 168, 76, 0.9);
	box-shadow: 0 0 10px rgba(201, 168, 76, 0.65);
	opacity: 0;
	animation: asmon-ember-rise var(--e-duration, 8s) ease-in-out infinite;
	animation-delay: var(--e-delay, 0s);
}

@keyframes asmon-ember-rise {
	0% {
		opacity: 0;
		transform: translateY(0) scale(0.6);
	}
	8% { opacity: 0.85; }
	25% { opacity: 1; }
	100% {
		opacity: 0;
		transform: translateY(-115vh) scale(0.35);
	}
}

body.asmon-page-template--page .asmon-hero__scroll-hint,
body.asmon-page-template--page-toc .asmon-hero__scroll-hint {
	display: none !important;
}

.asmon-hero__scroll-hint {
	position: absolute;
	bottom: 1.5rem;
	left: 50%;
	z-index: 2;
	width: 1px;
	height: 2.25rem;
	background: linear-gradient(to bottom, var(--asmon-accent), transparent);
	box-shadow: 0 0 10px rgba(201, 168, 76, 0.35);
	opacity: 0.8;
	transform: translateX(-50%);
	transition: opacity 0.4s ease;
	animation: asmon-hint-bob 2.2s ease-in-out infinite;
}

.asmon-hero__scroll-hint.is-hidden {
	opacity: 0;
	pointer-events: none;
}

@keyframes asmon-hint-bob {
	0%, 100% { transform: translateX(-50%) translateY(0); }
	50% { transform: translateX(-50%) translateY(7px); }
}

.asmon-embers--soft span {
	background: rgba(201, 168, 76, 0.7);
	box-shadow: 0 0 8px rgba(201, 168, 76, 0.45);
}

.asmon-ambient,
.asmon-ambient-veil {
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	overflow: hidden;
}

.asmon-ambient {
	background:
		radial-gradient(ellipse 70% 55% at 12% 18%, rgba(201, 168, 76, 0.1), transparent 72%),
		radial-gradient(ellipse 65% 50% at 88% 72%, rgba(90, 62, 32, 0.11), transparent 74%),
		radial-gradient(ellipse 50% 45% at 50% 100%, rgba(30, 24, 16, 0.4), transparent 68%);
	animation: asmon-ambient-drift 56s ease-in-out infinite alternate;
}

.asmon-ambient-veil {
	background:
		radial-gradient(circle at 28% 58%, rgba(201, 168, 76, 0.05), transparent 45%),
		radial-gradient(circle at 72% 38%, rgba(120, 85, 45, 0.06), transparent 42%);
	animation: asmon-ambient-veil 80s ease-in-out infinite alternate-reverse;
}

@keyframes asmon-ambient-drift {
	0% { opacity: 0.75; }
	100% { opacity: 1; }
}

@keyframes asmon-ambient-veil {
	0% { opacity: 0.6; }
	100% { opacity: 0.95; }
}

body.asmon-page-template,
body.asmon-tpl-page.asmon-immersive {
	background-color: var(--asmon-bg);
	background-image: linear-gradient(
		165deg,
		#0c0906 0%,
		#100d09 35%,
		#0e0b08 65%,
		#12100c 100%
	);
	background-size: 220% 220%;
	animation: asmon-bg-breathe 120s ease-in-out infinite alternate;
}

@keyframes asmon-bg-breathe {
	0% { background-position: 0% 40%; }
	100% { background-position: 100% 60%; }
}

body.asmon-immersive {
	position: relative;
	isolation: isolate;
}

body.asmon-immersive > :not(.asmon-grain):not(.asmon-ambient):not(.asmon-ambient-veil):not(.asmon-overlay):not(.asmon-sidebar):not(.asmon-burger):not(.asmon-lightbox-root) {
	position: relative;
	z-index: 1;
}

body.asmon-menu-open .asmon-overlay {
	z-index: 10050;
}

body.asmon-menu-open .asmon-sidebar {
	z-index: 10051;
}

body.asmon-menu-open .asmon-burger {
	z-index: 10052;
}

body.asmon-menu-open .asmon-grain {
	z-index: 10040;
}

.asmon-hero__inner {
	transition: transform 0.35s ease-out;
	will-change: transform;
}

.asmon-hero {
	--asmon-parallax-hero: 0px;
}

.asmon-hero .asmon-hero__inner {
	transform: translateY(var(--asmon-parallax-hero));
}

.asmon-layout {
	transition: opacity 0.4s ease;
}

body.asmon-scroll-down:not(.asmon-at-top) .asmon-layout {
	opacity: 0.98;
}

body.asmon-scroll-up .asmon-layout {
	opacity: 1;
}

.figure,
.asmon-prose figure,
.asmon-prose .wp-block-image,
.asmon-magazine-row > div:first-child,
.asmon-magazine-row__media {
	position: relative;
}

.figure::before,
.asmon-prose figure::before,
.asmon-prose .wp-block-image::before,
.asmon-magazine-row > div:first-child::before,
.asmon-magazine-row__media::before {
	content: "";
	position: absolute;
	inset: -6px;
	pointer-events: none;
	z-index: 1;
	opacity: 0;
	border-radius: 1px;
	background: radial-gradient(ellipse at center, rgba(201, 168, 76, 0.14), transparent 68%);
	transition: opacity 0.55s ease;
}

.figure:hover::before,
.asmon-prose figure:hover::before,
.asmon-prose .wp-block-image:hover::before,
.asmon-magazine-row.is-visible:hover > div:first-child::before,
.asmon-magazine-row.is-visible:hover .asmon-magazine-row__media::before {
	opacity: 1;
}

.asmon-prose img,
.figure img,
.asmon-magazine-row img {
	transition: filter 0.55s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.55s ease;
}

.figure:hover img,
.asmon-prose img:hover,
.asmon-prose figure:hover img,
.asmon-magazine-row.is-visible:hover img {
	filter: sepia(0.18) brightness(0.74) !important;
	transform: scale(1.01);
	box-shadow: 0 0 22px rgba(201, 168, 76, 0.16);
}

.asmon-card,
.btn,
.tpl-pager a,
.asmon-toc a,
.asmon-contact-grid__item {
	transition:
		color 0.25s ease,
		border-color 0.25s ease,
		transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.28s ease,
		background 0.25s ease;
}

.asmon-card:active,
.asmon-card.is-pressed {
	transform: perspective(800px) translateY(-1px) scale(0.995);
}

.btn:active {
	transform: translateY(0) scale(0.98);
}

.btn:hover,
.btn:focus-visible {
	box-shadow: 0 0 18px rgba(201, 168, 76, 0.18);
}

.asmon-contact-grid__item:hover {
	border-color: rgba(201, 168, 76, 0.35);
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.25);
	transform: translateY(-2px);
}

.tpl-pager a:hover {
	text-shadow: 0 0 10px rgba(201, 168, 76, 0.2);
}

.asmon-toc a:hover {
	padding-left: 0.35rem;
}

.asmon-callout:hover {
	border-color: rgba(201, 168, 76, 0.25);
}

.asmon-toc a.is-active {
	color: var(--asmon-text-bright);
	border-left-color: var(--asmon-accent);
	padding-left: 0.65rem;
	margin-left: -0.65rem;
	border-left: 2px solid var(--asmon-accent);
}

.asmon-callout {
	transition: box-shadow 0.5s ease;
}

.figure {
	transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

body.asmon-immersive .asmon-hero--motion::before {
	animation-duration: 7s;
}

.asmon-page-template--carnet .asmon-journal {
	max-width: var(--asmon-content);
	margin: 0 auto;
}

.asmon-journal-entry {
	position: relative;
	margin: 0 0 clamp(3rem, 8vh, 4.5rem);
	padding: 0 0 0 1.35rem;
	border-left: 1px solid var(--asmon-line);
}

.asmon-journal-entry::before {
	content: "";
	position: absolute;
	left: -4px;
	top: 0.35rem;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--asmon-accent);
	box-shadow: 0 0 10px rgba(201, 168, 76, 0.45);
	opacity: 0;
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.asmon-journal-entry.is-visible::before {
	opacity: 1;
}

.asmon-journal-entry__date {
	margin: 0 0 0.5rem;
	font-family: var(--asmon-font-display);
	font-size: 0.65rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--asmon-accent);
}

.asmon-journal-entry__title {
	margin: 0 0 0.85rem;
	font-family: var(--asmon-font-display);
	font-size: 1.2rem;
	font-weight: 400;
	color: var(--asmon-text-bright);
}

.asmon-journal-entry .figure {
	margin: 1.25rem 0;
}

body.asmon-page-template,
body.asmon-tpl-page {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

body.asmon-page-template #main-container,
body.asmon-page-template .site,
body.asmon-page-template main {
	flex: 1 0 auto;
}

body.asmon-page-template footer.ct-footer,
body.asmon-page-template [data-id="footer"],
body.asmon-page-template .ct-footer,
body.asmon-tpl-page .tpl-pager,
body.asmon-tpl-page .tpl-index-footer,
body.asmon-tpl-page footer {
	position: relative !important;
	bottom: auto !important;
	inset: auto !important;
	flex-shrink: 0;
	z-index: auto;
}

body.asmon-page-template #main-container {
	background-color: var(--asmon-bg);
}

body.asmon-page-template footer.ct-footer,
body.asmon-page-template [data-id="footer"],
body.asmon-page-template .ct-footer,
body.asmon-page-template #footer {
	background-color: var(--asmon-bg) !important;
	background: var(--asmon-bg) !important;
	color: var(--asmon-text) !important;
	border-top: 1px solid var(--asmon-line) !important;
	--theme-text-color: var(--asmon-text);
	--theme-link-initial-color: var(--asmon-accent);
	--theme-link-hover-color: var(--asmon-text-bright);
	text-align: center;
	font-size: 0.8125rem;
	letter-spacing: 0.08em;
	padding-bottom: 1rem;
}

body.asmon-page-template footer.ct-footer .ct-container,
body.asmon-page-template .ct-footer .ct-container {
	justify-content: center;
	text-align: center;
}

body.asmon-page-template footer.ct-footer [data-row],
body.asmon-page-template .ct-footer [data-row] {
	justify-content: center;
}

body.asmon-page-template footer.ct-footer p,
body.asmon-page-template .ct-footer p,
body.asmon-page-template footer .copyright,
body.asmon-page-template .ct-footer-copyright {
	margin-top: 0;
	margin-bottom: 0;
}

body.asmon-page-template footer.ct-footer [data-row],
body.asmon-page-template .ct-footer [data-row],
body.asmon-page-template footer.ct-footer .ct-container,
body.asmon-page-template .ct-footer .ct-container,
body.asmon-page-template footer.ct-footer .ct-widget,
body.asmon-page-template .ct-footer .ct-widget {
	background: transparent !important;
	background-color: transparent !important;
}

body.asmon-page-template footer.ct-footer :is(h1, h2, h3, h4, h5, h6, .widget-title, .ct-widget-title),
body.asmon-page-template .ct-footer :is(h1, h2, h3, h4, h5, h6, .widget-title, .ct-widget-title) {
	color: var(--asmon-text-bright) !important;
}

body.asmon-page-template footer.ct-footer :is(p, li, span, div, td, th, label, .ct-meta),
body.asmon-page-template .ct-footer :is(p, li, span, div, td, th, label, .ct-meta) {
	color: var(--asmon-text) !important;
}

body.asmon-page-template footer.ct-footer a,
body.asmon-page-template .ct-footer a {
	color: var(--asmon-accent) !important;
}

body.asmon-page-template footer.ct-footer a:hover,
body.asmon-page-template footer.ct-footer a:focus-visible,
body.asmon-page-template .ct-footer a:hover,
body.asmon-page-template .ct-footer a:focus-visible {
	color: var(--asmon-text-bright) !important;
}

body.asmon-page-template footer.ct-footer [data-row*="bottom"],
body.asmon-page-template .ct-footer [data-row*="bottom"],
body.asmon-page-template footer .copyright,
body.asmon-page-template .ct-footer-copyright {
	background-color: transparent !important;
	border-top: none;
	text-align: center;
	font-size: 0.8125rem;
	letter-spacing: 0.08em;
}

/* Pages à fond custom : footer aligné sur le body */
body.asmon-page-template--accueil-immersif footer.ct-footer,
body.asmon-page-template--accueil-immersif .ct-footer,
body.asmon-page-template--univers footer.ct-footer,
body.asmon-page-template--univers .ct-footer {
	background-color: transparent !important;
	background: transparent !important;
}

body.asmon-menu-open footer.ct-footer,
body.asmon-menu-open [data-id="footer"],
body.asmon-menu-open .ct-footer,
body.asmon-menu-open .tpl-pager,
body.asmon-menu-open .tpl-index-footer {
	z-index: 0 !important;
}

.asmon-page-template--chronologie .asmon-prose section.is-visible > h2 {
	animation: asmon-chrono-pulse 0.9s ease;
}

@keyframes asmon-chrono-pulse {
	0% { border-left-color: transparent; }
	40% { border-left-color: var(--asmon-accent); }
	100% { border-left-color: var(--asmon-accent); }
}

@media (max-width: 639px) {
	.asmon-hero__inner,
	.univers-hero__inner {
		align-items: center;
		text-align: center;
	}

	.asmon-hero__title-row {
		flex-direction: column;
		align-items: center;
	}

	.asmon-hero__scroll {
		margin-right: 0;
		align-items: center;
	}

	.univers-kicker,
	.univers-hero__kicker {
		text-align: center;
	}

	body.asmon-page-template--univers .univers-hero .asmon-hero__title-row {
		flex-direction: row;
		align-items: flex-start;
		justify-content: center;
	}

	body.asmon-page-template--univers .univers-hero .asmon-hero__scroll,
	body.asmon-page-template--univers .univers-hero .asmon-hero__scroll--hunt {
		margin: 0.8rem 1rem 0 0;
		align-items: flex-start;
	}
}

.asmon-grain,
.asmon-ambient,
.asmon-ambient-veil {
	contain: strict;
}

@media (max-width: 767px), (hover: none) and (pointer: coarse) {
	.asmon-prose {
		font-size: 1.05rem;
		line-height: 1.65;
	}

	.asmon-prose p,
	.asmon-prose li {
		max-width: none;
	}

	.asmon-hero__title {
		font-size: clamp(1.65rem, 7vw, 2.35rem);
		line-height: 1.15;
	}

	.asmon-hero__lead {
		font-size: 1rem;
		line-height: 1.55;
	}

	.asmon-grain {
		opacity: 0.032;
		animation-duration: 14s;
	}

	.asmon-hero__media,
	.asmon-hero__media--fallback,
	.asmon-hero__media:has(.asmon-hero__img) {
		animation: none;
		will-change: auto;
	}

	.asmon-hero__media .asmon-hero__img,
	.asmon-hero__media--fallback {
		filter: none;
	}

	.asmon-hero--motion .asmon-hero__inner > * {
		opacity: 1;
		filter: none;
		animation: none;
	}

	.reveal:not(.is-visible) {
		filter: blur(4px);
	}

	.reveal.is-visible {
		filter: blur(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.asmon-hero--motion .asmon-hero__inner > *,
	.reveal {
		opacity: 1;
		transform: none;
		filter: none;
		animation: none;
		transition: none;
	}

	.asmon-hero--motion::before,
	.asmon-hero__media,
	.asmon-hero__media .asmon-hero__img,
	.asmon-grain,
	.asmon-ambient,
	.asmon-ambient-veil,
	body.asmon-page-template,
	body.asmon-tpl-page.asmon-immersive,
	.asmon-embers span,
	.asmon-hero__scroll-hint,
	.asmon-hero__scroll-line {
		animation: none;
	}

	.asmon-card {
		transform: none;
	}

	.asmon-scroll-progress {
		transform: scaleX(var(--asmon-scroll-ratio));
	}

	.asmon-scroll-progress::after {
		animation: none;
		opacity: 0.65;
	}
}
