/* Visibilité sur les IA (GEO) · trois maquettes plein cadre (préfixe .gs).
   Même ordre de blocs dans les trois pages ; chaque bloc change de forme d’une maquette à l’autre.
   Langage de la marque : images en grand, Everett géante, un mouvement fort par bloc, aucune ombre derrière les cartes.
   Sans script ou en mouvement réduit, chaque bloc a une composition statique (aucune section fixée). */
.gs {
  --gs-radius: clamp(18px, 1.6vw, 26px);
  --gs-swift: cubic-bezier(.76, 0, .24, 1);
  --gs-bleed: var(--hb-gutter);
  --gs-line: color-mix(in srgb, var(--hb-color-ink) 15%, transparent);
  --gs-line-light: rgba(233, 237, 226, .14);
  --gs-ivory: #f5f7f0;
  --gs-sage: #dde5d2;
  --gs-night: #0b1510;
  --gs-paper-soft: rgba(233, 237, 226, .74);
  position: relative;
  overflow-x: clip;
  color: var(--hb-color-ink);
  background: var(--hb-color-paper);
}
.gs :where(ul, ol) { margin: 0; padding: 0; list-style: none; }
.gs :where(figure, h1, h2, h3, p) { margin: 0; }
.gs :where(img) { max-width: none; }
.gs :where(h1, h2, h3) { font-family: var(--hb-font-heading); font-weight: 500; }
.gs :where(button) { font: inherit; }
.gs-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.gs-dot { color: var(--hb-color-orange); font-weight: inherit; }
.gs-tone--forest { --bg: var(--hb-color-forest); --ink: var(--hb-color-paper); }
.gs-tone--pine { --bg: var(--hb-color-pine); --ink: var(--hb-color-paper); }
.gs-tone--lime { --bg: var(--hb-color-lime); --ink: var(--hb-color-ink); }
.gs-tone--orange { --bg: var(--hb-color-orange); --ink: var(--hb-color-forest); }
.gs-tone--orange .gs-dot { color: var(--hb-color-forest); }
.gs-eyebrow { display: inline-flex; align-items: center; gap: 10px; font: 500 11px/1.4 var(--hb-font-body); letter-spacing: .15em; text-transform: uppercase; }
.gs-eyebrow svg { flex: none; width: 15px; fill: var(--hb-color-orange); }
.gs-eyebrow--light { color: var(--hb-color-paper); }
.gs-kicker { display: flex; align-items: center; gap: 12px; font: 500 11px/1.3 var(--hb-font-body); letter-spacing: .15em; text-transform: uppercase; }
.gs-kicker span { opacity: .55; font-variant-numeric: tabular-nums; }
.gs-line { display: block; overflow: clip; padding: 0 .05em .1em 0; margin-bottom: -.1em; }
.gs-line > span { display: inline-block; }
.gs-title { display: block; margin-top: 22px; color: var(--hb-color-paper); }
.gs-title--ink { color: var(--hb-color-ink); }
.gs-title--ink em { color: var(--hb-color-muted); }
.gs-lead { max-width: 40ch; margin-top: clamp(20px, 2.2vw, 32px); color: var(--gs-paper-soft); font-size: clamp(16px, 1.25vw, 20px); line-height: 1.5; }
.gs-lead--ink { color: color-mix(in srgb, var(--hb-color-ink) 74%, transparent); }
.gs-promise { font: 500 clamp(22px, 1.8vw, 30px)/1.1 var(--hb-font-heading); letter-spacing: -.035em; }
.gs-copy { max-width: 48ch; color: color-mix(in srgb, currentColor 76%, transparent); font-size: 15.5px; line-height: 1.6; }
.gs-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: clamp(28px, 3vw, 44px); }
.gs-ghost { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; border-bottom: 1px solid currentColor; font: 500 14px/1.2 var(--hb-font-body); }
.gs-ghost svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; transition: translate .35s var(--hb-ease); }
.gs-ghost:hover svg { translate: 4px 0; }
.gs-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.gs-tags li { padding: 7px 11px; border-radius: 7px; border: 1px solid color-mix(in srgb, currentColor 24%, transparent); font-size: 12.5px; line-height: 1.2; }
.gs-result { display: inline-flex; align-items: center; gap: 10px; padding-top: 14px; border-top: 1px solid color-mix(in srgb, currentColor 20%, transparent); font: 500 13px/1.2 var(--hb-font-body); }
.gs-result svg { flex: none; width: 16px; fill: none; stroke: var(--hb-color-orange); stroke-width: 1.8; }
.gs-tone--orange .gs-result svg { stroke: var(--hb-color-forest); }
.gs-caret { display: inline-block; width: 2px; height: 1em; margin-left: 4px; background: var(--hb-color-orange); vertical-align: -.12em; animation: gs-blink 1.05s steps(1) infinite; }
@keyframes gs-blink { 50% { opacity: 0; } }
.gs-plus { position: relative; flex: none; width: 56px; height: 56px; border-radius: 50%; border: 1px solid color-mix(in srgb, currentColor 22%, transparent); transition: background-color .45s, border-color .45s, color .45s, rotate .7s var(--hb-ease); }
.gs-plus::before, .gs-plus::after { content: ''; position: absolute; top: 50%; left: 50%; width: 18px; height: 1.5px; margin: -.75px 0 0 -9px; background: currentColor; }
.gs-plus::after { rotate: 90deg; }
.gs-cue { position: absolute; z-index: 7; left: var(--gs-bleed); bottom: 30px; display: flex; align-items: center; gap: 15px; color: color-mix(in srgb, var(--hb-color-ink) 72%, transparent); font: 400 10px/1.4 var(--hb-font-body); letter-spacing: .025em; transition: opacity .5s; }
.gs-cue .hb-scroll-line { background: color-mix(in srgb, currentColor 30%, transparent); }
.gs-cue .hb-scroll-line::after { background: var(--hb-color-orange); }
.gs-cue--light { color: #e0e8d6; }
.gs-cue.is-gone { opacity: 0; pointer-events: none; }

/* Apparitions : les lignes montent de sous leur masque quand l’élément atteint le milieu de l’écran. */
@media (prefers-reduced-motion: no-preference) {
  .gs.is-ready [data-gs-reveal]:not(.is-in) .gs-line > span { translate: 0 125%; }
  .gs.is-ready [data-gs-reveal] .gs-line > span { transition: translate 1.1s var(--hb-ease); }
  .gs.is-ready [data-gs-reveal] .gs-line:nth-child(2) > span { transition-delay: .08s; }
  .gs.is-ready [data-gs-reveal] .gs-line:nth-child(3) > span { transition-delay: .16s; }
  .gs.is-ready [data-gs-reveal]:not(.is-in) > :not(h1, h2) { opacity: 0; translate: 0 22px; }
  .gs.is-ready [data-gs-reveal] > :not(h1, h2) { transition: opacity .8s .15s, translate 1s var(--hb-ease) .15s; }
  .gs.is-ready .gs-hero .gs-title .gs-line > span { animation: gs-rise 1.2s var(--hb-ease) both; }
  .gs.is-ready .gs-hero .gs-title .gs-line:nth-child(2) > span { animation-delay: .1s; }
  .gs.is-ready .gs-hero :is(.gs-eyebrow, .gs-lead, .hb-breadcrumb, .gs-lens-list) { animation: gs-fade 1s var(--hb-ease) .35s both; }
}
@keyframes gs-rise { from { translate: 0 125%; } }
@keyframes gs-fade { from { opacity: 0; translate: 0 18px; } }
@keyframes gs-word { from { opacity: 0; translate: 0 .28em; filter: blur(4px); } }
@keyframes gs-spin { to { rotate: 360deg; } }

/* Sections */
.gs-section { position: relative; padding: clamp(96px, 9vw, 170px) var(--gs-bleed); }
.gs-section--paper { background: var(--hb-color-paper); }
.gs-section--ivory { background: var(--gs-ivory); }
.gs-section--sage { background: var(--gs-sage); }
.gs-section--dark { color: var(--hb-color-paper); background: var(--hb-color-forest); }
.gs-section--dark :is(.gs-copy, .gs-head-copy) { color: var(--gs-paper-soft); }
.gs-head { margin-bottom: clamp(48px, 5vw, 88px); }
.gs-head h2 { margin-top: 22px; font-size: clamp(50px, 6vw, 112px); line-height: .92; letter-spacing: -.066em; }
.gs-head--split { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 28px 60px; }
.gs-head--split > .gs-eyebrow { flex-basis: 100%; }
.gs-head--split h2 { margin-top: 0; }
.gs-head:not(.gs-head--split) > .gs-head-copy { margin-top: clamp(20px, 2vw, 30px); }
.gs-head-copy { max-width: 40ch; color: color-mix(in srgb, var(--hb-color-ink) 70%, transparent); font-size: clamp(16px, 1.15vw, 18.5px); line-height: 1.6; }
.gs-hero .hb-breadcrumb { margin-bottom: 26px; }

/* ═════════ 01 · La conversation ═════════ */

/* Ouverture. Statique par défaut ; fixée au défilement avec .is-pinned. */
.gs-talk { position: relative; color: var(--hb-color-paper); background: var(--gs-night); }
.gs-talk-pin { position: relative; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(40px, 5vw, 90px); align-items: center; min-height: 100svh; padding: clamp(130px, 19svh, 220px) var(--gs-bleed) 120px; overflow: hidden; }
.gs-talk-bg { position: absolute; inset: 0; transform-origin: 74% 62%; }
.gs-talk-bg img { width: 100%; height: 100%; object-fit: cover; }
.gs-talk-bg::before { content: ''; position: absolute; z-index: 1; inset: 0; background: rgba(8, 15, 11, .72); opacity: var(--shade, 0); }
.gs-talk-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 15, 11, .94) 0%, rgba(8, 15, 11, .66) 44%, rgba(8, 15, 11, .22) 100%), linear-gradient(0deg, rgba(8, 15, 11, .66), rgba(8, 15, 11, 0) 46%); }
.gs-talk-copy, .gs-talk-chat { position: relative; z-index: 5; }
.gs-talk-ask { display: flex; justify-content: flex-end; }
.gs-talk-ask > span[aria-hidden] { max-width: 92%; padding: clamp(14px, 1.3vw, 20px) clamp(18px, 1.7vw, 26px); border-radius: 26px 26px 6px 26px; color: var(--hb-color-ink); background: var(--hb-color-paper); font: 500 clamp(18px, 1.5vw, 26px)/1.25 var(--hb-font-heading); letter-spacing: -.03em; }
.gs-talk-wait { display: none; }
.gs-talk-answer { margin-top: 28px; }
.gs-talk-from { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; color: rgba(233, 237, 226, .6); font: 500 10.5px/1.2 var(--hb-font-body); letter-spacing: .14em; text-transform: uppercase; }
.gs-talk-from svg { width: 15px; fill: var(--hb-color-orange); }
.gs-talk-text { font: 500 clamp(21px, 2.15vw, 38px)/1.2 var(--hb-font-heading); letter-spacing: -.035em; }
.gs-talk-text .gs-w { transition: opacity .4s, color .5s; }
.gs-brand { position: relative; color: var(--hb-color-lime); white-space: nowrap; }
.gs-brand svg { display: inline-block; width: .6em; height: .6em; margin-right: .2em; fill: var(--hb-color-orange); vertical-align: .02em; transition: rotate 1.2s var(--hb-ease); }
.gs-brand::after { content: ''; position: absolute; left: 0; right: 0; bottom: -.04em; height: .07em; border-radius: 1px; background: var(--hb-color-orange); transform-origin: 0 50%; transition: scale 1s var(--hb-ease); }
.gs-cite { display: inline-grid; place-items: center; min-width: 1.5em; height: 1.5em; margin-left: .15em; padding: 0 .3em; border-radius: 99px; color: var(--hb-color-paper); background: rgba(233, 237, 226, .18); font: 600 .4em/1 var(--hb-font-body); vertical-align: 1.25em; transition: background-color .5s, color .5s; }
.gs-talk-sources { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.gs-talk-sources li { display: inline-flex; align-items: center; gap: 9px; padding: 7px 14px 7px 7px; border-radius: 99px; border: 1px solid rgba(233, 237, 226, .22); font: 500 12.5px/1 var(--hb-font-body); }
.gs-talk-sources b { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; color: var(--hb-color-forest); background: var(--hb-color-orange); font-size: 10px; }
.gs-talk-note { display: none; }
.gs-talk:not(.is-pinned) .gs-cue { display: none; }

.gs-talk.is-pinned { height: 340svh; }
.gs-talk.is-pinned .gs-talk-pin { position: sticky; top: 0; display: block; height: 100svh; min-height: 560px; padding: 0; }
.gs-talk.is-pinned .gs-talk-copy { position: absolute; left: var(--gs-bleed); top: clamp(130px, 21svh, 240px); width: min(620px, 42vw); will-change: transform, opacity; }
.gs-talk.is-pinned .gs-talk-chat { position: absolute; top: 0; left: 0; width: var(--chat-w, min(760px, 52vw)); will-change: transform; }
.gs-talk.is-pinned .gs-talk-wait { display: flex; gap: 7px; height: 0; margin-top: 30px; opacity: 0; transition: opacity .3s; }
.gs-talk.is-thinking .gs-talk-wait { opacity: 1; }
.gs-talk-wait i { width: 9px; height: 9px; border-radius: 50%; background: var(--hb-color-paper); animation: gs-think 1.1s ease-in-out infinite; }
.gs-talk-wait i:nth-child(2) { animation-delay: .15s; }
.gs-talk-wait i:nth-child(3) { animation-delay: .3s; }
@keyframes gs-think { 0%, 100% { opacity: .25; translate: 0 0; } 40% { opacity: 1; translate: 0 -4px; } }
.gs-talk.is-pinned .gs-talk-answer { margin-top: 0; opacity: var(--a, 0); }
.gs-talk.is-pinned .gs-talk-from { margin-top: 30px; }
.gs-talk.is-pinned .gs-talk-text .gs-w { opacity: .12; }
.gs-talk.is-pinned .gs-talk-text .gs-w.is-on { opacity: 1; }
.gs-talk.is-pinned.is-dim .gs-talk-text .gs-w.is-on:not(.gs-brand, .gs-cite) { opacity: .3; }
.gs-talk.is-pinned:not(.is-dim) .gs-brand::after { scale: 0 1; }
.gs-talk.is-dim .gs-brand svg { rotate: 90deg; }
.gs-talk.is-dim .gs-cite { color: var(--hb-color-forest); background: var(--hb-color-orange); }
.gs-talk.is-pinned .gs-talk-sources li { opacity: 0; translate: 0 10px; transition: opacity .5s, translate .7s var(--hb-ease); }
.gs-talk.is-pinned .gs-talk-sources li:nth-child(2) { transition-delay: .08s; }
.gs-talk.is-pinned .gs-talk-sources li:nth-child(3) { transition-delay: .16s; }
.gs-talk.is-sourced .gs-talk-sources li { opacity: 1; translate: 0 0; }
.gs-talk.is-pinned .gs-talk-note { position: absolute; z-index: 6; left: var(--gs-bleed); bottom: 84px; display: block; font: 500 clamp(26px, 2.5vw, 44px)/1 var(--hb-font-heading); letter-spacing: -.045em; }
.gs-talk-note .gs-line > span { translate: 0 125%; transition: translate 1s var(--hb-ease); }
.gs-talk-note .gs-line:nth-child(2) > span { transition-delay: .08s; }
.gs-talk.is-noted .gs-talk-note .gs-line > span { translate: 0 0; }

/* Constat : « cherchent » se barre, « demandent » prend sa place. */
.gs-swap { padding: 0 0 clamp(96px, 9vw, 170px); }
.gs-swap-pin { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: clamp(20px, 3svh, 34px); min-height: 100svh; padding: 110px var(--gs-bleed) 70px; text-align: center; }
.gs-swap-stage:not(.is-pinned) { --s: 1; --k: 1; }
.gs-swap-stage.is-pinned { height: 230svh; }
.gs-swap-stage.is-pinned .gs-swap-pin { position: sticky; top: 0; height: 100svh; }
.gs-swap-title { display: grid; justify-items: center; }
.gs-swap-small { font-size: clamp(30px, 3.4vw, 60px); line-height: 1; letter-spacing: -.05em; color: color-mix(in srgb, var(--hb-color-ink) 62%, transparent); }
.gs-swap-slot { display: grid; overflow: clip; padding: .02em .06em .14em; font-size: clamp(66px, 15vw, 280px); line-height: .95; letter-spacing: -.072em; }
.gs-swap-old, .gs-swap-new { grid-area: 1 / 1; }
.gs-swap-old { position: relative; color: color-mix(in srgb, var(--hb-color-ink) 34%, transparent); translate: 0 calc(var(--s, 0) * -108%); }
.gs-swap-old i { position: absolute; left: -.03em; right: -.03em; top: 54%; height: .065em; border-radius: 99px; background: var(--hb-color-orange); transform-origin: 0 50%; scale: var(--k, 0) 1; }
.gs-swap-new { translate: 0 calc((1 - var(--s, 0)) * 108%); }
.gs-swap-after { font: 500 clamp(20px, 1.9vw, 32px)/1.2 var(--hb-font-heading); letter-spacing: -.035em; color: color-mix(in srgb, var(--hb-color-ink) 70%, transparent); opacity: var(--s, 0); translate: 0 calc((1 - var(--s, 0)) * 16px); }
.gs-swap-points { padding: 0 var(--gs-bleed); }
.gs-swap-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 4vw, 70px); padding-top: clamp(32px, 3vw, 48px); border-top: 1px solid var(--gs-line); }
.gs-swap-list h3 { margin: 20px 0 14px; font-size: clamp(26px, 2.2vw, 38px); line-height: 1.02; letter-spacing: -.045em; }
.gs-swap-tools { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px clamp(18px, 2.4vw, 40px); margin-top: clamp(64px, 7vw, 120px); }
.gs-swap-tools span { flex-basis: 100%; margin-bottom: 8px; font: 500 11px/1.3 var(--hb-font-body); letter-spacing: .15em; text-transform: uppercase; color: color-mix(in srgb, var(--hb-color-ink) 60%, transparent); }
.gs-swap-tools b { font: 500 clamp(26px, 3vw, 56px)/1 var(--hb-font-heading); letter-spacing: -.05em; }
.gs-swap-tools b:not(:last-child)::after { content: '·'; margin-left: clamp(18px, 2.4vw, 40px); color: var(--hb-color-orange); }

