/* Kelsey product illustrations (kmock). Mount: <div data-kmock="answer|label-history|timeline|sources|preemption|signal|regulators|watchlist">.
   Everything is visible by default (final state); hiding only happens under .is-anim, which kmock.js sets while it plays. */

.km {
  --km-bg: #FFFFFF;
  --km-sub: #F7F8FA;
  --km-field: #FFFFFF;
  --km-line: rgba(11, 26, 46, .085);
  --km-line2: rgba(11, 26, 46, .14);
  --km-text: #0A0A0A;
  --km-body: #1F2430;
  --km-muted: #3D4451;
  --km-meta: #5F6878;
  --km-blue: #C2410C;
  --km-on-blue: #FFFFFF;
  --km-blue-soft: rgba(232, 80, 15, .075);
  --km-blue-line: rgba(232, 80, 15, .22);
  --km-hl: rgba(232, 80, 15, .12);
  --km-orange: #FF5A1F;
  --km-orange-soft: rgba(255, 90, 31, .10);
  --km-block: #E3E6EC;
  --km-block-line: #CDD2DB;
  --km-ok: #0B8A4E;
  --km-ring: 0 0 0 1px rgba(11, 26, 46, .075);
  --km-shadow: 0 0 0 1px rgba(11, 26, 46, .07), 0 1px 2px rgba(11, 26, 46, .05), 0 6px 16px -6px rgba(11, 26, 46, .10), 0 30px 60px -24px rgba(11, 26, 46, .24);
  --km-shadow-sm: 0 0 0 1px rgba(11, 26, 46, .07), 0 1px 2px rgba(11, 26, 46, .06), 0 4px 12px -6px rgba(11, 26, 46, .12);
  --km-sans: "Geist", "Helvetica Neue", Arial, sans-serif;
  --km-mono: "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --km-pw: 384px;
  container: km / inline-size;
  display: block;
  color: var(--km-text);
  font-family: var(--km-sans);
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-align: left;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .km:not([data-tone="light"]) {
    --km-bg: #0F1A2C; --km-sub: #0C1626; --km-field: #13203A;
    --km-line: rgba(255, 255, 255, .075); --km-line2: rgba(255, 255, 255, .13);
    --km-text: #F5F7FA; --km-body: #DCE2EB; --km-muted: #B4BCC8; --km-meta: #8F9AAD;
    --km-blue: #FF8A5C; --km-on-blue: #0A0F1A; --km-blue-soft: rgba(255, 138, 92, .12); --km-blue-line: rgba(255, 138, 92, .35);
    --km-hl: rgba(255, 138, 92, .24); --km-orange: #FF6A33; --km-orange-soft: rgba(255, 106, 51, .14);
    --km-block: #26354F; --km-block-line: #384A6B; --km-ok: #3FCB8A;
    --km-ring: 0 0 0 1px rgba(255, 255, 255, .08);
    --km-shadow: 0 0 0 1px rgba(255, 255, 255, .08), inset 0 1px 0 rgba(255, 255, 255, .04), 0 2px 4px rgba(0, 0, 0, .25), 0 30px 70px -20px rgba(0, 0, 0, .65);
    --km-shadow-sm: 0 0 0 1px rgba(255, 255, 255, .08), 0 6px 18px -8px rgba(0, 0, 0, .5);
  }
}
:root[data-theme="dark"] .km:not([data-tone="light"]), .km[data-tone="dark"], [data-tone="dark"] .km {
  --km-bg: #0F1A2C; --km-sub: #0C1626; --km-field: #13203A;
  --km-line: rgba(255, 255, 255, .075); --km-line2: rgba(255, 255, 255, .13);
  --km-text: #F5F7FA; --km-body: #DCE2EB; --km-muted: #B4BCC8; --km-meta: #8F9AAD;
  --km-blue: #FF8A5C; --km-on-blue: #0A0F1A; --km-blue-soft: rgba(255, 138, 92, .12); --km-blue-line: rgba(255, 138, 92, .35);
  --km-hl: rgba(255, 138, 92, .24); --km-orange: #FF6A33; --km-orange-soft: rgba(255, 106, 51, .14);
  --km-block: #26354F; --km-block-line: #384A6B; --km-ok: #3FCB8A;
  --km-ring: 0 0 0 1px rgba(255, 255, 255, .08);
  --km-shadow: 0 0 0 1px rgba(255, 255, 255, .08), inset 0 1px 0 rgba(255, 255, 255, .04), 0 2px 4px rgba(0, 0, 0, .25), 0 30px 70px -20px rgba(0, 0, 0, .65);
  --km-shadow-sm: 0 0 0 1px rgba(255, 255, 255, .08), 0 6px 18px -8px rgba(0, 0, 0, .5);
}
/* navy band: lift the surface a step above #0B1A2E */
.km[data-tone="dark"], [data-tone="dark"] .km { --km-bg: #12203A; --km-sub: #0F1B31; --km-field: #172744; }

.km *, .km *::before, .km *::after { box-sizing: border-box; }
.km :where(p, ol, ul, figure, blockquote, h3) { margin: 0; padding: 0; }
.km ol, .km ul { list-style: none; }
.km svg { display: block; flex: none; }
.km-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.km-mono { font-family: var(--km-mono); }
.km-nw { white-space: nowrap; }

/* ---------- shared bits ---------- */
.km-illu { font-family: var(--km-mono); font-size: 13px; line-height: 1; letter-spacing: .05em; text-transform: uppercase; color: var(--km-meta); white-space: nowrap; }
.km-kick { font-family: var(--km-mono); font-size: 13px; letter-spacing: .07em; text-transform: uppercase; color: var(--km-meta); font-weight: 500; }
.km-dt { display: inline-flex; align-items: center; height: 24px; padding: 0 8px; border-radius: 5px; font-family: var(--km-mono); font-size: 14px; font-weight: 500; letter-spacing: .02em; color: var(--km-muted); background: var(--km-sub); box-shadow: inset 0 0 0 1px var(--km-line2); white-space: nowrap; }
.km-dt.is-warn { color: var(--km-orange); background: var(--km-orange-soft); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--km-orange) 35%, transparent); }
.km-num { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 5px; border-radius: 5px; font-family: var(--km-mono); font-size: 13px; font-weight: 600; line-height: 1; color: var(--km-blue); background: var(--km-blue-soft); box-shadow: inset 0 0 0 1px var(--km-blue-line); transition: background .35s, color .35s, box-shadow .35s; }
.km-btn { all: unset; box-sizing: border-box; display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border-radius: 6px; font-family: var(--km-sans); font-size: 14px; font-weight: 550; color: var(--km-muted); cursor: pointer; box-shadow: inset 0 0 0 1px var(--km-line2); background: var(--km-bg); transition: color .2s, box-shadow .2s, background .2s; }
.km-btn:hover { color: var(--km-text); box-shadow: inset 0 0 0 1px var(--km-meta); }
.km-btn:focus-visible { outline: 2px solid var(--km-blue); outline-offset: 2px; }
.km-btn svg { width: 13px; height: 13px; }
.km-btn [data-i="pause"] { display: none; }
.km:not(.km-live) .km-btn { display: none; }
.km-btn.is-playing [data-i="pause"] { display: block; }
.km-btn.is-playing [data-i="replay"] { display: none; }
@media (pointer: coarse) { .km-btn { height: 36px; padding: 0 12px; } }

