
:root{--bg:#1d1d1b;--text:#faf9f3;--muted:#aaa79e;--faint:#96948c;--line:#4a4a44;--line-soft:#31312d;--accent:#97af1e;--llsh:#d2a85f;--dsa:#89a8c6;--sci:#70aaa0;--sante:#c97b74;--staps:#a58abd;--inter:#a8ad94}
*{box-sizing:border-box} html,body{margin:0;width:100%;min-width:320px;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif} body{overflow-x:hidden} button,input{font:inherit} button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.app{height:100vh;min-height:790px;max-width:1920px;margin:0 auto;padding:20px 28px 14px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;gap:0;overflow:hidden}
.hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:start;padding-bottom:10px}.kicker{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:760} h1{font-size:clamp(28px,3.3vw,52px);line-height:1.02;letter-spacing:-.052em;font-weight:560;margin:10px 0 10px} .intro{max-width:900px;color:var(--muted);font-size:13px;line-height:1.52;margin:0}
.hero-stat{text-align:right;min-width:210px;padding-top:2px}.hero-stat .year{font-size:clamp(36px,3.2vw,52px);line-height:.92;letter-spacing:-.05em;color:var(--accent);font-weight:700}.hero-stat .total{font-size:clamp(28px,2.6vw,40px);line-height:.95;letter-spacing:-.05em;font-variant-numeric:tabular-nums;margin-top:7px}.hero-stat .unit{font-size:12px;color:var(--muted);margin-top:4px}
.toprail{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:7px 0}.breadcrumbs,.rail-actions,.timeline-left{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.breadcrumbs-wrap{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}.trail-label{font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:#8c897f;padding-left:2px}.trail-sep{color:#67645d;font-size:12px;line-height:1}.pill,.crumb{border:1px solid #45453f;background:transparent;color:#bbb9b1;border-radius:999px;min-height:34px;padding:0 11px;font-size:10.5px;cursor:pointer;white-space:nowrap;transition:border-color .16s ease,color .16s ease,background-color .16s ease,transform .16s ease}.crumb{position:relative}.crumb.active{border-color:#9a978d;color:var(--text);background:rgba(250,249,243,.04)}.pill:hover,.crumb:hover{border-color:#7c7a72;color:var(--text);background:rgba(250,249,243,.03)}.pill:active,.crumb:active{transform:translateY(1px)} .play{min-width:86px}
.scene{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr)} .scene-meta{display:flex;justify-content:space-between;gap:18px;color:var(--faint);font-size:10px;padding:7px 0 6px}.scene-meta strong{color:#d6d4cb;font-weight:650}.stage{min-height:0;position:relative;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);overflow:hidden} #viz{width:100%;height:100%;display:block}
.inspector{position:absolute;right:0;top:0;bottom:0;width:262px;padding:16px 15px 15px 18px;border-left:1px solid rgba(71,70,63,.9);background:linear-gradient(90deg,rgba(29,29,27,.08),rgba(24,24,22,.92) 14%,rgba(22,22,20,.98) 100%);box-shadow:inset 1px 0 0 rgba(255,255,255,.02);overflow:auto} .smallcaps{font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:#85837b}.selType{display:inline-flex;align-items:center;gap:6px;width:max-content;min-height:24px;padding:0 10px;border:1px solid rgba(123,137,41,.38);border-radius:999px;background:rgba(166,191,45,.06);font-size:9px;letter-spacing:.11em;text-transform:uppercase;color:var(--accent);margin-top:10px}.inspector h2{font-size:18px;line-height:1.14;margin:8px 0 0;font-weight:650;letter-spacing:-.015em}.selPathLabel{font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:#77756e;margin-top:16px}.selPath{display:grid;gap:6px;margin-top:8px;padding:10px 0 12px;border-bottom:1px solid var(--line-soft)}.selPathItem{display:grid;grid-template-columns:12px minmax(0,1fr);gap:6px;align-items:start;color:#8f8c84;font-size:9.3px;line-height:1.32;padding:2px 0}.selPathItem.current{color:#f1eee6;background:linear-gradient(90deg,rgba(166,191,45,.08),rgba(166,191,45,0));border-radius:8px;padding:4px 6px 4px 0}.selPathMarker{color:#625f58}.selPathItem.current .selPathMarker{color:var(--accent)}.selPathText{min-width:0;overflow-wrap:anywhere}.selValue{font-size:32px;line-height:.96;letter-spacing:-.045em;font-variant-numeric:tabular-nums;margin-top:14px}.selShare{font-size:10.8px;color:var(--muted);margin-top:6px}.selDelta{font-size:10.8px;line-height:1.45;color:#d4d1c9;border-top:1px solid var(--line-soft);padding-top:11px;margin-top:14px}.selNote{font-size:9.8px;line-height:1.5;color:#8b8981;margin-top:10px}
.col-guide{stroke:#292925;stroke-width:1}.link{fill:none;stroke:#54534d;stroke-width:1.02;stroke-linecap:round;opacity:.28;vector-effect:non-scaling-stroke;transition:opacity .18s ease,stroke-width .18s ease,stroke .18s ease}.link.path{opacity:.96;stroke:#ddd8cb;stroke-width:1.16}.node text{pointer-events:none}.halo{opacity:.042;transition:opacity .18s ease}.halo.active{opacity:.082}.cluster{opacity:.96;transition:filter .18s ease,opacity .18s ease}.node.active .cluster{opacity:1;filter:brightness(1.02) saturate(1.02)}.hit{fill:transparent;cursor:pointer}.ring{fill:none;stroke:#ddd8cb;stroke-width:.82;opacity:0;transition:opacity .18s ease,stroke-width .18s ease}.node.active .ring{opacity:.74}.node:hover .ring,.node:focus-within .ring{opacity:.36}.node:hover .cluster,.node:focus-within .cluster{filter:brightness(1.05) saturate(1.04)}.node:hover .halo,.node:focus-within .halo{opacity:.068}.node:hover .value,.node:focus-within .value{fill:#b7b4aa}.label{fill:#f2f1ea;font-size:9.2px;font-weight:620}.label.dense{font-size:8.3px}.value{fill:#9c9a92;font-size:7.8px;font-variant-numeric:tabular-nums;transition:fill .18s ease}.value.dense{font-size:7px}.depth-label{fill:#66655f;font-size:8.4px;letter-spacing:.08em;text-transform:uppercase}.unavailable{fill:none;stroke:#66645d;stroke-width:1;stroke-dasharray:3 4}
.availability-note{fill:#7d7b74;font-size:10px;text-anchor:middle}.availability-note .strong{fill:#9a978e}
.timeline{padding:10px 0 2px}.timeline-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.timeline-head strong{font-size:26px;color:#eeece6;letter-spacing:-.03em}.timeline-caption{font-size:10.5px;color:#8a877e}.timeline input{width:100%;accent-color:var(--accent);margin-top:6px}.year-ticks{display:grid;grid-template-columns:repeat(19,minmax(0,1fr));gap:0;margin-top:2px}.year-tick{text-align:center;font-size:9px;line-height:1.24;color:#7b7971;padding-top:5px;border-top:1px solid #3a3a35;white-space:nowrap;cursor:pointer}.year-tick.active{color:#f0ede5;font-weight:680;border-top-color:var(--accent)}.timeline-foot{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:var(--faint);font-size:9.2px;margin-top:5px}.footerline{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:#7a776f;font-size:9px;padding-top:10px;margin-top:8px;border-top:1px solid var(--line-soft)} .footerline a,.method-grid a{color:#cfcbbf;text-decoration:none;border-bottom:1px solid rgba(207,203,191,.25)} .footerline a:hover,.method-grid a:hover{color:#faf9f3;border-bottom-color:rgba(250,249,243,.55)}
.method-dialog{width:min(1030px,calc(100% - 34px));max-height:calc(100% - 34px);border:1px solid #44443f;border-radius:18px;background:#232320;color:var(--text);padding:0;box-shadow:0 24px 70px rgba(0,0,0,.42)}.method-dialog::backdrop{background:rgba(10,10,9,.72)}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 25px 18px;border-bottom:1px solid var(--line-soft)}.dialog-head h2{font-size:26px;letter-spacing:-.03em;margin:5px 0 0}.close{border:0;background:transparent;color:#bbb9b1;font-size:27px;cursor:pointer}.method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 32px;padding:24px 25px 30px}.method-grid h3{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#efede5;margin:0 0 7px}.method-grid p{font-size:11px;line-height:1.55;color:#aaa79e;margin:0 0 8px}.method-grid strong{color:#ddd9d0}
@media(min-width:1500px){h1{white-space:nowrap}} @media(max-width:1200px){.year-tick{font-size:8.4px}} @media(max-width:1100px){.app{height:auto;min-height:0;overflow:visible;padding:18px 14px}.hero{grid-template-columns:1fr}.hero-stat{text-align:left}.stage{height:720px}.inspector{position:static;width:auto;border-left:0;border-top:1px solid var(--line-soft);background:none}.method-grid{grid-template-columns:1fr}h1{white-space:normal}} @media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

.breadcrumbs-wrap{row-gap:5px}
.intro-grid .intro-span{grid-column:1 / -1}
.intro-card{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.demo-card{display:grid;grid-template-columns:1.15fr 1fr auto;align-items:center;gap:18px;padding:16px 18px;border:1px solid #42423d;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.015));cursor:pointer;transition:border-color .18s ease, transform .18s ease, background .18s ease}
.demo-card:hover,.demo-card:focus-visible{border-color:#6e6b62;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));transform:translateY(-1px);outline:none}
.demo-title{font-size:14px;line-height:1.2;color:#f1eee7;font-weight:620}.demo-subtitle{font-size:11px;line-height:1.45;color:#98958c;margin-top:5px}.demo-cta{font-size:11px;letter-spacing:.03em;color:#d8d4c9;white-space:nowrap}
.demo-svg{width:100%;max-width:380px;height:auto;overflow:visible}.demo-ring{fill:none;stroke:#d8d4c9;stroke-width:1.15;opacity:.75}.demo-ring-sm{opacity:.55}.demo-dot{fill:#d2a85f}.demo-dot-main{animation:demoPulse 2.2s ease-in-out infinite}.demo-dot-sm{animation:demoReveal 2.2s ease-in-out infinite}
.demo-link{fill:none;stroke:#d8d4c9;stroke-width:1.15;stroke-linecap:round;opacity:.55;stroke-dasharray:160;stroke-dashoffset:160;animation:demoDraw 2.2s ease-in-out infinite}
.demo-link:nth-of-type(2),.demo-dot-sm:nth-of-type(2){animation-delay:.12s}.demo-link:nth-of-type(3),.demo-dot-sm:nth-of-type(3){animation-delay:.22s}
@keyframes demoPulse{0%,18%,100%{transform:scale(1);opacity:1}9%{transform:scale(1.08);opacity:1}}
@keyframes demoDraw{0%,14%{stroke-dashoffset:160;opacity:0}28%,78%{stroke-dashoffset:0;opacity:.55}100%{stroke-dashoffset:0;opacity:.2}}
@keyframes demoReveal{0%,18%{opacity:0;transform:scale(.72)}30%,82%{opacity:1;transform:scale(1)}100%{opacity:.7;transform:scale(1)}}
.method-dialog[open]{animation:dialogFade .18s ease-out}.method-dialog::backdrop{animation:backdropFade .18s ease-out}
@keyframes dialogFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes backdropFade{from{background:rgba(10,10,9,0)}to{background:rgba(10,10,9,.72)}}
@media(max-width:1100px){.demo-card{grid-template-columns:1fr;align-items:start}.demo-svg{max-width:320px}.demo-cta{padding-top:4px}}

.mobile-range{display:none}
@media (min-width:768px) and (max-width:1099px){
  .app{height:auto;min-height:100dvh;overflow:visible;padding:18px 18px 14px}
  .hero{grid-template-columns:minmax(0,1fr) auto;gap:18px}
  h1{font-size:clamp(30px,5vw,46px);white-space:normal}
  .intro{max-width:720px;font-size:12px}
  .hero-stat{text-align:right;min-width:170px}
  .toprail{align-items:flex-start;flex-wrap:wrap}.breadcrumbs-wrap{flex:1 1 100%}.rail-actions{margin-left:auto}
  .stage{height:auto;overflow:visible}.stage #viz{height:680px}.inspector{position:static;width:auto;border-left:0;border-top:1px solid var(--line-soft);background:none;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px 26px;align-items:start}
  .inspector .smallcaps,.inspector h2{grid-column:1}.selValue{grid-column:2;grid-row:1 / span 2;margin-top:0}.selShare{grid-column:3;grid-row:1 / span 2;margin-top:4px}.selDelta,.selNote{grid-column:1 / -1}
  .year-tick{font-size:7.8px}.method-grid{grid-template-columns:1fr 1fr}.intro-grid .intro-span{grid-column:1 / -1}
}
@media (max-width:767px){
  body{overflow-x:hidden}.app{height:auto;min-height:100dvh;overflow:visible;padding:14px 12px 12px;display:block}
  .hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;padding-bottom:10px}.hero-copy{min-width:0}.kicker{font-size:8.5px;letter-spacing:.13em}.hero h1{font-size:clamp(28px,8.4vw,38px);line-height:.96;white-space:normal;margin:8px 0 8px}.intro{font-size:11.5px;line-height:1.45;max-width:none}.hero-stat{min-width:112px;text-align:right}.hero-stat .year{font-size:clamp(31px,9vw,42px)}.hero-stat .total{font-size:clamp(24px,7vw,32px)}.hero-stat .unit{font-size:10px}
  .toprail{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:8px 0}.breadcrumbs-wrap{display:block;overflow:hidden}.trail-label{margin-bottom:6px}.breadcrumbs{display:flex;flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}.breadcrumbs::-webkit-scrollbar{display:none}.crumb{min-height:32px;font-size:9.5px;padding:0 9px}.trail-sep{flex:0 0 auto}.rail-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.rail-actions .pill{min-height:40px}.rail-actions #methodBtn{grid-column:1 / -1}
  .scene-meta{font-size:9px;line-height:1.35;align-items:flex-start}.scene-meta>div:last-child{text-align:right;max-width:145px}
  .stage{height:auto;overflow:visible;border-bottom:1px solid var(--line-soft)}.stage #viz{height:var(--mobile-viz-height,520px);width:100%;display:block}.inspector{position:static;width:auto;border-left:0;border-top:1px solid var(--line-soft);background:none;padding:14px 2px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px}.inspector .smallcaps,.inspector h2,.selShare,.selDelta,.selNote{grid-column:1}.inspector h2{font-size:15px}.selValue{grid-column:2;grid-row:1 / span 2;font-size:28px;margin-top:0}.selShare{font-size:10px}.selDelta,.selNote{grid-column:1 / -1}.selDelta{margin-top:8px}.selNote{margin-top:2px}
  .depth-label,.col-guide{display:none}.label{font-size:9.3px}.label.dense{font-size:8.5px}.value{font-size:8px}.value.dense{font-size:7.3px}.link{stroke-width:1.05}.link.path{stroke-width:1.2}
  .timeline{padding-top:12px}.timeline-head{align-items:center}.timeline-left{gap:8px}.timeline-head strong{font-size:24px}.timeline-caption{display:none}.timeline input{margin-top:8px;height:28px}.year-ticks{display:none}.mobile-range{display:flex;justify-content:space-between;color:#77746b;font-size:9px;margin-top:-2px}.timeline-foot{font-size:8.5px;line-height:1.35}.timeline-foot span:nth-child(2){display:none}
  .footerline{font-size:8.7px;line-height:1.45;display:block}.footerline span{display:block;margin-top:5px}
  .method-dialog{width:calc(100% - 12px);max-height:calc(100dvh - 12px);border-radius:16px}.dialog-head{position:sticky;top:0;z-index:2;background:#232320;padding:18px 18px 14px}.dialog-head h2{font-size:23px;line-height:1.05}.method-grid{grid-template-columns:1fr;gap:20px;padding:18px 18px 24px}.intro-grid .intro-span{grid-column:auto}.method-grid p{font-size:11.5px}.demo-card{grid-template-columns:1fr;padding:14px}.demo-svg{max-width:300px;margin:0 auto}.demo-cta{display:flex;justify-content:center;align-items:center;min-height:44px;border:1px solid #4a4943;border-radius:999px;padding:0 14px}.close{min-width:44px;min-height:44px}
}

.node-label{transition:opacity .18s ease}.node-label.is-hidden{opacity:0;visibility:hidden}.node.label-hidden .hit{cursor:help}.node.label-hidden:hover .ring,.node.label-hidden:focus-within .ring{opacity:.58;stroke-width:1.04}
.node-tooltip{position:absolute;z-index:8;min-width:158px;max-width:240px;padding:10px 12px;border:1px solid rgba(111,108,99,.88);border-radius:12px;background:rgba(22,22,20,.94);backdrop-filter:blur(8px);box-shadow:0 12px 34px rgba(0,0,0,.28);color:#f4f1e8;pointer-events:none;opacity:0;transform:translateY(5px);transition:opacity .14s ease,transform .14s ease}.node-tooltip.show{opacity:1;transform:translateY(0)}.node-tooltip em{display:block;font-style:normal;font-size:8.2px;letter-spacing:.12em;text-transform:uppercase;color:#a6bf2d;margin-bottom:4px}.node-tooltip strong{display:block;font-size:11px;line-height:1.25;font-weight:650}.node-tooltip span{display:block;margin-top:4px;color:#b2aea4;font-size:9.5px;font-variant-numeric:tabular-nums}
@media(max-width:767px){.node-label.is-hidden{opacity:1;visibility:visible}.node-tooltip{display:none}}

@media(max-width:1100px){
  .inspector .selType,.inspector .selPathLabel,.inspector .selPath{grid-column:1 / -1}
  .inspector .selPath{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 16px;padding-bottom:10px}
}
@media(max-width:767px){
  .inspector .selPath{grid-template-columns:1fr}
  .inspector .selType{margin-top:5px}
  .inspector .selPathLabel{margin-top:10px}
  .inspector .selPathItem{font-size:9px}
}

.scene-meta{padding:0 2px 2px}.scene-meta strong{color:#f2efe8;font-weight:650}.stage{border-top:1px solid rgba(255,255,255,.02)}
.inspector::-webkit-scrollbar{width:10px}.inspector::-webkit-scrollbar-thumb{background:rgba(99,98,91,.45);border-radius:999px;border:2px solid rgba(0,0,0,0)}
.footerline{padding-right:2px}.footerline span:last-child{text-align:right}

.pill:focus-visible,.crumb:focus-visible,.hit:focus-visible{outline:2px solid rgba(166,191,45,.72);outline-offset:2px}

/* Couche de publication Manoux Lab : le moteur de dataviz reste autonome. */
h1,h2,h3{font-family:inherit;color:inherit}
.skip-link{position:fixed;z-index:100;top:10px;left:10px;padding:9px 12px;border-radius:8px;background:#faf9f3;color:#1d1d1b;font-size:13px;font-weight:700;transform:translateY(-180%);transition:transform .15s ease}
.skip-link:focus{transform:translateY(0)}
.pill:disabled{opacity:.42;cursor:not-allowed;transform:none}
.hit:focus-visible{outline:none;stroke:var(--accent);stroke-width:2px}
.year-tick{appearance:none;width:100%;min-width:0;background:transparent;border:0;border-top:1px solid #3a3a35;font:inherit}
.year-tick:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
.lab-links{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.manoux-signature{display:inline-flex;align-items:center;gap:6px}
.manoux-signature picture,.manoux-signature img{display:block;flex:0 0 auto}
.keywords{max-width:44rem}
.noscript{margin:12px 28px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#252522;color:var(--text);font-size:13px;line-height:1.5}
.noscript a{color:var(--text)}
.trail-label,.scene-meta,.timeline-caption,.timeline-foot,.footerline,.smallcaps,.selPathLabel,.selNote{color:var(--faint)}
@media(hover:none),(pointer:coarse){.pill,.crumb,.year-tick{min-height:44px}}
@media(max-width:767px){.lab-links{justify-content:flex-start;margin-top:8px}.year-tick{min-height:0}.noscript{margin:12px}}
@media(max-width:767px){.method-dialog{box-sizing:border-box;width:calc(100vw - 24px);max-width:calc(100vw - 24px);margin:auto;overflow-x:hidden}.dialog-head h2{overflow-wrap:anywhere}}
