/* Universe formation, live figure: the first cell of spacetime. Every rule is scoped under the doubled root class .ufc.ufc.
   Line style carries the meaning (solid inside the cone, dashed on it, dotted outside); colour supplements it: cyan time-like (the
   record's time), ink on the cone, grey space-like (the threshold bars under the slider use the same two as tints, with dashed ink for the
   thresholds, where the interval is 0, and solid ink for the current κ); magenta the chosen history (its entries); green the PROVED tag. Tokens come
   from the page's --uf-* custom properties on any ancestor, with the design-stack values as fallbacks. */
.ufc.ufc {
  --ufc-paper: var(--uf-paper, #faf8f3); --ufc-ink: var(--uf-ink, #1d1d1b); --ufc-body: var(--uf-body, #2a2926);
  --ufc-soft: var(--uf-soft, #3c3a36); --ufc-grey: #6b6a66;
  --ufc-rule: color-mix(in srgb, var(--ufc-ink) 16%, var(--ufc-paper));
  --ufc-faint: color-mix(in srgb, var(--ufc-ink) 9%, var(--ufc-paper));
  --ufc-rec: var(--uf-record, #009fe3); --ufc-rec-text: var(--uf-record-text, #0072b5);
  --ufc-event: var(--uf-event, #e6007e); --ufc-ok: var(--uf-ok, #0b7a3e);
  --ufc-text: "Inter", "InterVariable", -apple-system, "Helvetica Neue", Arial, sans-serif;
  --ufc-display: var(--uf-display, "Inter Display", "InterVariable", "Inter", -apple-system, "Helvetica Neue", Arial, sans-serif);
  --ufc-mono: var(--uf-mono, "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace);
  display: block; position: relative; margin: 0; padding: 0; min-width: 0; max-width: 100%;
  color: var(--ufc-body); font: 420 16px/1.42 var(--ufc-text); font-optical-sizing: auto;
  border: 1px solid var(--ufc-rule); background: transparent; box-sizing: border-box; text-align: left;
}
@media screen and (prefers-color-scheme: dark) {
  .ufc.ufc {
    --ufc-paper: var(--uf-paper, #141413); --ufc-ink: var(--uf-ink, #faf8f3); --ufc-body: var(--uf-body, #e9e6df);
    --ufc-soft: var(--uf-soft, #c9c5bc); --ufc-grey: #a5a29b;
    --ufc-rec: var(--uf-record, #2bb3f0); --ufc-rec-text: var(--uf-record-text, #2bb3f0); --ufc-event: var(--uf-event, #ff3d9e);
    --ufc-ok: var(--uf-ok, #3fb37a);
  }
}
.ufc.ufc *, .ufc.ufc *::before, .ufc.ufc *::after { box-sizing: border-box; }
.ufc.ufc :is(p, span, div, label, button, dl, dt, dd, table) { margin: 0; padding: 0; }
.ufc.ufc .ufc-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.ufc.ufc .ufc-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .2rem 1rem; padding: .7rem 1.1rem;
  border-bottom: 1px solid var(--ufc-rule); font: 700 .7rem/1.5 var(--ufc-mono); letter-spacing: .13em; text-transform: uppercase; color: var(--ufc-ink); }
.ufc.ufc .ufc-sub { color: var(--ufc-soft); font-weight: 400; }
.ufc.ufc .ufc-glabel { font: 700 .68rem/1.4 var(--ufc-mono); letter-spacing: .13em; text-transform: uppercase; color: var(--ufc-soft); margin-bottom: .4rem; }
.ufc.ufc .ufc-sym { text-transform: none; letter-spacing: 0; font-family: var(--ufc-text); font-weight: 650; color: var(--ufc-ink); font-size: 1rem; }
.ufc.ufc sup { font-size: .7em; line-height: 0; vertical-align: .45em; }
.ufc.ufc .ufc-nt { text-transform: none; letter-spacing: 0; font-family: var(--ufc-text); font-size: .82rem; font-weight: 650; color: var(--ufc-ink); }

.ufc.ufc .ufc-ctl { display: block; padding: 1rem 1.1rem .5rem; }
.ufc.ufc .ufc-ctop { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; }
.ufc.ufc .ufc-zones { margin: 0; padding: .1rem 1.1rem .4rem; font-size: .84rem; color: var(--ufc-soft); max-width: 60em; }
.ufc.ufc.ufc-narrow .ufc-zones { padding: .1rem .75rem .35rem; }
.ufc.ufc .ufc-ctl .ufc-glabel { margin: 0; flex: none; min-width: 5.5rem; }
/* the slider is drawn here so its thumb has a known width (20 px, THUMB in fig_cell.js): the threshold bars below share its scale */
.ufc.ufc .ufc-range { -webkit-appearance: none; appearance: none; display: block; width: 100%; height: 2.2rem; margin: .45rem 0 0;
  background: transparent; cursor: pointer; }
.ufc.ufc .ufc-range::-webkit-slider-runnable-track { height: 4px; border-radius: 2px; background: color-mix(in srgb, var(--ufc-ink) 55%, var(--ufc-paper)); }
.ufc.ufc .ufc-range::-moz-range-track { height: 4px; border-radius: 2px; background: color-mix(in srgb, var(--ufc-ink) 55%, var(--ufc-paper)); }
.ufc.ufc .ufc-range::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; box-sizing: border-box; width: 20px; height: 20px;
  margin-top: -8px; border-radius: 50%; background: var(--ufc-ink); border: 3px solid var(--ufc-paper); box-shadow: 0 0 0 1.5px var(--ufc-ink); }
.ufc.ufc .ufc-range::-moz-range-thumb { box-sizing: border-box; width: 20px; height: 20px; border-radius: 50%; background: var(--ufc-ink);
  border: 3px solid var(--ufc-paper); box-shadow: 0 0 0 1.5px var(--ufc-ink); }
.ufc.ufc .ufc-kbar { display: block; max-width: 100%; overflow: visible; margin: .15rem 0 0; }
.ufc.ufc .ufc-kb-sp { fill: color-mix(in srgb, var(--ufc-grey) 24%, var(--ufc-paper)); }
.ufc.ufc .ufc-kb-tl { fill: color-mix(in srgb, var(--ufc-rec) 28%, var(--ufc-paper)); }
.ufc.ufc .ufc-kb-on { stroke: var(--ufc-ink); stroke-width: 2; stroke-dasharray: 4 2.5; }
.ufc.ufc .ufc-kb-tk { stroke: var(--ufc-soft); stroke-width: 1; }
.ufc.ufc .ufc-kb-m { stroke: var(--ufc-ink); stroke-width: 3.5; }
.ufc.ufc .ufc-kb-mh { stroke: var(--ufc-paper); stroke-width: 7.5; }
.ufc.ufc .ufc-kb-l { fill: var(--ufc-soft); font: 700 9.5px var(--ufc-mono); letter-spacing: .1em; }
.ufc.ufc .ufc-kb-ax { fill: var(--ufc-soft); font: 700 11px var(--ufc-text); }
.ufc.ufc .ufc-kb-t { fill: var(--ufc-ink); font: 600 11.5px var(--ufc-text); }
.ufc.ufc .ufc-jumps { display: flex; gap: .35rem; }
.ufc.ufc .ufc-btn { font: 600 .84rem/1.2 var(--ufc-text); color: var(--ufc-ink); background: transparent; border: 1px solid var(--ufc-ink);
  border-radius: 0; padding: .45rem .6rem; cursor: pointer; min-height: 2.75rem; min-width: 2.75rem; -webkit-tap-highlight-color: transparent; }
.ufc.ufc .ufc-btn:hover { background: var(--ufc-faint); }
.ufc.ufc :is(.ufc-btn, .ufc-range):focus-visible { outline: 2px solid var(--ufc-ink); outline-offset: 3px; }

.ufc.ufc .ufc-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 1rem 1.4rem; padding: .8rem 1.1rem .3rem; }
.ufc.ufc.ufc-narrow .ufc-grid { grid-template-columns: minmax(0, 1fr); padding: .7rem .75rem .2rem; }
.ufc.ufc.ufc-narrow .ufc-ctl { padding: .8rem .75rem .45rem; }
.ufc.ufc .ufc-draw, .ufc.ufc .ufc-read { min-width: 0; }
.ufc.ufc .ufc-svg { display: block; max-width: 100%; overflow: visible; }

.ufc.ufc .ufc-tick { fill: var(--ufc-soft); font: 400 11px var(--ufc-mono); }
.ufc.ufc .ufc-edge { stroke-width: 1.6; }
.ufc.ufc .ufc-edge.ufc-in { stroke: var(--ufc-rec); }
.ufc.ufc .ufc-edge.ufc-on { stroke: var(--ufc-ink); stroke-width: 2.2; stroke-dasharray: 8 4; }
.ufc.ufc .ufc-edge.ufc-out { stroke: var(--ufc-grey); stroke-width: 1.8; stroke-dasharray: 1.5 4.5; stroke-linecap: round; }
.ufc.ufc .ufc-diag { stroke-width: 1.4; opacity: 1; }
.ufc.ufc .ufc-diag.ufc-d-in { stroke: var(--ufc-rec); }
.ufc.ufc .ufc-diag.ufc-d-on { stroke: var(--ufc-ink); stroke-dasharray: 6 4; }
.ufc.ufc .ufc-diag.ufc-d-out { stroke: var(--ufc-grey); stroke-dasharray: 1.5 3.5; }
.ufc.ufc .ufc-diagt { fill: var(--ufc-soft); font: 700 10px var(--ufc-mono); letter-spacing: .1em; paint-order: stroke; stroke: var(--ufc-paper); stroke-width: 4px; stroke-linejoin: round; }
.ufc.ufc .ufc-path { fill: none; stroke: var(--ufc-event); stroke-width: 4; stroke-linejoin: round; stroke-linecap: round; opacity: .9; }
.ufc.ufc .ufc-path.ufc-path-out { stroke-dasharray: 0.5 8; stroke-width: 5; }
.ufc.ufc .ufc-node { fill: var(--ufc-paper); stroke: var(--ufc-ink); stroke-width: 1.2; }
.ufc.ufc .ufc-node-end { stroke-width: 2; }
.ufc.ufc .ufc-nl { fill: var(--ufc-ink); font: 700 11px var(--ufc-mono); letter-spacing: .04em; }
.ufc.ufc .ufc-nl-s { font-size: 9.5px; letter-spacing: 0; }
.ufc.ufc .ufc-key { display: flex; flex-wrap: wrap; gap: .2rem 1rem; font-size: .78rem; color: var(--ufc-soft); margin-top: .3rem; }
.ufc.ufc .ufc-key span { display: inline-flex; align-items: center; gap: .35rem; }
.ufc.ufc .ufc-key .ufc-k { flex: none; }
.ufc.ufc .ufc-k { display: inline-block; width: 1.5rem; height: 0; border-top: 2px solid var(--ufc-ink); }
.ufc.ufc .ufc-k-in { border-top-color: var(--ufc-rec); }
.ufc.ufc .ufc-k-on { border-top-style: dashed; }
.ufc.ufc .ufc-k-out { border-top-style: dotted; border-top-color: var(--ufc-grey); }
.ufc.ufc .ufc-k-path { border-top: 4px solid var(--ufc-event); }
.ufc.ufc .ufc-hist { display: flex; align-items: center; gap: .5rem; margin-top: .6rem; }
.ufc.ufc .ufc-hname { flex: 1 1 auto; font: 700 .8rem/1.3 var(--ufc-mono); color: var(--ufc-ink); }

.ufc.ufc .ufc-form { font: 600 1.05rem/1.3 var(--ufc-text); color: var(--ufc-ink); margin-bottom: .6rem; }
.ufc.ufc .ufc-dl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: .35rem .8rem; font-size: .88rem; }
.ufc.ufc .ufc-dl dt { color: var(--ufc-soft); }
.ufc.ufc .ufc-dl dd { color: var(--ufc-ink); font-weight: 600; }
.ufc.ufc .ufc-dl dd.ufc-in { color: var(--ufc-rec-text); }
.ufc.ufc .ufc-tab { border-collapse: collapse; width: 100%; margin-top: .8rem; font-variant-numeric: tabular-nums; font-size: .9rem; }
.ufc.ufc .ufc-tab caption { text-align: left; }
.ufc.ufc .ufc-tab th, .ufc.ufc .ufc-tab td { padding: .25rem .5rem; border-bottom: 1px solid var(--ufc-rule); text-align: right; }
.ufc.ufc .ufc-tab thead th { font: 700 .64rem/1.3 var(--ufc-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ufc-soft); }
.ufc.ufc .ufc-tab thead th sup { text-transform: none; }
.ufc.ufc .ufc-tab td { color: var(--ufc-ink); font-weight: 600; }
.ufc.ufc .ufc-tab th[scope="row"] { color: var(--ufc-ink); font: 700 .8rem/1.3 var(--ufc-mono); }

.ufc.ufc .ufc-verdict { padding: .7rem 1.1rem .4rem; font-size: 1rem; color: var(--ufc-ink); min-height: 3.2em; max-width: 54em; }
.ufc.ufc .ufc-status { padding: .2rem 1.1rem .9rem; font-size: .86rem; color: var(--ufc-soft); max-width: 60em; }
.ufc.ufc .ufc-tagp { font: 700 .66rem/1 var(--ufc-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ufc-ok);
  border: 1px solid var(--ufc-ok); padding: .14rem .3rem; margin-right: .3rem; vertical-align: .1em; }
.ufc.ufc .ufc-cap { padding: .8rem 1.1rem 1rem; border-top: 1px solid var(--ufc-rule); }
.ufc.ufc .ufc-cap p { font-size: .92rem; color: var(--ufc-soft); max-width: 60em; }
.ufc.ufc.ufc-narrow .ufc-verdict { padding: .6rem .75rem .3rem; font-size: .94rem; }
.ufc.ufc.ufc-narrow .ufc-status { padding: .2rem .75rem .8rem; }
.ufc.ufc.ufc-narrow .ufc-cap { padding: .6rem .75rem .8rem; }
.ufc.ufc.ufc-narrow .ufc-head { padding: .55rem .75rem; }

@media (forced-colors: active) {
  .ufc.ufc { forced-color-adjust: none; --ufc-ink: CanvasText; --ufc-body: CanvasText; --ufc-soft: CanvasText; --ufc-grey: GrayText;
    --ufc-paper: Canvas; --ufc-rec: Highlight; --ufc-rec-text: CanvasText; --ufc-event: Highlight; --ufc-ok: CanvasText;
    --ufc-rule: CanvasText; --ufc-faint: Canvas; background: Canvas; color: CanvasText; }
}
@media print {
  /* print on white paper whatever the screen theme: the light values, not the page tokens; break between blocks, not inside them */
  .ufc.ufc { print-color-adjust: exact; -webkit-print-color-adjust: exact;
    --ufc-paper: #faf8f3; --ufc-ink: #1d1d1b; --ufc-body: #2a2926; --ufc-soft: #3c3a36; --ufc-grey: #6b6a66; --ufc-rule: color-mix(in srgb, var(--ufc-ink) 16%, var(--ufc-paper)); --ufc-faint: color-mix(in srgb, var(--ufc-ink) 9%, var(--ufc-paper)); --ufc-rec: #009fe3; --ufc-rec-text: #0072b5; --ufc-event: #e6007e; --ufc-ok: #0b7a3e; }
  /* keep drawings, table rows and short blocks whole; let the big wrappers break (whole-wrapper 'avoid' left near-blank pages) */
  .ufc.ufc svg, .ufc.ufc tr, .ufc.ufc li, .ufc.ufc p, .ufc.ufc dt, .ufc.ufc dd, .ufc.ufc button { break-inside: avoid; }
  .ufc.ufc .ufc-head, .ufc.ufc .ufc-glabel { break-after: avoid; }   /* a header or label stays with what it heads */
  .ufc.ufc .ufc-range { display: none; }
}
.ufc.ufc .ufc-def { font-size: .82rem; color: var(--ufc-soft); margin: -.3rem 0 .6rem; }
.ufc.ufc .ufc-multi { margin-top: .7rem; }
.ufc.ufc .ufc-multi > summary { cursor: pointer; }
.ufc.ufc .ufc-dirs { font-weight: 700; }

/* a visually hidden header keeps its spans inside its 1 px box (their nowrap text otherwise ran past narrow screens, though clipped) */
.ufc.ufc .ufc-sr > span { display: block; width: 1px; overflow: hidden; }
.ufc.ufc .ufc-lead { margin: 0; padding: .9rem 1.1rem 0; font-size: 1rem; line-height: 1.45; color: var(--ufc-ink); max-width: 54em; }
.ufc.ufc.ufc-narrow .ufc-lead { padding: .75rem .75rem 0; font-size: .95rem; }
.ufc.ufc .ufc-kline { flex-basis: 100%; color: var(--ufc-ink); }
