
  :root{
    --bg:#071712; --bg2:#0d221b; --bg3:#12302a; --lime:#BBF451; --lime2:#d8ff8a;
    --cream:#F5F6EE; --text:#eef2ea; --muted:#93a59b; --line:rgba(245,246,238,.1);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{background:var(--bg)}
  body{background:var(--bg);color:var(--text);font-family:Geist,system-ui,sans-serif;font-size:17px;line-height:1.5;overflow-x:hidden}
  a{color:inherit;text-decoration:none}
  img{display:block;max-width:100%}
  .display{font-family:Anton,Impact,sans-serif;text-transform:uppercase;font-weight:400;line-height:.9;letter-spacing:-.005em}
  .wrap{padding:0 clamp(16px,3vw,40px)}
  .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .kicker{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--lime);font-weight:600}

  /* curseur */
  .cursor{position:fixed;top:0;left:0;width:14px;height:14px;border-radius:50%;background:var(--lime);mix-blend-mode:difference;pointer-events:none;z-index:999;transform:translate(-50%,-50%);transition:width .25s,height .25s}
  .cursor.big{width:70px;height:70px}
  @media (hover:none){.cursor{display:none}}

  /* nav */
  nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:14px clamp(16px,3vw,40px);background:rgba(7,23,18,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
  .logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:19px;letter-spacing:-.01em}
  .logo i{width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#e8ff9e,var(--lime) 45%,#7fae1f);position:relative;display:block}
  .logo i::after{content:"";position:absolute;inset:5px;border-radius:50%;border:2px solid rgba(255,255,255,.85);border-left-color:transparent;border-right-color:transparent;transform:rotate(30deg)}
  nav .right{display:flex;align-items:center;gap:12px}
  .btn{display:inline-flex;align-items:center;gap:10px;border-radius:999px;padding:12px 22px;font-weight:600;font-size:15px;transition:transform .25s,background .25s}
  .btn:hover{transform:translateY(-2px)}
  .btn.lime{background:var(--lime);color:var(--bg)}
  .btn.ghost{border:1px solid rgba(245,246,238,.35)}
  .btn.ghost:hover{background:var(--cream);color:var(--bg)}
  .menu-btn{background:var(--cream);color:var(--bg);border:0;border-radius:999px;padding:12px 20px;font:600 15px Geist;cursor:pointer}
  nav .btn{padding:10px 18px;font-size:14px}

  .overlay{position:fixed;inset:0;background:var(--bg2);z-index:60;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:0 clamp(16px,3vw,40px);clip-path:inset(0 0 100% 0);transition:clip-path .8s cubic-bezier(.77,0,.18,1)}
  .overlay.open{clip-path:inset(0 0 0 0)}
  .overlay a{display:flex;align-items:center;gap:18px;font-size:clamp(44px,8vw,120px);border-bottom:1px solid var(--line);padding:4px 0;transition:color .25s,padding .3s}
  .overlay a small{font:500 15px Geist;color:var(--muted);min-width:28px}
  .overlay a:hover{color:var(--lime);padding-left:14px}
  .overlay .close{position:absolute;top:14px;right:clamp(16px,3vw,40px)}

  /* hero 3D */
  .hero{position:relative;height:100vh;min-height:640px;overflow:hidden;background:
    radial-gradient(60vw 40vw at 50% 42%,rgba(187,244,81,.13),transparent 70%),var(--bg)}
  #stage{position:absolute;inset:0;width:100%;height:100%;display:block}
  .court{position:absolute;inset:0;pointer-events:none;opacity:.18;background:
    linear-gradient(90deg,transparent calc(50% - 1px),var(--cream) calc(50% - 1px),var(--cream) calc(50% + 1px),transparent calc(50% + 1px)),
    linear-gradient(0deg,transparent calc(72% - 1px),var(--cream) calc(72% - 1px),var(--cream) calc(72% + 1px),transparent calc(72% + 1px));
    mask-image:radial-gradient(70% 60% at 50% 60%,#000,transparent)}
  .hero-top{position:absolute;top:92px;left:0;right:0;display:flex;justify-content:space-between;pointer-events:none}
  .hero-top span{font-size:14px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
  .hero-bottom{position:absolute;left:0;right:0;bottom:0;padding-bottom:36px;display:grid;grid-template-columns:1.2fr 1fr;gap:30px;align-items:end}
  .hero-bottom h2{font-size:clamp(46px,6vw,104px)}
  .hero-bottom h2 em{font-style:normal;color:var(--lime)}
  .hero-bottom p{color:#c9d4cc;max-width:460px;margin:14px 0 22px}
  .ctas{display:flex;gap:10px;flex-wrap:wrap}
  .stats{display:flex;justify-content:flex-end;gap:clamp(18px,3vw,48px)}
  .stats div{text-align:left}
  .stats b{display:block;font-family:Anton,Impact,sans-serif;font-weight:400;font-size:clamp(40px,4.5vw,72px);line-height:1;color:var(--lime)}
  .stats span{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
  .scroll-hint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);font-size:12px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase;animation:hint 2s ease-in-out infinite}
  @keyframes hint{50%{transform:translate(-50%,6px);opacity:.5}}

  /* marquee */
  .marquee{overflow:hidden;background:var(--lime);color:var(--bg);padding:18px 0;transform:rotate(-1.5deg);margin:30px -10px}
  .marquee-track{display:flex;gap:40px;white-space:nowrap;width:max-content;animation:marq 24s linear infinite}
  .marquee span{font-size:clamp(28px,4vw,56px)}
  @keyframes marq{to{transform:translateX(-50%)}}

  section{padding:clamp(80px,10vw,150px) 0}
  .giant{font-size:clamp(64px,13vw,220px);color:var(--cream);white-space:nowrap}
  .giant.outline{color:transparent;-webkit-text-stroke:1.5px rgba(245,246,238,.35)}
  .giant-wrap{overflow:hidden}
  .lead{max-width:640px;color:#c9d4cc;font-size:clamp(17px,1.5vw,21px);margin-top:26px}
  .lead strong{display:block;color:var(--cream);font-size:clamp(26px,2.6vw,38px);line-height:1.15;margin-bottom:10px;letter-spacing:-.02em}

  /* méthode : 4 axes */
  .axes{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:60px}
  .axe{position:relative;border:1px solid var(--line);border-radius:22px;padding:28px;min-height:330px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;transition:border-color .3s,transform .4s cubic-bezier(.2,.8,.2,1)}
  .axe::before{content:"";position:absolute;inset:auto -40% -60% auto;width:120%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(187,244,81,.35),transparent 60%);opacity:0;transition:opacity .5s}
  .axe:hover{border-color:var(--lime);transform:translateY(-6px)}
  .axe:hover::before{opacity:1}
  .axe .n{font-family:Anton,Impact,sans-serif;font-size:90px;line-height:.8;color:transparent;-webkit-text-stroke:1.5px var(--lime)}
  .axe h3{font-size:28px;font-weight:600;letter-spacing:-.02em;margin-bottom:8px}
  .axe p{color:var(--muted)}

  /* texte mot à mot */
  .reveal-text{font-size:clamp(30px,4.4vw,70px);line-height:1.06;font-weight:600;letter-spacing:-.035em;max-width:1400px}
  .reveal-text .w{color:#23372f;transition:color .2s}
  .reveal-text .w.on{color:var(--cream)}
  .reveal-text .w.hl.on{color:var(--lime)}

  /* programmes */
  .progs{margin-top:60px;border-top:1px solid var(--line)}
  .prog{display:grid;grid-template-columns:90px 1.1fr 1.4fr 1fr auto;gap:24px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line);position:relative;transition:padding .35s}
  .prog::before{content:"";position:absolute;inset:0;background:var(--lime);transform:scaleY(0);transform-origin:bottom;transition:transform .45s cubic-bezier(.7,0,.2,1);z-index:-1;border-radius:16px}
  .prog:hover{padding-left:22px;padding-right:22px;color:var(--bg)}
  .prog:hover::before{transform:scaleY(1)}
  .prog:hover .muted,.prog:hover li{color:rgba(7,23,18,.75)}
  .prog:hover .tag{border-color:var(--bg);color:var(--bg)}
  .prog .num{font-family:Anton,Impact,sans-serif;font-size:48px;line-height:1}
  .prog h3{font-family:Anton,Impact,sans-serif;text-transform:uppercase;font-weight:400;font-size:clamp(30px,3vw,48px);line-height:1}
  .prog .tag{display:inline-block;margin-top:8px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--lime);color:var(--lime);border-radius:999px;padding:4px 10px}
  .prog .muted{color:var(--muted)}
  .prog ul{list-style:none;font-size:15px}
  .prog li{color:#c9d4cc;padding-left:16px;position:relative}
  .prog li::before{content:"✦";position:absolute;left:0;font-size:10px;top:5px}
  .prog .go{width:54px;height:54px;border-radius:50%;border:1px solid currentColor;display:grid;place-items:center;font-size:20px;transition:transform .3s}
  .prog:hover .go{transform:rotate(-45deg);background:var(--bg);color:var(--lime)}

  /* coachs */
  .team{display:grid;grid-template-columns:1.1fr 1fr;gap:18px;margin-top:60px}
  .photo{position:relative;border-radius:24px;overflow:hidden;min-height:560px;background:var(--bg2)}
  .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.12)}
  .photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(7,23,18,.9))}
  .photo .cap{position:absolute;left:24px;bottom:22px;z-index:2}
  .photo .cap b{font-family:Anton,Impact,sans-serif;font-weight:400;font-size:clamp(40px,4vw,64px);line-height:.95;text-transform:uppercase;display:block}
  .cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  .card{background:var(--bg2);border:1px solid var(--line);border-radius:24px;padding:26px;display:flex;flex-direction:column;justify-content:space-between;min-height:270px;transition:background .3s}
  .card:hover{background:var(--bg3)}
  .card .badge{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--lime);font-weight:600}
  .card h3{font-size:26px;letter-spacing:-.02em;font-weight:600;margin:6px 0 8px}
  .card p{color:var(--muted);font-size:15px}
  .card .big{font-family:Anton,Impact,sans-serif;font-size:64px;line-height:.9;color:var(--lime)}
  .card.accent{background:var(--lime);color:var(--bg)}
  .card.accent p,.card.accent .badge{color:rgba(7,23,18,.75)}
  .card.accent .big{color:var(--bg)}

  /* contact */
  .contact{background:var(--cream);color:var(--bg);border-radius:32px;margin:0 clamp(8px,1.5vw,20px);padding:clamp(40px,6vw,90px) clamp(20px,4vw,70px);display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(30px,5vw,80px)}
  .contact h2{font-size:clamp(54px,6.5vw,118px)}
  .contact h2 em{font-style:normal;background:linear-gradient(transparent 58%,var(--lime) 58%, var(--lime) 92%,transparent 92%)}
  .contact .intro{margin-top:20px;max-width:440px;color:#34463e}
  form{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;align-content:start}
  label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;letter-spacing:.02em}
  label.full{grid-column:1/-1}
  input,select,textarea{font:16px Geist;background:transparent;border:0;border-bottom:1.5px solid rgba(7,23,18,.25);padding:10px 2px;color:var(--bg);outline:none;transition:border-color .25s}
  input:focus,select:focus,textarea:focus{border-color:var(--bg)}
  textarea{min-height:90px;resize:vertical}
  form .btn{grid-column:1/-1;justify-self:start;background:var(--bg);color:var(--lime);border:0;cursor:pointer;font-family:Geist;margin-top:10px}
  form small{grid-column:1/-1;color:#56675e;font-size:13px}
  .sent{grid-column:1/-1;background:var(--lime);border-radius:12px;padding:12px 16px;font-weight:600;display:none}

  footer{padding:80px 0 30px}
  .foot-row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:var(--muted);font-size:14px}
  .foot-giant{font-size:clamp(80px,21vw,380px);line-height:.8;margin-top:40px;color:var(--lime);white-space:nowrap}

  .fade-up{opacity:0;transform:translateY(60px)}

  @media (max-width:980px){
    .axes{grid-template-columns:1fr 1fr}
    .prog{grid-template-columns:60px 1fr auto;gap:14px}
    .prog .muted,.prog ul{grid-column:2/3}
    .prog .go{grid-row:1;grid-column:3}
    .team,.contact{grid-template-columns:1fr}
  }
  @media (max-width:640px){
    nav .btn{display:none}
    .hero{height:100svh}
    .hero-top{top:80px}
    .hero-top span:last-child{display:none}
    .hero-bottom{grid-template-columns:1fr;gap:18px;padding-bottom:26px}
    .hero-bottom h2{font-size:48px}
    .hero-bottom p{font-size:15px;margin:10px 0 16px}
    .ctas .btn{flex:1 1 100%;justify-content:center}
    .stats{justify-content:space-between}
    .stats b{font-size:36px}
    .scroll-hint{display:none}
    .axes,.cards{grid-template-columns:1fr}
    .axe{min-height:0;gap:30px}
    .axe .n{font-size:64px}
    .prog{padding:22px 0}
    .prog .num{font-size:34px}
    .photo{min-height:380px}
    .card{min-height:0;gap:20px}
    form{grid-template-columns:1fr}
    .overlay a{font-size:44px}
  }
