
:root{
  --bg:#0b0f14;
  --text:#e7e7ea;
  --muted:#a1a1aa;
  --card:#0f141b;
  --border:#1f2937;
  --brand:#7c3aed;
  --brand-2:#22d3ee;
  --ring:rgba(124,58,237,.25);
  --radius:16px;
  --shadow:0 10px 30px rgba(0,0,0,.25);
}
:root.light{
  --bg:#f7f7fb;
  --text:#0f1220;
  --muted:#5b6170;
  --card:#ffffff;
  --border:#e6e8ef;
  --ring:rgba(124,58,237,.12);
  --shadow:0 10px 30px rgba(2,6,23,.08);
}
*{box-sizing:border-box}
html,body{height:100%}
/* page */
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  color:var(--text);
  background:
    radial-gradient(1000px 600px at 0% -10%, color-mix(in hsl,var(--brand-2), transparent 85%), transparent 60%),
    radial-gradient(1200px 700px at 110% 0%, color-mix(in hsl,var(--brand), transparent 85%), transparent 60%),
    var(--bg);
  min-height:100%;
}
a{color:inherit;text-decoration:none}
/* layout */
.container{max-width:1200px;margin:0 auto;padding:24px}
header{
  position:sticky;top:0;z-index:20;
  background:color-mix(in hsl, var(--bg), transparent 30%);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--border);
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.brand{display:flex;gap:12px;align-items:center;font-weight:800;letter-spacing:.3px}
.logo{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;
  background:conic-gradient(from 200deg, var(--brand), var(--brand-2), var(--brand));
  box-shadow:0 0 0 3px color-mix(in hsl, var(--brand), transparent 80%) inset;
}
.nav a{font-size:14px;color:var(--muted);margin-left:16px}
/* hero */
.hero{padding:34px 0 6px}
.hero h1{font-size:34px;margin:.2em 0}
.hero p{color:var(--muted);max-width:700px}
/* controls */
.controls{display:grid;grid-template-columns:1fr auto;gap:12px;margin-top:18px}
.search{display:flex;gap:10px;align-items:center;background:var(--card);border:1px solid var(--border);
  border-radius:14px;padding:10px 12px;box-shadow:0 1px 0 var(--ring) inset}
.search input{flex:1;background:transparent;border:0;outline:0;color:var(--text)}
.chips{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.chip{border:1px solid var(--border);padding:6px 10px;border-radius:999px;font-size:12px;background:color-mix(in hsl, var(--card), transparent 8%);cursor:pointer;
  transition:transform .12s, box-shadow .12s}
.chip:hover{transform:translateY(-1px);box-shadow:0 6px 16px var(--ring)}
.theme-toggle{border:1px solid var(--border);background:var(--card);border-radius:999px;padding:6px 10px;font-size:12px;cursor:pointer}
/* grid/cards */
.grid{margin-top:18px;display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.card{border:1px solid var(--border);background:color-mix(in hsl, var(--card), transparent 0%);border-radius:var(--radius);overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  box-shadow:var(--shadow);
}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px color-mix(in hsl, var(--brand), transparent 70%);border-color:color-mix(in hsl, var(--brand), transparent 60%)}
.thumb{aspect-ratio:4/3;background:#111;position:relative}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.rank{position:absolute;top:10px;left:10px;background:rgba(0,0,0,.55);color:#fff;font-size:12px;font-weight:700;padding:6px 8px;border-radius:999px}
.body{padding:14px;display:grid;gap:8px}
.name{font-weight:800;font-size:17px;line-height:1.2}
.meta{color:var(--muted);font-size:12px}
/* prose */
.prose{max-width:820px;margin:0 auto;line-height:1.75}
.prose h1{font-size:36px;margin:.2em 0 .4em}
.prose h2{font-size:22px;margin:1.3em 0 .5em}
.prose p, .prose li{font-size:16px}
.small{font-size:12px;color:var(--muted)}
.bio-hero{display:grid;gap:18px;grid-template-columns:120px 1fr;align-items:center;margin:12px 0 10px}
.bio-hero img{width:120px;height:120px;object-fit:cover;border-radius:14px;border:1px solid var(--border);box-shadow:var(--shadow)}
.attribution{font-size:12px;color:var(--muted);border-top:1px dashed var(--border);margin-top:18px;padding-top:12px}
/* footer */
footer{border-top:1px solid var(--border);margin-top:36px}
.foot{display:flex;align-items:center;justify-content:space-between;padding:18px 0;font-size:12px;color:var(--muted)}
/* utilities */
kbd{background:color-mix(in hsl, var(--card), transparent 10%);border:1px solid var(--border);border-bottom-color:color-mix(in hsl,var(--border), transparent 20%);
  border-radius:6px;padding:2px 6px;font-size:11px}
/* animations */
@media (prefers-reduced-motion: no-preference){
  .card{transform:translateZ(0)}
}