/* ---------- product window (answer, preemption) ---------- */
.km-win { position: relative; background: var(--km-bg); border-radius: 10px; box-shadow: var(--km-shadow); overflow: hidden; isolation: isolate; }
.km-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; height: 48px; padding: 0 12px 0 18px; border-bottom: 1px solid var(--km-line); background: var(--km-bg); }
.km-brand { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: 17px; letter-spacing: -.035em; color: var(--km-text); }
.km-brand svg { width: 20px; height: 20px; }
.km-brand .top { fill: currentColor; } .km-brand .low { fill: #FF5A1F; } .km-brand .arm { stroke: currentColor; }
.km-bar-r { display: flex; align-items: center; gap: 12px; }

.km-body { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); transition: opacity .45s ease; }
.km-main { min-width: 0; padding: 20px 16px 24px; transition: transform .8s cubic-bezier(.2, .75, .15, 1); }
.km-panel { min-width: 0; border-top: 1px solid var(--km-line); background: var(--km-sub); padding: 20px 16px 24px; transition: opacity .55s ease, transform .7s cubic-bezier(.2, .75, .15, 1); }
@container km (min-width: 560px) {
  .km-main { padding: 28px 28px 30px; }
  .km-panel { padding: 24px 28px 28px; }
}
@container km (min-width: 820px) {

  .km-body { grid-template-columns: minmax(0, 1fr) var(--km-pw); min-height: 520px; }
  .km-main { padding: 36px 40px 38px; }
  .km-panel { border-top: 0; border-left: 1px solid var(--km-line); padding: 28px 28px 30px; }
}

