:root{
  --bg:#070b14;
  --bg-2:#0b1120;
  --ink:#e8eefc;
  --muted:#93a1bd;
  --teal:#4de2c5;
  --violet:#8b7bff;
  --line:rgba(147,161,189,.16);
  --card:rgba(15,23,42,.55);
  --radius:18px;
  --maxw:1040px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:radial-gradient(1200px 800px at 80% -10%, #12204a 0%, transparent 55%),
             radial-gradient(900px 700px at 0% 20%, #0d2b2a 0%, transparent 50%),
             var(--bg);
  color:var(--ink);
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;
  color:var(--teal);background:rgba(77,226,197,.08);padding:.1em .4em;border-radius:6px}
a{color:inherit}
#sky{position:fixed;inset:0;width:100%;height:100%;z-index:-1;opacity:.75;pointer-events:none}

.nav{
  position:sticky;top:0;z-index:10;
  display:flex;align-items:center;justify-content:space-between;
  max-width:var(--maxw);margin:0 auto;padding:18px 24px;
  backdrop-filter:blur(10px);
  background:linear-gradient(to bottom, rgba(7,11,20,.8), rgba(7,11,20,0));
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:600;letter-spacing:.02em}
.brand-mark{
  display:grid;place-items:center;width:34px;height:34px;border-radius:10px;
  font-size:.8rem;font-weight:800;letter-spacing:.05em;
  background:linear-gradient(135deg,var(--teal),var(--violet));
  color:#04140f;box-shadow:0 0 24px rgba(77,226,197,.35);
}
.brand-text{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem;color:var(--muted)}
.nav nav{display:flex;gap:22px}
.nav nav a{text-decoration:none;font-size:.9rem;color:var(--muted);transition:color .2s}
.nav nav a:hover{color:var(--ink)}

main{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.hero{min-height:78vh;display:flex;flex-direction:column;justify-content:center;padding:64px 0 40px}
.eyebrow{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:.82rem;
  letter-spacing:.14em;text-transform:uppercase;margin:0 0 22px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(77,226,197,.12);
  animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}
h1{font-size:clamp(3.2rem,9vw,6.4rem);line-height:.98;margin:0;font-weight:800;letter-spacing:-.03em}
.grad{background:linear-gradient(100deg,var(--teal),#7cc8ff 45%,var(--violet));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.typed{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--muted);
  font-size:clamp(.95rem,2vw,1.15rem);min-height:1.8em;margin:26px 0 6px}
.caret{display:inline-block;width:9px;height:1.1em;vertical-align:-.15em;margin-left:3px;
  background:var(--teal);animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.lede{max-width:56ch;color:var(--muted);font-size:1.08rem;margin:14px 0 34px}
.cta{display:flex;gap:14px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 22px;border-radius:999px;border:1px solid transparent;cursor:pointer;
  font:inherit;font-size:.95rem;font-weight:600;text-decoration:none;transition:transform .15s,box-shadow .2s,background .2s}
.btn:active{transform:translateY(1px)}
.btn.primary{background:linear-gradient(120deg,var(--teal),#66d9ff);color:#04140f;
  box-shadow:0 8px 30px rgba(77,226,197,.28)}
.btn.primary:hover{box-shadow:0 10px 40px rgba(77,226,197,.42)}
.btn.ghost{background:transparent;border-color:var(--line);color:var(--ink)}
.btn.ghost:hover{border-color:var(--teal);color:var(--teal)}

.section{padding:76px 0;border-top:1px solid var(--line)}
h2{font-size:clamp(1.6rem,3.4vw,2.3rem);margin:0 0 14px;letter-spacing:-.02em;display:flex;align-items:baseline;gap:14px}
.num{font-family:ui-monospace,monospace;font-size:.8rem;color:var(--teal);letter-spacing:.1em}
.section-lede{max-width:64ch;color:var(--muted);margin:0 0 34px}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 22px 20px;backdrop-filter:blur(8px);
  transition:transform .2s,border-color .2s;
}
.card:hover{transform:translateY(-3px);border-color:rgba(77,226,197,.35)}
.card h3{margin:0 0 8px;font-size:1.05rem;color:var(--ink)}
.card p{margin:0;color:var(--muted);font-size:.94rem}

.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:26px}
.stats div{background:rgba(255,255,255,.02);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.stats b{display:block;font-family:ui-monospace,monospace;font-size:1.35rem;color:var(--teal)}
.stats span{font-size:.8rem;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}

.oracle{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
#question{
  width:100%;resize:vertical;min-height:64px;background:transparent;border:0;outline:none;
  color:var(--ink);font:inherit;font-size:1.05rem;padding:8px 6px;
}
#question::placeholder{color:#5f6d8c}
.oracle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:8px;flex-wrap:wrap}
.hint{font-size:.76rem;color:#5f6d8c}
.answer{
  margin-top:18px;border-left:2px solid var(--teal);padding:4px 0 4px 18px;
  animation:rise .4s ease both;
}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
#answer-text{font-size:1.12rem;margin:0;color:var(--ink)}
.answer-meta{margin:10px 0 0;font-size:.76rem;color:#5f6d8c;font-family:ui-monospace,monospace}

.letter{max-width:66ch}
.letter p{color:#c6d2e8;margin:0 0 16px}
.letter .sign{color:var(--muted);font-size:.95rem;margin-top:26px}
.note{display:flex;gap:10px;margin:22px 0 8px;flex-wrap:wrap}
#note{
  flex:1;min-width:220px;background:rgba(255,255,255,.03);border:1px solid var(--line);
  border-radius:999px;padding:12px 18px;color:var(--ink);font:inherit;outline:none;
}
#note:focus{border-color:var(--teal)}
.saved{color:var(--teal);font-size:.9rem;min-height:1.2em;margin:0}

.daily{margin:8px 0 0;padding:28px 30px;border:1px solid var(--line);border-radius:var(--radius);
  background:linear-gradient(135deg,rgba(77,226,197,.06),rgba(139,123,255,.06));
  position:relative;overflow:hidden}
.daily::before{content:"“";position:absolute;top:-22px;left:16px;font-size:7rem;line-height:1;
  color:rgba(77,226,197,.18);font-family:Georgia,serif}
.daily p{margin:0;font-size:clamp(1.15rem,2.6vw,1.5rem);line-height:1.5;color:var(--ink);font-weight:500}
.daily-date{margin-top:16px;font-family:ui-monospace,monospace;font-size:.78rem;color:var(--muted);
  letter-spacing:.04em;text-transform:uppercase}

footer{max-width:var(--maxw);margin:0 auto;padding:34px 24px 48px;border-top:1px solid var(--line);
  color:#5f6d8c;font-size:.82rem;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer p{margin:0}
footer a{color:var(--muted)}
.foot-meta{font-family:ui-monospace,monospace}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

@media (max-width:620px){
  .nav nav{gap:14px}
  .nav nav a{font-size:.82rem}
  .hero{min-height:70vh;padding-top:40px}
  .hint{display:none}
}

/* --- utilitaires de mise en page --- */
.no-top-border{border-top:0}
.pad-top{padding-top:56px}
.page-title{font-size:clamp(2.4rem,6vw,4rem);margin-bottom:8px}
.page-title.big{font-size:clamp(2.6rem,7vw,4.6rem)}
.page-title.huge{font-size:clamp(3rem,9vw,6rem)}
.page-intro{margin-top:18px}
.prose{max-width:70ch}
.entry-date{margin-bottom:6px}
.entry-title{font-size:1.5rem;display:block}
.mt-26{margin-top:26px}
.center-page{min-height:80vh;display:flex;flex-direction:column;justify-content:center;padding:80px 24px}
.center-page.short{min-height:78vh}
.lede-narrow{max-width:60ch}
.lede-narrow.tight{margin-top:-6px}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