/* Leviers : la phrase reste, le mot roule et l’image glisse avec lui. */
.gs-roll { position: relative; color: var(--hb-color-paper); background: var(--hb-color-forest); }
.gs-roll-pin { position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(40px, 5vw, 96px); align-items: center; min-height: 100svh; padding: clamp(96px, 9vw, 150px) var(--gs-bleed); }
.gs-roll-title { margin-top: 26px; }
.gs-roll-lead { display: block; font-size: clamp(26px, 2.6vw, 46px); line-height: 1.05; letter-spacing: -.045em; color: rgba(233, 237, 226, .66); }
.gs-roll-slot { display: block; height: 1.15em; overflow: clip; margin-top: .06em; font-size: clamp(64px, 8.4vw, 160px); line-height: 1.15; letter-spacing: -.068em; }
.gs-roll-strip { display: grid; translate: 0 calc(var(--u, 0) * -1.15em); will-change: translate; }
.gs-roll-strip > span { display: block; height: 1.15em; white-space: nowrap; }
.gs-roll-details { display: grid; max-width: 48ch; margin-top: clamp(20px, 3svh, 40px); }
.gs-roll-detail { display: grid; gap: 16px; grid-area: 1 / 1; }
.gs-roll-detail .gs-kicker { color: var(--hb-color-lime); }
.gs-roll-detail .gs-copy { color: var(--gs-paper-soft); }
.gs-roll-frame { position: relative; height: min(72svh, 760px); margin: 0; overflow: hidden; border-radius: var(--gs-radius); background: var(--hb-color-pine); }
.gs-roll-images { position: absolute; inset: 0; display: grid; grid-auto-rows: 100%; translate: 0 calc(var(--u, 0) * -100%); will-change: translate; }
.gs-roll-images > span { position: relative; overflow: hidden; }
.gs-roll-images img { position: absolute; inset: -8% 0; width: 100%; height: 116%; object-fit: cover; translate: 0 calc(var(--dv, 0) * 12%); }
.gs-roll-meter { display: none; }
.gs-roll:not(.is-pinned) .gs-roll-slot { height: auto; }
.gs-roll:not(.is-pinned) .gs-roll-detail { grid-area: auto; padding-top: 22px; border-top: 1px solid var(--gs-line-light); }
.gs-roll:not(.is-pinned) .gs-roll-details { gap: 26px; }
.gs-roll.is-pinned { height: calc(var(--n) * 85svh + 100svh); }
.gs-roll.is-pinned .gs-roll-pin { position: sticky; top: 0; height: 100svh; padding-block: 96px 64px; }
.gs-roll.is-pinned .gs-roll-detail { opacity: 0; visibility: hidden; translate: 0 14px; transition: opacity .45s, translate .7s var(--hb-ease), visibility 0s .45s; }
.gs-roll.is-pinned .gs-roll-detail.is-on { opacity: 1; visibility: visible; translate: 0 0; transition: opacity .55s .1s, translate .8s var(--hb-ease) .1s; }
.gs-roll.is-pinned .gs-roll-meter { position: absolute; left: var(--gs-bleed); right: var(--gs-bleed); bottom: 30px; display: block; }
.gs-roll-meter i { display: block; height: 1px; background: rgba(233, 237, 226, .18); }
.gs-roll-meter b { display: block; height: 100%; background: var(--hb-color-orange); transform-origin: 0 50%; scale: var(--m, 0) 1; }

/* Méthode : chaque verbe se tape quand il arrive au milieu de l’écran. */
.gs-typed-list { border-top: 1px solid var(--gs-line); }
.gs-typed-row { display: grid; grid-template-columns: 70px minmax(0, 1.2fr) minmax(0, 1fr); gap: 30px; align-items: start; padding: clamp(34px, 4vw, 64px) 0; border-bottom: 1px solid var(--gs-line); }
.gs-typed-num { padding-top: 1.6em; color: var(--hb-color-muted); font: 500 12px/1 var(--hb-font-body); letter-spacing: .14em; }
.gs-typed-word { font-size: clamp(56px, 7.6vw, 140px); line-height: .95; letter-spacing: -.068em; white-space: nowrap; }
.gs-typed-word .gs-caret { width: .055em; height: .78em; margin-left: .05em; vertical-align: -.02em; opacity: 0; animation: none; }
.gs-typed-body { display: grid; gap: 14px; padding-top: clamp(8px, 1.2vw, 20px); }
.gs.is-ready .gs-typed-row.is-typing .gs-caret { opacity: 1; animation: gs-blink 1.05s steps(1) infinite; }
.gs.is-ready .gs-typed-row:not(.is-typed) .gs-typed-word .gs-dot { opacity: 0; }
.gs.is-ready .gs-typed-row .gs-typed-body { transition: opacity .8s .1s, translate 1s var(--hb-ease) .1s; }
.gs.is-ready .gs-typed-row:not(.is-typed) .gs-typed-body { opacity: 0; translate: 0 18px; }

/* Questions : des suggestions à toucher, la réponse s’écrit dessous. */
.gs-prompts-chips { display: flex; flex-wrap: wrap; gap: 10px; max-width: 1040px; }
.gs-prompts-chips button { min-height: 48px; padding: 0 20px; border: 1px solid color-mix(in srgb, var(--hb-color-ink) 20%, transparent); border-radius: 99px; color: var(--hb-color-ink); background: transparent; font: 500 15px/1.2 var(--hb-font-body); cursor: pointer; transition: background-color .35s, color .35s, border-color .35s; }
.gs-prompts-chips button:hover { border-color: var(--hb-color-ink); }
.gs-prompts-chips button[aria-selected='true'] { color: var(--hb-color-paper); background: var(--hb-color-forest); border-color: var(--hb-color-forest); }
.gs-prompts-panels { display: grid; margin-top: clamp(44px, 5vw, 84px); }
.gs-prompts-panel { grid-area: 1 / 1; max-width: 1180px; outline-offset: 8px; }
.gs-prompts-panel[hidden] { display: block; visibility: hidden; }
.gs-prompts-q { display: flex; align-items: center; gap: 12px; color: var(--hb-color-muted); font: 500 12px/1.3 var(--hb-font-body); letter-spacing: .14em; text-transform: uppercase; }
.gs-prompts-q svg { flex: none; width: 15px; fill: var(--hb-color-orange); }
.gs-prompts-a { margin-top: 24px; font: 500 clamp(24px, 2.8vw, 50px)/1.14 var(--hb-font-heading); letter-spacing: -.045em; }
.gs-prompts-a span { display: inline-block; }
.gs-prompts-more { margin-top: clamp(40px, 4vw, 64px); }
@media (prefers-reduced-motion: no-preference) {
  .gs.is-ready .gs-prompts-panel:not([hidden]) .gs-prompts-a span { animation: gs-word .55s var(--hb-ease) both; animation-delay: calc(var(--i) * 20ms); }
}

