/* ============================================================
   KEYS TO PERF — Kévin Crouchet · Préparateur physique
   Univers "stade nocturne" : onyx + or sourd + rouge sang
   ============================================================ */
:root{
  --bg:#070708;
  --bg-2:#0d0d10;
  --bg-3:#141418;
  --bg-4:#1b1b21;
  --line:rgba(244,241,234,.08);
  --line-strong:rgba(244,241,234,.16);
  --bone:#f4f1ea;
  --bone-2:#e7e3d6;
  --muted:#8a847a;
  --muted-2:#5c574f;

  --gold:#c69749;
  --gold-hi:#e0b15d;
  --gold-deep:#8f6a2e;
  --blood:#d8333f;
  --blood-hi:#ff4d5a;
  --pitch:#1a2a1f;

  --ff-display:"Bebas Neue","Oswald","Archivo Black",Impact,sans-serif;
  --ff-editorial:"Fraunces",Georgia,"Times New Roman",serif;
  --ff-body:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;

  --maxw:1360px;
  --ease:cubic-bezier(.19,1,.22,1);
  --ease-2:cubic-bezier(.65,0,.35,1);

  --pad-x:clamp(20px,4vw,52px);
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  font-family:var(--ff-body);
  background:var(--bg);
  color:var(--bone);
  font-size:16.5px;
  line-height:1.6;
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  cursor:none;
}
body.lock{overflow:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
em{font-style:normal}
button{background:none;border:none;color:inherit;font:inherit;cursor:none}
::selection{background:var(--blood);color:#fff}

.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad-x)}

/* curseur custom */
.cursor{position:fixed;top:0;left:0;width:14px;height:14px;border-radius:50%;background:var(--gold);
  pointer-events:none;z-index:9999;mix-blend-mode:difference;transform:translate(-50%,-50%);
  transition:width .25s var(--ease),height .25s var(--ease),background .25s}
.cursor.hot{width:48px;height:48px;background:var(--blood);mix-blend-mode:normal;opacity:.55}
.cursor.text{width:6px;height:6px}
@media (hover:none){body{cursor:auto}.cursor{display:none}button,.btn,a{cursor:pointer}}

/* texture stade */
.noise{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}

/* terrain (lignes blanches subtiles en fond) */
.pitch-bg{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.04;
  background:
    radial-gradient(ellipse 60% 50% at 50% 100%, rgba(198,151,73,.16), transparent 70%),
    linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%)}

/* scroll progress */
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:200;background:rgba(244,241,234,.05)}
.progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--blood));box-shadow:0 0 12px var(--gold)}

/* ============================================================
   LOADER
   ============================================================ */
.loader{position:fixed;inset:0;z-index:500;background:var(--bg);display:grid;place-content:center;justify-items:center;gap:1.8rem;transition:opacity .7s var(--ease),visibility .7s}
.loader.done{opacity:0;visibility:hidden}
.loader__mark{width:88px;height:88px;color:var(--gold);object-fit:contain;animation:pulseMark 2s ease-in-out infinite;filter:drop-shadow(0 0 24px rgba(198,151,73,.35))}
@keyframes pulseMark{50%{transform:scale(1.06);filter:drop-shadow(0 0 24px rgba(198,151,73,.45))}}
.loader__tag{font-family:var(--ff-display);font-size:.92rem;letter-spacing:.5em;color:var(--bone-2);padding-left:.5em}
.loader__pct{font-family:var(--ff-display);font-size:3.2rem;color:var(--gold);letter-spacing:.04em;line-height:1;font-feature-settings:"tnum"}
.loader__bar{width:200px;height:1px;background:var(--line-strong);overflow:hidden}
.loader__bar span{display:block;height:100%;width:0;background:var(--gold)}

/* ============================================================
   BOUTONS
   ============================================================ */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.7em;
  padding:1.15em 1.85em;font-family:var(--ff-display);font-size:.9rem;letter-spacing:.18em;text-transform:uppercase;
  font-weight:700;line-height:1;border:1px solid transparent;white-space:nowrap;
  transition:transform .35s var(--ease),background .3s,color .3s,border-color .3s,box-shadow .35s;
  overflow:hidden}
