/* Homepage composition. Type and motion tokens live in site.css. */
.home.maestra-site .mm-header { justify-content: flex-end; }
.home.maestra-site .mm-header__brand { display: none; }
.mm-home:focus { outline: none; }
.mm-home { font-size: var(--maestra-text-sm); }
.mm-home :where(section[id]) { scroll-margin-top: 5rem; }

/* The first image is a real picture in the initial HTML, never lazy-loaded. */
.mm-hero { --mm-hero-stage: clamp(45rem, 100svh, 75rem); position: relative; isolation: isolate; height: var(--mm-hero-stage); color: var(--maestra-white); }
.mm-hero__stage { position: relative; height: 100%; }
.mm-hero__photo { position: absolute; inset: 0; z-index: -2; overflow: hidden; background: var(--maestra-brown); }
/* Cadrage de Figma (12202:7189) : photo à 126,46 % de haut, décalée de -16,85 %, soit 64 % de l’excédent au-dessus. */
.mm-hero__photo :is(img, video) { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
/* Film du hero (12 octobre 2026) : au-dessus de l’image fixe, qu’il révèle en fondu quand il joue (home-motion.js). */
.mm-hero__video { position: absolute; inset: 0; opacity: 0; transition: opacity .8s var(--maestra-ease); }
.mm-hero__video.is-playing { opacity: 1; }
/* Dégradé bas : tient le logo blanc sur les scènes claires. */
.mm-hero__photo::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, color-mix(in srgb, var(--maestra-ink) 35%, transparent), transparent 45%); pointer-events: none; }
.mm-hero__photo::after { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(96deg, color-mix(in srgb, var(--maestra-brown) 40%, transparent) 3.4%, transparent 57%); pointer-events: none; }
.mm-hero__content { display: flex; flex-direction: column; gap: var(--maestra-space-l); height: 100%; padding: 5.25rem var(--maestra-gutter) var(--maestra-space-s); }
/* Figma du 29 septembre 2026 : plus de filet au-dessus du titre, qui commence juste sous le menu (84 px). */
.mm-hero__top { container-type: inline-size; flex: 1; min-height: 0; display: flex; flex-direction: column; justify-content: space-between; padding-bottom: var(--maestra-space-s); }
/* Aucun mot coupé : la taille est plafonnée par la largeur disponible divisée par la
   longueur du mot le plus long, en em (« l’inoubliable. » 6,95 ; « unforgettable. » 7,8).
   À remesurer si le titre change. */
.mm-hero h1 { font-size: min(var(--maestra-h1), 100cqi / 7.1); line-height: .9; text-wrap: initial; }
.language-en .mm-hero h1 { font-size: min(var(--maestra-h1), 100cqi / 8); }
/* Chaque ligne du titre est son propre masque (marges pour les accents) ; la ligne y monte à l'ouverture. */
.mm-hero h1 > span { display: block; clip-path: inset(-.3em -.15em -.35em); }
.mm-hero h1 > span > span { display: block; }
.mm-hero__note { display: flex; align-items: flex-end; gap: var(--maestra-space-s); margin-top: var(--maestra-space-m); }
.mm-hero__note p { max-width: 15.15em; font: italic 400 var(--maestra-text-sm)/1.3 var(--maestra-serif); text-align: justify; hyphens: auto; text-wrap: wrap; }
.mm-hero__wordmark { padding-top: var(--maestra-space-s); border-top: 1px solid color-mix(in srgb, var(--maestra-white) 30%, transparent); }
.mm-hero__wordmark img { display: block; width: 100%; height: auto; }

.mm-approach { padding-block: var(--maestra-section); }
.mm-approach__top { grid-column: 1/-1; min-height: 14.375rem; padding-top: var(--maestra-space-s); border-top: 1px solid var(--maestra-rule); }
.mm-approach h2 { grid-column: 1/6; max-width: 11em; line-height: .9; text-wrap: initial; }
.mm-approach__copy { grid-column: 9/13; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; padding-bottom: var(--maestra-space-2xs); }
.mm-approach__copy p { max-width: 24.4em; line-height: 1.6; }
.mm-approach__copy .mm-text-link { margin-top: var(--maestra-space-s); }
.mm-approach__film { grid-column: 3/13; aspect-ratio: 16/9; margin-top: var(--maestra-space-s); }

