:root{
  --bg:#fafafa; --surface:#fff; --text:#222; --text2:#5b5b5b;
  --accent:#2a9d8f; --accent2:#21867a; --border:#e7e7e7;
  --shadow:0 10px 30px rgba(0,0,0,.06);
  --radius:14px; --max:980px;
}
body.dark{
  --bg:#0f1222; --surface:#141a33; --text:#e9e9f2; --text2:#b8bfd6;
  --accent:#52b788; --accent2:#40916c; --border:#232a4f;
  --shadow:0 18px 50px rgba(0,0,0,.35);
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
  background:var(--bg); color:var(--text);
  line-height:1.7; min-height:100vh; display:flex; flex-direction:column;
}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent2)}
img{max-width:100%;display:block}

/* Nav */
.navbar{
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--surface) 92%, transparent);
  border-bottom:1px solid var(--border);
  padding:1rem 1.25rem;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  backdrop-filter: blur(8px);
}
.logo{font-weight:900;color:var(--accent)}
.nav-links{display:flex; gap:1rem; align-items:center; flex-wrap:wrap}
.nav-links a{color:var(--text2); font-weight:700; border-bottom:2px solid transparent; padding:.2rem 0}
.nav-links a.active,.nav-links a:hover{color:var(--accent); border-bottom-color:var(--accent)}
#darkToggle{
  border:1px solid var(--border); background:none; color:var(--text);
  padding:.45rem .75rem; border-radius:999px; cursor:pointer;
}
#darkToggle:hover{background:var(--accent); color:#fff; border-color:var(--accent)}

/* Layout */
.container{max-width:var(--max); margin:2rem auto; padding:0 1.25rem; flex:1}

/* Home headers */
.hero{padding:3rem 0 1.5rem; text-align:center}
.hero h1{font-size:clamp(2rem,5vw,3rem); font-weight:950; letter-spacing:-.02em; line-height:1.1}
.hero p{margin-top:.75rem; color:var(--text2); max-width:65ch; margin-left:auto; margin-right:auto}

.page-head{margin:.5rem 0 1.25rem}
.page-head h1{font-size:2rem; font-weight:950; letter-spacing:-.02em}
.lead{margin-top:.4rem; color:var(--text2); max-width:75ch}

.section-head{display:flex; justify-content:space-between; align-items:baseline; gap:1rem; margin:1rem 0}
.section-head h2{font-weight:900}
.section-link{font-weight:900}

.grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:1.25rem;
}

/* Cards */
.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
  transition:.2s ease;
  display:flex; flex-direction:column;
}
.card:hover{transform:translateY(-4px)}
.card-media{aspect-ratio:16/9; background:color-mix(in srgb, var(--surface) 75%, var(--bg)); overflow:hidden}
.card-media img{width:100%; height:100%; object-fit:cover}
.card-media.placeholder{
  background:
    radial-gradient(60% 80% at 20% 20%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 60%),
    radial-gradient(60% 80% at 80% 30%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 55%),
    linear-gradient(180deg, color-mix(in srgb, var(--surface) 90%, transparent), color-mix(in srgb, var(--surface) 70%, transparent));
}
.card-body{padding:1rem 1.05rem 1.1rem; display:flex; flex-direction:column; gap:.5rem; flex:1}
.card h3{font-size:1.1rem; font-weight:950; letter-spacing:-.01em; line-height:1.25}
.date{font-size:.85rem; color:var(--text2)}
.excerpt{color:var(--text2)}
.read-more{font-weight:900; margin-top:.2rem; align-self:flex-start}

/* Search */
#searchInput{
  width:100%; max-width:460px; margin:1rem 0 1.25rem;
  padding:.8rem 1rem; border:1px solid var(--border);
  border-radius:999px; background:var(--surface); color:var(--text);
}
#searchInput:focus{outline:none; border-color:var(--accent); box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 20%, transparent)}

/* Prose (fixes "text all over the place") */
.prose{max-width:80ch}
.prose h1{font-size:clamp(1.8rem,4vw,2.6rem); font-weight:950; line-height:1.1; letter-spacing:-.02em; margin:0 0 .75rem}
.prose h2{margin:2rem 0 .75rem; font-size:1.55rem; font-weight:950}
.prose h3{margin:1.3rem 0 .6rem; font-weight:900}
.prose p{margin:.9rem 0}
.prose hr{border:none; border-top:1px solid var(--border); margin:1.5rem 0}
.prose ul,.prose ol{margin:.75rem 0 .75rem 1.25rem}
.prose blockquote{
  border-left:4px solid color-mix(in srgb, var(--accent) 35%, var(--border));
  padding:.25rem 1rem; margin:1rem 0; color:var(--text2);
}
.prose pre{
  border:1px solid var(--border); border-radius:var(--radius);
  padding:1rem; overflow:auto; background:color-mix(in srgb, var(--surface) 92%, var(--bg));
  margin:1.1rem 0;
}
.prose code{font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}

/* Make iframes responsive */
.prose iframe{width:100%; aspect-ratio:16/9; height:auto; border:0; border-radius:var(--radius)}

/* YouTube fallback link */
.video-link{margin-top:.6rem}
.video-link a{font-weight:950}

/* Backlink + footer */
.backlink{margin-top:1.5rem}
.footer{
  border-top:1px solid var(--border);
  padding:2rem 1rem;
  text-align:center;
  color:var(--text2);
  margin-top:2rem;
}

/* Mobile */
@media (max-width:640px){
  .navbar{padding:.9rem 1rem}
}