.cf{margin:var(--sp-8) 0;padding:var(--sp-6) var(--sp-7);border:1px solid var(--v-border);border-radius:var(--r-lg);background:var(--v-white)}.cf--snow{background:var(--v-snow)}.cf--plain{border:0;background:none;padding:0}.cf--wide{margin-inline:0}@media(min-width:900px){.cf--wide{margin-inline:-4vw}}.cf-cap{margin-bottom:var(--sp-5)}.cf-fig{font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;color:var(--v-red);margin-bottom:var(--sp-2)}.cf-title{font-family:var(--font-display);font-weight:var(--type-weight-semibold);font-size:.95rem;line-height:1.35;color:var(--v-ink)}.cf-sub{font-size:.82rem;line-height:1.5;color:var(--v-ink-60);margin-top:var(--sp-2)}.cf-hint{font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--v-slate);margin-top:var(--sp-2)}.cf-body{position:relative}.cf-plot{overflow-x:auto;overscroll-behavior-x:contain}.cf-plot svg{display:block;width:100%;height:auto;overflow:visible}.cf-legend{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-5);margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--v-border)}.cf-key{display:inline-flex;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--v-slate)}.cf-swatch{width:14px;height:10px;border-radius:var(--r-xs);background:var(--v-ink);flex:none}.cf-swatch--muted{background:var(--v-cloud)}.cf-swatch--estimate{background:repeating-linear-gradient(45deg,var(--v-ink) 0 2px,transparent 2px 4px);border:1px solid var(--v-mist)}.cf-swatch--flag{background:var(--v-red)}.cf-swatch--line{height:2px;border-radius:0}.cf-swatch--dashed{height:0;border-top:2px dashed var(--v-ink);background:none}.cf-tabs{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-4)}.cf-tab{border:1px solid var(--v-border-strong);border-radius:var(--r-full);background:none;padding:var(--sp-2) var(--sp-4);font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--v-ink-60);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.cf-tab:hover{border-color:var(--v-ink);color:var(--v-ink)}.cf-tab[aria-selected=true]{background:var(--v-ink);border-color:var(--v-ink);color:var(--v-white)}.cf-tab:focus-visible{outline:2px solid var(--v-ink);outline-offset:2px}.cf-data{margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--v-border)}.cf-data-toggle{font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--v-slate);cursor:pointer;list-style:none}.cf-data-toggle::-webkit-details-marker{display:none}.cf-data-toggle:before{content:"+ ";color:var(--v-red)}.cf-data[open] .cf-data-toggle:before{content:"– "}.cf-data-toggle:hover{color:var(--v-ink)}.cf-data-toggle:focus-visible{outline:2px solid var(--v-ink);outline-offset:2px}.cf-data-summary{margin:var(--sp-3) 0 0;font-size:.8rem;line-height:1.5;color:var(--v-ink-60)}.cf-data-scroll{overflow-x:auto;margin-top:var(--sp-3)}.cf-data table{width:100%;border-collapse:collapse;font-size:.8rem}.cf-data th,.cf-data td{padding:var(--sp-2) var(--sp-3);text-align:left;border-bottom:1px solid var(--v-border);vertical-align:top}.cf-data thead th{font-family:var(--font-mono);font-size:.6rem;font-weight:var(--type-weight-medium);text-transform:uppercase;letter-spacing:.08em;color:var(--v-slate);white-space:nowrap}.cf-data tbody th{font-weight:var(--type-weight-medium);color:var(--v-ink)}.cf-data tbody td{color:var(--v-ink-60)}.cf-data tbody tr:last-child th,.cf-data tbody tr:last-child td{border-bottom:0}.cf-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.cf-src{margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--v-border);font-family:var(--font-mono);font-size:.62rem;line-height:1.5;letter-spacing:.04em;color:var(--v-slate)}.cf-legend+.cf-src,.cf-data+.cf-src,.cf-legend+.cf-data{border-top:0;padding-top:0;margin-top:var(--sp-3)}.cf-tip{position:absolute;z-index:5;max-width:260px;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--v-ink);color:var(--v-white);font-size:.75rem;line-height:1.45;box-shadow:var(--shadow-md);pointer-events:none;opacity:0;transform:translate(-50%,calc(-100% - 10px));transition:opacity var(--dur-fast) var(--ease-out)}.cf-tip[data-cf-tip-open]{opacity:1}.cf-tip-label{display:block;font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:var(--v-mist);margin-bottom:2px}[data-cf-tip],[data-cf-record]{cursor:default}[data-cf-record]{cursor:pointer}[data-cf-tip]:focus-visible,[data-cf-record]:focus-visible{outline:2px solid var(--v-ink);outline-offset:2px}.cf-record{margin-top:var(--sp-4);padding:var(--sp-4) var(--sp-5);border:1px solid var(--v-border-strong);border-radius:var(--r-md);background:var(--v-snow)}.cf-record[hidden]{display:none}.cf-record-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-2)}.cf-record-title{font-family:var(--font-display);font-weight:var(--type-weight-semibold);font-size:.88rem;color:var(--v-ink)}.cf-record-close{border:0;background:none;padding:0;font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--v-slate);cursor:pointer}.cf-record-close:hover{color:var(--v-ink)}.cf-record-body{font-size:.85rem;line-height:1.6;color:var(--v-ink-60)}.cf-record-meta{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4);margin-top:var(--sp-3);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.04em;color:var(--v-slate)}.cf-axis{stroke:var(--v-border-strong);stroke-width:1;fill:none}.cf-grid{stroke:var(--v-cloud);stroke-width:1;fill:none}.cf-tick{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;fill:var(--v-slate)}.cf-label{font-family:var(--font-body);font-size:12.5px;fill:var(--v-ink-60)}.cf-value{font-family:var(--font-display);font-weight:var(--type-weight-semibold);font-size:12.5px;fill:var(--v-ink)}.cf-value--flag{fill:var(--v-red)}.cf-node-fill{fill:var(--v-white);stroke:var(--v-border-strong);stroke-width:1}.cf-node-fill--emphasis{fill:var(--v-ink);stroke:var(--v-ink)}.cf-node-fill--muted{fill:var(--v-cloud);stroke:var(--v-mist)}.cf-edge{stroke:var(--v-mist);stroke-width:1.5;fill:none}.cf-edge--dashed{stroke-dasharray:4 4}@media(max-width:600px){.cf{padding:var(--sp-5) var(--sp-5)}}.mb{margin:var(--sp-8) 0;padding:var(--sp-6) var(--sp-7);border:1px solid var(--v-border);border-radius:var(--r-lg);background:var(--v-white)}.mb-headline{font-family:var(--font-display);font-weight:var(--type-weight-semibold);font-size:.95rem;color:var(--v-ink);margin-bottom:var(--sp-5)}.mb-list{display:flex;flex-direction:column;gap:var(--sp-4)}.mb-row-top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-1)}.mb-row-label{font-size:.82rem;color:var(--v-ink-60)}.mb-row-value{font-family:var(--font-display);font-weight:var(--type-weight-semibold);font-size:.85rem;color:var(--v-ink);font-variant-numeric:proportional-nums;white-space:nowrap}.mb-row-value--critical{color:var(--v-red)}.mb-row-nums{display:inline-flex;align-items:baseline;gap:var(--sp-3);white-space:nowrap}.mb-delta{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.06em;color:var(--v-slate);font-variant-numeric:tabular-nums}.mb-delta--under{color:var(--v-red)}.mb--bare{margin:0;padding:0;border:0;background:none;border-radius:0}.mb-track{position:relative;height:14px;background:var(--v-cloud);border-radius:var(--r-xs);overflow:visible}.mb-track[data-cf-tip]{cursor:default}.mb-track:focus-visible{outline:2px solid var(--v-ink);outline-offset:2px}.mb-bench{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--v-ink);box-shadow:0 0 0 1px var(--v-white)}.mb-fill{height:100%;width:0;border-radius:0 4px 4px 0;background:var(--v-ink);transition:width .8s var(--ease-out) var(--mb-delay, 0ms)}.mb-fill--critical{background:var(--v-red)}.mb[data-mb-in] .mb-fill{width:var(--mb-target)}@media(prefers-reduced-motion:reduce){.mb-fill{transition:none}}