/* Native radio selection: keyboard, touch and mouse, without a JS carousel. */
.mm-partners { padding-block: clamp(2rem, 1.5rem + 1.7vw, 3.125rem) 5.4rem; row-gap: var(--maestra-space-l); }
.mm-partners__heading { grid-column: 2/13; display: flex; justify-content: space-between; align-items: flex-start; gap: var(--maestra-space-s); padding-top: var(--maestra-space-s); min-height: 4.5rem; border-top: 1px solid var(--maestra-rule); }
.mm-partners__selector { grid-column: 2/12; display: grid; grid-template-columns: 1fr 1fr; gap: var(--maestra-space); min-width: 0; margin: 0; padding: 0; border: 0; }
.mm-partners__names { height: 28rem; overflow-y: auto; overscroll-behavior-y: contain; scrollbar-width: thin; scrollbar-color: var(--maestra-camel-light) transparent; padding: 4rem var(--maestra-space-2xs); mask-image: linear-gradient(transparent, black 15%, black 85%, transparent); }
.mm-partners__names:focus-within { mask-image: none; }
.mm-partner-option { position: relative; display: flex; align-items: center; min-height: 5rem; padding: var(--maestra-space-2xs); cursor: pointer; font: 400 var(--maestra-editorial)/1.1 var(--maestra-serif); color: var(--maestra-grey-dark); }
.mm-partner-option input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.mm-partner-option span { transition: color var(--maestra-hover-fade) ease, transform var(--maestra-hover-motion) var(--maestra-ease); }
.mm-partner-option:has(:checked) { color: var(--maestra-brown); font-style: italic; font-weight: 500; }
.mm-partner-option:has(:focus-visible) { outline: 2px solid var(--maestra-brown); outline-offset: -2px; }
@media (hover: hover) { .mm-partner-option:hover span { color: var(--maestra-brown); transform: translateX(3px); } }
.mm-partners__visual { position: relative; width: min(100%, 20.0625rem); aspect-ratio: 1; align-self: center; margin-left: clamp(0rem, -2rem + 5vw, 2.5rem); }
.mm-partner-photo { display: none; position: absolute; inset: 0; background: var(--maestra-camel-light); }
.mm-partner-photo > img:first-child { width: 100%; height: 100%; object-fit: cover; animation: mm-partner-settle 1.25s var(--maestra-ease); }
/* Logos SVG déjà blancs dans leur fichier (29 septembre 2026) : pas de filtre de couleur. Voile en haut de la photo pour leur lisibilité. */
.mm-partner-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(color-mix(in srgb, var(--maestra-ink) 22%, transparent), transparent 50%); pointer-events: none; }
.mm-partner-photo .mm-partner-logo { position: absolute; z-index: 2; top: var(--maestra-space-xs); left: 18%; width: 64%; height: 5rem; object-fit: contain; filter: drop-shadow(0 1px 5px color-mix(in srgb, var(--maestra-ink) 15%, transparent)); }
.mm-partners__selector:has([value="audemars-piguet"]:checked) [data-partner="audemars-piguet"],
.mm-partners__selector:has([value="pere-bise"]:checked) [data-partner="pere-bise"],
.mm-partners__selector:has([value="baume-mercier"]:checked) [data-partner="baume-mercier"],
.mm-partners__selector:has([value="breguet"]:checked) [data-partner="breguet"],
.mm-partners__selector:has([value="chopard"]:checked) [data-partner="chopard"],
.mm-partners__selector:has([value="costes"]:checked) [data-partner="costes"],
.mm-partners__selector:has([value="dolder-grand"]:checked) [data-partner="dolder-grand"],
.mm-partners__selector:has([value="fifa"]:checked) [data-partner="fifa"],
.mm-partners__selector:has([value="four-seasons-geneva"]:checked) [data-partner="four-seasons-geneva"],
.mm-partners__selector:has([value="frederique-constant"]:checked) [data-partner="frederique-constant"],
.mm-partners__selector:has([value="jacob-co"]:checked) [data-partner="jacob-co"],
.mm-partners__selector:has([value="kempinski-st-moritz"]:checked) [data-partner="kempinski-st-moritz"],
.mm-partners__selector:has([value="domaine-de-verchant"]:checked) [data-partner="domaine-de-verchant"],
.mm-partners__selector:has([value="roches-blanches"]:checked) [data-partner="roches-blanches"],
.mm-partners__selector:has([value="oetker"]:checked) [data-partner="oetker"],
.mm-partners__selector:has([value="mandarin-oriental-paris"]:checked) [data-partner="mandarin-oriental-paris"],
.mm-partners__selector:has([value="me-and-all"]:checked) [data-partner="me-and-all"],
.mm-partners__selector:has([value="messika"]:checked) [data-partner="messika"],
.mm-partners__selector:has([value="michel-reybier"]:checked) [data-partner="michel-reybier"],
.mm-partners__selector:has([value="omega"]:checked) [data-partner="omega"],
.mm-partners__selector:has([value="park-hyatt"]:checked) [data-partner="park-hyatt"],
.mm-partners__selector:has([value="patek-philippe"]:checked) [data-partner="patek-philippe"],
.mm-partners__selector:has([value="raffles"]:checked) [data-partner="raffles"],
.mm-partners__selector:has([value="richard-mille"]:checked) [data-partner="richard-mille"],
.mm-partners__selector:has([value="roger-dubuis"]:checked) [data-partner="roger-dubuis"],
.mm-partners__selector:has([value="tudor"]:checked) [data-partner="tudor"],
.mm-partners__selector:has([value="ultima"]:checked) [data-partner="ultima"],
.mm-partners__selector:has([value="w-verbier"]:checked) [data-partner="w-verbier"],
.mm-partners__selector:has([value="zenith"]:checked) [data-partner="zenith"] { display: block; animation: mm-partner-enter 700ms var(--maestra-ease); }
@keyframes mm-partner-enter { from { opacity: 0; } to { opacity: 1; } }
@keyframes mm-partner-settle { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes mm-partner-wipe { from { clip-path: inset(100% 0 0); } to { clip-path: inset(0); } }
@keyframes mm-partner-logo { from { opacity: 0; transform: translate3d(0, .75rem, 0); } to { opacity: 1; transform: none; } }

/* Texte centré (composant statement) : marges propres à l'accueil. */
.mm-exigence { padding-block: clamp(5rem, 3rem + 7.43vw, 11.25rem); }

.mm-worlds { position: relative; padding-bottom: var(--maestra-section); }
.mm-worlds__aside { grid-column: 1/2; grid-row: 1; padding-top: 42rem; pointer-events: none; }
.mm-worlds__symbol { display: block; position: sticky; top: 70svh; width: 71px; height: 111px; background: var(--maestra-ink); mask: url('../../images/home/monogram.svg') center / contain no-repeat; transition: background-color var(--maestra-hover-fade) ease; }
.mm-worlds:has(.mm-world--0:focus-within) .mm-worlds__symbol { background-color: var(--maestra-pink); }
@media (hover: hover) { .mm-worlds:has(.mm-world--0:hover) .mm-worlds__symbol { background-color: var(--maestra-pink); } }
.mm-worlds__list { grid-column: 1/-1; grid-row: 1; min-width: 0; }
.mm-world { position: relative; display: grid; gap: var(--maestra-space); padding-block: var(--maestra-space-s); border-top: 1px solid var(--maestra-rule); }
.mm-world--0 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.mm-world--0 .mm-world__visual { grid-column: 7/13; grid-row: 1; aspect-ratio: 684/827; }
.mm-world--0 .mm-world__copy { grid-column: 3/7; grid-row: 1; text-align: right; align-items: flex-end; }
.mm-world__copy { container-type: inline-size; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
/* Même règle (« Horlogerie » 5,81 em ; « Watchmaking » 6,94 em). */
.mm-world__copy h2 { --mm-world-title: var(--maestra-h3); max-width: 100%; font-size: min(var(--mm-world-title), 100cqi / 5.95); }
.language-en .mm-world__copy h2 { font-size: min(var(--mm-world-title), 100cqi / 7.1); }
.mm-world__copy p { max-width: 17.6em; margin-top: var(--maestra-space-s); }
.mm-world__copy .mm-text-link { margin-top: var(--maestra-space-s); }
.mm-world__visual { display: block; }
.mm-world__image { width: 100%; height: 100%; transform: scale(1); transition: transform 2s var(--maestra-ease); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.mm-world__visual:is(:hover, :focus-visible) .mm-world__image { transform: scale(1.018); }
}
.mm-world--1, .mm-world--2 { margin-left: calc((100% + var(--maestra-space))/2); grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--maestra-space-xs); }
.mm-world--2 { border-bottom: 1px solid var(--maestra-rule); }
.mm-world--1 .mm-world__visual, .mm-world--2 .mm-world__visual { aspect-ratio: 688/910; }
.mm-world--1 .mm-text-link, .mm-world--2 .mm-text-link { margin-top: auto; margin-bottom: -.5rem; }

.mm-maison { position: relative; isolation: isolate; padding-block: var(--maestra-section); row-gap: var(--maestra-space-xl); color: var(--maestra-white); background: var(--maestra-brown); }
.mm-maison::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: url('../../images/footer-grain-tile.webp') repeat; mix-blend-mode: screen; opacity: .05; }
.mm-maison__signature { grid-column: 1/10; position: relative; min-height: 19.4375rem; }
.mm-maison__signature > svg { display: block; position: absolute; width: min(100%, 49.5rem); height: auto; left: min(5vw, 4.75rem); top: -2.75rem; color: var(--maestra-pink); }
.mm-maison__detail { grid-column: 7/13; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--maestra-space); }
.mm-maison__photo { grid-column: 1; min-height: 17.5rem; height: 100%; }
.mm-maison__copy { grid-column: 2; min-height: 17.5rem; padding-block: var(--maestra-space-s); border-block: 1px solid var(--maestra-rule-inverse); display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; }
.mm-maison__copy p { text-align: justify; hyphens: auto; text-wrap: wrap; }
.mm-maison__copy .mm-text-link { margin-top: 1.25rem; margin-bottom: -.5rem; }

