*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden}

body{
  font-family:'Google Sans',sans-serif;
  background:#f5faf6;
  color:#0d1f12;
  overflow-x:hidden;
  cursor:none;
}

body::before{
  content:'';
  position:fixed;
  inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  opacity:.25;
  pointer-events:none;
  z-index:0;
}

#cursor{
  position:fixed;
  width:10px;
  height:10px;
  background:#0d7f3f;
  border-radius:50%;
  pointer-events:none;
  z-index:9999;
  transform:translate(-50%,-50%);
  transition:transform .1s;
  mix-blend-mode:multiply;
}

#cursor-ring{
  position:fixed;
  width:36px;
  height:36px;
  border:1.5px solid rgba(13,127,63,.4);
  border-radius:50%;
  pointer-events:none;
  z-index:9998;
  transform:translate(-50%,-50%);
  transition:all .18s ease;
}

body:has(a:hover) #cursor-ring,
body:has(button:hover) #cursor-ring{
  width:52px;
  height:52px;
  border-color:#0d7f3f;
}

#navbar{transition:all .4s cubic-bezier(.16,1,.3,1)}

#navbar.scrolled{
  background:rgba(245,250,246,.94)!important;
  backdrop-filter:blur(20px);
  box-shadow:0 1px 0 rgba(13,127,63,.12),0 4px 24px rgba(13,31,18,.06);
}

.text-gradient{
  background:linear-gradient(135deg,#0d7f3f 0%,#189f52 40%,#c9971a 80%,#0d7f3f 100%);
  background-size:200%;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:gradShift 4s ease infinite;
}

.hero-num{
  font-family:'Bebas Neue';
  font-size:clamp(5rem,14vw,10rem);
  line-height:.9;
  color:transparent;
  -webkit-text-stroke:1px rgba(13,127,63,.12);
  position:absolute;
  user-select:none;
}

.glass{
  background:rgba(255,255,255,.7);
  backdrop-filter:blur(20px);
  border:1px solid rgba(13,127,63,.1);
}

.glass-green{
  background:rgba(53,187,110,.06);
  border:1px solid rgba(53,187,110,.18);
}

.card-white{
  background:#fff;
  border:1px solid rgba(13,31,18,.07);
  box-shadow:0 2px 16px rgba(13,31,18,.05);
}

.glow-green{
  box-shadow:0 0 40px rgba(13,127,63,.18),0 0 80px rgba(13,127,63,.07);
}

.btn-mag{
  position:relative;
  overflow:hidden;
  transition:all .3s cubic-bezier(.16,1,.3,1);
}

.btn-mag::before{
  content:'';
  position:absolute;
  inset:0;
  background:rgba(255,255,255,.18);
  transform:translateX(-110%) skewX(-15deg);
  transition:transform .4s cubic-bezier(.16,1,.3,1);
}

.btn-mag:hover::before{transform:translateX(110%) skewX(-15deg)}
.btn-mag:hover{transform:translateY(-2px)}

.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);
}

.reveal.left{transform:translateX(-40px)}
.reveal.right{transform:translateX(40px)}
.reveal.scale{transform:scale(.94)}
.reveal.visible{opacity:1;transform:none}

.reveal-delay-1{transition-delay:.1s}
.reveal-delay-2{transition-delay:.2s}
.reveal-delay-3{transition-delay:.3s}
.reveal-delay-4{transition-delay:.4s}
.reveal-delay-5{transition-delay:.5s}

.marquee-track{
  display:flex;
  width:max-content;
  animation:marquee 28s linear infinite;
}

.marquee-track:hover{animation-play-state:paused}

.tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:rgba(13,127,63,.08);
  border:1px solid rgba(13,127,63,.2);
  color:#0a6433;
  border-radius:100px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:4px 12px;
}

.player-card{
  transition:all .4s cubic-bezier(.16,1,.3,1);
}

.player-card:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 60px rgba(13,31,18,.14);
}

.player-card .overlay{transition:opacity .4s}
.player-card:hover .overlay{opacity:1!important}
.player-card img{transition:transform .6s cubic-bezier(.16,1,.3,1)}
.player-card:hover img{transform:scale(1.06)}

