/* ===== Design tokens ===== */
:root{
  --bg-0:#150404;
  --bg-1:#210606;
  --surface:#2b0808;
  --surface-2:#3a0b0b;
  --line:#4c1616;
  --line-soft:#3a1010;

  --gold:#f4b740;
  --gold-dim:#caa053;
  --red:#ff4747;
  --red-dim:#c22a2a;

  --text:#f7ece7;
  --text-dim:#d3a49d;
  --text-mute:#8f5f5a;

  --good:#39d67f;

  --radius-lg:22px;
  --radius-md:14px;
  --radius-sm:9px;

  color-scheme: dark;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  min-height:100vh;
  background:
    radial-gradient(900px 480px at 85% -8%, rgba(244,183,64,.10), transparent 60%),
    radial-gradient(1000px 600px at -5% 0%, rgba(255,71,71,.14), transparent 55%),
    linear-gradient(180deg, var(--bg-0), var(--bg-1) 45%, var(--bg-0));
  background-color: var(--bg-0);
  color: var(--text);
  font-family: 'Manrope', system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
  padding-inline: 0;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
h1,h2,h3{
  font-family:'Rajdhani', 'Manrope', sans-serif;
  font-weight:700;
  line-height:1.05;
  margin:0;
  text-wrap:balance;
  letter-spacing:.2px;
}
p{margin:0; color:var(--text-dim); line-height:1.6;}

.wrap{
  max-width:1160px;
  margin-inline:auto;
  padding-left:max(20px, env(safe-area-inset-left));
  padding-right:max(20px, env(safe-area-inset-right));
}

/* ===== Buttons ===== */
.btn{
  display:inline-flex; align-items:center; gap:9px;
  font-family:'Rajdhani', sans-serif;
  font-weight:600;
  font-size:1rem;
  letter-spacing:.3px;
  padding:13px 22px;
  border-radius:999px;
  border:1px solid transparent;
  cursor:pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  white-space:nowrap;
}
.btn:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
.btn-gold{
  background:linear-gradient(180deg, #ffd876, var(--gold));
  color:#2a1400;
  box-shadow:0 10px 24px -10px rgba(244,183,64,.55);
}
.btn-gold:hover{transform:translateY(-1px); box-shadow:0 14px 30px -10px rgba(244,183,64,.65);}
.btn-lg{padding:16px 28px; font-size:1.08rem;}
.btn-sm{padding:9px 16px; font-size:.88rem;}
.btn-ghost{
  background:transparent;
  color:var(--text-dim);
  border-color:var(--line);
}
.btn-ghost:hover{color:var(--text); border-color:var(--text-mute);}

.dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--red);
  box-shadow:0 0 10px var(--red);
  display:inline-block;
  animation:pulse 1.6s infinite;
}
@keyframes pulse{0%,100%{opacity:1; transform:scale(1);} 50%{opacity:.45; transform:scale(1.5);}}

/* ===== Welcome modal ===== */
.welcome-overlay{
  position:fixed; inset:0; z-index:100;
  background:rgba(10,1,1,.72);
  backdrop-filter:blur(6px);
  display:flex; align-items:flex-end; justify-content:center;
  padding:0;
  opacity:1;
  transition:opacity .25s ease;
}
.welcome-overlay[hidden]{display:none;}
.welcome-overlay.closing{opacity:0;}

.welcome-modal{
  position:relative;
  width:100%;
  max-width:460px;
  background:linear-gradient(160deg, var(--surface-2), var(--surface));
  border:1px solid var(--line);
  border-top-left-radius:24px;
  border-top-right-radius:24px;
  padding:30px 26px 28px;
  box-shadow:0 -20px 60px -20px rgba(0,0,0,.6);
  animation: slide-up .35s cubic-bezier(.2,.8,.2,1);
}
@media (min-width:640px){
  .welcome-overlay{align-items:center; padding-block:24px;}
  .welcome-modal{border-radius:24px;}
}
@keyframes slide-up{from{transform:translateY(24px); opacity:0;} to{transform:translateY(0); opacity:1;}}
@media (prefers-reduced-motion: reduce){
  .welcome-modal{animation:none;}
}

