/* ============================================================
   CV interactif (/cv) — univers « régie vidéo » du CV PDF 2026
   REC + timecode · viseur + VU-mètre · cartes · régie multicaméra ·
   niveaux audio · timeline de montage · parcours · cassette Face B
   ============================================================ */

.gl-cv { background: var(--gl-night); color: #fff; }
.gl-cv-section { padding: 72px 0; }
.gl-cv-section + .gl-cv-section { padding-top: 0; }
.gl-mono, .gl-cv-rec, .gl-cv-cam__loc, .gl-cv-cam__fmt, .gl-cv-cam__shutter, .gl-cv-cam__exp, .gl-cv-levels__title,
.gl-cv-tl__bar, .gl-cv-tl__year, .gl-cv-tl__head, .gl-cv-tl__playhead em, .gl-cv-mark, .gl-cv-level__state, .gl-cv-meta, .gl-cv-cams figcaption {
	font-family: 'DM Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
}

/* ---------- En-tête REC ---------- */
.gl-cv-head { padding: 56px 0 40px; }
.gl-cv-head__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.gl-cv-rec { display: flex; align-items: center; gap: 16px; margin: 0 0 32px; font-size: 13px; font-weight: 500; letter-spacing: .14em; color: #D8D3E6; }
.gl-cv-rec__badge { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 6px; background: #E8262E; color: #fff; font-weight: 500; }
.gl-cv-rec__dot { width: 9px; height: 9px; border-radius: 50%; background: #fff; animation: gl-blink 1.2s steps(2) infinite; }
.gl-cv-rec__tc { border-bottom: 2px solid #E8262E; padding-bottom: 4px; }
.gl-tc { font-variant-numeric: tabular-nums; }
body .gl-cv-name { margin: 0; font-family: var(--gl-font-title); font-weight: 800; line-height: .82; letter-spacing: -.045em; font-size: clamp(64px, 9vw, 150px); }
.gl-cv-name__first { display: block; white-space: nowrap; }
.gl-cv-name__last { display: block; white-space: nowrap; margin-left: .18em; color: var(--gl-yellow); font-style: italic; letter-spacing: -.03em; transform: skewX(-6deg); transform-origin: left; }
.gl-cv-role { margin: 40px 0 0; font-family: var(--gl-font-title); font-size: clamp(24px, 2.6vw, 34px); font-weight: 700; }
.gl-cv-role em { color: var(--gl-yellow); font-style: italic; }
.gl-cv-pitch { position: relative; margin: 18px 0 0; max-width: 620px; padding-top: 18px; font-size: 18px; line-height: 1.55; color: #C9C4D6; }
.gl-cv-pitch::before { content: ""; position: absolute; left: 0; top: 0; width: 200px; border-top: 2px dotted rgba(255,255,255,.5); }
.gl-cv-pitch strong { color: #fff; }
.gl-cv-head__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

.gl-cv-cam { display: flex; gap: 14px; align-items: stretch; justify-self: end; width: 100%; max-width: 460px; }
.gl-cv-cam__frame { position: relative; flex: 1 1 auto; margin: 0; aspect-ratio: 4 / 5; border-radius: 6px; overflow: hidden; background: #1A1528; }
.gl-cv-cam__frame img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.08); }
.gl-cv-cam__frame > span { position: absolute; z-index: 2; color: #fff; font-size: 12px; font-weight: 500; letter-spacing: .14em; text-shadow: 0 1px 6px rgba(0,0,0,.7); }
.gl-cv-cam__corners { inset: 14px; border: 0; pointer-events: none;
	background:
		linear-gradient(#fff, #fff) left top / 22px 2px no-repeat, linear-gradient(#fff, #fff) left top / 2px 22px no-repeat,
		linear-gradient(#fff, #fff) right top / 22px 2px no-repeat, linear-gradient(#fff, #fff) right top / 2px 22px no-repeat,
		linear-gradient(#fff, #fff) left bottom / 22px 2px no-repeat, linear-gradient(#fff, #fff) left bottom / 2px 22px no-repeat,
		linear-gradient(#fff, #fff) right bottom / 22px 2px no-repeat, linear-gradient(#fff, #fff) right bottom / 2px 22px no-repeat;
	opacity: .85; }
.gl-cv-cam__loc { left: 24px; top: 22px; white-space: pre-line; line-height: 1.35; padding-left: 18px; }
.gl-cv-cam__loc::before { content: ""; position: absolute; left: 0; top: 2px; width: 10px; height: 13px; background: #fff; -webkit-mask: radial-gradient(circle at 50% 38%, transparent 2.5px, #000 3px) ; mask: radial-gradient(circle at 50% 38%, transparent 2.5px, #000 3px); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; }
.gl-cv-cam__fmt { right: 24px; top: 20px; padding: 3px 8px; border: 1.5px solid #fff; border-radius: 6px; }
.gl-cv-cam__shutter { left: 24px; bottom: 22px; }
.gl-cv-cam__exp { right: 24px; bottom: 22px; }

/* VU-mètre stéréo qui danse à côté du portrait */
.gl-cv-vu { position: relative; display: flex; flex: 0 0 auto; gap: 6px; padding-bottom: 22px; }
.gl-cv-vu > .gl-cv-vu__ch { display: flex; flex-direction: column-reverse; gap: 3px; width: 13px; animation: gl-vu 1.1s steps(1) infinite; animation-delay: var(--d, 0s); }
.gl-cv-vu__ch span { flex: 1 1 0; min-height: 6px; border-radius: 1px; background: #241E33; }
.gl-cv-vu__ch span:nth-child(-n+9) { background: #3DBE8B; }
.gl-cv-vu__ch span:nth-child(n+10):nth-child(-n+15) { background: #FFCE00; }
.gl-cv-vu__ch span:nth-child(n+16):nth-child(-n+18) { background: #FF8A1F; }
.gl-cv-vu__ch span:nth-child(n+19) { background: #3A1F28; }
/* Le niveau varie : on masque le haut de la colonne à une hauteur qui change. */
.gl-cv-vu__ch { -webkit-mask: linear-gradient(to top, #000 var(--lvl, 70%), rgba(0,0,0,.18) var(--lvl, 70%)); mask: linear-gradient(to top, #000 var(--lvl, 70%), rgba(0,0,0,.18) var(--lvl, 70%)); }
@keyframes gl-vu { 0% { --lvl: 62%; } 12% { --lvl: 78%; } 24% { --lvl: 55%; } 36% { --lvl: 84%; } 48% { --lvl: 70%; } 60% { --lvl: 91%; } 72% { --lvl: 58%; } 84% { --lvl: 76%; } }
@property --lvl { syntax: '<percentage>'; inherits: false; initial-value: 70%; }
.gl-cv-vu__lbl { position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: space-around; font: 500 11px 'DM Mono', monospace; color: #B7B1C6; }

/* ---------- Cartes « 4 gestes » ---------- */
.gl-cv-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; counter-reset: glstep; }
body .gl-cv-step { position: relative; overflow: hidden; padding: 10px 10px 44px; border-radius: 14px; background: var(--gl-yellow); color: var(--gl-ink); counter-increment: glstep;
	clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%); }
body .gl-cv-step::after { content: "0" counter(glstep); position: absolute; right: -6px; bottom: -22px; font: italic 800 88px/1 var(--gl-font-title); letter-spacing: -.04em; color: rgba(18,17,20,.1); pointer-events: none; }
body .gl-cv-step .wp-block-image { margin: 0 0 14px; border-radius: 8px; overflow: hidden; aspect-ratio: 16 / 10; background: #1C1450; }
body .gl-cv-step .wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--gl-ease); }
body .gl-cv-step:hover .wp-block-image img { transform: scale(1.06); }
body .gl-cv-step h3 { margin: 0 6px 8px; font-size: 24px; font-weight: 800; letter-spacing: -.02em; }
body .gl-cv-step p { position: relative; z-index: 1; margin: 0 6px; font-size: 15px; line-height: 1.5; }

/* ---------- En direct ! (régie 3 caméras) ---------- */
body .gl-cv-live { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 32px; align-items: center; margin-top: 24px; padding: 28px; border-radius: 18px; background: var(--gl-yellow); color: var(--gl-ink); }
body .gl-cv-live::after { content: "LIVE"; position: absolute; left: 16px; bottom: -30px; font: italic 800 96px/1 var(--gl-font-title); color: rgba(18,17,20,.08); pointer-events: none; }
body .gl-cv-live h3 { margin: 0 0 8px; font-size: 26px; font-weight: 800; display: flex; align-items: center; gap: 10px; }
body .gl-cv-live h3::before { content: ""; width: 22px; height: 22px; flex: 0 0 auto; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3Cpath d='M16.2 7.8a6 6 0 0 1 0 8.4M7.8 16.2a6 6 0 0 1 0-8.4M19 5a10 10 0 0 1 0 14M5 19A10 10 0 0 1 5 5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3Cpath d='M16.2 7.8a6 6 0 0 1 0 8.4M7.8 16.2a6 6 0 0 1 0-8.4M19 5a10 10 0 0 1 0 14M5 19A10 10 0 0 1 5 5'/%3E%3C/svg%3E") center / contain no-repeat; }
body .gl-cv-live p { margin: 0; font-size: 16px; line-height: 1.5; }
body .gl-cv-cams { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; padding: 16px; border-radius: 16px; background: var(--gl-ink); }
body .gl-cv-cams .wp-block-image { position: relative; margin: 0; aspect-ratio: 16 / 10; border-radius: 8px; overflow: hidden; border: 3px solid transparent; transition: border-color .25s ease; }
body .gl-cv-cams .wp-block-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.1); }
body .gl-cv-cams .wp-block-image::before { content: ""; position: absolute; inset: 0; z-index: 1; background: var(--gl-yellow); mix-blend-mode: multiply; opacity: .55; pointer-events: none; }
body .gl-cv-cams .wp-block-image:nth-child(1) img { object-position: 30% 20%; }
body .gl-cv-cams .wp-block-image:nth-child(2) img { object-position: 50% 35%; transform: scale(1.4); }
body .gl-cv-cams .wp-block-image:nth-child(3) img { object-position: 70% 25%; transform: scale(1.15); }
body .gl-cv-cams figcaption { position: absolute; z-index: 2; left: 8px; top: 6px; margin: 0; color: #fff; font-size: 11px; font-weight: 500; letter-spacing: .08em; text-shadow: 0 1px 4px rgba(0,0,0,.8); }
body .gl-cv-cams .wp-block-image::after { position: absolute; z-index: 2; left: 8px; bottom: 6px; padding: 2px 7px; border-radius: 4px; font: 500 11px 'DM Mono', monospace; color: #fff; }
body .gl-cv-cams .is-pgm { border-color: #E8262E; }
body .gl-cv-cams .is-pgm::after { content: "PRG"; background: #E8262E; }
body .gl-cv-cams .is-pvw { border-color: #3DBE8B; }
body .gl-cv-cams .is-pvw::after { content: "PRW"; background: #3DBE8B; }

/* ---------- Niveaux audio ---------- */
.gl-cv-levels { padding: 28px 28px 24px; border-radius: 18px; border: 1.5px solid rgba(255,255,255,.55); }
.gl-cv-levels__title { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px; padding: 6px 12px; border-radius: 6px; background: #fff; color: var(--gl-ink); font-size: 12px; font-weight: 500; letter-spacing: .2em; }
.gl-cv-levels__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 56px; }
.gl-cv-levels__col { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.gl-cv-level { display: grid; grid-template-columns: 170px minmax(0, 1fr) 70px; align-items: center; gap: 14px; }
.gl-cv-level__name { font-family: var(--gl-font-title); font-size: 15px; font-weight: 700; }
.gl-cv-level__meter { position: relative; display: grid; grid-template-columns: repeat(26, minmax(0, 1fr)); gap: 3px; height: 16px; }
.gl-seg { border-radius: 1.5px; background: #262036; transform-origin: bottom; }
.gl-seg.is-on.gl-seg--a { background: #FF7A1A; }
.gl-seg.is-on.gl-seg--b { background: #FFCE00; }
.gl-seg.is-on.gl-seg--c { background: #3DBE8B; }
.gl-seg.is-on.gl-seg--d { background: #8F7CFF; }
.gl-cv-level__state { font-size: 11px; color: #B7B1C6; }
.gl-cv-level--scale { height: 14px; }
.gl-cv-level--scale .gl-cv-level__meter { height: 14px; display: block; }
.gl-cv-mark { position: absolute; bottom: 0; left: calc((var(--at) - 1) / 26 * 100%); padding-left: 0; font-size: 11px; font-weight: 500; color: #FF9A3D; white-space: nowrap; transform: translateX(-60%); }
.gl-cv-mark::after { content: ""; display: inline-block; width: 2px; height: 12px; margin-left: 4px; vertical-align: -2px; background: currentColor; }
.gl-cv-mark--0 { color: #3DBE8B; }
/* Animation d'arrivée : les segments s'allument un à un (JS ajoute .is-armed puis .is-in). */
.gl-cv-levels.is-armed .gl-seg.is-on { opacity: .12; }
.gl-cv-levels.is-in .gl-seg.is-on { opacity: 1; transition: opacity .08s linear; transition-delay: calc(var(--i) * 32ms); }
.gl-cv-levels.is-in .gl-cv-level:hover .gl-seg.is-on { animation: gl-peak .6s ease-in-out infinite alternate; animation-delay: calc(var(--i) * -40ms); }
@keyframes gl-peak { to { opacity: .55; } }
.gl-cv-tools { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0 0; padding: 0; }
.gl-cv-tools li { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 8px; background: #fff; color: var(--gl-ink); font-family: var(--gl-font-title); font-size: 14px; font-weight: 700; }
.gl-cv-tools li::before { content: ""; width: 12px; height: 7px; margin-top: -4px; border: solid currentColor; border-width: 0 0 2.4px 2.4px; transform: rotate(-45deg); }

/* ---------- Timeline : titre ---------- */
body .gl-cv-tl-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 28px; }
body .gl-cv-tl-head h2 { font-size: clamp(36px, 4.4vw, 60px); font-weight: 800; letter-spacing: -.03em; line-height: 1; margin: 0; }
body .gl-cv-tl-head .gl-cv-since { text-align: right; }
body .gl-cv-since p { margin: 0; }
body .gl-cv-since .gl-cv-since__kicker { font-size: 13px; font-weight: 700; letter-spacing: .2em; color: #B7B1C6; }
body .gl-cv-since .gl-cv-since__big { margin-top: 8px; font-family: var(--gl-font-title); font-size: clamp(24px, 2.4vw, 34px); font-weight: 800; }
body .gl-cv-since .gl-cv-since__small { margin-top: 4px; font-size: 13px; font-weight: 700; letter-spacing: .06em; color: #B7B1C6; }

/* ---------- Timeline de montage ---------- */
.gl-cv-tl { padding: 18px 20px 22px; border-radius: 16px; border: 1px solid #2E2842; background: #120E1E; }
.gl-cv-tl__bar { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 14px; font-size: 11px; font-weight: 500; letter-spacing: .18em; color: #B7B1C6; }
.gl-cv-tl__scroll { overflow-x: auto; scrollbar-width: thin; }
.gl-cv-tl__body { position: relative; min-width: 760px; display: flex; flex-direction: column; gap: 8px; padding-bottom: 26px; --head: 64px; }
.gl-cv-tl__ruler, .gl-cv-tl__track { display: grid; grid-template-columns: var(--head) minmax(0, 1fr); align-items: center; }
.gl-cv-tl__ruler { height: 26px; border-bottom: 1.5px solid #4A4360; }
.gl-cv-tl__lane { position: relative; height: 100%; }
.gl-cv-tl__year { position: absolute; bottom: 6px; transform: translateX(-50%); font-size: 11px; color: #D8D3E6; }
.gl-cv-tl__year::after { content: ""; position: absolute; left: 50%; bottom: -8px; width: 1.5px; height: 6px; background: #4A4360; }
.gl-cv-tl__track { height: 46px; border-radius: 8px; background: #1A1528; }
.gl-cv-tl__head { padding-left: 16px; font-size: 13px; font-weight: 500; color: #B7B1C6; }
.gl-clip { position: absolute; top: 5px; bottom: 5px; display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding: 0 9px; border-radius: 6px; color: var(--gl-ink); text-decoration: none; white-space: nowrap; transition: transform .2s ease, filter .3s ease, opacity .3s ease; }
.gl-clip strong { font-family: var(--gl-font-title); font-size: 12.5px; font-weight: 800; line-height: 1.1; overflow: hidden; text-overflow: ellipsis; }
.gl-clip small { font-size: 10.5px; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; }
a.gl-clip:hover, a.gl-clip:focus-visible { transform: translateY(-2px); filter: brightness(1.08); z-index: 3; }
.gl-clip--lilas { background: #D2C7FF; }
.gl-clip--ambre { background: #FFB21E; }
.gl-clip--vert { background: #4DC38E; }
.gl-clip--rouge { background: #E8262E; color: #fff; }
.gl-clip--violet { background: #7B6CFF; color: #fff; }
.gl-clip--jaune { background: var(--gl-yellow); }
.gl-clip--orange { background: #FF8A3D; }
.gl-clip--rose { background: #FF5FA2; }
.gl-clip--rose-hachures { background: #FF5FA2 repeating-linear-gradient(135deg, rgba(255,255,255,.28) 0 6px, transparent 6px 12px); }
.gl-clip--blanc { background: #EDEBF4; }
.gl-cv-tl__track--wave { height: 38px; }
.gl-cv-tl__wave { position: absolute; inset: 7px 0; opacity: .85; background: repeating-linear-gradient(90deg, #7B6CFF 0 2px, transparent 2px 4px); }
.gl-cv-tl__wave { clip-path: polygon(0 40%, 2% 10%, 4% 55%, 6% 20%, 8% 70%, 10% 5%, 12% 45%, 14% 25%, 16% 60%, 18% 15%, 20% 50%, 22% 30%, 24% 75%, 26% 10%, 28% 40%, 30% 20%, 32% 65%, 34% 5%, 36% 50%, 38% 30%, 40% 60%, 42% 15%, 44% 45%, 46% 25%, 48% 70%, 50% 10%, 52% 55%, 54% 20%, 56% 60%, 58% 10%, 60% 45%, 62% 30%, 64% 65%, 66% 15%, 68% 50%, 70% 25%, 72% 60%, 74% 10%, 76% 45%, 78% 30%, 80% 55%, 82% 15%, 84% 50%, 86% 35%, 88% 65%, 90% 20%, 92% 50%, 94% 30%, 96% 60%, 98% 25%, 100% 45%, 100% 55%, 98% 80%, 96% 45%, 94% 75%, 92% 55%, 90% 85%, 88% 40%, 86% 70%, 84% 55%, 82% 90%, 80% 50%, 78% 75%, 76% 60%, 74% 95%, 72% 45%, 70% 80%, 68% 55%, 66% 90%, 64% 40%, 62% 75%, 60% 60%, 58% 95%, 56% 45%, 54% 85%, 52% 50%, 50% 90%, 48% 35%, 46% 80%, 44% 60%, 42% 90%, 40% 45%, 38% 75%, 36% 55%, 34% 95%, 32% 40%, 30% 85%, 28% 60%, 26% 95%, 24% 30%, 22% 75%, 20% 55%, 18% 90%, 16% 45%, 14% 80%, 12% 60%, 10% 95%, 8% 35%, 6% 85%, 4% 50%, 2% 90%, 0 60%); }
.gl-cv-tl__playzone { position: absolute; left: var(--head); right: 0; top: 0; bottom: 26px; pointer-events: none; }
.gl-cv-tl__playhead { position: absolute; top: 0; bottom: -6px; width: 2px; margin-left: -1px; background: var(--gl-yellow); box-shadow: 0 0 10px rgba(255,206,0,.6); }
.gl-cv-tl__playhead::before { content: ""; position: absolute; left: -6px; top: -2px; border: 7px solid transparent; border-top: 9px solid var(--gl-yellow); }
.gl-cv-tl__playhead em { position: absolute; right: 10px; bottom: -24px; font-style: normal; font-size: 10.5px; font-weight: 500; letter-spacing: .14em; color: var(--gl-yellow); white-space: nowrap; }
/* Lecture à l'arrivée (JS) : la tête part de la gauche, les clips s'allument quand elle les atteint. */
.gl-cv-tl.is-armed .gl-clip { opacity: .28; filter: saturate(.3); }
.gl-cv-tl.is-armed .gl-clip.is-played { opacity: 1; filter: none; }
.gl-cv-tl.is-armed .gl-cv-tl__playhead em { opacity: 0; transition: opacity .4s ease; }
.gl-cv-tl.is-done .gl-cv-tl__playhead em { opacity: 1; }
.gl-cv-tl.is-done .gl-cv-tl__playhead { animation: gl-blink 1.6s ease-in-out infinite; }

/* ---------- Parcours (détail des clips) ---------- */
body .gl-cv-jobs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 56px; margin-top: 40px; }
body .gl-cv-job { position: relative; display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 14px; padding-left: 16px; scroll-margin-top: 140px; border-radius: 4px; transition: background .4s ease; }
body .gl-cv-job::before { content: ""; position: absolute; left: 0; top: 2px; bottom: 2px; width: 4px; border-radius: 2px; background: var(--c, var(--gl-yellow)); }
body .gl-cv-job > * { grid-column: 2; margin: 0; }
body .gl-cv-job > .gl-cv-job__num { grid-column: 1; grid-row: 1 / span 4; font: 800 22px/1.2 var(--gl-font-title); color: var(--c, var(--gl-yellow)); }
body .gl-cv-job .gl-cv-meta { font-size: 12px; font-weight: 500; letter-spacing: .12em; color: #D8D3E6; text-transform: uppercase; }
body .gl-cv-job.gl-cv-job--now .gl-cv-meta::before { content: ""; display: inline-block; width: 8px; height: 8px; margin: 0 8px 1px -2px; border-radius: 50%; background: #E8262E; animation: gl-blink 1.2s steps(2) infinite; }
body .gl-cv-job h3 { margin-top: 4px; font-size: 22px; font-weight: 800; letter-spacing: -.01em; }
body .gl-cv-job .gl-cv-job__role { margin-top: 2px; font-size: 15px; font-weight: 600; color: var(--c, var(--gl-yellow)); }
body .gl-cv-job .gl-cv-job__desc { margin-top: 10px; font-size: 15px; line-height: 1.6; color: #C9C4D6; }
body .gl-cv-job.is-flash { background: rgba(255,255,255,.06); }
.gl-c-jaune { --c: #FFCE00; } .gl-c-orange { --c: #FF8A3D; } .gl-c-violet { --c: #8F7CFF; } .gl-c-cyan { --c: #36C5D6; }
.gl-c-vert { --c: #4DC38E; } .gl-c-rose { --c: #FF5FA2; } .gl-c-lilas { --c: #C9B8FF; } .gl-c-rouge { --c: #FF4D55; } .gl-c-ambre { --c: #FFB21E; }

/* ---------- Formation · langues · cassette ---------- */
body .gl-cv-foot { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr) minmax(0, 1.1fr); gap: 48px; align-items: start; padding-top: 40px; border-top: 1px solid #2E2842; }
body .gl-cv-foot .is-style-gl-eyebrow { color: #B7B1C6; font-size: 12px; margin-bottom: 16px; }
body .gl-cv-foot h3 { margin: 0; font-size: 17px; font-weight: 700; }
body .gl-cv-foot h3 + p { margin: 2px 0 16px; font-size: 13px; color: #B7B1C6; }
body .gl-cv-langs { list-style: none; margin: 0; padding: 0; }
body .gl-cv-langs li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px dashed #4A4360; font-size: 15px; }
body .gl-cv-langs li strong { font-family: var(--gl-font-title); }
body .gl-cv-langs li em { font-style: normal; color: #B7B1C6; }

.gl-cassette { margin: 8px auto 0; max-width: min(380px, 90%); transform: rotate(-5deg); transition: transform .4s var(--gl-ease); }
.gl-cassette:hover { transform: rotate(-2deg) scale(1.02); }
.gl-cassette__shell { position: relative; padding: 18px 18px 64px; border-radius: 16px; background: #2B2540; border: 2px solid #4A4360; box-shadow: 0 18px 40px rgba(0,0,0,.4); }
.gl-cassette__label { padding: 0 0 12px; border-radius: 8px; background: var(--gl-yellow); color: var(--gl-ink); overflow: hidden; }
.gl-cassette__top { display: flex; justify-content: space-between; gap: 8px; margin: 0 0 6px; padding: 6px 12px; background: var(--gl-ink); color: var(--gl-yellow); font: 700 11px/1.2 var(--gl-font-title); letter-spacing: .16em; }
.gl-cassette__top span + span { color: #fff; }
.gl-cassette__line { margin: 0 14px; padding: 2px 0; border-bottom: 1px dashed rgba(18,17,20,.35); font: 600 24px/1.15 'Caveat', 'Segoe Print', cursive; transform: rotate(-1.5deg); }
.gl-cassette__window { position: absolute; left: 50%; bottom: 14px; width: 62%; height: 40px; transform: translateX(-50%); display: flex; align-items: center; justify-content: space-between; padding: 0 12px; border-radius: 20px; background: #15111F; }
.gl-cassette__reel { width: 28px; height: 28px; flex: 0 0 auto; border-radius: 50%; border: 4px solid #F1EEF8; background: repeating-conic-gradient(#F1EEF8 0 22deg, transparent 22deg 60deg); animation: gl-spin 6s linear infinite; }
.gl-cassette:hover .gl-cassette__reel { animation-duration: 1.2s; }
.gl-cassette__tape { flex: 1 1 auto; height: 18px; margin: 0 8px; border-radius: 4px; background: #3A2F22; }
.gl-cassette__screw { position: absolute; bottom: 22px; width: 7px; height: 7px; border-radius: 50%; background: #4A4360; }
.gl-cassette__screw:first-of-type { left: 18px; }
.gl-cassette__screw:last-of-type { right: 18px; }

/* ---------- Appel final ---------- */
body .gl-cv-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding: 48px 56px; border-radius: 28px; background: var(--gl-yellow); color: var(--gl-ink); }
body .gl-cv-cta h2 { margin: 0; font-size: clamp(30px, 3.6vw, 52px); font-weight: 800; letter-spacing: -.03em; line-height: 1.02; }
body .gl-cv-cta p { margin: 8px 0 0; font-size: 18px; }

/* ---------- Mobile ---------- */
@media (max-width: 1100px) {
	.gl-cv-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body .gl-cv-live { grid-template-columns: 1fr; }
	.gl-cv-levels__list { grid-template-columns: 1fr; }
	.gl-cv-levels__col + .gl-cv-levels__col .gl-cv-level--scale { display: none; }
	.gl-cv-levels__col + .gl-cv-levels__col { margin-top: 12px; }
	body .gl-cv-foot { grid-template-columns: 1fr 1fr; }
	body .gl-cv-foot > :last-child { grid-column: 1 / -1; justify-self: center; }
}
@media (max-width: 900px) {
	.gl-cv-head__grid { grid-template-columns: 1fr; gap: 36px; }
	.gl-cv-cam { justify-self: center; max-width: 380px; }
	body .gl-cv-jobs { grid-template-columns: 1fr; gap: 28px; }
	.gl-cv-section { padding: 48px 0; }
	body .gl-cv-tl-head .gl-cv-since { text-align: left; }
	body .gl-cv-cta { padding: 32px 24px; }
}
@media (max-width: 640px) {
	.gl-cv-steps { grid-template-columns: 1fr; }
	.gl-cv-level { grid-template-columns: 1fr 64px; row-gap: 6px; }
	.gl-cv-level__meter { grid-column: 1 / -1; grid-row: 2; }
	.gl-cv-level--scale { display: none; }
	body .gl-cv-cams { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 10px; }
	body .gl-cv-foot { grid-template-columns: 1fr; }
	.gl-cv-tl { padding: 14px 12px 16px; }
	.gl-cv-tl__body { --head: 40px; }
	.gl-cv-tl__head { padding-left: 8px; }
}

/* ---------- Réduire les animations ---------- */
@media (prefers-reduced-motion: reduce) {
	.gl-cv-rec__dot, .gl-cv-vu > .gl-cv-vu__ch, .gl-cassette__reel, body .gl-cv-job.gl-cv-job--now .gl-cv-meta::before, .gl-cv-tl.is-done .gl-cv-tl__playhead { animation: none !important; }
	.gl-cv-levels.is-armed .gl-seg.is-on, .gl-cv-tl.is-armed .gl-clip { opacity: 1 !important; filter: none !important; }
	.gl-cassette, .gl-clip, .gl-cv-step img { transition: none !important; }
}