.service-card{
  transition:all .4s cubic-bezier(.16,1,.3,1);
  position:relative;
  overflow:hidden;
}

.service-card::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(13,127,63,.06),transparent);
  opacity:0;
  transition:opacity .4s;
}

.service-card:hover{
  transform:translateY(-6px);
  border-color:rgba(13,127,63,.3)!important;
  box-shadow:0 16px 48px rgba(13,31,18,.1)!important;
}

.service-card:hover::after{opacity:1}

.service-card .icon-wrap{transition:all .4s cubic-bezier(.16,1,.3,1)}

.service-card:hover .icon-wrap{
  transform:scale(1.1) rotate(-5deg);
  background:rgba(13,127,63,.15)!important;
}

.counter{font-family:'Bebas Neue'}

.quote-mark{
  font-family:'Bebas Neue';
  font-size:7rem;
  line-height:.6;
  color:rgba(13,127,63,.1);
}

.form-field{
  background:#f8fcf9;
  border:1.5px solid rgba(13,31,18,.1);
  transition:all .3s;
  color:#0d1f12;
}

.form-field:focus{
  outline:none;
  border-color:rgba(13,127,63,.5);
  background:#fff;
  box-shadow:0 0 0 3px rgba(13,127,63,.1);
}

.form-field::placeholder{color:rgba(13,31,18,.3)}
.form-field option{background:#fff;color:#0d1f12}

.nav-link{position:relative}

.nav-link::after{
  content:'';
  position:absolute;
  bottom:-4px;
  left:0;
  right:0;
  height:1.5px;
  background:#0d7f3f;
  transform:scaleX(0);
  transition:transform .3s cubic-bezier(.16,1,.3,1);
}

.nav-link:hover::after,
.nav-link.active::after{transform:scaleX(1)}

#mobile-menu{
  transform:translateX(100%);
  transition:transform .4s cubic-bezier(.16,1,.3,1);
}

#mobile-menu.open{transform:translateX(0)}

.border-gradient{position:relative}

.border-gradient::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(135deg,rgba(13,127,63,.35),transparent,rgba(201,151,26,.2));
  mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
}

::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:#f0faf3}
::-webkit-scrollbar-thumb{background:rgba(13,127,63,.3);border-radius:2px}

.font-display{
  font-family:'Bebas Neue',sans-serif;
  letter-spacing:.02em;
}

.carousel-track{
  display:flex;
  transition:transform .6s cubic-bezier(.16,1,.3,1);
  will-change:transform;
}

.carousel-slide{min-width:100%}

.dot{
  width:8px;
  height:8px;
  border-radius:50%;
  transition:all .3s cubic-bezier(.16,1,.3,1);
  cursor:pointer;
}

.dot.active{
  width:24px;
  border-radius:4px;
  background:#35bb6e!important;
}

.progress-bar{
  height:2px;
  background:rgba(53,187,110,.2);
  overflow:hidden;
  border-radius:1px;
}

.progress-fill{
  height:100%;
  background:linear-gradient(90deg,#35bb6e,#f8c832);
  border-radius:1px;
  transition:width .1s linear;
}

.arrow-btn{
  width:44px;
  height:44px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all .3s;
  cursor:pointer;
  border:none;
}

.arrow-btn:hover{transform:scale(1.1)}

[data-theme="dark"]{
  --dm-bg:#06120a;
  --dm-bg2:#0a1c10;
  --dm-text:#e8f5ee;
  --dm-muted:rgba(232,245,238,.55);
  --dm-faint:rgba(232,245,238,.35);
  --dm-border:rgba(255,255,255,.07);
  --dm-card:rgba(255,255,255,.04);
  --dm-glass:rgba(255,255,255,.04);
  --dm-glass-green:rgba(53,187,110,.06);
}

[data-theme="dark"] body,
[data-theme="dark"]{
  background:#06120a!important;
  color:#e8f5ee!important;
}

[data-theme="dark"] #navbar.scrolled{
  background:rgba(6,18,10,.92)!important;
  border-bottom:1px solid rgba(53,187,110,.12)!important;
  box-shadow:none!important;
}

