:root {
  --paper: #ffffff;
  --canvas: #ffffff;
  --ink: #151515;
  --quiet: #6f6b65;
  --line: rgba(21, 21, 21, 0.2);
  --signal: #a5163b;
  --deep-blue: #082c68;
  --shell: 68rem;
  --reading: 44rem;
  --serif: Baskerville, "Iowan Old Style", Georgia, serif;
  --sans: "Helvetica Neue", "Avenir Next", Arial, sans-serif;
  color-scheme: light;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  background: var(--canvas);
  color: var(--ink);
  font-family: var(--sans);
  margin: 0;
  min-height: 100%;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
::selection { background: var(--signal); color: white; }

.skip-link {
  background: var(--ink);
  color: white;
  left: 1rem;
  padding: 0.8rem 1rem;
  position: fixed;
  top: -5rem;
  z-index: 100000;
}
.skip-link:focus { top: 1rem; }

/* Accueil portfolio — vitrine visuelle, les contenus détaillés vivent sur leurs pages. */
.portfolio-header {
  background: rgba(255,255,255,0.97);
  border-bottom: 1px solid rgba(21,21,21,0.18);
  color: var(--ink);
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 50;
}
.portfolio-header-inner {
  align-items: center;
  display: flex;
  justify-content: space-between;
  padding: 1.7rem 3rem;
  width: 100%;
}
.portfolio-header .word-main { font-size: 1.45rem; }
.portfolio-header .word-org { color: var(--signal); font-size: 0.8rem; }
.portfolio-desktop-nav { display: flex; gap: 2rem; }
.portfolio-desktop-nav a {
  font-size: 0.61rem;
  font-weight: 750;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.portfolio-desktop-nav a { border-bottom: 1px solid transparent; padding-bottom: 0.35rem; }
.portfolio-desktop-nav a:hover,
.portfolio-desktop-nav a:focus-visible { border-color: currentColor; }

.brand-cluster { align-items: center; display: flex; gap: 0.85rem; position: relative; }
.header-hamburger { position: static; }
.header-hamburger summary {
  align-items: center;
  border: 1px solid rgba(21,21,21,0.24);
  cursor: pointer;
  display: flex;
  height: 2rem;
  justify-content: center;
  list-style: none;
  width: 2rem;
}
.header-hamburger summary::-webkit-details-marker { display: none; }
.hamburger-lines { display: grid; gap: 0.22rem; width: 0.82rem; }
.hamburger-lines i { background: currentColor; display: block; height: 1px; width: 100%; }
.header-hamburger nav {
  background: #ffffff;
  border: 1px solid var(--line);
  box-shadow: 0 1.2rem 2.5rem rgba(21,21,21,0.12);
  color: var(--ink);
  display: grid;
  left: 0;
  min-width: 16rem;
  padding: 0.75rem 1.25rem;
  position: absolute;
  top: calc(100% + 1rem);
}
.header-hamburger nav a { border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: 1.1rem; padding: 0.85rem 0; }
.header-hamburger nav a:last-child { border-bottom: 0; }
.header-hamburger nav a:hover,
.header-hamburger nav a:focus-visible { color: var(--signal); }

.portfolio-home { background: #07101e; color: #fffdf8; min-height: 100svh; }
.portfolio-home[data-active-project="0"] { background: #ffffff; }
.portfolio-stage { min-height: 100svh; overflow: hidden; position: relative; }
.portfolio-slide { inset: 0; position: absolute; }
.portfolio-slide[hidden] { display: none !important; }
.portfolio-slide.is-active { animation: portfolio-slide-in 720ms cubic-bezier(0.22, 1, 0.36, 1) both; }
.portfolio-media,
.portfolio-veil { inset: 0; position: absolute; }
.portfolio-media { background: #0d2855; overflow: hidden; }
.portfolio-media img {
  animation: portfolio-reveal 650ms ease both;
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.portfolio-veil {
  background:
    linear-gradient(90deg, rgba(3,8,16,0.78) 0%, rgba(3,8,16,0.36) 48%, rgba(3,8,16,0.12) 100%),
    linear-gradient(0deg, rgba(3,8,16,0.75) 0%, rgba(3,8,16,0) 48%);
}
.portfolio-intro { color: #0f0f10; }
.portfolio-intro .portfolio-media { background: #ffffff; }
.portfolio-intro .portfolio-veil { background: none; }
.portfolio-brand-art {
  animation: portfolio-reveal 650ms ease both;
  background: #ffffff;
  height: 100%;
  overflow: hidden;
  position: relative;
  width: 100%;
}
.portfolio-rjc-photo .portfolio-media img { filter: grayscale(1) contrast(1.08); object-position: 68% center; }
.portfolio-rjc-photo .portfolio-veil { background: linear-gradient(90deg, rgba(1,7,18,0.9), rgba(1,7,18,0.12) 72%); }
.portfolio-ccda .portfolio-media { background: #061c6b; }
.portfolio-ccda .portfolio-media img { object-position: 100% center; }
.portfolio-ccda .portfolio-veil { background: linear-gradient(90deg, rgba(1,9,35,0.88), rgba(1,9,35,0.1) 70%); }
.portfolio-carnets .portfolio-media { align-items: center; background: radial-gradient(circle at 70% 44%, #44332d 0%, #1e181a 48%, #080a10 100%); display: flex; justify-content: center; }
.portfolio-carnets .portfolio-veil { background: linear-gradient(90deg, rgba(5,6,10,0.9), rgba(5,6,10,0.08) 72%); }
.portfolio-frederica .portfolio-media img { object-position: center; }
.portfolio-frederica .portfolio-veil { background: linear-gradient(90deg, rgba(4,8,18,0.66), rgba(4,8,18,0.02) 70%), linear-gradient(0deg, rgba(4,8,18,0.55), transparent 48%); }

.portfolio-signature { display: grid; gap: 0.7rem; max-width: 23rem; }
.portfolio-signature p { font-size: 0.58rem; font-weight: 750; letter-spacing: 0.15em; margin: 0; text-transform: uppercase; }
.portfolio-signature p:last-child { color: rgba(255,253,248,0.7); }
.portfolio-project { bottom: 9.7rem; left: 3rem; max-width: min(55rem, calc(100% - 6rem)); position: absolute; z-index: 2; }
.portfolio-intro .portfolio-project { max-width: none; right: 3rem; }
.portfolio-project > p { font-size: 0.58rem; font-weight: 750; letter-spacing: 0.16em; margin: 0 0 1.15rem; text-transform: uppercase; }
.portfolio-project h1,
.portfolio-project h2 { font-family: var(--serif); font-size: clamp(3.2rem, 6.6vw, 6.7rem); font-weight: 400; letter-spacing: -0.065em; line-height: 0.88; margin: 0; max-width: 13ch; text-wrap: balance; }
.portfolio-intro-heading { align-items: end; display: grid; gap: clamp(2rem, 4vw, 5rem); grid-template-columns: max-content minmax(10rem, 23rem); }
.portfolio-project .portfolio-title-brand { font-family: var(--sans); font-size: clamp(3.4rem, 7.4vw, 7.6rem); font-weight: 900; letter-spacing: 0.01em; line-height: 0.82; max-width: none; text-transform: uppercase; white-space: nowrap; }
.portfolio-title-brand span { color: #f3c8d1; font-size: 0.28em; letter-spacing: -0.02em; margin-left: 0.08em; text-transform: none; }
.portfolio-intro .portfolio-title-brand span,
.portfolio-intro .portfolio-project > p,
.portfolio-intro .portfolio-project > a b { color: #b10d49; }
.portfolio-project > span { display: block; font-size: 0.65rem; font-weight: 750; letter-spacing: 0.13em; margin-top: 1.45rem; text-transform: uppercase; }
.portfolio-project > a { border-bottom: 1px solid currentColor; display: inline-flex; font-size: 0.62rem; font-weight: 750; gap: 0.6rem; letter-spacing: 0.12em; margin-top: 1.5rem; padding-bottom: 0.4rem; text-transform: uppercase; }
.portfolio-project > a b { color: #f3c8d1; font-weight: 400; }

.portfolio-project-nav { background: #ffffff; bottom: 0; display: grid; gap: 0; grid-template-columns: repeat(5, 1fr); left: 0; overflow: hidden; pointer-events: auto; position: absolute; right: 0; z-index: 10; }
.portfolio-project-nav a { -webkit-tap-highlight-color: transparent; align-items: end; background: var(--project-gradient); border: 0; color: var(--project-color); cursor: pointer; display: grid; filter: none; gap: 0.65rem; min-height: 6.8rem; opacity: 1; padding: 1.2rem 1.5rem; position: relative; text-align: left; text-decoration: none; touch-action: manipulation; transition: filter 180ms ease; user-select: none; }
.portfolio-project-nav a:nth-child(1) { --project-color: #fffaf2; --project-gradient: linear-gradient(135deg, #d3175c 0%, #ae0746 52%, #7c0029 100%); --project-marker: #ffffff; }
.portfolio-project-nav a:nth-child(2) { --project-color: #ffffff; --project-gradient: linear-gradient(135deg, #2e9eff 0%, #0c79d8 58%, #0750b8 100%); --project-marker: #ffffff; }
.portfolio-project-nav a:nth-child(3) { --project-color: #ffffff; --project-gradient: linear-gradient(135deg, #1c1c1c 0%, #020202 62%, #171717 100%); --project-marker: #2e9eff; }
.portfolio-project-nav a:nth-child(4) { --project-color: #74162f; --project-gradient: linear-gradient(135deg, #ffffff 0%, #fbf8f2 100%); --project-marker: #9b2141; }
.portfolio-project-nav a:nth-child(5) { --project-color: #ffffff; --project-gradient: linear-gradient(135deg, #ff7a1a 0%, #e83a21 48%, #c40d3c 100%); --project-marker: #ffffff; }
.portfolio-project-nav a:not(:nth-child(4)) { text-shadow: 0 1px 2px rgba(0,0,0,0.26); }
.portfolio-project-nav a:hover,
.portfolio-project-nav a:focus-visible,
.portfolio-project-nav a[aria-current="true"] { background: var(--project-gradient); color: var(--project-color); filter: brightness(1.06) saturate(1.04); }
.portfolio-project-nav a:focus-visible { outline: 2px solid rgba(255,255,255,0.92); outline-offset: -3px; }
.portfolio-project-nav small { font-size: 0.56rem; font-weight: 800; letter-spacing: 0.13em; line-height: 1; opacity: 0.92; }
.portfolio-project-nav span { font-family: var(--sans); font-size: 1.05rem; font-weight: 750; letter-spacing: 0.005em; line-height: 1.12; }

.portfolio-home[data-active-project="0"] .portfolio-signature { color: #0f0f10; }
.portfolio-home[data-active-project="0"] .portfolio-signature p:last-child { color: #78686d; }
body:has(.portfolio-home[data-active-project="0"]) .portfolio-header { color: #0f0f10; }
body:has(.portfolio-home[data-active-project="0"]) .portfolio-header .word-org { color: #b10d49; }

.carnets-artwork { aspect-ratio: 0.72; filter: drop-shadow(1.8rem 2.2rem 2.4rem rgba(0,0,0,0.42)); height: min(69vh, 44rem); position: relative; transform: perspective(80rem) rotateY(-8deg) rotateZ(1deg); }
.portfolio-home .carnets-artwork { animation: portfolio-reveal 650ms ease both; }
.carnets-book-spine { background: linear-gradient(90deg, #6e182e, #951f3d 45%, #4a1020); bottom: 1.2%; left: -4.5%; position: absolute; top: 1.2%; transform: skewY(-4deg); width: 6%; }
.carnets-book-cover { background: linear-gradient(135deg, transparent 0 73%, rgba(132,27,53,0.14) 73% 100%), #f1eadf; color: #12141b; display: flex; flex-direction: column; height: 100%; padding: 8% 9%; position: relative; width: 100%; }
.carnets-book-cover::after { border: 1px solid rgba(18,20,27,0.3); content: ""; inset: 3.4%; pointer-events: none; position: absolute; }
.carnets-book-cover small { font-size: 0.52rem; font-style: normal; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
.carnets-rule { background: #841b35; height: 0.35rem; margin: 11% 0 14%; width: 34%; }
.carnets-book-cover strong { font-family: var(--serif); font-size: clamp(2rem, 4.2vh, 3.1rem); font-weight: 400; letter-spacing: -0.055em; line-height: 0.91; }
.carnets-book-cover em { color: #841b35; font-family: var(--serif); font-size: clamp(1.15rem, 2.3vh, 1.75rem); font-style: italic; margin-top: 4%; }
.carnets-note { font-size: 0.48rem; font-weight: 800; letter-spacing: 0.13em; margin-top: auto; text-transform: uppercase; }
.carnets-book-cover b { border-top: 1px solid rgba(18,20,27,0.35); font-family: var(--serif); font-size: 0.78rem; font-weight: 400; margin-top: 6%; padding-top: 6%; }

@keyframes portfolio-reveal {
  from { opacity: 0; transform: scale(1.025); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes portfolio-slide-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (max-width: 820px) {
  .portfolio-header-inner { padding: 1.35rem 1.4rem; }
  .portfolio-desktop-nav { display: none; }
  .portfolio-project { bottom: 11.8rem; left: 1.4rem; max-width: calc(100% - 2.8rem); }
  .portfolio-intro .portfolio-project { max-width: none; right: 1.4rem; }
  .portfolio-intro-heading { gap: 1rem; grid-template-columns: max-content minmax(7.5rem, 1fr); }
  .portfolio-intro-heading .portfolio-title-brand { font-size: clamp(2.35rem, 7.2vw, 3.75rem); }
  .portfolio-intro-heading .portfolio-signature { justify-self: end; max-width: 12rem; }
  .portfolio-intro-heading .portfolio-signature p { font-size: 0.46rem; letter-spacing: 0.11em; line-height: 1.5; }
  .portfolio-project h1,
  .portfolio-project h2 { font-size: clamp(3rem, 12vw, 5rem); }
  .portfolio-project-nav { grid-template-columns: repeat(2, 1fr); }
  .portfolio-project-nav a:first-child { grid-column: 1 / -1; min-height: 3.8rem; }
  .portfolio-project-nav a { min-height: 4.65rem; padding: 0.8rem 1rem; }
  .portfolio-project-nav span { font-size: 0.98rem; font-weight: 800; }
  .portfolio-ccda .portfolio-media img { object-position: 78% center; }
  .portfolio-brand-art { background: #ffffff; }
  .portfolio-slide:not(.portfolio-intro) .portfolio-project { text-shadow: 0 1px 16px rgba(0,0,0,0.46); }
  .portfolio-rjc-photo .portfolio-veil { background: linear-gradient(90deg, rgba(1,7,18,0.72), rgba(1,7,18,0.06) 78%); }
  .portfolio-ccda .portfolio-veil { background: linear-gradient(90deg, rgba(1,9,35,0.7), rgba(1,9,35,0.05) 78%); }
  .portfolio-frederica .portfolio-veil { background: linear-gradient(90deg, rgba(4,8,18,0.45), rgba(4,8,18,0.01) 76%), linear-gradient(0deg, rgba(4,8,18,0.42), transparent 52%); }
}

@media (max-width: 520px) {
  .portfolio-header .word-main { font-size: 1.15rem; }
  .portfolio-header .word-org { font-size: 0.68rem; }
  .portfolio-project { bottom: 12.6rem; }
  .portfolio-project h1,
  .portfolio-project h2 { font-size: 3.1rem; }
  .portfolio-intro-heading { gap: 0.9rem; grid-template-columns: 1fr; }
  .portfolio-intro-heading .portfolio-title-brand { font-size: clamp(2.25rem, 9.6vw, 3rem); }
  .portfolio-intro-heading .portfolio-signature { justify-self: end; max-width: 15rem; text-align: right; }
  .portfolio-project > span { font-size: 0.56rem; line-height: 1.5; }
  .portfolio-project-nav a { min-height: 3.85rem; }
  .portfolio-project-nav a:first-child { min-height: 3.35rem; }
  .portfolio-project-nav small { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .portfolio-slide.is-active { animation: none; }
  .portfolio-media img,
  .portfolio-brand-art,
  .carnets-artwork { animation: none; }
}

.shell {
  margin-inline: auto;
  max-width: var(--shell);
  width: calc(100% - 3rem);
}

.site-header {
  background: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  z-index: 20;
}

.header-inner {
  align-items: center;
  display: flex;
  height: 78px;
  justify-content: space-between;
  margin: auto;
  max-width: var(--shell);
  width: calc(100% - 3rem);
}

.wordmark { align-items: center; display: inline-flex; font-family: var(--sans); line-height: 1; white-space: nowrap; }
.word-main { font-size: 1.35rem; font-weight: 900; letter-spacing: 0.01em; word-spacing: 0.08em; }
.word-org { align-self: flex-end; color: var(--signal); font-size: 0.76rem; font-weight: 900; letter-spacing: 0; margin-left: 0.08rem; transform: translateY(0.08rem); }

.desktop-nav { align-items: center; display: flex; gap: 2.05rem; }
.desktop-nav a { font-size: 0.63rem; font-weight: 700; letter-spacing: 0.11em; text-transform: uppercase; }
.desktop-nav a:hover, .desktop-nav a:focus-visible { color: var(--signal); }

.eyebrow {
  color: var(--signal);
  font-size: 0.61rem;
  font-weight: 750;
  letter-spacing: 0.17em;
  margin: 0;
  text-transform: uppercase;
}

.home-hero {
  align-items: end;
  display: grid;
  gap: 5.5rem;
  grid-template-columns: minmax(0, 1.25fr) minmax(17rem, 0.75fr);
  min-height: 34rem;
  padding-block: 5.8rem 5rem;
}

.home-statement h1 {
  font-family: var(--serif);
  font-size: clamp(3.6rem, 6.3vw, 5.4rem);
  font-weight: 400;
  letter-spacing: -0.065em;
  line-height: 0.87;
  margin: 2rem 0 0;
}

.home-statement h1 em { color: var(--signal); font-weight: 400; }
.home-intro { border-top: 1px solid var(--ink); padding-top: 1.25rem; }
.home-intro > p:first-child { font-family: var(--serif); font-size: 1.4rem; line-height: 1.42; margin: 0; }
.home-intro > p:nth-child(2) { color: var(--quiet); font-size: 0.73rem; letter-spacing: 0.08em; line-height: 1.6; margin: 1.4rem 0 0; text-transform: uppercase; }
.home-actions { display: grid; gap: 0.8rem; margin-top: 2.2rem; }

.text-link {
  align-items: center;
  display: inline-flex;
  font-size: 0.7rem;
  font-weight: 750;
  gap: 0.65rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  width: fit-content;
}

.text-link span { color: var(--signal); font-size: 1rem; transition: transform 160ms ease; }
.text-link:hover span, .text-link:focus-visible span { transform: translateX(0.25rem); }

.project-index { padding-block: 5.5rem; }
.index-heading { align-items: end; display: grid; gap: 2rem; grid-template-columns: 0.7fr 1.3fr; margin-bottom: 3rem; }
.index-heading h2, .home-proof h2, .partner-call h2, .team h2, .governance h2, .trust-commitment h2 {
  font-family: var(--serif);
  font-size: clamp(2.2rem, 4vw, 3.6rem);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 1;
  margin: 0;
}

.project-rows { border-bottom: 1px solid var(--line); }
.project-row {
  align-items: center;
  border-top: 1px solid var(--line);
  display: grid;
  gap: 1.6rem;
  grid-template-columns: 2.6rem 10rem 1fr 2rem;
  min-height: 12.2rem;
  padding-block: 1.25rem;
  transition: color 170ms ease, padding 170ms ease;
}
.project-row:hover, .project-row:focus-visible { color: var(--signal); padding-inline: 0.5rem; }
.project-number { align-self: start; color: var(--quiet); font-size: 0.58rem; letter-spacing: 0.12em; padding-top: 0.5rem; }
.project-thumb { align-items: center; display: flex; height: 8rem; justify-content: center; overflow: hidden; }
.project-thumb img { height: 100%; object-fit: cover; width: 100%; }
.project-thumb.ccda, .project-thumb.rjc { background: var(--deep-blue); padding: 1rem; }
.project-thumb.ccda img, .project-thumb.rjc img { object-fit: contain; }
.project-row-copy { display: grid; gap: 0.6rem; }
.project-field { color: var(--quiet); font-size: 0.59rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.project-row-copy strong { font-family: var(--serif); font-size: 2rem; font-weight: 400; letter-spacing: -0.035em; }
.project-row-copy > span:last-child { color: var(--quiet); font-size: 0.87rem; line-height: 1.55; max-width: 39rem; }
.project-arrow { color: var(--signal); font-size: 1.2rem; }

.home-project-doors { border-top: 1px solid var(--line); padding-block: 4rem 5.5rem; }
.home-project-doors > header { align-items: end; display: grid; gap: 2rem; grid-template-columns: 0.55fr 1.45fr; margin-bottom: 2.5rem; }
.home-project-doors h2 {
  font-family: var(--serif);
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 1;
  margin: 0;
}
.home-project-doors header .text-link { margin-top: 1.4rem; }
.project-doors { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(4, 1fr); }
.project-door { border-right: 1px solid var(--line); display: grid; min-height: 13rem; padding: 1.35rem; transition: background 170ms ease, color 170ms ease; }
.project-door:last-child { border-right: 0; }
.project-door:hover, .project-door:focus-visible { background: var(--paper); color: var(--signal); }
.project-door .project-number { padding: 0; }
.project-door .project-field { align-self: end; }
.project-door strong { font-family: var(--serif); font-size: 1.55rem; font-weight: 400; letter-spacing: -0.035em; line-height: 1.05; }
.project-door .project-arrow { justify-self: end; }

.home-proof { border-top: 1px solid var(--line); display: grid; gap: 3rem; grid-template-columns: 0.7fr 1.3fr; padding-block: 5.5rem; }
.home-proof > div > p { color: var(--quiet); font-family: var(--serif); font-size: 1.17rem; line-height: 1.6; max-width: 40rem; }
.home-proof .text-link { margin-top: 1rem; }

.partner-call { background: #ffffff; border-block: 1px solid var(--line); color: var(--ink); margin-bottom: 5.5rem; padding: 4.8rem; }
.partner-call > p { color: var(--quiet); font-size: 0.61rem; font-weight: 700; letter-spacing: 0.16em; margin: 0 0 2.4rem; text-transform: uppercase; }
.partner-call h2 { max-width: 18ch; }
.partner-call > a, .request-link { border-bottom: 1px solid currentColor; display: inline-block; font-size: 0.68rem; font-weight: 750; letter-spacing: 0.11em; margin-top: 2.6rem; padding-bottom: 0.5rem; text-transform: uppercase; }

.page-intro { border-bottom: 1px solid var(--line); padding-block: 6rem 5rem; }
.page-intro-grid { align-items: end; display: grid; gap: 5rem; grid-template-columns: 1.25fr 0.75fr; margin-top: 2rem; }
.page-intro h1, .project-heading h1 {
  font-family: var(--serif);
  font-size: clamp(3.4rem, 5.8vw, 5.1rem);
  font-weight: 400;
  letter-spacing: -0.06em;
  line-height: 0.96;
  margin: 0;
}
.page-intro-grid > p { color: var(--quiet); font-family: var(--serif); font-size: 1.25rem; line-height: 1.55; margin: 0; }

.manifesto { border-bottom: 1px solid var(--line); padding-block: 5rem; }
.manifesto blockquote { font-family: var(--serif); font-size: clamp(2rem, 4.6vw, 4rem); letter-spacing: -0.045em; line-height: 1.04; margin: 2.5rem 0 0; max-width: 21ch; }
.team { padding-block: 5.5rem; }
.team > header { display: grid; gap: 2rem; grid-template-columns: 0.65fr 1.35fr; margin-bottom: 3rem; }
.team-member { border-top: 1px solid var(--line); display: grid; gap: 2rem; grid-template-columns: 0.65fr 1.35fr 1fr; padding-block: 2rem; }
.team-member > p { color: var(--signal); font-size: 0.61rem; font-weight: 700; letter-spacing: 0.11em; line-height: 1.55; margin: 0; text-transform: uppercase; }
.team-member h3 { font-family: var(--serif); font-size: 1.75rem; font-weight: 400; letter-spacing: -0.035em; margin: 0; }
.team-member > span { color: var(--quiet); font-size: 0.87rem; line-height: 1.6; }
.governance { background: #ffffff; border-block: 1px solid var(--line); display: grid; gap: 2.2rem; grid-template-columns: 0.45fr 1.1fr 0.65fr; margin-bottom: 5.5rem; padding: 4.4rem; }
.governance > p:last-child { color: var(--quiet); line-height: 1.7; margin: 0; }

.project-chapters { padding-block: 5rem; }
.project-chapter { align-items: center; border-top: 1px solid var(--line); display: grid; gap: 3rem; grid-template-columns: 18rem 1fr; padding-block: 2rem; }
.project-chapter:last-child { border-bottom: 1px solid var(--line); }
.chapter-visual { align-items: center; display: flex; height: 18rem; justify-content: center; overflow: hidden; }
.chapter-visual img { height: 100%; object-fit: cover; width: 100%; }
.chapter-visual.ccda, .chapter-visual.rjc { background: var(--deep-blue); padding: 2rem; }
.chapter-visual.ccda img, .chapter-visual.rjc img { object-fit: contain; }
.chapter-visual.intro { background: #07101e; color: #fffdf8; }
.project-rp-monogram { font-family: var(--sans); font-size: 6rem; font-weight: 900; letter-spacing: -0.09em; }
.project-rp-monogram small { color: #c97187; font-size: 1.1rem; letter-spacing: 0; }
.chapter-visual.carnets { background: #18151a; }
.chapter-visual .carnets-artwork { height: 88%; }
.chapter-copy { display: grid; gap: 1rem; }
.chapter-copy h2 { font-family: var(--serif); font-size: 2.8rem; font-weight: 400; letter-spacing: -0.045em; margin: 0; }
.chapter-copy > span:nth-child(3) { color: var(--quiet); line-height: 1.65; max-width: 37rem; }

.project-hero { align-items: center; display: grid; gap: 4.5rem; grid-template-columns: 1fr 0.85fr; min-height: 39rem; padding-block: 5rem; }
.project-heading h1 { margin-top: 2rem; }
.project-lead { color: var(--quiet); font-family: var(--serif); font-size: 1.3rem; line-height: 1.55; max-width: 33rem; }
.project-heading .text-link { margin-top: 1.5rem; }
.project-hero-visual { align-items: center; display: flex; height: 31rem; justify-content: center; overflow: hidden; }
.project-hero-visual img { height: 100%; object-fit: cover; width: 100%; }
.project-hero-visual.riviera { aspect-ratio: 1600 / 965; background: #fbfaf7; height: auto; }
.project-hero-visual.riviera img { object-fit: contain; }
.project-hero-visual.ccda, .project-hero-visual.rjc { background: var(--deep-blue); padding: 3.2rem; }
.project-hero-visual.ccda img, .project-hero-visual.rjc img { object-fit: contain; }
.project-hero-visual.carnets { background: #18151a; }
.project-hero-visual .carnets-artwork { height: 88%; }
.project-body { border-top: 1px solid var(--line); padding-block: 1rem 5.5rem; }
.project-body article { display: grid; gap: 3rem; grid-template-columns: 0.55fr 1.45fr; padding-block: 3.2rem; }
.project-body article + article { border-top: 1px solid var(--line); }
.project-body h2 { font-family: var(--serif); font-size: 2.4rem; font-weight: 400; letter-spacing: -0.04em; line-height: 1.15; margin: 0; }
.project-body article > p:last-child { color: var(--quiet); font-family: var(--serif); font-size: 1.2rem; line-height: 1.7; margin: 0; }
.editorial-list { list-style: none; margin: 0; padding: 0; }
.editorial-list li { border-top: 1px solid var(--line); font-family: var(--serif); font-size: 1.2rem; padding: 0.9rem 0; }
.editorial-list li:last-child { border-bottom: 1px solid var(--line); }
.support-note { background: #ffffff; margin-top: 2rem; }
.support-note > div { display: grid; gap: 1.5rem; }
.project-house-note { display: grid; gap: 1.5rem; }
.project-house-note > p { color: var(--quiet); font-family: var(--serif); font-size: 1.2rem; line-height: 1.7; margin: 0; }
.radio-focus .project-house-note { gap: 1.7rem; }
.radio-focus .radio-status { border-left: 2px solid var(--signal); font-family: var(--sans); font-size: 0.95rem; line-height: 1.65; padding-left: 1.2rem; }
.radio-focus .radio-status strong { color: var(--ink); }

.expertise-chapters { padding-block: 4rem 6rem; }
.expertise-chapters article { border-top: 1px solid var(--line); display: grid; gap: 3rem; grid-template-columns: 4rem 1fr; padding-block: 2.3rem; }
.expertise-chapters article:last-child { border-bottom: 1px solid var(--line); }
.expertise-chapters article > span { color: var(--signal); font-family: var(--serif); font-style: italic; }
.expertise-chapters h2 { font-family: var(--serif); font-size: 2.5rem; font-weight: 400; letter-spacing: -0.04em; margin: 0; }
.expertise-chapters p { color: var(--quiet); font-size: 1rem; line-height: 1.65; max-width: 45rem; }
.expertise-chapters small { font-size: 0.59rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }

.opportunities { border-bottom: 1px solid var(--line); padding-block: 3rem 5rem; }
.opportunities article { border-top: 1px solid var(--line); display: grid; gap: 2.5rem; grid-template-columns: 3rem 1fr 1fr; padding-block: 2rem; }
.opportunities article > span { color: var(--signal); font-family: var(--serif); font-style: italic; }
.opportunities h2 { font-family: var(--serif); font-size: 2rem; font-weight: 400; letter-spacing: -0.035em; margin: 0; }
.opportunities p { color: var(--quiet); line-height: 1.65; margin: 0; }
.trust-commitment { background: #ffffff; border-block: 1px solid var(--line); color: var(--ink); margin-block: 5rem; padding: 4.8rem; }
.trust-commitment h2 { margin-top: 2.6rem; max-width: 22ch; }
.trust-commitment > p:nth-child(3) { color: var(--quiet); line-height: 1.65; max-width: 41rem; }

.contact-section { padding-block: 4rem 6rem; }
.contact-form { display: grid; gap: 2rem 2.5rem; grid-template-columns: 1fr 1fr; max-width: 54rem; }
.contact-form label { display: grid; font-size: 0.62rem; font-weight: 700; gap: 0.65rem; letter-spacing: 0.11em; text-transform: uppercase; }
.form-label b { color: var(--signal); margin-left: 0.2rem; }
.form-label small { color: var(--quiet); font-size: 0.52rem; font-weight: 500; letter-spacing: 0.08em; margin-left: 0.35rem; }
.contact-form input, .contact-form select, .contact-form textarea { background: transparent; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; color: var(--ink); min-height: 3.1rem; outline: none; }
.contact-form textarea { border: 1px solid var(--ink); padding: 1rem; resize: vertical; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--signal); }
.full-field, .form-note, .contact-form button, .form-feedback { grid-column: 1 / -1; }
.form-note { color: var(--quiet); font-size: 0.75rem; margin: 0; }
.form-note a { border-bottom: 1px solid currentColor; }
.honeypot { height: 0; left: -10000px; overflow: hidden; position: absolute; width: 1px; }
.contact-form button { background: var(--ink); border: 0; color: white; font-size: 0.65rem; font-weight: 750; letter-spacing: 0.12em; padding: 1.1rem 1.5rem; text-transform: uppercase; width: fit-content; }
.contact-form button:disabled { cursor: not-allowed; opacity: 0.45; }
.form-feedback { font-family: var(--serif); font-size: 1rem; margin: 0; min-height: 1.4rem; }
.form-feedback.success { color: #23663f; }
.form-feedback.error { color: var(--signal); }

.legal-copy { max-width: var(--reading); padding-block: 4rem 6rem; }
.legal-copy h2 { font-family: var(--serif); font-size: 2rem; font-weight: 400; margin: 2.5rem 0 0.8rem; }
.legal-copy p { color: var(--quiet); line-height: 1.7; }
.legal-update { border-top: 1px solid var(--line); font-size: 0.75rem; margin-top: 3rem; padding-top: 1.2rem; }

.admin-shell { margin: 0 auto; max-width: 58rem; min-height: 100vh; padding: 4rem 1.5rem 6rem; }
.admin-header { align-items: center; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; padding-bottom: 2rem; }
.admin-header .eyebrow { margin-top: 1rem; }
.admin-header > a, .admin-shell > a { border-bottom: 1px solid currentColor; font-size: 0.65rem; font-weight: 750; letter-spacing: 0.1em; padding-bottom: 0.35rem; text-transform: uppercase; }
.admin-shell > h1 { font-family: var(--serif); font-size: clamp(3rem, 6vw, 5rem); font-weight: 400; letter-spacing: -0.055em; margin: 4rem 0 1rem; }
.admin-summary { color: var(--quiet); }
.message-list { display: grid; gap: 1rem; margin-top: 3rem; }
.message-card { background: #ffffff; border: 1px solid var(--line); padding: 2rem; }
.message-card header { align-items: start; display: flex; gap: 2rem; justify-content: space-between; }
.message-card h2 { font-family: var(--serif); font-size: 1.8rem; font-weight: 400; margin: 0.5rem 0 0; }
.message-card header p:not(.eyebrow), .message-card time { color: var(--quiet); font-size: 0.75rem; }
.message-body { line-height: 1.7; white-space: pre-wrap; }
.message-card > a { border-bottom: 1px solid var(--signal); color: var(--signal); font-size: 0.7rem; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }

.site-footer { background: #ffffff; border-top: 1px solid var(--line); padding-block: 3.6rem; }
.footer-inner { display: flex; justify-content: space-between; margin: auto; max-width: var(--shell); width: calc(100% - 3rem); }
.footer-inner > div:first-child > p { color: var(--quiet); font-size: 0.58rem; font-weight: 700; letter-spacing: 0.16em; margin: 1.2rem 0 0; text-transform: uppercase; }
.footer-links { display: grid; gap: 0.65rem; justify-items: end; }
.footer-links a, .footer-links button { background: none; border: 0; color: var(--quiet); cursor: pointer; font-size: 0.68rem; padding: 0; }
.footer-links a:hover, .footer-links button:hover { color: var(--signal); }

/* Consentement et mesure d’audience interne. */
.privacy-shortcut {
  background: #ffffff;
  border: 1px solid var(--line);
  bottom: auto;
  color: var(--ink);
  cursor: pointer;
  font-size: 0.56rem;
  font-weight: 750;
  left: auto;
  letter-spacing: 0.1em;
  padding: 0.65rem 0.8rem;
  position: fixed;
  right: 1rem;
  top: 6.2rem;
  text-transform: uppercase;
  z-index: 80;
}
.privacy-shortcut:hover, .privacy-shortcut:focus-visible { border-color: var(--signal); color: var(--signal); }
.consent-layer[hidden], .consent-actions[hidden], .consent-preferences[hidden] { display: none !important; }
.consent-layer {
  align-items: end;
  background: rgba(15, 15, 16, 0.28);
  display: grid;
  inset: 0;
  padding: 1rem;
  position: fixed;
  z-index: 100000;
}
.consent-dialog {
  background: #ffffff;
  border: 1px solid rgba(21,21,21,0.24);
  box-shadow: 0 1.6rem 4rem rgba(21,21,21,0.18);
  margin: 0 auto;
  max-width: 58rem;
  padding: 2.2rem;
  position: relative;
  width: 100%;
}
.consent-dialog h2 { font-family: var(--serif); font-size: clamp(2rem, 4vw, 3.1rem); font-weight: 400; letter-spacing: -0.045em; line-height: 1; margin: 1rem 0; }
.consent-dialog > p:not(.eyebrow) { color: var(--quiet); font-size: 0.88rem; line-height: 1.65; margin: 0; max-width: 49rem; }
.consent-close { background: none; border: 0; color: var(--quiet); cursor: pointer; font-size: 1.6rem; line-height: 1; padding: 0.4rem; position: absolute; right: 1rem; top: 1rem; }
.consent-actions { display: grid; gap: 0.75rem; grid-template-columns: 1fr 1fr 1fr; margin-top: 1.7rem; }
.consent-actions button, .consent-save { cursor: pointer; font-size: 0.62rem; font-weight: 750; letter-spacing: 0.11em; min-height: 3.2rem; padding: 0.9rem 1rem; text-transform: uppercase; }
.consent-decision { background: var(--ink); border: 1px solid var(--ink); color: #ffffff; }
.consent-settings { background: #ffffff; border: 1px solid var(--ink); color: var(--ink); }
.consent-preferences { border-top: 1px solid var(--line); display: grid; gap: 0; margin-top: 1.7rem; padding-top: 0.5rem; }
.consent-preferences label { align-items: center; border-bottom: 1px solid var(--line); display: flex; gap: 2rem; justify-content: space-between; padding: 1rem 0; }
.consent-preferences label > span { display: grid; gap: 0.25rem; }
.consent-preferences strong { font-family: var(--serif); font-size: 1.05rem; font-weight: 400; }
.consent-preferences small { color: var(--quiet); font-size: 0.72rem; line-height: 1.45; }
.consent-preferences input { accent-color: var(--signal); height: 1.1rem; width: 1.1rem; }
.consent-save { background: var(--signal); border: 1px solid var(--signal); color: #ffffff; margin-top: 1rem; width: fit-content; }
.consent-policy { border-bottom: 1px solid currentColor; color: var(--quiet); display: inline-block; font-size: 0.64rem; margin-top: 1.3rem; padding-bottom: 0.25rem; }
.privacy-manage-inline { background: none; border: 0; cursor: pointer; margin-top: 1rem; padding: 0 0 0.5rem; }

@media (max-width: 850px) {
  .desktop-nav { display: none; }
  .home-hero, .page-intro-grid, .project-hero { gap: 3rem; grid-template-columns: 1fr; }
  .home-hero { min-height: 0; padding-block: 4rem; }
  .index-heading, .home-proof, .team > header, .governance { grid-template-columns: 1fr; }
  .project-row { grid-template-columns: 2rem 7.5rem 1fr 1.5rem; }
  .home-project-doors > header { grid-template-columns: 1fr; }
  .project-doors { grid-template-columns: repeat(2, 1fr); }
  .project-door:nth-child(2) { border-right: 0; }
  .project-door:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .team-member { grid-template-columns: 1fr; }
  .project-chapter { grid-template-columns: 12rem 1fr; }
  .governance { padding: 3rem; }
}

@media (max-width: 620px) {
  .shell, .header-inner, .footer-inner { width: calc(100% - 2rem); }
  .header-inner { height: 68px; }
  .word-main { font-size: 1.15rem; }
  .word-org { font-size: 0.67rem; }
  .home-statement h1 { font-size: 3.5rem; }
  .project-row { align-items: start; gap: 1rem; grid-template-columns: 1.8rem 1fr 1.3rem; padding-block: 1.5rem; }
  .project-thumb { display: none; }
  .project-row-copy strong { font-size: 1.7rem; }
  .project-door { min-height: 10.5rem; padding: 1rem; }
  .project-door strong { font-size: 1.25rem; }
  .project-chapter { gap: 1.5rem; grid-template-columns: 1fr; }
  .chapter-visual { height: 15rem; }
  .page-intro { padding-block: 4rem 3.5rem; }
  .page-intro h1, .project-heading h1 { font-size: 3.2rem; }
  .project-hero-visual { height: 24rem; }
  .project-body article { gap: 1.5rem; grid-template-columns: 1fr; }
  .expertise-chapters article { gap: 1rem; grid-template-columns: 2rem 1fr; }
  .expertise-chapters h2 { font-size: 2rem; }
  .opportunities article { gap: 1rem; grid-template-columns: 2rem 1fr; }
  .opportunities article p { grid-column: 2; }
  .partner-call, .trust-commitment { margin-inline: auto; padding: 2.5rem 1.5rem; width: calc(100% - 2rem); }
  .contact-form { grid-template-columns: 1fr; }
  .contact-form label, .full-field, .form-note, .contact-form button, .form-feedback { grid-column: 1; }
  .message-card header { flex-direction: column; gap: 0.6rem; }
  .footer-inner { gap: 3rem; flex-direction: column; }
  .footer-links { justify-items: start; }
  .consent-layer { padding: 0; }
  .consent-dialog { border-bottom: 0; border-inline: 0; max-height: 92svh; overflow: auto; padding: 1.6rem 1rem 1.2rem; }
  .consent-actions { grid-template-columns: 1fr; }
  .consent-actions button { min-height: 2.8rem; }
  .privacy-shortcut { right: 0.65rem; top: 5.4rem; }
}

/* WordPress integration */
body.admin-bar .site-header { top: 32px; }
body.admin-bar .portfolio-header { top: 32px; }
.privacy-check {
  align-items: start;
  display: grid !important;
  gap: 0.8rem !important;
  grid-column: 1 / -1;
  grid-template-columns: 1rem 1fr;
  letter-spacing: 0 !important;
  line-height: 1.5;
  text-transform: none !important;
}
.contact-form .privacy-check input {
  accent-color: var(--signal);
  border: 1px solid var(--ink);
  height: 1rem;
  margin: 0.15rem 0 0;
  min-height: 0;
  width: 1rem;
}
.privacy-check a { border-bottom: 1px solid currentColor; }
.contact-section > .form-feedback { margin-bottom: 2rem; }
.wp-block-image { margin: 0; }

@media (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
  body.admin-bar .portfolio-header { top: 46px; }
}
