/* ===== Composants v2 : spec, architectures, cycle de vie, capacités ===== */
.spec{background:var(--navy-3);color:oklch(0.86 0.015 255);border-radius:12px;border:1px solid var(--line-dark);font-family:var(--mono);font-size:13.5px;line-height:1.75;box-shadow:0 40px 80px -50px oklch(0.25 0.08 258/.7);overflow:hidden}
.spec-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line-dark);font-size:12px;color:oklch(0.66 0.03 258);letter-spacing:.04em}
.spec-bar .tabs{display:flex;gap:16px}.spec-bar .tabs span.on{color:#fff}
.spec-body{padding:20px 22px;white-space:pre-wrap;word-break:break-word}
.spec .k{color:var(--blue-bright)}.spec .c{color:oklch(0.58 0.03 258)}.spec .s{color:oklch(0.86 0.09 85)}
.spec .ok{color:oklch(0.78 0.15 150)}.spec .no{color:oklch(0.72 0.16 25)}
.spec-foot{display:flex;flex-wrap:wrap;gap:10px 22px;padding:14px 22px;border-top:1px solid var(--line-dark);background:var(--navy-2);font-size:12.5px}
.spec-foot b{color:#fff;font-weight:500}
.archi{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2vw,28px)}
@media(max-width:820px){.archi{grid-template-columns:1fr}}
.archi-card{padding:clamp(28px,3vw,40px);display:flex;flex-direction:column;gap:14px}
.archi-tag{font-family:var(--mono);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}
.archi-card p{margin:0;color:var(--ink-soft)}
.archi-diagram{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 4px;font-family:var(--mono);font-size:12.5px}
.node{border:1px solid var(--line);border-radius:6px;padding:7px 11px;background:var(--bg-2);color:var(--ink)}
.node.main{background:var(--navy);color:#fff;border-color:var(--navy)}
.edge{color:var(--ink-faint)}
.coord{display:grid;grid-template-columns:auto 1fr;gap:10px 14px;align-items:center}
.coord .subs{display:flex;flex-wrap:wrap;gap:8px}
.examples{list-style:none;margin:6px 0 0;padding:14px 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.examples li{font-size:15px;color:var(--ink-soft);padding-left:20px;position:relative}
.examples li::before{content:"—";position:absolute;left:0;color:var(--blue)}
.source-band{margin-top:clamp(28px,3vw,40px);display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,3vw,40px);align-items:center;padding:clamp(24px,3vw,34px);border-radius:var(--radius-lg);background:var(--blue-tint)}
.source-band .src-k{font-family:var(--mono);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-deep);white-space:nowrap}
.source-band p{margin:0;color:var(--ink);font-size:16.5px}
@media(max-width:700px){.source-band{grid-template-columns:1fr}}
.steps.six{grid-template-columns:repeat(3,1fr);row-gap:clamp(32px,4vw,48px)}
@media(max-width:880px){.steps.six{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.steps.six{grid-template-columns:1fr}}
.lifecycle{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.lc-row{display:grid;grid-template-columns:minmax(0,1fr) 40px minmax(0,1.3fr);gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}
.lc-row .sdlc{font-family:var(--mono);font-size:13.5px;color:var(--ink-faint)}
.lc-row .arr{color:var(--blue);text-align:center}
.lc-row .agent strong{display:block;font-size:16.5px;color:var(--ink)}
.lc-row .agent span{font-size:14.5px;color:var(--ink-soft)}
.lc-row.key{background:var(--blue-tint);padding-inline:16px;margin-inline:-16px;border-radius:6px;border-bottom-color:transparent}
.lc-head{display:grid;grid-template-columns:minmax(0,1fr) 40px minmax(0,1.3fr);gap:16px;padding-bottom:12px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}
@media(max-width:600px){.lc-row,.lc-head{grid-template-columns:1fr}.lc-row .arr,.lc-head span:nth-child(2){display:none}}
.caps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);border-radius:var(--radius-lg);overflow:hidden}
.cap{background:var(--navy);padding:24px}
.cap .cv{font-family:var(--serif);font-size:23px;color:#fff;margin-bottom:8px}
.cap p{margin:0;font-size:14.5px;color:oklch(0.78 0.02 255)}
.cap.lead-cap{background:var(--navy-2)}
.cap.lead-cap .cv{color:var(--blue-bright)}
@media(max-width:900px){.caps{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.caps{grid-template-columns:1fr}}
.two-col{display:grid;grid-template-columns:0.9fr 1.1fr;gap:clamp(36px,5vw,80px);align-items:start}
@media(max-width:900px){.two-col{grid-template-columns:1fr}}
.stat-num.word{font-size:clamp(34px,4vw,46px)}
.model-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.model-chip{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px 22px;display:flex;flex-direction:column;gap:4px}
.model-chip strong{font-family:var(--serif);font-size:24px;font-weight:500;color:var(--ink)}
.model-chip span{font-size:14px;color:var(--ink-soft)}
.model-chip.local{background:var(--navy);border-color:var(--navy)}
.model-chip.local strong{color:#fff}.model-chip.local span{color:oklch(0.80 0.02 255)}
.model-note{margin:20px 0 0;font-size:15.5px;color:var(--ink-soft)}
@media(max-width:520px){.model-grid{grid-template-columns:1fr}}
.founder{display:grid;grid-template-columns:minmax(0,280px) 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.founder-ph{aspect-ratio:4/5;width:100%;border-radius:12px}
.founder .kicker{margin-bottom:18px}
.founder-role{font-family:var(--mono);font-size:13.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-bright);margin:10px 0 22px}
.founder .lead{max-width:56ch;margin-bottom:26px}
@media(max-width:700px){.founder{grid-template-columns:1fr}.founder-ph{max-width:240px}}
.founder{grid-template-columns:1fr;max-width:760px}