[data-theme="dark"] .glass{
  background:rgba(255,255,255,.04)!important;
  border-color:rgba(255,255,255,.1)!important;
}

[data-theme="dark"] .glass-green{
  background:rgba(53,187,110,.06)!important;
  border-color:rgba(53,187,110,.15)!important;
}

[data-theme="dark"] .card-white{
  background:rgba(255,255,255,.04)!important;
  border-color:rgba(255,255,255,.07)!important;
  box-shadow:none!important;
}

[data-theme="dark"] .service-card{
  background:rgba(255,255,255,.04)!important;
  border-color:rgba(255,255,255,.07)!important;
  box-shadow:none!important;
}

[data-theme="dark"] .player-card{
  border-color:rgba(255,255,255,.07)!important;
}

[data-theme="dark"] .player-card:hover{
  box-shadow:0 20px 60px rgba(0,0,0,.4);
}

[data-theme="dark"] .text-ink-900{color:#e8f5ee!important}
[data-theme="dark"] .text-ink-800{color:#c8e8d0!important}
[data-theme="dark"] .text-ink-700{color:rgba(232,245,238,.6)!important}

[data-theme="dark"] [style*="color:#0d1f12"],
[data-theme="dark"] [style*="color: #0d1f12"]{
  color:#e8f5ee!important;
}

[data-theme="dark"] [style*="background:#ffffff"],
[data-theme="dark"] [style*="background: #ffffff"]{
  background:rgba(255,255,255,.04)!important;
}

[data-theme="dark"] [style*="background:#f5faf6"],
[data-theme="dark"] [style*="background: #f5faf6"]{
  background:#06120a!important;
}

[data-theme="dark"] [style*="background:#f0faf3"]{
  background:rgba(255,255,255,.05)!important;
}

[data-theme="dark"] [style*="background:#f8fcf9"]{
  background:rgba(255,255,255,.04)!important;
}

[data-theme="dark"] [style*="color:rgba(13,31,18"]{
  color:rgba(232,245,238,.55)!important;
}

[data-theme="dark"] [style*="color:rgba(13,127,63"]{
  color:rgba(53,187,110,.7)!important;
}

[data-theme="dark"] [style*="border-color:rgba(13,31,18"]{
  border-color:rgba(255,255,255,.1)!important;
}

[data-theme="dark"] [style*="border:1px solid rgba(13,31,18"]{
  border-color:rgba(255,255,255,.07)!important;
}

[data-theme="dark"] section[style*="background:#ffffff"]{
  background:#06120a!important;
}

[data-theme="dark"] section[style*="background:#f5faf6"]{
  background:#0a1c10!important;
}

[data-theme="dark"] .form-field{
  background:rgba(255,255,255,.04)!important;
  border-color:rgba(255,255,255,.1)!important;
  color:#e8f5ee!important;
}

[data-theme="dark"] .form-field::placeholder{
  color:rgba(255,255,255,.3)!important;
}

[data-theme="dark"] .form-field option{
  background:#0d1f12!important;
}

[data-theme="dark"] .bg-white{
  background:rgba(255,255,255,.04)!important;
}

[data-theme="dark"] [style*="background:white"]{
  background:rgba(255,255,255,.04)!important;
}

[data-theme="dark"] .marquee-text-col,
[data-theme="dark"] .marquee-band span:not(.text-pitch-400){
  color:rgba(255,255,255,.25)!important;
}

[data-theme="dark"] .quote-mark{
  color:rgba(53,187,110,.12)!important;
}

[data-theme="dark"] #mobile-menu{
  background:rgba(6,18,10,.97)!important;
}

[data-theme="dark"] .mobile-link{
  color:#e8f5ee!important;
}

[data-theme="dark"] .nav-logo-text,
[data-theme="dark"] .font-display.nav-logo-text{
  color:#fff!important;
}

[data-theme="dark"] .nav-link-item{
  color:rgba(255,255,255,.7)!important;
}

[data-theme="dark"] .nav-link-item:hover{color:#fff!important}

[data-theme="dark"] .hero-num{
  -webkit-text-stroke-color:rgba(53,187,110,.25)!important;
}

[data-theme="dark"] #theme-toggle{
  background:rgba(255,255,255,.04)!important;
  border-color:rgba(53,187,110,.25)!important;
  color:#fff!important;
}

[data-theme="light"] .icon-moon,
:root:not([data-theme]) .icon-moon{
  display:none!important;
}

[data-theme="dark"] .icon-sun{display:none!important}

[data-theme="dark"] .card-w{
  background:rgba(255,255,255,.04)!important;
  border-color:rgba(255,255,255,.07)!important;
  box-shadow:none!important;
}

[data-theme="dark"] .stat-bg{
  background:rgba(255,255,255,.05)!important;
}

[data-theme="dark"] .section-bg{
  background:#0a1c10!important;
}

[data-theme="dark"] .tag{
  background:rgba(53,187,110,.1)!important;
  border-color:rgba(53,187,110,.25)!important;
  color:#74d49d!important;
}

[data-theme="dark"] .cta-btn{
  background:rgba(53,187,110,.08)!important;
  border-color:rgba(53,187,110,.2)!important;
  color:#74d49d!important;
}

[data-theme="dark"] .text-gradient{
  background:linear-gradient(135deg,#35bb6e 0%,#f8c832 60%,#35bb6e 100%);
  background-size:200%;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

#wa-float{
  position:fixed;
  bottom:28px;
  right:28px;
  z-index:999;
  width:58px;
  height:58px;
  background:#25d366;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  box-shadow:0 4px 20px rgba(37,211,102,.35);
  transition:all .3s cubic-bezier(.16,1,.3,1);
  animation:waPulse 3s ease-in-out infinite;
}

#wa-float:hover{
  transform:scale(1.12) translateY(-3px);
  box-shadow:0 8px 32px rgba(37,211,102,.55);
}

#wa-float svg{
  width:30px;
  height:30px;
  fill:#fff;
}