/* Fin : la question que vous pourriez nous poser. */
.gs-ask { position: relative; overflow: hidden; padding: clamp(120px, 13vw, 220px) var(--gs-bleed); color: var(--hb-color-paper); background: var(--hb-color-forest); text-align: center; }
.gs-ask-star { position: absolute; left: 50%; top: 50%; width: min(130vw, 1500px); translate: -50% -50%; opacity: .045; }
.gs-ask-star svg { display: block; width: 100%; fill: var(--hb-color-paper); }
.gs-ask-inner { position: relative; display: grid; justify-items: center; }
.gs-ask-title { margin-top: 26px; font-size: clamp(44px, 6.4vw, 120px); line-height: .95; letter-spacing: -.066em; }
.gs-ask-bar { display: flex; align-items: center; gap: 14px; width: min(880px, 100%); margin-top: clamp(40px, 5vw, 72px); padding: 10px 10px 10px clamp(20px, 2vw, 30px); border-radius: 22px; color: var(--hb-color-ink); background: var(--hb-color-paper); text-align: left; }
.gs-ask-field { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; font: 500 clamp(18px, 1.6vw, 26px)/1.2 var(--hb-font-heading); letter-spacing: -.03em; }
.gs-ask-field > span[aria-hidden] { display: inline-flex; align-items: center; }
.gs-ask-note { max-width: 46ch; margin-top: 22px; color: var(--gs-paper-soft); font-size: 15px; line-height: 1.55; }
@media (prefers-reduced-motion: no-preference) {
  .gs-ask-star { animation: gs-spin 120s linear infinite; }
}

/* ═════════ 02 · Les sources ═════════ */

/* Ouverture : les fragments viennent du fond et se fondent en une seule réponse. */
.gs-flow { position: relative; color: var(--hb-color-paper); background: var(--gs-night); }
.gs-flow-pin { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 5vw, 90px); align-items: center; min-height: 100svh; padding: clamp(130px, 19svh, 220px) var(--gs-bleed) 120px; overflow: hidden; }
.gs-flow-bg { position: absolute; inset: 0; transform-origin: 70% 55%; }
.gs-flow-bg img { width: 100%; height: 100%; object-fit: cover; }
.gs-flow-bg::before { content: ''; position: absolute; z-index: 1; inset: 0; background: rgba(8, 15, 11, .74); opacity: var(--shade, 0); }
.gs-flow-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 15, 11, .9) 0%, rgba(8, 15, 11, .55) 46%, rgba(8, 15, 11, .2) 100%), linear-gradient(0deg, rgba(8, 15, 11, .6), rgba(8, 15, 11, 0) 40%); }
.gs-flow-copy, .gs-flow-answer { position: relative; z-index: 5; }
.gs-flow-copy .gs-lead { max-width: 36ch; }
.gs-flow-space { display: none; }
.gs-flow-answer { padding: clamp(24px, 2.4vw, 38px); border-radius: 22px; color: var(--hb-color-ink); background: var(--hb-color-paper); }
.gs-flow-from { display: flex; align-items: center; gap: 10px; color: var(--hb-color-muted); font: 500 10.5px/1.2 var(--hb-font-body); letter-spacing: .14em; text-transform: uppercase; }
.gs-flow-from svg { width: 15px; fill: var(--hb-color-orange); }
.gs-flow-text { margin-top: 16px; font: 500 clamp(20px, 1.75vw, 30px)/1.2 var(--hb-font-heading); letter-spacing: -.035em; }
.gs-flow-text b { font-weight: 500; box-shadow: inset 0 -.32em 0 var(--hb-color-lime); }
.gs-flow-sources { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--gs-line); }
.gs-flow-sources li { display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px 5px 5px; border-radius: 99px; background: color-mix(in srgb, var(--hb-color-ink) 6%, transparent); font: 500 11.5px/1 var(--hb-font-body); }
.gs-flow-sources b { display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; color: var(--hb-color-paper); background: var(--hb-color-forest); font-size: 9.5px; }
.gs-flow-note { display: none; }
.gs-flow:not(.is-pinned) .gs-cue { display: none; }

.gs-flow.is-pinned { height: 360svh; }
.gs-flow.is-pinned .gs-flow-pin { position: sticky; top: 0; display: block; height: 100svh; min-height: 560px; padding: 0; }
.gs-flow.is-pinned .gs-flow-copy { position: absolute; left: var(--gs-bleed); top: clamp(130px, 21svh, 240px); width: min(780px, 56vw); will-change: transform, opacity; }
.gs-flow.is-pinned .gs-flow-space { position: absolute; z-index: 4; inset: 0; display: block; perspective: 1100px; pointer-events: none; }
.gs-flow-frag { position: absolute; left: 50%; top: 50%; will-change: transform, opacity; }
.gs-flow-frag > span { display: grid; gap: 9px; padding: clamp(13px, 1.1vw, 18px) clamp(16px, 1.4vw, 22px) clamp(15px, 1.2vw, 20px); border-radius: 16px; color: var(--hb-color-ink); background: rgba(233, 237, 226, .95); font: 500 clamp(17px, 1.6vw, 28px)/1.05 var(--hb-font-heading); letter-spacing: -.035em; white-space: nowrap; }
.gs-flow-frag small { color: var(--hb-color-orange); font: 600 10px/1 var(--hb-font-body); letter-spacing: .14em; text-transform: uppercase; }
.gs-flow-frag:nth-child(3n + 2) > span { color: var(--hb-color-paper); background: rgba(21, 43, 33, .9); border: 1px solid rgba(233, 237, 226, .16); }
.gs-flow-frag:nth-child(3n + 2) small { color: var(--hb-color-lime); }
.gs-flow-frag:nth-child(4n + 3) > span { background: var(--hb-color-lime); }
.gs-flow-frag:nth-child(4n + 3) small { color: var(--hb-color-forest); }
@media (prefers-reduced-motion: no-preference) {
  .gs-flow-frag > span { animation: gs-float var(--d) ease-in-out infinite alternate; }
}
@keyframes gs-float { from { translate: 0 -7px; } to { translate: 0 7px; } }
.gs-flow.is-pinned .gs-flow-answer { position: absolute; left: 50%; top: calc(50% + 64px); width: min(660px, calc(100vw - 2 * var(--gs-bleed))); translate: -50% -50%; opacity: var(--a, 0); scale: calc(.72 + var(--a, 0) * .28); will-change: opacity, scale; }
.gs-flow.is-pinned .gs-flow-sources li { opacity: 0; scale: .7; transition: opacity .4s, scale .6s var(--hb-ease); transition-delay: calc(var(--i) * 45ms); }
.gs-flow.is-sourced .gs-flow-sources li { opacity: 1; scale: 1; }
.gs-flow.is-pinned .gs-flow-note { position: absolute; z-index: 6; left: 50%; top: clamp(124px, 17svh, 176px); display: block; width: max-content; max-width: calc(100vw - 2 * var(--gs-bleed)); translate: -50% 0; text-align: center; font: 500 clamp(26px, 3vw, 54px)/1 var(--hb-font-heading); letter-spacing: -.05em; }
.gs-flow-note em { color: var(--hb-color-lime); font-style: normal; }
.gs-flow-note .gs-line > span { translate: 0 125%; transition: translate 1s var(--hb-ease); }
.gs-flow-note .gs-line:nth-child(2) > span { transition-delay: .08s; }
.gs-flow.is-noted .gs-flow-note .gs-line > span { translate: 0 0; }

/* Constat : la phrase s’allume mot après mot, les assistants défilent dessous. */
.gs-scrub { position: relative; color: var(--hb-color-paper); background: var(--hb-color-forest); }
.gs-scrub-pin { position: relative; display: flex; flex-direction: column; justify-content: center; gap: clamp(26px, 3.4svh, 44px); min-height: 100svh; padding: 110px var(--gs-bleed) 170px; overflow: hidden; }
.gs-scrub.is-pinned { height: 240svh; }
.gs-scrub.is-pinned .gs-scrub-pin { position: sticky; top: 0; height: 100svh; }
.gs-scrub-text { max-width: 19em; font-size: clamp(36px, 5.2vw, 98px); line-height: 1.02; letter-spacing: -.058em; }
.gs-scrub-text .gs-w { transition: opacity .35s, color .5s; }
.gs-scrub.is-pinned .gs-scrub-text .gs-w:not(.is-on) { opacity: .16; }
.gs-scrub-text .gs-w--accent { color: var(--hb-color-lime); }
.gs-scrub.is-pinned .gs-scrub-text .gs-w--accent:not(.is-on) { color: var(--hb-color-paper); }
.gs-scrub-foot { display: flex; flex-wrap: wrap; gap: 12px 30px; color: var(--gs-paper-soft); font: 500 11px/1.3 var(--hb-font-body); letter-spacing: .14em; text-transform: uppercase; }
.gs-scrub-foot span { display: inline-flex; align-items: center; gap: 9px; }
.gs-scrub-foot svg { width: 13px; fill: var(--hb-color-orange); }
.gs-scrub-marquee { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 0 30px; border-top: 1px solid var(--gs-line-light); overflow: hidden; }
.gs-scrub-marquee > div { display: flex; width: max-content; }
.gs-scrub-marquee > div > p { display: flex; align-items: center; gap: clamp(26px, 3vw, 54px); padding-right: clamp(26px, 3vw, 54px); color: transparent; font: 500 clamp(30px, 3.8vw, 68px)/1 var(--hb-font-heading); letter-spacing: -.04em; white-space: nowrap; -webkit-text-stroke: 1px rgba(233, 237, 226, .5); }
.gs-scrub-marquee svg { flex: none; width: .42em; fill: var(--hb-color-orange); }
@media (prefers-reduced-motion: no-preference) {
  .gs-scrub-marquee > div { animation: gs-marquee 46s linear infinite; }
}
@keyframes gs-marquee { to { translate: -50% 0; } }

/* Leviers : l’index géant, l’image suit le curseur, chaque ligne s’ouvre. */
.gs-index-list { border-top: 1px solid var(--gs-line); }
.gs-index-row { border-bottom: 1px solid var(--gs-line); }
.gs-index-head { display: grid; grid-template-columns: 70px minmax(0, 1fr) auto 56px; align-items: center; gap: clamp(16px, 2vw, 32px); width: 100%; padding: clamp(18px, 2.2vw, 32px) 0; border: 0; color: inherit; background: none; text-align: left; cursor: pointer; }
.gs-index-num { color: var(--hb-color-muted); font: 500 12px/1 var(--hb-font-body); letter-spacing: .14em; }
.gs-index-word { font: 500 clamp(54px, 8.6vw, 164px)/.92 var(--hb-font-heading); letter-spacing: -.072em; transition: translate .7s var(--hb-ease), color .4s; }
.gs-index-name { color: var(--hb-color-muted); font: 500 clamp(16px, 1.3vw, 22px)/1.2 var(--hb-font-heading); letter-spacing: -.025em; text-align: right; }
.gs-index-head:hover .gs-index-word, .gs-index-row.is-open .gs-index-word { translate: clamp(10px, 1.4vw, 24px) 0; }
.gs-index-row.is-open .gs-plus { rotate: 45deg; color: var(--hb-color-paper); background: var(--hb-color-forest); border-color: var(--hb-color-forest); }
.gs-index-body { display: grid; grid-template-rows: 0fr; visibility: hidden; transition: grid-template-rows .75s var(--hb-ease), visibility 0s .75s; }
.gs-index-row.is-open .gs-index-body { grid-template-rows: 1fr; visibility: visible; transition: grid-template-rows .75s var(--hb-ease); }
.gs-index-body > .gs-index-inner { min-height: 0; overflow: hidden; }
.gs-index-inner { display: grid; grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: clamp(24px, 4vw, 70px); align-items: end; padding-left: calc(70px + clamp(16px, 2vw, 32px)); }
.gs-index-inner > div { display: grid; gap: 22px; padding-bottom: clamp(30px, 3vw, 48px); }
.gs-index-pic { position: relative; aspect-ratio: 4 / 3; margin-bottom: clamp(30px, 3vw, 48px); overflow: hidden; border-radius: 14px; }
.gs-index-pic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gs-index-float { position: fixed; z-index: 30; left: 0; top: 0; width: clamp(220px, 19vw, 330px); aspect-ratio: 4 / 5; margin: 0; overflow: hidden; border-radius: 16px; opacity: 0; scale: .82; pointer-events: none; transition: opacity .35s, scale .6s var(--hb-ease); }
.gs-index-float.is-on { opacity: 1; scale: 1; }
.gs-index-float img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .35s; }
.gs-index-float img.is-on { opacity: 1; }