.mm-trust { padding-block: var(--maestra-section); row-gap: 2.5rem; }
.mm-trust > h2 { grid-column: 1/-1; font-size: var(--maestra-h3); }
.mm-trust__list { grid-column: 3/13; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--maestra-space); }
.mm-trust__item { padding-block: var(--maestra-space-m); border-top: 1px solid var(--maestra-rule); }
.mm-trust__item > img { display: block; width: 24px; height: 24px; margin-bottom: var(--maestra-space-m); }
.mm-trust__item h3 { font-size: var(--maestra-h4); font-style: italic; line-height: 1.2; min-height: 2.4em; max-width: 10.3em; text-wrap: initial; }
.mm-trust__item:first-child h3 { max-width: 7.5em; }
.mm-trust__item p { margin-top: var(--maestra-space-s); max-width: 18.4em; line-height: 1.6; }



/* Progressive enhancement: always readable without scroll timelines. */
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		/* Premier défilement (29 septembre 2026) : le hero reste en place le temps de --mm-hero-pin. La photo se
		   dézoome jusqu'au cadre de 24 px des héros encadrés (le sur-mesure), son voile s'efface, le titre monte
		   et le logo descend en fondu : il ne reste que la photo, qui part ensuite avec la page, en léger décalé. */
		.mm-hero { --mm-hero-pin: 40svh; height: calc(var(--mm-hero-stage) + var(--mm-hero-pin)); view-timeline: --mm-hero block; view-timeline-inset: 0; }
		.mm-hero__stage { position: sticky; top: 0; height: var(--mm-hero-stage); }
		.mm-hero__photo { animation: mm-hero-frame cubic-bezier(.3, .1, .3, 1) both; animation-timeline: --mm-hero; animation-range: contain 0% contain var(--mm-hero-pin); }
		.mm-hero__photo::after { animation: mm-fade-out linear both; animation-timeline: --mm-hero; animation-range: contain 0% contain calc(var(--mm-hero-pin) * .8); }
		/* Trois propriétés distinctes : la photo se pose à l'ouverture (scale), se dézoome (transform), puis dérive (translate). */
		.mm-hero__photo :is(img, video) { animation: mm-hero-settle 2.8s var(--maestra-ease) both, mm-hero-dezoom cubic-bezier(.3, .1, .3, 1) both, mm-hero-drift linear both; animation-timeline: auto, --mm-hero, --mm-hero; animation-range: normal, contain 0% contain var(--mm-hero-pin), exit 0% exit 100%; }
		.mm-hero__top { animation: mm-hero-fade-up linear both; animation-timeline: --mm-hero; animation-range: contain 0% contain calc(var(--mm-hero-pin) * .6); }
		.mm-hero__wordmark { animation: mm-hero-fade-down linear both; animation-timeline: --mm-hero; animation-range: contain calc(var(--mm-hero-pin) * .15) contain calc(var(--mm-hero-pin) * .75); }
		/* Au clavier, la flèche atteinte reste visible avec son texte. */
		.mm-hero__top:focus-within { animation: none; }
		.mm-approach__film { --mm-photo-travel: 20px; }
		.mm-world--0 .mm-parallax { --mm-photo-travel: 26px; }
		.mm-maison__photo { --mm-photo-travel: 11px; }
		.mm-maison__signature { view-timeline: --mm-signature block; view-timeline-inset: 0; animation: none; }
		.mm-maison__signature > svg { animation: mm-signature-drift linear both; animation-timeline: --mm-signature; animation-range: cover 0% cover 100%; }
		/* Le panneau brun de la Maison s'ouvre jusqu'aux bords pendant qu'il entre à l'écran. */
		.mm-maison { view-timeline: --mm-maison block; background: none; }
		.mm-maison::after { content: ''; position: absolute; inset: 0; z-index: -2; background: var(--maestra-brown); pointer-events: none; }
		.mm-maison::before, .mm-maison::after { animation: mm-panel-open linear both; animation-timeline: --mm-maison; animation-range: entry 0% entry 60%; }
	}
}
/* Ouverture (accueil v2, 29 septembre 2026), environ 2,3 s : la photo se pose, le titre monte ligne à
   ligne, puis la note, la flèche et le menu ; le filet reste fixe. Le grand logo garde sa
   révélation d'origine sur ordinateur et reste immédiat sur mobile, où il est l'élément LCP (D13). */
