/* Claude formal verification: a light "paper with marginal notes" page.
   STIX Two Text for prose and math, IBM Plex Mono for code, one precise blue,
   and a counterexample red used only where something actually overflows. */

.xp-claude-formal-verification {
  --paper: #fafaf8;
  --sheet: #ffffff;
  --ink: #1a1c21;
  --graphite: #555b67;
  --rule: #d9dbd4;
  --rule-soft: #e9eae5;
  --wash: #f1f2ee;
  --blue: #1f4bd1;
  --blue-deep: #17389e;
  --blue-tint: #e6ebfb;
  --red: #b42318;
  --red-tint: #f9e3df;
  --serif: "STIX Two Text", "STIX Two", "Times New Roman", serif;
  --mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --main: 640px;
  --gap: 48px;
  --margin: 240px;

  box-sizing: content-box;
  max-width: calc(var(--main) + var(--gap) + var(--margin));
  margin: 0 auto;
  padding: 2.5rem 24px 1rem;
  font-family: var(--serif);
  font-size: 19px;
  line-height: 1.62;
  color: var(--ink);
  font-variant-numeric: lining-nums;
  font-kerning: normal;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.xp-claude-formal-verification *,
.xp-claude-formal-verification *::before,
.xp-claude-formal-verification *::after {
  box-sizing: border-box;
}

.xp-claude-formal-verification p,
.xp-claude-formal-verification ul,
.xp-claude-formal-verification ol,
.xp-claude-formal-verification dl,
.xp-claude-formal-verification blockquote,
.xp-claude-formal-verification figure,
.xp-claude-formal-verification pre {
  margin: 0;
  padding: 0;
}

.xp-claude-formal-verification a {
  color: var(--blue);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  text-decoration-color: color-mix(in srgb, var(--blue) 45%, transparent);
}

.xp-claude-formal-verification a:hover {
  text-decoration-color: var(--blue);
}

.xp-claude-formal-verification a:focus-visible,
.xp-claude-formal-verification button:focus-visible,
.xp-claude-formal-verification summary:focus-visible,
.xp-claude-formal-verification input:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
  border-radius: 2px;
}

.xp-claude-formal-verification code {
  font-family: var(--mono);
  font-size: 0.8em;
  padding: 0.08em 0.32em;
  border-radius: 3px;
  background: var(--wash);
  white-space: nowrap;
}

.xp-claude-formal-verification dfn {
  font-style: italic;
}

.xp-claude-formal-verification strong {
  font-weight: 600;
}

.xp-claude-formal-verification sup {
  font-size: 0.68em;
  line-height: 0;
}

/* ---- columns and margin notes ------------------------------------------ */

.xp-claude-formal-verification .v-col > p,
.xp-claude-formal-verification .v-col > ul,
.xp-claude-formal-verification .v-col > ol,
.xp-claude-formal-verification .v-col > dl,
.xp-claude-formal-verification .v-col > h2,
.xp-claude-formal-verification .v-col > h3,
.xp-claude-formal-verification .v-col > div,
.xp-claude-formal-verification .v-col > pre,
.xp-claude-formal-verification .v-col > blockquote,
.xp-claude-formal-verification .v-col > section {
  max-width: var(--main);
}

.xp-claude-formal-verification .v-col > p + p {
  margin-top: 1em;
}

.xp-claude-formal-verification .v-snref {
  color: var(--blue);
  font-weight: 600;
  margin-left: 0.08em;
}

.xp-claude-formal-verification .v-sn {
  float: right;
  clear: right;
  width: var(--margin);
  margin-right: calc(-1 * (var(--margin) + var(--gap)));
  margin-top: 0.3em;
  margin-bottom: 1em;
  font-size: 14.5px;
  line-height: 1.5;
  font-style: normal;
  font-weight: 400;
  color: var(--graphite);
  text-align: left;
}

.xp-claude-formal-verification .v-sn__n {
  color: var(--blue);
  font-weight: 600;
  margin-right: 0.25em;
  font-size: 0.85em;
  vertical-align: 0.25em;
}