/* ask box */
.km-ask { display: flex; align-items: flex-start; gap: 12px; padding: 13px 12px 13px 16px; border-radius: 8px; background: var(--km-field); box-shadow: var(--km-shadow-sm); }
.km-ask > svg { width: 18px; height: 18px; margin-top: 3px; color: var(--km-meta); }
.km-q { position: relative; flex: 1; min-width: 0; font-size: 16px; line-height: 1.5; font-weight: 500; letter-spacing: -.01em; color: var(--km-text); }
.km-q-live, .km-q-ph { position: absolute; inset: 0; display: none; }
.km-q-ph { color: var(--km-meta); font-weight: 400; }
.km-caret { display: none; width: 2px; height: 1.15em; margin-left: 1px; vertical-align: -3px; background: var(--km-blue); border-radius: 1px; }
.km-send { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 7px; background: var(--km-blue); color: var(--km-on-blue); transition: background .3s, color .3s; }
.km-send svg { width: 15px; height: 15px; }

/* progress */
.km-prog { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 18px 2px 0; font-size: 14.5px; color: var(--km-muted); transition: opacity .4s; }
.km-prog-l { display: inline-flex; align-items: center; gap: 8px; margin-right: 4px; }
.km-prog-l svg { width: 15px; height: 15px; }
.km-prog-l .km-ok { color: var(--km-ok); }
.km-spin { display: none; width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--km-line2); border-top-color: var(--km-blue); animation: km-spin .8s linear infinite; }
.km-prog-ing { display: none; }
.km-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.km-chip { display: inline-flex; align-items: center; gap: 5px; height: 28px; padding: 0 11px 0 8px; border-radius: 14px; font-size: 14px; font-weight: 500; color: var(--km-muted); background: var(--km-bg); box-shadow: inset 0 0 0 1px var(--km-line2); transition: opacity .35s, transform .35s; }
.km-chip svg { width: 13px; height: 13px; color: var(--km-ok); }

/* answer */
.km-ans { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--km-line); }
.km-ans-k { display: flex; align-items: center; gap: 8px; transition: opacity .4s; }
.km-ans-k::before { content: ""; width: 6px; height: 6px; border-radius: 2px; background: var(--km-blue); }
.km-p { margin-top: 12px; font-size: 16px; line-height: 1.62; color: var(--km-body); text-wrap: pretty; }
.km-p em { font-style: italic; }

.km-w { white-space: nowrap; transition: opacity .38s ease, filter .38s ease; }
.km-cn { margin: 0 1px 0 3px; vertical-align: 1.5px; }
.km-cn.is-hot, .km-src li.is-hot .km-num { background: var(--km-blue); color: var(--km-on-blue); box-shadow: 0 0 0 3px var(--km-blue-soft); }

.km-src { margin-top: 20px; display: grid; gap: 2px; }
.km-src li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 2px 8px; align-items: start; padding: 9px 10px; margin: 0 -10px; border-radius: 6px; font-size: 15px; line-height: 1.4; transition: opacity .4s ease, transform .4s ease, background .35s; transition-delay: calc(var(--i, 0) * 90ms), calc(var(--i, 0) * 90ms), 0s; }
.km-src li .km-num { margin-top: 0; }
.km-src-t { font-weight: 550; color: var(--km-text); }
.km-src-m { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; grid-column: 2; font-family: var(--km-mono); font-size: 14px; color: var(--km-meta); }
.km-src li.is-hot { background: var(--km-blue-soft); }
@container km (min-width: 560px) {
  .km-src li { grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; }
  .km-src-m { grid-column: 3; justify-content: flex-end; }
}