@media (prefers-reduced-motion: no-preference) {
	@supports not (animation-timeline: view()) {
		.mm-hero__photo :is(img, video) { animation: mm-hero-settle 2.8s var(--maestra-ease) both; }
	}
	.mm-hero h1 > span > span { animation: mm-line-rise 1.6s .22s var(--maestra-ease) both; }
	.mm-hero h1 > span:nth-child(2) > span { animation-delay: .34s; }
	.mm-hero h1 > span:nth-child(3) > span { animation-delay: .46s; }
	.mm-hero__note { animation: mm-opening-type 1.5s .8s var(--maestra-ease) both; }
	.mm-hero .mm-scroll-cue img { animation: mm-cue-draw 1.3s 1.15s var(--maestra-ease-draw) both; }
	.home.maestra-site .mm-header__actions { animation: mm-fade-in .9s .55s ease both; }
}
/* Sur mobile, le grand logo s'affiche sans révélation : c'est l'élément LCP (D13). */
@media (prefers-reduced-motion: no-preference) and (width > 47.5rem) {
	.mm-hero__wordmark img { animation: mm-opening-mark 1.9s .15s var(--maestra-ease) both; }
}
@keyframes mm-opening-mark { from { opacity: 0; clip-path: inset(100% 0 0); transform: translateY(16px); } to { opacity: 1; clip-path: inset(0); transform: none; } }
@keyframes mm-hero-settle { from { scale: 1.08; } to { scale: 1; } }
@keyframes mm-hero-frame { from { clip-path: inset(0); } to { clip-path: inset(var(--maestra-gutter)); } }
@keyframes mm-hero-dezoom { from { transform: scale(1.06); } to { transform: none; } }
@keyframes mm-hero-drift { to { translate: 0 8%; } }
@keyframes mm-hero-fade-up { to { opacity: 0; transform: translate3d(0, -2.5rem, 0); } }
@keyframes mm-hero-fade-down { to { opacity: 0; transform: translate3d(0, 1.5rem, 0); } }
@keyframes mm-fade-out { to { opacity: 0; } }
/* Montée derrière un masque : la ligne part sous son cadre, marge des jambages comprise. */
@keyframes mm-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes mm-panel-open { from { transform: scaleX(.95); } to { transform: none; } }
@keyframes mm-signature-drift { from { transform: translateY(-16px); } to { transform: translateY(16px); } }
@keyframes mm-signature-pen { from { stroke-dashoffset: 1.01; } to { stroke-dashoffset: 0; } }
@keyframes mm-signature-ink { from { opacity: 0; } to { opacity: 1; } }