#wa-tooltip{
  position:absolute;
  right:68px;
  top:50%;
  transform:translateY(-50%);
  background:#0d1f12;
  color:#fff;
  font-size:12px;
  font-weight:600;
  padding:6px 12px;
  border-radius:8px;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  transition:opacity .25s;
  font-family:'Google Sans',sans-serif;
}

#wa-tooltip::after{
  content:'';
  position:absolute;
  top:50%;
  right:-5px;
  transform:translateY(-50%);
  border:5px solid transparent;
  border-left-color:#0d1f12;
  border-right:none;
}

#wa-float:hover #wa-tooltip{opacity:1}

@keyframes waPulse{
  0%,100%{
    box-shadow:0 4px 20px rgba(37,211,102,.35),0 0 0 0 rgba(37,211,102,.25)
  }
  50%{
    box-shadow:0 4px 20px rgba(37,211,102,.35),0 0 0 10px rgba(37,211,102,0)
  }
}

.hero-video-wrap{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
}

.hero-video-wrap video{
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:1;
  filter:saturate(.8) brightness(.75);
  transition:opacity 1.2s ease;
}

.hero-video-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(to top,rgba(6,18,10,.92) 0%,rgba(6,18,10,.35) 40%,transparent 70%),
    linear-gradient(to right,rgba(6,18,10,.55) 0%,transparent 60%),
    linear-gradient(135deg,rgba(13,127,63,.12) 0%,transparent 60%);
}

[data-theme="light"] .hero-video-overlay{
  background:
    linear-gradient(to top,rgba(6,18,10,.85) 0%,rgba(6,18,10,.3) 40%,transparent 70%),
    linear-gradient(to right,rgba(6,18,10,.5) 0%,transparent 60%),
    linear-gradient(135deg,rgba(13,127,63,.1) 0%,transparent 60%);
}

.hero-video-wrap::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:#06120a url('/cdn/images/homepage_banner_video_cover.avif') center/cover no-repeat;
}

#hero-mute-btn{
  position:absolute;
  bottom:5rem;
  right:1.5rem;
  z-index:10;
  width:40px;
  height:40px;
  border-radius:50%;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.25);
  backdrop-filter:blur(8px);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:all .3s;
  color:#fff;
}

