/* ============================================================
   ESN — Fiche joueur v2 : mise en page magazine
   Typo géante en contour, bandeaux défilants, grain, parcours
   horizontal, mur de palmarès, partenaires en pleine largeur.
   ============================================================ */
.pj{--dark:#14120f;--dark-2:#1d1b17;--cream:#F3EFE6;--py:0px}
.pj .pj-label{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);margin:0}

/* ---------- grain ---------- */
.pj-grain{position:absolute;inset:0;pointer-events:none;z-index:1;opacity:.55;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:220px}

/* ---------- bandeaux défilants ---------- */
.pj-marq{overflow:hidden;white-space:nowrap;pointer-events:none;user-select:none}
.pj-marq-in{display:inline-flex;align-items:center;gap:.35em;animation:pj-marq 38s linear infinite;will-change:transform}
.pj-marq span{font-family:var(--display);font-weight:900;text-transform:uppercase;line-height:1}
.pj-marq i{font-style:normal;font-family:var(--body);line-height:1}
@keyframes pj-marq{to{transform:translateX(-50%)}}
.pj-marq-top{position:absolute;left:0;right:0;top:9%;z-index:0;opacity:.9}
.pj-marq-top span{font-size:clamp(120px,19vw,300px);color:transparent;-webkit-text-stroke:1.5px rgba(243,239,230,.16)}
.pj-marq-top i{font-size:clamp(40px,6vw,90px);color:rgba(196,187,163,.25)}
.pj-marq-sand{background:var(--ink);color:var(--sand);padding:10px 0;border-bottom:1px solid rgba(243,239,230,.1)}
.pj-marq-sand span{font-size:16px;letter-spacing:.16em}
.pj-marq-sand i{font-size:9px;color:rgba(196,187,163,.6);padding:0 14px}

/* ---------- HERO ---------- */
.pj-hero{position:relative;background:var(--dark);color:var(--cream);overflow:hidden;min-height:calc(100vh - var(--navh,64px));isolation:isolate}
.pj-hero::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(60% 70% at 70% 90%,rgba(196,187,163,.26),transparent 62%),radial-gradient(40% 40% at 10% 10%,rgba(196,187,163,.10),transparent 60%),linear-gradient(180deg,#1d1b17 0%,#14120f 70%,#0f0e0c 100%)}
.pj-crestbg{position:absolute;right:-8%;top:52%;width:min(62vw,820px);transform:translateY(calc(-50% + var(--py) * .18));opacity:.07;filter:grayscale(1) brightness(1.6);pointer-events:none;z-index:0}
.pj-hgrid{position:relative;z-index:2;display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,1.05fr);align-items:end;min-height:calc(100vh - var(--navh,64px) - 96px);padding-top:clamp(40px,8vh,90px)}
.pj-side{position:relative;align-self:stretch}
.pj-side span{position:absolute;left:0;bottom:120px;transform-origin:0 0;transform:rotate(-90deg) translateX(0) translateY(-6px);font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:rgba(243,239,230,.5);white-space:nowrap}
.pj-side span::after{content:"";display:inline-block;width:80px;height:1px;background:rgba(243,239,230,.3);margin-left:18px;vertical-align:middle}

.pj-fig{position:relative;align-self:end;display:grid;justify-items:center;order:3}
.pj-cut{position:relative;z-index:2;max-height:calc(100vh - var(--navh,64px) - 60px);width:auto;max-width:100%;object-fit:contain;filter:drop-shadow(0 50px 70px rgba(0,0,0,.65));transform:translateY(calc(var(--py) * .12));animation:pj-cutin 1.1s cubic-bezier(.2,.8,.2,1) both}
@keyframes pj-cutin{from{opacity:0;transform:translateY(40px) scale(.97)}to{opacity:1}}
.pj-num{position:absolute;right:-4%;top:4%;z-index:1;font-family:var(--display);font-weight:900;font-size:clamp(160px,22vw,380px);line-height:1;color:transparent;-webkit-text-stroke:2px rgba(196,187,163,.55);transform:translateY(calc(var(--py) * -.08));animation:pj-fade 1.4s .2s both}
@keyframes pj-fade{from{opacity:0}to{opacity:1}}
.pj-splash{position:absolute;left:50%;bottom:-6%;width:120%;height:34%;transform:translateX(-50%);z-index:1;background:radial-gradient(50% 50% at 50% 50%,rgba(196,187,163,.38),transparent 70%);filter:blur(12px);pointer-events:none}

