/* LE BOOK — portfolio éditorial. Styles isolés de l’accueil et des pôles. */
.book-hero { padding-top: 125px; overflow: hidden; }
.book-hero-inner, .book-film-caption { width: calc(100% - var(--gutter) * 2); max-width: 1560px; margin: auto; }
.book-topline { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.book-topline .eyebrow { font-size: 10px; color: var(--muted); }
.book-motion-control { min-height: 44px; display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 9px; }
.book-motion-control:hover { color: var(--accent); }
.motion-icon { display: grid; place-items: center; width: 29px; height: 29px; border: 1px solid var(--line); font-size: 12px; }
.book-hero h1 { font-size: clamp(64px, 20.4vw, 316px); line-height: .8; letter-spacing: -.075em; margin: 35px 0 43px; white-space: nowrap; }
.book-hero h1 > span { color: var(--accent); }
.book-hero-bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: 25px; }
.book-hero-bottom > p { font-size: 15px; line-height: 1.65; color: #bcb8b1; }
.book-local-nav { display: flex; gap: 30px; font-size: 12px; }
.book-local-nav a { display: flex; gap: 25px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.book-local-nav a > span { color: var(--accent); }
.book-local-nav a:hover { color: var(--accent); border-color: var(--accent); }
.book-film { overflow: hidden; margin-top: 44px; padding: 15px 0 50px; }
.book-film-track { display: flex; width: max-content; }
.book-film-group { display: flex; gap: 18px; padding-right: 18px; }
.book-film-frame { position: relative; width: clamp(240px, 30vw, 450px); height: clamp(210px, 24vw, 350px); overflow: hidden; background: #222; }
.book-film-frame:nth-child(even) { transform: translateY(27px); }
.book-film-frame img { height: 100%; width: 100%; object-fit: cover; filter: saturate(.65); }
.book-film-frame:nth-child(3) img { object-position: center 27%; }
.book-film-frame figcaption { position: absolute; bottom: 12px; left: 14px; padding: 5px 9px; font-size: 8px; color: var(--ink); background: #0e0e0ec9; }
.book-enhanced .book-film-track { animation: bookDrift 48s linear infinite; }
@keyframes bookDrift { to { transform: translate3d(-50%, 0, 0); } }
.book-film.is-offscreen .book-film-track, .book-page.is-motion-paused .book-film-track, .book-page.is-document-hidden .book-film-track { animation-play-state: paused; }
.book-film-caption { display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: 8px; padding: 15px 0 25px; }
/* Index des projets : colonne fixe et composition photographique. */
.book-selection .section-shell { padding-top: 65px; padding-bottom: 90px; }
.book-section-top { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-bottom: 30px; border-bottom: 1px solid #24211e38; }
.book-section-top > .mono { color: var(--paper-muted); font-size: 9px; }
.book-layout { display: grid; grid-template-columns: 235px minmax(0,1fr); gap: 60px; margin-top: 45px; align-items: start; }
.book-sidebar { position: sticky; top: 125px; padding-top: 4px; }
.book-sidebar h2 { font-size: clamp(33px,3.1vw,48px); line-height: .99; }
.book-sidebar > p { font-size: 12px; color: var(--paper-muted); line-height: 1.7; margin-top: 20px; }
.book-sidebar > .book-count { margin-top: 37px; font-size: 9px; }
.book-count > span { margin-left: 10px; }
.project-filters.book-filters { display: flex; flex-direction: column; gap: 0; margin-top: 12px; }
.book-filters > button { display: flex; justify-content: space-between; align-items: center; text-align: left; padding: 13px 0; border: 0; border-bottom: 1px solid #24211e25; font-size: 12px; min-height: 45px; }
.book-filters > button[aria-pressed=true] { color: var(--paper-ink); background: none; border: 0; border-bottom: 1px solid var(--paper-ink); font-weight: 700; }
.book-filters > button[aria-pressed=true] > span { color: #b84215; }
.book-filters > button:hover { border-color: var(--paper-ink); }
.book-sidebar-contact { display: inline-block; font-size: 8px; margin-top: 36px; padding: 10px 0; color: var(--paper-muted); }
.book-sidebar-contact:hover { color: var(--paper-ink); }
.book-work-grid.work-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 50px 25px; }
.book-work-grid.work-grid .work-item { grid-column: auto; margin: 0; border: 0; }
.book-work-grid.work-grid .work-item:first-child, .book-work-grid.work-grid .work-item:last-child { grid-column: 1 / -1; }
.book-project-cover { display: block; position: relative; overflow: hidden; background: #cac5bc; }
.book-photo { overflow: hidden; aspect-ratio: .82; }
.book-work-grid .work-item:first-child .book-photo { aspect-ratio: 1.65; }
.book-work-grid .work-item:last-child .book-photo { aspect-ratio: 1.9; }
.book-photo > img { height: 100%; width: 100%; object-fit: cover; filter: saturate(.8); transform: translate3d(0,var(--book-drift,0px),0) scale(1.075); transition: filter .35s, scale .7s var(--ease); }
.book-project:nth-child(3) .book-photo > img { object-position: center 30%; }
.book-project:nth-child(4) .book-photo > img { object-position: center 48%; }
.book-project-cover:hover .book-photo > img { filter: saturate(1); scale: 1.025; }
.book-project-number { position: absolute; top: 15px; left: 15px; color: var(--ink); background: #111c; font-size: 9px; padding: 7px 10px; }
.book-explore { position: absolute; right: 0; bottom: 0; width: 60px; height: 60px; display: grid; place-items: center; background: var(--accent); color: var(--bg); font-size: 38px; transition: background .25s; }
.book-project-cover:hover .book-explore { background: #ff976b; }
.book-project-heading { display: flex; justify-content: space-between; gap: 18px; padding: 20px 0 22px; border-bottom: 1px solid #24211e38; }
.book-project-heading p { text-transform: uppercase; font-size: 9px; color: var(--paper-muted); margin-bottom: 9px; }
.book-project-heading h3 { font-size: clamp(22px,2.25vw,34px); line-height: 1.07; letter-spacing: -.05em; }
.book-project-heading h3 a:hover { text-decoration: underline; text-underline-offset: 5px; }
.book-card-arrow { font-size: 26px; line-height: 1; padding-top: 23px; flex-shrink: 0; }
.book-work-grid.is-filtered .work-item { grid-column: 1 / -1; }
.book-work-grid.is-filtered .work-item .book-photo { aspect-ratio: 1.7; }
.book-project-details { padding: 20px 0; font-size: 14px; }
.book-project-details h4 { display: none; }
.book-project-details .case-kicker { margin-bottom: 12px; }
.book-project-details .case-kicker, .book-project-details .case-description, .book-project-details dt { color: var(--paper-muted); }
.book-project-details .case-facts > div { border-color: #24211e38; }
.book-enhanced .book-project-details { display: none; }
/* Partenaires : noms validés, jamais de fausses références. */
.book-partners .section-shell { padding-top: 88px; padding-bottom: 95px; }
.book-partners-heading { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin: 36px 0 40px; }
.book-partners-heading h2 { font-size: clamp(44px,6.1vw,90px); }
.book-partners-heading h2 span { color: var(--accent); }
.book-partner-symbol { color: var(--accent); font-size: clamp(65px,10vw,145px); line-height: .8; }
.book-partners-copy { display: grid; grid-template-columns: 1fr 1fr; gap: 8%; margin-bottom: 55px; }
.book-partners-copy > p { font-size: 25px; line-height: 1.25; letter-spacing: -.035em; }
.book-partners-copy > div > p { font-size: 14px; line-height: 1.8; color: var(--muted); max-width: 53ch; }
.book-partners-copy .text-link { margin-top: 12px; }
.partner-list { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.partner-card { position: relative; min-height: 170px; display: flex; align-items: center; justify-content: center; padding: 35px 25px; border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); transition: color .3s,background .3s,opacity .6s var(--ease),transform .6s var(--ease); }
.partner-card:hover { background: var(--accent); color: var(--bg); }
.partner-order { position: absolute; top: 13px; left: 15px; font-size: 8px; opacity: .5; }
.partner-name { font-size: clamp(23px,2.5vw,38px); font-weight: 700; letter-spacing: -.04em; line-height: 1.05; text-align: center; }
.partner-long { font-size: clamp(17px,1.5vw,25px); max-width: 14ch; }
.partner-cross { position: absolute; bottom: 12px; right: 15px; opacity: .5; font: 13px var(--mono); }
.collaboration-lines { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 42px; gap: 22px; }
.collaboration-lines > div { display: flex; justify-content: space-between; align-items: center; gap: 10px; border-top: 1px solid var(--line); padding-top: 20px; font-size: 12px; }
.collaboration-lines .mono { font-size: 8px; color: var(--muted); }
.collaboration-lines > div > span:last-child { color: var(--accent); font-size: 20px; }
/* Fiches projets : dialogue natif et navigation entre projets. */
.project-case { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0 var(--gutter); background: #111110; color: var(--ink); border: 0; overflow: auto; }
.project-case::backdrop { background: #0e0e0e; }
.project-case[open] { display: flex; flex-direction: column; }
.case-topbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; border-bottom: 1px solid var(--line); min-height: 75px; flex-shrink: 0; }
.case-topbar > .mono { font-size: 9px; color: var(--muted); }
.case-topbar button { display: flex; align-items: center; gap: 22px; min-height: 44px; font: 10px var(--mono); color: var(--accent); }
.case-topbar button > span { font-size: 32px; }
.case-layout { display: grid; grid-template-columns: 1.4fr 1fr; align-items: center; gap: 6%; flex: 1 0 auto; padding: 40px 0; min-height: 0; }
.case-gallery { min-width: 0; min-height: 0; }
.case-stage { background: #080808; height: min(65vh,680px); display: flex; align-items: center; justify-content: center; }
.case-stage img,.case-stage video { width: 100%; height: 100%; object-fit: contain; }
.case-gallery-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 42px; }
.case-gallery-bar .mono { font-size: 8px; color: var(--muted); }
.case-gallery-bar > div { display: flex; gap: 15px; }
.case-gallery-bar button { min-width: 44px; min-height: 44px; font-size: 23px; color: var(--accent); }
.case-copy { max-height: 65vh; overflow: auto; padding: 7px; }
.case-kicker { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.case-copy h4 { font-size: clamp(30px,3.2vw,52px); line-height: .98; letter-spacing: -.05em; margin: 22px 0 25px; }
.case-description { font-size: 15px; line-height: 1.8; color: var(--muted); }
.case-facts { margin: 28px 0 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.case-facts > div { border-top: 1px solid var(--line); padding-top: 15px; }
.case-facts dt { font: 9px var(--mono); color: var(--muted); text-transform: uppercase; }
.case-facts dd { margin-top: 9px; font-size: 13px; }
.case-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 77px; border-top: 1px solid var(--line); flex-shrink: 0; }
.case-bottom > .mono { font-size: 9px; color: var(--muted); }
.case-bottom > div { display: flex; gap: 35px; }
.case-bottom button { min-height: 44px; font-size: 12px; }
.case-bottom button:hover { color: var(--accent); }
.case-bottom button:disabled { opacity: .4; }
.book-page.is-motion-paused .book-photo > img { transform: scale(1.075); transition: none; }
.book-page.is-motion-paused .reveal { transition: none; }
.book-page.is-motion-paused .reveal.is-pending { opacity: 1; transform: none; }
@media(max-width:1100px) {
 .book-layout { grid-template-columns: 190px minmax(0,1fr); gap: 35px; }
 .book-sidebar h2 { font-size: 33px; }
 .book-work-grid.work-grid { gap: 38px 22px; }
 .book-project-heading h3 { font-size: 25px; }
 .book-partners-heading h2 { font-size: 6vw; }
 .partner-card { min-height: 140px; padding: 32px 18px; }
 .collaboration-lines > div { font-size: 10px; }
 .case-layout { gap: 4%; }
}
@media(max-width:860px) {
 .book-hero { padding-top: 110px; }
 .book-hero h1 { margin-top: 32px; margin-bottom: 32px; }
 .book-hero-bottom > p { font-size: 13px; }
 .book-local-nav { font-size: 11px; gap: 20px; }
 .book-local-nav a { gap: 14px; }
 .book-section-top > .mono { display: none; }
 .book-layout { grid-template-columns: 1fr; gap: 30px; margin-top: 30px; }
 .book-sidebar { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 15px 30px; }
 .book-sidebar h2 { font-size: 40px; }
 .book-sidebar > p { margin-top: 0; align-self: end; }
 .book-sidebar > .book-count { grid-column: 1/-1; margin-top: 15px; }
 .project-filters.book-filters { grid-column: 1/-1; flex-direction: row; gap: 8px; margin-top: 0; }
 .book-filters > button { flex: 1; padding: 10px 14px; border: 1px solid #24211e38; font-size: 11px; }
 .book-filters > button[aria-pressed=true] { background: var(--paper-ink); color: var(--paper); border: 1px solid var(--paper-ink); }
 .book-filters > button[aria-pressed=true] > span { color: var(--accent); }
 .book-sidebar-contact { display: none; }
 .partner-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .partner-card { min-height: 160px; }
 .partner-name { font-size: 33px; }
 .partner-long { font-size: 24px; }
 .collaboration-lines { grid-template-columns: repeat(2,1fr); gap: 25px; }
 .case-layout { grid-template-columns: 1fr; flex: none; padding-top: 25px; padding-bottom: 30px; gap: 20px; }
 .case-stage { height: 44vh; }
 .case-copy { max-height: none; overflow: visible; padding: 0; }
 .case-copy h4 { font-size: 36px; }
 .case-topbar { position: sticky; top: 0; background: #111110; z-index: 2; }
 .case-facts { margin: 23px 0; }
 .case-bottom { min-height: 70px; }
 .case-bottom > div { gap: 20px; }
}
@media(max-width:600px) {
 .book-topline { gap: 10px; }
 .book-topline .eyebrow { font-size: 8px; max-width: 21ch; line-height: 1.5; }
 .book-motion-control { font-size: 7px; gap: 7px; }
 .motion-icon { width: 25px; height: 25px; }
 .book-hero h1 { font-size: 20.2vw; margin: 29px 0; }
 .book-hero-bottom { display: block; }
 .book-hero-bottom > p { font-size: 13px; }
 .book-local-nav { margin-top: 22px; justify-content: space-between; gap: 22px; }
 .book-local-nav a { flex: 1; justify-content: space-between; font-size: 11px; }
 .book-film { margin-top: 25px; padding-top: 0; padding-bottom: 32px; }
 .book-film-group { gap: 12px; padding-right: 12px; }
 .book-film-frame { width: 72vw; height: 66vw; }
 .book-film-frame:nth-child(even) { transform: translateY(18px); }
 .book-film-caption { font-size: 7px; padding-top: 8px; padding-bottom: 21px; }
 .book-film-caption > span:last-child { display: none; }
 .book-selection .section-shell { padding-top: 43px; padding-bottom: 55px; }
 .book-section-top { padding-bottom: 23px; }
 .book-section-top .eyebrow { font-size: 8px; }
 .book-layout { margin-top: 27px; }
 .book-sidebar { gap: 16px; }
 .book-sidebar h2 { font-size: 31px; }
 .book-sidebar > p { font-size: 11px; }
 .book-sidebar > .book-count { margin-top: 5px; font-size: 8px; }
 .book-filters > button { min-height: 44px; padding: 8px 12px; font-size: 10px; }
 .book-work-grid.work-grid { grid-template-columns: 1fr; gap: 30px; }
 .book-work-grid.work-grid .work-item { grid-column: 1/-1; }
 .book-work-grid .work-item .book-photo,.book-work-grid .work-item:first-child .book-photo,.book-work-grid .work-item:last-child .book-photo,.book-work-grid.is-filtered .work-item .book-photo { aspect-ratio: 1.08; }
 .book-project:nth-child(3) .book-photo { aspect-ratio: .85; }
 .book-explore { width: 48px; height: 48px; font-size: 30px; }
 .book-project-number { font-size: 8px; top: 12px; left: 12px; }
 .book-project-heading { padding-top: 16px; padding-bottom: 18px; gap: 12px; }
 .book-project-heading h3 { font-size: 25px; }
 .book-project-heading p { font-size: 8px; }
 .book-card-arrow { font-size: 23px; }
 .book-partners .section-shell { padding-top: 51px; padding-bottom: 55px; }
 .book-partners-heading { gap: 10px; margin: 30px 0; }
 .book-partners-heading h2 { font-size: clamp(30px,8vw,45px); line-height: 1; }
 .book-partner-symbol { display: none; }
 .book-partners-copy { grid-template-columns: 1fr; gap: 23px; margin-bottom: 30px; }
 .book-partners-copy > p { font-size: 24px; }
 .book-partners-copy > div > p { font-size: 13px; }
 .book-partners-copy .text-link { font-size: 11px; }
 .partner-card { min-height: 124px; padding: 26px 14px; }
 .partner-name { font-size: clamp(22px,6vw,31px); }
 .partner-long { font-size: 17px; }
 .partner-order { font-size: 7px; top: 9px; left: 10px; }
 .partner-cross { font-size: 11px; bottom: 8px; right: 10px; }
 .collaboration-lines { margin-top: 28px; gap: 20px; }
 .collaboration-lines > div { font-size: 9px; gap: 7px; padding-top: 13px; }
 .collaboration-lines .mono { font-size: 7px; }
 .case-topbar { min-height: 67px; }
 .case-stage { height: 39vh; }
 .case-copy h4 { font-size: 32px; margin: 18px 0; }
 .case-description { font-size: 14px; }
 .case-facts dd { font-size: 12px; }
 .case-copy .text-link { font-size: 12px; }
 .case-bottom { align-items: flex-start; flex-direction: column; padding: 17px 0; gap: 5px; }
 .case-bottom > div { width: 100%; justify-content: space-between; gap: 15px; }
 .case-bottom button { font-size: 11px; }
}
@media(prefers-reduced-motion:reduce) {
 .book-enhanced .book-film-track { animation: none; }
 .book-photo > img { transform: none; scale: none; }
 .book-project-cover:hover .book-photo > img { scale: none; }
}
@media print {
 .book-film,.book-motion-control,.book-local-nav,.book-filters,.project-case { display: none!important; }
 .book-hero { padding-top: 20px; }
 .book-hero h1 { font-size: 80px; }
 .book-layout { display: block; }
 .book-sidebar { position: static; }
 .book-project-details { display: block!important; }
 .book-work-grid.work-grid { display: block; }
 .book-project { break-inside: avoid; margin-bottom: 30px!important; }
}