/* Méthode : quatre grandes cartes qui s’empilent. */
.gs-stack-list { display: grid; gap: 24px; }
.gs-stack-card { position: sticky; top: calc(96px + var(--i) * 18px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: min(74svh, 700px); overflow: hidden; border-radius: var(--gs-radius); color: var(--ink); background: var(--bg); transform-origin: 50% 0; will-change: scale; }
.gs-stack-card figure { position: relative; min-height: 260px; }
.gs-stack-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gs-stack-body { display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: 18px; padding: clamp(28px, 4vw, 64px); }
.gs-stack-body h3 { margin-top: auto; font-size: clamp(58px, 7.2vw, 136px); line-height: .9; letter-spacing: -.072em; }
.gs-stack-body .gs-kicker { margin-bottom: auto; }

/* Questions : la liste à gauche, la réponse en grand à droite. */
.gs-split-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(40px, 6vw, 120px); align-items: start; }
.gs-split-list { display: grid; border-top: 1px solid var(--gs-line-light); }
.gs-split-list button { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 12px; align-items: baseline; padding: clamp(18px, 1.8vw, 26px) 0; border: 0; border-bottom: 1px solid var(--gs-line-light); color: rgba(233, 237, 226, .5); background: none; text-align: left; font: 500 clamp(19px, 1.6vw, 27px)/1.15 var(--hb-font-heading); letter-spacing: -.03em; cursor: pointer; transition: color .35s, padding-left .6s var(--hb-ease); }
.gs-split-list button span { color: var(--hb-color-orange); font: 500 11px/1 var(--hb-font-body); letter-spacing: .14em; }
.gs-split-list button:hover { color: rgba(233, 237, 226, .82); }
.gs-split-list button[aria-selected='true'] { padding-left: 16px; color: var(--hb-color-paper); }
.gs-split-panels { position: sticky; top: 110px; display: grid; }
.gs-split-panel { grid-area: 1 / 1; outline-offset: 8px; }
.gs-split-panel[hidden] { display: block; visibility: hidden; }
.gs-split-num { color: transparent; font: 500 clamp(100px, 13vw, 240px)/.78 var(--hb-font-heading); letter-spacing: -.08em; -webkit-text-stroke: 1px rgba(233, 237, 226, .34); }
.gs-split-a { max-width: 30em; margin-top: clamp(26px, 3vw, 44px); font: 500 clamp(20px, 1.7vw, 30px)/1.3 var(--hb-font-heading); letter-spacing: -.03em; }
.gs-split-more { grid-row: 2; margin-top: clamp(30px, 3vw, 48px); }
@media (prefers-reduced-motion: no-preference) {
  .gs.is-ready .gs-split-panel:not([hidden]) > * { animation: gs-fade .7s var(--hb-ease) both; }
  .gs.is-ready .gs-split-panel:not([hidden]) > :nth-child(2) { animation-delay: .08s; }
}

/* Fin : l’image s’ouvre en cercle depuis la pierre, comme une onde. */
.gs-iris { position: relative; color: var(--hb-color-paper); background: var(--hb-color-forest); }
.gs-iris-pin { position: relative; display: flex; align-items: center; min-height: 100svh; padding: 140px var(--gs-bleed); overflow: hidden; }
.gs-iris.is-pinned { height: 230svh; }
.gs-iris.is-pinned .gs-iris-pin { position: sticky; top: 0; height: 100svh; }
.gs-iris-image { position: absolute; inset: 0; clip-path: circle(var(--r, 150%) at var(--cx, 72%) var(--cy, 50%)); }
.gs-iris-image img { width: 100%; height: 100%; object-fit: cover; scale: var(--z, 1); transform-origin: var(--cx, 72%) var(--cy, 50%); }
.gs-iris-image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 15, 11, .88) 0%, rgba(8, 15, 11, .5) 42%, rgba(8, 15, 11, 0) 72%); opacity: var(--veil, 1); }
.gs-iris-rings { position: absolute; inset: 0; pointer-events: none; }
.gs-iris-rings i { position: absolute; left: var(--cx, 72%); top: var(--cy, 50%); width: calc(var(--rp, 0px) * 2 + var(--k) * 70px); aspect-ratio: 1; border: 1px solid rgba(233, 237, 226, .32); border-radius: 50%; translate: -50% -50%; opacity: calc(var(--ring, 0) * (1 - var(--k) * .28)); }
.gs-iris-rings i:nth-child(1) { --k: 1; }
.gs-iris-rings i:nth-child(2) { --k: 2; }
.gs-iris-rings i:nth-child(3) { --k: 3; }
.gs-iris-copy { position: relative; z-index: 3; max-width: min(980px, 72vw); }
.gs-iris-title { margin-top: 24px; font-size: clamp(54px, 7.4vw, 140px); line-height: .9; letter-spacing: -.07em; }

/* ═════════ 03 · Sous la loupe ═════════ */

/* Ouverture : la loupe parcourt la page, les faits restent nets. */
.gs-lens { position: relative; color: var(--hb-color-ink); background: var(--hb-color-paper); }
.gs-lens-pin { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.04fr); gap: clamp(36px, 4.4vw, 84px); align-items: center; min-height: 100svh; padding: 116px var(--gs-bleed) 84px; }
.gs-lens-list { display: grid; max-width: 440px; margin-top: clamp(24px, 3.6svh, 44px); border-top: 1px solid var(--gs-line); }
.gs-lens-list li { display: flex; align-items: center; gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--gs-line); color: var(--hb-color-ink); font: 500 clamp(16px, 1.2vw, 20px)/1.2 var(--hb-font-heading); letter-spacing: -.025em; transition: color .5s; }
.gs-lens-tick { display: grid; flex: none; place-items: center; width: 26px; height: 26px; border: 1px solid var(--hb-color-orange); border-radius: 50%; background: var(--hb-color-orange); transition: background-color .5s, border-color .5s; }
.gs-lens-tick svg { width: 12px; fill: var(--hb-color-forest); transition: opacity .4s, rotate .8s var(--hb-ease); }
.gs-lens-sheet { position: relative; height: min(76svh, 780px); margin: 0; overflow: hidden; border-radius: var(--gs-radius); background: var(--gs-ivory); --fs: 26px; --lx: 50%; --ly: 50%; --lr: 120px; --zoom: 1.3; }
.gs-lens-page { position: absolute; inset: 0; padding: clamp(22px, 2.8vw, 46px) clamp(22px, 2.8vw, 46px) clamp(64px, 6vw, 96px); font: 500 var(--fs)/1.4 var(--hb-font-heading); letter-spacing: -.025em; }
.gs-lens-page--base .gs-lens-slogan, .gs-lens-page--base .gs-lens-mark:not(.is-found) { color: transparent; text-shadow: 0 0 .36em rgba(26, 41, 32, .4); }
.gs-lens-page--base .gs-lens-mark { background: linear-gradient(var(--hb-color-lime), var(--hb-color-lime)) 0 90% / 0% 46% no-repeat; transition: color .6s, text-shadow .6s, background-size .9s var(--hb-ease) .1s; }
.gs-lens-page--base .gs-lens-mark.is-found { color: var(--hb-color-ink); text-shadow: none; background-size: 100% 46%; }
.gs-lens-page--sharp { display: none; }
.gs-lens-glass { display: none; }
.gs-lens-verdict { position: absolute; left: 50%; bottom: clamp(16px, 2vw, 26px); padding: 13px 20px; border-radius: 99px; color: var(--hb-color-paper); background: var(--hb-color-forest); font: 500 clamp(14px, 1.1vw, 18px)/1 var(--hb-font-heading); letter-spacing: -.02em; white-space: nowrap; translate: -50% 0; }
.gs-lens-verdict b { color: var(--hb-color-lime); font-weight: 500; }
.gs-lens:not(.is-pinned) .gs-cue { display: none; }

.gs-lens.is-pinned { height: 340svh; }
.gs-lens.is-pinned .gs-lens-pin { position: sticky; top: 0; height: 100svh; min-height: 600px; }
.gs-lens.is-pinned .gs-lens-list li:not(.is-found) { color: color-mix(in srgb, var(--hb-color-ink) 38%, transparent); }
.gs-lens.is-pinned .gs-lens-list li:not(.is-found) .gs-lens-tick { border-color: color-mix(in srgb, var(--hb-color-ink) 22%, transparent); background: transparent; }
.gs-lens.is-pinned .gs-lens-list li:not(.is-found) .gs-lens-tick svg { opacity: 0; rotate: -90deg; }
.gs-lens.is-pinned .gs-lens-page--sharp { display: block; background: var(--gs-ivory); transform-origin: var(--lx) var(--ly); scale: var(--zoom); -webkit-mask-image: radial-gradient(circle at var(--lx) var(--ly), #000 calc(var(--lr) / var(--zoom) - 1px), transparent calc(var(--lr) / var(--zoom))); mask-image: radial-gradient(circle at var(--lx) var(--ly), #000 calc(var(--lr) / var(--zoom) - 1px), transparent calc(var(--lr) / var(--zoom))); opacity: var(--glass, 1); }
.gs-lens-page--sharp .gs-lens-slogan { color: color-mix(in srgb, var(--hb-color-ink) 34%, transparent); }
.gs-lens-page--sharp .gs-lens-mark { color: var(--hb-color-ink); background: linear-gradient(var(--hb-color-lime), var(--hb-color-lime)) 0 90% / 100% 46% no-repeat; }
.gs-lens.is-pinned .gs-lens-glass { position: absolute; left: 0; top: 0; display: block; width: calc(var(--lr) * 2); height: calc(var(--lr) * 2); border: 2px solid var(--hb-color-ink); border-radius: 50%; translate: calc(var(--lx) - var(--lr)) calc(var(--ly) - var(--lr)); opacity: var(--glass, 1); pointer-events: none; }
.gs-lens-glass::before { content: ''; position: absolute; inset: 5px; border: 1px solid rgba(255, 255, 255, .7); border-radius: 50%; }
.gs-lens-glass i { position: absolute; left: 50%; top: 50%; width: 12px; height: calc(var(--lr) * .85); margin-left: -6px; border-radius: 7px; background: var(--hb-color-orange); transform-origin: 50% 0; transform: rotate(-45deg) translateY(calc(var(--lr) + 1px)); }
.gs-lens.is-pinned .gs-lens-verdict { opacity: 0; translate: -50% 14px; transition: opacity .6s, translate .8s var(--hb-ease); }
.gs-lens.is-done .gs-lens-verdict { opacity: 1; translate: -50% 0; }
@media (prefers-reduced-motion: no-preference) {
  .gs-lens.is-pinned:not(.is-moving) .gs-lens-glass { animation: gs-hover 3.6s ease-in-out infinite alternate; }
}
@keyframes gs-hover { to { rotate: 8deg; } }

/* Constat : une fenêtre au milieu du titre grandit jusqu’au plein écran. */
.gs-portal { background: var(--hb-color-paper); --w0: 30vw; --h0: 34svh; }
.gs-portal-stage:not(.is-pinned) { --g: 1; }
.gs-portal-pin { position: relative; height: 100svh; min-height: 560px; overflow: hidden; }
.gs-portal-stage.is-pinned { height: 250svh; }
.gs-portal-stage.is-pinned .gs-portal-pin { position: sticky; top: 0; }
.gs-portal-title { position: absolute; z-index: 2; inset: 0; pointer-events: none; font-size: clamp(42px, 6.2vw, 120px); line-height: .95; letter-spacing: -.066em; text-align: center; }
.gs-portal-title > span { position: absolute; left: var(--gs-bleed); right: var(--gs-bleed); text-wrap: balance; }
.gs-portal-top { bottom: calc(50% + var(--h0) / 2 + 22px); translate: 0 calc(var(--g, 0) * -30svh); opacity: calc(1 - var(--g, 0) * 1.8); }
.gs-portal-bottom { top: calc(50% + var(--h0) / 2 + 22px); translate: 0 calc(var(--g, 0) * 30svh); opacity: calc(1 - var(--g, 0) * 1.8); }
.gs-portal-window { position: absolute; inset: 0; clip-path: inset(calc((1 - var(--g, 0)) * (50% - var(--h0) / 2)) calc((1 - var(--g, 0)) * (50% - var(--w0) / 2)) round calc((1 - var(--g, 0)) * 24px)); }
.gs-portal-window img { width: 100%; height: 100%; object-fit: cover; scale: calc(1.18 - var(--g, 0) * .18); }
.gs-portal-window::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8, 15, 11, .82) 0%, rgba(8, 15, 11, .35) 46%, rgba(8, 15, 11, 0) 70%); opacity: var(--g, 0); }
.gs-portal-say { position: absolute; z-index: 3; left: var(--gs-bleed); bottom: clamp(56px, 9svh, 110px); color: var(--hb-color-paper); font: 500 clamp(36px, 4.6vw, 88px)/.98 var(--hb-font-heading); letter-spacing: -.06em; }
.gs-portal-say .gs-line > span { transition: translate 1.05s var(--hb-ease); }
.gs-portal-say .gs-line:nth-child(2) > span { transition-delay: .08s; }
.gs-portal-say .gs-line:nth-child(3) > span { transition-delay: .16s; }
.gs-portal-stage.is-pinned:not(.is-said) .gs-portal-say .gs-line > span { translate: 0 125%; }
.gs-portal-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 4vw, 70px); padding: clamp(80px, 8vw, 140px) var(--gs-bleed) clamp(96px, 9vw, 170px); }
.gs-portal-points li { display: grid; align-content: start; gap: 14px; padding-top: 26px; border-top: 1px solid var(--gs-line); }
.gs-portal-num { color: var(--hb-color-orange); font: 500 clamp(54px, 5.4vw, 100px)/.85 var(--hb-font-heading); letter-spacing: -.07em; }
.gs-portal-points h3 { margin-top: 10px; font-size: clamp(24px, 2vw, 34px); line-height: 1.04; letter-spacing: -.045em; }