.btn .arr{display:inline-block;width:.6em;height:.6em;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);transition:transform .35s var(--ease),margin .35s var(--ease)}
.btn--solid{background:var(--gold);color:#19130a;box-shadow:0 22px 60px -22px rgba(198,151,73,.7),inset 0 1px 0 rgba(255,255,255,.18)}
.btn--solid:hover{background:var(--gold-hi);box-shadow:0 30px 80px -22px rgba(224,177,93,.85)}
.btn--solid:hover .arr{margin-left:.4em;transform:rotate(45deg) translate(2px,-2px)}
.btn--ghost{background:transparent;color:var(--bone);border-color:var(--line-strong)}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold-hi)}
.btn--blood{background:var(--blood);color:#fff;box-shadow:0 22px 60px -22px rgba(216,51,63,.6)}
.btn--blood:hover{background:var(--blood-hi)}
.btn--block{width:100%}

/* ============================================================
   TITRES PARTAGÉS
   ============================================================ */
.eyebrow{display:inline-flex;align-items:center;gap:.8em;font-family:var(--ff-display);font-size:.78rem;letter-spacing:.36em;color:var(--gold);text-transform:uppercase}
.eyebrow b{color:var(--bone);font-weight:400}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--blood);box-shadow:0 0 10px var(--blood)}

.h1{font-family:var(--ff-editorial);font-weight:600;line-height:.92;letter-spacing:-.035em;font-size:clamp(3.4rem,9vw,8.2rem)}
.h2{font-family:var(--ff-editorial);font-weight:600;line-height:.95;letter-spacing:-.03em;font-size:clamp(2.4rem,6vw,5.2rem)}
.h3{font-family:var(--ff-editorial);font-weight:600;line-height:1.02;letter-spacing:-.02em;font-size:clamp(1.6rem,2.6vw,2.3rem)}
.h2 em,.h1 em,.h3 em{font-style:italic;color:var(--gold-hi)}
.kicker{font-family:var(--ff-display);font-size:.78rem;letter-spacing:.42em;color:var(--muted);text-transform:uppercase}

/* ============================================================
   HEADER
   ============================================================ */
.head{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding:1.2rem var(--pad-x);transition:padding .35s var(--ease),background .35s,backdrop-filter .35s,border-color .35s;
  border-bottom:1px solid transparent}
.head.scrolled{background:rgba(7,7,8,.78);backdrop-filter:blur(18px) saturate(140%);border-bottom-color:var(--line);padding-block:.85rem}
.brand{display:flex;align-items:center;gap:.85rem}
.brand__logo{width:46px;height:46px;color:var(--gold);flex-shrink:0;object-fit:contain;transition:transform .4s var(--ease)}
.brand:hover .brand__logo{transform:rotate(-6deg)}
.brand__name{display:flex;flex-direction:column;gap:2px;font-family:var(--ff-display);letter-spacing:.06em;line-height:1;font-size:1.05rem}
.brand__name small{font-family:var(--ff-body);font-weight:500;font-size:.6rem;letter-spacing:.24em;color:var(--muted);text-transform:uppercase}

.head__nav{display:flex;align-items:center;gap:.2rem}
.head__nav a{position:relative;padding:.6em 1em;font-family:var(--ff-display);font-size:.84rem;letter-spacing:.24em;text-transform:uppercase;color:var(--bone-2);transition:color .25s}
.head__nav a::before{content:"";position:absolute;left:50%;bottom:.25em;width:0;height:2px;background:var(--gold);transition:width .35s var(--ease),left .35s var(--ease)}
.head__nav a:hover{color:var(--gold-hi)}
.head__nav a:hover::before{width:60%;left:20%}

.head__cta{display:inline-flex;align-items:center;gap:.7em;padding:.85em 1.4em;border:1px solid var(--line-strong);border-radius:999px;font-family:var(--ff-display);font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;transition:border-color .25s,color .25s,background .25s}
.head__cta::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--blood);box-shadow:0 0 10px var(--blood);animation:livePulse 1.6s ease-in-out infinite}
.head__cta:hover{border-color:var(--gold);background:rgba(198,151,73,.06);color:var(--gold-hi)}
@keyframes livePulse{50%{opacity:.4;transform:scale(.7)}}

.menu-btn{display:none;width:46px;height:46px;border:1px solid var(--line-strong);border-radius:50%;align-items:center;justify-content:center;gap:5px;flex-direction:column}
.menu-btn i{display:block;width:18px;height:1.5px;background:var(--bone);transition:transform .35s var(--ease)}
.menu-btn.open i:nth-child(1){transform:translateY(3.2px) rotate(45deg)}
.menu-btn.open i:nth-child(2){transform:translateY(-3.2px) rotate(-45deg)}