.pj-id{position:relative;z-index:3;padding-bottom:clamp(40px,6vh,70px);order:2}
.pj-back{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:rgba(243,239,230,.6);margin-bottom:28px;transition:color .3s,gap .3s}
.pj-back:hover{color:var(--sand);gap:12px}
.pj-id .pj-label{color:var(--sand)}
.pj-h1{display:grid;margin-top:12px}
.pj-h1 .first{font-family:var(--body);font-weight:500;font-size:clamp(22px,2.4vw,34px);letter-spacing:.14em;line-height:1;text-transform:uppercase;color:rgba(243,239,230,.85);animation:pj-up .9s .1s cubic-bezier(.2,.8,.2,1) both}
.pj-h1 .last{font-size:clamp(78px,10.5vw,176px);line-height:.84;color:var(--cream);letter-spacing:-.01em;animation:pj-up 1s .2s cubic-bezier(.2,.8,.2,1) both;position:relative}
.pj-h1 .last::after{content:"";display:block;width:64px;height:6px;background:var(--sand);margin-top:18px;transform-origin:0 50%;animation:pj-bar .8s .7s cubic-bezier(.2,.8,.2,1) both}
.pj-h1 .last.long{font-size:clamp(58px,7.4vw,124px)}
@keyframes pj-up{from{opacity:0;transform:translateY(.4em);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(-.2em -.2em -.4em -.2em)}}
@keyframes pj-bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.pj-club{display:flex;align-items:center;gap:16px;margin-top:30px;animation:pj-fade 1s .6s both}
.pj-club img{height:60px;width:auto;filter:drop-shadow(0 6px 14px rgba(0,0,0,.5))}
.pj-club div{display:grid;gap:3px}
.pj-club b{font-size:20px;font-weight:600;letter-spacing:.02em}
.pj-club span{color:rgba(243,239,230,.6);font-size:14.5px}
.pj-tag{display:inline-flex;align-items:center;gap:8px;margin-top:22px;background:var(--sand);color:var(--ink);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:8px 14px;border-radius:999px;animation:pj-fade 1s .8s both}
.pj-tag img{height:14px;width:auto}

.pj-hfoot{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:18px 22px;border-top:1px solid rgba(243,239,230,.12);margin-top:0}
.pj-soc{display:flex;flex-wrap:wrap;gap:8px}
.pj-soc a{display:inline-flex;align-items:center;gap:9px;text-decoration:none;color:var(--cream);border:1px solid rgba(243,239,230,.22);border-radius:999px;padding:8px 14px 8px 11px;font-size:13.5px;transition:background .3s,color .3s,border-color .3s,transform .3s}
.pj-soc a svg{width:16px;height:16px}
.pj-soc a:hover{background:var(--sand);color:var(--ink);border-color:var(--sand);transform:translateY(-2px)}
.pj-scroll{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:rgba(243,239,230,.5)}
.pj-scroll i{width:54px;height:1px;background:rgba(243,239,230,.3);position:relative;overflow:hidden}
.pj-scroll i::after{content:"";position:absolute;top:0;left:-40%;width:40%;height:1px;background:var(--sand);animation:pj-slide 1.8s infinite}
@keyframes pj-slide{to{left:110%}}

/* ---------- FICHE ---------- */
.pj-facts{background:var(--sand);color:var(--ink)}
.pj-dl{margin:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:rgba(29,27,23,.18)}
.pj-dl div{background:var(--sand);padding:26px 18px 22px;display:grid;gap:8px;position:relative;overflow:hidden;transition:background .3s}
.pj-dl div:hover{background:var(--sand-2)}
.pj-dl dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(29,27,23,.6)}
.pj-dl dd{margin:0;font-family:var(--display);font-weight:900;font-size:clamp(26px,2.6vw,38px);text-transform:uppercase;line-height:.95}

/* ---------- sections ---------- */
.pj-sec{position:relative;padding-block:clamp(72px,9vw,128px)}
.pj-h{display:flex;align-items:flex-end;gap:clamp(16px,2vw,28px);margin-bottom:clamp(36px,4vw,56px);flex-wrap:wrap}
.pj-h h2{font-size:clamp(56px,8vw,128px);line-height:.84;letter-spacing:-.01em}
.pj-h h2 em{font-family:var(--serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;color:transparent;-webkit-text-stroke:1.5px var(--ink);font-size:.92em}
.pj-idx{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--mute);padding-bottom:.55em;position:relative}
.pj-idx::before{content:"";display:block;width:36px;height:1px;background:var(--sand);margin-bottom:10px}
.pj-hint,.pj-count{margin-left:auto;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);padding-bottom:.6em}
.pj-count b{font-family:var(--display);font-weight:900;font-size:40px;line-height:1;color:var(--ink);letter-spacing:0;vertical-align:-6px;margin-right:6px}