/* Accueil v2 (29 septembre 2026) — script autorisé, révélations jouées une fois ; sans lui, tout reste lisible.
   Une seule grammaire : les mots des titres montent de leur masque, les groupes arrivent en cascade, les
   photos s'ouvrent ; les filets restent fixes (Miguel, 29 septembre 2026). L'attente est posée sans transition ; seules les arrivées
   s'animent, décalées par --mm-delay (ordre d'arrivée à l'écran) et --mm-step (rang dans le groupe). */
.mm-home--enhanced :is(.mm-reveal, .mm-media-reveal) { animation: none; }
.mm-home--enhanced .mm-reveal.mm-reveal-pending { opacity: 0; transform: translate3d(0, 1.5rem, 0); }
.mm-home--enhanced .mm-reveal.mm-revealed { transition: opacity 1.2s var(--maestra-ease) var(--mm-delay, 0s), transform 1.4s var(--maestra-ease) var(--mm-delay, 0s); }
/* Groupes : le bloc reste en place, ses enfants arrivent l'un après l'autre. */
.mm-home--enhanced .mm-cascade.mm-reveal-pending { opacity: 1; transform: none; }
.mm-home--enhanced .mm-cascade.mm-reveal-pending > :not(.mm-split) { opacity: 0; transform: translate3d(0, 1.1rem, 0); }
.mm-home--enhanced .mm-trust__item.mm-cascade.mm-reveal-pending > img { transform: scale(.4); }
.mm-home--enhanced .mm-cascade.mm-revealed > :not(.mm-split) { transition: opacity 1.1s var(--maestra-ease), transform 1.3s var(--maestra-ease); transition-delay: calc(var(--mm-delay, 0s) + var(--mm-step, 0) * 110ms); }
.mm-home--enhanced .mm-cascade.mm-revealed > .mm-button { transition-property: opacity, transform, background-color, color; transition-duration: 1.1s, 1.3s, var(--maestra-hover-fade), var(--maestra-hover-fade); transition-timing-function: var(--maestra-ease), var(--maestra-ease), ease, ease; transition-delay: calc(var(--mm-delay, 0s) + var(--mm-step, 0) * 110ms), calc(var(--mm-delay, 0s) + var(--mm-step, 0) * 110ms), 0s, 0s; }
.mm-home--enhanced .mm-cascade.mm-revealed:focus-within > * { transition: none; }
/* Titres : chaque mot monte derrière son propre masque (marges pour les accents et l'italique). */
.mm-split .mm-word { display: inline-block; clip-path: inset(-.35em -.15em); }
.mm-split .mm-word > span { display: inline-block; }
.mm-home--enhanced .mm-split.mm-reveal-pending { opacity: 1; transform: none; }
.mm-home--enhanced :is(.mm-split.mm-reveal-pending, .mm-cascade.mm-reveal-pending > .mm-split) .mm-word > span { transform: translate3d(0, calc(100% + .6em), 0); }
.mm-home--enhanced :is(.mm-split.mm-revealed, .mm-cascade.mm-revealed > .mm-split) .mm-word > span { transition: transform 1.3s var(--maestra-ease) calc(var(--mm-delay, 0s) + var(--mm-step, 0) * 110ms + var(--i, 0) * 45ms); }
/* Photos : le cadre s'ouvre pendant que l'image se pose (scale, distinct de la parallaxe) et suit la découpe
   (translate) ; découpe du composant (.mm-media-reveal--*, components.css, D23), diaphragme par défaut. */
