29 lines
169 KiB
HTML
29 lines
169 KiB
HTML
<!doctype html><html lang=en><head><meta charset=utf-8><meta content="width=device-width,initial-scale=1" name=viewport><title>Not found</title><meta content="The requested page does not exist." name=description><meta content="The requested page does not exist." property=og:description><meta content="The requested page does not exist." name=twitter:description><meta content=Yggdrasil property=og:site_name><meta content="Not found | Yggdrasil" property=og:title><meta content="Not found | Yggdrasil" name=twitter:title><meta content=article property=og:type><meta content=summary name=twitter:card><link href=https://yggdrasil.kb28.ch/404.html rel=canonical><meta content=https://yggdrasil.kb28.ch/404.html property=og:url><link href=/assets/yggdrasil.ico rel=icon><meta content="light dark" name=color-scheme><script data-calepin-theme-param=theme data-calepin-theme-storage-key=calepin-website-theme>(()=>{let currentScript=document.currentScript,storageKey=currentScript?.dataset?.calepinThemeStorageKey||`calepin-website-theme`,param=currentScript?.dataset?.calepinThemeParam||`theme`,normalize=value=>value===`light`||value===`dark`?value:``,root=document.documentElement,media=window.matchMedia?window.matchMedia(`(prefers-color-scheme: dark)`):null,systemTheme=()=>media&&media.matches?`dark`:`light`,mode=``;if(param)try{mode=normalize(new URL(window.location.href).searchParams.get(param)||``)}catch{mode=``}if(!mode)try{mode=normalize(localStorage.getItem(storageKey)||``)}catch{mode=``}let theme=mode||systemTheme();root.dataset.calepinThemeMode=mode,root.dataset.theme=theme,root.style.colorScheme=theme})();</script><style>:host,:root{--pico-font-family-emoji:"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--pico-font-family-sans-serif:system-ui,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,Helvetica,Arial,"Helvetica Neue",sans-serif,var(--pico-font-family-emoji);--pico-font-family-monospace:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace,var(--pico-font-family-emoji);--pico-font-family:var(--pico-font-family-sans-serif);--pico-line-height:1.5;--pico-font-weight:400;--pico-font-size:100%;--pico-text-underline-offset:.1rem;--pico-border-radius:.25rem;--pico-border-width:.0625rem;--pico-outline-width:.125rem;--pico-transition:.2s ease-in-out;--pico-spacing:1rem;--pico-typography-spacing-vertical:1rem;--pico-block-spacing-vertical:var(--pico-spacing);--pico-block-spacing-horizontal:var(--pico-spacing);--pico-grid-column-gap:var(--pico-spacing);--pico-grid-row-gap:var(--pico-spacing);--pico-form-element-spacing-vertical:.75rem;--pico-form-element-spacing-horizontal:1rem;--pico-group-box-shadow:0 0 0 #0000;--pico-group-box-shadow-focus-with-button:0 0 0 var(--pico-outline-width) var(--pico-primary-focus);--pico-group-box-shadow-focus-with-input:0 0 0 .0625rem var(--pico-form-element-border-color);--pico-modal-overlay-backdrop-filter:blur(.375rem);--pico-nav-element-spacing-vertical:1rem;--pico-nav-element-spacing-horizontal:.5rem;--pico-nav-link-spacing-vertical:.5rem;--pico-nav-link-spacing-horizontal:.5rem;--pico-nav-breadcrumb-divider:">";--pico-icon-checkbox:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-minus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");--pico-icon-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-date:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");--pico-icon-time:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-search:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");--pico-icon-close:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");--pico-icon-loading:url("data:image/svg+xml,%3Csvg fill='none' height='24' width='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E g %7B animation: rotate 2s linear infinite; transform-origin: center center; %7D circle %7B stroke-dasharray: 75,100; stroke-dashoffset: -5; animation: dash 1.5s ease-in-out infinite; stroke-linecap: round; %7D @keyframes rotate %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D @keyframes dash %7B 0%25 %7B stroke-dasharray: 1,100; stroke-dashoffset: 0; %7D 50%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -17.5; %7D 100%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -62; %7D %7D %3C/style%3E%3Cg%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='rgb(136, 145, 164)' stroke-width='4' /%3E%3C/g%3E%3C/svg%3E")}@media (width>=576px){:host,:root{--pico-font-size:106.25%}}@media (width>=768px){:host,:root{--pico-font-size:112.5%}}@media (width>=1024px){:host,:root{--pico-font-size:118.75%}}@media (width>=1280px){:host,:root{--pico-font-size:125%}}@media (width>=1536px){:host,:root{--pico-font-size:131.25%}}a,a.contrast,a.secondary{--pico-text-decoration:underline}small{--pico-font-size:.875em}h1,h2,h3,h4,h5,h6{--pico-font-weight:700}h1{--pico-font-size:2rem;--pico-line-height:1.125;--pico-typography-spacing-top:3rem}h2{--pico-font-size:1.75rem;--pico-line-height:1.15;--pico-typography-spacing-top:2.625rem}h3{--pico-font-size:1.5rem;--pico-line-height:1.175;--pico-typography-spacing-top:2.25rem}h4{--pico-font-size:1.25rem;--pico-line-height:1.2;--pico-typography-spacing-top:1.874rem}h5{--pico-font-size:1.125rem;--pico-line-height:1.225;--pico-typography-spacing-top:1.6875rem}h6{--pico-font-size:1rem;--pico-line-height:1.25;--pico-typography-spacing-top:1.5rem}tfoot td,tfoot th,thead td,thead th{--pico-font-weight:600;--pico-border-width:.1875rem}code,kbd,pre,samp{--pico-font-family:var(--pico-font-family-monospace)}kbd{--pico-font-weight:bolder}:where(select,textarea),input:not([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-outline-width:.0625rem}[type=search]{--pico-border-radius:5rem}[type=checkbox],[type=radio]{--pico-border-width:.125rem}[type=checkbox][role=switch]{--pico-border-width:.1875rem}details.dropdown summary:not([role=button]){--pico-outline-width:.0625rem}nav details.dropdown summary:focus-visible{--pico-outline-width:.125rem}[role=search]{--pico-border-radius:5rem}[role=group]:has(button.secondary:focus,[type=submit].secondary:focus,[type=button].secondary:focus,[role=button].secondary:focus),[role=search]:has(button.secondary:focus,[type=submit].secondary:focus,[type=button].secondary:focus,[role=button].secondary:focus){--pico-group-box-shadow-focus-with-button:0 0 0 var(--pico-outline-width) var(--pico-secondary-focus)}[role=group]:has(button.contrast:focus,[type=submit].contrast:focus,[type=button].contrast:focus,[role=button].contrast:focus),[role=search]:has(button.contrast:focus,[type=submit].contrast:focus,[type=button].contrast:focus,[role=button].contrast:focus){--pico-group-box-shadow-focus-with-button:0 0 0 var(--pico-outline-width) var(--pico-contrast-focus)}[role=group] [role=button],[role=group] [type=button],[role=group] [type=submit],[role=group] button,[role=search] [role=button],[role=search] [type=button],[role=search] [type=submit],[role=search] button{--pico-form-element-spacing-horizontal:2rem}details summary[role=button]:not(.outline):after,[aria-busy=true]:not(input,select,textarea):is(button,[type=submit],[type=button],[type=reset],[role=button]):not(.outline):before{filter:brightness(0)invert()}:host(:not([data-theme=dark])),:root:not([data-theme=dark]),[data-theme=light]{color-scheme:light;--pico-background-color:#fff;--pico-color:#373c44;--pico-text-selection-color:#029ae840;--pico-muted-color:#646b79;--pico-muted-border-color:#e7eaf0;--pico-primary:#0172ad;--pico-primary-background:#0172ad;--pico-primary-border:var(--pico-primary-background);--pico-primary-underline:#0172ad80;--pico-primary-hover:#015887;--pico-primary-hover-background:#02659a;--pico-primary-hover-border:var(--pico-primary-hover-background);--pico-primary-hover-underline:var(--pico-primary-hover);--pico-primary-focus:#029ae880;--pico-primary-inverse:#fff;--pico-secondary:#5d6b89;--pico-secondary-background:#525f7a;--pico-secondary-border:var(--pico-secondary-background);--pico-secondary-underline:#5d6b8980;--pico-secondary-hover:#48536b;--pico-secondary-hover-background:#48536b;--pico-secondary-hover-border:var(--pico-secondary-hover-background);--pico-secondary-hover-underline:var(--pico-secondary-hover);--pico-secondary-focus:#5d6b8940;--pico-secondary-inverse:#fff;--pico-contrast:#181c25;--pico-contrast-background:#181c25;--pico-contrast-border:var(--pico-contrast-background);--pico-contrast-underline:#181c2580;--pico-contrast-hover:#000;--pico-contrast-hover-background:#000;--pico-contrast-hover-border:var(--pico-contrast-hover-background);--pico-contrast-hover-underline:var(--pico-secondary-hover);--pico-contrast-focus:#5d6b8940;--pico-contrast-inverse:#fff;--pico-box-shadow:.0145rem .029rem .174rem #8191b504,.0335rem .067rem .402rem #8191b506,.0625rem .125rem .75rem #8191b508,.1125rem .225rem 1.35rem #8191b509,.2085rem .417rem 2.502rem #8191b50b,.5rem 1rem 6rem #8191b50f,0 0 0 .0625rem #8191b504;--pico-h1-color:#2d3138;--pico-h2-color:#373c44;--pico-h3-color:#424751;--pico-h4-color:#4d535e;--pico-h5-color:#5c6370;--pico-h6-color:#646b79;--pico-mark-background-color:#fde7c0;--pico-mark-color:#0f1114;--pico-ins-color:#1d6a54;--pico-del-color:#883935;--pico-blockquote-border-color:var(--pico-muted-border-color);--pico-blockquote-footer-color:var(--pico-muted-color);--pico-button-box-shadow:0 0 0 #0000;--pico-button-hover-box-shadow:0 0 0 #0000;--pico-table-border-color:var(--pico-muted-border-color);--pico-table-row-stripped-background-color:#6f78870a;--pico-code-background-color:#f3f5f7;--pico-code-color:#646b79;--pico-code-kbd-background-color:var(--pico-color);--pico-code-kbd-color:var(--pico-background-color);--pico-form-element-background-color:#fbfcfc;--pico-form-element-selected-background-color:#dfe3eb;--pico-form-element-border-color:#cfd5e2;--pico-form-element-color:#23262c;--pico-form-element-placeholder-color:var(--pico-muted-color);--pico-form-element-active-background-color:#fff;--pico-form-element-active-border-color:var(--pico-primary-border);--pico-form-element-focus-color:var(--pico-primary-border);--pico-form-element-disabled-opacity:.5;--pico-form-element-invalid-border-color:#b86a6b;--pico-form-element-invalid-active-border-color:#c84f48;--pico-form-element-invalid-focus-color:var(--pico-form-element-invalid-active-border-color);--pico-form-element-valid-border-color:#4c9b8a;--pico-form-element-valid-active-border-color:#279977;--pico-form-element-valid-focus-color:var(--pico-form-element-valid-active-border-color);--pico-switch-background-color:#bfc7d9;--pico-switch-checked-background-color:var(--pico-primary-background);--pico-switch-color:#fff;--pico-switch-thumb-box-shadow:0 0 0 #0000;--pico-range-border-color:#dfe3eb;--pico-range-active-border-color:#bfc7d9;--pico-range-thumb-border-color:var(--pico-background-color);--pico-range-thumb-color:var(--pico-secondary-background);--pico-range-thumb-active-color:var(--pico-primary-background);--pico-accordion-border-color:var(--pico-muted-border-color);--pico-accordion-active-summary-color:var(--pico-primary-hover);--pico-accordion-close-summary-color:var(--pico-color);--pico-accordion-open-summary-color:var(--pico-muted-color);--pico-card-background-color:var(--pico-background-color);--pico-card-border-color:var(--pico-muted-border-color);--pico-card-box-shadow:var(--pico-box-shadow);--pico-card-sectioning-background-color:#fbfcfc;--pico-dropdown-background-color:#fff;--pico-dropdown-border-color:#eff1f4;--pico-dropdown-box-shadow:var(--pico-box-shadow);--pico-dropdown-color:var(--pico-color);--pico-dropdown-hover-background-color:#eff1f4;--pico-loading-spinner-opacity:.5;--pico-modal-overlay-background-color:#e8eaedbf;--pico-progress-background-color:#dfe3eb;--pico-progress-color:var(--pico-primary-background);--pico-tooltip-background-color:var(--pico-contrast-background);--pico-tooltip-color:var(--pico-contrast-inverse);--pico-icon-valid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(76, 154.5, 137.5)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-invalid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(200.25, 79.25, 72.25)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E")}:host(:not([data-theme=dark])) input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]),:root:not([data-theme=dark]) input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]),[data-theme=light] input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-form-element-focus-color:var(--pico-primary-focus)}@media only screen and (prefers-color-scheme:dark){:host(:not([data-theme])),:root:not([data-theme]){color-scheme:dark;--pico-background-color:#13171f;--pico-color:#c2c7d0;--pico-text-selection-color:#01aaff30;--pico-muted-color:#7b8495;--pico-muted-border-color:#202632;--pico-primary:#01aaff;--pico-primary-background:#0172ad;--pico-primary-border:var(--pico-primary-background);--pico-primary-underline:#01aaff80;--pico-primary-hover:#79c0ff;--pico-primary-hover-background:#017fc0;--pico-primary-hover-border:var(--pico-primary-hover-background);--pico-primary-hover-underline:var(--pico-primary-hover);--pico-primary-focus:#01aaff60;--pico-primary-inverse:#fff;--pico-secondary:#969eaf;--pico-secondary-background:#525f7a;--pico-secondary-border:var(--pico-secondary-background);--pico-secondary-underline:#969eaf80;--pico-secondary-hover:#b3b9c5;--pico-secondary-hover-background:#5d6b89;--pico-secondary-hover-border:var(--pico-secondary-hover-background);--pico-secondary-hover-underline:var(--pico-secondary-hover);--pico-secondary-focus:#909ebe40;--pico-secondary-inverse:#fff;--pico-contrast:#dfe3eb;--pico-contrast-background:#eff1f4;--pico-contrast-border:var(--pico-contrast-background);--pico-contrast-underline:#dfe3eb80;--pico-contrast-hover:#fff;--pico-contrast-hover-background:#fff;--pico-contrast-hover-border:var(--pico-contrast-hover-background);--pico-contrast-hover-underline:var(--pico-contrast-hover);--pico-contrast-focus:#cfd5e240;--pico-contrast-inverse:#000;--pico-box-shadow:.0145rem .029rem .174rem #07090c04,.0335rem .067rem .402rem #07090c06,.0625rem .125rem .75rem #07090c08,.1125rem .225rem 1.35rem #07090c09,.2085rem .417rem 2.502rem #07090c0b,.5rem 1rem 6rem #07090c0f,0 0 0 .0625rem #07090c04;--pico-h1-color:#f0f1f3;--pico-h2-color:#e0e3e7;--pico-h3-color:#c2c7d0;--pico-h4-color:#b3b9c5;--pico-h5-color:#a4acba;--pico-h6-color:#8891a4;--pico-mark-background-color:#014063;--pico-mark-color:#fff;--pico-ins-color:#62af9a;--pico-del-color:#ce7e7b;--pico-blockquote-border-color:var(--pico-muted-border-color);--pico-blockquote-footer-color:var(--pico-muted-color);--pico-button-box-shadow:0 0 0 #0000;--pico-button-hover-box-shadow:0 0 0 #0000;--pico-table-border-color:var(--pico-muted-border-color);--pico-table-row-stripped-background-color:#6f78870a;--pico-code-background-color:#1a1f28;--pico-code-color:#8891a4;--pico-code-kbd-background-color:var(--pico-color);--pico-code-kbd-color:var(--pico-background-color);--pico-form-element-background-color:#1c212c;--pico-form-element-selected-background-color:#2a3140;--pico-form-element-border-color:#2a3140;--pico-form-element-color:#e0e3e7;--pico-form-element-placeholder-color:#8891a4;--pico-form-element-active-background-color:#1a1f28;--pico-form-element-active-border-color:var(--pico-primary-border);--pico-form-element-focus-color:var(--pico-primary-border);--pico-form-element-disabled-opacity:.5;--pico-form-element-invalid-border-color:#964a50;--pico-form-element-invalid-active-border-color:#b7403b;--pico-form-element-invalid-focus-color:var(--pico-form-element-invalid-active-border-color);--pico-form-element-valid-border-color:#2a7b6f;--pico-form-element-valid-active-border-color:#16896a;--pico-form-element-valid-focus-color:var(--pico-form-element-valid-active-border-color);--pico-switch-background-color:#333c4e;--pico-switch-checked-background-color:var(--pico-primary-background);--pico-switch-color:#fff;--pico-switch-thumb-box-shadow:0 0 0 #0000;--pico-range-border-color:#202632;--pico-range-active-border-color:#2a3140;--pico-range-thumb-border-color:var(--pico-background-color);--pico-range-thumb-color:var(--pico-secondary-background);--pico-range-thumb-active-color:var(--pico-primary-background);--pico-accordion-border-color:var(--pico-muted-border-color);--pico-accordion-active-summary-color:var(--pico-primary-hover);--pico-accordion-close-summary-color:var(--pico-color);--pico-accordion-open-summary-color:var(--pico-muted-color);--pico-card-background-color:#181c25;--pico-card-border-color:var(--pico-card-background-color);--pico-card-box-shadow:var(--pico-box-shadow);--pico-card-sectioning-background-color:#1a1f28;--pico-dropdown-background-color:#181c25;--pico-dropdown-border-color:#202632;--pico-dropdown-box-shadow:var(--pico-box-shadow);--pico-dropdown-color:var(--pico-color);--pico-dropdown-hover-background-color:#202632;--pico-loading-spinner-opacity:.5;--pico-modal-overlay-background-color:#08090abf;--pico-progress-background-color:#202632;--pico-progress-color:var(--pico-primary-background);--pico-tooltip-background-color:var(--pico-contrast-background);--pico-tooltip-color:var(--pico-contrast-inverse);--pico-icon-valid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(42, 123, 111)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-invalid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(149.5, 74, 80)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E")}:host(:not([data-theme])) input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]),:root:not([data-theme]) input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-form-element-focus-color:var(--pico-primary-focus)}:host(:not([data-theme])) details summary[role=button].contrast:not(.outline):after,:root:not([data-theme]) details summary[role=button].contrast:not(.outline):after,:host(:not([data-theme])) [aria-busy=true]:not(input,select,textarea).contrast:is(button,[type=submit],[type=button],[type=reset],[role=button]):not(.outline):before,:root:not([data-theme]) [aria-busy=true]:not(input,select,textarea).contrast:is(button,[type=submit],[type=button],[type=reset],[role=button]):not(.outline):before{filter:brightness(0)}}[data-theme=dark]{color-scheme:dark;--pico-background-color:#13171f;--pico-color:#c2c7d0;--pico-text-selection-color:#01aaff30;--pico-muted-color:#7b8495;--pico-muted-border-color:#202632;--pico-primary:#01aaff;--pico-primary-background:#0172ad;--pico-primary-border:var(--pico-primary-background);--pico-primary-underline:#01aaff80;--pico-primary-hover:#79c0ff;--pico-primary-hover-background:#017fc0;--pico-primary-hover-border:var(--pico-primary-hover-background);--pico-primary-hover-underline:var(--pico-primary-hover);--pico-primary-focus:#01aaff60;--pico-primary-inverse:#fff;--pico-secondary:#969eaf;--pico-secondary-background:#525f7a;--pico-secondary-border:var(--pico-secondary-background);--pico-secondary-underline:#969eaf80;--pico-secondary-hover:#b3b9c5;--pico-secondary-hover-background:#5d6b89;--pico-secondary-hover-border:var(--pico-secondary-hover-background);--pico-secondary-hover-underline:var(--pico-secondary-hover);--pico-secondary-focus:#909ebe40;--pico-secondary-inverse:#fff;--pico-contrast:#dfe3eb;--pico-contrast-background:#eff1f4;--pico-contrast-border:var(--pico-contrast-background);--pico-contrast-underline:#dfe3eb80;--pico-contrast-hover:#fff;--pico-contrast-hover-background:#fff;--pico-contrast-hover-border:var(--pico-contrast-hover-background);--pico-contrast-hover-underline:var(--pico-contrast-hover);--pico-contrast-focus:#cfd5e240;--pico-contrast-inverse:#000;--pico-box-shadow:.0145rem .029rem .174rem #07090c04,.0335rem .067rem .402rem #07090c06,.0625rem .125rem .75rem #07090c08,.1125rem .225rem 1.35rem #07090c09,.2085rem .417rem 2.502rem #07090c0b,.5rem 1rem 6rem #07090c0f,0 0 0 .0625rem #07090c04;--pico-h1-color:#f0f1f3;--pico-h2-color:#e0e3e7;--pico-h3-color:#c2c7d0;--pico-h4-color:#b3b9c5;--pico-h5-color:#a4acba;--pico-h6-color:#8891a4;--pico-mark-background-color:#014063;--pico-mark-color:#fff;--pico-ins-color:#62af9a;--pico-del-color:#ce7e7b;--pico-blockquote-border-color:var(--pico-muted-border-color);--pico-blockquote-footer-color:var(--pico-muted-color);--pico-button-box-shadow:0 0 0 #0000;--pico-button-hover-box-shadow:0 0 0 #0000;--pico-table-border-color:var(--pico-muted-border-color);--pico-table-row-stripped-background-color:#6f78870a;--pico-code-background-color:#1a1f28;--pico-code-color:#8891a4;--pico-code-kbd-background-color:var(--pico-color);--pico-code-kbd-color:var(--pico-background-color);--pico-form-element-background-color:#1c212c;--pico-form-element-selected-background-color:#2a3140;--pico-form-element-border-color:#2a3140;--pico-form-element-color:#e0e3e7;--pico-form-element-placeholder-color:#8891a4;--pico-form-element-active-background-color:#1a1f28;--pico-form-element-active-border-color:var(--pico-primary-border);--pico-form-element-focus-color:var(--pico-primary-border);--pico-form-element-disabled-opacity:.5;--pico-form-element-invalid-border-color:#964a50;--pico-form-element-invalid-active-border-color:#b7403b;--pico-form-element-invalid-focus-color:var(--pico-form-element-invalid-active-border-color);--pico-form-element-valid-border-color:#2a7b6f;--pico-form-element-valid-active-border-color:#16896a;--pico-form-element-valid-focus-color:var(--pico-form-element-valid-active-border-color);--pico-switch-background-color:#333c4e;--pico-switch-checked-background-color:var(--pico-primary-background);--pico-switch-color:#fff;--pico-switch-thumb-box-shadow:0 0 0 #0000;--pico-range-border-color:#202632;--pico-range-active-border-color:#2a3140;--pico-range-thumb-border-color:var(--pico-background-color);--pico-range-thumb-color:var(--pico-secondary-background);--pico-range-thumb-active-color:var(--pico-primary-background);--pico-accordion-border-color:var(--pico-muted-border-color);--pico-accordion-active-summary-color:var(--pico-primary-hover);--pico-accordion-close-summary-color:var(--pico-color);--pico-accordion-open-summary-color:var(--pico-muted-color);--pico-card-background-color:#181c25;--pico-card-border-color:var(--pico-card-background-color);--pico-card-box-shadow:var(--pico-box-shadow);--pico-card-sectioning-background-color:#1a1f28;--pico-dropdown-background-color:#181c25;--pico-dropdown-border-color:#202632;--pico-dropdown-box-shadow:var(--pico-box-shadow);--pico-dropdown-color:var(--pico-color);--pico-dropdown-hover-background-color:#202632;--pico-loading-spinner-opacity:.5;--pico-modal-overlay-background-color:#08090abf;--pico-progress-background-color:#202632;--pico-progress-color:var(--pico-primary-background);--pico-tooltip-background-color:var(--pico-contrast-background);--pico-tooltip-color:var(--pico-contrast-inverse);--pico-icon-valid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(42, 123, 111)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-invalid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(149.5, 74, 80)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E")}[data-theme=dark] input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-form-element-focus-color:var(--pico-primary-focus)}[data-theme=dark] details summary[role=button].contrast:not(.outline):after,[data-theme=dark] [aria-busy=true]:not(input,select,textarea).contrast:is(button,[type=submit],[type=button],[type=reset],[role=button]):not(.outline):before{filter:brightness(0)}[type=checkbox],[type=radio],[type=range],progress{accent-color:var(--pico-primary)}*,:after,:before{box-sizing:border-box;background-repeat:no-repeat}:after,:before{text-decoration:inherit;vertical-align:inherit}:where(:host),:where(:root){-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--pico-background-color);color:var(--pico-color);font-weight:var(--pico-font-weight);font-size:var(--pico-font-size);line-height:var(--pico-line-height);font-family:var(--pico-font-family);text-underline-offset:var(--pico-text-underline-offset);text-rendering:optimizelegibility;overflow-wrap:break-word;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{width:100%;margin:0}main{display:block}body>footer,body>header,body>main{padding-block:var(--pico-block-spacing-vertical)}section{margin-bottom:var(--pico-block-spacing-vertical)}.container,.container-fluid{width:100%;padding-right:var(--pico-spacing);padding-left:var(--pico-spacing);margin-left:auto;margin-right:auto}@media (width>=576px){.container{max-width:510px;padding-left:0;padding-right:0}}@media (width>=768px){.container{max-width:700px}}@media (width>=1024px){.container{max-width:950px}}@media (width>=1280px){.container{max-width:1200px}}@media (width>=1536px){.container{max-width:1450px}}.grid{grid-column-gap:var(--pico-grid-column-gap);grid-row-gap:var(--pico-grid-row-gap);grid-template-columns:1fr;display:grid}@media (width>=768px){.grid{grid-template-columns:repeat(auto-fit,minmax(0%,1fr))}}.grid>*{min-width:0}.overflow-auto{overflow:auto}b,strong{font-weight:bolder}sub,sup{vertical-align:baseline;font-size:.75em;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}address,blockquote,dl,ol,p,pre,table,ul{margin-top:0;margin-bottom:var(--pico-typography-spacing-vertical);color:var(--pico-color);font-style:normal;font-weight:var(--pico-font-weight)}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:var(--pico-typography-spacing-vertical);color:var(--pico-color);font-weight:var(--pico-font-weight);font-size:var(--pico-font-size);line-height:var(--pico-line-height);font-family:var(--pico-font-family)}h1{--pico-color:var(--pico-h1-color)}h2{--pico-color:var(--pico-h2-color)}h3{--pico-color:var(--pico-h3-color)}h4{--pico-color:var(--pico-h4-color)}h5{--pico-color:var(--pico-h5-color)}h6{--pico-color:var(--pico-h6-color)}:where(article,address,blockquote,dl,figure,form,ol,p,pre,table,ul)~:is(h1,h2,h3,h4,h5,h6){margin-top:var(--pico-typography-spacing-top)}p,hgroup{margin-bottom:var(--pico-typography-spacing-vertical)}hgroup>*{margin-top:0;margin-bottom:0}hgroup>:not(:first-child):last-child{--pico-color:var(--pico-muted-color);--pico-font-weight:unset;font-size:1rem}:where(ol,ul) li{margin-bottom:calc(var(--pico-typography-spacing-vertical) * .25)}:where(dl,ol,ul) :where(dl,ol,ul){margin:0;margin-top:calc(var(--pico-typography-spacing-vertical) * .25)}ul li{list-style:square}mark{background-color:var(--pico-mark-background-color);color:var(--pico-mark-color);vertical-align:baseline;padding:.125rem .25rem}blockquote{margin:var(--pico-typography-spacing-vertical) 0;padding:var(--pico-spacing);border-right:none;border-left:.25rem solid var(--pico-blockquote-border-color);border-inline-start:.25rem solid var(--pico-blockquote-border-color);border-inline-end:none;display:block}blockquote footer{margin-top:calc(var(--pico-typography-spacing-vertical) * .5);color:var(--pico-blockquote-footer-color)}abbr[title]{cursor:help;border-bottom:1px dotted;text-decoration:none}ins{color:var(--pico-ins-color);text-decoration:none}del{color:var(--pico-del-color)}::-moz-selection{background-color:var(--pico-text-selection-color)}::selection{background-color:var(--pico-text-selection-color)}:where(a:not([role=button])),[role=link]{--pico-color:var(--pico-primary);--pico-background-color:transparent;--pico-underline:var(--pico-primary-underline);background-color:var(--pico-background-color);color:var(--pico-color);-webkit-text-decoration:var(--pico-text-decoration);text-decoration:var(--pico-text-decoration);text-decoration-color:var(--pico-underline);text-underline-offset:.125em;transition:background-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition),-webkit-text-decoration var(--pico-transition);transition:background-color var(--pico-transition),color var(--pico-transition),text-decoration var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),color var(--pico-transition),text-decoration var(--pico-transition),box-shadow var(--pico-transition),-webkit-text-decoration var(--pico-transition);outline:0}:where(a:not([role=button])):is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[role=link]:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-primary-hover);--pico-underline:var(--pico-primary-hover-underline);--pico-text-decoration:underline}:where(a:not([role=button])):focus-visible,[role=link]:focus-visible{box-shadow:0 0 0 var(--pico-outline-width) var(--pico-primary-focus)}:where(a:not([role=button])).secondary,[role=link].secondary{--pico-color:var(--pico-secondary);--pico-underline:var(--pico-secondary-underline)}:where(a:not([role=button])).secondary:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[role=link].secondary:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-secondary-hover);--pico-underline:var(--pico-secondary-hover-underline)}:where(a:not([role=button])).contrast,[role=link].contrast{--pico-color:var(--pico-contrast);--pico-underline:var(--pico-contrast-underline)}:where(a:not([role=button])).contrast:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[role=link].contrast:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-contrast-hover);--pico-underline:var(--pico-contrast-hover-underline)}a[role=button]{display:inline-block}button{text-transform:none;margin:0;font-family:inherit;overflow:visible}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[role=button],[type=button],[type=file]::file-selector-button,[type=reset],[type=submit],button{--pico-background-color:var(--pico-primary-background);--pico-border-color:var(--pico-primary-border);--pico-color:var(--pico-primary-inverse);--pico-box-shadow:var(--pico-button-box-shadow,0 0 0 #0000);padding:var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);border:var(--pico-border-width) solid var(--pico-border-color);border-radius:var(--pico-border-radius);background-color:var(--pico-background-color);box-shadow:var(--pico-box-shadow);color:var(--pico-color);font-weight:var(--pico-font-weight);font-size:1rem;line-height:var(--pico-line-height);text-align:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color var(--pico-transition),border-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition);outline:0;text-decoration:none}[role=button]:is(:hover,:active,:focus),[role=button][aria-current]:not([aria-current=false]),[type=button]:is(:hover,:active,:focus),[type=button][aria-current]:not([aria-current=false]),[type=file]::file-selector-button:is(:hover,:active,:focus),[type=file]::file-selector-button:is(),[type=reset]:is(:hover,:active,:focus),[type=reset][aria-current]:not([aria-current=false]),[type=submit]:is(:hover,:active,:focus),[type=submit][aria-current]:not([aria-current=false]),button:is(:hover,:active,:focus),button[aria-current]:not([aria-current=false]){--pico-background-color:var(--pico-primary-hover-background);--pico-border-color:var(--pico-primary-hover-border);--pico-box-shadow:var(--pico-button-hover-box-shadow,0 0 0 #0000);--pico-color:var(--pico-primary-inverse)}[role=button]:focus,[role=button][aria-current]:not([aria-current=false]):focus,[type=button]:focus,[type=button][aria-current]:not([aria-current=false]):focus,[type=file]::file-selector-button:focus,[type=file]::file-selector-button:is():focus,[type=reset]:focus,[type=reset][aria-current]:not([aria-current=false]):focus,[type=submit]:focus,[type=submit][aria-current]:not([aria-current=false]):focus,button:focus,button[aria-current]:not([aria-current=false]):focus{--pico-box-shadow:var(--pico-button-hover-box-shadow,0 0 0 #0000),0 0 0 var(--pico-outline-width) var(--pico-primary-focus)}[type=button],[type=reset],[type=submit]{margin-bottom:var(--pico-spacing)}:is(button,[type=submit],[type=button],[role=button]).secondary,[type=file]::file-selector-button,[type=reset]{--pico-background-color:var(--pico-secondary-background);--pico-border-color:var(--pico-secondary-border);--pico-color:var(--pico-secondary-inverse);cursor:pointer}:is(button,[type=submit],[type=button],[role=button]).secondary:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[type=file]::file-selector-button:is(:hover,:active,:focus),[type=reset]:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-background-color:var(--pico-secondary-hover-background);--pico-border-color:var(--pico-secondary-hover-border);--pico-color:var(--pico-secondary-inverse)}:is(button,[type=submit],[type=button],[role=button]).secondary:focus,:is(button,[type=submit],[type=button],[role=button]).secondary[aria-current]:not([aria-current=false]):focus,[type=file]::file-selector-button:focus,[type=file]::file-selector-button:is():focus,[type=reset]:focus,[type=reset][aria-current]:not([aria-current=false]):focus{--pico-box-shadow:var(--pico-button-hover-box-shadow,0 0 0 #0000),0 0 0 var(--pico-outline-width) var(--pico-secondary-focus)}:is(button,[type=submit],[type=button],[role=button]).contrast{--pico-background-color:var(--pico-contrast-background);--pico-border-color:var(--pico-contrast-border);--pico-color:var(--pico-contrast-inverse)}:is(button,[type=submit],[type=button],[role=button]).contrast:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-background-color:var(--pico-contrast-hover-background);--pico-border-color:var(--pico-contrast-hover-border);--pico-color:var(--pico-contrast-inverse)}:is(button,[type=submit],[type=button],[role=button]).contrast:focus,:is(button,[type=submit],[type=button],[role=button]).contrast[aria-current]:not([aria-current=false]):focus{--pico-box-shadow:var(--pico-button-hover-box-shadow,0 0 0 #0000),0 0 0 var(--pico-outline-width) var(--pico-contrast-focus)}:is(button,[type=submit],[type=button],[role=button]).outline,[type=reset].outline{--pico-background-color:transparent;--pico-color:var(--pico-primary);--pico-border-color:var(--pico-primary)}:is(button,[type=submit],[type=button],[role=button]).outline:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[type=reset].outline:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-background-color:transparent;--pico-color:var(--pico-primary-hover);--pico-border-color:var(--pico-primary-hover)}:is(button,[type=submit],[type=button],[role=button]).outline.secondary,[type=reset].outline{--pico-color:var(--pico-secondary);--pico-border-color:var(--pico-secondary)}:is(button,[type=submit],[type=button],[role=button]).outline.secondary:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[type=reset].outline:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-secondary-hover);--pico-border-color:var(--pico-secondary-hover)}:is(button,[type=submit],[type=button],[role=button]).outline.contrast{--pico-color:var(--pico-contrast);--pico-border-color:var(--pico-contrast)}:is(button,[type=submit],[type=button],[role=button]).outline.contrast:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-contrast-hover);--pico-border-color:var(--pico-contrast-hover)}:where(button,[type=submit],[type=reset],[type=button],[role=button])[disabled],:where(fieldset[disabled]) :is(button,[type=submit],[type=button],[type=reset],[role=button]){opacity:.5;pointer-events:none}:where(table){border-collapse:collapse;border-spacing:0;text-indent:0;width:100%}td,th{padding:calc(var(--pico-spacing)/ 2) var(--pico-spacing);border-bottom:var(--pico-border-width) solid var(--pico-table-border-color);background-color:var(--pico-background-color);color:var(--pico-color);font-weight:var(--pico-font-weight);text-align:left;text-align:start}tfoot td,tfoot th{border-top:var(--pico-border-width) solid var(--pico-table-border-color);border-bottom:0}table.striped tbody tr:nth-child(odd) td,table.striped tbody tr:nth-child(odd) th{background-color:var(--pico-table-row-stripped-background-color)}:where(audio,canvas,iframe,img,svg,video){vertical-align:middle}audio,video{display:inline-block}audio:not([controls]){height:0;display:none}:where(iframe){border-style:none}img{border-style:none;max-width:100%;height:auto}:where(svg:not([fill])){fill:currentColor}svg:not(:host),svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-size:.875em;font-family:var(--pico-font-family)}pre code,pre samp{font-size:inherit;font-family:inherit}pre{-ms-overflow-style:scrollbar;overflow:auto}code,kbd,pre,samp{border-radius:var(--pico-border-radius);background:var(--pico-code-background-color);color:var(--pico-code-color);font-weight:var(--pico-font-weight);line-height:initial}code,kbd,samp{padding:.375rem;display:inline-block}pre{margin-bottom:var(--pico-spacing);display:block;overflow-x:auto}pre>code,pre>samp{padding:var(--pico-spacing);line-height:var(--pico-line-height);background:0 0;display:block}kbd{background-color:var(--pico-code-kbd-background-color);color:var(--pico-code-kbd-color);vertical-align:baseline}figure{margin:0;padding:0;display:block}figure figcaption{padding:calc(var(--pico-spacing) * .5) 0;color:var(--pico-muted-color)}hr{height:0;margin:var(--pico-typography-spacing-vertical) 0;border:0;border-top:1px solid var(--pico-muted-border-color);color:inherit}[hidden],template{display:none!important}canvas{display:inline-block}input,optgroup,select,textarea{font-size:1rem;line-height:var(--pico-line-height);letter-spacing:inherit;margin:0;font-family:inherit}input{overflow:visible}select{text-transform:none}legend{max-width:100%;color:inherit;white-space:normal;padding:0}textarea{overflow:auto}[type=checkbox],[type=radio]{padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:0}:-moz-ui-invalid{box-shadow:none}::-ms-expand{display:none}[type=file],[type=range]{border-width:0;padding:0}input:not([type=checkbox],[type=radio],[type=range]){height:calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2)}fieldset{width:100%;margin:0;margin-bottom:var(--pico-spacing);border:0;padding:0}fieldset legend,label{margin-bottom:calc(var(--pico-spacing) * .375);color:var(--pico-color);font-weight:var(--pico-form-label-font-weight,var(--pico-font-weight));display:block}fieldset legend{margin-bottom:calc(var(--pico-spacing) * .5)}button[type=submit],input:not([type=checkbox],[type=radio]),select,textarea{width:100%}input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal)}input,select,textarea{--pico-background-color:var(--pico-form-element-background-color);--pico-border-color:var(--pico-form-element-border-color);--pico-color:var(--pico-form-element-color);--pico-box-shadow:none;border:var(--pico-border-width) solid var(--pico-border-color);border-radius:var(--pico-border-radius);background-color:var(--pico-background-color);box-shadow:var(--pico-box-shadow);color:var(--pico-color);font-weight:var(--pico-font-weight);transition:background-color var(--pico-transition),border-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition);outline:0}:where(select,textarea):not([readonly]):is(:active,:focus),input:not([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[readonly]):is(:active,:focus){--pico-background-color:var(--pico-form-element-active-background-color)}:where(select,textarea):not([readonly]):is(:active,:focus),input:not([type=submit],[type=button],[type=reset],[role=switch],[readonly]):is(:active,:focus){--pico-border-color:var(--pico-form-element-active-border-color)}:where(select,textarea):not([readonly]):focus,input:not([type=submit],[type=button],[type=reset],[type=range],[type=file],[readonly]):focus{--pico-box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color)}:where(fieldset[disabled]) :is(input:not([type=submit],[type=button],[type=reset]),select,textarea),input:not([type=submit],[type=button],[type=reset])[disabled],label[aria-disabled=true],select[disabled],textarea[disabled]{opacity:var(--pico-form-element-disabled-opacity);pointer-events:none}label[aria-disabled=true] input[disabled]{opacity:1}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week],[type=range])[aria-invalid]{padding-left:var(--pico-form-element-spacing-horizontal);background-position:right .75rem center;background-repeat:no-repeat;background-size:1rem;padding-right:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem)!important;padding-inline-start:var(--pico-form-element-spacing-horizontal)!important;padding-inline-end:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem)!important}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week],[type=range])[aria-invalid=false]:not(select){background-image:var(--pico-icon-valid)}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week],[type=range])[aria-invalid=true]:not(select){background-image:var(--pico-icon-invalid)}:where(input,select,textarea)[aria-invalid=false]{--pico-border-color:var(--pico-form-element-valid-border-color)}:where(input,select,textarea)[aria-invalid=false]:is(:active,:focus){--pico-border-color:var(--pico-form-element-valid-active-border-color)!important}:where(input,select,textarea)[aria-invalid=false]:is(:active,:focus):not([type=checkbox],[type=radio]){--pico-box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-valid-focus-color)!important}:where(input,select,textarea)[aria-invalid=true]{--pico-border-color:var(--pico-form-element-invalid-border-color)}:where(input,select,textarea)[aria-invalid=true]:is(:active,:focus){--pico-border-color:var(--pico-form-element-invalid-active-border-color)!important}:where(input,select,textarea)[aria-invalid=true]:is(:active,:focus):not([type=checkbox],[type=radio]){--pico-box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-invalid-focus-color)!important}[dir=rtl] :where(input,select,textarea):not([type=checkbox],[type=radio]):is([aria-invalid],[aria-invalid=true],[aria-invalid=false]){background-position:.75rem}input::-webkit-input-placeholder,input::placeholder,select:invalid,textarea::-webkit-input-placeholder,textarea::placeholder{color:var(--pico-form-element-placeholder-color);opacity:1}input:not([type=checkbox],[type=radio]),select,textarea{margin-bottom:var(--pico-spacing)}select::-ms-expand{background-color:#0000;border:0}select:not([multiple],[size]){padding-right:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem);padding-left:var(--pico-form-element-spacing-horizontal);background-image:var(--pico-icon-chevron);background-position:right .75rem center;background-repeat:no-repeat;background-size:1rem;padding-inline-start:var(--pico-form-element-spacing-horizontal);padding-inline-end:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem)}select[multiple] option:checked{background:var(--pico-form-element-selected-background-color);color:var(--pico-form-element-color)}[dir=rtl] select:not([multiple],[size]){background-position:.75rem}textarea{resize:vertical;display:block}textarea[aria-invalid]{--pico-icon-height:calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2);background-position:right .75rem top!important;background-size:1rem var(--pico-icon-height)!important}:where(input,select,textarea,fieldset,.grid)+small{width:100%;margin-top:calc(var(--pico-spacing) * -.75);margin-bottom:var(--pico-spacing);color:var(--pico-muted-color);display:block}:where(input,select,textarea,fieldset,.grid)[aria-invalid=false]+small{color:var(--pico-ins-color)}:where(input,select,textarea,fieldset,.grid)[aria-invalid=true]+small{color:var(--pico-del-color)}label>:where(input,select,textarea){margin-top:calc(var(--pico-spacing) * .25)}label:has([type=checkbox],[type=radio]){cursor:pointer;width:fit-content}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin-top:-.125em;border-width:var(--pico-border-width);vertical-align:middle;cursor:pointer;width:1.25em;height:1.25em;margin-inline-end:.5em}[type=checkbox]::-ms-check,[type=radio]::-ms-check{display:none}[type=checkbox]:checked,[type=checkbox]:checked:active,[type=checkbox]:checked:focus,[type=radio]:checked,[type=radio]:checked:active,[type=radio]:checked:focus{--pico-background-color:var(--pico-primary-background);--pico-border-color:var(--pico-primary-border);background-image:var(--pico-icon-checkbox);background-position:50%;background-repeat:no-repeat;background-size:.75em}[type=checkbox]~label,[type=radio]~label{cursor:pointer;margin-bottom:0;display:inline-block}[type=checkbox]~label:not(:last-of-type),[type=radio]~label:not(:last-of-type){margin-inline-end:1em}[type=checkbox]:indeterminate{--pico-background-color:var(--pico-primary-background);--pico-border-color:var(--pico-primary-border);background-image:var(--pico-icon-minus);background-position:50%;background-repeat:no-repeat;background-size:.75em}[type=radio]{border-radius:50%}[type=radio]:checked,[type=radio]:checked:active,[type=radio]:checked:focus{--pico-background-color:var(--pico-primary-inverse);background-image:none;border-width:.35em}[type=checkbox][role=switch]{--pico-background-color:var(--pico-switch-background-color);--pico-color:var(--pico-switch-color);border:var(--pico-border-width) solid var(--pico-border-color);background-color:var(--pico-background-color);border-radius:1.25em;width:2.25em;height:1.25em;line-height:1.25em}[type=checkbox][role=switch]:not([aria-invalid]){--pico-border-color:var(--pico-switch-background-color)}[type=checkbox][role=switch]:before{aspect-ratio:1;background-color:var(--pico-color);height:100%;box-shadow:var(--pico-switch-thumb-box-shadow);content:"";border-radius:50%;transition:margin .1s ease-in-out;display:block}[type=checkbox][role=switch]:focus{--pico-background-color:var(--pico-switch-background-color);--pico-border-color:var(--pico-switch-background-color)}[type=checkbox][role=switch]:checked{--pico-background-color:var(--pico-switch-checked-background-color);--pico-border-color:var(--pico-switch-checked-background-color);background-image:none}[type=checkbox][role=switch]:checked:before{margin-inline-start:1em}[type=checkbox][role=switch][disabled]{--pico-background-color:var(--pico-border-color)}[type=checkbox][aria-invalid=false]:checked,[type=checkbox][aria-invalid=false]:checked:active,[type=checkbox][aria-invalid=false]:checked:focus,[type=checkbox][role=switch][aria-invalid=false]:checked,[type=checkbox][role=switch][aria-invalid=false]:checked:active,[type=checkbox][role=switch][aria-invalid=false]:checked:focus{--pico-background-color:var(--pico-form-element-valid-border-color)}[type=checkbox]:checked:active[aria-invalid=true],[type=checkbox]:checked:focus[aria-invalid=true],[type=checkbox]:checked[aria-invalid=true],[type=checkbox][role=switch]:checked:active[aria-invalid=true],[type=checkbox][role=switch]:checked:focus[aria-invalid=true],[type=checkbox][role=switch]:checked[aria-invalid=true]{--pico-background-color:var(--pico-form-element-invalid-border-color)}[type=checkbox][aria-invalid=false]:checked,[type=checkbox][aria-invalid=false]:checked:active,[type=checkbox][aria-invalid=false]:checked:focus,[type=checkbox][role=switch][aria-invalid=false]:checked,[type=checkbox][role=switch][aria-invalid=false]:checked:active,[type=checkbox][role=switch][aria-invalid=false]:checked:focus,[type=radio][aria-invalid=false]:checked,[type=radio][aria-invalid=false]:checked:active,[type=radio][aria-invalid=false]:checked:focus{--pico-border-color:var(--pico-form-element-valid-border-color)}[type=checkbox]:checked:active[aria-invalid=true],[type=checkbox]:checked:focus[aria-invalid=true],[type=checkbox]:checked[aria-invalid=true],[type=checkbox][role=switch]:checked:active[aria-invalid=true],[type=checkbox][role=switch]:checked:focus[aria-invalid=true],[type=checkbox][role=switch]:checked[aria-invalid=true],[type=radio]:checked:active[aria-invalid=true],[type=radio]:checked:focus[aria-invalid=true],[type=radio]:checked[aria-invalid=true]{--pico-border-color:var(--pico-form-element-invalid-border-color)}[type=color]::-webkit-color-swatch-wrapper{padding:0}[type=color]::-moz-focus-inner{padding:0}[type=color]::-webkit-color-swatch{border-radius:calc(var(--pico-border-radius) * .5);border:0}[type=color]::-moz-color-swatch{border-radius:calc(var(--pico-border-radius) * .5);border:0}input:not([type=checkbox],[type=radio],[type=range],[type=file]):is([type=date],[type=datetime-local],[type=month],[type=time],[type=week]){--pico-icon-position:.75rem;--pico-icon-width:1rem;padding-right:calc(var(--pico-icon-width) + var(--pico-icon-position));background-image:var(--pico-icon-date);background-position:center right var(--pico-icon-position);background-size:var(--pico-icon-width) auto;background-repeat:no-repeat}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=time]{background-image:var(--pico-icon-time)}[type=date]::-webkit-calendar-picker-indicator,[type=datetime-local]::-webkit-calendar-picker-indicator,[type=month]::-webkit-calendar-picker-indicator,[type=time]::-webkit-calendar-picker-indicator,[type=week]::-webkit-calendar-picker-indicator{width:var(--pico-icon-width);margin-right:calc(var(--pico-icon-width) * -1);margin-left:var(--pico-icon-position);opacity:0}@-moz-document url-prefix(){[type=date],[type=datetime-local],[type=month],[type=time],[type=week]{padding-right:var(--pico-form-element-spacing-horizontal)!important;background-image:none!important}}[dir=rtl] :is([type=date],[type=datetime-local],[type=month],[type=time],[type=week]){text-align:right}[type=file]{--pico-color:var(--pico-muted-color);margin-left:calc(var(--pico-outline-width) * -1);padding:calc(var(--pico-form-element-spacing-vertical) * .5) 0;padding-left:var(--pico-outline-width);background:0 0;border:0;border-radius:0}[type=file]::file-selector-button{margin-right:calc(var(--pico-spacing)/ 2);padding:calc(var(--pico-form-element-spacing-vertical) * .5) var(--pico-form-element-spacing-horizontal)}[type=file]:is(:hover,:active,:focus)::file-selector-button{--pico-background-color:var(--pico-secondary-hover-background);--pico-border-color:var(--pico-secondary-hover-border)}[type=file]:focus::file-selector-button{--pico-box-shadow:var(--pico-button-hover-box-shadow,0 0 0 #0000),0 0 0 var(--pico-outline-width) var(--pico-secondary-focus)}[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;width:100%;height:1.25rem}[type=range]::-webkit-slider-runnable-track{border-radius:var(--pico-border-radius);background-color:var(--pico-range-border-color);width:100%;height:.375rem;-webkit-transition:background-color var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),box-shadow var(--pico-transition)}[type=range]::-moz-range-track{border-radius:var(--pico-border-radius);background-color:var(--pico-range-border-color);width:100%;height:.375rem;-moz-transition:background-color var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),box-shadow var(--pico-transition)}[type=range]::-ms-track{border-radius:var(--pico-border-radius);background-color:var(--pico-range-border-color);width:100%;height:.375rem;-ms-transition:background-color var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),box-shadow var(--pico-transition)}[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--pico-range-thumb-border-color);background-color:var(--pico-range-thumb-color);cursor:pointer;width:1.25rem;height:1.25rem;-webkit-transition:background-color var(--pico-transition),transform var(--pico-transition);transition:background-color var(--pico-transition),transform var(--pico-transition);border-radius:50%;margin-top:-.4375rem}[type=range]::-moz-range-thumb{-webkit-appearance:none;border:2px solid var(--pico-range-thumb-border-color);background-color:var(--pico-range-thumb-color);cursor:pointer;width:1.25rem;height:1.25rem;-moz-transition:background-color var(--pico-transition),transform var(--pico-transition);transition:background-color var(--pico-transition),transform var(--pico-transition);border-radius:50%;margin-top:-.4375rem}[type=range]::-ms-thumb{-webkit-appearance:none;border:2px solid var(--pico-range-thumb-border-color);background-color:var(--pico-range-thumb-color);cursor:pointer;width:1.25rem;height:1.25rem;-ms-transition:background-color var(--pico-transition),transform var(--pico-transition);transition:background-color var(--pico-transition),transform var(--pico-transition);border-radius:50%;margin-top:-.4375rem}[type=range]:active,[type=range]:focus-within{--pico-range-border-color:var(--pico-range-active-border-color);--pico-range-thumb-color:var(--pico-range-thumb-active-color)}[type=range]:active::-webkit-slider-thumb{transform:scale(1.25)}[type=range]:active::-moz-range-thumb{transform:scale(1.25)}[type=range]:active::-ms-thumb{transform:scale(1.25)}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search]{background-image:var(--pico-icon-search);background-position:center left calc(var(--pico-form-element-spacing-horizontal) + .125rem);background-repeat:no-repeat;background-size:1rem;padding-inline-start:calc(var(--pico-form-element-spacing-horizontal) + 1.75rem)}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid]{background-position:1.125rem,right .75rem center;padding-inline-start:calc(var(--pico-form-element-spacing-horizontal) + 1.75rem)!important}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid=false]{background-image:var(--pico-icon-search),var(--pico-icon-valid)}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid=true]{background-image:var(--pico-icon-search),var(--pico-icon-invalid)}[dir=rtl] :where(input):not([type=checkbox],[type=radio],[type=range],[type=file])[type=search]{background-position:right 1.125rem center}[dir=rtl] :where(input):not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid]{background-position:right 1.125rem center,.75rem}details{margin-bottom:var(--pico-spacing);display:block}details summary{cursor:pointer;transition:color var(--pico-transition);line-height:1rem;list-style-type:none}details summary:not([role]){color:var(--pico-accordion-close-summary-color)}details summary::-webkit-details-marker{display:none}details summary::marker{display:none}details summary::-moz-list-bullet{list-style-type:none}details summary:after{width:1rem;height:1rem;float:right;background-image:var(--pico-icon-chevron);content:"";transition:transform var(--pico-transition);background-position:100%;background-repeat:no-repeat;background-size:1rem;margin-inline-start:calc(var(--pico-spacing,1rem) * .5);display:block;transform:rotate(-90deg)}details summary:focus{outline:0}details summary:focus:not([role]){color:var(--pico-accordion-active-summary-color)}details summary:focus-visible:not([role]){outline:var(--pico-outline-width) solid var(--pico-primary-focus);outline-offset:calc(var(--pico-spacing,1rem) * .5);color:var(--pico-primary)}details summary[role=button]{text-align:left;width:100%}details summary[role=button]:after{height:calc(1rem * var(--pico-line-height,1.5))}details[open]>summary{margin-bottom:var(--pico-spacing)}details[open]>summary:not([role]):not(:focus){color:var(--pico-accordion-open-summary-color)}details[open]>summary:after{transform:rotate(0)}[dir=rtl] details summary{text-align:right}[dir=rtl] details summary:after{float:left;background-position:0}article{margin-bottom:var(--pico-block-spacing-vertical);padding:var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal);border-radius:var(--pico-border-radius);background:var(--pico-card-background-color);box-shadow:var(--pico-card-box-shadow)}article>footer,article>header{margin-right:calc(var(--pico-block-spacing-horizontal) * -1);margin-left:calc(var(--pico-block-spacing-horizontal) * -1);padding:calc(var(--pico-block-spacing-vertical) * .66) var(--pico-block-spacing-horizontal);background-color:var(--pico-card-sectioning-background-color)}article>header{margin-top:calc(var(--pico-block-spacing-vertical) * -1);margin-bottom:var(--pico-block-spacing-vertical);border-bottom:var(--pico-border-width) solid var(--pico-card-border-color);border-top-right-radius:var(--pico-border-radius);border-top-left-radius:var(--pico-border-radius)}article>footer{margin-top:var(--pico-block-spacing-vertical);margin-bottom:calc(var(--pico-block-spacing-vertical) * -1);border-top:var(--pico-border-width) solid var(--pico-card-border-color);border-bottom-right-radius:var(--pico-border-radius);border-bottom-left-radius:var(--pico-border-radius)}details.dropdown{border-bottom:none;position:relative}details.dropdown>a:after,details.dropdown>button:after,details.dropdown>summary:after{width:1rem;height:calc(1rem * var(--pico-line-height,1.5));float:right;background-image:var(--pico-icon-chevron);content:"";background-position:100%;background-repeat:no-repeat;background-size:1rem;margin-inline-start:.25rem;display:block;transform:rotate(0)translate(.2rem)}nav details.dropdown{margin-bottom:0}details.dropdown>summary:not([role]){height:calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2);padding:var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);border:var(--pico-border-width) solid var(--pico-form-element-border-color);border-radius:var(--pico-border-radius);background-color:var(--pico-form-element-background-color);color:var(--pico-form-element-placeholder-color);line-height:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color var(--pico-transition),border-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition)}details.dropdown>summary:not([role]):active,details.dropdown>summary:not([role]):focus{border-color:var(--pico-form-element-active-border-color);background-color:var(--pico-form-element-active-background-color)}details.dropdown>summary:not([role]):focus{box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color)}details.dropdown>summary:not([role]):focus-visible{outline:0}details.dropdown>summary:not([role])[aria-invalid=false]{--pico-form-element-border-color:var(--pico-form-element-valid-border-color);--pico-form-element-active-border-color:var(--pico-form-element-valid-focus-color);--pico-form-element-focus-color:var(--pico-form-element-valid-focus-color)}details.dropdown>summary:not([role])[aria-invalid=true]{--pico-form-element-border-color:var(--pico-form-element-invalid-border-color);--pico-form-element-active-border-color:var(--pico-form-element-invalid-focus-color);--pico-form-element-focus-color:var(--pico-form-element-invalid-focus-color)}nav details.dropdown{margin:calc(var(--pico-nav-element-spacing-vertical) * -1) 0;display:inline}nav details.dropdown>summary:after{transform:rotate(0)translate(0)}nav details.dropdown>summary:not([role]){height:calc(1rem * var(--pico-line-height) + var(--pico-nav-link-spacing-vertical) * 2);padding:calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2) var(--pico-nav-link-spacing-horizontal)}nav details.dropdown>summary:not([role]):focus-visible{box-shadow:0 0 0 var(--pico-outline-width) var(--pico-primary-focus)}details.dropdown>summary+ul{z-index:99;width:100%;min-width:fit-content;margin:0;margin-top:var(--pico-outline-width);border:var(--pico-border-width) solid var(--pico-dropdown-border-color);border-radius:var(--pico-border-radius);background-color:var(--pico-dropdown-background-color);box-shadow:var(--pico-dropdown-box-shadow);color:var(--pico-dropdown-color);white-space:nowrap;opacity:0;transition:opacity var(--pico-transition),transform 0s ease-in-out 1s;flex-direction:column;padding:0;display:flex;position:absolute;left:0}details.dropdown>summary+ul[dir=rtl]{left:auto;right:0}details.dropdown>summary+ul li{width:100%;padding:calc(var(--pico-form-element-spacing-vertical) * .5) var(--pico-form-element-spacing-horizontal);margin-bottom:0;list-style:none}details.dropdown>summary+ul li:first-of-type{margin-top:calc(var(--pico-form-element-spacing-vertical) * .5)}details.dropdown>summary+ul li:last-of-type{margin-bottom:calc(var(--pico-form-element-spacing-vertical) * .5)}details.dropdown>summary+ul li a{margin:calc(var(--pico-form-element-spacing-vertical) * -.5) calc(var(--pico-form-element-spacing-horizontal) * -1);padding:calc(var(--pico-form-element-spacing-vertical) * .5) var(--pico-form-element-spacing-horizontal);color:var(--pico-dropdown-color);text-overflow:ellipsis;border-radius:0;text-decoration:none;display:block;overflow:hidden}details.dropdown>summary+ul li a:active,details.dropdown>summary+ul li a:focus,details.dropdown>summary+ul li a:focus-visible,details.dropdown>summary+ul li a:hover,details.dropdown>summary+ul li a[aria-current]:not([aria-current=false]){background-color:var(--pico-dropdown-hover-background-color)}details.dropdown>summary+ul li label{width:100%}details.dropdown>summary+ul li:has(label):hover{background-color:var(--pico-dropdown-hover-background-color)}details.dropdown[open]>summary{margin-bottom:0}details.dropdown[open]>summary+ul{opacity:1;transition:opacity var(--pico-transition),transform 0s ease-in-out 0s;transform:scaleY(1)}details.dropdown[open]>summary:before{z-index:1;content:"";cursor:default;background:0 0;width:100vw;height:100vh;display:block;position:fixed;inset:0}label>details.dropdown{margin-top:calc(var(--pico-spacing) * .25)}[role=group],[role=search]{width:100%;margin-bottom:var(--pico-spacing);border-radius:var(--pico-border-radius);box-shadow:var(--pico-group-box-shadow,0 0 0 transparent);vertical-align:middle;transition:box-shadow var(--pico-transition);display:inline-flex;position:relative}[role=group] input:not([type=checkbox],[type=radio]),[role=group] select,[role=group]>*,[role=search] input:not([type=checkbox],[type=radio]),[role=search] select,[role=search]>*{flex:auto;margin-bottom:0;position:relative}[role=group] input:not([type=checkbox],[type=radio]):not(:first-child),[role=group] select:not(:first-child),[role=group]>:not(:first-child),[role=search] input:not([type=checkbox],[type=radio]):not(:first-child),[role=search] select:not(:first-child),[role=search]>:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}[role=group] input:not([type=checkbox],[type=radio]):not(:last-child),[role=group] select:not(:last-child),[role=group]>:not(:last-child),[role=search] input:not([type=checkbox],[type=radio]):not(:last-child),[role=search] select:not(:last-child),[role=search]>:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}[role=group] input:not([type=checkbox],[type=radio]):focus,[role=group] select:focus,[role=group]>:focus,[role=search] input:not([type=checkbox],[type=radio]):focus,[role=search] select:focus,[role=search]>:focus{z-index:2}[role=group] [role=button]:not(:first-child),[role=group] [type=button]:not(:first-child),[role=group] [type=reset]:not(:first-child),[role=group] [type=submit]:not(:first-child),[role=group] button:not(:first-child),[role=group] input:not([type=checkbox],[type=radio]):not(:first-child),[role=group] select:not(:first-child),[role=search] [role=button]:not(:first-child),[role=search] [type=button]:not(:first-child),[role=search] [type=reset]:not(:first-child),[role=search] [type=submit]:not(:first-child),[role=search] button:not(:first-child),[role=search] input:not([type=checkbox],[type=radio]):not(:first-child),[role=search] select:not(:first-child){margin-left:calc(var(--pico-border-width) * -1)}[role=group] [role=button],[role=group] [type=button],[role=group] [type=reset],[role=group] [type=submit],[role=group] button,[role=search] [role=button],[role=search] [type=button],[role=search] [type=reset],[role=search] [type=submit],[role=search] button{width:auto}@supports selector(:has(*)){[role=group]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus),[role=search]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus){--pico-group-box-shadow:var(--pico-group-box-shadow-focus-with-button)}[role=group]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) input:not([type=checkbox],[type=radio]),[role=group]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) select,[role=search]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) input:not([type=checkbox],[type=radio]),[role=search]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) select{border-color:#0000}[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus),[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus){--pico-group-box-shadow:var(--pico-group-box-shadow-focus-with-input)}[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [role=button],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=button],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=submit],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) button,[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [role=button],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=button],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=submit],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) button{--pico-button-box-shadow:0 0 0 var(--pico-border-width) var(--pico-primary-border);--pico-button-hover-box-shadow:0 0 0 var(--pico-border-width) var(--pico-primary-hover-border)}[role=group] [role=button]:focus,[role=group] [type=button]:focus,[role=group] [type=reset]:focus,[role=group] [type=submit]:focus,[role=group] button:focus,[role=search] [role=button]:focus,[role=search] [type=button]:focus,[role=search] [type=reset]:focus,[role=search] [type=submit]:focus,[role=search] button:focus{box-shadow:none}}[role=search]>:first-child{border-top-left-radius:5rem;border-bottom-left-radius:5rem}[role=search]>:last-child{border-top-right-radius:5rem;border-bottom-right-radius:5rem}[aria-busy=true]:not(input,select,textarea,html,form){white-space:nowrap}[aria-busy=true]:not(input,select,textarea,html,form):before{background-image:var(--pico-icon-loading);content:"";vertical-align:-.125em;background-repeat:no-repeat;background-size:1em;width:1em;height:1em;display:inline-block}[aria-busy=true]:not(input,select,textarea,html,form):not(:empty):before{margin-inline-end:calc(var(--pico-spacing) * .5)}[aria-busy=true]:not(input,select,textarea,html,form):empty{text-align:center}[role=button][aria-busy=true],[type=button][aria-busy=true],[type=reset][aria-busy=true],[type=submit][aria-busy=true],a[aria-busy=true],button[aria-busy=true]{pointer-events:none}:host,:root{--pico-scrollbar-width:0px}dialog{z-index:999;width:inherit;min-width:100%;height:inherit;min-height:100%;backdrop-filter:var(--pico-modal-overlay-backdrop-filter);background-color:var(--pico-modal-overlay-background-color);color:var(--pico-color);border:0;justify-content:center;align-items:center;padding:0;display:flex;position:fixed;inset:0}dialog>article{width:100%;max-height:calc(100vh - var(--pico-spacing) * 2);margin:var(--pico-spacing);overflow:auto}@media (width>=576px){dialog>article{max-width:510px}}@media (width>=768px){dialog>article{max-width:700px}}dialog>article>header>*{margin-bottom:0}dialog>article>header .close,dialog>article>header :is(a,button)[rel=prev]{margin:0;margin-left:var(--pico-spacing);float:right;padding:0}dialog>article>footer{text-align:right}dialog>article>footer [role=button],dialog>article>footer button{margin-bottom:0}dialog>article>footer [role=button]:not(:first-of-type),dialog>article>footer button:not(:first-of-type){margin-left:calc(var(--pico-spacing) * .5)}dialog>article .close,dialog>article :is(a,button)[rel=prev]{width:1rem;height:1rem;margin-top:calc(var(--pico-spacing) * -1);margin-bottom:var(--pico-spacing);background-image:var(--pico-icon-close);opacity:.5;transition:opacity var(--pico-transition);background-color:#0000;background-position:50%;background-repeat:no-repeat;background-size:auto 1rem;border:none;margin-left:auto;display:block}dialog>article .close:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),dialog>article :is(a,button)[rel=prev]:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){opacity:1}dialog:not([open]),dialog[open=false]{display:none}.modal-is-open{padding-right:var(--pico-scrollbar-width,0);pointer-events:none;touch-action:none;overflow:hidden}.modal-is-open dialog{pointer-events:auto;touch-action:auto}:where(.modal-is-opening,.modal-is-closing) dialog,:where(.modal-is-opening,.modal-is-closing) dialog>article{animation-duration:.2s;animation-timing-function:ease-in-out;animation-fill-mode:both}:where(.modal-is-opening,.modal-is-closing) dialog{animation-name:modal-overlay;animation-duration:.8s}:where(.modal-is-opening,.modal-is-closing) dialog>article{animation-name:modal;animation-delay:.2s}.modal-is-closing dialog,.modal-is-closing dialog>article{animation-direction:reverse;animation-delay:0s}@keyframes modal-overlay{0%{backdrop-filter:none;background-color:#0000}}@keyframes modal{0%{opacity:0;transform:translateY(-100%)}}:where(nav li):before{float:left;content:""}nav,nav ul{display:flex}nav{justify-content:space-between;overflow:visible}nav ol,nav ul{align-items:center;margin-bottom:0;padding:0;list-style:none}nav ol:first-of-type,nav ul:first-of-type{margin-left:calc(var(--pico-nav-element-spacing-horizontal) * -1)}nav ol:last-of-type,nav ul:last-of-type{margin-right:calc(var(--pico-nav-element-spacing-horizontal) * -1)}nav li{padding:var(--pico-nav-element-spacing-vertical) var(--pico-nav-element-spacing-horizontal);margin:0;display:inline-block}nav li :where(a,[role=link]){margin:calc(var(--pico-nav-link-spacing-vertical) * -1) calc(var(--pico-nav-link-spacing-horizontal) * -1);padding:var(--pico-nav-link-spacing-vertical) var(--pico-nav-link-spacing-horizontal);border-radius:var(--pico-border-radius);display:inline-block}nav li :where(a,[role=link]):not(:hover){text-decoration:none}nav li [role=button],nav li [type=button],nav li button,nav li input:not([type=checkbox],[type=radio],[type=range],[type=file]),nav li select{height:auto;margin-right:inherit;margin-bottom:0;margin-left:inherit;padding:calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2) var(--pico-nav-link-spacing-horizontal)}nav[aria-label=breadcrumb]{justify-content:start;align-items:center}nav[aria-label=breadcrumb] ul li:not(:first-child){margin-inline-start:var(--pico-nav-link-spacing-horizontal)}nav[aria-label=breadcrumb] ul li a{margin:calc(var(--pico-nav-link-spacing-vertical) * -1) 0;margin-inline-start:calc(var(--pico-nav-link-spacing-horizontal) * -1)}nav[aria-label=breadcrumb] ul li:not(:last-child):after{width:calc(var(--pico-nav-link-spacing-horizontal) * 4);margin:0 calc(var(--pico-nav-link-spacing-horizontal) * -1);content:var(--pico-nav-breadcrumb-divider);color:var(--pico-muted-color);text-align:center;white-space:nowrap;text-decoration:none;display:inline-block;position:absolute}nav[aria-label=breadcrumb] a[aria-current]:not([aria-current=false]){color:inherit;pointer-events:none;background-color:#0000;text-decoration:none}aside li,aside nav,aside ol,aside ul{display:block}aside li{padding:calc(var(--pico-nav-element-spacing-vertical) * .5) var(--pico-nav-element-spacing-horizontal)}aside li a{display:block}aside li [role=button]{margin:inherit}[dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child) :after{content:"\\"}progress{vertical-align:baseline;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:.5rem;margin-bottom:calc(var(--pico-spacing) * .5);border-radius:var(--pico-border-radius);background-color:var(--pico-progress-background-color);color:var(--pico-progress-color);border:0;display:inline-block;overflow:hidden}progress::-webkit-progress-bar{border-radius:var(--pico-border-radius);background:0 0}progress[value]::-webkit-progress-value{background-color:var(--pico-progress-color);-webkit-transition:inline-size var(--pico-transition);transition:inline-size var(--pico-transition)}progress::-moz-progress-bar{background-color:var(--pico-progress-color)}@media (prefers-reduced-motion:no-preference){progress:indeterminate{background:var(--pico-progress-background-color) linear-gradient(to right,var(--pico-progress-color) 30%,var(--pico-progress-background-color) 30%) top left/150% 150% no-repeat;animation:1s linear infinite progress-indeterminate}progress:indeterminate[value]::-webkit-progress-value{background-color:#0000}progress:indeterminate::-moz-progress-bar{background-color:#0000}[dir=rtl] progress:indeterminate{animation-direction:reverse}}@keyframes progress-indeterminate{0%{background-position:200% 0}to{background-position:-200% 0}}[data-tooltip]{position:relative}[data-tooltip]:not(a,button,input,[role=button]){cursor:help;border-bottom:1px dotted;text-decoration:none}[data-tooltip]:after,[data-tooltip]:before,[data-tooltip][data-placement=top]:after,[data-tooltip][data-placement=top]:before{z-index:99;border-radius:var(--pico-border-radius);background:var(--pico-tooltip-background-color);content:attr(data-tooltip);color:var(--pico-tooltip-color);font-style:normal;font-weight:var(--pico-font-weight);text-overflow:ellipsis;white-space:nowrap;opacity:0;pointer-events:none;padding:.25rem .5rem;font-size:.875rem;text-decoration:none;display:block;position:absolute;bottom:100%;left:50%;overflow:hidden;transform:translate(-50%,-.25rem)}[data-tooltip]:after,[data-tooltip][data-placement=top]:after{content:"";color:var(--pico-tooltip-background-color);background-color:#0000;border-top:.3rem solid;border-left:.3rem solid #0000;border-right:.3rem solid #0000;border-radius:0;padding:0;transform:translate(-50%)}[data-tooltip][data-placement=bottom]:after,[data-tooltip][data-placement=bottom]:before{top:100%;bottom:auto;transform:translate(-50%,.25rem)}[data-tooltip][data-placement=bottom]:after{border:.3rem solid #0000;border-bottom-color:currentColor;transform:translate(-50%,-.3rem)}[data-tooltip][data-placement=left]:after,[data-tooltip][data-placement=left]:before{inset:50% 100% auto auto;transform:translate(-.25rem,-50%)}[data-tooltip][data-placement=left]:after{border:.3rem solid #0000;border-left-color:currentColor;transform:translate(.3rem,-50%)}[data-tooltip][data-placement=right]:after,[data-tooltip][data-placement=right]:before{inset:50% auto auto 100%;transform:translate(.25rem,-50%)}[data-tooltip][data-placement=right]:after{border:.3rem solid #0000;border-right-color:currentColor;transform:translate(-.3rem,-50%)}[data-tooltip]:focus:after,[data-tooltip]:focus:before,[data-tooltip]:hover:after,[data-tooltip]:hover:before{opacity:1}@media (hover:hover) and (pointer:fine){[data-tooltip]:focus:after,[data-tooltip]:focus:before,[data-tooltip]:hover:after,[data-tooltip]:hover:before{--pico-tooltip-slide-to:translate(-50%, -.25rem);opacity:0;animation-name:tooltip-slide;animation-duration:.2s;animation-fill-mode:forwards;transform:translate(-50%,.75rem)}[data-tooltip]:focus:after,[data-tooltip]:hover:after{--pico-tooltip-caret-slide-to:translate(-50%, 0rem);animation-name:tooltip-caret-slide;transform:translate(-50%,-.25rem)}[data-tooltip][data-placement=bottom]:focus:after,[data-tooltip][data-placement=bottom]:focus:before,[data-tooltip][data-placement=bottom]:hover:after,[data-tooltip][data-placement=bottom]:hover:before{--pico-tooltip-slide-to:translate(-50%, .25rem);animation-name:tooltip-slide;transform:translate(-50%,-.75rem)}[data-tooltip][data-placement=bottom]:focus:after,[data-tooltip][data-placement=bottom]:hover:after{--pico-tooltip-caret-slide-to:translate(-50%, -.3rem);animation-name:tooltip-caret-slide;transform:translate(-50%,-.5rem)}[data-tooltip][data-placement=left]:focus:after,[data-tooltip][data-placement=left]:focus:before,[data-tooltip][data-placement=left]:hover:after,[data-tooltip][data-placement=left]:hover:before{--pico-tooltip-slide-to:translate(-.25rem, -50%);animation-name:tooltip-slide;transform:translate(.75rem,-50%)}[data-tooltip][data-placement=left]:focus:after,[data-tooltip][data-placement=left]:hover:after{--pico-tooltip-caret-slide-to:translate(.3rem, -50%);animation-name:tooltip-caret-slide;transform:translate(.05rem,-50%)}[data-tooltip][data-placement=right]:focus:after,[data-tooltip][data-placement=right]:focus:before,[data-tooltip][data-placement=right]:hover:after,[data-tooltip][data-placement=right]:hover:before{--pico-tooltip-slide-to:translate(.25rem, -50%);animation-name:tooltip-slide;transform:translate(-.75rem,-50%)}[data-tooltip][data-placement=right]:focus:after,[data-tooltip][data-placement=right]:hover:after{--pico-tooltip-caret-slide-to:translate(-.3rem, -50%);animation-name:tooltip-caret-slide;transform:translate(-.05rem,-50%)}}@keyframes tooltip-slide{to{transform:var(--pico-tooltip-slide-to);opacity:1}}@keyframes tooltip-caret-slide{50%{opacity:0}to{transform:var(--pico-tooltip-caret-slide-to);opacity:1}}[aria-controls]{cursor:pointer}[aria-disabled=true],[disabled]{cursor:not-allowed}[aria-hidden=false][hidden]{display:initial}[aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);position:absolute}[tabindex],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation}[dir=rtl]{direction:rtl}@media (prefers-reduced-motion:reduce){:not([aria-busy=true]),:not([aria-busy=true]):after,:not([aria-busy=true]):before{background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:-1ms!important}}</style><style>:root{color-scheme:light;--calepin-color-background:#fff;--calepin-color-text:#1f2933;--calepin-color-muted:#5f6b7a;--calepin-color-border:#d8dee6;--calepin-color-accent:#1c9bad;--calepin-color-accent-hover:#16808f;--calepin-color-accent-strong:color-mix(in srgb, var(--calepin-color-accent) 78%, #000);--calepin-color-accent-strong-hover:color-mix(in srgb, var(--calepin-color-accent) 62%, #000);--calepin-color-accent-soft:color-mix(in srgb, var(--calepin-color-accent) 12%, transparent);--calepin-color-accent-contrast:#fff;--calepin-color-link:var(--calepin-color-accent);--calepin-color-link-hover:var(--calepin-color-accent-hover);--calepin-color-focus:var(--calepin-color-accent);--calepin-color-selection:color-mix(in srgb, var(--calepin-color-accent) 24%, transparent);--calepin-color-info:#1c7ed6;--calepin-color-success:#2e7d32;--calepin-color-warning:#b26a00;--calepin-color-danger:#b3261e;--calepin-color-important:#7c3aed;--calepin-color-info-soft:color-mix(in srgb, var(--calepin-color-info) 12%, transparent);--calepin-color-success-soft:color-mix(in srgb, var(--calepin-color-success) 12%, transparent);--calepin-color-warning-soft:color-mix(in srgb, var(--calepin-color-warning) 14%, transparent);--calepin-color-danger-soft:color-mix(in srgb, var(--calepin-color-danger) 12%, transparent);--calepin-color-important-soft:color-mix(in srgb, var(--calepin-color-important) 12%, transparent);--calepin-callout-note-color:var(--calepin-color-info);--calepin-callout-tip-color:var(--calepin-color-success);--calepin-callout-warning-color:var(--calepin-color-warning);--calepin-callout-caution-color:var(--calepin-color-danger);--calepin-callout-important-color:var(--calepin-color-important);--calepin-surface:#fff;--calepin-surface-muted:#f4f7f9;--calepin-surface-raised:#fff;--calepin-surface-inset:#eef3f6;--calepin-surface-code:#f7f7f5;--calepin-surface-output:var(--calepin-surface-muted);--calepin-font-body:var(--pico-font-family);--calepin-font-heading:"GFS Didot", "Didot HTF", Didot, Georgia, "Times New Roman", serif;--calepin-font-mono:var(--pico-font-family-monospace);--calepin-font-size:100%;--calepin-font-size-sm:.875rem;--calepin-font-size-aside:.84rem;--calepin-line-height:1.65;--calepin-line-height-tight:1.25;--calepin-heading-weight:700;--calepin-code-font-size:.92em;--calepin-space-xs:.5rem;--calepin-space-sm:.75rem;--calepin-space-md:1rem;--calepin-space-lg:1.5rem;--calepin-space-xl:2rem;--calepin-space-2xl:3rem;--calepin-block-gap:var(--calepin-space-lg);--calepin-inline-gap:var(--calepin-space-md);--calepin-section-gap:var(--calepin-space-2xl);--calepin-content-width:39rem;--calepin-wide-width:68rem;--calepin-page-width:var(--calepin-wide-width);--calepin-margin-width:11.5rem;--calepin-margin-gap:2rem;--calepin-page-padding-inline:clamp(1rem, 4vw, 2rem);--pico-font-size:100%;--calepin-radius-sm:.25rem;--calepin-radius-md:.5rem;--calepin-radius-lg:.75rem;--calepin-border-width:1px;--calepin-border:var(--calepin-border-width) solid var(--calepin-color-border);--calepin-topbar-height:3.5rem;--calepin-sidebar-width:12rem;--calepin-toc-width:var(--calepin-sidebar-width);--calepin-shell-gap:1.5rem;--calepin-shadow-card:0 10px 30px color-mix(in srgb, var(--calepin-color-text) 8%, transparent);--calepin-focus-ring:0 0 0 3px color-mix(in srgb, var(--calepin-color-focus) 28%, transparent);--calepin-z-topbar:20;--calepin-z-backdrop:25;--calepin-z-drawer:30;--calepin-z-popover:40;--calepin-z-modal:50}html[data-theme=dark]{color-scheme:dark;--calepin-color-background:#111820;--calepin-color-text:#d8dee9;--calepin-color-muted:#9aa7b6;--calepin-color-border:#344252;--calepin-color-accent:#67d4df;--calepin-color-accent-hover:#8be4ec;--calepin-color-accent-strong:var(--calepin-color-accent);--calepin-color-accent-strong-hover:var(--calepin-color-accent-hover);--calepin-color-accent-contrast:#071316;--calepin-color-link:var(--calepin-color-accent);--calepin-color-link-hover:var(--calepin-color-accent-hover);--calepin-color-focus:var(--calepin-color-accent);--calepin-color-info:#74c0fc;--calepin-color-success:#8ce99a;--calepin-color-warning:#ffd43b;--calepin-color-danger:#ff8787;--calepin-color-important:#b197fc;--calepin-surface:#17202a;--calepin-surface-muted:#202b36;--calepin-surface-raised:#1d2833;--calepin-surface-inset:#101820;--calepin-surface-code:#151d26;--calepin-surface-output:var(--calepin-surface-muted);--calepin-shadow-card:0 10px 30px #00000038}@media (width>=48rem){:root{--pico-font-size:106.25%}}@media (prefers-color-scheme:dark){html:not([data-theme]){color-scheme:dark;--calepin-color-background:#111820;--calepin-color-text:#d8dee9;--calepin-color-muted:#9aa7b6;--calepin-color-border:#344252;--calepin-color-accent:#67d4df;--calepin-color-accent-hover:#8be4ec;--calepin-color-accent-strong:var(--calepin-color-accent);--calepin-color-accent-strong-hover:var(--calepin-color-accent-hover);--calepin-color-accent-contrast:#071316;--calepin-color-link:var(--calepin-color-accent);--calepin-color-link-hover:var(--calepin-color-accent-hover);--calepin-color-focus:var(--calepin-color-accent);--calepin-color-info:#74c0fc;--calepin-color-success:#8ce99a;--calepin-color-warning:#ffd43b;--calepin-color-danger:#ff8787;--calepin-color-important:#b197fc;--calepin-surface:#17202a;--calepin-surface-muted:#202b36;--calepin-surface-raised:#1d2833;--calepin-surface-inset:#101820;--calepin-surface-code:#151d26;--calepin-surface-output:var(--calepin-surface-muted);--calepin-shadow-card:0 10px 30px #00000038}}:root:root,html[data-theme=light],html[data-theme=dark]{--pico-background-color:var(--calepin-color-background);--pico-color:var(--calepin-color-text);--pico-muted-color:var(--calepin-color-muted);--pico-muted-border-color:var(--calepin-color-border);--pico-card-background-color:var(--calepin-surface-raised);--pico-card-sectioning-background-color:var(--calepin-surface-muted);--pico-code-background-color:var(--calepin-surface-code);--pico-code-color:var(--calepin-color-text);--pico-primary:var(--calepin-color-accent);--pico-primary-background:var(--calepin-color-accent-strong);--pico-primary-border:var(--calepin-color-accent-strong);--pico-primary-underline:transparent;--pico-primary-hover:var(--calepin-color-accent-hover);--pico-primary-hover-background:var(--calepin-color-accent-strong-hover);--pico-primary-hover-border:var(--calepin-color-accent-strong-hover);--pico-primary-hover-underline:transparent;--pico-primary-focus:color-mix(in srgb, var(--calepin-color-focus) 40%, transparent);--pico-primary-inverse:var(--calepin-color-accent-contrast)}html{scroll-behavior:smooth;background:var(--calepin-color-background);color:var(--calepin-color-text);font-family:var(--calepin-font-body)}body{background:var(--calepin-color-background);color:var(--calepin-color-text);font-family:var(--calepin-font-body);font-variant-numeric:oldstyle-nums}a,a:hover,a:focus,a:focus-visible,a:active,a:visited{color:var(--calepin-color-link);text-decoration:none}a:hover,a:focus,a:focus-visible,a:active{color:var(--calepin-color-link-hover)}h1,h2,h3,h4,h5,h6{font-family:var(--calepin-font-heading);font-weight:var(--calepin-heading-weight);margin-top:2rem}h1{font-size:2rem;line-height:var(--calepin-line-height-tight);margin-bottom:1.15rem}h2{margin-top:2.8rem;font-size:1.55rem}h3{margin-top:2.1rem;font-size:1.2rem}.calepin-content :where(p,li,dd){line-height:var(--calepin-line-height)}.calepin-content{min-width:0}.calepin-document-main{width:min(100% - 2rem, var(--calepin-content-width));margin-inline:auto}.calepin-content>:first-child{margin-top:0}body:has(.calepin-site-topbar) [id]{scroll-margin-top:calc(var(--calepin-topbar-height) + 1rem)}.calepin-content img,.calepin-content svg,.calepin-content video,.calepin-content canvas{max-width:100%;height:auto}.calepin-content math[display=block]{margin-block:var(--calepin-block-gap)}figure{text-align:center}figure>img{max-width:100%;margin-inline:auto;display:block}.calepin-content figure{margin:var(--calepin-block-gap) 0}.calepin-content figcaption{max-width:34rem;color:var(--calepin-color-muted);font-size:var(--calepin-font-size-sm);margin-top:.6rem;line-height:1.45}.calepin-content .fullwidth,.calepin-content .full-width,.calepin-content figure.fullwidth,.calepin-content figure.full-width{width:min(100vw - 2rem, var(--calepin-page-width));max-width:var(--calepin-page-width)}.calepin-content blockquote{margin:var(--calepin-block-gap) 0;border-left:2px solid var(--calepin-color-accent);color:var(--calepin-color-muted);padding:.15rem 0 .15rem 1.1rem}.calepin-content .calepin-float-right{float:right;border-radius:var(--calepin-radius-md);width:min(32%,12rem);height:auto;margin:.25rem 0 1rem 1.25rem}.calepin-content table{width:max-content;max-width:100%;margin-block:var(--calepin-block-gap);border-collapse:collapse;font-size:.92rem;display:block;overflow-x:auto}.calepin-content th,.calepin-content td{border-bottom:var(--calepin-border-width) solid var(--calepin-color-border);vertical-align:top;padding:.45rem .65rem}.calepin-content th{font-weight:700}.calepin-landing,.calepin-landing-page{width:100%;margin:0}.calepin-landing>:first-child,.calepin-landing-page>:first-child{margin-top:0}.landing-button,.landing-button:visited{border:var(--calepin-border);border-radius:var(--calepin-radius-md);min-height:2.35rem;color:inherit;white-space:nowrap;justify-content:center;align-items:center;gap:.35rem;padding:.55rem .9rem;font-weight:650;line-height:1.1;text-decoration:none;display:inline-flex}.landing-button-primary,.landing-button-primary:visited{border-color:var(--calepin-color-accent-strong);background:var(--calepin-color-accent-strong);color:var(--calepin-color-accent-contrast)}.landing-button-primary:hover,.landing-button-primary:focus-visible{border-color:var(--calepin-color-accent-strong-hover);background:var(--calepin-color-accent-strong-hover);color:var(--calepin-color-accent-contrast)}.landing-button-secondary,.landing-button-secondary:visited{border-color:var(--calepin-color-border);background:var(--calepin-surface);color:inherit}.landing-button-secondary:hover,.landing-button-secondary:focus-visible{border-color:color-mix(in srgb, var(--calepin-color-accent) 50%, var(--calepin-color-border));color:var(--calepin-color-accent-hover)}.landing-command-row,.landing-cta-row,.landing-link-row{gap:var(--calepin-space-sm);flex-wrap:wrap;align-items:center;display:flex}.landing-command-row code{border:var(--calepin-border);border-radius:var(--calepin-radius-md);background:var(--calepin-surface-muted);min-height:2.35rem;color:var(--calepin-color-text);white-space:nowrap;align-items:center;margin:0;padding:.45rem .75rem;font-size:.88rem;display:inline-flex}.landing-two-column{gap:var(--calepin-space-lg);margin-block:var(--calepin-section-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.landing-panel{padding-block:var(--calepin-space-md);border-top:var(--calepin-border)}.landing-checklist{padding-left:1.1rem}@media (width<=48rem){h1{font-size:1.9rem}.landing-two-column{grid-template-columns:1fr}.calepin-content .calepin-float-right{float:none;width:min(100%,16rem);margin:.75rem auto 1.2rem;display:block}}</style><style>:root{--calepin-syntax-foreground:#003b4f;--calepin-syntax-background:#f7f7f5;--calepin-syntax-border:color-mix(in srgb, var(--calepin-syntax-foreground) 18%, var(--calepin-syntax-background));--scope-1-foreground:#5e5e5e;--scope-2-foreground:#5e5e5e;--scope-3-foreground:#20794d;--scope-4-foreground:#20794d;--scope-5-foreground:#8f5902;--scope-6-foreground:#8b41b1;--scope-7-foreground:#8b41b1;--scope-8-foreground:#8b41b1;--scope-9-foreground:#8b41b1;--scope-10-foreground:#8b41b1;--scope-11-foreground:#8f5902;--scope-12-foreground:#8f5902;--scope-13-foreground:#8f5902;--scope-14-foreground:#0b6e79;--scope-15-foreground:#0b6e79;--scope-16-foreground:#0b6e79;--scope-17-foreground:#0b6e79;--scope-18-foreground:#0b6e79;--scope-19-foreground:#8b41b1;--scope-20-foreground:#4759ab;--scope-21-foreground:#4759ab;--scope-22-foreground:#4759ab;--scope-23-foreground:#ad0000;--scope-24-foreground:#5e5e5e;--scope-25-foreground:#5e5e5e;--scope-26-foreground:#5e5e5e;--scope-27-foreground:#003b4f;--scope-28-foreground:#667321;--scope-29-foreground:#667321;--scope-30-foreground:#667321;--scope-31-foreground:#003b4f;--scope-31-font-weight:700;--fallback-32-foreground:#5e5e5e;--fallback-33-foreground:#20794d;--fallback-34-foreground:#ad0000;--fallback-35-foreground:#0b6e79;--fallback-36-foreground:#8b41b1;--fallback-37-foreground:#667321}div.sourceCode,pre.sourceCode,.cell-output,.cell-output-stdout,.cell-output-stderr{display:flow-root;position:relative}pre{background:var(--calepin-surface-code);border-radius:var(--calepin-radius-sm);color:var(--calepin-color-text);padding:var(--calepin-space-md);overflow:auto}pre>code{color:inherit;background:0 0;padding:0}.sourceCode .calepin-syntax-scope-1,pre code .calepin-syntax-scope-1{color:var(--scope-1-foreground)}.sourceCode .calepin-syntax-scope-2,pre code .calepin-syntax-scope-2{color:var(--scope-2-foreground)}.sourceCode .calepin-syntax-scope-3,pre code .calepin-syntax-scope-3{color:var(--scope-3-foreground)}.sourceCode .calepin-syntax-scope-4,pre code .calepin-syntax-scope-4{color:var(--scope-4-foreground)}.sourceCode .calepin-syntax-scope-5,pre code .calepin-syntax-scope-5{color:var(--scope-5-foreground)}.sourceCode .calepin-syntax-scope-6,pre code .calepin-syntax-scope-6{color:var(--scope-6-foreground)}.sourceCode .calepin-syntax-scope-7,pre code .calepin-syntax-scope-7{color:var(--scope-7-foreground)}.sourceCode .calepin-syntax-scope-8,pre code .calepin-syntax-scope-8{color:var(--scope-8-foreground)}.sourceCode .calepin-syntax-scope-9,pre code .calepin-syntax-scope-9{color:var(--scope-9-foreground)}.sourceCode .calepin-syntax-scope-10,pre code .calepin-syntax-scope-10{color:var(--scope-10-foreground)}.sourceCode .calepin-syntax-scope-11,pre code .calepin-syntax-scope-11{color:var(--scope-11-foreground)}.sourceCode .calepin-syntax-scope-12,pre code .calepin-syntax-scope-12{color:var(--scope-12-foreground)}.sourceCode .calepin-syntax-scope-13,pre code .calepin-syntax-scope-13{color:var(--scope-13-foreground)}.sourceCode .calepin-syntax-scope-14,pre code .calepin-syntax-scope-14{color:var(--scope-14-foreground)}.sourceCode .calepin-syntax-scope-15,pre code .calepin-syntax-scope-15{color:var(--scope-15-foreground)}.sourceCode .calepin-syntax-scope-16,pre code .calepin-syntax-scope-16{color:var(--scope-16-foreground)}.sourceCode .calepin-syntax-scope-17,pre code .calepin-syntax-scope-17{color:var(--scope-17-foreground)}.sourceCode .calepin-syntax-scope-18,pre code .calepin-syntax-scope-18{color:var(--scope-18-foreground)}.sourceCode .calepin-syntax-scope-19,pre code .calepin-syntax-scope-19{color:var(--scope-19-foreground)}.sourceCode .calepin-syntax-scope-20,pre code .calepin-syntax-scope-20{color:var(--scope-20-foreground)}.sourceCode .calepin-syntax-scope-21,pre code .calepin-syntax-scope-21{color:var(--scope-21-foreground)}.sourceCode .calepin-syntax-scope-22,pre code .calepin-syntax-scope-22{color:var(--scope-22-foreground)}.sourceCode .calepin-syntax-scope-23,pre code .calepin-syntax-scope-23{color:var(--scope-23-foreground)}.sourceCode .calepin-syntax-scope-24,pre code .calepin-syntax-scope-24{color:var(--scope-24-foreground)}.sourceCode .calepin-syntax-scope-25,pre code .calepin-syntax-scope-25{color:var(--scope-25-foreground)}.sourceCode .calepin-syntax-scope-26,pre code .calepin-syntax-scope-26{color:var(--scope-26-foreground)}.sourceCode .calepin-syntax-scope-27,pre code .calepin-syntax-scope-27{color:var(--scope-27-foreground)}.sourceCode .calepin-syntax-scope-28,pre code .calepin-syntax-scope-28{color:var(--scope-28-foreground)}.sourceCode .calepin-syntax-scope-29,pre code .calepin-syntax-scope-29{color:var(--scope-29-foreground)}.sourceCode .calepin-syntax-scope-30,pre code .calepin-syntax-scope-30{color:var(--scope-30-foreground)}.sourceCode .calepin-syntax-scope-31,pre code .calepin-syntax-scope-31{color:var(--scope-31-foreground);font-weight:var(--scope-31-font-weight)}.sourceCode .calepin-syntax-fallback-32,pre code .calepin-syntax-fallback-32{color:var(--fallback-32-foreground)}.sourceCode .calepin-syntax-fallback-33,pre code .calepin-syntax-fallback-33{color:var(--fallback-33-foreground)}.sourceCode .calepin-syntax-fallback-34,pre code .calepin-syntax-fallback-34{color:var(--fallback-34-foreground)}.sourceCode .calepin-syntax-fallback-35,pre code .calepin-syntax-fallback-35{color:var(--fallback-35-foreground)}.sourceCode .calepin-syntax-fallback-36,pre code .calepin-syntax-fallback-36{color:var(--fallback-36-foreground)}.sourceCode .calepin-syntax-fallback-37,pre code .calepin-syntax-fallback-37{color:var(--fallback-37-foreground)}pre.numberSource code>span>a:first-child:before{color:#aaa;font-size:.8rem}:is(.cell-output,.cell-output-stdout,.cell-output-stderr) pre{border-left:var(--calepin-border-width) solid var(--calepin-color-border)}.calepin-copy-code{appearance:none;z-index:1;border-radius:var(--calepin-radius-sm);color:#1f293394;width:1.25rem;height:1.25rem;box-shadow:none;opacity:.62;cursor:pointer;background:#1f293312;border:0;place-items:center;margin:0;padding:0;transition:opacity .12s,background-color .12s,color .12s;display:grid;position:absolute;top:.2rem;right:.2rem}div.sourceCode:hover .calepin-copy-code,.cell-output:hover .calepin-copy-code,.cell-output-stdout:hover .calepin-copy-code,.cell-output-stderr:hover .calepin-copy-code,.calepin-copy-code:focus-visible{color:#1f2933d1;opacity:1;background:#1f29331f}.calepin-copy-code svg{width:.78rem;height:.78rem}.calepin-copy-code.copied{color:#1f7a4d;opacity:1;background:#1f7a4d1f}html[data-theme=dark]{--calepin-syntax-foreground:#d8e7ef;--calepin-syntax-background:#161b22;--calepin-syntax-border:color-mix(in srgb, var(--calepin-syntax-foreground) 18%, var(--calepin-syntax-background));--scope-1-foreground:#8b949e;--scope-2-foreground:#8b949e;--scope-3-foreground:#8fd694;--scope-4-foreground:#8fd694;--scope-5-foreground:#ffcc9c;--scope-6-foreground:#c8a2f0;--scope-7-foreground:#c8a2f0;--scope-8-foreground:#c8a2f0;--scope-9-foreground:#c8a2f0;--scope-10-foreground:#c8a2f0;--scope-11-foreground:#ffcc9c;--scope-12-foreground:#ffcc9c;--scope-13-foreground:#ffcc9c;--scope-14-foreground:#7fd1de;--scope-15-foreground:#7fd1de;--scope-16-foreground:#7fd1de;--scope-17-foreground:#7fd1de;--scope-18-foreground:#7fd1de;--scope-19-foreground:#c8a2f0;--scope-20-foreground:#9db8ff;--scope-21-foreground:#9db8ff;--scope-22-foreground:#9db8ff;--scope-23-foreground:#ffb3a7;--scope-24-foreground:#b5bdc9;--scope-25-foreground:#b5bdc9;--scope-26-foreground:#b5bdc9;--scope-27-foreground:#d8e7ef;--scope-28-foreground:#c3d86c;--scope-29-foreground:#c3d86c;--scope-30-foreground:#c3d86c;--scope-31-foreground:#d8e7ef;--scope-31-font-weight:700;--fallback-32-foreground:#8b949e;--fallback-33-foreground:#8fd694;--fallback-34-foreground:#ffb3a7;--fallback-35-foreground:#7fd1de;--fallback-36-foreground:#c8a2f0;--fallback-37-foreground:#c3d86c}html[data-theme=dark] .calepin-copy-code{color:#d8dee9ad;background:#d8dee914}html[data-theme=dark] div.sourceCode:hover .calepin-copy-code,html[data-theme=dark] .cell-output:hover .calepin-copy-code,html[data-theme=dark] .cell-output-stdout:hover .calepin-copy-code,html[data-theme=dark] .cell-output-stderr:hover .calepin-copy-code,html[data-theme=dark] .calepin-copy-code:focus-visible{color:#d8dee9eb;background:#d8dee924}@media (prefers-color-scheme:dark){html:not([data-theme]){--calepin-syntax-foreground:#d8e7ef;--calepin-syntax-background:#161b22;--calepin-syntax-border:color-mix(in srgb, var(--calepin-syntax-foreground) 18%, var(--calepin-syntax-background));--scope-1-foreground:#8b949e;--scope-2-foreground:#8b949e;--scope-3-foreground:#8fd694;--scope-4-foreground:#8fd694;--scope-5-foreground:#ffcc9c;--scope-6-foreground:#c8a2f0;--scope-7-foreground:#c8a2f0;--scope-8-foreground:#c8a2f0;--scope-9-foreground:#c8a2f0;--scope-10-foreground:#c8a2f0;--scope-11-foreground:#ffcc9c;--scope-12-foreground:#ffcc9c;--scope-13-foreground:#ffcc9c;--scope-14-foreground:#7fd1de;--scope-15-foreground:#7fd1de;--scope-16-foreground:#7fd1de;--scope-17-foreground:#7fd1de;--scope-18-foreground:#7fd1de;--scope-19-foreground:#c8a2f0;--scope-20-foreground:#9db8ff;--scope-21-foreground:#9db8ff;--scope-22-foreground:#9db8ff;--scope-23-foreground:#ffb3a7;--scope-24-foreground:#b5bdc9;--scope-25-foreground:#b5bdc9;--scope-26-foreground:#b5bdc9;--scope-27-foreground:#d8e7ef;--scope-28-foreground:#c3d86c;--scope-29-foreground:#c3d86c;--scope-30-foreground:#c3d86c;--scope-31-foreground:#d8e7ef;--scope-31-font-weight:700;--fallback-32-foreground:#8b949e;--fallback-33-foreground:#8fd694;--fallback-34-foreground:#ffb3a7;--fallback-35-foreground:#7fd1de;--fallback-36-foreground:#c8a2f0;--fallback-37-foreground:#c3d86c}html:not([data-theme]) .calepin-copy-code{color:#d8dee9ad;background:#d8dee914}html:not([data-theme]) div.sourceCode:hover .calepin-copy-code,html:not([data-theme]) .cell-output:hover .calepin-copy-code,html:not([data-theme]) .cell-output-stdout:hover .calepin-copy-code,html:not([data-theme]) .cell-output-stderr:hover .calepin-copy-code,html:not([data-theme]) .calepin-copy-code:focus-visible{color:#d8dee9eb;background:#d8dee924}}</style><style>[data-calepin-theme-toggle],.calepin-nav-toggle{border-radius:var(--calepin-radius-sm);min-width:0;box-shadow:none;color:inherit;background:0 0;border:0;font-size:.82rem}[data-calepin-theme-toggle]{place-items:center;width:2.2rem;height:2.2rem;margin:0;padding:0;line-height:1;display:inline-grid}[data-calepin-theme-toggle]:hover,[data-calepin-theme-toggle]:focus,[data-calepin-theme-toggle]:active,.calepin-nav-toggle:hover,.calepin-nav-toggle:focus,.calepin-nav-toggle:active{background:var(--calepin-color-accent-soft);box-shadow:none;color:inherit;border:0}[data-calepin-theme-toggle]:focus-visible,.calepin-nav-toggle:focus-visible{outline:2px solid var(--calepin-color-focus);outline-offset:2px}[data-calepin-theme-toggle] svg{width:1.05rem;height:1.05rem;color:inherit;stroke:currentColor;fill:none}[data-calepin-theme-toggle] svg path[fill=currentColor]{fill:currentColor}.calepin-nav-icon{flex:none;align-items:center;width:1.05em;height:1.05em;display:inline-flex}.calepin-nav-icon svg{width:100%;height:100%;display:block}a:has(.calepin-nav-icon){align-items:center;gap:.35rem;display:inline-flex}.calepin-callout{--callout-accent:var(--calepin-callout-note-color);margin:var(--calepin-block-gap,1rem) 0;border:1px solid var(--callout-accent);border-radius:var(--calepin-radius-md,.5rem);background:color-mix(in srgb, var(--callout-accent) 10%, var(--calepin-color-background));color:var(--calepin-color-text);border-left-width:.4rem;padding:.9rem 1rem}.calepin-callout-title{color:var(--callout-accent);margin-bottom:.4rem;font-weight:700}.calepin-callout-body>:last-child{margin-bottom:0}.calepin-callout-note{--callout-accent:var(--calepin-callout-note-color)}.calepin-callout-tip{--callout-accent:var(--calepin-callout-tip-color)}.calepin-callout-important{--callout-accent:var(--calepin-callout-important-color)}.calepin-callout-caution{--callout-accent:var(--calepin-callout-caution-color)}.calepin-callout-warning{--callout-accent:var(--calepin-callout-warning-color)}.calepin-website-page-nav{margin:2.4rem auto 2rem;padding:0 1rem}.calepin-website-page-nav-inner{grid-template-columns:1fr 1fr;gap:.75rem;max-width:52rem;margin:0 auto;display:grid}.calepin-website-page-nav-link,.calepin-website-page-nav-empty{border-radius:var(--calepin-radius-sm);min-height:3.4rem}.calepin-website-page-nav-link{align-items:center;gap:.6rem;padding:.55rem .8rem;text-decoration:none;display:inline-flex}.calepin-website-page-nav-link:hover,.calepin-website-page-nav-link:focus-visible{transform:translateY(-1px)}.calepin-website-page-nav-empty{display:block}.calepin-website-page-nav-link--prev{text-align:left}.calepin-website-page-nav-link--next{text-align:right}.calepin-website-page-nav-link--next .calepin-website-page-nav-arrow{margin-left:auto}.calepin-website-page-nav-link--prev .calepin-website-page-nav-arrow{margin-right:auto}.calepin-website-page-nav-content{flex-direction:column;min-width:0;line-height:1.2;display:flex}.calepin-website-page-nav-content .calepin-website-page-nav-title{white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.calepin-website-page-nav-kind{opacity:.7;font-size:.78rem}.calepin-website-page-nav-arrow{width:.95rem;color:var(--calepin-color-muted);font-size:1rem;font-weight:600;line-height:1}@media (width<=64rem){.calepin-website-page-nav{margin-top:1.8rem;padding:0 .8rem}.calepin-website-page-nav-inner{grid-template-columns:1fr;gap:.6rem}.calepin-website-page-nav-link--next,.calepin-website-page-nav-link--prev{text-align:left}.calepin-website-page-nav-link{width:100%}}.calepin-site-topbar{z-index:var(--calepin-z-topbar);min-height:var(--calepin-topbar-height);border-bottom:var(--calepin-border);background:color-mix(in srgb, var(--calepin-color-background) 94%, transparent);backdrop-filter:blur(10px);position:sticky;top:0}.calepin-site-nav{min-height:var(--calepin-topbar-height);gap:1rem}.calepin-site-brand{min-width:0;color:inherit;font-family:var(--calepin-font-heading);font-weight:var(--calepin-heading-weight);align-items:center;text-decoration:none;display:inline-flex}.calepin-site-logo{width:auto;max-height:1.8rem;display:block}.calepin-site-topbar a,.calepin-site-topbar a:hover,.calepin-site-topbar a:focus,.calepin-site-topbar a:focus-visible,.calepin-site-topbar a:active,.calepin-site-topbar a:visited,.calepin-site-topbar a.active,.calepin-site-topbar a[aria-current]{color:inherit;text-decoration:none}.calepin-site-menu a{min-height:2.2rem;color:inherit;border-bottom:1px solid #0000;align-items:center;padding:.1rem 0;font-size:.92rem;display:inline-flex}.calepin-site-menu a:hover,.calepin-site-menu a:focus-visible,.calepin-site-menu a.active,.calepin-site-menu a[aria-current]{border-bottom-color:var(--calepin-color-accent);color:inherit}.calepin-nav-toggle{place-items:center;gap:.22rem;width:2.25rem;height:2.25rem;margin:0;padding:0;display:none}.calepin-nav-toggle span{background:currentColor;border-radius:999px;width:1.05rem;height:2px;display:block}.calepin-language-picker.dropdown{width:max-content;margin:0}.calepin-language-picker-button{width:100%;min-width:max-content;max-width:none;box-shadow:none;color:inherit;white-space:nowrap;background:0 0;border:0;justify-content:flex-start;align-items:center;padding-inline:.65rem;display:inline-flex}.calepin-language-picker-button:hover,.calepin-language-picker-button:focus,.calepin-language-picker-button:active{background:color-mix(in srgb, var(--calepin-color-muted) 10%, transparent);box-shadow:none;color:inherit;border:0}.calepin-language-picker-button:after{display:none}.calepin-language-picker-button span,.calepin-language-picker-menu a span{text-overflow:clip;overflow:visible}.calepin-language-picker-menu a{width:100%;min-width:max-content;color:inherit;white-space:nowrap;justify-content:flex-start;align-items:center;display:inline-flex}.calepin-language-picker-menu{width:max-content;min-width:100%}.calepin-language-picker-menu a[aria-current=true]{background:var(--calepin-surface-muted)}@media (width>=768px){.grid{grid-template-columns:repeat(var(--calepin-grid-columns,auto-fit), minmax(0%, 1fr))}}</style><style>.calepin-website-toc{color:var(--calepin-color-muted);text-align:left;align-self:start;font-size:.84rem}.calepin-website-toc.is-floating{top:calc(var(--calepin-topbar-height) + 1rem);max-height:calc(100vh - var(--calepin-topbar-height) - 2rem);scrollbar-width:thin;position:sticky;overflow-y:auto}.calepin-website-toc-title{color:var(--calepin-color-muted);letter-spacing:.06em;text-align:left;text-transform:uppercase;margin:0 0 .7rem;font-size:.72rem;font-weight:600}.calepin-website-toc nav{text-align:left;font-size:.875rem;display:block}.calepin-website-toc nav ul{gap:.04rem;width:100%;min-width:0;margin:0;padding:0;list-style:none;display:grid}.calepin-website-toc nav li{width:100%;min-width:0;min-height:0;margin:0;padding:0;display:block}.calepin-website-toc a{box-sizing:border-box;width:100%;max-width:100%;height:auto;padding-block:.12rem;padding-inline:calc(.45rem + var(--calepin-toc-indent,0rem)) .45rem;border-radius:var(--calepin-radius-sm);color:inherit;overflow-wrap:anywhere;text-align:left;text-wrap:pretty;word-break:normal;margin:0;line-height:1.3;text-decoration:none;display:block}.calepin-website-toc a:hover,.calepin-website-toc a:focus,.calepin-website-toc a:active,.calepin-website-toc a:visited{color:inherit}.calepin-website-toc a:hover,.calepin-website-toc a:focus{background:color-mix(in srgb, var(--calepin-color-accent) 12%, transparent)}.calepin-website-toc a.active{background:color-mix(in srgb, var(--calepin-color-accent) 14%, transparent);color:inherit;font-weight:600}.calepin-website-toc li.level-2 a{--calepin-toc-indent:0rem}.calepin-website-toc li.level-3 a{--calepin-toc-indent:.9rem}.calepin-website-toc li.level-4 a{--calepin-toc-indent:1.8rem}.calepin-website-toc li.level-5 a{--calepin-toc-indent:2.7rem}.calepin-website-toc li.level-6 a{--calepin-toc-indent:3.6rem}</style><style>:root{--calepin-sidebar-mobile-width:min(18rem, 78vw);--landing-hero-wordmark-width:24rem}.calepin-website-shell.grid{grid-template-columns:var(--calepin-sidebar-width) minmax(0, 1fr) var(--calepin-toc-width);gap:var(--calepin-shell-gap);grid-template-areas:"sidebar main toc";justify-items:stretch;width:min(100% - 2rem,95rem);margin-inline:auto;padding:2rem 0 4rem;display:grid}.calepin-website-sidebar{grid-area:sidebar}.calepin-website-main{grid-area:main;min-width:0;padding-inline:1rem}.calepin-website-main--landing{width:min(100% - 2rem, var(--calepin-wide-width));color:var(--calepin-color-text);background:var(--calepin-color-background);margin:0 auto;padding:3.5rem 0 4rem}.calepin-website-main>:first-child{margin-top:0}.calepin-website-toc{grid-area:toc}.calepin-website-sidebar{top:calc(var(--calepin-topbar-height) + 1rem);max-height:calc(100vh - var(--calepin-topbar-height) - 2rem);text-align:left;align-self:start;position:sticky;overflow:auto}.calepin-website-topbar{z-index:var(--calepin-z-topbar);min-height:var(--calepin-topbar-height);background:color-mix(in srgb, var(--calepin-color-background) 92%, transparent);border-bottom:1px solid var(--calepin-color-border);backdrop-filter:blur(12px);padding:0 1.25rem;position:sticky;top:0}.calepin-website-topbar nav{min-height:var(--calepin-topbar-height);gap:1rem}.calepin-website-topbar .calepin-site-brand{align-items:center;display:inline-flex}.calepin-website-topbar .calepin-site-logo{width:auto;height:1.4rem;display:block}.calepin-website-topbar .calepin-site-brand svg{fill:currentColor}.calepin-website-topbar .calepin-site-brand-text{font-weight:600}.calepin-website-topbar nav a:not(.calepin-site-brand),.calepin-website-topbar nav a:not(.calepin-site-brand):hover,.calepin-website-topbar nav a:not(.calepin-site-brand):focus,.calepin-website-topbar nav a:not(.calepin-site-brand):focus-visible,.calepin-website-topbar nav a:not(.calepin-site-brand):active,.calepin-website-topbar nav a:not(.calepin-site-brand):visited,.calepin-website-topbar nav a:not(.calepin-site-brand).active,.calepin-website-topbar nav a:not(.calepin-site-brand)[aria-current]{color:inherit;text-decoration:none}.calepin-website-view-mode,.calepin-site-language-picker{width:auto;min-width:6rem;margin:0;padding:.3rem 1.8rem .3rem .6rem;font-size:.85rem}.calepin-website-search-item{min-width:min(14rem,28vw)}.calepin-website-search{margin:0;position:relative}.calepin-website-search-input{width:100%;min-width:9rem;margin:0;padding-block:.3rem;font-size:.85rem}.calepin-website-search-results{z-index:calc(var(--calepin-z-topbar) + 1);overscroll-behavior:contain;border:1px solid var(--calepin-color-border);border-radius:var(--calepin-radius-sm);background:var(--calepin-color-background);width:min(30rem,88vw);max-height:min(32rem,72vh);box-shadow:var(--calepin-shadow-card);padding:.35rem;position:absolute;inset:calc(100% + .35rem) 0 auto auto;overflow:auto}.calepin-website-search-results[hidden]{display:none}.calepin-website-search-result{border-radius:var(--calepin-radius-sm);color:inherit;padding:.5rem .6rem;text-decoration:none;display:block}.calepin-website-search-result:hover,.calepin-website-search-result:focus,.calepin-website-search-subresult:hover,.calepin-website-search-subresult:focus{color:inherit;background:color-mix(in srgb, var(--calepin-color-accent) 12%, transparent);text-decoration:none}.calepin-website-search-result-title{font-size:.9rem;font-weight:600;line-height:1.25;display:block}.calepin-website-search-result-excerpt,.calepin-website-search-subresult-excerpt,.calepin-website-search-empty{color:var(--calepin-color-muted);margin-top:.15rem;font-size:.78rem;line-height:1.35;display:block}.calepin-website-search-empty{margin:0;padding:.45rem .55rem}.calepin-website-search-subresults{border-inline-start:1px solid var(--calepin-color-border);margin:.05rem 0 .25rem .8rem;padding-inline-start:.7rem}.calepin-website-search-subresult{border-radius:var(--calepin-radius-sm);color:inherit;padding:.35rem .5rem;text-decoration:none;display:block}.calepin-website-search-subresult-title{font-size:.82rem;font-weight:600;line-height:1.25;display:block}.calepin-website-search-subresult-title:before{content:"⤷ ";color:var(--calepin-color-muted)}.calepin-website-nav-toggle{font-size:1.2rem}.calepin-website-mobile-search-item,.calepin-website-sidebar nav.calepin-website-mobile-drawer-nav{display:none}.calepin-website-mobile-search-button,.calepin-site-theme-toggle{place-items:center;min-width:2.5rem;min-height:2.5rem;padding:.35rem;line-height:1;display:inline-grid}.calepin-website-nav-toggle svg,.calepin-website-mobile-search-button svg,.calepin-site-theme-toggle svg{width:1.1rem;height:1.1rem;display:block}.landing-hero{text-align:center;padding:.8rem 1rem 2.6rem}.landing-hero-wordmark,.landing-hero svg.landing-hero-wordmark{width:min(100%, var(--landing-hero-wordmark-width));height:auto;color:var(--calepin-color-text);fill:currentColor;margin-inline:auto;display:block}.landing-hero h2{text-align:center;max-width:42rem;margin:1.5rem auto 0;font-size:1.28rem;line-height:1.22}.landing-hero-copy{max-width:42rem;margin:1rem auto 0;font-size:1.05rem;line-height:1.65}.landing-command-row{justify-content:center;margin-top:1.4rem}.landing-cta-row{justify-content:center;margin-top:1.25rem}.landing-workflow-card,.landing-editor-integration,.landing-product-preview,.landing-tool-strip{border:1px solid var(--calepin-color-border);border-radius:var(--calepin-radius-lg);background:var(--calepin-surface);box-shadow:var(--calepin-shadow-card)}.landing-feature-content p{margin:.65rem 0 0;line-height:1.55}.landing-checklist{color:var(--calepin-color-text);gap:.45rem;margin:1.05rem 0 0;padding:0;font-size:.9rem;list-style:none;display:grid}.landing-checklist li{margin:0;padding-left:1.05rem;line-height:1.35;list-style:none;display:block;position:relative}.landing-checklist li::marker{content:""}.landing-checklist li:before{content:"";background:var(--calepin-color-accent);border-radius:50%;width:.42rem;height:.42rem;position:absolute;top:.46em;left:0}.landing-mini-preview{border:1px solid color-mix(in srgb, var(--calepin-color-border) 75%, var(--calepin-color-accent-soft));border-radius:var(--calepin-radius-md);background:color-mix(in srgb, var(--calepin-color-background) 65%, var(--calepin-surface));margin-top:1.25rem;padding:.9rem}.preview-window-bar,.site-browser-bar{align-items:center;gap:.36rem;display:flex}.preview-window-bar span{background:#b7c3cf;border-radius:50%;width:.45rem;height:.45rem}.notebook-preview h3,.site-preview h3{margin-top:.65rem}.notebook-preview pre,.landing-code-pane pre{background:0 0;margin:.65rem 0 0;padding:0;overflow:auto}.notebook-preview code,.landing-code-pane code{border-radius:var(--calepin-radius-sm);color:#edf7f8;white-space:pre;background:#17202a;padding:.75rem;font-size:.78rem;line-height:1.45;display:block}.mini-table{border-collapse:collapse;width:100%;margin:.65rem 0 0;font-size:.78rem}.mini-table th,.mini-table td{border:1px solid var(--calepin-color-border);padding:.28rem .35rem}.mini-table th{color:var(--calepin-color-muted);font-weight:650}.site-browser-bar{border-radius:var(--calepin-radius-sm);color:#edf7f8;background:#17202a;min-height:2.1rem;padding:0 .65rem;font-size:.7rem}.site-browser-bar strong{color:inherit;margin-right:auto;font-size:.76rem}.site-preview-body{padding:.95rem .35rem .1rem}.site-preview-body p{margin:.45rem 0 .75rem;font-size:.84rem;line-height:1.45}.site-preview-body a{border-radius:var(--calepin-radius-sm);background:var(--calepin-color-accent-strong);min-height:1.9rem;color:var(--calepin-color-accent-contrast);align-items:center;padding:.35rem .6rem;font-size:.78rem;text-decoration:none;display:inline-flex}.site-preview-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-top:.85rem;display:grid}.site-preview-tiles span{border:1px solid var(--calepin-color-border);border-radius:var(--calepin-radius-sm);background:var(--calepin-surface);min-height:2.3rem;color:var(--calepin-color-muted);text-align:center;place-items:center;padding:.3rem;font-size:.74rem;display:grid}.landing-product-preview,.landing-tool-strip{margin-top:2rem}.landing-product-preview{grid-template-columns:minmax(15rem,.8fr) minmax(0,1.55fr);align-items:center;gap:1.4rem;padding:1.35rem;display:grid}.landing-preview-copy p{margin:.9rem 0 1rem;line-height:1.55}.landing-preview-copy a,.landing-preview-copy a:visited{color:var(--calepin-color-link-hover);font-weight:650;text-decoration:none}.landing-preview-copy a:hover,.landing-preview-copy a:focus-visible{color:var(--calepin-color-accent);text-decoration:none}.landing-editor-preview{border:1px solid var(--calepin-color-border);border-radius:var(--calepin-radius-md);grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:21rem;display:grid;overflow:hidden}.landing-code-pane,.landing-render-pane{min-width:0}.landing-code-pane{color:#edf7f8;background:#17202a;padding:.85rem}.pane-tab{border-radius:var(--calepin-radius-sm);color:#edf7f8;min-height:1.65rem;font-family:var(--calepin-font-mono);background:#ffffff1a;align-items:center;margin-bottom:.5rem;padding:.25rem .55rem;font-size:.76rem;display:inline-flex}.landing-code-pane code{background:0 0;padding:0}.landing-render-pane{background:var(--calepin-surface);padding:1rem}.landing-render-pane p{margin:.55rem 0 0;font-size:.88rem;line-height:1.5}.landing-tool-strip{justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.landing-tool-strip>span{color:var(--calepin-color-text);font-weight:650}.landing-tool-badges{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.landing-tool-badges span{border:1px solid var(--calepin-color-border);border-radius:var(--calepin-radius-sm);background:var(--calepin-color-background);min-height:1.8rem;color:var(--calepin-color-muted);align-items:center;padding:.25rem .55rem;font-size:.8rem;font-weight:650;display:inline-flex}html[data-theme=light],html[data-theme=dark],html:not([data-theme]){--pf-text:var(--calepin-color-text);--pf-text-secondary:var(--calepin-color-muted);--pf-text-muted:var(--calepin-color-muted);--pf-background:var(--calepin-color-background);--pf-border:var(--calepin-color-border);--pf-border-focus:color-mix(in srgb, var(--calepin-color-text) 30%, var(--calepin-color-border));--pf-skeleton:var(--calepin-color-border);--pf-skeleton-shine:color-mix(in srgb, var(--calepin-color-border) 65%, var(--calepin-color-background));--pf-hover:color-mix(in srgb, var(--calepin-color-accent) 12%, var(--calepin-color-background));--pf-mark:var(--calepin-color-text);--pf-outline-focus:var(--calepin-color-focus);--pf-error-bg:var(--calepin-color-danger-soft);--pf-error-border:color-mix(in srgb, var(--calepin-color-danger) 36%, var(--calepin-color-border));--pf-error-text:var(--calepin-color-danger);--pf-error-text-secondary:var(--calepin-color-danger)}#calepin-website-sidebar,#calepin-website-sidebar nav,#calepin-website-sidebar nav ul,#calepin-website-sidebar nav li,#calepin-website-sidebar nav li a{text-align:left!important}.calepin-website-sidebar nav{justify-content:flex-start;align-items:flex-start;font-size:.875rem;display:block;text-align:left!important}.calepin-website-sidebar nav ul{flex-direction:column;justify-content:flex-start;align-items:stretch;gap:.3rem;width:100%;min-width:0;margin:0;padding:0;list-style:none;display:flex;text-align:left!important}.calepin-website-sidebar nav li{width:100%;min-width:0;margin:0;padding:0;display:block;text-align:left!important}.calepin-website-sidebar a{box-sizing:border-box;border-radius:var(--calepin-radius-sm);width:100%;max-width:100%;color:inherit;white-space:normal;overflow-wrap:anywhere;word-break:break-all;text-wrap:pretty;hyphens:auto;padding-block:.28rem;padding-inline:.45rem;line-height:1.55;text-decoration:none;display:block;text-align:left!important}.calepin-website-sidebar a:hover,.calepin-website-sidebar a:focus,.calepin-website-sidebar a:active,.calepin-website-sidebar a:visited{color:inherit;background:color-mix(in srgb, var(--calepin-color-accent) 12%, transparent)}.calepin-website-sidebar a.active,.calepin-website-sidebar a[aria-current]{background:color-mix(in srgb, var(--calepin-color-accent) 14%, transparent);color:inherit;font-weight:600}.calepin-website-sidebar-subheading{letter-spacing:.06em;text-transform:uppercase;color:var(--calepin-color-muted);margin:.85rem 0 .25rem;padding-inline:.45rem;font-size:.68rem;font-weight:700;line-height:1.35}.calepin-website-sidebar-subheading:first-child{margin-top:0}.calepin-website-sidebar nav p{letter-spacing:.06em;text-transform:uppercase;color:var(--calepin-color-muted);text-align:left;margin:.85rem 0 .9rem;font-size:.72rem;font-weight:600}.calepin-website-sidebar nav p strong{font-weight:inherit}.calepin-website-sidebar nav p:first-child{margin-top:0}.calepin-website-sidebar nav details{border:none;margin:0;padding:0}.calepin-website-sidebar nav details[open]{margin-bottom:.5rem}.calepin-website-sidebar nav summary{letter-spacing:.06em;text-transform:uppercase;color:var(--calepin-color-muted);font-size:.72rem;font-weight:600;line-height:inherit;cursor:pointer;user-select:none;text-align:left;justify-content:space-between;align-items:center;gap:.35rem;margin:.4rem 0;padding:0;list-style:none;display:flex}.calepin-website-sidebar nav summary::-webkit-details-marker{display:none}.calepin-website-sidebar nav summary:after{content:"";float:none;background-image:none;border-bottom:1.5px solid;border-right:1.5px solid;flex:none;width:.45rem;height:.45rem;margin-right:.3rem;transition:transform .15s;transform:rotate(-45deg)}.calepin-website-sidebar nav details[open]>summary:after{transform:rotate(45deg)}.calepin-website-sidebar nav details[open]>summary{margin-bottom:.55rem}.calepin-website-sidebar nav details:first-child>summary{margin-top:0}.calepin-website-sidebar nav details>ul{margin-bottom:0}.calepin-website-sidebar-subsection{border-inline-start:1px solid var(--calepin-color-border);margin-inline-start:.45rem;padding-inline-start:.5rem}.calepin-website-sidebar-subsection>summary,.calepin-website-sidebar-subsection-title{letter-spacing:0;text-transform:none;font-size:.78rem;font-weight:600}.calepin-website-sidebar nav p.calepin-website-sidebar-subsection-title{margin:.5rem 0 .35rem;padding-inline-start:.5rem}.calepin-site-footer{width:min(100%, var(--calepin-wide-width));border-top:1px solid var(--calepin-color-border);color:var(--calepin-color-muted);margin:0 auto 3.2rem;padding:1.25rem 1rem 0;font-size:.86rem}.calepin-site-footer-inner{max-width:calc(min(100%, var(--calepin-wide-width)) - 2rem);margin:0 auto}.calepin-site-footer-links{flex-wrap:wrap;justify-content:center;gap:.6rem 1rem;margin:0;padding:0;list-style:none;display:flex}.calepin-site-footer-links li{list-style:none}.hero{text-align:center;padding:.5rem 1rem 1.5rem}.calepin-screenshot-block{width:min(100%,400px);max-width:100%;margin:1.2rem auto 2rem}.calepin-screenshot-thumb{box-sizing:border-box;border:1px solid var(--calepin-color-border);cursor:pointer;background:0 0;border-radius:.45rem;width:100%;max-width:100%;padding:0;text-decoration:none;display:block;position:relative;overflow:hidden}.calepin-screenshot-thumb__media{pointer-events:none;width:100%;height:auto;display:block}.calepin-screenshot-thumb__zoom{color:#fff;pointer-events:none;background:#0006;border:1px solid #ffffffa6;border-radius:999px;place-items:center;width:2rem;height:2rem;font-size:.95rem;font-weight:600;line-height:1;display:inline-grid;position:absolute;inset:.6rem .6rem auto auto}.calepin-screenshot-dialog article{width:min(96vw,76rem);max-width:min(96vw,76rem);padding:0;overflow:hidden}.calepin-screenshot-dialog header{border:0;margin:0;padding:.35rem .6rem}.calepin-screenshot-dialog__media{object-fit:contain;aspect-ratio:auto;background:#0f111a;width:100%;min-height:18rem;max-height:85vh;display:block}.hero-wordmark{fill:currentColor;width:min(20rem,82vw);height:auto;margin:0 auto;display:block}.hero-subtitle{justify-content:center;align-items:center;gap:.5rem;margin-top:1rem;font-size:1.4rem;display:flex}.hero-subtitle p{margin:0;font-size:1.4rem;display:inline}.hero-subtitle-text{font-family:var(--calepin-font-heading)}.hero-typst-logo{width:auto;height:1.5em}.hero-tagline{max-width:44ch;margin:.8rem auto .4rem;font-size:1.1rem}.hero-lede{max-width:49ch;color:var(--calepin-color-muted);margin:.2rem auto 1rem}.hero-command{font-family:var(--calepin-font-mono);margin-top:.2rem;display:inline-block}.calepin-website-features{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:.8rem;max-width:72rem;margin:0 auto 1.5rem;display:grid}.calepin-website-feature-card{flex-direction:column;min-height:9.5rem;margin:0;display:flex}.calepin-website-feature-card h4{margin:0 0 .4rem;font-size:1rem;font-weight:600}.calepin-website-feature-card p{color:var(--calepin-color-muted);margin:0}.calepin-website-404{text-align:center;max-width:40rem;margin:3rem auto;padding:0 1rem}.calepin-website-404-code{font-family:var(--calepin-font-mono);color:var(--calepin-color-accent);margin:0;font-size:clamp(4rem,18vw,8rem);font-weight:700;line-height:1}.calepin-website-404-title{margin:.25rem 0 0}.calepin-website-404-lede{max-width:42ch;color:var(--calepin-color-muted);margin:.6rem auto 1.6rem}.calepin-website-404-actions{margin:0 0 1.6rem}.calepin-website-404-links{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.calepin-video-block{width:400px;max-width:100%;margin:1.2rem auto 2rem}.calepin-video-thumb{border:1px solid var(--calepin-color-border);border-radius:var(--calepin-radius-sm);cursor:pointer;background:0 0;width:100%;margin:0;padding:0;display:block;position:relative;overflow:hidden}.calepin-video-thumb__media{aspect-ratio:16/9;object-fit:cover;pointer-events:none;background:#0f111a;width:100%;display:block}.calepin-video-thumb__play{color:#fff;pointer-events:none;background:#00000073;border:2px solid #ffffffb3;border-radius:999px;place-items:center;width:3.4rem;height:3.4rem;font-size:1.3rem;display:grid;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.calepin-video-dialog article{width:min(96vw,76rem);max-width:min(96vw,76rem);padding:0;overflow:hidden}.calepin-video-dialog header{border:0;margin:0;padding:.35rem .6rem}.calepin-video-dialog video{aspect-ratio:16/9;width:100%;display:block}.calepin-website-source-view pre{margin:0;overflow:auto}.calepin-website-pdf-viewer{border:0;width:100%;height:75vh;display:block}@media (width<=70rem){.landing-editor-integration,.landing-product-preview{grid-template-columns:1fr!important}.landing-workflow-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media (width<=56rem){.calepin-website-main--landing{padding-block:2.4rem 3rem}.landing-hero{padding-inline:0;padding-bottom:2.1rem}.landing-hero h2{max-width:34rem;margin-top:1.25rem;font-size:1.12rem}.landing-editor-preview{grid-template-columns:1fr;min-height:auto}.calepin-website-topbar{padding-inline:.75rem}.calepin-website-topbar nav{gap:.5rem}.calepin-website-topbar nav>ul:first-child,.calepin-website-topbar nav>ul:first-child>li:last-child{min-width:0}.calepin-website-topbar .calepin-site-brand-text{text-overflow:ellipsis;white-space:nowrap;max-width:min(46vw,18rem);display:block;overflow:hidden}.calepin-website-nav-toggle{place-items:center;min-width:2.75rem;min-height:2.75rem;padding:.35rem;display:inline-grid}.calepin-website-topbar nav>ul:last-child>li{display:none}.calepin-website-topbar nav>ul:last-child>.calepin-website-mobile-search-item,.calepin-website-topbar nav>ul:last-child>.calepin-website-theme-item{list-style:none;display:block}.calepin-website-search-input{min-width:0}.calepin-website-sidebar nav.calepin-website-mobile-drawer-nav{border-bottom:1px solid var(--calepin-color-border);margin-bottom:1.2rem;padding-bottom:1rem;display:block}.calepin-website-mobile-drawer-nav ul{gap:.2rem}.calepin-website-sidebar .calepin-website-mobile-drawer-nav a{word-break:normal;align-items:center;min-height:2.75rem;padding:.55rem .65rem;font-size:.95rem;display:flex}.calepin-website-mobile-drawer-actions{gap:.65rem;margin-top:.8rem;display:grid}.calepin-website-mobile-drawer-actions .calepin-site-theme-toggle,.calepin-website-mobile-drawer-actions .calepin-website-view-mode,.calepin-website-mobile-drawer-actions .calepin-site-language-picker,.calepin-website-mobile-drawer-actions .calepin-language-picker-button{justify-self:start;width:auto;max-width:100%;min-height:2.75rem}.calepin-website-shell.grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"main"}.calepin-website-toc{display:none}.calepin-website-sidebar{top:var(--calepin-topbar-height);width:var(--calepin-sidebar-mobile-width);height:calc(100vh - var(--calepin-topbar-height));background:var(--calepin-color-background);border-right:1px solid var(--calepin-color-border);z-index:var(--calepin-z-drawer);padding:1rem;transition:transform .18s;position:fixed;left:0;overflow:auto;transform:translate(-105%);box-shadow:0 .75rem 2rem #0003}.calepin-website-shell.nav-open .calepin-website-sidebar{transform:translate(0)}.calepin-website-nav-backdrop{inset:var(--calepin-topbar-height) 0 0 0;opacity:0;pointer-events:none;z-index:var(--calepin-z-backdrop);background:#00000059;transition:opacity .18s;display:block;position:fixed}.calepin-website-shell.nav-open .calepin-website-nav-backdrop{opacity:1;pointer-events:auto}body.calepin-website-nav-open{overflow:hidden}.calepin-website-features{grid-template-columns:1fr}}@media (width<=42rem){.calepin-website-main--landing{width:min(100% - 1.25rem, var(--calepin-wide-width))}.landing-button,.landing-button:visited{padding-inline:.7rem;font-size:.88rem}.landing-command-row{flex-direction:column;align-items:stretch}.landing-command-row code{white-space:normal;word-break:break-word;justify-content:center}.landing-cta-row{flex-direction:column;align-items:stretch}.landing-checklist,.landing-workflow-cards,.site-preview-tiles{grid-template-columns:1fr!important}.landing-product-preview{padding:1rem}.landing-tool-strip{flex-direction:column;align-items:flex-start}.landing-tool-badges{justify-content:flex-start}}@media (width>=56.001rem){.calepin-website-nav-backdrop{display:none}}</style><style>.calepin-theme-switcher{max-width:1120px;color:var(--calepin-color-text);justify-content:flex-end;margin:1rem auto 0;padding:0 1rem}.calepin-theme-button{appearance:none;border:1px solid var(--calepin-color-border);background:var(--calepin-surface-raised);color:inherit;box-shadow:none;border-radius:999px}.calepin-theme-button:hover,.calepin-theme-button:focus-visible{background:var(--calepin-surface-raised);color:inherit}</style><link href=/pagefind/pagefind-component-ui.css rel=stylesheet><pagefind-config bundle-path=/pagefind/></pagefind-config><script>(()=>{let config=document.querySelector(`pagefind-config[bundle-path]`);if(config){let bundlePath=config.getAttribute(`bundle-path`)||``;bundlePath&&!bundlePath.endsWith(`/`)&&(bundlePath+=`/`),config.setAttribute(`bundle-path`,new URL(bundlePath,window.location.href).toString())}})();</script><script src=/pagefind/pagefind-component-ui.js type=module></script><script id=calepin-website-source-data type=application/json>"#set document(title: [Not found])\n#metadata((pdf: false)) \u003cwebsite-metadata\u003e\n\n#title()\n\nThe requested page does not exist.\n"</script><body><header class="calepin-website-topbar calepin-site-topbar"><nav class=calepin-site-nav><ul><li><button aria-label="Toggle navigation menu" class="calepin-website-nav-toggle calepin-nav-toggle outline secondary" aria-controls=calepin-website-sidebar aria-expanded=false type=button><svg viewbox="0 0 24 24" aria-hidden=true fill=none stroke=currentColor stroke-linecap=round stroke-width=2><path d="M4 7h16"></path><path d="M4 12h16"></path><path d="M4 17h16"></path></svg></button><li><a aria-label="Yggdrasil home" class="calepin-site-brand contrast" href=/index.html> <img alt=Yggdrasil class=calepin-site-logo data-inline-svg=1 src=/assets/yggdrasil.svg> </a></ul><ul><li><a aria-label=Home href=/home/index.html>Home</a><li><a aria-label="Computer Science" href=/cs/index.html>Computer Science</a><li><a aria-label=HomeLab href=/homelab/index.html>HomeLab</a><li><a aria-label=Medias href=/medias/index.html>Medias</a><li><a aria-label=Gitea href=https://git.kb28.ch/Klagarge/Yggdrasil><span class=calepin-nav-icon><svg viewbox="0 0 24 24" height=1em width=1em xmlns=http://www.w3.org/2000/svg><path d="M4.209 4.603c-.247 0-.525.02-.84.088c-.333.07-1.28.283-2.054 1.027C-.403 7.25.035 9.685.089 10.052c.065.446.263 1.687 1.21 2.768c1.749 2.141 5.513 2.092 5.513 2.092s.462 1.103 1.168 2.119c.955 1.263 1.936 2.248 2.89 2.367c2.406 0 7.212-.004 7.212-.004s.458.004 1.08-.394c.535-.324 1.013-.893 1.013-.893s.492-.527 1.18-1.73c.21-.37.385-.729.538-1.068c0 0 2.107-4.471 2.107-8.823c-.042-1.318-.367-1.55-.443-1.627c-.156-.156-.366-.153-.366-.153s-4.475.252-6.792.306c-.508.011-1.012.023-1.512.027v4.474l-.634-.301c0-1.39-.004-4.17-.004-4.17c-1.107.016-3.405-.084-3.405-.084s-5.399-.27-5.987-.324c-.187-.011-.401-.032-.648-.032zm.354 1.832h.111s.271 2.269.6 3.597C5.549 11.147 6.22 13 6.22 13s-.996-.119-1.641-.348c-.99-.324-1.409-.714-1.409-.714s-.73-.511-1.096-1.52C1.444 8.73 2.021 7.7 2.021 7.7s.32-.859 1.47-1.145c.395-.106.863-.12 1.072-.12m8.33 2.554c.26.003.509.127.509.127l.868.422l-.529 1.075a.69.69 0 0 0-.614.359a.69.69 0 0 0 .072.756l-.939 1.924a.69.69 0 0 0-.66.527a.69.69 0 0 0 .347.763a.686.686 0 0 0 .867-.206a.69.69 0 0 0-.069-.882l.916-1.874a.7.7 0 0 0 .237-.02a.66.66 0 0 0 .271-.137a9 9 0 0 1 1.016.512a.76.76 0 0 1 .286.282c.073.21-.073.569-.073.569c-.087.29-.702 1.55-.702 1.55a.69.69 0 0 0-.676.477a.681.681 0 1 0 1.157-.252c.073-.141.141-.282.214-.431c.19-.397.515-1.16.515-1.16c.035-.066.218-.394.103-.814c-.095-.435-.48-.638-.48-.638c-.467-.301-1.116-.58-1.116-.58s0-.156-.042-.27a.7.7 0 0 0-.148-.241l.516-1.062l2.89 1.401s.48.218.583.619c.073.282-.019.534-.069.657c-.24.587-2.1 4.317-2.1 4.317s-.232.554-.748.588a1.1 1.1 0 0 1-.393-.045l-.202-.08l-4.31-2.1s-.417-.218-.49-.596c-.083-.31.104-.691.104-.691l2.073-4.272s.183-.37.466-.497a.9.9 0 0 1 .35-.077" fill=currentColor /></svg></span></a><li class=calepin-website-theme-item><button aria-label=Theme class=calepin-site-theme-toggle data-calepin-theme-param=theme data-calepin-theme-storage-key=calepin-website-theme data-calepin-theme-toggle title=Theme type=button>Theme</button><li class=calepin-website-search-item><form class=calepin-website-search data-calepin-search-form role=search><input aria-label="Search documentation" aria-expanded=false aria-haspopup=listbox autocomplete=off class=calepin-website-search-input data-calepin-search-input placeholder=Search spellcheck=false type=search><div aria-label="Search results" class=calepin-website-search-results data-calepin-search-results hidden role=listbox></div></form><li class=calepin-website-mobile-search-item><button aria-label="Search documentation" class="calepin-website-mobile-search-button outline secondary" data-calepin-mobile-search-trigger title=Search type=button><svg viewbox="0 0 24 24" aria-hidden=true fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><circle cx=11 cy=11 r=7></circle><path d="m20 20-3.5-3.5"></path></svg></button><li class=calepin-website-view-mode-item><select aria-label="Choose page view" class=calepin-website-view-mode data-calepin-view-mode id=calepin-website-view-mode><option value=rendered>HTML<option value=source>Source</select></ul></nav></header><div class="calepin-website-shell grid"><div aria-hidden=true class=calepin-website-nav-backdrop></div><aside class=calepin-website-sidebar id=calepin-website-sidebar><nav aria-label="Site navigation" class=calepin-website-mobile-drawer-nav><p><strong>Site</strong><ul><li><a aria-label=Home href=/home/index.html>Home</a><li><a aria-label="Computer Science" href=/cs/index.html>Computer Science</a><li><a aria-label=HomeLab href=/homelab/index.html>HomeLab</a><li><a aria-label=Medias href=/medias/index.html>Medias</a><li><a aria-label=Gitea href=https://git.kb28.ch/Klagarge/Yggdrasil><span class=calepin-nav-icon><svg viewbox="0 0 24 24" height=1em width=1em xmlns=http://www.w3.org/2000/svg><path d="M4.209 4.603c-.247 0-.525.02-.84.088c-.333.07-1.28.283-2.054 1.027C-.403 7.25.035 9.685.089 10.052c.065.446.263 1.687 1.21 2.768c1.749 2.141 5.513 2.092 5.513 2.092s.462 1.103 1.168 2.119c.955 1.263 1.936 2.248 2.89 2.367c2.406 0 7.212-.004 7.212-.004s.458.004 1.08-.394c.535-.324 1.013-.893 1.013-.893s.492-.527 1.18-1.73c.21-.37.385-.729.538-1.068c0 0 2.107-4.471 2.107-8.823c-.042-1.318-.367-1.55-.443-1.627c-.156-.156-.366-.153-.366-.153s-4.475.252-6.792.306c-.508.011-1.012.023-1.512.027v4.474l-.634-.301c0-1.39-.004-4.17-.004-4.17c-1.107.016-3.405-.084-3.405-.084s-5.399-.27-5.987-.324c-.187-.011-.401-.032-.648-.032zm.354 1.832h.111s.271 2.269.6 3.597C5.549 11.147 6.22 13 6.22 13s-.996-.119-1.641-.348c-.99-.324-1.409-.714-1.409-.714s-.73-.511-1.096-1.52C1.444 8.73 2.021 7.7 2.021 7.7s.32-.859 1.47-1.145c.395-.106.863-.12 1.072-.12m8.33 2.554c.26.003.509.127.509.127l.868.422l-.529 1.075a.69.69 0 0 0-.614.359a.69.69 0 0 0 .072.756l-.939 1.924a.69.69 0 0 0-.66.527a.69.69 0 0 0 .347.763a.686.686 0 0 0 .867-.206a.69.69 0 0 0-.069-.882l.916-1.874a.7.7 0 0 0 .237-.02a.66.66 0 0 0 .271-.137a9 9 0 0 1 1.016.512a.76.76 0 0 1 .286.282c.073.21-.073.569-.073.569c-.087.29-.702 1.55-.702 1.55a.69.69 0 0 0-.676.477a.681.681 0 1 0 1.157-.252c.073-.141.141-.282.214-.431c.19-.397.515-1.16.515-1.16c.035-.066.218-.394.103-.814c-.095-.435-.48-.638-.48-.638c-.467-.301-1.116-.58-1.116-.58s0-.156-.042-.27a.7.7 0 0 0-.148-.241l.516-1.062l2.89 1.401s.48.218.583.619c.073.282-.019.534-.069.657c-.24.587-2.1 4.317-2.1 4.317s-.232.554-.748.588a1.1 1.1 0 0 1-.393-.045l-.202-.08l-4.31-2.1s-.417-.218-.49-.596c-.083-.31.104-.691.104-.691l2.073-4.272s.183-.37.466-.497a.9.9 0 0 1 .35-.077" fill=currentColor /></svg></span></a></ul><div aria-label="Site controls" class=calepin-website-mobile-drawer-actions><button aria-label=Theme class=calepin-site-theme-toggle data-calepin-theme-param=theme data-calepin-theme-storage-key=calepin-website-theme data-calepin-theme-toggle title=Theme type=button>Theme</button><select aria-label="Choose page view" class=calepin-website-view-mode data-calepin-view-mode><option value=rendered>HTML<option value=source>Source</select></div></nav><nav aria-label=Documentation><details class=calepin-website-sidebar-section data-calepin-sidebar-depth=0><summary>Home</summary> <ul><li class=calepin-website-sidebar-link><a aria-label=Overview href=/home/index.html>Overview</a><li class=calepin-website-sidebar-link><a aria-label=Cooking href=/home/cooking.html>Cooking</a><li class=calepin-website-sidebar-link><a aria-label=Gardening href=/home/gardening.html>Gardening</a></ul></details><details class=calepin-website-sidebar-section data-calepin-sidebar-depth=0><summary>Computer Science</summary> <ul><li class=calepin-website-sidebar-link><a aria-label=Overview href=/cs/index.html>Overview</a></ul></details><details class=calepin-website-sidebar-section data-calepin-sidebar-depth=0><summary>HomeLab</summary> <ul><li class=calepin-website-sidebar-link><a aria-label=Overview href=/homelab/index.html>Overview</a><li class=calepin-website-sidebar-link><a aria-label=Backup href=/homelab/backup.html>Backup</a></ul></details><details class=calepin-website-sidebar-section data-calepin-sidebar-depth=0><summary>Medias</summary> <ul><li class=calepin-website-sidebar-link><a aria-label=Overview href=/medias/index.html>Overview</a><li class=calepin-website-sidebar-link><a aria-label=Plex href=/medias/plex.html>Plex</a></ul> <details class="calepin-website-sidebar-section calepin-website-sidebar-subsection" data-calepin-sidebar-depth=1><summary>Films</summary> <ul><li class=calepin-website-sidebar-link><a aria-label=H2G2 href=/medias/films/h2g2.html>H2G2</a></ul></details> <details class="calepin-website-sidebar-section calepin-website-sidebar-subsection" data-calepin-sidebar-depth=1><summary>Series</summary> <ul><li class=calepin-website-sidebar-link><a aria-label="The Expanse" href=/medias/series/the_expanse.html>The Expanse</a></ul></details> <details class="calepin-website-sidebar-section calepin-website-sidebar-subsection" data-calepin-sidebar-depth=1><summary>Books</summary> <ul><li class=calepin-website-sidebar-link><a aria-label="Le Grand Cahier" href=/medias/books/le_grand_cahier.html>Le Grand Cahier</a></ul></details></details></nav></aside><main class="calepin-website-main calepin-content" data-pagefind-body><h1 id=not-found>Not found</h1><p>The requested page does not exist.</main></div><footer aria-label="Site footer" class=calepin-site-footer><div class=calepin-site-footer-inner><ul aria-label="Footer links" class=calepin-site-footer-links><li><span>© 2026</span><li><a aria-label=@Klagarge href=https://git.kb28.ch/Klagarge>@Klagarge</a><li><a aria-label=@Fastium href=https://github.com/Fastium>@Fastium</a></ul></div></footer><pagefind-modal></pagefind-modal><script>(()=>{let buttons=document.querySelectorAll(`[data-calepin-theme-toggle], #calepin-theme-button`);if(!buttons.length)return;let order=[``,`light`,`dark`],labels={"":`Theme: Auto`,light:`Theme: Light`,dark:`Theme: Dark`},icons={"":`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"></circle><path d="M12 3a9 9 0 0 0 0 18" fill="currentColor" opacity="0.32" stroke="none"></path></svg>`,light:`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg>`,dark:`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.99 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 20.99 12.79z"></path></svg>`},normalize=value=>value===`light`||value===`dark`?value:``,root=document.documentElement,media=window.matchMedia?window.matchMedia(`(prefers-color-scheme: dark)`):null,storageKey=button=>button.dataset.calepinThemeStorageKey||`calepin-theme`,urlParam=button=>button.dataset.calepinThemeParam||`theme`,systemTheme=()=>media&&media.matches?`dark`:`light`;function readUrl(button){let param=urlParam(button);if(!param)return``;try{return normalize(new URL(window.location.href).searchParams.get(param)||``)}catch{return``}}function clearUrl(button){let param=urlParam(button);if(param)try{let url=new URL(window.location.href);url.searchParams.delete(param),window.history.replaceState({},``,url.toString())}catch{}}function readStored(button){try{return normalize(localStorage.getItem(storageKey(button))||``)}catch{return``}}function writeStored(button,value){try{value?localStorage.setItem(storageKey(button),value):localStorage.removeItem(storageKey(button))}catch{}}function readTheme(button){let fromUrl=readUrl(button);return fromUrl?(writeStored(button,fromUrl),clearUrl(button),fromUrl):readStored(button)}function applyTheme(value){let mode=normalize(value),theme=mode||systemTheme();root.dataset.calepinThemeMode=mode,root.dataset.theme=theme,root.style.colorScheme=theme,buttons.forEach(button=>{let label=labels[mode]||labels[``];button.innerHTML=icons[mode]||icons[``],button.setAttribute(`aria-label`,label),button.setAttribute(`title`,label)})}if(applyTheme(readTheme(buttons[0])),buttons.forEach(button=>{button.dataset.calepinThemeBound!==`true`&&(button.dataset.calepinThemeBound=`true`,button.addEventListener(`click`,()=>{let current=normalize(root.dataset.calepinThemeMode||``),next=order[(order.indexOf(current)+1)%order.length];applyTheme(next),writeStored(button,next)}))}),window.addEventListener(`pageshow`,event=>{event.persisted&&applyTheme(readTheme(buttons[0]))}),window.addEventListener(`storage`,event=>{event.key===storageKey(buttons[0])&&applyTheme(readStored(buttons[0]))}),media){let updateSystemTheme=()=>{normalize(root.dataset.calepinThemeMode||``)||applyTheme(``)};media.addEventListener?media.addEventListener(`change`,updateSystemTheme):media.addListener&&media.addListener(updateSystemTheme)}})();</script><script>(()=>{let selects=document.querySelectorAll(`select[data-calepin-language-picker]`);if(!selects.length)return;function escapeHtml(value){return String(value).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`)}function closeAll(except){document.querySelectorAll(`.calepin-language-picker.is-open`).forEach(picker=>{if(picker===except)return;picker.classList.remove(`is-open`),picker.open=!1;let summary=picker.querySelector(`summary`);summary&&summary.setAttribute(`aria-expanded`,`false`)})}function enhance(select){if(select.dataset.calepinLanguageBound===`true`)return;select.dataset.calepinLanguageBound=`true`;let options=Array.from(select.options).filter(option=>option.value);if(options.length<=1)return;let selected=options.find(option=>option.selected)||options[0],picker=document.createElement(`details`);picker.className=`calepin-language-picker dropdown`;let summary=document.createElement(`summary`);summary.className=`calepin-language-picker-button`,summary.setAttribute(`role`,`button`),summary.setAttribute(`aria-haspopup`,`menu`),summary.setAttribute(`aria-expanded`,`false`),summary.setAttribute(`aria-label`,select.getAttribute(`aria-label`)||`Language`),summary.innerHTML=`<span>${escapeHtml(selected.textContent)}</span>`;let menu=document.createElement(`ul`);menu.className=`calepin-language-picker-menu`,menu.setAttribute(`role`,`menu`),options.forEach(option=>{let li=document.createElement(`li`),item=document.createElement(`a`);item.href=option.value,item.setAttribute(`role`,`menuitem`),item.innerHTML=`<span>${escapeHtml(option.textContent)}</span>`,option.selected&&item.setAttribute(`aria-current`,`true`),li.appendChild(item),menu.appendChild(li)}),picker.addEventListener(`toggle`,()=>{picker.open&&closeAll(picker),picker.classList.toggle(`is-open`,picker.open),summary.setAttribute(`aria-expanded`,picker.open?`true`:`false`)}),picker.append(summary,menu),select.hidden=!0,select.insertAdjacentElement(`afterend`,picker)}selects.forEach(enhance),document.addEventListener(`click`,event=>{event.target.closest(`.calepin-language-picker`)||closeAll()}),document.addEventListener(`keydown`,event=>{event.key===`Escape`&&closeAll()})})();</script><script>(()=>{let selector=window.CalepinCopyCode?.selector||`div.sourceCode, pre.sourceCode, .cell-output, .cell-output-stdout, .cell-output-stderr`,buttonClass=window.CalepinCopyCode?.buttonClass||`calepin-copy-code`,copiedClass=window.CalepinCopyCode?.copiedClass||`copied`,icon=window.CalepinCopyCode?.icon||`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>`,copiedIcon=window.CalepinCopyCode?.copiedIcon||`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17 4 12"></path></svg>`;function copyText(text){if(navigator.clipboard?.writeText)return navigator.clipboard.writeText(text);let textarea=document.createElement(`textarea`);textarea.value=text,textarea.setAttribute(`readonly`,``),textarea.style.position=`fixed`,textarea.style.opacity=`0`,document.body.appendChild(textarea),textarea.select();try{document.execCommand(`copy`)}finally{textarea.remove()}return Promise.resolve()}function codeText(node){return node?node.nodeType===Node.TEXT_NODE?node.nodeValue||``:node.nodeType===Node.ELEMENT_NODE?node.tagName===`BR`?`
|
||
`:Array.from(node.childNodes).map(codeText).join(``):``:``}document.querySelectorAll(selector).forEach(block=>{if(block.dataset.calepinCopyBound===`true`||block.querySelector(`:scope > .${buttonClass}`))return;block.dataset.calepinCopyBound=`true`;let button=document.createElement(`button`);button.type=`button`,button.className=buttonClass,button.setAttribute(`aria-label`,`Copy code`),button.setAttribute(`title`,`Copy code`),button.innerHTML=icon;let restoreTimeout=null;button.addEventListener(`click`,async()=>{restoreTimeout!==null&&(window.clearTimeout(restoreTimeout),restoreTimeout=null);let text=codeText(block.querySelector(`pre code, code, pre`));try{await copyText(text),button.classList.add(copiedClass),button.innerHTML=copiedIcon,restoreTimeout=window.setTimeout(()=>{button.classList.remove(copiedClass),button.innerHTML=icon,restoreTimeout=null},900)}catch{button.classList.remove(copiedClass),button.innerHTML=icon}}),block.prepend(button)})})();</script><script>(()=>{let pagefindModal=()=>document.querySelector(`pagefind-modal`);function modalSearchInput(modal){return modal?modal.querySelector(`pagefind-input input, input[type='search'], input`):null}function setModalSearchQuery(modal,query){if(!query)return!1;let input=modalSearchInput(modal);return input?(input.value=query,input.dispatchEvent(new Event(`input`,{bubbles:!0})),!0):!1}function focusModalSearch(modal){let input=modalSearchInput(modal);return input?(input.focus(),!0):!1}async function openPagefindSearch(query){let modal=pagefindModal();if(!modal)return!1;if(typeof modal.open!=`function`&&window.customElements?.whenDefined)try{await window.customElements.whenDefined(`pagefind-modal`)}catch{}if(typeof modal.open!=`function`)return!1;modal.open();let sync=()=>{let hasQuery=setModalSearchQuery(modal,query),hasFocus=focusModalSearch(modal);return hasQuery||hasFocus};return sync()||requestAnimationFrame(()=>{sync()||window.setTimeout(sync,50)}),!0}function isTextEntryElement(element){return element?element.isContentEditable||element.tagName===`INPUT`||element.tagName===`SELECT`||element.tagName===`TEXTAREA`:!1}let SEARCH_SUGGESTION_LIMIT=20,SEARCH_SUBRESULT_LIMIT=3,SEARCH_SUGGESTION_MIN_LENGTH=2,SEARCH_SUGGESTION_DELAY=160,pagefindModulePromise=null;function pagefindBundlePath(){let script=document.querySelector(`script[src$="pagefind-component-ui.js"], script[src$="pagefind-ui.js"]`);return script?.src?new URL(`./`,script.src).toString():new URL(`pagefind/`,window.location.href).toString()}function loadPagefindModule(){return pagefindModulePromise||=import(`${pagefindBundlePath()}pagefind.js`),pagefindModulePromise}function plainTextFromHtml(html){let element=document.createElement(`div`);return element.innerHTML=html||``,element.textContent?.trim()||``}function setSearchResultsOpen(input,results,isOpen){results.hidden=!isOpen,input.setAttribute(`aria-expanded`,String(isOpen))}function clearSearchResults(input,results){results.innerHTML=``,setSearchResultsOpen(input,results,!1)}function renderSearchMessage(input,results,message){results.innerHTML=``;let item=document.createElement(`p`);item.className=`calepin-website-search-empty`,item.textContent=message,results.appendChild(item),setSearchResultsOpen(input,results,!0)}function renderSearchResults(input,results,items){if(results.innerHTML=``,!items.length){renderSearchMessage(input,results,`No results`);return}let basePathPrefix=localCanonicalBasePathPrefix(),addSearchLink=(item,className,titleClassName,excerptClassName)=>{let href=hrefWithoutLocalBasePath(item.meta?.url||item.url||``,basePathPrefix);if(!href)return null;let link=document.createElement(`a`);link.className=className,link.href=href,link.setAttribute(`role`,`option`);let title=document.createElement(`span`);title.className=titleClassName,title.textContent=item.meta?.title||item.title||href,link.appendChild(title);let excerptText=plainTextFromHtml(item.excerpt||item.content||``);if(excerptText){let excerpt=document.createElement(`span`);excerpt.className=excerptClassName,excerpt.textContent=excerptText,link.appendChild(excerpt)}return link};for(let item of items){let link=addSearchLink(item,`calepin-website-search-result`,`calepin-website-search-result-title`,`calepin-website-search-result-excerpt`);if(!link)continue;results.appendChild(link);let subResults=Array.isArray(item.sub_results)?item.sub_results.slice(0,3):[];if(!subResults.length)continue;let nested=document.createElement(`div`);nested.className=`calepin-website-search-subresults`;for(let subResult of subResults){let subLink=addSearchLink(subResult,`calepin-website-search-subresult`,`calepin-website-search-subresult-title`,`calepin-website-search-subresult-excerpt`);subLink&&nested.appendChild(subLink)}nested.children.length&&results.appendChild(nested)}setSearchResultsOpen(input,results,!!results.children.length)}function initMobileSearchTriggers(){document.querySelectorAll(`[data-calepin-mobile-search-trigger]`).forEach(button=>{button.dataset.calepinSearchBound!==`true`&&(button.dataset.calepinSearchBound=`true`,button.addEventListener(`click`,event=>{event.preventDefault(),openPagefindSearch(``)}))})}function initNavbarSearch(){let input=document.querySelector(`[data-calepin-search-input]`);if(!input)return;let form=input.closest(`[data-calepin-search-form]`),results=document.querySelector(`[data-calepin-search-results]`),opening=!1,searchTimer=0,searchToken=0,openFromInput=async()=>{if(!opening){opening=!0;try{let opened=await openPagefindSearch(input.value.trim());opened&&(input.value=``),opened&&results&&clearSearchResults(input,results)}finally{opening=!1}}},scheduleSuggestions=()=>{if(!results)return;window.clearTimeout(searchTimer);let query=input.value.trim(),token=++searchToken;if(query.length<2){clearSearchResults(input,results);return}searchTimer=window.setTimeout(async()=>{try{let search=await(await loadPagefindModule()).search(query);if(token!==searchToken||input.value.trim()!==query)return;let items=await Promise.all(search.results.slice(0,20).map(result=>result.data()));if(token!==searchToken||input.value.trim()!==query)return;renderSearchResults(input,results,items)}catch{token===searchToken&&renderSearchMessage(input,results,`Search unavailable`)}},160)};form?.addEventListener(`submit`,event=>{event.preventDefault(),openFromInput()}),input.addEventListener(`input`,scheduleSuggestions),input.addEventListener(`focus`,scheduleSuggestions),input.addEventListener(`keydown`,event=>{event.key===`Enter`?(event.preventDefault(),openFromInput()):event.key===`Escape`&&(results&&clearSearchResults(input,results),input.blur())}),document.addEventListener(`click`,event=>{!results||form?.contains(event.target)||clearSearchResults(input,results)}),document.addEventListener(`keydown`,event=>{!(/Mac|iPhone|iPad|iPod/.test(window.navigator.platform)?event.metaKey:event.ctrlKey)||event.altKey||event.shiftKey||event.key.toLowerCase()!==`k`||isTextEntryElement(document.activeElement)||(event.preventDefault(),input.focus())})}function isLoopbackHost(hostname){return hostname===`localhost`||hostname===`127.0.0.1`||hostname===`0.0.0.0`||hostname===`::1`||hostname===`[::1]`}function localCanonicalBasePathPrefix(){if(!isLoopbackHost(window.location.hostname))return``;let canonical=document.querySelector(`link[rel="canonical"]`)?.href;if(!canonical)return``;try{let canonicalPath=new URL(canonical).pathname,currentPath=window.location.pathname||`/`;if(canonicalPath===currentPath)return``;if(canonicalPath.endsWith(currentPath))return canonicalPath.slice(0,-currentPath.length).replace(/\/$/,``);if(canonicalPath.endsWith(`/index.html`)){let indexPath=currentPath.endsWith(`/`)?`${currentPath}index.html`:currentPath;if(canonicalPath.endsWith(indexPath))return canonicalPath.slice(0,-indexPath.length).replace(/\/$/,``)}}catch{return``}return``}function hrefWithoutLocalBasePath(href,basePathPrefix){if(!href||!basePathPrefix)return href;try{let url=new URL(href,window.location.href);return url.origin!==window.location.origin||url.pathname!==basePathPrefix&&!url.pathname.startsWith(`${basePathPrefix}/`)?href:(url.pathname=url.pathname.slice(basePathPrefix.length)||`/`,url.toString())}catch{return href}}function initPagefindLocalLinks(){let basePathPrefix=localCanonicalBasePathPrefix();if(!basePathPrefix)return;let selector=`pagefind-modal a[href], pagefind-searchbox a[href], .calepin-website-search-results a[href]`,normalizeLinks=()=>{document.querySelectorAll(selector).forEach(link=>{let next=hrefWithoutLocalBasePath(link.getAttribute(`href`),basePathPrefix);next&&next!==link.getAttribute(`href`)&&link.setAttribute(`href`,next)})};document.addEventListener(`click`,event=>{let link=event.target.closest(selector);if(!link)return;let next=hrefWithoutLocalBasePath(link.getAttribute(`href`),basePathPrefix);!next||next===link.getAttribute(`href`)||(event.preventDefault(),window.location.href=next)}),normalizeLinks(),new MutationObserver(normalizeLinks).observe(document.body,{childList:!0,subtree:!0})}(document.querySelector(`pagefind-modal`)||document.querySelector(`pagefind-searchbox`)||document.querySelector(`[data-calepin-search-input]`)||document.querySelector(`[data-calepin-search-results]`)||document.querySelector(`[data-calepin-mobile-search-trigger]`)||document.querySelector(`.calepin-website-search-results`))&&(initMobileSearchTriggers(),initNavbarSearch(),initPagefindLocalLinks())})();</script><script>(()=>{let toc=document.querySelector(`.calepin-website-toc`);if(!toc)return;let entries=Array.from(toc.querySelectorAll(`a[href^="#"]`)).map(link=>{let id=decodeURIComponent(link.hash.slice(1));return{link,heading:document.getElementById(id)}}).filter(entry=>entry.heading);if(!entries.length)return;let activeLink=null,ticking=!1;function revealInToc(link){let tocBox=toc.getBoundingClientRect(),linkBox=link.getBoundingClientRect(),padding=12;linkBox.top<tocBox.top+12?toc.scrollBy({top:linkBox.top-tocBox.top-12,behavior:`smooth`}):linkBox.bottom>tocBox.bottom-12&&toc.scrollBy({top:linkBox.bottom-tocBox.bottom+12,behavior:`smooth`})}function setActive(link){link!==activeLink&&(activeLink?.classList.remove(`active`),activeLink?.removeAttribute(`aria-current`),activeLink=link,activeLink.classList.add(`active`),activeLink.setAttribute(`aria-current`,`location`),revealInToc(activeLink))}function update(){let threshold=(document.querySelector(`.calepin-website-topbar, .academic-topbar`)?.offsetHeight||0)+24,current=entries[0];for(let entry of entries){if(entry.heading.getBoundingClientRect().top>threshold)break;current=entry}setActive(current.link),ticking=!1}function requestUpdate(){ticking||(ticking=!0,window.requestAnimationFrame(update))}window.addEventListener(`scroll`,requestUpdate,{passive:!0}),window.addEventListener(`resize`,requestUpdate),window.addEventListener(`hashchange`,requestUpdate),requestUpdate()})();</script><script>/* Calepin website behaviour, consolidated.
|
||
*
|
||
* One module-local script wires: view switcher (HTML/Source/PDF), the mobile
|
||
* sidebar drawer, sidebar section folding, inline SVGs, internal link state
|
||
* preservation, the native <dialog> video lightbox, and the Pagefind navbar
|
||
* search bridge.
|
||
*
|
||
* The Rust theme loader links this file near the end of the page body, so
|
||
* the DOM already exists when it runs and no DOMContentLoaded guard is
|
||
* needed. */
|
||
(()=>{if(!document.querySelector(`.calepin-website-topbar, .calepin-website-main, pagefind-modal, img[data-inline-svg], [data-video-dialog], [data-lightbox-dialog]`))return;let VIEW={param:`view`,rendered:`rendered`,source:`source`,pdf:`pdf`},MOBILE_QUERY=`(max-width: 56rem)`,SOURCE_DATA_ID=`calepin-website-source-data`,isMobile=()=>window.matchMedia(`(max-width: 56rem)`).matches,isPlainLeftClick=event=>event&&event.button===0&&!event.metaKey&&!event.ctrlKey&&!event.shiftKey&&!event.altKey,isInternalPageHref=href=>!!href&&!href.startsWith(`#`)&&!href.startsWith(`http://`)&&!href.startsWith(`https://`)&&!href.startsWith(`//`)&&!href.startsWith(`mailto:`)&&!href.startsWith(`tel:`);function setUrlParam(url,name,value){value?url.searchParams.set(name,value):url.searchParams.delete(name)}function readUrlParam(name,normalize,fallback=``){try{return normalize((new URL(window.location.href).searchParams.get(name)||``).toLowerCase())}catch{return fallback}}function updateCurrentUrlParam(name,value){try{let url=new URL(window.location.href);setUrlParam(url,name,value),window.history.replaceState({},``,url.toString())}catch{}}let getMain=()=>document.querySelector(`.calepin-website-main`),normalizeView=value=>value===VIEW.source||value===VIEW.pdf?value:VIEW.rendered;function currentView(selects){let select=Array.isArray(selects)?selects[0]:selects;return normalizeView(select&&select.value||VIEW.rendered)}function pageAssetCandidates(extension){let{pathname}=window.location;return pathname.endsWith(`/`)?[`${pathname}index.${extension}`]:pathname.endsWith(`.html`)?[`${pathname.slice(0,-5)}.${extension}`]:!pathname||pathname.endsWith(`.`)?[`index.${extension}`]:pathname.includes(`.`)?[`${pathname}.${extension}`]:[`${pathname}/index.${extension}`]}function replaceMainContent(node){let main=getMain();return main?(main.innerHTML=``,main.appendChild(node),!0):!1}function showMainFallback(message){let main=getMain();if(!main)return;let fallback=document.createElement(`p`);fallback.textContent=message,main.prepend(fallback)}function renderSourceText(text){let container=document.createElement(`div`);container.className=`calepin-website-source-view`;let pre=document.createElement(`pre`),code=document.createElement(`code`);code.className=`language-typ`,code.textContent=text,pre.appendChild(code),container.appendChild(pre),replaceMainContent(container)}async function renderSourceMode(){let element=document.getElementById(`calepin-website-source-data`);if(element)try{let inline=JSON.parse(element.textContent||``);if(typeof inline==`string`&&inline.length>0){renderSourceText(inline);return}}catch{}for(let sourcePath of pageAssetCandidates(`typ`))try{let response=await fetch(sourcePath);if(!response.ok)continue;renderSourceText(await response.text());return}catch{}showMainFallback(`Could not load source view.`)}async function renderPdfMode(){let isLocal=window.location.protocol===`file:`;for(let pdfPath of pageAssetCandidates(`pdf`)){if(!isLocal)try{let response=await fetch(pdfPath,{method:`HEAD`});if(!response.ok&&response.status!==405)continue}catch{}let viewer=document.createElement(`iframe`);viewer.className=`calepin-website-pdf-viewer`;try{viewer.src=new URL(pdfPath,window.location.href).toString()}catch{viewer.src=pdfPath}viewer.setAttribute(`title`,`Page PDF view`),viewer.setAttribute(`loading`,`lazy`),replaceMainContent(viewer);return}showMainFallback(`Could not load PDF view.`)}function applyView(mode,selects){let value=normalizeView(mode);(Array.isArray(selects)?selects:[selects]).filter(Boolean).forEach(select=>{select.value=value}),updateCurrentUrlParam(VIEW.param,value===VIEW.rendered?``:value),value===VIEW.source?renderSourceMode():value===VIEW.pdf&&renderPdfMode()}function initView(selects){let viewSelects=(Array.isArray(selects)?selects:[selects]).filter(Boolean);applyView(readUrlParam(VIEW.param,normalizeView,VIEW.rendered),viewSelects),viewSelects.forEach(select=>{select.dataset.calepinBound||(select.dataset.calepinBound=`true`,select.addEventListener(`change`,event=>{let value=normalizeView(event.target.value),url=new URL(window.location.href);setUrlParam(url,VIEW.param,value===VIEW.rendered?``:value),window.location.href=url.toString()}))})}
|
||
// ----------------------------------------------------------- nav drawer
|
||
function createNav(){let shell=document.querySelector(`.calepin-website-shell`),backdrop=document.querySelector(`.calepin-website-nav-backdrop`),toggle=document.querySelector(`.calepin-website-nav-toggle`);function setOpen(isOpen){!shell||!toggle||(shell.classList.toggle(`nav-open`,isOpen),document.body.classList.toggle(`calepin-website-nav-open`,isOpen),toggle.setAttribute(`aria-expanded`,String(isOpen)),backdrop&&backdrop.setAttribute(`aria-hidden`,String(!isOpen)))}let close=()=>setOpen(!1);return toggle&&toggle.addEventListener(`click`,event=>{event.preventDefault(),isMobile()&&shell&&setOpen(!shell.classList.contains(`nav-open`))}),backdrop?.addEventListener(`click`,close),document.addEventListener(`keydown`,event=>{event.key===`Escape`&&close()}),window.addEventListener(`resize`,()=>{isMobile()||close()}),{close}}
|
||
// ------------------------------------------------------ sidebar sections
|
||
// Only one section is open at a time, but "section" means siblings: opening a
|
||
// nested subsection must not fold the parent it lives in, and must only fold
|
||
// its own siblings.
|
||
function initSidebarSections(){let sections=Array.from(document.querySelectorAll(`.calepin-website-sidebar-section`));sections.length<2||sections.forEach(section=>{section.addEventListener(`toggle`,()=>{section.open&§ions.forEach(other=>{other!==section&&other.parentElement===section.parentElement&&other.removeAttribute(`open`)})})})}
|
||
// ------------------------------------------------------------- inline svg
|
||
function svgTextFromSource(src){if(!src)return Promise.resolve(``);let prefix=`data:image/svg+xml`;if(src.startsWith(prefix)){let payload=src.slice(src.indexOf(`,`)+1);try{return Promise.resolve(src.startsWith(`${prefix};base64,`)?atob(payload):decodeURIComponent(payload))}catch{return Promise.resolve(payload)}}return fetch(src).then(response=>response.text()).catch(()=>``)}function inlineSvgImage(image){return svgTextFromSource(image.getAttribute(`src`)).then(text=>{if(!text)return;let svg=new DOMParser().parseFromString(text,`image/svg+xml`).querySelector(`svg`);if(!svg)return;svg.removeAttribute(`xmlns:xlink`),svg.removeAttribute(`width`),svg.removeAttribute(`height`),image.className&&svg.setAttribute(`class`,image.className),image.id&&svg.setAttribute(`id`,image.id);let style=image.getAttribute(`style`);style&&svg.setAttribute(`style`,style);let alt=image.getAttribute(`alt`);alt&&(svg.setAttribute(`aria-label`,alt),svg.setAttribute(`role`,`img`));let ariaHidden=image.getAttribute(`aria-hidden`);ariaHidden!==null&&svg.setAttribute(`aria-hidden`,ariaHidden),image.replaceWith(svg)})}function inlineSvgs(){document.querySelectorAll(`img[data-inline-svg]`).forEach(image=>inlineSvgImage(image))}
|
||
// --------------------------------------------------------- link state
|
||
function urlWithState(href,viewSelect){if(!isInternalPageHref(href))return href;try{let url=new URL(href,window.location.href),view=currentView(viewSelect);return setUrlParam(url,VIEW.param,view===VIEW.rendered?``:view),url.toString()}catch{return href}}function preserveStateInLinks(viewSelect){document.querySelectorAll(`a[href]`).forEach(link=>{let href=link.getAttribute(`href`);if(!isInternalPageHref(href))return;let next=urlWithState(href,viewSelect);next&&next!==href&&link.setAttribute(`href`,next)})}function initLinkInterception(nav,viewSelect){document.addEventListener(`click`,event=>{let tocLink=event.target.closest(`.calepin-website-toc a`);if(tocLink){let href=tocLink.getAttribute(`href`);if(href&&href.startsWith(`#`)){let target=null;try{target=document.querySelector(href)}catch{target=null}target&&target.scrollIntoView({behavior:`smooth`,block:`start`})}isMobile()&&nav.close();return}let link=event.target.closest(`a`);if(!link||!isPlainLeftClick(event))return;event.target.closest(`.calepin-website-sidebar a`)&&isMobile()&&nav.close();let href=link.getAttribute(`href`),next=urlWithState(href,viewSelect);next&&next!==href&&(event.preventDefault(),window.location.href=next)})}
|
||
// ----------------------------------------------------- dialog lightbox
|
||
function initDialogs(){document.querySelectorAll(`[data-video-dialog], [data-lightbox-dialog]`).forEach(trigger=>{let dialogId=trigger.dataset.videoDialog||trigger.dataset.lightboxDialog,dialog=document.getElementById(dialogId);!dialog||typeof dialog.showModal!=`function`||trigger.addEventListener(`click`,event=>{event.preventDefault(),dialog.showModal()})}),document.querySelectorAll(`dialog.calepin-video-dialog, dialog.calepin-screenshot-dialog`).forEach(dialog=>{let stop=()=>{let video=dialog.querySelector(`video`);video&&video.pause()};dialog.addEventListener(`click`,event=>{
|
||
// Clicking the dialog backdrop (the dialog element itself) closes it.
|
||
event.target===dialog&&dialog.close()}),dialog.querySelectorAll(`[data-close-dialog]`).forEach(button=>{button.addEventListener(`click`,()=>dialog.close())}),dialog.addEventListener(`close`,stop)})}
|
||
// --------------------------------------------------------------- bootstrap
|
||
let viewSelects=Array.from(document.querySelectorAll(`[data-calepin-view-mode], #calepin-website-view-mode`));initView(viewSelects);let nav=createNav();initSidebarSections(),inlineSvgs(),initDialogs(),preserveStateInLinks(viewSelects),initLinkInterception(nav,viewSelects),window.addEventListener(`pageshow`,event=>{event.persisted&&(initView(viewSelects),preserveStateInLinks(viewSelects))})})();</script> |