/* Leviers : l’image fixe change en cercle, le texte défile à côté. */
.gs-scrolly-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 120px); }
.gs-scrolly-frame { position: sticky; top: 12svh; height: 76svh; margin: 0; overflow: hidden; border-radius: var(--gs-radius); background: var(--hb-color-forest); }
.gs-scrolly-img { position: absolute; inset: 0; clip-path: circle(0% at 50% 50%); transition: clip-path 1.15s var(--gs-swift); }
.gs-scrolly-img:first-child, .gs-scrolly-img.is-on { clip-path: circle(75% at 50% 50%); }
.gs-scrolly-img img { width: 100%; height: 100%; object-fit: cover; scale: 1.14; transition: scale 1.6s var(--hb-ease); }
.gs-scrolly-img.is-on img { scale: 1; }
.gs-scrolly-count { position: absolute; z-index: 5; left: 22px; bottom: 22px; padding: 9px 14px; border-radius: 99px; color: var(--hb-color-ink); background: var(--hb-color-paper); font: 500 12px/1 var(--hb-font-body); letter-spacing: .1em; font-variant-numeric: tabular-nums; }
.gs-scrolly-count b { font-weight: 600; }
.gs-scrolly-step { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 18px; min-height: 80svh; opacity: .22; transition: opacity .6s; }
.gs-scrolly-step.is-on { opacity: 1; }
.gs-scrolly-step h3 { font-size: clamp(60px, 7vw, 132px); line-height: .9; letter-spacing: -.07em; }
.gs-scrolly-inline { display: none; }
.gs:not(.is-ready) .gs-scrolly-step { opacity: 1; }

/* Méthode : un lecteur en quatre temps. */
.gs-stories-top { display: flex; align-items: flex-start; gap: 18px; margin-bottom: 26px; }
.gs-stories-bars { display: grid; flex: 1; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.gs-stories-bars button { display: grid; gap: 12px; padding: 0 0 8px; border: 0; color: color-mix(in srgb, var(--hb-color-ink) 48%, transparent); background: none; text-align: left; font: 500 11.5px/1.2 var(--hb-font-body); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; transition: color .35s; }
.gs-stories-bars button:hover, .gs-stories-bars button[aria-selected='true'] { color: var(--hb-color-ink); }
.gs-stories-bars i { display: block; height: 3px; overflow: hidden; border-radius: 3px; background: color-mix(in srgb, var(--hb-color-ink) 14%, transparent); }
.gs-stories-bars b { display: block; height: 100%; background: var(--hb-color-forest); transform-origin: 0 50%; scale: 0 1; }
.gs-stories-bars button.is-done b, .gs-stories-bars button[aria-selected='true'] b { scale: 1 1; }
.gs-stories.is-playing .gs-stories-bars button[aria-selected='true'] b { animation: gs-fill var(--dur, 7s) linear both; }
.gs-stories.is-held .gs-stories-bars button[aria-selected='true'] b { animation-play-state: paused; }
@keyframes gs-fill { from { scale: 0 1; } to { scale: 1 1; } }
.gs-stories-pause { position: relative; flex: none; width: 44px; height: 44px; margin-top: -14px; border: 1px solid color-mix(in srgb, var(--hb-color-ink) 22%, transparent); border-radius: 50%; color: var(--hb-color-ink); background: none; cursor: pointer; }
.gs-stories-pause i { position: absolute; left: 50%; top: 50%; width: 10px; height: 12px; translate: -50% -50%; border-left: 3px solid currentColor; border-right: 3px solid currentColor; }
.gs-stories-pause[aria-pressed='true'] i { width: 0; height: 0; border: 0; border-top: 7px solid transparent; border-bottom: 7px solid transparent; border-left: 11px solid currentColor; translate: -35% -50%; }
.gs-stories:not(.is-auto) .gs-stories-pause { display: none; }
.gs-stories-stage { display: grid; }
.gs-stories-slide { display: grid; grid-area: 1 / 1; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: clamp(30px, 4vw, 72px); }
.gs-stories-slide[hidden] { display: grid; visibility: hidden; }
.gs-stories-slide figure { position: relative; min-height: min(62svh, 600px); overflow: hidden; border-radius: var(--gs-radius); }
.gs-stories-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gs-stories-body { display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: 16px; padding-bottom: 6px; }
.gs-stories-body h3 { margin-top: auto; font-size: clamp(58px, 7vw, 132px); line-height: .9; letter-spacing: -.072em; }
.gs-stories-body .gs-kicker { margin-bottom: auto; }
@media (prefers-reduced-motion: no-preference) {
  .gs.is-ready .gs-stories-slide:not([hidden]) img { animation: gs-zoom 8s linear both; }
  .gs.is-ready .gs-stories-slide:not([hidden]) .gs-stories-body > * { animation: gs-fade .8s var(--hb-ease) both; }
  .gs.is-ready .gs-stories-slide:not([hidden]) .gs-stories-body > :nth-child(2) { animation-delay: .06s; }
  .gs.is-ready .gs-stories-slide:not([hidden]) .gs-stories-body > :nth-child(3) { animation-delay: .12s; }
  .gs.is-ready .gs-stories-slide:not([hidden]) .gs-stories-body > :nth-child(4) { animation-delay: .18s; }
}
@keyframes gs-zoom { from { scale: 1.1; } }

/* Questions : grandes questions en Everett. */
.gs-big-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: clamp(48px, 5vw, 88px); }
.gs-big-head .gs-head { margin: 0; }
.gs-big-list { border-top: 1px solid var(--gs-line); }
.gs-big-item { border-bottom: 1px solid var(--gs-line); }
.gs-big-item summary { display: grid; grid-template-columns: 70px minmax(0, 1fr) 56px; gap: clamp(14px, 2vw, 28px); align-items: center; padding: clamp(22px, 2.4vw, 38px) 0; list-style: none; cursor: pointer; }
.gs-big-item summary::-webkit-details-marker { display: none; }
.gs-big-num { color: var(--hb-color-muted); font: 500 12px/1 var(--hb-font-body); letter-spacing: .14em; }
.gs-big-q { font: 500 clamp(26px, 3.3vw, 60px)/1.02 var(--hb-font-heading); letter-spacing: -.05em; transition: translate .6s var(--hb-ease); }
.gs-big-item summary:hover .gs-big-q { translate: 12px 0; }
.gs-big-item[open] .gs-plus { rotate: 45deg; color: var(--hb-color-forest); background: var(--hb-color-orange); border-color: var(--hb-color-orange); }
.gs-big-a { max-width: 62ch; margin: 0 0 clamp(28px, 3vw, 46px) calc(70px + clamp(14px, 2vw, 28px)); color: color-mix(in srgb, var(--hb-color-ink) 74%, transparent); font-size: clamp(16px, 1.2vw, 19px); line-height: 1.62; }
@media (prefers-reduced-motion: no-preference) {
  .gs-big-item[open] .gs-big-a { animation: gs-fade .6s var(--hb-ease) both; }
}

/* Fin : l’arche monte. */
.gs-arch { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .78fr); gap: clamp(40px, 6vw, 120px); align-items: center; }
.gs-arch-title { margin-top: 24px; font-size: clamp(60px, 8.4vw, 160px); line-height: .9; letter-spacing: -.072em; }
.gs-arch-frame { position: relative; aspect-ratio: 4 / 5; max-height: 84svh; margin: 0; overflow: hidden; border-radius: 999px 999px var(--gs-radius) var(--gs-radius); background: var(--gs-sage); clip-path: inset(var(--c, 0%) 0 0 0 round 999px 999px var(--gs-radius) var(--gs-radius)); }
.gs-arch-frame img { position: absolute; inset: -6% 0 0; width: 100%; height: 106%; object-fit: cover; translate: 0 var(--iy, 0px); }