.xp-claude-formal-verification .v-cite {
  text-decoration: none;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.xp-claude-formal-verification .v-cite:hover {
  text-decoration: underline;
}

.xp-claude-formal-verification .v-wide {
  width: 100%;
}

/* ---- head --------------------------------------------------------------- */

.xp-claude-formal-verification .v-head {
  padding-bottom: 2.5rem;
}

.xp-claude-formal-verification .v-title {
  max-width: 15.5em;
  margin: 0 0 1.75rem;
  font-family: var(--serif);
  font-size: 54px;
  line-height: 1.06;
  font-weight: 600;
  letter-spacing: -0.012em;
  text-wrap: balance;
  color: var(--ink);
}

.xp-claude-formal-verification .v-abstract {
  font-size: 19px;
}

.xp-claude-formal-verification .v-runin {
  font-weight: 700;
  margin-right: 0.3em;
}

.xp-claude-formal-verification .v-display {
  position: relative;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 1rem;
  margin: 2.2rem 0 1.8rem;
  padding: 1.1rem 3.2rem;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  font-size: 24px;
  line-height: 1.4;
  text-align: center;
  white-space: nowrap;
}

.xp-claude-formal-verification .v-display__math i {
  font-style: italic;
}

.xp-claude-formal-verification .v-op {
  color: var(--blue);
  padding: 0 0.04em;
}

.xp-claude-formal-verification .v-fn {
  font-style: normal;
  letter-spacing: 0.01em;
}

.xp-claude-formal-verification .v-display__tag {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 19px;
  color: var(--graphite);
}

.xp-claude-formal-verification .v-after-display {
  color: var(--ink);
}

.xp-claude-formal-verification .v-short {
  margin-top: 2rem;
  padding: 1.4rem 1.6rem 1.5rem;
  background: var(--sheet);
  border: 1px solid var(--rule);
  border-top: 3px solid var(--blue);
}

.xp-claude-formal-verification .v-short__h {
  margin: 0 0 0.5rem;
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--blue-deep);
}

.xp-claude-formal-verification .v-short p {
  font-size: 19.5px;
  line-height: 1.6;
}

/* ---- figures ------------------------------------------------------------ */

.xp-claude-formal-verification .v-video {
  margin: 0 0 3.5rem;
}

.xp-claude-formal-verification .v-video__frame {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #0f1115;
  border: 1px solid var(--rule);
}

.xp-claude-formal-verification .v-video__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.xp-claude-formal-verification figcaption {
  max-width: var(--main);
  margin-top: 0.8rem;
  font-size: 15.5px;
  line-height: 1.5;
  color: var(--graphite);
}

.xp-claude-formal-verification .v-figlabel {
  font-weight: 700;
  color: var(--ink);
  margin-right: 0.2em;
}

.xp-claude-formal-verification .v-fig {
  margin: 2.6rem 0 2.8rem;
}

/* ---- sections ----------------------------------------------------------- */

.xp-claude-formal-verification .v-sec {
  padding-top: 1.5rem;
  margin-top: 1.5rem;
}

.xp-claude-formal-verification .v-sec::after {
  content: "";
  display: block;
  clear: both;
}

.xp-claude-formal-verification .v-sec--cont {
  padding-top: 0;
  margin-top: 0;
}

.xp-claude-formal-verification .v-sec h2 {
  display: flex;
  align-items: baseline;
  gap: 0.7em;
  margin: 0 0 1.1rem;
  padding-top: 1.3rem;
  border-top: 1px solid var(--rule);
  font-family: var(--serif);
  font-size: 30px;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: -0.005em;
  color: var(--ink);
}

.xp-claude-formal-verification .v-secnum {
  min-width: 0.9em;
  color: var(--blue);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.xp-claude-formal-verification .v-sec h3 {
  margin: 2rem 0 0.7rem;
  font-family: var(--serif);
  font-size: 21px;
  line-height: 1.3;
  font-weight: 700;
  color: var(--ink);
}

.xp-claude-formal-verification .v-code {
  margin: 1.3rem 0 1.4rem;
  padding: 1rem 1.25rem;
  background: var(--sheet);
  border: 1px solid var(--rule);
  border-left: 3px solid var(--red);
  font-family: var(--mono);
  font-size: 20px;
  line-height: 1.4;
  overflow-x: auto;
}

.xp-claude-formal-verification .v-code code {
  font-size: inherit;
  background: none;
  padding: 0;
}

.xp-claude-formal-verification .v-ln {
  display: inline-block;
  width: 2em;
  color: #8a8f99;
  user-select: none;
}

.xp-claude-formal-verification .v-kw {
  color: var(--blue-deep);
  font-weight: 500;
}

/* ---- figure 1: the demo ------------------------------------------------- */

.xp-claude-formal-verification .v-demo {
  padding: 28px 32px 30px;
  background: var(--sheet);
  border: 1px solid var(--rule);
}

.xp-claude-formal-verification .v-switch {
  display: inline-grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--rule);
  border-radius: 6px;
  padding: 3px;
  gap: 3px;
  background: var(--wash);
}

