/* Présentation dédiée aux articles Architecture EIP et ISP EIP. */
body:is(.architecture-discovery, .architecture-scientific, .isp-discovery, .isp-scientific){
  --eip-editorial-line:rgba(138,190,255,.2);
  --eip-editorial-panel:rgba(12,24,41,.72);
  --eip-editorial-accent:#80e5c1;
}

body:is(.architecture-discovery, .isp-discovery) .article-header h1{max-width:900px}
body:is(.architecture-discovery, .architecture-scientific, .isp-discovery, .isp-scientific) .article-header .article-date{color:#9eb1c8}
body:is(.architecture-discovery, .architecture-scientific, .isp-discovery, .isp-scientific) .story-question{
  margin:18px 0 26px;
  padding:0 0 0 17px;
  border-left:3px solid var(--eip-editorial-accent);
  color:var(--text);
  font-size:1.08rem;
  line-height:1.65;
}

/* Schémas pédagogiques de flux et d'architecture. */
body.architecture-discovery .frame-map,
body:is(.architecture-discovery, .architecture-scientific) .dual-path,
body:is(.isp-discovery, .isp-scientific) .pipeline-figure{
  width:100%;
  max-width:680px;
  margin:24px auto 30px;
}
body.architecture-discovery .frame-map-source{
  display:grid;
  justify-items:center;
  gap:4px;
  max-width:300px;
  margin:0 auto;
  padding:15px 20px;
  border:1px solid rgba(128,229,193,.3);
   border-radius:8px;
  background:linear-gradient(135deg,rgba(128,229,193,.1),rgba(107,184,255,.07));
  text-align:center;
}
body.architecture-discovery .frame-map-source span,
body.architecture-discovery .frame-map-source small{color:var(--muted);font-size:.78rem;line-height:1.45}
body.architecture-discovery .frame-map-source strong{font-size:1.1rem}
body.architecture-discovery .frame-map-branches{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:9px;
  margin-top:29px;
  padding-top:18px;
  border-top:1px solid var(--eip-editorial-line);
}
body.architecture-discovery .frame-map-branches > div{
  position:relative;
  display:grid;
  align-content:start;
  gap:6px;
  min-width:0;
  padding:12px 10px;
  border:1px solid var(--eip-editorial-line);
   border-radius:8px;
  background:var(--eip-editorial-panel);
}
body.architecture-discovery .frame-map-branches > div::before{
  position:absolute;
  bottom:100%;
  left:50%;
  height:19px;
  border-left:1px solid var(--eip-editorial-line);
  content:"";
}
body.architecture-discovery .frame-map-branches strong{font-size:.78rem;line-height:1.35}
body.architecture-discovery .frame-map-branches span{color:var(--muted);font-size:.7rem;line-height:1.4}
body:is(.architecture-discovery, .architecture-scientific) .frame-map figcaption,
body:is(.architecture-discovery, .architecture-scientific) .dual-path + figcaption,
body:is(.architecture-discovery, .architecture-scientific) .figure figcaption,
body:is(.isp-discovery, .isp-scientific) .pipeline-figure figcaption{
  margin:9px 4px 0;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.55;
}

body.architecture-discovery .dual-path{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:0;
}
body.architecture-discovery .dual-path-input{
  display:grid;
  justify-items:center;
  gap:5px;
  grid-column:1/-1;
  width:min(100%,300px);
  margin:0 auto 16px;
  padding:14px;
  border:1px solid var(--eip-editorial-line);
   border-radius:8px;
  background:var(--eip-editorial-panel);
  text-align:center;
}
body.architecture-discovery .dual-path-input span,
body.architecture-discovery .dual-path-output span{color:var(--muted);font-size:.82rem;line-height:1.5}
body.architecture-discovery .dual-path-output{
  position:relative;
  display:grid;
  align-content:start;
  gap:8px;
  min-width:0;
  padding:17px;
  border:1px solid var(--eip-editorial-line);
   border-radius:8px;
  background:var(--eip-editorial-panel);
}
body.architecture-discovery .dual-path-output::before{
  position:absolute;
  bottom:100%;
  left:50%;
  height:17px;
  border-left:1px solid var(--eip-editorial-line);
  content:"";
}
body.architecture-discovery .dual-path-output::after{
  position:absolute;
  bottom:calc(100% + 5px);
  left:calc(50% - 4px);
  width:7px;
  height:7px;
  border-right:1px solid var(--eip-editorial-accent);
  border-bottom:1px solid var(--eip-editorial-accent);
  content:"";
  transform:rotate(45deg);
}
body.architecture-discovery .dual-path-output.raw{border-color:rgba(128,229,193,.3)}
body.architecture-discovery .dual-path-output.visual{border-color:rgba(107,184,255,.3)}

body.architecture-discovery .architecture-stack{display:grid;gap:0;margin:0 auto}
body.architecture-discovery .architecture-stack > div{
  display:grid;
  grid-template-columns:minmax(115px,.7fr) minmax(0,1.3fr);
  gap:12px;
  align-items:center;
  min-width:0;
  padding:12px 14px;
  border:1px solid var(--eip-editorial-line);
  background:var(--eip-editorial-panel);
}
body.architecture-discovery .architecture-stack > div + div{border-top:0}
body.architecture-discovery .architecture-stack strong{color:var(--eip-editorial-accent);font-size:.84rem}
body.architecture-discovery .architecture-stack span{color:var(--muted);font-size:.78rem;line-height:1.45}
body.architecture-scientific .local-record-path{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:auto 24px auto;
  gap:0 14px;
  max-width:680px;
  margin:22px auto;
  padding:16px;
  border-top:1px solid var(--eip-editorial-line);
  border-bottom:1px solid var(--eip-editorial-line);
}
body.architecture-scientific .local-record-source{
  grid-column:1/-1;
  justify-self:center;
  padding:8px 16px;
  border:1px solid var(--eip-editorial-line);
  border-radius:8px;
  background:var(--eip-editorial-panel);
  font-size:.84rem;
}
body.architecture-scientific .local-record-branch{justify-self:center;color:var(--eip-editorial-accent);font-size:1rem;font-weight:800;line-height:24px}
body.architecture-scientific .local-record-target{
  display:grid;
  align-content:start;
  gap:6px;
  min-width:0;
  padding:12px;
  border:1px solid var(--eip-editorial-line);
  border-radius:8px;
  background:var(--eip-editorial-panel);
}
body.architecture-scientific .local-record-target strong{font-size:.84rem}
body.architecture-scientific .local-record-target span{color:var(--muted);font-size:.76rem;line-height:1.45}
body.architecture-scientific .local-record-target.optional{border-style:dashed}
body.architecture-discovery .figure.figure-chart{max-width:760px;margin-inline:auto}

/* Figures historiques du premier prototype PolarScope. */
body.prototype-history .prototype-history-grid{width:100%;max-width:680px;margin:20px auto 26px}
body.prototype-history .prototype-history-grid img{display:block;width:100%;height:auto}
body.prototype-history .prototype-cad{width:100%;max-width:360px;margin:20px auto 26px}
body.prototype-history .prototype-history-grid .figure img,
body.prototype-history .prototype-cad img{border:0;border-radius:0;background:none;box-shadow:none}

body:is(.architecture-discovery, .architecture-scientific) .buffer-timeline{display:grid;gap:10px;margin:20px 0;padding:14px;border-top:1px solid var(--eip-editorial-line);border-bottom:1px solid var(--eip-editorial-line)}
body:is(.architecture-discovery, .architecture-scientific) .buffer-time-axis{display:flex;justify-content:flex-end;gap:8px;padding-right:2%;color:var(--muted);font-size:.75rem;font-weight:700}
body:is(.architecture-discovery, .architecture-scientific) .buffer-timeline-row{display:grid;grid-template-columns:92px repeat(9,minmax(0,1fr));gap:4px;align-items:center;min-width:0}
body:is(.architecture-discovery, .architecture-scientific) .buffer-timeline-row > strong{grid-column:1;color:var(--muted);font-size:.76rem}
body:is(.architecture-discovery, .architecture-scientific) .buffer-bar{min-width:0;padding:9px 6px;border-radius:6px;color:var(--text);font-size:.74rem;font-weight:750;line-height:1.3;text-align:center;overflow-wrap:anywhere}
body:is(.architecture-discovery, .architecture-scientific) .buffer-bar.capture-n{grid-column:2/4;background:rgba(128,229,193,.17);border:1px solid rgba(128,229,193,.45)}
body:is(.architecture-discovery, .architecture-scientific) .buffer-bar.process-n{grid-column:4/8;background:rgba(107,184,255,.15);border:1px solid rgba(107,184,255,.42)}
body:is(.architecture-discovery, .architecture-scientific) .buffer-bar.capture-next{grid-column:4/6;background:rgba(128,229,193,.17);border:1px solid rgba(128,229,193,.45)}
body:is(.architecture-discovery, .architecture-scientific) .buffer-bar.process-next{grid-column:8/11;background:rgba(107,184,255,.15);border:1px solid rgba(107,184,255,.42)}

/* Deux chemins de prévisualisation et frontière RAW/ISP. */
body:is(.isp-discovery, .isp-scientific) .pipeline-figure{margin:22px auto 28px}
body:is(.isp-discovery, .isp-scientific) .pipeline-comparison{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:11px;
}
body:is(.isp-discovery, .isp-scientific) .pipeline-lane{
  min-width:0;
  padding:14px;
  border:1px solid var(--eip-editorial-line);
   border-radius:8px;
  background:var(--eip-editorial-panel);
}
body:is(.isp-discovery, .isp-scientific) .pipeline-lane.software{border-top:3px solid var(--good)}
body:is(.isp-discovery, .isp-scientific) .pipeline-lane.isp{border-top:3px solid var(--accent)}
body:is(.isp-discovery, .isp-scientific) .pipeline-lane h3{margin:0 0 10px;font-size:.94rem}
body:is(.isp-discovery, .isp-scientific) .pipeline-lane ol{display:grid;gap:6px;margin:0;padding:0;list-style:none;counter-reset:pipeline-step}
body:is(.isp-discovery, .isp-scientific) .pipeline-lane li{
  position:relative;
  min-width:0;
  padding:8px 9px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:7px;
  background:rgba(255,255,255,.025);
  font-size:.78rem;
  line-height:1.4;
  overflow-wrap:anywhere;
}
body:is(.isp-discovery, .isp-scientific) .pipeline-lane li + li::before{
  position:absolute;
  bottom:100%;
  left:50%;
  color:var(--muted);
  content:"↓";
  font-size:.72rem;
  line-height:1;
  transform:translate(-50%,-1px);
}
body:is(.isp-discovery, .isp-scientific) .raw-preserved{
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr) auto;
  gap:10px;
  align-items:center;
  grid-column:1/-1;
  min-width:0;
  padding:13px 15px;
  border:1px solid rgba(128,229,193,.32);
  border-left:4px solid var(--good);
   border-radius:8px;
  background:rgba(128,229,193,.055);
}
body:is(.isp-discovery, .isp-scientific) .raw-preserved strong{font-size:.85rem}
body:is(.isp-discovery, .isp-scientific) .raw-preserved span{color:var(--muted);font-size:.76rem;line-height:1.45}
body:is(.isp-discovery, .isp-scientific) .raw-preserved b{color:var(--good);font-size:.74rem;text-align:right}
body.isp-discovery .figure-grid.context{max-width:740px;margin-inline:auto}
body.isp-discovery .figure-grid.context .portrait{width:100%;max-width:260px;margin-inline:auto}
body:is(.isp-discovery, .isp-scientific) .isp-residual{width:100%;max-width:507px;margin-inline:auto}
body.isp-scientific .figure.compact{width:100%;max-width:520px;margin-inline:auto}
body.isp-scientific .figure.isp-residual{width:100%;max-width:507px;margin-inline:auto}
body.isp-discovery .isp-contrast-grid,
body.isp-discovery .isp-ownership-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:22px 0;
}
body.isp-discovery .isp-contrast-grid section,
body.isp-discovery .isp-ownership-grid section{
  min-width:0;
  padding:16px;
  border:1px solid var(--eip-editorial-line);
   border-radius:8px;
  background:var(--eip-editorial-panel);
}
body.isp-discovery .isp-contrast-grid h3,
body.isp-discovery .isp-ownership-grid h3{margin:0 0 8px;font-size:.97rem}
body.isp-discovery .isp-contrast-grid p,
body.isp-discovery .isp-ownership-grid ul{margin:0;color:var(--muted);font-size:.87rem;line-height:1.6}
body.isp-discovery .isp-ownership-grid ul{padding-left:1.2rem}
body.isp-discovery .isp-ownership-grid li{padding:3px 0}

