:root{--ref-primary:#2563eb;--ref-on-primary:#ffffff;--ref-neutral-10:#18181b;--ref-neutral-90:#e4e4e7;--ref-neutral-95:#f4f4f5;--ref-neutral-99:#ffffff}:root{--font-family-body:"JetBrainsMono", monospace;--font-family-mono:"JetBrainsMono", "JetBrains Mono", monospace;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-size-display:44px;--font-size-headline:30px;--font-size-title:20px;--font-size-body:16px;--font-size-label:14px;--font-size-small:13px;--font-size-smallest:12px;--font-size-micro:11px;--font-size-h1:32px;--font-size-h2:26px;--font-size-h3:20px;--font-size-h4:16px;--font-size-h5:14px;--font-size-h6:12px;--line-height-tight:1.3;--line-height-normal:1.6;--line-height-relaxed:1.7;--letter-spacing-tight:0;--letter-spacing-normal:0;--letter-spacing-wide:0.04em;--letter-spacing-widest:0.08em}:root{--space-0:0;--space-1:2px;--space-2:4px;--space-3:8px;--space-4:12px;--space-5:16px;--space-6:24px;--space-7:32px;--space-8:48px;--space-9:64px;--radius-none:0;--radius-xs:4px;--radius-sm:8px;--radius-md:8px;--radius-lg:8px;--radius-xl:8px;--radius-full:8px}:root{--motion-fast:150ms;--motion-enter:250ms;--motion-exit:200ms;--motion-transform:300ms;--motion-slow:400ms;--easing-standard:cubic-bezier(0.2, 0, 0, 1);--easing-spring:cubic-bezier(0.34, 1.56, 0.64, 1);--transition-fast:var(--motion-fast) var(--easing-standard);--transition-medium:var(--motion-enter) var(--easing-standard);--transition-slow:var(--motion-slow) var(--easing-standard);--transition-spring:var(--motion-transform) var(--easing-spring)}@media(prefers-reduced-motion:reduce){:root{--motion-fast:0ms;--motion-enter:0ms;--motion-exit:0ms;--motion-transform:0ms;--motion-slow:0ms}}:root{--elevation-1:0 1px 2px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);--elevation-2:0 2px 4px rgba(0, 0, 0, 0.06), 0 4px 12px rgba(0, 0, 0, 0.08);--elevation-3:0 4px 8px rgba(0, 0, 0, 0.08), 0 12px 28px rgba(0, 0, 0, 0.12)}:root{--state-hover:0.08;--state-focus:0.12;--state-pressed:0.12;--state-disabled:0.38}/*!modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize*/*,::before,::after{box-sizing:border-box}html{font-family:system-ui,segoe ui,Roboto,Helvetica,Arial,sans-serif,apple color emoji,segoe ui emoji;line-height:1.15;-webkit-text-size-adjust:100%;tab-size:4}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,liberation mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:initial}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}@font-face{font-family:jetbrainsmono;src:url(/fonts/JetBrainsMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}html{font-size:var(--font-size-body);touch-action:manipulation;scrollbar-gutter:stable;scroll-padding-top:72px}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{min-width:320px;color:var(--sys-color-on-surface);background:var(--sys-color-surface);font-family:var(--font-family-body);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);letter-spacing:var(--letter-spacing-normal);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*:focus-visible{outline:3px solid var(--color-link);outline-offset:3px;border-radius:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-body);font-weight:var(--font-weight-medium);color:var(--sys-color-on-surface);line-height:var(--line-height-tight);margin-top:var(--space-6);margin-bottom:var(--space-4);letter-spacing:var(--letter-spacing-tight)}h1{font-size:var(--font-size-h1)}h2{font-size:var(--font-size-h2)}h3{font-size:var(--font-size-h3)}h4{font-size:var(--font-size-h4)}h5{font-size:var(--font-size-h5)}h6{font-size:var(--font-size-h6)}a{text-decoration:none;color:var(--color-link);transition:color var(--transition-fast),opacity var(--transition-fast)}a[href]:hover{color:var(--color-link);opacity:.85}a[role=button]{cursor:pointer}small{font-size:var(--font-size-label)}code,pre{font-family:var(--font-family-mono);font-size:.875em}img.site-icon{filter:var(--icon-filter);display:inline-block;vertical-align:middle;flex-shrink:0;transition:filter var(--transition-medium)}.surface{background:var(--sys-color-surface);color:var(--sys-color-on-surface);border-radius:var(--radius-md)}.surface--elevated{box-shadow:var(--elevation-1);background:color-mix(in srgb,var(--sys-color-surface),var(--sys-surface-tint) 5%)}.surface--outlined{border:1px solid var(--sys-color-outline)}.interactive{position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent}.interactive::before{content:"";position:absolute;inset:0;border-radius:inherit;background:0 0;transition:background var(--transition-fast);pointer-events:none;z-index:1}.interactive:hover::before{background:color-mix(in srgb,var(--sys-color-primary) calc(var(--state-hover) * 100%),transparent)}.interactive:focus-visible::before{background:color-mix(in srgb,var(--sys-color-primary) calc(var(--state-focus) * 100%),transparent)}.interactive:active::before{background:color-mix(in srgb,var(--sys-color-primary) calc(var(--state-pressed) * 100%),transparent)}.text-display{font-size:var(--font-size-display);font-weight:var(--font-weight-regular);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}.text-headline{font-size:var(--font-size-headline);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}.text-title{font-size:var(--font-size-title);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.text-body{font-size:var(--font-size-body);line-height:var(--line-height-normal)}.text-label{font-size:var(--font-size-label);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight)}.text-small{font-size:var(--font-size-small);line-height:var(--line-height-normal)}.text-micro{font-size:var(--font-size-micro);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-widest)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.inline{display:flex;align-items:center;gap:var(--space-3)}.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-4)}.card{background:var(--sys-color-surface);color:var(--sys-color-on-surface);border-radius:var(--radius-lg);border:1px solid var(--gray-200);padding:var(--space-5);position:relative;cursor:pointer;transition:box-shadow var(--transition-medium),transform var(--transition-medium),border-color var(--transition-medium);content-visibility:auto;contain-intrinsic-size:auto 200px;view-transition-name:card}.card:hover{transform:translateY(-2px);box-shadow:var(--elevation-2);border-color:var(--gray-300)}.card:active{transform:translateY(0)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-3)var(--space-5);border-radius:var(--radius-full);font-size:var(--font-size-label);font-weight:var(--font-weight-medium);line-height:1;cursor:pointer;border:none;text-decoration:none;position:relative;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-spring)}.button:active{transform:scale(.95)}.button--filled{background:var(--sys-color-primary);color:var(--sys-color-on-primary)}.button--filled:hover{box-shadow:var(--elevation-1)}.button--outlined{background:0 0;color:var(--color-link);border:1.5px solid var(--color-link)}.button--outlined:hover{background-color:var(--color-accent-note-tint)}.button--icon{width:40px;height:40px;padding:0;background:0 0;color:var(--sys-color-on-surface);border-radius:var(--radius-full)}.button--icon:hover{background-color:var(--gray-100)}.button--icon:active{transform:scale(.92)}.button--icon-sm{width:36px;height:36px;padding:0;background:0 0;color:var(--sys-color-on-surface);border:1px solid var(--gray-200);border-radius:var(--radius-full);opacity:.85}.button--icon-sm:hover{color:var(--color-link);border-color:var(--color-link);background-color:var(--gray-100)}.button--icon-sm.active{color:var(--color-link);border-color:var(--color-link);background-color:var(--color-accent-default-tint)}.button--icon-sm svg{width:16px;height:16px;fill:currentColor;display:block}@media(pointer:coarse){.button{padding:var(--space-4)var(--space-5);min-height:48px}.button--icon{width:48px;height:48px}}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3)var(--space-4);border-radius:var(--radius-full);font-size:var(--font-size-small);color:var(--sys-color-on-surface);text-decoration:none;line-height:1.4;transition:background-color var(--transition-fast),color var(--transition-fast)}.nav-item:hover{background-color:var(--gray-100);color:var(--sys-color-on-surface)}.nav-item.active,.nav-item--active{background-color:var(--color-accent-note-tint);color:var(--color-link);font-weight:var(--font-weight-semibold)}.nav-item[aria-disabled=true]{opacity:var(--state-disabled);cursor:default;pointer-events:none}.nav-item .nav-item-icon{width:20px;height:20px;flex-shrink:0}.nav-item .nav-item-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.input{width:100%;padding:var(--space-3)var(--space-4);border:1px solid var(--gray-200);border-radius:var(--radius-full);background:var(--surface-container,var(--gray-100));color:var(--sys-color-on-surface);font-size:var(--font-size-small);font-family:inherit;transition:border-color var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast)}.input::placeholder{color:var(--sys-color-on-surface);opacity:.55}.input:focus{outline:none;border-color:var(--color-link);background:var(--sys-color-surface);box-shadow:0 0 0 3px var(--color-accent-note-tint)}.badge{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-micro);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);padding:var(--space-2)var(--space-3);border-radius:var(--radius-sm);flex-shrink:0}.badge svg{fill:currentColor}.badge--filled{color:var(--sys-color-on-primary);background:var(--color-link)}.badge--tonal{color:var(--color-link);background:var(--color-accent-note-tint)}.sidebar-nav{flex:1;padding:var(--space-4)var(--space-3);overflow:hidden}.sidebar-nav ul{display:flex;flex-direction:column;gap:var(--space-1);padding:0;margin:0;list-style:none}.sidebar-nav ul ul{padding-inline-start:var(--space-5);margin-top:var(--space-2)}.sidebar-nav li{position:relative}.sidebar-nav a,.sidebar-nav span[aria-disabled=true]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3)var(--space-4);border-radius:var(--radius-full);font-size:var(--font-size-small);color:var(--sys-color-on-surface);text-decoration:none;line-height:1.4;transition:background-color var(--transition-fast),color var(--transition-fast)}.sidebar-nav a:hover{background-color:var(--gray-100);color:var(--sys-color-on-surface)}.sidebar-nav a.active,.sidebar-nav li.active>a{background-color:var(--color-accent-note-tint);color:var(--color-link);font-weight:var(--font-weight-semibold)}.sidebar-nav span[aria-disabled=true]{opacity:var(--state-disabled);cursor:default}.site-menu-divider-container{list-style:none;padding:0 var(--space-3);margin:var(--space-1)0}.site-menu-divider{border:none;border-top:1px solid var(--gray-200);margin:var(--space-4)0}.sidebar-social{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-4);border-top:1px solid var(--gray-200);margin-top:auto}.sidebar-social a{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);color:var(--sys-color-on-surface);opacity:.85;text-decoration:none;transition:color var(--transition-fast),background-color var(--transition-fast),transform var(--transition-spring)}.sidebar-social a:hover{color:var(--color-link);opacity:1;background-color:var(--gray-100);transform:scale(1.1)}.sidebar-social a svg{display:block}.sidebar-search{margin:0 var(--space-2)var(--space-4);position:relative;z-index:30}.sidebar-search input{width:100%;padding:var(--space-3)var(--space-4);border:1px solid var(--gray-200);border-radius:var(--radius-full);background:var(--surface-container,var(--gray-100));color:var(--sys-color-on-surface);font-size:var(--font-size-small);font-family:inherit;transition:border-color var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast)}.sidebar-search input::placeholder{color:var(--sys-color-on-surface);opacity:.55}.sidebar-search input:focus{outline:none;border-color:var(--color-link);background:var(--sys-color-surface);box-shadow:0 0 0 3px var(--color-accent-note-tint)}.sidebar-search #site-search-results{display:block;position:absolute;top:calc(100% + var(--space-2));inset-inline:0;z-index:20;max-height:min(360px,60vh);overflow-y:auto;list-style:none;margin:0;padding:0;background:var(--sys-color-surface);border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--elevation-2)}.sidebar-search #site-search-results:empty{display:none}.sidebar-search #site-search-results li{border-bottom:1px solid var(--gray-200)}.sidebar-search #site-search-results li:last-child{border-bottom:none}.sidebar-search #site-search-results li a{display:block;padding:var(--space-3)var(--space-4);font-size:var(--font-size-small);color:var(--sys-color-on-surface);text-decoration:none;border-radius:var(--radius-sm);transition:background-color var(--transition-fast),color var(--transition-fast)}.sidebar-search #site-search-results li a:hover{background-color:var(--gray-100);color:var(--color-link)}.sidebar-search #site-search-results li small{display:block;padding:0 var(--space-4)var(--space-2);font-size:var(--font-size-micro);color:var(--sys-color-on-surface);opacity:.85}.site-search-spinner{width:14px;height:14px;border:2px solid var(--gray-200);border-top-color:var(--color-link);border-radius:50%;margin:var(--space-3)auto;animation:spin .7s ease infinite}@keyframes spin{100%{transform:rotate(360deg)}}.site-post{margin-bottom:var(--space-6);padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--gray-200);content-visibility:auto;contain-intrinsic-size:auto 200px;transition:box-shadow var(--transition-medium),transform var(--transition-medium),border-color var(--transition-medium)}.site-post:hover{transform:translateY(-2px);box-shadow:var(--elevation-2);border-color:var(--gray-300)}.site-post:focus-within{box-shadow:var(--elevation-2);border-color:var(--color-link)}@media screen and (max-width:1023px){.site-post{padding:var(--space-4);margin-bottom:var(--space-5)}}.site-post .site-post-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-5);margin-bottom:var(--space-2)}.site-post .site-post-pinned-badge{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-micro);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--sys-color-on-primary);background:var(--color-link);padding:var(--space-2)var(--space-3);border-radius:var(--radius-sm);margin:0;flex-shrink:0}.site-post .site-post-pinned-badge svg{fill:currentColor}.site-post.markdown h2,.site-post .site-post-header h2,.site-post h2,.site-post .site-post-title{font-size:var(--font-size-h2);margin:0!important;line-height:var(--line-height-tight)}.site-post.markdown h2 a,.site-post .site-post-header h2 a,.site-post h2 a,.site-post .site-post-title a{color:var(--sys-color-on-surface);text-decoration:none;display:inline;transition:color var(--transition-fast),text-decoration-color var(--transition-fast)}.site-post.markdown h2 a:hover,.site-post.markdown h2 a:focus-visible,.site-post .site-post-header h2 a:hover,.site-post .site-post-header h2 a:focus-visible,.site-post h2 a:hover,.site-post h2 a:focus-visible,.site-post .site-post-title a:hover,.site-post .site-post-title a:focus-visible{color:var(--color-link);opacity:1}.site-post .site-post-date{font-size:var(--font-size-smallest);color:var(--sys-color-on-surface);opacity:.68;display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4)}.site-post .site-post-meta-wrap{display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-smallest);color:var(--sys-color-on-surface);opacity:.68;margin-bottom:0;flex-wrap:wrap;line-height:1}.site-post .site-post-meta-item{display:flex;align-items:center;gap:var(--space-2);white-space:nowrap;line-height:1}.site-post .site-post-meta-item:not(:last-child)::after{content:"·";margin-inline-start:var(--space-3);color:var(--gray-300);font-weight:700}.site-post .site-post-meta-text{display:inline}.site-post .site-post-content{font-size:var(--font-size-small);color:var(--sys-color-on-surface);opacity:.65;line-height:var(--line-height-normal);margin-top:var(--space-3)}.site-pinned-posts-label{font-size:var(--font-size-label);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-4);color:var(--sys-color-on-surface);letter-spacing:var(--letter-spacing-tight)}.site-pinned-posts{margin-bottom:var(--space-3)}.site-pinned-posts .site-post.pinned{margin-bottom:var(--space-5)}.site-posts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.site-posts-label{font-size:var(--font-size-label);font-weight:var(--font-weight-semibold);color:var(--sys-color-on-surface);letter-spacing:var(--letter-spacing-tight)}@media(prefers-reduced-motion:reduce){.site-post,.site-post:hover{transform:none}}.toc-label{font-size:var(--font-size-micro);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-widest);color:var(--sys-color-on-surface);opacity:.85;margin-bottom:var(--space-3);padding:0 var(--space-2)}#TableOfContents>ul{padding-inline-start:0}#TableOfContents ul{list-style:none;padding-inline-start:0;margin:0}#TableOfContents ul ul{padding-inline-start:var(--space-5)}#TableOfContents li{margin-bottom:var(--space-1);line-height:1.4}#TableOfContents a{display:block;padding:var(--space-2)var(--space-4);font-size:var(--font-size-smallest);color:var(--sys-color-on-surface);opacity:.85;border-radius:var(--radius-full);text-decoration:none;position:relative;transition:color var(--transition-fast),background-color var(--transition-fast),opacity var(--transition-fast)}#TableOfContents a:hover{color:var(--color-link);background-color:var(--gray-100);opacity:1}#TableOfContents a.active{color:var(--color-link);font-weight:var(--font-weight-semibold);background-color:var(--color-accent-note-tint);opacity:1}.toc-divider{border:none;border-top:1px dashed var(--gray-200);margin:var(--space-5)0 var(--space-3)}.btt-desktop{display:flex;width:100%;align-items:center;gap:var(--space-3);padding:var(--space-3)var(--space-4);font-size:var(--font-size-small);font-weight:var(--font-weight-medium);color:var(--color-accent-default);background:0 0;border:none;border-radius:var(--radius-full);cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast)}.btt-desktop:hover{color:var(--color-link);background-color:var(--gray-100)}.btt-desktop svg{width:16px;height:16px;fill:currentColor}.btt-fab{position:fixed;bottom:var(--space-6);inset-inline-end:var(--space-6);width:48px;height:48px;border-radius:var(--radius-full);background-color:var(--sys-color-surface);color:var(--color-link);border:1px solid var(--gray-200);box-shadow:var(--elevation-2);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1000;opacity:0;visibility:hidden;transform:translateY(20px);transition:opacity var(--transition-medium),transform var(--transition-spring),visibility var(--transition-medium),background-color var(--transition-fast)}.btt-fab.visible{opacity:1;visibility:visible;transform:translateY(0)}.btt-fab:hover{background-color:var(--gray-100);box-shadow:var(--elevation-3)}.btt-fab:active{transform:translateY(0)scale(.92)}.btt-fab svg{width:22px;height:22px;fill:currentColor}@media screen and (min-width:1280px){.btt-fab{display:none}}@media screen and (max-width:767px){.btt-fab{bottom:var(--space-5);inset-inline-end:var(--space-5)}}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-2);margin-top:var(--space-7);list-style:none;padding:0}.pagination .page-item .page-link{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-3)var(--space-5);min-width:36px;height:36px;border-radius:var(--radius-full);border:1px solid var(--gray-200);font-size:var(--font-size-small);color:var(--sys-color-on-surface);text-decoration:none;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-spring)}.pagination .page-item .page-link:hover{background-color:var(--gray-100);border-color:var(--color-link);color:var(--color-link)}.pagination .page-item .page-link:active{transform:scale(.95)}.pagination .page-item.active .page-link{background-color:var(--color-link);border-color:var(--color-link);color:var(--sys-color-on-primary);font-weight:var(--font-weight-semibold)}.pagination .page-item.disabled .page-link{opacity:var(--state-disabled);pointer-events:none}.site-footer{margin-top:var(--space-8);padding-top:var(--space-6);padding-bottom:var(--space-5);border-top:1px solid var(--gray-200);font-size:var(--font-size-small);color:var(--sys-color-on-surface);opacity:.75}.site-footer a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}.site-footer a:hover{color:var(--color-link);opacity:1}.site-footer .site-footer-columns,.site-footer .footer-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-6);margin-bottom:var(--space-7)}.site-footer .footer-column h2{font-size:var(--font-size-micro);text-transform:uppercase;letter-spacing:.1em;color:var(--sys-color-on-surface);margin:0 0 var(--space-4);font-weight:var(--font-weight-semibold)}.site-footer .footer-column ul{list-style:none;padding:0;margin:0}.site-footer .footer-column ul li{margin-bottom:var(--space-3)}.site-footer .footer-column ul a{font-size:var(--font-size-small);color:var(--sys-color-on-surface);text-decoration:none;display:inline;transition:color var(--transition-fast)}.site-footer .footer-column ul a:hover{color:var(--color-link)}.site-footer .site-post-navigation{margin-bottom:var(--space-6)}.site-footer .site-footer-inner{display:flex;flex-direction:column;gap:var(--space-6)}.site-footer .site-footer-copy{font-size:var(--font-size-smallest);color:var(--sys-color-on-surface)}.site-post-navigation{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.site-post-navigation a{font-size:var(--font-size-small);color:var(--sys-color-on-surface);opacity:.85;text-decoration:none;display:inline-flex;align-items:center;gap:var(--space-2);transition:color var(--transition-fast),opacity var(--transition-fast)}.site-post-navigation a:hover{color:var(--color-link);opacity:1}.site-post-navigation img.site-icon{filter:var(--icon-filter);opacity:.6;transition:opacity var(--transition-fast)}.site-post-navigation a:hover img.site-icon{opacity:.85}.site-post-separator{padding-top:var(--space-6);border-top:1px solid var(--gray-200)}.markdown{line-height:var(--line-height-relaxed);font-size:var(--font-size-body);color:var(--sys-color-on-surface);overflow-wrap:break-word;word-break:break-word}.markdown>:first-child{margin-top:0}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}.markdown h1 a.anchor,.markdown h2 a.anchor,.markdown h3 a.anchor,.markdown h4 a.anchor,.markdown h5 a.anchor,.markdown h6 a.anchor{opacity:0;font-size:.65em;margin-inline-start:var(--space-3);vertical-align:middle;transition:opacity var(--transition-fast)}.markdown h1:hover a.anchor,.markdown h2:hover a.anchor,.markdown h3:hover a.anchor,.markdown h4:hover a.anchor,.markdown h5:hover a.anchor,.markdown h6:hover a.anchor{opacity:.45}.markdown h1{font-size:var(--font-size-h1);margin-top:var(--space-7)}.markdown h2{font-size:var(--font-size-h2);margin-top:var(--space-7)}.markdown h3{font-size:var(--font-size-h3);margin-top:var(--space-6)}.markdown h4{font-size:var(--font-size-h4);margin-top:var(--space-5)}.markdown h5{font-size:var(--font-size-h5);margin-top:var(--space-5)}.markdown h6{font-size:var(--font-size-h6);margin-top:var(--space-4)}.markdown p{margin:var(--space-4)0}.markdown a{color:var(--color-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--color-accent-default-tint);display:inline;transition:text-decoration-color var(--transition-fast),color var(--transition-fast)}.markdown a:hover{text-decoration-color:var(--color-link);opacity:1}.markdown img{max-width:100%;height:auto;border-radius:var(--radius-lg);margin:var(--space-4)0;display:block}.markdown code{font-family:var(--font-family-mono);padding:2px var(--space-3);background:var(--gray-100);border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.85em;word-break:break-word}.markdown pre{padding:var(--space-5)var(--space-6);background:var(--gray-100);border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow-x:auto;margin:var(--space-6)0}.markdown pre code{padding:0;background:0 0;border:none;font-size:.875em;word-break:normal}.markdown blockquote{margin:var(--space-6)0;padding:var(--space-4)var(--space-6);border-inline-start:4px solid var(--color-link);background:var(--gray-100);border-radius:0 var(--radius-md)var(--radius-md)0;font-style:italic;color:var(--sys-color-on-surface);opacity:.85}.markdown blockquote p{margin:0}.markdown blockquote footer{font-style:normal;margin-top:var(--space-4);color:var(--sys-color-on-surface);opacity:.85;font-size:var(--font-size-label)}.markdown table{width:100%;border-collapse:separate;border-spacing:0;margin:var(--space-6)0;border:1px solid var(--gray-200);border-radius:var(--radius-md);overflow:hidden;font-size:var(--font-size-small)}.markdown table th,.markdown table td{padding:var(--space-3)var(--space-4);text-align:start;border-bottom:1px solid var(--gray-200)}.markdown table th{background:var(--gray-100);font-weight:var(--font-weight-semibold);font-size:var(--font-size-smallest);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--sys-color-on-surface);opacity:.85}.markdown table tr:last-child td{border-bottom:none}.markdown table tr{transition:background-color var(--transition-fast)}.markdown table tr:hover td{background-color:var(--gray-100)}.markdown hr{border:none;border-top:1px solid var(--gray-200);margin:var(--space-7)0}.markdown ul,.markdown ol{margin:var(--space-4)0;padding-inline-start:var(--space-6)}.markdown ul li,.markdown ol li{margin-bottom:var(--space-2);line-height:1.65}.markdown ol{padding-inline-start:calc(var(--space-6) + var(--space-3))}.markdown details{margin:var(--space-5)0;border:1px solid var(--gray-200);border-radius:var(--radius-md);overflow:hidden}.markdown details summary{padding:var(--space-4)var(--space-5);cursor:pointer;background:var(--gray-100);font-weight:var(--font-weight-medium);font-size:var(--font-size-small);user-select:none;transition:background-color var(--transition-fast)}.markdown details summary:hover{background:var(--gray-200)}.markdown details>:not(summary){padding:var(--space-4)var(--space-5)}.markdown a.site-btn[href]{display:inline-flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-label);font-weight:var(--font-weight-medium);color:var(--color-link);line-height:1;padding:10px var(--space-6);border:1.5px solid var(--color-link);border-radius:var(--radius-full);cursor:pointer;text-decoration:none;transition:background-color var(--transition-fast),color var(--transition-fast),transform var(--transition-spring)}.markdown a.site-btn[href]:hover{background-color:var(--color-accent-note-tint);text-decoration:none;opacity:1}.markdown a.site-btn[href]:active{transform:scale(.97)}.markdown .site-badge.note{--accent-color:var(--color-accent-note)}.markdown .site-badge.tip{--accent-color:var(--color-accent-tip)}.markdown .site-badge.important{--accent-color:var(--color-accent-important)}.markdown .site-badge.warning{--accent-color:var(--color-accent-warning)}.markdown .site-badge.caution{--accent-color:var(--color-accent-caution)}.markdown .site-badge.default{--accent-color:var(--color-accent-default)}.markdown .site-badge.info{--accent-color:var(--color-accent-info)}.markdown .site-badge.success{--accent-color:var(--color-accent-success)}.markdown .site-badge.danger{--accent-color:var(--color-accent-danger)}.markdown .site-badge{display:inline-flex;align-items:center;font-size:var(--font-size-label);font-weight:var(--font-weight-regular);vertical-align:middle;border-radius:var(--radius-full);border:none;overflow:hidden;white-space:nowrap;color:var(--sys-color-on-surface)}.markdown .site-badge span{display:inline-block;padding:1px var(--space-2);background:var(--gray-100)}.markdown .site-badge span.site-badge-value{color:var(--sys-color-surface);background-color:var(--accent-color)}.markdown .site-hero{min-height:calc(var(--space-5) * 16);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--space-5)}.markdown .site-hero h1{font-size:var(--font-size-display);font-weight:var(--font-weight-semibold);margin:0;background:linear-gradient(135deg,var(--color-link),var(--color-accent-tip));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:var(--letter-spacing-wide)}.markdown .site-hero p{color:var(--sys-color-on-surface);opacity:.6;margin:0;font-size:var(--font-size-label);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase}.markdown .site-hero .site-btn{margin-inline-end:var(--space-3);margin-bottom:var(--space-3)}.markdown .site-codeblock-filename{background:var(--gray-100);border:1px solid var(--gray-200);border-bottom:0;font-size:var(--font-size-label);margin-top:var(--space-5);padding:var(--space-2)var(--space-3);border-start-start-radius:var(--radius-xs);border-start-end-radius:var(--radius-xs)}.markdown .site-codeblock-filename a{color:var(--sys-color-on-surface)}.markdown .site-codeblock-filename+.highlight pre{margin-top:0;border-start-start-radius:0;border-start-end-radius:0}.site-toc-inner>nav>ul{list-style:none;padding:0;margin:0}.site-section-flat{margin-bottom:var(--space-5)}.site-section-flat .section-title{font-size:var(--font-size-micro);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-widest);color:var(--sys-color-on-surface);opacity:.85;padding:var(--space-2)var(--space-4);margin-bottom:var(--space-3)}.site-section-flat .taxonomy-list{padding-inline-start:0;list-style:none;margin:0;display:flex;flex-direction:column;gap:2px}.site-section-flat .taxonomy-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2)var(--space-3);color:var(--sys-color-on-surface);text-decoration:none;border-radius:var(--radius-full);transition:background-color var(--transition-fast),color var(--transition-fast)}.site-section-flat .taxonomy-item .term-name{font-size:var(--font-size-smallest);opacity:.85;font-weight:var(--font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-inline-end:var(--space-3)}.site-section-flat .taxonomy-item .count{font-size:var(--font-size-micro);color:var(--sys-color-on-surface);opacity:.65;font-weight:var(--font-weight-regular)}.site-section-flat .taxonomy-item:hover{background-color:var(--gray-100);color:var(--color-link)}.site-section-flat .taxonomy-item:hover .term-name{opacity:1}.site-section-flat .taxonomy-item:hover .count{color:var(--color-link)}.site-section-flat .show-more{display:block;padding:var(--space-3)var(--space-4);font-size:var(--font-size-small);font-weight:var(--font-weight-medium);color:var(--color-link);opacity:.85;border-radius:var(--radius-full);text-decoration:none;transition:background-color var(--transition-fast)}.site-section-flat .show-more:hover{background-color:var(--gray-100);opacity:1}.site-section-list{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-6)}.site-section-list .site-section-flat a{font-size:var(--font-size-small);color:var(--sys-color-on-surface);text-decoration:none;padding:var(--space-2)var(--space-4);border:1px solid var(--gray-200);border-radius:var(--radius-full);display:inline-flex;align-items:center;gap:var(--space-2);transition:border-color var(--transition-fast),color var(--transition-fast),background-color var(--transition-fast)}.site-section-list .site-section-flat a sup{font-size:var(--font-size-micro);color:var(--sys-color-on-surface);opacity:.85}.site-section-list .site-section-flat a:hover{border-color:var(--color-link);color:var(--color-link);background-color:var(--color-accent-note-tint)}.archive-list{list-style:none;padding:0;margin:0 0 var(--space-6)}.archive-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3)var(--space-4);border-radius:var(--radius-full);font-size:var(--font-size-small);transition:background-color var(--transition-fast)}.archive-item:hover{background-color:var(--gray-100)}.archive-item:hover a{color:var(--color-link)}.archive-item a{color:var(--sys-color-on-surface);text-decoration:none;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color var(--transition-fast)}.archive-item .archive-date{color:var(--sys-color-on-surface);opacity:.65;font-size:var(--font-size-smallest);flex-shrink:0;margin-inline-start:var(--space-5);font-variant-numeric:tabular-nums}.breadcrumb{margin-bottom:var(--space-4);font-size:var(--font-size-small);line-height:1}.breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);list-style:none;padding:0;margin:0}.breadcrumb li{display:inline-flex;align-items:center;color:var(--gray-500);line-height:var(--line-height-tight)}.breadcrumb li:not(:last-child)::after{content:"";display:inline-block;width:16px;height:16px;margin-inline-start:var(--space-2);background:currentColor;opacity:.4;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6z'/%3E%3C/svg%3E");mask-size:contain;vertical-align:middle;flex-shrink:0}.breadcrumb li[aria-current=page]{color:var(--sys-color-on-surface);font-weight:var(--font-weight-medium)}.breadcrumb li[aria-current=page] span{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.breadcrumb a{display:inline-flex;align-items:center;padding:var(--space-1)var(--space-2);margin:calc(var(--space-1) * -1)calc(var(--space-2) * -1);border-radius:var(--radius-xs);color:var(--gray-500);text-decoration:none;transition:color var(--transition-fast),background-color var(--transition-fast)}.breadcrumb a:hover{color:var(--color-link);background-color:var(--gray-100)}@media screen and (max-width:767px){.breadcrumb{font-size:var(--font-size-smallest)}.breadcrumb li[aria-current=page] span{max-width:160px}}.site-navbar{position:sticky;top:0;z-index:200;width:100%;height:56px;background:rgba(var(--navbar-bg-rgb,255,255,255),.72);backdrop-filter:blur(16px)saturate(180%);border-bottom:1px solid rgba(0,0,0,6%);transition:background-color var(--transition-medium),border-color var(--transition-medium)}[data-theme=dark] .site-navbar{background:rgba(var(--navbar-bg-rgb,27,27,31),.78);border-bottom-color:rgba(255,255,255,6%)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .site-navbar{background:rgba(var(--navbar-bg-rgb,27,27,31),.78);border-bottom-color:rgba(255,255,255,6%)}}.navbar-inner{display:flex;align-items:center;justify-content:space-between;height:100%;padding:0 var(--space-5);gap:var(--space-3)}.navbar-start,.navbar-end{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.navbar-links{display:flex;align-items:center;gap:var(--space-1);margin-inline-end:var(--space-2)}@media screen and (max-width:599px){.navbar-links{display:none}}.navbar-link{display:inline-flex;align-items:center;padding:6px var(--space-4);font-size:var(--font-size-small);font-weight:var(--font-weight-medium);color:var(--sys-color-on-surface);text-decoration:none;border-radius:var(--radius-full);transition:background-color var(--transition-fast),color var(--transition-fast)}.navbar-link:hover{background-color:var(--gray-100);color:var(--color-link);text-decoration:none}.navbar-brand{display:inline-flex;align-items:center;gap:var(--space-3);font-weight:var(--font-weight-medium);font-size:var(--font-size-body);letter-spacing:var(--letter-spacing-tight);color:var(--sys-color-on-surface);text-decoration:none}.navbar-brand img{width:24px;height:24px;flex-shrink:0}.navbar-brand span{white-space:nowrap}.navbar-brand:hover{opacity:.8;color:var(--sys-color-on-surface)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;background:0 0;border-radius:var(--radius-full);cursor:pointer;color:var(--sys-color-on-surface);transition:background-color var(--transition-fast),transform var(--transition-spring);flex-shrink:0}.btn-icon:hover{background-color:var(--gray-100)}.btn-icon:active{transform:scale(.92)}.btn-icon img.site-icon{display:block}[data-nav=sidebar] #sidebar-toggle{display:none}.navbar-lang{position:relative}.navbar-lang label.btn-icon{display:inline-flex}.navbar-lang input.toggle{height:0;width:0;overflow:hidden;opacity:0;position:absolute}.navbar-lang input.toggle:checked~.lang-dropdown{display:block}.navbar-lang .lang-dropdown{display:none;position:absolute;inset-inline-end:0;top:calc(100% + var(--space-2));min-width:120px;background:var(--sys-color-surface);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--space-2);list-style:none;margin:0;z-index:300;box-shadow:var(--elevation-3)}.navbar-lang .lang-dropdown li a{display:block;padding:var(--space-3)var(--space-4);border-radius:var(--radius-sm);font-size:var(--font-size-small);color:var(--sys-color-on-surface);text-decoration:none;transition:background-color var(--transition-fast),color var(--transition-fast)}.navbar-lang .lang-dropdown li a:hover{background-color:var(--gray-100);color:var(--color-link)}.site-sidebar{flex-shrink:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--gray-200)transparent}.site-sidebar::-webkit-scrollbar{width:4px}.site-sidebar::-webkit-scrollbar-track{background:0 0}.site-sidebar::-webkit-scrollbar-thumb{background-color:var(--gray-200);border-radius:2px}.site-sidebar-inner{display:flex;flex-direction:column;min-height:100%;padding-bottom:var(--space-7)}.site-overlay{display:none;position:fixed;inset:0;top:56px;background:rgba(0,0,0,.4);z-index:140;backdrop-filter:blur(4px);opacity:0;transition:opacity var(--transition-medium)}.site-overlay.active{display:block;opacity:1}[data-nav=drawer] .site-sidebar{position:fixed;top:56px;inset-inline-start:0;width:240px;height:calc(100% - 56px);z-index:150;background:var(--sys-color-surface);border-inline-end:1px solid var(--gray-200);transform:translateX(-100%);transition:transform var(--transition-medium),box-shadow var(--transition-medium);will-change:transform}[data-nav=drawer] .site-sidebar.open{transform:translateX(0);box-shadow:var(--elevation-3)}[data-nav=rail] .site-sidebar{width:72px;position:sticky;top:56px;height:calc(100vh - 56px);border-inline-end:1px solid var(--gray-200);transition:width var(--transition-medium);z-index:150}[data-nav=rail] .site-sidebar .nav-item-label,[data-nav=rail] .site-sidebar .sidebar-search,[data-nav=rail] .site-sidebar .sidebar-social a span{display:none}[data-nav=rail] .site-sidebar .sidebar-nav{padding:var(--space-4)var(--space-2)}[data-nav=rail] .site-sidebar .sidebar-nav a,[data-nav=rail] .site-sidebar .sidebar-nav span[aria-disabled=true]{justify-content:center;padding:var(--space-3);border-radius:var(--radius-md)}[data-nav=rail] .site-sidebar:hover,[data-nav=rail] .site-sidebar:focus-within{width:240px;box-shadow:var(--elevation-3);background:var(--sys-color-surface)}[data-nav=rail] .site-sidebar:hover .nav-item-label,[data-nav=rail] .site-sidebar:hover .sidebar-search,[data-nav=rail] .site-sidebar:focus-within .nav-item-label,[data-nav=rail] .site-sidebar:focus-within .sidebar-search{display:block}[data-nav=rail] .site-sidebar:hover .sidebar-social a span,[data-nav=rail] .site-sidebar:focus-within .sidebar-social a span{display:inline}[data-nav=rail] .site-sidebar:hover .sidebar-nav,[data-nav=rail] .site-sidebar:focus-within .sidebar-nav{padding:var(--space-4)var(--space-3)}[data-nav=rail] .site-sidebar:hover .sidebar-nav a,[data-nav=rail] .site-sidebar:hover .sidebar-nav span[aria-disabled=true],[data-nav=rail] .site-sidebar:focus-within .sidebar-nav a,[data-nav=rail] .site-sidebar:focus-within .sidebar-nav span[aria-disabled=true]{justify-content:flex-start;padding:var(--space-3)var(--space-4);border-radius:var(--radius-full)}[data-nav=rail] .site-overlay{display:none!important}[data-nav=sidebar] .site-sidebar{width:240px;position:sticky;top:56px;height:calc(100vh - 56px);border-inline-end:1px solid var(--gray-200)}[data-nav=sidebar] .site-overlay{display:none!important}body.sidebar-open{overflow:hidden}body.sidebar-open[data-nav=sidebar],body.sidebar-open[data-nav=rail]{overflow:auto}.site-body{display:flex;min-height:calc(100vh - 56px);max-width:1440px;margin:0 auto;width:100%;position:relative}.site-main{flex:1;min-width:0;padding:var(--space-6);display:flex;flex-direction:column}@media screen and (min-width:768px) and (max-width:1199px){.site-main{padding:var(--space-6)}}@media screen and (max-width:767px){.site-main{padding:var(--space-5)}}.site-article{flex:1}.site-toc-rail{width:220px;flex-shrink:0;position:sticky;top:56px;height:calc(100vh - 56px);overflow-y:auto;overflow-x:hidden;border-inline-start:1px solid var(--gray-200);scrollbar-width:thin;scrollbar-color:var(--gray-200)transparent}.site-toc-rail::-webkit-scrollbar{width:4px}.site-toc-rail::-webkit-scrollbar-track{background:0 0}.site-toc-rail::-webkit-scrollbar-thumb{background-color:var(--gray-200);border-radius:2px}.site-toc-rail .site-toc-inner{padding:var(--space-6)var(--space-5)}@media screen and (max-width:1279px){.site-toc-rail{display:none}}.site-landing{max-width:960px;margin:0 auto;padding:var(--space-9)var(--space-7)}@media screen and (min-width:768px) and (max-width:1199px){.site-landing{padding:var(--space-8)var(--space-6)}}@media screen and (max-width:767px){.site-landing{padding:var(--space-6)var(--space-5)}}.site-landing .site-hero{display:flex;flex-direction:column;align-items:center;width:min(100%,680px);margin:0 auto;text-align:center;gap:var(--space-3)}.site-landing .site-hero h1{margin-bottom:0;color:var(--sys-color-on-surface);background:linear-gradient(135deg,var(--color-link) 0%,var(--color-accent-tip) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.site-landing .site-hero p{max-width:58ch;margin:0;color:color-mix(in srgb,var(--sys-color-on-surface) 74%,var(--sys-color-surface));line-height:var(--line-height-tight);opacity:1}.site-landing .site-hero>p:first-of-type{color:color-mix(in srgb,var(--sys-color-on-surface) 82%,var(--sys-color-surface));font-size:var(--font-size-title);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.site-landing .site-hero>.site-badge{margin:var(--space-2)auto var(--space-3)}.site-landing .site-hero>p:last-of-type{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-4)}.site-landing .site-hero a.site-btn[href]{margin:0;color:var(--sys-color-on-primary);text-decoration:none;background:var(--sys-color-primary);border-color:var(--sys-color-primary)}.site-landing .site-hero a.site-btn[href]:hover{color:var(--sys-color-on-primary);background:var(--color-link);border-color:var(--color-link)}.site-landing .site-hero a.site-btn[href]+a.site-btn[href]{color:var(--sys-color-on-surface);background:0 0;border-color:var(--gray-300)}.site-landing .site-hero a.site-btn[href]+a.site-btn[href]:hover{color:var(--sys-color-on-surface);background:var(--gray-100);border-color:var(--gray-500)}.site-landing .site-sections{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-top:var(--space-7)}@media screen and (max-width:767px){.site-landing .site-sections{grid-template-columns:repeat(2,1fr);gap:var(--space-3);margin-top:var(--space-5)}}@media screen and (max-width:599px){.site-landing .site-sections{grid-template-columns:1fr}}.site-landing .section-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);min-height:116px;padding:var(--space-5);color:var(--sys-color-on-surface);text-align:center;text-decoration:none;background:color-mix(in srgb,var(--sys-color-surface) 72%,transparent);border:1px solid var(--gray-200);border-radius:var(--radius-lg);transition:transform var(--transition-spring),box-shadow var(--transition-medium),border-color var(--transition-fast)}.site-landing .section-card:hover,.site-landing .section-card:focus-visible{color:var(--sys-color-on-surface);text-decoration:none;transform:translateY(-3px);background:color-mix(in srgb,var(--sys-color-surface) 88%,transparent);box-shadow:var(--elevation-2);border-color:var(--color-link)}.site-landing .section-card:active{transform:translateY(0)scale(.98)}@media screen and (max-width:767px){.site-landing .section-card{align-items:flex-start;min-height:104px;padding:var(--space-4);text-align:left}}@media screen and (max-width:599px){.site-landing .section-card{justify-content:flex-start;min-height:auto;gap:var(--space-1);padding:var(--space-4)var(--space-5)}}.site-landing .section-title{display:block;color:var(--sys-color-on-surface);font-size:var(--font-size-title);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-tight);line-height:var(--line-height-tight)}.site-landing .section-desc{display:block;max-width:18ch;color:color-mix(in srgb,var(--sys-color-on-surface) 70%,var(--sys-color-surface));font-size:var(--font-size-small);line-height:var(--line-height-normal)}@media screen and (max-width:767px){.site-landing .section-desc{max-width:24ch}}@media screen and (max-width:599px){.site-landing .section-desc{max-width:none;text-align:left}}.site-landing .landing-latest{margin-top:var(--space-7)}.site-landing .landing-latest-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.site-landing .landing-latest-header h2{margin:0;font-size:var(--font-size-title);line-height:var(--line-height-tight)}.site-landing .landing-latest-link{color:var(--sys-color-on-surface);font-size:var(--font-size-small);opacity:.72;text-decoration:none}.site-landing .landing-latest-link:hover,.site-landing .landing-latest-link:focus-visible{color:var(--color-link);opacity:1}.site-landing .landing-latest-list{display:grid;gap:var(--space-3)}.site-landing .landing-latest-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:var(--space-4)0;color:var(--sys-color-on-surface);text-decoration:none;border-top:1px solid var(--gray-200)}.site-landing .landing-latest-item:hover,.site-landing .landing-latest-item:focus-visible{color:var(--color-link);text-decoration:none}.site-landing .landing-latest-item time{flex-shrink:0;color:var(--sys-color-on-surface);font-size:var(--font-size-smallest);opacity:.65;font-variant-numeric:tabular-nums}.site-landing .landing-latest-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media screen and (max-width:599px){.site-landing .landing-latest-item{align-items:flex-start;flex-direction:column;gap:var(--space-1)}.site-landing .landing-latest-title{white-space:normal}}body::after,body::before{content:"";position:fixed;width:100vw;height:100vh;z-index:-1;pointer-events:none}body::after{top:0;right:0;background:radial-gradient(circle at 100% 0%,var(--color-link) 0%,transparent 40%);opacity:.08}body::before{bottom:0;left:0;background:radial-gradient(circle at 0% 100%,var(--color-accent-tip) 0%,transparent 40%);opacity:.06}@media(prefers-reduced-motion:reduce){.site-landing .section-card,.site-landing .section-card:hover,.site-landing .section-card:focus-visible,.site-landing .section-card:active{transform:none}body::after,body::before{display:none}}@media print{.site-navbar,.site-sidebar,.site-toc-rail,.site-overlay{display:none!important}.site-body{display:block}.site-main{padding:0}}.flex{display:flex}.flex.gap{gap:var(--space-5)}.flex-auto{flex:auto}.flex-even{flex:1 1}.flex-wrap{flex-wrap:wrap}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.align-center{align-items:center}.mx-auto{margin:0 auto}.text-center{text-align:center}.text-left{text-align:start}.text-right{text-align:end}.hidden{display:none}input.toggle{height:0;width:0;overflow:hidden;opacity:0;position:absolute}:root{--sys-color-primary:var(--ref-primary);--sys-color-on-primary:var(--ref-on-primary);--sys-color-surface:#ffffff;--sys-color-on-surface:#18181b;--sys-color-outline:#d4d4d8;--sys-surface-tint:var(--sys-color-primary);--body-background:var(--sys-color-surface);--body-font-color:var(--sys-color-on-surface);--color-link:#2563eb;--color-visited-link:#2563eb;--icon-filter:none;--navbar-bg-rgb:255, 255, 255;--surface-dim:#f0f1f3;--surface-container:#f8f9fa;--surface-container-high:#f1f3f4;--gray-100:#f4f4f5;--gray-200:#e4e4e7;--gray-300:#d4d4d8;--gray-500:#71717a;--color-accent-default:#71717a;--color-accent-default-tint:rgba(113, 113, 122, 0.1);--color-accent-note:#2563eb;--color-accent-note-tint:rgba(37, 99, 235, 0.1);--color-accent-tip:#059669;--color-accent-tip-tint:rgba(5, 150, 105, 0.1);--color-accent-important:#7c3aed;--color-accent-important-tint:rgba(124, 58, 237, 0.1);--color-accent-warning:#d97706;--color-accent-warning-tint:rgba(217, 119, 6, 0.1);--color-accent-caution:#dc2626;--color-accent-caution-tint:rgba(220, 38, 38, 0.1);--color-accent-info:#0891b2;--color-accent-info-tint:rgba(8, 145, 178, 0.1);--color-accent-success:#059669;--color-accent-success-tint:rgba(5, 150, 105, 0.1);--color-accent-danger:#dc2626;--color-accent-danger-tint:rgba(220, 38, 38, 0.1)}@media(prefers-color-scheme:dark){:root{--sys-color-primary:#93c5fd;--sys-color-on-primary:#172554;--sys-color-surface:#1b1b1f;--sys-color-on-surface:#f4f4f5;--sys-color-outline:#3f3f46;--sys-surface-tint:var(--sys-color-primary);--body-background:var(--sys-color-surface);--body-font-color:var(--sys-color-on-surface);--color-link:#93c5fd;--color-visited-link:#93c5fd;--icon-filter:brightness(0) invert(0.88);--navbar-bg-rgb:27, 27, 31;--surface-dim:#131316;--surface-container:#211f26;--surface-container-high:#2b2930;--gray-100:#27272a;--gray-200:#3f3f46;--gray-300:#52525b;--gray-500:#a1a1aa;--color-accent-default:#a1a1aa;--color-accent-default-tint:rgba(161, 161, 170, 0.1);--color-accent-note:#93c5fd;--color-accent-note-tint:rgba(147, 197, 253, 0.1);--color-accent-tip:#86efac;--color-accent-tip-tint:rgba(134, 239, 172, 0.1);--color-accent-important:#c4b5fd;--color-accent-important-tint:rgba(196, 181, 253, 0.1);--color-accent-warning:#fcd34d;--color-accent-warning-tint:rgba(252, 211, 77, 0.1);--color-accent-caution:#fca5a5;--color-accent-caution-tint:rgba(252, 165, 165, 0.1);--color-accent-info:#67e8f9;--color-accent-info-tint:rgba(103, 232, 249, 0.1);--color-accent-success:#86efac;--color-accent-success-tint:rgba(134, 239, 172, 0.1);--color-accent-danger:#fca5a5;--color-accent-danger-tint:rgba(252, 165, 165, 0.1)}}[data-theme=light]{--sys-color-primary:var(--ref-primary);--sys-color-on-primary:var(--ref-on-primary);--sys-color-surface:#ffffff;--sys-color-on-surface:#18181b;--sys-color-outline:#d4d4d8;--sys-surface-tint:var(--sys-color-primary);--body-background:var(--sys-color-surface);--body-font-color:var(--sys-color-on-surface);--color-link:#2563eb;--color-visited-link:#2563eb;--icon-filter:none;--navbar-bg-rgb:255, 255, 255;--surface-dim:#f0f1f3;--surface-container:#f8f9fa;--surface-container-high:#f1f3f4;--gray-100:#f4f4f5;--gray-200:#e4e4e7;--gray-300:#d4d4d8;--gray-500:#71717a;--color-accent-default:#71717a;--color-accent-default-tint:rgba(113, 113, 122, 0.1);--color-accent-note:#2563eb;--color-accent-note-tint:rgba(37, 99, 235, 0.1);--color-accent-tip:#059669;--color-accent-tip-tint:rgba(5, 150, 105, 0.1);--color-accent-important:#7c3aed;--color-accent-important-tint:rgba(124, 58, 237, 0.1);--color-accent-warning:#d97706;--color-accent-warning-tint:rgba(217, 119, 6, 0.1);--color-accent-caution:#dc2626;--color-accent-caution-tint:rgba(220, 38, 38, 0.1);--color-accent-info:#0891b2;--color-accent-info-tint:rgba(8, 145, 178, 0.1);--color-accent-success:#059669;--color-accent-success-tint:rgba(5, 150, 105, 0.1);--color-accent-danger:#dc2626;--color-accent-danger-tint:rgba(220, 38, 38, 0.1)}[data-theme=dark]{--sys-color-primary:#93c5fd;--sys-color-on-primary:#172554;--sys-color-surface:#1b1b1f;--sys-color-on-surface:#f4f4f5;--sys-color-outline:#3f3f46;--sys-surface-tint:var(--sys-color-primary);--body-background:var(--sys-color-surface);--body-font-color:var(--sys-color-on-surface);--color-link:#93c5fd;--color-visited-link:#93c5fd;--icon-filter:brightness(0) invert(0.88);--navbar-bg-rgb:27, 27, 31;--surface-dim:#131316;--surface-container:#211f26;--surface-container-high:#2b2930;--gray-100:#27272a;--gray-200:#3f3f46;--gray-300:#52525b;--gray-500:#a1a1aa;--color-accent-default:#a1a1aa;--color-accent-default-tint:rgba(161, 161, 170, 0.1);--color-accent-note:#93c5fd;--color-accent-note-tint:rgba(147, 197, 253, 0.1);--color-accent-tip:#86efac;--color-accent-tip-tint:rgba(134, 239, 172, 0.1);--color-accent-important:#c4b5fd;--color-accent-important-tint:rgba(196, 181, 253, 0.1);--color-accent-warning:#fcd34d;--color-accent-warning-tint:rgba(252, 211, 77, 0.1);--color-accent-caution:#fca5a5;--color-accent-caution-tint:rgba(252, 165, 165, 0.1);--color-accent-info:#67e8f9;--color-accent-info-tint:rgba(103, 232, 249, 0.1);--color-accent-success:#86efac;--color-accent-success-tint:rgba(134, 239, 172, 0.1);--color-accent-danger:#fca5a5;--color-accent-danger-tint:rgba(252, 165, 165, 0.1)}body[data-density=compact]{--space-3:6px;--space-4:8px;--space-5:12px;--space-6:16px;--space-7:24px}body[data-density=spacious]{--space-3:12px;--space-4:16px;--space-5:20px;--space-6:32px;--space-7:48px}