/* ---------- PARCOURS : rail horizontal ---------- */
.pj-parcours{background:var(--white);overflow:hidden}
.pj-rail-wrap{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scrollbar-width:none;cursor:grab;padding-bottom:12px;-webkit-overflow-scrolling:touch}
.pj-rail-wrap::-webkit-scrollbar{display:none}
.pj-rail-wrap.drag{cursor:grabbing;scroll-snap-type:none}
.pj-rail{list-style:none;margin:0;padding:0 var(--gutter);display:flex;gap:0;position:relative;width:max-content;min-width:100%}
.pj-rail::before{content:"";position:absolute;left:var(--gutter);right:var(--gutter);top:calc(var(--yh) + 36px);height:1px;background:var(--line)}
.pj-rail{--yh:clamp(70px,8vw,120px)}
.pj-step{position:relative;flex:0 0 auto;width:clamp(260px,24vw,340px);padding:0 28px 0 0;display:grid;grid-template-rows:var(--yh) auto auto;scroll-snap-align:start;user-select:none}
.pj-step+.pj-step{padding-left:28px;border-left:1px solid transparent}
.pj-year{font-family:var(--display);font-weight:900;font-size:clamp(70px,8vw,120px);line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(29,27,23,.35);transition:color .4s,-webkit-text-stroke-color .4s;align-self:end}
.pj-step:hover .pj-year,.pj-now .pj-year{color:var(--sand);-webkit-text-stroke-color:var(--sand)}
.pj-now .pj-year{color:var(--ink);-webkit-text-stroke-color:var(--ink)}
.pj-dot{position:relative;z-index:1;width:72px;height:72px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;box-shadow:0 2px 14px rgba(29,27,23,.08);transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.pj-dot img{width:46px;height:46px;object-fit:contain}
.pj-dot i{font-style:normal;font-family:var(--display);font-weight:900;font-size:20px;color:var(--ink)}
.pj-step:hover .pj-dot{transform:translateY(-4px);box-shadow:0 14px 28px rgba(29,27,23,.14)}
.pj-now .pj-dot{border-color:var(--ink);box-shadow:0 0 0 5px rgba(196,187,163,.35)}
.pj-formation .pj-dot{background:#F7F4EC}
.pj-selection .pj-dot{background:#EEF1F6}
.pj-body{display:grid;gap:6px;padding-top:18px}
.pj-years{font-style:normal;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.pj-pill{display:inline-block;margin-left:8px;padding:3px 9px;border-radius:999px;background:#F3EFE6;color:var(--ink-2);font-size:9.5px;letter-spacing:.14em;vertical-align:1px}
.pj-pill-now{background:var(--ink);color:var(--cream)}
.pj-clubn{font-family:var(--display);font-weight:900;font-size:clamp(26px,2.4vw,34px);line-height:.95;text-transform:uppercase}
.pj-note{font-size:15.5px;line-height:1.5;color:var(--ink-2);max-width:30ch}

/* ---------- PALMARÈS : mur ---------- */
.pj-palm{background:var(--mist)}
.pj-wall{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.pj-wall li{background:var(--mist);padding:28px 24px 26px;display:grid;gap:8px;align-content:start;position:relative;overflow:hidden;transition:background .35s,color .35s}
.pj-wall li::after{content:"";position:absolute;left:0;bottom:0;height:4px;width:100%;background:var(--sand);transform:scaleX(0);transform-origin:0 50%;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.pj-wall li:hover{background:var(--ink);color:var(--cream)}
.pj-wall li:hover::after{transform:scaleX(1)}
.pj-wall .y{font-family:var(--display);font-weight:900;font-size:clamp(54px,5vw,76px);line-height:.9;color:transparent;-webkit-text-stroke:1.5px var(--ink);transition:color .35s,-webkit-text-stroke-color .35s}
.pj-wall li:hover .y{color:var(--sand);-webkit-text-stroke-color:var(--sand)}
.pj-wall .t{font-family:var(--display);font-weight:800;font-size:22px;line-height:1;text-transform:uppercase;margin-top:6px}
.pj-wall .s{font-size:13.5px;color:var(--mute);transition:color .35s}
.pj-wall li:hover .s{color:rgba(243,239,230,.65)}

/* ---------- PARTENAIRES : pleine largeur, sombre ---------- */
.pj-dark{background:var(--dark);color:var(--cream)}
.pj-dark .pj-idx,.pj-dark .pj-hint,.pj-dark .pj-count,.pj-dark .pj-label{color:rgba(243,239,230,.55)}
.pj-dark .pj-h h2 em{color:var(--sand);-webkit-text-stroke:0}
.pj-brands{display:grid;border-top:1px solid rgba(243,239,230,.12)}
.pj-brand{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,72px);padding-block:clamp(36px,4.5vw,64px);border-bottom:1px solid rgba(243,239,230,.12);position:relative}
.pj-bhead{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-content:start;position:sticky;top:calc(var(--navh,64px) + 24px)}
.pj-bn{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--sand);padding-top:6px}
.pj-bt h3{font-family:var(--serif);font-weight:400;font-size:clamp(40px,5vw,76px);line-height:.95;letter-spacing:.01em;text-transform:uppercase;margin-top:10px;color:var(--cream);transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.pj-brand:hover .pj-bt h3{transform:translateX(8px)}
.pj-ext{grid-column:2;justify-self:start;margin-top:18px;display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--cream);font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;border:1px solid rgba(243,239,230,.3);border-radius:999px;padding:10px 16px;transition:background .3s,color .3s,border-color .3s}
.pj-ext i{font-style:normal;transition:transform .3s}
.pj-ext:hover{background:var(--sand);color:var(--ink);border-color:var(--sand)}
.pj-ext:hover i{transform:translate(2px,-2px)}
.pj-bbody{min-width:0}
.pj-bdesc{color:rgba(243,239,230,.78);font-size:17px;line-height:1.65;max-width:62ch;margin:0 0 6px}
.pj-media.m-grid{margin-top:22px}
.pj-media .m-item figcaption{color:rgba(243,239,230,.55)}
.pj-media .m-item .vid,.pj-media .m-item img{border-radius:4px;overflow:hidden}
.pj-media .m-item{transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.pj-media .m-item:hover{transform:translateY(-4px)}
.pj-media .m-tt blockquote a,.pj-media .m-ig blockquote a{color:var(--cream)}

/* ---------- ENGAGEMENT ---------- */
.pj-cause-sec{background:var(--white)}
.pj-cause{margin-bottom:0}

/* ---------- TEXTE / VIDÉO ---------- */
.pj-story{background:var(--white)}
.pj-entry{max-width:72ch;margin-bottom:clamp(48px,6vw,80px);font-size:19px}
.pj-vid{box-shadow:0 40px 80px rgba(0,0,0,.25)}

/* ---------- AGENCE / PROJET / ACTUS ---------- */
.pj-sand{background:var(--sand);color:var(--ink)}
.pj-sand .pj-label{color:rgba(29,27,23,.6)}
.pj-agrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(24px,3vw,48px);align-items:stretch}
.pj-rep{position:relative;overflow:hidden;background:var(--ink);color:var(--cream);border-radius:8px;padding:clamp(28px,3.5vw,48px);display:grid;gap:14px;align-content:center;min-height:320px}
.pj-rep .mini{position:absolute;right:-30px;bottom:-50px;width:240px;opacity:.08;pointer-events:none}
.pj-rep .pj-label{color:var(--sand)}
.pj-rep h2{font-size:clamp(44px,5vw,76px);line-height:.88}
.pj-rtxt{color:rgba(243,239,230,.7);font-size:16px;max-width:46ch}
.btn-ink{background:var(--sand);color:var(--ink);justify-self:start;margin-top:8px}
.btn-ink:hover{background:var(--cream)}
.pj-proj{margin-top:0;min-height:320px;border-radius:8px}
.pj-newsl{margin:clamp(40px,5vw,64px) 0 18px}
.pj-news{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(29,27,23,.18);border:1px solid rgba(29,27,23,.18)}
.pj-news a{background:var(--sand);display:grid;gap:10px;align-content:start;padding:20px;text-decoration:none;transition:background .3s}
.pj-news a:hover{background:var(--sand-2)}
.pj-nimg{display:block;aspect-ratio:16/10;overflow:hidden;border-radius:4px;background:rgba(29,27,23,.1)}
.pj-nimg img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.pj-news a:hover .pj-nimg img{transform:scale(1.05)}
.pj-news em{font-style:normal;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(29,27,23,.6);margin-top:4px}
.pj-news b{font-family:var(--display);font-weight:800;font-size:22px;line-height:1;text-transform:uppercase}
.pj-more{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-top:4px}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .pj-hgrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .pj-side{display:none}
}
@media (max-width:860px){
  .pj-hgrid{grid-template-columns:minmax(0,1fr);align-items:start;min-height:0;padding-top:28px}
  .pj-fig{order:1;margin-bottom:-10px}
  .pj-cut{max-height:62vh}
  .pj-num{right:0;top:0;font-size:clamp(120px,32vw,200px)}
  .pj-id{order:2;padding-bottom:28px}
  .pj-h1 .last{font-size:clamp(64px,18vw,120px)}
  .pj-h1 .last.long{font-size:clamp(50px,13vw,96px)}
  .pj-marq-top{top:4%}
  .pj-hfoot{flex-direction:column;align-items:flex-start;gap:16px}
  .pj-scroll{display:none}
  .pj-dl{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pj-h h2{font-size:clamp(48px,12vw,88px)}
  .pj-hint,.pj-count{margin-left:0;flex-basis:100%}
  .pj-brand{grid-template-columns:minmax(0,1fr);gap:20px}
  .pj-bhead{position:static}
  .pj-agrid{grid-template-columns:minmax(0,1fr)}
  .pj-news{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:560px){
  .pj-dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pj-dl div{padding:18px 14px 16px}
  .pj-step{width:min(78vw,300px)}
  .pj-wall{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pj-wall li{padding:18px 14px}
  .pj-wall .y{font-size:44px}
  .pj-wall .t{font-size:18px}
  .pj-club img{height:48px}
  .pj-soc a{font-size:12.5px;padding:7px 12px 7px 10px}
}
@media (prefers-reduced-motion:reduce){
  .pj-marq-in{animation:none}
  .pj-cut,.pj-num,.pj-h1 .first,.pj-h1 .last,.pj-h1 .last::after,.pj-club,.pj-tag{animation:none}
  .pj-cut,.pj-num,.pj-crestbg{transform:none}
  .pj-scroll i::after{animation:none}
}

/* v2.1 */
.pj{--rx:max(var(--gutter),calc((100vw - var(--max)) / 2 + var(--gutter)))}
.pj-rail-wrap{scroll-padding-inline:var(--rx)}
.pj-rail{padding:0 var(--rx)}
.pj-rail::before{left:var(--rx);right:var(--rx)}
.pj-wall{background:none;gap:0;border:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.pj-wall li{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.pj-agrid:not(:has(.pj-proj)){grid-template-columns:minmax(0,1fr)}
.pj-agrid:not(:has(.pj-proj)) .pj-rep{grid-template-columns:minmax(0,1fr) auto;align-items:end;column-gap:48px;min-height:0}
.pj-agrid:not(:has(.pj-proj)) .pj-rep>*{grid-column:1}
.pj-agrid:not(:has(.pj-proj)) .pj-rep .btn{grid-column:2;grid-row:1/span 3;align-self:end;justify-self:end;margin:0}
@media (max-width:860px){.pj-agrid:not(:has(.pj-proj)) .pj-rep{grid-template-columns:minmax(0,1fr)}.pj-agrid:not(:has(.pj-proj)) .pj-rep .btn{grid-column:1;grid-row:auto;justify-self:start}}

/* v2.2 */
.pj-hero{min-height:min(calc(100vh - var(--navh,64px)),760px)}
.pj-hgrid{min-height:min(calc(100vh - var(--navh,64px) - 70px),690px);padding-top:clamp(24px,4vh,48px)}
.pj-cut{max-height:min(calc(100vh - var(--navh,64px) - 70px),660px)}
.pj-id{padding-bottom:clamp(24px,4vh,44px)}
.pj-back{margin-bottom:16px}
.pj-h1 .last{font-size:clamp(70px,9vw,148px)}
.pj-h1 .last::after{margin-top:12px}
.pj-club{margin-top:20px}
.pj-tag{margin-top:14px}
.pj-hfoot{padding-block:12px 14px}
.pj-dl div{padding:16px 16px 14px;gap:4px}
.pj-dl dd{font-size:clamp(22px,2.1vw,30px)}
.pj-sec{padding-block:clamp(44px,5vw,72px)}
.pj-h{margin-bottom:clamp(20px,2.4vw,32px)}
.pj-h h2{font-size:clamp(44px,5.6vw,84px)}
.pj-count b{font-size:32px}
.pj-rail{--yh:clamp(52px,5.4vw,80px)}
.pj-rail::before{top:calc(var(--yh) + 30px)}
.pj-year{font-size:clamp(52px,5.4vw,80px)}
.pj-step{width:clamp(230px,20vw,290px)}
.pj-dot{width:60px;height:60px}
.pj-dot img{width:38px;height:38px}
.pj-body{padding-top:12px;gap:4px}
.pj-clubn{font-size:clamp(22px,2vw,28px)}
.pj-note{font-size:14.5px}
.pj-rail-wrap{padding-bottom:4px}
.pj-wall{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.pj-wall li{padding:16px 18px 16px;gap:4px}
.pj-wall .y{font-size:clamp(40px,3.6vw,54px)}
.pj-wall .t{font-size:18px;margin-top:2px}
.pj-wall .s{font-size:12.5px}
.pj-brand{padding-block:clamp(22px,2.6vw,36px);gap:clamp(20px,3vw,48px)}
.pj-bt h3{font-size:clamp(32px,3.4vw,52px);margin-top:6px}
.pj-ext{margin-top:12px;padding:8px 14px}
.pj-bdesc{font-size:15.5px;line-height:1.6}
.pj-media.m-grid{margin-top:14px;gap:10px}
.pj-rep{padding:clamp(22px,2.6vw,34px);gap:8px;min-height:0}
.pj-rep h2{font-size:clamp(36px,3.8vw,56px)}
.pj-proj{min-height:240px}
.pj-newsl{margin:clamp(24px,3vw,36px) 0 12px}
.pj-news a{padding:14px;gap:6px}
.pj-news b{font-size:19px}
.pj-entry{margin-bottom:clamp(28px,3vw,44px);font-size:17px}
@media (max-width:860px){.pj-cut{max-height:52vh}.pj-h h2{font-size:clamp(40px,10vw,64px)}}
@media (max-width:560px){.pj-wall{grid-template-columns:repeat(2,minmax(0,1fr))}.pj-wall .y{font-size:36px}.pj-wall .t{font-size:16px}.pj-step{width:min(72vw,260px)}}
.pj .pj-newsl{margin:clamp(28px,3vw,40px) 0 12px}

/* v2.3 */
.pj-cut{transform:none!important}
.pj-hero::before{background:linear-gradient(180deg,#1d1b17 0%,#14120f 70%,#0f0e0c 100%)}
.pj-hero::after{content:"";position:absolute;inset:-20%;z-index:0;pointer-events:none;
  background:radial-gradient(32% 38% at 72% 78%,rgba(196,187,163,.30),transparent 70%),radial-gradient(26% 30% at 18% 22%,rgba(196,187,163,.14),transparent 70%),radial-gradient(22% 26% at 88% 18%,rgba(243,239,230,.07),transparent 70%);
  animation:pj-glow 18s ease-in-out infinite alternate;will-change:transform,opacity}
@keyframes pj-glow{0%{transform:translate3d(0,0,0) scale(1);opacity:.85}50%{transform:translate3d(-3%,2%,0) scale(1.08);opacity:1}100%{transform:translate3d(2%,-2%,0) scale(1.02);opacity:.8}}
.pj-beams{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;mix-blend-mode:screen}
.pj-beams i{position:absolute;top:-30%;width:34vw;height:160%;background:linear-gradient(90deg,transparent,rgba(243,239,230,.055) 45%,rgba(243,239,230,.09) 50%,rgba(243,239,230,.055) 55%,transparent);filter:blur(6px);transform-origin:50% 0;opacity:0;animation:pj-beam 14s ease-in-out infinite}
.pj-beams i:nth-child(1){left:52%;--r:-24deg;animation-delay:0s}
.pj-beams i:nth-child(2){left:68%;--r:18deg;animation-delay:-4.5s;width:26vw}
.pj-beams i:nth-child(3){left:8%;--r:-10deg;animation-delay:-9s;width:22vw}
@keyframes pj-beam{0%{opacity:0;transform:rotate(calc(var(--r) - 6deg))}25%{opacity:1}55%{opacity:.7}80%{opacity:0;transform:rotate(calc(var(--r) + 8deg))}100%{opacity:0;transform:rotate(calc(var(--r) + 8deg))}}
.pj-hero .pj-grain{animation:pj-grain .9s steps(4) infinite}
@keyframes pj-grain{0%{background-position:0 0}25%{background-position:-40px 30px}50%{background-position:30px -50px}75%{background-position:-60px -20px}100%{background-position:0 0}}
.pj-crestbg{animation:pj-crest 24s ease-in-out infinite alternate}
@keyframes pj-crest{from{rotate:-3deg;scale:1}to{rotate:3deg;scale:1.05}}
.pj-num{animation:pj-fade 1.4s .2s both,pj-numglow 6s 1.6s ease-in-out infinite alternate}
@keyframes pj-numglow{from{-webkit-text-stroke-color:rgba(196,187,163,.4)}to{-webkit-text-stroke-color:rgba(196,187,163,.85)}}
@media (prefers-reduced-motion:reduce){.pj-hero::after,.pj-beams i,.pj-hero .pj-grain,.pj-crestbg,.pj-num{animation:none}.pj-beams{display:none}}

/* v2.4 — fond animé plus présent */
.pj-hero::after{background:radial-gradient(34% 42% at 70% 74%,rgba(196,187,163,.42),transparent 70%),radial-gradient(28% 34% at 16% 24%,rgba(196,187,163,.22),transparent 70%),radial-gradient(24% 28% at 90% 14%,rgba(243,239,230,.12),transparent 70%);animation:pj-glow2 12s ease-in-out infinite alternate}
@keyframes pj-glow2{0%{transform:translate3d(0,0,0) scale(1);opacity:.75}33%{transform:translate3d(-6%,3%,0) scale(1.12);opacity:1}66%{transform:translate3d(4%,-3%,0) scale(1.04);opacity:.85}100%{transform:translate3d(-2%,-5%,0) scale(1.1);opacity:1}}
.pj-beams{mix-blend-mode:screen;z-index:1}
.pj-beams i{top:-35%;height:175%;background:linear-gradient(90deg,transparent,rgba(243,239,230,.10) 38%,rgba(255,250,235,.22) 50%,rgba(243,239,230,.10) 62%,transparent);filter:blur(10px);animation:pj-beam2 11s ease-in-out infinite}
.pj-beams i:nth-child(1){left:48%;width:30vw;--r:-26deg;animation-delay:0s}
.pj-beams i:nth-child(2){left:70%;width:22vw;--r:20deg;animation-delay:-3.7s}
.pj-beams i:nth-child(3){left:4%;width:24vw;--r:-12deg;animation-delay:-7.3s}
@keyframes pj-beam2{0%{opacity:0;transform:rotate(calc(var(--r) - 10deg))}20%{opacity:.9}50%{opacity:1;transform:rotate(var(--r))}75%{opacity:.4}100%{opacity:0;transform:rotate(calc(var(--r) + 10deg))}}
.pj-dust{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;mix-blend-mode:screen}
.pj-dust::before,.pj-dust::after{content:"";position:absolute;left:0;right:0;top:0;height:200%;background-repeat:repeat;opacity:.7;animation:pj-dust 26s linear infinite}
.pj-dust::before{background-image:radial-gradient(1.6px 1.6px at 12% 18%,rgba(255,248,230,.9),transparent 60%),radial-gradient(1.2px 1.2px at 34% 62%,rgba(255,248,230,.7),transparent 60%),radial-gradient(2px 2px at 58% 28%,rgba(255,248,230,.8),transparent 60%),radial-gradient(1.4px 1.4px at 76% 72%,rgba(255,248,230,.75),transparent 60%),radial-gradient(1.8px 1.8px at 90% 40%,rgba(255,248,230,.7),transparent 60%),radial-gradient(1.2px 1.2px at 46% 88%,rgba(255,248,230,.6),transparent 60%);background-size:520px 520px}
.pj-dust::after{background-image:radial-gradient(2.4px 2.4px at 22% 40%,rgba(196,187,163,.8),transparent 60%),radial-gradient(1.6px 1.6px at 64% 12%,rgba(196,187,163,.7),transparent 60%),radial-gradient(2.2px 2.2px at 82% 58%,rgba(196,187,163,.6),transparent 60%),radial-gradient(1.4px 1.4px at 8% 76%,rgba(196,187,163,.7),transparent 60%);background-size:760px 760px;animation-duration:40s;filter:blur(.6px);opacity:.55}
@keyframes pj-dust{from{transform:translate3d(0,0,0)}to{transform:translate3d(-60px,-50%,0)}}
.pj-hero .pj-grain{opacity:.7}
.pj-crestbg{opacity:.09}
.pj-marq-top{top:auto;bottom:16%}
@media (max-width:860px){.pj-marq-top{bottom:auto;top:4%}.pj-beams i{width:60vw}}
@media (prefers-reduced-motion:reduce){.pj-dust::before,.pj-dust::after,.pj-beams i,.pj-hero::after{animation:none}.pj-dust{display:none}}

/* v2.5 — animation plus voyante */
.pj-hero::after{background:radial-gradient(36% 44% at 70% 74%,rgba(214,201,166,.58),transparent 70%),radial-gradient(30% 36% at 14% 22%,rgba(196,187,163,.32),transparent 70%),radial-gradient(26% 30% at 92% 12%,rgba(255,248,230,.18),transparent 70%);animation:pj-glow2 8s ease-in-out infinite alternate}
.pj-beams i{background:linear-gradient(90deg,transparent,rgba(255,248,230,.16) 36%,rgba(255,250,235,.38) 50%,rgba(255,248,230,.16) 64%,transparent);filter:blur(8px);animation-duration:7s}
.pj-beams i:nth-child(1){animation-delay:0s}
.pj-beams i:nth-child(2){animation-delay:-2.3s}
.pj-beams i:nth-child(3){animation-delay:-4.6s}
@keyframes pj-beam2{0%{opacity:0;transform:rotate(calc(var(--r) - 14deg))}18%{opacity:1}50%{opacity:1;transform:rotate(var(--r))}78%{opacity:.5}100%{opacity:0;transform:rotate(calc(var(--r) + 14deg))}}
.pj-hero .pj-flash{position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:screen;background:linear-gradient(105deg,transparent 35%,rgba(255,250,235,.0) 42%,rgba(255,250,235,.22) 50%,rgba(255,250,235,0) 58%,transparent 65%);background-size:250% 100%;animation:pj-flash 6s cubic-bezier(.6,0,.3,1) infinite}
@keyframes pj-flash{0%{background-position:150% 0;opacity:0}8%{opacity:1}45%{background-position:-50% 0;opacity:1}50%,100%{background-position:-50% 0;opacity:0}}
.pj-dust::before,.pj-dust::after{opacity:1;animation-duration:14s}
.pj-dust::after{animation-duration:22s;opacity:.85}
.pj-crestbg{opacity:.13;animation:pj-crest2 10s ease-in-out infinite alternate}
@keyframes pj-crest2{0%{rotate:-5deg;scale:1;opacity:.09}50%{opacity:.16}100%{rotate:5deg;scale:1.08;opacity:.11}}
.pj-num{animation:pj-fade 1.4s .2s both,pj-numglow2 3s 1.6s ease-in-out infinite alternate}
@keyframes pj-numglow2{from{-webkit-text-stroke-color:rgba(196,187,163,.45);text-shadow:none}to{-webkit-text-stroke-color:rgba(232,221,191,1);text-shadow:0 0 40px rgba(214,201,166,.35)}}
.pj-marq-top .pj-marq-in{animation-duration:22s}
.pj-marq-top span{-webkit-text-stroke-color:rgba(243,239,230,.2)}
.pj-splash{animation:pj-splash 4s ease-in-out infinite alternate}
@keyframes pj-splash{from{opacity:.7;transform:translateX(-50%) scaleX(.95)}to{opacity:1;transform:translateX(-50%) scaleX(1.08)}}
@media (prefers-reduced-motion:reduce){.pj-hero .pj-flash,.pj-splash{animation:none}.pj-flash{display:none}}

/* v2.6 — mobile : parcours & palmarès */
@media (max-width:760px){
  .pj-parcours .pj-h{margin-bottom:14px}
  .pj-hint{display:inline-flex;align-items:center;gap:8px}
  .pj-hint::after{content:"";width:28px;height:1px;background:currentColor;animation:pj-nudge 1.6s ease-in-out infinite}
  .pj-rail-wrap{scroll-snap-type:x mandatory;-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent)}
  .pj-rail{--yh:46px}
  .pj-rail::before{top:calc(var(--yh) + 24px)}
  .pj-step{width:68vw;padding-right:18px}
  .pj-step+.pj-step{padding-left:18px}
  .pj-year{font-size:46px}
  .pj-dot{width:48px;height:48px}
  .pj-dot img{width:30px;height:30px}
  .pj-dot i{font-size:16px}
  .pj-body{padding-top:10px;gap:3px}
  .pj-years{font-size:10px;letter-spacing:.12em}
  .pj-pill{font-size:8.5px;padding:2px 7px;margin-left:6px}
  .pj-clubn{font-size:21px}
  .pj-note{font-size:13.5px;line-height:1.45}
  .pj-wall{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pj-wall li{padding:14px 12px 13px;gap:3px}
  .pj-wall li:last-child:nth-child(odd){grid-column:1/-1}
  .pj-wall .y{font-size:34px;-webkit-text-stroke-width:1.2px}
  .pj-wall .t{font-size:15px;line-height:1.05}
  .pj-wall .s{font-size:11.5px}
  .pj-count b{font-size:26px;vertical-align:-4px}
}
@keyframes pj-nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(6px)}}

/* Embeds TikTok / Instagram : format portrait, pas de bandes blanches */
.pj-media .m-tt,.pj-media .m-ig{max-width:340px;margin-left:auto;margin-right:auto;overflow:hidden;border-radius:14px}
.pj-media .m-tt blockquote.tiktok-embed,.pj-media .m-ig blockquote.instagram-media{margin:0!important;max-width:100%!important;min-width:0!important;width:100%!important}
.pj-media .m-tt iframe,.pj-media .m-ig iframe{width:100%!important;max-width:100%!important;display:block}
.pj-media .m-tt:hover,.pj-media .m-ig:hover{transform:none}

/* plusieurs vidéos sur une fiche joueur */
.pj-vids{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:24px}
.pj-vitem{margin:0}
.pj-vitem .vid{width:100%;aspect-ratio:16/9;display:block;position:relative;overflow:hidden;border-radius:6px}
.pj-vitem .vid img{width:100%;height:100%;object-fit:cover;display:block}
.pj-vitem figcaption,.pj-vtitle{margin-top:10px;font-size:15px;line-height:1.35}
