:root{
  --bg:#070816;
  --bg-soft:#0d0f25;
  --card:#11142e80;
  --muted:#a7b0c3;
  --text:#eef1ff;
  --accent:#8b5cf6;   /* violet */
  --accent-2:#22c55e; /* vert */
  --white:#ffffff;
  --shadow: 0 10px 30px rgba(0,0,0,.35);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,"Helvetica Neue",Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
  overflow-x:hidden;
}

/* Background animé */
.bg{position:fixed; inset:0; z-index:-2; overflow:hidden}
.bg-gradient{
  position:absolute; inset:-20% -10% -10% -20%;
  background: radial-gradient(1200px 800px at 10% 20%, #2dd4bf22 0%, transparent 60%),
              radial-gradient(1000px 700px at 90% 10%, #8b5cf633 0%, transparent 65%),
              radial-gradient(900px 600px at 40% 90%, #22c55e22 0%, transparent 60%);
  filter: blur(40px) saturate(130%);
}
#orb-canvas{position:absolute; inset:0; opacity:.35}

/* Layout */
.container{width:min(1200px, 92vw); margin-inline:auto}
.site-header{
  position:sticky; top:0; z-index:50;
  backdrop-filter: blur(10px);
  background: linear-gradient(to bottom, #0b0e24cc, #0b0e2400);
  border-bottom:1px solid #ffffff15;
}
.header-inner{display:flex; align-items:center; justify-content:space-between; padding:14px 0}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--text)}
.brand-logo{width:38px; height:38px; filter: drop-shadow(0 6px 12px #8b5cf644)}
.brand-name{font-weight:700; letter-spacing:.5px}
.brand-name span{color:var(--accent)}

.main-nav{position:relative}
.nav-toggle{
  display:none; width:44px; height:44px; border:0; background:transparent; cursor:pointer;
}
.nav-toggle span{display:block; height:2px; margin:7px 8px; background:var(--text); border-radius:2px; transition:.25s}
.nav-list{display:flex; gap:22px; list-style:none; margin:0; padding:0}
.nav-list a{
  color:var(--text); text-decoration:none; font-weight:500; padding:8px 10px; border-radius:12px;
}
.nav-list a:hover{background:#ffffff10}

/* Hero / bannière */
.hero{
  padding:80px 0 40px;
  background:linear-gradient(180deg,#0b0e24aa 0%, transparent 70%);
}
.hero-inner{text-align:center}
.hero-badge{
  display:inline-block; font-size:.8rem; letter-spacing:1px; color:#dbeafe;
  background: linear-gradient(90deg, #8b5cf6 0%, #22c55e 100%);
  padding:6px 10px; border-radius:999px; box-shadow:var(--shadow);
}
.hero-title{font-size:clamp(28px, 3.2vw + 12px, 54px); margin:18px 0}
.hero-title em{color:var(--accent-2); font-style:normal}
.hero-subtitle{color:var(--muted); margin-bottom:22px}
.hero-cta{display:flex; gap:14px; justify-content:center; flex-wrap:wrap}
.btn{display:inline-block; padding:12px 18px; border-radius:14px; text-decoration:none; transition:.25s; font-weight:600}
.btn.primary{background:linear-gradient(90deg,#8b5cf6,#22c55e); color:var(--white)}
.btn.ghost{border:1px solid #ffffff25; color:var(--text); background:#11142e80}
.btn:hover{transform: translateY(-1px); filter:brightness(1.05)}

/* Pages */
.page{position:relative; padding:40px 0 120px; min-height:45vh}
.view{opacity:0; transform: translateY(10px); animation:fadeInUp .45s ease forwards}
@keyframes fadeInUp{to{opacity:1; transform:none}}

.card{
  background:linear-gradient(180deg,#101334cc,#0b0e24cc);
  border:1px solid #ffffff14; border-radius:18px; padding:22px; box-shadow:var(--shadow);
}

/* Grids */
.grid{display:grid; gap:18px}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}

.badge{
  display:inline-flex; align-items:center; gap:8px; padding:6px 10px; border-radius:999px;
  border:1px solid #ffffff20; color:#c7d2fe; background:#11142e88; font-size:.85rem
}

/* Footer */
.site-footer{
  border-top:1px solid #ffffff18; background:#090b1ccc; backdrop-filter: blur(10px);
}
.footer-grid{
  display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:18px; padding:28px 0;
}
.socials{list-style:none; padding:0; margin:0}
.socials li a{color:var(--text); opacity:.9; text-decoration:none}
.foot-note{border-top:1px solid #ffffff12; text-align:center; padding:12px 0; color:#94a3b8}

/* Lecteur radio */
.radio-player{
  position:fixed; left:16px; bottom:16px; z-index:9999;
  width:310px; max-width:86vw;
  background:#0f132dEE; border:1px solid #ffffff22; border-radius:16px;
  box-shadow: var(--shadow);
  overflow:hidden;
}
.player-toggle{
  position:absolute; right:10px; top:10px; width:28px; height:28px;
  border:0; border-radius:50%; background:#ffffff15; cursor:pointer;
}
.player-toggle::before{
  content:"—"; display:block; text-align:center; line-height:28px; font-weight:700; color:var(--text);
}
.radio-player.min .player-toggle::before{content:"+"}

.player-body{display:flex; align-items:center; gap:14px; padding:12px 14px}
.player-meta{min-width:0}
.meta-now{font-size:.7rem; color:#a5b4fc; letter-spacing:.6px}
.meta-title{white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.player-controls{margin-left:auto; display:flex; align-items:center; gap:10px}
.ctrl{
  width:42px; height:42px; border-radius:12px; border:0; cursor:pointer;
  background: radial-gradient(120% 120% at 0% 0%, #8b5cf6, #22c55e);
}
.ctrl.play::after{
  content:""; display:block; margin: auto; width:0; height:0;
  border-style:solid; border-width:9px 0 9px 14px; border-color:transparent transparent transparent white;
}
.ctrl.pause::after{
  content:""; display:block; margin:auto; width:14px; height:14px; box-shadow:
    inset 0 0 0 4px white, inset 10px 0 0 white;
}
#volume{width:90px; accent-color:#8b5cf6}

/* Mobile */
@media (max-width: 860px){
  .nav-toggle{display:block}
  .nav-list{
    position:absolute; right:0; top:48px; width:220px;
    flex-direction:column; gap:0; background:#0f132dee; border:1px solid #ffffff18; border-radius:14px; padding:8px; display:none;
  }
  .nav-list.show{display:flex}
  .footer-grid{grid-template-columns:1fr}
  .grid.cols-3{grid-template-columns:1fr}
  .grid.cols-2{grid-template-columns:1fr}
}

/* Utilities */
.mt-2{margin-top:.5rem} .mt-3{margin-top:1rem} .mt-4{margin-top:1.5rem}
