
:root{
  --bg: #0b0f14;
  --bg-2: radial-gradient(1200px 800px at 10% -10%, #12253f55, transparent 60%),
          radial-gradient(1000px 600px at 110% -20%, #4f46e533, transparent 60%),
          linear-gradient(180deg, #0b0f14 0%, #0b0f14 100%);
  --text: #e6e9f0;
  --muted:#a3acc3;
  --card: rgba(17, 24, 39, 0.6);
  --border: rgba(255,255,255,0.09);
  --accent:#60a5fa;
  --accent-2:#a78bfa;
  --shadow: 0 10px 30px rgba(2,8,23,.35);
}

:root.light {
  --bg:#f7f8fb;
  --bg-2: radial-gradient(1200px 800px at 0% -20%, #93c5fd33, transparent 60%),
          radial-gradient(900px 600px at 120% -20%, #c4b5fd44, transparent 60%),
          linear-gradient(180deg, #f7f8fb 0%, #ffffff 100%);
  --text:#0e1422;
  --muted:#55607a;
  --card: rgba(255,255,255,0.75);
  --border: rgba(0,0,0,0.08);
  --accent:#2563eb;
  --accent-2:#7c3aed;
  --shadow: 0 10px 30px rgba(2,8,23,.08);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;
  color:var(--text);
  background: var(--bg-2);
  min-height:100vh;
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1100px;margin:0 auto;padding:28px}
.nav{display:flex;gap:18px;align-items:center;justify-content:space-between;margin-bottom:24px;position:sticky;top:0;backdrop-filter: blur(10px);background: linear-gradient( to bottom, rgba(11,15,20,0.7), rgba(11,15,20,0.3) );border:1px solid var(--border);border-radius:14px;padding:10px 14px}
.nav .left{display:flex;gap:16px;align-items:center}
.brand{font-weight:800;letter-spacing:.3px}
.theme-toggle{border:1px solid var(--border);border-radius:10px;padding:8px 10px;cursor:pointer;background:transparent;color:var(--text)}

.card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:22px;box-shadow:var(--shadow)}
.card:hover{transform: translateY(-1px);transition: transform .2s ease}
.glass{backdrop-filter: blur(12px) saturate(120%);}

.grid{display:grid;gap:16px}
.grid-2{grid-template-columns:1fr}
@media(min-width:980px){.grid-2{grid-template-columns:1.8fr 1.2fr}}

.hero{position:relative;overflow:hidden;padding:26px;border-radius:22px;background:linear-gradient(120deg, #111827cc, #0b1220cc);border:1px solid var(--border)}
.hero h1{font-size:40px;margin:.2em 0 .2em}
.hero p{font-size:18px;color:var(--muted)}
.badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.tag{display:inline-flex;gap:8px;align-items:center;background:linear-gradient(160deg,#0b1220,#0e1a32);border:1px solid var(--border);color:#b9c7ff;padding:6px 10px;border-radius:999px;font-size:12px;box-shadow:var(--shadow)}
.kbd{background:#0f172a;border:1px solid #1e293b;border-radius:8px;padding:2px 7px;color:#cbd5e1;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;font-size:12px}

h1{font-size:32px;margin:.1em 0 .4em}
h2{font-size:24px;margin:1.2em 0 .5em}
h3{font-size:19px;margin:1em 0 .5em}
small,.muted{color:var(--muted)}
hr{border:0;border-top:1px solid var(--border);margin:22px 0}

.button{display:inline-block;border:1px solid var(--border);border-radius:12px;padding:10px 14px;background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0));}
.button:hover{transform: translateY(-1px);}

.post-list{list-style:none;padding:0;margin:0}
.post-list li{padding:14px 0;border-bottom:1px solid var(--border)}

footer{margin-top:48px;padding:16px 0;color:var(--muted);font-size:14px;border-top:1px solid var(--border)}

/* résumé timeline */
.timeline{position:relative;margin-left:6px;padding-left:22px}
.timeline::before{content:"";position:absolute;left:6px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--accent),transparent)}
.ti{position:relative;margin:18px 0;padding-left:6px}
.ti::before{content:"";position:absolute;left:-3px;top:6px;width:10px;height:10px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 3px rgba(96,165,250,.2)}

.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(min-width:700px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{padding:16px;border:1px solid var(--border);border-radius:14px;text-align:center;background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,0));}
.stat b{font-size:22px;display:block;margin-bottom:4px}

.searchbar{display:flex;gap:8px;align-items:center;margin:8px 0 16px}
.searchbar input{flex:1;border:1px solid var(--border);background:var(--card);color:var(--text);padding:10px 12px;border-radius:12px;outline:none}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1px solid var(--border);border-radius:999px;padding:6px 10px;cursor:pointer;background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,0));}
.chip.active{outline:2px solid var(--accent);}

.cover{
  height:180px;border-radius:14px;border:1px solid var(--border);
  background: radial-gradient(800px 120px at -10% 10%, var(--accent) 0%, transparent 60%),
              radial-gradient(700px 120px at 110% -10%, var(--accent-2) 0%, transparent 60%),
              linear-gradient(180deg, #0b1220, #111827);
}

.hidden{display:none}