.mm-home--enhanced .mm-media-reveal.mm-reveal-pending:not(.mm-maison__signature) { opacity: 0; clip-path: var(--mm-unveil, inset(9% 7%)); }
.mm-home--enhanced .mm-media-reveal.mm-revealed:not(.mm-maison__signature) { clip-path: var(--mm-unveiled, inset(-12px)); transition: clip-path 1.7s var(--maestra-ease-draw) var(--mm-delay, 0s), opacity .9s ease var(--mm-delay, 0s); }
.mm-home--enhanced .mm-photo.mm-media-reveal.mm-reveal-pending img { scale: 1.18; translate: var(--mm-unveil-shift, 0 0); }
.mm-home--enhanced .mm-photo.mm-media-reveal.mm-revealed img { transition: scale 2.4s var(--maestra-ease) var(--mm-delay, 0s), translate 1.7s var(--maestra-ease-draw) var(--mm-delay, 0s); }
/* Citation manuscrite : la plume suit l'axe des lettres (masque de traits, --t départ, --d durée), puis l'encre complète le tracé. */
.mm-signature__pen path { stroke-dasharray: 1 2; }
@media (prefers-reduced-motion: no-preference) {
	.mm-home--enhanced .mm-maison__signature.mm-reveal-pending .mm-signature__pen path { stroke-dashoffset: 1.01; }
	.mm-home--enhanced .mm-maison__signature.mm-reveal-pending .mm-signature__ink { opacity: 0; }
	.mm-home--enhanced .mm-maison__signature.mm-revealed .mm-signature__pen path { animation: mm-signature-pen var(--d) var(--t) cubic-bezier(.45, 0, .55, 1) both; }
	.mm-home--enhanced .mm-maison__signature.mm-revealed .mm-signature__ink { animation: mm-signature-ink .5s var(--mm-signature-end) ease-out both; }
}
.mm-home.mm-motion-paused .mm-signature__ink { opacity: 1 !important; }
/* Au clavier, un bloc atteint s'affiche aussitôt, anneau de focus compris. */
.mm-home--enhanced :is(.mm-reveal, .mm-media-reveal):focus-within, .mm-home--enhanced :is(.mm-reveal, .mm-media-reveal).mm-revealed:focus-within { opacity: 1; transform: none; clip-path: none; transition: none; }
.mm-partners__toggle { display: flex; align-items: center; justify-content: flex-end; gap: .625rem; min-width: 4.5rem; min-height: 44px; margin-top: -.75rem; padding: 0; background: none; color: var(--maestra-brown); font: italic 400 var(--maestra-text-sm)/1.4 var(--maestra-serif); }
.mm-hero__toggle { display: flex; align-items: center; justify-content: flex-end; min-width: 4.5rem; min-height: 44px; margin-left: auto; padding: 0; background: none; color: var(--maestra-white); font: italic 400 var(--maestra-text-sm)/1.4 var(--maestra-serif); }
.mm-hero__toggle:focus-visible { outline: 2px solid var(--maestra-white); outline-offset: 4px; }
.mm-hero__toggle[hidden] { display: none; }
.mm-partners__toggle img { flex: none; width: 16px; height: 16px; }
.mm-partners__toggle[hidden], .mm-motion-toggle[hidden] { display: none; }
.mm-partners--animated .mm-partners__static-mark { display: none; }
.mm-partners--animated .mm-partners__names { overflow: clip; padding-block: 0; }
.mm-partners__track { position: relative; }
.mm-partners--animated .mm-partners__visual { overflow: hidden; touch-action: pan-y pinch-zoom; }
.mm-partners--animated .mm-partners__visual img { user-select: none; -webkit-user-drag: none; }
/* La nouvelle maison se découvre en rideau, de bas en haut comme les noms, puis son logo se pose. La
   précédente reste dessous jusqu'à la fin (1,2 s, home-motion.js) ; mêmes animations sur les deux états,
   pour qu'une photo qui passe dessous poursuive la sienne sans saut. Un point rose marque la maison active. */