/* source panel */
.km-pan-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.km-pan-h .km-kick { display: inline-flex; align-items: center; gap: 8px; }
.km-pan-x { display: flex; gap: 4px; color: var(--km-meta); }
.km-pan-x span { display: inline-flex; width: 26px; height: 26px; align-items: center; justify-content: center; border-radius: 6px; }
.km-pan-x svg { width: 14px; height: 14px; }
.km-pan-t { margin-top: 14px; font-size: 17px; font-weight: 650; letter-spacing: -.02em; line-height: 1.3; color: var(--km-text); text-wrap: balance; }
.km-pan-s { margin-top: 6px; font-size: 14px; color: var(--km-meta); }
.km-doc { position: relative; margin-top: 18px; padding: 18px 18px 22px; border-radius: 8px; background: var(--km-bg); box-shadow: var(--km-shadow-sm); overflow: hidden; }
.km-doc-sec { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.km-doc-sec b { font-size: 15px; font-weight: 650; letter-spacing: -.01em; color: var(--km-text); }
.km-doc-p { font-size: 15px; line-height: 1.65; color: var(--km-muted); }
.km-doc-p + .km-doc-sec { margin-top: 16px; }
.km-doc-p sup { font-size: .6em; }
.km-mark { color: var(--km-text); background: linear-gradient(var(--km-hl), var(--km-hl)) no-repeat 0 0 / 100% 100%; box-shadow: none; padding: 1px 0; border-radius: 2px; transition: background-size 1.1s cubic-bezier(.4, 0, .2, 1); }
@container km (max-width: 559px) {
  .km-doc.is-fade { max-height: var(--cap, 232px); }
  .km-doc.is-fade::after { content: ""; position: absolute; inset: auto 0 0; height: 44px; background: linear-gradient(transparent, var(--km-bg)); pointer-events: none; }
}
.km-doc-q { color: var(--km-muted); }
.km-doc-tag { font-family: var(--km-mono); font-size: 13px; letter-spacing: .05em; text-transform: uppercase; color: var(--km-meta); padding: 3px 6px; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--km-line2); }

