/* Accueil EN au format CV : sommaire collant à gauche, colonne de
   lecture unique. Écrit main (comme l'accueil FR), hors régénération.
   Uniquement des tokens de theme.css : les deux thèmes suivent seuls. */
@layer layout {
  .cv {
    display: grid;
    grid-template-columns: minmax(11rem, 1fr) minmax(0, 42rem) minmax(0, .35fr);
    gap: calc(var(--step) * 6);
    padding-block: calc(var(--step) * 8) calc(var(--step) * 10);
  }

  .cv-toc { position: sticky; inset-block-start: calc(var(--step) * 12); align-self: start; }
  .cv-toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: calc(var(--step) * 2.5); }
  .cv-toc a {
    display: flex; align-items: center; gap: calc(var(--step) * 1.5);
    font-size: .9375rem; color: var(--ink-soft); text-decoration: none;
  }
  .cv-toc a::before {
    content: ""; inline-size: 1rem; block-size: 1px;
    background: oklch(from var(--ink) l c h / .3);
    transition: inline-size .2s, background-color .2s;
  }
  .cv-toc a:hover, .cv-toc a:focus-visible { color: var(--ink); }
  .cv-toc a:hover::before, .cv-toc a:focus-visible::before { inline-size: 2rem; background: var(--cyan-text); }

  .cv-body { min-inline-size: 0; }
  .cv-body section { scroll-margin-block-start: calc(var(--step) * 12); }
  .cv-body section + section { margin-block-start: calc(var(--step) * 10); }

  .cv-langs { font-family: var(--mono); font-size: .75rem; color: var(--ink-faint); margin: 0 0 calc(var(--step) * 3); }
  .cv-langs time { font-variant-numeric: tabular-nums; color: var(--ink-soft); }
  .cv-langs time:empty { display: none; }
  .cv-body h1 {
    font-size: clamp(2.25rem, 6cqi, 3.5rem); font-weight: 800;
    line-height: 1.02; letter-spacing: -.04em; margin: 0;
  }
  .cv-tagline { margin: calc(var(--step) * 1.5) 0 calc(var(--step) * 4); color: var(--cyan-text); font-weight: 600; }
  .cv-intro p { color: var(--ink-soft); line-height: 1.7; margin: 0 0 calc(var(--step) * 2); }
  .cv-links { display: flex; flex-wrap: wrap; gap: calc(var(--step) * 1) calc(var(--step) * 3); margin-block-start: calc(var(--step) * 3); }
  .cv-links a { color: var(--cyan-text); font-weight: 600; text-underline-offset: 3px; }
  .cv-links a:hover { color: var(--ink); }

  .cv-body h2 {
    font-size: 1.625rem; font-weight: 800; letter-spacing: -.03em;
    margin: 0 0 calc(var(--step) * 5);
  }

  .cv-item + .cv-item { margin-block-start: calc(var(--step) * 6); }
  .cv-head { display: grid; grid-template-columns: 1fr auto; column-gap: calc(var(--step) * 2); align-items: baseline; }
  .cv-org { font-size: 1.25rem; font-weight: 700; letter-spacing: -.02em; margin: 0; }
  .cv-date { font-size: .9375rem; color: var(--ink-faint); white-space: nowrap; }
  .cv-role { grid-column: 1 / -1; margin: calc(var(--step) * .5) 0 0; font-size: .875rem; color: var(--cyan-text); }
  .cv-item ul { margin: calc(var(--step) * 2.5) 0 0; padding-inline-start: calc(var(--step) * 5); color: var(--ink-soft); line-height: 1.6; }
  .cv-item li + li { margin-block-start: calc(var(--step) * 1); }
  .cv-item ul ul { margin-block-start: calc(var(--step) * .75); list-style: circle; }
  .cv-item ul ul li + li { margin-block-start: calc(var(--step) * .25); }

  .cv-certs { display: flex; flex-wrap: wrap; gap: calc(var(--step) * 1); margin: calc(var(--step) * 2) 0 0; padding: 0; list-style: none; }
  .cv-certs li {
    font-family: var(--mono); font-size: .75rem; color: var(--ink);
    border: 1px solid oklch(from var(--ink) l c h / .16); border-radius: var(--r-ctl);
    padding: calc(var(--step) * .5) calc(var(--step) * 1.25);
  }

  @container (inline-size < 62rem) {
    .cv { grid-template-columns: 1fr; gap: calc(var(--step) * 4); padding-block-start: calc(var(--step) * 5); }
    .cv-toc { position: static; }
    .cv-toc ol { display: flex; flex-wrap: wrap; gap: calc(var(--step) * 1) calc(var(--step) * 3); }
  }
  @container (inline-size < 30rem) {
    .cv-head { grid-template-columns: 1fr; }
    .cv-date { grid-row: 3; margin-block-start: calc(var(--step) * .25); }
  }
}
