/* Chroma — a photographic exhibition, with a deliberate rhythm of reveals. */
:root { --ease: cubic-bezier(.16,1,.3,1); --deep-ink: #292a27; }
[hidden] { display: none !important; }
.reading-progress { position: fixed; inset: 0 0 auto; height: 2px; background: var(--accent); z-index: 9; transform: scaleX(0); transform-origin: left; pointer-events: none; }
.site-header { border-bottom: 1px solid transparent; }
.small-label { font-size: 12px; }
.brand-sub { font-size: 11px; }
.nav-side a { font-size: 13px; }
.menu-toggle, .gallery-filters button { min-height: 48px; }
.button { position: relative; overflow: hidden; isolation: isolate; white-space: normal; text-align: left; }
.button::before { content: ''; position: absolute; inset: 0; background: #ffffff13; z-index: -1; transform: translateY(101%); transition: transform .4s var(--ease); }
.button:hover::before { transform: translateY(0); }
.button span[aria-hidden] { flex-shrink: 0; }
.page-intro { padding-top: clamp(50px,6vw,100px); padding-bottom: clamp(45px,6vw,95px); }
.page-intro h1 { line-height: 1.06; }
.page-intro .small-label { display: flex; align-items: center; gap: 18px; }
.page-intro .small-label::before { content: ''; width: 48px; height: 1px; background: currentColor; flex-shrink: 0; }
.page-intro .lede { font-size: 18px; }

/* Every title has a mask per word; frames reveal their own photograph once. */
.title-mask { display: inline-block; overflow: hidden; vertical-align: bottom; padding: .09em .055em .12em; margin: -.09em -.055em -.12em; }
.title-word { display: inline-block; transform-origin: left bottom; transition: transform 1.05s var(--ease), opacity .8s var(--ease); transition-delay: var(--word-delay,0ms); }
.motion-title.motion-wait .title-word { transform: translateY(118%) rotate(3deg); opacity: .08; }
.motion-copy { transition: opacity .8s var(--ease), transform 1s var(--ease); }
.motion-copy.motion-wait { opacity: 0; transform: translateY(42px); }
.motion-frame { position: relative; overflow: hidden; isolation: isolate; }
.motion-frame::before { content: ''; position: absolute; inset: -1px; z-index: 3; background: var(--paper); transform: translateY(-102%); transition: transform 1.25s var(--ease); pointer-events: none; }
.motion-frame.motion-wait::before { transform: translateY(0); }
.motion-frame > img { transition: transform 1.6s var(--ease); }
.motion-frame.motion-wait > img { transform: scale(1.13); }
.gallery-tile:nth-child(even) .motion-frame::before { transform: translateX(102%); }
.gallery-tile:nth-child(even) .motion-frame.motion-wait::before { transform: translateX(0); }
.hero.motion-frame::before { background: var(--paper); transition-duration: 1.4s; }
.hero .motion-title .title-word { transition-delay: calc(var(--word-delay) + 240ms); }
.hero .motion-copy { transition-delay: 180ms; }
.hero h1 { max-width: 990px; }
.hero h1 em { line-height: 1.15; }
.hero-note { padding-bottom: 20px; }
.intro { padding-block: 155px 165px; }
.intro-detail { transition: transform 1.4s var(--ease); }
.editorial-grid { gap: 9vw; }
.editorial-item:nth-child(2) { margin-top: 190px; }
.editorial-item:nth-child(2) .image-link { aspect-ratio: 3/4.5; }
.image-caption { align-items: baseline; }
.image-caption strong { font-style: italic; }
.signature { gap: 9vw; }
.signature-pictures { padding: 0; align-self: center; }
.signature-main { aspect-ratio: 4/4.6; object-fit: cover; object-position: 44% center; }
.signature-picture-note { display: block; padding-top: 18px; font-size: 13px; color: var(--muted); }
.signature-copy .signed { margin-bottom: 18px; }
.invitation { position: relative; background: var(--deep-ink); color: var(--paper); padding-block: clamp(95px,11vw,170px); }
.invitation p { color: #d6d3ca; }
.invitation .button { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.invitation h2 { font-size: clamp(55px,7.6vw,118px); }
.site-footer { padding-top: 80px; }
.footer-wordmark { border-bottom: 1px solid var(--line); padding-bottom: 55px; }
.footer-bottom { border-top: 0; }

/* Photographie: a quiet panorama followed by an off-centre diptych. */
.page-photo .page-intro { display: grid; grid-template-columns: 1fr 1fr; column-gap: 7vw; }
.page-photo .page-intro .small-label, .page-photo .page-intro h1 { grid-column: 1/-1; }
.page-photo .page-intro .lede { grid-column: 2; max-width: 530px; }
.page-photo .full-photo { margin-inline: 24px; height: min(68vw,730px); }
.photo-diptych { display: grid; grid-template-columns: 1fr .78fr; gap: 12vw; align-items: start; }
.photo-diptych figure:nth-child(2) { margin-top: 190px; }
.photo-diptych img { width: 100%; height: auto; }
.photo-diptych figcaption { padding-top: 18px; color: var(--muted); font-size: 14px; }
.album-note { padding-top: 65px; padding-bottom: 20px; }
.wedding-moments { padding-top: 30px; padding-bottom: 110px; }
.wedding-moments > .small-label { margin-bottom: 26px; }
.wedding-moments > h2 { max-width: 1000px; margin-bottom: 55px; }
.wedding-moments > div { display: grid; grid-template-columns: 1fr 1fr; gap: 0 7vw; }
.wedding-moments article { display: grid; grid-template-columns: 50px 1fr; gap: 24px; padding-block: 32px 42px; border-top: 1px solid var(--line); }
.moment-number { font: italic 36px/1.2 var(--serif); color: var(--accent); }
.wedding-moments h3 { font-size: 34px; }

/* Films: generous screening-room frames, no fourth placeholder or spacer. */
.page-film .page-intro { position: relative; }
.page-film .page-intro::after { content: 'FILMS'; display: block; font: 400 clamp(35px,7vw,105px)/1 var(--serif); letter-spacing: .18em; color: var(--line); position: absolute; right: var(--gutter); bottom: 80px; }
.page-film .film-list { grid-template-columns: 1.12fr .88fr; gap: 60px 6vw; }
.page-film .film-list article:first-child { grid-column: 1/-1; }
.page-film .film-list article:nth-child(3) { margin-top: 80px; }
.film-list article { position: relative; }
.film-list article::before { display: block; font-size: 12px; letter-spacing: .14em; margin-bottom: 16px; color: var(--muted); }
.film-list article:nth-child(1)::before { content: '01 / LE RÉCIT'; }
.film-list article:nth-child(2)::before { content: '02 / LE TEASER'; }
.film-list article:nth-child(3)::before { content: '03 / LES SOUVENIRS'; }
.film-list article:first-child .cinema { aspect-ratio: 2.05; }
.film-list .cinema { aspect-ratio: 16/11; }
.film-list h2 { font-size: clamp(32px,3vw,46px); }
.film-list p { font-size: 16px; }
.play-circle { width: 96px; height: 96px; position: relative; }
.play-circle::after { content: ''; position: absolute; inset: -9px; border: 1px solid #ffffff45; border-radius: 50%; transform: scale(.88); opacity: 0; transition: transform .45s var(--ease), opacity .3s; }
.play-button:hover .play-circle::after, .play-button:focus-visible .play-circle::after { opacity: 1; transform: scale(1); }
.film-approach { margin-top: 60px; }

/* Portfolio: four chapters, asymmetric spreads, complete original framing. */
.gallery-intro { padding-top: 38px; padding-bottom: 36px; }
.gallery-intro h1 { font-size: clamp(78px,9.8vw,150px); line-height: .99; letter-spacing: -.05em; }
.gallery-intro h1 em { display: inline-block; padding-left: 15vw; }
.gallery-intro-bottom { display: grid; grid-template-columns: 1fr 1fr auto; gap: 35px; align-items: end; margin-top: 24px; }
.gallery-intro-bottom .lede { margin: 0; color: var(--ink); font: 400 clamp(24px,2.6vw,37px)/1.25 var(--serif); }
.gallery-intro-bottom > p:not(.lede) { color: var(--muted); font-size: 16px; }
.gallery-intro-bottom .text-link { align-self: end; }
.gallery-toolbar { position: sticky; top: 0; z-index: 4; background: var(--paper); border-block: 1px solid var(--line); scroll-margin-top: 0; }
.gallery-toolbar > .wrap { display: flex; justify-content: space-between; align-items: center; gap: 25px; }
.gallery-filters { display: flex; flex-wrap: wrap; gap: 12px 27px; padding-block: 10px; }
.gallery-filters button { font-size: 14px; position: relative; border: 0; }
.gallery-filters button::after { content: ''; position: absolute; bottom: 5px; left: 0; right: 0; height: 1px; background: var(--ink); transform: scaleX(0); transform-origin: left; transition: transform .4s var(--ease); }
.gallery-filters button[aria-pressed=true]::after { transform: scaleX(1); }
#gallery-count { font-size: 12px; color: var(--muted); white-space: nowrap; margin: 0; }
.gallery-exhibition { padding-top: 0; }
.gallery-chapter { padding-top: 40px; scroll-margin-top: 90px; }
.chapter-heading { display: grid; grid-template-columns: 80px 1.2fr .8fr; align-items: start; gap: 28px; padding-bottom: 28px; }
.chapter-number { font: italic 72px/.9 var(--serif); color: var(--accent); }
.chapter-heading .small-label { margin-bottom: 12px; }
.chapter-heading h2 { font-size: clamp(40px,4.3vw,64px); max-width: 680px; }
.chapter-description { color: var(--muted); font-size: 16px; max-width: 360px; padding-top: 15px; }
.gallery-grid { --gallery-gap: 24px; columns: auto; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--gallery-gap); align-items: start; padding-bottom: 34px; }
.gallery-grid.gallery-packed { grid-auto-rows: 1px; row-gap: 0; grid-auto-flow: row dense; }
.gallery-tile { display: block; margin: 0; padding: 0; border: 0; background: transparent; color: var(--ink); text-align: left; break-inside: auto; overflow: visible; }
.gallery-tile .gallery-image { display: block; position: relative; overflow: hidden; background: var(--paper-deep); }
.gallery-tile img { width: 100%; height: auto; object-fit: contain; }
.gallery-caption { display: flex; justify-content: space-between; align-items: baseline; padding-top: 17px; gap: 20px; font: italic 26px/1.3 var(--serif); }
.gallery-image-number { font: 400 12px/1.5 var(--sans); color: var(--muted); }
.gallery-enlarge { position: absolute; inset: auto 16px 16px; padding: 12px 16px; display: flex; justify-content: space-between; align-items: center; background: var(--paper); font-size: 13px; color: var(--ink); z-index: 2; transform: translateY(0); opacity: 1; transition: opacity .3s, transform .4s var(--ease); }
.gallery-enlarge > span { font-size: 22px; line-height: 1; }
.gallery-grid .gallery-tile { grid-column: span 1; margin: 0; align-self: start; min-width: 0; }
.gallery-grid .gallery-feature { grid-column: span 2; }
.gallery-grid .gallery-caption { padding-top: 11px; gap: 14px; font-size: clamp(19px,1.8vw,26px); }
.gallery-grid .gallery-feature .gallery-caption { font-size: clamp(29px,3vw,43px); line-height: 1.15; padding-top: 14px; }
.gallery-grid .gallery-small-original { max-width: 340px; justify-self: center; }
.gallery-chapter + .gallery-chapter { border-top: 1px solid var(--line); }
.other-albums { padding-block: 30px 90px; }
.other-albums summary { font: 400 clamp(26px,3vw,42px)/1.3 var(--serif); padding-block: 25px; min-height: 48px; border-top: 1px solid var(--line); cursor: pointer; }
.other-grid { padding-top: 30px; }
.other-grid figcaption { font: italic 26px/1.2 var(--serif); margin-top: 16px; }
.other-albums details[open] .other-grid { animation: soft-arrival .65s var(--ease) both; }

/* Formules: a numbered menu of collections, with every brochure fact retained. */
.page-price .page-intro { padding-bottom: 50px; }
.collection-jump { margin-top: 40px; }
.collection-jump a { display: flex; align-items: center; min-height: 48px; font-size: 15px; }
.price-opening { position: relative; padding-bottom: 90px; }
.price-opening img { width: 100%; aspect-ratio: 2.4; object-fit: cover; object-position: center 43%; }
.price-opening figcaption { padding-top: 18px; font: italic 26px/1.3 var(--serif); text-align: right; }
.collection-spread { grid-template-columns: .45fr 1.05fr 1.25fr; padding-block: 55px; gap: 5vw; }
.collection-index > span { display: block; font: italic clamp(60px,8vw,116px)/.9 var(--serif); color: #958675; }
.collection-index > p { margin-top: 22px; font-size: 12px; letter-spacing: .07em; color: var(--muted); }
.collection-story h3 { font-size: clamp(44px,4.8vw,72px); }
.collection-story p { font-size: 16px; }
.collection-story .collection-subtitle { font-size: 25px; }
.collection-facts dl { gap: 21px; }
.collection-facts dt { font-size: 13px; }
.collection-investment { padding-top: 20px; border-top: 1px solid var(--line); margin-top: 30px; }
.collection-investment > p { font-size: 48px; }
.collections-heading { display: grid; grid-template-columns: 1.05fr .95fr; gap: 25px 6vw; max-width: none; padding-bottom: 10px; }
.collections-heading h2 { margin: 0; font-size: clamp(46px,5.2vw,78px); grid-row: span 2; }
.collections-heading > p { font-size: 17px; }
.collections-heading .text-link { margin: 0; justify-self: start; align-self: start; }
.collection-options { border-top: 1px solid var(--line); padding-top: 50px; margin-top: 60px; }
.options-list article { border-bottom: 1px solid var(--line); padding-bottom: 25px; }
.options-list article > p { font-size: 16px; }

/* Qui je suis and the preparation guide share a quieter, intimate rhythm. */
.about-hero { gap: 10vw; padding-top: 75px; }
.about-heading h1 { font-size: clamp(78px,9vw,138px); }
.about-portrait { transform: rotate(2deg); }
.about-portrait img { aspect-ratio: 4/5; object-position: 52% 36%; }
.about-portrait figcaption { padding-bottom: 10px; }
.about-story h2 { max-width: 1000px; }
.about-columns { padding-left: 16vw; gap: 5vw; }
.about-reportage-band { padding-block: 100px; background: var(--deep-ink); color: var(--paper); }
.about-reportage { gap: 9vw; }
.about-reportage blockquote { font: 400 clamp(42px,5vw,78px)/1.07 var(--serif); margin: 0; }
.about-reportage blockquote > span { font-size: 100px; display: block; height: 75px; color: #b5a592; }
.about-reportage blockquote cite { display: block; margin-top: 30px; font: 400 12px/1.6 var(--sans); letter-spacing: .06em; }
.about-reportage p { color: #d6d3ca; }
.about-reportage h2 { font-size: clamp(40px,4vw,62px); }
.guide-section { background: #eeeae3; padding-block: 110px; }
.guide-cover { box-shadow: 8px 15px 30px #35302c15; }
.guide-monogram { border-block: 1px solid #b8ac9d; padding-block: 45px; text-align: center; }
.guide-monogram > span:first-child { font: italic 46px/1.1 var(--serif); }
.guide-monogram em { display: block; font: italic clamp(150px,20vw,280px)/1 var(--serif); color: var(--accent); }
.guide-monogram > span:last-child { font-size: 12px; letter-spacing: .12em; }
.guide-layout { gap: 10vw; }
.guide-copy .guide-meta { font-size: 13px; }
.guide-copy .guide-instructions { font-size: 15px; }

/* Contact and reading pages have their own composed entrances as well. */
.contact-layout { gap: 11vw; padding-top: 25px; }
.contact-aside { position: sticky; top: 45px; align-self: start; }
.contact-aside > img { aspect-ratio: 4/5; object-fit: cover; margin-bottom: 32px; }
.contact-picture { margin-bottom: 32px; }
.contact-picture img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.contact-form { border-top: 1px solid var(--line); padding-top: 45px; }
.field input, .field textarea { transition: border-color .3s, background .3s; }
.field input:focus, .field textarea:focus { background: #f0eee955; border-color: var(--ink); }
.legal-content { max-width: 920px; border-top: 1px solid var(--line); padding-top: 60px; }
.legal-content h2 { margin-top: 65px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.legal-content h3 { margin-top: 35px; }
.page-404 .not-found { padding-block: 120px 160px; }

/* Interaction motion is deliberately shorter than the photographic reveals. */
@keyframes soft-arrival { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes menu-arrival { from { opacity: 0; transform: translateY(60px) rotate(2deg); } to { opacity: 1; transform: translateY(0) rotate(0); } }
@media (prefers-reduced-motion: no-preference) {
  .menu-dialog[open] { animation: soft-arrival .35s var(--ease) both; }
  .menu-dialog[open] .menu-links a { animation: menu-arrival .65s var(--ease) both; }
  .menu-links a:nth-child(2) { animation-delay: .04s; } .menu-links a:nth-child(3) { animation-delay: .08s; }
  .menu-links a:nth-child(4) { animation-delay: .12s; } .menu-links a:nth-child(5) { animation-delay: .16s; }
  .menu-links a:nth-child(6) { animation-delay: .2s; } .menu-links a:nth-child(7) { animation-delay: .24s; }
  .media-dialog[open] { animation: soft-arrival .32s var(--ease) both; }
  @supports (animation-timeline: scroll()) {
    .reading-progress { animation: read-page linear both; animation-timeline: scroll(root block); }
    @keyframes read-page { to { transform: scaleX(1); } }
  }
  @supports (animation-timeline: view()) {
    .intro-detail-left { animation: detail-left linear both; animation-timeline: view(); animation-range: entry 0% exit 100%; }
    .intro-detail-right { animation: detail-right linear both; animation-timeline: view(); animation-range: entry 0% exit 100%; }
    @keyframes detail-left { from { transform: translateY(40px) rotate(-8deg); } to { transform: translateY(-40px) rotate(-3deg); } }
    @keyframes detail-right { from { transform: translateY(-25px) rotate(3deg); } to { transform: translateY(30px) rotate(7deg); } }
  }
}
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: page-out .22s ease-in both; }
::view-transition-new(root) { animation: page-in .45s var(--ease) both; }
@keyframes page-out { to { opacity: 0; transform: translateY(-15px); } }
@keyframes page-in { from { opacity: 0; transform: translateY(30px); } }
@media (hover: hover) and (pointer: fine) {
  .gallery-enlarge { opacity: 0; transform: translateY(14px); }
  .gallery-tile:hover .gallery-enlarge, .gallery-tile:focus-visible .gallery-enlarge { opacity: 1; transform: translateY(0); }
  .gallery-tile:hover img { transform: scale(1.025); }
  .gallery-tile:focus-visible { outline-offset: 9px; }
  .collection-spread { transition: background .4s; }
  .collection-spread:hover { background: #f0eee950; }
}

@media (max-width: 1100px) {
  .gallery-intro-bottom { grid-template-columns: 1fr 1fr; }
  .gallery-intro-bottom .text-link { grid-column: 2; justify-self: start; }
  .chapter-heading { grid-template-columns: 55px 1fr; gap: 25px; }
  .chapter-number { font-size: 60px; }
  .chapter-description { grid-column: 2; padding-top: 0; max-width: 600px; }
  .gallery-filters { gap: 8px 20px; }
  .gallery-toolbar > .wrap { flex-wrap: wrap; gap: 0; padding-block: 8px; }
  #gallery-count { padding-bottom: 8px; }
  .page-film .page-intro::after { display: none; }
  .collection-spread { gap: 4vw; }
  .about-columns { padding-left: 8vw; }
}
@media (max-width: 767px) {
  .page-intro { padding-block: 45px 50px; }
  .page-intro .lede { font-size: 17px; }
  .page-intro .small-label { font-size: 11px; letter-spacing: .12em; gap: 12px; }
  .page-intro .small-label::before { width: 28px; }
  .hero { min-height: 78svh; }
  .hero h1 { font-size: clamp(57px,13vw,94px); }
  .hero h1 em { margin-left: 0; }
  .hero-copy { padding-inline: 25px; }
  .hero-note { flex-direction: column; gap: 4px; padding-bottom: 0; font-size: 11px; }
  .intro { padding: 90px 25px; }
  .editorial-grid { gap: 60px; }
  .editorial-item:nth-child(2) { margin-top: 0; }
  .signature-pictures { padding: 0; max-width: none; }
  .signature-main { aspect-ratio: 4/3; }
  .signature-picture-note { font-size: 13px; }
  .invitation { padding-block: 90px; }
  .invitation h2 { font-size: clamp(55px,12vw,85px); }
  .page-photo .page-intro { display: block; }
  .page-photo .full-photo { margin-inline: 12px; height: 380px; }
  .photo-diptych { gap: 40px; grid-template-columns: 1fr; }
  .photo-diptych figure:first-child { margin-right: 15%; }
  .photo-diptych figure:nth-child(2) { margin-top: 0; margin-left: 20%; }
  .photo-diptych figcaption { font-size: 13px; }
  .wedding-moments { padding-bottom: 70px; }
  .wedding-moments > div { grid-template-columns: 1fr; }
  .wedding-moments article { grid-template-columns: 36px 1fr; gap: 18px; padding-block: 27px 32px; }
  .wedding-moments h3 { font-size: 31px; }
  .page-film .film-list { grid-template-columns: 1fr; gap: 40px; }
  .page-film .film-list article:nth-child(3) { margin-top: 0; }
  .film-list article:first-child .cinema, .film-list .cinema { aspect-ratio: 4/3; }
  .film-list h2 { font-size: 34px; }
  .film-approach { margin-top: 40px; }
  .play-circle { width: 72px; height: 72px; }
  .gallery-intro h1 { font-size: clamp(70px,14.5vw,112px); }
  .gallery-intro h1 em { padding-left: 5vw; }
  .gallery-intro-bottom { grid-template-columns: 1fr; gap: 24px; margin-top: 30px; }
  .gallery-intro-bottom .text-link { grid-column: auto; justify-self: start; }
  .gallery-intro-bottom .lede { font-size: 29px; }
  .gallery-intro-bottom > p:not(.lede) { font-size: 16px; }
  .gallery-toolbar > .wrap { display: block; padding-block: 2px 5px; }
  .gallery-filters { gap: 6px 20px; flex-wrap: nowrap; overflow-x: auto; padding-block: 4px; scrollbar-width: thin; }
  .gallery-filters button { white-space: nowrap; flex-shrink: 0; font-size: 13px; }
  #gallery-count { padding: 0 0 5px; font-size: 12px; }
  .gallery-intro { padding-top: 32px; padding-bottom: 32px; }
  .gallery-intro-bottom { margin-top: 22px; gap: 18px; }
  .gallery-chapter { padding-top: 32px; }
  .chapter-heading { grid-template-columns: 34px 1fr; gap: 12px 15px; padding-bottom: 24px; }
  .chapter-number { font-size: 40px; }
  .chapter-heading h2 { font-size: 40px; }
  .chapter-heading .small-label { margin-bottom: 10px; font-size: 11px; }
  .chapter-description { font-size: 16px; }
  .gallery-grid { --gallery-gap: 18px; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 12px; padding-bottom: 24px; }
  .gallery-grid .gallery-tile { grid-column: span 1; margin: 0; }
  .gallery-grid .gallery-feature { grid-column: 1/-1; }
  .gallery-grid .gallery-caption { font-size: 19px; padding-top: 9px; gap: 8px; }
  .gallery-grid .gallery-feature .gallery-caption { font-size: 31px; padding-top: 12px; }
  .gallery-enlarge { inset: auto 8px 8px; padding: 7px 10px; font-size: 12px; }
  .gallery-companion .gallery-enlarge { inset: auto 6px 6px; padding: 5px 8px; font-size: 11px; }
  .other-albums { padding-bottom: 65px; }
  .other-grid { grid-template-columns: 1fr; }
  .other-grid .gallery-tile { width: 100%; }
  .collection-jump { margin-top: 25px; gap: 8px 25px; }
  .collection-jump a { font-size: 14px; }
  .price-opening { padding-bottom: 65px; }
  .price-opening img { aspect-ratio: 4/3; }
  .price-opening figcaption { font-size: 23px; text-align: left; }
  .collections-heading { grid-template-columns: 1fr; gap: 25px; }
  .collections-heading h2 { grid-row: auto; font-size: 50px; }
  .collection-spread { grid-template-columns: 50px 1fr; gap: 25px 22px; padding-block: 40px; }
  .collection-index > span { font-size: 55px; }
  .collection-index > p { display: none; }
  .collection-story h3 { font-size: 51px; }
  .collection-story .collection-subtitle { font-size: 24px; }
  .collection-story p { font-size: 16px; }
  .collection-facts { grid-column: 2; }
  .collection-investment { align-items: start; flex-direction: column; gap: 10px; }
  .collection-investment > p { font-size: 45px; }
  .collection-investment .text-link { font-size: 13px; }
  .collection-options { padding-top: 35px; }
  .about-hero { padding-top: 35px; gap: 50px; }
  .about-heading h1 { font-size: 82px; }
  .about-portrait { width: 92%; }
  .about-columns { padding-left: 0; }
  .about-reportage-band { padding-block: 75px; }
  .about-reportage { gap: 55px; }
  .about-reportage blockquote { font-size: 53px; padding-bottom: 45px; border-bottom: 1px solid #ffffff30; }
  .about-reportage h2 { font-size: 48px; }
  .guide-section { padding-block: 75px; }
  .guide-layout { gap: 45px; }
  .guide-monogram { padding-block: 25px; }
  .guide-monogram > span:first-child { font-size: 35px; }
  .guide-monogram em { font-size: 160px; }
  .guide-typographic .guide-layout { grid-template-columns: 1fr; }
  .guide-typographic .guide-monogram { display: none; }
  .guide-copy .guide-instructions { font-size: 15px !important; }
  .contact-layout { gap: 55px; }
  .contact-aside { position: static; }
  .contact-aside > img { aspect-ratio: 4/4.5; max-height: 470px; }
  .contact-picture img { aspect-ratio: 4/4.5; max-height: 470px; }
  .contact-form { padding-top: 35px; }
  .legal-content { margin-inline: 24px; padding-inline: 0; }
  .legal-content h2 { margin-top: 40px; font-size: 32px; }
  .lightbox-stage { grid-template-columns: 44px minmax(0,1fr) 44px; gap: 3px; }
  .lightbox-nav { width: 44px; height: 48px; }
  .dialog-top { font-size: 12px; padding-inline: 10px; }
  .lightbox-caption { padding-inline: 20px; font-size: 13px; }
  .menu-dialog { overflow: auto; }
  .menu-links { padding-block: 3vh; gap: 6px; }
  .menu-links a { font-size: clamp(32px,6.5vh,48px); min-height: 44px; }
  .menu-bottom { padding-bottom: 35px; }
  .motion-copy.motion-wait { transform: translateY(28px); }
}
@media (max-width: 380px) {
  .collection-spread { grid-template-columns: 35px minmax(0,1fr); gap: 20px 15px; }
  .collection-index > span { font-size: 43px; }
  .collection-facts { grid-column: 1/-1; }
  .hero-copy { padding-inline: 20px; }
  .hero h1 { font-size: 53px; }
  .gallery-intro h1 { font-size: 68px; }
  .gallery-intro h1 em { padding-left: 0; }
  .chapter-heading h2 { font-size: 36px; }
  .about-heading h1 { font-size: 72px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .motion-title.motion-wait .title-word, .motion-copy.motion-wait { opacity: 1; transform: none; }
  .motion-frame.motion-wait::before { transform: translateY(-102%); }
  .gallery-tile:nth-child(even) .motion-frame.motion-wait::before { transform: translateX(102%); }
  .motion-frame.motion-wait > img { transform: none; }
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
}
@media print {
  .reading-progress, .gallery-toolbar, .gallery-enlarge { display: none; }
  .motion-wait { opacity: 1 !important; transform: none !important; }
  .motion-title.motion-wait .title-word { opacity: 1; transform: none; }
  .motion-frame::before { display: none; }
  .invitation, .about-reportage-band { color: #111; background: white; }
}

/* Marc's new photographs illustrate the six collections on the Formules page. */
.collection-illustrated { grid-template-columns: .8fr 1.08fr 1.22fr; gap: clamp(25px,3.5vw,50px); }
.collection-visual { min-width: 0; }
.collection-art img { width: 100%; height: auto; }
.collection-photo-index { display: block; padding-top: 13px; font-size: 12px; letter-spacing: .1em; color: var(--muted); }
@media(max-width:767px) {
 .collection-illustrated { grid-template-columns: .8fr 1.2fr; gap: 16px 22px; }
 .collection-illustrated .collection-visual { grid-column: 1; grid-row: 1/span 2; }
 .collection-illustrated .collection-story { display: contents; }
 .collection-illustrated .collection-story h3 { grid-column: 2; grid-row: 1; font-size: clamp(38px,8vw,51px); align-self: end; margin: 0; }
 .collection-illustrated .collection-subtitle { grid-column: 2; grid-row: 2; font-size: 23px; align-self: start; margin: 0; }
 .collection-illustrated .collection-story>p:not(.collection-subtitle) { grid-column: 1/-1; margin-top: 8px; }
 .collection-illustrated .collection-facts { grid-column: 1/-1; }
 .collection-photo-index { font-size: 11px; letter-spacing: .05em; }
}

/* Romantic stationery: champagne gold, botanical linework and clear invitations. */
:root { --gold: #947139; --gold-light: #dabb80; --gold-pale: #f3e7cd; }
.romantic-mark { display: block; width: 145px; height: 57px; color: var(--gold); flex-shrink: 0; }
.page-intro { position: relative; }
.page-intro > .romantic-mark { position: absolute; top: 25px; right: var(--gutter); width: 110px; height: 43px; opacity: .85; }
.invitation .romantic-mark { color: var(--gold-light); margin: 0 auto 30px; width: 175px; height: 68px; }
.footer-ornament { display: flex; align-items: center; justify-content: center; gap: 25px; margin-bottom: 45px; }
.footer-ornament::before, .footer-ornament::after { content: ''; width: min(16vw,180px); height: 1px; background: var(--gold); opacity: .5; }
.collection-heading-ceremony { display: block; max-width: none; text-align: center; border: 1px solid #94713955; border-top: 2px solid var(--gold); background: #f1ede4; padding: clamp(30px,4vw,55px); margin: 0 0 28px; }
.collection-divider { display: flex; justify-content: center; align-items: center; gap: 25px; margin-bottom: 20px; }
.collection-divider::before, .collection-divider::after { content: ''; display: block; width: 95px; height: 1px; background: #94713988; }
.collection-divider .romantic-mark { width: 175px; height: 68px; }
.collection-heading-ceremony > .small-label { color: #70552b; margin-bottom: 19px; }
.collection-heading-ceremony h2 { font-size: clamp(43px,5vw,73px); max-width: 850px; margin: 0 auto 23px; }
.collection-heading-ceremony > p:not(.small-label) { max-width: 740px; margin: 0 auto; }
.collection-heading-ceremony > .button { margin-top: 26px; }
.collection-list { display: grid; gap: 20px; }
.collection-spread { border: 1px solid #94713940; padding: clamp(22px,3.1vw,44px); background: var(--paper); }
.collection-miniature { grid-template-columns: .55fr 1.13fr 1.32fr; }
.collection-miniature .collection-visual { max-width: 185px; }
.collection-art { border: 1px solid #94713955; padding: 5px; background: #fffdf5; }
.collection-miniature .collection-photo-index { font-size: 12px; }
.collection-featured, .collection-featured:hover { --paper: #25251f; --ink: #fff4e1; --muted: #d7cbbc; --line: #6e6251; background: #25251f; color: #fff4e1; border-color: #b69659; }
.collection-featured .collection-story h3 { color: #edd09a; }
.collection-featured .collection-art { border-color: #c1a26c; background: #25251f; }
.collection-featured .collection-investment > p { color: #f5deaf; }
.collection-featured .collection-photo-index { color: #dabb80; }
.collection-investment { align-items: start; gap: 18px; }
.button { border-color: var(--gold); box-shadow: inset 0 0 0 1px #dabb8038; font-size: 14px; font-weight: 500; min-height: 52px; }
.button::before { background: linear-gradient(110deg,transparent 15%,#f5d99455 48%,transparent 80%); transform: translateX(-120%); transition: transform .65s var(--ease); }
.button:hover::before, .button:focus-visible::before { transform: translateX(120%); }
.button:hover, .button:focus-visible { background: #69502d; border-color: #c4a05c; box-shadow: 0 0 0 3px #b9975922,0 5px 18px #97774122; }
.button:focus-visible, .text-link:focus-visible { outline: 2px solid #947139; outline-offset: 5px; }
.button-outline { color: #46351e; border-color: #96733c; background: #f8f0df; }
.button-outline:hover, .button-outline:focus-visible { color: #fff8e9; }
.collection-spread .button-collection { background: #dabb80; border-color: #dabb80; color: #272219; gap: 20px; font-size: 14px; padding: 15px 19px; box-shadow: inset 0 0 0 1px #fff7df55; }
.collection-spread .button-collection:hover, .collection-spread .button-collection:focus-visible { background: #f0d7a4; color: #272219; box-shadow: 0 0 0 3px #dabb8030,0 5px 22px #dabb8022; }
.text-link { border: 1px solid #ad8c55; padding: 11px 17px; background: #f4ecdc; color: #46371f; min-height: 48px; font-size: 14px; gap: 20px; transition: background .25s,color .25s,box-shadow .25s; }
.text-link::after { display: none; }
.text-link:hover, .text-link:focus-visible { background: #e4cfa4; color: #322817; box-shadow: 0 0 0 3px #b9975919; }
.nav-side .nav-contact { border: 1px solid #987640; background: #f0e4ca; color: #45351e; padding: 10px 17px; }
.nav-side .nav-contact:hover { background: #e4cfa4; }
.collection-jump a { padding: 10px 18px; border: 1px solid #a58a5e; background: #f4ecdc; color: #49371d; }
.collection-jump a:hover { background: #e4cfa4; }
.gallery-filters button { padding-inline: 12px; border: 1px solid #94713960; }
.gallery-filters button[aria-pressed=true] { background: #35302c; color: #ecd39f; border-color: #35302c; }
.gallery-filters button::after { display: none; }
.gallery-enlarge { border: 1px solid #c3a56e; background: #f6eddb; color: #44341e; }
.play-circle { border-color: #f0d29a; background: #18160e4d; box-shadow: 0 0 0 7px #dabb8014; }
.play-circle::after { border-color: #f0d29a99; }
.play-button:hover .play-circle { background: #85642d99; }
.close-button:hover, .lightbox-nav:hover { color: #e5c58d; }
@media(hover:hover) and (pointer:fine) {
 body { cursor: url('/assets/icons/quill.svg') 3 29, auto; }
 a, button, summary, [role=button] { cursor: url('/assets/icons/quill-active.svg') 3 29, pointer; }
 input, textarea, [contenteditable=true] { cursor: text; }
 button:disabled { cursor: wait; }
}
@media(max-width:1100px) {
 .collection-miniature { grid-template-columns: .6fr 1.1fr 1.3fr; gap: 25px; }
 .collection-investment { flex-direction: column; }
 .collection-spread .button-collection { padding-inline: 14px; gap: 14px; }
}
@media(max-width:767px) {
 .page-intro > .romantic-mark { position: static; width: 90px; height: 35px; margin-bottom: 18px; }
 .collection-heading-ceremony { padding: 28px 19px; }
 .collection-heading-ceremony h2 { font-size: 44px; }
 .collection-heading-ceremony > p:not(.small-label) { font-size: 16px; }
 .collection-divider { gap: 15px; margin-bottom: 18px; }
 .collection-divider .romantic-mark { width: 140px; height: 55px; }
 .collection-divider::before, .collection-divider::after { width: 35px; }
 .collection-heading-ceremony .button { font-size: 13px; padding-inline: 15px; gap: 15px; }
 .collection-spread, .collection-miniature { grid-template-columns: .8fr 1.2fr; gap: 16px 20px; padding: 22px 18px; }
 .collection-miniature .collection-visual { max-width: none; }
 .collection-story h3 { font-size: 41px; }
 .collection-illustrated .collection-story h3 { font-size: clamp(33px,7.8vw,46px); }
 .collection-illustrated .collection-subtitle { font-size: 22px; }
 .collection-spread .button-collection { width: 100%; padding-inline: 19px; }
 .collection-spread .collection-investment { flex-direction: row; flex-wrap: wrap; }
 .collection-investment > p { font-size: 44px; }
 .text-link { font-size: 14px; gap: 15px; }
 .cinema-caption { flex-wrap: wrap; }
 .cinema-caption .text-link { padding: 11px 16px; }
 .gallery-filters { gap: 9px; padding-block: 8px; }
 .gallery-filters button { min-height: 44px; }
 .footer-ornament { margin-bottom: 35px; }
}
@media(prefers-reduced-motion:reduce) {
 .button::before { display: none; }
}
@media print {
 .romantic-mark, .footer-ornament { display: none; }
 .collection-featured { --paper:white; --ink:black; --muted:#333; color:black; background:white; }
}
.button:hover, .button:focus-visible { color: #fff8e9; }
.hero .button:hover, .hero .button:focus-visible,
.invitation .button:hover, .invitation .button:focus-visible { background: #e4cfa4; color: #332817; }
.collection-spread .button-collection:hover, .collection-spread .button-collection:focus-visible { color: #272219; }

/* Marc's final preference: text invitations, open ornaments, no closed frames. */
:root { --action-color: #815b29; --action-hover: #493117; }
.hero, .invitation, .collection-featured, .about-reportage-band, .media-dialog { --action-color: #edcf8f; --action-hover: #fff3d6; }
html body :is(.button,.text-link,.nav-contact,.collection-jump a,.gallery-filters button) {
 background: transparent !important;
 border: 0 !important;
 border-radius: 0 !important;
 box-shadow: none !important;
 padding: 12px 0 !important;
 min-width: 0 !important;
 width: fit-content !important;
 max-width: 100%;
 white-space: normal;
 min-height: 44px;
 color: var(--action-color) !important;
 text-decoration-line: underline;
 text-decoration-color: #ac8b5766;
 text-decoration-thickness: 1px;
 text-underline-offset: 7px;
 font-weight: 500;
 transition: color .3s, text-decoration-color .3s, text-underline-offset .3s, text-shadow .3s;
}
html body :is(.button,.text-link,.nav-contact,.collection-jump a,.gallery-filters button):is(:hover,:focus-visible) {
 color: var(--action-hover) !important;
 text-decoration-color: currentColor;
 text-underline-offset: 10px;
 text-shadow: 0 0 14px #d6ae6255;
 transform: none;
}
html body :is(.button,.text-link,.nav-contact,.collection-jump a,.gallery-filters button)::before,
html body :is(.button,.text-link,.nav-contact,.collection-jump a,.gallery-filters button)::after { display: none; }
html body .gallery-filters button[aria-pressed=true] { color: #453323; text-decoration-color: #947139; text-decoration-thickness: 2px; }
.gallery-filters { gap: 12px 26px; }
.collection-heading-ceremony { background: transparent; border: 0; padding-inline: 0; }
.collection-heading-ceremony > .button { margin-top: 20px; }
.collection-spread, .collection-featured, .collection-featured:hover { border: 0; }
.collection-spread:not(.collection-featured) { padding-inline: 0; background: transparent; border-bottom: 1px solid #94713940; }
.collection-art, .collection-featured .collection-art { padding: 0; border: 0; background: transparent; }
.collection-investment .button-collection { align-self: start; }
.collection-featured .button-collection { text-decoration-color: #edcf8f80; }
.gallery-enlarge { padding: 0 !important; border: 0; background: transparent; color: #fff6df; text-shadow: 0 1px 5px #000,0 0 14px #000b; text-decoration: underline; text-underline-offset: 5px; }
.play-circle, .play-button:hover .play-circle { width: 48px; height: 48px; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; }
.play-circle::after { display: none; }
.play-circle svg { filter: drop-shadow(0 1px 3px #0009); }
.play-button { color: #fff0ce; text-shadow: 0 1px 5px #000b; }
.play-button > span:last-child { text-decoration: underline; text-decoration-color: #edcf8faa; text-underline-offset: 8px; transition: color .3s,text-shadow .3s; }
.play-button:hover > span:last-child { color: #fff6df; text-shadow: 0 0 12px #edcf8f66,0 1px 5px #000; }
.lightbox-nav, .lightbox-nav:hover { border: 0; border-radius: 0; background: transparent; color: #edcf8f; }
.invitation h2 { font-size: clamp(51px,6.8vw,102px); max-width: 1200px; }
@media(max-width:767px) {
 .gallery-filters { gap: 20px; }
 .collection-spread:not(.collection-featured) { padding-inline: 0; }
 .invitation h2 { font-size: clamp(38px,8.8vw,62px); }
 .cinema-caption .text-link { white-space: normal; }
}
@media(prefers-reduced-motion:reduce) {
 html body :is(.button,.text-link,.nav-contact,.collection-jump a,.gallery-filters button) { transition: none; }
}

.collection-tailored { max-width: 760px; margin: 0 auto 54px; text-align: center; }
.collection-tailored > p:not(.small-label) { color: var(--muted); line-height: 1.8; margin: 16px 0 22px; }