/* Barre de comparaison */
.gs-compare { position: fixed; z-index: 45; right: 18px; bottom: max(16px, env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 2px; padding: 4px; border: 1px solid rgba(16, 33, 25, .1); border-radius: 9px; color: var(--hb-color-ink); background: rgba(233, 237, 226, .92); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); font-family: var(--hb-font-body); }
.gs-compare > span { margin: 0 9px; font-size: 10px; font-weight: 500; }
.gs-compare a { display: grid; place-items: center; width: 37px; height: 36px; border-radius: 5px; font-size: 11px; font-weight: 500; }
.gs-compare a:hover { background: #d3ddc8; }
.gs-compare a[aria-current='page'] { color: var(--hb-color-paper); background: var(--hb-color-forest); }

/* ═════════ Tablette ═════════ */
@media (max-width: 1023px) {
  .gs-talk-pin, .gs-flow-pin { grid-template-columns: minmax(0, 1fr); }
  .gs-talk.is-pinned .gs-talk-copy, .gs-flow.is-pinned .gs-flow-copy { width: auto; right: var(--gs-bleed); top: clamp(110px, 15svh, 160px); }
  .gs-roll-pin { grid-template-columns: minmax(0, 1fr); gap: 28px; align-content: center; }
  .gs-roll-frame { order: -1; height: 30svh; }
  .gs-roll.is-pinned .gs-roll-pin { padding-block: 90px 56px; }
  .gs-lens-pin { grid-template-columns: minmax(0, 1fr); align-content: start; gap: 22px; }
  .gs-lens.is-pinned .gs-lens-pin { display: flex; flex-direction: column; align-items: stretch; padding-top: 104px; padding-bottom: 70px; }
  .gs-lens.is-pinned .gs-lens-sheet { flex: 1; height: auto; min-height: 0; }
  .gs-lens-list { display: flex; flex-wrap: wrap; gap: 8px; max-width: none; margin-top: 18px; border: 0; }
  .gs-lens-list li { gap: 8px; padding: 6px 12px 6px 6px; border: 1px solid var(--gs-line); border-radius: 99px; font-size: 14px; }
  .gs-lens-tick { width: 20px; height: 20px; }
  .gs-lens-tick svg { width: 10px; }
  .gs-lens:not(.is-pinned) .gs-lens-sheet { height: 70svh; }
  .gs-portal { --w0: 58vw; --h0: 30svh; }
  .gs-scrolly-grid { grid-template-columns: minmax(0, 1fr); }
  .gs-scrolly-frame { display: none; }
  .gs-scrolly-inline { position: relative; display: block; width: 100%; aspect-ratio: 4 / 3; margin-bottom: 10px; overflow: hidden; border-radius: var(--gs-radius); }
  .gs-scrolly-inline img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .gs-scrolly-step { min-height: 0; padding-bottom: clamp(56px, 8vw, 90px); opacity: 1; }
  .gs-stories-slide { grid-template-columns: minmax(0, 1fr); }
  .gs-stories-slide figure { min-height: 0; aspect-ratio: 16 / 10; }
  .gs-arch { grid-template-columns: minmax(0, 1fr); }
  .gs-arch-frame { width: min(520px, 100%); justify-self: center; }
  .gs-split-grid { grid-template-columns: minmax(0, 1fr); }
  .gs-split-list, .gs-split-panels { display: contents; }
  .gs-split-list > button { order: var(--o); }
  .gs-split-panel { order: var(--o); grid-area: auto; padding: 6px 0 34px 58px; border-bottom: 1px solid var(--gs-line-light); }
  .gs-split-panel[hidden] { display: none; }
  .gs-split-num { display: none; }
  .gs-split-a { margin-top: 0; font-size: 19px; }
  .gs-split-list > button[aria-selected='true'] { border-bottom-color: transparent; }
  .gs-split-more { order: 99; grid-row: auto; }
}

/* ═════════ Téléphone ═════════ */
@media (max-width: 760px) {
  .gs { --gs-bleed: var(--hb-gutter-mobile); }
  .gs-section { padding: 88px var(--gs-bleed); }
  .gs-head h2 { font-size: clamp(42px, 12vw, 58px); }
  .gs-plus { width: 44px; height: 44px; }
  .gs-cue { bottom: 22px; }
  .gs-talk-pin, .gs-flow-pin { padding-top: 116px; }
  .gs-talk.is-pinned .gs-talk-copy, .gs-flow.is-pinned .gs-flow-copy { top: 104px; }
  .gs-talk.is-pinned .gs-talk-note { bottom: 70px; font-size: 28px; }
  .gs-talk-text { font-size: clamp(19px, 5.3vw, 23px); }
  .gs-talk-sources li { font-size: 11.5px; }
  .gs-swap-list, .gs-portal-points { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .gs-roll-slot { font-size: clamp(52px, 15vw, 72px); }
  .gs-roll-lead { font-size: 22px; }
  .gs-roll-frame { height: 26svh; }
  .gs-roll .gs-copy { font-size: 14.5px; }
  .gs-typed-row { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .gs-typed-num { padding-top: 0; }
  .gs-typed-word { font-size: clamp(50px, 15vw, 70px); }
  .gs-prompts-chips button { min-height: 44px; padding: 0 16px; font-size: 14px; }
  .gs-prompts-a { font-size: 22px; }
  .gs-ask-bar { flex-direction: column; align-items: stretch; padding: 16px; }
  .gs-ask-field { padding: 4px 4px 8px; font-size: 18px; }
  .gs-ask-bar .hb-button { width: 100%; }
  .gs-flow-frag > span { padding: 11px 14px 12px; border-radius: 12px; font-size: 15px; }
  .gs-flow-frag small { font-size: 8.5px; }
  .gs-flow.is-pinned .gs-flow-note { top: 92px; font-size: 27px; }
  .gs-flow-text { font-size: 18px; }
  .gs-flow-sources li { font-size: 10.5px; }
  .gs-scrub-text { font-size: clamp(32px, 9.4vw, 44px); }
  .gs-scrub-pin { padding-bottom: 150px; }
  .gs-index-head { grid-template-columns: minmax(0, 1fr) 44px; gap: 6px 14px; }
  .gs-index-num { grid-column: 1 / -1; }
  .gs-index-word { font-size: clamp(48px, 14.6vw, 66px); }
  .gs-index-name { grid-column: 1; grid-row: 3; text-align: left; font-size: 16px; }
  .gs-index-head .gs-plus { grid-column: 2; grid-row: 2; }
  .gs-index-inner { grid-template-columns: minmax(0, 1fr); gap: 18px; padding-left: 0; }
  .gs-index-pic { margin-bottom: 0; }
  .gs-stack-card { top: calc(80px + var(--i) * 12px); grid-template-columns: minmax(0, 1fr); grid-template-rows: 26svh auto; min-height: 0; }
  .gs-stack-card figure { min-height: 0; }
  .gs-stack-body { gap: 12px; padding: 24px; }
  .gs-stack-body h3 { font-size: clamp(48px, 14vw, 64px); }
  .gs-stack-body .gs-kicker { margin-bottom: 0; }
  .gs-split-panel { padding-left: 0; }
  .gs-iris-pin { align-items: flex-end; padding-bottom: 96px; }
  .gs-iris-image::after { background: linear-gradient(0deg, rgba(8, 15, 11, .9) 0%, rgba(8, 15, 11, .55) 45%, rgba(8, 15, 11, .1) 75%); }
  .gs-iris-title { font-size: clamp(46px, 13vw, 62px); }
  .gs-lens.is-pinned .gs-lens-pin { padding-top: 96px; padding-bottom: 64px; gap: 16px; }
  .gs-lens.is-pinned .gs-lens-copy .gs-lead { display: none; }
  .gs-lens-extra { display: none; }
  .gs-lens-verdict { font-size: 13px; padding: 11px 16px; }
  .gs-portal { --w0: 70vw; --h0: 26svh; }
  .gs-portal-title { font-size: clamp(36px, 10.6vw, 50px); }
  .gs-portal-say { font-size: clamp(32px, 9.6vw, 44px); }
  .gs-scrolly-step h3, .gs-stories-body h3 { font-size: clamp(50px, 15vw, 70px); }
  .gs-stories-bars { gap: 6px; }
  .gs-stories-bars button { font-size: 9.5px; letter-spacing: .08em; }
  .gs-stories-bars button span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .gs-big-item summary { grid-template-columns: minmax(0, 1fr) 44px; }
  .gs-big-num { display: none; }
  .gs-big-q { font-size: 24px; }
  .gs-big-a { margin-left: 0; }
  .gs-compare { right: 9px; bottom: max(8px, env(safe-area-inset-bottom)); }
  .gs-compare > span { display: none; }
  .gs-compare a { width: 42px; height: 42px; }
}
@media (max-width: 760px) and (max-height: 720px) {
  .gs-roll.is-pinned .gs-tags { display: none; }
}

/* ═════════ 04 · L’astérisque ═════════ */

/* Ouverture : l’étoile du titre grandit en tournant et ouvre sur l’image. */
.gs-star { position: relative; color: var(--hb-color-ink); background: var(--hb-color-paper); }
.gs-star-pin { position: relative; display: grid; gap: clamp(28px, 4vw, 56px); min-height: 100svh; padding: 120px var(--gs-bleed) 90px; overflow: hidden; }
.gs-star-copy { position: relative; z-index: 3; max-width: 1180px; }
.gs-star-mark { display: inline-block; width: .44em; height: .44em; margin-left: .06em; vertical-align: top; translate: 0 .12em; }
.gs-star-mark svg { display: block; width: 100%; height: 100%; fill: var(--hb-color-orange); }
.gs-star-window { display: none; }
.gs-star-full { position: relative; z-index: 1; margin: 0; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--gs-radius); }
.gs-star-full img { width: 100%; height: 100%; object-fit: cover; }
.gs-star-note { position: relative; z-index: 4; display: flex; align-items: flex-start; gap: 16px; max-width: 600px; font-size: 15.5px; line-height: 1.55; }
.gs-star-note b { display: block; margin-bottom: 6px; font: 500 clamp(20px, 1.6vw, 26px)/1.1 var(--hb-font-heading); letter-spacing: -.03em; }
.gs-star-note-mark svg { display: block; width: 24px; fill: var(--hb-color-orange); }
.gs-star:not(.is-pinned) .gs-cue { display: none; }
.gs-star.is-pinned { height: 340svh; }
.gs-star.is-pinned .gs-star-pin { position: sticky; top: 0; display: block; height: 100svh; min-height: 560px; padding: 0; }
.gs-star.is-pinned .gs-star-copy { position: absolute; left: var(--gs-bleed); right: var(--gs-bleed); top: clamp(130px, 22svh, 240px); will-change: transform, opacity; }
.gs-star.is-pinned .gs-star-window { position: absolute; z-index: 2; left: 0; top: 0; display: block; overflow: hidden; opacity: var(--w, 0); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M20 0h8v14.35L38.15 4.2l5.65 5.65L33.65 20H48v8H33.65L43.8 38.15l-5.65 5.65L28 33.65V48h-8V33.65L9.85 43.8 4.2 38.15 14.35 28H0v-8h14.35L4.2 9.85 9.85 4.2 20 14.35z'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M20 0h8v14.35L38.15 4.2l5.65 5.65L33.65 20H48v8H33.65L43.8 38.15l-5.65 5.65L28 33.65V48h-8V33.65L9.85 43.8 4.2 38.15 14.35 28H0v-8h14.35L4.2 9.85 9.85 4.2 20 14.35z'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.gs-star-image { position: absolute; display: block; }
.gs-star-image img { width: 100%; height: 100%; object-fit: cover; }
.gs-star.is-pinned .gs-star-full { position: absolute; z-index: 2; inset: 0; aspect-ratio: auto; border-radius: 0; opacity: var(--f, 0); }
.gs-star.is-pinned .gs-star-full::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8, 15, 11, .82) 0%, rgba(8, 15, 11, .3) 42%, rgba(8, 15, 11, 0) 66%); }
.gs-star.is-pinned .gs-star-note { position: absolute; left: var(--gs-bleed); bottom: 84px; color: var(--hb-color-paper); opacity: 0; translate: 0 18px; transition: opacity .7s, translate .9s var(--hb-ease); }
.gs-star.is-noted .gs-star-note { opacity: 1; translate: 0 0; }

/* Constat : gros plan sur le guillemet, la caméra recule jusqu’à la phrase. */
.gs-zoom { background: var(--gs-ivory); }
.gs-zoom-pin { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: clamp(22px, 3svh, 36px); min-height: 100svh; padding: 110px var(--gs-bleed) 80px; overflow: hidden; text-align: center; }
.gs-zoom-stage.is-pinned { height: 240svh; }
.gs-zoom-stage.is-pinned .gs-zoom-pin { position: sticky; top: 0; height: 100svh; }
.gs-zoom-title { max-width: 13em; font-size: clamp(44px, 6.6vw, 128px); line-height: .98; letter-spacing: -.062em; text-wrap: balance; }
.gs-zoom-scale { display: inline-block; transform-origin: var(--zx, 0) var(--zy, 50%); scale: var(--z, 1); }
.gs-zoom-q { color: var(--hb-color-orange); }
.gs-zoom-after { max-width: 32em; color: color-mix(in srgb, var(--hb-color-ink) 70%, transparent); font: 500 clamp(18px, 1.6vw, 26px)/1.3 var(--hb-font-heading); letter-spacing: -.025em; text-wrap: balance; }
.gs-zoom-stage.is-pinned :is(.gs-eyebrow, .gs-zoom-after) { opacity: var(--za, 0); translate: 0 calc((1 - var(--za, 0)) * 14px); }
.gs-zoom-points { padding: 0 var(--gs-bleed) clamp(96px, 9vw, 170px); }
.gs-zoom-points li { display: grid; grid-template-columns: 90px minmax(0, .9fr) minmax(0, 1fr); gap: 30px; align-items: baseline; padding: clamp(26px, 2.6vw, 40px) 0; border-top: 1px solid var(--gs-line); }
.gs-zoom-points li:last-child { border-bottom: 1px solid var(--gs-line); }
.gs-zoom-num { color: var(--hb-color-orange); font: 500 12px/1 var(--hb-font-body); letter-spacing: .14em; }
.gs-zoom-points h3 { font-size: clamp(28px, 2.8vw, 52px); line-height: 1; letter-spacing: -.05em; }

/* Leviers : frise horizontale, les mots géants passent devant les photos. */
.gs-track { position: relative; color: var(--hb-color-paper); background: var(--hb-color-forest); }
.gs-track-pin { position: relative; overflow: hidden; }
.gs-track-rail { display: flex; flex-direction: column; }
.gs-track-intro { display: grid; gap: 24px; max-width: 760px; padding: clamp(96px, 9vw, 160px) var(--gs-bleed) 40px; }
.gs-track-title { font-size: clamp(44px, 4.6vw, 88px); line-height: .92; letter-spacing: -.066em; }
.gs-track-intro .gs-copy { color: var(--gs-paper-soft); }
.gs-track-panel { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .95fr); grid-template-rows: auto minmax(0, 1fr); gap: 24px clamp(30px, 4vw, 70px); padding: 50px var(--gs-bleed); border-top: 1px solid var(--gs-line-light); }
.gs-track-word { position: relative; z-index: 2; grid-column: 1 / -1; font-size: clamp(72px, 13vw, 250px); line-height: .85; letter-spacing: -.078em; white-space: nowrap; }
.gs-track-pic { position: relative; grid-column: 2; grid-row: 2; min-height: 360px; margin: 0; overflow: hidden; border-radius: var(--gs-radius); }
.gs-track-pic img { position: absolute; inset: 0 -8%; width: 116%; height: 100%; object-fit: cover; translate: var(--px, 0) 0; }
.gs-track-body { display: grid; grid-column: 1; grid-row: 2; align-self: end; gap: 16px; max-width: 46ch; }
.gs-track-body .gs-kicker { color: var(--hb-color-lime); }
.gs-track-body .gs-copy { color: var(--gs-paper-soft); }
.gs-track-meter { display: none; }
.gs-track.is-pinned .gs-track-pin { position: sticky; top: 0; height: 100svh; }
.gs-track.is-pinned .gs-track-rail { flex-direction: row; width: max-content; height: 100%; will-change: transform; }
.gs-track.is-pinned .gs-track-intro { flex: none; align-self: center; width: min(620px, 44vw); padding: 0 clamp(40px, 5vw, 90px) 0 var(--gs-bleed); }
.gs-track.is-pinned .gs-track-panel { flex: none; width: min(1280px, 84vw); height: 100%; padding: clamp(108px, 15svh, 150px) clamp(30px, 4vw, 70px) clamp(70px, 10svh, 100px); border-top: 0; border-left: 1px solid var(--gs-line-light); }
.gs-track.is-pinned .gs-track-word { margin-bottom: -.3em; }
.gs-track.is-pinned .gs-track-pic { min-height: 0; }
.gs-track.is-pinned .gs-track-meter { position: absolute; left: var(--gs-bleed); right: var(--gs-bleed); bottom: 30px; display: block; }
.gs-track-meter i { display: block; height: 1px; background: rgba(233, 237, 226, .18); }
.gs-track-meter b { display: block; height: 100%; background: var(--hb-color-orange); transform-origin: 0 50%; scale: var(--m, 0) 1; }