.welcome-close{
  position:absolute; top:16px; right:16px;
  width:32px; height:32px; border-radius:50%;
  background:rgba(255,255,255,.06);
  border:1px solid var(--line);
  color:var(--text-dim);
  font-size:.85rem;
  cursor:pointer;
}
.welcome-close:hover{color:var(--text); background:rgba(255,255,255,.1);}

.welcome-badge{
  display:inline-flex; align-items:center; gap:8px;
  font-size:.72rem; font-weight:700; letter-spacing:.6px; text-transform:uppercase;
  color:var(--gold);
  margin-bottom:14px;
}
.welcome-modal h2{font-size:clamp(1.5rem, 4vw, 1.85rem); margin-bottom:12px;}
.welcome-text{font-size:.95rem; margin-bottom:22px;}
.welcome-actions{display:flex; flex-wrap:wrap; gap:10px;}

/* ===== Nav ===== */
.nav{
  position:sticky; top:0; z-index:40;
  background:rgba(21,4,4,.82);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-soft);
}
.nav-inner{
  display:flex; align-items:center; gap:28px;
  padding-block:14px;
}
.brand{
  font-family:'Rajdhani', sans-serif;
  font-weight:700;
  font-size:1.18rem;
  letter-spacing:.5px;
  text-transform:uppercase;
  white-space:nowrap;
}
.brand-mark{color:var(--gold);}
.nav-links{
  display:flex; gap:22px;
  margin-left:auto;
  font-size:.92rem;
  color:var(--text-dim);
}
.nav-links a:hover{color:var(--text);}
@media (max-width:720px){ .nav-links{display:none;} }

/* ===== Hero ===== */
.hero{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap:48px;
  align-items:center;
  padding-block:56px 64px;
}
@media (max-width:900px){
  .hero{grid-template-columns:1fr; padding-block:36px 44px;}
}

.eyebrow{
  display:inline-flex; align-items:center; gap:9px;
  font-size:.78rem; font-weight:700; letter-spacing:.4px;
  color:var(--text-dim);
  background:rgba(255,255,255,.04);
  border:1px solid var(--line);
  padding:7px 14px;
  border-radius:999px;
  margin-bottom:22px;
}
.hero h1{
  font-size:clamp(2.4rem, 5.4vw, 3.6rem);
  margin-bottom:20px;
}
.hero h1 .accent{color:var(--gold);}
.lede{
  font-size:1.05rem;
  max-width:52ch;
  margin-bottom:30px;
}
.hero-actions{display:flex; flex-direction:column; align-items:flex-start; gap:12px;}
.hero-meta{font-size:.82rem; color:var(--text-mute);}

/* ===== Scoreboard ===== */
.scoreboard{
  background:linear-gradient(165deg, var(--surface-2), var(--surface));
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:18px;
  box-shadow:0 30px 60px -30px rgba(0,0,0,.65), inset 0 1px 0 rgba(255,255,255,.03);
  display:flex; flex-direction:column; gap:10px;
}
.scoreboard-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:2px 6px 10px;
  border-bottom:1px solid var(--line-soft);
  margin-bottom:2px;
}
.scoreboard-title{
  font-family:'Rajdhani', sans-serif;
  font-weight:700; text-transform:uppercase; letter-spacing:1px;
  font-size:.82rem; color:var(--red);
}
.scoreboard-clock{
  font-family:'Rajdhani', sans-serif;
  font-variant-numeric: tabular-nums;
  font-weight:600;
  color:var(--text-mute);
  font-size:.85rem;
}

.match{
  background:rgba(0,0,0,.22);
  border:1px solid var(--line-soft);
  border-radius:var(--radius-md);
  padding:12px 14px 10px;
}
.match-comp{
  font-size:.68rem; text-transform:uppercase; letter-spacing:.5px;
  color:var(--text-mute);
  margin-bottom:8px;
}
.match-row{
  display:flex; align-items:center; justify-content:space-between;
  padding-block:3px;
}
.team{
  display:flex; align-items:center; gap:9px;
  font-size:.94rem; font-weight:600;
}
.score{
  font-family:'Rajdhani', sans-serif;
  font-variant-numeric: tabular-nums;
  font-weight:700;
  font-size:1.15rem;
  min-width:1.4ch;
  text-align:right;
}
.match.live .score{color:var(--gold);}
.match-foot{
  display:flex; align-items:center; gap:7px;
  margin-top:8px; padding-top:8px;
  border-top:1px dashed var(--line-soft);
  font-size:.76rem; color:var(--text-dim);
}
.match-foot.done{color:var(--text-mute);}
.match.upcoming{opacity:.72;}
.match.upcoming .score{color:var(--text-mute);}