.xp-claude-formal-verification .v-switch__opt {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.1rem;
  padding: 0.5rem 1rem 0.55rem;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  color: var(--graphite);
  font: inherit;
  cursor: pointer;
  text-align: left;
}

.xp-claude-formal-verification .v-switch__opt code {
  background: none;
  padding: 0;
  font-size: 15px;
  color: inherit;
}

.xp-claude-formal-verification .v-switch__label {
  font-size: 14px;
  font-style: italic;
  line-height: 1.3;
}

.xp-claude-formal-verification .v-switch__opt[aria-checked="true"] {
  background: var(--sheet);
  border-color: var(--rule);
  color: var(--ink);
  box-shadow: 0 1px 0 rgba(26, 28, 33, 0.06);
}

.xp-claude-formal-verification .v-switch__opt[aria-checked="true"] code {
  color: var(--blue-deep);
}

.xp-claude-formal-verification .v-size {
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin: 1.6rem 0 0.4rem;
}

.xp-claude-formal-verification .v-size__label {
  font-style: italic;
  color: var(--graphite);
  font-size: 17px;
}

.xp-claude-formal-verification .v-size__out {
  font-size: 40px;
  line-height: 1.1;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

.xp-claude-formal-verification .v-size__unit {
  color: var(--graphite);
  font-size: 17px;
}

.xp-claude-formal-verification .v-range {
  -webkit-appearance: none;
  appearance: none;
  display: block;
  width: 100%;
  height: 28px;
  margin: 0.2rem 0 0.4rem;
  background: transparent;
  cursor: pointer;
}

.xp-claude-formal-verification .v-range::-webkit-slider-runnable-track {
  height: 4px;
  border-radius: 2px;
  background: var(--rule);
}

.xp-claude-formal-verification .v-range::-moz-range-track {
  height: 4px;
  border-radius: 2px;
  background: var(--rule);
}

.xp-claude-formal-verification .v-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 20px;
  height: 20px;
  margin-top: -8px;
  border-radius: 50%;
  background: var(--blue);
  border: 3px solid var(--sheet);
  box-shadow: 0 0 0 1px var(--blue);
}

.xp-claude-formal-verification .v-range::-moz-range-thumb {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--blue);
  border: 3px solid var(--sheet);
  box-shadow: 0 0 0 1px var(--blue);
}

.xp-claude-formal-verification .v-presets {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 1.6rem;
}

.xp-claude-formal-verification .v-presets button,
.xp-claude-formal-verification .v-btn {
  font: inherit;
  cursor: pointer;
}

