.ib-prose{color:var(--text);max-width:var(--content);font-size:18px;line-height:1.75}.ib-prose>p{color:var(--text);margin:1.35em 0}.ib-prose>p:first-child{margin-top:0}.ib-prose h2{font-family:var(--serif);letter-spacing:-.015em;margin:1.8em 0 .55em;scroll-margin-top:88px;font-size:27px;font-weight:560}.ib-prose h3{font-family:var(--serif);margin:1.6em 0 .45em;scroll-margin-top:88px;font-size:21px;font-weight:560}.ib-prose a{color:var(--brand-2);text-decoration:underline;-webkit-text-decoration-color:var(--brand-line);text-decoration-color:var(--brand-line);text-underline-offset:3px;text-decoration-thickness:1.5px}.ib-prose a:hover{-webkit-text-decoration-color:var(--brand-2);text-decoration-color:var(--brand-2)}.ib-prose :not(pre)>code{font-family:var(--mono);background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.08em .38em;font-size:.85em}.ib-prose ul,.ib-prose ol{margin:1.2em 0;padding-left:1.25em}.ib-prose ul{list-style:outside}.ib-prose ol{list-style:decimal}.ib-prose li{margin:.5em 0}.ib-prose li::marker{color:var(--brand)}.ib-prose strong{color:var(--text);font-weight:640}.ib-prose em{font-style:italic}.ib-prose img{border-radius:12px;max-width:100%;height:auto;margin:1.6em 0}.ib-prose hr{background:var(--border);border:0;height:1px;margin:2.2em 0}.ib-prose table{border-collapse:collapse;width:100%;margin:1.6em 0;font-size:15px}.ib-prose th,.ib-prose td{border:1px solid var(--border);text-align:left;padding:8px 12px}.ib-prose th{background:var(--surface-2);font-weight:620}.ib-prose .lead{color:var(--text-2);font-size:21px;line-height:1.6;font-family:var(--serif)}.ib-dropcap>p:first-of-type:first-letter{font-family:var(--serif);float:left;color:var(--brand);padding:6px 10px 0 0;font-size:3.4em;font-weight:600;line-height:.82}.ib-prose blockquote{font-family:var(--serif);color:var(--text);border-left:3px solid var(--brand);margin:1.7em 0;padding:4px 0 4px 22px;font-size:25px;font-style:italic;line-height:1.4}.ib-prose blockquote p{margin:0}.ib-prose .ib-note{color:var(--text-3);font-size:13.5px;font-style:italic;line-height:1.55;font-family:var(--serif)}.ib-callout{background:var(--surface);border:1px solid var(--border);border-radius:12px;gap:14px;margin:1.6em 0;padding:16px 18px;display:flex}.ib-callout .ico{background:var(--brand-bg);width:26px;height:26px;color:var(--brand);border-radius:8px;flex:none;place-items:center;display:grid}.ib-callout .ct{color:var(--text-2);font-size:16px;line-height:1.6}.ib-callout .ct b,.ib-callout .ct strong{color:var(--text);font-weight:640}.ib-callout.warn .ico{color:#ffb43c;background:#ffb43c24}.ib-code{border:1px solid var(--border);background:var(--code-bg);box-shadow:var(--shadow);border-radius:12px;margin:1.7em 0;overflow:hidden}.ib-code-comparison{margin:1.8em 0;container-type:inline-size}.ib-code-comparison-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.ib-code-comparison-pane{min-width:0}.ib-code-comparison-label{border:1px solid color-mix(in srgb, var(--warning) 34%, var(--border));background:color-mix(in srgb, var(--warning) 9%, transparent);height:24px;color:var(--warning);font-family:var(--sans);letter-spacing:.06em;text-transform:uppercase;border-radius:7px;align-items:center;margin-bottom:8px;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.ib-code-comparison-label.is-after{border-color:color-mix(in srgb, var(--success) 34%, var(--border));background:color-mix(in srgb, var(--success) 9%, transparent);color:var(--success)}.ib-code-comparison .ib-code{margin:0}.ib-glossary{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;margin:1.8em 0;overflow:hidden}.ib-glossary-header{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--surface-2) 72%, transparent);padding:18px 20px 14px}.ib-glossary-title{color:var(--text);font-family:var(--serif);font-size:22px;font-weight:560;line-height:1.25}.ib-glossary-description{color:var(--text-2);font-family:var(--sans);margin:5px 0 0;font-size:14px;line-height:1.5}.ib-prose .ib-glossary-description{margin:5px 0 0}.ib-glossary-list{grid-template-columns:1fr;display:grid}.ib-glossary-item{border-top:1px solid var(--border);padding:15px 20px 16px}.ib-glossary-item:first-child{border-top:0}.ib-glossary-term{color:var(--text);font-family:var(--sans);font-size:15px;font-weight:680;line-height:1.35}.ib-glossary-definition{color:var(--text-2);font-family:var(--sans);margin:5px 0 0;font-size:14.5px;line-height:1.55}.ib-prose .ib-glossary-definition{margin:5px 0 0}.ib-file-tree{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;margin:1.8em 0;overflow:hidden}.ib-file-tree-title{border-bottom:1px solid var(--border);background:var(--code-head);color:var(--text-2);font-family:var(--mono);padding:10px 14px;font-size:13px;line-height:1.35}.ib-file-tree-body{padding:10px 12px 14px}.ib-file-tree-list{margin:0;padding:0;list-style:none}.ib-prose .ib-file-tree-list{margin:0;padding-left:0;list-style:none}.ib-file-tree-list.is-nested{margin-left:9px;padding-left:17px;position:relative}.ib-file-tree-list.is-nested:before{background:var(--border);content:"";width:1px;position:absolute;top:0;bottom:10px;left:0}.ib-file-tree-node{margin:0;position:relative}.ib-prose .ib-file-tree-node{margin:0;list-style:none}.ib-prose .ib-file-tree-node::marker{content:""}.ib-file-tree-list.is-nested>.ib-file-tree-node:before{background:var(--border);content:"";width:12px;height:1px;position:absolute;top:14px;left:-17px}.ib-file-tree-item{min-width:0;max-width:100%;min-height:28px;color:var(--text);font-family:var(--mono);border-radius:6px;align-items:center;gap:7px;padding:2px 7px;font-size:13.5px;line-height:1.35;transition:background .14s,color .14s;display:inline-flex}.ib-file-tree-item:hover{background:var(--surface-2);color:var(--text)}.ib-file-tree-node.is-folder>.ib-file-tree-item{font-weight:560}.ib-file-tree-icon{width:14px;height:14px;color:var(--text-3);flex:none;display:inline-block;position:relative}.ib-file-tree-icon.is-folder{color:var(--text-2)}.ib-file-tree-icon.is-folder:before{content:"";border:1.5px solid;border-radius:2px;width:12px;height:8px;position:absolute;top:4px;left:1px}.ib-file-tree-icon.is-folder:after{content:"";border:1.5px solid;border-bottom:0;border-radius:2px 2px 0 0;width:5px;height:3px;position:absolute;top:2px;left:2px}.ib-file-tree-icon.is-file{color:var(--text-3)}.ib-file-tree-icon.is-file:before{content:"";border:1.5px solid;border-radius:2px;width:9px;height:12px;position:absolute;top:1px;left:3px}.ib-file-tree-icon.is-file:after{background:var(--surface);content:"";border-top:1.5px solid;border-right:1.5px solid;width:4px;height:4px;position:absolute;top:2px;right:2px}.ib-file-tree-name{overflow-wrap:anywhere;min-width:0}.ib-code-head{background:var(--code-head);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:9px 14px;display:flex}.ib-code-file{font-family:var(--mono);color:var(--text-2);align-items:center;gap:8px;font-size:12.5px;display:flex}.ib-code-dots{gap:6px;display:flex}.ib-code-dots i{border-radius:999px;width:10px;height:10px;display:block}.ib-copy{cursor:pointer;font-family:var(--sans);color:var(--text-3);background:0 0;border:none;border-radius:7px;align-items:center;gap:6px;padding:4px 7px;font-size:12px;transition:all .15s;display:inline-flex}.ib-copy:hover{color:var(--text);background:var(--surface-2)}.ib-copy.copied{color:var(--brand-2)}.ib-prose pre.shiki{font-family:var(--mono);background:var(--code-bg);border:1px solid var(--border);border-radius:12px;margin:1.7em 0;padding:14px 16px;font-size:13.5px;line-height:1.48;overflow-x:auto}.ib-code pre.shiki{background:var(--code-bg);border:0;border-radius:0;margin:0}.ib-prose pre.shiki code{white-space:normal;font-family:inherit;display:block}.ib-prose pre.shiki .line{white-space:pre;display:block}.ib-prose pre.shiki,.ib-prose pre.shiki span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}.theme-light .ib-prose pre.shiki,.theme-light .ib-prose pre.shiki span{color:var(--shiki-light);background-color:var(--shiki-light-bg)}.ib-prose pre.shiki span{background-color:#0000}@container (max-width:760px){.ib-code-comparison-grid{grid-template-columns:1fr}}@media (min-width:760px){.ib-glossary-list{grid-template-columns:repeat(2,minmax(0,1fr))}.ib-glossary-item:nth-child(2){border-top:0}.ib-glossary-item:nth-child(odd){border-right:1px solid var(--border)}}.ib-prose .ib-mermaid{--ib-mermaid-cluster-bg:#211d18;--ib-mermaid-label-bg:#1a1714;--ib-mermaid-line:#cfc6ba;--ib-mermaid-node-bg:#2a241e;--ib-mermaid-node-border:#6a5f52;--ib-mermaid-text:#f1ebe2;border:1px solid var(--border);background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-family:var(--mono);white-space:pre;border-radius:12px;margin:1.7em 0;padding:18px;font-size:13px;line-height:1.6;overflow:hidden}.theme-light .ib-prose .ib-mermaid{--ib-mermaid-cluster-bg:#fffaf4;--ib-mermaid-label-bg:#fff;--ib-mermaid-line:#4b4037;--ib-mermaid-node-bg:#f3eee7;--ib-mermaid-node-border:#ded5ca;--ib-mermaid-text:#17120f}.ib-prose .ib-mermaid svg{width:100%;max-width:100%;height:auto;max-height:min(460px,72vh);font-family:var(--sans);margin:0 auto;display:block}.ib-prose .ib-mermaid[data-ib-mermaid-rendered="1"]{font-family:var(--sans);white-space:normal}.ib-prose .ib-mermaid svg .messageText,.ib-prose .ib-mermaid svg text.actor,.ib-prose .ib-mermaid svg text.actor-box,.ib-prose .ib-mermaid svg .label,.ib-prose .ib-mermaid svg .nodeLabel,.ib-prose .ib-mermaid svg .actor>text,.ib-prose .ib-mermaid svg .loopText,.ib-prose .ib-mermaid svg .noteText,.ib-prose .ib-mermaid svg .edgeLabel,.ib-prose .ib-mermaid svg .edgeLabel p{color:var(--ib-mermaid-text);fill:var(--ib-mermaid-text);stroke:none;font-weight:700}.ib-prose .ib-mermaid svg .edgeLabel,.ib-prose .ib-mermaid svg .edgeLabel p{background:0 0}.ib-prose .ib-mermaid svg .edgeLabel p{text-shadow:0 1px 0 var(--ib-mermaid-label-bg), 1px 0 0 var(--ib-mermaid-label-bg), 0 -1px 0 var(--ib-mermaid-label-bg), -1px 0 0 var(--ib-mermaid-label-bg);margin:0;padding:0;line-height:1}.ib-prose .ib-mermaid svg .messageLine0,.ib-prose .ib-mermaid svg .messageLine1,.ib-prose .ib-mermaid svg .flowchart-link,.ib-prose .ib-mermaid svg .edge-thickness-normal,.ib-prose .ib-mermaid svg .edge-pattern-solid,.ib-prose .ib-mermaid svg .edge-pattern-dotted{stroke:var(--ib-mermaid-line)}.ib-prose .ib-mermaid svg marker path{fill:var(--ib-mermaid-line);stroke:var(--ib-mermaid-line)}.ib-prose .ib-mermaid svg rect.actor,.ib-prose .ib-mermaid svg rect.actor-box,.ib-prose .ib-mermaid svg .node rect,.ib-prose .ib-mermaid svg .node polygon,.ib-prose .ib-mermaid svg .node circle,.ib-prose .ib-mermaid svg .node ellipse{fill:var(--ib-mermaid-node-bg);stroke:var(--ib-mermaid-node-border)}.ib-prose .ib-mermaid[data-ib-mermaid-error="1"]{border-color:var(--destructive);color:var(--destructive)}.ib-mermaid-viewport{cursor:grab;touch-action:none;border-radius:8px;flex-direction:column;gap:10px;display:flex;position:relative;overflow:hidden}.ib-prose .ib-mermaid.is-compact .ib-mermaid-viewport{gap:10px}.ib-mermaid-viewport.is-dragging{cursor:grabbing}.ib-mermaid-canvas{transform-origin:50%;width:100%;margin:0 auto;transition:transform .12s}.ib-mermaid-viewport.is-dragging .ib-mermaid-canvas{transition:none}.ib-mermaid-toolbar{z-index:2;grid-template-columns:repeat(2,32px);align-self:flex-end;gap:6px;display:grid;position:static}.ib-prose .ib-mermaid.is-compact .ib-mermaid-toolbar{align-self:flex-end}.ib-mermaid-tool{border:1px solid var(--border-2);background:color-mix(in srgb, var(--surface) 88%, transparent);width:32px;height:32px;color:var(--text-2);font-family:var(--sans);box-shadow:var(--shadow);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:6px;place-items:center;line-height:1;transition:border-color .14s,color .14s,background .14s;display:grid}.ib-prose .ib-mermaid-tool svg{width:15px;height:15px}.ib-mermaid-tool:hover,.ib-mermaid-tool:focus-visible{border-color:var(--text-3);background:var(--surface-2);color:var(--text)}.ib-mermaid-tool:focus-visible,.ib-mermaid-dialog-tool:focus-visible,.ib-mermaid-dialog-close:focus-visible,.ib-mermaid-dialog-viewport:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.ib-mermaid-tooltip{z-index:80;border:1px solid var(--border-2);background:var(--surface-2);max-width:220px;color:var(--text);font-family:var(--sans);box-shadow:var(--shadow);border-radius:6px;padding:7px 9px;font-size:12px;font-weight:650;line-height:1.2;animation:.14s ease-out ib-mermaid-tooltip-in}.ib-mermaid-tooltip-arrow{fill:var(--surface-2)}.ib-mermaid-dialog-overlay{z-index:70;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c0a08b8;animation:.16s ease-out ib-mermaid-overlay-in;position:fixed;inset:0}.ib-mermaid-dialog{z-index:71;border:1px solid var(--border-2);background:var(--surface);min-width:0;min-height:0;color:var(--text);border-radius:10px;flex-direction:column;animation:.16s ease-out ib-mermaid-dialog-in;display:flex;position:fixed;inset:24px;overflow:hidden;box-shadow:0 24px 80px #0000007a}.ib-mermaid-dialog-header{z-index:2;border-bottom:1px solid var(--border);background:var(--surface);grid-template-columns:minmax(120px,1fr) auto 40px;align-items:center;gap:16px;min-height:64px;padding:12px 16px;display:grid}.ib-mermaid-dialog-title{font-family:var(--sans);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;line-height:1.3;overflow:hidden}.ib-mermaid-dialog-toolbar{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.ib-mermaid-dialog-tool,.ib-mermaid-dialog-close{border:1px solid var(--border-2);background:var(--surface);width:40px;height:40px;color:var(--text-2);cursor:pointer;border-radius:8px;flex:0 0 40px;place-items:center;transition:border-color .14s,color .14s,background .14s;display:grid}.ib-mermaid-dialog-tool:hover,.ib-mermaid-dialog-close:hover{border-color:var(--text-3);background:var(--surface-2);color:var(--text)}.ib-mermaid-dialog-tool:disabled{cursor:not-allowed;color:var(--text-3)}.ib-mermaid-dialog-scale{width:58px;color:var(--text-2);font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:center;font-size:12px}.ib-mermaid-dialog-viewport{background:var(--bg);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.theme-light .ib-mermaid-dialog-viewport{background:#fbf8f3}.ib-mermaid-dialog-viewport:active{cursor:grabbing}.ib-mermaid-dialog-canvas{transform-origin:50%;will-change:transform;width:max-content;height:max-content;transition:transform .14s;position:absolute}.ib-mermaid-dialog .ib-mermaid-dialog-canvas svg{max-width:none;max-height:none;font-family:var(--sans);display:block;overflow:visible}.ib-mermaid-dialog-state{z-index:1;color:var(--text-2);font-family:var(--sans);text-align:center;justify-content:center;align-items:center;gap:8px;padding:24px;font-size:14px;display:flex;position:absolute;inset:0}.ib-mermaid-dialog-spinner{width:18px;height:18px;animation:.8s linear infinite ib-mermaid-spin}.ib-mermaid-dialog-announcer{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.ib-mermaid-fit-menu{z-index:80;border:1px solid var(--border-2);background:var(--surface);min-width:184px;color:var(--text);font-family:var(--sans);box-shadow:var(--shadow);border-radius:8px;padding:6px;font-size:13px}.ib-mermaid-fit-menu [role=menuitem]{cursor:pointer;border-radius:6px;outline:0;padding:9px 10px}.ib-mermaid-fit-menu [role=menuitem]:hover,.ib-mermaid-fit-menu [role=menuitem][data-highlighted]{background:var(--surface-2)}@keyframes ib-mermaid-spin{to{transform:rotate(360deg)}}@keyframes ib-mermaid-overlay-in{0%{opacity:0}}@keyframes ib-mermaid-dialog-in{0%{opacity:0;transform:translateY(4px)scale(.995)}}@keyframes ib-mermaid-tooltip-in{0%{opacity:0;transform:translateY(2px)}}@media (max-width:640px){.ib-mermaid-tool{width:36px;height:36px}.ib-mermaid-toolbar{grid-template-columns:repeat(2,36px)}.ib-mermaid-dialog{padding-bottom:env(safe-area-inset-bottom);border:0;border-radius:0;inset:0}.ib-mermaid-dialog-header{padding:calc(8px + env(safe-area-inset-top)) 12px 8px;grid-template-columns:minmax(0,1fr) 44px;gap:8px}.ib-mermaid-dialog-title{font-size:14px}.ib-mermaid-dialog-toolbar{grid-area:2/1/auto/-1;justify-content:center;gap:6px}.ib-mermaid-dialog-close{grid-area:1/2}.ib-mermaid-dialog-tool,.ib-mermaid-dialog-close{flex-basis:44px;width:44px;height:44px}.ib-mermaid-dialog-scale{width:48px}}@media (prefers-reduced-motion:reduce){.ib-mermaid-canvas,.ib-mermaid-dialog-canvas,.ib-mermaid-dialog,.ib-mermaid-dialog-overlay,.ib-mermaid-tooltip{transition:none;animation:none}}