/* Torus stub: one dark look on purpose. The swarm canvas sits behind everything. */
:root {
  --bg: #07090a;
  --surface: rgba(17, 20, 22, 0.78);
  --fg: #e8edef;
  --muted: #8f989d;
  --line: #242a2e;
  --swarm: #4de8ff;
  --signal: #f2a74b;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace;
  --s1: 5px; --s2: 8px; --s3: 13px; --s4: 21px; --s5: 34px; --s6: 55px; --s7: 89px;
  color-scheme: dark;
}
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { background: var(--bg); }
body { background: var(--bg); color: var(--fg); font: 400 17px/1.6 var(--sans); -webkit-font-smoothing: antialiased; min-height: 100vh; }
#swarm { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.page { position: relative; z-index: 1; max-width: 1100px; margin: 0 auto; padding-inline: max(16px, 4vw); padding-block: var(--s4) var(--s6); display: grid; gap: var(--s7); }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--signal); outline-offset: 3px; }
.skip { position: absolute; left: -999px; }
.skip:focus { left: 16px; top: 16px; background: var(--signal); color: var(--bg); padding: var(--s2) var(--s3); z-index: 2; }
.label { font: 500 12px/1.5 var(--mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--s3); }
.brand { display: inline-flex; align-items: center; gap: var(--s2); text-decoration: none; font: 700 15px/1 var(--mono); letter-spacing: 0.32em; }
.brand svg { width: 26px; height: 26px; }
.m-ring { fill: var(--fg); }
.m-core { fill: none; stroke: var(--signal); stroke-width: 3; }
.lamp { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 10px var(--signal); vertical-align: middle; margin-right: var(--s2); animation: blink 1.6s steps(2, start) infinite; }
@keyframes blink { to { opacity: 0.25; } }
main { display: grid; gap: var(--s6); min-width: 0; }
.hero { display: grid; gap: var(--s4); padding-top: var(--s6); max-width: 46rem; }
h1 { font: 800 clamp(2.4rem, 6.5vw, 4.6rem)/1.02 var(--sans); letter-spacing: -0.03em; text-wrap: balance; }
h1 em { font-style: normal; color: var(--signal); display: block; }
.lede { font-size: 1.15rem; color: var(--muted); max-width: 36rem; text-wrap: pretty; }
.panel { position: relative; background: var(--surface); border: 1px solid var(--line); backdrop-filter: blur(6px); }
.panel::before, .panel::after { content: ""; position: absolute; width: 13px; height: 13px; border: 0 solid var(--signal); }
.panel::before { top: -1px; left: -1px; border-width: 1px 0 0 1px; }
.panel::after { bottom: -1px; right: -1px; border-width: 0 1px 1px 0; }
.panel-h { display: flex; justify-content: space-between; gap: var(--s3); padding: var(--s2) var(--s3); border-bottom: 1px solid var(--line); }
.invite { display: grid; gap: var(--s4); padding: var(--s5) var(--s4); max-width: 40rem; }
.invite h2 { font: 700 1.6rem/1.2 var(--sans); letter-spacing: -0.01em; }
.invite p { color: var(--muted); }
.meta { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s4); list-style: none; padding: 0; }
.btn { display: inline-flex; align-items: center; gap: var(--s2); width: fit-content; padding: var(--s3) var(--s4); background: var(--signal); color: var(--bg); font: 700 15px/1 var(--sans); text-decoration: none; border: 0; }
.btn:hover { filter: brightness(1.1); }
.status { font: 500 14px/1.5 var(--mono); color: var(--signal); }
.film video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; background: #000; }
.film figcaption { padding: var(--s2) var(--s3); border-top: 1px solid var(--line); }
.signals { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: var(--s4); list-style: none; padding: 0; }
.signals li { display: grid; gap: var(--s2); padding-top: var(--s3); border-top: 1px solid var(--line); min-width: 0; }
.signals b { font-weight: 600; }
.signals p { color: var(--muted); font-size: 15px; }
.types { display: grid; gap: var(--s5); }
.types-head { display: grid; gap: var(--s3); max-width: 46rem; }
.types h2 { font: 800 clamp(1.9rem, 4.5vw, 3rem)/1.05 var(--sans); letter-spacing: -0.02em; text-wrap: balance; }
.legend { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s4); list-style: none; padding: 0; text-transform: none; letter-spacing: 0.04em; }
.legend li { display: flex; align-items: center; gap: var(--s2); }
.chip { display: inline-block; width: fit-content; padding: 2px 8px; border: 1px solid currentColor; font: 600 11px/1.5 var(--mono); letter-spacing: 0.12em; text-transform: uppercase; }
.chip.run { color: var(--swarm); }
.chip.proto { color: var(--signal); }
.chip.plan { color: var(--muted); border-style: dashed; }
.swarms { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: var(--s3); list-style: none; padding: 0; counter-reset: none; }
.swarms li { display: grid; grid-template-rows: auto auto 1fr auto; gap: var(--s3); padding: var(--s4); background: var(--surface); border: 1px solid var(--line); min-width: 0; }
.swarms h3 { font: 700 1.15rem/1.25 var(--sans); }
.swarms p { color: var(--muted); font-size: 15px; }
.swarms .gate { font: 500 12px/1.5 var(--mono); letter-spacing: 0.06em; color: var(--signal); padding-top: var(--s3); border-top: 1px solid var(--line); }
.data { display: grid; gap: var(--s5); }
.data h2 { font: 800 clamp(1.9rem, 4.5vw, 3rem)/1.05 var(--sans); letter-spacing: -0.02em; text-wrap: balance; }
.pillars { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 0; list-style: none; padding: 0; border: 1px solid var(--line); background: var(--surface); }
.pillars li { display: grid; grid-template-rows: auto auto 1fr auto auto; gap: var(--s3); padding: var(--s4); border-left: 1px solid var(--line); min-width: 0; }
.pillars li:first-child { border-left: 0; }
.pillars h3 { font: 700 1.1rem/1.25 var(--sans); }
.pillars p { color: var(--muted); font-size: 15px; }
.pillars .tags { font: 500 12px/1.6 var(--mono); color: var(--swarm); letter-spacing: 0.04em; }
@media (max-width: 900px) { .pillars li { border-left: 0; border-top: 1px solid var(--line); } .pillars li:first-child { border-top: 0; } }
.foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s3); padding-top: var(--s4); border-top: 1px solid var(--line); }
.foot ul { display: flex; gap: var(--s4); list-style: none; padding: 0; }
.doc { display: grid; gap: var(--s4); max-width: 40rem; padding-top: var(--s6); }
.doc h1 { font-size: clamp(2rem, 5vw, 3rem); }
.doc h2 { font: 600 1.1rem/1.3 var(--sans); margin-top: var(--s3); }
.doc p, .doc dd { color: var(--muted); }
.doc dl { display: grid; grid-template-columns: max-content 1fr; gap: var(--s2) var(--s4); }
.doc dt { font: 500 12px/1.9 var(--mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.doc dd { color: var(--fg); min-width: 0; overflow-wrap: anywhere; }
.todo { background: #4a3a00; color: #ffe08a; padding: 0 3px; font: 500 13px/1.6 var(--mono); }
@media (max-width: 520px) { .doc dl { grid-template-columns: 1fr; } .page { gap: var(--s6); } }
@media (prefers-reduced-motion: reduce) { .lamp { animation: none; } }