.xp-claude-formal-verification .v-presets button {
  padding: 0.22rem 0.6rem;
  border: 1px solid var(--rule);
  border-radius: 4px;
  background: var(--sheet);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

.xp-claude-formal-verification .v-presets button:hover {
  border-color: var(--blue);
  color: var(--blue-deep);
}

.xp-claude-formal-verification .v-presets button[aria-pressed="true"] {
  border-color: var(--blue);
  background: var(--blue-tint);
  color: var(--blue-deep);
}

/* the size axis */
.xp-claude-formal-verification .v-axis__track {
  position: relative;
  height: 34px;
  background: var(--wash);
  border: 1px solid var(--rule);
  overflow: visible;
}

.xp-claude-formal-verification .v-axis__danger {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  right: 0;
  background:
    repeating-linear-gradient(135deg, var(--red-tint) 0 6px, #f3cdc6 6px 8px);
  border-left: 2px solid var(--red);
  transition: opacity 240ms ease;
}

.xp-claude-formal-verification .v-axis__track::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 4px;
  background: var(--blue);
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.xp-claude-formal-verification .v-demo.is-fixed .v-axis__track::after {
  transform: scaleX(1);
}

.xp-claude-formal-verification .v-demo.is-fixed .v-axis__danger {
  opacity: 0;
}

.xp-claude-formal-verification .v-axis__tested {
  position: absolute;
  top: -6px;
  bottom: -6px;
  left: 0;
  width: 3px;
  background: var(--blue);
}

.xp-claude-formal-verification .v-axis__marker {
  position: absolute;
  top: -10px;
  bottom: -10px;
  width: 2px;
  margin-left: -1px;
  background: var(--ink);
  left: 0;
}

.xp-claude-formal-verification .v-axis__marker::before {
  content: "";
  position: absolute;
  top: -1px;
  left: -5px;
  border: 6px solid transparent;
  border-top-color: var(--ink);
  border-bottom: 0;
}

.xp-claude-formal-verification .v-axis__ticks {
  position: relative;
  display: flex;
  justify-content: space-between;
  margin-top: 0.55rem;
  font-size: 14px;
  color: var(--graphite);
  font-variant-numeric: tabular-nums;
}

.xp-claude-formal-verification .v-axis__keys {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 1.6rem;
  margin-top: 0.6rem;
  font-size: 14.5px;
  line-height: 1.4;
  color: var(--graphite);
}

.xp-claude-formal-verification .v-key {
  position: relative;
  padding-left: 1.2rem;
}

.xp-claude-formal-verification .v-key::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.3em;
  width: 0.8rem;
  height: 0.8rem;
}

.xp-claude-formal-verification .v-key--tested::before {
  width: 3px;
  left: 0.3rem;
  background: var(--blue);
}

.xp-claude-formal-verification .v-key--danger::before {
  background: repeating-linear-gradient(135deg, var(--red-tint) 0 3px, #eeb9b0 3px 4px);
  border: 1px solid var(--red);
}

.xp-claude-formal-verification .v-demo.is-fixed .v-key--danger::before {
  background: var(--blue);
  border-color: var(--blue);
  height: 4px;
  top: 0.6em;
}

/* the trace */
.xp-claude-formal-verification .v-trace {
  margin: 1.8rem 0 1.6rem;
  padding: 1.1rem 1.25rem 1.2rem;
  background: var(--paper);
  border: 1px solid var(--rule-soft);
}

.xp-claude-formal-verification .v-trace__head {
  margin-bottom: 0.6rem;
  font-size: 16.5px;
  color: var(--ink);
}

.xp-claude-formal-verification .v-trace__head code {
  font-size: 0.86em;
}

.xp-claude-formal-verification .v-trace__rows {
  display: grid;
  grid-template-columns: max-content max-content 1fr;
  column-gap: 1.4rem;
  row-gap: 0.35rem;
  align-items: baseline;
}

.xp-claude-formal-verification .v-trace__k {
  font-family: var(--mono);
  font-size: 14.5px;
  color: var(--graphite);
}

.xp-claude-formal-verification .v-trace__v {
  font-family: var(--mono);
  font-size: 17px;
  font-weight: 500;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.xp-claude-formal-verification .v-trace__n {
  font-size: 15.5px;
  color: var(--graphite);
  font-style: italic;
}

.xp-claude-formal-verification .v-trace__v.is-bad {
  color: var(--red);
}

.xp-claude-formal-verification .v-trace__status {
  margin-top: 0.85rem;
  padding-top: 0.7rem;
  border-top: 1px solid var(--rule-soft);
  font-size: 17px;
  font-weight: 600;
}

.xp-claude-formal-verification .v-trace__status.is-bad {
  color: var(--red);
}

.xp-claude-formal-verification .v-trace__status.is-ok {
  color: var(--blue-deep);
}

/* the two verdicts */
.xp-claude-formal-verification .v-verdicts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.2rem;
}

.xp-claude-formal-verification .v-verdict {
  padding: 1.1rem 1.25rem 1.2rem;
  border: 1px solid var(--rule);
  border-top-width: 3px;
}

.xp-claude-formal-verification .v-verdict--test {
  border-top-color: var(--graphite);
}

.xp-claude-formal-verification .v-verdict--proof {
  border-top-color: var(--blue);
}

.xp-claude-formal-verification .v-verdict h3 {
  margin: 0 0 0.35rem;
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 700;
  line-height: 1.3;
}

.xp-claude-formal-verification .v-verdict__what {
  font-size: 15.5px;
  line-height: 1.5;
  color: var(--graphite);
  margin-bottom: 0.85rem;
}

.xp-claude-formal-verification .v-btn {
  padding: 0.5rem 1rem;
  border: 1px solid var(--blue);
  border-radius: 4px;
  background: var(--blue);
  color: #fff;
  font-size: 16px;
  font-weight: 600;
}

.xp-claude-formal-verification .v-btn:hover {
  background: var(--blue-deep);
}

.xp-claude-formal-verification .v-btn[disabled] {
  opacity: 0.6;
  cursor: progress;
}

.xp-claude-formal-verification .v-meter {
  height: 3px;
  margin: 0.9rem 0 0.6rem;
  background: var(--rule-soft);
}

.xp-claude-formal-verification .v-meter__fill {
  height: 100%;
  width: 0;
  background: var(--graphite);
}

.xp-claude-formal-verification .v-verdict__result,
.xp-claude-formal-verification .v-verdict__proof {
  font-size: 16px;
  line-height: 1.5;
}

.xp-claude-formal-verification .v-verdict__result strong,
.xp-claude-formal-verification .v-verdict__proof strong {
  font-size: 17px;
}

.xp-claude-formal-verification .v-verdict__proof .is-bad {
  color: var(--red);
}

.xp-claude-formal-verification .v-verdict__proof .is-ok {
  color: var(--blue-deep);
}

.xp-claude-formal-verification .v-verdict__proof p + p {
  margin-top: 0.5rem;
}

.xp-claude-formal-verification .v-verdict__proof code,
.xp-claude-formal-verification .v-verdict__result code {
  white-space: normal;
}

/* ---- figure 2: coverage ------------------------------------------------- */

.xp-claude-formal-verification .v-cover {
  display: grid;
  grid-template-columns: minmax(0, 440px) minmax(0, 1fr);
  gap: 36px;
  align-items: start;
  padding: 28px 32px 30px;
  background: var(--sheet);
  border: 1px solid var(--rule);
}

.xp-claude-formal-verification .v-cover__plot {
  position: relative;
  padding: 0 0 22px 22px;
}

.xp-claude-formal-verification .v-cover__svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: hidden;
  font-family: var(--serif);
}

.xp-claude-formal-verification .v-cover__ylab,
.xp-claude-formal-verification .v-cover__xlab {
  position: absolute;
  font-family: var(--mono);
  font-size: 13px;
  color: var(--graphite);
}

.xp-claude-formal-verification .v-cover__ylab {
  left: 0;
  top: 50%;
  transform: rotate(-90deg) translateX(50%);
  transform-origin: left top;
}

.xp-claude-formal-verification .v-cover__xlab {
  bottom: 0;
  left: 50%;
}

.xp-claude-formal-verification .v-cover__zlabel {
  display: block;
  font-style: italic;
  color: var(--graphite);
  font-size: 17px;
}

.xp-claude-formal-verification .v-cover__zout {
  display: block;
  font-size: 34px;
  line-height: 1.1;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.xp-claude-formal-verification .v-cover__stats {
  margin: 1.1rem 0 1rem;
  border-top: 1px solid var(--rule-soft);
}

.xp-claude-formal-verification .v-cover__stats > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid var(--rule-soft);
  font-size: 16px;
}

.xp-claude-formal-verification .v-cover__stats dt {
  color: var(--graphite);
}

.xp-claude-formal-verification .v-cover__stats dd {
  margin: 0;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.xp-claude-formal-verification .v-cover__note {
  min-height: 4.5em;
  font-size: 16.5px;
  line-height: 1.5;
}

.xp-claude-formal-verification .v-cover__legend {
  list-style: none;
  margin-top: 1rem;
  font-size: 14.5px;
  line-height: 1.4;
  color: var(--graphite);
}

.xp-claude-formal-verification .v-cover__legend li {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-top: 0.35rem;
}

.xp-claude-formal-verification .v-sw {
  flex: none;
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 1px solid var(--rule);
}

.xp-claude-formal-verification .v-sw--all {
  background: #eef1f6;
  border-color: #b9c2d3;
}

.xp-claude-formal-verification .v-sw--red {
  background: repeating-linear-gradient(135deg, var(--red-tint) 0 3px, #eeb9b0 3px 4px);
  border-color: var(--red);
}

.xp-claude-formal-verification .v-sw--dot {
  width: 8px;
  height: 8px;
  margin: 0 3px;
  border-radius: 50%;
  background: var(--blue);
  border: 0;
}

.xp-claude-formal-verification .v-cover__svg .c-all {
  fill: #eef1f6;
  stroke: #9aa6bd;
  stroke-width: 1;
}

.xp-claude-formal-verification .v-cover__svg .c-red {
  fill: url(#v-hatch);
  stroke: var(--red);
  stroke-width: 1.25;
}

.xp-claude-formal-verification .v-cover__svg .c-tested {
  fill: rgba(31, 75, 209, 0.08);
  stroke: var(--blue);
  stroke-width: 1;
  stroke-dasharray: 3 3;
}

.xp-claude-formal-verification .v-cover__svg .c-dot {
  fill: var(--blue);
  fill-opacity: 0.7;
}

.xp-claude-formal-verification .v-cover__svg .c-frame {
  fill: none;
  stroke: var(--rule);
}

.xp-claude-formal-verification .v-cover__svg .c-grid {
  stroke: var(--rule-soft);
  stroke-width: 1;
}

.xp-claude-formal-verification .v-cover__svg .c-tick {
  fill: var(--graphite);
  font-size: 12px;
  font-family: var(--mono);
}

.xp-claude-formal-verification .v-cover__svg .c-ring {
  fill: none;
  stroke: var(--blue);
  stroke-width: 1.5;
}

.xp-claude-formal-verification .v-cover__svg .c-ringlabel {
  fill: var(--blue-deep);
  font-size: 15px;
  font-style: italic;
}

/* ---- pipeline steps ----------------------------------------------------- */

.xp-claude-formal-verification .v-steps {
  list-style: none;
  counter-reset: v-step;
  margin-top: 1.4rem;
}

.xp-claude-formal-verification .v-steps li {
  position: relative;
  counter-increment: v-step;
  padding: 0 0 1.2rem 3rem;
}

.xp-claude-formal-verification .v-steps li::before {
  content: counter(v-step);
  position: absolute;
  left: 0;
  top: 0.05em;
  width: 1.8rem;
  height: 1.8rem;
  border: 1.5px solid var(--blue);
  border-radius: 50%;
  background: var(--paper);
  color: var(--blue-deep);
  font-size: 16px;
  font-weight: 700;
  line-height: calc(1.8rem - 3px);
  text-align: center;
  z-index: 1;
}

.xp-claude-formal-verification .v-steps li::after {
  content: "";
  position: absolute;
  left: calc(0.9rem - 0.5px);
  top: 1.9rem;
  bottom: 0.1rem;
  width: 1px;
  background: var(--rule);
}

.xp-claude-formal-verification .v-steps li:last-child::after {
  display: none;
}

.xp-claude-formal-verification .v-steps__t {
  font-weight: 600;
}

/* ---- section 3 ---------------------------------------------------------- */

.xp-claude-formal-verification .v-thm {
  margin: 0.4rem 0 1.6rem;
  padding: 0.2rem 0 0.2rem 1.3rem;
  border-left: 3px solid var(--blue);
}

.xp-claude-formal-verification .v-thm em {
  font-style: italic;
}

.xp-claude-formal-verification .v-thm__h {
  font-weight: 700;
  font-style: normal;
}

.xp-claude-formal-verification .v-thm__src {
  font-style: normal;
  color: var(--graphite);
}

.xp-claude-formal-verification .v-list {
  list-style: none;
}

.xp-claude-formal-verification .v-list li {
  position: relative;
  padding-left: 1.4rem;
}

.xp-claude-formal-verification .v-list li + li {
  margin-top: 0.55rem;
}

.xp-claude-formal-verification .v-list li::before {
  content: "";
  position: absolute;
  left: 0.15rem;
  top: 0.62em;
  width: 6px;
  height: 6px;
  background: var(--blue);
}

.xp-claude-formal-verification .v-list--remarks li::before {
  background: none;
  border: 1.5px solid var(--red);
  width: 7px;
  height: 7px;
}

.xp-claude-formal-verification .v-pull {
  margin: 2.2rem 0 0.6rem;
  padding: 1.2rem 0 0;
  border-top: 1px solid var(--rule);
}

.xp-claude-formal-verification .v-pull p {
  font-size: 32px;
  line-height: 1.22;
  font-style: italic;
  font-weight: 500;
  color: var(--ink);
}

.xp-claude-formal-verification .v-pull footer {
  margin-top: 0.5rem;
  font-size: 15.5px;
  color: var(--graphite);
}

/* ---- section 4 ---------------------------------------------------------- */

.xp-claude-formal-verification .v-results {
  margin: 1.3rem 0 1.6rem;
  border-top: 1px solid var(--rule);
}

.xp-claude-formal-verification .v-results > div {
  display: grid;
  grid-template-columns: 13rem 1fr;
  gap: 1.2rem;
  padding: 0.8rem 0;
  border-bottom: 1px solid var(--rule);
}

.xp-claude-formal-verification .v-results dt {
  font-style: italic;
  color: var(--graphite);
  font-size: 17px;
  line-height: 1.45;
}

.xp-claude-formal-verification .v-results dd {
  margin: 0;
}

.xp-claude-formal-verification .v-results > div {
  position: relative;
}

.xp-claude-formal-verification .v-results .v-sn {
  position: absolute;
  top: 0.95rem;
  right: calc(-1 * (var(--margin) + var(--gap)));
  float: none;
  margin: 0;
}

.xp-claude-formal-verification .v-results dd code {
  white-space: normal;
}

.xp-claude-formal-verification .v-proof {
  margin-top: 1.1rem;
  padding: 1.1rem 1.3rem 1.2rem;
  background: var(--sheet);
  border: 1px solid var(--rule);
}

.xp-claude-formal-verification .v-proof p + p {
  margin-top: 0.7rem;
}

.xp-claude-formal-verification .v-proof__h {
  font-weight: 700;
}

.xp-claude-formal-verification .v-proof__h--it {
  font-style: italic;
  font-weight: 600;
}

.xp-claude-formal-verification .v-qed {
  float: right;
  margin-left: 1rem;
  color: var(--blue);
  font-style: normal;
  font-size: 1.15em;
  line-height: 1.4;
}

/* ---- reactions ---------------------------------------------------------- */

.xp-claude-formal-verification .v-react {
  padding: 0.2rem 0 0 1.3rem;
  border-left: 1px solid var(--rule);
}

.xp-claude-formal-verification .v-react + .v-react {
  margin-top: 1.9rem;
}

.xp-claude-formal-verification .v-react blockquote p {
  font-size: 22px;
  line-height: 1.42;
  font-style: italic;
}

.xp-claude-formal-verification .v-react__who {
  margin-top: 0.55rem;
  font-size: 16px;
  line-height: 1.55;
  color: var(--graphite);
}

.xp-claude-formal-verification .v-react__who strong {
  color: var(--ink);
}

/* ---- timeline ----------------------------------------------------------- */

.xp-claude-formal-verification .v-time {
  list-style: none;
  border-top: 1px solid var(--rule);
}

.xp-claude-formal-verification .v-time li {
  display: grid;
  grid-template-columns: 8.5rem 1fr;
  gap: 1.2rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--rule);
}

.xp-claude-formal-verification .v-time__d {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--blue-deep);
  font-size: 17px;
  line-height: 1.55;
}

/* ---- questions ---------------------------------------------------------- */

.xp-claude-formal-verification .v-faq {
  border-top: 1px solid var(--rule);
}

.xp-claude-formal-verification .v-faq details {
  border-bottom: 1px solid var(--rule);
}

.xp-claude-formal-verification .v-faq summary {
  position: relative;
  list-style: none;
  padding: 0.85rem 2.4rem 0.85rem 0;
  font-weight: 600;
  cursor: pointer;
}

.xp-claude-formal-verification .v-faq summary::-webkit-details-marker {
  display: none;
}

.xp-claude-formal-verification .v-faq summary::after {
  content: "+";
  position: absolute;
  right: 0.3rem;
  top: 0.7rem;
  color: var(--blue);
  font-size: 24px;
  line-height: 1;
  font-weight: 400;
  transition: transform 180ms ease;
}

.xp-claude-formal-verification .v-faq details[open] summary::after {
  transform: rotate(45deg);
}

.xp-claude-formal-verification .v-faq details p {
  padding: 0 0 1.1rem;
  color: var(--ink);
}

/* ---- updates and references --------------------------------------------- */

.xp-claude-formal-verification .v-updates {
  list-style: none;
}

.xp-claude-formal-verification .v-updates li {
  display: grid;
  grid-template-columns: 8.5rem 1fr;
  gap: 1.2rem;
}

.xp-claude-formal-verification .v-updates time {
  font-weight: 700;
  color: var(--blue-deep);
  font-size: 17px;
  line-height: 1.55;
}

.xp-claude-formal-verification .v-refs h2 {
  font-size: 24px;
}

.xp-claude-formal-verification .v-reflist {
  list-style: none;
  counter-reset: v-ref;
  font-size: 16.5px;
  line-height: 1.55;
}

.xp-claude-formal-verification .v-reflist li {
  position: relative;
  counter-increment: v-ref;
  padding-left: 2.6rem;
  scroll-margin-top: 2rem;
}

.xp-claude-formal-verification .v-reflist li + li {
  margin-top: 0.55rem;
}

.xp-claude-formal-verification .v-reflist li::before {
  content: "[" counter(v-ref) "]";
  position: absolute;
  left: 0;
  color: var(--blue);
  font-variant-numeric: tabular-nums;
}

.xp-claude-formal-verification .v-reflist li:target {
  background: var(--blue-tint);
  outline: 4px solid var(--blue-tint);
}

/* ---- narrower screens: notes come inline -------------------------------- */

@media (max-width: 1020px) {
  .xp-claude-formal-verification {
    max-width: var(--main);
  }

  .xp-claude-formal-verification .v-sn,
  .xp-claude-formal-verification .v-results .v-sn {
    position: static;
    float: none;
    display: block;
    width: auto;
    margin: 0.7rem 0 0.9rem;
    padding: 0.1rem 0 0.1rem 0.9rem;
    border-left: 2px solid var(--blue-tint);
  }

  .xp-claude-formal-verification .v-cover {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .xp-claude-formal-verification .v-cover__plot {
    max-width: 460px;
  }
}

@media (max-width: 640px) {
  .xp-claude-formal-verification {
    padding: 1.5rem 16px 0.5rem;
    font-size: 17.5px;
    line-height: 1.6;
  }

  .xp-claude-formal-verification .v-title {
    font-size: 35px;
    line-height: 1.1;
    margin-bottom: 1.3rem;
  }

  .xp-claude-formal-verification .v-abstract,
  .xp-claude-formal-verification .v-short p {
    font-size: 17.5px;
  }

  .xp-claude-formal-verification .v-display {
    white-space: normal;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
    padding: 0.9rem 0.5rem;
    font-size: 20px;
  }

  .xp-claude-formal-verification .v-display__tag {
    position: static;
    transform: none;
    font-size: 16px;
  }

  .xp-claude-formal-verification .v-short {
    padding: 1.1rem 1.1rem 1.2rem;
  }

  .xp-claude-formal-verification .v-sec h2 {
    font-size: 25px;
    gap: 0.55em;
  }

  .xp-claude-formal-verification .v-code {
    font-size: 15.5px;
    padding: 0.85rem 0.9rem;
  }

  .xp-claude-formal-verification .v-demo,
  .xp-claude-formal-verification .v-cover {
    padding: 18px 16px 20px;
    margin-left: -8px;
    margin-right: -8px;
  }

  .xp-claude-formal-verification .v-switch {
    display: grid;
    width: 100%;
  }

  .xp-claude-formal-verification .v-switch__opt {
    padding: 0.45rem 0.6rem 0.5rem;
  }

  .xp-claude-formal-verification .v-switch__opt code {
    font-size: 12.5px;
  }

  .xp-claude-formal-verification .v-size__out {
    font-size: 31px;
  }

  .xp-claude-formal-verification .v-presets button {
    font-size: 12px;
    padding: 0.2rem 0.45rem;
  }

  .xp-claude-formal-verification .v-axis__ticks {
    font-size: 12.5px;
  }

  .xp-claude-formal-verification .v-trace {
    padding: 0.9rem 0.85rem 1rem;
  }

  .xp-claude-formal-verification .v-trace__rows {
    grid-template-columns: max-content 1fr;
    column-gap: 0.9rem;
  }

  .xp-claude-formal-verification .v-trace__k {
    font-size: 13px;
  }

  .xp-claude-formal-verification .v-trace__v {
    font-size: 15px;
  }

  .xp-claude-formal-verification .v-trace__n {
    grid-column: 1 / -1;
    margin: -0.1rem 0 0.35rem;
    font-size: 14.5px;
  }

  .xp-claude-formal-verification .v-verdicts {
    grid-template-columns: 1fr;
  }

  .xp-claude-formal-verification .v-cover__stats > div {
    font-size: 15px;
  }

  .xp-claude-formal-verification .v-results > div,
  .xp-claude-formal-verification .v-time li,
  .xp-claude-formal-verification .v-updates li {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }

  .xp-claude-formal-verification .v-pull p {
    font-size: 26px;
  }

  .xp-claude-formal-verification .v-react blockquote p {
    font-size: 19.5px;
  }

  .xp-claude-formal-verification .v-reflist {
    font-size: 15.5px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .xp-claude-formal-verification *,
  .xp-claude-formal-verification *::before,
  .xp-claude-formal-verification *::after {
    transition: none !important;
    animation: none !important;
  }
}
