:root { --ink:#1a1a1a; --mut:#666; --line:#e2e2e2; --accent:#2a5d8f; --bg:#fcfcfb; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--ink);
  font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; }
header { display:flex; flex-wrap:wrap; gap:.5rem 1.4rem; align-items:baseline;
  padding:1rem 1.4rem; border-bottom:1px solid var(--line); }
.brand { font-weight:700; color:var(--ink); text-decoration:none; }
nav a { color:var(--mut); text-decoration:none; margin-right:1rem; font-size:.92rem; }
nav a:hover { color:var(--accent); }
main { max-width:760px; margin:0 auto; padding:2rem 1.4rem 3rem; }
h1 { font-size:1.8rem; margin:.2rem 0 .4rem; }
h2 { font-size:1.25rem; margin-top:2rem; border-bottom:1px solid var(--line);
  padding-bottom:.25rem; }
h3 { font-size:1.02rem; margin-top:1.4rem; }
.subtitle { color:var(--mut); font-size:1.05rem; margin-top:0; }
a { color:var(--accent); }
code { background:#f0efed; padding:.1em .35em; border-radius:3px; font-size:.88em; }
table { border-collapse:collapse; width:100%; margin:1rem 0; font-size:.9rem; }
th,td { border:1px solid var(--line); padding:.4rem .6rem; text-align:left; }
th { background:#f4f3f1; }
.verdict { font-weight:700; font-size:.82rem; }
.v-pass { color:#1a7a3a; } .v-fail { color:#a23; } .v-void { color:#8a6d00; }
blockquote { border-left:3px solid var(--accent); margin:1rem 0; padding:.3rem 1rem;
  color:#333; background:#f6f8fa; }
footer { max-width:760px; margin:0 auto; padding:1.5rem 1.4rem 2.5rem;
  border-top:1px solid var(--line); color:var(--mut); font-size:.82rem; }
.lede { font-size:1.08rem; }

.analogy-grid, .result-strip, .primitive-list {
  display:grid; gap:.75rem; margin:1rem 0 1.4rem;
}
.analogy-grid { grid-template-columns:repeat(3, 1fr); }
.result-strip, .primitive-list { grid-template-columns:repeat(3, 1fr); }
.analogy-grid div, .result-strip div, .primitive-list div {
  border:1px solid var(--line); background:#fff; border-radius:6px;
  padding:.75rem; min-height:5rem;
}
.analogy-grid strong, .result-strip strong, .primitive-list strong {
  display:block; color:var(--ink); margin-bottom:.25rem;
}
.analogy-grid span, .result-strip span, .primitive-list span {
  color:var(--mut); font-size:.92rem;
}

.flow-diagram {
  display:grid; grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;
  align-items:center; gap:.5rem; margin:1.2rem 0;
}
.flow-node {
  border:1px solid var(--line); background:#fff; border-radius:6px;
  padding:.7rem .6rem; text-align:center; font-weight:600;
}
.flow-arrow { color:var(--accent); font-weight:700; text-align:center; }

.policy-diagram {
  display:grid; gap:.5rem; margin:1rem 0 1.4rem;
}
.policy-row {
  display:grid; grid-template-columns:1.3fr repeat(3, 1fr); gap:.4rem;
  align-items:center;
}
.policy-row span, .policy-row b {
  border:1px solid var(--line); background:#fff; border-radius:5px;
  padding:.45rem .5rem; font-size:.9rem;
}
.policy-row b { color:var(--accent); font-weight:600; }

.stack-diagram {
  max-width:520px; margin:1.2rem auto; text-align:center;
}
.stack-layer {
  margin:.35rem auto; border:1px solid var(--line); background:#fff;
  border-radius:6px; padding:.65rem; font-weight:600;
}
.stack-layer.wide { width:100%; }
.stack-layer.mid { width:76%; }
.stack-layer.small { width:48%; border-color:var(--accent); color:var(--accent); }
.stack-caption { color:var(--mut); font-size:.9rem; margin-top:.5rem; }

.bridge-diagram {
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:.75rem; margin:1.2rem 0;
}
.bridge-step {
  border:1px solid var(--line); background:#fff; border-radius:6px;
  padding:.8rem; text-align:center; font-weight:700;
}
.bridge-step.good { color:#1a7a3a; }
.bridge-step.weak { color:#a35a00; border-style:dashed; }

.phys-fold {
  border:1px solid var(--line); background:#fff; border-radius:6px;
  margin:1rem 0 1.4rem; padding:.2rem .85rem;
}
.phys-fold summary {
  cursor:pointer; color:var(--accent); font-weight:700;
  padding:.65rem 0; list-style-position:outside;
}
.phys-fold p { margin:.5rem 0 .8rem; }
.equation {
  font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  background:#f4f3f1; border:1px solid var(--line); border-radius:5px;
  padding:.65rem; overflow-x:auto;
}

@media (max-width: 720px) {
  .analogy-grid, .result-strip, .primitive-list,
  .flow-diagram, .policy-row, .bridge-diagram {
    grid-template-columns:1fr;
  }
  .flow-arrow { transform:rotate(90deg); }
}