/* OVERLAY menu mobile */
.overlay{position:fixed;inset:0;z-index:95;background:linear-gradient(180deg,var(--bg) 0%,#000 100%);
  display:flex;flex-direction:column;justify-content:center;padding:7rem var(--pad-x) 4rem;
  transform:translateY(-101%);transition:transform .65s var(--ease);visibility:hidden}
.overlay.open{transform:translateY(0);visibility:visible}
.overlay nav{display:flex;flex-direction:column;gap:.4rem}
.overlay nav a{display:flex;align-items:baseline;gap:1.2rem;font-family:var(--ff-editorial);font-size:clamp(2.2rem,8vw,4.4rem);font-weight:600;line-height:1.1;letter-spacing:-.02em;color:var(--bone);transition:color .25s,transform .35s var(--ease)}
.overlay nav a small{font-family:var(--ff-display);font-size:.85rem;color:var(--gold);letter-spacing:.3em}
.overlay nav a:hover{color:var(--gold-hi);transform:translateX(10px)}
.overlay__foot{margin-top:auto;display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;padding-top:3rem;border-top:1px solid var(--line)}
.overlay__foot small{display:block;font-family:var(--ff-display);font-size:.72rem;letter-spacing:.3em;color:var(--muted);margin-bottom:.4em;text-transform:uppercase}
.overlay__foot a{color:var(--bone);font-weight:500}

/* ============================================================
   HERO — Tunnel d'entrée du stade
   ============================================================ */
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;padding:9rem var(--pad-x) 4rem;overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(ellipse 80% 60% at 50% 100%, rgba(198,151,73,.22), transparent 60%),
    radial-gradient(ellipse 50% 40% at 0% 0%, rgba(216,51,63,.1), transparent 60%),
    linear-gradient(180deg, #0a0a0c 0%, #050505 100%)}

.hero__lines{position:absolute;inset:0;z-index:-1;opacity:.5;
  background-image:
    linear-gradient(0deg, transparent 24%, rgba(244,241,234,.04) 25%, rgba(244,241,234,.04) 26%, transparent 27%, transparent 74%, rgba(244,241,234,.04) 75%, rgba(244,241,234,.04) 76%, transparent 77%, transparent),
    linear-gradient(90deg, transparent 24%, rgba(244,241,234,.04) 25%, rgba(244,241,234,.04) 26%, transparent 27%, transparent 74%, rgba(244,241,234,.04) 75%, rgba(244,241,234,.04) 76%, transparent 77%, transparent);
  background-size:90px 90px}

.hero__grid{width:100%;max-width:var(--maxw);margin-inline:auto;display:grid;grid-template-columns:1fr auto;gap:3rem;align-items:end}
.hero__main{display:flex;flex-direction:column;gap:1.8rem}
.hero__eyebrow{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.hero__eyebrow .live{display:inline-flex;align-items:center;gap:.6em;padding:.45em .9em;border:1px solid var(--line-strong);border-radius:999px;font-family:var(--ff-display);font-size:.74rem;letter-spacing:.28em;color:var(--bone-2);text-transform:uppercase}
.hero__eyebrow .live i{width:7px;height:7px;border-radius:50%;background:var(--blood);box-shadow:0 0 10px var(--blood);animation:livePulse 1.6s ease-in-out infinite}

.hero__title{font-family:var(--ff-editorial);font-weight:600;line-height:.88;letter-spacing:-.045em;font-size:clamp(3.6rem,11vw,10rem);text-wrap:balance}
.hero__title span{display:block;overflow:hidden}
.hero__title span i{display:block;font-style:normal;transform:translateY(110%);animation:rise 1.1s var(--ease) .3s forwards}
.hero__title span:nth-child(2) i{animation-delay:.45s}
.hero__title span:nth-child(3) i{animation-delay:.6s}
.hero__title em{font-style:italic;color:var(--gold-hi);position:relative}
.hero__title em::after{content:"";position:absolute;left:-.05em;right:-.05em;bottom:.08em;height:.08em;background:var(--blood);transform:scaleX(0);transform-origin:left;animation:slash 1s var(--ease) 1.3s forwards}
@keyframes rise{to{transform:translateY(0)}}
@keyframes slash{to{transform:scaleX(1)}}

.hero__lead{max-width:580px;font-size:1.1rem;color:var(--bone-2);line-height:1.6}
.hero__lead b{color:var(--bone);font-weight:600}

.hero__actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.8rem}

/* numéro géant dans le hero */
.hero__num{position:relative;align-self:end;font-family:var(--ff-display);font-size:clamp(10rem,22vw,22rem);line-height:.78;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgba(198,151,73,.32);user-select:none}
.hero__num::after{content:"";position:absolute;right:-12px;bottom:0;width:14px;height:14px;background:var(--blood);border-radius:50%;box-shadow:0 0 20px var(--blood)}

/* bandeau stats sous le hero */
.hero__stats{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);background:linear-gradient(180deg,transparent,rgba(0,0,0,.45))}
.hero__stat{padding:1.4rem var(--pad-x);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:.3rem}
.hero__stat:last-child{border-right:none}
.hero__stat b{font-family:var(--ff-display);font-size:2.2rem;color:var(--gold);line-height:1;font-feature-settings:"tnum"}
.hero__stat small{font-family:var(--ff-body);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}

/* ============================================================
   MARQUEE — clubs / joueurs accompagnés
   ============================================================ */
.marquee{position:relative;padding:3.5rem 0;border-block:1px solid var(--line);overflow:hidden;background:var(--bg-2)}
.marquee::before,.marquee::after{content:"";position:absolute;top:0;bottom:0;width:140px;z-index:2;pointer-events:none}
.marquee::before{left:0;background:linear-gradient(90deg,var(--bg-2),transparent)}
.marquee::after{right:0;background:linear-gradient(270deg,var(--bg-2),transparent)}
.marquee__track{display:flex;gap:4rem;animation:slide 38s linear infinite;width:max-content}
.marquee__item{display:flex;align-items:center;gap:1.2rem;font-family:var(--ff-editorial);font-style:italic;font-size:clamp(2rem,4.5vw,3.4rem);color:var(--bone-2);font-weight:500;letter-spacing:-.02em;white-space:nowrap}
.marquee__item span{font-family:var(--ff-display);font-style:normal;font-size:.6em;color:var(--gold);letter-spacing:.16em;background:rgba(198,151,73,.1);padding:.25em .8em;border-radius:999px;border:1px solid rgba(198,151,73,.3)}
.marquee__sep{color:var(--blood);font-size:1.6rem}
@keyframes slide{to{transform:translateX(-50%)}}

/* ============================================================
   MANIFESTO
   ============================================================ */
.manifesto{padding:clamp(5rem,12vw,9rem) var(--pad-x);position:relative}
.manifesto__inner{max-width:1100px;margin-inline:auto}
.manifesto__txt{font-family:var(--ff-editorial);font-weight:500;font-style:italic;font-size:clamp(1.8rem,4.2vw,3.4rem);line-height:1.18;letter-spacing:-.02em;color:var(--bone)}
.manifesto__txt em{font-style:normal;color:var(--gold);font-weight:600}
.manifesto__txt b{font-style:normal;color:var(--blood);font-weight:600}
.manifesto__sign{margin-top:3rem;display:flex;align-items:center;gap:1rem;font-family:var(--ff-display);letter-spacing:.28em;font-size:.85rem;color:var(--muted);text-transform:uppercase}
.manifesto__sign i{width:48px;height:1px;background:var(--gold)}

/* ============================================================
   À PROPOS
   ============================================================ */
.about{padding:clamp(5rem,10vw,8rem) var(--pad-x);position:relative;background:linear-gradient(180deg,transparent,rgba(255,255,255,.012))}
.about__grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.about__media{position:relative}
.about__media .frame{position:relative;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line-strong)}
.about__media .frame img{width:100%;height:100%;object-fit:cover;filter:grayscale(.25) contrast(1.08)}
.about__media .frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(7,7,8,.55))}
.about__media .badge{position:absolute;right:-18px;bottom:32px;z-index:3;background:var(--gold);color:#19130a;padding:1rem 1.2rem;font-family:var(--ff-display);letter-spacing:.18em;text-transform:uppercase;font-size:.78rem;display:flex;flex-direction:column;gap:.2rem;line-height:1.1;box-shadow:0 24px 50px -16px rgba(0,0,0,.6)}
.about__media .badge b{font-family:var(--ff-editorial);font-style:italic;font-size:1.4rem;letter-spacing:-.02em;text-transform:none;line-height:1}
.about__media .frame-num{position:absolute;left:-32px;top:-32px;font-family:var(--ff-display);font-size:9rem;line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(198,151,73,.35);z-index:-1}

.about__text{display:flex;flex-direction:column;gap:1.4rem;padding-top:1rem}
.about__text .h2{margin:.6rem 0}
.about__lead{font-size:1.18rem;color:var(--bone-2);line-height:1.6;max-width:560px}
.about__cols{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:1.6rem}
.about__col{padding:1.6rem;border:1px solid var(--line);background:linear-gradient(180deg,rgba(198,151,73,.04),transparent)}
.about__col h4{font-family:var(--ff-display);font-size:.85rem;letter-spacing:.28em;color:var(--gold);margin-bottom:.6rem;text-transform:uppercase}
.about__col p{font-size:.96rem;color:var(--bone-2);line-height:1.55}

/* ============================================================
   MÉTHODE — le PLAYBOOK 4 piliers
   ============================================================ */
.method{padding:clamp(5rem,10vw,8rem) var(--pad-x);position:relative;background:var(--bg-2);border-block:1px solid var(--line)}
.method__head{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin-bottom:4rem}
.method__head .h2{max-width:720px}
.method__head p{max-width:380px;color:var(--bone-2);font-size:1.02rem}

.method__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);background:var(--bg-3)}
.method__cell{position:relative;padding:2.4rem 2rem 2.4rem;border-right:1px solid var(--line);transition:background .4s var(--ease);overflow:hidden;min-height:340px;display:flex;flex-direction:column;justify-content:space-between;cursor:none}
.method__cell:last-child{border-right:none}
.method__cell::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 60% at 50% 100%, rgba(198,151,73,.18), transparent 70%);opacity:0;transition:opacity .4s var(--ease)}
.method__cell:hover{background:#1c1c22}
.method__cell:hover::before{opacity:1}
.method__cell:hover .method__num{color:var(--gold-hi);-webkit-text-stroke-color:var(--gold-hi)}
.method__num{font-family:var(--ff-display);font-size:5rem;line-height:.85;color:transparent;-webkit-text-stroke:1px var(--gold);letter-spacing:-.02em;transition:color .4s,-webkit-text-stroke-color .4s;font-feature-settings:"tnum"}
.method__cell h3{font-family:var(--ff-editorial);font-size:1.6rem;font-weight:600;line-height:1.05;letter-spacing:-.015em;margin:1.2rem 0 .8rem;position:relative;z-index:1}
.method__cell p{font-size:.92rem;color:var(--bone-2);line-height:1.55;position:relative;z-index:1}
.method__cell .tag{margin-top:1.2rem;display:inline-flex;align-items:center;gap:.5em;font-family:var(--ff-display);font-size:.7rem;letter-spacing:.28em;color:var(--gold);text-transform:uppercase;position:relative;z-index:1}
.method__cell .tag::before{content:"›";font-size:1rem;color:var(--blood)}

/* ============================================================
   JOUEURS / RÉFÉRENCES — fiches match
   ============================================================ */
.roster{padding:clamp(5rem,10vw,8rem) var(--pad-x);position:relative}
.roster__head{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin-bottom:3rem}
.roster__head .h2{max-width:740px}
.roster__head .roster__caption{max-width:340px;color:var(--bone-2);font-size:1.02rem;line-height:1.6}

.roster__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.player{position:relative;background:var(--bg-2);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;min-height:480px;transition:transform .5s var(--ease),border-color .4s,background .4s}
.player::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(198,151,73,.0),rgba(198,151,73,.06));opacity:0;transition:opacity .4s}
.player:hover{transform:translateY(-6px);border-color:rgba(198,151,73,.35);background:var(--bg-3)}
.player:hover::before{opacity:1}
.player:hover .player__num{transform:translate(2px,-2px);color:var(--gold-hi);-webkit-text-stroke-color:var(--gold-hi)}

