:root{color-scheme:light;--color-bg:#f7f7f9;--color-text:#292b35;--color-accent:#59618f;--color-bg-secondary:#eff0f4;--color-text-secondary:#666a78;--color-border:#dfe1e8;--spacing-1:0.25rem;--spacing-2:0.5rem;--spacing-3:0.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-7:1.75rem;--font-mono:'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, 'Courier New',
    monospace;--layout-width:82rem;--rail-width:15rem;--right-rail-width:14rem;--layout-gap:clamp(1rem, 2vw, 2rem);--floating-action-size:2.75rem;--floating-action-gap:0.75rem;--floating-action-right:max(1rem, env(safe-area-inset-right, 0px));--floating-action-bottom:max(1rem, env(safe-area-inset-bottom, 0px));--toc-rail-offset:calc(
    var(--layout-width) / 2 - var(--right-rail-width) - var(--layout-gap) +
      1.5rem
  )}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--color-bg:#17181e;--color-text:#ececf1;--color-accent:#b5bced;--color-bg-secondary:#202129;--color-text-secondary:#b6b7c2;--color-border:#393b47}}html{scroll-behavior:smooth;overflow-y:scroll;scrollbar-gutter:stable;-webkit-text-size-adjust:100%;text-size-adjust:100%}*{box-sizing:border-box;scrollbar-color:var(--color-text-secondary)var(--color-bg-secondary);scrollbar-width:thin}*::-webkit-scrollbar{width:.625rem;height:.625rem}*::-webkit-scrollbar-track{background:var(--color-bg-secondary)}*::-webkit-scrollbar-thumb{border:2px solid var(--color-bg-secondary);border-radius:999px;background:var(--color-text-secondary)}*::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}body{background:var(--color-bg);color:var(--color-text);font-family:system-ui,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,sans-serif;line-height:1.6;margin:0;padding:0}h1,h2,h3,h4,h5,h6{line-height:1.3;font-weight:600;margin-block:var(--spacing-7)0;position:relative}.header-link{opacity:0;margin-left:var(--spacing-2);text-decoration:underline}:is(h1,h2,h3,h4,h5,h6):is(:hover,:focus-within) .header-link{opacity:1}h1{font-size:2rem;letter-spacing:-.02em}h2{font-size:1.75rem;letter-spacing:-.01em}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline;text-decoration-style:dashed;text-underline-offset:.2em}.header-link:hover{text-decoration-style:solid;text-underline-offset:auto}img{max-width:100%;height:auto;display:block}nav ul{list-style:none;padding:0;margin:0}nav li{display:inline;margin-right:var(--spacing-4)}.skip-link{position:absolute;top:var(--spacing-2);left:var(--spacing-2);z-index:60;padding:var(--spacing-2)var(--spacing-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}:where(a,button,input,summary,main[tabindex='-1']):focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.error-404{text-align:center;padding:var(--spacing-7)0}.container{width:min(calc(100% - 2.5rem),var(--layout-width));margin:auto;padding:1.25rem 0 2rem}.site-header{position:relative;z-index:50;display:flex;align-items:center;width:100%;margin:0;padding:.75rem max(1.25rem,calc((100vw - var(--layout-width))/2));border:0;border-radius:0;background:var(--color-bg)}.site-header::after{position:absolute;right:max(1.25rem,calc((100vw - var(--layout-width))/2));bottom:0;left:max(1.25rem,calc((100vw - var(--layout-width))/2));height:1px;background:color-mix(in srgb,var(--color-border) 82%,transparent);content:'';pointer-events:none}.site-header nav{flex:none;margin-left:clamp(1rem,2vw,1.75rem)}.site-header nav ul{display:flex;align-items:center;gap:.25rem}.site-header nav li{display:block;margin:0}.site-header nav a{position:relative;display:block;padding:.45rem .55rem;color:var(--color-text-secondary);font-size:.875rem;font-weight:550;transition:color 180ms ease}.site-header nav a::after{position:absolute;right:.55rem;bottom:.25rem;left:.55rem;height:1px;background:var(--color-accent);content:'';transform:scaleX(0);transform-origin:left;transition:transform 220ms cubic-bezier(.22,1,.36,1)}.site-header nav a:is(:hover,:focus-visible){color:var(--color-accent);text-decoration:none}.site-header nav a:is(:hover,:focus-visible)::after{transform:scaleX(1)}.site-title{margin:0;font-size:1.25rem;font-weight:600;line-height:1.2}.site-title a{color:inherit;display:inline-flex;align-items:center;gap:var(--spacing-2)}.site-title a:hover{text-decoration:none}.site-icon{width:2rem;height:2rem;margin:0}@media(min-width:1200px){.site-header{display:grid;grid-template-columns:minmax(12rem,var(--rail-width))minmax(0,1fr)minmax(12rem,var(--right-rail-width));align-items:center;column-gap:var(--layout-gap)}.site-title{grid-column:1;min-width:0}.site-header nav{grid-column:2;min-width:0;margin-left:0}}.site-footer{display:flex;justify-content:space-between;gap:.5rem 1rem;margin:1.5rem 0 0;padding:1rem .25rem;border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.78rem}.site-footer p{margin:0;text-align:left}.site-footer a{color:var(--color-text-secondary)}.site-footer a:hover{color:var(--color-accent)}.site-layout{display:grid;grid-template-columns:minmax(12rem,var(--rail-width))minmax(0,1fr)minmax( 12rem,var(--right-rail-width) );align-items:start;gap:var(--layout-gap)}.sidebar{min-width:0}.sidebar--left,.sidebar--right{position:sticky;top:1.25rem}.sidebar-card{margin:0 0 2rem;padding:0}.profile-card{text-align:left}.profile-avatar{width:4rem;height:4rem;margin:0 0 1rem;border:1px solid var(--color-border);border-radius:50%;object-fit:cover}.profile-eyebrow{margin:0 0 .25rem;color:var(--color-accent);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.profile-name{margin:0;font-size:1.25rem;letter-spacing:-.03em}.profile-description{margin:.55rem 0 1rem;color:var(--color-text-secondary);font-size:.88rem;line-height:1.75}.sidebar-heading{margin:0 0 .8rem;font-size:.9rem;font-weight:700;letter-spacing:-.01em}.sidebar-heading::before{display:inline-block;width:.18rem;height:.82em;margin-right:.5rem;background:var(--color-accent);content:'';vertical-align:-.06em}.tag-cloud{display:flex;flex-wrap:wrap;gap:.3rem .75rem}.tag-chip{color:var(--color-text-secondary);font-size:.75rem;text-decoration:underline;text-decoration-color:color-mix( in srgb,var(--color-accent) 30%,transparent );text-underline-offset:.2em;transition:color 180ms ease,text-decoration-color 180ms ease}.tag-chip::before{color:var(--color-accent);content:'#';opacity:.72}.tag-chip:hover{color:var(--color-accent);text-decoration-color:initial}.sidebar-category-list{display:grid;margin:0;padding:0;list-style:none}.sidebar-category-list li{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--color-border);font-size:.82rem}.sidebar-category-list li:last-child{padding-bottom:0;border-bottom:0}.sidebar-category-list a{color:var(--color-text)}.sidebar-category-list a:hover{color:var(--color-accent);text-decoration:none}.sidebar-category-count{color:var(--color-text-secondary);font-size:.7rem;font-variant-numeric:tabular-nums}.sidebar-page-content{font-size:.82rem;line-height:1.65;overflow-wrap:anywhere}.sidebar-page-content>:first-child{margin-top:0}.sidebar-page-content>:last-child{margin-bottom:0}.sidebar-page-content :is(h1,h2,h3){margin-block:1rem .35rem;font-size:.9rem;line-height:1.45}.sidebar-page-content :is(p,li){font-size:.8rem;line-height:1.6}.sidebar-page-content :is(img,video,iframe){max-width:100%}.sidebar-page-content pre{max-width:100%;overflow:auto}.sidebar-page-content .post-list{display:grid;gap:0;margin:.5rem 0;padding:0;list-style:none}.sidebar-page-content .post-list-item{padding:.65rem 0;border:0;border-radius:0;background:0 0}.sidebar-page-content .post-summary{display:none}.sidebar-page-content .post-meta{gap:.25rem .65rem}.sidebar-page-content .post-meta-row{align-items:flex-start;flex-direction:column;gap:.25rem}.sidebar-page-content .post-list-footer{align-items:flex-start;flex-direction:column;gap:.25rem}.sidebar-page-content .post-list-item--with-image{grid-template-columns:minmax(0,1fr);gap:.5rem}.sidebar-page-content .post-list-item--with-image>.post-thumbnail{grid-column:1;grid-row:2;width:min(100%,8rem)}.sidebar-posts{display:grid;gap:.8rem;margin:0;padding:0;list-style:none}.sidebar-posts li{display:grid;gap:.15rem}.sidebar-posts a{color:var(--color-text);font-size:.82rem;font-weight:600;line-height:1.5}.sidebar-posts a:hover{color:var(--color-accent);text-decoration:none}.sidebar-posts time,.sidebar-muted{color:var(--color-text-secondary);font-size:.72rem}.sidebar-more{display:inline-block;margin-top:1rem;font-size:.8rem;font-weight:650}.sidebar-overview-count{display:flex;align-items:baseline;gap:.45rem;margin:.25rem 0;color:var(--color-text-secondary);font-size:.82rem}.sidebar-overview-count strong{color:var(--color-text);font-size:2rem;font-weight:650;letter-spacing:-.06em;line-height:1.1}#main-content{min-width:0;min-height:62vh;padding:clamp(1.15rem,2.7vw,2.5rem)}.sidebar-page-content .post-taxonomies{gap:.25rem .5rem}@media(min-width:1200px) and (max-width:1455px){.site-layout--with-toc{grid-template-columns:minmax(12rem,var(--rail-width))minmax(0,1fr)}.site-layout--with-toc .sidebar--right.sidebar--with-toc{position:static;grid-column:1/-1}}@media(max-width:1199px){.site-layout{grid-template-columns:minmax(11rem,13rem)minmax(0,1fr)}.sidebar--right{display:none}.sidebar--right.sidebar--with-toc{display:block;position:static;grid-column:1/-1}.sidebar-context{display:none}}@media(max-width:760px){.container{width:calc(100% - 2rem);padding-top:.65rem}.site-header{display:grid;grid-template-columns:minmax(0,1fr)auto;gap:.25rem .75rem;padding:.625rem 1rem}.site-header::after{right:1rem;left:1rem}.site-title{min-width:0;font-size:clamp(1.05rem,4vw,1.25rem);overflow-wrap:anywhere}.site-header nav{grid-column:1/-1;grid-row:2;min-width:0;margin-left:0}.site-header nav ul{flex-wrap:wrap;gap:0 .75rem}.site-header nav a{display:flex;align-items:center;min-height:2.75rem;padding:.4rem .25rem}.site-header nav a::after{right:.25rem;left:.25rem}.site-layout{grid-template-columns:minmax(0,1fr);gap:0}.sidebar--left{display:none}#main-content{min-height:60vh;padding:1.15rem 0}.site-footer{flex-direction:column}}:where(.page-content,.home,.section-intro,.sidebar-page-content) blockquote,.page-content img,:where(.page-content,.home,.section-intro,.sidebar-page-content) .highlight,:where(.page-content,.home,.section-intro,.sidebar-page-content) table{margin:var(--spacing-4)0}:where(.page-content,.home,.section-intro,.sidebar-page-content) table{border-collapse:collapse;font-size:.95rem;display:block;overflow-x:auto}:where(.page-content,.home,.section-intro,.sidebar-page-content) th,:where(.page-content,.home,.section-intro,.sidebar-page-content) td{padding:var(--spacing-2)var(--spacing-5);text-align:left;border-bottom:1px solid var(--color-border);min-width:8rem}:where(.page-content,.home,.section-intro,.sidebar-page-content) th{font-weight:600;border-bottom:2px solid var(--color-border);background-color:var(--color-bg-secondary)}:where(.page-content,.home,.section-intro,.sidebar-page-content) hr{border:0;height:1px;background-color:var(--color-border);margin-block:var(--spacing-4)var(--spacing-7)}:where(.page-content,.home,.section-intro,.sidebar-page-content) blockquote{border-left:3px solid var(--color-text-secondary);padding-left:var(--spacing-4);color:var(--color-text)}.page-content figure{margin:var(--spacing-4)0}.page-content figure img{margin:0}:where(.page-content,.home,.section-intro,.sidebar-page-content) :is(ul,ol){margin-left:0;padding-left:var(--spacing-5)}:where(.page-content,.home,.section-intro,.sidebar-page-content) code,:where(.page-content,.home,.section-intro,.sidebar-page-content) pre{font-family:var(--font-mono);font-size:.9rem;line-height:1.5}.highlight-wrapper{position:relative}:where(.page-content,.home,.section-intro,.sidebar-page-content) .highlight{border-radius:8px;overflow:auto;border:1px solid var(--color-border)}:where(.page-content,.home,.section-intro,.sidebar-page-content) .highlight table td{min-width:0}:where(.page-content,.home,.section-intro,.sidebar-page-content) .highlight pre{margin:0;overflow:auto;padding:var(--spacing-2)0 var(--spacing-2)var(--spacing-3)}#main-content :where(.page-content,.home,.section-intro,.page-header,.error-404) h1,#main-content :where(.page-content,.home,.section-intro,.page-header,.error-404) h2,#main-content :where(.page-content,.home,.section-intro,.page-header,.error-404) h3{letter-spacing:-.035em}#main-content :where(.page-content,.home,.section-intro,.page-header,.error-404) h1{margin-top:0;font-size:clamp(2rem,4vw,3.25rem);line-height:1.12}#main-content :where(.page-content,.home,.section-intro,.page-header,.error-404) h2{margin-top:2.4rem;font-size:clamp(1.35rem,2.2vw,1.75rem)}:where(#main-content) :where( .page-content,.home,.section-intro,.page-header,.post-list,.error-404 ) :is(p,li){line-height:1.8}#main-content :where( .page-content,.home,.section-intro,.page-header,.post-list,.error-404,.tags ) a{text-decoration-thickness:1px;text-underline-offset:.2em}#main-content .home>h1:first-child{max-width:15ch;color:var(--color-text)}#main-content .home>p:first-of-type{max-width:62ch;color:var(--color-text-secondary);font-size:1.06rem}#main-content .home>h2{margin-top:2.5rem;margin-bottom:.5rem;font-size:1.15rem}#main-content .home>p:last-child{margin-top:1.25rem;font-size:.9rem;font-weight:650}#main-content .section-intro{color:var(--color-text-secondary)}.page-header{margin-bottom:1.5rem}.page-header h1{margin-bottom:.6rem}.page-content>:first-child{margin-top:0}.page-content>:is(p,ul,ol,blockquote){max-width:72ch}.page-content img{border-radius:.3rem}.page-content blockquote{margin-inline:0;padding:.9rem 1.15rem;border:0;border-left:3px solid var(--color-accent);border-radius:0 .35rem .35rem 0;background:var(--color-bg-secondary)}.post-list{list-style:none;padding:0;display:grid;gap:1rem;margin:1.5rem 0}.post-list article{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}.post-date{font-variant-numeric:tabular-nums;color:var(--color-text-secondary);font-size:.75rem;line-height:1.4}.tag{display:inline-block;margin-right:var(--spacing-2);font-size:.8rem}.tag a::before{content:'#'}#post-count{color:var(--color-text-secondary);font-size:.82rem}#main-content .home .post-list{gap:1rem;margin:.75rem 0 1rem;padding:0;list-style:none}#main-content .home .post-summary{max-width:58ch}.post-header-meta{margin-top:.35rem}.page-header>.post-meta--stats{margin-top:.45rem}.post-list-item{margin:0;padding:.85rem 0 .85rem .8rem;border:0;border-inline-start:2px solid transparent;border-radius:0;background:0 0;transition:border-color 200ms ease}.post-list--archive{--archive-date-width:5.2rem;--archive-gap:1.55rem;--archive-row-padding:0.7rem;--archive-axis:calc(var(--archive-date-width) + var(--archive-gap) / 2);position:relative;gap:0;margin:1rem 0 1.5rem}.post-list--archive::before{position:absolute;top:.7rem;bottom:.7rem;left:var(--archive-axis);width:1px;background:var(--color-border);content:''}.post-list-item--archive{position:relative;display:grid;grid-template-columns:var(--archive-date-width)minmax(0,1fr);align-items:start;gap:var(--archive-gap);margin:0;padding:var(--archive-row-padding)0;border:0;border-radius:0;background:0 0;transition:none}.post-list-item--archive::before{position:absolute;z-index:1;top:calc(var(--archive-row-padding) + .75rem);left:var(--archive-axis);transform:translate(-50%,-50%);width:.46rem;height:.46rem;border:2px solid var(--color-accent);border-radius:50%;background:var(--color-bg-secondary);content:''}.post-list-item--archive article{display:grid;gap:.35rem;min-width:0}.archive-post-date{grid-column:1;display:flex;align-items:center;justify-content:flex-end;min-height:1.5rem;color:var(--color-text-secondary);font-size:.75rem;font-variant-numeric:tabular-nums;line-height:1.4;text-align:right;white-space:nowrap}.archive-post-title{display:block;min-width:0;line-height:1.5;overflow-wrap:anywhere}.archive-post-taxonomies{min-width:0;color:var(--color-text-secondary)}.archive-post-taxonomies .post-taxonomy-group,.archive-post-taxonomies .post-taxonomy-links,.archive-post-taxonomies .post-taxonomy-link{max-width:100%}.post-list-item--with-image{display:grid;grid-template-columns:minmax(0,1fr)minmax(6.5rem,30%);align-items:start;gap:1rem}.post-list-item--with-image>article{grid-column:1;grid-row:1;min-width:0}.post-thumbnail{grid-column:2;grid-row:1;width:100%;max-height:none;aspect-ratio:16/10;align-self:start;overflow:hidden;border-radius:.7rem;background:var(--color-bg-secondary);border:1px solid color-mix(in srgb,var(--color-border) 78%,transparent);box-shadow:0 2px 8px color-mix(in srgb,var(--color-text) 7%,transparent)}.post-thumbnail img{display:block;margin:0;width:100%;height:100%;object-fit:cover;transition:transform 280ms ease}.post-list-copy{display:grid;gap:.45rem;min-width:0}.post-meta-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.35rem .75rem;min-height:1.35rem}.post-list-copy>.post-title{justify-self:start}.post-meta,.post-taxonomies{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.35rem .75rem;color:var(--color-text-secondary);font-size:.75rem;line-height:1.4}.post-meta--date{flex:none}.post-list-footer{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:flex-start;gap:.35rem .75rem}.post-meta-item,.post-taxonomy-group{display:inline-flex;align-items:center;gap:.35rem;min-width:0;min-height:1.35rem;line-height:inherit}.post-meta-item{white-space:nowrap}.post-meta-icon,.post-taxonomy-icon{width:.9rem;height:.9rem;flex:none;color:inherit;opacity:.8}.post-meta .post-date{padding:0;color:inherit;font-size:inherit;letter-spacing:normal}.post-taxonomy-links{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem;min-width:0;line-height:inherit}.post-taxonomy-link{display:inline-flex;align-items:center;min-height:1.35rem;padding:0;border:0;border-radius:0;color:var(--color-text-secondary);font:inherit;overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:color-mix( in srgb,var(--color-accent) 25%,transparent );text-underline-offset:.18em}.post-taxonomy-link--tag::before{color:var(--color-accent);content:'#';opacity:.72}.post-taxonomy-link:hover{color:var(--color-accent);text-decoration-color:initial}.post-title,.post-navigation-title{color:var(--color-text);font-size:1rem;font-weight:700;line-height:1.5;text-decoration-line:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:.2em;transition:color 220ms ease,text-decoration-color 220ms ease}.post-title:is(:hover,:focus-visible),.post-navigation-link:is(:hover,:focus-visible) .post-navigation-title{color:var(--color-accent);text-decoration-color:initial}.post-summary{margin:0;color:var(--color-text-secondary);font-size:.86rem;line-height:1.65}.post-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:var(--spacing-7);padding-top:var(--spacing-5);border-top:1px solid var(--color-border)}.post-navigation-link{display:flex;flex-direction:column;gap:.35rem;min-width:0;padding:.35rem 0}.post-navigation-link:is(:hover,:focus-visible){text-decoration:none}.post-navigation-link--next{grid-column:2;text-align:right}.post-navigation-label{color:var(--color-text-secondary);font-size:.75rem}.post-navigation-title{overflow-wrap:anywhere}@media(min-width:761px) and (hover:hover) and (pointer:fine){.post-list-item:not(.post-list-item--archive):is(:hover,:focus-within){border-inline-start-color:var(--color-accent)}.post-list-item--with-image:is(:hover,:focus-within) .post-thumbnail img{transform:scale(1.035)}}@media(max-width:760px){.post-list-item:not(.post-list-item--archive){padding:.85rem 0;border-inline-start:0;transition:none}.post-list--archive{--archive-date-width:4.5rem;--archive-gap:1.25rem;--archive-row-padding:0.6rem}.post-navigation{grid-template-columns:minmax(0,1fr)}.post-navigation-link--next{grid-column:auto;text-align:left}.post-list-item--with-image{grid-template-columns:minmax(0,1fr);gap:.8rem}.post-list-item--with-image>article{grid-column:1;grid-row:2}.post-list-item--with-image>.post-thumbnail{grid-column:1;grid-row:1;aspect-ratio:16/9}}@media(prefers-reduced-motion:reduce){.post-thumbnail img{transition:none}}.floating-action{display:flex;align-items:center;justify-content:center;width:var(--floating-action-size);height:var(--floating-action-size);padding:0;border:1px solid var(--color-border);border-radius:.85rem;background:var(--color-bg-secondary);color:var(--color-text);cursor:pointer;font:inherit;text-decoration:none;transition:color 220ms ease,background-color 220ms ease,border-color 220ms ease}.floating-action svg{flex:none;width:1.125rem;height:1.125rem}.floating-action:hover{color:var(--color-accent);text-decoration:none}.copy-code-button{display:flex;align-items:center;justify-content:center;cursor:pointer;position:absolute;top:var(--spacing-2);right:var(--spacing-2);background:var(--color-bg-secondary);color:var(--color-text);border:1px solid var(--color-border);border-radius:5px;padding:var(--spacing-1);opacity:0;visibility:visible;transition:opacity .2s ease}.highlight-wrapper:hover .copy-code-button,.copy-code-button:focus-visible{opacity:1}@media(hover:none){.copy-code-button{opacity:1}}#back-to-top{position:fixed;z-index:29;right:var(--floating-action-right);bottom:calc( var(--floating-action-bottom) + var(--floating-action-size) + var(--floating-action-gap) );visibility:hidden;opacity:0;transition:opacity .3s ease,color 220ms ease,background-color 220ms ease,border-color 220ms ease}#back-to-top.visible,.no-js #back-to-top{opacity:1;visibility:visible}@media(min-width:1456px){#back-to-top{left:50%;right:auto;bottom:2rem;margin-left:var(--toc-rail-offset)}}.twikoo-comments{margin-block-start:var(--spacing-7);padding-block-start:var(--spacing-5);border-block-start:1px solid var(--color-border)}.site-search{position:relative;display:flex;align-items:center;gap:.65rem;align-self:center;flex:0 1 14rem;min-width:8rem;width:100%;height:2.45rem;margin-left:auto;padding:.4rem .75rem;border:1px solid var(--color-border);border-radius:.65rem;background:color-mix( in srgb,var(--color-bg-secondary) 68%,var(--color-bg) );color:var(--color-text-secondary);cursor:pointer;font:inherit;font-size:.84rem;text-align:left;transition:border-color 180ms ease,background-color 180ms ease}.no-js .site-search{display:none}.site-search:hover{border-color:color-mix( in srgb,var(--color-accent) 42%,var(--color-border) );background:var(--color-bg-secondary)}.site-search:focus-visible{border-color:var(--color-accent)}.site-search-icon{flex:none;width:1rem;height:1rem;color:var(--color-text-secondary)}.site-search-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-search-shortcut{display:flex;flex:none;align-items:center;gap:.2rem;margin-left:auto;color:var(--color-text-secondary)}.site-search-shortcut kbd{display:flex;min-width:1.25rem;height:1.35rem;align-items:center;justify-content:center;padding:0 .2rem;border:1px solid var(--color-border);border-radius:.25rem;font:inherit;font-size:.68rem;line-height:1}.site-search-dialog{--search-dialog-offset:clamp(2rem, 9vh, 5rem);position:fixed;top:var(--search-dialog-offset);right:0;bottom:auto;left:0;width:min(44rem,calc(100% - 2rem));max-width:none;max-height:min(calc(100vh - var(--search-dialog-offset) - 1rem),48rem);margin:0 auto;padding:0;overflow:hidden;border:1px solid var(--color-border);border-radius:.75rem;background:var(--color-bg);color:var(--color-text);box-shadow:0 1.5rem 5rem color-mix(in srgb,#000 24%,transparent)}.site-search-dialog::backdrop{background:color-mix(in srgb,var(--color-bg) 44%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.site-search-dialog[open]{animation:search-dialog-enter 180ms cubic-bezier(.2,.8,.2,1)both}.site-search-dialog.is-closing{animation:search-dialog-exit 180ms ease both}.site-search-dialog[open]::backdrop{animation:search-backdrop-enter 180ms ease both}.site-search-dialog.is-closing::backdrop{animation:search-backdrop-exit 180ms ease both}@keyframes search-dialog-enter{from{opacity:0;transform:translateY(-.55rem)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes search-dialog-exit{from{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-.35rem)scale(.99)}}@keyframes search-backdrop-enter{from{opacity:0}to{opacity:1}}@keyframes search-backdrop-exit{from{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.site-search-dialog[open],.site-search-dialog.is-closing,.site-search-dialog[open]::backdrop,.site-search-dialog.is-closing::backdrop{animation:none}}.search-dialog-panel{display:flex;max-height:inherit;flex-direction:column}.search-dialog-form{display:flex;align-items:center;gap:.65rem;padding:.55rem .85rem;border-bottom:1px solid var(--color-border);background:color-mix( in srgb,var(--color-bg-secondary) 55%,var(--color-bg) )}.search-dialog-icon{width:1.05rem;height:1.05rem;flex:none;color:var(--color-text-secondary)}.search-dialog-form input{flex:auto;min-width:0;padding:.25rem 0;border:0;outline:0;background:0 0;color:var(--color-text);font:inherit;font-size:.98rem}.search-dialog-form input:focus-visible{outline:0}.search-dialog-form input[type=search]::-webkit-search-cancel-button,.search-dialog-form input[type=search]::-webkit-search-decoration{display:none;-webkit-appearance:none;appearance:none}.search-dialog-form input[type=search]::-moz-search-clear{display:none}.search-dialog-clear{display:flex;width:1.75rem;height:1.75rem;flex:none;align-items:center;justify-content:center;padding:0;border:0;border-radius:.35rem;background:0 0;color:var(--color-text-secondary);cursor:pointer}.search-dialog-clear[hidden]{display:none}.search-dialog-clear svg{width:1.25rem;height:1.25rem}.search-dialog-clear:hover{background:var(--color-bg-secondary);color:var(--color-accent)}.search-dialog-hint{flex:none;margin:0;padding:.65rem 1.15rem;border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.72rem;text-align:center}.search-dialog-body{min-height:12rem;max-height:min(64vh,36rem);flex:auto;overflow:auto;padding:.25rem .75rem .75rem;overscroll-behavior:contain}.search-status{margin:0;padding:.35rem .5rem .6rem;color:var(--color-text-secondary);font-size:.78rem}.search-status.is-empty{display:flex;min-height:11rem;align-items:center;justify-content:center;padding:1.5rem;font-size:.9rem;text-align:center}.search-results{display:grid;gap:.35rem;margin:0;padding:0;list-style:none}.search-result{min-width:0;padding:.75rem;border:1px solid transparent;border-radius:.65rem}.search-result:hover{border-color:var(--color-border);background:var(--color-bg-secondary)}.search-result.is-active{border-color:color-mix( in srgb,var(--color-accent) 48%,var(--color-border) );background:color-mix( in srgb,var(--color-accent) 10%,var(--color-bg-secondary) )}.search-result-title{display:block;min-width:0;color:var(--color-text);font-size:.96rem;font-weight:650;line-height:1.45;overflow-wrap:anywhere}.search-result-title:hover,.search-result.is-active .search-result-title{color:var(--color-accent);text-decoration:none}.search-result-heading{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem 1rem}.search-result-date{flex:none;color:var(--color-text-secondary);font-size:.68rem;font-variant-numeric:tabular-nums}.search-result-snippet{margin:.35rem 0 0;color:var(--color-text-secondary);font-size:.8rem;line-height:1.55;overflow-wrap:anywhere}.search-result-markdown>:first-child{margin-top:0}.search-result-markdown>:last-child{margin-bottom:0}.search-result-markdown :is(p,h1,h2,h3,h4,h5,h6){margin:.25rem 0;font-size:inherit;line-height:inherit}.search-result-markdown :is(strong,b){color:var(--color-text);font-weight:700}.search-result-markdown :is(em,i){font-style:italic}.search-result-markdown :is(code,pre){font-family:var(--font-mono)}.search-result-markdown :not(pre)>code{padding:.05rem .25rem;border-radius:.2rem;background:var(--color-bg-secondary);font-size:.76rem}.search-result-markdown pre{max-height:8rem;margin:.35rem 0;padding:.5rem .65rem;overflow:auto;border:1px solid var(--color-border);border-radius:.4rem;background:var(--color-bg-secondary);font-size:.72rem}.search-result-markdown blockquote{margin:.35rem 0;padding:.2rem .65rem;border-left:2px solid var(--color-accent);color:var(--color-text-secondary)}.search-result-markdown :is(ul,ol){margin:.25rem 0;padding-left:1.2rem}.search-result-markdown-link{color:var(--color-accent);text-decoration:underline;text-decoration-color:color-mix( in srgb,var(--color-accent) 35%,transparent );text-underline-offset:.15em}.search-result-terms{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.45rem}.search-result-term{padding:.1rem .4rem;border-radius:999px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:.67rem}.search-result mark{border-radius:.2em;background:color-mix(in srgb,var(--color-accent) 24%,transparent);color:var(--color-text)}.search-dialog-open{overflow:hidden}@media(min-width:1200px){.site-search{grid-column:3;width:100%;margin-left:0}}@media(max-width:760px){.site-search{grid-column:2;grid-row:1;justify-content:center;min-width:0;width:2.75rem;height:2.75rem;margin:0;padding:0;border-radius:.85rem}.site-search-label,.site-search-shortcut{display:none}.site-search-dialog{--search-dialog-offset:max(1rem, env(safe-area-inset-top, 0px));width:calc(100% - 1rem);max-height:calc(100vh - var(--search-dialog-offset) - .75rem)}.search-dialog-body{min-height:8rem;max-height:none}.search-status.is-empty{min-height:7rem}}.toc-container{margin:0;border:0;background:0 0}.toc-toggle{display:none}.toc-content{border-radius:1rem}.toc-inline-fallback{display:none}.toc-content a:hover{text-decoration:none}.toc-content .toc-title{display:flex;align-items:center;gap:.55rem;margin:0 0 .7rem .55rem;color:var(--color-text);font-size:.92rem;font-weight:700;letter-spacing:-.01em}.toc-content .toc-title::before{content:'';width:.2rem;height:.95rem;border-radius:999px;background:var(--color-accent)}.toc-list-wrapper{position:relative;isolation:isolate}.toc-list-wrapper.has-overflow-below{-webkit-mask-image:linear-gradient( to bottom,#000 0%,#000 calc(100% - 2.25rem),transparent 100% );mask-image:linear-gradient( to bottom,#000 0%,#000 calc(100% - 2.25rem),transparent 100% )}:is(#TableOfContents,.toc-root){position:relative;z-index:1;margin:0}:is(#TableOfContents,.toc-root) ul{margin:0;padding:0;list-style:none}:is(#TableOfContents,.toc-root) ul ul{padding-inline-start:0}:is(#TableOfContents,.toc-root) li{margin:0;line-height:normal}:is(#TableOfContents,.toc-root) li+li{margin-top:.15rem}:is(#TableOfContents,.toc-root)>ul{counter-reset:toc-section}:is(#TableOfContents,.toc-root)>ul>li{counter-increment:toc-section}:is(#TableOfContents,.toc-root) a{position:relative;z-index:1;display:flex;align-items:center;gap:.55rem;width:100%;min-height:2.25rem;padding:.45rem .55rem;border-radius:.75rem;color:var(--color-text-secondary);font-size:.82rem;line-height:1.5;overflow-wrap:anywhere;transition:color 180ms ease,background-color 220ms ease}:is(#TableOfContents,.toc-root) a::before{content:'';flex:0 0 .5rem;width:.5rem;height:.5rem;margin-inline:.4rem;border-radius:50%;background:var(--color-text-secondary)}:is(#TableOfContents,.toc-root)>ul>li>a::before{content:counter(toc-section);display:grid;flex-basis:1.3rem;width:1.3rem;height:1.3rem;margin-inline:0;place-items:center;border-radius:.4rem;background:color-mix( in srgb,var(--color-accent) 13%,var(--color-bg-secondary) );color:var(--color-accent);font-size:.68rem;font-weight:700}:is(#TableOfContents,.toc-root) ul ul ul>li>a::before{visibility:hidden}:is(#TableOfContents,.toc-root) a:hover,:is(#TableOfContents,.toc-root) li.active-parent>a{color:var(--color-text)}:is(#TableOfContents,.toc-root) a:hover{background:color-mix( in srgb,var(--color-accent) 7%,var(--color-bg-secondary) )}:is(#TableOfContents,.toc-root) a:focus-visible{color:var(--color-accent)}:is(#TableOfContents,.toc-root) li.active>a{color:var(--color-accent)}:is(#TableOfContents,.toc-root) li.active>a::before{background:var(--color-accent)}:is(#TableOfContents,.toc-root)>ul>li.active>a::before{color:var(--color-bg)}.toc-active-indicator{position:absolute;z-index:0;top:0;right:0;left:0;height:2.25rem;border:1px solid transparent;border-radius:.75rem;background:color-mix( in srgb,var(--color-accent) 8%,var(--color-bg-secondary) );opacity:0;pointer-events:none;transition:transform 420ms cubic-bezier(.22,1,.36,1),height 220ms ease,opacity 160ms ease,background-color 220ms ease,border-color 220ms ease}.toc-active-indicator.is-visible{opacity:1}.toc-list-wrapper:hover .toc-active-indicator{z-index:2;border-style:dashed;border-color:color-mix( in srgb,var(--color-accent) 32%,var(--color-border) );background:0 0}.toc-container,.toc-content,.toc-list-wrapper,.toc-inline-content{scrollbar-width:none}.toc-container::-webkit-scrollbar,.toc-content::-webkit-scrollbar,.toc-list-wrapper::-webkit-scrollbar,.toc-inline-content::-webkit-scrollbar{display:none;width:0;height:0}@media(min-width:1456px){.toc-container{max-height:50vh}.toc-content{display:flex;flex-direction:column;max-height:inherit}.toc-list-wrapper{min-height:0;overflow-y:auto;overscroll-behavior:contain}}@media(max-width:1455px){.toc-container{position:fixed;z-index:30;right:var(--floating-action-right);bottom:var(--floating-action-bottom);width:min(22rem,calc(100vw - 2rem));pointer-events:none}.toc-toggle{display:flex;margin-left:auto;pointer-events:auto}.toc-content{display:none;position:absolute;right:0;bottom:calc(100% + .75rem);width:100%;max-height:min(82vh,38rem,max(0px,calc(100vh - 4rem)));overflow:hidden;overscroll-behavior:contain;padding:1rem;border:1px solid var(--color-border);border-radius:1rem;background:var(--color-bg-secondary);opacity:0;transform:translateY(.4rem)scale(.985);transform-origin:bottom right;pointer-events:auto;transition:opacity 180ms ease,transform 360ms cubic-bezier(.22,1,.36,1),display 180ms allow-discrete}.toc-container.is-open .toc-content{display:flex;flex-direction:column;opacity:1;transform:translateY(0)scale(1)}.toc-list-wrapper{min-height:0;max-height:min(68vh,32rem,max(0px,calc(100vh - 11rem)));overflow-y:auto;overscroll-behavior:contain}@starting-style{.toc-container.is-open .toc-content {
      opacity: 0;
      transform: translateY(0.4rem) scale(0.985);
    }
  }:is(#TableOfContents,.toc-root) a{font-size:.85rem;line-height:1.55}:is(#TableOfContents,.toc-root) li.active>a{background:var(--color-bg)}.toc-active-indicator{display:none}.no-js .sidebar--right.sidebar--with-toc{display:none}.no-js .toc-inline-fallback{display:block;margin-block:.75rem 1rem}.no-js .toc-inline-toggle{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;min-height:2.5rem;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:.65rem;background:var(--color-bg-secondary);color:var(--color-text);cursor:pointer;font:inherit;font-weight:650;list-style:none}.no-js .toc-inline-toggle::marker{content:''}.no-js .toc-inline-toggle::-webkit-details-marker{display:none}.no-js .toc-inline-toggle svg{width:1rem;height:1rem;flex:none}.no-js .toc-inline-content{max-height:min(55vh,26rem);margin-top:.5rem;padding:.75rem;overflow-y:auto;overflow-x:hidden;border:1px solid var(--color-border);border-radius:1rem;background:var(--color-bg-secondary)}.no-js .toc-inline-disclosure:not([open])>.toc-inline-content{display:none}.no-js .toc-inline-disclosure[open]>.toc-inline-content{display:block}}@media(prefers-reduced-motion:no-preference){.main-view{view-transition-name:page-content;animation:340ms cubic-bezier(.22,1,.36,1)backwards content-enter}::view-transition-group(*){animation-duration:340ms;animation-timing-function:cubic-bezier(.22,1,.36,1)}::view-transition-old(root),::view-transition-new(root),::view-transition-group(page-content){animation:none}::view-transition-old(page-content){animation:130ms ease-out both content-exit}::view-transition-new(page-content){animation:340ms cubic-bezier(.22,1,.36,1)both content-enter}.native-view-transition .main-view{animation:none}@keyframes content-exit{to{opacity:0}}@keyframes content-enter{from{opacity:0;transform:translateY(.35rem)}to{opacity:1;transform:translateY(0)}}}