@import url("https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Caveat:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap");

:root {
  --ink: #0a0d12;
  --muted: #5d626c;
  --paper: #f7f7f4;
  --white: #ffffff;
  --cyan: #58d9f4;
  --blue: #3568f5;
  --blue-rgb: 53, 104, 245;
  --yellow: #ffae2b;
  --cyan-soft: #e5faff;
  --blue-soft: #edf2ff;
  --yellow-soft: #fff1dc;
  --accent-surface: radial-gradient(circle at 24% 16%, #fff8b8 0%, #ffdc6f 28%, #ffb23f 61%, #f47b2d 100%);
  --accent-surface-soft: radial-gradient(circle at 22% 12%, #fffce2 0%, #ffeeb7 40%, #ffd48a 74%, #ffb86a 100%);
  --accent-shadow: 0 12px 28px rgba(238, 118, 35, .24), inset 0 1px 0 rgba(255,255,255,.72);
  --type-display: clamp(3.8rem, 7.5vw, 8.7rem);
  --type-copy: clamp(.98rem, 1.06vw, 1.1rem);
  --type-label: clamp(.74rem, .82vw, .86rem);
  --text-micro: var(--type-label);
  --text-label: var(--type-label);
  --text-small: var(--type-copy);
  --text-body: var(--type-copy);
  --line: rgba(10, 13, 18, .16);
  --soft-line: rgba(10, 13, 18, .09);
  --shadow: 0 32px 90px rgba(16, 20, 35, .14);
  --max: 1600px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; color: var(--ink); background: var(--paper); font-family: "DM Sans", system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 1000; padding: 10px 14px; color: white; background: var(--ink); transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.eyebrow { margin: 0; color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  min-height: 70px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 30px;
  padding: 12px clamp(18px, 3.3vw, 58px);
  transition: background .25s ease, border-color .25s ease, backdrop-filter .25s ease;
}
.site-header.is-scrolled { background: rgba(247,247,244,.84); border-bottom: 1px solid var(--soft-line); backdrop-filter: blur(20px); }
.brand { display: inline-flex; align-items: baseline; gap: 0; width: max-content; color: var(--ink); text-decoration: none; font: 400 1.72rem/.88 "Bebas Neue", Impact, sans-serif; letter-spacing: .025em; text-transform: uppercase; }
.brand > span { color: inherit; }
.brand-dot { display: inline-block; flex: 0 0 auto; align-self: flex-end; width: .19em; aspect-ratio: 1; margin: 0 .08em .12em; overflow: hidden; border-radius: 0; color: transparent; background: var(--blue); font-style: normal; }
.brand em { color: inherit; font: inherit; font-style: normal; letter-spacing: inherit; }
.site-footer .brand { color: white; }
.site-nav { display: flex; gap: clamp(18px, 2.3vw, 36px); align-items: center; }
.site-nav a { color: var(--muted); text-decoration: none; font-size: .75rem; font-weight: 700; }
.site-nav a:hover { color: var(--ink); }
.header-contact { justify-self: end; display: inline-flex; align-items: center; gap: 18px; padding: 11px 16px; border: 1px solid var(--ink); border-radius: 999px; text-decoration: none; font-size: .75rem; font-weight: 700; }
.header-contact:hover { color: white; background: var(--ink); }

.hero-world { min-height: 100svh; padding: 86px clamp(16px, 3vw, 48px) 16px; display: grid; grid-template-rows: auto minmax(540px, 1fr) auto; gap: 12px; overflow: hidden; }
.hero-titleblock { position: relative; z-index: 5; text-align: center; }
.hero-titleblock .eyebrow { margin-bottom: 12px; }
.hero-titleblock h1 { margin: 0; font: 400 clamp(3.4rem, 7.2vw, 8.2rem)/.82 "Bebas Neue", Impact, sans-serif; letter-spacing: -.018em; text-transform: uppercase; }
.hero-line { display: block; }
.hero-line strong { color: var(--ink); font-weight: 700; }
.hero-promise { line-height: .82; white-space: nowrap; }
.hero-promise em { display: inline-block; margin: 0 .075em; color: var(--yellow); font: 600 1em/.72 "Caveat", "Segoe Print", cursive; letter-spacing: -.055em; text-transform: none; text-shadow: 0 .06em .16em rgba(244,123,45,.2); transform: rotate(-2.5deg) translateY(-.03em); }
.hero-promise strong { color: var(--blue); font-weight: 400; }
.hero-line.second-line strong { position: relative; color: var(--blue); font-weight: 400; }
.activity-word { display: inline-block; z-index: 0; isolation: isolate; }
.activity-word > span { position: relative; z-index: 2; }
.activity-word::before,
.activity-word::after { content: attr(data-text); position: absolute; z-index: 0; inset: 0; color: transparent; -webkit-text-fill-color: transparent; font: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; white-space: nowrap; pointer-events: none; }
.activity-word::before { -webkit-text-stroke: .065em #f56f27; opacity: .58; filter: drop-shadow(0 0 .045em rgba(255,119,35,.5)); animation: activitySkinPulse 8.6s ease-in-out infinite; }
.activity-word::after { z-index: 1; -webkit-text-stroke: .04em #ffe08a; text-shadow: 0 0 .035em rgba(255,245,198,.95), 0 0 .13em rgba(255,101,28,.86); opacity: .12; -webkit-mask-image: linear-gradient(90deg,transparent 0%,#000 13%,#000 31%,transparent 46%,transparent 58%,#000 71%,#000 82%,transparent 96%); mask-image: linear-gradient(90deg,transparent 0%,#000 13%,#000 31%,transparent 46%,transparent 58%,#000 71%,#000 82%,transparent 96%); -webkit-mask-size: 230% 100%; mask-size: 230% 100%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; animation: activitySkinFlare 8.6s cubic-bezier(.76,0,.24,1) infinite; }
.hero-subtitle { max-width: 750px; margin: 28px auto 0; color: var(--muted); font-size: clamp(.86rem, 1.15vw, 1rem); line-height: 1.5; }

@keyframes activitySkinPulse {
  0%, 14%, 38%, 72%, 100% { opacity: .46; filter: drop-shadow(0 0 .035em rgba(255,119,35,.42)); }
  18% { opacity: .74; filter: drop-shadow(0 0 .08em rgba(255,135,44,.82)); }
  21% { opacity: .54; }
  43% { opacity: .88; filter: drop-shadow(0 0 .1em rgba(255,92,24,.9)); }
  47% { opacity: .5; }
  76% { opacity: .8; filter: drop-shadow(0 0 .075em rgba(255,146,52,.78)); }
  81% { opacity: .48; }
}
@keyframes activitySkinFlare {
  0% { opacity: .1; -webkit-mask-position: 118% 0; mask-position: 118% 0; filter: brightness(.9); }
  8% { opacity: .24; }
  16% { opacity: .92; filter: brightness(1.18); }
  20% { opacity: .3; -webkit-mask-position: 91% 0; mask-position: 91% 0; }
  36% { opacity: .16; }
  42% { opacity: 1; -webkit-mask-position: 60% 0; mask-position: 60% 0; filter: brightness(1.3); }
  47% { opacity: .26; }
  63% { opacity: .14; -webkit-mask-position: 31% 0; mask-position: 31% 0; }
  74% { opacity: .86; filter: brightness(1.2); }
  79% { opacity: .22; }
  100% { opacity: .1; -webkit-mask-position: -48% 0; mask-position: -48% 0; filter: brightness(.9); }
}

.world-shell { width: 100vw; margin-left: calc(50% - 50vw); overflow-anchor: none; }
.world-stage { position: relative; min-height: clamp(700px,76svh,880px); width: 100%; overflow: hidden; scroll-margin-top: 68px; border-block: 1px solid rgba(10,13,18,.12); background: #fff; box-shadow: inset 0 1px white, 0 28px 80px rgba(18,26,45,.09); }
.world-canvas-wrap { position: absolute; inset: 0; overflow: hidden; }
#world3d { width: 100%; height: 100%; display: block; cursor: grab; filter: saturate(1.04) contrast(1.02); }
#world3d.is-hovering { cursor: pointer; }
#world3d.is-dragging { cursor: grabbing; }
.scene-idle { position: absolute; z-index: 4; top: clamp(24px,3vw,46px); left: clamp(24px,4vw,62px); min-width: min(480px,72vw); padding-left: 17px; border-left: 1px solid rgba(10,13,18,.5); color: var(--ink); text-shadow: 0 1px 12px rgba(255,255,255,.88); pointer-events: none; transition: opacity .25s ease, transform .45s cubic-bezier(.16,1,.3,1); }
.scene-idle.is-hidden { opacity: 0; transform: translateY(-20px); }
.scene-idle span { display: block; margin-bottom: 7px; color: var(--blue); font: 700 .58rem "DM Sans",sans-serif; letter-spacing: .16em; }
.scene-idle strong { display: block; max-width: 480px; font: 400 clamp(2.25rem,3.5vw,4.1rem)/.86 "Bebas Neue",Impact,sans-serif; letter-spacing: -.01em; text-transform: uppercase; }
.scene-idle small { display: block; margin-top: 10px; color: rgba(10,13,18,.64); font-size: .6rem; letter-spacing: .06em; }
.scene-promise { --active-accent: var(--cyan); --annotation-x: 50%; --annotation-y: 50%; position: absolute; z-index: 7; left: var(--annotation-x); top: var(--annotation-y); box-sizing: border-box; width: min(410px,42vw); display: flex; flex-direction: column; align-items: center; padding: 15px 20px 16px; overflow: visible; border: 1px solid rgba(255,255,255,.72); border-radius: 24px; color: #09131e; background: linear-gradient(145deg,rgba(255,255,255,.76),rgba(244,249,255,.5)); box-shadow: 0 18px 48px rgba(17,31,52,.12), inset 0 1px 0 rgba(255,255,255,.9); backdrop-filter: blur(18px) saturate(145%); -webkit-backdrop-filter: blur(18px) saturate(145%); opacity: 0; visibility: hidden; pointer-events: none; text-align: center; transform: translate(-50%,calc(-100% - 244px)); transition: width .55s cubic-bezier(.16,1,.3,1), transform .55s cubic-bezier(.16,1,.3,1), padding .55s cubic-bezier(.16,1,.3,1), border-radius .55s cubic-bezier(.16,1,.3,1), background .35s ease, box-shadow .35s ease, opacity .13s ease, visibility .13s ease; }
.scene-promise.is-detail { z-index: 12; width: min(860px,calc(100vw - 96px)); padding: 22px 24px 20px; border-radius: 32px; background: linear-gradient(145deg,rgba(255,255,255,.84),rgba(239,247,255,.66)); box-shadow: 0 28px 90px rgba(17,31,52,.2), inset 0 1px 0 white; pointer-events: auto; transform: translate(-50%,calc(-100% - 132px)); }
.scene-promise::before { content: ""; position: absolute; top: calc(100% + 14px); left: 50%; height: 230px; border-left: 1px solid rgba(7,16,27,.9); transform: scaleY(0); transform-origin: center top; transition: transform .38s cubic-bezier(.16,1,.3,1); }
.scene-promise::after { content: ""; position: absolute; top: calc(100% + 11px); left: calc(50% - 5px); width: 10px; border-top: 1px solid var(--active-accent); opacity: 0; transform: scaleX(0); transition: opacity .2s ease .18s, transform .28s ease .18s; }
.scene-promise[data-side="left"] { align-items: center; text-align: center; transform: translate(-50%,calc(-100% - 244px)); }
.scene-promise.is-detail[data-side="left"] { transform: translate(-50%,calc(-100% - 132px)); }
.scene-promise[data-side="left"]::before { right: auto; left: 50%; }
.scene-promise[data-side="left"]::before { transform-origin: center top; }
.scene-promise[data-side="left"]::after { left: calc(50% - 5px); right: auto; }
.scene-promise.is-visible { opacity: 1; visibility: visible; }
.scene-promise.is-visible::before { transform: scaleY(1); }
.scene-promise[data-side="left"].is-visible::before { transform: scaleY(1); }
.scene-promise.is-visible::after { opacity: 1; transform: scaleX(1); }
.scene-promise > strong, .scene-promise > small { opacity: 0; clip-path: inset(0 100% 0 0); transform: translateY(13px) skewX(-4deg); transition: opacity .2s ease, clip-path .36s cubic-bezier(.16,1,.3,1), transform .34s cubic-bezier(.16,1,.3,1), font-size .45s cubic-bezier(.16,1,.3,1); }
.scene-promise.is-visible > strong { opacity: 1; clip-path: inset(0); transform: none; transition-delay: .27s; }
.scene-promise.is-visible > small { opacity: 1; clip-path: inset(0); transform: none; transition-delay: .34s; }
.scene-promise > strong { max-width: 520px; font: 400 clamp(2rem,2.8vw,3rem)/.9 "Bebas Neue",Impact,sans-serif; letter-spacing: -.008em; text-transform: uppercase; }
.scene-promise.is-detail > strong { max-width: 760px; font-size: clamp(2.1rem,3.2vw,3.55rem); }
.scene-promise > strong em { position: relative; color: var(--blue); font-style: normal; font-weight: 400; }
.scene-promise > strong em::after { content: ""; position: absolute; z-index: -1; left: -.03em; right: -.03em; bottom: .02em; height: .1em; background: var(--active-accent); opacity: .68; }
.scene-promise > small { max-width: 540px; margin-top: 9px; color: rgba(9,19,30,.76); font: 650 clamp(.78rem,.94vw,.94rem)/1.38 "DM Sans",sans-serif; letter-spacing: 0; }
.scene-pan-controls { position: absolute; z-index: 7; inset: 50% 18px auto; display: flex; justify-content: space-between; pointer-events: none; transform: translateY(-50%); }
.scene-pan-controls button { display: inline-flex; align-items: center; gap: 8px; min-width: 44px; height: 44px; padding: 0 14px; border: 1px solid rgba(10,13,18,.22); border-radius: 999px; color: var(--ink); background: rgba(255,255,255,.76); box-shadow: 0 9px 28px rgba(14,23,36,.12); backdrop-filter: blur(12px); cursor: pointer; pointer-events: auto; transition: background .25s ease, transform .25s ease, opacity .25s ease; }
.scene-pan-controls button:hover { background: white; transform: scale(1.05); }
.scene-pan-controls button:disabled { opacity: .24; cursor: default; transform: none; }
.scene-pan-controls span { font-size: 1.1rem; }
.scene-pan-controls small { font: 700 .52rem "DM Sans",sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.scene-status { position: absolute; z-index: 6; right: 24px; bottom: 84px; display: flex; gap: 10px; align-items: center; color: var(--muted); font: 700 .56rem "DM Sans",sans-serif; letter-spacing: .1em; text-transform: uppercase; pointer-events: none; }
.scene-status i { width: 7px; height: 7px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 5px rgba(var(--blue-rgb),.14); }
.scene-loader { position: absolute; inset: 0; z-index: 4; display: grid; place-content: center; gap: 13px; text-align: center; background: var(--paper); transition: opacity .5s ease, visibility .5s ease; }
.scene-loader.is-hidden { opacity: 0; visibility: hidden; }
.scene-loader i { width: 50px; height: 50px; justify-self: center; border: 1px solid var(--ink); border-radius: 50%; animation: sceneSpin 1.1s linear infinite; }
.scene-loader i::before { content: ""; display: block; width: 12px; height: 12px; margin: -6px auto 0; border-radius: 50%; background: var(--accent-surface); box-shadow: var(--accent-shadow); }
.scene-loader span { color: var(--muted); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
@keyframes sceneSpin { to { transform: rotate(360deg); } }

.object-rail { position: absolute; z-index: 8; left: 50%; bottom: 12px; width: min(1280px,calc(100% - 24px)); display: grid; grid-template-columns: repeat(6,1fr); padding: 4px; border: 1px solid var(--line); background: rgba(255,255,255,.91); box-shadow: 0 15px 45px rgba(17,22,34,.1); backdrop-filter: blur(18px); transform: translateX(-50%); transition: opacity .2s ease, transform .4s ease; }
.object-rail button { min-width: 0; padding: 15px 10px; border: 0; color: var(--ink); background: transparent; cursor: pointer; text-align: center; }
.object-rail button b { font: 400 clamp(.9rem,1.25vw,1.25rem) "Bebas Neue", Impact, sans-serif; letter-spacing: .015em; text-transform: uppercase; }
.object-rail button:hover, .object-rail button.is-active { color: var(--ink); background: var(--blue); }

@media (hover: hover) and (pointer: fine) {
  .object-rail { opacity: 0; pointer-events: none; transform: translate(-50%,18px); }
  .object-rail:focus-within { opacity: 1; pointer-events: auto; transform: translateX(-50%); }
}

.capability-drawer { position: relative; z-index: 2; width: 100%; max-height: 0; margin-top: 0; padding: 0; overflow: hidden; border: 0; background: transparent; box-shadow: none; opacity: 0; pointer-events: none; text-align: left; text-shadow: none; transform: translateY(-10px); transform-origin: center top; transition: max-height .5s cubic-bezier(.16,1,.3,1), margin .5s cubic-bezier(.16,1,.3,1), opacity .2s ease, transform .5s cubic-bezier(.16,1,.3,1); }
.scene-promise.is-detail .capability-drawer { max-height: 340px; margin-top: 18px; opacity: 1; pointer-events: auto; transform: none; }
.drawer-close { position: absolute; z-index: 3; top: 13px; right: 15px; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 50%; color: var(--ink); background: rgba(255,255,255,.44); opacity: 0; pointer-events: none; cursor: pointer; font: 400 1.55rem/1 "Bebas Neue",sans-serif; transition: color .2s ease, background .2s ease, opacity .2s ease, transform .2s ease; }
.scene-promise.is-detail .drawer-close { opacity: 1; pointer-events: auto; }
.drawer-close:hover { color: var(--blue); background: rgba(255,255,255,.88); transform: rotate(90deg); }
.nested-folds { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; min-width: 0; }
.nested-fold { min-width: 0; overflow: hidden; border: 0; border-radius: 16px; background: rgba(255,255,255,.34); transition: background .22s ease, box-shadow .22s ease; }
.nested-fold:hover, .nested-fold:focus-within, .nested-fold.is-open { background: color-mix(in srgb,var(--active-accent) 32%,rgba(255,255,255,.64)); box-shadow: 0 10px 28px rgba(28,44,69,.08); }
.nested-fold button { width: 100%; display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; padding: 12px 14px; border: 0; background: transparent; text-align: left; cursor: pointer; font-size: clamp(.76rem,.9vw,.9rem); font-weight: 800; }
.nested-fold.is-open button strong { color: var(--blue); }
.nested-fold button i { font-style: normal; font-size: 1.05rem; transition: transform .25s ease; }
.nested-fold.is-open button i { transform: rotate(45deg); }
.fold-content { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .35s ease; }
.fold-content > div { overflow: hidden; }
.nested-fold.is-open .fold-content { grid-template-rows: 1fr; }
.fold-content p, .fold-content ul { margin: 0; padding: 0 14px 14px; color: rgba(10,13,18,.72); font-size: clamp(.7rem,.78vw,.8rem); line-height: 1.42; }
.fold-content ul { list-style: none; }
.fold-content li { margin-bottom: 5px; }
.fold-content li::before { content: "— "; color: var(--ink); }

.hero-footer { width: min(var(--max), 100%); margin: 0 auto; display: flex; justify-content: space-between; align-items: center; min-height: 42px; }
.hero-principles { display: flex; gap: 26px; color: var(--muted); font-size: .61rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.hero-principles span::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: var(--cyan); }
.hero-principles span:nth-child(2)::before { background: var(--blue); }
.hero-principles span:nth-child(3)::before { background: var(--yellow); }
.primary-action { display: inline-flex; align-items: center; gap: 20px; padding: 10px 16px; border-radius: 999px; color: white; background: var(--ink); text-decoration: none; font-size: .68rem; font-weight: 700; }

.impact-layer { min-height: 86svh; padding: clamp(90px,12vh,150px) clamp(20px,5vw,82px); display: grid; grid-template-columns: minmax(300px,.62fr) minmax(0,1.38fr); gap: clamp(55px,7vw,120px); color: white; background: #0b0f16; }
.impact-layer > header { align-self: start; position: sticky; top: 110px; }
.impact-layer .eyebrow { color: var(--cyan); }
.impact-layer h2 { max-width: 690px; margin: 17px 0 0; font: 400 clamp(4rem,8vw,9rem)/.78 "Bebas Neue",Impact,sans-serif; letter-spacing: -.012em; text-transform: uppercase; }
.impact-instruction { margin: 38px 0 0; color: rgba(255,255,255,.4); font-size: .67rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.impact-instruction span { color: var(--yellow); }
.impact-touch { display: none; }
.impact-lines { border-top: 1px solid rgba(255,255,255,.24); }
.impact-card { overflow: hidden; border-bottom: 1px solid rgba(255,255,255,.24); background: #0b0f16; transition: background .35s ease, box-shadow .35s ease; }
.impact-card:hover, .impact-card.is-open { background: var(--blue); box-shadow: 0 32px 70px rgba(0,0,0,.28); }
.impact-trigger { width: 100%; min-height: 126px; padding: 0; display: grid; grid-template-columns: 46px minmax(220px,.82fr) 1fr 26px; gap: 20px; align-items: center; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.impact-trigger:focus-visible { outline: 2px solid var(--yellow); outline-offset: -4px; }
.impact-card:hover .impact-trigger, .impact-card.is-open .impact-trigger { padding-inline: 22px; }
.impact-index { align-self: start; padding-top: 28px; color: var(--cyan); font: 700 .6rem "DM Sans",sans-serif; }
.impact-heading { display: contents; }
.impact-heading strong { font: 400 clamp(2rem,3vw,3.8rem)/.85 "Bebas Neue",Impact,sans-serif; letter-spacing: -.005em; text-transform: uppercase; }
.impact-heading small { max-width: 390px; color: rgba(255,255,255,.58); font-size: .82rem; line-height: 1.55; }
.impact-card:hover .impact-heading small, .impact-card.is-open .impact-heading small { color: rgba(255,255,255,.82); }
.impact-open { color: var(--yellow); font: 300 1.8rem/1 "DM Sans",sans-serif; font-style: normal; transition: transform .45s cubic-bezier(.16,1,.3,1); }
.impact-card:hover .impact-open, .impact-card.is-open .impact-open { transform: rotate(45deg); }
.impact-demo { display: grid; grid-template-rows: 0fr; opacity: 0; background: var(--paper); color: var(--ink); transition: grid-template-rows .65s cubic-bezier(.16,1,.3,1), opacity .25s ease; }
.impact-demo-inner { min-height: 0; overflow: hidden; }
.impact-card:hover .impact-demo, .impact-card.is-open .impact-demo { grid-template-rows: 1fr; opacity: 1; }
.impact-demo-bar { min-height: 64px; padding: 12px 16px 12px 22px; display: flex; justify-content: space-between; align-items: center; gap: 20px; border-bottom: 1px solid var(--line); }
.impact-phase { color: var(--muted); font-size: .62rem; font-weight: 800; letter-spacing: .1em; }
.impact-transform { position: relative; isolation: isolate; min-width: 174px; padding: 4px; display: grid; grid-template-columns: 1fr 1fr; align-items: center; border: 1px solid rgba(244,123,45,.62); border-radius: 999px; color: var(--ink); background: #fff7ec; box-shadow: inset 0 1px 0 rgba(255,255,255,.9); cursor: pointer; transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease; }
.impact-transform::before { content: ""; position: absolute; z-index: -1; left: 4px; top: 4px; bottom: 4px; width: calc(50% - 4px); border-radius: 999px; background: var(--accent-surface); box-shadow: var(--accent-shadow); transition: transform .55s cubic-bezier(.16,1,.3,1); }
.impact-transform > span:not(.sr-only) { position: relative; z-index: 1; padding: 7px 12px; font-size: .72rem; font-weight: 900; letter-spacing: .035em; text-align: center; transition: color .3s ease, opacity .3s ease; }
.impact-transform [data-impact-after] { color: #9b5a2f; opacity: .7; }
.impact-transform:hover { border-color: #f47b2d; box-shadow: 0 8px 20px rgba(238,118,35,.16); transform: translateY(-2px); }
.impact-transform:focus-visible { outline: 3px solid rgba(244,123,45,.3); outline-offset: 3px; }
.impact-card.is-after .impact-transform::before { transform: translateX(100%); }
.impact-card.is-after .impact-transform [data-impact-before] { color: #9b5a2f; opacity: .7; }
.impact-card.is-after .impact-transform [data-impact-after] { color: var(--ink); opacity: 1; }
.impact-card[aria-busy="true"] .impact-transform::before { animation: impactToggleBusy .65s ease-in-out infinite alternate; }
@keyframes impactToggleBusy { to { filter: saturate(1.2) brightness(1.08); box-shadow: 0 10px 30px rgba(244,123,45,.38),inset 0 1px 0 rgba(255,255,255,.82); } }
.impact-schematic { position: relative; height: clamp(250px,27vw,330px); overflow: hidden; border-bottom: 1px solid var(--line); background: linear-gradient(rgba(0,32,240,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(0,32,240,.035) 1px,transparent 1px),#f5f6f7; background-size: 24px 24px; }
.impact-schematic::after { content: ""; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 70px rgba(0,32,240,.06); }
.impact-view { position: absolute; inset: 0; opacity: 0; transform: scale(.97) translateY(10px); transition: opacity .45s ease, transform .75s cubic-bezier(.16,1,.3,1); }
.impact-view > svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; fill: none; stroke: rgba(10,13,18,.34); stroke-width: 1.5; stroke-dasharray: 7 7; vector-effect: non-scaling-stroke; }
.impact-view > svg .dead-path { stroke: var(--yellow); stroke-width: 2; }
.impact-before { opacity: 1; transform: none; }
.impact-after > svg { stroke: var(--blue); stroke-width: 2.2; stroke-dasharray: 210; stroke-dashoffset: 210; transition: stroke-dashoffset 1.1s .12s cubic-bezier(.16,1,.3,1); }
.impact-card.is-after .impact-before { opacity: 0; transform: scale(1.04) translateY(-10px); }
.impact-card.is-after .impact-after { opacity: 1; transform: none; }
.impact-card.is-after .impact-after > svg { stroke-dashoffset: 0; }
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.flux-schematic { height: clamp(430px,39vw,480px); background: radial-gradient(circle at 50% 42%,rgba(88,217,244,.18),transparent 34%),linear-gradient(rgba(var(--blue-rgb),.04) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--blue-rgb),.04) 1px,transparent 1px),#f6f8fb; background-size: auto,24px 24px,24px 24px,auto; }
.flux-before > .flux-routes { z-index: 0; stroke: rgba(var(--blue-rgb),.72); stroke-width: 2.4; stroke-dasharray: 9 7; stroke-dashoffset: 0; filter: drop-shadow(0 0 3px rgba(88,217,244,.82)); transition: opacity .55s ease, transform .9s cubic-bezier(.16,1,.3,1); animation: fluxRoute 2.2s linear infinite; }
.flux-routes marker path { fill: var(--blue); stroke: none; }
@keyframes fluxRoute { to { stroke-dashoffset: -60; } }
.flux-persona { position: absolute; z-index: calc(3 + var(--i)); left: var(--x); top: var(--y); width: var(--w); transition: left .9s cubic-bezier(.16,1,.3,1), top .9s cubic-bezier(.16,1,.3,1), width .9s cubic-bezier(.16,1,.3,1), opacity .4s ease, transform .9s cubic-bezier(.16,1,.3,1); transition-delay: calc(var(--i) * 90ms); }
.persona-id { min-height: 48px; padding: 7px 9px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 8px; border-radius: 12px 12px 5px 5px; color: white; background: var(--ink); box-shadow: 0 11px 24px rgba(10,13,18,.22); transition: opacity .3s ease, transform .55s ease; }
.persona-avatar { position: relative; width: 34px; height: 34px; display: grid; place-items: center; border: 2px solid white; border-radius: 50%; color: var(--ink); background: var(--accent-surface); font: 900 .72rem "DM Sans",sans-serif; box-shadow: 0 0 0 4px color-mix(in srgb,var(--accent) 34%,transparent),var(--accent-shadow); }
.persona-avatar::after { content: ""; position: absolute; right: -2px; bottom: -2px; width: 8px; height: 8px; border: 2px solid var(--ink); border-radius: 50%; background: #5dff9c; }
.persona-id > span:nth-child(2) { min-width: 0; display: grid; gap: 2px; }
.persona-id b { font-size: .61rem; }
.persona-id small { overflow: hidden; color: rgba(255,255,255,.58); font-size: .45rem; text-overflow: ellipsis; white-space: nowrap; }
.persona-id em { padding: 4px 5px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; color: var(--yellow); font-size: .38rem; font-weight: 900; font-style: normal; letter-spacing: .06em; white-space: nowrap; }
.persona-tabs { display: grid; gap: 3px; padding: 5px; border: 1px solid rgba(10,13,18,.12); border-top: 0; border-radius: 0 0 12px 12px; background: rgba(223,229,240,.72); box-shadow: 0 15px 30px rgba(17,32,71,.11); }
.persona-tab { min-width: 0; min-height: 34px; padding: 4px 6px; display: grid; grid-template-columns: 26px minmax(0,1fr) auto; align-items: center; gap: 6px; border: 1px solid rgba(10,13,18,.18); border-radius: 7px; background: rgba(255,255,255,.97); box-shadow: 0 3px 0 rgba(10,13,18,.07); transform: rotate(var(--r)); transform-origin: center; transition: transform .75s cubic-bezier(.16,1,.3,1), opacity .3s ease, box-shadow .45s ease; transition-delay: calc(var(--n) * 45ms); }
.persona-tab > svg, .unified-app svg, .user-view svg { width: 24px; height: 24px; padding: 5px; border-radius: 7px; color: var(--blue); background: var(--blue-soft); fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.persona-tab > span { min-width: 0; display: grid; gap: 2px; }
.persona-tab b { overflow: hidden; font-size: .52rem; line-height: 1.05; text-overflow: ellipsis; white-space: nowrap; }
.persona-tab small { overflow: hidden; color: var(--muted); font-size: .41rem; text-overflow: ellipsis; white-space: nowrap; }
.persona-tab em { align-self: start; padding: 3px 4px; border-radius: 999px; color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); font-size: .35rem; font-weight: 900; font-style: normal; letter-spacing: .04em; }
.tool-mail > svg { color: #0068ff; background: #e6f1ff; }
.tool-crm > svg { color: #6a35ff; background: #eee9ff; }
.tool-folder > svg { color: #d57900; background: #fff0d6; }
.tool-sheet > svg { color: #087a59; background: #e1f8ef; }
.tool-chat > svg { color: #dd315f; background: #ffe8ef; }
.tool-calendar > svg { color: #1765d6; background: #e6efff; }
.flux-friction { position: absolute; z-index: 8; left: var(--x); top: var(--y); padding: 5px 8px; border: 1px solid rgba(10,13,18,.22); border-radius: 999px; color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); font-size: .42rem; font-weight: 900; letter-spacing: .08em; transform: translate(-50%,-50%) rotate(-4deg); transition: opacity .3s ease, transform .55s ease; }
.impact-card.is-sorting .flux-before > .flux-routes { opacity: .12; transform: scale(.86); }
.impact-card.is-sorting .flux-friction { opacity: 0; transform: translate(-50%,-50%) scale(.5); }
.impact-card.is-sorting .flux-persona { left: 50%; top: 47%; width: 38%; transform: translate(-50%,-50%) scale(.82); }
.impact-card.is-sorting .persona-id { opacity: 0; transform: translateY(18px) scale(.9); }
.impact-card.is-sorting .persona-tabs { border-color: transparent; background: transparent; box-shadow: none; }
.impact-card.is-sorting .persona-tab { box-shadow: 0 14px 30px rgba(0,32,240,.16); transform: translateY(calc(var(--n) * -27px)) rotate(0deg) scale(.96); }
.impact-card.is-sorting .persona-tab em { opacity: 0; }
.flux-after > .flux-routes { z-index: 0; stroke: var(--blue); stroke-width: 2; stroke-dasharray: 250; stroke-dashoffset: 250; }
.impact-card.is-after .flux-after > .flux-routes { stroke-dashoffset: 0; }
.unified-app { position: absolute; z-index: 2; left: 50%; top: 49%; width: 43%; min-height: 238px; overflow: hidden; border: 1px solid rgba(var(--blue-rgb),.55); border-radius: 16px; background: rgba(255,255,255,.97); box-shadow: 0 24px 55px rgba(var(--blue-rgb),.18),0 0 0 8px rgba(var(--blue-rgb),.05); opacity: 0; transform: translate(-50%,-50%) scale(.76); transition: opacity .32s ease, transform .72s cubic-bezier(.16,1,.3,1); }
.impact-card.is-after .unified-app { opacity: 1; transform: translate(-50%,-50%) scale(1); }
.unified-app-head { min-height: 58px; padding: 10px 14px; display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; column-gap: 10px; color: white; background: var(--blue); }
.unified-app-head > svg { width: 32px; height: 32px; color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); }
.unified-app-head > span { min-width: 0; display: grid; gap: 3px; }
.unified-app-head b { align-self: end; font-size: .66rem; letter-spacing: .08em; }
.unified-app-head small { color: rgba(255,255,255,.72); font-size: .48rem; }
.unified-app-head > i { padding: 4px 6px; border: 1px solid rgba(255,255,255,.42); border-radius: 999px; font-size: .42rem; font-weight: 850; font-style: normal; letter-spacing: .07em; white-space: nowrap; }
.unified-sources { padding: 13px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.unified-sources span { min-width: 0; padding: 6px 4px; display: grid; place-items: center; gap: 3px; border: 1px solid rgba(10,13,18,.1); border-radius: 8px; color: var(--muted); background: #f7f8fa; font-size: .43rem; font-weight: 750; }
.unified-sources svg { width: 21px; height: 21px; padding: 3px; color: var(--blue); background: transparent; }
.unified-database { margin: 0 13px 13px; padding: 9px 11px; display: grid; grid-template-columns: 28px 1fr; grid-template-rows: auto auto; align-items: center; column-gap: 8px; border-radius: 9px; color: var(--ink); background: var(--accent-surface-soft); box-shadow: var(--accent-shadow); }
.unified-database svg { grid-row: 1 / 3; width: 24px; height: 24px; padding: 2px; color: var(--ink); background: transparent; }
.unified-database b { font-size: .58rem; letter-spacing: .07em; }
.unified-database small { font-size: .46rem; }
.user-view { position: absolute; z-index: 3; width: 23%; min-height: 78px; padding: 9px 10px; display: grid; gap: 5px; border: 1px solid rgba(10,13,18,.18); border-radius: 11px; background: rgba(255,255,255,.97); box-shadow: 0 12px 28px rgba(10,13,18,.12); opacity: 0; transform: translateY(15px) scale(.9); transition: opacity .35s ease, transform .65s cubic-bezier(.16,1,.3,1); }
.impact-card.is-after .user-view { opacity: 1; transform: none; }
.view-head { min-width: 0; display: flex; align-items: center; gap: 6px; }
.user-view .view-head svg { width: 22px; height: 22px; flex: 0 0 22px; padding: 4px; color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); }
.user-view b { overflow: hidden; font-size: .55rem; text-overflow: ellipsis; white-space: nowrap; }
.user-view small { color: var(--muted); font-size: .44rem; }
.user-view i { width: 88%; height: 4px; border-radius: 99px; background: var(--blue); }
.user-view i:nth-of-type(2) { width: 62%; background: rgba(0,32,240,.2); }
.view-sales { left: 3%; top: 8%; transition-delay: .18s; }
.view-production { right: 3%; top: 8%; transition-delay: .27s; }
.view-direction { left: 50%; bottom: 3%; transform: translateX(-50%) translateY(15px) scale(.9); transition-delay: .36s; }
.impact-card.is-after .view-direction { transform: translateX(-50%); }
.shared-data-label { position: absolute; z-index: 4; left: 50%; top: 2%; width: max-content; height: auto; padding: 5px 9px; display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; color: white; background: var(--ink); font-size: .44rem; font-weight: 900; letter-spacing: .08em; opacity: 0; transform: translateX(-50%) translateY(-8px); transition: opacity .3s .45s ease, transform .45s .45s ease; }
.shared-data-label svg { width: 13px; height: 13px; flex: 0 0 13px; fill: none; stroke: var(--yellow); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.impact-card.is-after .shared-data-label { opacity: 1; transform: translateX(-50%); }
.diagram-node { --x: 50%; --y: 50%; position: absolute; left: var(--x); top: var(--y); min-width: 86px; padding: 10px 11px; display: grid; gap: 3px; border: 1px solid rgba(10,13,18,.5); background: rgba(255,255,255,.94); box-shadow: 5px 6px 0 rgba(10,13,18,.08); transform: translate(-50%,-50%) rotate(var(--r,0deg)); transition: transform .65s cubic-bezier(.16,1,.3,1), opacity .35s ease; transition-delay: calc(var(--i,0) * 45ms); }
.impact-before .diagram-node:nth-of-type(2n) { --r: -3deg; }
.impact-before .diagram-node:nth-of-type(3n) { --r: 4deg; }
.diagram-node b, .process-node b { font: 700 .65rem "DM Sans",sans-serif; letter-spacing: .06em; }
.diagram-node small, .process-node small { color: var(--muted); font-size: .52rem; }
.impact-after .diagram-node { opacity: 0; transform: translate(-50%,-50%) scale(.6); }
.impact-card.is-after .impact-after .diagram-node { opacity: 1; transform: translate(-50%,-50%) scale(1); }
.diagram-hub { min-width: 112px; padding: 18px 13px; border: 2px solid var(--blue); border-radius: 50%; background: var(--accent-surface); box-shadow: 0 0 0 8px rgba(var(--blue-rgb),.08),var(--accent-shadow); text-align: center; }
.dead-end { --x: 50%; --y: 50%; position: absolute; left: var(--x); top: var(--y); width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); font: 800 .8rem "DM Sans",sans-serif; transform: translate(-50%,-50%); }
.impact-result { min-height: 70px; padding: 15px 20px 17px 22px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 20px; }
.impact-result p { max-width: 650px; margin: 0; color: rgba(10,13,18,.72); font-size: .8rem; line-height: 1.5; }
.impact-result .after-copy { display: none; color: var(--ink); font-weight: 650; }
.impact-card.is-after .impact-result .before-copy { display: none; }
.impact-card.is-after .impact-result .after-copy { display: block; }
.impact-result > span { padding: 7px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .55rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.impact-card.is-after .impact-result > span { border-color: var(--blue); color: var(--blue); }
.dashboard-title { position: absolute; top: 25px; left: 5%; color: var(--blue); font-size: .58rem; font-weight: 800; letter-spacing: .12em; }
.dashboard-kpi { --x: 20%; position: absolute; top: 67px; left: var(--x); width: 18%; padding: 10px; display: grid; gap: 4px; border-top: 2px solid var(--blue); opacity: 0; background: white; transform: translateX(-50%) translateY(18px); transition: opacity .35s ease, transform .65s cubic-bezier(.16,1,.3,1); transition-delay: calc(var(--i) * 70ms); }
.impact-card.is-after .dashboard-kpi { opacity: 1; transform: translateX(-50%); }
.dashboard-kpi small { color: var(--muted); font-size: .48rem; font-weight: 800; }
.dashboard-kpi b { font: 400 clamp(1.8rem,3vw,3.2rem)/1 "Bebas Neue",Impact,sans-serif; }
.dashboard-line { position: absolute; left: 5%; right: 37%; bottom: 28px; height: 95px; display: flex; align-items: flex-end; gap: 6px; border-bottom: 1px solid var(--ink); }
.dashboard-line i { flex: 1; height: var(--h); background: var(--cyan); transform: scaleY(0); transform-origin: bottom; transition: transform .7s cubic-bezier(.16,1,.3,1); }
.dashboard-line i:nth-child(3n) { background: var(--blue); }
.impact-card.is-after .dashboard-line i { transform: scaleY(1); }
.dashboard-alert { position: absolute; right: 5%; bottom: 28px; width: 27%; min-height: 95px; padding: 14px; display: grid; align-content: center; gap: 8px; border: 1px solid rgba(10,13,18,.28); background: var(--accent-surface-soft); box-shadow: var(--accent-shadow); opacity: 0; transform: translateX(20px); transition: opacity .4s .3s ease, transform .65s .25s cubic-bezier(.16,1,.3,1); }
.impact-card.is-after .dashboard-alert { opacity: 1; transform: none; }
.dashboard-alert b { font-size: .57rem; letter-spacing: .08em; }
.dashboard-alert small { font-size: .66rem; line-height: 1.35; }

/* Visualiser — trois lectures contradictoires deviennent un cockpit partagé. */
.visualize-schematic { height: clamp(430px,38vw,475px); background: radial-gradient(circle at 52% 42%,rgba(88,217,244,.15),transparent 33%),linear-gradient(rgba(var(--blue-rgb),.04) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--blue-rgb),.04) 1px,transparent 1px),#f2f5f9; background-size: auto,24px 24px,24px 24px,auto; }
.dashboard-crosslinks { z-index: 0; stroke: rgba(var(--blue-rgb),.42) !important; stroke-width: 2.2 !important; stroke-dasharray: 6 7 !important; filter: drop-shadow(0 0 3px rgba(88,217,244,.64)); animation: dashboardRoute 2.1s linear infinite; transition: opacity .35s ease, transform .9s cubic-bezier(.16,1,.3,1); }
@keyframes dashboardRoute { to { stroke-dashoffset: -52; } }
.fragment-dashboard { position: absolute; z-index: calc(2 + var(--i)); width: 43%; min-height: 205px; overflow: hidden; border: 1px solid rgba(10,13,18,.24); border-radius: 14px; background: rgba(255,255,255,.97); box-shadow: 0 20px 45px rgba(21,36,69,.17); transform-origin: center; transition: left .9s cubic-bezier(.16,1,.3,1),top .9s cubic-bezier(.16,1,.3,1),width .9s cubic-bezier(.16,1,.3,1),opacity .35s ease,transform .9s cubic-bezier(.16,1,.3,1),filter .5s ease; transition-delay: calc(var(--i) * 80ms); }
.fragment-sales { left: 3%; top: 5%; transform: rotate(-1.4deg); }
.fragment-production { left: 29%; top: 43%; transform: rotate(.8deg); }
.fragment-direction { right: 3%; top: 8%; transform: rotate(1.6deg); }
.fragment-dashboard > header { min-height: 49px; padding: 7px 9px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 8px; border-bottom: 1px solid rgba(10,13,18,.1); background: #f8f9fb; }
.fragment-dashboard > header > span:nth-child(2) { min-width: 0; display: grid; gap: 2px; }
.fragment-dashboard > header b { overflow: hidden; font-size: .57rem; letter-spacing: .045em; text-overflow: ellipsis; white-space: nowrap; }
.fragment-dashboard > header small { color: var(--muted); font-size: .43rem; }
.fragment-dashboard > header em { padding: 4px 6px; border-radius: 999px; color: #a23d22; background: #ffeadf; font-size: .37rem; font-weight: 900; font-style: normal; letter-spacing: .04em; white-space: nowrap; }
.fragment-app-icon { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 8px; }
.fragment-app-icon svg { width: 31px; height: 31px; padding: 7px; border-radius: 8px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.fragment-kpis { padding: 10px 9px 7px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
.fragment-kpis > span { min-width: 0; padding: 7px; display: grid; gap: 3px; border: 1px solid rgba(10,13,18,.1); border-radius: 7px; background: #fff; }
.fragment-kpis small { overflow: hidden; color: var(--muted); font-size: .36rem; font-weight: 850; letter-spacing: .04em; text-overflow: ellipsis; white-space: nowrap; }
.fragment-kpis b { font: 400 clamp(1.05rem,1.6vw,1.45rem)/1 "Bebas Neue",Impact,sans-serif; white-space: nowrap; }
.fragment-kpis .empty { color: #a23d22; background: #fff1ea; }
.fragment-chart { height: 53px; margin: 0 10px; display: flex; align-items: flex-end; gap: 5px; border-bottom: 1px solid rgba(10,13,18,.18); }
.fragment-chart i { flex: 1; height: 30%; border-radius: 2px 2px 0 0; background: var(--cyan); }
.fragment-chart i:nth-child(2) { height: 52%; }.fragment-chart i:nth-child(3) { height: 44%; }.fragment-chart i:nth-child(4) { height: 72%; background: var(--blue); }.fragment-chart i:nth-child(5) { height: 61%; }.fragment-chart i:nth-child(6) { height: 85%; background: var(--blue); }
.fragment-progress { min-height: 53px; padding: 7px 10px; display: grid; align-content: center; gap: 6px; }
.fragment-progress > span { height: 6px; overflow: hidden; border-radius: 99px; background: #e7eaf0; }
.fragment-progress i { display: block; width: var(--w); height: 100%; border-radius: inherit; background: var(--blue); }
.fragment-progress > span:nth-child(2) i { background: var(--cyan); }.fragment-progress > span:nth-child(3) i { background: var(--yellow); }
.fragment-donut { height: 53px; padding: 3px 10px; display: flex; align-items: center; gap: 8px; }
.fragment-donut > i { width: 42px; height: 42px; border-radius: 50%; background: conic-gradient(var(--blue) 0 64%,#e1e5ec 64%); mask: radial-gradient(circle,#0000 48%,#000 50%); }
.fragment-donut span { display: grid; }.fragment-donut b { font: 400 1.35rem/1 "Bebas Neue",Impact,sans-serif; }.fragment-donut small { color: var(--muted); font-size: .36rem; font-weight: 850; }
.fragment-dashboard > footer { min-height: 27px; padding: 5px 9px; display: flex; align-items: center; gap: 6px; color: #8b3a26; background: #fff3e9; font-size: .39rem; font-weight: 800; }
.fragment-dashboard > footer i { width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; background: #f46c45; box-shadow: 0 0 0 3px rgba(244,108,69,.15); }
.dashboard-conflict { position: absolute; z-index: 8; padding: 6px 9px; border: 1px solid #e66948; border-radius: 999px; color: #7d2b18; background: rgba(255,240,232,.96); box-shadow: 0 7px 18px rgba(124,47,24,.13); font-size: .42rem; font-weight: 900; letter-spacing: .05em; transform: translate(-50%,-50%); transition: opacity .3s ease,transform .55s ease; }
.dashboard-conflict b { color: #e3401b; font-size: .65rem; }
.conflict-ca { left: 50%; top: 24%; }.conflict-projects { left: 54%; top: 68%; }.conflict-missing { left: 78%; top: 90%; }
.impact-card.is-dashboard-merging .dashboard-crosslinks { opacity: .08; transform: scale(.78); }
.impact-card.is-dashboard-merging .fragment-dashboard { left: 50%; top: 50%; right: auto; width: 52%; filter: saturate(.5); transform: translate(-50%,-50%) rotate(0deg) scale(.82); }
.impact-card.is-dashboard-merging .fragment-dashboard > * { opacity: calc(1 - var(--i) * .22); }
.impact-card.is-dashboard-merging .dashboard-conflict { opacity: 0; transform: translate(-50%,-50%) scale(.5); }

.unified-cockpit { padding: 18px; }
.cockpit-shell { width: 100%; height: 100%; overflow: hidden; border: 1px solid rgba(0,32,240,.42); border-radius: 17px; background: rgba(255,255,255,.98); box-shadow: 0 27px 65px rgba(0,32,240,.16),0 0 0 7px rgba(0,32,240,.04); transform: scale(.82) translateY(18px); transition: transform .8s cubic-bezier(.16,1,.3,1); }
.impact-card.is-after .cockpit-shell { transform: none; }
.cockpit-head { min-height: 57px; padding: 9px 14px; display: flex; justify-content: space-between; align-items: center; color: white; background: var(--blue); }
.cockpit-brand { display: flex; align-items: center; gap: 9px; }.cockpit-brand > span { display: grid; gap: 2px; }
.cockpit-brand svg { width: 34px; height: 34px; padding: 7px; border-radius: 9px; color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); fill: none; stroke: currentColor; stroke-width: 1.8; }
.cockpit-brand b { font-size: .67rem; letter-spacing: .08em; }.cockpit-brand small { color: rgba(255,255,255,.67); font-size: .43rem; }
.cockpit-live { display: grid; grid-template-columns: 8px auto; column-gap: 6px; align-items: center; }.cockpit-live i { grid-row: 1/3; width: 8px; height: 8px; border-radius: 50%; background: #6eff9e; box-shadow: 0 0 0 0 rgba(110,255,158,.55); animation: livePulse 1.8s infinite; }.cockpit-live b { font-size: .45rem; letter-spacing: .08em; }.cockpit-live small { color: rgba(255,255,255,.62); font-size: .38rem; }
@keyframes livePulse { 65% { box-shadow: 0 0 0 7px rgba(110,255,158,0); } }
.cockpit-tabs { min-height: 39px; padding: 0 14px; display: flex; align-items: stretch; gap: 20px; border-bottom: 1px solid rgba(10,13,18,.1); color: var(--muted); font-size: .46rem; font-weight: 750; }
.cockpit-tabs > * { display: flex; align-items: center; }.cockpit-tabs b { position: relative; color: var(--blue); }.cockpit-tabs b::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--blue); }
.cockpit-content { height: calc(100% - 96px); min-height: 0; padding: 10px 12px 12px; display: grid; grid-template-columns: minmax(0,1.55fr) minmax(170px,.58fr); gap: 10px; }
.cockpit-main { min-width: 0; display: grid; grid-template-rows: auto 1fr; gap: 9px; }
.cockpit-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
.cockpit-kpis > span { min-width: 0; padding: 8px 9px; display: grid; gap: 2px; border: 1px solid rgba(10,13,18,.1); border-radius: 8px; background: #f8f9fb; }
.cockpit-kpis small { overflow: hidden; color: var(--muted); font-size: .34rem; font-weight: 850; letter-spacing: .04em; text-overflow: ellipsis; white-space: nowrap; }.cockpit-kpis b { font: 400 clamp(1.2rem,2vw,1.8rem)/1 "Bebas Neue",Impact,sans-serif; white-space: nowrap; }.cockpit-kpis em { color: #087a59; font-size: .37rem; font-weight: 800; font-style: normal; }
.cockpit-chart { min-height: 0; padding: 9px 10px 7px; display: grid; grid-template-rows: auto 1fr; border: 1px solid rgba(10,13,18,.1); border-radius: 9px; }
.cockpit-chart > header { display: flex; justify-content: space-between; align-items: start; }.cockpit-chart > header span { display: grid; gap: 2px; }.cockpit-chart > header b { font-size: .49rem; letter-spacing: .06em; }.cockpit-chart > header small,.cockpit-chart > header em { color: var(--muted); font-size: .36rem; font-style: normal; }
.cockpit-graph { position: relative; min-height: 92px; padding-top: 11px; display: flex; align-items: flex-end; gap: 5px; border-bottom: 1px solid rgba(10,13,18,.2); background: repeating-linear-gradient(to bottom,transparent 0 24%,rgba(10,13,18,.06) 25%); }
.cockpit-graph i { z-index: 1; flex: 1; height: var(--h); border-radius: 2px 2px 0 0; background: color-mix(in srgb,var(--blue) 82%,var(--cyan)); transform: scaleY(0); transform-origin: bottom; transition: transform .7s cubic-bezier(.16,1,.3,1); transition-delay: calc(var(--h) * 4ms); }.impact-card.is-after .cockpit-graph i { transform: scaleY(1); }
.graph-line { position: absolute; z-index: 2; left: 2%; right: 2%; top: 37%; height: 2px; background: var(--yellow); box-shadow: 0 0 0 1px rgba(10,13,18,.12); transform: scaleX(0); transform-origin: left; transition: transform .9s .25s cubic-bezier(.16,1,.3,1); }.impact-card.is-after .graph-line { transform: scaleX(1); }
.cockpit-feed { min-width: 0; padding: 10px; display: grid; grid-template-rows: auto 1fr auto; border-radius: 9px; color: white; background: var(--ink); }
.cockpit-feed > header { display: flex; justify-content: space-between; align-items: center; padding-bottom: 7px; border-bottom: 1px solid rgba(255,255,255,.12); }.cockpit-feed > header b { font-size: .48rem; letter-spacing: .06em; }.cockpit-feed > header span { color: var(--yellow); font-size: .36rem; }
.cockpit-feed ol { margin: 0; padding: 0; list-style: none; }.cockpit-feed li { min-height: 47px; display: grid; grid-template-columns: 7px minmax(0,1fr) auto; align-items: center; gap: 6px; border-bottom: 1px solid rgba(255,255,255,.1); opacity: 0; transform: translateY(8px); transition: opacity .35s ease,transform .55s cubic-bezier(.16,1,.3,1); }.impact-card.is-after .cockpit-feed li { opacity: 1; transform: none; }.impact-card.is-after .cockpit-feed li:nth-child(2) { transition-delay: .18s; }.impact-card.is-after .cockpit-feed li:nth-child(3) { transition-delay: .3s; }
.cockpit-feed li > i { width: 6px; height: 6px; border-radius: 50%; background: var(--cyan); }.cockpit-feed li > span { min-width: 0; display: grid; gap: 2px; }.cockpit-feed li b { overflow: hidden; font-size: .44rem; text-overflow: ellipsis; white-space: nowrap; }.cockpit-feed li small { overflow: hidden; color: rgba(255,255,255,.48); font-size: .34rem; text-overflow: ellipsis; white-space: nowrap; }.cockpit-feed li em { color: var(--yellow); font-size: .35rem; font-weight: 800; font-style: normal; white-space: nowrap; }
.cockpit-feed > footer { padding-top: 7px; display: flex; flex-wrap: wrap; gap: 4px; }.cockpit-feed > footer span { padding: 3px 4px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; color: rgba(255,255,255,.58); font-size: .29rem; font-weight: 800; letter-spacing: .04em; }

/* Accélérer — un appel d'offres de menuiserie sort de la pile et arrive prêt à valider. */
.workshop-schematic { height: clamp(485px,43vw,530px); background: radial-gradient(circle at 60% 44%,rgba(255,174,43,.17),transparent 29%),linear-gradient(rgba(var(--blue-rgb),.035) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--blue-rgb),.035) 1px,transparent 1px),#f2f4f7; background-size: auto,24px 24px,24px 24px,auto; }
.workshop-before { padding: 18px; }
.workshop-context { position: absolute; z-index: 8; left: 2.5%; right: 2.5%; top: 3%; min-height: 42px; padding: 7px 10px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgba(10,13,18,.17); }
.workshop-context > span { display: grid; gap: 2px; }.workshop-context b { font-size: .61rem; letter-spacing: .07em; }.workshop-context small { color: var(--muted); font-size: .43rem; }.workshop-context em { padding: 5px 8px; border-radius: 999px; color: #8c2c17; background: #ffe9df; font-size: .4rem; font-weight: 900; font-style: normal; letter-spacing: .045em; }
.workday-queue { position: absolute; z-index: 5; left: 2.5%; top: 16%; width: 31%; padding: 8px; border: 1px solid rgba(10,13,18,.18); border-radius: 13px; background: rgba(229,234,242,.96); box-shadow: 0 18px 38px rgba(17,31,64,.16); transition: opacity .4s ease,transform .95s cubic-bezier(.16,1,.3,1); }
.workday-queue > header { min-height: 30px; padding: 2px 3px 8px; display: flex; justify-content: space-between; align-items: center; }.workday-queue > header b { font-size: .5rem; letter-spacing: .07em; }.workday-queue > header span { padding: 3px 6px; border-radius: 999px; color: white; background: var(--ink); font-size: .37rem; font-weight: 850; }
.workday-card { min-height: 49px; margin-top: 5px; padding: 6px 7px; display: grid; grid-template-columns: 31px minmax(0,1fr) auto; align-items: center; gap: 7px; border: 1px solid rgba(10,13,18,.13); border-radius: 8px; background: white; box-shadow: 0 3px 0 rgba(10,13,18,.05); transition: opacity .4s ease,transform .8s cubic-bezier(.16,1,.3,1); transition-delay: calc(var(--i,0) * 55ms); }.workday-card.is-now { border-color: var(--blue); box-shadow: 0 0 0 2px rgba(0,32,240,.09); }.workday-card.faded { opacity: .67; }
.workday-card > i { color: var(--blue); font-size: .42rem; font-weight: 900; font-style: normal; }.workday-card > span { min-width: 0; display: grid; gap: 2px; }.workday-card b { overflow: hidden; font-size: .49rem; text-overflow: ellipsis; white-space: nowrap; }.workday-card small { overflow: hidden; color: var(--muted); font-size: .38rem; text-overflow: ellipsis; white-space: nowrap; }.workday-card > em { padding: 3px 4px; border-radius: 999px; color: #754e00; background: var(--yellow-soft); font-size: .3rem; font-weight: 900; font-style: normal; white-space: nowrap; }
.tender-folder { position: absolute; z-index: 3; left: 28%; top: 19%; width: 46%; overflow: hidden; border: 1px solid rgba(var(--blue-rgb),.42); border-radius: 15px; background: rgba(255,255,255,.98); box-shadow: 0 25px 55px rgba(var(--blue-rgb),.15),0 0 0 7px rgba(var(--blue-rgb),.035); transition: left .95s cubic-bezier(.16,1,.3,1),top .95s cubic-bezier(.16,1,.3,1),width .95s cubic-bezier(.16,1,.3,1),opacity .4s ease,transform .95s cubic-bezier(.16,1,.3,1); }
.tender-folder > header { min-height: 61px; padding: 9px 11px; display: flex; justify-content: space-between; align-items: center; color: white; background: var(--blue); }.tender-folder > header > span { min-width: 0; display: flex; align-items: center; gap: 8px; }.tender-folder > header svg { width: 32px; height: 32px; flex: 0 0 32px; padding: 6px; border-radius: 8px; color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); fill: none; stroke: currentColor; stroke-width: 1.8; }.tender-folder > header > span > span { min-width: 0; display: grid; gap: 3px; }.tender-folder > header b { overflow: hidden; font-size: .58rem; letter-spacing: .05em; text-overflow: ellipsis; white-space: nowrap; }.tender-folder > header small { overflow: hidden; color: rgba(255,255,255,.76); font-size: .42rem; text-overflow: ellipsis; white-space: nowrap; }.tender-folder > header > em { padding: 5px 7px; border: 1px solid rgba(255,255,255,.48); border-radius: 999px; font-size: .4rem; font-weight: 900; font-style: normal; white-space: nowrap; }
.tender-manual-steps { padding: 8px 9px; display: grid; gap: 5px; }.tender-manual-steps > span { min-height: 47px; padding: 6px 7px; display: grid; grid-template-columns: 24px minmax(0,1fr) auto; grid-template-rows: auto auto; align-items: center; column-gap: 7px; border: 1px solid rgba(10,13,18,.11); border-radius: 8px; background: #f8f9fb; transition: opacity .35s ease,transform .75s cubic-bezier(.16,1,.3,1); transition-delay: calc(var(--i) * 65ms); }.tender-manual-steps > span > i { grid-row: 1/3; width: 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--ink); font-size: .35rem; font-weight: 900; font-style: normal; }.tender-manual-steps b { align-self: end; font-size: .49rem; }.tender-manual-steps small { align-self: start; color: var(--muted); font-size: .37rem; }.tender-manual-steps em { grid-column: 3; grid-row: 1/3; color: #9b351e; font-size: .38rem; font-weight: 900; font-style: normal; white-space: nowrap; }
.tender-folder > footer { min-height: 34px; padding: 7px 10px; display: flex; justify-content: space-between; align-items: center; color: #7e2f1d; background: #fff0e8; font-size: .38rem; font-weight: 850; }.tender-folder > footer b { color: var(--ink); }
.parallel-work { position: absolute; z-index: 6; right: 2.5%; top: 18%; width: 27%; display: grid; gap: 10px; transition: right .95s cubic-bezier(.16,1,.3,1),top .95s cubic-bezier(.16,1,.3,1),width .95s cubic-bezier(.16,1,.3,1),opacity .4s ease,transform .95s cubic-bezier(.16,1,.3,1); }
.parallel-card { overflow: hidden; border: 1px solid rgba(10,13,18,.2); border-radius: 12px; background: rgba(255,255,255,.98); box-shadow: 0 15px 32px rgba(17,31,64,.14); }.parallel-card > header { min-height: 49px; padding: 7px 8px; display: grid; grid-template-columns: 31px minmax(0,1fr) auto; align-items: center; gap: 7px; border-bottom: 1px solid rgba(10,13,18,.1); }.parallel-card > header svg { width: 30px; height: 30px; padding: 6px; border-radius: 8px; color: var(--blue); background: var(--blue-soft); fill: none; stroke: currentColor; stroke-width: 1.8; }.parallel-card > header > span:nth-child(2) { min-width: 0; display: grid; gap: 2px; }.parallel-card > header b { font-size: .49rem; letter-spacing: .05em; }.parallel-card > header small { overflow: hidden; color: var(--muted); font-size: .37rem; text-overflow: ellipsis; white-space: nowrap; }.parallel-card > header em { width: 19px; height: 19px; display: grid; place-items: center; border-radius: 50%; color: white; background: #f05d38; font-size: .45rem; font-weight: 900; font-style: normal; }
.parallel-card p { min-height: 54px; margin: 0; padding: 10px; color: var(--muted); font-size: .43rem; line-height: 1.45; }.parallel-card > footer { padding: 6px 9px; color: #923019; background: #fff0e8; font-size: .37rem; font-weight: 850; }
.frame-icon { position: relative; width: 31px; height: 31px; display: block; border-radius: 8px; background: var(--yellow-soft); }.frame-icon i,.frame-ready i { position: absolute; left: 5px; right: 5px; bottom: 7px; height: 2px; background: var(--ink); transform-origin: left; }.frame-icon i:nth-child(1),.frame-ready i:nth-child(1) { transform: rotate(-31deg); }.frame-icon i:nth-child(2),.frame-ready i:nth-child(2) { left: 50%; transform: rotate(31deg); }.frame-icon i:nth-child(3),.frame-ready i:nth-child(3) { top: 13px; bottom: auto; }
.site-work-icon,.site-ready { position: relative; width: 31px; height: 31px; display: block; border-radius: 8px; background: var(--blue-soft); }.site-work-icon i:first-child,.site-ready i:first-child { position: absolute; left: 6px; right: 6px; bottom: 6px; height: 13px; border: 2px solid var(--blue); border-top: 0; }.site-work-icon i:last-child,.site-ready i:last-child { position: absolute; left: 5px; top: 7px; width: 21px; height: 10px; border: 2px solid var(--blue); border-radius: 12px 12px 2px 2px; }
.site-progress { min-height: 70px; padding: 13px 10px 9px; display: grid; align-content: center; gap: 8px; }.site-progress span { height: 7px; overflow: hidden; border-radius: 99px; background: #e4e8ef; }.site-progress i { display: block; width: 38%; height: 100%; background: var(--blue); }.site-progress b { color: #923019; font-size: .37rem; letter-spacing: .06em; }
.frame-sketch { position: relative; height: 54px; margin: 8px 11px; border-bottom: 1px solid rgba(10,13,18,.22); background: linear-gradient(rgba(0,32,240,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(0,32,240,.06) 1px,transparent 1px); background-size: 10px 10px; }.frame-sketch i { position: absolute; left: 16%; right: 16%; bottom: 9px; height: 2px; background: var(--blue); }.frame-sketch i:nth-child(1) { left: 16%; right: 50%; transform: rotate(-24deg); transform-origin: right; }.frame-sketch i:nth-child(2) { left: 50%; right: 16%; transform: rotate(24deg); transform-origin: left; }.frame-sketch i:nth-child(3) { left: 26%; right: 26%; bottom: 24px; }.frame-sketch i:nth-child(4) { left: 50%; right: auto; bottom: 9px; width: 2px; height: 32px; }
.buried-label { position: absolute; z-index: 9; left: 49%; bottom: 2.5%; padding: 7px 11px; border-radius: 999px; color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); font-size: .43rem; font-weight: 900; letter-spacing: .06em; transform: translateX(-50%) rotate(-1deg); transition: opacity .3s ease,transform .6s ease; }
.impact-card.is-production-assembling .workday-queue { opacity: 0; transform: translateX(-65%) scale(.8); }.impact-card.is-production-assembling .tender-folder { left: 50%; top: 50%; width: 52%; transform: translate(-50%,-50%) scale(.82); }.impact-card.is-production-assembling .tender-manual-steps > span { transform: translateY(-32px) scale(.95); }.impact-card.is-production-assembling .parallel-work { opacity: .18; transform: translateX(16%) scale(.9); }.impact-card.is-production-assembling .buried-label { opacity: 0; transform: translateX(-50%) translateY(25px) scale(.7); }

.workshop-after { padding: 14px; }
.prepared-head { position: absolute; left: 2.5%; right: 2.5%; top: 3%; min-height: 51px; padding: 7px 11px; display: flex; justify-content: space-between; align-items: center; color: white; border-radius: 11px; background: var(--blue); opacity: 0; transform: translateY(-12px); transition: opacity .35s ease,transform .6s cubic-bezier(.16,1,.3,1); }.impact-card.is-after .prepared-head { opacity: 1; transform: none; }.prepared-head > span { display: grid; gap: 2px; }.prepared-head b { font-size: .62rem; letter-spacing: .06em; }.prepared-head small { color: rgba(255,255,255,.68); font-size: .41rem; }.prepared-head em { display: flex; align-items: center; gap: 6px; font-size: .39rem; font-weight: 900; font-style: normal; letter-spacing: .05em; }.prepared-head em i { width: 7px; height: 7px; border-radius: 50%; background: #6eff9e; box-shadow: 0 0 0 0 rgba(110,255,158,.5); animation: livePulse 1.8s infinite; }
.prepared-grid { position: absolute; left: 2.5%; right: 2.5%; top: 16%; bottom: 18%; display: grid; grid-template-columns: minmax(0,1.28fr) minmax(145px,.62fr) minmax(170px,.74fr); gap: 9px; }
.prepared-work,.human-check { min-width: 0; overflow: hidden; border: 1px solid rgba(10,13,18,.14); border-radius: 12px; background: white; box-shadow: 0 15px 32px rgba(17,31,64,.11); opacity: 0; transform: translateY(18px); transition: opacity .35s ease,transform .7s cubic-bezier(.16,1,.3,1); }.impact-card.is-after .prepared-work,.impact-card.is-after .human-check { opacity: 1; transform: none; }
.prepared-work > header { min-height: 49px; padding: 7px 9px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgba(10,13,18,.1); }.prepared-work > header > span { display: flex; align-items: center; gap: 7px; }.prepared-work > header svg { width: 29px; height: 29px; padding: 6px; border-radius: 8px; color: var(--blue); background: var(--blue-soft); fill: none; stroke: currentColor; stroke-width: 1.8; }.prepared-work > header b { font-size: .51rem; letter-spacing: .06em; }.prepared-work > header em { padding: 4px 6px; border-radius: 999px; color: #087a59; background: #dff8ed; font-size: .37rem; font-weight: 900; font-style: normal; }
.prepared-items { padding: 7px; display: grid; gap: 4px; }.prepared-items article { min-height: 53px; padding: 5px 6px; display: grid; grid-template-columns: 24px minmax(0,1fr) auto; align-items: center; gap: 7px; border: 1px solid rgba(10,13,18,.09); border-radius: 7px; background: #f8f9fb; opacity: 0; transform: translateX(-12px); transition: opacity .3s ease,transform .55s cubic-bezier(.16,1,.3,1); transition-delay: calc(.12s + var(--i) * 80ms); }.impact-card.is-after .prepared-items article { opacity: 1; transform: none; }.prepared-items article > i { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; color: white; background: #087a59; font-size: .5rem; font-weight: 900; font-style: normal; }.prepared-items article > span { min-width: 0; display: grid; gap: 2px; }.prepared-items b { overflow: hidden; font-size: .46rem; text-overflow: ellipsis; white-space: nowrap; }.prepared-items small { overflow: hidden; color: var(--muted); font-size: .35rem; text-overflow: ellipsis; white-space: nowrap; }.prepared-items article > em { color: var(--blue); font-size: .34rem; font-weight: 900; font-style: normal; }
.ready-streams { display: grid; align-content: center; gap: 9px; }.ready-card { min-width: 0; min-height: 119px; padding: 10px; display: grid; grid-template-columns: 34px minmax(0,1fr); grid-template-rows: auto auto; align-content: center; gap: 7px; border: 1px solid rgba(0,32,240,.2); border-radius: 12px; background: white; box-shadow: 0 14px 30px rgba(17,31,64,.1); opacity: 0; transform: translateY(18px) scale(.94); transition: opacity .35s .25s ease,transform .7s .2s cubic-bezier(.16,1,.3,1); }.impact-card.is-after .ready-card { opacity: 1; transform: none; }.ready-card:nth-child(2) { transition-delay: .36s; }.ready-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; background: var(--blue-soft); }.ready-icon svg { width: 22px; height: 22px; color: var(--blue); fill: none; stroke: currentColor; stroke-width: 1.8; }.ready-card > span:nth-child(2) { min-width: 0; display: grid; gap: 3px; }.ready-card b { font-size: .48rem; }.ready-card small { color: var(--muted); font-size: .36rem; line-height: 1.3; }.ready-card > em { grid-column: 1/3; justify-self: start; padding: 4px 6px; border-radius: 999px; color: #075f45; background: #dff8ed; font-size: .34rem; font-weight: 900; font-style: normal; }.frame-ready { position: relative; background: var(--yellow-soft); }
.trade-time > header { padding: 2px 2px 0; color: var(--blue); font-size: .4rem; letter-spacing: .07em; }.trade-time .ready-card { border-color: rgba(var(--blue-rgb),.22); background: linear-gradient(145deg,#fff,#f2f5ff); }.trade-time .ready-card > em { color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); }
.human-check { display: grid; grid-template-rows: auto 1fr auto; transition-delay: .42s; }.human-check > header { min-height: 58px; padding: 9px; display: grid; grid-template-columns: 35px minmax(0,1fr); align-items: center; gap: 8px; color: white; background: var(--ink); }.check-avatar { width: 34px; height: 34px; display: grid; place-items: center; border: 2px solid var(--yellow); border-radius: 50%; font-size: .51rem; font-weight: 900; }.human-check > header > span:last-child { display: grid; gap: 2px; }.human-check > header b { font-size: .51rem; letter-spacing: .05em; }.human-check > header small { color: rgba(255,255,255,.72); font-size: .37rem; }.human-check ol { margin: 0; padding: 8px; display: grid; align-content: center; gap: 6px; list-style: none; }.human-check li { padding: 6px; display: grid; grid-template-columns: 20px minmax(0,1fr) auto; align-items: center; gap: 5px; border-bottom: 1px solid rgba(10,13,18,.09); font-size: .38rem; }.human-check li i { width: 19px; height: 19px; display: grid; place-items: center; border-radius: 50%; color: var(--blue); background: var(--blue-soft); font-size: .34rem; font-weight: 900; font-style: normal; }.human-check li b { color: var(--muted); font-size: .34rem; }.human-check button { margin: 0 8px 8px; padding: 9px 7px; border: 0; border-radius: 7px; color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); font-size: .39rem; font-weight: 900; }
.time-released { position: absolute; left: 2.5%; right: 2.5%; bottom: 3%; min-height: 62px; padding: 8px 16px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 15px; border: 1px solid rgba(0,32,240,.22); border-radius: 12px; color: white; background: var(--blue); opacity: 0; transform: translateY(16px); transition: opacity .35s .45s ease,transform .65s .4s cubic-bezier(.16,1,.3,1); }.impact-card.is-after .time-released { opacity: 1; transform: none; }.time-released span { display: grid; gap: 2px; }.time-released span:last-child { text-align: right; }.time-released small { color: rgba(255,255,255,.64); font-size: .36rem; font-weight: 800; letter-spacing: .06em; }.time-released b { font: 400 clamp(1.3rem,2.4vw,2.2rem)/1 "Bebas Neue",Impact,sans-serif; }.time-released span:last-child b { color: var(--yellow); }.time-released strong { color: var(--cyan); font-size: 1.4rem; }
/* Automatiser — les demandes éparses deviennent un devis dicté, contrôlé et envoyé. */
.quote-schematic { height: clamp(390px,34vw,430px); background: radial-gradient(circle at 20% 35%,rgba(255,174,43,.16),transparent 28%),linear-gradient(rgba(var(--blue-rgb),.04) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--blue-rgb),.04) 1px,transparent 1px),#f3f5f8; background-size: auto,24px 24px,24px 24px,auto; }
.quote-context,.assistant-head { position: absolute; z-index: 8; left: 2.5%; right: 2.5%; top: 3%; min-height: 49px; padding: 8px 11px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgba(10,13,18,.16); }
.quote-context > span,.assistant-head > span { display: grid; gap: 2px; }.quote-context b,.assistant-head b { font-size: var(--text-label); letter-spacing: .07em; }.quote-context small,.assistant-head small { color: var(--muted); font-size: var(--text-micro); }
.quote-context em { padding: 5px 8px; border-radius: 999px; color: #8c2c17; background: #ffe9df; font-size: var(--text-micro); font-weight: 900; font-style: normal; letter-spacing: .05em; }
.quote-dayline { position: absolute; z-index: 1; left: 4%; right: 4%; top: 19%; height: 18px; display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr auto; align-items: center; gap: 8px; color: rgba(10,13,18,.48); font-size: var(--text-micro); font-weight: 900; letter-spacing: .07em; }.quote-dayline i { height: 1px; background: linear-gradient(90deg,rgba(10,13,18,.15),rgba(10,13,18,.48)); }.quote-dayline i::after { content: ""; float: right; width: 5px; height: 5px; margin-top: -2px; border-radius: 50%; background: var(--ink); }
.quote-day-events { position: absolute; z-index: 3; left: 2.5%; right: 2.5%; top: 26%; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 6px; }
.quote-event { position: relative; min-width: 0; min-height: 91px; padding: 9px; display: grid; grid-template-columns: 27px minmax(0,1fr); grid-template-rows: auto auto 1fr auto; align-content: start; gap: 3px 7px; overflow: hidden; border: 1px solid rgba(10,13,18,.18); border-radius: 11px; background: rgba(255,255,255,.97); box-shadow: 0 10px 24px rgba(22,36,67,.1); opacity: 0; transform: translateY(-12px); animation: quoteArrival .55s calc(.18s + var(--i) * .3s) cubic-bezier(.16,1,.3,1) forwards; }.quote-event::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--blue); transform: scaleX(0); transform-origin: left; animation: quoteFill .4s calc(.38s + var(--i) * .3s) ease forwards; }.quote-event time { grid-column: 1/-1; color: var(--blue); font-size: var(--text-micro); font-weight: 950; }.quote-event > svg { grid-row: 2/4; width: 27px; height: 27px; padding: 6px; border-radius: 8px; color: var(--blue); background: var(--blue-soft); fill: none; stroke: currentColor; stroke-width: 1.8; }.quote-event > span { min-width: 0; display: grid; gap: 2px; }.quote-event b { overflow: hidden; font-size: var(--text-micro); text-overflow: ellipsis; white-space: nowrap; }.quote-event small { overflow: hidden; color: var(--muted); font-size: var(--text-micro); text-overflow: ellipsis; white-space: nowrap; }.quote-event > em { grid-column: 1/-1; justify-self: start; margin-top: 3px; padding: 3px 5px; border-radius: 999px; color: #a53b24; background: #ffe9df; font-size: calc(var(--text-micro) * .9); font-weight: 950; font-style: normal; letter-spacing: .04em; animation: waitingPulse 2.2s calc(1.8s + var(--i) * .14s) ease-in-out infinite; }
@keyframes quoteArrival { to { opacity: 1; transform: none; } } @keyframes quoteFill { to { transform: scaleX(1); } } @keyframes waitingPulse { 50% { color: white; background: #ef6648; } }
.quote-backlog { position: absolute; z-index: 4; left: 2.5%; bottom: 4%; width: 68%; min-height: 170px; padding: 10px 12px; display: grid; grid-template-columns: minmax(150px,.58fr) 1fr; gap: 12px; border: 1px solid rgba(10,13,18,.2); border-radius: 13px; background: #e7ebf1; box-shadow: 0 20px 42px rgba(20,32,57,.16); transition: opacity .35s ease,transform .75s cubic-bezier(.16,1,.3,1); }.quote-backlog > header { align-self: center; display: grid; gap: 8px; }.quote-backlog > header > span { display: grid; gap: 3px; }.quote-backlog > header b { font-size: var(--text-label); letter-spacing: .04em; }.quote-backlog > header small { max-width: 190px; color: var(--muted); font-size: var(--text-micro); line-height: 1.35; }.quote-backlog > header > em { justify-self: start; padding: 5px 7px; border-radius: 999px; color: white; background: #ef6648; font-size: var(--text-micro); font-weight: 950; font-style: normal; letter-spacing: .04em; }
.backlog-pile { position: relative; min-height: 140px; }.backlog-pile > i { position: absolute; right: 0; min-height: 48px; padding: 8px 10px; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 8px; border: 1px solid rgba(10,13,18,.18); border-radius: 8px; background: white; box-shadow: 0 7px 16px rgba(15,28,54,.13); font-style: normal; animation: backlogDrop .62s cubic-bezier(.16,1,.3,1) both; }.backlog-pile > i:nth-child(1) { z-index: 1; left: 0; top: 0; transform: rotate(-.7deg); animation-delay: 1.1s; }.backlog-pile > i:nth-child(2) { z-index: 2; left: 3%; top: 22px; transform: rotate(-.35deg); animation-delay: 1.34s; }.backlog-pile > i:nth-child(3) { z-index: 3; left: 6%; top: 44px; animation-delay: 1.58s; }.backlog-pile > i:nth-child(4) { z-index: 4; left: 9%; top: 66px; transform: rotate(.35deg); animation-delay: 1.82s; }.backlog-pile > i:nth-child(5) { z-index: 5; left: 12%; top: 88px; transform: rotate(.7deg); animation-delay: 2.06s; }.backlog-pile > i b { color: var(--blue); font-size: var(--text-micro); }.backlog-pile > i span { overflow: hidden; font-size: var(--text-micro); font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }.backlog-pile > i em { color: var(--muted); font-size: var(--text-micro); font-style: normal; text-transform: uppercase; }.backlog-pile > i:last-child { border-color: #ef6648; }.backlog-pile > i:last-child::after { content: "+ 4 demandes dessous"; position: absolute; right: 8px; bottom: -18px; color: #a53b24; font-size: var(--text-micro); font-weight: 900; }
@keyframes backlogDrop { from { opacity: 0; transform: translateY(-35px) rotate(-2deg); } }
.quote-evening { position: absolute; z-index: 5; right: 2.5%; bottom: 4%; width: 25%; min-height: 170px; padding: 12px; display: grid; align-content: center; gap: 5px; border-radius: 13px; color: white; background: var(--ink); box-shadow: 0 18px 38px rgba(10,13,18,.25); transition: opacity .35s ease,transform .75s cubic-bezier(.16,1,.3,1); }.quote-evening::before { content: "→"; position: absolute; left: -23px; top: 50%; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: white; background: #ef6648; box-shadow: 0 0 0 6px #f3f5f8; font-size: .8rem; transform: translateY(-50%); }.quote-evening time { color: var(--yellow); font: 400 2.35rem/.9 "Bebas Neue",Impact,sans-serif; }.quote-evening b { font-size: var(--text-label); }.quote-evening small { color: var(--yellow); font-size: var(--text-micro); font-weight: 900; line-height: 1.25; letter-spacing: .04em; }.quote-evening p { margin: 1px 0; color: rgba(255,255,255,.66); font-size: var(--text-micro); line-height: 1.3; }.quote-evening span { margin-top: 4px; padding-top: 7px; border-top: 1px solid rgba(255,255,255,.16); color: var(--cyan); font-size: var(--text-micro); font-weight: 900; }
.impact-card.is-quote-preparing .quote-before { opacity: .24; transform: scale(.9); }.impact-card.is-quote-preparing .quote-event { opacity: .1; transform: translateY(60px) scale(.72); }.impact-card.is-quote-preparing .quote-backlog,.impact-card.is-quote-preparing .quote-evening { opacity: 0; transform: translateY(25px) scale(.8); }
.assistant-head { color: white; border-bottom: 0; border-radius: 12px; background: var(--blue); opacity: 0; transform: translateY(-12px); transition: opacity .35s ease,transform .55s cubic-bezier(.16,1,.3,1); }.assistant-head small { color: rgba(255,255,255,.7); }.assistant-head em { display: flex; align-items: center; gap: 7px; font-size: var(--text-micro); font-weight: 900; font-style: normal; letter-spacing: .05em; }.assistant-head em i { width: 8px; height: 8px; border-radius: 50%; background: #6eff9e; box-shadow: 0 0 0 0 rgba(110,255,158,.6); animation: livePulse 1.8s infinite; }
.voice-capture { position: absolute; left: 2.5%; top: 22%; bottom: 18%; width: 25%; padding: 16px; display: grid; grid-template-columns: 46px 1fr; grid-template-rows: auto auto 1fr auto; align-content: center; gap: 8px 10px; border-radius: 15px; color: white; background: var(--ink); box-shadow: 0 20px 45px rgba(10,13,18,.24); opacity: 0; transform: translateX(-18px); transition: opacity .35s .08s ease,transform .65s .08s cubic-bezier(.16,1,.3,1); }.voice-capture > svg { grid-row: 1/3; width: 45px; height: 45px; padding: 11px; border-radius: 50%; color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); fill: none; stroke: currentColor; stroke-width: 1.8; }.voice-capture > small { align-self: end; color: var(--yellow); font-size: var(--text-micro); font-weight: 900; letter-spacing: .07em; }.voice-capture p { grid-column: 1/-1; margin: 6px 0 0; color: rgba(255,255,255,.78); font-size: var(--text-small); line-height: 1.45; }.voice-capture > em { grid-column: 2; justify-self: end; color: var(--cyan); font-size: var(--text-micro); font-weight: 900; font-style: normal; }
.voice-wave { grid-column: 1/-1; height: 44px; display: flex; align-items: center; justify-content: center; gap: 5px; }.voice-wave i { width: 4px; height: 22%; border-radius: 99px; background: var(--cyan); animation: voiceWave .85s ease-in-out infinite alternate; animation-delay: calc(var(--n,0) * -90ms); }.voice-wave i:nth-child(2) { --n:1;height:50%; }.voice-wave i:nth-child(3) { --n:2;height:85%; }.voice-wave i:nth-child(4) { --n:3;height:42%; }.voice-wave i:nth-child(5) { --n:4;height:100%; }.voice-wave i:nth-child(6) { --n:5;height:64%; }.voice-wave i:nth-child(7) { --n:6;height:32%; }.voice-wave i:nth-child(8) { --n:7;height:72%; }.voice-wave i:nth-child(9) { --n:8;height:38%; }
@keyframes voiceWave { to { transform: scaleY(.35); opacity: .45; } }
.quote-flow { position: absolute; left: 30%; right: 2.5%; top: 22%; bottom: 18%; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.quote-step { position: relative; min-width: 0; padding: 12px 10px; display: grid; grid-template-rows: auto auto 1fr auto; align-content: center; gap: 7px; border: 1px solid rgba(10,13,18,.14); border-radius: 13px; background: white; box-shadow: 0 14px 30px rgba(20,34,65,.11); opacity: 0; transform: translateY(20px) scale(.94); transition: opacity .3s ease,transform .65s cubic-bezier(.16,1,.3,1); transition-delay: calc(.16s + var(--i) * 110ms); }.quote-step:not(:last-child)::after { content: "→"; position: absolute; z-index: 3; right: -13px; top: 50%; width: 18px; height: 18px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--blue); font-size: .65rem; transform: translateY(-50%); }.quote-step > span { color: var(--blue); font-size: var(--text-micro); font-weight: 900; }.quote-step b { font-size: var(--text-label); letter-spacing: .05em; }.quote-step small { color: var(--muted); font-size: var(--text-micro); line-height: 1.4; }.quote-step em { justify-self: start; padding: 4px 6px; border-radius: 999px; color: #087a59; background: #dff8ed; font-size: var(--text-micro); font-weight: 900; font-style: normal; }.quote-validation { border-color: rgba(255,174,43,.6); background: var(--accent-surface-soft); }.quote-validation em { color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); }.quote-sent { color: white; border-color: var(--blue); background: var(--blue); }.quote-sent span,.quote-sent small { color: rgba(255,255,255,.7); }.quote-sent em { color: var(--ink); background: var(--cyan); }
.quote-speed { position: absolute; left: 2.5%; right: 2.5%; bottom: 3%; min-height: 57px; padding: 8px 16px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 15px; border-radius: 12px; color: white; background: var(--blue); opacity: 0; transform: translateY(15px); transition: opacity .35s .55s ease,transform .6s .5s cubic-bezier(.16,1,.3,1); }.quote-speed span { display: grid; gap: 2px; }.quote-speed span:last-child { text-align: right; }.quote-speed small { color: rgba(255,255,255,.65); font-size: var(--text-micro); font-weight: 850; letter-spacing: .06em; }.quote-speed b { font: 400 clamp(1.35rem,2.4vw,2rem)/1 "Bebas Neue",Impact,sans-serif; }.quote-speed span:last-child b { color: var(--yellow); }.quote-speed strong { color: var(--cyan); font-size: 1.3rem; }
.impact-card.is-after .assistant-head,.impact-card.is-after .voice-capture,.impact-card.is-after .quote-speed { opacity: 1; transform: none; }.impact-card.is-after .quote-step { opacity: 1; transform: none; }

.ai-place { scroll-margin-top: 62px; padding: clamp(95px,12vh,150px) clamp(20px,5vw,82px); color: var(--ink); background: #f3f5f8; }
.ai-intro { width: min(var(--max),100%); margin: 0 auto; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(300px,.65fr); align-items: end; gap: clamp(40px,8vw,130px); }
.ai-intro .ai-eyebrow { width: max-content; margin-bottom: 18px; color: #f47b2d; font: 700 clamp(2.7rem,4.3vw,4.8rem)/.76 "Caveat","Segoe Print",cursive; letter-spacing: -.025em; text-transform: none; text-shadow: 0 8px 22px rgba(244,123,45,.18); transform: rotate(-2deg); }
.ai-intro h2 { margin: 0; font: 400 clamp(5rem,10vw,11rem)/.76 "Bebas Neue",Impact,sans-serif; letter-spacing: -.015em; text-transform: uppercase; }
.ai-intro > p { max-width: 520px; margin: 0 0 8px; color: var(--muted); font-size: clamp(1rem,1.35vw,1.28rem); line-height: 1.55; }
.ai-duo { width: min(var(--max),100%); margin: clamp(48px,7vw,90px) auto 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.ai-story { position: relative; min-height: 650px; padding: clamp(30px,4vw,58px); overflow: hidden; display: flex; flex-direction: column; border: 1px solid var(--ink); isolation: isolate; }
.ai-story::before { content: ""; position: absolute; z-index: -1; inset: auto -18% -30% 22%; height: 70%; border-radius: 50%; background: radial-gradient(circle at 38% 38%,rgba(255,249,168,.92),rgba(255,177,59,.7) 32%,rgba(244,123,45,.1) 65%,transparent 72%); filter: blur(2px); opacity: .68; transform: scale(.88); transition: opacity .6s ease,transform 1s cubic-bezier(.16,1,.3,1); }
.ai-story:hover::before { opacity: 1; transform: scale(1.12) translate(-3%,-3%); }
.ai-story-build { color: white; background: var(--blue); }
.ai-story-use { background: white; }
.ai-story > header { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 18px; border-bottom: 1px solid currentColor; }
.ai-story > header span,.ai-story > header small { font-size: var(--text-label); font-weight: 850; letter-spacing: .1em; }
.ai-story-build > header { border-color: rgba(255,255,255,.3); }.ai-story-build > header span { color: var(--cyan); }.ai-story-build > header small { color: rgba(255,255,255,.68); }
.ai-story-use > header span,.ai-story-use > header small { color: #ba5d20; }
.ai-story h3 { max-width: 700px; margin: clamp(38px,5vw,70px) 0 22px; font: 400 clamp(3.2rem,5.5vw,6.5rem)/.8 "Bebas Neue",Impact,sans-serif; letter-spacing: -.01em; text-transform: uppercase; }
.ai-story > p { max-width: 670px; margin: 0; font-size: clamp(.95rem,1.1vw,1.08rem); line-height: 1.62; }
.ai-story-build > p { color: rgba(255,255,255,.78); }.ai-story-use > p { color: var(--muted); }
.ai-build-flow { margin-top: auto; padding-top: 55px; display: grid; grid-template-columns: repeat(3,1fr); }
.ai-build-flow span { position: relative; padding: 22px 14px 18px; display: grid; gap: 4px; border-top: 1px solid rgba(255,255,255,.5); }
.ai-build-flow span::before { content: ""; position: absolute; top: -5px; left: 14px; width: 9px; height: 9px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 0 6px rgba(88,217,244,.16); }
.ai-build-flow i { color: var(--cyan); font-size: var(--text-micro); font-weight: 900; font-style: normal; }.ai-build-flow b { font-size: var(--text-small); }.ai-build-flow small { color: rgba(255,255,255,.62); font-size: var(--text-micro); }
.ai-story-outcome { margin-top: 12px; padding: 16px; color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); font-size: var(--text-small); text-align: center; }
.ai-system { margin-top: auto; padding-top: 34px; display: grid; gap: 7px; }
.ai-system > div { position: relative; padding: 16px 18px; display: grid; grid-template-columns: minmax(110px,.48fr) 1fr; align-items: center; gap: 5px 18px; border: 1px solid var(--ink); background: white; transition: transform .55s cubic-bezier(.16,1,.3,1),box-shadow .35s ease; }
.ai-system > div:hover { z-index: 2; transform: translateX(-12px); box-shadow: 14px 14px 0 rgba(var(--blue-rgb),.11); }
.ai-system span { grid-row: 1/3; font-size: var(--text-label); font-weight: 900; letter-spacing: .08em; }.ai-system b { font-size: var(--text-small); }.ai-system small { color: var(--muted); font-size: var(--text-micro); line-height: 1.45; }
.ai-assistant-layer { color: white; border-color: var(--blue) !important; background: var(--blue) !important; }.ai-assistant-layer small { color: rgba(255,255,255,.7); }.ai-assistant-layer span { color: var(--cyan); }
.ai-human-layer { background: var(--accent-surface-soft) !important; }.ai-human-layer span { color: #a4511b; }
.ai-base-layer { box-shadow: inset 0 -6px 0 var(--ink); }.ai-base-layer span { color: var(--blue); }
.ai-plain-language { width: min(var(--max),100%); margin: 9px auto 0; padding: clamp(24px,3vw,40px); display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) minmax(220px,.62fr); align-items: center; gap: clamp(22px,3vw,50px); color: white; background: var(--ink); }
.ai-plain-language > div { display: grid; gap: 8px; }.ai-plain-language small { color: var(--cyan); font-size: var(--text-label); font-weight: 900; letter-spacing: .1em; }.ai-plain-language b { font-size: var(--text-small); }.ai-plain-language p { margin: 0; color: rgba(255,255,255,.62); font-size: var(--text-micro); line-height: 1.5; }.ai-plain-language > i { color: #f69b38; font-size: 2rem; font-style: normal; }.ai-plain-language > strong { align-self: stretch; padding: 18px; display: grid; place-content: center; gap: 7px; color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); font: 400 clamp(1.8rem,2.7vw,3rem)/.88 "Bebas Neue",Impact,sans-serif; text-transform: uppercase; }.ai-plain-language > strong small { color: #8b451b; font: 900 var(--text-micro) "DM Sans",sans-serif; }

.client-world { min-height: 100svh; padding: clamp(84px, 10vh, 130px) clamp(18px, 3vw, 48px) 34px; display: grid; grid-template-rows: auto minmax(470px, 1fr) auto; gap: 28px; background: var(--blue-soft); }
.section-intro { width: min(var(--max), 100%); margin: 0 auto; display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 50px; }
.section-intro .example-eyebrow { width: max-content; margin-bottom: 14px; color: #f47b2d; font: 700 clamp(2rem,3vw,3.2rem)/.76 "Caveat","Segoe Print",cursive; letter-spacing: -.025em; text-transform: none; text-shadow: 0 8px 22px rgba(244,123,45,.18); transform: rotate(-2deg); }
.section-intro h2, .directions-title h2, .contact-intro h2 { margin: 8px 0 0; font: 400 clamp(3.7rem, 7vw, 8rem)/.8 "Bebas Neue", Impact, sans-serif; letter-spacing: -.012em; text-transform: uppercase; }
.section-intro > p { max-width: 440px; margin: 0 0 5px auto; color: var(--muted); line-height: 1.55; }
.client-deck { width: min(var(--max), 100%); min-height: 0; margin: 0 auto; display: flex; gap: 7px; }
.client-card { position: relative; flex: 1 1 0; min-width: 0; overflow: hidden; border: 1px solid var(--ink); background: white; transition: flex .65s cubic-bezier(.16,1,.3,1), filter .3s ease, opacity .3s ease; isolation: isolate; }
.client-hit { position: absolute; inset: 0; z-index: 6; width: 100%; border: 0; background: transparent; cursor: pointer; }
.client-image { position: absolute; inset: 0; overflow: hidden; background: var(--ink); transition: transform .65s cubic-bezier(.16,1,.3,1), filter .35s ease; }
.client-image::before { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg,rgba(5,8,14,.34) 0%,transparent 35%,rgba(5,8,14,.16) 60%,rgba(5,8,14,.72) 100%); pointer-events: none; }
.client-image::after { content: ""; position: absolute; z-index: 1; inset: 0; opacity: .28; background: radial-gradient(circle at 72% 18%,rgba(255,194,94,.42),transparent 30%); mix-blend-mode: screen; transition: opacity .45s ease; pointer-events: none; }
.client-image > img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 50% 50%; filter: saturate(.84) contrast(1.04); transform: scale(1.025); transition: transform 1s cubic-bezier(.16,1,.3,1),filter .5s ease; }
.client-btp .client-image > img { object-position: 46% 50%; }.client-archi .client-image > img { object-position: 51% 48%; }.client-commerce .client-image > img { object-position: 50% 54%; }.client-care .client-image > img { object-position: 56% 48%; }.client-founder .client-image > img { object-position: 50% 50%; }
.client-image > span { position: absolute; z-index: 2; top: 17px; left: 17px; padding: 5px 7px; border: 1px solid rgba(255,255,255,.38); border-radius: 999px; color: white; background: rgba(8,12,20,.24); backdrop-filter: blur(8px); font: 700 .55rem "DM Sans",sans-serif; letter-spacing: .12em; }
.client-quote { position: absolute; z-index: 3; top: 14%; right: 9%; width: min(78%,230px); margin: 0; padding: 12px 14px; border: 1px solid rgba(255,255,255,.7); border-radius: 18px 18px 3px 18px; color: var(--ink); background: rgba(255,255,255,.88); box-shadow: 0 18px 45px rgba(7,11,20,.24); backdrop-filter: blur(12px); font: 650 clamp(.72rem,.9vw,.92rem)/1.25 "DM Sans",sans-serif; opacity: .94; transform: rotate(1deg); transition: transform .55s cubic-bezier(.16,1,.3,1),opacity .3s ease,background .3s ease; }
.client-quote::after { content: ""; position: absolute; right: -1px; bottom: -9px; width: 16px; height: 18px; background: linear-gradient(135deg,transparent 49%,rgba(255,255,255,.9) 51%); }
.client-summary { position: absolute; z-index: 3; inset: auto 0 0; min-height: 42%; padding: 22px 18px; display: flex; flex-direction: column; justify-content: flex-end; color: white; background: linear-gradient(transparent, rgba(8,10,16,.93)); transition: opacity .3s ease, transform .5s ease; }
.client-summary > span { font-size: .58rem; }
.client-summary h3 { margin: auto 0 7px; font: 400 clamp(1.75rem, 2.8vw, 3rem)/.88 "Bebas Neue", Impact, sans-serif; letter-spacing: -.005em; text-transform: uppercase; }
.client-summary p { margin: 0; color: rgba(255,255,255,.74); font-size: .74rem; line-height: 1.4; }
.client-shift { position: absolute; z-index: 4; inset: 0; display: flex; flex-direction: column; justify-content: center; gap: 12px; padding: 24px; background: rgba(10,13,18,.91); color: white; opacity: 0; transform: translateY(100%); transition: opacity .25s ease, transform .55s cubic-bezier(.16,1,.3,1); }
.client-shift small { color: var(--cyan); font-size: .55rem; letter-spacing: .13em; }
.client-shift strong { font: 400 clamp(1.35rem, 2vw, 2rem)/.95 "Bebas Neue", Impact, sans-serif; letter-spacing: 0; text-transform: uppercase; }
.client-shift i { font-style: normal; font-size: 1.5rem; }
.client-card:not(.is-dismissed):hover .client-shift, .client-card:has(.client-hit:focus-visible) .client-shift { opacity: 1; transform: none; }
.client-card:not(.is-dismissed):hover .client-image > img, .client-card:has(.client-hit:focus-visible) .client-image > img { filter: saturate(1) contrast(1.08); transform: scale(1.09); }
.client-card:not(.is-dismissed):hover .client-image::after, .client-card:has(.client-hit:focus-visible) .client-image::after { opacity: .55; }
.client-card:not(.is-dismissed):hover .client-quote, .client-card:has(.client-hit:focus-visible) .client-quote { opacity: 1; background: white; transform: translateY(-4px) rotate(-1deg) scale(1.03); }
.client-detail { position: absolute; z-index: 7; inset: 0 0 0 45%; display: grid; grid-template-columns: repeat(3,1fr); grid-template-rows: 1fr auto; gap: 0; padding: 30px; background: white; opacity: 0; transform: translateX(105%); pointer-events: none; transition: opacity .25s ease, transform .55s cubic-bezier(.16,1,.3,1); }
.client-close { position: absolute; z-index: 2; top: 14px; right: 14px; width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: white; box-shadow: 0 8px 24px rgba(10,13,18,.1); font: 500 1.35rem/1 "DM Sans",sans-serif; cursor: pointer; transition: color .2s ease, background .2s ease, transform .2s ease; }
.client-close:hover, .client-close:focus-visible { color: white; background: var(--blue); transform: rotate(6deg) scale(1.06); }
.client-detail div { padding: 22px; border: solid var(--line); border-width: 1px 1px 1px 0; }
.client-detail div:first-child { border-left-width: 1px; }
.client-detail small { color: var(--blue); font-size: .56rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.client-detail p { color: var(--muted); font-size: .8rem; line-height: 1.5; }
.client-detail a { grid-column: 1/-1; align-self: end; display: flex; justify-content: flex-end; padding-top: 20px; color: var(--blue); text-decoration: none; font-size: .72rem; font-weight: 800; }
.client-deck.has-open-card .client-card:not(.is-open) { flex: 0 0 54px; opacity: .68; }
.client-deck.has-open-card .client-card:not(.is-open) .client-image, .client-deck.has-open-card .client-card:not(.is-open) .client-shift, .client-deck.has-open-card .client-card:not(.is-open) .client-summary p { opacity: 0; }
.client-deck.has-open-card .client-card:not(.is-open) .client-summary { inset: 0; min-height: 100%; padding: 15px 10px; background: var(--ink); writing-mode: vertical-rl; transform: rotate(180deg); justify-content: flex-start; }
.client-card.is-open { flex: 1 1 100%; }
.client-card.is-open .client-image { right: 55%; }
.client-card.is-open .client-summary, .client-card.is-open .client-shift { opacity: 0; pointer-events: none; }
.client-card.is-open .client-detail { opacity: 1; transform: none; pointer-events: auto; }
.deck-instruction { width: min(var(--max),100%); margin: 0 auto; color: var(--muted); font-size: .62rem; text-align: right; text-transform: uppercase; letter-spacing: .09em; }
.deck-instruction span { color: var(--ink); font-weight: 800; }

.directions { min-height: 100svh; padding: clamp(86px,9vh,120px) clamp(18px,3vw,48px) 48px; display: grid; grid-template-rows: auto 1fr; gap: 28px; overflow: hidden; color: white; background: radial-gradient(circle at 78% 12%,rgba(53,104,245,.25),transparent 27%),radial-gradient(circle at 12% 88%,rgba(255,174,43,.12),transparent 25%),var(--ink); }
.directions-title { width: min(var(--max),100%); margin: 0 auto; display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 60px; }
.directions-title .eyebrow { color: #ff9b44; }
.directions-title h2 { margin: 8px 0 0; font: 400 clamp(4rem,7vw,8rem)/.8 "Bebas Neue",Impact,sans-serif; letter-spacing: -.012em; text-transform: uppercase; }
.directions-title > p { max-width: 560px; margin: 0 0 5px auto; color: rgba(255,255,255,.68); font-size: var(--text-body); line-height: 1.55; }
.directions-board { width: min(var(--max),100%); min-height: 0; margin: 0 auto; display: grid; grid-template-rows: auto 1fr; overflow: hidden; border: 1px solid rgba(255,255,255,.22); border-radius: 28px; background: #f4f1ea; box-shadow: 0 36px 100px rgba(0,0,0,.34); }
.direction-nav { position: relative; z-index: 5; display: grid; grid-template-columns: repeat(5,1fr); padding: 8px; gap: 6px; border-bottom: 1px solid rgba(10,13,18,.12); background: rgba(255,255,255,.9); }
.direction-nav button { min-width: 0; min-height: 72px; padding: 10px 14px; display: grid; grid-template-columns: 27px minmax(0,1fr); grid-template-rows: auto auto; align-content: center; gap: 2px 8px; border: 0; border-radius: 18px; color: rgba(10,13,18,.5); background: transparent; text-align: left; cursor: pointer; transition: color .25s ease,background .35s ease,box-shadow .35s ease,transform .35s ease; }
.direction-nav button span { grid-row: 1/3; align-self: center; color: rgba(10,13,18,.38); font-size: var(--text-micro); font-weight: 900; }.direction-nav button strong { overflow: hidden; font-size: var(--text-small); text-overflow: ellipsis; white-space: nowrap; }.direction-nav button small { overflow: hidden; font-size: var(--text-micro); text-overflow: ellipsis; white-space: nowrap; }.direction-nav button:hover { color: var(--ink); background: var(--blue-soft); transform: translateY(-2px); }.direction-nav button.is-active { color: white; background: var(--blue); box-shadow: 0 12px 30px rgba(var(--blue-rgb),.28); }.direction-nav button.is-active span,.direction-nav button.is-active small { color: rgba(255,255,255,.72); }
.direction-panels { min-width: 0; min-height: 0; }
.direction-panel { min-height: 585px; display: grid; grid-template-columns: minmax(0,1.58fr) minmax(280px,.62fr); color: var(--ink); animation: solutionReveal .65s cubic-bezier(.16,1,.3,1); }
.direction-panel[hidden] { display: none; }
@keyframes solutionReveal { from { opacity: 0; transform: translateY(16px) scale(.985); } }
.solution-screen { position: relative; min-width: 0; margin: 18px 0 18px 18px; overflow: hidden; border: 1px solid rgba(10,13,18,.14); border-radius: 21px; background: #e9edf0; box-shadow: 0 24px 55px rgba(30,39,61,.16); }
.solution-capture { align-self: center; aspect-ratio: 16 / 10; background: #f5f4fa; }
.solution-capture img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: left top; transition: transform .8s cubic-bezier(.16,1,.3,1), filter .4s ease; }
.direction-panel.is-active .solution-capture img { animation: solutionCaptureIn .9s cubic-bezier(.16,1,.3,1) both; }
.solution-capture:hover img { transform: scale(1.012); filter: contrast(1.02) saturate(1.02); }
.solution-capture figcaption { position: absolute; left: 16px; bottom: 16px; margin: 0; padding: 9px 13px; border: 1px solid rgba(255,255,255,.54); border-radius: 999px; color: white; background: rgba(20,23,39,.58); box-shadow: 0 8px 26px rgba(19,23,40,.2); backdrop-filter: blur(14px) saturate(1.25); font-size: var(--text-micro); font-weight: 850; letter-spacing: .04em; }
@keyframes solutionCaptureIn { from { opacity: .35; transform: scale(1.035); filter: blur(5px) saturate(.8); } }
.solution-appbar { height: 62px; padding: 10px 15px; display: grid; grid-template-columns: 36px 1fr auto; align-items: center; gap: 9px; color: white; background: #171c25; }.solution-mark { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 11px; color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); }.solution-mark svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; }.solution-appbar > span:nth-child(2) { display: grid; gap: 2px; }.solution-appbar b { font-size: var(--text-label); letter-spacing: .05em; }.solution-appbar small { color: rgba(255,255,255,.56); font-size: var(--text-micro); }.solution-appbar > em { display: flex; align-items: center; gap: 6px; color: rgba(255,255,255,.64); font-size: var(--text-micro); font-weight: 850; font-style: normal; letter-spacing: .04em; }.solution-appbar > em > i { width: 7px; height: 7px; border-radius: 50%; background: #68e8a7; box-shadow: 0 0 0 5px rgba(104,232,167,.12); }
.solution-workspace { height: calc(100% - 62px); min-height: 505px; display: grid; grid-template-columns: 56px 1fr; }.solution-rail { padding: 14px 9px; display: flex; flex-direction: column; align-items: center; gap: 9px; background: #202632; }.solution-rail > i { width: 37px; height: 37px; display: grid; place-items: center; border-radius: 10px; color: rgba(255,255,255,.48); font-style: normal; }.solution-rail > i.is-current { color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); }.solution-rail svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.solution-view { min-width: 0; padding: clamp(16px,2vw,25px); overflow: hidden; background: radial-gradient(circle at 90% 4%,rgba(255,194,94,.2),transparent 25%),#f6f5f1; }.solution-view > header { min-height: 48px; display: flex; justify-content: space-between; align-items: center; gap: 14px; }.solution-view > header > span { display: grid; gap: 3px; }.solution-view > header small { color: var(--blue); font-size: var(--text-micro); font-weight: 900; letter-spacing: .08em; }.solution-view > header b { font-size: clamp(1rem,1.45vw,1.35rem); }.solution-view > header > em { padding: 6px 9px; border-radius: 999px; color: #086247; background: #dff8ed; font-size: var(--text-micro); font-weight: 900; font-style: normal; }.solution-view button { padding: 9px 12px; border: 0; border-radius: 9px; color: white; background: var(--blue); font-size: var(--text-micro); font-weight: 850; }
.solution-story { position: relative; min-width: 0; padding: clamp(30px,3.5vw,58px); display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; color: white; background: #111620; }.solution-story::before { content: ""; position: absolute; width: 270px; aspect-ratio: 1; right: -100px; top: -110px; border-radius: 50%; background: radial-gradient(circle at 35% 35%,#fff7b0,#ffb642 35%,#ef6c2f 70%,transparent 71%); filter: blur(4px); opacity: .75; }.solution-kicker { position: relative; margin: 0 0 auto; color: #ff9b44; font: 700 clamp(1.45rem,2.2vw,2.35rem)/.85 "Caveat","Segoe Print",cursive; transform: rotate(-2deg); }.solution-story h3 { position: relative; max-width: 480px; margin: 24px 0 16px; font: 400 clamp(2.6rem,4.2vw,5rem)/.82 "Bebas Neue",Impact,sans-serif; letter-spacing: -.01em; text-transform: uppercase; }.solution-story > p:not(.solution-kicker) { position: relative; margin: 0; color: rgba(255,255,255,.68); font-size: var(--text-small); line-height: 1.55; }.solution-story ul { position: relative; margin: 22px 0 0; padding: 0; display: grid; gap: 7px; list-style: none; }.solution-story li { display: flex; gap: 8px; align-items: center; color: rgba(255,255,255,.82); font-size: var(--text-label); }.solution-story li::before { content: ""; width: 6px; height: 6px; flex: 0 0 auto; border-radius: 50%; background: var(--cyan); }.solution-story a { position: relative; align-self: flex-start; margin-top: 24px; color: var(--cyan); font-size: var(--text-label); font-weight: 850; text-decoration: none; }.solution-story a:hover { text-decoration: underline; text-underline-offset: 5px; }
/* Aujourd'hui */
.today-kpis { margin-top: 15px; display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }.today-kpis article { min-width: 0; padding: 12px; display: grid; gap: 2px; border: 1px solid rgba(10,13,18,.1); border-radius: 12px; background: white; box-shadow: 0 10px 24px rgba(32,44,72,.07); }.today-kpis small { color: var(--muted); font-size: var(--text-micro); font-weight: 850; }.today-kpis b { font: 400 clamp(1.55rem,2.8vw,2.45rem)/1 "Bebas Neue",Impact,sans-serif; }.today-kpis span { color: var(--blue); font-size: var(--text-micro); }.today-agenda { margin-top: 12px; overflow: hidden; border: 1px solid rgba(10,13,18,.1); border-radius: 13px; background: white; }.today-agenda > header { padding: 10px 12px; display: flex; justify-content: space-between; border-bottom: 1px solid rgba(10,13,18,.08); }.today-agenda > header b,.today-agenda > header span { font-size: var(--text-micro); }.today-agenda > header span { color: var(--blue); font-weight: 850; }.today-agenda p { margin: 0; padding: 10px 12px; display: grid; grid-template-columns: 43px 1fr auto; align-items: center; gap: 9px; border-bottom: 1px solid rgba(10,13,18,.07); }.today-agenda p:last-child { border-bottom: 0; }.today-agenda p > i { color: var(--blue); font-size: var(--text-micro); font-weight: 900; font-style: normal; }.today-agenda p > span { display: grid; gap: 2px; }.today-agenda p b { font-size: var(--text-label); }.today-agenda p small { color: var(--muted); font-size: var(--text-micro); }.today-agenda p > em { padding: 4px 6px; border-radius: 999px; color: #6b5030; background: #fff0d8; font-size: var(--text-micro); font-weight: 850; font-style: normal; }
/* Planning */
.planning-days { margin-top: 15px; display: grid; grid-template-columns: 72px repeat(7,1fr); border: solid rgba(10,13,18,.1); border-width: 1px 1px 0; border-radius: 11px 11px 0 0; overflow: hidden; background: white; }.planning-days > * { padding: 9px 4px; border-right: 1px solid rgba(10,13,18,.08); font-size: var(--text-micro); text-align: center; }.planning-days > b:nth-child(4) { color: white; background: var(--blue); }.room-grid { position: relative; height: 270px; display: grid; grid-template-columns: 72px repeat(7,1fr); grid-template-rows: repeat(4,1fr); border: 1px solid rgba(10,13,18,.1); border-radius: 0 0 11px 11px; overflow: hidden; background: repeating-linear-gradient(90deg,transparent 0 calc((100% - 72px)/7 - 1px),rgba(10,13,18,.07) calc((100% - 72px)/7)); }.room-grid > b { grid-column: 1; padding: 10px 8px; border-bottom: 1px solid rgba(10,13,18,.08); background: white; font-size: var(--text-micro); }.booking { z-index: 2; align-self: center; height: 32px; padding: 8px; overflow: hidden; border-radius: 8px; color: white; background: var(--blue); box-shadow: 0 7px 15px rgba(var(--blue-rgb),.22); font-size: var(--text-micro); font-weight: 850; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }.booking-a { grid-column: 2/6; grid-row: 1; }.booking-b { grid-column: 3/5; grid-row: 2; background: #1c94b4; }.booking-c { grid-column: 6/9; grid-row: 2; background: #ef7e38; }.booking-d { grid-column: 2/8; grid-row: 3; }.booking-e { grid-column: 4/7; grid-row: 4; background: #1c94b4; }.planning-view footer { margin-top: 10px; display: flex; align-items: center; gap: 14px; color: var(--muted); font-size: var(--text-micro); }.planning-view footer span { display: flex; align-items: center; gap: 5px; }.planning-view footer span i { width: 8px; height: 8px; border-radius: 3px; background: var(--blue); }.planning-view footer span:nth-child(2) i { background: #ef7e38; }.planning-view footer em { margin-left: auto; color: #087a59; font-weight: 850; font-style: normal; }
/* Pensionnaires */
.residents-view > header label { min-width: 150px; padding: 8px 10px; display: flex; gap: 7px; align-items: center; border: 1px solid rgba(10,13,18,.12); border-radius: 9px; color: var(--muted); background: white; font-size: var(--text-micro); }.residents-view > header label svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; }.cat-cards { margin-top: 15px; display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }.cat-cards article { min-width: 0; padding: 10px; display: grid; grid-template-columns: 43px 1fr; gap: 2px 8px; border: 1px solid rgba(10,13,18,.1); border-radius: 12px; background: white; }.cat-cards article.is-selected { border-color: var(--blue); box-shadow: 0 9px 22px rgba(var(--blue-rgb),.14); }.cat-cards article > b { align-self: end; font-size: var(--text-label); }.cat-cards article > small { color: var(--muted); font-size: var(--text-micro); }.cat-cards article > em { grid-column: 1/-1; margin-top: 5px; color: var(--blue); font-size: var(--text-micro); font-weight: 850; font-style: normal; }.cat-avatar { position: relative; grid-row: 1/3; width: 43px; height: 43px; display: block; overflow: hidden; border-radius: 50%; background: #caa179; }.cat-avatar::before,.cat-avatar::after { content: ""; position: absolute; top: 2px; width: 15px; height: 16px; background: inherit; transform: rotate(45deg); }.cat-avatar::before { left: 4px; }.cat-avatar::after { right: 4px; }.cat-avatar i { position: absolute; z-index: 2; inset: 8px 4px 2px; border-radius: 48% 48% 44% 44%; background: inherit; }.cat-avatar i::before { content: "••"; position: absolute; left: 50%; top: 10px; color: #171c25; font-size: .65rem; letter-spacing: 5px; transform: translateX(-50%); }.cat-plume { background: #d8d3cc; }.cat-nestor { background: #847362; }.resident-file { margin-top: 10px; padding: 13px; border: 1px solid rgba(10,13,18,.1); border-radius: 13px; background: white; }.resident-file > header { display: flex; gap: 10px; align-items: center; }.resident-file > header > span:last-child { display: grid; gap: 3px; }.resident-file > header b { font-size: var(--text-label); }.resident-file > header small { color: var(--muted); font-size: var(--text-micro); }.resident-file dl { margin: 12px 0 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }.resident-file dl div { padding: 9px; border-radius: 9px; background: #f2f3f4; }.resident-file dt { color: var(--blue); font-size: var(--text-micro); font-weight: 850; }.resident-file dd { margin: 4px 0 0; color: var(--muted); font-size: var(--text-micro); line-height: 1.35; }.resident-file footer { margin-top: 10px; padding-top: 9px; border-top: 1px solid rgba(10,13,18,.08); color: #087a59; font-size: var(--text-micro); font-weight: 850; }
/* Séjour */
.stay-steps { margin-top: 18px; display: grid; grid-template-columns: repeat(4,1fr); }.stay-steps article { position: relative; display: grid; justify-items: center; gap: 6px; text-align: center; }.stay-steps article:not(:last-child)::after { content: ""; position: absolute; left: 63%; right: -37%; top: 18px; height: 2px; background: #d7dbe0; }.stay-steps article.is-done:not(:last-child)::after { background: var(--blue); }.stay-steps article > i { z-index: 2; width: 36px; height: 36px; display: grid; place-items: center; border: 2px solid #d7dbe0; border-radius: 50%; color: var(--muted); background: white; font-size: var(--text-micro); font-weight: 900; font-style: normal; }.stay-steps article.is-done > i,.stay-steps article.is-current > i { color: white; border-color: var(--blue); background: var(--blue); }.stay-steps article.is-current > i { box-shadow: 0 0 0 6px rgba(var(--blue-rgb),.12); }.stay-steps svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; }.stay-steps article > span { display: grid; gap: 2px; }.stay-steps b { font-size: var(--text-micro); }.stay-steps small { color: var(--muted); font-size: var(--text-micro); }.stay-focus { margin-top: 24px; overflow: hidden; border: 1px solid rgba(10,13,18,.1); border-radius: 13px; background: white; }.stay-focus > header { padding: 10px 12px; display: flex; justify-content: space-between; border-bottom: 1px solid rgba(10,13,18,.08); font-size: var(--text-micro); }.stay-focus > header span { color: var(--blue); font-weight: 850; }.stay-focus p { margin: 0; padding: 12px; display: grid; grid-template-columns: 42px 1fr auto; gap: 10px; align-items: center; border-bottom: 1px solid rgba(10,13,18,.07); }.stay-focus p:last-child { border-bottom: 0; }.stay-focus p > i { color: var(--blue); font-size: var(--text-micro); font-weight: 900; font-style: normal; }.stay-focus p > span { display: grid; gap: 2px; }.stay-focus p b { font-size: var(--text-label); }.stay-focus p small { color: var(--muted); font-size: var(--text-micro); }.stay-focus p > em { color: #087a59; font-size: var(--text-micro); font-weight: 900; font-style: normal; }
/* Caisse */
.cash-kpis { margin-top: 15px; display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }.cash-kpis article { padding: 11px; display: grid; gap: 3px; border-radius: 11px; color: white; background: #171c25; }.cash-kpis article:first-child { color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); }.cash-kpis small { font-size: var(--text-micro); font-weight: 850; }.cash-kpis b { font: 400 clamp(1.3rem,2.2vw,2rem)/1 "Bebas Neue",Impact,sans-serif; }.cash-kpis em { color: var(--cyan); font-size: var(--text-micro); font-style: normal; }.cash-kpis article:first-child em { color: #75421d; }.cash-chart { margin-top: 10px; padding: 11px; border: 1px solid rgba(10,13,18,.1); border-radius: 12px; background: white; }.cash-chart > header { display: flex; justify-content: space-between; font-size: var(--text-micro); }.cash-chart > header span { color: var(--muted); }.cash-chart > div { height: 120px; margin-top: 8px; display: grid; grid-template-columns: repeat(6,1fr); align-items: end; gap: 8px; border-bottom: 1px solid rgba(10,13,18,.12); background: repeating-linear-gradient(0deg,transparent 0 29px,rgba(10,13,18,.05) 30px); }.cash-chart > div i { height: var(--h); border-radius: 6px 6px 0 0; background: linear-gradient(180deg,var(--cyan),var(--blue)); }.cash-chart > footer { display: grid; grid-template-columns: repeat(6,1fr); gap: 8px; padding-top: 5px; color: var(--muted); font-size: var(--text-micro); text-align: center; }.cash-list { margin-top: 10px; display: grid; gap: 5px; }.cash-list p { margin: 0; padding: 8px 10px; display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; border-radius: 9px; background: white; }.cash-list p > span { display: grid; }.cash-list p b,.cash-list p strong { font-size: var(--text-micro); }.cash-list p small { color: var(--muted); font-size: var(--text-micro); }.cash-list p em { padding: 3px 5px; border-radius: 999px; color: #087a59; background: #dff8ed; font-size: var(--text-micro); font-weight: 850; font-style: normal; }

.delivery-process { position: relative; padding: clamp(92px,11vh,140px) clamp(18px,3vw,48px); overflow: hidden; isolation: isolate; background: radial-gradient(circle at 92% 7%,rgba(88,217,244,.38),transparent 28%),radial-gradient(circle at 8% 92%,rgba(255,174,43,.24),transparent 26%),#edf2ff; }
.delivery-process::before { content: ""; position: absolute; z-index: -1; width: min(620px,48vw); aspect-ratio: 1; right: -18vw; bottom: -34%; border-radius: 50%; background: var(--accent-surface); filter: blur(70px); opacity: .28; }
.journey-intro { width: min(var(--max),100%); margin: 0 auto; display: grid; grid-template-columns: 1.18fr .62fr; gap: clamp(36px,7vw,120px); align-items: end; }
.journey-kicker { width: max-content; margin: 0 0 13px; color: #f47b2d; font: 700 clamp(1.8rem,2.7vw,3rem)/.82 "Caveat","Segoe Print",cursive; letter-spacing: -.025em; transform: rotate(-2deg); }
.journey-intro h2 { max-width: 940px; margin: 0; font: 400 var(--type-display)/.8 "Bebas Neue",Impact,sans-serif; letter-spacing: -.012em; text-transform: uppercase; }
.journey-intro > p { max-width: 540px; margin: 0 0 6px auto; color: var(--muted); font-size: var(--type-copy); line-height: 1.58; }
.delivery-steps { position: relative; width: min(var(--max),100%); margin: clamp(38px,5vw,72px) auto 0; padding: 0; display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); overflow: hidden; border: 1px solid rgba(10,13,18,.18); border-radius: 30px; background: rgba(255,255,255,.72); box-shadow: 0 30px 90px rgba(31,57,113,.12); list-style: none; backdrop-filter: blur(18px); }
.delivery-steps::before { content: ""; position: absolute; z-index: 2; left: 8.33%; right: 8.33%; top: 48px; height: 1px; background: linear-gradient(90deg,var(--blue),var(--cyan) 38%,#ffb03d 68%,#f47b2d); opacity: .52; }
.delivery-step { --step-color: var(--blue); position: relative; z-index: 3; min-width: 0; min-height: 330px; padding: 24px 20px 26px; display: flex; flex-direction: column; overflow: hidden; border-left: 1px solid rgba(10,13,18,.12); outline: none; transition: background .4s ease,box-shadow .4s ease,transform .45s cubic-bezier(.16,1,.3,1); }
.delivery-step:first-child { border-left: 0; }
.delivery-step:nth-child(2),.delivery-step:nth-child(5) { --step-color: var(--cyan); }
.delivery-step:nth-child(3),.delivery-step:nth-child(6) { --step-color: #f47b2d; }
.delivery-step::before { content: ""; position: absolute; z-index: -1; width: 180px; aspect-ratio: 1; right: -90px; top: -100px; border-radius: 50%; background: radial-gradient(circle,var(--step-color),transparent 68%); opacity: 0; transform: scale(.7); transition: opacity .4s ease,transform .55s cubic-bezier(.16,1,.3,1); }
.delivery-step:hover,.delivery-step:focus-visible { z-index: 4; background: rgba(255,255,255,.94); box-shadow: 0 18px 48px rgba(31,57,113,.16); transform: translateY(-6px); }
.delivery-step:hover::before,.delivery-step:focus-visible::before { opacity: .28; transform: scale(1); }
.step-marker { position: relative; z-index: 3; min-height: 50px; display: flex; align-items: center; gap: 10px; }
.step-marker span { width: 48px; height: 48px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid color-mix(in srgb,var(--step-color) 65%,var(--ink)); border-radius: 50%; color: var(--ink); background: rgba(255,255,255,.92); font-size: var(--type-label); font-weight: 900; box-shadow: 0 8px 22px color-mix(in srgb,var(--step-color) 20%,transparent); transition: color .35s ease,background .35s ease,transform .45s cubic-bezier(.16,1,.3,1); }
.delivery-step:hover .step-marker span,.delivery-step:focus-visible .step-marker span { color: white; background: var(--step-color); transform: scale(1.08); }
.step-marker small { font-size: var(--type-label); font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.delivery-step h3 { position: relative; margin: 34px 0 14px; font-size: var(--type-copy); line-height: 1.16; letter-spacing: -.025em; }
.delivery-step p { position: relative; min-height: 7.4em; margin: 0; color: var(--muted); font-size: var(--type-copy); line-height: 1.48; }
.delivery-step em { position: relative; align-self: flex-start; margin-top: 16px; padding: 7px 10px; border-radius: 999px; color: #7c3d13; background: var(--accent-surface-soft); box-shadow: var(--accent-shadow); font-size: var(--type-label); font-weight: 850; font-style: normal; }
.journey-promise { width: min(var(--max),100%); margin: 22px auto 0; display: flex; justify-content: flex-end; gap: 12px; color: var(--muted); font-size: var(--type-copy); }
.journey-promise span { color: #f47b2d; font-family: "Caveat","Segoe Print",cursive; font-size: 1.35em; font-weight: 700; transform: rotate(-2deg); }
.journey-promise strong { color: var(--ink); }

.price-simulator { position: relative; padding: clamp(92px,11vh,140px) clamp(18px,3vw,48px); overflow: hidden; color: white; background: radial-gradient(circle at 88% 10%,rgba(53,104,245,.36),transparent 28%),radial-gradient(circle at 10% 92%,rgba(244,123,45,.2),transparent 26%),var(--ink); }
.price-intro { width: min(var(--max),100%); margin: 0 auto; display: grid; grid-template-columns: 1.18fr .62fr; gap: clamp(36px,7vw,120px); align-items: end; }
.price-kicker { width: max-content; margin: 0 0 13px; color: #ff9b44; font: 700 clamp(1.8rem,2.7vw,3rem)/.82 "Caveat","Segoe Print",cursive; letter-spacing: -.025em; transform: rotate(-2deg); }
.price-intro h2 { max-width: 980px; margin: 0; font: 400 var(--type-display)/.8 "Bebas Neue",Impact,sans-serif; letter-spacing: -.012em; text-transform: uppercase; }
.price-intro-copy { max-width: 540px; margin: 0 0 6px auto; }
.price-intro-copy > p:first-child { margin: 0; color: rgba(255,255,255,.68); font-size: var(--type-copy); line-height: 1.58; }
.launch-offer { margin: 20px 0 0; padding: 13px 15px; display: grid; gap: 3px; border-radius: 16px; color: var(--ink); background: var(--accent-surface); box-shadow: var(--accent-shadow); }
.launch-offer span { font-size: var(--type-label); font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }.launch-offer strong { font-size: var(--type-copy); }
.price-workbench { width: min(var(--max),100%); margin: clamp(38px,5vw,70px) auto 0; display: grid; grid-template-columns: minmax(0,1.38fr) minmax(360px,.62fr); overflow: hidden; border: 1px solid rgba(255,255,255,.2); border-radius: 32px; background: rgba(255,255,255,.06); box-shadow: 0 36px 100px rgba(0,0,0,.35); backdrop-filter: blur(18px); }
.module-picker { min-width: 0; margin: 0; padding: clamp(24px,3vw,44px); border: 0; }
.module-picker legend { padding: 0; color: rgba(255,255,255,.72); font-size: var(--type-copy); font-weight: 750; }
.module-picker legend span { margin-right: 8px; color: var(--cyan); }
.module-grid { margin-top: 24px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.module-option { min-width: 0; cursor: pointer; }
.module-card { position: relative; min-height: 190px; padding: 18px; display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(255,255,255,.15); border-radius: 20px; background: rgba(255,255,255,.055); transition: color .3s ease,border-color .3s ease,background .4s ease,box-shadow .4s ease,transform .4s cubic-bezier(.16,1,.3,1); }
.module-card > i { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; color: var(--cyan); background: rgba(88,217,244,.1); font-style: normal; transition: color .3s ease,background .3s ease; }
.module-card svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.module-card strong { margin-top: 22px; font-size: var(--type-copy); line-height: 1.2; }
.module-card small { margin-top: 7px; color: rgba(255,255,255,.55); font-size: var(--type-label); line-height: 1.4; }
.module-card em { margin-top: auto; padding-top: 14px; color: rgba(255,255,255,.72); font-size: var(--type-label); font-weight: 800; font-style: normal; }
.module-offer { display: grid; gap: 3px; }.module-offer mark { display: none; width: max-content; padding: 4px 7px; border-radius: 999px; color: #713814; background: var(--accent-surface-soft); font-size: var(--type-label); }.module-option.has-active-offer .module-offer span { opacity: .55; text-decoration: line-through; }.module-option.has-active-offer .module-offer mark { display: block; }
.module-card > b { position: absolute; right: 16px; top: 16px; width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.32); border-radius: 50%; font-size: var(--type-copy); transition: transform .35s ease; }
.module-option:hover .module-card { border-color: rgba(88,217,244,.62); background: rgba(255,255,255,.09); transform: translateY(-3px); }
.module-option input:focus-visible + .module-card { outline: 3px solid white; outline-offset: 3px; }
.module-option input:checked + .module-card { color: var(--ink); border-color: transparent; background: var(--accent-surface-soft); box-shadow: var(--accent-shadow); transform: translateY(-3px); }
.module-option input:checked + .module-card > i { color: white; background: var(--blue); }
.module-option input:checked + .module-card small,.module-option input:checked + .module-card em { color: rgba(10,13,18,.64); }.module-option input:checked + .module-card .module-offer mark { color: #713814; }
.module-option input:checked + .module-card > b { color: white; border-color: var(--blue); background: var(--blue); transform: rotate(45deg); }
.estimate-panel { min-width: 0; padding: clamp(28px,3.5vw,54px); display: flex; flex-direction: column; color: var(--ink); background: var(--paper); }
.complexity-control label { display: flex; justify-content: space-between; gap: 18px; align-items: baseline; font-size: var(--type-copy); font-weight: 800; }
.complexity-control label b { margin-right: 7px; color: var(--blue); }
.complexity-control label strong { color: var(--blue); text-align: right; }
.complexity-control input { --complexity: 0%; width: 100%; height: 34px; margin: 22px 0 0; appearance: none; background: transparent; cursor: grab; }
.complexity-control input:active { cursor: grabbing; }
.complexity-control input::-webkit-slider-runnable-track { height: 8px; border-radius: 999px; background: linear-gradient(90deg,var(--blue) 0 var(--complexity),rgba(10,13,18,.12) var(--complexity) 100%); }
.complexity-control input::-webkit-slider-thumb { width: 26px; height: 26px; margin-top: -9px; appearance: none; border: 4px solid white; border-radius: 50%; background: var(--blue); box-shadow: 0 5px 18px rgba(var(--blue-rgb),.35); }
.complexity-control input::-moz-range-track { height: 8px; border-radius: 999px; background: rgba(10,13,18,.12); }.complexity-control input::-moz-range-progress { height: 8px; border-radius: 999px; background: var(--blue); }.complexity-control input::-moz-range-thumb { width: 20px; height: 20px; border: 4px solid white; border-radius: 50%; background: var(--blue); box-shadow: 0 5px 18px rgba(var(--blue-rgb),.35); }
.complexity-scale { display: flex; justify-content: space-between; color: var(--muted); font-size: var(--type-label); }
.complexity-control > p { margin: 18px 0 0; color: var(--muted); font-size: var(--type-label); line-height: 1.5; }
.estimate-result { margin-top: auto; padding-top: clamp(48px,7vh,90px); }
.estimate-result > span { color: var(--muted); font-size: var(--type-label); font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.estimate-result output { display: block; margin-top: 6px; font: 400 clamp(4rem,6vw,7.2rem)/.84 "Bebas Neue",Impact,sans-serif; letter-spacing: -.015em; white-space: nowrap; }
.estimate-result p { min-height: 1.5em; margin: 12px 0 0; color: var(--muted); font-size: var(--type-label); }
.estimate-meter { height: 8px; margin-top: 22px; overflow: hidden; border-radius: 999px; background: rgba(10,13,18,.09); }.estimate-meter i { display: block; width: 7%; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--cyan),var(--blue),#ff9b44); transition: width .55s cubic-bezier(.16,1,.3,1); }
.estimate-note { margin: 30px 0 0; padding-top: 22px; border-top: 1px solid rgba(10,13,18,.14); color: var(--muted); font-size: var(--type-label); line-height: 1.5; }.estimate-note strong { color: var(--ink); }
.estimate-panel > a { margin-top: 22px; padding: 14px 18px; display: flex; justify-content: space-between; border-radius: 999px; color: white; background: var(--ink); font-size: var(--type-copy); font-weight: 800; text-decoration: none; }.estimate-panel > a:hover { color: var(--ink); background: var(--cyan); }

.contact-world { min-height: 78svh; padding: clamp(90px,12vh,150px) clamp(20px,7vw,110px); display: grid; grid-template-columns: 1fr minmax(400px,.68fr); gap: 9vw; align-items: center; background: var(--yellow-soft); }
.contact-intro .eyebrow { color: var(--ink); }
.contact-intro h2 { max-width: 800px; }
.contact-intro > p:not(.eyebrow) { max-width: 650px; color: rgba(10,13,18,.66); line-height: 1.6; }
.contact-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.contact-tags span { padding: 8px 12px; border: 1px solid rgba(10,13,18,.35); border-radius: 999px; font-size: .63rem; }
.contact-form { padding: clamp(28px,4vw,52px); background: var(--paper); box-shadow: var(--shadow); }
.contact-form label { display: block; margin-bottom: 22px; }
.contact-form label span { display: block; margin-bottom: 7px; font-size: .59rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.contact-form input, .contact-form textarea { width: 100%; padding: 10px 0; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; outline: none; background: transparent; }
.contact-form input:focus, .contact-form textarea:focus { border-bottom-color: var(--blue); box-shadow: 0 2px var(--blue); }
.contact-form button { width: 100%; display: flex; justify-content: space-between; padding: 14px 18px; border: 1px solid var(--ink); border-radius: 999px; color: white; background: var(--ink); cursor: pointer; font-weight: 700; }
.contact-form button:hover { color: var(--ink); background: var(--cyan); }
.form-note { margin: 12px 0 0; color: var(--muted); font-size: .63rem; text-align: center; }
.hidden-field { position: absolute; left: -9999px; }

.site-footer { min-height: 160px; padding: 38px clamp(20px,4vw,65px); display: grid; grid-template-columns: 1fr 1fr auto; align-items: start; gap: 30px; color: white; background: var(--ink); }
.site-footer p { margin: 0; color: rgba(255,255,255,.55); font-size: .75rem; }
.site-footer nav { display: flex; gap: 22px; }
.site-footer nav a { text-decoration: none; font-size: .72rem; }
.site-footer small { grid-column: 1/-1; color: rgba(255,255,255,.42); font-size: .62rem; }

/* Blog and articles */
.blog-page { background: var(--white); }
.blog-page .site-header { position: sticky; background: rgba(255,255,255,.9); border-bottom: 1px solid var(--soft-line); backdrop-filter: blur(18px); }
.blog-page .site-nav { justify-self: center; }
.blog-page .header-contact { display: none; }
.blog-hero { width: min(var(--max),100%); margin: 0 auto; padding: 110px clamp(20px,7vw,110px) 80px; }
.blog-hero h1 { max-width: 930px; margin: 12px 0; font: 400 clamp(5rem,11vw,11rem)/.78 "Bebas Neue", Impact, sans-serif; letter-spacing: -.015em; text-transform: uppercase; }
.blog-hero > p:not(.eyebrow) { max-width: 650px; color: var(--muted); font-size: 1.08rem; line-height: 1.65; }
.blog-list { width: min(calc(var(--max) - 120px),calc(100% - 40px)); margin: 0 auto; padding-bottom: 120px; }
.article-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; }
.article-card { position: relative; min-height: 430px; display: flex; flex-direction: column; padding: 32px; border: 1px solid var(--ink); overflow: hidden; }
.article-card > a { position: absolute; inset: 0; z-index: 2; }
.article-card > span { font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.article-card h2, .article-card h3 { max-width: 540px; margin: auto 0 18px; font: 400 clamp(2.8rem,4.8vw,5.6rem)/.84 "Bebas Neue",Impact,sans-serif; letter-spacing: -.008em; text-transform: uppercase; }
.article-card p { color: var(--muted); }
.article-card time { margin-top: 20px; font-size: .68rem; }
.article-case { background: var(--cyan); }
.article-ai { background: var(--yellow-soft); }
.article-card:hover h2, .article-card:hover h3 { text-decoration: underline; text-underline-offset: 8px; }
.article-page main { width: min(900px,calc(100% - 40px)); margin: 0 auto; }
.article-header { padding: 100px 0 60px; }
.article-header h1 { margin: 10px 0; font: 400 clamp(4.5rem,10vw,9.5rem)/.8 "Bebas Neue",Impact,sans-serif; letter-spacing: -.012em; text-transform: uppercase; }
.article-deck { max-width: 760px; color: var(--muted); font-size: 1.22rem; line-height: 1.6; }
.article-meta { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 30px; font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.article-body { padding-bottom: 120px; font-size: 1.06rem; line-height: 1.8; }
.article-body h2 { margin: 2.2em 0 .6em; font: 400 clamp(2.8rem,5vw,4.8rem)/.86 "Bebas Neue",Impact,sans-serif; letter-spacing: -.008em; text-transform: uppercase; }
.article-body p, .article-body ul { max-width: 760px; }
.article-body blockquote { margin: 60px 0; padding: 35px; border-left: 7px solid var(--yellow); background: var(--paper); font: 500 clamp(1.6rem,3vw,2.6rem)/1.2 "DM Sans",sans-serif; letter-spacing: -.025em; }
.article-body .fact-box { margin: 42px 0; padding: 26px; border: 1px solid var(--ink); background: #edf4ff; }
.article-cta { margin-top: 70px; padding: 36px; background: var(--blue); }
.article-cta h2 { margin-top: 0; }
.article-cta .button { display: inline-flex; padding: 12px 18px; border: 1px solid var(--ink); border-radius: 999px; background: var(--ink); color: white; text-decoration: none; }
.nav-toggle { display: none; }

@media (max-width: 1050px) {
  .site-header { grid-template-columns: 1fr auto; }
  .site-nav { display: none; }
  .hero-world { min-height: 940px; }
  .object-rail { grid-template-columns: repeat(6,minmax(145px,1fr)); overflow-x: auto; }
  .impact-layer { grid-template-columns: 1fr; gap: 55px; }
  .impact-layer > header { position: static; }
  .impact-layer h2 { max-width: 820px; }
  .ai-story { min-height: 690px; }
  .ai-plain-language { grid-template-columns: 1fr auto 1fr; }
  .ai-plain-language > strong { grid-column: 1/-1; min-height: 125px; }
  .client-world { min-height: 880px; }
  .client-deck { overflow-x: auto; scroll-snap-type: x mandatory; }
  .client-card { flex: 0 0 280px; scroll-snap-align: start; }
  .client-deck.has-open-card { overflow: visible; }
  .client-deck.has-open-card .client-card:not(.is-open) { display: none; }
  .client-card.is-open { flex-basis: 100%; }
  .direction-nav { display: flex; overflow-x: auto; scrollbar-width: thin; }
  .direction-nav button { flex: 0 0 170px; }
  .direction-panel { min-height: 610px; grid-template-columns: minmax(0,1.35fr) minmax(270px,.65fr); }
  .solution-story { padding: 32px; }
  .solution-story h3 { font-size: clamp(2.5rem,4vw,3.8rem); }
  .delivery-steps { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .delivery-steps::before { display: none; }
  .delivery-step:nth-child(4) { border-left: 0; border-top: 1px solid rgba(10,13,18,.12); }
  .delivery-step:nth-child(5),.delivery-step:nth-child(6) { border-top: 1px solid rgba(10,13,18,.12); }
  .price-workbench { grid-template-columns: 1fr; }
  .estimate-panel { min-height: 560px; }
}

@media (max-width: 760px) {
  .site-header { min-height: 62px; padding: 10px 16px; }
  .header-contact { padding: 9px 12px; }
  .header-contact span { display: none; }
  .hero-world { min-height: 100svh; padding: 78px 10px 12px; grid-template-rows: auto minmax(540px,1fr) auto; }
  .hero-titleblock h1 { font-size: clamp(2rem,7.8vw,3.55rem); }
  .hero-subtitle { margin-top: 20px; padding: 0 12px; font-size: .78rem; }
  .world-stage { min-height: 670px; }
  .object-rail { left: 10px; right: 10px; width: auto; bottom: 9px; grid-template-columns: repeat(6,minmax(145px,1fr)); transform: none; }
  .object-rail button { padding: 12px 9px; }
  .object-rail button b { font-size: .72rem; }
  .scene-idle { top: 18px; left: 14px; min-width: 84vw; padding: 14px 24px 16px 14px; }
  .scene-idle strong { font-size: clamp(2rem,9vw,3.2rem); }
  .scene-promise { left: var(--annotation-x); top: var(--annotation-y); bottom: auto; width: min(290px,78vw); padding: 12px 15px 13px; border-radius: 20px; transform: translate(-50%,calc(-100% - 170px)); }
  .scene-promise.is-detail, .scene-promise.is-detail[data-side="left"] { top: 20px; left: 10px; width: calc(100vw - 20px); padding: 18px 16px 16px; border-radius: 26px; align-items: flex-start; text-align: left; transform: none; }
  .scene-promise::before { width: auto; height: 190px; }
  .scene-promise[data-side="left"] { transform: translate(-50%,calc(-100% - 170px)); }
  .scene-promise > strong { font-size: clamp(1.45rem,6.6vw,2rem); }
  .scene-promise.is-detail > strong { max-width: calc(100% - 38px); font-size: clamp(2rem,9vw,2.8rem); }
  .scene-promise > small { margin-top: 10px; font-size: .78rem; }
  .scene-pan-controls { inset-inline: 8px; }
  .scene-pan-controls button { width: 42px; min-width: 42px; padding: 0; justify-content: center; }
  .scene-pan-controls small { display: none; }
  .scene-status { display: none; }
  .scene-promise.is-detail .capability-drawer { max-height: 330px; margin-top: 14px; }
  .drawer-close { top: 12px; right: 12px; }
  .nested-folds { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
  .nested-fold { display: contents; }
  .nested-fold:nth-child(1) button { grid-column: 1; }
  .nested-fold:nth-child(2) button { grid-column: 2; }
  .nested-fold:nth-child(3) button { grid-column: 3; }
  .nested-fold button { grid-row: 1; grid-template-columns: 1fr auto; min-height: 54px; border: 0; border-radius: 13px; background: rgba(255,255,255,.34); }
  .nested-fold.is-open button { background: color-mix(in srgb,var(--active-accent) 32%,rgba(255,255,255,.64)); }
  .fold-content { grid-column: 1 / -1; grid-row: 2; }
  .nested-fold button { padding: 8px 7px; font-size: .76rem; }
  .fold-content p, .fold-content ul { padding: 8px 8px 4px; font-size: .76rem; }
  .fold-content ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 12px; }
  .hero-footer { align-items: flex-start; gap: 10px; }
  .hero-principles { gap: 7px; flex-wrap: wrap; }
  .hero-principles span { font-size: .5rem; }
  .primary-action { flex: 0 0 auto; }
  .impact-layer { min-height: auto; padding: 85px 18px; grid-template-columns: 1fr; gap: 55px; }
  .impact-layer > header { position: static; }
  .impact-layer h2 { font-size: 3.8rem; }
  .ai-place { padding: 84px 18px; }
  .ai-intro { grid-template-columns: 1fr; gap: 26px; }
  .ai-intro h2 { font-size: clamp(4.8rem,24vw,7rem); }
  .ai-intro > p { font-size: var(--text-body); }
  .ai-duo { margin-top: 46px; grid-template-columns: 1fr; }
  .ai-story { min-height: auto; padding: 28px 22px; }
  .ai-story h3 { margin-top: 44px; font-size: clamp(3.5rem,17vw,5rem); }
  .ai-build-flow { margin-top: 48px; padding-top: 0; grid-template-columns: 1fr; }
  .ai-build-flow span { grid-template-columns: 34px 1fr; }
  .ai-build-flow i { grid-row: 1/3; }
  .ai-story-outcome { margin-top: 14px; }
  .ai-system { margin-top: 42px; }
  .ai-system > div { padding: 15px; grid-template-columns: 1fr; }
  .ai-system span { grid-row: auto; }
  .ai-system > div:hover { transform: none; }
  .ai-plain-language { padding: 26px 22px; grid-template-columns: 1fr; }
  .ai-plain-language > i { transform: rotate(90deg); }
  .ai-plain-language > strong { grid-column: auto; min-height: 120px; }
  .impact-instruction { margin-top: 24px; }
  .impact-trigger { min-height: 142px; padding: 22px 0; grid-template-columns: 28px 1fr 24px; grid-template-rows: auto auto; gap: 8px 10px; }
  .impact-card:hover .impact-trigger, .impact-card.is-open .impact-trigger { padding: 22px 12px; }
  .impact-pointer { display: none; }
  .impact-touch { display: inline; }
  .impact-index { grid-column: 1; grid-row: 1; padding-top: 5px; }
  .impact-heading strong { grid-column: 2; grid-row: 1; font-size: clamp(2.05rem,9vw,3.25rem); }
  .impact-heading small { grid-column: 2 / 4; grid-row: 2; font-size: .72rem; }
  .impact-open { grid-column: 3; grid-row: 1; align-self: start; }
  .impact-demo-bar { min-height: 74px; padding: 11px 12px; gap: 10px; }
  .impact-phase { max-width: 42%; font-size: .5rem; line-height: 1.35; }
  .impact-transform { min-width: 148px; padding: 4px; }
  .impact-transform > span:not(.sr-only) { padding: 7px 8px; font-size: .66rem; }
  .impact-schematic { height: 270px; }
  .flux-schematic { height: 720px; }
  .visualize-schematic { height: 650px; }
  .fragment-dashboard { left: 4%; right: auto; width: 92%; min-height: 174px; transform: rotate(0deg); }
  .fragment-sales { top: 2%; }.fragment-production { top: 35%; }.fragment-direction { top: 68%; }
  .fragment-dashboard > header { min-height: 43px; }
  .fragment-kpis { padding-block: 7px 5px; }.fragment-chart,.fragment-progress,.fragment-donut { height: 39px; min-height: 39px; }
  .fragment-dashboard > footer { min-height: 23px; }
  .dashboard-conflict { display: none; }
  .impact-card.is-dashboard-merging .fragment-dashboard { left: 50%; top: 49%; width: 84%; transform: translate(-50%,-50%) scale(.78); }
  .unified-cockpit { padding: 9px; }
  .cockpit-head { min-height: 54px; padding: 8px 10px; }
  .cockpit-tabs { min-height: 38px; padding-inline: 10px; gap: 14px; overflow: hidden; }
  .cockpit-content { height: calc(100% - 92px); padding: 8px; grid-template-columns: 1fr; grid-template-rows: minmax(0,1.35fr) minmax(0,.65fr); gap: 7px; }
  .cockpit-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cockpit-kpis > span { padding: 6px 8px; }
  .cockpit-chart { min-height: 145px; }
  .cockpit-feed { padding: 8px; }
  .cockpit-feed ol { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }
  .cockpit-feed li { min-width: 0; min-height: 58px; grid-template-columns: 6px minmax(0,1fr); padding: 3px; border: 1px solid rgba(255,255,255,.1); border-radius: 6px; }
  .cockpit-feed li em { grid-column: 2; }.cockpit-feed > footer { display: none; }
  .workshop-schematic { height: 1010px; }
  .workshop-context { left: 4%; right: 4%; top: 1.5%; }
  .workshop-context em { max-width: 48%; text-align: right; line-height: 1.3; }
  .workday-queue { left: 4%; top: 8%; width: 92%; }
  .workday-card { min-height: 45px; }
  .tender-folder { left: 4%; top: 34%; width: 92%; }
  .parallel-work { left: 4%; right: auto; top: 67%; width: 92%; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .parallel-card p { min-height: 61px; }
  .buried-label { bottom: 1.5%; max-width: 90%; text-align: center; white-space: nowrap; }
  .impact-card.is-production-assembling .tender-folder { left: 50%; top: 48%; width: 86%; }
  .impact-card.is-production-assembling .parallel-work { left: 4%; right: auto; top: 67%; width: 92%; opacity: .16; transform: translateX(14%) scale(.9); }
  .prepared-head { left: 2.5%; right: 2.5%; top: 1.2%; }
  .prepared-grid { top: 8%; bottom: 14%; grid-template-columns: 1fr; grid-template-rows: auto auto auto; gap: 8px; }
  .prepared-items article { min-height: 48px; }
  .ready-streams { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .trade-time > header { grid-column: 1 / -1; }
  .ready-card { min-height: 112px; }
  .human-check ol { grid-template-columns: repeat(3,minmax(0,1fr)); align-content: stretch; }
  .human-check li { min-width: 0; grid-template-columns: 20px minmax(0,1fr); align-content: center; border: 1px solid rgba(10,13,18,.09); border-radius: 6px; }
  .human-check li b { grid-column: 2; }
  .time-released { min-height: 78px; padding-inline: 10px; gap: 8px; }
  .time-released b { font-size: clamp(1.2rem,6vw,1.75rem); }
  .flux-persona { left: 4% !important; width: 92% !important; }
  .persona-sales { top: 3% !important; }
  .persona-production { top: 35% !important; }
  .persona-direction { top: 67% !important; }
  .persona-id { min-height: 42px; grid-template-columns: 30px minmax(0,1fr) auto; }
  .persona-avatar { width: 29px; height: 29px; font-size: .62rem; }
  .persona-id b { font-size: .55rem; }
  .persona-id small { font-size: .4rem; }
  .persona-tab { min-height: 31px; grid-template-columns: 23px minmax(0,1fr) auto; }
  .persona-tab > svg { width: 21px; height: 21px; padding: 4px; }
  .persona-tab b { font-size: .48rem; }
  .persona-tab small { font-size: .38rem; }
  .flux-before > .flux-routes { opacity: .48; stroke-width: 2.8; }
  .flux-friction { display: none; }
  .impact-card.is-sorting .flux-persona { left: 50% !important; top: 44% !important; width: 74% !important; }
  .unified-app { top: 39%; width: 88%; min-height: 244px; }
  .unified-sources { padding: 10px; gap: 5px; }
  .unified-database { margin: 0 10px 10px; }
  .user-view { top: auto; bottom: 4%; width: 31%; min-height: 80px; padding: 7px 6px; gap: 4px; }
  .user-view .view-head svg { width: 19px; height: 19px; flex-basis: 19px; padding: 3px; }
  .user-view b { font-size: .44rem; }
  .user-view small { font-size: .37rem; }
  .view-sales { left: 1%; }
  .view-production { right: 1%; }
  .view-direction { left: 50%; transform: translateX(-50%) translateY(15px) scale(.9); }
  .impact-card.is-after .view-direction { transform: translateX(-50%); }
  .shared-data-label { top: 1.5%; font-size: .38rem; }
  .diagram-node { min-width: 68px; padding: 8px 7px; }
  .diagram-node b { font-size: .52rem; }
  .diagram-node small { font-size: .44rem; }
  .diagram-hub { min-width: 90px; padding: 14px 8px; }
  .impact-result { min-height: 94px; padding: 13px 12px; grid-template-columns: 1fr; gap: 8px; }
  .impact-result p { font-size: .7rem; }
  .impact-result > span { justify-self: start; }
  .dashboard-title { top: 18px; }
  .dashboard-kpi { top: 55px; padding: 7px 5px; }
  .dashboard-kpi small { font-size: .37rem; }
  .dashboard-line { bottom: 22px; height: 88px; }
  .dashboard-alert { bottom: 22px; min-height: 88px; padding: 9px; }
  .dashboard-alert small { font-size: .52rem; }
  .quote-schematic { height: 820px; }
  .quote-context,.assistant-head { left: 4%; right: 4%; top: 1.5%; }
  .quote-context em { max-width: 42%; text-align: center; line-height: 1.25; }
  .quote-dayline { display: none; }
  .quote-day-events { left: 4%; right: 4%; top: 10%; grid-template-columns: 1fr; gap: 5px; }
  .quote-event { min-height: 54px; padding: 6px 8px; grid-template-columns: 38px 25px minmax(0,1fr) auto; grid-template-rows: 1fr; align-items: center; gap: 6px; }
  .quote-event time,.quote-event > svg,.quote-event > span,.quote-event > em { grid-column: auto; grid-row: auto; margin: 0; }
  .quote-event > svg { width: 25px; height: 25px; padding: 5px; }
  .quote-event > em { justify-self: end; }
  .quote-backlog { left: 4%; bottom: auto; top: 47%; width: 92%; min-height: 185px; grid-template-columns: .72fr 1fr; gap: 8px; }
  .quote-backlog > header small { max-width: 150px; }
  .backlog-pile { min-height: 152px; }
  .backlog-pile > i { right: 0; grid-template-columns: 38px minmax(0,1fr); min-height: 45px; padding: 7px; }
  .backlog-pile > i:nth-child(1) { left: 0; top: 0; }.backlog-pile > i:nth-child(2) { left: 2%; top: 24px; }.backlog-pile > i:nth-child(3) { left: 4%; top: 48px; }.backlog-pile > i:nth-child(4) { left: 6%; top: 72px; }.backlog-pile > i:nth-child(5) { left: 8%; top: 96px; }
  .backlog-pile > i em { display: none; }
  .quote-evening { left: 4%; right: auto; top: 72%; bottom: auto; width: 92%; min-height: 180px; padding-inline: 16px; }
  .quote-evening::before { left: 50%; top: -18px; transform: translateX(-50%) rotate(90deg); }
  .voice-capture { left: 4%; top: 9%; bottom: auto; width: 92%; min-height: 225px; }
  .quote-flow { left: 4%; right: 4%; top: 36%; bottom: 13%; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .quote-step { min-height: 145px; }
  .quote-step:not(:last-child)::after { display: none; }
  .quote-speed { left: 4%; right: 4%; bottom: 1.5%; min-height: 84px; padding-inline: 10px; gap: 8px; }
  .quote-speed b { font-size: clamp(1.15rem,5.8vw,1.65rem); }
  .client-world { min-height: 100svh; padding: 80px 12px 24px; }
  .section-intro { grid-template-columns: 1fr; gap: 16px; }
  .section-intro h2 { font-size: 3.2rem; }
  .section-intro > p { margin: 0; font-size: .82rem; }
  .client-card { flex-basis: 82vw; }
  .client-card.is-open .client-image { inset: 0 0 56% 0; }
  .client-detail { inset: 44% 0 0; grid-template-columns: 1fr; overflow-y: auto; padding: 16px; }
  .client-detail div { padding: 11px; border-width: 0 0 1px; }
  .client-detail div:first-child { border-left-width: 0; border-top-width: 1px; }
  .deck-instruction { text-align: left; }
  .directions { min-height: 100svh; padding: 80px 12px 18px; }
  .directions-title { grid-template-columns: 1fr; gap: 18px; }
  .directions-title > p { margin: 0; }
  .directions-title h2 { font-size: 3rem; }
  .directions-board { border-radius: 20px; }
  .direction-nav { padding: 6px; }
  .direction-nav button { flex-basis: 150px; min-height: 62px; padding: 8px 10px; border-radius: 14px; }
  .direction-panel { grid-template-columns: 1fr; min-height: 0; }
  .solution-screen { height: 565px; margin: 10px; border-radius: 16px; }
  .solution-capture { height: auto; aspect-ratio: 16 / 10; }
  .solution-appbar { grid-template-columns: 34px 1fr; }.solution-appbar > em { display: none; }
  .solution-workspace { min-height: 503px; grid-template-columns: 44px 1fr; }
  .solution-rail { padding-inline: 5px; }.solution-rail > i { width: 34px; height: 34px; }
  .solution-view { padding: 12px; }
  .solution-story { min-height: 430px; padding: 28px 24px; }
  .solution-story h3 { font-size: 3rem; }
  .today-kpis article { padding: 9px; }.today-agenda p { grid-template-columns: 40px 1fr; }.today-agenda p > em { display: none; }
  .planning-days { grid-template-columns: 55px repeat(7,1fr); }.room-grid { grid-template-columns: 55px repeat(7,1fr); height: 280px; }.planning-view footer em { display: none; }
  .residents-view > header label { min-width: 0; width: 34px; padding: 8px; }.residents-view > header label span { display: none; }
  .cat-cards article { grid-template-columns: 35px 1fr; padding: 7px; }.cat-avatar { width: 35px; height: 35px; }.cat-cards article > em { display: none; }
  .resident-file dl { grid-template-columns: 1fr; gap: 4px; }.resident-file dl div { padding: 6px 8px; }
  .stay-steps small { display: none; }.stay-focus p { grid-template-columns: 38px 1fr auto; }
  .cash-kpis { grid-template-columns: 1fr 1fr; }.cash-kpis article:last-child { display: none; }.cash-chart > div { height: 130px; }.cash-list { display: none; }
  .delivery-process { padding: 84px 12px 72px; }
  .journey-intro { grid-template-columns: 1fr; gap: 20px; }
  .journey-intro > p { margin: 0; }
  .journey-kicker { font-size: 2rem; }
  .delivery-steps { display: flex; gap: 10px; overflow-x: auto; border: 0; border-radius: 0; background: transparent; box-shadow: none; scroll-snap-type: x mandatory; backdrop-filter: none; }
  .delivery-step,.delivery-step:nth-child(4),.delivery-step:nth-child(5),.delivery-step:nth-child(6) { flex: 0 0 82vw; min-height: 320px; border: 1px solid rgba(10,13,18,.16); border-radius: 24px; background: rgba(255,255,255,.8); scroll-snap-align: center; }
  .delivery-step p { min-height: 0; }
  .journey-promise { justify-content: flex-start; flex-direction: column; gap: 4px; }
  .price-simulator { padding: 84px 12px 72px; }
  .price-intro { grid-template-columns: 1fr; gap: 20px; }
  .price-intro-copy { margin: 0; }
  .price-kicker { font-size: 2rem; }
  .price-workbench { border-radius: 24px; }
  .module-picker { padding: 24px 14px; }
  .module-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .module-card { min-height: 205px; padding: 14px; }
  .module-card strong { margin-top: 18px; }
  .estimate-panel { min-height: 540px; padding: 28px 20px; }
  .complexity-control label { align-items: flex-start; flex-direction: column; gap: 5px; }
  .estimate-result output { font-size: clamp(4.1rem,20vw,6.4rem); }
  .contact-world { grid-template-columns: 1fr; padding: 90px 18px; }
  .contact-intro h2 { font-size: 3.5rem; }
  .site-footer { grid-template-columns: 1fr; }
  .site-footer small { grid-column: auto; }
  .blog-page .site-header { grid-template-columns: 1fr auto; }
  .blog-page .nav-toggle { display: block; border: 0; background: transparent; font-weight: 700; }
  .blog-page .site-nav { position: absolute; top: 62px; left: 10px; right: 10px; display: none; flex-direction: column; align-items: stretch; padding: 18px; border: 1px solid var(--ink); background: white; }
  .blog-page .site-nav.is-open { display: flex; }
  .article-grid { grid-template-columns: 1fr; }
}

@media (min-width: 481px) and (max-width: 760px) {
  .flux-schematic { height: 590px; }
  .flux-persona { width: 58% !important; }
  .persona-sales { left: 2% !important; top: 3% !important; transform: rotate(-1.5deg); }
  .persona-direction { left: 40% !important; top: 19% !important; transform: rotate(1.5deg); }
  .persona-production { left: 19% !important; top: 56% !important; transform: rotate(-.8deg); }
  .flux-before > .flux-routes { opacity: .72; stroke-width: 3; }
  .impact-card.is-sorting .flux-persona { left: 50% !important; top: 46% !important; width: 56% !important; transform: translate(-50%,-50%) scale(.82); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .scene-loader i { animation: none; }
}

/* Trois niveaux visibles : display, texte courant, label. Aucun micro-texte. */
.eyebrow,
.scene-loader span,
.hero-principles,
.impact-instruction,
.deck-instruction,
.article-card > span,
.article-meta,
.contact-tags span,
.contact-form label span,
.form-note,
.site-footer small { font-size: var(--text-label); }

.site-nav a,
.header-contact,
.primary-action,
.site-footer nav a { font-size: var(--type-copy); }

.hero-subtitle,
.section-intro > p,
.impact-heading small,
.impact-result p,
.client-summary p,
.client-detail p,
.panel-copy p,
.article-card p { font-size: var(--text-body); }

.scene-idle span { font-size: var(--text-label); }
.scene-idle small { max-width: 520px; font-size: var(--type-copy); line-height: 1.45; letter-spacing: 0; }
.scene-promise > small { font-size: var(--type-copy); line-height: 1.48; }
.scene-pan-controls small,
.scene-status { font-size: var(--text-micro); }
.nested-fold button { font-size: var(--type-copy); }
.fold-content p,
.fold-content ul { font-size: var(--type-copy); line-height: 1.55; }

.impact-phase,
.impact-transform,
.impact-result > span,
.dashboard-title,
.shared-data-label,
.trade-time > header,
.time-released small { font-size: var(--text-micro); }

.persona-id b,
.persona-tab b,
.unified-app-head b,
.unified-database b,
.user-view b,
.diagram-node b,
.process-node b,
.dashboard-alert b,
.fragment-dashboard > header b,
.workshop-context b,
.workday-queue > header b,
.workday-card b,
.tender-folder > header b,
.tender-manual-steps b,
.parallel-card > header b,
.prepared-head b,
.prepared-work > header b,
.prepared-items b,
.ready-card b,
.human-check > header b,
.rules-input b,
.rules-engine b,
.rules-output b { font-size: var(--text-label); }

.persona-id small,
.persona-id em,
.persona-tab small,
.persona-tab em,
.flux-friction,
.unified-app-head small,
.unified-app-head > i,
.unified-sources span,
.unified-database small,
.user-view small,
.diagram-node small,
.process-node small,
.dashboard-kpi small,
.dashboard-alert small,
.fragment-dashboard > header small,
.fragment-dashboard > header em,
.fragment-kpis small,
.fragment-donut small,
.fragment-dashboard > footer,
.workshop-context small,
.workshop-context em,
.workday-queue > header span,
.workday-card > i,
.workday-card small,
.workday-card > em,
.tender-folder > header small,
.tender-folder > header > em,
.tender-manual-steps > span > i,
.tender-manual-steps small,
.tender-manual-steps em,
.tender-folder > footer,
.parallel-card > header small,
.parallel-card p,
.parallel-card > footer,
.site-progress b,
.buried-label,
.prepared-head small,
.prepared-head em,
.prepared-work > header em,
.prepared-items small,
.prepared-items article > em,
.ready-card small,
.ready-card > em,
.human-check > header small,
.human-check li,
.human-check li i,
.human-check li b,
.human-check button,
.process-wait,
.loop-person small,
.rules-input small,
.rules-engine small,
.rules-output small,
.rules-log { font-size: var(--text-micro); }

.cockpit-brand b,
.cockpit-chart > header b,
.cockpit-feed > header b,
.cockpit-feed li b { font-size: var(--text-label); }

.dashboard-conflict,
.cockpit-brand small,
.cockpit-live b,
.cockpit-live small,
.cockpit-tabs,
.cockpit-kpis small,
.cockpit-kpis em,
.cockpit-chart > header small,
.cockpit-chart > header em,
.cockpit-feed > header span,
.cockpit-feed li small,
.cockpit-feed li em,
.cockpit-feed > footer span { font-size: var(--text-micro); }

.client-detail small,
.client-shift small,
.panel-copy a,
.article-card time { font-size: var(--text-label); }

.ai-story > p,
.ai-intro > p,
.ai-system b,
.ai-plain-language b,
.ai-plain-language p,
.solution-story p,
.contact-intro > p:not(.eyebrow) { font-size: var(--type-copy); }

.ai-story > header span,
.ai-story > header small,
.ai-build-flow i,
.ai-build-flow small,
.ai-system span,
.ai-system small,
.ai-plain-language small,
.impact-schematic small,
.impact-schematic time,
.impact-schematic em,
.solution-screen small,
.solution-screen time,
.solution-screen em { font-size: var(--type-label); }

.impact-layer h2,
.ai-intro h2,
.section-intro h2,
.directions-title h2,
.contact-intro h2 { font-size: var(--type-display); }

.scene-promise,
.nested-fold,
.impact-transform,
.persona-avatar,
.persona-tab em,
.flux-friction,
.unified-database,
.dashboard-alert,
.buried-label,
.trade-time .ready-card > em,
.human-check button,
.process-wait,
.process-human,
.rules-output,
.cat-system,
.method-flow span:nth-of-type(3n),
.guard-diagram div:last-child,
.journal-stack a + a { background-attachment: local; }

@media (max-width: 760px) {
  .hero-subtitle { font-size: var(--type-copy); }
  .scene-promise > small { font-size: var(--type-copy); }
  .scene-promise.is-detail .capability-drawer { max-height: 430px; }
  .nested-fold button { font-size: var(--type-copy); }
  .fold-content p,
  .fold-content ul { font-size: var(--type-copy); }
  .impact-heading small { font-size: var(--type-copy); line-height: 1.5; }
  .impact-phase { max-width: 48%; line-height: 1.45; }
  .impact-result p { font-size: var(--type-copy); }
  .flux-schematic { height: 760px; }
  .visualize-schematic { height: 700px; }
  .workshop-schematic { height: 1120px; }
}
