.cv-page{background:#090b10}.cv-header{position:sticky}.cv-hero{display:grid;grid-template-columns:.95fr 1.05fr;gap:50px;align-items:center;padding-top:64px}.cv-system-label{display:flex;align-items:center;gap:9px;color:#9aa5b5;font-size:.72rem;letter-spacing:.12em}.cv-hero h1{font-size:clamp(4rem,8vw,7rem);line-height:.9;letter-spacing:-.06em;margin:14px 0}.cv-hero h1 span{color:#d6ff6b}.cv-role{font-size:clamp(1.25rem,2vw,1.75rem);color:#dfe5ee;margin:0 0 16px}.cv-summary{color:#9ea8b8;max-width:720px}.cv-actions{display:flex;gap:12px;margin:28px 0}.identity-strip{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:18px;overflow:hidden}.identity-strip>div{padding:14px;border-right:1px solid var(--line)}.identity-strip>div:last-child{border-right:0}.identity-strip small{display:block;color:#727d8d;font-size:.68rem;text-transform:uppercase}.identity-strip strong{font-size:.85rem}.system-window{border-radius:24px;overflow:hidden}.window-lights{display:flex;gap:5px}.window-lights i{display:block;width:7px;height:7px;border-radius:50%;background:#586171}.profile-engine{position:relative;height:610px;overflow:hidden}.engine-lines{position:absolute;left:0;right:0;top:26px;width:100%;height:470px}.engine-lines path{fill:none;stroke:rgba(124,140,255,.4);stroke-width:2;stroke-dasharray:7 8}.engine-node{position:absolute;width:132px;padding:12px;border-radius:15px;border:1px solid var(--line);background:#0d1118;color:#fff;text-align:left;cursor:pointer;transition:.2s}.engine-node:hover,.engine-node.active{border-color:rgba(214,255,107,.45);box-shadow:0 0 0 1px rgba(214,255,107,.08),0 12px 30px rgba(0,0,0,.3)}.engine-node span,.engine-node small{display:block;color:#6f7a8a;font-size:.6rem;letter-spacing:.08em}.engine-node strong{display:block;margin:3px 0;font-size:.87rem}.node-source{left:4%;top:205px}.node-analysis{left:34%;top:72px}.node-service{left:34%;top:342px}.node-core{left:62%;top:205px}.node-output-a{right:3%;top:98px}.node-output-b{right:3%;top:315px}.engine-inspector{position:absolute;left:18px;right:18px;bottom:18px;padding:18px;border:1px solid var(--line);border-radius:17px;background:rgba(9,12,17,.96)}.engine-inspector small{color:#6f7a8a;font-size:.63rem;letter-spacing:.11em}.engine-inspector strong{display:block;margin:4px 0}.engine-inspector p{margin:0;color:#9ba6b6;font-size:.86rem}.cv-profile-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:16px}.profile-card{padding:28px;border-radius:21px}.profile-card-kicker{color:#7c8cff;font-size:.68rem;letter-spacing:.12em}.profile-card p{color:#9ea8b8}.metric{font-size:3rem;font-weight:800;letter-spacing:-.05em}.metric span{font-size:1rem;color:#7f8999;margin-left:4px}.skills-console{border-radius:22px;overflow:hidden}.console-nav{display:flex;gap:4px;padding:10px;border-bottom:1px solid var(--line);overflow:auto}.skill-tab{border:0;background:transparent;color:#7f8999;padding:10px 13px;border-radius:10px;cursor:pointer;white-space:nowrap}.skill-tab.active{background:rgba(124,140,255,.12);color:#fff}.console-body{padding:22px}.skill-map{display:none;grid-template-columns:repeat(3,1fr);gap:14px}.skill-map.active{display:grid}.skill-map article{padding:20px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.018)}.skill-map article span{font-size:.65rem;color:#6e7888}.skill-map article strong{display:block;margin:6px 0}.skill-map article p{color:#939eae;font-size:.87rem;margin:0}.career-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:18px}.career-rail{display:flex;flex-direction:column;gap:8px}.career-step{display:grid;grid-template-columns:90px 16px 1fr;gap:8px;align-items:center;text-align:left;padding:14px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.018);color:#fff;cursor:pointer}.career-step.active{border-color:rgba(68,215,182,.35);background:rgba(68,215,182,.055)}.career-year{font-size:.75rem;color:#8c97a8}.career-step i{width:8px;height:8px;border-radius:50%;background:#5e6878}.career-step.active i{background:#44d7b6;box-shadow:0 0 15px rgba(68,215,182,.45)}.career-step small{display:block;color:#707b8b;font-size:.58rem;letter-spacing:.08em}.career-step strong{font-size:.84rem}.career-detail{min-height:420px;padding:28px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(180deg,#121721,#0c1016)}.career-detail-top{display:flex;justify-content:space-between;align-items:center}.career-detail-top small{display:block;color:#6d7787;font-size:.63rem}.career-detail-top span{font-size:.84rem}.career-state{padding:6px 10px;border:1px solid rgba(68,215,182,.22);border-radius:999px;color:#a8cbbb}.career-state i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#44d7b6}.career-detail h3{font-size:1.8rem;margin:24px 0 3px}.career-location{color:#7f8999}.career-detail li{color:#b0b8c4;margin:8px 0}.career-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.career-tags span{padding:7px 10px;border:1px solid var(--line);border-radius:999px;color:#aab3c1;font-size:.74rem}.training-pipeline{display:grid;grid-template-columns:1.15fr auto 1fr auto .85fr;gap:12px;align-items:stretch}.training-node{padding:24px;border-radius:20px}.training-node.current{border-color:rgba(214,255,107,.25)}.training-status{font-size:.65rem;color:#7f8999;letter-spacing:.09em}.training-index{display:block;color:#586273;margin:16px 0 4px}.training-node h3{margin:4px 0 10px}.training-meta{color:#7f8999;font-size:.84rem}.training-node li,.training-node p{color:#9da7b6;font-size:.86rem}.pipeline-arrow{display:grid;place-items:center;color:#697485}.extra-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border-radius:18px;overflow:hidden}.extra-grid article{border:0;border-radius:0;padding:20px}.extra-grid small{display:block;color:#717c8c;font-size:.65rem}.cv-contact .contact-panel{grid-template-columns:1fr 1fr}body.synth .profile-card-main p+ p,body.synth .career-detail li:nth-child(n+4),body.synth .training-node li:nth-child(n+3){display:none}
@media(max-width:950px){.cv-hero,.career-layout{grid-template-columns:1fr}.profile-engine{height:580px}.cv-profile-grid{grid-template-columns:1fr}.skill-map{grid-template-columns:1fr}.training-pipeline{grid-template-columns:1fr}.pipeline-arrow{transform:rotate(90deg)}.extra-grid{grid-template-columns:1fr}.cv-contact .contact-panel{grid-template-columns:1fr}}@media(max-width:620px){.identity-strip{grid-template-columns:1fr}.identity-strip>div{border-right:0;border-bottom:1px solid var(--line)}.identity-strip>div:last-child{border-bottom:0}.profile-engine{height:690px}.engine-lines{display:none}.engine-node{position:relative;left:auto!important;right:auto!important;top:auto!important;width:calc(50% - 8px);display:inline-block;margin:6px}.engine-inspector{bottom:14px}.career-step{grid-template-columns:78px 12px 1fr}}

/* V2.7 — workflow sans chevauchement + trajectoire simplifiée */
.profile-engine{
  position:relative;
  height:auto;
  min-height:560px;
  overflow:hidden;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-template-rows:1fr 1fr auto;
  gap:18px 14px;
  padding:38px 18px 18px;
}
.engine-lines{top:30px;height:350px;pointer-events:none}
.engine-node{
  position:relative;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  width:100%;
  max-width:138px;
  justify-self:center;
  align-self:center;
  z-index:2;
}
.node-source{grid-column:1;grid-row:1 / span 2}
.node-analysis{grid-column:2;grid-row:1}
.node-service{grid-column:2;grid-row:2}
.node-core{grid-column:3;grid-row:1 / span 2}
.node-output-a{grid-column:4;grid-row:1}
.node-output-b{grid-column:4;grid-row:2}
.engine-inspector{
  position:relative;
  left:auto;
  right:auto;
  bottom:auto;
  grid-column:1 / -1;
  grid-row:3;
  margin-top:6px;
  z-index:3;
}

.training-pipeline{grid-template-columns:1fr auto 1.15fr;gap:14px}
.training-status i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#d6ff6b;margin-right:6px;box-shadow:0 0 14px rgba(214,255,107,.4)}

@media(max-width:950px){
  .training-pipeline{grid-template-columns:1fr}
}
@media(max-width:620px){
  .profile-engine{
    min-height:0;
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto;
    gap:10px;
    padding:18px;
  }
  .engine-node{
    grid-column:auto!important;
    grid-row:auto!important;
    width:100%;
    max-width:none;
    margin:0;
  }
  .engine-inspector{grid-column:1 / -1;grid-row:auto;margin-top:4px}
}

/* =========================================================
   CV DIGITAL — responsive téléphone & tablette
   Aucun changement au-dessus de 1024 px.
   ========================================================= */
@media (max-width: 1024px) {
  .cv-hero { gap:34px; padding-top:48px; }
  .cv-hero h1 { font-size:clamp(4rem,10vw,6rem); }
  .system-window { max-width:760px; width:100%; margin-inline:auto; }
  .cv-profile-grid { grid-template-columns:1fr 1fr; }
  .profile-card-main { grid-column:1 / -1; }
}

@media (max-width: 950px) {
  .cv-hero { padding-top:34px; }
  .cv-hero-system { order:2; }
  .profile-engine { min-height:580px; }
  .career-detail { min-height:0; }
  .training-pipeline { gap:12px; }
  .pipeline-arrow { transform:rotate(90deg); min-height:26px; }
}

@media (max-width: 760px) {
  .cv-actions { flex-direction:column; align-items:stretch; }
  .cv-actions .button { width:100%; }
  .identity-strip { grid-template-columns:1fr; }
  .identity-strip>div { border-right:0; border-bottom:1px solid var(--line); }
  .identity-strip>div:last-child { border-bottom:0; }

  /* Sur mobile, le workflow devient une séquence claire et sans chevauchement. */
  .profile-engine {
    min-height:0;
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto;
    gap:10px;
    padding:16px;
  }
  .engine-lines { display:none !important; }
  .engine-node {
    grid-column:auto!important;
    grid-row:auto!important;
    width:100%;
    max-width:none;
    min-height:92px;
    margin:0;
  }
  .engine-inspector { grid-column:1/-1; margin-top:4px; padding:16px; }

  .cv-profile-grid { grid-template-columns:1fr; }
  .profile-card-main { grid-column:auto; }
  .profile-card { padding:23px; }
  .console-nav { padding:8px; }
  .console-body { padding:14px; }
  .skill-map.active { grid-template-columns:1fr; }

  .career-layout { gap:14px; }
  .career-rail { display:grid; grid-template-columns:1fr 1fr; }
  .career-step { grid-template-columns:1fr; gap:4px; min-height:112px; align-content:center; }
  .career-step i { display:none; }
  .career-detail { padding:22px; }
  .career-detail h3 { font-size:1.55rem; }
  .career-detail-top { gap:12px; align-items:flex-start; }
  .career-state { white-space:nowrap; }

  .training-node { padding:22px; }
  .extra-grid { grid-template-columns:1fr; }
}

@media (max-width: 480px) {
  .cv-hero h1 { font-size:clamp(3.25rem,17vw,4.6rem); }
  .cv-role { font-size:1.15rem; }
  .cv-system-label { font-size:.64rem; letter-spacing:.09em; }
  .identity-strip strong { font-size:.82rem; }

  .profile-engine { grid-template-columns:1fr; }
  .engine-inspector { grid-column:1; }
  .engine-node { min-height:0; }

  .career-rail { grid-template-columns:1fr; }
  .career-step { min-height:0; grid-template-columns:90px 1fr; }
  .career-year { align-self:start; padding-top:2px; }
  .career-detail-top { flex-direction:column; }
  .career-detail ul { padding-left:20px; }

  .console-nav { gap:6px; scroll-snap-type:x proximity; }
  .skill-tab { scroll-snap-align:start; }
  .extra-grid article { padding:17px; }
}

/* V2.8 — hiérarchie compacte et lecture horizontale */
.cv-hero{
  grid-template-columns:minmax(250px,.62fr) minmax(0,1.38fr);
  gap:30px 34px;
  align-items:start;
  padding-top:64px;
}

.cv-hero-copy{
  grid-column:1 / -1;
  width:100%;
}

.cv-hero h1{
  margin:14px 0 12px;
  font-size:clamp(2.4rem,4vw,3.25rem);
  line-height:1.02;
  letter-spacing:-.045em;
  white-space:nowrap;
}

.cv-role{
  margin:0 0 18px;
  font-size:clamp(1.05rem,1.65vw,1.3rem);
  line-height:1.35;
  white-space:nowrap;
}

.cv-role em{color:#aeb8c8}
.cv-summary{max-width:none;margin:0}

.cv-hero-navigation{
  grid-column:1;
  min-width:0;
}

.cv-actions{margin:0 0 18px}
.cv-actions .button{width:100%}

.cv-hero-navigation .identity-strip{
  grid-template-columns:1fr;
}

.cv-hero-navigation .identity-strip>div{
  border-right:0;
  border-bottom:1px solid var(--line);
}

.cv-hero-navigation .identity-strip>div:last-child{border-bottom:0}

.cv-hero-system{
  grid-column:2;
  min-width:0;
}

.profile-engine{min-height:520px}

.cv-page .section-heading h2,
.cv-page .contact-panel h2{
  max-width:none;
  margin:14px 0 20px;
  font-size:clamp(1.65rem,1.75vw,1.75rem);
  line-height:1.12;
  letter-spacing:-.025em;
}

.cv-contact .contact-panel{
  grid-template-columns:1fr;
  gap:22px;
  padding:32px 34px;
}

.cv-contact .contact-data{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.cv-contact .contact-data a{min-width:0}
.cv-contact .contact-data a span{margin-left:auto}

@media (min-width:951px){
  .cv-page .section-heading h2,
  .cv-page .contact-panel h2{white-space:nowrap}
}

@media (max-width:950px){
  .cv-hero{grid-template-columns:1fr;gap:26px;padding-top:40px}
  .cv-hero-copy,
  .cv-hero-navigation,
  .cv-hero-system{grid-column:1}
}

@media (min-width:761px) and (max-width:950px){
  .cv-hero-navigation .identity-strip{grid-template-columns:repeat(3,1fr)}
  .cv-hero-navigation .identity-strip>div{border-right:1px solid var(--line);border-bottom:0}
  .cv-hero-navigation .identity-strip>div:last-child{border-right:0}
}

@media (max-width:700px){
  .cv-hero h1,
  .cv-role,
  .cv-page .section-heading h2,
  .cv-page .contact-panel h2{white-space:normal}

  .cv-hero h1{font-size:clamp(2.55rem,14vw,3.45rem)}
  .cv-contact .contact-panel{padding:24px 22px}
  .cv-contact .contact-data{grid-template-columns:1fr}
}