.player__top{padding:1.6rem 1.6rem 0;display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:2}
.player__top .pos{display:inline-flex;align-items:center;gap:.5em;font-family:var(--ff-display);font-size:.72rem;letter-spacing:.28em;color:var(--gold);padding:.45em .85em;border:1px solid rgba(198,151,73,.32);border-radius:999px;text-transform:uppercase}
.player__top .pos i{width:6px;height:6px;border-radius:50%;background:var(--gold)}
.player__top .country{font-family:var(--ff-display);font-size:.75rem;letter-spacing:.22em;color:var(--muted);text-transform:uppercase}

.player__num{font-family:var(--ff-display);font-size:9rem;line-height:.78;letter-spacing:-.04em;
  color:transparent;-webkit-text-stroke:1px var(--gold);
  padding:1.8rem 1.6rem 0;transition:transform .5s var(--ease),color .4s,-webkit-text-stroke-color .4s;position:relative;z-index:1;font-feature-settings:"tnum"}

.player__body{padding:1rem 1.6rem 1.8rem;margin-top:auto;display:flex;flex-direction:column;gap:.5rem;position:relative;z-index:2}
.player__name{font-family:var(--ff-editorial);font-size:1.55rem;font-weight:600;line-height:1.05;letter-spacing:-.015em}
.player__club{font-family:var(--ff-display);font-size:.85rem;letter-spacing:.22em;color:var(--gold-hi);text-transform:uppercase}
.player__role{font-size:.86rem;color:var(--muted);line-height:1.5;margin-top:.4rem;border-top:1px solid var(--line);padding-top:.85rem}

