:root{
  --bg:#333333;
  --bg2:#292929;
  --panel:#3b3b3b;
  --panel2:#454545;
  --ink:#f4f4f1;
  --muted:#d8d8d1;
  --soft:#bdbdb6;
  --accent:#97af1e;
  --accent2:#c6df4d;
  --line:rgba(255,255,255,.14);
  --line2:rgba(151,175,30,.45);
  --shadow:0 18px 42px rgba(0,0,0,.28);
  --radius:20px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at top left,rgba(151,175,30,.09),transparent 32rem),linear-gradient(180deg,#383838 0,#303030 42rem,#333 100%);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:16px;line-height:1.55}
img{display:block;max-width:100%;height:auto}
a{color:var(--accent2);text-decoration-thickness:.08em;text-underline-offset:.18em}
a:hover{color:#e4f78a}
.archive-notice{min-height:42px;display:flex;gap:12px;align-items:center;justify-content:center;padding:9px 18px;background:#242424;border-bottom:1px solid var(--line);color:#ededed;font-size:14px;line-height:1.35;text-align:center}.archive-notice a{font-weight:700;text-decoration:none}.archive-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:24px 0 48px}.archive-section{margin-top:22px}.archive-hero,.panel,.timeline-widget,.notes,.piece-card,.module-card,.source-card,.cc-card{background:rgba(59,59,59,.93);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.archive-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:22px;align-items:center;padding:28px}.hero-media{margin:0;background:#202020;border:1px solid var(--line);border-radius:18px;padding:10px}.hero-media img{border-radius:12px;aspect-ratio:16/9;object-fit:cover}.hero-media figcaption{margin-top:10px;color:var(--soft);font-size:13px}.eyebrow{margin:0 0 10px;color:var(--accent2);font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.archive-hero h1,.page-hero h1{margin:0 0 14px;font-size:clamp(2rem,4vw,3.6rem);line-height:.98;letter-spacing:-.03em}.archive-lead,.page-lead{max-width:74ch;margin:0;color:#eeeeea;font-size:18px;line-height:1.62}.hero-actions,.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 15px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--ink);font-weight:750;text-decoration:none}.btn:hover{border-color:var(--accent2);color:#fff}.btn-primary{background:var(--accent);border-color:var(--accent);color:#151515}.btn-primary:hover{color:#000;background:var(--accent2)}.section-heading{display:flex;justify-content:space-between;gap:24px;align-items:end;margin:0 0 14px}.section-heading h2{margin:0;font-size:clamp(1.35rem,2.6vw,2.1rem);letter-spacing:-.025em}.section-heading p{margin:6px 0 0;max-width:70ch;color:var(--muted)}.module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.module-card{padding:16px;min-height:168px;display:flex;flex-direction:column}.module-card h3{margin:0 0 8px;font-size:1.05rem}.module-card p{margin:0;color:var(--muted);font-size:14.5px;line-height:1.48}.module-card .card-actions{margin-top:auto;display:flex;flex-wrap:wrap;gap:8px;padding-top:14px}.small-link{display:inline-flex;min-height:34px;align-items:center;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.045);font-size:13px;font-weight:700;text-decoration:none}.principles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.principle{padding:15px;background:rgba(255,255,255,.045);border:1px solid var(--line);border-radius:16px}.principle strong{display:block;margin-bottom:6px;color:#fff}.principle span{color:var(--muted);font-size:14px}.page-hero{padding:26px 0 6px}.timeline-widget{padding:14px}.timeline-controls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.timeline-filter{min-height:34px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.05);color:var(--ink);padding:0 11px;font-weight:750;cursor:pointer}.timeline-filter.is-active,.timeline-filter:hover{background:var(--accent);border-color:var(--accent);color:#151515}.timeline-layout{display:grid;grid-template-columns:370px minmax(0,1fr);gap:14px;min-height:520px}.timeline-track{display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 215px);min-height:460px;overflow:auto;padding-right:4px}.timeline-point{width:100%;display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px;align-items:start;text-align:left;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.045);color:var(--ink);padding:11px;cursor:pointer}.timeline-point:hover,.timeline-point.is-active{border-color:var(--accent2);background:rgba(151,175,30,.13)}.timeline-point-date{display:block;color:var(--accent2);font-size:12px;font-weight:900;letter-spacing:.05em}.timeline-point-type{display:block;color:var(--soft);font-size:12px;line-height:1.3}.timeline-point strong{display:block;font-size:14.5px;line-height:1.25}.timeline-detail{background:#f7f7f2;color:#1f1f1b;border-radius:16px;padding:20px;min-height:460px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}.timeline-detail-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.timeline-detail-date,.timeline-detail-category{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:900}.timeline-detail-date{background:#1f1f1b;color:#fff}.timeline-detail-category{background:#dfe6b6;color:#1f1f1b}.timeline-detail h3{margin:0 0 10px;color:#111;font-size:clamp(1.45rem,3vw,2.2rem);letter-spacing:-.03em}.timeline-detail p{color:#333;font-size:16px;line-height:1.62}.timeline-detail-summary{font-weight:750}.timeline-detail-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.timeline-detail-link{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border-radius:999px;background:#333;color:#fff;text-decoration:none;font-size:14px;font-weight:800}.timeline-detail-link:hover{background:#111;color:#fff}.timeline-media{margin:14px 0 0;border-radius:14px;overflow:hidden;border:1px solid rgba(0,0,0,.12);background:#e5e5dc}.timeline-media img{width:100%;max-height:320px;object-fit:contain;background:#eee}.piece-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.piece-card{overflow:hidden;background:rgba(59,59,59,.96)}.piece-card figure{margin:0;background:#222;border-bottom:1px solid var(--line)}.piece-card img{width:100%;aspect-ratio:16/9;object-fit:cover}.piece-card-body{padding:15px}.piece-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.chip{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;background:rgba(151,175,30,.18);border:1px solid rgba(151,175,30,.3);color:#eef8af;font-size:11px;font-weight:800}.piece-card h3{margin:0 0 8px;font-size:1.1rem}.piece-card p{margin:0;color:var(--muted);font-size:14.5px}.piece-card a{display:inline-flex;margin-top:12px}.notes,.panel{padding:18px}.notes h2,.panel h2{margin-top:0}.note-list{margin:0;padding-left:18px;color:var(--muted)}.note-list li+li{margin-top:7px}.source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.source-card{padding:16px}.source-card h3{margin:0 0 8px}.source-card p{margin:0;color:var(--muted)}.footer-mini{margin-top:24px;color:var(--soft);font-size:13px;text-align:center}.high-contrast{color:#fff}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
/* compatibility with older archive pages */
.hero,.guided-route,.overview,.timeline,.sources,.essay-hero,.essay-panel{background:rgba(59,59,59,.93);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.hero-copy,.overview-card,.source-card{background:transparent;border:none;box-shadow:none}.route-grid,.stage-grid,.comparison-grid,.method-grid,.milestone-grid,.evidence-grid{display:grid;gap:13px;padding:0 18px 18px}.route-grid,.stage-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.comparison-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.method-grid,.milestone-grid,.evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-step,.stage-card,.comparison-card,.method-card,.milestone-card,.evidence-card{background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:16px;color:var(--ink);padding:16px}.route-step p,.stage-card p,.comparison-card p,.method-card p,.milestone-body p,.evidence-card p,.method-list li,.evidence-list li{color:var(--muted)}.section-head{padding:18px}.section-head h2{color:#fff}.section-head p{color:var(--muted)}
@media(max-width:980px){.archive-hero,.timeline-layout{grid-template-columns:1fr}.module-grid,.principles,.piece-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline-track{max-height:none;min-height:auto}.timeline-detail{min-height:auto}.archive-hero{padding:20px}.hero-media{grid-row:auto}.route-grid,.stage-grid,.comparison-grid,.method-grid,.milestone-grid,.evidence-grid{grid-template-columns:1fr}}
@media(max-width:620px){.archive-shell{width:min(100% - 20px,1180px);padding-top:14px}.module-grid,.principles,.piece-grid,.source-grid{grid-template-columns:1fr}.archive-notice{display:block}.archive-hero h1,.page-hero h1{font-size:2rem}.archive-lead,.page-lead{font-size:16px}.timeline-point{grid-template-columns:72px minmax(0,1fr)}}

/* Embedded SWF/Ruffle panel inside timeline details */
.timeline-swf-card{
  margin:18px 0;
  padding:12px;
  border:1px solid rgba(198,223,77,.28);
  border-radius:18px;
  background:rgba(0,0,0,.28);
  box-shadow:0 14px 40px rgba(0,0,0,.22) inset;
}
.timeline-swf-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin:0 0 10px;
  color:#f2f2f2;
  font-size:.88rem;
}
.timeline-swf-head span{
  color:#c6df4d;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.timeline-swf-host{
  width:calc(100% * var(--swf-display-scale, .7));
  max-width:100%;
  margin-inline:auto;
  aspect-ratio:var(--swf-ratio, 485 / 575);
  min-height:0;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:14px;
  background:#000;
}
.timeline-swf-host .timeline-ruffle-player,
.timeline-swf-host ruffle-player{
  width:100%;
  height:100%;
  display:block;
}
.timeline-swf-status{
  color:#e8e8e8;
  padding:18px;
  text-align:center;
}
@media (max-width: 760px){
  .timeline-swf-host{width:100%;}
  .timeline-swf-head{display:block;}
  .timeline-swf-head span{display:block;margin-top:4px;}
}


.timeline-gallery{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:16px 0 4px;
}
.timeline-gallery-item{
  display:grid;
  grid-template-rows:1fr auto;
  gap:8px;
  align-items:end;
  padding:10px;
  border:1px solid rgba(0,0,0,.12);
  border-radius:14px;
  background:#e8e8df;
  color:#1f1f1b;
  text-decoration:none;
  font-weight:850;
  font-size:13px;
}
.timeline-gallery-item:hover{
  background:#dfe6b6;
  color:#111;
}
.timeline-gallery-item img{
  width:100%;
  height:150px;
  object-fit:contain;
  background:#f8f8f2;
  border-radius:10px;
}
.timeline-gallery-item span{
  display:block;
  line-height:1.25;
}
@media(max-width:620px){.timeline-gallery{grid-template-columns:1fr}.timeline-gallery-item img{height:180px}}


.timeline-slideshow{
  position:relative;
  min-height:340px;
  margin:16px 0 4px;
  overflow:hidden;
  border:1px solid rgba(0,0,0,.12);
  border-radius:14px;
  background:#e8e8df;
}
.timeline-slide{
  position:absolute;
  inset:0;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  gap:8px;
  padding:10px;
  opacity:0;
  color:#1f1f1b;
  text-decoration:none;
  font-weight:850;
  cursor:default;
  animation:archiveSlide calc(var(--slide-count, 4) * 4s) infinite;
  animation-delay:calc(var(--slide-index, 0) * 4s);
}
.timeline-slide img{
  width:100%;
  height:100%;
  min-height:0;
  object-fit:contain;
  background:#f8f8f2;
  border-radius:10px;
}
.timeline-slide span{
  display:block;
  line-height:1.25;
  text-align:center;
}
.timeline-slideshow:hover .timeline-slide{
  animation-play-state:paused;
}
@keyframes archiveSlide{
  0%, 20% {opacity:1; z-index:2;}
  25%, 100% {opacity:0; z-index:1;}
}
@media (prefers-reduced-motion: reduce){
  .timeline-slide{animation:none;opacity:0;}
  .timeline-slide:first-child{opacity:1;}
}
@media(max-width:620px){.timeline-slideshow{min-height:300px}}


/* V24 · page préambule laboratoire */
.prelude-hero .page-lead a,
.archive-lead a{color:#c6df4d;font-weight:850;text-decoration:none;border-bottom:1px solid rgba(198,223,77,.45)}
.prelude-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.prelude-card{padding:18px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.05);box-shadow:var(--shadow)}
.prelude-card h2{margin:8px 0 10px;color:#fff;font-size:1.25rem}
.prelude-card p{margin:0;color:var(--muted);line-height:1.65}
.prelude-date{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;background:rgba(151,175,30,.2);border:1px solid rgba(151,175,30,.34);color:#eef8af;font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.prelude-focus{padding:18px}
.facsimile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.facsimile-card{margin:0;padding:10px;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid var(--line)}
.facsimile-card img{width:100%;max-height:560px;object-fit:contain;background:#f5f5ef;border-radius:10px}
.facsimile-card figcaption{margin-top:8px;color:var(--muted);font-size:13px;line-height:1.4;text-align:center}
.prelude-transition{padding:20px}.prelude-transition p{color:var(--muted);font-size:16px;line-height:1.7}
@media(max-width:900px){.prelude-grid,.facsimile-grid{grid-template-columns:1fr}.facsimile-card img{max-height:none}}


/* V25 · préambule laboratoire recentré sur l'histoire du laboratoire */
.context-story{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.context-block{padding:20px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.05);box-shadow:var(--shadow)}
.context-block-wide{grid-column:1/-1}
.context-block h2{margin:8px 0 10px;color:#fff;font-size:1.25rem}
.context-block p{margin:0 0 10px;color:var(--muted);line-height:1.68}
.context-block p:last-child{margin-bottom:0}
@media(max-width:900px){.context-story{grid-template-columns:1fr}.context-block-wide{grid-column:auto}}


/* V34 · carousel de vignettes cartographiques en accueil */
.hero-carousel-card{overflow:hidden;padding:12px;background:linear-gradient(180deg,#242424,#1f1f1f)}
.archive-carousel-heading{display:flex;justify-content:space-between;gap:12px;align-items:end;margin:0 0 10px;color:#fff}
.archive-carousel-heading span{color:var(--accent2);font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.archive-carousel-heading strong{font-size:14px;text-align:right;line-height:1.25}
.archive-carousel{position:relative;overflow:hidden;border-radius:14px;background:#141414;border:1px solid rgba(255,255,255,.12);height:286px}
.archive-carousel::before,.archive-carousel::after{content:"";position:absolute;top:0;bottom:0;width:52px;z-index:2;pointer-events:none}
.archive-carousel::before{left:0;background:linear-gradient(90deg,#141414,rgba(20,20,20,0))}
.archive-carousel::after{right:0;background:linear-gradient(270deg,#141414,rgba(20,20,20,0))}
.archive-carousel-track{height:100%;display:flex;gap:12px;align-items:center;width:max-content;padding:12px;animation:archiveCarousel 58s linear infinite}
.archive-carousel:hover .archive-carousel-track{animation-play-state:paused}
.archive-carousel-item{flex:0 0 205px;height:252px;border-radius:13px;background:#f2f2ec;border:1px solid rgba(255,255,255,.18);padding:8px;display:grid;place-items:center;box-shadow:0 12px 24px rgba(0,0,0,.22)}
.archive-carousel-item img{width:100%;height:100%;object-fit:contain;border-radius:8px;background:#fff;aspect-ratio:auto}
@keyframes archiveCarousel{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 6px))}}
@media(max-width:980px){.archive-carousel{height:260px}.archive-carousel-item{flex-basis:190px;height:226px}.archive-carousel-heading{display:block}.archive-carousel-heading strong{text-align:left;display:block;margin-top:2px}}
@media(max-width:620px){.archive-carousel{height:232px}.archive-carousel-item{flex-basis:170px;height:198px}.archive-carousel-track{gap:10px;padding:10px}.archive-carousel::before,.archive-carousel::after{width:34px}}
@media (prefers-reduced-motion: reduce){.archive-carousel-track{animation:none;overflow-x:auto;max-width:100%}.archive-carousel{overflow-x:auto}}


/* V35 · bloc de sortie de période */
.trajectory-outro p{max-width:86ch;margin:0;color:var(--muted);font-size:16px;line-height:1.68}
.trajectory-outro p+p{margin-top:10px}
.trajectory-outro h2{color:#fff}