/* ---------- cards ---------- */
.km-card { position: relative; background: var(--km-bg); border-radius: 10px; box-shadow: var(--km-shadow); padding: 20px 18px 22px; overflow: hidden; }
@container km (min-width: 520px) { .km-card { padding: 26px 28px 28px; } }
.km-card-h { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.km-card-t { margin-top: 10px; font-size: 19px; font-weight: 700; letter-spacing: -.025em; line-height: 1.2; color: var(--km-text); text-wrap: balance; }
.km-card-s { margin-top: 6px; font-size: 15px; color: var(--km-muted); }
@container km (min-width: 520px) { .km-card-t { font-size: 21px; } }

/* label history */
.km-lh-track { position: relative; margin-top: 26px; padding-top: 26px; }
.km-lh-track { --g: 4px; }
.km-lh-blocks { display: flex; gap: var(--g); align-items: flex-end; }
@container km (min-width: 520px) { .km-lh-track { --g: 6px; } }
.km-lh-b { position: relative; flex: 1; height: 40px; border-radius: 4px; background: var(--km-block); box-shadow: inset 0 0 0 1px var(--km-block-line); overflow: hidden; transition: background .45s ease, box-shadow .45s ease, transform .45s ease; }
.km-lh-b::before, .km-lh-b::after { content: ""; position: absolute; left: 22%; right: 22%; height: 2px; border-radius: 1px; background: var(--km-block-line); }
.km-lh-b::before { top: 30%; } .km-lh-b::after { top: 52%; right: 38%; }
.km-lh-b.is-w { background: var(--km-orange); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--km-orange) 80%, #000); }
.km-lh-b.is-w::before, .km-lh-b.is-w::after { background: rgba(255, 255, 255, .55); }
.km-lh-cut { position: absolute; top: 0; bottom: 22px; width: 2px; margin-left: -1px; background: var(--km-text); border-radius: 1px; transform-origin: bottom; transition: transform .5s cubic-bezier(.2, .75, .15, 1), opacity .3s; }
.km-lh-cut span { position: absolute; top: -2px; left: 8px; font-family: var(--km-mono); font-size: 14px; font-weight: 600; color: var(--km-text); white-space: nowrap; }
.km-lh-axis { position: relative; display: flex; justify-content: space-between; margin-top: 12px; padding-top: 8px; border-top: 1px solid var(--km-line2); font-family: var(--km-mono); font-size: 14px; color: var(--km-meta); }
.km-lh-leg { display: grid; gap: 8px 24px; margin-top: 18px; font-size: 15px; color: var(--km-muted); }
@container km (min-width: 520px) { .km-lh-leg { grid-auto-flow: column; justify-content: start; } }
.km-lh-leg li { display: flex; align-items: center; gap: 9px; }
.km-lh-leg i { width: 12px; height: 12px; border-radius: 3px; background: var(--km-block); box-shadow: inset 0 0 0 1px var(--km-block-line); flex: none; }
.km-lh-leg .is-w i { background: var(--km-orange); box-shadow: none; }
.km-lh-leg b { color: var(--km-text); font-weight: 600; }
.km-quote { margin-top: 20px; padding: 14px 16px 14px 16px; border-radius: 0 6px 6px 0; border-left: 3px solid var(--km-orange); background: var(--km-orange-soft); }
.km-quote p { font-size: 15px; line-height: 1.6; color: var(--km-text); }
.km-quote p sup { font-size: .6em; }
.km-quote footer { margin-top: 8px; font-family: var(--km-mono); font-size: 14px; color: var(--km-muted); }

/* timeline */
.km-tl { position: relative; margin-top: 22px; display: grid; gap: 0; }
.km-tl::before { content: ""; position: absolute; left: 6px; top: 8px; bottom: 8px; width: 2px; background: var(--km-line2); border-radius: 1px; }
.km-tl::after { content: ""; position: absolute; left: 6px; top: 8px; bottom: 8px; width: 2px; background: var(--km-blue); border-radius: 1px; transform-origin: top; transition: transform 1.4s cubic-bezier(.4, 0, .2, 1); }
.km-tl li { position: relative; padding: 0 0 22px 32px; transition: opacity .45s ease, transform .45s ease; }
.km-tl li:last-child { padding-bottom: 0; }
.km-tl-dot { position: absolute; left: 0; top: 3px; width: 14px; height: 14px; border-radius: 50%; background: var(--km-bg); box-shadow: inset 0 0 0 3px var(--km-blue), 0 0 0 4px var(--km-bg); }
.km-tl li.is-w .km-tl-dot { box-shadow: inset 0 0 0 7px var(--km-orange), 0 0 0 4px var(--km-bg); }
.km-tl-d { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-family: var(--km-mono); font-size: 14px; font-weight: 600; color: var(--km-text); }
.km-tl-t { margin-top: 6px; font-size: 16px; line-height: 1.45; color: var(--km-body); }
.km-tl-c { margin-top: 3px; font-size: 14px; color: var(--km-meta); }
@container km (min-width: 600px) {
  .km-tl { grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 26px; }
  .km-tl::before, .km-tl::after { left: 7px; right: 7px; top: 6px; bottom: auto; width: auto; height: 2px; }
  .km-tl::after { transform-origin: left; }
  .km-tl li { padding: 30px 0 0; }
  .km-tl-dot { top: 0; }
}

/* sources */
.km-sl { margin-top: 18px; display: grid; }
.km-sl li { display: grid; grid-template-columns: 36px minmax(0, 1fr) 18px; gap: 12px; align-items: center; padding: 11px 0; border-top: 1px solid var(--km-line); transition: opacity .4s ease, transform .4s ease; }
.km-sl li:first-child { border-top: 0; }
.km-sl-i { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 8px; color: var(--km-blue); background: var(--km-blue-soft); box-shadow: inset 0 0 0 1px var(--km-blue-line); }
.km-sl-i svg { width: 18px; height: 18px; }
.km-sl-n { display: block; font-size: 16px; font-weight: 600; letter-spacing: -.01em; color: var(--km-text); line-height: 1.3; }
.km-sl-d { display: block; margin-top: 1px; font-size: 14px; color: var(--km-meta); line-height: 1.35; }
.km-sl-ok { color: var(--km-ok); transition: opacity .3s ease, transform .35s cubic-bezier(.3, 1.6, .5, 1); }
.km-sl-ok svg { width: 18px; height: 18px; }
@container km (min-width: 720px) {
  .km-sl { grid-template-columns: 1fr 1fr; column-gap: 32px; }
  .km-sl li:nth-child(2) { border-top: 0; }
}

/* signal */
.km-sig-h { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; }
.km-sig-h .km-card-t { margin-top: 0; margin-right: 4px; }
.km-tag2 { font-family: var(--km-mono); font-size: 13px; letter-spacing: .05em; text-transform: uppercase; color: var(--km-muted); padding: 4px 7px; border-radius: 4px; border: 1px dashed var(--km-meta); line-height: 1; }
.km-seg { display: inline-flex; margin-top: 18px; padding: 3px; border-radius: 8px; background: var(--km-sub); box-shadow: inset 0 0 0 1px var(--km-line); max-width: 100%; }
.km-seg button { all: unset; box-sizing: border-box; padding: 7px 12px; min-height: 34px; border-radius: 6px; font-family: var(--km-sans); font-size: 14.5px; font-weight: 550; color: var(--km-muted); cursor: pointer; text-align: center; transition: background .25s, color .25s, box-shadow .25s; }
.km-seg button[aria-pressed="true"] { background: var(--km-bg); color: var(--km-text); box-shadow: var(--km-shadow-sm); }
.km-seg button:focus-visible { outline: 2px solid var(--km-blue); outline-offset: 1px; }
@media (pointer: coarse) { .km-seg button { min-height: 40px; } }
.km-bars { margin-top: 22px; display: grid; gap: 16px; }
.km-bar-r2 { display: grid; gap: 7px; }
.km-bar-l { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; font-size: 15px; }
.km-bar-l b { font-weight: 600; color: var(--km-text); }
.km-bar-l span { font-family: var(--km-mono); font-size: 14px; color: var(--km-meta); }
.km-trk { position: relative; height: 14px; border-radius: 7px; background: var(--km-sub); box-shadow: inset 0 0 0 1px var(--km-line); overflow: hidden; }
.km-fill { position: absolute; inset: 0 auto 0 0; width: var(--w); border-radius: 7px; background: linear-gradient(90deg, color-mix(in srgb, var(--km-blue) 70%, transparent), var(--km-blue)); transition: width .8s cubic-bezier(.2, .75, .15, 1); }
.km-fill.is-base { background: var(--km-block-line); }
.km-sig-note { margin-top: 14px; font-size: 14px; color: var(--km-meta); min-height: 1.4em; }
.km-cap { display: flex; gap: 9px; align-items: flex-start; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--km-line); font-size: 15px; color: var(--km-muted); }
.km-cap svg { width: 16px; height: 16px; margin-top: 2px; color: var(--km-meta); }

