/* ===== Olivier Orsola — site musique — thème "synth spatial" ===== */

@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=Manrope:wght@400;500;700&display=swap');

:root{
  --bg: #06070d;
  --bg-panel: #10132199;
  --bg-panel-solid: #10132a;
  --line: #24284a;
  --text: #e7e8f5;
  --text-dim: #9497b8;
  --accent: #37e6d0;      /* cyan synth */
  --accent-2: #c65bff;    /* violet néon */
  --accent-3: #ff5da0;    /* magenta */
  --max: 780px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background: radial-gradient(120% 140% at 50% -10%, #171a33 0%, #06070d 55%), var(--bg);
  color: var(--text);
  font-family: 'Manrope', sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,.brand{
  font-family:'Orbitron', sans-serif;
  letter-spacing:.02em;
  margin:0 0 .5em;
}

a{ color: var(--accent); text-decoration:none; }
a:hover{ color: var(--accent-3); }
a:focus-visible, button:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }

img{ max-width:100%; display:block; border-radius:6px; }

.wrap{
  max-width: var(--max);
  margin:0 auto;
  padding: 2.2rem 1.4rem 4rem;
}

/* ---- Top nav (page principale + sous-pages) ---- */
.topnav{
  position:sticky; top:0; z-index:10;
  background:#06070dcc;
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.topnav-inner{
  max-width: var(--max);
  margin:0 auto;
  padding:.8rem 1.4rem;
  display:flex; align-items:center; gap:1.2rem;
  flex-wrap:wrap;
}
.topnav .brand{ margin:0; }
.topnav .brand img{ height:28px; display:block; }
.topnav .brand span{ color:var(--accent); }
.navlinks{ display:flex; gap:.3rem; flex-wrap:wrap; margin-left:auto; }
.navlinks a{
  color:var(--text-dim);
  font-size:.92rem;
  padding:.4rem .7rem;
  border-radius:5px;
}
.navlinks a:hover, .navlinks a[aria-current="page"]{
  color:var(--text);
  background: var(--bg-panel);
}

/* ---- Hero / bannière ---- */
.hero{
  text-align:center;
  padding: 2.5rem 1.4rem 1rem;
}
.hero img.banner{
  margin:0 auto;
  max-width:420px;
  filter: drop-shadow(0 0 30px #37e6d033);
}
.hero p.tag{
  color:var(--text-dim);
  margin-top:.6rem;
  font-size:.95rem;
}

/* ---- Cards / listes ---- */
.card{
  background: var(--bg-panel);
  border:1px solid var(--line);
  border-radius:10px;
  padding:1.2rem 1.3rem;
  margin-bottom:1rem;
}
.grid{
  display:grid;
  gap:1rem;
  grid-template-columns: repeat(2, 1fr);
}
.grid img{ aspect-ratio: 1/1; object-fit:cover; width:100%; }
.grid figure{ margin:0; }
.grid figcaption{ font-size:.82rem; color:var(--text-dim); margin-top:.3rem; }

.album{
  display:flex; gap:1rem; align-items:flex-start;
  margin-bottom:1.6rem;
}
.album img{ width:110px; flex:none; border-radius:6px; }
.album h3{ font-size:1.05rem; margin-bottom:.3rem; }
.album ol{ margin:.4rem 0 0; padding-left:1.2rem; color:var(--text-dim); font-size:.92rem; }
.album ol li{ margin-bottom:.15rem; }

/* ---- Grille discographie ---- */
.disco-grid{
  display:grid; gap:1.6rem;
  grid-template-columns: repeat(2, 1fr);
}
.disco-grid a{ display:block; color:var(--text); }
.disco-grid img{ width:100%; border-radius:8px; transition:transform .25s ease; }
.disco-grid a:hover img{ transform:scale(1.03); }
.disco-grid h3{ font-size:1rem; margin:.7rem 0 .1rem; }
.disco-grid .date{ color:var(--text-dim); font-size:.85rem; }

.album-hero{ text-align:center; margin-bottom:2rem; }
.album-hero img{ max-width:340px; width:80%; margin:0 auto 1rem; border-radius:8px; }
.album-hero .date{ color:var(--text-dim); }

.video-card{ margin-bottom:1.8rem; }
.video-card .thumb{
  position:relative; display:block; border-radius:8px; overflow:hidden;
}
.video-card .thumb img{ width:100%; display:block; aspect-ratio:16/9; object-fit:cover; }
.video-card .thumb::after{
  content:"▶";
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:64px; height:64px; border-radius:50%;
  background:#000000aa;
  color:#fff; font-size:1.4rem;
  display:flex; align-items:center; justify-content:center;
  padding-left:4px;
}
.video-card h3{ font-size:1rem; margin:.6rem 0 .2rem; }

footer{
  text-align:center;
  color:var(--text-dim);
  font-size:.82rem;
  padding: 2rem 1rem;
}

.btn-back{
  display:inline-block;
  margin-top:2rem;
  color:var(--text-dim);
  font-size:.9rem;
}

/* ---- Page d'accueil (splash) ---- */
.splash{
  min-height:100vh;
  min-height:100dvh;
  display:flex; flex-direction:column;
  align-items:center; justify-content:space-between;
  text-align:center;
  padding: max(1.4rem, env(safe-area-inset-top,0)) 1.4rem max(1.4rem, env(safe-area-inset-bottom,0));
  background: linear-gradient(#00000055, #00000099), url('../img/site/space-bg.jpg');
  background-size: 700px 500px;
  background-repeat: repeat;
}
.splash .logo-block{
  flex:1;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
}
.splash a{ display:block; }
.splash img{
  max-width:520px;
  width:80vw;
  filter: drop-shadow(0 0 40px #37e6d055);
  transition: filter .4s ease, transform .4s ease;
}
.splash a:hover img{ filter: drop-shadow(0 0 55px #c65bff77); transform:scale(1.02); }
.splash .updated{
  color:var(--text-dim);
  font-size:.75rem;
}
.splash .enter-hint{
  margin-top:1.2rem;
  color:var(--text-dim);
  font-size:.85rem;
  letter-spacing:.04em;
}

/* ---- Lightbox ---- */
.lb-overlay{
  position:fixed; inset:0; background:#000000e6;
  display:flex; align-items:center; justify-content:center;
  padding:2rem;
  opacity:0; pointer-events:none;
  transition:opacity .2s ease;
  z-index:100;
}
.lb-overlay.open{ opacity:1; pointer-events:auto; }
.lb-overlay .lb-img{
  max-width:100%; max-height:100%;
  border-radius:4px;
  box-shadow:0 10px 50px #000a;
}

@media (max-width:520px){
  .navlinks{ gap:.1rem; }
  .navlinks a{ padding:.35rem .5rem; font-size:.85rem; }
  .album{ flex-direction:column; }
  .album img{ width:140px; }
}