.mm-partners--animated .mm-partners__selector .mm-partners__visual .mm-partner-photo { display: none; animation: none; }
.mm-partners--animated .mm-partners__selector .mm-partners__visual .mm-partner-photo:is(.is-current, .is-previous) { display: block; animation: mm-partner-wipe 1.1s var(--maestra-ease-draw) both; }
.mm-partners--animated .mm-partners__selector .mm-partners__visual .mm-partner-photo.is-previous { z-index: 0; }
.mm-partners--animated .mm-partners__selector .mm-partners__visual .mm-partner-photo.is-current { z-index: 1; }
.mm-partners--animated .mm-partner-photo:is(.is-current, .is-previous) > img:first-child { animation: mm-partner-settle 1.8s var(--maestra-ease) both; }
.mm-partners--animated .mm-partner-photo:is(.is-current, .is-previous) .mm-partner-logo { animation: mm-partner-logo 1.2s .45s var(--maestra-ease) both; }
.mm-partners--animated .mm-partners__names { position: relative; }
.mm-partners--animated .mm-partners__names::before { content: ''; position: absolute; z-index: 1; top: 50%; left: .75rem; width: .5rem; height: .5rem; margin-top: -.25rem; border-radius: 50%; background: var(--maestra-pink); pointer-events: none; }
.mm-partners--animated .mm-partner-option span { max-width: calc(100% - 1.5rem); }
.mm-partners--animated .mm-partner-option:has(:checked) span { transform: translateX(1.5rem); }
.home .mm-footer__bottom { flex-wrap: wrap; }
.mm-motion-toggle { min-height: 44px; margin-left: auto; text-align: right; }
.mm-home.mm-motion-paused *, .mm-home.mm-motion-paused *::before, .mm-home.mm-motion-paused *::after { animation-play-state: paused !important; transition: none !important; }
/* Le pied de page (son entrée : components.css) s'affiche d'emblée, immobile. */
.mm-home.mm-motion-paused ~ .mm-footer *, .mm-home.mm-motion-paused ~ .mm-footer *::before { animation: none !important; transition: none !important; }
.mm-home.mm-motion-paused .mm-hero { height: var(--mm-hero-stage); }
.mm-home.mm-motion-paused .mm-hero__stage { position: relative; height: 100%; }
.mm-home.mm-motion-paused .mm-hero *, .mm-home.mm-motion-paused .mm-hero *::after { animation: none !important; }
/* En pause, une maison choisie s'affiche d'emblée : son rideau ne reste pas figé fermé. */
.mm-home.mm-motion-paused .mm-partner-photo, .mm-home.mm-motion-paused .mm-partner-photo img { animation: none !important; }
@media (prefers-reduced-motion: reduce) {
	.mm-home--enhanced .mm-reveal, .mm-home--enhanced .mm-media-reveal, .mm-home--enhanced .mm-cascade > *, .mm-split .mm-word > span { opacity: 1; transform: none; clip-path: none; }
}
@media (width >= 100rem) {
	.mm-maison__signature { min-height: 24rem; }
	.mm-maison__signature > svg { width: min(100%, 59.375rem); }
}
@media (47.5rem < width <= 68.75rem) {
	.mm-approach h2 { grid-column: 1/7; }
	.mm-approach__copy { grid-column: 8/13; }
	.mm-partners__heading { grid-column: 1/-1; }
	.mm-partners__selector { grid-column: 1/-1; }
	.mm-partners__visual { margin-left: 0; justify-self: center; }
	.mm-world--0 .mm-world__copy { grid-column: 2/7; }
	.mm-world--1, .mm-world--2 { margin-left: calc((100% + var(--maestra-space))/3); }
	.mm-maison__signature { grid-column: 1/12; }
	.mm-maison__signature > svg { max-height: 24rem; }
	.mm-maison__detail { grid-column: 6/13; grid-template-columns: 1fr 1fr; }
	.mm-trust__list { grid-column: 2/13; }
}
@media (width <= 47.5rem) {
	.mm-hero { --mm-hero-stage: clamp(40rem, 100svh, 61.25rem); }
	.mm-hero__content { padding-top: 5.5rem; }
	.mm-hero__note { gap: var(--maestra-space-xs); }
	.mm-hero__note p { text-align: left; hyphens: manual; text-wrap: pretty; }
	.mm-approach__top { min-height: 0; row-gap: 2.5rem; }
	.mm-approach h2 { grid-column: 1/-1; max-width: 14em; line-height: .97; }
	.mm-approach__copy { grid-column: 2/7; }
	.mm-approach__copy p { max-width: none; }
	.mm-approach__film { grid-column: 1/-1; }
	.mm-partners { padding-block: var(--maestra-space-s) 4.5rem; row-gap: var(--maestra-space-s); }
	.mm-partners__heading { grid-column: 1/-1; }
	.mm-partners__selector { grid-column: 1/-1; grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.mm-partners__names { grid-column: 1/-1; height: 18rem; padding-block: 2.5rem; }
	.mm-partner-option { font-size: var(--maestra-h3); min-height: 4rem; }
	.mm-partners__visual { grid-column: 3/7; margin-left: 0; max-width: 17rem; justify-self: end; }
	.mm-worlds__aside { display: none; }
	.mm-world--0 { grid-template-columns: repeat(6, minmax(0, 1fr)); row-gap: 1.75rem; }
	.mm-world--0 .mm-world__copy { grid-column: 1/-1; grid-row: 1; text-align: left; align-items: flex-start; }
	.mm-world--0 .mm-world__visual { grid-column: 2/7; grid-row: 2; }
	.mm-world--1, .mm-world--2 { margin-left: 0; }
	.mm-world--1 .mm-world__visual, .mm-world--2 .mm-world__visual { aspect-ratio: auto; min-height: 17rem; }
	.mm-world--1 h2, .mm-world--2 h2 { --mm-world-title: var(--maestra-h4); text-wrap: initial; }
	.mm-world__copy p { margin-top: var(--maestra-space-xs); }
	.mm-world--1 .mm-text-link, .mm-world--2 .mm-text-link { margin-top: 1.25rem; margin-bottom: 0; }
	.mm-maison__signature { grid-column: 1/-1; min-height: 0; }
	.mm-maison__signature > svg { position: static; width: 100%; height: auto; }
	.mm-maison__detail { grid-column: 1/-1; grid-template-columns: 1fr 1fr; }
	.mm-maison__copy { padding-block: 1.125rem; }
	.mm-maison__copy p { text-align: left; hyphens: none; text-wrap: pretty; }
	.mm-trust__list { grid-column: 2/7; grid-template-columns: 1fr; }
	.mm-trust__item h3, .mm-trust__item:first-child h3 { min-height: 0; max-width: none; }
}
@media (width <= 22.5rem) {
	.mm-approach__copy, .mm-trust__list { grid-column: 1/-1; }
	.mm-world--1, .mm-world--2 { grid-template-columns: 1fr; }
	.mm-world--1 .mm-world__visual, .mm-world--2 .mm-world__visual { aspect-ratio: 688/910; }
	.mm-maison__detail { grid-template-columns: 1fr; }
	.mm-maison__photo, .mm-maison__copy { grid-column: 1; }
	.mm-maison__photo { height: auto; aspect-ratio: 212/280; }
	.mm-maison__copy { min-height: 0; }
}