.roster__cta{margin-top:2.4rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:2rem;border:1px dashed var(--line-strong)}
.roster__cta p{font-family:var(--ff-editorial);font-size:1.4rem;font-style:italic;color:var(--bone-2);max-width:620px}

/* ============================================================
   SERVICES — Offres
   ============================================================ */
.services{padding:clamp(5rem,10vw,8rem) var(--pad-x);background:var(--bg-2);border-block:1px solid var(--line);position:relative;overflow:hidden}
.services::before{content:"KEYS · TO · PERF · KEYS · TO · PERF · ";position:absolute;top:50%;left:0;right:0;font-family:var(--ff-display);font-size:18vw;color:rgba(198,151,73,.03);white-space:nowrap;letter-spacing:.06em;transform:translateY(-50%);pointer-events:none;line-height:1}
.services__head{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin-bottom:3.5rem;position:relative;z-index:1}
.services__head p{max-width:380px;color:var(--bone-2);font-size:1.02rem}

.offers{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;position:relative;z-index:1}
.offer{position:relative;padding:2.2rem 2rem;background:var(--bg-3);border:1px solid var(--line);display:flex;flex-direction:column;gap:1.2rem;transition:transform .4s var(--ease),border-color .4s,background .4s}
.offer:hover{transform:translateY(-4px);border-color:rgba(198,151,73,.4);background:#1d1d23}
.offer--featured{background:linear-gradient(180deg,rgba(216,51,63,.08),var(--bg-3));border-color:rgba(216,51,63,.35)}
.offer--featured::after{content:"Le + demandé";position:absolute;top:-1px;right:-1px;background:var(--blood);color:#fff;padding:.5em 1em;font-family:var(--ff-display);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase}

.offer__head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1.2rem;border-bottom:1px solid var(--line)}
.offer__title{font-family:var(--ff-editorial);font-size:1.55rem;font-weight:600;line-height:1.05;letter-spacing:-.015em}
.offer__title em{font-style:italic;color:var(--gold-hi)}
.offer__num{font-family:var(--ff-display);font-size:1.4rem;color:var(--gold);letter-spacing:-.02em}

.offer__desc{font-size:.94rem;color:var(--bone-2);line-height:1.6}

.offer__list{display:flex;flex-direction:column;gap:.7rem;flex:1}
.offer__list li{position:relative;padding-left:1.6rem;font-size:.9rem;color:var(--bone-2);line-height:1.55}
.offer__list li::before{content:"";position:absolute;left:0;top:.55em;width:.85rem;height:.85rem;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c69749' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") no-repeat center/contain}

.offer__foot{margin-top:.4rem;padding-top:1.2rem;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.offer__price{font-family:var(--ff-editorial);font-weight:600;font-size:1.05rem}
.offer__price small{display:block;font-family:var(--ff-body);font-weight:400;font-size:.7rem;color:var(--muted);letter-spacing:.06em;margin-top:.15em}
.offer__cta{font-family:var(--ff-display);font-size:.8rem;letter-spacing:.22em;color:var(--gold);text-transform:uppercase;display:inline-flex;align-items:center;gap:.5em;transition:gap .3s var(--ease),color .25s}
.offer__cta::after{content:"›";font-size:1.1rem;color:var(--blood)}
.offer__cta:hover{gap:.85em;color:var(--gold-hi)}

/* ============================================================
   STATS — compteurs animés
   ============================================================ */
.stats{padding:clamp(5rem,9vw,7rem) var(--pad-x);position:relative;border-bottom:1px solid var(--line)}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;align-items:center}
.stat{display:flex;flex-direction:column;gap:.5rem;padding-right:1.2rem;border-right:1px solid var(--line);position:relative}
.stat:last-child{border-right:none}
.stat b{font-family:var(--ff-display);font-size:clamp(3.4rem,7vw,5.6rem);line-height:.85;color:var(--bone);letter-spacing:-.03em;font-feature-settings:"tnum"}
.stat b em{font-style:italic;color:var(--gold);font-weight:400}
.stat .stat__plus{color:var(--blood)}
.stat small{font-family:var(--ff-display);font-size:.78rem;letter-spacing:.28em;color:var(--muted);text-transform:uppercase}
.stat p{font-size:.86rem;color:var(--bone-2);line-height:1.5;max-width:240px;margin-top:.4rem}

/* ============================================================
   TÉMOIGNAGES — feuille de match
   ============================================================ */
.testi{padding:clamp(5rem,10vw,8rem) var(--pad-x);background:linear-gradient(180deg,var(--bg) 0%,#040405 100%);position:relative;overflow:hidden}
.testi__head{text-align:center;max-width:760px;margin-inline:auto;margin-bottom:3rem}
.testi__head .h2{margin-top:1rem}
.testi__grid{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem}
.testi__card{padding:2.2rem;background:var(--bg-3);border:1px solid var(--line);display:flex;flex-direction:column;gap:1.4rem;position:relative;transition:transform .4s var(--ease),border-color .4s}
.testi__card:hover{transform:translateY(-4px);border-color:rgba(198,151,73,.35)}
.testi__card::before{content:"“";position:absolute;top:1rem;right:1.4rem;font-family:var(--ff-editorial);font-size:6rem;line-height:.8;color:rgba(198,151,73,.18)}
.testi__quote{font-family:var(--ff-editorial);font-style:italic;font-size:1.18rem;line-height:1.5;color:var(--bone)}
.testi__quote em{font-style:normal;color:var(--gold-hi)}
.testi__author{display:flex;align-items:center;gap:.9rem;padding-top:1.2rem;border-top:1px solid var(--line)}
.testi__avatar{width:48px;height:48px;border-radius:50%;background:var(--bg-4);display:grid;place-items:center;font-family:var(--ff-display);color:var(--gold);font-size:.95rem;letter-spacing:.06em;flex-shrink:0;border:1px solid var(--line-strong)}
.testi__author b{font-family:var(--ff-body);font-weight:600;font-size:.95rem;display:block}
.testi__author small{font-family:var(--ff-display);font-size:.72rem;letter-spacing:.22em;color:var(--gold);text-transform:uppercase}

/* ============================================================
   FAQ
   ============================================================ */
.faq{padding:clamp(5rem,10vw,8rem) var(--pad-x);background:var(--bg-2);border-top:1px solid var(--line)}
.faq__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.faq__intro{position:sticky;top:7rem}
.faq__intro p{margin-top:1.2rem;color:var(--bone-2);max-width:340px;line-height:1.6}

.faq__list{display:flex;flex-direction:column;gap:.4rem}
.faq__item{border-top:1px solid var(--line);transition:border-color .3s}
.faq__item:last-child{border-bottom:1px solid var(--line)}
.faq__q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;text-align:left;padding:1.6rem 0;font-family:var(--ff-editorial);font-size:1.15rem;font-weight:600;line-height:1.3;color:var(--bone);transition:color .25s}
.faq__q:hover{color:var(--gold-hi)}
.faq__q i{flex-shrink:0;width:34px;height:34px;border:1px solid var(--line-strong);border-radius:50%;display:grid;place-items:center;font-style:normal;font-family:var(--ff-display);color:var(--gold);transition:transform .35s var(--ease),background .25s}
.faq__item.open .faq__q i{transform:rotate(45deg);background:var(--gold);color:#19130a}
.faq__a{max-height:0;overflow:hidden;transition:max-height .55s var(--ease)}
.faq__a p{padding:0 0 1.6rem;color:var(--bone-2);font-size:.98rem;line-height:1.7;max-width:640px}
.faq__a p em{color:var(--gold-hi);font-style:normal;font-weight:600}

/* ============================================================
   CONTACT
   ============================================================ */
.contact{padding:clamp(5rem,10vw,8rem) var(--pad-x);position:relative;overflow:hidden}
.contact::before{content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(ellipse 50% 80% at 50% 100%, rgba(198,151,73,.16),transparent 70%)}
.contact__inner{max-width:1180px;margin-inline:auto;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.contact__main{display:flex;flex-direction:column;gap:1.6rem}
.contact__title{font-family:var(--ff-editorial);font-weight:600;line-height:.92;letter-spacing:-.035em;font-size:clamp(2.8rem,7vw,6rem)}
.contact__title em{font-style:italic;color:var(--gold-hi)}
.contact__lead{color:var(--bone-2);font-size:1.1rem;max-width:520px;line-height:1.6}
.contact__list{display:flex;flex-direction:column;gap:0;margin-top:.6rem;border-top:1px solid var(--line)}
.contact__row{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.4rem 0;border-bottom:1px solid var(--line);transition:padding .3s var(--ease)}
.contact__row:hover{padding-left:.4rem}
.contact__row small{font-family:var(--ff-display);font-size:.78rem;letter-spacing:.28em;color:var(--gold);text-transform:uppercase}
.contact__row a,.contact__row span{font-family:var(--ff-editorial);font-size:1.25rem;letter-spacing:-.015em;color:var(--bone);transition:color .25s}
.contact__row a:hover{color:var(--gold-hi)}

.contact__card{padding:2.5rem;background:linear-gradient(180deg,var(--bg-3),var(--bg-2));border:1px solid var(--line-strong);position:relative;overflow:hidden}
.contact__card::before{content:"";position:absolute;top:-50%;right:-30%;width:200px;height:200px;background:radial-gradient(circle,rgba(198,151,73,.15),transparent 70%)}
.contact__card h3{font-family:var(--ff-editorial);font-size:1.7rem;font-weight:600;line-height:1.1;letter-spacing:-.02em;margin-bottom:.6rem;position:relative}
.contact__card h3 em{font-style:italic;color:var(--gold-hi)}
.contact__card p{color:var(--bone-2);font-size:.96rem;line-height:1.55;margin-bottom:1.6rem;position:relative}
.contact__card .btn{position:relative;margin-bottom:1rem}
.contact__card .perks{display:flex;flex-direction:column;gap:.6rem;padding-top:1.4rem;margin-top:.6rem;border-top:1px solid var(--line);position:relative}
.contact__card .perks li{position:relative;padding-left:1.5rem;font-size:.88rem;color:var(--bone-2)}
.contact__card .perks li::before{content:"✓";position:absolute;left:0;color:var(--gold);font-weight:700}

/* ============================================================
   FOOTER
   ============================================================ */
.foot{padding:5rem var(--pad-x) 2rem;background:#020203;border-top:1px solid var(--line)}
.foot__inner{max-width:var(--maxw);margin-inline:auto;display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:3rem;align-items:start}
.foot__brand{display:flex;flex-direction:column;gap:1rem}
.foot__brand .brand__logo{width:64px;height:64px}
.foot__brand p{font-size:.92rem;color:var(--muted);line-height:1.6;max-width:300px}
.foot__col h5{font-family:var(--ff-display);font-size:.78rem;letter-spacing:.28em;color:var(--gold);margin-bottom:1.2rem;text-transform:uppercase}
.foot__col ul{display:flex;flex-direction:column;gap:.7rem}
.foot__col a{font-size:.95rem;color:var(--bone-2);transition:color .25s}
.foot__col a:hover{color:var(--gold-hi)}

.foot__base{max-width:var(--maxw);margin:4rem auto 0;padding-top:2rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;font-size:.8rem;color:var(--muted)}
.foot__base a{color:var(--bone-2)}
.foot__base a:hover{color:var(--gold-hi)}
.foot__sign{font-family:var(--ff-display);letter-spacing:.28em;color:var(--gold);text-transform:uppercase}

/* ============================================================
   REVEAL ANIMATIONS
   ============================================================ */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal-stagger>*{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal-stagger.in>*{opacity:1;transform:none}
.reveal-stagger.in>*:nth-child(2){transition-delay:.08s}
.reveal-stagger.in>*:nth-child(3){transition-delay:.16s}
.reveal-stagger.in>*:nth-child(4){transition-delay:.24s}
.reveal-stagger.in>*:nth-child(5){transition-delay:.32s}
.reveal-stagger.in>*:nth-child(6){transition-delay:.4s}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1100px){
  .roster__grid,.offers,.method__grid{grid-template-columns:repeat(2,1fr)}
  .method__cell:nth-child(2){border-right:none}
  .method__cell:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .stats__grid{grid-template-columns:repeat(2,1fr);gap:2.4rem}
  .stat:nth-child(2){border-right:none}
  .foot__inner{grid-template-columns:1fr 1fr;gap:2.5rem}
}
@media (max-width: 900px){
  .head__nav{display:none}
  .head__cta{display:none}
  .menu-btn{display:flex}
  .brand__name{font-size:.92rem}
  .brand__name small{display:none}
  .hero__grid{grid-template-columns:1fr;gap:2rem}
  .hero__num{font-size:32vw;align-self:start;margin-top:1rem}
  .hero__stats{grid-template-columns:repeat(2,1fr)}
  .hero__stat:nth-child(2){border-right:none}
  .hero__stat:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .about__grid,.faq__grid,.contact__inner{grid-template-columns:1fr;gap:2.5rem}
  .faq__intro{position:static}
  .testi__grid{grid-template-columns:1fr}
  .method__head,.services__head,.roster__head{align-items:start}
  .foot__inner{grid-template-columns:1fr}
}
@media (max-width: 640px){
  .hero{padding-top:7rem;padding-bottom:6rem}
  .hero__title{font-size:clamp(2.8rem,13vw,5rem)}
  .roster__grid,.offers,.method__grid{grid-template-columns:1fr}
  .method__cell{border-right:none;border-bottom:1px solid var(--line);min-height:auto}
  .method__cell:last-child{border-bottom:none}
  .roster__cta{flex-direction:column;align-items:flex-start}
  .about__cols{grid-template-columns:1fr}
  .stat{padding:1.2rem 0;border-right:none;border-bottom:1px solid var(--line)}
  .stat:last-child{border-bottom:none}
  .stats__grid{grid-template-columns:1fr;gap:0}
  .marquee__item{font-size:1.8rem}
  .head__cta{padding:.7em 1em;font-size:.7rem}
}
@media (prefers-reduced-motion:reduce) and (min-width:999999px){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ─ Fallback curseur : souris systeme visible si le curseur custom n'est pas actif (JS off / reduced-motion) ─ */
@media (hover:hover) and (pointer:fine){
  html:not(.cursor-on) *{cursor:auto}
  html:not(.cursor-on) a,html:not(.cursor-on) button,html:not(.cursor-on) summary,html:not(.cursor-on) label,html:not(.cursor-on) [data-cursor]{cursor:pointer}
}

/* ── Filet de securite : ouverture garantie + contenu visible si le JS echoue/est bloque (navigateur Insta/WhatsApp, reseau filtre, erreur JS) ── */
html.failsafe .loader,html.failsafe .intro,html.failsafe .intro-lock,html.failsafe .preloader,html.failsafe .loading{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:none!important;animation:none!important}
html.failsafe [class*="reveal"],html.failsafe [class*="fade"],html.failsafe [class*="gs-"],html.failsafe [class*="appear"],html.failsafe [class*="rise"],html.failsafe [data-reveal],html.failsafe [data-aos]{opacity:1!important;transform:none!important;visibility:visible!important;clip-path:none!important;transition:none!important;animation:none!important}
