/* ===========================================================
   The Matriarchive — REBRAND LAYER (2026)
   Loads AFTER styles.css. Adds: new logo, teal-led theme,
   the Switchboard console, and the character system.
   Keeps the 1970s zine equity underneath; only overrides
   what the consolidation needs.
   =========================================================== */
@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&display=swap');

:root{
  --console:#0f1c1b; --console-2:#183330; --console-edge:#04100f;
  --led-on:#5fe6cd; --led-dim:#3c6560;
  --mono:'DM Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

/* ---------- Header: the new logo ---------- */
.brand{gap:0;}
.brand img{
  width:auto; height:56px; border-radius:0; border:0; box-shadow:none; object-fit:contain;
}
.brand .brandword{ /* hidden: the logo already carries the wordmark */
  position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);
}
/* Switchboard nav item reads as the "tool" section */
.nav a.switch{
  font-family:var(--mono); font-weight:500; letter-spacing:.02em; text-transform:uppercase; font-size:.78rem;
  background:var(--ink); color:var(--led-on); border-color:var(--ink);
}
.nav a.switch:hover{ background:#000; color:var(--led-on); }
.nav a[aria-current="page"].switch{ background:var(--teal-deep); color:#fff; }

/* ---------- Teal-led hero (was purple) ---------- */
.hero{
  background:
    radial-gradient(circle at 16% 22%, rgba(21,168,154,.60), transparent 32%),
    radial-gradient(circle at 84% 16%, rgba(242,179,61,.42), transparent 34%),
    radial-gradient(circle at 72% 84%, rgba(219,63,110,.40), transparent 38%),
    linear-gradient(135deg, #0a2622 0%, #10201f 52%, #0c1b28 100%);
}
.hero h1::after{
  background:linear-gradient(90deg, var(--teal), var(--gold), var(--orange), var(--rose), var(--purple));
}

/* ---------- Ticker accent word ---------- */
.ticker-track span.hot{ color:var(--gold); }

/* ---------- Hero space field (replaces the 3 spirals) ---------- */
.floating-logos{ overflow:hidden; }
.fl{ position:absolute; display:block; }
.fl.mark{ opacity:.16; }
.mark.m1{ width:210px; left:3%;  top:9%;    animation:driftA 27s ease-in-out infinite alternate; }
.mark.m2{ width:132px; right:7%; top:44%;   opacity:.13; animation:driftB 33s ease-in-out infinite alternate; }
.mark.m3{ width:150px; left:41%; bottom:4%; opacity:.10; animation:driftC 30s ease-in-out infinite alternate; }
.fl.ring{ width:128px; right:23%; top:7%;    opacity:.24; animation:driftB 24s ease-in-out infinite alternate; }
.fl.orbit{ width:210px; left:27%; top:19%;   opacity:.22; animation:spin 80s linear infinite; }
.fl.sat{ width:92px;  right:33%; bottom:14%; opacity:.34; animation:spin 44s linear infinite; }
.fl.star{ opacity:.55; animation:twinkle 4s ease-in-out infinite; }
.star.sa{ width:30px; left:20%; top:14%; }
.star.sb{ width:20px; right:16%; top:30%; animation-delay:1.1s; }
.star.sc{ width:26px; left:56%; top:10%; animation-delay:2s; }
.star.sd{ width:18px; left:14%; bottom:22%; animation-delay:1.6s; }
.dot{ position:absolute; width:5px; height:5px; border-radius:50%; background:#fdf1dd; opacity:.5; box-shadow:0 0 6px rgba(253,241,221,.6); animation:twinkle 5s ease-in-out infinite; }
.da{ left:12%; top:26%; } .db{ right:12%; top:12%; } .dc{ left:62%; top:30%; animation-delay:1s; }
.dd{ left:34%; top:8%; } .de{ right:26%; bottom:12%; animation-delay:2s; } .df{ left:8%; bottom:10%; animation-delay:1.4s; }
@keyframes driftA{ from{ transform:translate(-14px,8px); }  to{ transform:translate(40px,54px); } }
@keyframes driftB{ from{ transform:translate(20px,-12px); } to{ transform:translate(-52px,44px); } }
@keyframes driftC{ from{ transform:translate(-22px,26px); } to{ transform:translate(48px,-38px); } }
@keyframes twinkle{ 0%,100%{ opacity:.25; transform:scale(.9); } 50%{ opacity:.72; transform:scale(1.1); } }
@media (prefers-reduced-motion:reduce){ .fl,.dot{ animation:none !important; } }

/* ===========================================================
   THE SWITCHBOARD teaser (home) + shared console pieces
   =========================================================== */
.switch-band{
  padding:clamp(48px,7vw,88px) clamp(20px,5vw,72px);
  background:
    radial-gradient(circle at 90% 0%, rgba(95,230,205,.10), transparent 45%),
    linear-gradient(180deg, var(--console-2), var(--console));
  border-top:6px solid var(--ink); border-bottom:6px solid var(--ink);
}
.switch-band > .inner{ max-width:var(--max); margin-inline:auto; }
.switch-bar{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:22px;
  font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:#9fc7bf;
}
.switch-bar .id{ color:var(--led-on); }
.switch-bar .lamps{ display:inline-flex; gap:9px; margin-left:auto; }
.switch-bar .lamp{ width:11px; height:11px; border-radius:50%; background:var(--led-on); box-shadow:0 0 8px var(--led-on); }
.switch-bar .lamp.amber{ background:var(--gold); box-shadow:0 0 8px var(--gold); }
.switch-bar .lamp.rose{ background:var(--rose); box-shadow:0 0 8px var(--rose); }

.switch-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.9fr); gap:clamp(24px,4vw,48px); align-items:center; }
.switch-copy{ color:#eafffb; }
.switch-copy .eyebrow{ background:var(--teal); color:#fff; }
.switch-copy h2{ color:#fff; margin:14px 0 12px; }
.switch-copy h2 .glow{ color:var(--led-on); }
.switch-copy p{ color:rgba(223,238,234,.85); max-width:52ch; }
.switch-copy .button{ margin-top:8px; }
.switch-copy .button.tealcta{ background:var(--led-on); border-color:var(--ink); color:var(--ink); font-weight:700; }

/* the little character scene (static, "brain on" state) */
.mini-stage{ position:relative; height:300px; border:var(--line); border-radius:var(--radius);
  background:repeating-linear-gradient(0deg, rgba(95,230,205,.04) 0 1px, transparent 1px 3px), #0a1614;
  box-shadow:var(--shadow); overflow:hidden; }
.mini-stage .hw{ position:absolute; left:-6px; bottom:0; height:280px; width:auto; filter:drop-shadow(0 0 16px rgba(0,0,0,.4)); }
.mini-stage .robot-wrap{ position:absolute; width:96px; text-align:center; }
.mini-stage .robot-wrap .label{ font-family:var(--mono); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:var(--led-on); margin-top:2px; }
.mini-stage .r1{ right:104px; top:26px; } .mini-stage .r2{ right:8px; top:120px; }
.mini-chip{ position:absolute; font-family:var(--mono); font-size:.72rem; background:#123a34; color:#eafffb;
  border:2px solid var(--led-on); border-radius:999px; padding:5px 10px; box-shadow:3px 3px 0 #04100f; white-space:nowrap; }
.eye{ filter:drop-shadow(0 0 3px var(--led-on)); }

@media (max-width:820px){
  .switch-grid{ grid-template-columns:1fr; }
  .mini-stage{ height:260px; }
}

/* ---------- The Dispatch callout, teal ---------- */
.callout.dispatch{ background:var(--teal-deep); }
.callout.dispatch .eyebrow{ background:var(--gold); color:var(--ink); }

/* ---------- Footer portfolio line ---------- */
.footer .ports{ font-family:var(--mono); font-size:.78rem; opacity:.85; }

/* ===========================================================
   SWITCHBOARD PAGE COMPONENTS
   =========================================================== */
.sb-wrap{ max-width:var(--max); margin-inline:auto; padding:clamp(30px,5vw,60px) clamp(20px,5vw,72px); }
.sb-block{ margin-top:clamp(40px,6vw,72px); }
.sb-head{ margin-bottom:26px; }
.sb-head .eyebrow{ background:var(--teal); color:#fff; }
.sb-head h2{ margin:14px 0 8px; }
.sb-head p{ max-width:62ch; color:rgba(33,16,25,.78); }
.glow{ color:var(--teal-deep); }

/* console primitives */
.console{ position:relative; border:var(--line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden;
  background:radial-gradient(circle at 12% 0%, rgba(95,230,205,.10), transparent 40%), linear-gradient(180deg, var(--console-2), var(--console)); color:#dfeeea; }
.console-bar{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:12px 18px; border-bottom:2px solid var(--console-edge);
  font-family:var(--mono); font-size:.74rem; letter-spacing:.11em; text-transform:uppercase; color:#9fc7bf; background:linear-gradient(180deg, rgba(255,255,255,.05), transparent); }
.console-bar .id{ color:var(--led-on); }
.console-bar .spacer{ flex:1; }
.console-body{ padding:clamp(20px,3vw,32px); }
.lamps{ display:inline-flex; gap:9px; align-items:center; }
.lamp{ width:11px; height:11px; border-radius:50%; background:var(--led-on); box-shadow:0 0 8px var(--led-on); }
.lamp.amber{ background:var(--gold); box-shadow:0 0 8px var(--gold); }
.lamp.rose{ background:var(--rose); box-shadow:0 0 9px var(--rose); }
.mono-label{ font-family:var(--mono); text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; color:#7fb3aa; }
.screen{ border:2px solid var(--console-edge); border-radius:12px; padding:20px; font-family:var(--mono); color:var(--led-on);
  background:repeating-linear-gradient(0deg, rgba(95,230,205,.045) 0 1px, transparent 1px 3px), #0a1614; box-shadow:inset 0 0 30px rgba(0,0,0,.7); }
.screen .big{ font-size:clamp(2.6rem,7vw,4rem); line-height:.9; font-weight:500; text-shadow:0 0 16px rgba(95,230,205,.45); }
.screen .sub{ color:#9fe9db; font-size:.78rem; letter-spacing:.08em; margin-top:8px; }

/* ---- the load-distribution scene ---- */
.statement h2{ font-size:clamp(2.2rem,5vw,4rem); max-width:16ch; }
.statement h2 .glow{ color:var(--teal-deep); }
.scene{ margin-top:clamp(24px,4vw,40px); border:var(--line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden;
  background:linear-gradient(180deg,var(--console-2),var(--console)); color:#dfeeea; }
.scene-bar{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:12px 18px; border-bottom:2px solid var(--console-edge);
  font-family:var(--mono); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:#9fc7bf; }
.scene-bar .id{ color:var(--led-on); }
.toggle{ display:inline-flex; gap:8px; margin-left:auto; flex-wrap:wrap; }
.tg{ font-family:var(--mono); font-size:.76rem; text-transform:uppercase; letter-spacing:.05em; border:2px solid #2f5a54; background:#12211f; color:#cfe9e3; padding:9px 14px; border-radius:10px; }
.tg.active{ border-color:var(--led-on); background:#123a34; color:#fff; box-shadow:0 0 12px rgba(95,230,205,.35); }
.stageWrap{ position:relative; overflow:hidden; }
.stageScale{ position:relative; width:1000px; height:520px; transform-origin:top left; }
.stage{ position:absolute; inset:0; }
.stage .hw{ position:absolute; left:24px; bottom:0; height:452px; width:auto; filter:drop-shadow(0 0 20px rgba(0,0,0,.35)); }
.hw-halo{ position:absolute; left:70px; bottom:20px; width:360px; height:360px; border-radius:50%; background:radial-gradient(circle, rgba(219,63,110,.22), transparent 68%); transition:background .6s; }
.stage.on .hw-halo{ background:radial-gradient(circle, rgba(95,230,205,.20), transparent 68%); }
.speech{ position:absolute; left:250px; top:20px; max-width:236px; background:var(--card); color:var(--ink); border:var(--line); border-radius:14px; padding:12px 14px; font-family:var(--mono); font-size:.8rem; box-shadow:var(--shadow-sm); transform:rotate(-1.4deg); }
.speech::after{ content:""; position:absolute; left:34px; bottom:-14px; border:8px solid transparent; border-top-color:var(--ink); }
.speech b{ font-family:'DM Sans',sans-serif; }
.scene .robot-wrap{ position:absolute; width:120px; text-align:center; transition:opacity .5s, filter .5s, transform .5s; }
.scene .robot-wrap .label{ font-family:var(--mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:#9fc7bf; margin-top:2px; }
.stage:not(.on) .robot-wrap{ opacity:.34; filter:grayscale(.75) brightness(.8); transform:translateY(6px); }
.stage:not(.on) .eye{ fill:#5a5150; }
.stage.on .eye{ filter:drop-shadow(0 0 3px var(--led-on)); }
.chip2{ position:absolute; left:0; top:0; display:inline-flex; align-items:center; gap:7px; white-space:nowrap; font-family:var(--mono); font-size:.8rem;
  background:var(--card); color:var(--ink); border:2px solid var(--ink); border-radius:999px; padding:7px 12px; box-shadow:3px 3px 0 var(--ink);
  transform:translate(var(--mx),var(--my)); transition:transform .75s cubic-bezier(.5,.05,.2,1), background .5s, border-color .5s; }
.stage.on .chip2{ transform:translate(var(--rx),var(--ry)); background:#123a34; color:#eafffb; border-color:var(--led-on); box-shadow:3px 3px 0 #04100f; }
.readout{ position:absolute; left:24px; bottom:14px; font-family:var(--mono); font-size:.82rem; letter-spacing:.05em; color:var(--led-on); background:rgba(4,16,15,.6); border:1px solid var(--console-edge); border-radius:8px; padding:8px 12px; }
.readout .k{ color:#9fc7bf; }

/* ---- the Load Ledger ---- */
.tool-grid{ display:grid; grid-template-columns:minmax(0,1.55fr) minmax(260px,.9fr); gap:26px; align-items:start; }
.picker{ display:flex; flex-wrap:wrap; gap:10px; margin:6px 0 20px; }
.task-chip{ font-family:var(--mono); font-size:.86rem; border:2px solid #2f5a54; background:#12211f; color:#cfe9e3; padding:9px 14px; border-radius:10px; display:inline-flex; align-items:center; gap:8px; transition:transform .12s, background .12s, border-color .12s; }
.task-chip .sw{ width:26px; height:15px; border-radius:999px; background:#0a1615; border:1px solid #35635c; position:relative; flex:none; }
.task-chip .sw::after{ content:""; position:absolute; top:1px; left:1px; width:11px; height:11px; border-radius:50%; background:#557b74; transition:left .14s, background .14s; }
.task-chip:hover{ transform:translateY(-1px); border-color:var(--led-on); }
.task-chip[aria-pressed="true"]{ background:#123a34; border-color:var(--led-on); color:#fff; }
.task-chip[aria-pressed="true"] .sw{ background:#0c2c28; border-color:var(--led-on); }
.task-chip[aria-pressed="true"] .sw::after{ left:12px; background:var(--led-on); box-shadow:0 0 7px var(--led-on); }
.weigh-row{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:4px; }
.weigh-btn{ border:2px solid var(--led-on); background:linear-gradient(180deg,#1c4a43,#123029); color:#eafffb; font-family:var(--mono); text-transform:uppercase; letter-spacing:.1em; font-size:.82rem; padding:12px 20px; border-radius:10px; transition:box-shadow .15s, transform .12s; }
.weigh-btn:hover{ box-shadow:0 0 16px rgba(95,230,205,.4); transform:translateY(-1px); }
.weigh-btn[disabled]{ opacity:.4; cursor:not-allowed; border-color:#3c6560; color:#8fb3ab; box-shadow:none; }
.reset-btn{ background:transparent; border:2px solid #3c6560; color:#9fc7bf; font-family:var(--mono); font-size:.76rem; text-transform:uppercase; letter-spacing:.1em; padding:11px 16px; border-radius:10px; }
.reset-btn:hover{ border-color:var(--rose); color:var(--rose); }
.jobs{ list-style:none; margin:22px 0 0; padding:0; display:grid; gap:8px; }
.jobs li{ font-family:var(--mono); font-size:.9rem; color:#dbeeea; background:#11201e; border:1px solid #294f49; border-left:4px solid var(--gold); border-radius:8px; padding:10px 14px; display:flex; gap:12px; align-items:baseline; opacity:0; transform:translateX(-8px); animation:jobin .32s ease forwards; }
.jobs li .n{ color:var(--gold); font-size:.78rem; min-width:2.4ch; }
@keyframes jobin{ to{ opacity:1; transform:none; } }
.receipt-wrap{ margin-top:24px; display:none; }
.receipt-wrap.show{ display:block; animation:jobin .4s ease both; }
.receipt{ --tear:8px; position:relative; max-width:420px; color:var(--ink); background:var(--card); font-family:var(--mono); font-size:.86rem; line-height:1.5; padding:22px 22px 26px; box-shadow:var(--shadow); transform:rotate(-1deg); border-left:var(--line); border-right:var(--line);
  -webkit-mask:radial-gradient(var(--tear) at 50% 0, transparent 98%, #000) 0 0/16px var(--tear) repeat-x, radial-gradient(var(--tear) at 50% 100%, transparent 98%, #000) 0 100%/16px var(--tear) repeat-x, linear-gradient(#000,#000); -webkit-mask-composite:destination-out; mask-composite:exclude; }
.receipt h4{ font-family:var(--mono); text-transform:uppercase; letter-spacing:.16em; font-size:.74rem; font-weight:500; margin:0 0 12px; text-align:center; }
.receipt .rrule{ border:0; border-top:2px dashed rgba(33,16,25,.4); margin:12px 0; }
.receipt .rline{ display:flex; justify-content:space-between; gap:16px; font-variant-numeric:tabular-nums; }
.receipt .rtotal{ font-family:'Fraunces',serif; font-weight:900; font-size:1.5rem; display:flex; justify-content:space-between; align-items:baseline; margin:6px 0; }
.receipt .stat{ background:var(--gold); border:2px solid var(--ink); border-radius:10px; padding:12px; margin:14px 0; box-shadow:3px 3px 0 var(--ink); transform:rotate(.6deg); }
.receipt .stat b{ font-family:'Fraunces',serif; font-size:1.3rem; }
.receipt .verdict{ font-family:'DM Sans',sans-serif; font-weight:700; text-align:center; margin-top:12px; }
.receipt .stamp{ position:absolute; right:-6px; bottom:22px; border:3px solid var(--rose); color:var(--rose); font-family:var(--mono); text-transform:uppercase; letter-spacing:.1em; font-size:.7rem; padding:5px 9px; border-radius:6px; transform:rotate(9deg); }
.receipt a{ color:var(--purple-deep); font-weight:700; }
.record{ position:sticky; top:96px; display:grid; gap:16px; }
.record .rec-card{ background:var(--card); border:var(--line); border-radius:var(--radius); padding:18px; box-shadow:var(--shadow-sm); }
.record .rec-card:nth-child(1){ border-top:12px solid var(--orange); }
.record .rec-card:nth-child(2){ border-top:12px solid var(--teal); }
.record .rec-card:nth-child(3){ border-top:12px solid var(--purple); }
.record .kicker{ font-family:var(--mono); text-transform:uppercase; letter-spacing:.12em; font-size:.68rem; color:var(--orange-deep); display:block; margin-bottom:6px; }
.record .stat-big{ font-family:'Fraunces',serif; font-weight:900; font-size:clamp(2rem,4vw,2.6rem); line-height:.95; color:var(--orange-deep); }
.record .rec-card:nth-child(2) .stat-big{ color:var(--teal-deep); }
.record .rec-card:nth-child(3) .stat-big{ color:var(--purple-deep); }
.record .src{ font-size:.8rem; color:rgba(33,16,25,.62); }
.record .src a{ color:var(--purple-deep); font-weight:700; }

/* remembers/connects/routes cards + instruments */
.trio{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.rcard{ background:var(--card); border:var(--line); border-radius:var(--radius); padding:22px; box-shadow:var(--shadow); }
.rcard .n{ font-family:var(--mono); font-size:.72rem; letter-spacing:.12em; color:var(--teal-deep); }
.rcard h3{ margin:8px 0 6px; }
.insts{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.inst{ position:relative; border:var(--line); border-radius:var(--radius); padding:22px; box-shadow:var(--shadow); background:var(--card); display:flex; flex-direction:column; gap:8px; min-height:180px; text-decoration:none; transition:transform .14s, box-shadow .14s; }
.inst:hover{ transform:translate(2px,2px); box-shadow:2px 2px 0 var(--ink); }
.inst .no{ font-family:var(--mono); font-size:.72rem; letter-spacing:.12em; color:var(--teal-deep); }
.inst.live{ background:var(--ink); color:var(--paper); }
.inst.live .no{ color:var(--led-on); }
.inst .tag{ margin-top:auto; font-family:var(--mono); font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; display:inline-flex; align-items:center; gap:7px; color:rgba(33,16,25,.6); }
.inst.live .tag{ color:var(--led-on); }
.inst .idot{ width:9px; height:9px; border-radius:50%; background:var(--led-dim); }
.inst.live .idot{ background:var(--led-on); box-shadow:0 0 7px var(--led-on); }
.inst.soon .tag .idot{ background:var(--gold); }

.band-note{ margin-top:clamp(24px,4vw,40px); border:var(--line); border-radius:var(--radius); background:var(--gold); box-shadow:var(--shadow); padding:24px 26px; display:flex; gap:18px; align-items:center; flex-wrap:wrap; }
.band-note .stat{ font-family:'Fraunces',serif; font-weight:900; font-size:2.6rem; line-height:.9; color:var(--ink); }
.band-note p{ margin:0; max-width:60ch; }
.band-note a{ color:var(--purple-deep); font-weight:700; }

@media (max-width:900px){ .tool-grid{ grid-template-columns:1fr; } .record{ position:static; } }
@media (max-width:760px){ .trio, .insts{ grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce){ .chip2{ transition:none; } .jobs li{ animation:none; opacity:1; transform:none; } }

/* ===========================================================
   THE RESEARCH LIBRARY (resources page)
   770+ re-categorized receipts, grouped by lens.
   =========================================================== */
.lib-intro{ max-width:64ch; }
.lib-controls{ display:flex; flex-wrap:wrap; gap:10px; margin:20px 0 14px; }
.lib-search{ display:block; max-width:720px; margin:8px 0 6px; font-weight:700; }
.lib-search input{ margin-top:10px; }
.lib-count{ font-family:var(--mono); font-size:.82rem; letter-spacing:.04em; color:var(--purple-deep); font-weight:500; margin:6px 0 30px; }

.lib-lane{ margin:0 0 44px; }
.lib-lane-head{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin:0 0 20px; padding-bottom:12px; border-bottom:3px solid var(--ink); }
.lib-lane-badge{ font-family:'Fraunces',serif; font-weight:900; font-size:clamp(1.5rem,3vw,2.2rem); border:var(--line); border-radius:999px; padding:4px 22px; box-shadow:var(--shadow-sm); }
.lib-lane.lane-maiden .lib-lane-badge{ background:var(--teal); color:#fff; }
.lib-lane.lane-mother .lib-lane-badge{ background:var(--orange); color:#fff; }
.lib-lane.lane-crone  .lib-lane-badge{ background:var(--purple); color:#fff; }
.lib-lane-head p{ margin:0; font-weight:500; color:rgba(33,16,25,.72); max-width:52ch; }

.lib-cat{ background:var(--card); border:var(--line); border-radius:var(--radius); box-shadow:var(--shadow-sm); margin:0 0 14px; overflow:hidden; }
.lib-cat[open]{ box-shadow:var(--shadow); }
.lib-cat.lane-maiden{ border-top:10px solid var(--teal); }
.lib-cat.lane-mother{ border-top:10px solid var(--orange); }
.lib-cat.lane-crone{ border-top:10px solid var(--purple); }
.lib-cat-sum{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 22px; font-family:'Fraunces',serif; font-weight:900; font-size:clamp(1.15rem,1.8vw,1.5rem); line-height:1.12; }
.lib-cat-sum::-webkit-details-marker{ display:none; }
.lib-cat-sum::after{ content:"+"; font-family:var(--mono); font-weight:500; font-size:1.5rem; color:var(--purple-deep); flex:none; transition:transform .16s ease; }
.lib-cat[open] .lib-cat-sum::after{ transform:rotate(45deg); }
.lib-cat-name{ padding-right:8px; }
.lib-cat-meta{ display:inline-flex; align-items:center; gap:10px; flex:none; }
.lib-count-pill{ font-family:var(--mono); font-size:.8rem; font-weight:500; background:var(--soft); border:2px solid var(--ink); border-radius:999px; padding:2px 11px; }
.lib-new{ font-family:var(--mono); font-size:.64rem; text-transform:uppercase; letter-spacing:.12em; background:var(--rose); color:#fff; border:2px solid var(--ink); border-radius:999px; padding:3px 9px; }
.lib-cat-body{ padding:0 22px 24px; }
.lib-blurb{ font-weight:500; color:rgba(33,16,25,.82); max-width:66ch; }
.lib-prompts{ background:var(--paper-2); border:2px solid var(--ink); border-radius:14px; padding:14px 18px; margin:0 0 20px; }
.lib-prompts-h{ font-family:var(--mono); text-transform:uppercase; letter-spacing:.12em; font-size:.7rem; color:var(--purple-deep); margin:0 0 8px; font-weight:500; }
.lib-prompts ul{ margin:0; padding-left:20px; display:grid; gap:8px; }
.lib-prompts li{ font-weight:500; }
.lib-sources{ list-style:none; margin:0 0 18px; padding:0; columns:2; column-gap:32px; }
.lib-sources li{ break-inside:avoid; margin:0 0 9px; padding-left:15px; position:relative; line-height:1.4; }
.lib-sources li::before{ content:"\203A"; position:absolute; left:0; color:var(--purple-deep); font-weight:700; }
.lib-sources a{ color:var(--purple-deep); font-weight:600; text-decoration:none; text-underline-offset:2px; font-size:.92rem; }
.lib-sources a:hover{ text-decoration:underline; }
.lib-links{ display:flex; flex-wrap:wrap; gap:10px; border-top:2px dashed rgba(33,16,25,.25); padding-top:16px; }
.lib-xlink{ font-family:var(--mono); font-size:.76rem; text-decoration:none; border:2px solid var(--ink); border-radius:999px; padding:6px 13px; background:var(--gold); color:var(--ink); font-weight:500; box-shadow:2px 2px 0 var(--ink); transition:transform .12s ease, box-shadow .12s ease; }
.lib-xlink::before{ content:"\2192\00a0"; }
.lib-xlink:hover{ transform:translate(1px,1px); box-shadow:1px 1px 0 var(--ink); }

@media (max-width:720px){
  .lib-sources{ columns:1; }
  .lib-cat-sum{ font-size:1.1rem; }
}
