@layer reset{@layer reset{*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-moz-text-size-adjust:100%;text-size-adjust:100%}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.6}img,picture,video,canvas,svg{max-width:100%;height:auto;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}:where(ul,ol)>li{list-style-type:none}:focus{outline:none}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}}@layer theme{@font-face{font-family:Manrope Fallback;src:local(Arial);size-adjust:95%;ascent-override:90%;descent-override:22%}@font-face{font-family:"Source Serif 4 Fallback";src:local(Georgia);size-adjust:98%;ascent-override:88%;descent-override:24%}@font-face{font-family:DM Mono Fallback;src:local(Menlo),local(Consolas);size-adjust:96%;ascent-override:88%;descent-override:22%;line-gap-override:10%}:root{--bg-primary:#fbf8f5;--bg-secondary:#f2eee9;--bg-highlight:#fff;--text-primary:#191511;--text-secondary:#59544f;--accent-primary:var(--accent-primary);--accent-secondary:#5f8a81;--border-subtle:var(--border-subtle);--color-link:var(--accent-primary);--accent-hover:#00314f;--color-information:#2266a4;--color-success:#21763c;--color-warning:#9c7c0b;--color-error:#9c4246;--color-inline-code-bg:#ebe3da;--color-inline-code-text:var(--text-primary);--color-blockquote-bg:var(--bg-highlight);--color-blockquote-border:#c2bdb7;--color-bg:var(--bg-primary);--color-bg-secondary:var(--bg-secondary);--color-bg-highlight:var(--bg-highlight);--color-bg-inline-code:var(--color-inline-code-bg);--color-bg-blockquote:var(--color-blockquote-bg);--color-text:var(--text-primary);--color-text-muted:var(--text-secondary);--color-text-inline-code:var(--color-inline-code-text);--color-accent:var(--accent-primary);--color-accent-hover:var(--accent-hover);--border-blockquote:var(--color-blockquote-border);--color-bg-information:var(--color-information);--color-bg-success:var(--color-success);--color-bg-warning:var(--color-warning);--color-bg-error:var(--color-error);--transition-fast:.2s ease;--transition-normal:.3s ease;--transition-slow:.5s ease;--theme-button-image:url(/theme/light-mode.svg);--dark-theme-button-image:url(/theme/dark-mode.svg);--theme-link-image:url(/theme/link.svg);--dark-bg-primary:#001829;--dark-bg-secondary:#02243c;--dark-bg-highlight:#0e171e;--dark-text-primary:#eee;--dark-text-secondary:#aeaeae;--dark-color-inline-code-bg:#092b44;--dark-color-inline-code-text:#7fc08c;--dark-accent-primary:#c69356;--dark-accent-secondary:#79679a;--dark-border-subtle:#14242f;--dark-color-link:var(--dark-accent-primary);--dark-accent-hover:#d7a365;--dark-color-information:#52a9fe;--dark-color-success:#25984d;--dark-color-warning:#c19900;--dark-color-error:#ca545a;--dark-color-blockquote-bg:var(--dark-bg-highlight);--dark-color-blockquote-border:#283d4e}@supports (color:lab(0% 0 0)){:root{--bg-primary:lab(97.683% .567943 1.798);--bg-secondary:lab(94.2139% .690639 2.9597);--bg-highlight:lab(100% 0 0);--text-primary:lab(7.22589% 1.19062 3.13728);--text-secondary:lab(36.2035% 1.18349 3.62763);--accent-primary:lab(24.4811% -7.8918 -24.9024);--accent-secondary:lab(54.2277% -17.1873 -.146425);--border-subtle:lab(88.403% .568539 1.7984);--accent-hover:lab(18.4846% -6.18219 -30.7607);--color-information:lab(41.4353% -4.04441 -40.3761);--color-success:lab(43.5038% -36.3107 24.0307);--color-warning:lab(53.8655% 5.75405 56.8742);--color-error:lab(40.7459% 38.3988 17.3995);--color-inline-code-bg:lab(90.7266% 1.75071 5.42451);--color-blockquote-border:lab(76.805% 1.15651 3.60929);--dark-bg-primary:lab(7.14189% -4.04456 -15.461);--dark-bg-secondary:lab(12.8079% -3.84372 -19.4888);--dark-bg-highlight:lab(7.23336% -2.52666 -6.34827);--dark-text-primary:lab(94.2% 0 0);--dark-text-secondary:lab(71% 0 0);--dark-color-inline-code-bg:lab(16.314% -4.38662 -19.5616);--dark-color-inline-code-text:lab(72.2952% -29.8567 19.3263);--dark-accent-primary:lab(65.0674% 14.8656 40.0348);--dark-accent-secondary:lab(46.7671% 15.6163 -25.232);--dark-border-subtle:lab(13.0029% -3.99203 -9.53898);--dark-accent-hover:lab(70.8799% 14.6468 39.5821);--dark-color-information:lab(66.9017% -6.76849 -50.6994);--dark-color-success:lab(55.4741% -45.4549 30.1606);--dark-color-warning:lab(65.5026% 7.67806 74.2538);--dark-color-error:lab(52.0295% 48.013 21.8556);--dark-color-blockquote-border:lab(24.5535% -4.24945 -13.3087)}}:root[data-theme=dark]{--bg-primary:var(--dark-bg-primary);--bg-secondary:var(--dark-bg-secondary);--bg-highlight:var(--dark-bg-highlight);--color-bg-inline-code:var(--dark-color-inline-code-bg);--color-bg-blockquote:var(--dark-color-blockquote-bg);--text-primary:var(--dark-text-primary);--text-secondary:var(--dark-text-secondary);--color-text-inline-code:var(--dark-color-inline-code-text);--color-accent:var(--dark-accent-primary);--accent-primary:var(--dark-accent-primary);--border-subtle:var(--dark-border-subtle);--border-blockquote:var(--dark-color-blockquote-border);--color-link:var(--dark-color-link);--accent-hover:var(--dark-accent-hover);--theme-button-image:var(--dark-theme-button-image);--color-bg-information:var(--dark-color-information);--color-bg-success:var(--dark-color-success);--color-bg-warning:var(--dark-color-warning);--color-bg-error:var(--dark-color-error)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg-primary:var(--dark-bg-primary);--bg-secondary:var(--dark-bg-secondary);--bg-highlight:var(--dark-bg-highlight);--color-bg-inline-code:var(--dark-color-inline-code-bg);--color-bg-blockquote:var(--dark-color-blockquote-bg);--text-primary:var(--dark-text-primary);--text-secondary:var(--dark-text-secondary);--color-text-inline-code:var(--dark-color-inline-code-text);--color-accent:var(--dark-accent-primary);--accent-primary:var(--dark-accent-primary);--border-subtle:var(--dark-border-subtle);--border-blockquote:var(--dark-color-blockquote-border);--color-link:var(--dark-color-link);--accent-hover:var(--dark-accent-hover);--theme-button-image:var(--dark-theme-button-image);--color-bg-information:var(--dark-color-information);--color-bg-success:var(--dark-color-success);--color-bg-warning:var(--dark-color-warning);--color-bg-error:var(--dark-color-error)}}body{background-color:var(--color-bg);color:var(--color-text);transition:background-color var(--transition-normal),color var(--transition-normal)}*{transition:background-color var(--transition-normal),color var(--transition-normal),border-color var(--transition-normal)}@media (prefers-reduced-motion:reduce){*{transition:none!important}}}@layer utilities{:root{--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px}.hidden{display:none}.sticky{display:sticky}.flex{display:flex}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.truncate-single-line{whitespace:nowrap;text-overflow:ellipsis;width:100%;max-height:1.5em;overflow:hidden}.inline-flex{display:inline-flex}.items-center{align-items:center}.gap-xs{gap:var(--space-xs)}}@layer typography{:root{--font-system:"Manrope","Manrope Fallback",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-serif:"Source Serif 4","Source Serif 4 Fallback",Georgia,"Times New Roman",serif;--font-mono:"DM Mono","DM Mono Fallback",Menlo,Monaco,Consolas,"SF Mono","Roboto Mono","Courier New",monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:1.8}body{font-family:var(--font-system);font-size:var(--text-base);line-height:var(--leading-normal);font-optical-sizing:auto}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);line-height:var(--leading-tight);margin-bottom:var(--space-md)}h1{font-weight:var(--font-semibold);font-size:clamp(var(--text-3xl),4vw,var(--text-5xl));margin-bottom:var(--space-sm)}h2,h3,h4,h5,h6{font-weight:var(--font-semibold)}h2{font-size:clamp(var(--text-2xl),3vw,var(--text-3xl));margin-top:var(--space-xl)}h3{font-size:clamp(var(--text-xl),2.5vw,var(--text-2xl));margin-top:var(--space-lg)}h4{font-size:var(--text-xl);margin-top:var(--space-lg)}h5{font-size:var(--text-lg);margin-top:var(--space-md)}h6{font-size:var(--text-base);margin-top:var(--space-md)}p{margin-bottom:var(--space-md);color:var(--color-text);line-height:var(--leading-relaxed)}.typography :where(p,li){line-height:var(--leading-loose)}.text-muted{color:var(--color-text-muted)}.text-small{font-size:var(--text-sm)}.text-large{font-size:var(--text-lg)}strong,b{font-weight:var(--font-semibold)}em,i{font-style:italic}a{transition:color var(--transition-fast)}a:hover{text-underline-offset:.2rem;text-decoration:underline}:where(main,aside) a{text-underline-offset:.2rem;text-decoration:underline}a:hover{color:var(--color-link)}a:focus-visible{outline:2px solid var(--color-link);outline-offset:2px;border-radius:var(--radius-sm)}code{font-family:var(--font-mono);background:var(--color-bg-inline-code);color:var(--color-text-inline-code);padding:calc(var(--space-xs)*.5)var(--space-xs);border-radius:var(--radius-sm);font-feature-settings:"liga" on,"calt" on;font-size:.9em}:not(pre) :-webkit-any(code){border:1px solid var(--border-subtle)}:not(pre) :-moz-any(code){border:1px solid var(--border-subtle)}:not(pre) :is(code){border:1px solid var(--border-subtle)}pre{font-family:var(--font-mono);background:var(--color-border);padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-md);overflow-x:auto}pre code{background:0 0;padding:0}hr{background-color:color-mix(in oklch,var(--text-primary)20%,transparent);height:1px;margin:var(--space-xl)0;border:none;border-radius:1px}blockquote{box-sizing:border-box;margin:var(--space-xl)0;padding:var(--space-lg)var(--space-xl)var(--space-sm)calc(var(--space-xl) + 4px);background-color:var(--color-bg-blockquote);border-left:4px solid var(--border-blockquote);border-radius:var(--radius-md);font-family:var(--font-serif);font-size:var(--text-xl);line-height:var(--leading-relaxed);font-style:italic;font-weight:var(--font-normal);color:var(--color-text-muted);position:relative;box-shadow:0 2px 8px #0000000d}blockquote:before{content:"“";left:var(--space-sm);top:var(--space-sm);font-size:var(--text-5xl);color:var(--border-blockquote);opacity:.7;line-height:1;font-family:var(--font-serif);pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0;position:absolute}main.typography>*+:not(:where(h2,h3,h4,h5,h6,hr)){margin-top:var(--space-md)}.typography :where(ul,ol){margin-top:var(--space-md);margin-bottom:var(--space-md);padding-left:var(--space-lg)}.typography li>:where(ul,ol){margin-top:var(--space-xs);margin-bottom:0}.typography li+li{margin-top:var(--space-xs)}.typography ul>li{list-style-type:disc}.typography ol>li{list-style-type:decimal}.typography table{border-collapse:collapse;width:100%;margin:var(--space-lg)0;font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg)}.typography tr:hover{background-color:color-mix(in oklch,var(--bg-secondary)30%,transparent)}thead>:is(.typography tr:hover){background-color:var(--bg-secondary)}.typography :where(th,td){padding:var(--space-sm)var(--space-md);text-align:left;vertical-align:top;border-bottom:1px solid var(--border-subtle)}tbody tr:last-child :is(.typography :where(th,td)){border-bottom:none}.typography th{font-family:var(--font-system);font-weight:var(--font-semibold);color:var(--color-text);background-color:var(--bg-secondary);border-bottom:2px solid var(--border-subtle)}@container (width<=500px){.typography table{font-size:var(--text-sm);white-space:nowrap;display:block;overflow-x:auto}.typography th,.typography td{padding:var(--space-xs)var(--space-sm)}}.typography figure:has(table){margin:var(--space-lg)0;container-type:inline-size}.typography figure>table{margin:0}.typography figcaption{font-family:var(--font-serif);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-text-muted);text-align:left;margin-top:var(--space-sm);margin-bottom:var(--space-lg);padding:0 var(--space-md)}@container (width<=500px){.typography figcaption{font-size:var(--text-xs);margin-top:var(--space-xs)}}@media (max-width:768px){:root{--text-base:.9rem}body{line-height:var(--leading-relaxed)}}}@layer components{:root{--logo-height:2.5rem;--header-padding:.5rem;--header-height:calc(var(--logo-height) + 2*var(--header-padding));--footer-height:6rem}body.site{flex-direction:column;align-items:center;display:flex}body.site>:where(nav,footer){color:var(--text-secondary)}:where(.root-header,.root-nav){padding:var(--header-padding);height:var(--header-height);z-index:10;top:0}:where(.root-header,.root-nav).root-header{left:0}@media (min-width:1200px){:where(.root-header,.root-nav).root-header{position:sticky}}:where(.root-header,.root-nav).root-header{width:calc(var(--logo-height) + 2*var(--header-padding));align-self:flex-start}:where(.root-header,.root-nav).root-header svg{border:solid;box-shadow:0 10px 15px -3px #00000080,0 4px 6px -2px #0000000d}:where(.root-header,.root-nav).root-header a:hover>svg{opacity:.7;color:var(--accent-hover)!important}:where(.root-header,.root-nav).root-nav{padding-right:calc(var(--header-padding)*2);background-color:var(--color-bg);align-self:flex-end;position:fixed;right:0}:where(.root-header,.root-nav).root-nav>ul{padding:calc(var(--logo-height)*.125);align-items:center;gap:calc(var(--logo-height)*.5);flex-direction:row;display:flex}:where(.root-header,.root-nav).root-nav>ul>li{font-size:var(--text-lg)}:where(.root-header,.root-nav).root-nav>ul>li :where(svg,button){--icon-size:calc(var(--text-lg)*1.25);height:var(--icon-size);width:var(--icon-size);object-fit:contain;display:block}:where(.root-header,.root-nav).root-nav>ul>li :where(svg,button)[aria-label=Toggle\ theme]{height:var(--icon-size);width:var(--icon-size);background-color:var(--text-secondary);-webkit-mask-image:var(--theme-button-image);-webkit-mask-image:var(--theme-button-image);mask-image:var(--theme-button-image);line-height:1;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}:where(.root-header,.root-nav).root-nav>ul>li :where(svg,button)[aria-label=Toggle\ theme]:hover{background-color:var(--color-accent-hover)}.root-footer{height:var(--footer-height);--text-size:var(--text-xs);padding:calc(var(--text-size)*.5);margin-inline:var(--text-size);justify-content:center;align-items:flex-end;gap:calc(var(--text-size)*.5);font-size:var(--text-size);flex-direction:row;display:flex;left:0;right:0}.sticky-active{padding:var(--space-xs)0;color:var(--text-secondary);background:var(--bg-primary);box-shadow:0 2px 2px var(--border-subtle);z-index:5;position:sticky;top:0}.linked-heading:not(.sticky-active){position:relative}.linked-heading .heading-anchor{visibility:hidden}.linked-heading:hover .heading-anchor{visibility:visible}.linked-heading .heading-anchor{align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;transform:translate(-100%)}.linked-heading .heading-anchor .icon{background-color:var(--text-secondary);width:1em;height:.8em;padding:.1rem;line-height:1}.container{max-width:800px;padding:var(--space-xl)var(--space-md);margin:0 auto}.tagline{margin-top:var(--space-sm);font-style:italic}.icon{background-color:currentColor;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon.icon-link{-webkit-mask-image:var(--theme-link-image);-webkit-mask-image:var(--theme-link-image);mask-image:var(--theme-link-image)}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-xl);transition:background-color var(--transition-normal),border-color var(--transition-normal)}.card:hover{border-color:var(--color-border-strong)}.article-meta{gap:var(--space-md);margin-bottom:var(--space-md);font-size:var(--text-sm);align-items:center;display:flex}.article-meta time{color:var(--color-text-muted)}.post-meta{gap:var(--space-md);color:var(--color-text-muted);list-style:none;display:flex}.tag{background:var(--color-accent);color:var(--color-bg);padding:var(--space-xs)var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-medium);white-space:nowrap}.btn{padding:var(--space-sm)var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--color-border-strong);text-decoration:none}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn-primary{background:var(--color-accent);color:var(--color-bg);border-color:var(--color-accent)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.task-list-item{list-style-type:none!important}.task-list-item>input:first-child{margin-right:var(--space-sm);vertical-align:middle;width:1.25em;height:1.25em}:where(ul,ol):has(>.task-list-item){padding-left:0!important}@media (max-width:768px){.container{padding:var(--space-md)var(--space-sm)}.nav{gap:var(--space-md);flex-direction:column}.article-meta{align-items:flex-start;gap:var(--space-sm);flex-direction:column}.theme-toggle{width:44px;height:44px;font-size:var(--text-lg)}}@media (max-width:480px){.card{padding:var(--space-md)}.theme-toggle{top:var(--space-sm);right:var(--space-sm)}}@media print{.theme-toggle{display:none}.card{margin-bottom:var(--space-md);border:1px solid #000}a{text-decoration:underline}}@media (prefers-contrast:high){.card,.theme-toggle{border-width:2px}}.table-of-contents li{font-size:var(--text-sm);color:var(--color-text-muted);margin-left:1ch;list-style-type:"- "}.table-of-contents *+*{margin-top:var(--space-xs)}@media (min-width:1200px){.table-of-contents [aria-current=location]{color:var(--color-accent);font-weight:var(--font-semibold)}}.admonition{border:1px solid var(--border-subtle);border-left:4px solid var(--color-admonition-status);border-radius:var(--radius-md);margin:var(--space-lg)0;background:var(--bg-secondary);overflow:hidden}.admonition.admonition-info{--color-admonition-status:var(--color-bg-information)}.admonition.admonition-warning{--color-admonition-status:var(--color-bg-warning)}.admonition.admonition-error{--color-admonition-status:var(--color-bg-error)}.admonition .admonition-header{align-items:center;gap:var(--space-sm);padding:var(--space-sm)var(--space-lg);font-weight:var(--font-semibold);color:color-mix(in oklch,var(--color-admonition-status)70%,var(--color-text));background:color-mix(in oklch,var(--color-admonition-status)15%,transparent);display:flex}.admonition .admonition-header .admonition-icon{font-size:var(--text-lg);text-shadow:0 0 2px #0009,0 0 1px #00000080;flex-shrink:0}.admonition .admonition-content{padding:var(--space-md)var(--space-lg)}.admonition .admonition-content>:last-child{margin-bottom:0}.link-card{background-color:var(--color-bg-highlight);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:background-color var(--transition-normal),border-color var(--transition-normal)}.link-card:hover{border-color:var(--color-border-strong);background-color:color-mix(in oklch,var(--bg-secondary)50%,transparent)}.link-card{--image-width:200px;--image-height:120px;height:var(--image-height);flex-direction:row;place-items:stretch stretch;text-decoration:none;display:flex}.link-card>.link-card-image{flex-basis:var(--image-width);width:var(--image-width);flex-grow:0;flex-shrink:0;height:100%}.link-card>.link-card-image img{border-radius:var(--radius-md)0 0 var(--radius-md);object-fit:cover;width:100%;height:100%}.link-card:hover img{filter:brightness(.9)}.link-card>:last-child{padding:var(--space-md);flex-direction:column;flex-grow:1;justify-content:space-evenly;align-items:flex-start;display:flex}.link-card .link-card-site{align-items:center;gap:var(--space-xs);color:var(--color-text-muted);flex-direction:row;display:flex}.link-card .link-card-site>img{width:1em;height:1em}.link-card .link-card-site{font-size:var(--text-xs)}.link-card :where(h2,h3,h4,h5,h6).link-card-title{--text-size:var(--text-lg);font-size:var(--text-size);line-height:calc(var(--text-size)*var(--leading-tight));height:calc(var(--text-size)*var(--leading-tight));font-weight:var(--font-semibold);color:var(--color-text);text-overflow:clip;margin:0}.link-card :hover .link-card-title{text-decoration:underline}.link-card .link-card-description{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.diagram-tabs .react-aria-TabList{gap:var(--space-xs);margin-bottom:var(--space-md);border-bottom:1px solid var(--border-subtle);padding-bottom:var(--space-xs);flex-direction:row;display:flex}.diagram-tabs .react-aria-Tab{padding:var(--space-sm)var(--space-md);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--font-medium);border-radius:var(--radius-sm)var(--radius-sm)0 0;cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast);background:0 0;border:none;position:relative}.diagram-tabs .react-aria-Tab:hover{color:var(--color-text);background-color:color-mix(in oklch,var(--bg-secondary)30%,transparent)}.diagram-tabs .react-aria-Tab[data-selected=true]{color:var(--color-accent);background-color:var(--bg-secondary)}.diagram-tabs .react-aria-Tab[data-selected=true]:after{content:"";background-color:var(--color-accent);height:2px;position:absolute;bottom:-1px;left:0;right:0}.diagram-tabs .react-aria-Tab:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.diagram-tabs .react-aria-TabPanel{position:relative}.diagram-tabs .react-aria-TabPanel .diagram-code{border:1px solid var(--border-subtle);border-radius:var(--radius-md);max-height:100%;position:relative;overflow-y:auto}.diagram-tabs .react-aria-TabPanel .diagram-code pre{border-style:none!important}.diagram-tabs .react-aria-TabPanel .button-group.diagram-code-buttons{top:var(--space-sm);right:var(--space-sm);z-index:10;opacity:0;position:absolute}:hover>:is(.diagram-tabs .react-aria-TabPanel .button-group.diagram-code-buttons){opacity:1}.diagram-tabs .react-aria-TabPanel .button-group.diagram-code-buttons{transition:opacity var(--transition-fast)}.diagram-tabs .react-aria-TabPanel .button-group.diagram-code-buttons .copy-button{border:1px solid color-mix(in oklch,var(--text-primary)50%,transparent);border-radius:var(--radius-sm);cursor:pointer;width:2rem;height:2rem;transition:all var(--transition-fast);background-color:#0000;justify-content:center;align-items:center;display:flex}.diagram-tabs .react-aria-TabPanel .button-group.diagram-code-buttons .copy-button:hover{background-color:color-mix(in oklch,var(--text-primary)20%,transparent)}.diagram-tabs .react-aria-TabPanel .button-group.diagram-code-buttons .copy-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.diagram-tabs .react-aria-TabPanel .button-group.diagram-code-buttons .copy-button .icon{color:#0000;width:1.2rem;height:1.2rem;stroke:var(--text-primary);transition:color var(--transition-fast)}.diagram-tabs .react-aria-TabPanel .diagram-container{max-width:100%}.diagram-tabs .react-aria-TabPanel .diagram-container:not(:has(.diagram-fit,.diagram-scrollable)){display:flex}.diagram-tabs .react-aria-TabPanel .diagram-container>figure{--diagram-tab-height:50vh;position:relative}.diagram-tabs .react-aria-TabPanel .diagram-container>figure .diagram:not(:where(.diagram-fit,.diagram-scrollable)) svg{height:var(--diagram-tab-height)}.diagram-tabs .react-aria-TabPanel .diagram-container>figure .diagram-fit{width:100%}.diagram-tabs .react-aria-TabPanel .diagram-container>figure .diagram-scrollable{max-height:var(--diagram-tab-height);overflow-y:auto}.diagram-tabs .react-aria-TabPanel .diagram-container>figure>.button-group{top:var(--space-sm);right:var(--space-sm);z-index:10;opacity:0;transition:opacity var(--transition-fast);align-items:center;gap:var(--space-xs);flex-direction:row;display:flex;position:absolute}.diagram-tabs .react-aria-TabPanel .diagram-container>figure>.button-group button{border-radius:var(--radius-sm);cursor:pointer;width:2rem;height:2rem;transition:all var(--transition-fast);background-color:#0000;border:1px solid #0003;justify-content:center;align-items:center;display:flex}.diagram-tabs .react-aria-TabPanel .diagram-container>figure>.button-group button:hover{background-color:#0000001a}.diagram-tabs .react-aria-TabPanel .diagram-container>figure>.button-group button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.diagram-tabs .react-aria-TabPanel .diagram-container>figure>.button-group button .icon{color:#0000;stroke:#00000080;fill:none;width:1rem;height:1rem;transition:color var(--transition-fast)}.diagram-tabs .react-aria-TabPanel .diagram-container>figure:hover>.button-group{opacity:1}.diagram{border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:4px 2px 4px #0000000f}.react-aria-ModalOverlay{z-index:100;background-color:#00000080;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.react-aria-ModalOverlay .diagram-modal{--diagram-width:90vw;--diagram-height:90vh}.react-aria-ModalOverlay .diagram-modal figure{transition:transform var(--transition-fast);transform:scale(1)}[data-entering] :is(.react-aria-ModalOverlay .diagram-modal figure){transform:scale(.7)}.react-aria-ModalOverlay .diagram-modal .close-modal{visibility:hidden;width:2rem;height:2rem;position:absolute;top:0;right:0}.react-aria-ModalOverlay .diagram-modal .diagram svg{height:var(--diagram-height)}.react-aria-ModalOverlay .diagram-modal .diagram.diagram-fit svg{width:var(--diagram-width);height:auto}.react-aria-ModalOverlay .diagram-modal .diagram.diagram-scrollable svg{height:var(--diagram-height)}.react-aria-Tooltip{color:#fff;background-color:var(--color-bg-success);padding:var(--space-xs)var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-medium);white-space:nowrap;z-index:1000;transition:opacity var(--transition-fast),transform var(--transition-slow);position:relative;transform:translate(-6px);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.react-aria-Tooltip:after{content:"";border-style:solid;border-width:6px 0 6px 6px;border-color:transparent transparent transparent var(--color-bg-success);width:0;height:0;position:absolute;top:50%;right:-6px;transform:translateY(-50%)}.react-aria-Tooltip[data-entering]{opacity:1;transform:translate(-6px)}.react-aria-Tooltip[data-exiting]{opacity:0;transform:translateY(-6px,4px)}.oembed-frame-container{margin:var(--space-lg)0;display:flex}.oembed-frame-container figure{margin:0;position:relative}.oembed-frame-container .oembed-frame{position:relative;overflow:hidden}.oembed-frame-container .oembed-frame iframe{border:none}.oembed-frame-container .oembed-frame .button-group{top:var(--space-sm);right:var(--space-sm);z-index:10;opacity:0;transition:opacity var(--transition-fast);align-items:center;gap:var(--space-xs);flex-direction:row;display:flex;position:absolute}.oembed-frame-container .oembed-frame .button-group .expand-button{border-radius:var(--radius-sm);cursor:pointer;width:2rem;height:2rem;transition:all var(--transition-fast);background-color:#0000;border:1px solid #0003;justify-content:center;align-items:center;display:flex}.oembed-frame-container .oembed-frame .button-group .expand-button:hover{background-color:#0000001a}.oembed-frame-container .oembed-frame .button-group .expand-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.oembed-frame-container .oembed-frame .button-group .expand-button .icon{color:#0000;stroke:#00000080;fill:none;width:1rem;height:1rem}.oembed-frame-container .oembed-frame:hover .button-group{opacity:1}.oembed-frame-container figcaption{font-family:var(--font-serif);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-text-muted);text-align:left;margin-top:var(--space-sm);padding:0 var(--space-md)}.oembed-modal{--oembed-width:90vw;--oembed-height:90vh}.oembed-modal .oembed-dialog{max-width:var(--oembed-width);max-height:var(--oembed-height);position:relative}.oembed-modal figure{transition:transform var(--transition-fast);margin:0;transform:scale(1)}[data-entering] :is(.oembed-modal figure){transform:scale(.7)}.oembed-modal figure iframe{border:none}.oembed-modal .close-modal{top:var(--space-sm);right:var(--space-sm);color:#fff;border-radius:var(--radius-sm);cursor:pointer;z-index:20;background-color:#000000b3;border:none;justify-content:center;align-items:center;width:2rem;height:2rem;display:flex;position:absolute}.oembed-modal .close-modal:hover{background-color:#000000e6}.oembed-modal .close-modal:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.oembed-modal .oembed-frame-expanded{border-radius:var(--radius-lg);border:none}.oembed-modal .oembed-frame-expanded iframe{border-radius:var(--radius-lg)}.twitter-embed .oembed-frame iframe{height:400px;min-height:200px}.youtube-embed{background:var(--color-bg-secondary)}.youtube-embed iframe{transition:opacity var(--transition-normal)}.youtube-embed iframe[loading=lazy]{background:var(--color-bg-secondary)}.youtube-embed iframe[loading=lazy]:before{content:"Loading video...";color:var(--color-text-muted);font-size:var(--text-sm);z-index:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sr-only{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}
