:root{--ground:#0a0b0e;--paper:#12141a;--ink:#e9e4d6;--ink-2:#a49e8f;--ink-3:#6f695d;--line:#262931;--line-2:#1b1e24;--accent:#e8944a;--accent-soft:#f2b078;--accent-contrast:#1a1108;--field:#0e1013;--danger:#ff7b72;--font-display:georgia, "iowan old style", "times new roman", serif;--font-body:georgia, "iowan old style", "times new roman", serif;--font-mono:"cascadia code", consolas, "sf mono", menlo, monospace;--ease:cubic-bezier(.25, .6, .3, 1)}:root[data-theme=light]{--ground:#f4f0e6;--paper:#fbf8f1;--ink:#211e18;--ink-2:#5c574b;--ink-3:#8d8677;--line:#d9d2c0;--line-2:#e8e2d2;--accent:#a63d16;--accent-soft:#c96a41;--accent-contrast:#fdf9f2;--field:#fff;--danger:#a3231a}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--ground);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}button{font:inherit}.cvz-kicker{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 .45rem;font-size:.66rem}.cvz-loading{min-height:60vh;font-family:var(--font-mono);color:var(--ink-3);place-items:center;font-size:.8rem;display:grid}.cvz-banner{color:var(--ink-2);border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--paper);border-radius:0 4px 4px 0;padding:.7rem .9rem;font-size:.88rem;line-height:1.55}.cvz-banner code,.cvz-empty code{font-family:var(--font-mono);color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);border-radius:3px;padding:.05em .3em;font-size:.84em}.cvz-empty{color:var(--ink-2);padding:1.2rem .4rem;font-size:.92rem}.cvz-gate{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.cvz-gate__card{background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--accent);width:min(430px,100%);padding:2rem 2.1rem 1.9rem;box-shadow:0 18px 50px -38px #211e188c}.cvz-gate__title{font-family:var(--font-display);margin:0 0 .4rem;font-size:1.9rem}.cvz-gate__sub{color:var(--ink-2);margin:0 0 1.4rem;font-size:.9rem;line-height:1.55}.cvz-gate__label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.35rem;font-size:.62rem;display:block}.cvz-gate__row{gap:.5rem;display:flex}.cvz-gate__row input{min-width:0;font-family:var(--font-mono);border:1px solid var(--line);background:var(--field);color:var(--ink);border-radius:3px;flex:1;padding:.5rem .65rem;font-size:.9rem}.cvz-gate__row input:focus{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.cvz-gate__row button{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--accent);background:var(--accent);color:var(--accent-contrast);cursor:pointer;transition:background .15s var(--ease);border-radius:3px;padding:.5rem 1.05rem;font-size:.78rem}.cvz-gate__row button:hover{background:var(--accent-soft)}.cvz-gate__row button:disabled{opacity:.55;cursor:default}.cvz-gate__error{font-family:var(--font-mono);color:var(--danger);margin:.8rem 0 0;font-size:.74rem}.cvz-index{max-width:860px;margin:0 auto;padding:3.2rem 1.5rem 4rem}.cvz-masthead{border-bottom:2px solid var(--ink);align-items:flex-start;gap:1rem;margin-bottom:.4rem;padding-bottom:1.4rem;display:flex}.cvz-masthead>div{flex:1}.cvz-masthead h1{font-family:var(--font-display);margin:0 0 .5rem;font-size:2.6rem;line-height:1.05}.cvz-masthead__sub{color:var(--ink-2);max-width:46ch;margin:0;font-size:.95rem;line-height:1.55}.cvz-lock{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--line);cursor:pointer;transition:all .15s var(--ease);background:0 0;border-radius:99px;padding:.3rem .75rem;font-size:.64rem}.cvz-lock:hover{color:var(--accent);border-color:var(--accent)}.cvz-doclist{margin:1rem 0 0;padding:0;list-style:none}.cvz-doclist__row{border-bottom:1px solid var(--line-2);color:inherit;transition:background .15s var(--ease);align-items:baseline;gap:.9rem;padding:.85rem .3rem;text-decoration:none;display:flex}.cvz-doclist__row:hover{background:var(--paper)}.cvz-doclist__title{font-family:var(--font-display);color:var(--ink);font-size:1.15rem}.cvz-doclist__row:hover .cvz-doclist__title{color:var(--accent)}.cvz-doclist__project{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:99px;padding:.12rem .5rem;font-size:.62rem}.cvz-doclist__date{font-family:var(--font-mono);color:var(--ink-3);margin-left:auto;font-size:.68rem}.cvz-doclist__row--sample .cvz-doclist__title{font-style:italic}.cvz-viewer{max-width:1720px;margin:0 auto;padding:1.6rem 1.6rem 3rem}.cvz-viewer__head{align-items:flex-end;gap:1rem;margin-bottom:1.1rem;display:flex}.cvz-viewer__titles{flex:1;min-width:0}.cvz-viewer__titles h1{font-family:var(--font-display);margin:0;font-size:1.7rem;line-height:1.1}.cvz-viewer__meta{font-family:var(--font-mono);color:var(--ink-3);white-space:nowrap;font-size:.66rem}.cvz-back{font-family:var(--font-mono);color:var(--ink-2);border:1px solid var(--line);transition:all .15s var(--ease);white-space:nowrap;border-radius:99px;align-self:center;padding:.3rem .75rem;font-size:.7rem;text-decoration:none}.cvz-back:hover{color:var(--accent);border-color:var(--accent)}.cvz-ide{--ide-bg:#0d1117;--ide-panel:#0a0e14;--ide-chrome:#161b22;--ide-hi:#21262d;--ide-text:#c9d1d9;--ide-dim:#8b949e;--ide-strong:#f0f6fc;--ide-line:#2b313a;--ide-line2:#21262d;--tk-kw:#ff7b72;--tk-str:#a5d6ff;--tk-com:#8b949e;--tk-num:#79c0ff;--tk-fn:#d2a8ff;--tk-bi:#ffa657;--tk-self:#ff9d76;--tk-op:#c9d1d9;--tk-dec:#d2a8ff;--accent:#e8944a;--accent-ink:#f2b078;--on-accent:#1a1108;--signal:#56d364;border:1px solid var(--ide-line);background:var(--ide-bg);border-radius:8px;grid-template-columns:232px minmax(0,1fr);display:grid;overflow:hidden;box-shadow:0 24px 60px -40px #000000b3}.cvz-explorer{background:var(--ide-panel);border-right:1px solid var(--ide-line);flex-direction:column;padding-bottom:.8rem;display:flex}.cvz-explorer__head{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ide-dim);padding:.75rem .9rem .5rem;font-size:.6rem}.cvz-explorer__root{font-family:var(--font-mono);letter-spacing:.02em;color:var(--ide-text);align-items:center;gap:.3rem;padding:.2rem .7rem .35rem;font-size:.72rem;font-weight:600;display:flex}.cvz-explorer__foot{color:var(--ide-dim);margin:auto .9rem 0;padding-top:.8rem;font-size:.68rem;line-height:1.5}.cvz-tree{flex-direction:column;display:flex}.cvz-tree__row{text-align:left;cursor:pointer;width:100%;font-family:var(--font-mono);color:var(--ide-text);transition:background .15s var(--ease);background:0 0;border:0;align-items:center;gap:.4rem;padding:.28rem .7rem;font-size:.76rem;display:flex}.cvz-tree__row:hover{background:var(--ide-hi)}.cvz-tree__caret{color:var(--ide-dim);transition:transform .15s var(--ease);flex:none}.cvz-tree__caret--open{transform:rotate(90deg)}.cvz-tree__folder-ico{background:#7d8590;border-radius:1.5px 3px 2px 2px;flex:none;width:12px;height:10px}.cvz-tree__name{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.cvz-tree__file-ico{letter-spacing:-.02em;color:#0d1117;background:#ffd343;border-radius:2px;flex:none;place-items:center;min-width:15px;height:15px;padding:0 2px;font-size:.5rem;font-weight:700;display:grid}.cvz-tree__loc{color:var(--ide-dim);font-size:.6rem}.cvz-tree__row--active{background:color-mix(in srgb, var(--accent) 20%, var(--ide-hi));box-shadow:inset 2px 0 0 var(--accent);color:var(--ide-strong)}.cvz-editor{background:var(--ide-bg);flex-direction:column;min-width:0;display:flex}.cvz-tabs{background:var(--ide-panel);border-bottom:1px solid var(--ide-line);align-items:stretch;gap:.4rem;padding-right:.6rem;display:flex}.cvz-tab{font-family:var(--font-mono);color:var(--ide-dim);border-right:1px solid var(--ide-line);align-items:center;gap:.45rem;padding:.5rem .85rem;font-size:.74rem;display:inline-flex}.cvz-tab--active{background:var(--ide-bg);color:var(--ide-strong);box-shadow:inset 0 2px 0 var(--accent)}.cvz-tab__ico{color:#0d1117;background:#ffd343;border-radius:2px;place-items:center;min-width:15px;height:15px;padding:0 2px;font-size:.5rem;font-weight:700;display:grid}.cvz-tab__dot{background:var(--ide-dim);border-radius:50%;width:7px;height:7px}.cvz-tabs__spacer{flex:1}.cvz-viewtoggle{background:var(--ide-hi);border-radius:6px;align-self:center;gap:.2rem;padding:.2rem;display:inline-flex}.cvz-viewtoggle__opt{font-family:var(--font-mono);color:var(--ide-dim);cursor:pointer;transition:all .15s var(--ease);background:0 0;border:0;border-radius:4px;padding:.3rem .6rem;font-size:.68rem}.cvz-viewtoggle__opt:hover{color:var(--ide-text)}.cvz-viewtoggle__opt--on{background:var(--accent);color:var(--on-accent);font-weight:600}.cvz-breadcrumb{font-family:var(--font-mono);color:var(--ide-dim);border-bottom:1px solid var(--ide-line2);flex-wrap:wrap;align-items:center;gap:.3rem;padding:.45rem .9rem;font-size:.68rem;display:flex}.cvz-breadcrumb__sep{color:var(--ide-dim);padding:0 .15rem 0 .35rem}.cvz-breadcrumb__meta{color:var(--accent-ink);margin-left:auto}.cvz-editor__body{padding:.4rem}.cvz-code{background:var(--ide-bg);border:1px solid var(--ide-line2);border-radius:6px;overflow:hidden}.cvz-code__pre{margin:0;padding:.7rem 0;overflow-x:auto}.cvz-code--tall .cvz-code__pre{max-height:min(72vh,900px);overflow-y:auto}.cvz-code__row{align-items:flex-start;min-height:1.15rem;display:flex}.cvz-code__row:hover{background:#b1bac40f}.cvz-code__row--hi{background:color-mix(in srgb, var(--accent) 13%, transparent);box-shadow:inset 2px 0 0 var(--accent)}.cvz-code__row--hi:hover{background:color-mix(in srgb, var(--accent) 17%, transparent)}.cvz-code__ln{text-align:right;width:2.9rem;font-family:var(--font-mono);color:#495363;-webkit-user-select:none;user-select:none;flex:none;padding-right:.9rem;font-size:.72rem;line-height:1.55}.cvz-code__line{font-family:var(--font-mono);color:var(--ide-text);white-space:pre;padding-right:1rem;font-size:.76rem;line-height:1.55}.cvz-tok--kw{color:var(--tk-kw)}.cvz-tok--str{color:var(--tk-str)}.cvz-tok--com{color:var(--tk-com);font-style:italic}.cvz-tok--num{color:var(--tk-num)}.cvz-tok--fn{color:var(--tk-fn)}.cvz-tok--bi{color:var(--tk-bi)}.cvz-tok--self{color:var(--tk-self);font-style:italic}.cvz-tok--dec{color:var(--tk-dec)}.cvz-tok--op{color:var(--tk-op)}.cvz-chapters{flex-direction:column;display:flex}.cvz-chapter{border-bottom:1px solid var(--ide-line);padding:1.3rem .5rem 1.6rem}.cvz-chapter:last-child{border-bottom:0}.cvz-chapter__head{flex-wrap:wrap;align-items:center;gap:.55rem;margin-bottom:.8rem;display:flex}.cvz-chapter__n{background:var(--accent);width:1.5rem;height:1.5rem;color:var(--on-accent);font-family:var(--font-mono);border-radius:6px;flex:none;place-items:center;font-size:.78rem;font-weight:700;display:grid}.cvz-chapter__title{font-family:var(--font-display);color:var(--ide-strong);margin:0;font-size:1.15rem;font-weight:600}.cvz-chapter__tag{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:99px;padding:.15rem .5rem;font-size:.6rem}.cvz-chapter__lines{font-family:var(--font-mono);color:var(--ide-dim);margin-left:auto;font-size:.64rem}.cvz-chapter__stale{font-family:var(--font-mono);color:#ffd28a;background:#d2992224;border:1px solid #d2992273;border-radius:6px;margin:0 0 .8rem;padding:.45rem .65rem;font-size:.7rem;line-height:1.5}.cvz-chapter__stale code{color:#ffd28a}.cvz-chapter__code{margin-bottom:.9rem}.cvz-chapter__expl{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start;gap:1.2rem;display:grid}.cvz-chapter__vizcol{min-width:0}.cvz-prose{color:var(--ide-text);max-width:68ch;margin-bottom:.9rem;font-size:.9rem;line-height:1.62}.cvz-prose p{margin:0 0 .6rem}.cvz-prose p:last-child{margin-bottom:0}.cvz-prose strong{color:var(--ide-strong);font-weight:600}.cvz-prose em{color:var(--ide-text)}.cvz-prose code,.cvz-callout code{font-family:var(--font-mono);color:var(--accent-ink);background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:4px;padding:.04em .32em;font-size:.82em}.cvz-devnotes{background:var(--ide-panel);border:1px solid var(--ide-line);border-left:2px solid var(--accent);border-radius:6px;margin:0 0 1rem}.cvz-devnotes__summary{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s var(--ease);border-radius:6px;align-items:center;gap:.55rem;padding:.5rem .8rem;list-style:none;display:flex}.cvz-devnotes__summary::-webkit-details-marker{display:none}.cvz-devnotes__summary:hover{background:var(--ide-hi)}.cvz-devnotes[open] .cvz-devnotes__summary{border-radius:6px 6px 0 0}.cvz-devnotes__chev{color:var(--accent-ink);transition:transform .15s var(--ease);flex:none}.cvz-devnotes[open] .cvz-devnotes__chev{transform:rotate(90deg)}.cvz-devnotes__kicker{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);font-size:.62rem}.cvz-devnotes__count{font-family:var(--font-mono);color:var(--on-accent);background:var(--accent);border-radius:99px;padding:.06rem .42rem;font-size:.6rem;font-weight:700}.cvz-devnotes__hint{color:var(--ide-dim);font-size:.74rem;font-style:italic}.cvz-devnotes__body{flex-direction:column;gap:.8rem;padding:.3rem .95rem .85rem;display:flex}.cvz-devnote{border-top:1px solid var(--ide-line2);padding-top:.7rem}.cvz-devnote__head{flex-wrap:wrap;align-items:baseline;gap:.5rem;margin-bottom:.35rem;display:flex}.cvz-devnote__tag{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid;border-radius:99px;flex:none;align-self:center;padding:.1rem .45rem;font-size:.58rem}.cvz-devnote__tag--decision{color:var(--accent-ink);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.cvz-devnote__tag--tradeoff{color:var(--tk-fn);border-color:color-mix(in srgb, var(--tk-fn) 40%, transparent)}.cvz-devnote__tag--gotcha{color:#e3c37c;border-color:#d299228c}.cvz-devnote__tag--todo{color:var(--signal);border-color:color-mix(in srgb, var(--signal) 40%, transparent)}.cvz-devnote__tag--context{color:var(--ide-dim);border-color:var(--ide-line)}.cvz-devnote__title{font-family:var(--font-display);color:var(--ide-strong);margin:0;font-size:.95rem;font-weight:600}.cvz-devnote__date{font-family:var(--font-mono);color:var(--ide-dim);margin-left:auto;font-size:.62rem}.cvz-devnote__p{color:var(--ide-text);max-width:78ch;margin:0 0 .45rem;font-size:.84rem;line-height:1.6}.cvz-devnote__p:last-child{margin-bottom:0}.cvz-devnote__p code{font-family:var(--font-mono);color:var(--accent-ink);background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:4px;padding:.04em .32em;font-size:.82em}.cvz-viz{border-radius:8px;margin:0 0 .8rem}.cvz-viz:last-child{margin-bottom:0}.cvz-viz--linked{cursor:help}.cvz-viz--linked:hover,.cvz-viz--linked:focus-visible{outline:1px dashed color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:4px}.cvz-viz--linked:focus-visible{outline-style:solid}.cvz-btn{font-family:var(--font-mono);color:var(--ide-text);background:var(--ide-hi);border:1px solid var(--ide-line);cursor:pointer;transition:all .15s var(--ease);border-radius:6px;padding:.35rem .7rem;font-size:.72rem}.cvz-btn:hover{border-color:var(--accent);color:var(--ide-strong)}.cvz-btn--go{background:var(--accent);color:var(--on-accent);border-color:#0000;font-weight:600}.cvz-player{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.7rem;display:flex}.cvz-player--tight{margin-top:.5rem}.cvz-scrub{min-width:120px;accent-color:var(--accent);flex:1}.cvz-motionnote{color:var(--ide-dim);margin:.5rem 0 0;font-size:.72rem}.cvz-orderpick{flex-wrap:wrap;gap:.3rem;margin-bottom:.7rem;display:flex}.cvz-orderpick__btn{font-family:var(--font-mono);color:var(--ide-text);background:var(--ide-hi);border:1px solid var(--ide-line);cursor:pointer;min-width:2.1rem;transition:all .15s var(--ease);border-radius:6px;padding:.28rem .55rem;font-size:.72rem}.cvz-orderpick__btn:hover{border-color:var(--accent)}.cvz-orderpick__btn--active{background:var(--accent);color:var(--on-accent);border-color:#0000;font-weight:700}.cvz-flow{width:100%;height:auto;margin-inline:auto;display:block}.cvz-flow__box{fill:var(--ide-hi);stroke:var(--ide-line)}.cvz-flow__box--io{fill:color-mix(in srgb, var(--accent) 16%, var(--ide-hi));stroke:color-mix(in srgb, var(--accent) 45%, transparent)}.cvz-flow__t{fill:var(--ide-strong);font-family:var(--font-mono);text-anchor:middle;font-size:9px}.cvz-flow__st{fill:var(--ide-dim);font-family:var(--font-mono);text-anchor:middle;font-size:6.5px}.cvz-flow__wire{fill:none;stroke:color-mix(in srgb, var(--accent) 55%, var(--ide-dim));stroke-width:1.3px}.cvz-flow--live .cvz-flow__wire{stroke-dasharray:4 3;animation:.9s linear infinite cvz-dash}.cvz-flow__wire--skip{stroke:var(--signal);stroke-dasharray:3 3;opacity:.75;animation:none}.cvz-flow__elabel{fill:var(--signal);font-family:var(--font-mono);font-size:7px}.cvz-flow__arrowhead{fill:color-mix(in srgb, var(--accent) 70%, var(--ide-dim))}.cvz-flow__pulse{fill:var(--accent)}.cvz-flow__op{fill:color-mix(in srgb, var(--accent) 22%, var(--ide-chrome));stroke:var(--accent);stroke-width:1.3px}.cvz-flow__op-t{fill:var(--ide-strong);font-family:var(--font-mono);text-anchor:middle;font-size:11px}@keyframes cvz-dash{to{stroke-dashoffset:-14px}}.cvz-seq{flex-direction:column;display:flex}.cvz-vol{flex-wrap:wrap;gap:.8rem;display:flex}.cvz-slice{background:var(--ide-panel);border:1px solid var(--ide-line);border-radius:6px;padding:.5rem}.cvz-slice__z{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ide-dim);margin-bottom:.35rem;font-size:.58rem;display:block}.cvz-slice__grid{gap:3px;display:grid}.cvz-vox{aspect-ratio:1;min-width:26px;font-family:var(--font-mono);color:var(--ide-text);cursor:pointer;background:color-mix(in srgb, var(--accent) calc(var(--t,0) * 55%), var(--ide-hi));transition:transform .12s var(--ease), box-shadow .12s var(--ease);border-radius:3px;place-items:center;font-size:.66rem;display:grid}.cvz-vox:hover{transform:translateY(-1px)}.cvz-vox--void{cursor:default;color:var(--ide-dim);background:var(--ide-panel)}.cvz-vox--seen{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 55%, transparent)}.cvz-vox--active{background:var(--accent);color:var(--on-accent);box-shadow:0 0 0 2px var(--accent), 0 0 12px color-mix(in srgb, var(--accent) 60%, transparent);animation:cvz-pop .3s var(--ease);font-weight:700}.cvz-unroll{font-family:var(--font-mono);color:var(--ide-dim);text-align:center;margin:.55rem 0;font-size:.66rem}.cvz-strip{background:var(--ide-panel);border:1px solid var(--ide-line);border-radius:6px;flex-wrap:wrap;gap:3px;padding:.5rem;display:flex}.cvz-strip__cell{cursor:pointer;background:color-mix(in srgb, var(--accent) calc(var(--t,0) * 55%), var(--ide-hi));width:30px;height:34px;transition:transform .12s var(--ease), box-shadow .12s var(--ease);border-radius:3px;flex-direction:column;justify-content:center;align-items:center;line-height:1.1;display:flex}.cvz-strip__cell:hover{transform:translateY(-1px)}.cvz-strip__cell--seen{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 55%, transparent)}.cvz-strip__cell--active{background:var(--accent);box-shadow:0 0 0 2px var(--accent), 0 0 12px color-mix(in srgb, var(--accent) 60%, transparent)}.cvz-strip__t{font-family:var(--font-mono);color:var(--ide-text);font-size:.66rem;font-weight:600}.cvz-strip__cell--active .cvz-strip__t{color:var(--on-accent)}.cvz-strip__c{font-family:var(--font-mono);color:var(--ide-dim);font-size:.5rem}.cvz-strip__cell--active .cvz-strip__c{color:var(--on-accent);opacity:.8}@keyframes cvz-pop{0%{transform:scale(.82)}to{transform:scale(1)}}.cvz-steps__list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.cvz-steps__item{color:var(--ide-text);cursor:pointer;transition:background .15s var(--ease);border-radius:6px;align-items:center;gap:.55rem;padding:.3rem .45rem;font-size:.82rem;display:flex}.cvz-steps__item:hover{background:var(--ide-hi)}.cvz-steps__item b{background:color-mix(in srgb, var(--accent) 20%, var(--ide-hi));width:1.35rem;height:1.35rem;color:var(--accent-ink);font-family:var(--font-mono);transition:all .15s var(--ease);border-radius:50%;flex:none;place-items:center;font-size:.68rem;display:grid}.cvz-steps__item--on{background:color-mix(in srgb, var(--accent) 10%, transparent)}.cvz-steps__item--on b{background:var(--accent);color:var(--on-accent)}.cvz-steps__label{flex:1;min-width:0}.cvz-steps__item code{font-family:var(--font-mono);color:var(--tk-str);background:var(--ide-bg);border:1px solid var(--ide-line2);white-space:nowrap;border-radius:4px;margin-left:auto;padding:.12rem .4rem;font-size:.7rem}.cvz-compare{flex-direction:column;gap:.7rem;display:flex}.cvz-toggle{background:var(--ide-hi);border-radius:8px;align-self:flex-start;gap:.25rem;padding:.25rem;display:inline-flex}.cvz-toggle__opt{font-family:var(--font-mono);color:var(--ide-dim);cursor:pointer;transition:all .15s var(--ease);background:0 0;border:0;border-radius:6px;padding:.35rem .7rem;font-size:.72rem}.cvz-toggle__opt:hover{color:var(--ide-text)}.cvz-toggle__opt--on{background:var(--accent);color:var(--on-accent);font-weight:600}.cvz-compare__call{font-family:var(--font-mono);color:var(--tk-str);background:var(--ide-bg);border:1px solid var(--ide-line);white-space:pre;border-radius:6px;padding:.5rem .6rem;font-size:.72rem;display:block;overflow-x:auto}.cvz-kv{border:1px solid var(--ide-line);border-radius:6px;flex-direction:column;margin:0;display:flex;overflow:hidden}.cvz-kv__row{grid-template-columns:7rem 1fr;gap:.5rem;padding:.35rem .6rem;display:grid}.cvz-kv__row:nth-child(odd){background:var(--ide-panel)}.cvz-kv dt{font-family:var(--font-mono);color:var(--ide-dim);overflow-wrap:break-word;font-size:.66rem}.cvz-kv dd{color:var(--ide-text);margin:0;font-size:.76rem}.cvz-kvcard__caption{font-family:var(--font-mono);color:var(--ide-dim);margin:.4rem 0 0;font-size:.62rem}.cvz-term{border:1px solid var(--ide-line);background:#06090f;border-radius:6px;overflow:hidden}.cvz-term__bar{background:var(--ide-chrome);border-bottom:1px solid var(--ide-line);align-items:center;gap:.35rem;padding:.4rem .6rem;display:flex}.cvz-term__dot{background:#55606e;border-radius:50%;width:8px;height:8px}.cvz-term__dot:first-child{background:#ff5f57}.cvz-term__dot:nth-child(2){background:#febc2e}.cvz-term__dot:nth-child(3){background:#28c840}.cvz-term__title{font-family:var(--font-mono);color:var(--ide-dim);margin-left:.4rem;font-size:.64rem}.cvz-term__body{margin:0;padding:.6rem .7rem;overflow-x:auto}.cvz-term__ln{font-family:var(--font-mono);color:var(--ide-text);white-space:pre;font-size:.7rem;line-height:1.5}.cvz-term__ln--dim{color:var(--ide-dim)}.cvz-term__ln--ok{color:#56d364}.cvz-term__ln--err{color:#ff7b72}.cvz-term__ln--pass{color:#06141c;background:#56d364;border-radius:3px;padding:.1rem .35rem;font-weight:700;display:inline-block}.cvz-table__wrap{border:1px solid var(--ide-line);border-radius:6px;overflow-x:auto}.cvz-table{border-collapse:collapse;width:100%}.cvz-table th{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;text-align:left;color:var(--ide-dim);background:var(--ide-panel);border-bottom:1px solid var(--ide-line);padding:.4rem .6rem;font-size:.58rem}.cvz-table td{font-family:var(--font-mono);color:var(--ide-text);border-bottom:1px solid var(--ide-line2);padding:.35rem .6rem;font-size:.72rem}.cvz-table tr:last-child td{border-bottom:0}.cvz-table td:first-child{color:var(--accent-ink)}.cvz-table tbody tr:hover td{background:var(--ide-hi)}.cvz-stats{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.5rem;display:grid}.cvz-stat{border:1px solid var(--ide-line);background:var(--ide-panel);border-radius:6px;padding:.55rem .65rem}.cvz-stat b{font-family:var(--font-display);color:var(--ide-strong);font-size:1.15rem;display:block}.cvz-stat span{font-family:var(--font-mono);color:var(--ide-dim);letter-spacing:.04em;font-size:.6rem}.cvz-stat--accent b{color:var(--accent-ink)}.cvz-callout{color:var(--ide-dim);border-left:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);border-radius:0 6px 6px 0;margin:0;padding:.6rem .75rem;font-size:.8rem;line-height:1.55}.cvz-callout strong{color:var(--ide-strong)}.cvz-callout--warn{color:#e3c37c;background:#d299221a;border-left-color:#d29922}.cvz-callout--warn code{color:#ffd28a;background:#d2992229}.cvz-diagram{border:1px solid var(--ide-line);background:var(--ide-panel);border-radius:6px;margin:0;padding:.6rem .7rem}.cvz-diagram__svg{color:var(--ide-text)}.cvz-diagram__svg svg{width:100%;height:auto;display:block}.cvz-diagram__caption{font-family:var(--font-mono);color:var(--ide-dim);margin:.45rem 0 0;font-size:.62rem}.cvz-scan{flex-direction:column;display:flex}.cvz-scan__eqs{flex-wrap:wrap;gap:.4rem;margin-bottom:.7rem;display:flex}.cvz-scan__eq{font-family:var(--font-mono);color:var(--tk-str);background:var(--ide-bg);border:1px solid var(--ide-line);border-radius:6px;padding:.3rem .55rem;font-size:.72rem}.cvz-scan__track{flex-direction:column;gap:.35rem;display:flex}.cvz-scan__lane{align-items:center;gap:.5rem;display:flex}.cvz-scan__lanetag{width:1.4rem;font-family:var(--font-mono);color:var(--ide-dim);text-align:right;flex:none;font-size:.68rem}.cvz-scan__cells{gap:4px;padding:1px;display:flex;overflow-x:auto}.cvz-scan__state,.cvz-scan__out{min-width:42px;height:26px;font-family:var(--font-mono);color:var(--ide-dim);background:var(--ide-panel);border:1px solid var(--ide-line2);transition:all .15s var(--ease);border-radius:4px;flex:none;place-items:center;font-size:.66rem;display:grid}.cvz-scan__state sub,.cvz-scan__out sub{font-size:.8em}.cvz-scan__state--seen,.cvz-scan__out--seen{color:var(--ide-text);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.cvz-scan__state--on,.cvz-scan__out--on{color:var(--on-accent);background:var(--accent);box-shadow:0 0 0 2px var(--accent), 0 0 12px color-mix(in srgb, var(--accent) 55%, transparent);border-color:#0000;font-weight:700}.cvz-scan__tok{min-width:42px;height:34px;line-height:1.1;font-family:var(--font-mono);background:color-mix(in srgb, var(--accent) calc(var(--g,.3) * 70%), var(--ide-hi));border:1px solid var(--ide-line);transition:all .15s var(--ease);border-radius:4px;flex-direction:column;flex:none;justify-content:center;align-items:center;display:flex}.cvz-scan__tok--pick{cursor:pointer}.cvz-scan__tok--pick:hover{transform:translateY(-1px)}.cvz-scan__tok--on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.cvz-scan__toklabel{color:var(--ide-text);font-size:.66rem}.cvz-scan__gate{color:var(--ide-dim);font-size:.5rem}.cvz-scan__len{font-family:var(--font-mono);color:var(--ide-dim);align-self:flex-end;margin-top:.4rem;font-size:.6rem}.cvz-scan__legend{color:var(--ide-dim);flex-wrap:wrap;align-items:center;gap:.35rem;margin:.55rem 0 0;font-size:.68rem;display:flex}.cvz-scan__legend-swatch{border:1px solid var(--ide-line);background:color-mix(in srgb, var(--accent) calc(var(--g,.3) * 70%), var(--ide-hi));border-radius:3px;width:14px;height:14px}.cvz-scan__parallel{flex-direction:column;display:flex}.cvz-scan__tree{width:100%;height:auto;margin-inline:auto;display:block}.cvz-scan__edge{stroke:color-mix(in srgb, var(--accent) 45%, var(--ide-dim));stroke-width:1.2px}.cvz-scan__edge--fold{stroke:var(--signal);opacity:.8}.cvz-scan__node{fill:var(--ide-hi);stroke:var(--ide-line)}.cvz-scan__node--in{fill:color-mix(in srgb, var(--accent) 18%, var(--ide-hi));stroke:color-mix(in srgb, var(--accent) 45%, transparent)}.cvz-scan__node--out{fill:color-mix(in srgb, var(--accent) 30%, var(--ide-chrome));stroke:var(--accent)}.cvz-scan__nodet{fill:var(--ide-strong);font-family:var(--font-mono);text-anchor:middle;font-size:9px}.cvz-scan__treenote{font-family:var(--font-mono);color:var(--ide-dim);text-align:center;margin:.5rem 0 0;font-size:.64rem}.cvz-shapes__chain{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.cvz-shapes__stage{border:1px solid var(--ide-line);background:var(--ide-panel);transition:all .15s var(--ease);border-radius:6px;align-items:center;gap:.6rem;padding:.4rem .5rem;display:flex}.cvz-shapes__stage--seen{border-color:color-mix(in srgb, var(--accent) 35%, transparent)}.cvz-shapes__stage--on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 9%, var(--ide-panel))}.cvz-shapes__op{min-width:6.5rem;font-family:var(--font-mono);color:var(--accent-ink);flex:none;font-size:.7rem}.cvz-shapes__dims{transition:opacity .15s var(--ease);align-items:center;gap:3px;display:flex}.cvz-shapes__dims--dim{opacity:.5}.cvz-shapes__ax{font-family:var(--font-mono);color:var(--ide-text);background:var(--ide-hi);border:1px solid var(--ide-line);transition:all .15s var(--ease);border-radius:4px;padding:.12rem .4rem;font-size:.7rem}.cvz-shapes__ax--hot{background:var(--accent);color:var(--on-accent);border-color:#0000;font-weight:700}.cvz-shapes__note{font-family:var(--font-mono);color:var(--ide-dim);margin-left:auto;font-size:.64rem;font-style:italic}.cvz-unet{width:100%;height:auto;margin-inline:auto;display:block}.cvz-unet__box{fill:var(--ide-hi);stroke:var(--ide-line)}.cvz-unet__box--bottleneck{fill:color-mix(in srgb, var(--accent) 20%, var(--ide-chrome));stroke:var(--accent)}.cvz-unet__box--up{fill:color-mix(in srgb, var(--signal) 10%, var(--ide-hi));stroke:color-mix(in srgb, var(--signal) 40%, var(--ide-line))}.cvz-unet__label{fill:var(--ide-strong);font-family:var(--font-mono);text-anchor:middle;font-size:9px}.cvz-unet__meta{fill:var(--ide-dim);font-family:var(--font-mono);text-anchor:middle;font-size:6.8px}.cvz-unet__spine{stroke:color-mix(in srgb, var(--accent) 60%, var(--ide-dim));stroke-width:1.6px}.cvz-unet--live .cvz-unet__spine{stroke-dasharray:5 4;animation:.9s linear infinite cvz-dash}.cvz-unet__skip{fill:none;stroke:var(--signal);stroke-width:1.2px;stroke-dasharray:3 3;opacity:.75}.cvz-unet__skiplabel{fill:var(--signal);font-family:var(--font-mono);font-size:6.5px}.cvz-unet__arrowhead{fill:var(--signal)}.cvz-window{flex-direction:column;display:flex}.cvz-window__stage{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.cvz-window__panel{flex-direction:column;gap:.3rem;display:flex}.cvz-window__tag{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ide-dim);font-size:.58rem}.cvz-window__grid{gap:3px;display:grid}.cvz-window__in,.cvz-window__out{width:22px;height:22px;font-family:var(--font-mono);border-radius:3px;place-items:center;font-size:.6rem;display:grid}.cvz-window__in{background:var(--ide-hi);border:1px solid var(--ide-line);color:var(--ide-dim)}.cvz-window__in--pad{background:var(--ide-panel);color:var(--ide-dim);border-style:dashed}.cvz-window__in--lit{background:color-mix(in srgb, var(--accent) 40%, var(--ide-hi));border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.cvz-window__out{background:var(--ide-panel);border:1px solid var(--ide-line2);color:var(--accent-ink)}.cvz-window__out--seen{background:color-mix(in srgb, var(--accent) 18%, var(--ide-panel))}.cvz-window__out--on{background:var(--accent);color:var(--on-accent);box-shadow:0 0 0 2px var(--accent), 0 0 10px color-mix(in srgb, var(--accent) 55%, transparent)}.cvz-window__arrow{font-family:var(--font-mono);color:var(--ide-dim);align-self:center;font-size:.64rem}.cvz-window__calc{font-family:var(--font-mono);color:var(--ide-dim);margin:.6rem 0 0;font-size:.64rem}.cvz-window__calc b{color:var(--accent-ink)}.cvz-chart{margin:0}.cvz-chart__svg{width:100%;height:auto;display:block}.cvz-chart__grid{stroke:var(--ide-line2);stroke-width:1px}.cvz-chart__axis{stroke:var(--ide-line);stroke-width:1px}.cvz-chart__ylab,.cvz-chart__xlab{fill:var(--ide-dim);font-family:var(--font-mono);font-size:8px}.cvz-chart__axislab{fill:var(--ide-dim);font-family:var(--font-mono);letter-spacing:.04em;font-size:8px}.cvz-chart__line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.cvz-chart__dot,.cvz-chart__bar{opacity:.9}.cvz-chart__legend{flex-wrap:wrap;gap:.9rem;margin-top:.5rem;display:flex}.cvz-chart__legitem{font-family:var(--font-mono);color:var(--ide-text);align-items:center;gap:.35rem;font-size:.66rem;display:inline-flex}.cvz-chart__caption{font-family:var(--font-mono);color:var(--ide-dim);margin:.45rem 0 0;font-size:.62rem}.cvz-imb{flex-direction:column;gap:.8rem;display:flex}.cvz-imb__prop{flex-direction:column;gap:.4rem;display:flex}.cvz-imb__bar{border:1px solid var(--ide-line);border-radius:4px;height:22px;display:flex;overflow:hidden}.cvz-imb__bar-neg{background:var(--ide-hi)}.cvz-imb__bar-pos{background:var(--accent)}.cvz-imb__proplabels{font-family:var(--font-mono);color:var(--ide-dim);justify-content:space-between;font-size:.66rem;display:flex}.cvz-imb__proplabels span{align-items:center;gap:.35rem;display:inline-flex}.cvz-imb__key{border-radius:2px;width:10px;height:10px;display:inline-block}.cvz-imb__key--neg{background:var(--ide-hi);border:1px solid var(--ide-line)}.cvz-imb__key--pos{background:var(--accent)}.cvz-imb__cm{grid-template-columns:auto 1fr 1fr;align-items:stretch;gap:3px;display:grid}.cvz-imb__cm-head{font-family:var(--font-mono);color:var(--ide-dim);text-align:center;align-self:end;padding-bottom:.2rem;font-size:.58rem}.cvz-imb__cm-side{font-family:var(--font-mono);color:var(--ide-dim);text-align:right;place-items:center;padding-right:.3rem;font-size:.58rem;display:grid}.cvz-imb__cm-cell{border:1px solid var(--ide-line);background:var(--ide-panel);border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:.1rem;padding:.5rem;display:flex}.cvz-imb__cm-cell b{font-family:var(--font-display);color:var(--ide-strong);font-size:1.05rem}.cvz-imb__cm-k{font-family:var(--font-mono);color:var(--ide-dim);font-size:.56rem}.cvz-imb__cm-cell--hot{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, var(--ide-panel))}.cvz-imb__cm-cell--hot .cvz-imb__cm-k{color:var(--danger)}.cvz-imb__knobs{flex-direction:column;gap:.5rem;display:flex}.cvz-imb__knob{font-family:var(--font-mono);color:var(--ide-dim);flex-direction:column;gap:.25rem;font-size:.68rem;display:flex}.cvz-imb__knob b{color:var(--accent-ink)}.cvz-imb__knob input{accent-color:var(--accent)}.cvz-imb__hint{color:var(--ide-dim);margin:0;font-size:.72rem;font-style:italic;line-height:1.5}.cvz-imb__metrics{margin-top:.2rem}@media (width>=1440px){.cvz-ide{grid-template-columns:264px minmax(0,1fr)}.cvz-editor__body{padding:.7rem}.cvz-chapter{padding:1.5rem .9rem 1.9rem}.cvz-chapter__expl{gap:2rem}.cvz-code__line{font-size:.82rem}.cvz-code__ln{font-size:.76rem}.cvz-prose{font-size:.97rem}}@media (width<=1080px){.cvz-ide{grid-template-columns:1fr}.cvz-explorer{border-right:0;border-bottom:1px solid var(--ide-line)}.cvz-chapter__expl{grid-template-columns:1fr}}@media (width<=620px){.cvz-tabs{flex-wrap:wrap}.cvz-viewtoggle{margin:.3rem}.cvz-chapter__lines{margin-left:0}.cvz-masthead h1{font-size:2rem}.cvz-viewer__head{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.cvz-flow--live .cvz-flow__wire,.cvz-unet--live .cvz-unet__spine,.cvz-vox--active{animation:none}.cvz-vox,.cvz-strip__cell,.cvz-tree__caret,.cvz-btn,.cvz-steps__item b,.cvz-scan__tok,.cvz-scan__state,.cvz-scan__out,.cvz-shapes__stage,.cvz-shapes__ax,.cvz-window__in,.cvz-window__out{transition:none}}.cap-home{max-width:1120px;margin:0 auto;padding:0 1.5rem 2.5rem}.cap-bar{z-index:20;background:var(--ground);border-bottom:1px solid var(--ink);align-items:center;gap:1.1rem;padding:.65rem 0;display:flex;position:sticky;top:0}.cap-bar__wordmark{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;align-items:center;gap:.55rem;font-size:1.4rem;font-weight:700;text-decoration:none;display:inline-flex}.cap-bar__wordmark:hover{color:var(--accent)}.cap-logo{flex:none;display:block}.cap-bar__spacer{flex:1}.cap-bar__link{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-size:.68rem;text-decoration:none}.cap-bar__link:hover{color:var(--accent)}.cap-btn{font-family:var(--font-mono);letter-spacing:.04em;transition:all .15s var(--ease);border-radius:2px;align-items:center;gap:.5rem;padding:.5rem 1.05rem;font-size:.74rem;text-decoration:none;display:inline-flex}.cap-btn--github{background:var(--ink);border:1px solid var(--ink);color:var(--ground)}.cap-btn--github:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.cap-btn--hero{background:var(--accent);border:1px solid var(--accent);color:var(--accent-contrast);padding:.85rem 1.7rem;font-size:.88rem}.cap-btn--hero:hover{background:var(--accent-soft);border-color:var(--accent-soft)}.cap-btn--ghost{border:1px solid var(--ink);color:var(--ink);padding:.85rem 1.7rem;font-size:.88rem}.cap-btn--ghost:hover{color:var(--accent);border-color:var(--accent)}.cap-hero{text-align:center;border-bottom:1px solid var(--ink);flex-direction:column;justify-content:center;min-height:min(76vh,720px);margin-bottom:1.8rem;padding:3rem 0 3.4rem;display:flex;position:relative;overflow:hidden}.cap-hero__inner{z-index:1;position:relative}.cap-wall{z-index:0;opacity:.14;pointer-events:none;-webkit-user-select:none;user-select:none;--ide-text:#c9d1d9;--tk-kw:#ff7b72;--tk-str:#a5d6ff;--tk-com:#8b949e;--tk-num:#79c0ff;--tk-fn:#d2a8ff;--tk-bi:#ffa657;--tk-self:#ff9d76;--tk-op:#c9d1d9;--tk-dec:#d2a8ff;position:absolute;inset:0 -2rem;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0,#000 18% 78%,#0000 100%);mask-image:linear-gradient(#0000 0,#000 18% 78%,#0000 100%)}:root[data-theme=light] .cap-wall{opacity:.3;--ide-text:#26231d;--tk-kw:#b3261e;--tk-str:#0a3069;--tk-com:#767161;--tk-num:#0550ae;--tk-fn:#6639ba;--tk-bi:#953800;--tk-self:#a0430a;--tk-op:#26231d;--tk-dec:#6639ba}.cap-wall__scroll{animation:90s linear infinite cap-wallscroll}.cap-wall .cvz-code{background:0 0;border:0;border-radius:0}.cap-wall .cvz-code__pre{padding:0;overflow:hidden}.cap-wall .cvz-code__line{color:var(--ide-text);font-size:.64rem;line-height:1.7}.cap-wall .cvz-code__ln{color:var(--ink-3);font-size:.6rem;line-height:1.8}@keyframes cap-wallscroll{to{transform:translateY(-50%)}}.cap-hero__kicker{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 1rem;font-size:.62rem}.cap-hero__title{font-family:var(--font-display);letter-spacing:-.018em;color:var(--ink);max-width:15ch;margin:0 auto 1.1rem;font-size:clamp(2.7rem,7.6vw,5.6rem);line-height:1.02}.cap-hero__title em{color:var(--accent);font-style:italic}.cap-hero__sub{color:var(--ink-2);max-width:52ch;margin:0 auto 2rem;font-size:1.12rem}.cap-hero__cta{flex-wrap:wrap;justify-content:center;gap:.8rem;display:flex}.cap-hero__down{z-index:1;font-family:var(--font-mono);color:var(--ink-3);font-size:.72rem;text-decoration:none;animation:2.2s ease-in-out infinite cap-bob;position:absolute;bottom:.9rem;left:50%;transform:translate(-50%)}.cap-hero__down:hover{color:var(--accent)}@keyframes cap-bob{50%{transform:translate(-50%,5px)}}.cap-theme{font-family:var(--font-mono);letter-spacing:.06em;color:var(--ink-2);border:1px solid var(--line);cursor:pointer;transition:all .15s var(--ease);white-space:nowrap;background:0 0;border-radius:99px;padding:.28rem .7rem;font-size:.66rem}.cap-theme:hover{color:var(--accent);border-color:var(--accent)}.cap-demo{margin-bottom:2.4rem}.cap-demo__live{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);align-items:center;gap:.55rem;margin:0 0 .55rem;font-size:.62rem;display:flex}.cap-demo__dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1.3s ease-in-out infinite cap-blink}.cap-demo__frame{min-height:460px;box-shadow:0 24px 60px -40px #000000b3, 0 0 110px -30px color-mix(in srgb, var(--accent) 32%, transparent);grid-template-columns:1fr}.cap-demo__caption{font-family:var(--font-mono);color:var(--ink-3);margin:.55rem 0 0;font-size:.64rem}.cap-demo .cvz-chapter__head{animation:cap-rise .45s var(--ease) both}.cap-demo .cvz-code__row{animation:cap-rise .22s var(--ease) both}.cap-demo .cvz-prose{animation:cap-rise .55s var(--ease) both}.cap-demo .cvz-devnotes{animation:cap-stamp .4s var(--ease) both}.cap-demo .cvz-callout{animation:cap-rise .55s var(--ease) both;animation-delay:1.1s}.cap-demo .cvz-flow--live .cvz-flow__wire{stroke-dasharray:620;stroke-dashoffset:620px;animation:.9s forwards cap-draw}.cap-demo .cvz-flow .cvz-flow__wire--skip{opacity:.75;animation:.9s .7s forwards cap-draw}.cap-demo .cvz-flow g:nth-child(2) .cvz-flow__wire{animation-delay:50ms}.cap-demo .cvz-flow g:nth-child(3) .cvz-flow__wire{animation-delay:.2s}.cap-demo .cvz-flow g:nth-child(4) .cvz-flow__wire{animation-delay:.35s}.cap-demo .cvz-flow g:nth-child(5) .cvz-flow__wire{animation-delay:.5s}.cap-demo .cvz-flow g:nth-child(7) .cvz-flow__wire{animation-delay:.8s}.cap-demo .cvz-flow g:nth-child(n+8){animation:.45s both cap-fade}.cap-demo .cvz-flow g:nth-child(8){animation-delay:.1s}.cap-demo .cvz-flow g:nth-child(9){animation-delay:.25s}.cap-demo .cvz-flow g:nth-child(10){animation-delay:.4s}.cap-demo .cvz-flow g:nth-child(11){animation-delay:.55s}.cap-demo .cvz-flow g:nth-child(12){animation-delay:.7s}.cap-demo .cvz-flow g:nth-child(13){animation-delay:.85s}.cap-demo .cvz-flow__elabel,.cap-demo .cvz-flow__pulse{animation:.5s 1s both cap-fade}@keyframes cap-rise{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes cap-stamp{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes cap-draw{to{stroke-dashoffset:0}}@keyframes cap-fade{0%{opacity:0}to{opacity:1}}@keyframes cap-blink{50%{opacity:.25}}.cap-strip{border-bottom:1px solid var(--ink);grid-template-columns:repeat(3,1fr);margin-bottom:0;display:grid}.cap-strip__item{border-right:1px solid var(--line);gap:.9rem;padding:1.5rem 1.5rem 1.6rem;display:flex}.cap-strip__item:first-child{padding-left:0}.cap-strip__item:last-child{border-right:0;padding-right:0}.cap-strip__ln{font-family:var(--font-mono);color:var(--ink-3);opacity:.5;flex:none;padding-top:.2rem;font-size:1.9rem;line-height:1}.cap-strip__item h2{font-family:var(--font-display);color:var(--ink);margin:0 0 .35rem;font-size:1.55rem}.cap-strip__item p{font-family:var(--font-mono);letter-spacing:.02em;color:var(--ink-3);margin:0;font-size:.68rem;font-style:italic;line-height:1.7}.cap-howline{font-family:var(--font-mono);color:var(--ink-2);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.9rem;margin:0 0 1.6rem;padding:1.3rem 0;font-size:.72rem;display:flex}.cap-howline b{color:var(--accent);margin-right:.35rem;font-weight:700}.cap-howline__sep{color:var(--ink-3)}.cap-colophon{text-align:center}.cap-colophon__fine{font-family:var(--font-mono);letter-spacing:.06em;color:var(--ink-3);margin:0;font-size:.6rem}@media (width<=900px){.cap-strip{grid-template-columns:1fr}.cap-strip__item{border-right:0;border-bottom:1px solid var(--line);padding-left:0}.cap-strip__item:last-child{border-bottom:0}.cap-hero,.cap-demo__frame{min-height:0}}@media (prefers-reduced-motion:reduce){.cap-demo *,.cap-demo__dot,.cap-hero__down{animation-duration:0s!important;animation-delay:0s!important}.cap-wall__scroll{animation:none}}.cvz-gate__github{width:100%;font-family:var(--font-mono);letter-spacing:.03em;color:var(--ground);background:var(--ink);border:1px solid var(--ink);cursor:pointer;transition:all .15s var(--ease);border-radius:3px;justify-content:center;align-items:center;gap:.5rem;padding:.55rem 0;font-size:.78rem;display:flex}.cvz-gate__github:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.cvz-gate__or{color:var(--ink-3);align-items:center;gap:.7rem;margin:1rem 0 .9rem;display:flex}.cvz-gate__or:before,.cvz-gate__or:after{content:"";border-top:1px solid var(--line);flex:1}.cvz-gate__or span{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.58rem}.cvz-gate__home{font-family:var(--font-mono);color:var(--ink-3);margin-top:1.1rem;font-size:.66rem;text-decoration:none;display:inline-block}.cvz-gate__home:hover{color:var(--accent)}.cvz-masthead__brand{align-items:center;gap:.4rem;text-decoration:none;display:inline-flex}.cvz-masthead__brand:hover{color:var(--accent-soft)}.cvz-masthead__who{font-family:var(--font-mono);color:var(--ink-2);align-self:flex-start;padding-top:.4rem;font-size:.66rem}.cvz-connect{border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--paper);border-radius:0 4px 4px 0;margin-top:1rem;padding:.9rem 1.1rem 1rem}.cvz-connect .cvz-kicker{margin-bottom:.5rem}.cvz-connect__hint{color:var(--ink-2);max-width:62ch;margin:0 0 .7rem;font-size:.85rem;line-height:1.55}.cvz-connect__hint code{font-family:var(--font-mono);color:var(--accent);font-size:.82em}.cvz-connect__err{font-family:var(--font-mono);color:var(--danger);margin:0;font-size:.72rem;line-height:1.55}.cvz-connect__mint{font-family:var(--font-mono);letter-spacing:.03em;color:var(--accent-contrast);background:var(--accent);border:1px solid var(--accent);cursor:pointer;transition:background .15s var(--ease);border-radius:3px;padding:.4rem .9rem;font-size:.72rem}.cvz-connect__mint:hover{background:var(--accent-soft)}.cvz-connect__url{font-family:var(--font-mono);color:var(--ink);background:var(--field);border:1px solid var(--line);white-space:nowrap;border-radius:3px;margin:0 0 .6rem;padding:.45rem .6rem;font-size:.74rem;display:block;overflow-x:auto}.cvz-connect__row{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.cvz-connect__row .cvz-connect__hint{margin:0}.cvz-repolink{font-family:var(--font-mono);color:var(--ink-2);border:1px solid var(--line);white-space:nowrap;transition:all .15s var(--ease);border-radius:99px;align-self:center;padding:.3rem .75rem;font-size:.66rem;text-decoration:none}.cvz-repolink:hover{color:var(--accent);border-color:var(--accent)}.cvz-breadcrumb__gh{color:var(--accent-ink);text-decoration:none}.cvz-breadcrumb__gh:hover{text-decoration:underline}.cvz-chapter__lines--link{text-decoration:none}.cvz-chapter__lines--link:hover{color:var(--accent-ink);text-decoration:underline}.cvz-print__repourl{font-family:var(--font-mono);color:var(--ide-dim);overflow-wrap:anywhere;margin:.25rem 0 0;font-size:.6rem}.cvz-pdfbtn{flex-direction:column;align-self:center;align-items:flex-end;gap:.3rem;display:flex}.cvz-pdfbtn__btn{font-family:var(--font-mono);letter-spacing:.04em;white-space:nowrap;color:var(--accent-contrast);background:var(--accent);border:1px solid var(--accent);cursor:pointer;transition:background .15s var(--ease);border-radius:99px;padding:.32rem .9rem;font-size:.7rem}.cvz-pdfbtn__btn:hover{background:var(--accent-soft)}.cvz-pdfbtn__btn:disabled{opacity:.55;cursor:default}.cvz-pdfbtn__hint{font-family:var(--font-mono);letter-spacing:.02em;color:var(--ink-3);white-space:nowrap;font-size:.56rem}@media (width<=620px){.cvz-pdfbtn__hint{display:none}}.cvz-print{--ide-bg:#fff;--ide-panel:#f6f3ec;--ide-chrome:#eeeae0;--ide-hi:#efece3;--ide-text:#26231d;--ide-dim:#6d675a;--ide-strong:#16130e;--ide-line:#d9d2c0;--ide-line2:#e8e2d2;--tk-kw:#b3261e;--tk-str:#0a3069;--tk-com:#767161;--tk-num:#0550ae;--tk-fn:#6639ba;--tk-bi:#953800;--tk-self:#a0430a;--tk-op:#26231d;--tk-dec:#6639ba;--accent:#a63d16;--accent-ink:#8c3512;--on-accent:#fdf9f2;--signal:#1a7f37;color:var(--ide-text);border:1px solid var(--line);-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;max-width:960px;margin:0 auto;padding:2.6rem 2.8rem 3rem}.cvz-print__cover{border-bottom:2px solid var(--ide-strong);margin-bottom:1.8rem;padding-bottom:1.6rem}.cvz-print__title{font-family:var(--font-display);color:var(--ide-strong);margin:0 0 .7rem;font-size:2.4rem;line-height:1.08}.cvz-print__sub{color:var(--ide-dim);max-width:58ch;margin:0 0 .5rem;font-size:1rem;line-height:1.6}.cvz-print__stamp{font-family:var(--font-mono);color:var(--ide-dim);margin:0 0 2rem;font-size:.64rem}.cvz-print__contents{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 .6rem;font-size:.66rem}.cvz-print__toc{margin:0;padding:0;list-style:none}.cvz-print__toc>li{margin-bottom:.7rem}.cvz-print__tocfile{font-family:var(--font-mono);color:var(--ide-strong);font-size:.82rem;font-weight:600}.cvz-print__tocch{margin:.25rem 0 0;padding:0 0 0 1.5rem;list-style:none}.cvz-print__tocch li{align-items:baseline;gap:.55rem;padding:.14rem 0;font-size:.88rem;display:flex}.cvz-print__tocn{font-family:var(--font-mono);color:var(--accent-ink);font-size:.66rem}.cvz-print__toclines{font-family:var(--font-mono);color:var(--ide-dim);margin-left:auto;font-size:.62rem}.cvz-print__file{margin-bottom:2.2rem}.cvz-print__filehead{border-bottom:1px solid var(--ide-line);margin-bottom:1rem;padding-bottom:.7rem}.cvz-print__path{font-family:var(--font-mono);color:var(--ide-strong);margin:0 0 .3rem;font-size:1.3rem}.cvz-print__filemeta{font-family:var(--font-mono);color:var(--ide-dim);margin:0;font-size:.66rem}.cvz-print__chapter{margin:0 0 1.8rem}.cvz-print__chhead{flex-wrap:wrap;align-items:baseline;gap:.55rem;margin:0 0 .7rem;display:flex}.cvz-print__chn{font-family:var(--font-mono);color:var(--on-accent);background:var(--accent);border-radius:6px;padding:.14rem .45rem;font-size:.72rem;font-weight:700}.cvz-print__chtitle{font-family:var(--font-display);color:var(--ide-strong);margin:0;font-size:1.25rem}.cvz-print__chlines{font-family:var(--font-mono);color:var(--ide-dim);margin-left:auto;font-size:.64rem}.cvz-print__stale{font-family:var(--font-mono);color:#8a5a00;background:#fdf3d7;border:1px solid #d4a72c;border-radius:6px;margin:0 0 .8rem;padding:.45rem .65rem;font-size:.7rem;line-height:1.5}.cvz-print .cvz-code{margin:0 0 .9rem}.cvz-print .cvz-prose{color:var(--ide-text);max-width:none;margin:0 0 .6rem;font-size:.94rem}.cvz-print__vizblock{margin:0 0 1rem}.cvz-print .cvz-viz{margin:0}.cvz-print__vizref{font-family:var(--font-mono);color:var(--ide-dim);margin:.3rem 0 0;font-size:.6rem}.cvz-print__order{margin:0 0 .9rem}.cvz-print__orderlabel{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 .35rem;font-size:.64rem}.cvz-print__order .cvz-strip{margin-top:.4rem}.cvz-print__option{flex-direction:column;gap:.45rem;margin:0 0 .8rem;display:flex}.cvz-print__optname{font-family:var(--font-mono);letter-spacing:.04em;color:var(--accent-ink);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:99px;align-self:flex-start;margin:0;padding:.12rem .55rem;font-size:.66rem}.cvz-print .cvz-term{background:#faf8f3}.cvz-print .cvz-term__ln--ok{color:#14702e}.cvz-print .cvz-term__ln--err{color:#b3261e}.cvz-print .cvz-term__ln--pass{color:#fff;background:#1a7f37}.cvz-print .cvz-callout--warn{color:#6d5407;background:#f9f1dc;border-left-color:#b8860b}.cvz-print .cvz-callout--warn code{color:#6d5407;background:#f2e4bb}.cvz-print .cvz-devnote__tag--gotcha{color:#8a5a00;border-color:#d4a72c}.cvz-print .cvz-code__ln{color:#a09a8c}@media print{@page{size:A4 portrait;margin:12mm}body.cvz-exporting{background:#fff!important}body.cvz-exporting .cvz-viewer{max-width:none;padding:0}body.cvz-exporting .cvz-viewer__head{display:none!important}body.cvz-exporting .cvz-print{border:0;max-width:none;margin:0;padding:0}.cvz-print__file,.cvz-print__chapter+.cvz-print__chapter{break-before:page;page-break-before:always}.cvz-print__chhead,.cvz-print__filehead{break-after:avoid;page-break-after:avoid}.cvz-print__vizblock,.cvz-print .cvz-devnote,.cvz-print .cvz-slice,.cvz-print .cvz-kv,.cvz-print .cvz-term,.cvz-print .cvz-stats,.cvz-print .cvz-table__wrap,.cvz-print .cvz-diagram,.cvz-print .cvz-flow,.cvz-print .cvz-unet,.cvz-print .cvz-chart,.cvz-print .cvz-scan__tree,.cvz-print .cvz-window__stage,.cvz-print .cvz-imb__cm,.cvz-print .cvz-code__row{break-inside:avoid;page-break-inside:avoid}.cvz-print .cvz-code__pre,.cvz-print .cvz-term__body,.cvz-print .cvz-table__wrap{overflow:visible}.cvz-print .cvz-code--tall .cvz-code__pre{max-height:none;overflow:visible}.cvz-print .cvz-code__line,.cvz-print .cvz-term__ln,.cvz-print .cvz-compare__call{white-space:pre-wrap;overflow-wrap:anywhere}}
