/* Page À propos — scoped so the homepage and shared rules stay untouched. */
body.about-page{
  background:var(--ivory);
  color:var(--ink);
}
body.about-page .site-header{
  background:rgba(26,26,24,.92);
  backdrop-filter:blur(16px);
}
body.about-page .close{color:var(--ice)}

.about-intro{padding:4.4rem 0 4.2rem}
.about-intro-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:3rem 3.5rem;
  align-items:center;
}
.about-intro-lead,
.about-aside{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1.15rem;
}
.about-intro h1{
  font-size:clamp(2.55rem,4.5vw,3.6rem);
  max-width:11ch;
  margin:0;
}
.about-intro p:not(.kicker),
.about-story p:not(.kicker),
.about-stem p:not(.kicker){
  margin:0;
  max-width:36rem;
  color:var(--muted-ink);
  font-size:.98rem;
  line-height:1.65;
}
.about-aside p{max-width:32rem}

.about-story{
  padding:4.2rem 0 4.8rem;
  border-top:1px solid rgba(26,26,24,.12);
}
.about-story-grid{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:2.5rem 3.5rem;
  align-items:start;
}
.about-story-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1.15rem;
}
.about-story h2,
.about-values h2,
.about-stem h2{
  font-size:clamp(2.05rem,3.3vw,2.85rem);
  max-width:16ch;
  margin:0;
}
.about-prose{
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.about-prose a{
  color:var(--gold-ink);
  text-decoration:underline;
  text-underline-offset:.16em;
  text-decoration-thickness:1px;
}
.about-prose a:hover{color:var(--ink)}

.timeline{
  --node:12px;
  --stroke:1.5px;
  --node-top:.12rem;
  list-style:none;
  margin:.35rem 0 0;
  padding:0;
  display:flex;
  flex-direction:column;
}
.timeline li{
  position:relative;
  padding:0 0 1.85rem calc(var(--node) + 1rem);
}
.timeline li:last-child{padding-bottom:0}
.timeline-node{
  position:absolute;
  left:0;
  top:var(--node-top);
  width:var(--node);
  height:var(--node);
  border-radius:50%;
  border:1.5px solid #3a3834;
  background:var(--ivory);
  z-index:1;
}
.timeline-line{
  position:absolute;
  left:calc((var(--node) - var(--stroke)) / 2);
  top:calc(var(--node-top) + var(--node) / 2);
  bottom:calc(var(--node-top) * -1 - var(--node) / 2);
  width:var(--stroke);
  background:#3a3834;
  transform-origin:top center;
  z-index:0;
}
.timeline li:last-child .timeline-line{display:none}
.timeline.is-armed .timeline-node{transform:scale(0)}
.timeline.is-armed .timeline-node.is-on{transform:scale(1);transition:transform .28s ease}
.timeline.is-armed .timeline-line{transform:scaleY(0)}
@media (prefers-reduced-motion:reduce){
  .timeline.is-armed .timeline-node,
  .timeline.is-armed .timeline-line{transform:none;transition:none}
}
.timeline-num{
  display:block;
  margin:0 0 .35rem;
  color:var(--gold-ink);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.12em;
  line-height:1;
}
.timeline h3{
  margin:0 0 .4rem;
  font-size:1.05rem;
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.25;
}
.timeline p{
  max-width:28rem;
  font-size:.92rem;
  line-height:1.55;
}

.about-values{
  background:var(--ink);
  color:var(--ice);
  padding:4.6rem 0 4.8rem;
}
.about-values h2{margin:1.15rem 0 3.2rem}
.about-values .kicker{color:var(--gold)}
.values{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:2.4rem 2rem;
}
.values li{display:flex;flex-direction:column;align-items:flex-start;gap:1.15rem}
.values svg{
  width:52px;
  height:52px;
  color:var(--gold);
}
.values h3{
  margin:0;
  font-size:1.22rem;
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.2;
}
.values p{
  margin:0;
  max-width:16rem;
  color:var(--muted);
  font-size:.92rem;
  line-height:1.5;
}

.about-stem{padding:4.6rem 0 5rem}
.about-stem-grid{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,22rem);
  gap:2.5rem 3.5rem;
  align-items:center;
}
.about-stem-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1.35rem;
}
.about-stem h2{margin:0}
.stem-visual{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.85rem;
  color:inherit;
}
.stem-visual img{
  width:100%;
  height:auto;
  border-radius:var(--radius);
}
.stem-caption{
  display:flex;
  flex-direction:column;
  gap:.28rem;
}
.stem-caption strong{
  color:var(--gold-ink);
  font-size:.95rem;
  font-weight:600;
  letter-spacing:-.02em;
  line-height:1.3;
}
.stem-caption span{
  color:var(--muted-ink);
  font-size:.85rem;
  letter-spacing:.04em;
}

@media (max-width:980px){
  .about-intro-grid,
  .about-story-grid,
  .about-stem-grid{grid-template-columns:1fr;gap:2rem}
  .about-intro h1{max-width:14ch}
  .values{grid-template-columns:1fr 1fr}
  .about-stem-grid{align-items:start}
  .stem-visual{max-width:22rem}
}
@media (max-width:640px){
  .about-intro{padding:3.2rem 0 2.8rem}
  .about-story{padding:2.8rem 0 3.2rem}
  .about-values,.about-stem{padding:3.2rem 0}
  .about-intro h1{font-size:2.35rem}
  .values{grid-template-columns:1fr}
  .values p{max-width:none}
}
