  :root{
    --bg:#0d0a1e; --bg-alt:#140f2e; --bg-alt2:#1a1440;
    --ink:#f5f2ff; --ink-dim:#b3a9d6; --ink-faint:#7c72a3;
    --violet:#7159ff; --violet-bright:#9c86ff; --violet-deep:#4930c9;
    --yellow:#ffd93d; --green:#3fc77a; --coral:#ff8f6b;
    --line:rgba(245,242,255,.12); --line-bright:rgba(245,242,255,.22);
    --ease:cubic-bezier(.16,.8,.24,1);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){ *{animation-duration:.001ms !important; transition-duration:.001ms !important;} }
  body{ margin:0; background:var(--bg); color:var(--ink); font-family:'Space Grotesk',system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
  a{ color:inherit; }
  ::selection{ background:var(--yellow); color:#1a1440; }
  h1,h2,h3{ font-family:'Bebas Neue','Space Grotesk',sans-serif; font-weight:400; letter-spacing:.01em; margin:0; }
  .container{ max-width:1180px; margin:0 auto; padding:0 clamp(1.25rem,4vw,2.5rem); }

  header{
    position:sticky; top:0; z-index:50; padding:.9rem clamp(1.25rem,4vw,2.5rem);
    display:flex; align-items:center; justify-content:space-between;
    background:rgba(13,10,30,.85); backdrop-filter:blur(12px); border-bottom:1px solid var(--line);
  }
  header a.brand{ font-family:'Bebas Neue'; font-size:1.4rem; text-decoration:none; color:var(--ink); letter-spacing:.03em; }
  header a.back-site{
    font-family:'JetBrains Mono',monospace; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase;
    text-decoration:none; color:var(--ink-dim); display:flex; align-items:center; gap:.5em;
  }
  header a.back-site:hover{ color:var(--yellow); }

  .lib-hero{ padding:clamp(3rem,7vw,5rem) 0 2rem; position:relative; }
  .eyebrow{
    font-family:'JetBrains Mono',monospace; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
    color:var(--yellow); display:flex; align-items:center; gap:.6em; margin:0 0 1rem;
  }
  .eyebrow::before{ content:''; width:20px; height:8px; clip-path:polygon(0 0,100% 50%,0 100%); background:var(--yellow); }
  .lib-hero h1{ font-size:clamp(2.8rem,8vw,5rem); line-height:.95; margin-bottom:1.1rem; }
  .lib-hero .lead{ color:var(--ink-dim); font-size:1.1rem; line-height:1.75; max-width:680px; }
  .lib-hero .manifesto-link{
    display:inline-flex; align-items:center; gap:.5em; margin-top:1.4rem; font-family:'JetBrains Mono',monospace;
    font-size:.78rem; text-decoration:none; color:var(--violet-bright); border-bottom:1px solid rgba(156,134,255,.35);
    padding-bottom:.15rem;
  }
  .lib-hero .manifesto-link:hover{ color:var(--yellow); border-color:var(--yellow); }

  /* search + filters */
  .lib-controls{
    position:sticky; top:64px; z-index:30; background:rgba(13,10,30,.92); backdrop-filter:blur(10px);
    border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:1.1rem 0; margin-top:1rem;
  }
  .lib-controls-inner{ display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
  .search-box{
    flex:1 1 220px; display:flex; align-items:center; gap:.6em; background:var(--bg-alt2);
    border:1px solid var(--line-bright); border-radius:999px; padding:.65rem 1.1rem;
  }
  .search-box svg{ width:15px; height:15px; color:var(--ink-faint); flex:none; }
  .search-box input{
    background:none; border:none; outline:none; color:var(--ink); font-family:'Space Grotesk'; font-size:.88rem; width:100%;
  }
  .search-box input::placeholder{ color:var(--ink-faint); }
  .cat-tabs{ display:flex; gap:.5rem; flex-wrap:wrap; }
  .cat-tab{
    font-family:'JetBrains Mono',monospace; font-size:.7rem; letter-spacing:.04em; text-transform:uppercase;
    background:transparent; border:1px solid var(--line-bright); color:var(--ink-dim); padding:.5rem 1rem;
    border-radius:999px; cursor:pointer; transition:background .2s, color .2s, border-color .2s; white-space:nowrap;
  }
  .cat-tab span{ opacity:.6; }
  .cat-tab:hover{ border-color:var(--violet-bright); color:var(--ink); }
  .cat-tab.active{ background:var(--tab-color, var(--yellow)); color:#0d0a1e; border-color:transparent; font-weight:600; }
  .cat-tab.active span{ opacity:.75; }

  /* grid */
  .lib-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1.2rem; padding:2.4rem 0 1rem; }
  .lib-card{
    display:flex; flex-direction:column; text-decoration:none; color:var(--ink);
    border:1px solid var(--line); border-radius:16px; padding:1.5rem; background:linear-gradient(160deg, rgba(255,255,255,.03), transparent);
    transition:border-color .22s, transform .22s var(--ease);
  }
  .lib-card:hover{ border-color:var(--violet-bright); transform:translateY(-4px); }
  .lib-card.hide{ display:none; }
  .lib-card-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; }
  .lib-num{ font-family:'JetBrains Mono',monospace; font-size:.68rem; color:var(--ink-faint); letter-spacing:.06em; }
  .lib-cat{
    font-family:'JetBrains Mono',monospace; font-size:.6rem; letter-spacing:.06em; text-transform:uppercase;
    padding:.28rem .6rem; border-radius:999px; font-weight:700; color:#0d0a1e;
  }
  .lib-card h3{ font-family:'Space Grotesk'; font-weight:700; font-size:1.15rem; line-height:1.3; margin-bottom:.4rem; }
  .lib-sub{ color:var(--ink-dim); font-size:.85rem; font-style:italic; margin:0 0 .7rem; line-height:1.4; }
  .lib-excerpt{ color:var(--ink-dim); font-size:.85rem; line-height:1.55; margin:0 0 1rem; flex:1; }
  .lib-meta{ font-family:'JetBrains Mono',monospace; font-size:.72rem; color:var(--yellow); margin-top:auto; }

  .empty-state{ display:none; text-align:center; padding:4rem 1rem; color:var(--ink-faint); font-family:'JetBrains Mono',monospace; font-size:.85rem; }
  .empty-state.show{ display:block; }

  /* resources footer */
  .resources{ background:var(--bg-alt); padding:clamp(3rem,7vw,4.5rem) 0; margin-top:3rem; }
  .resources h2{ font-size:clamp(2rem,5vw,2.8rem); margin-bottom:.6rem; }
  .resources > .container > p{ color:var(--ink-dim); max-width:600px; margin:0 0 2rem; line-height:1.6; }
  .res-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:.8rem; }
  .res-grid a{
    display:block; padding:1rem 1.2rem; border:1px solid var(--line); border-radius:12px; text-decoration:none;
    color:var(--ink-dim); font-size:.85rem; transition:border-color .2s, color .2s;
  }
  .res-grid a:hover{ border-color:var(--yellow); color:var(--ink); }

  footer.site-footer{
    border-top:1px solid var(--line); padding:2.2rem clamp(1.25rem,4vw,2.5rem);
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem;
    font-family:'JetBrains Mono',monospace; font-size:.72rem; color:var(--ink-faint);
  }
  footer.site-footer a{ color:var(--ink-dim); text-decoration:underline; }

  .reveal{ opacity:0; transform:translateY(20px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
  .reveal.in{ opacity:1; transform:translateY(0); }