/* Méthode : quatre chapitres de couleur, le verbe se recompose lettre à lettre. */
.gs-chapters { position: relative; }
.gs-chapters-pin { --chapter-ink: var(--hb-color-ink); position: relative; padding: clamp(96px, 9vw, 160px) var(--gs-bleed); overflow: hidden; color: var(--chapter-ink); background: var(--chapter-bg, var(--gs-ivory)); transition: color .6s; }
.gs-chapters-pin[data-tone='orange'] { --chapter-ink: var(--hb-color-forest); }
.gs-chapters-pin[data-tone='forest'] { --chapter-ink: var(--hb-color-paper); }
.gs-chapters-pin .gs-copy { color: color-mix(in srgb, var(--chapter-ink) 82%, transparent); }
.gs-chapters-pin[data-tone='orange'] .gs-dot { color: var(--hb-color-forest); }
.gs-chapters-pin[data-tone='orange'] .gs-result svg { stroke: var(--hb-color-forest); }
.gs-chapters-pin[data-tone='orange'] .gs-eyebrow svg { fill: var(--hb-color-forest); }
.gs-chapters-head { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.gs-chapters-title { font-size: clamp(20px, 1.8vw, 30px); line-height: 1.1; letter-spacing: -.03em; }
.gs-chapters-star { position: absolute; right: var(--gs-bleed); top: clamp(112px, 15svh, 150px); width: clamp(46px, 5vw, 86px); }
.gs-chapters-star svg { display: block; width: 100%; fill: currentColor; }
.gs-chapters-list { display: grid; gap: 16px; margin-top: 40px; }
.gs-chapter { display: grid; gap: 18px; padding: clamp(28px, 4vw, 60px); border-radius: var(--gs-radius); color: var(--ink); background: var(--bg); }
.gs-tone--paper { --bg: var(--hb-color-paper); --ink: var(--hb-color-ink); }
.gs-chapter-word { font-size: clamp(76px, 15vw, 290px); line-height: .9; letter-spacing: -.078em; white-space: nowrap; }
.gs-chapter-word > span[aria-hidden] { display: inline-block; overflow: clip; padding: 0 .04em .12em 0; margin-bottom: -.12em; }
.gs-chapter-word > span[aria-hidden] > * { display: inline-block; }
.gs-chapter-body { display: grid; gap: 14px; max-width: 48ch; }
.gs-chapters.is-pinned { height: calc(var(--n) * 90svh + 100svh); }
.gs-chapters.is-pinned .gs-chapters-pin { position: sticky; top: 0; height: 100svh; padding: 0; }
.gs-chapters.is-pinned .gs-chapters-head { position: absolute; left: var(--gs-bleed); right: calc(var(--gs-bleed) + 100px); top: clamp(112px, 15svh, 150px); }
.gs-chapters.is-pinned .gs-chapters-list { position: absolute; inset: 0; margin: 0; }
.gs-chapters.is-pinned .gs-chapter { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: 18px; padding: 0 var(--gs-bleed) clamp(50px, 8svh, 90px); border-radius: 0; color: inherit; background: none; pointer-events: none; }
.gs-chapters.is-pinned .gs-chapter.is-on { pointer-events: auto; }
.gs-chapters.is-pinned .gs-chapter > :not(.gs-chapter-word) { opacity: 0; translate: 0 14px; transition: opacity .45s, translate .7s var(--hb-ease); }
.gs-chapters.is-pinned .gs-chapter.is-on > :not(.gs-chapter-word) { opacity: 1; translate: 0 0; transition-delay: .18s; }
.gs-chapters.is-pinned .gs-chapter-word > span[aria-hidden] > * { translate: 0 115%; transition: translate .75s var(--hb-ease); transition-delay: calc(var(--k) * 30ms); }
.gs-chapters.is-pinned .gs-chapter.is-past .gs-chapter-word > span[aria-hidden] > * { translate: 0 -115%; }
.gs-chapters.is-pinned .gs-chapter.is-on .gs-chapter-word > span[aria-hidden] > * { translate: 0 0; transition-delay: calc(.12s + var(--k) * 35ms); }

/* Questions : une phrase, des renvois, la note dans la marge. */
.gs-notes-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .6fr); gap: clamp(40px, 6vw, 110px); align-items: start; }
.gs-notes-text { margin-top: 28px; font: 500 clamp(30px, 3.6vw, 66px)/1.18 var(--hb-font-heading); letter-spacing: -.05em; }
.gs-note-ref { display: inline-grid; place-items: center; min-width: 1.6em; height: 1.6em; margin-left: .1em; padding: 0 .35em; border: 0; border-radius: 99px; color: var(--hb-color-forest); background: color-mix(in srgb, var(--hb-color-ink) 10%, transparent); font: 600 .3em/1 var(--hb-font-body); letter-spacing: 0; vertical-align: 1.5em; cursor: pointer; transition: background-color .3s, scale .4s var(--hb-ease); }
.gs-note-ref:hover { scale: 1.15; }
.gs-note-ref[aria-expanded='true'] { background: var(--hb-color-orange); }
.gs-notes-more { margin-top: clamp(36px, 4vw, 60px); }
.gs-notes-side { position: sticky; top: 120px; display: grid; }
.gs-note { display: grid; grid-area: 1 / 1; gap: 16px; padding-top: 24px; border-top: 2px solid var(--hb-color-orange); }
.gs-note[hidden] { display: grid; visibility: hidden; }
.gs-note-num { color: var(--hb-color-orange); font: 500 clamp(80px, 8vw, 150px)/.8 var(--hb-font-heading); letter-spacing: -.07em; }
.gs-note h3 { font-size: clamp(22px, 1.8vw, 30px); line-height: 1.1; letter-spacing: -.035em; }
@media (prefers-reduced-motion: no-preference) {
  .gs.is-ready .gs-note:not([hidden]) > * { animation: gs-fade .6s var(--hb-ease) both; }
  .gs.is-ready .gs-note:not([hidden]) > :nth-child(2) { animation-delay: .06s; }
  .gs.is-ready .gs-note:not([hidden]) > :nth-child(3) { animation-delay: .12s; }
}

/* Fin : la phrase tourne autour de l’étoile. */
.gs-ring { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: clamp(30px, 5vw, 90px); align-items: center; padding: clamp(110px, 11vw, 200px) var(--gs-bleed); overflow: hidden; color: var(--hb-color-paper); background: var(--hb-color-forest); }
.gs-ring-title { margin-top: 24px; font-size: clamp(46px, 5.3vw, 102px); line-height: .92; letter-spacing: -.068em; }
.gs-ring-art { position: relative; justify-self: center; width: min(100%, 640px); aspect-ratio: 1; }
.gs-ring-text { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; rotate: var(--rr, 0deg); }
.gs-ring-text text { fill: var(--hb-color-paper); font-family: var(--hb-font-heading); font-size: 30px; font-weight: 500; letter-spacing: -.01em; }
.gs-ring-star { position: absolute; inset: 25%; rotate: calc(var(--rr, 0deg) * -1.6); }
.gs-ring-star svg { display: block; width: 100%; height: 100%; fill: var(--hb-color-orange); }

/* ═════════ 05 · L’unisson ═════════ */

/* Ouverture : cinq colonnes de réponses s’alignent sur votre marque. */
.gs-voices { position: relative; color: var(--hb-color-paper); background: var(--gs-night); }
.gs-voices-pin { position: relative; min-height: 100svh; padding: clamp(130px, 19svh, 220px) var(--gs-bleed) 120px; overflow: hidden; }
.gs-voices-cols, .gs-voices-band, .gs-voices-note { display: none; }
.gs-voices-copy { position: relative; z-index: 4; max-width: 780px; }
.gs-voices:not(.is-pinned) .gs-cue { display: none; }
.gs-voices.is-pinned { height: 330svh; }
.gs-voices.is-pinned .gs-voices-pin { position: sticky; top: 0; height: 100svh; min-height: 560px; padding: 0; }
.gs-voices.is-pinned .gs-voices-pin::before { content: ''; position: absolute; z-index: 3; inset: 0; background: linear-gradient(90deg, rgba(11, 21, 16, .96) 0%, rgba(11, 21, 16, .8) 46%, rgba(11, 21, 16, .2) 100%); opacity: var(--go, 1); pointer-events: none; }
.gs-voices.is-pinned .gs-voices-pin::after { content: ''; position: absolute; z-index: 4; inset: 0; background: linear-gradient(0deg, rgba(11, 21, 16, .97) 0%, rgba(11, 21, 16, .9) 22%, rgba(11, 21, 16, 0) 38%); opacity: 0; transition: opacity .8s; pointer-events: none; }
.gs-voices.is-noted .gs-voices-pin::after { opacity: 1; }
.gs-voices.is-pinned .gs-voices-cols { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); opacity: var(--co, .4); }
.gs-voices-col { position: relative; overflow: hidden; border-left: 1px solid rgba(233, 237, 226, .1); }
.gs-voices-col:first-child { border-left: 0; }
.gs-voices-name { position: absolute; z-index: 2; left: 0; right: 0; top: 0; padding: clamp(100px, 13svh, 124px) 18px 16px; color: var(--hb-color-lime); background: linear-gradient(var(--gs-night) 72%, rgba(11, 21, 16, 0)); font: 500 10.5px/1.2 var(--hb-font-body); letter-spacing: .16em; text-transform: uppercase; }
.gs-voices-track { position: absolute; left: 0; right: 0; top: 0; display: grid; padding: 0 18px; color: rgba(233, 237, 226, .4); font: 500 clamp(14px, 1.3vw, 21px)/2.1 var(--hb-font-heading); letter-spacing: -.02em; will-change: transform; }
.gs-voices-track span { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.gs-voices-brand { color: var(--hb-color-paper); transition: color .6s; }
.gs-voices-brand svg { display: inline-block; width: .7em; height: .7em; margin-right: .3em; fill: var(--hb-color-orange); vertical-align: -.02em; }
.gs-voices.is-aligned .gs-voices-brand { color: var(--hb-color-lime); }
.gs-voices.is-pinned .gs-voices-band { position: absolute; z-index: 1; left: 0; right: 0; top: var(--band-y, 60%); display: block; height: calc(clamp(14px, 1.3vw, 21px) * 2.3); translate: 0 -50%; border-block: 1px solid var(--hb-color-orange); background: rgba(255, 84, 37, .1); opacity: var(--bo, 0); }
.gs-voices.is-pinned .gs-voices-copy { position: absolute; left: var(--gs-bleed); top: clamp(130px, 21svh, 240px); width: min(780px, 62vw); will-change: transform, opacity; }
.gs-voices.is-pinned .gs-voices-note { position: absolute; z-index: 5; left: var(--gs-bleed); bottom: 84px; display: block; font: 500 clamp(26px, 2.8vw, 50px)/1 var(--hb-font-heading); letter-spacing: -.05em; }
.gs-voices-note .gs-line > span { translate: 0 125%; transition: translate 1s var(--hb-ease); }
.gs-voices-note .gs-line:nth-child(2) > span { transition-delay: .08s; }
.gs-voices.is-noted .gs-voices-note .gs-line > span { translate: 0 0; }

/* Constat : trois lignes géantes en sens contraires, chacune avec sa légende. */
.gs-rows { position: relative; padding: clamp(96px, 9vw, 160px) 0; overflow: hidden; background: var(--hb-color-paper); }
.gs-rows-head { padding: 0 var(--gs-bleed) clamp(24px, 3vw, 44px); }
.gs-rows-item + .gs-rows-item { margin-top: clamp(26px, 3vw, 48px); }
.gs-rows-line { font: 500 clamp(58px, 9.6vw, 184px)/1 var(--hb-font-heading); letter-spacing: -.068em; white-space: nowrap; }
.gs-rows-line > span { display: inline-flex; align-items: center; gap: .3em; padding-right: .3em; translate: var(--rx, 0) 0; }
.gs-rows-line i { display: block; flex: none; width: .4em; }
.gs-rows-line i svg { display: block; width: 100%; fill: var(--hb-color-orange); }
.gs-rows-item:nth-child(3) .gs-rows-line { color: color-mix(in srgb, var(--hb-color-ink) 34%, transparent); }
.gs-rows-caption { display: grid; gap: 10px; max-width: 420px; margin: 18px var(--gs-bleed) 0 auto; padding-left: 20px; border-left: 2px solid var(--hb-color-orange); }
.gs-rows-caption h3 { display: flex; align-items: baseline; gap: 12px; font-size: clamp(22px, 1.8vw, 30px); line-height: 1.05; letter-spacing: -.04em; }
.gs-rows-caption h3 span { color: var(--hb-color-orange); font: 500 11px/1 var(--hb-font-body); letter-spacing: .14em; }

/* Leviers : un livre dont les pages tournent. Sur téléphone, des cartes empilées. */
.gs-book { position: relative; background: var(--gs-sage); }
.gs-book-pin { padding: clamp(96px, 9vw, 160px) var(--gs-bleed); }
.gs-book-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px 40px; margin-bottom: clamp(28px, 4svh, 56px); }
.gs-book-head > .gs-eyebrow { flex-basis: 100%; }
.gs-book-title { font-size: clamp(44px, 5vw, 96px); line-height: .92; letter-spacing: -.066em; }
.gs-book-object { display: grid; gap: 18px; }
.gs-book-left, .gs-book-back { display: none; }
.gs-book-front { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: clamp(24px, 3.4vw, 54px); border-radius: var(--gs-radius); background: var(--gs-ivory); }
.gs-book-front h3 { font-size: clamp(54px, 6.4vw, 120px); line-height: .9; letter-spacing: -.072em; }
.gs-book-inline { position: relative; width: 100%; aspect-ratio: 16 / 10; margin: 0 0 6px; overflow: hidden; border-radius: 14px; }
.gs-book-inline img, .gs-book-left img, .gs-book-back img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gs-book-folio { margin-top: auto; color: var(--hb-color-muted); font: 500 11px/1 var(--hb-font-body); letter-spacing: .14em; }
.gs-book.is-pinned { height: calc((var(--pages, 4) - 1) * 90svh + 100svh); }
.gs-book.is-pinned .gs-book-pin { position: sticky; top: 0; display: flex; flex-direction: column; height: 100svh; padding-top: clamp(96px, 12svh, 130px); padding-bottom: clamp(28px, 5svh, 60px); }
.gs-book.is-pinned .gs-book-object { position: relative; display: block; flex: 1; min-height: 0; perspective: 2600px; }
.gs-book.is-pinned .gs-book-object::after { content: ''; position: absolute; z-index: 60; left: 50%; top: 0; bottom: 0; width: 1px; background: color-mix(in srgb, var(--hb-color-ink) 16%, transparent); }
.gs-book.is-pinned .gs-book-left { position: absolute; left: 0; top: 0; display: block; width: 50%; height: 100%; margin: 0; overflow: hidden; border-radius: var(--gs-radius) 0 0 var(--gs-radius); }
.gs-book.is-pinned .gs-book-page { position: absolute; left: 50%; top: 0; width: 50%; height: 100%; transform-origin: 0 50%; transform-style: preserve-3d; }
.gs-book.is-pinned :is(.gs-book-front, .gs-book-back) { position: absolute; inset: 0; -webkit-backface-visibility: hidden; backface-visibility: hidden; }
.gs-book.is-pinned .gs-book-front { border-radius: 0 var(--gs-radius) var(--gs-radius) 0; }
.gs-book.is-pinned .gs-book-back { display: block; overflow: hidden; border-radius: var(--gs-radius) 0 0 var(--gs-radius); background: var(--hb-color-forest); transform: rotateY(180deg); }
.gs-book.is-pinned .gs-book-inline { display: none; }