/* Comparaison statique des diagnostics noir 64 / noir 0. */
body.isp-discovery .black-level-demo{
  margin:26px 0;
  padding:18px;
  border:1px solid var(--eip-editorial-line);
  border-radius:8px;
  background:linear-gradient(145deg,rgba(107,184,255,.055),rgba(128,229,193,.035)),var(--eip-editorial-panel);
}
body.isp-discovery .black-level-demo > h3{margin:0 0 5px;font-size:1.1rem}
body.isp-discovery .black-level-intro{margin:0 0 12px;color:var(--muted);font-size:.87rem;line-height:1.5}
body.isp-discovery .black-level-chart{margin:18px 0}
body.isp-discovery .black-level-range{margin:14px 0;padding:12px 0;border-top:1px solid var(--eip-editorial-line)}
body.isp-discovery .black-level-range-heading{display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px 12px;align-items:baseline}
body.isp-discovery .black-level-range-heading > strong{font-size:.87rem}
body.isp-discovery .black-level-range-heading > span{color:var(--muted);font-size:.77rem;font-variant-numeric:tabular-nums}
body.isp-discovery .black-level-range-heading b{color:var(--text)}
body.isp-discovery .black-level-range > p{margin:5px 0 8px;color:var(--muted);font-size:.78rem;line-height:1.45}
body.isp-discovery .black-level-track{display:flex;width:100%;height:15px;overflow:hidden;border-radius:6px;background:rgba(255,255,255,.07)}
body.isp-discovery .black-level-track.split span:first-child{flex:64 0 0;background:rgba(255,173,117,.78)}
body.isp-discovery .black-level-track.split span:last-child{flex:959 0 0;background:rgba(128,229,193,.62)}
body.isp-discovery .black-level-track.full span{width:100%;background:rgba(128,229,193,.62)}
body.isp-discovery .black-level-track-labels{position:relative;display:flex;justify-content:space-between;align-items:center;margin-top:5px;color:var(--muted);font-size:.68rem;font-variant-numeric:tabular-nums}
body.isp-discovery .black-level-track-labels .black-level-midpoint{position:absolute;left:6.255%;transform:translateX(-50%)}
body.isp-discovery .black-level-output{margin:3px 0 0;color:var(--muted);font-size:.68rem;text-align:right}
body.isp-discovery .black-level-chart figcaption{margin-top:12px;color:var(--muted);font-size:.75rem;line-height:1.5}
body.isp-discovery .black-level-explanation,
body.isp-discovery .black-level-production{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--eip-editorial-line);font-size:.86rem;line-height:1.6}
body.isp-discovery .black-level-explanation{color:var(--muted)}
body.isp-discovery .black-level-production{color:#cdeee4}
body.isp-discovery .black-level-production strong{color:var(--good)}
body.isp-discovery .performance-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:22px 0}
body.isp-discovery .performance-card{padding:16px;border:1px solid var(--eip-editorial-line);border-radius:8px;background:var(--eip-editorial-panel)}
body.isp-discovery .performance-card h3{margin:0 0 13px;font-size:.97rem}
body.isp-discovery .performance-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
body.isp-discovery .performance-pair > div{display:grid;gap:5px;min-width:0;padding:10px 12px;border:0;border-radius:0;background:transparent}
body.isp-discovery .performance-pair > div + div{border-left:1px solid var(--eip-editorial-line)}
body.isp-discovery .performance-pair strong{color:var(--muted);font-size:.73rem;text-transform:uppercase;letter-spacing:0}
body.isp-discovery .performance-pair b{font-size:1.14rem;font-variant-numeric:tabular-nums}
body.isp-discovery .performance-pair span{color:var(--muted);font-size:.79rem;line-height:1.45}
body.isp-discovery .performance-card > p{margin:12px 0 0;color:var(--good);font-size:.85rem;font-weight:700;line-height:1.5}
body:is(.architecture-discovery, .isp-discovery) .learning-summary{margin:32px 0;padding-top:15px;border-top:1px solid var(--eip-editorial-line)}
body:is(.architecture-discovery, .isp-discovery) .learning-summary > h2{margin:0 0 15px;font-size:1.4rem}
body:is(.architecture-discovery, .isp-discovery) .learning-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
body:is(.architecture-discovery, .isp-discovery) .learning-summary-grid > div{min-width:0;padding:0 18px 0 0}
body:is(.architecture-discovery, .isp-discovery) .learning-summary-grid > div + div{padding:0 0 0 18px;border-left:1px solid var(--eip-editorial-line)}
body:is(.architecture-discovery, .isp-discovery) .learning-summary-grid h3{margin:0 0 8px;color:var(--text);font-size:.95rem}
body:is(.architecture-discovery, .isp-discovery) .learning-summary-grid ul{margin:0;padding-left:1.15rem}
body:is(.architecture-discovery, .isp-discovery) .learning-summary-grid li{padding:4px 0;color:var(--muted);font-size:.85rem;line-height:1.5}