/* regulators: two decisions on one axis */
.km-rg { margin-top: 22px; }
.km-rg-trk { position: relative; height: 64px; }
.km-rg-trk::before { content: ""; position: absolute; left: 0; right: 0; bottom: 9px; height: 2px; border-radius: 1px; background: var(--km-line2); }
.km-rg-span { position: absolute; bottom: 8px; height: 4px; border-radius: 2px; background: var(--km-orange); transform-origin: left; transition: transform .9s cubic-bezier(.4, 0, .2, 1); }
.km-rg-span span { position: absolute; left: 50%; bottom: 12px; transform: translateX(-50%); font-family: var(--km-mono); font-size: 14px; font-weight: 600; color: var(--km-text); white-space: nowrap; transition: opacity .4s ease .5s; }
.km-rg-pt { position: absolute; bottom: 0; width: 0; transition: opacity .4s ease, transform .4s ease; }
.km-rg-pt i { position: absolute; left: -10px; bottom: 0; width: 20px; height: 20px; border-radius: 50%; background: var(--km-bg); box-shadow: inset 0 0 0 4px var(--km-text); }
.km-rg-pt.is-w i { box-shadow: inset 0 0 0 10px var(--km-orange), 0 0 0 5px var(--km-orange-soft); }
.km-rg-pt b { position: absolute; bottom: 30px; left: 0; transform: translateX(-50%); font-family: var(--km-mono); font-size: 14px; font-weight: 600; color: var(--km-text); }
.km-rg-span span { bottom: 14px; }
.km-rg-axis { display: flex; justify-content: space-between; margin-top: 8px; font-family: var(--km-mono); font-size: 14px; color: var(--km-meta); }
.km-rg-l { margin-top: 18px; display: grid; }
.km-rg-l li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 12px; align-items: start; padding: 14px 0; border-top: 1px solid var(--km-line); transition: opacity .45s ease, transform .45s ease; }
.km-rg-l li:last-child { padding-bottom: 0; }
.km-rg-who { display: inline-flex; align-items: center; justify-content: center; height: 26px; border-radius: 5px; font-family: var(--km-mono); font-size: 14px; font-weight: 600; color: var(--km-text); background: var(--km-sub); box-shadow: inset 0 0 0 1px var(--km-line2); }
.km-rg-l li.is-w .km-rg-who { color: var(--km-orange); background: var(--km-orange-soft); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--km-orange) 35%, transparent); }
.km-rg-b { display: grid; gap: 3px; min-width: 0; }
.km-rg-d { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-family: var(--km-mono); font-size: 14px; font-weight: 600; color: var(--km-text); }
.km-rg-t { font-size: 16px; line-height: 1.4; color: var(--km-body); }
.km-rg-c { font-size: 14px; color: var(--km-meta); }

