/* GENERATED by scripts/learn/build_learn.py from scripts/learn/vz.css — the visual Learn layer, scoped to the
   Learn panel (.vzl) so nothing reaches the other stages. Edit vz.css and rebuild. */
:root{
  --m-head:#3C74C9; --m-tail:#B98B2E; --m-chan:#7B6AD8; --m-chan-soft:#ECE9FB; --m-carr:#239A72; --m-carr-soft:#DDF3EA;
  --m-chol:#D2453B; --m-gp:#C2407A; --m-gp-soft:#F8E1EC; --m-gl:#2F8F57; --m-per:#E38A3C; --m-per-soft:#FCE8D6;
  --m-na:#3C74C9; --m-glu:#C98A12; --m-pig:#9B1F4F; --m-water:#4A9BD8; --m-cyto:#F4F8FC; --m-lumen:#EEF4FB; --m-blood:#FBEDEE;
  --m-wall:#8A6A1F; --m-head-soft:#E3ECF9; --m-glu-soft:#FAEFD6;
  --em-bg:#D3D7D8; --em-ink:#2C3133; --em-mid:#9AA1A3; --cv:#7A3FA8; --sf:#DB6B9E; --pale:#F1EEE6; --stain-bg:#F7F0F4;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
    --m-head:#7FA9EA; --m-tail:#D9B15E; --m-chan:#A79BF2; --m-chan-soft:#26213F; --m-carr:#5CCB9F; --m-carr-soft:#143027;
    --m-chol:#F08D82; --m-gp:#F09CC2; --m-gp-soft:#3B1A2B; --m-gl:#6FD39A; --m-per:#F2A866; --m-per-soft:#3A2416;
    --m-na:#8FB1E4; --m-glu:#E5B65C; --m-pig:#F07AA8; --m-water:#7DBDEB; --m-cyto:#17212C; --m-lumen:#152131; --m-blood:#2C1A1C;
    --m-wall:#C9A456; --m-head-soft:#16202F; --m-glu-soft:#2B2214;
    --em-bg:#2A2F31; --em-ink:#D6DBDC; --em-mid:#5E666A; --cv:#A672D6; --sf:#F09CC2; --pale:#2B2925; --stain-bg:#231C21;
  }}
:root[data-theme="dark"]{
  --m-head:#7FA9EA; --m-tail:#D9B15E; --m-chan:#A79BF2; --m-chan-soft:#26213F; --m-carr:#5CCB9F; --m-carr-soft:#143027;
  --m-chol:#F08D82; --m-gp:#F09CC2; --m-gp-soft:#3B1A2B; --m-gl:#6FD39A; --m-per:#F2A866; --m-per-soft:#3A2416;
  --m-na:#8FB1E4; --m-glu:#E5B65C; --m-pig:#F07AA8; --m-water:#7DBDEB; --m-cyto:#17212C; --m-lumen:#152131; --m-blood:#2C1A1C;
  --m-wall:#C9A456; --m-head-soft:#16202F; --m-glu-soft:#2B2214;
  --em-bg:#2A2F31; --em-ink:#D6DBDC; --em-mid:#5E666A; --cv:#A672D6; --sf:#F09CC2; --pale:#2B2925; --stain-bg:#231C21;
}
.vzl .vz-proto{display:inline-block; margin-left:8px; font-family:var(--ui); font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); border:1px solid var(--gold-line); background:var(--gold-soft); padding:2px 8px; border-radius:999px; vertical-align:middle}
.vzl .vz-defs{display:inline-flex; align-items:center; gap:6px; font-family:var(--ui); font-size:11.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--brand-ink); background:none; border:0; border-bottom:1px solid var(--brand-line); padding:0 0 1px; cursor:pointer}
.vzl .vz-defs:hover{border-bottom-color:var(--brand)}
.vzl .vz-defs b{font-family:var(--tt); font-weight:600; letter-spacing:0; color:var(--ink-3)}
.vzl .levelbar .vz-defs{margin-left:2px}
.vzl .sec-head .vz-defs.sm{font-size:11px; letter-spacing:.02em; text-transform:none; font-weight:700}
.vzl .vz-scrim{position:fixed; inset:0; background:rgba(6,18,15,.38); z-index:300; opacity:0; transition:opacity .2s}
.vzl .vz-scrim.open{opacity:1}
.vzl .vz-drawer{position:fixed; top:0; right:0; bottom:0; width:min(460px,100%); background:var(--paper); z-index:301; box-shadow:var(--lift); display:flex; flex-direction:column; transform:translateX(100%); transition:transform .25s ease; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px); border-left:1px solid var(--line)}
.vzl .vz-drawer.open{transform:none}
/* closed, the drawer is slid off the right edge; hide it too, once the slide has finished,
   so the keyboard cannot tab into it and it is not something on the page off-screen */