/* Les tableaux scientifiques gardent leurs en-têtes et défilent dans leur propre région sur petit écran. */
body.eip-scientific .table-scroll{
  max-width:100%;
  margin:18px 0 24px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  border:1px solid var(--eip-editorial-line);
   border-radius:8px;
  scrollbar-color:rgba(107,184,255,.58) rgba(255,255,255,.04);
}
body.eip-scientific .table-scroll:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
body.eip-scientific .table-scroll table{width:100%;min-width:610px;margin:0;border-collapse:collapse;font-size:.86rem;line-height:1.5;font-variant-numeric:tabular-nums lining-nums}
body.eip-scientific .table-scroll caption{padding:11px 12px 4px;color:var(--text);font-size:.85rem;font-weight:750;line-height:1.45;text-align:left}
body.eip-scientific .table-scroll th,
body.eip-scientific .table-scroll td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;overflow-wrap:anywhere}
body.isp-scientific .table-scroll .result-status{white-space:nowrap;overflow-wrap:normal}
body.eip-scientific .table-scroll thead th{color:#cfe6ff}
body.eip-scientific .table-scroll tbody tr:last-child > *{border-bottom:0}
body.eip-scientific .table-scroll tbody tr:nth-child(even){background:rgba(255,255,255,.018)}
body.eip-scientific .figure.figure-chart{max-width:760px;margin-inline:auto}

@media(max-width:760px){
  body.architecture-discovery .frame-map-branches{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.architecture-discovery .frame-map-branches > div:last-child{grid-column:1/-1}
  body.isp-discovery .figure-grid.context{grid-template-columns:minmax(0,1fr)}
  body.isp-discovery .performance-cards{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:600px){
  body.architecture-discovery .frame-map-branches{gap:7px;margin-top:23px;padding-top:14px}
  body.architecture-discovery .frame-map-branches > div{padding:10px 8px}
  body.architecture-discovery .frame-map-branches strong{font-size:.74rem}
  body.architecture-discovery .frame-map-branches span{font-size:.68rem}
  body.architecture-discovery .dual-path,
  body.isp-discovery .isp-contrast-grid,
  body.isp-discovery .isp-ownership-grid{grid-template-columns:minmax(0,1fr)}
  body:is(.architecture-discovery, .isp-discovery) .learning-summary-grid{grid-template-columns:minmax(0,1fr);gap:14px}
  body:is(.architecture-discovery, .isp-discovery) .learning-summary-grid > div,
  body:is(.architecture-discovery, .isp-discovery) .learning-summary-grid > div + div{padding:0;border:0}
  body.architecture-discovery .dual-path-input{grid-column:auto;margin-bottom:13px}
  body.architecture-discovery .dual-path-output::before{height:14px}
  body.architecture-discovery .architecture-stack > div{grid-template-columns:minmax(0,1fr);gap:5px}
  body.architecture-scientific .local-record-path{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 24px 24px auto auto;gap:0;padding:12px}
  body.architecture-scientific .local-record-source{grid-column:auto}
  body:is(.architecture-discovery, .architecture-scientific) .buffer-timeline-row{grid-template-columns:62px repeat(9,minmax(0,1fr));gap:2px}
  body:is(.architecture-discovery, .architecture-scientific) .buffer-timeline-row > strong{font-size:.68rem}
  body:is(.architecture-discovery, .architecture-scientific) .buffer-bar{padding:8px 3px;font-size:.67rem}
  body:is(.isp-discovery, .isp-scientific) .pipeline-comparison{grid-template-columns:minmax(0,1fr)}
  body:is(.isp-discovery, .isp-scientific) .raw-preserved{grid-template-columns:minmax(0,1fr);gap:5px}
  body:is(.isp-discovery, .isp-scientific) .raw-preserved b{text-align:left}
  body.isp-discovery .performance-pair{gap:6px}
  body.isp-discovery .performance-pair > div{padding:10px 8px}
  body.isp-discovery .performance-pair b{font-size:1rem}
  body.isp-discovery .performance-pair span{font-size:.73rem}
  body.isp-discovery .black-level-demo{padding:14px}
  body.eip-scientific .table-scroll table{min-width:590px;font-size:.82rem}
  body.eip-scientific .table-scroll th,
  body.eip-scientific .table-scroll td{padding:8px 9px}
}
@media(prefers-reduced-motion:reduce){
  body:is(.architecture-discovery, .architecture-scientific, .isp-discovery, .isp-scientific) *,
  body:is(.architecture-discovery, .architecture-scientific, .isp-discovery, .isp-scientific) *::before,
  body:is(.architecture-discovery, .architecture-scientific, .isp-discovery, .isp-scientific) *::after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important}
}