/* Méthode : la mise au point, chaque étape sort du flou. */
.gs-focus { position: relative; color: var(--hb-color-paper); background: var(--gs-night); }
.gs-focus-pin { position: relative; min-height: 100svh; padding: clamp(96px, 9vw, 160px) var(--gs-bleed); overflow: hidden; }
.gs-focus-images { position: absolute; inset: 0; }
.gs-focus-images::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8, 15, 11, .88) 0%, rgba(8, 15, 11, .4) 48%, rgba(8, 15, 11, .6) 100%); }
.gs-focus-img { position: absolute; inset: 0; opacity: 0; }
.gs-focus-img:first-child { opacity: 1; }
.gs-focus-img img { width: 100%; height: 100%; object-fit: cover; }
.gs-focus-head { position: relative; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.gs-focus-title { font-size: clamp(20px, 1.8vw, 30px); line-height: 1.1; letter-spacing: -.03em; }
.gs-focus-steps { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; margin-top: 60px; }
.gs-focus-step { display: grid; align-content: end; gap: 14px; }
.gs-focus-step .gs-copy { color: var(--gs-paper-soft); }
.gs-focus-step .gs-kicker { color: var(--hb-color-lime); }
.gs-focus-step h3 { font-size: clamp(60px, 9.6vw, 184px); line-height: .88; letter-spacing: -.078em; }
.gs-focus-count { display: none; }
.gs-focus.is-pinned { height: calc(var(--n) * 90svh + 100svh); }
.gs-focus.is-pinned .gs-focus-pin { position: sticky; top: 0; height: 100svh; padding: 0; }
.gs-focus.is-pinned .gs-focus-img { opacity: var(--o, 0); filter: blur(var(--b, 0px)); scale: var(--s, 1); }
.gs-focus.is-pinned .gs-focus-head { position: absolute; z-index: 2; left: var(--gs-bleed); top: clamp(112px, 15svh, 150px); }
.gs-focus.is-pinned .gs-focus-steps { position: absolute; left: var(--gs-bleed); right: var(--gs-bleed); bottom: clamp(50px, 8svh, 90px); display: grid; grid-template-columns: minmax(0, 1fr); margin: 0; }
.gs-focus.is-pinned .gs-focus-step { grid-area: 1 / 1; max-width: 880px; opacity: var(--o, 0); filter: blur(var(--b, 0px)); }
.gs-focus.is-pinned .gs-focus-count { position: absolute; z-index: 2; right: var(--gs-bleed); top: clamp(116px, 15.4svh, 154px); display: block; font: 500 13px/1 var(--hb-font-body); letter-spacing: .1em; font-variant-numeric: tabular-nums; }

/* Questions : une double page, tout est lisible d’un coup d’œil. */
.gs-spread-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: clamp(48px, 5vw, 88px); }
.gs-spread-head > .gs-eyebrow { flex-basis: 100%; }
.gs-spread-head h2 { font-size: clamp(50px, 6vw, 112px); line-height: .92; letter-spacing: -.066em; }
.gs-spread-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(40px, 6vw, 110px); }
.gs-spread-item { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 18px; padding: clamp(28px, 2.6vw, 40px) 0; border-top: 1px solid var(--gs-line); }
.gs-spread-mark { color: var(--hb-color-orange); font: 500 clamp(20px, 1.6vw, 26px)/1 var(--hb-font-heading); letter-spacing: -.03em; }
.gs-spread-item h3 { font-size: clamp(24px, 2.1vw, 36px); line-height: 1.05; letter-spacing: -.045em; }
.gs-spread-a { margin-top: 14px; color: color-mix(in srgb, var(--hb-color-ink) 74%, transparent); font-size: 15.5px; line-height: 1.62; }

/* Fin : on plonge dans le mot jusqu’à l’image. */
.gs-dive { position: relative; color: var(--hb-color-paper); background: var(--hb-color-forest); }
.gs-dive-pin { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 100svh; padding: 120px var(--gs-bleed); overflow: hidden; }
.gs-dive-word { margin: 0; color: transparent; background-position: 62% 50%; background-size: cover; -webkit-background-clip: text; background-clip: text; font: 500 clamp(110px, 25vw, 480px)/.9 var(--hb-font-heading); letter-spacing: -.08em; white-space: nowrap; transform-origin: var(--dx, 10%) var(--dy, 55%); scale: var(--dz, 1); }
.gs-dive-word b { color: var(--hb-color-orange); -webkit-text-fill-color: var(--hb-color-orange); font-weight: 500; }
.gs-dive-full { display: none; }
.gs-dive-copy { position: relative; z-index: 3; max-width: 900px; margin-top: 30px; }
.gs-dive-title { margin-top: 20px; font-size: clamp(44px, 5.6vw, 104px); line-height: .94; letter-spacing: -.066em; }
.gs-dive.is-pinned { height: 260svh; }
.gs-dive.is-pinned .gs-dive-pin { position: sticky; top: 0; height: 100svh; padding: 0; }
.gs-dive.is-pinned .gs-dive-word { position: absolute; left: 50%; top: 50%; translate: -50% -50%; opacity: var(--dw, 1); }
.gs-dive.is-pinned .gs-dive-full { position: absolute; inset: 0; display: block; margin: 0; opacity: var(--df, 0); }
.gs-dive.is-pinned .gs-dive-full img { width: 100%; height: 100%; object-fit: cover; }
.gs-dive.is-pinned .gs-dive-full::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 15, 11, .88) 0%, rgba(8, 15, 11, .5) 45%, rgba(8, 15, 11, 0) 75%); }
.gs-dive.is-pinned .gs-dive-copy { position: absolute; left: var(--gs-bleed); bottom: clamp(60px, 10svh, 110px); margin: 0; opacity: 0; translate: 0 24px; visibility: hidden; transition: opacity .7s, translate .9s var(--hb-ease), visibility 0s .7s; }
.gs-dive.is-said .gs-dive-copy { opacity: 1; translate: 0 0; visibility: visible; transition: opacity .7s, translate .9s var(--hb-ease); }

/* 04 et 05 · tablette */
@media (max-width: 1023px) {
  .gs-star.is-pinned .gs-star-copy { top: clamp(110px, 15svh, 160px); }
  .gs-track.is-pinned .gs-track-intro { width: 78vw; }
  .gs-track.is-pinned .gs-track-panel { display: flex; flex-direction: column; gap: 22px; width: 88vw; }
  .gs-track.is-pinned .gs-track-word { margin-bottom: -.38em; }
  .gs-track.is-pinned .gs-track-pic { flex: 1; }
  .gs-track-panel { grid-template-columns: minmax(0, 1fr); }
  .gs-track-pic, .gs-track-body { grid-column: 1; grid-row: auto; }
  .gs-notes-grid { grid-template-columns: minmax(0, 1fr); }
  .gs-notes-side { position: relative; top: 0; }
  .gs-ring { grid-template-columns: minmax(0, 1fr); }
  .gs-ring-art { width: min(80%, 520px); }
  .gs-voices.is-pinned .gs-voices-copy { width: auto; right: var(--gs-bleed); top: clamp(110px, 15svh, 160px); }
  .gs-spread-grid { grid-template-columns: minmax(0, 1fr); }
  .gs-focus-steps { grid-template-columns: minmax(0, 1fr); }
}

/* 04 et 05 · téléphone */
@media (max-width: 760px) {
  .gs-star.is-pinned .gs-star-copy { top: 104px; }
  .gs-star.is-pinned .gs-star-note { bottom: 74px; right: var(--gs-bleed); font-size: 14.5px; }
  .gs-zoom-title { font-size: clamp(38px, 11vw, 52px); }
  .gs-zoom-points li { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .gs-track-word { font-size: clamp(64px, 19vw, 90px); }
  .gs-track.is-pinned .gs-track-panel { padding: 96px 22px 70px; }
  .gs-track.is-pinned .gs-track-body .gs-tags { display: none; }
  .gs-track .gs-copy { font-size: 14.5px; }
  .gs-chapter-word { font-size: clamp(64px, 19vw, 92px); }
  .gs-chapters.is-pinned .gs-chapter { padding-bottom: 64px; }
  .gs-notes-text { font-size: clamp(27px, 7.6vw, 34px); }
  .gs-ring-title { font-size: clamp(46px, 13vw, 62px); }
  .gs-voices.is-pinned .gs-voices-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gs-voices-col:nth-child(n + 4) { display: none; }
  .gs-voices-track { padding: 0 12px; font-size: 14px; }
  .gs-voices-name { padding: 92px 12px 14px; font-size: 9.5px; }
  .gs-voices.is-pinned .gs-voices-copy { top: 104px; }
  .gs-voices.is-pinned .gs-voices-note { bottom: 70px; font-size: 27px; }
  .gs-voices.is-pinned .gs-voices-band { height: 32px; }
  .gs-rows-line { font-size: clamp(54px, 15vw, 72px); }
  .gs-rows-caption { margin-left: var(--gs-bleed); }
  .gs-focus-step h3 { font-size: clamp(54px, 16vw, 76px); }
  .gs-focus.is-pinned .gs-focus-steps { bottom: 64px; }
  .gs-spread-item { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .gs-dive-word { font-size: 31vw; }
  .gs-dive-title { font-size: clamp(40px, 11.4vw, 54px); }
  .gs-dive.is-pinned .gs-dive-full::after { background: linear-gradient(0deg, rgba(8, 15, 11, .94) 0%, rgba(8, 15, 11, .66) 52%, rgba(8, 15, 11, .1) 82%); }
  .gs-focus.is-pinned .gs-focus-count { display: none; }
}
