
.cv{
  --brand:#FF5C31; --brand-text:#C13A12; --cyan:#26C7FF; --ink:#172331; --muted:#576373;
  --paper:#FFFFFF; --soft:#F5F7FA; --line:#DCE2E9;
  position:relative;isolation:isolate;padding-block:clamp(72px,10vw,140px);background:var(--paper);color:var(--ink);
  font-family:Poppins,"Segoe UI",system-ui,sans-serif;overflow:hidden;
}
html.theme-dark .cv{--brand-text:#FF8A66;--ink:#F3F6FA;--muted:#BDC9D5;--paper:#0E151E;--soft:#16202C;--line:#334657}
.cv__grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center}
@media (max-width:980px){.cv__grid{grid-template-columns:minmax(0,1fr)}}

.cv__eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 22px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-text)}
.cv__eyebrow::before{content:"";width:36px;height:2px;background:var(--brand);transform-origin:left}
.cv__title{margin:0;font-size:clamp(36px,4.2vw,62px);font-weight:500;line-height:1.06;letter-spacing:-.035em;text-wrap:balance}
.cv__line{display:block;overflow:hidden;padding-bottom:.06em}
.cv__line > span{display:block}
.cv__u{position:relative;white-space:nowrap}
.cv__u::after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:.12em;border-radius:.1em;background:var(--cyan);opacity:.55;transform-origin:left;z-index:-1}
.cv__accent{
  color:var(--brand);
  background:linear-gradient(100deg,var(--brand) 0 42%,#FFB14A 50%,var(--brand) 58% 100%);
  background-size:260% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.cv__text{margin:26px 0 0;font-size:clamp(17px,1.35vw,19px);line-height:1.7;color:var(--muted);max-width:56ch}

.cv__chips{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 0;padding:0;list-style:none}
.cv__chip{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;border:1px solid var(--line);
  font-size:14px;font-weight:500;color:var(--ink);background:var(--paper);transition:background .4s ease,color .4s ease,border-color .4s ease,transform .4s ease}
.cv__chip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--brand);transition:background .4s ease}
.cv__chip.is-on{background:var(--brand);border-color:var(--brand);color:#fff;transform:translateY(-2px)}
.cv__chip.is-on::before{background:#fff}

.cv__cta{display:inline-flex;align-items:center;gap:12px;margin-top:34px;padding:15px 26px;border-radius:999px;
  background:var(--ink);color:var(--paper);font-size:15px;font-weight:600;text-decoration:none;position:relative;overflow:hidden;isolation:isolate;
  transition:transform .25s ease, box-shadow .25s ease}
.cv__cta::before{content:"";position:absolute;inset:0;background:var(--brand);transform:translateX(-101%);transition:transform .45s cubic-bezier(.7,0,.2,1);z-index:-1}
.cv__cta svg{width:18px;height:18px;transition:transform .25s ease}
.cv__cta:hover,.cv__cta:focus-visible{transform:translateY(-2px);box-shadow:0 14px 30px rgb(255 92 49 / .3)}
.cv__cta:hover::before,.cv__cta:focus-visible::before{transform:none}
.cv__cta:hover svg,.cv__cta:focus-visible svg{transform:translateX(5px)}
.cv__cta:focus-visible{outline:3px solid var(--brand);outline-offset:3px}

.cv__visual{position:relative;margin:0;border-radius:28px;background:var(--soft);border:1px solid var(--line);overflow:hidden;aspect-ratio:5 / 4}
.cv__visual canvas{position:absolute;inset:0;width:100%;height:100%}
.cv__labels{position:absolute;left:0;right:0;bottom:18px;display:grid;grid-template-columns:repeat(3,1fr);text-align:center;
  font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);pointer-events:none}
.cv__labels span:nth-child(2){color:var(--brand-text)}

/* Entrée (armée seulement par le JS) */
.cv.is-armed .cv__line > span{transform:translateY(105%)}
.cv.is-armed .cv__eyebrow::before{transform:scaleX(0)}
.cv.is-armed .cv__u::after{transform:scaleX(0)}
.cv.is-armed .cv__text,.cv.is-armed .cv__chips,.cv.is-armed .cv__cta{opacity:0;transform:translateY(16px)}
.cv.is-armed .cv__visual{opacity:0;transform:translateY(30px) scale(.98)}
.cv.is-in .cv__line > span{transform:none;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.cv.is-in .cv__line:nth-child(2) > span{transition-delay:.12s}
.cv.is-in .cv__line:nth-child(3) > span{transition-delay:.24s}
.cv.is-in .cv__eyebrow::before{transform:none;transition:transform .8s ease}
.cv.is-in .cv__u::after{transform:none;transition:transform .8s cubic-bezier(.16,1,.3,1) .9s}
.cv.is-in .cv__text,.cv.is-in .cv__chips,.cv.is-in .cv__cta,.cv.is-in .cv__visual{opacity:1;transform:none;transition:opacity .8s ease,transform .9s cubic-bezier(.16,1,.3,1)}
.cv.is-in .cv__text{transition-delay:.45s}
.cv.is-in .cv__chips{transition-delay:.6s}
.cv.is-in .cv__cta{transition-delay:.75s}
.cv.is-in .cv__visual{transition-delay:.2s}
.cv.is-live .cv__accent{animation:cv-shine 4.5s ease-in-out infinite 1.4s}
@keyframes cv-shine{0%,20%{background-position:100% 0}65%,100%{background-position:0 0}}

@media (prefers-reduced-motion:reduce){
  .cv *{transition:none!important;animation:none!important}
  .cv.is-armed *{opacity:1!important;transform:none!important}
}

/* Integration: readable accents, compact mobile labels, subtle depth. */
.cv{--brand-text:#a92f12;scroll-margin-top:100px}
.cv .cv__title{color:var(--ink)}
.cv .cv__chip.is-on{background:color-mix(in srgb,var(--brand) 13%,var(--paper));color:var(--brand-text);border-color:var(--brand)}
.cv .cv__chip.is-on::before{background:var(--brand)}
.cv .cv__visual{box-shadow:0 20px 60px rgb(23 35 49 / .06);background:radial-gradient(ellipse at 48% 40%,rgb(255 92 49 / .06),transparent 65%),var(--soft)}
.cv .cv__cta:is(:hover,:focus-visible){color:#172331}
.cv .cv__line{padding-bottom:.13em}
@media(max-width:560px){.cv .cv__title{font-size:clamp(30px,8.5vw,44px)}.cv .cv__labels{font-size:10px;letter-spacing:.06em;bottom:14px}.cv .cv__chip{padding:8px 12px;font-size:13px}.cv .cv__visual{border-radius:18px}}

/* Distinct, luminous discipline chips. */
.cv__chip:nth-child(1){--glow:#ff5c31;--glow-text:#a92f12}
.cv__chip:nth-child(2){--glow:#1674ff;--glow-text:#1756ba}
.cv__chip:nth-child(3){--glow:#f50083;--glow-text:#ad005c}
.cv__chip:nth-child(4){--glow:#00b9f1;--glow-text:#006d8d}
html.theme-dark .cv__chip:nth-child(1){--glow-text:#ffaf96}
html.theme-dark .cv__chip:nth-child(2){--glow-text:#a6c9ff}
html.theme-dark .cv__chip:nth-child(3){--glow-text:#ff9acf}
html.theme-dark .cv__chip:nth-child(4){--glow-text:#89e5ff}
.cv .cv__chip{position:relative;isolation:isolate;overflow:hidden;border-color:color-mix(in srgb,var(--glow) 30%,var(--line));color:var(--glow-text);transition:background .3s,border-color .3s,box-shadow .3s,transform .3s}
.cv .cv__chip::before{background:var(--glow)}
.cv .cv__chip::after{content:"";position:absolute;inset:0;z-index:-1;opacity:0;background:radial-gradient(circle at var(--x,50%) var(--y,50%),color-mix(in srgb,var(--glow) 30%,transparent),transparent 75%);transition:opacity .25s}
.cv .cv__chip:is(.is-on,:hover,:focus-visible,.is-touched){background:color-mix(in srgb,var(--glow) 10%,var(--paper));color:var(--glow-text);border-color:var(--glow);box-shadow:0 0 20px color-mix(in srgb,var(--glow) 24%,transparent);transform:translateY(-2px)}
.cv .cv__chip:is(.is-on,:hover,:focus-visible,.is-touched)::before{background:var(--glow)}
.cv .cv__chip:is(:hover,:focus-visible,.is-touched)::after{opacity:1}
.cv .cv__chip:focus-visible{outline:2px solid var(--glow-text);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.cv .cv__chip{transform:none!important;transition:none!important}}