/* watch list alert */
.km-wl { margin-top: 18px; display: grid; gap: 10px; }
.km-wl li { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto 16px; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 8px; background: var(--km-sub); box-shadow: inset 0 0 0 1px var(--km-line); transition: opacity .45s ease, transform .45s ease, box-shadow .6s ease; }
.km-wl-b { min-width: 0; }
.km-wl-n { display: block; font-size: 16px; font-weight: 600; letter-spacing: -.01em; color: var(--km-text); line-height: 1.3; }
.km-wl-d { display: block; margin-top: 1px; font-family: var(--km-mono); font-size: 14px; color: var(--km-meta); }
.km-wl-x { color: var(--km-meta); }
.km-wl-x svg { width: 15px; height: 15px; }
@container km (max-width: 380px) { .km-wl li { grid-template-columns: 36px minmax(0, 1fr) auto; } .km-wl-x { display: none; } }

/* narrow windows: the replay button keeps its icon only */
@container km (max-width: 460px) {
  .km-bar { padding: 0 10px 0 14px; gap: 8px; }
  .km-bar-r { gap: 8px; }
  .km-btn { width: 34px; padding: 0; justify-content: center; }
  .km-btn-t { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}
.is-anim .km-rg-l ~ .km-quote, .km-rg-l ~ .km-quote { transition: opacity .5s ease, transform .5s ease; }
.is-anim:not(.ph-done) .km-rg-l ~ .km-quote { opacity: 0; transform: translateY(6px); }

/* ---------- animation states (only while kmock.js plays) ---------- */
@keyframes km-spin { to { transform: rotate(360deg); } }
@keyframes km-blink { 0%, 45% { opacity: 1; } 55%, 100% { opacity: 0; } }
.km.is-out .km-body, .km.is-out .km-lh-track { opacity: 0; }

.is-anim .km-q-ghost { visibility: hidden; }
.is-anim .km-q-live { display: block; }
.is-anim.ph-empty .km-q-ph { display: block; }
.is-anim:not(.ph-search) .km-caret { display: inline-block; animation: km-blink 1s step-end infinite; }
.is-anim.ph-typing .km-caret { animation: none; }
.is-anim.ph-empty .km-caret { position: absolute; left: 0; top: 4px; }
.is-anim:not(.ph-search) .km-send { background: var(--km-sub); color: var(--km-meta); box-shadow: inset 0 0 0 1px var(--km-line2); }
.is-anim.ph-typed:not(.ph-search) .km-send { background: var(--km-blue); color: var(--km-on-blue); box-shadow: none; }
.is-anim:not(.ph-search) .km-prog { opacity: 0; }
.is-anim:not(.ph-searched) .km-prog-l .km-ok, .is-anim:not(.ph-searched) .km-prog-done { display: none; }
.is-anim:not(.ph-searched) .km-spin { display: inline-block; }
.is-anim:not(.ph-searched) .km-prog-ing { display: inline; }
.is-anim .km-chip:not(.on) { opacity: 0; transform: translateY(4px) scale(.97); }
.is-anim:not(.ph-ans) .km-ans { border-top-color: transparent; }
.is-anim:not(.ph-ans) .km-ans-k { opacity: 0; }
.is-anim .km-w:not(.on) { opacity: 0; filter: blur(4px); }
.is-anim:not(.ph-src) .km-src li { opacity: 0; transform: translateY(6px); }
.is-anim:not(.ph-cite) .km-cn.is-hot, .is-anim:not(.ph-cite) .km-src li.is-hot .km-num { background: var(--km-blue-soft); color: var(--km-blue); box-shadow: inset 0 0 0 1px var(--km-blue-line); }
.is-anim:not(.ph-cite) .km-src li.is-hot { background: transparent; }
.is-anim:not(.ph-panel) .km-panel > * { opacity: .38; }
.km-panel > * { transition: opacity .55s ease; }
.is-anim:not(.ph-mark) .km-mark { background-size: 0% 100%; }

.is-anim .km-lh-b.is-w:not(.on) { background: var(--km-block); box-shadow: inset 0 0 0 1px var(--km-block-line); }
.is-anim .km-lh-b.is-w:not(.on)::before, .is-anim .km-lh-b.is-w:not(.on)::after { background: var(--km-block-line); }
.is-anim .km-lh-b.on { transform: translateY(-2px); }
.is-anim:not(.ph-cut) .km-lh-cut { transform: scaleY(0); opacity: 0; }
.is-anim:not(.ph-cut) .km-quote { opacity: 0; transform: translateY(6px); }
.km-quote, .km-lh-leg li { transition: opacity .5s ease, transform .5s ease; }
.is-anim:not(.ph-cut) .km-lh-leg li.is-w { opacity: 0; }

.is-anim:not(.ph-line) .km-tl::after { transform: scale(0); }
.is-anim .km-tl li:not(.on) { opacity: 0; transform: translateY(8px); }

.is-anim .km-sl li:not(.on) { opacity: 0; transform: translateX(-6px); }
.is-anim .km-sl li:not(.ok) .km-sl-ok { opacity: 0; transform: scale(.4); }

.is-anim:not(.ph-bars) .km-fill { width: 0; }

.is-anim .km-rg-pt:not(.on) { opacity: 0; transform: translateY(6px); }
.is-anim:not(.ph-span) .km-rg-span { transform: scaleX(0); }
.is-anim:not(.ph-span) .km-rg-span span { opacity: 0; transition-delay: 0s; }
.is-anim .km-rg-l li:not(.on) { opacity: 0; transform: translateY(8px); }
.is-anim .km-wl li:not(.on) { opacity: 0; transform: translateY(10px); }
.is-anim .km-wl li.on { box-shadow: inset 0 0 0 1px var(--km-blue-line); }

@media (prefers-reduced-motion: reduce) {
  .km *, .km *::before, .km *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .km .km-spin { animation: none; }
}

/* redacted names (founder, 2026-10-29): solid bars, read as "redacted"; never the word underneath */
.redact { display: inline-block; height: .92em; vertical-align: -.1em; border-radius: 1px; background: #0A0A0A; }
.km .redact { background: var(--km-text); }
/* label history: a client question with private details redacted */
.km-lh-q { margin-top: 14px; padding: 12px 14px 13px; border-radius: 8px; background: var(--km-field); box-shadow: var(--km-shadow-sm); }
.km-lh-qk { display: block; margin-bottom: 4px; font-family: var(--km-mono); font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--km-meta); }
.km-lh-q p { font-size: 16px; font-weight: 500; line-height: 1.5; letter-spacing: -.01em; color: var(--km-text); }
.km-lh-a { margin-top: 14px; font-size: 16px; line-height: 1.6; color: var(--km-body); text-wrap: pretty; }
.km-lh-src { margin-top: 18px; }
.km-lh-src li { transition: none; }
.is-anim:not(.ph-cut) .km-lh-a, .is-anim:not(.ph-cut) .km-lh-src { opacity: 0; }
.km-lh-a, .km-lh-src { transition: opacity .5s ease; }