#hero-mute-btn:hover{
  background:rgba(255,255,255,.22);
  transform:scale(1.08);
}

#hero .hero-num{z-index:2}
#hero .hero-grid-bg{z-index:2}
#hero .hero-orbs{z-index:2}
#hero .hero-content{z-index:3;position:relative}
#hero .hero-scroll{z-index:3}

.btn-gold{
  background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);
  color:#1c0a00;
  position:relative;
  overflow:hidden;
  transition:all .35s cubic-bezier(.16,1,.3,1);
  font-weight:800;
  box-shadow:0 4px 20px rgba(245,158,11,.35);
}

.btn-gold::before{
  content:'';
  position:absolute;
  inset:0;
  background:rgba(255,255,255,.2);
  transform:translateX(-110%) skewX(-15deg);
  transition:transform .45s cubic-bezier(.16,1,.3,1);
}

.btn-gold:hover::before{transform:translateX(110%) skewX(-15deg)}

.btn-gold:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 32px rgba(245,158,11,.45);
}

.badge-priority{
  display:inline-flex;
  align-items:center;
  gap:5px;
  background:rgba(245,158,11,.1);
  border:1px solid rgba(245,158,11,.3);
  color:#b45309;
  border-radius:100px;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:3px 11px;
}

[data-theme="dark"] .badge-priority{
  background:rgba(245,158,11,.12);
  border-color:rgba(245,158,11,.28);
  color:#fbbf24;
}

.feat-pill{
  display:flex;
  align-items:flex-start;
  gap:10px;
  background:rgba(255,255,255,.6);
  border:1px solid rgba(13,31,18,.07);
  border-radius:14px;
  padding:12px 14px;
  backdrop-filter:blur(10px);
  transition:border-color .25s;
}

[data-theme="dark"] .feat-pill{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.08);
}

.feat-pill:hover{border-color:rgba(245,158,11,.4)}

.banner-card{
  position:relative;
  border-radius:28px;
  overflow:hidden;
}

.banner-card::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  background:linear-gradient(90deg,#35bb6e,#f59e0b,#35bb6e);
  background-size:200%;
  animation:bannerLine 4s linear infinite;
  z-index:1;
}

@keyframes bannerLine{
  0%{background-position:0%}
  100%{background-position:200%}
}

@keyframes ringPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(245,158,11,.4)}
  50%{box-shadow:0 0 0 10px rgba(245,158,11,0)}
}

.icon-ring{animation:ringPulse 2.5s ease-in-out infinite}

.speed-badge{
  position:absolute;
  top:-12px;
  right:24px;
  background:linear-gradient(135deg,#f59e0b,#d97706);
  color:#fff;
  font-size:11px;
  font-weight:800;
  padding:5px 14px;
  border-radius:100px;
  letter-spacing:.04em;
  text-transform:uppercase;
  box-shadow:0 4px 16px rgba(245,158,11,.4);
  white-space:nowrap;
  z-index:2;
}

@media(max-width:768px){
  .hero-num{display:none}
  body{cursor:auto}
  #cursor,#cursor-ring{display:none}
  #wa-float{
    width:50px;
    height:50px;
    bottom:20px;
    right:20px;
  }
  #wa-float svg{width:26px;height:26px}
  #hero-mute-btn{
    bottom:4.5rem;
    right:1rem;
    width:34px;
    height:34px;
  }
  .banner-card::before{height:2px}
}

@keyframes gradShift{
  0%,100%{background-position:0%}
  50%{background-position:100%}
}

@keyframes ping2{
  0%{transform:scale(1);opacity:.8}
  100%{transform:scale(2.5);opacity:0}
}
/* skip layout/paint work for sections below the fold */
#services, #joueurs, #partenaires, #contact, footer {
  content-visibility: auto;
  contain-intrinsic-size: auto 800px;
}
@media (max-width: 768px) {
  .hero-orbs, .hero-grid-bg, .hero-num { display: none; }
  .hero-content [style*="backdrop-filter"], .pv-card-play { backdrop-filter: none !important; }
}