:root{--paper: #ece8e0;--paper-inset: #e3ded4;--paper-raise: #f2efe9;--ink: #191c1a;--ink-muted: #4c504a;--ink-faint: #6f736c;--line: #c9c3b6;--line-faint: #d8d3c8;--bond: #1c6b67;--bond-strong: #124a47;--signal: #a9791f;--cover: #16130f;--cover-2: #211c16;--on-cover: #efeae1;--on-cover-muted: #a9a294;--on-cover-line: #3a342b;--bond-lit: #37a89f;--gold: #d9a441;--display: "Archivo", "Arial Narrow", system-ui, sans-serif;--body: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace;--t-label: .75rem;--t-small: .875rem;--t-body: 1.0625rem;--t-lead: clamp(1.15rem, .9rem + 1.1vw, 1.5rem);--t-h3: clamp(1.35rem, 1.1rem + 1vw, 1.75rem);--t-h2: clamp(1.8rem, 1.3rem + 2vw, 2.75rem);--t-hero: clamp(2.7rem, 1.4rem + 6vw, 6rem);--rail: 84px;--gutter: clamp(1.25rem, 4vw, 3rem);--measure: 66ch;--maxw: 1180px;--radius: 3px;color-scheme:light}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{min-height:100vh;overflow-x:clip;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:var(--t-body);line-height:1.6;font-feature-settings:"kern","liga";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,svg{display:block;max-width:100%}a{color:inherit}h1,h2,h3,h4{font-family:var(--display);font-weight:700;line-height:1.04;letter-spacing:-.01em;font-variation-settings:"wdth" 112}::selection{background:var(--bond);color:var(--paper-raise)}:focus-visible{outline:2px solid var(--bond);outline-offset:3px;border-radius:2px}.label{font-family:var(--mono);font-size:var(--t-label);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.shell{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}.rail-layout{position:relative}.rail-layout:before{content:"";position:absolute;top:0;bottom:0;left:calc(var(--rail) / 2);width:1px;background:linear-gradient(to bottom,transparent,var(--line) 4rem,var(--line) calc(100% - 8rem),transparent)}.rail-content{padding-left:var(--rail)}@media(max-width:800px){:root{--rail: 0px}.rail-layout:before{display:none}.rail-content{padding-left:0}}.section{position:relative;padding-block:clamp(3.5rem,8vw,6.5rem);border-top:1px solid var(--line-faint)}.section:first-of-type{border-top:0}.section>.node{position:absolute;top:clamp(3.5rem,8vw,6.5rem);left:calc(-1 * var(--rail) + var(--rail) / 2);width:11px;height:11px;margin-left:-5px;margin-top:4px;border:1.5px solid var(--bond);border-radius:50%;background:var(--paper);transition:background .5s ease,box-shadow .5s ease}.section.is-active>.node{background:var(--bond);box-shadow:0 0 0 4px color-mix(in srgb,var(--bond) 16%,transparent)}@media(max-width:800px){.section>.node{display:none}}.measure{max-width:var(--measure)}.prose{font-size:var(--t-body);line-height:1.7}.prose p{margin-block:.95em;color:var(--ink)}.prose>p:first-child{margin-top:0}.prose p:first-child{margin-top:0}.prose strong{font-weight:600}.prose a{color:var(--bond-strong);text-underline-offset:3px;text-decoration-thickness:1px}.prose h2{font-size:var(--t-h3);font-variation-settings:"wdth" 112;margin-top:2.4em;margin-bottom:.2em;padding-top:1.2rem;border-top:1px solid var(--line-faint)}.prose h2:before{content:"§ ";color:var(--bond);font-family:var(--mono);font-size:.7em;font-weight:500;vertical-align:.15em}.prose h3{font-size:var(--t-h3);font-weight:600;margin-top:1.8em;margin-bottom:.2em}.prose ul,.prose ol{margin-block:1em;padding-left:1.3rem}.prose li{margin-block:.4em}.prose ul{list-style:none;padding-left:0}.prose ul>li{position:relative;padding-left:1.4rem}.prose ul>li:before{content:"";position:absolute;left:.15rem;top:.72em;width:6px;height:6px;border:1.5px solid var(--bond);border-radius:50%}.prose code{font-family:var(--mono);font-size:.85em;background:var(--paper-inset);padding:.1em .4em;border-radius:3px;border:1px solid var(--line-faint)}.prose pre{font-family:var(--mono);font-size:var(--t-small);background:var(--ink);color:#e8e6de;padding:1.1rem 1.25rem;border-radius:var(--radius);overflow-x:auto;margin-block:1.4em;line-height:1.5}.prose pre code{background:none;border:0;padding:0;font-size:1em;color:inherit}.prose blockquote{margin-block:1.4em;padding:.4rem 0 .4rem 1.2rem;border-left:2px solid var(--bond);color:var(--ink-muted);font-style:normal}.prose blockquote p{color:var(--ink-muted)}.prose hr{border:0;border-top:1px solid var(--line);margin-block:2.2em}.prose figure{margin-block:1.8em}.prose figure img{width:100%;border:1px solid var(--line);border-radius:var(--radius)}.prose figcaption{font-family:var(--mono);font-size:var(--t-label);color:var(--ink-faint);margin-top:.6rem;text-align:center}.prose .lead,.proj-body.prose>p:first-of-type{font-size:var(--t-lead);color:var(--ink);line-height:1.5}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.pipeline{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:.32rem;margin:1.9em 0}.pstage{flex:1 1 82px;min-width:78px;max-width:140px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raise);padding:.6rem .55rem;display:flex;flex-direction:column;gap:.28rem;text-align:center}.pstage .pn{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.08em;text-transform:uppercase;color:var(--bond-strong)}.pstage .pt{font-size:var(--t-label);color:var(--ink);line-height:1.3}.parrow{align-self:center;color:var(--bond);font-size:1rem;flex:0 0 auto}@media(max-width:520px){.pipeline{flex-direction:column;align-items:stretch}.parrow{transform:rotate(90deg)}}.sortcine{margin:2em 0;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raise);padding:clamp(1rem,3vw,1.5rem)}.sortcine .sc-head{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;justify-content:space-between;margin-bottom:.5rem}.sortcine .sc-eyebrow{color:var(--bond-strong)}.sortcine .sc-tabs{display:flex;gap:.3rem}.sortcine .sc-tab{font-family:var(--mono);font-size:var(--t-label);text-transform:uppercase;letter-spacing:.06em;padding:.35rem .7rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--ink-muted);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.sortcine .sc-tab:hover{border-color:var(--bond);color:var(--ink)}.sortcine .sc-tab.is-active{background:var(--bond);color:var(--paper-raise);border-color:var(--bond)}.sortcine .sc-note{color:var(--ink-muted);font-size:var(--t-small);line-height:1.5;margin:.2rem 0 1rem}.sortcine .sc-caption{font-family:var(--mono);font-size:var(--t-small);color:var(--bond-strong);margin-bottom:.7rem;padding-left:1.4rem;position:relative;min-height:1.2em}.sortcine .sc-caption:before{content:"";position:absolute;left:0;top:.15em;width:.85em;height:.85em;border-radius:50%;border:2px solid var(--line);border-top-color:var(--bond);animation:sc-spin .7s linear infinite}.sortcine .sc-caption.done{color:var(--ink-muted)}.sortcine .sc-caption.done:before{content:"✓";border:0;color:var(--bond);animation:none;font-weight:700;top:0}@keyframes sc-spin{to{transform:rotate(360deg)}}.sortcine .sc-stage{position:relative}.sortcine .sc-agents{display:flex;flex-wrap:wrap;gap:.35rem;max-height:0;opacity:0;margin-bottom:0;overflow:hidden;transition:max-height .4s ease,opacity .4s ease,margin .4s ease}.sortcine .sc-agents.go{max-height:3.2rem;opacity:1;margin-bottom:.7rem}.sortcine .sc-agents.out{max-height:0;opacity:0;margin-bottom:0}.sortcine .sc-agent{font-family:var(--mono);font-size:var(--t-label);color:var(--bond-strong);background:var(--paper-inset);border:1px solid var(--line-faint);border-radius:999px;padding:.15rem .6rem;opacity:0;transform:translateY(8px) scale(.92);transition:opacity .3s ease,transform .3s ease;transition-delay:calc(var(--i) * .07s)}.sortcine .sc-agents.go .sc-agent{opacity:1;transform:none}.sortcine .sc-paper{position:relative;overflow:hidden;background:#fbfaf6;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1rem,3vw,1.6rem);box-shadow:0 1px 0 var(--line-faint),4px 5px #191c1a0d;transition:opacity .5s ease,filter .5s ease}.sortcine .sc-paper.dimmed{opacity:.4;filter:grayscale(.3)}.sortcine .sc-phead{text-align:center;margin-bottom:1rem;padding-bottom:.8rem;border-bottom:1px solid var(--line-faint)}.sortcine .sc-school{font-family:var(--display);font-variation-settings:"wdth" 116;font-weight:700;font-size:1.05rem;letter-spacing:.02em;text-transform:uppercase;color:var(--ink)}.sortcine .sc-exam{font-family:var(--mono);font-size:var(--t-label);color:var(--ink-muted);margin-top:.25rem}.sortcine .sc-subject{font-family:var(--mono);font-size:var(--t-label);color:var(--bond-strong);margin-top:.2rem;letter-spacing:.04em}.sortcine .sc-qlist{display:flex;flex-direction:column;gap:.9rem}.sortcine .sc-q{display:flex;gap:.7rem;align-items:baseline;transition:background .25s ease;border-radius:var(--radius)}.sortcine .sc-q.tagged{background:color-mix(in srgb,var(--bond) 7%,transparent)}.sortcine .sc-qn{font-family:var(--mono);font-size:var(--t-small);color:var(--ink-muted);flex:0 0 auto;min-width:1.4em}.sortcine .sc-qbody{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem}.sortcine .sc-qt{display:block;font-size:var(--t-small);color:var(--ink);line-height:1.5}.sortcine .sc-qline{margin:.22rem 0;overflow:hidden}.sortcine .sc-part{padding-left:1.5rem}.sortcine .sc-mk{float:right;margin-left:.6rem;color:var(--ink-faint);font-family:var(--mono);font-size:var(--t-label)}.sortcine .sc-fig{position:relative;display:inline-block;margin-top:.5rem;background:#fff;border:1px solid var(--line-faint);border-radius:var(--radius);padding:.45rem .55rem;max-width:min(100%,460px);color:#111}.sortcine .sc-fig img,.sortcine .sc-fig svg{display:block;max-width:100%;max-height:170px;width:auto;height:auto;margin:0 auto}.sortcine .sc-fig .sc-graph{width:178px;height:auto;max-height:none;color:var(--ink)}.sortcine .sc-crop{position:absolute;inset:-4px;border:1.5px dashed var(--bond);border-radius:var(--radius);opacity:0;transform:scale(1.12);transition:opacity .25s ease,transform .35s ease;pointer-events:none}.sortcine .sc-fig.cropping .sc-crop{opacity:1;transform:scale(1)}.sortcine .sc-fig.cropped{animation:sc-pop .45s ease}.sortcine .sc-fig.cropped .sc-crop{opacity:0}@keyframes sc-pop{30%{transform:scale(1.05);box-shadow:0 0 0 3px color-mix(in srgb,var(--bond) 30%,transparent)}}.sortcine .sc-topic{align-self:flex-start;margin-top:.35rem;font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--bond-strong);background:var(--paper-inset);border:1px solid color-mix(in srgb,var(--bond) 35%,var(--line));border-radius:999px;padding:.08rem .5rem;opacity:0;transform:translateY(-3px);transition:opacity .3s ease,transform .3s ease}.sortcine .sc-q.tagged .sc-topic{opacity:1;transform:none}.sortcine .sc-scanline{position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--bond-lit),transparent);box-shadow:0 0 8px color-mix(in srgb,var(--bond-lit) 60%,transparent);opacity:0;pointer-events:none}.sortcine .sc-paper.scanning .sc-scanline{animation:sc-sweep 1.5s ease forwards}@keyframes sc-sweep{0%{top:0;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}.sortcine .sc-package{margin-top:1.1rem;--doc-ink: #1f2937;--doc-taupe: #9c8a78}.sortcine .sc-pkghead{font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:1.05rem;color:var(--doc-ink);letter-spacing:.01em;display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding-bottom:.5rem;margin-bottom:1rem;border-bottom:2px solid var(--doc-taupe)}.sortcine .sc-pkgtag{font-family:var(--mono);font-size:var(--t-label);text-transform:uppercase;letter-spacing:.06em;color:#fff;background:var(--doc-ink);border-radius:2px;padding:.14rem .5rem}.sortcine .sc-group{opacity:0;transform:translateY(8px);transition:opacity .4s ease,transform .4s ease;transition-delay:calc(var(--g) * .12s);margin-bottom:1rem}.sortcine .sc-package.in .sc-group{opacity:1;transform:none}.sortcine .sc-gtitle{display:flex;align-items:center;gap:.5rem;font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:.98rem;color:var(--doc-ink);margin-bottom:.5rem;padding-bottom:.3rem;border-bottom:1px solid color-mix(in srgb,var(--doc-taupe) 55%,transparent)}.sortcine .sc-gdot{width:9px;height:9px;border-radius:50%;background:var(--doc-taupe);flex:0 0 auto}.sortcine .sc-gcount{font-family:var(--mono);font-size:var(--t-label);color:var(--doc-taupe);margin-left:auto}.sortcine .sc-glist{display:flex;flex-direction:column;gap:.4rem}.sortcine .sc-gq{display:flex;gap:.7rem;align-items:baseline;padding:.55rem .7rem;background:var(--paper);border:1px solid var(--line-faint);border-radius:var(--radius)}.sortcine .sc-gq .sc-qn{color:var(--bond)}.sortcine .sc-gq .sc-fig{margin-top:.45rem}.sortcine .sc-actions{display:flex;gap:.6rem;margin-top:1.1rem}.sortcine .sc-run,.sortcine .sc-reset{font-family:var(--mono);font-size:var(--t-small);cursor:pointer;padding:.55rem 1rem;border-radius:var(--radius);border:1px solid transparent;transition:background .15s ease,border-color .15s ease,filter .15s ease}.sortcine .sc-run{background:var(--bond);color:var(--paper-raise)}.sortcine .sc-run:hover{filter:brightness(1.08)}.sortcine .sc-run:disabled{opacity:.55;cursor:default}.sortcine .sc-reset{background:transparent;border-color:var(--line);color:var(--ink-muted)}.sortcine .sc-reset:hover{border-color:var(--ink-muted)}.sortcine .sc-foot{font-family:var(--mono);font-size:var(--t-label);color:var(--ink-faint);margin-top:.85rem;line-height:1.5}.sortcine .sc-foot a{color:var(--bond-strong)}@media(max-width:520px){.sortcine .sc-fig{max-width:100%}}@media(prefers-reduced-motion:reduce){.sortcine .sc-paper.scanning .sc-scanline{animation:none}.sortcine .sc-caption:before{animation:none}}.try-it{margin:1.6em 0}.try-it>summary{cursor:pointer;list-style:none;user-select:none;display:inline-flex;align-items:center;gap:.55rem;font-family:var(--mono);font-size:var(--t-small);color:var(--paper-raise);background:var(--bond);padding:.65rem 1.05rem;border-radius:var(--radius);transition:filter .15s ease}.try-it>summary:hover{filter:brightness(1.08)}.try-it>summary::-webkit-details-marker{display:none}.try-it>summary:after{content:"▸";font-size:.9em;transition:transform .2s ease}.try-it[open]>summary:after{transform:rotate(90deg)}.try-it[open]>summary{margin-bottom:.7rem}.mol-fig{margin:1.8em 0}.mol-row{display:flex;flex-wrap:wrap;gap:.7rem;align-items:stretch}.mol-cell{flex:1 1 150px;min-width:128px;background:#fff;border:1px solid var(--line-faint);border-radius:var(--radius);padding:.9rem .7rem;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:.5rem}.mol-cell img{max-width:100%;max-height:128px;height:auto;width:auto;margin:0 auto}.mol-cell .mol-name{font-size:var(--t-small);color:var(--ink)}.mol-cell .mol-tag{font-family:var(--mono);font-size:var(--t-label);text-transform:uppercase;letter-spacing:.05em;color:var(--bond-strong)}.mol-cell .mol-sub{font-family:var(--mono);font-size:var(--t-label);color:var(--ink-faint)}.mol-cap{font-family:var(--mono);font-size:var(--t-label);color:var(--ink-faint);text-align:center;margin-top:.7rem;line-height:1.4}.mol-stack{display:flex;flex-direction:column;gap:.6rem}.mol-stack .mol-cell{flex-direction:row;align-items:center;gap:1.1rem;text-align:left;padding:.8rem 1.1rem}.mol-stack .mol-lab{flex:0 0 7.5rem;display:flex;flex-direction:column;gap:.15rem}.mol-stack .mol-draw{flex:1;min-width:0;text-align:center}.mol-stack .mol-draw img{max-width:100%;max-height:145px;margin:0 auto}@media(max-width:520px){.mol-stack .mol-cell{flex-direction:column;align-items:stretch}.mol-stack .mol-lab{flex:none}}.skip[data-astro-cid-37fxchfa]{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:.6rem 1rem;z-index:100;font-family:var(--mono);font-size:var(--t-small)}.skip[data-astro-cid-37fxchfa]:focus{left:0}.topbar[data-astro-cid-37fxchfa]{position:sticky;top:0;z-index:50;backdrop-filter:saturate(1.1) blur(6px);background:color-mix(in srgb,var(--paper) 85%,transparent);border-bottom:1px solid var(--line);transition:background .3s ease,border-color .3s ease}.topbar[data-astro-cid-37fxchfa].over-dark{background:var(--cover);backdrop-filter:none;border-bottom-color:transparent}.topbar-inner[data-astro-cid-37fxchfa]{display:flex;align-items:center;justify-content:space-between;height:60px}.monogram[data-astro-cid-37fxchfa]{font-family:var(--mono);font-size:var(--t-small);letter-spacing:.06em;text-decoration:none;display:inline-flex;gap:.15em;align-items:baseline}.monogram[data-astro-cid-37fxchfa] .mark[data-astro-cid-37fxchfa]{font-weight:600;color:var(--ink)}.monogram[data-astro-cid-37fxchfa] .tick[data-astro-cid-37fxchfa]{color:var(--bond)}.monogram[data-astro-cid-37fxchfa] .dim[data-astro-cid-37fxchfa]{color:var(--ink-faint)}.nav[data-astro-cid-37fxchfa]{display:flex;align-items:center;gap:clamp(.9rem,2.5vw,1.9rem);font-family:var(--mono);font-size:var(--t-small)}.nav[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]{text-decoration:none;color:var(--ink-muted);position:relative;padding-block:.2rem;transition:color .2s ease}.nav[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]:not(.nav-cta):after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--bond);transition:right .25s ease}.nav[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]:hover{color:var(--ink)}.nav[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]:not(.nav-cta):hover:after{right:0}.nav-cta[data-astro-cid-37fxchfa]{border:1px solid var(--line);padding:.35rem .75rem;border-radius:var(--radius);color:var(--ink);transition:border-color .2s ease,background .2s ease}.nav-cta[data-astro-cid-37fxchfa]:hover{border-color:var(--bond);background:color-mix(in srgb,var(--bond) 8%,transparent)}.topbar[data-astro-cid-37fxchfa].over-dark .monogram[data-astro-cid-37fxchfa] .mark[data-astro-cid-37fxchfa]{color:var(--on-cover)}.topbar[data-astro-cid-37fxchfa].over-dark .monogram[data-astro-cid-37fxchfa] .tick[data-astro-cid-37fxchfa]{color:var(--gold)}.topbar[data-astro-cid-37fxchfa].over-dark .monogram[data-astro-cid-37fxchfa] .dim[data-astro-cid-37fxchfa],.topbar[data-astro-cid-37fxchfa].over-dark .nav[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]{color:var(--on-cover-muted)}.topbar[data-astro-cid-37fxchfa].over-dark .nav[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]:hover{color:var(--on-cover)}.topbar[data-astro-cid-37fxchfa].over-dark .nav[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]:not(.nav-cta):after{background:var(--gold)}.topbar[data-astro-cid-37fxchfa].over-dark .nav-cta[data-astro-cid-37fxchfa]{border-color:var(--on-cover-line);color:var(--on-cover)}.topbar[data-astro-cid-37fxchfa].over-dark .nav-cta[data-astro-cid-37fxchfa]:hover{border-color:var(--on-cover-muted);background:color-mix(in srgb,var(--on-cover) 8%,transparent)}.footer[data-astro-cid-37fxchfa]{border-top:1px solid var(--line);padding-block:2rem}.footer-inner[data-astro-cid-37fxchfa]{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.footer-link[data-astro-cid-37fxchfa]{text-decoration:none}.footer-link[data-astro-cid-37fxchfa]:hover{color:var(--bond)}@media(max-width:560px){.nav[data-astro-cid-37fxchfa]{gap:.85rem}.monogram[data-astro-cid-37fxchfa] .dim[data-astro-cid-37fxchfa]{display:none}}