.pulse{
  width:6px; height:6px; border-radius:50%;
  background:var(--good);
  box-shadow:0 0 8px var(--good);
  flex-shrink:0;
  animation:pulse 1.6s infinite;
}

.crest{
  width:20px; height:20px; border-radius:50%; flex-shrink:0;
  background: var(--line);
  background-size:cover;
}
.crest-psg{background:conic-gradient(from 200deg, #001e50, #da291c 60%, #001e50);}
.crest-om{background:conic-gradient(from 120deg, #2faee0, #fff 50%, #2faee0);}
.crest-asec{background:conic-gradient(from 40deg, #f2b705, #111 55%);}
.crest-africa{background:conic-gradient(from 90deg, #d61f26, #111 55%);}
.crest-rma{background:conic-gradient(from 0deg, #fff, #cbd5e1 55%);}
.crest-bar{background:conic-gradient(from 160deg, #a50044, #004d98 55%);}
.crest-liv{background:conic-gradient(from 0deg, #c8102e, #7a0a1c 60%);}
.crest-mci{background:conic-gradient(from 0deg, #6cabdd, #1c2c5b 60%);}

/* ===== Features ===== */
.features{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
  padding-block:20px 64px;
}
@media (max-width:820px){ .features{grid-template-columns:1fr;} }

.feature{
  background:var(--surface);
  border:1px solid var(--line-soft);
  border-radius:var(--radius-md);
  padding:26px 24px;
}
.feature-num{
  font-family:'Rajdhani', sans-serif;
  font-weight:700;
  font-size:.85rem;
  color:var(--red);
  letter-spacing:1px;
  margin-bottom:14px;
}
.feature h3{font-size:1.18rem; margin-bottom:10px;}
.feature p{font-size:.92rem;}

/* ===== CTA app ===== */
.cta-app{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:40px;
  align-items:center;
  background:linear-gradient(135deg, rgba(255,71,71,.10), rgba(244,183,64,.06));
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:44px;
  margin-bottom:70px;
}
@media (max-width:820px){
  .cta-app{grid-template-columns:1fr; padding:30px; gap:28px;}
}
.cta-app h2{font-size:clamp(1.6rem, 3.6vw, 2.1rem); margin-bottom:12px;}
.cta-app p{max-width:48ch; margin-bottom:24px; font-size:.98rem;}

.cta-app-stats{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
}
@media (max-width:560px){ .cta-app-stats{grid-template-columns:1fr; gap:14px;} }
.stat{
  display:flex; flex-direction:column; gap:4px;
  padding:16px 14px;
  background:rgba(0,0,0,.2);
  border:1px solid var(--line-soft);
  border-radius:var(--radius-sm);
  text-align:center;
}
.stat-num{
  font-family:'Rajdhani', sans-serif;
  font-variant-numeric: tabular-nums;
  font-weight:700;
  font-size:1.6rem;
  color:var(--gold);
}
.stat-label{font-size:.72rem; color:var(--text-mute); text-transform:uppercase; letter-spacing:.3px;}

/* ===== Petits téléphones (≤420px) ===== */
@media (max-width:420px){
  .nav-inner{gap:12px;}
  .brand{font-size:1rem;}
  .btn{font-size:.92rem; padding:11px 16px;}
  .btn-lg{
    padding:13px 18px;
    font-size:.96rem;
    white-space:normal;
    text-align:center;
    justify-content:center;
    width:100%;
  }
  .hero-actions{width:100%;}
  .welcome-actions{flex-direction:column; align-items:stretch;}
  .welcome-actions .btn{width:100%; justify-content:center;}
  .hero h1{font-size:2.1rem;}
  .cta-app{padding:22px;}
  .stat{padding:14px 10px;}
}

/* ===== Footer ===== */
.footer{
  display:flex; flex-direction:column; align-items:center; gap:10px;
  text-align:center;
  padding-block:30px 46px;
  border-top:1px solid var(--line-soft);
  color:var(--text-mute);
  font-size:.82rem;
}