.vzl .vz-drawer:not(.open){visibility:hidden; transition:transform .25s ease, visibility 0s linear .25s}
.vzl .vz-drawer.open{visibility:visible; transition:transform .25s ease, visibility 0s}
.vzl .vz-dh{padding:18px 20px 12px; border-bottom:1px solid var(--line)}
.vzl .vz-dh .row{display:flex; justify-content:space-between; align-items:center; gap:10px}
.vzl .vz-dh h3{font-family:var(--display); font-weight:600; font-size:24px}
.vzl .vz-dh .x{width:34px; height:34px; border-radius:50%; border:1px solid var(--line-2); font-size:18px; line-height:1; background:none; color:var(--ink); cursor:pointer}
.vzl .vz-dh p{font-size:12.5px; color:var(--ink-3); margin-top:4px}
.vzl .vz-dh input{width:100%; margin-top:12px; font:inherit; font-size:14px; padding:9px 12px; border:1px solid var(--line-2); background:var(--surface); color:var(--ink); border-radius:0}
.vzl .vz-chips{display:flex; flex-wrap:wrap; gap:5px; margin-top:10px}
.vzl .vz-chips button{font-family:var(--tt); font-size:11px; padding:3px 9px; border:1px solid var(--line-2); background:none; color:var(--ink-2); cursor:pointer}
.vzl .vz-chips button[aria-pressed="true"]{background:var(--ink); border-color:var(--ink); color:var(--paper)}
.vzl .vz-dl{overflow:auto; padding:6px 20px 30px; margin:0}
.vzl .vz-def{padding:14px 0; border-bottom:1px solid var(--line)}
.vzl .vz-def dt{display:flex; justify-content:space-between; gap:10px; align-items:baseline; font-family:var(--display); font-weight:600; font-size:18px}
.vzl .vz-def dt a{font-family:var(--tt); font-size:10.5px; color:var(--ink-3); white-space:nowrap; text-decoration:none; cursor:pointer}
.vzl .vz-def dd{margin:5px 0 0; font-family:var(--display); font-size:16px; line-height:1.55}
.vzl .vz-dl .none{padding:24px 0; color:var(--ink-3); font-size:14px}
.vzl .vz-fig{margin:18px 0 10px; border:1px solid var(--line); background:var(--surface-2); padding:16px}
.vzl .vz-fig .ft{font-family:var(--ui); font-size:10.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); margin-bottom:12px}
.vzl .vz-fig svg{display:block; width:100%; max-width:640px; height:auto; margin:0 auto; overflow:visible}
.vzl .vz-fig .cap{font-family:var(--ui); font-size:13px; line-height:1.55; color:var(--ink-2); margin-top:12px; max-width:var(--measure)}
.vzl .vz-fig svg text{font-family:var(--ui); fill:var(--ink)}
.vzl .vz-fig svg .s{font-size:11px; fill:var(--ink-2)}
.vzl .vz-fig svg .b{font-size:12px; font-weight:700}
.vzl .vz-fig svg .t{font-family:var(--tt); font-size:11px}
.vzl .vz-ctl{display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-bottom:12px}
.vzl .vz-ctl .lab{font-family:var(--ui); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); margin-right:4px}
.vzl .vz-btn{font-family:var(--ui); font-size:12.5px; font-weight:700; padding:6px 12px; border:1px solid var(--line-2); background:var(--surface); color:var(--ink); cursor:pointer; border-radius:999px}
.vzl .vz-btn:hover{border-color:var(--brand); color:var(--brand-ink)}
.vzl .vz-btn[aria-pressed="true"]{background:var(--brand); border-color:var(--brand); color:#fff}
.vzl .vz-btn.pri{background:var(--ink); border-color:var(--ink); color:var(--paper)}
.vzl .vz-btn.pri:hover{color:var(--paper); opacity:.9}
.vzl .vz-btn:disabled{opacity:.4; cursor:default}
.vzl .vz-range{width:100%; accent-color:var(--brand)}
.vzl .vz-stp .stp-fig svg{max-width:520px}
.vzl .vz-stp .vz-bar{display:flex; align-items:center; gap:8px; margin-top:12px; flex-wrap:wrap}
.vzl .vz-stp .vz-bar .cnt{font-family:var(--tt); font-size:11.5px; color:var(--ink-3); margin-right:auto}
.vzl .vz-stp ol.flow{margin-top:14px}
.vzl .vz-stp ol.flow>li{cursor:pointer; color:var(--ink-3); transition:background .2s,border-color .2s,color .2s}
.vzl .vz-stp ol.flow>li::before{background:var(--surface); color:var(--ink-3); box-shadow:inset 0 0 0 1.5px var(--line-2); width:22px; height:22px; border-radius:50%; display:grid; place-items:center; transition:background .2s}
.vzl .vz-stp ol.flow>li.done{color:var(--ink-2)}
.vzl .vz-stp ol.flow>li.done::before{background:var(--brand-soft); color:var(--brand-ink); box-shadow:inset 0 0 0 1.5px var(--brand-line)}
.vzl .vz-stp ol.flow>li.on{color:var(--ink); border-color:var(--brand); background:var(--brand-soft)}
.vzl .vz-stp ol.flow>li.on::before{background:var(--brand); color:#fff; box-shadow:none}
.vzl .vz-stp ol.flow>li:not(.on):not(.done) mark.ms{background:none; color:inherit; padding:0}
.vzl [data-show]{transition:opacity .45s ease}
.vzl .vz-hide{opacity:0 !important; pointer-events:none}
.vzl .vz-mv{transition:transform .8s cubic-bezier(.45,.05,.25,1)}
.vzl .vz-ex{margin:16px 0; border:1px solid var(--gold-line); background:var(--gold-soft); padding:13px 16px; max-width:var(--measure)}
.vzl .vz-ex .el{font-family:var(--ui); font-size:10.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); margin-bottom:6px}
.vzl .vz-ex p,.vzl .vz-ex li{font-size:16px}
.vzl .vz-ex .work{display:grid; gap:5px; margin-top:8px; font-family:var(--tt); font-size:13px}
.vzl .vz-ex .work div{background:var(--paper); border:1px solid var(--gold-line); padding:6px 10px; overflow-wrap:anywhere}
.vzl .vz-ex .work div[hidden]{display:none}
.vzl .vz-ex .ctl{display:flex; gap:6px; margin-top:9px}
.vzl .vz-prec{margin:14px 0; max-width:var(--measure); border-left:2px solid var(--hl-prec-ink); padding:2px 0 2px 15px; font-size:15.5px; color:var(--ink-2)}
.vzl .vz-prec b.pl{display:block; font-family:var(--ui); font-size:10.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--hl-prec-ink); margin-bottom:2px}
.vzl .vz-chain{display:flex; flex-wrap:wrap; align-items:stretch; gap:6px; margin:14px 0; max-width:none}
.vzl .vz-chain>.n{flex:1 1 150px; min-width:0; border:1px solid var(--line-2); background:var(--surface); padding:10px 12px; font-size:15px; line-height:1.45}
.vzl .vz-chain>.n small{display:block; font-family:var(--ui); font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); margin-bottom:3px}
.vzl .vz-chain>.a{flex:none; width:16px; display:grid; place-items:center; color:var(--brand); font-family:var(--ui); font-weight:800}
.vzl .vz-chain>.a::before{content:"→"}
.vzl .vz-chain>.n.end{border-color:var(--brand); background:var(--brand-soft)}
@media (max-width:640px){.vzl .vz-chain{flex-direction:column}
.vzl .vz-chain>.n{flex:none}
.vzl .vz-chain>.a{width:auto; height:14px}
.vzl .vz-chain>.a::before{content:"↓"}}
.vzl .vz-tiles{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr)); gap:10px; margin:14px 0; max-width:none}
.vzl .vz-tile{border:1px solid var(--line); background:var(--surface); padding:12px 14px; font-size:15px; line-height:1.5; min-width:0}
.vzl .vz-tile h5{font-family:var(--ui); font-size:13px; font-weight:800; margin:0 0 5px; display:flex; gap:8px; align-items:center}
.vzl .vz-tile h5 .ic{flex:none; width:24px; height:24px; display:grid; place-items:center; background:var(--brand-soft); color:var(--brand-ink); font-family:var(--tt); font-size:11.5px; font-weight:600}
.vzl .vz-cmp{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:14px 0; max-width:none}
.vzl .vz-cmp>div{border:1px solid var(--line); background:var(--surface); padding:13px 15px; min-width:0; font-size:15.5px}
.vzl .vz-cmp h5{font-family:var(--ui); font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-2); margin:0 0 8px}
.vzl .vz-cmp .pos{border-top:2px solid var(--brand)}
.vzl .vz-cmp .neg{border-top:2px solid var(--flag)}
@media (max-width:600px){.vzl .vz-cmp{grid-template-columns:1fr}}
.vzl .vz-cmp ul,.vzl .vz-tile ul{margin:0; padding-left:18px}
.vzl .vz-cmp li+li,.vzl .vz-tile li+li{margin-top:5px}
.vzl .vz-x{display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:16px; align-items:start}
@media (max-width:820px){.vzl .vz-x{grid-template-columns:1fr}}
.vzl .vz-x [data-k]{cursor:pointer}
.vzl .vz-x .part{transition:opacity .25s}
.vzl .vz-x.focus .part{opacity:.25}
.vzl .vz-x.focus .part.on{opacity:1}
.vzl .vz-legend{display:flex; flex-wrap:wrap; gap:5px; margin-top:12px}
.vzl .vz-legend button{display:inline-flex; align-items:center; gap:6px; font-family:var(--ui); font-size:12px; font-weight:700; padding:3px 10px 3px 3px; border:1px solid var(--line-2); background:var(--surface); color:var(--ink); border-radius:999px; cursor:pointer}
.vzl .vz-legend button i{width:18px; height:18px; border-radius:50%; display:grid; place-items:center; font-style:normal; font-family:var(--tt); font-size:10.5px; background:var(--sunk)}
.vzl .vz-legend button[aria-pressed="true"]{border-color:var(--brand); background:var(--brand-soft); color:var(--brand-ink)}
.vzl .vz-legend button[aria-pressed="true"] i{background:var(--brand); color:#fff}
.vzl .vz-info{border:1px solid var(--line); background:var(--paper); padding:14px 16px; min-width:0}
.vzl .vz-info .eb{font-family:var(--ui); font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3)}
.vzl .vz-info h5{font-family:var(--display); font-weight:600; font-size:21px; margin:3px 0 8px}
.vzl .vz-info .r{font-size:15px; line-height:1.55; margin-top:8px}
.vzl .vz-info .r b.k{display:block; font-family:var(--ui); font-size:10.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3)}
.vzl .vz-badge circle{fill:var(--paper); stroke:var(--ink-2); stroke-width:1.4}
.vzl .vz-badge text{font-family:var(--tt) !important; font-size:11.5px; font-weight:600; text-anchor:middle; dominant-baseline:central}
.vzl .vz-badge.on circle{fill:var(--brand); stroke:var(--brand)}
.vzl .vz-badge.on text{fill:#fff !important}
@keyframes vz-jig{0%,100%{transform:translateX(0)} 50%{transform:translateX(3px)}}
.vzl .vz-fluid .pl{animation:vz-jig 1.6s ease-in-out infinite}
@keyframes vz-drift{0%,100%{transform:translateX(0)} 50%{transform:translateX(14px)}}
.vzl .vz-fluid .drift{animation:vz-drift 4s ease-in-out infinite}
@keyframes vz-down{0%{transform:translateY(0); opacity:0} 10%{opacity:1} 85%{opacity:1} 100%{transform:translateY(118px); opacity:0}}
.vzl .vz-run .go{animation:vz-down 3.2s linear infinite}
.vzl .vz-wp{display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:16px}
@media (max-width:760px){.vzl .vz-wp{grid-template-columns:1fr}}
.vzl .vz-wp label{display:block; font-family:var(--ui); font-size:12px; font-weight:700; color:var(--ink-2); margin:10px 0 4px}
.vzl .vz-verdict{margin-top:12px; padding:10px 12px; border:1px solid var(--line-2); background:var(--paper); font-size:15px}
.vzl .vz-verdict.go{border-color:var(--brand); background:var(--brand-soft)}
.vzl .vz-cells .rbc,.vzl .vz-cells .proto{transform-box:fill-box; transform-origin:center; transition:transform .9s cubic-bezier(.3,.7,.3,1)}
.vzl .vz-tree{display:grid; gap:8px; margin:14px 0; max-width:none}
.vzl .vz-tree .q{font-family:var(--ui); font-size:13.5px; font-weight:800; border:1px solid var(--ink); background:var(--paper); padding:9px 12px}
.vzl .vz-tree .opts{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr)); gap:8px; padding-left:18px; border-left:2px solid var(--line-2); margin-left:10px}
.vzl .vz-tree .o{border:1px solid var(--line); background:var(--surface); padding:10px 12px; font-size:14.5px; line-height:1.45}
.vzl .vz-tree .o b.r{display:block; font-family:var(--ui); font-size:12px; font-weight:800; color:var(--brand-ink); margin-bottom:3px}
.vzl .vz-dw{display:grid; gap:0; margin:14px 0; border:1px solid var(--line); max-width:none}
.vzl .vz-dw>div{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); border-top:1px solid var(--line)}
.vzl .vz-dw>div:first-child{border-top:0}
.vzl .vz-dw>div>*{padding:10px 13px; font-size:15px; line-height:1.5; min-width:0}
.vzl .vz-dw>div>:first-child{background:var(--surface)}
.vzl .vz-dw>div>:last-child{background:var(--surface-2); color:var(--ink-2)}
.vzl .vz-dw .hd>*{font-family:var(--ui); font-size:10.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); padding-block:7px}
@media (max-width:600px){.vzl .vz-dw>div{grid-template-columns:1fr}
.vzl .vz-dw .hd{display:none}
.vzl .vz-dw>div>:last-child::before{content:"Why: "; font-weight:700; color:var(--ink)}}
.vzl .vz-pill{display:inline-block; font-family:var(--ui); font-size:11px; font-weight:800; padding:2px 8px; border-radius:999px}
.vzl .vz-pill.act{background:var(--hl-prec); color:var(--hl-prec-ink)}
.vzl .vz-pill.pas{background:var(--brand-soft); color:var(--brand-ink)}
.vzl .vz-pill.ind{background:var(--hl-seq); color:var(--hl-seq-ink)}
.vzl .prose table.t mark.ms{font-weight:600}
.vzl .prose .vz-x h5,.vzl .prose .vz-tile h5,.vzl .prose .vz-cmp h5{max-width:none}
.vzl .vz-key{display:flex; flex-wrap:wrap; gap:6px 16px; margin-top:10px; font-family:var(--ui); font-size:12px; color:var(--ink-2)}
.vzl .vz-key span{display:inline-flex; align-items:center; gap:6px}
.vzl .vz-key i{width:11px; height:11px; display:inline-block}
@media (max-width:600px){.vzl .vz-fig{padding:12px 8px}
.vzl .vz-fig svg .s{font-size:15px}
.vzl .vz-fig svg .b{font-size:15.5px}
.vzl .vz-info h5{font-size:19px}}
.vzl .prose h4.vz-q{font-family:var(--display); font-weight:600; font-size:clamp(18px,2vw,20px); line-height:1.3; margin:30px 0 4px; display:flex; gap:10px; align-items:baseline}
.vzl .prose h4.vz-q::before{content:"Q"; flex:none; font-family:var(--tt); font-size:10.5px; font-weight:600; color:var(--brand-ink); background:var(--brand-soft); border:1px solid var(--brand-line); padding:1px 6px; transform:translateY(-2px)}
.vzl .prose .vzb>h4.vz-q:first-of-type{margin-top:14px}
.vzl .prose p.vz-why{font-family:var(--ui); font-size:12.5px; line-height:1.5; color:var(--ink-3); margin:0 0 12px 32px; max-width:62ch}
.vzl .prose p.vz-why b{font-weight:800; letter-spacing:.08em; text-transform:uppercase; font-size:10px; color:var(--brand-ink); margin-right:7px}
@media (max-width:600px){.vzl .prose p.vz-why{margin-left:0}}
.vzl .vz-terms{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:14px 0; max-width:none}
.vzl .vz-terms.one{grid-template-columns:minmax(0,1fr); max-width:var(--measure)}
@media (max-width:640px){.vzl .vz-terms{grid-template-columns:1fr}}
.vzl .vz-term{display:grid; grid-template-columns:104px minmax(0,1fr); gap:14px; align-items:center; border:1px solid var(--line); border-top:2px solid var(--brand); background:var(--surface); padding:12px 14px; min-width:0}
.vzl .vz-term .v svg{display:block; width:100%; height:auto}
.vzl .vz-term .nm{display:block; font-family:var(--display); font-weight:600; font-size:19px; line-height:1.2; margin-bottom:4px}
.vzl .vz-term p{font-size:15.5px; line-height:1.5; margin:0}
.vzl .vz-term .tag{display:inline-block; margin-top:6px; font-family:var(--tt); font-size:10.5px; color:var(--brand-ink)}
.vzl .vz-term .psi{font-family:var(--display); font-size:56px; line-height:1; text-align:center; color:var(--m-water)}
.vzl .vz-scale{margin:14px 0 18px; max-width:none; border:1px solid var(--line); background:var(--surface); padding:16px 16px 12px}
.vzl .vz-scale .bar{height:14px; background:linear-gradient(90deg,var(--m-glu),var(--m-lumen) 92%,var(--m-water)); border:1px solid var(--line-2)}
.vzl .vz-scale .marks{position:relative; height:52px; margin-top:6px; font-family:var(--ui); font-size:12px; font-weight:700; line-height:1.25}
.vzl .vz-scale .marks span{position:absolute; top:0; transform:translateX(-50%); text-align:center; width:max-content; max-width:34%}
.vzl .vz-scale .marks span:first-child{transform:none; text-align:left}
.vzl .vz-scale .marks span.end{transform:translateX(-100%); text-align:right}
.vzl .vz-scale .marks small{font-weight:500; color:var(--ink-3); font-size:11px}
.vzl .vz-scale p{font-size:15.5px; margin-top:6px}
@media (max-width:600px){.vzl .vz-scale .marks{height:72px}}
.vzl .vz-journey{margin:6px 0 4px; padding:14px 0 16px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); max-width:none}
.vzl .vz-journey .lbl{display:block; font-family:var(--ui); font-size:10.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); margin-bottom:10px}
.vzl nav.vz-journey .row{display:grid; grid-template-columns:var(--jcols); gap:0 6px; align-items:start}
.vzl nav.vz-journey .g{min-width:0}
.vzl nav.vz-journey .gl{display:block; font-family:var(--display); font-weight:600; font-size:14.5px; margin-bottom:6px}
.vzl nav.vz-journey .cs{display:flex; gap:4px; flex-wrap:wrap}
.vzl nav.vz-journey .cs a{display:inline-flex; gap:5px; align-items:baseline; font-family:var(--ui); font-size:12px; font-weight:600; color:var(--ink-2); text-decoration:none; border:1px solid var(--line-2); background:var(--surface); padding:3px 9px; border-radius:999px; transition:background .2s,border-color .2s,color .2s}
.vzl nav.vz-journey .cs a b{font-family:var(--tt); font-weight:600; font-size:10.5px; color:var(--ink-3)}
.vzl nav.vz-journey .cs a:hover{border-color:var(--brand); color:var(--brand-ink)}
.vzl nav.vz-journey .cs a.on{background:var(--brand); border-color:var(--brand); color:#fff}
.vzl nav.vz-journey .cs a.on b{color:#fff}
.vzl nav.vz-journey .cs a.seen{border-color:var(--brand-line); background:var(--brand-soft); color:var(--brand-ink)}
.vzl nav.vz-journey .arr{align-self:center; text-align:center; color:var(--brand); font-weight:800; font-family:var(--ui); padding-top:18px}
@media (max-width:900px){.vzl nav.vz-journey .row{grid-template-columns:minmax(0,1fr); gap:10px}
.vzl nav.vz-journey .arr{display:none}}
.vzl .vz-bridge{margin:26px 0 0; padding:14px 16px; background:var(--brand-soft); border:1px solid var(--brand-line); display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 16px; align-items:center; max-width:none}
.vzl .vz-bridge .lbl{grid-column:1/-1; font-family:var(--ui); font-size:10.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--brand-ink)}
.vzl .vz-bridge p{font-size:16px; line-height:1.5; margin:0; max-width:none}
.vzl .vz-go{font-family:var(--ui); font-size:12.5px; font-weight:800; color:#fff; background:var(--brand); padding:8px 14px; text-decoration:none; white-space:nowrap; border-radius:999px}
.vzl .vz-go:hover{filter:brightness(1.08)}
.vzl .vz-go.done{background:var(--ink); color:var(--paper)}
.vzl .vz-go span{margin-left:4px}
@media (max-width:640px){.vzl .vz-bridge{grid-template-columns:1fr}
.vzl .vz-go{justify-self:start; white-space:normal}}
.vzl article.sec{scroll-margin-top:70px}
.vzl .prose h4.vz-q{display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:10px; row-gap:4px; align-items:baseline}
.vzl .prose h4.vz-q .qt{min-width:0}
.vzl .prose h4.vz-q .vz-examq{grid-column:2; justify-self:start}
.vzl .vz-examq{display:inline-flex; align-items:center; gap:6px; align-self:center; font-family:var(--ui); font-size:11px; font-weight:700; letter-spacing:0; color:var(--gold); background:none; border:0; padding:0; cursor:pointer; white-space:nowrap}
.vzl .vz-examq b{width:18px; height:18px; border-radius:50%; display:grid; place-items:center; border:1.5px solid var(--gold-line); background:var(--gold-soft); font-size:11px; font-weight:800}
.vzl .vz-examq span{border-bottom:1px dotted var(--gold-line)}
.vzl .vz-examq:hover b,.vzl .vz-examq[aria-expanded="true"] b{background:var(--gold); border-color:var(--gold); color:#fff}
.vzl .prose .vz-exam{margin:-4px 0 14px 32px; max-width:62ch; border-left:2px solid var(--gold); background:var(--gold-soft); padding:9px 13px; font-family:var(--ui)}
.vzl .prose .vz-exam .lbl{display:block; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); margin-bottom:3px}
.vzl .prose .vz-exam p{margin:0; font-size:13.5px; line-height:1.5; max-width:none}
.vzl .prose .vz-exam .ask{font-weight:700; color:var(--ink)}
.vzl .prose .vz-exam .tip{color:var(--ink-2); margin-top:3px}
@media (max-width:600px){.vzl .prose .vz-exam{margin-left:0}}
.vzl .prose p.vz-link{position:relative; margin:30px 0 -14px 32px; padding:2px 0 2px 16px; border-left:2px dotted var(--brand-line); font-family:var(--display); font-style:italic; font-size:15px; line-height:1.5; color:var(--ink-2); max-width:62ch}
.vzl .prose p.vz-link::before{content:"↓"; position:absolute; left:-9px; bottom:-14px; width:16px; text-align:center; font-family:var(--ui); font-style:normal; font-size:12px; font-weight:800; color:var(--brand); background:var(--paper)}
.vzl .prose p.vz-sub{margin:16px 0 2px; font-family:var(--ui); font-size:13.5px; font-weight:800; color:var(--brand-ink); display:flex; gap:8px; align-items:center}
.vzl .prose p.vz-sub::before{content:""; width:14px; height:2px; background:var(--brand); flex:none}
.vzl .prose p.vz-sub + .digest{margin-top:4px}
@media (max-width:600px){.vzl .prose p.vz-link{margin-left:0}}
.vzl .vz-draw1{display:grid; grid-template-columns:minmax(0,300px) minmax(0,1fr); gap:18px; align-items:center; border:1px solid var(--line); border-top:2px solid var(--brand); background:var(--surface); padding:14px 16px; margin:14px 0; max-width:none}
.vzl .vz-draw1 ul{margin:0; padding-left:18px; font-size:15.5px}
.vzl .vz-draw1 li+li{margin-top:6px}
@media (max-width:640px){.vzl .vz-draw1{grid-template-columns:1fr}}
.vzl .vz-chips2 span b{font-family:var(--tt); font-weight:600; color:var(--brand-ink); margin-left:4px}
@media (max-width:600px){.vzl #cellSvg .vz-badge circle{r:19px}
.vzl #cellSvg .vz-badge text{font-size:19px !important}}
.vzl .vz-scope{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:14px 0; max-width:none}
@media (max-width:820px){.vzl .vz-scope{grid-template-columns:1fr}}
.vzl .vz-sc{border:1px solid var(--line); background:var(--surface); min-width:0; display:flex; flex-direction:column}
.vzl .vz-sc svg{display:block; width:100%; height:auto}
.vzl .vz-sc .b{padding:10px 12px 12px}
.vzl .vz-sc h5{font-family:var(--display); font-weight:600; font-size:17px; margin:0}
.vzl .vz-chips2{display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; max-width:none}
.vzl .vz-chips2 span{font-family:var(--ui); font-size:12px; font-weight:600; padding:3px 9px; border-radius:999px; background:var(--sunk); color:var(--ink-2); border:1px solid var(--line)}
.vzl .vz-chips2 span.y{background:var(--brand-soft); color:var(--brand-ink); border-color:var(--brand-line)}
.vzl .vz-chips2 span.n{background:var(--flag-soft); color:var(--flag); border-color:var(--flag-line)}
.vzl .vz-chips2.big span{font-size:13.5px; padding:5px 12px}
.vzl .vz-lbl{font-family:var(--ui); font-size:10.5px !important; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); margin:14px 0 0 !important}
.vzl .vz-hint,.vzl .vz-small{font-family:var(--ui); font-size:12px !important; color:var(--ink-3); margin-top:6px !important}
.vzl .vz-log{border:1px solid var(--line); background:var(--surface); padding:16px 16px 10px; margin:14px 0; max-width:none}
.vzl .vz-log .row{display:grid; grid-template-columns:120px minmax(0,1fr); gap:10px; align-items:center; margin-bottom:9px}
.vzl .vz-log .row b{font-family:var(--ui); font-size:12.5px; font-weight:700; line-height:1.25}
.vzl .vz-log .track{position:relative; height:24px; background:var(--sunk)}
.vzl .vz-log .rg{position:absolute; top:3px; bottom:3px; background:var(--brand); display:flex; align-items:center; padding:0 6px; min-width:6px; transform-origin:left; animation:vz-grow .9s cubic-bezier(.3,.7,.3,1) both}
.vzl .vz-log .rg span{font-family:var(--tt); font-size:10.5px; color:#fff; white-space:nowrap; font-weight:600}
.vzl .vz-log .rg.out span{position:absolute; left:calc(100% + 6px); color:var(--ink-2)}
.vzl .vz-log .axis{display:grid; grid-template-columns:120px minmax(0,1fr); gap:10px}
.vzl .vz-log .ticks{position:relative; height:26px; border-top:1px solid var(--line-2)}
.vzl .vz-log .ticks span{position:absolute; top:4px; transform:translateX(-50%); font-family:var(--tt); font-size:10.5px; color:var(--ink-3); white-space:nowrap}
.vzl .vz-log .ticks span:first-child{transform:none}
.vzl .vz-log .ticks span:last-child{transform:translateX(-100%)}
.vzl .vz-log .note{font-family:var(--ui); font-size:12px; color:var(--ink-3); max-width:none}
@keyframes vz-grow{from{transform:scaleX(0)} to{transform:none}}
@media (max-width:560px){.vzl .vz-log .row,.vzl .vz-log .axis{grid-template-columns:80px minmax(0,1fr)}
.vzl .vz-log .row b{font-size:11.5px}}
.vzl .vz-rank{display:flex; gap:6px; align-items:flex-end; margin:16px 0 0; max-width:420px}
.vzl .vz-rank div{flex:1 1 0; text-align:center; background:var(--brand-soft); border:1px solid var(--brand-line); color:var(--brand-ink); font-family:var(--ui); font-weight:800; font-size:13px; display:flex; flex-direction:column; justify-content:flex-end; padding:8px}
.vzl .vz-rank div small{font-weight:600; font-size:11px; color:var(--ink-2)}
.vzl .vz-rank .r1{height:52px}
.vzl .vz-rank .r2{height:78px}
.vzl .vz-rank .r3{height:104px; background:var(--brand); color:#fff}
.vzl .vz-rankcap{display:flex; justify-content:space-between; max-width:420px; font-family:var(--ui); font-size:10.5px; font-weight:800; color:var(--ink-3); margin-top:5px; letter-spacing:.08em; text-transform:uppercase}
.vzl .vz-exgrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:10px; margin:14px 0; max-width:none}
.vzl .vz-exgrid .vz-ex{margin:0; max-width:none}
.vzl .vz-stains{display:grid; gap:8px; margin:14px 0; max-width:none}
.vzl .vz-stn{display:grid; grid-template-columns:44px minmax(0,1fr); gap:12px; border:1px solid var(--line); background:var(--surface); padding:12px 14px; font-size:15px}
.vzl .vz-stn .sw{width:44px; height:44px; display:grid; place-items:center; font-family:var(--tt); font-weight:600; font-size:20px}
.vzl .vz-stn h5{font-family:var(--ui); font-size:13.5px; font-weight:800; margin:0 0 3px}
.vzl .vz-stn p{margin:0; max-width:none}
.vzl .vz-stn .bind{color:var(--ink-2); font-size:14.5px; margin-bottom:3px}
.vzl .vz-check .vz-tile{display:flex; gap:10px; align-items:flex-start; cursor:pointer; user-select:none}
.vzl .vz-check .bx{flex:none; width:20px; height:20px; border:2px solid var(--line-2); display:grid; place-items:center; margin-top:2px; transition:background .15s,border-color .15s}
.vzl .vz-check .vz-tile[aria-pressed="true"]{border-color:var(--brand-line); background:var(--brand-soft)}
.vzl .vz-check .vz-tile[aria-pressed="true"] .bx{background:var(--brand); border-color:var(--brand)}
.vzl .vz-check .vz-tile[aria-pressed="true"] .bx::after{content:""; width:5px; height:10px; border:solid #fff; border-width:0 2.5px 2.5px 0; transform:rotate(45deg) translate(-1px,-1px)}
.vzl .vz-tri{display:grid; grid-template-columns:minmax(0,210px) minmax(0,1fr); gap:20px; align-items:center; border:1px solid var(--line); background:var(--surface); padding:16px; margin:14px 0; max-width:none}
.vzl .vz-tri svg{width:100%; height:auto}
.vzl .vz-tri svg text{font-family:var(--ui); fill:var(--ink)}
.vzl .vz-tri .seg,.vzl .vz-tri .seg-t{transition:fill .25s; cursor:pointer}
.vzl .vz-tri .seg.on{fill:var(--brand)}
.vzl .vz-tri .seg-t.on{fill:#fff}
.vzl .vz-tri ul{margin:12px 0 0; padding-left:18px; font-size:15.5px}
.vzl .vz-triout{font-family:var(--tt); font-size:clamp(14px,1.8vw,17px); font-weight:600; padding:12px 14px; background:var(--brand-soft); color:var(--brand-ink); overflow-wrap:anywhere}
@media (max-width:600px){.vzl .vz-tri{grid-template-columns:1fr}
.vzl .vz-tri svg{max-width:200px; margin:0 auto; display:block}}
.vzl .vz-ladder{display:flex; align-items:center; flex-wrap:wrap; gap:6px; border:1px solid var(--line); background:var(--surface); padding:14px; margin:14px 0; max-width:none}
.vzl .vz-ladder .u{font-family:var(--tt); font-weight:600; font-size:15px; padding:8px 12px; background:var(--sunk)}
.vzl .vz-ladder .x{font-family:var(--tt); font-size:11.5px; color:var(--brand-ink); display:flex; flex-direction:column; align-items:center; line-height:1.1}
.vzl .vz-ladder .x::after{content:"→"; font-size:16px; color:var(--brand)}
.vzl .vz-cubes{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:14px 0; max-width:none}
.vzl .vz-cubes>div{border:1px solid var(--line); background:var(--surface); padding:12px; text-align:center}
.vzl .vz-cubes svg{height:70px; width:auto; max-width:100%}
.vzl .vz-cubes b{display:block; font-family:var(--ui); font-size:12.5px; margin-top:6px}
.vzl .vz-cubes span{font-family:var(--tt); font-size:14px; color:var(--brand-ink); font-weight:600}
.vzl .vz-view{background:var(--em-bg); overflow:hidden}
.vzl .vz-view svg{display:block; width:100%; height:auto}
.vzl .vz-lab{display:block; font-family:var(--ui); font-size:12px; font-weight:700; color:var(--ink-2); margin:10px 0 4px}
.vzl .vz-verdict.one{border-color:var(--flag-line); background:var(--flag-soft); color:var(--flag)}
.vzl .vz-more{margin:12px 0; max-width:none}
.vzl .vz-more>summary{cursor:pointer; font-family:var(--ui); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--brand-ink)}
.vzl .vz-em{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:10px; margin:14px 0; max-width:none}
.vzl .vz-em>div{border:1px solid var(--line); background:var(--surface); display:flex; flex-direction:column}
.vzl .vz-em svg{display:block; width:100%; height:auto; background:var(--em-bg)}
.vzl .vz-em .b{padding:10px 12px; font-size:14.5px; line-height:1.5}
.vzl .vz-em h5{font-family:var(--ui); font-size:13.5px; font-weight:800; margin:0 0 3px}
.vzl .vz-route{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px}
.vzl .vz-route .st{position:relative; background:var(--surface); border:1.5px solid var(--line); padding:10px 6px 9px; text-align:center; transition:border-color .3s,background .3s,transform .3s}
.vzl .vz-route .st svg{width:100%; max-width:74px; height:52px; display:block; margin:0 auto}
.vzl .vz-route .st b{display:block; font-family:var(--ui); font-size:12px; font-weight:800; margin-top:4px; line-height:1.2}
.vzl .vz-route .st .no{position:absolute; top:5px; left:7px; font-family:var(--tt); font-size:10.5px; color:var(--ink-3)}
.vzl .vz-route .st.on{border-color:var(--brand); background:var(--brand-soft); transform:translateY(-3px)}
.vzl .vz-route .st.on::after{content:""; position:absolute; top:-6px; right:-6px; width:14px; height:14px; border-radius:50%; background:var(--m-gp); box-shadow:0 0 0 3px var(--paper); animation:vz-pulse 1.4s ease-in-out infinite}
.vzl .vz-route .st.done{border-color:var(--brand-line)}
.vzl .vz-route .st:not(:last-child)::before{content:"→"; position:absolute; right:-9px; top:50%; transform:translate(50%,-50%); color:var(--ink-3); font-weight:800; font-size:13px}
@keyframes vz-pulse{50%{transform:scale(1.25)}}
@media (max-width:640px){.vzl .vz-route{grid-template-columns:repeat(3,minmax(0,1fr))}
.vzl .vz-route .st:nth-child(3)::before{display:none}}
@keyframes vz-beat{0%,100%{transform:rotate(-24deg)} 50%{transform:rotate(26deg)}}
@keyframes vz-mdrift{from{transform:translateX(-30px)} to{transform:translateX(60px)}}
.vzl .vz-cil line{transform-box:fill-box; transform-origin:50% 100%; animation:vz-beat 1.1s ease-in-out infinite}
.vzl .vz-mucus{animation:vz-mdrift 4.4s linear infinite alternate}
.vzl .vz-draw{display:block; width:100%; height:auto; max-width:320px; margin:4px 0 10px}
.vzl .vz-draw text{font-family:var(--ui); fill:var(--ink)}
.vzl .vz-cmp p{margin:0; max-width:none}
@keyframes vz-dash{to{stroke-dashoffset:-24}}
.vzl #linkSvg .flowln{stroke-dasharray:9 5; animation:vz-dash 1s linear infinite}
@keyframes vz-hop{0%,100%{transform:translateY(0)} 50%{transform:translateY(-16px)}}
.vzl .vz-hopping{animation:vz-hop 1.2s ease-in-out infinite}
.vzl .vz-rf{border:1px solid var(--line); background:var(--surface); font-family:var(--ui); font-size:14px; align-self:start}
.vzl .vz-rf>div{display:grid; grid-template-columns:110px 1fr; border-top:1px solid var(--line)}
.vzl .vz-rf>div:first-child{border-top:0}
.vzl .vz-rf>div>span{padding:8px 12px}
.vzl .vz-rf .h span{font-size:10.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3)}
.vzl .vz-rf>div>span:first-child{font-family:var(--tt)}
.vzl .vz-rf i{display:inline-block; width:12px; height:12px; border-radius:50%; margin-right:8px; vertical-align:-1px}
.vzl .vz-casc{display:grid; gap:0; margin:14px 0; max-width:none; border:1px solid var(--line)}
.vzl .vz-casc>div{display:grid; grid-template-columns:34px minmax(0,1fr); gap:10px; padding:9px 12px; border-top:1px solid var(--line); background:var(--surface); font-size:15.5px; align-items:baseline}
.vzl .vz-casc>div:first-child{border-top:0}
.vzl .vz-casc>div:nth-child(n+4){background:var(--flag-soft)}
.vzl .vz-casc b{font-family:var(--tt); color:var(--flag); font-size:12px}
.vzl .vz-mol{width:96px; height:56px; margin:0 auto; border:2px solid var(--c); border-radius:12px; display:flex; flex-direction:column; align-items:center; justify-content:center; font-family:var(--ui); font-weight:800; font-size:15px; color:var(--ink); background:var(--paper)}
.vzl .vz-mol small{font-family:var(--tt); font-weight:600; font-size:10.5px; color:var(--ink-3)}
.vzl .vz-tp{display:flex; flex-wrap:wrap; gap:6px; justify-content:center; padding:6px 0}
.vzl .vz-tp span{width:40px; height:40px; border-radius:50%; display:grid; place-items:center; font-family:var(--tt); font-size:11px; font-weight:600; color:#fff; animation:vz-pop .5s ease both}
.vzl .vz-tp span.g{background:var(--m-carr)}
.vzl .vz-tp span.o{background:var(--m-per)}
@keyframes vz-pop{from{transform:scale(.4); opacity:0} to{transform:none; opacity:1}}
.vzl .vz-tpkey{display:flex; flex-wrap:wrap; gap:8px 18px; justify-content:center; margin-top:10px; font-family:var(--ui); font-size:13px; color:var(--ink-2)}
.vzl .vz-tpkey i{display:inline-block; width:12px; height:12px; border-radius:50%; margin-right:6px; vertical-align:-1px}
.vzl .vz-tpkey i.g{background:var(--m-carr)}
.vzl .vz-tpkey i.o{background:var(--m-per)}
.vzl .vz-count{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr)); gap:8px}
.vzl .vz-count>div{border:1px solid var(--line); background:var(--surface); padding:10px 12px; font-family:var(--ui)}
.vzl .vz-count span{display:block; font-size:11px; font-weight:700; color:var(--ink-3); text-transform:uppercase; letter-spacing:.06em}
.vzl .vz-count b{display:block; font-family:var(--tt); font-size:17px; color:var(--brand-ink); margin-top:2px}
.vzl .vz-lev .lv-bars{display:flex; justify-content:center; gap:28px; align-items:flex-start}
.vzl .vz-lev .lv-bar{display:flex; flex-direction:column; align-items:center; width:110px; font-family:var(--ui)}
.vzl .vz-lev .lv-col{height:140px; width:46px; background:var(--sunk); display:flex; align-items:flex-end; border:1px solid var(--line)}
.vzl .vz-lev .lv-col i{display:block; width:100%; background:var(--brand); transition:height .8s cubic-bezier(.3,.7,.3,1)}
.vzl .vz-lev .lv-bar[data-m="GP"] i{background:var(--m-head)}
.vzl .vz-lev .lv-bar[data-m="TP"] i{background:var(--m-glu)}
.vzl .vz-lev .lv-bar[data-m="RuBP"] i{background:var(--m-chan)}
.vzl .vz-lev .lv-bar b{margin-top:6px; font-size:14px}
.vzl .vz-lev .lv-bar span{font-size:12px; color:var(--ink-2); text-align:center; min-height:32px}
.vzl .vz-lev .lv-bar em{font-style:normal; font-weight:800; color:var(--ink)}
.vzl .vz-lev .why{margin-top:12px; font-size:15px; max-width:var(--measure)}
.vzl mark.ms,.vzl mark.ms.hl-term,.vzl mark.ms.hl-val,.vzl mark.ms.hl-prec,.vzl mark.ms.hl-seq,.vzl mark.ms.k-mech,.vzl mark.ms.k-seq,.vzl mark.ms.k-val,.vzl mark.ms.k-prec{background:none !important; box-shadow:none !important; padding:0; border-radius:0; font-weight:700}
.vzl mark.ms{color:var(--brand-ink)}
.vzl mark.ms.hl-term{color:var(--hl-term-ink)}
.vzl mark.ms.hl-val{color:var(--hl-val-ink)}
.vzl mark.ms.hl-prec{color:var(--hl-prec-ink)}
.vzl mark.ms.hl-seq{color:var(--hl-seq-ink)}
.vzl .hlkey .k-mech i{background:var(--brand-ink) !important}
.vzl .hlkey .k-term i{background:var(--hl-term-ink) !important}
.vzl .hlkey .k-val i{background:var(--hl-val-ink) !important}
.vzl .hlkey .k-prec i{background:var(--hl-prec-ink) !important}
.vzl .hlkey .k-seq i{background:var(--hl-seq-ink) !important}
.vzl .hlkey i{border:0 !important; border-radius:50% !important; width:9px !important; height:9px !important}
.vzl .vz-stp ol.flow>li:not(.on):not(.done) mark.ms{color:inherit}
.vzl .vz-sig{margin:8px 0 0; display:grid; gap:0}
.vzl .vz-sig>div{display:grid; grid-template-columns:96px minmax(0,1fr); gap:8px; padding:6px 0; border-top:1px solid var(--line); font-size:14.5px; line-height:1.4}
.vzl .vz-sig>div:first-child{border-top:0}
.vzl .vz-sig dt{font-family:var(--ui); font-size:10.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); padding-top:2px}
.vzl .vz-sig dd{margin:0; font-family:var(--display)}
@media (prefers-reduced-motion: reduce){.vzl .vz-cil line,.vzl .vz-mucus,.vzl .vz-log .rg,.vzl .vz-route .st.on::after{animation:none !important}
.vzl .vz-fluid .pl,.vzl .vz-fluid .drift,.vzl .vz-run .go{animation:none !important}
.vzl [data-show],.vzl .vz-mv,.vzl .vz-cells .rbc,.vzl .vz-cells .proto,.vzl .vz-drawer,.vzl .vz-scrim{transition:none !important}}
.vzl .vz-route.r5{grid-template-columns:repeat(5,minmax(0,1fr))}
.vzl .vz-route .st small{display:block; font-family:var(--ui); font-size:11px; line-height:1.3; color:var(--ink-3); margin-top:3px}
.vzl .vz-route .st b{margin-top:10px}
@media (max-width:640px){.vzl .vz-route.r5{grid-template-columns:repeat(2,minmax(0,1fr))}
.vzl .vz-route.r5 .st:nth-child(3)::before{display:block}
.vzl .vz-route.r5 .st:nth-child(2n)::before{display:none}}
.vzl .vz-return{margin-top:12px; padding:8px 12px; border:1.5px dashed var(--line-2); font-family:var(--ui); font-size:12.5px; font-weight:700; color:var(--ink-3); text-align:center; transition:border-color .3s,color .3s,background .3s}
.vzl .vz-return.on{border-color:var(--brand); color:var(--brand-ink); background:var(--brand-soft)}
.vzl .vz-tile.yes{border-left:3px solid var(--brand)}
.vzl .vz-tile.no{border-left:3px solid var(--flag)}
.vzl .vz-tile.yes h5::before{content:"✓ "; color:var(--brand)}
.vzl .vz-tile.no h5::before{content:"✗ "; color:var(--flag)}
.vzl #gluChain{transition:opacity .25s}
.vzl #fbSvg .tr{stroke-dasharray:1400; stroke-dashoffset:1400; animation:vz-draw 3.2s ease-out forwards}
.vzl #fbSvg .tr2{animation-delay:.6s}
@keyframes vz-draw{to{stroke-dashoffset:0}}
.vzl #skinSvg .vs{transition:stroke-width .5s ease}
.vzl #skinSvg .fade{transition:opacity .5s}
.vzl #skinSvg .flow-dot{animation:vz-skinflow 2.2s linear infinite}
@keyframes vz-skinflow{from{offset-distance:0%} to{offset-distance:100%}}
.vzl #synSvg .nt{transition:transform .8s ease, opacity .5s}
.vzl #cascSvg .ck{transition:opacity .4s}
@media (prefers-reduced-motion:reduce){.vzl #fbSvg .tr{animation:none; stroke-dashoffset:0}
.vzl #skinSvg .flow-dot{animation:none}}
@media (max-width:600px){.vzl #bindSvg text.tb,.vzl #synSvg text.tb,.vzl #cascSvg text.tb,.vzl #fbSvg text.tb,.vzl #ecSvg text.tb,.vzl #skinSvg text.tb{font-size:17px}
.vzl #bindSvg text.ts,.vzl #synSvg text.ts,.vzl #cascSvg text.ts,.vzl #fbSvg text.ts,.vzl #ecSvg text.ts,.vzl #skinSvg text.ts{font-size:14.5px}}
.vzl ol.vz-mini{margin:6px 0 0; padding-left:1.25em; display:grid; gap:6px}
.vzl ol.vz-mini li{padding-left:2px}
.vzl .vz-path{align-items:center; row-gap:8px}
.vzl .vz-path span{position:relative}
.vzl .vz-path span:not(:last-child){margin-right:14px}
.vzl .vz-path span:not(:last-child)::after{content:"→"; position:absolute; right:-13px; top:50%; transform:translateY(-50%); color:var(--ink-3); font-weight:800}
.vzl #kfBox .vz-tile{transition:background .3s}
.vzl #kfBox .up{color:var(--flag); font-weight:800}
.vzl #kfBox .dn{color:var(--m-head); font-weight:800}
.vzl #dialSvg .flowb{animation:vz-dflow 2.4s linear infinite}
.vzl #dialSvg .flowf{animation:vz-dflow 2.4s linear infinite reverse}
@keyframes vz-dflow{from{stroke-dashoffset:0} to{stroke-dashoffset:-28}}
.vzl #dialSvg .mv{animation:vz-cross 2.6s ease-in-out infinite}
@keyframes vz-cross{0%{transform:translateY(0); opacity:0} 15%{opacity:1} 85%{opacity:1} 100%{transform:translateY(62px); opacity:0}}
.vzl #henleSvg .lv{transition:opacity .4s}
.vzl #ufSvg .lv,.vzl #adhSvg .lv,.vzl #pregSvg .lv,.vzl #ureaSvg .lv{transition:opacity .4s, transform .8s ease}
@media (prefers-reduced-motion:reduce){.vzl #dialSvg .flowb,.vzl #dialSvg .flowf,.vzl #dialSvg .mv{animation:none}}
@media (max-width:600px){.vzl #ureaSvg text.tb,.vzl #ufSvg text.tb,.vzl #henleSvg text.tb,.vzl #adhSvg text.tb,.vzl #pregSvg text.tb,.vzl #dialSvg text.tb{font-size:17px}
.vzl #ureaSvg text.ts,.vzl #ufSvg text.ts,.vzl #henleSvg text.ts,.vzl #adhSvg text.ts,.vzl #pregSvg text.ts,.vzl #dialSvg text.ts{font-size:14.5px}
.vzl #lobx .vz-badge circle,.vzl #kidx .vz-badge circle,.vzl #nepx .vz-badge circle{r:15px}
.vzl #lobx .vz-badge text,.vzl #kidx .vz-badge text,.vzl #nepx .vz-badge text{font-size:15px !important}}
.vzl .vz-bridge{grid-template-columns:minmax(0,1fr) !important}
.vzl .vz-bridge p{min-width:0}
.vzl .vz-go{justify-self:start; white-space:normal; max-width:100%}
.vzl .vz-tile .vz-sig>div{grid-template-columns:minmax(0,1fr); gap:2px}
.vzl .vz-meter{margin:26px 0 4px}
.vzl .vz-meter .track{position:relative; height:22px; background:var(--sunk); border:1px solid var(--line-2)}
.vzl .vz-meter .track i{position:absolute; left:0; top:0; bottom:0; width:0; background:var(--m-head); transition:width .45s ease, background .3s}
.vzl .vz-meter .track i.go{background:var(--brand)}
.vzl .vz-meter .thr{position:absolute; left:60%; top:-6px; bottom:-6px; border-left:2px dashed var(--flag)}
.vzl .vz-meter .thr::after{content:"threshold"; position:absolute; left:6px; top:-16px; font-family:var(--ui); font-size:11px; font-weight:700; color:var(--flag)}
.vzl .vz-codons{display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:6px 0}
.vzl .vz-codons .lab{font-family:var(--ui); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); width:100px}
.vzl .vz-codons span:not(.lab){font-family:var(--tt); font-size:15px; font-weight:700; padding:5px 10px; border:1.5px solid var(--line-2); background:var(--surface); min-width:54px; text-align:center; transition:background .3s,border-color .3s}
.vzl .vz-codons.aa span:not(.lab){font-family:var(--ui); font-size:13px}
.vzl .vz-codons span.ch{border-color:var(--flag); background:var(--flag-soft); color:var(--flag)}
.vzl .vz-codons span.gone{opacity:.35}
@media (max-width:600px){.vzl .vz-codons .lab{width:100%}
.vzl .vz-codons span:not(.lab){min-width:0; flex:1 1 0; padding:5px 4px; font-size:13px}}
@media (max-width:600px){.vzl .vz-fig svg.grow text.tb{font-size:17px}
.vzl .vz-fig svg.grow text.ts{font-size:14.5px}
.vzl .vz-x .vz-badge circle{r:15px}
.vzl .vz-x .vz-badge text{font-size:15px !important}}
.vzl .vz-run{display:inline}
.vzl .vzb{display:block}
.vzl .vzl-body{display:block; min-width:0}
.vzl .vzl-loading{padding:28px 4px; color:var(--ink-3); font-size:14px}
.vzl .prose .vzb>h4.vz-q:first-of-type{margin-top:14px}
.vzl button.vz-go{font:inherit; cursor:pointer; border:0}
