@layer reset, frameworks, defaults, pattern, elements, components, pages, utilities;:root{--golden-ratio: 1.618;--white: hsl(0, 0%, 100%);--tainted-white: hsl(0, 0%, 96%);--alabaster: rgb(237, 237, 237);--black: hsl(0, 0%, 3%);--pitch-black: var(--black);--light-gray: hsl(0, 0%, 44%);--tainted-black: hsl(0, 0%, 11%);--lighter-gray: hsl(0, 0%, 65%);--background-main: var(--white);--background-secondary: var(--tainted-white);--background-tertiary: var(--alabaster);--primary-text: var(--black);--primary-code: var(--light-gray);--light-text: hsl(0, 0%, 25%);--lighter-text: var(--light-gray);--link-color: currentColor;--link-hover-color: var(--light-text);--header-color: var(--light-gray);--highlight-bg: var(--tainted-white);--code-bg: var(--tainted-white);--border-color-light: var(--alabaster);--border-color: hsl(0, 0%, 87%);--border-color-heavy: hsl(0, 0%, 84%);--warning: hsl(31.2deg 100% 45%);--md-code-fg-color: hsla(200, 18%, 26%, 1);--md-code-bg-color: hsla(200, 0%, 96%, 1);--md-code-hl-number-color: hsla(291, 45%, 50%, 1);--md-code-hl-special-color: hsla(0, 67%, 50%, 1);--md-code-hl-function-color: hsla(219, 54%, 51%, 1);--md-code-hl-constant-color: hsla(17, 52%, 42%, 1);--md-code-hl-keyword-color: hsla(219, 54%, 45%, 1);--md-code-hl-string-color: hsla(130, 48%, 33%, 1);--md-code-hl-name-color: var(--md-code-fg-color);--md-code-hl-operator-color: var(--light-gray);--md-code-hl-punctuation-color: var(--light-gray);--md-code-hl-comment-color: var(--light-gray);--md-code-hl-generic-color: var(--light-gray);--md-code-hl-variable-color: hsla(45, 28%, 38%, 1);--body-font: "Roboto", arial, helvetica, sans-serif;--code-font: "Roboto Mono", monospace;--content-width: 85ch}@media(prefers-color-scheme: dark){:root{--pitch-black: hsl(0, 0%, 3%);--black: hsl(0, 0%, 11%);--tainted-black: hsl(0, 0%, 16%);--mine-shaft: hsl(0, 0%, 19%);--light-gray: hsl(0, 0%, 56%);--background-main: var(--black);--background-secondary: var(--tainted-black);--background-tertiary: var(--mine-shaft);--primary-text: hsl(0, 0%, 84%);--primary-code: var(--tainted-white);--light-text: var(--lighter-gray);--lighter-text: var(--tainted-white);--header-color: var(--white);--page-title-color: var(--white);--link-color: currentColor;--link-hover-color: var(--light-gray);--highlight-bg: hsl(0, 0%, 27%);--code-bg: hsl(0, 0%, 27%);--border-light: hsl(0, 0%, 14%);--border-color: hsl(0, 0%, 25%);--border-color-heavy: hsl(0, 0%, 32%);--hex-color: var(--lighter-text);--hex-bg: var(--black);--hex-bg-hover: var(--tainted-black);--hex-shadow: drop-shadow(0 0 1px rgb(255 255 255 / 40%)) drop-shadow(0 0 1px rgb(255 255 255 / 10%));--hex-hover-shadow: drop-shadow(0 0 1px rgba(255 255 255 / 100%)) drop-shadow(0 0 1px rgb(255 255 255 / 10%));--code-bg: var(--tainted-black);--md-code-fg-color: var(--lighter-text);--md-code-hl-number-color: hsla(291, 45%, 65%, 1);--md-code-hl-special-color: hsla(0, 67%, 65%, 1);--md-code-hl-function-color: hsla(219, 54%, 68%, 1);--md-code-hl-constant-color: hsla(17, 52%, 61%, 1);--md-code-hl-keyword-color: hsla(219, 54%, 64%, 1);--md-code-hl-string-color: hsla(130, 48%, 51%, 1);--md-code-hl-name-color: var(--md-code-fg-color);--md-code-hl-operator-color: var(--lighter-gray);--md-code-hl-punctuation-color: var(--lighter-gray);--md-code-hl-comment-color: var(--lighter-gray);--md-code-hl-generic-color: var(--lighter-gray);--code-bg: var(--mine-shaft)}}@layer reset{*,*::before,*::after{box-sizing:border-box}body,h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong,p,figure,blockquote,dl,dd{margin:0}ul[role=list],ol[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizespeed;line-height:1.5}a:not([class]){text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block;object-fit:contain}input,button,textarea,select{font:inherit}@media(prefers-reduced-motion: reduce){html:focus-within{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}table{font-size:inherit}}@layer defaults{@font-face{font-family:"Roboto";font-style:normal;font-weight:300;src:url("/assets/fonts/roboto/roboto-v30-latin-300.woff2") format("woff2");font-display:swap}@font-face{font-family:"Roboto";font-style:italic;font-weight:300;src:url("/assets/fonts/roboto/roboto-v30-latin-300italic.woff2") format("woff2");font-display:swap}@font-face{font-family:"Roboto";font-style:normal;font-weight:400;src:url("/assets/fonts/roboto/roboto-v30-latin-regular.woff2") format("woff2");font-display:swap}@font-face{font-family:"Roboto";font-style:italic;font-weight:400;src:url("/assets/fonts/roboto/roboto-v30-latin-italic.woff2") format("woff2");font-display:swap}@font-face{font-family:"Roboto";font-style:normal;font-weight:500;src:url("/assets/fonts/roboto/roboto-v30-latin-500.woff2") format("woff2");font-display:swap}@font-face{font-family:"Roboto";font-style:italic;font-weight:500;src:url("/assets/fonts/roboto/roboto-v30-latin-500italic.woff2") format("woff2");font-display:swap}@font-face{font-family:"Roboto Mono";font-style:normal;font-weight:400;src:url("/assets/fonts/roboto/roboto-mono-v22-latin-regular.woff2") format("woff2");font-display:swap}:root{--line-height-sm: 1.2;--line-height-md: 1.5;--line-height-lg: 1.8;--line-height-base: var(--line-height-lg);--line-height-heading: calc(3px + 2ex + 3px);--line-height-heading: calc(2px + 2ex + 2px);--font-size-lead: clamp(1.1rem, min(2vw, 2.7vh), 1.25rem);font-size:1.4em;font-size:clamp(90%,min(1.4vw,2.3vh),120%);--link-underline-default: underline}body{color:var(--primary-text);font-family:var(--body-font);line-height:var(--line-height-base);font-feature-settings:"kern","liga"}:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong,h5,.h5,.install-group>h3,.install-group>.h3,.footer-nav .link-items>h3,.footer-nav .link-items>.h3,h6){line-height:var(--line-height-heading);font-weight:400;margin-left:-0.1ch}:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong,h5,.h5,.install-group>h3,.install-group>.h3,.footer-nav .link-items>h3,.footer-nav .link-items>.h3,h6):not(:first-child){margin-block-start:var(--block-flow, var(--block-flow-md))}:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong,h5,.h5,.install-group>h3,.install-group>.h3,.footer-nav .link-items>h3,.footer-nav .link-items>.h3,h6)+:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong,h5,.h5,.install-group>h3,.install-group>.h3,.footer-nav .link-items>h3,.footer-nav .link-items>.h3,h6){margin-block-start:var(--block-flow, var(--block-flow-sm))}:is(h5,.h5,.install-group>h3,.install-group>.h3,.footer-nav .link-items>h3,.footer-nav .link-items>.h3,h6){font-weight:500;margin-block:0}.page-description{font-size:var(--font-size-lead)}:is(h2,.h2,h3,.h3,h4,.h4,.releases-info>strong){color:var(--header-color)}:is(h5,.h5,.install-group>h3,.install-group>.h3,.footer-nav .link-items>h3,.footer-nav .link-items>.h3,h6,.h6){color:currentColor}h1,.h1{font-size:2.44140625rem;color:var(--page-title-color, currentColor)}h2,.h2{font-size:1.953125rem}h3,.h3{font-size:1.5625rem}h4,.h4,.releases-info>strong{font-size:1.25rem}h5,.h5,.install-group>h3,.install-group>.h3,.footer-nav .link-items>h3,.footer-nav .link-items>.h3{font-size:1rem}h6{font-size:1rem}p{max-width:var(--content-width)}:any-link{color:var(--link-color);text-underline-offset:.13em;text-decoration-line:var(--link-underline, var(--link-underline-default));text-decoration-thickness:clamp(1.8px,.06em,4px);text-decoration-color:var(--lighter-gray);cursor:pointer}:any-link:hover{color:var(--link-hover-color);text-decoration-color:var(--light-gray)}:any-link:focus{outline:.04em dotted var(--lighter-gray)}:any-link:focus,summary:focus{outline:.14rem dotted var(--lighter-gray);outline-offset:.08em}[id]{scroll-margin-top:2em}pre,code{font-family:var(--code-font)}pre,:not(pre)>code{margin:0;font-size:80%}pre:not(.low-key),:not(pre)>code:not(.low-key){background-color:var(--code-bg)}pre>code{background:rgba(0,0,0,0);display:block;overflow:auto}pre{white-space:pre-wrap;padding:1.25em}:not(pre)>code:not(.low-key),dd>pre:not(.low-key){padding:.2em .4em;border-radius:6px}.title :not(pre)>code{background:rgba(0,0,0,0);padding:0}kbd{font-family:var(--code-font);padding:.2em .4em;border-radius:6px;margin:0;font-size:85%;background-color:var(--highlight-bg);box-shadow:inset -2px -2px 4px var(--border-color-heavy);border:1px solid var(--border-color)}strong,b{font-weight:500}blockquote{padding-left:var(--padding-sm);border-left:5px solid var(--border-color)}:where(blockquote>*){margin-block:0}:where(blockquote>*)+*{margin-block-start:var(--block-flow, var(--block-flow-sm))}:where(blockquote>*)+*:is(hr,.full-width-rule),:where(blockquote>*)+*:is(.link-actions){margin-block-start:var(--block-flow-md)}:where(blockquote>:is(hr,.full-width-rule)+*){margin-block-start:var(--block-flow-md)}:where(blockquote>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*){margin-block-start:var(--block-flow-xs)}:where(blockquote>section+section){margin-block-start:var(--block-flow-lg)}:where(blockquote>p+p){margin-block-start:var(--block-flow-xs)}figure>figcaption{margin-block-start:.5rem;text-align:center;font-size:85%}dt{font-weight:500}dd+dt{margin-block-start:var(--block-flow-sm)}dd{text-indent:1.325ch}dd>pre:first-child{text-indent:0;margin-left:1.325ch}button{color:currentColor}:root{--padding-xxs: clamp(0.25rem, 0.75%, 0.5rem);--padding-xs: clamp(0.5rem, 1.5%, 0.75rem);--padding-sm: clamp(1rem, 3%, 1.5rem);--padding-md: clamp(1.5rem, 6%, 3rem);--padding-lg: clamp(3rem, 12%, 6rem);--block-flow-xs: min(1rem, 2vh);--block-flow-sm: min(2rem, 4vh);--block-flow-md: min(4rem, 8vh);--block-flow-lg: min(8rem, 16vh)}body{--layout-spacing: max(8vh, 3rem);display:flex;flex-direction:column;min-height:100vh;background-color:var(--background-main);overflow:auto}body>header{position:relative;display:flex;align-items:center}body:not(:has(.edit-on-github))>footer,body>.edit-on-github{margin-top:auto}body>main{margin-inline:1.5rem;align-self:center;max-width:var(--container-max, 120ch);margin-block-end:var(--block-flow-lg)}:where(body>main>*){margin-block:0}:where(body>main>*)+*{margin-block-start:var(--block-flow, var(--block-flow-lg))}:where(body>main>*)+*:is(hr,.full-width-rule),:where(body>main>*)+*:is(.link-actions){margin-block-start:var(--block-flow-md)}:where(body>main>:is(hr,.full-width-rule)+*){margin-block-start:var(--block-flow-md)}:where(body>main>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*){margin-block-start:var(--block-flow-xs)}:where(body>main>section+section){margin-block-start:var(--block-flow-lg)}:where(body>main>p+p){margin-block-start:var(--block-flow-xs)}body>main>header{margin-block:var(--block-flow-md)}body>main>header h1,body>main>header .h1{font-size:3.0517578125rem}body>main>header+*{margin-top:0}body>main>article{margin-block:var(--block-flow-md)}:where(article.page>*,article.page>header>*,.page-header>*){margin-block:0}:where(article.page>*,article.page>header>*,.page-header>*)+*{margin-block-start:var(--block-flow, var(--block-flow-md))}:where(article.page>*,article.page>header>*,.page-header>*)+*:is(hr,.full-width-rule),:where(article.page>*,article.page>header>*,.page-header>*)+*:is(.link-actions){margin-block-start:var(--block-flow-md)}:where(article.page>:is(hr,.full-width-rule)+*,article.page>header>:is(hr,.full-width-rule)+*,.page-header>:is(hr,.full-width-rule)+*){margin-block-start:var(--block-flow-md)}:where(article.page>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*,article.page>header>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*,.page-header>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*){margin-block-start:var(--block-flow-xs)}:where(article.page>section+section,article.page>header>section+section,.page-header>section+section){margin-block-start:var(--block-flow-lg)}:where(article.page>p+p,article.page>header>p+p,.page-header>p+p){margin-block-start:var(--block-flow-xs)}:where(article>.content>*,article.styleguide>.styleguide-preview>*,article>.page-description>*){margin-block:0}:where(article>.content>*,article.styleguide>.styleguide-preview>*,article>.page-description>*)+*{margin-block-start:var(--block-flow, var(--block-flow-lg))}:where(article>.content>*,article.styleguide>.styleguide-preview>*,article>.page-description>*)+*:is(hr,.full-width-rule),:where(article>.content>*,article.styleguide>.styleguide-preview>*,article>.page-description>*)+*:is(.link-actions){margin-block-start:var(--block-flow-md)}:where(article>.content>:is(hr,.full-width-rule)+*,article.styleguide>.styleguide-preview>:is(hr,.full-width-rule)+*,article>.page-description>:is(hr,.full-width-rule)+*){margin-block-start:var(--block-flow-md)}:where(article>.content>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*,article.styleguide>.styleguide-preview>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*,article>.page-description>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*){margin-block-start:var(--block-flow-xs)}:where(article>.content>section+section,article.styleguide>.styleguide-preview>section+section,article>.page-description>section+section){margin-block-start:var(--block-flow-lg)}:where(article>.content>p+p,article.styleguide>.styleguide-preview>p+p,article>.page-description>p+p){margin-block-start:var(--block-flow-xs)}:where(section:not([class])>*){margin-block:0}:where(section:not([class])>*)+*{margin-block-start:var(--block-flow, var(--block-flow-sm))}:where(section:not([class])>*)+*:is(hr,.full-width-rule),:where(section:not([class])>*)+*:is(.link-actions){margin-block-start:var(--block-flow-md)}:where(section:not([class])>:is(hr,.full-width-rule)+*){margin-block-start:var(--block-flow-md)}:where(section:not([class])>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*){margin-block-start:var(--block-flow-xs)}:where(section:not([class])>section+section){margin-block-start:var(--block-flow-lg)}:where(section:not([class])>p+p){margin-block-start:var(--block-flow-xs)}hr{border:none;border-block-end:.16ch solid var(--border-color)}}@layer elements{.avatar-list{--avatar-size: 2.5rem;--avatar-count: 3;display:grid;grid-template-rows:repeat(var(--avatar-count), max(44px, calc(var(--avatar-size) / 1.15)));padding:.08em;font-size:var(--avatar-size);list-style:none;margin:0}@media(any-hover: hover)and (any-pointer: fine){.avatar-list{grid-template-rows:repeat(calc(var(--avatar-count) + 1), calc(var(--avatar-size) / 1.5))}}.avatar-list li{width:var(--avatar-size);height:var(--avatar-size)}.avatar-list li:hover~li a,.avatar-list li:focus-within~li a{transform:translateY(25%)}.avatar-list img,.avatar-list a{display:block;border-radius:50%}.avatar-list a{transition:transform 180ms ease-in-out}.avatar-list img{aspect-ratio:1;object-fit:cover;clip-path:content-box circle(50%);background-color:var(--background-main);box-shadow:0 0 0 .05em var(--background-main),0 0 0 .08em color-mix(in srgb, var(--primary-text) 20%, transparent)}.avatar-list a:focus{outline:2px solid rgba(0,0,0,0);box-shadow:0 0 0 .08em #29344b,0 0 0 .12em var(--background-main)}.color-sample{--color-sample-border: var(--light-gray);border-radius:50%;width:72px;height:72px;border:2px solid var(--color-sample-border);margin:10px auto;background-color:var(--color-sample-color)}:root{--cos-70: 0.34;--sin-70: 0.93;--hex-bg: var(--white);--hex-color: var(--black);--hex-bg-hover: var(--tainted-white)}.hex{--hex-height: 2.5em;--hex-width: 2px;--cos-a: var(--cos-70);--sin-a: var(--sin-70);--h: calc(var(--hex-height) / 2);--a: calc(var(--h) * var(--cos-a));--v: calc(var(--hex-width) / var(--sin-a));--b: calc(var(--cos-a) * (var(--h) - var(--hex-width)) + var(--v));position:relative;padding:var(--hex-width) calc(var(--b) + var(--padding-sm));height:var(--hex-height);display:grid;place-content:center;min-width:max-content;max-width:35ch;background:rgba(0,0,0,0);appearance:none;border:none;color:var(--hex-color);font-weight:500;text-transform:uppercase}.hex :not(.wide){margin-inline:auto}.hex::before,.hex::after{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0}.hex::before{z-index:-1;background:var(--hex-bg);clip-path:polygon(evenodd, var(--a) 0%, calc(100% - var(--a)) 0%, 100% 50%, calc(100% - var(--a)) 100%, var(--a) 100%, 0 50%, var(--a) 0%)}.hex:not(.bordered){filter:var(--hex-shadow, drop-shadow(0 0 1px rgba(0, 0, 0, 0.4)) drop-shadow(0 0 1px rgba(0, 0, 0, 0.1)));transition:filter .2s}.hex.bordered::after{background-color:currentColor;clip-path:polygon(evenodd, var(--a) 0%, calc(100% - var(--a)) 0%, 100% 50%, calc(100% - var(--a)) 100%, var(--a) 100%, 0 50%, var(--a) 0%, var(--b) var(--hex-width), var(--v) 50%, var(--b) calc(100% - var(--hex-width)), calc(100% - var(--b)) calc(100% - var(--hex-width)), calc(100% - var(--v)) 50%, calc(100% - var(--b)) var(--hex-width), var(--b) var(--hex-width))}.hex:is(:any-link,button){cursor:pointer}.hex:is(:any-link,button):hover::before{background-color:var(--hex-bg-hover)}.hex:is(:any-link,button):not(.bordered):hover{filter:var(--hex-hover-shadow, drop-shadow(0 0 1px rgb(0, 0, 0)) drop-shadow(0 0px 1px rgba(0, 0, 0, 0.1)))}:root{--sin-60: 0.866}.hex-icon{--icon-height: 48px;width:calc(var(--icon-height)*var(--sin-60));height:var(--icon-height);display:inline-block;position:relative;filter:drop-shadow(0 0 2px rgba(0, 0, 0, 0.1)) drop-shadow(0 1px 1px rgba(0, 0, 0, 0.2)) drop-shadow(0 1px 1px rgba(0, 0, 0, 0.1))}.hex-icon .inner{background-color:#fff;width:100%;height:100%;clip-path:polygon(evenodd, 0% 25%, 0% 75%, 50% 100%, 100% 75%, 100% 25%, 50% 0, 0% 25%)}.hex-icon .inner>*{position:absolute;width:calc(var(--icon-height)/2);height:calc(var(--icon-height)/2);top:50%;left:50%;transform:translate(-50%, -50%)}.link-items>h3,.link-items>.h3{font-weight:200;margin-bottom:var(--padding-sm)}.link-items .link-item+.link-item{margin-top:var(--block-flow-sm)}.link-item{margin-inline-start:0}.link-item .link-item__main{--link-color: var(--primary-text);font-weight:500}.link-item .link-item__main>em{font-style:normal;font-weight:400}.link-item p{line-height:var(--line-height-md);color:var(--light-gray);margin-block-start:var(--padding-xxs)}.icon-prefix,.link-item{position:relative;font-size:.894427191rem;line-height:var(--line-height-md);margin-inline-start:1.2em;color:var(--light-gray)}.icon-prefix>svg:first-child,.link-item>svg:first-child,.icon-prefix>:any-link>svg:first-child,.link-item>:any-link>svg:first-child{width:1.2em;height:auto;position:absolute;right:calc(100% + .3em);margin-top:.15em;fill:currentColor}.table,table.releases,.content table,.styleguide>.styleguide-preview table,.page-description table{border-collapse:collapse;font-size:.894427191rem;width:100%}.table.narrow,table.narrow.releases,.content table.narrow,.styleguide>.styleguide-preview table.narrow,.page-description table.narrow{width:unset}.table thead,table.releases thead,.content table thead,.styleguide>.styleguide-preview table thead,.page-description table thead{position:sticky;top:0;z-index:1}.table thead tr,table.releases thead tr,.content table thead tr,.styleguide>.styleguide-preview table thead tr,.page-description table thead tr{background:var(--background-secondary)}.table th,table.releases th,.content table th,.styleguide>.styleguide-preview table th,.page-description table th{text-align:left;font-weight:500}.table th,table.releases th,.table td,table.releases td,.content table th,.styleguide>.styleguide-preview table th,.page-description table th,.content table td,.styleguide>.styleguide-preview table td,.page-description table td{padding:.75em .9em;border-block-end:1px solid var(--border-color);line-height:var(--line-height-md)}.table.properties th,table.properties.releases th,.table.properties td,table.properties.releases td,.content table.properties th,.styleguide>.styleguide-preview table.properties th,.page-description table.properties th,.content table.properties td,.styleguide>.styleguide-preview table.properties td,.page-description table.properties td{padding:.5em .9em}.table.properties tr:first-child,table.properties.releases tr:first-child,.content table.properties tr:first-child,.styleguide>.styleguide-preview table.properties tr:first-child,.page-description table.properties tr:first-child{border-top:1px solid var(--border-color)}.table.properties tr:nth-child(2n+1) td,table.properties.releases tr:nth-child(2n+1) td,.table.properties tr:nth-child(2n+1) th,table.properties.releases tr:nth-child(2n+1) th,.content table.properties tr:nth-child(2n+1) td,.styleguide>.styleguide-preview table.properties tr:nth-child(2n+1) td,.page-description table.properties tr:nth-child(2n+1) td,.content table.properties tr:nth-child(2n+1) th,.styleguide>.styleguide-preview table.properties tr:nth-child(2n+1) th,.page-description table.properties tr:nth-child(2n+1) th{background-color:var(--background-secondary)}}@layer components{.attributes{display:grid;grid-template-columns:minmax(15%, min-content) 1fr;column-gap:var(--padding-xs)}.attributes>dt{font-weight:300;justify-self:end;color:var(--light-text);margin:unset}.attributes>dd{grid-column:2;text-indent:unset}.book-authors{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%, 20em), 1fr));column-gap:var(--padding-md);row-gap:var(--padding-lg)}.book-author{display:grid;grid-template-areas:"icon main";grid-template-columns:6ch 1fr;column-gap:var(--padding-sm)}.book-author>*{grid-area:main}.book-author>.book-author-icon{aspect-ratio:1;object-fit:cover;clip-path:content-box circle(50%);grid-area:icon}.book-presenter{font-size:var(--font-size-lead);display:grid;grid-template-areas:"cover" "main" "details";row-gap:var(--padding-md);column-gap:var(--padding-md)}.book-presenter>.cover{grid-area:cover}.book-presenter>.description{grid-area:main}:where(.book-presenter>.description>*){margin-block:0}:where(.book-presenter>.description>*)+*{margin-block-start:var(--block-flow, var(--block-flow-sm))}:where(.book-presenter>.description>*)+*:is(hr,.full-width-rule),:where(.book-presenter>.description>*)+*:is(.link-actions){margin-block-start:var(--block-flow-md)}:where(.book-presenter>.description>:is(hr,.full-width-rule)+*){margin-block-start:var(--block-flow-md)}:where(.book-presenter>.description>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*){margin-block-start:var(--block-flow-xs)}:where(.book-presenter>.description>section+section){margin-block-start:var(--block-flow-lg)}:where(.book-presenter>.description>p+p){margin-block-start:var(--block-flow-xs)}.book-presenter>.details{grid-area:details}@media(min-width: 35em){.book-presenter{grid-template-areas:"cover main" "details details"}}.section-nav{transition:.5s opacity;margin-block-start:var(--block-flow-xs)}.section-nav:not(:hover){opacity:.6}.section-nav:first-child{margin-block-start:var(--block-flow-sm)}.breadcrumbs{display:flex;--link-color: var(--light-text);--link-hover-color: var(--lighter-text)}.breadcrumbs [aria-current=page]{font-weight:500}.breadcrumb{display:inline flex;padding-inline-end:var(--padding-xs)}.breadcrumb:not(:first-child){padding-inline-start:var(--padding-xs)}.breadcrumb--category{padding-inline-end:0}.section-links{--link-color: var(--light-text);--link-hover-color: var(--lighter-text);font-weight:300;max-width:40rem;margin:0}.section-links>ul{display:block;text-wrap:balance;list-style:none;margin:0;padding:0}.section-links>ul>li{display:inline;margin-inline-end:var(--padding-xs);white-space:nowrap}.section-links [aria-current=page]{font-weight:400}.callout{border:1.5px solid var(--border-color-heavy);border-radius:4px;--content-width: auto;--callout-color: var(--lighter-text);--callout-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z' /%3E%3C/svg%3E")}.callout>.callout-title{color:var(--light-text);font-weight:500;background-color:color-mix(in srgb, var(--callout-color) 18%, transparent);padding:var(--padding-xs) var(--padding-xs)}.callout>.callout-title::before{content:"";-webkit-mask:var(--callout-mask) center/contain no-repeat;mask:var(--callout-mask) center/contain no-repeat;width:1.3em;vertical-align:text-bottom;aspect-ratio:1;display:inline-block;background:var(--callout-color);margin-right:.3em}.callout>:not(.callout-title){margin:var(--padding-xs)}.callout--note{--callout-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M15.1,7.07C15.24,7.07 15.38,7.12 15.5,7.23L16.77,8.5C17,8.72 17,9.07 16.77,9.28L15.77,10.28L13.72,8.23L14.72,7.23C14.82,7.12 14.96,7.07 15.1,7.07M13.13,8.81L15.19,10.87L9.13,16.93H7.07V14.87L13.13,8.81Z' /%3E%3C/svg%3E")}.callout--thanks{--callout-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.5,20C6.9,13.9 3.5,10.8 3.5,7.1C3.5,4 5.9,1.6 9,1.6C10.7,1.6 12.4,2.4 13.5,3.7C14.6,2.4 16.3,1.6 18,1.6C21.1,1.6 23.5,4 23.5,7.1C23.5,10.9 20.1,14 13.5,20M12,21.1C5.4,15.2 1.5,11.7 1.5,7C1.5,6.8 1.5,6.6 1.5,6.4C0.9,7.3 0.5,8.4 0.5,9.6C0.5,13.4 3.9,16.5 10.5,22.4L12,21.1Z' /%3E%3C/svg%3E")}.callout--thanks p a{display:flex;align-items:center;display:inline flex;vertical-align:bottom}.callout--thanks p a::before,.callout--thanks p a>img{display:inline-block;width:1.3em;aspect-ratio:1;margin-inline-end:var(--padding-xxs)}.callout--thanks p a:hover img{opacity:.7}.callout--thanks p a>img{object-fit:contain}@media(prefers-color-scheme: dark){.callout--thanks p a>img{filter:invert()}}.callout--thanks p a::before{background:var(--link-icon) center/contain no-repeat}.callout--thanks p a[href^="https://www.84codes.com/"]:not(:has(>img))::before{content:"";--link-icon: url("/assets/sponsors/84codes.svg")}.callout--thanks p a[href^="https://nikolamotor.com/"]:not(:has(>img))::before{content:"";--link-icon: url("/assets/sponsors/nikola.svg")}.callout--warning{--callout-color: var(--warning);--callout-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z' /%3E%3C/svg%3E")}.callout:has(.hex:last-child){padding-block-end:0}.callout:has(.hex:last-child)>.hex:last-child{translate:0 50%;margin:auto;margin-block-start:calc(-1*var(--padding-xs))}.card,.sponsor-card,.post-card,.event-card,.profile-card{box-shadow:0 1px 2px 0 color-mix(in srgb, var(--primary-text) 25%, transparent),0 1px 3px 0 color-mix(in srgb, var(--primary-text) 15%, transparent);padding:var(--padding-xs);display:flex;flex-direction:column;align-items:center;text-align:center;width:23ch;font-size:.8rem;position:relative;line-height:var(--line-height-sm);text-wrap:balance;--card-padding: var(--padding-sm)}@media(prefers-color-scheme: dark){.card,.sponsor-card,.post-card,.event-card,.profile-card{box-shadow:none;border:1px solid color-mix(in srgb, var(--primary-text) 25%, transparent)}}.card.card--borderless,.card--borderless.sponsor-card,.card--borderless.post-card,.card--borderless.event-card,.card--borderless.profile-card{box-shadow:none;border:none}.card>*,.sponsor-card>*,.post-card>*,.event-card>*,.profile-card>*{margin-inline:var(--card-padding)}.card>*+*,.sponsor-card>*+*,.post-card>*+*,.event-card>*+*,.profile-card>*+*{margin-block-start:var(--card-padding)}.card>*:last-child,.sponsor-card>*:last-child,.post-card>*:last-child,.event-card>*:last-child,.profile-card>*:last-child{margin-block-end:var(--card-padding)}.card>img,.sponsor-card>img,.post-card>img,.event-card>img,.profile-card>img,.card>picture,.sponsor-card>picture,.post-card>picture,.event-card>picture,.profile-card>picture{width:55%;object-fit:contain;aspect-ratio:1;order:-1;margin:var(--card-padding)}.card>.name,.sponsor-card>.name,.post-card>.name,.event-card>.name,.profile-card>.name{font-weight:500;font-size:112.5%;--link-color: currentcolor}.card>.name:where(:not(:last-child)),.sponsor-card>.name:where(:not(:last-child)),.post-card>.name:where(:not(:last-child)),.event-card>.name:where(:not(:last-child)),.profile-card>.name:where(:not(:last-child)){margin-block-end:auto}.card>.name:any-link::before,.sponsor-card>.name:any-link::before,.post-card>.name:any-link::before,.event-card>.name:any-link::before,.profile-card>.name:any-link::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.card>.name:any-link:focus,.sponsor-card>.name:any-link:focus,.post-card>.name:any-link:focus,.event-card>.name:any-link:focus,.profile-card>.name:any-link:focus{outline:none}.card>.name:any-link:focus::before,.sponsor-card>.name:any-link:focus::before,.post-card>.name:any-link:focus::before,.event-card>.name:any-link:focus::before,.profile-card>.name:any-link:focus::before{outline:.14rem dotted var(--lighter-gray);outline-offset:.08em}.card>.name:any-link>img,.sponsor-card>.name:any-link>img,.post-card>.name:any-link>img,.event-card>.name:any-link>img,.profile-card>.name:any-link>img{transition:filter .3s}.cards-list{display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--padding-sm);padding:0}.cards-listul{margin:inherit}.cards-list>*{margin:0}.cards-list.centered{justify-content:center}.cards-list>em{font-weight:500;color:var(--border-color-heavy);font-size:200%;font-style:normal;line-height:1;text-transform:uppercase}pre{position:relative}pre>code{flex-grow:1;z-index:1}pre>.copy-action{z-index:1}pre::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb, var(--light-gray) 20%, transparent);opacity:1;transform:scaleY(0);transition:800ms opacity}pre.copied::before{opacity:.5;transform:scaleY(1);transition:800ms opacity,200ms transform}pre.copied::after{content:"copied to clipboard";position:absolute;top:min(50%,6em);left:50%;font-size:130%;font-weight:400;transform:translateX(-50%) translateY(-50%);display:block;color:var(--tainted-white);background:var(--light-gray);padding-inline:var(--padding-xs);border-radius:var(--padding-xs);box-shadow:0 1px 4px 0 color-mix(in srgb, var(--primary-text) 35%, transparent),0 1px 3px 0 color-mix(in srgb, var(--primary-text) 25%, transparent)}.copy-action{display:block;position:absolute;top:var(--padding-xxs);right:var(--padding-xxs);padding:0;border:none;background:rgba(0,0,0,0);cursor:pointer}.copy-action::before{content:"";display:block;width:2.5ch;aspect-ratio:1;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-560h80v560h440v80H200Zm160-240v-480 480Z'/%3E%3C/svg%3E%0A") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-560h80v560h440v80H200Zm160-240v-480 480Z'/%3E%3C/svg%3E%0A") center/contain no-repeat;background:currentColor}.copy-action:not(:hover){opacity:.5}.profile-card{--card-padding: var(--padding-xs)}.profile-card>.name{margin-block:var(--padding-sm) var(--padding-xxs)}.profile-card>.handle{color:var(--lighter-text);margin-block-start:0}.profile-card>.roles{display:flex;flex-direction:column}.profile-card>.profiles,.profile-card>.roles{font-size:87.5%}.profile-card>.profiles{color:var(--lighter-text);display:flex;flex-direction:row;gap:.5em;justify-content:center;margin-block-start:auto;padding-top:var(--padding-sm)}.profile-mini{display:grid;line-height:1.2;grid-template-columns:4.7em 1fr;column-gap:var(--padding-xs);font-size:.8rem;align-items:center}.profile-mini>div{display:flex;flex-direction:column}.profile-mini .name{font-weight:500;font-size:1.125em}.profile-mini>img{align-self:center;width:100%}.card-list>.profile-mini{margin:0 calc(var(--padding-sm)/2)}.profile-mini>img,.profile-card>img{aspect-ratio:1;object-fit:cover;clip-path:content-box circle(50%)}a.ico{color:var(--lighter-text);text-decoration:none}.events-list{display:grid;grid-template-columns:repeat(auto-fill, minmax(18ch, 1fr));gap:var(--padding-sm)}.events-list>*{margin:0}.event-card{--card-padding: 0;box-shadow:none;width:auto;align-items:start;text-align:start}.event-card>img{width:100%;aspect-ratio:var(--golden-ratio);object-fit:cover;transition:300ms filter}.event-card>img+time{margin-block-start:var(--padding-sm)}.event-card:not(:hover,:focus-within)>img{filter:grayscale(1) opacity(0.8)}.event-card>.name{margin-block-start:var(--padding-xxs)}.event-card>time{color:var(--lighter-text);margin-block-start:0}.event-card>.location{margin-block-start:var(--padding-xs);font-size:87.5%;text-transform:uppercase;color:var(--lighter-text)}.posts-list{display:grid;grid-template-columns:repeat(auto-fill, minmax(min(16em, 100%), 1fr));gap:var(--padding-sm)}.posts-list>*{margin:0}.post-card{--card-padding: 0;box-shadow:none;width:auto;align-items:start;text-align:start;font-size:100%}.post-card>img{width:100%;aspect-ratio:var(--golden-ratio);object-fit:cover;transition:300ms filter;margin-block-end:var(--padding-sm)}.post-card:not(:hover,:focus-within)>img{filter:grayscale(1) opacity(0.8)}.post-card>.company{margin-block-end:var(--padding-xxs)}.post-card>.name.name{text-wrap:auto}.content,.styleguide>.styleguide-preview,.page-description{margin-inline-end:auto}:where(.content>*,.styleguide>.styleguide-preview>*,.page-description>*){margin-block:0}:where(.content>*,.styleguide>.styleguide-preview>*,.page-description>*)+*{margin-block-start:var(--block-flow, var(--block-flow-sm))}:where(.content>*,.styleguide>.styleguide-preview>*,.page-description>*)+*:is(hr,.full-width-rule),:where(.content>*,.styleguide>.styleguide-preview>*,.page-description>*)+*:is(.link-actions){margin-block-start:var(--block-flow-md)}:where(.content>:is(hr,.full-width-rule)+*,.styleguide>.styleguide-preview>:is(hr,.full-width-rule)+*,.page-description>:is(hr,.full-width-rule)+*){margin-block-start:var(--block-flow-md)}:where(.content>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*,.styleguide>.styleguide-preview>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*,.page-description>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*){margin-block-start:var(--block-flow-xs)}:where(.content>section+section,.styleguide>.styleguide-preview>section+section,.page-description>section+section){margin-block-start:var(--block-flow-lg)}:where(.content>p+p,.styleguide>.styleguide-preview>p+p,.page-description>p+p){margin-block-start:var(--block-flow-xs)}.content>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong):not(:first-child),.styleguide>.styleguide-preview>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong):not(:first-child),.page-description>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong):not(:first-child){margin-block-start:var(--block-flow, var(--block-flow-md))}.content:not(.content--wide),.styleguide>.styleguide-preview:not(.content--wide),.page-description:not(.content--wide){max-width:var(--content-width)}.page--segmented>main>h2:not(:first-child),.page--segmented>main>.h2:not(:first-child){padding-top:var(--block-flow-md)}.page--segmented>main>h2:not(:first-child)::before,.page--segmented>main>.h2:not(:first-child)::before{content:"";display:block;position:absolute;left:0;right:0;margin-top:calc(-1*var(--block-flow-md));border-top:1px solid var(--border-color)}.example-tabs{display:grid;grid-template-columns:min(18em,50cqw) 1fr;grid-template-areas:"sample-controls sample-controls" "sample          sample";column-gap:var(--padding-sm)}.example-tabs>.example-tabs__controls{grid-area:sample-controls;list-style:none;display:flex;flex-wrap:wrap;--link-color: var(--lighter-gray);--link-hover-color: var(--light-gray);text-transform:uppercase;font-size:.8rem;padding:0;justify-content:center;column-gap:2px;margin-block:var(--padding-xs)}.example-tabs>.example-tabs__controls>a{display:block;border-radius:4px;padding:var(--padding-xxs) var(--padding-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1}.example-tabs>.example-tabs__controls>a:is(:target,:active,[active]){color:var(--tainted-white);background-color:var(--code-bg)}.example-tabs .example-tabs__tabs{grid-area:sample;block-size:100%;display:grid;grid-auto-flow:column;grid-auto-columns:100%;column-gap:1em}.example-tabs .example-tabs__tabs>.example-tab:target>.example-description,.example-tabs .example-tabs__tabs .example-tab.target>.example-description,.example-tabs .example-tabs__tabs:not(:has(>:target))>.example-tab:first-of-type>.example-description{animation-name:slide-example-description;animation-duration:.5s}.example-tabs .example-tabs__tabs>.example-tab{scroll-snap-align:start;scroll-padding-block-start:2rem;overflow-y:auto;overscroll-behavior-y:contain;display:grid;grid-template-columns:18em 1fr;grid-template-areas:"sample-side sample-content" ".           sample-content";column-gap:var(--padding-sm);align-content:start}@media(max-width: 35em){.example-tabs .example-tabs__tabs>.example-tab{grid-template-areas:"sample-side    sample-side" "sample-content sample-content";row-gap:var(--padding-sm)}}.example-tabs .example-tabs__tabs>.example-tab>.example-description{grid-area:sample-side;--link-underline: var(--link-underline-default)}.example-tabs .example-tabs__tabs>.example-tab>.example-description>h3,.example-tabs .example-tabs__tabs>.example-tab>.example-description>.h3{color:currentColor;font-weight:300;margin-block:var(--block-flow-xs)}.example-tabs .example-tabs__tabs>.example-tab>.example-description>.read-more{font-weight:500;margin-top:var(--padding-md);line-height:var(--line-height-sm)}.example-tabs .example-tabs__tabs>.example-tab>.example-description>.read-more>a{display:flex;align-items:center}.example-tabs .example-tabs__tabs>.example-tab>.example-description>.read-more>a::before,.example-tabs .example-tabs__tabs>.example-tab>.example-description>.read-more>a>img{display:inline-block;width:1.3em;aspect-ratio:1;margin-inline-end:var(--padding-xxs)}.example-tabs .example-tabs__tabs>.example-tab>.example-description>.read-more>a:hover img{opacity:.7}.example-tabs .example-tabs__tabs>.example-tab>.example-description>.read-more>a>img{object-fit:contain}@media(prefers-color-scheme: dark){.example-tabs .example-tabs__tabs>.example-tab>.example-description>.read-more>a>img{filter:invert()}}.example-tabs .example-tabs__tabs>.example-tab>.example-description>.read-more>a::before{background-color:currentColor;-webkit-mask:var(--link-icon) center/contain no-repeat;mask:var(--link-icon) center/contain no-repeat}.example-tabs .example-tabs__tabs>.example-tab>.example-description>.read-more>a:before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4z'/%3E%3C/svg%3E")}.example-tabs .example-tabs__tabs>.example-tab>.example-code{grid-area:sample-content;max-height:21em;overflow:auto}@keyframes slide-example-description{from{transform:translateX(-105%)}to{transform:translateX(0%)}}.featured-posts{margin-block-start:var(--block-flow-sm);display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%, min(100%, var(--min, 25em))), 1fr));gap:var(--block-flow-sm)}@media(min-width: 49em){.featured-posts--extra-highlight>:first-child{grid-column:1/-1;margin-block-end:var(--block-flow-xs)}.featured-posts--extra-highlight>:first-child>.post-title,.featured-posts--extra-highlight>.post-card:first-child>.name{font-size:2.44140625rem}}@media(min-width: 60em){.featured-posts{gap:var(--block-flow-md)}}@media(min-width: 90em){.featured-posts{margin-inline-start:-4.5em}}.featured-posts .post-title,.featured-posts .post-card>.name{--link-underline: none}.edit-on-github{max-width:none;text-align:center;padding:var(--padding-sm);background-color:var(--background-tertiary);font-size:.894427191rem;color:var(--light-text);display:flex;flex-direction:column;align-items:center}.edit-on-github svg{translate:0 .5ch;fill:var(--light-gray)}footer{--container-max: 130ch;display:flex;flex-direction:column;gap:var(--block-flow-md);align-items:center;padding-inline:1.5rem;padding-block:var(--block-flow-sm);--link-color: var(--light-text);--link-hover-color: var(--lighter-text);border-top:1.5px solid var(--border-color);background-color:var(--background-secondary)}footer>*{width:100%;max-width:var(--container-max, 120ch);line-height:var(--line-height-md);font-size:.894427191rem}@media(prefers-color-scheme: dark){footer{--hex-color: var(--lighter-text);--hex-bg: var(--black);--hex-bg-hover: var(--pitch-black)}}.footer-nav{display:grid;grid-template-columns:repeat(auto-fit, minmax(clamp(17%, 9em, 100%), 1fr));gap:var(--block-flow-md) var(--block-flow-sm)}.footer-nav .link-items .link-item+.link-item{margin-top:0}nav.footer-section>a{font-weight:500}nav.footer-section>ul{display:flex;flex-direction:column;list-style:none;margin:0;padding:0;margin-block-start:.2em;gap:.2em}.footer-extra{--hex-height: 2.5em;display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--padding-md);align-items:flex-end;justify-content:space-between}.footer-extra>*{flex-grow:1;max-width:max-content}.newsletter-footer{flex-basis:40%}.newsletter-form{display:grid;grid-template-columns:minmax(15em, 25em) auto;grid-template-areas:"label label" "input button";column-gap:var(--padding-sm);align-content:flex-start;justify-content:flex-start;align-items:center;gap:var(--padding-sm)}@media(max-width: 20em){.newsletter-form{grid-template-areas:"label" "input" "button"}}.newsletter-form>form{display:contents}.newsletter-form>form>label{grid-area:label;font-weight:500;justify-self:start}.newsletter-form>form>input[type=email]{grid-area:input;width:100%;height:var(--hex-height);border:1px solid var(--border-color);padding-inline:var(--padding-xs)}@media(prefers-color-scheme: dark){.newsletter-form>form>input[type=email]{color:var(--lighter-text);background-color:var(--mine-shaft)}}.newsletter-form>form>button{grid-area:button}.link-items--social{flex-basis:30%;display:flex;flex-wrap:wrap;gap:var(--padding-xs) var(--padding-md);align-items:center;min-height:var(--hex-height)}.link-items--social .link-item{margin-block-start:0}.imprint{opacity:.7;grid-column-start:1;grid-column-end:-1;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;gap:var(--padding-xs)}.imprint svg{height:2em;width:auto;vertical-align:middle;margin-block-start:-0.2em;fill:currentColor;margin-inline-start:var(--padding-xs)}.imprint::before{content:"";display:block;position:absolute;left:0;right:0;border-block-start:1.5px solid var(--border-color);margin-block-start:calc(-1*var(--block-flow-sm))}.imprint a[href="https://manas.tech"]{white-space:nowrap}.imprint>*{flex-grow:1}.imprint>:last-child{text-align:right}.highlight :is(.o,.ow){color:var(--md-code-hl-operator-color)}.highlight .p{color:var(--md-code-hl-punctuation-color)}.highlight :is(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){color:var(--md-code-hl-string-color)}.highlight :is(.cp,.se,.sh,.sr,.sx){color:var(--md-code-hl-special-color)}.highlight :is(.m,.mb,.mf,.mh,.mi,.il,.mo){color:var(--md-code-hl-number-color)}.highlight :is(.k,.kd,.kn,.kp,.kr,.kt){color:var(--md-code-hl-keyword-color)}.highlight :is(.kc,.n,.nb,.nf){color:var(--md-code-hl-name-color)}.highlight :is(.nc,.no,.bp){color:var(--md-code-hl-constant-color)}.highlight :is(.ne,.nn){color:var(--md-code-hl-function-color)}.highlight :is(.nd,.ni,.nl,.nt){color:var(--md-code-hl-keyword-color)}.highlight :is(.c,.cm,.c1,.ch,.cs,.sd){color:var(--md-code-hl-comment-color)}.highlight :is(.na,.nv,.vc,.vg,.vi){color:var(--md-code-hl-variable-color)}.highlight :is(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){color:var(--md-code-hl-generic-color)}.highlight :is(.gd,.gi){padding:0 px2em(2px);margin:0 px2em(-2px);border-radius:px2rem(2px)}.highlight .gd{background-color:var(--md-typeset-del-color)}.highlight .gi{background-color:var(--md-typeset-ins-color)}.highlight .hll{display:block;padding:0 px2em(16px, 13.6px);margin:0 px2em(-16px, 13.6px);background-color:var(--md-code-hl-color--light);box-shadow:2px 0 0 0 var(--md-code-hl-color) inset}.highlight span.filename{position:relative;display:flow-root;padding:px2em(9px, 13.6px) px2em(16px, 13.6px);margin-top:1em;font-size:px2em(13.6px);font-weight:700;background-color:var(--md-code-bg-color);border-bottom:px2rem(1px) solid var(--md-default-fg-color--lightest);border-top-left-radius:px2rem(2px);border-top-right-radius:px2rem(2px)}.highlight span.filename+pre{margin-top:0}.highlight span.filename+pre>code{border-top-left-radius:0;border-top-right-radius:0}.highlight [data-linenos]::before{position:sticky;left:px2em(-16px, 13.6px);z-index:3;float:left;padding-left:px2em(16px, 13.6px);margin-right:px2em(16px, 13.6px);margin-left:px2em(-16px, 13.6px);color:var(--md-default-fg-color--light);content:attr(data-linenos);user-select:none;background-color:var(--md-code-bg-color);box-shadow:px2rem(-1px) 0 var(--md-default-fg-color--lightest) inset}.highlight code a[id]{position:absolute;visibility:hidden}.highlight code[data-md-copying] .hll{display:contents}.highlight code[data-md-copying] .md-annotation{display:none}.highlighttable{display:flow-root}.highlighttable :is(tbody,td){display:block;padding:0}.highlighttable tr{display:flex}.highlighttable pre{margin:0}.highlighttable th.filename{flex-grow:1;padding:0;text-align:left}.highlighttable th.filename span.filename{margin-top:0}.highlighttable .linenos{padding:px2em(10.5px, 13.6px) px2em(16px, 13.6px);padding-right:0;font-size:px2em(13.6px);user-select:none;background-color:var(--md-code-bg-color);border-top-left-radius:px2rem(2px);border-bottom-left-radius:px2rem(2px)}.highlighttable .linenodiv{padding-right:px2em(8px, 13.6px);box-shadow:px2rem(-1px) 0 var(--md-default-fg-color--lightest) inset}.highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.highlighttable .code{flex:1;min-width:0}.linenodiv a{color:inherit}.md-typeset .highlighttable{margin:1em 0;direction:ltr}.md-typeset .highlighttable>tbody>tr>.code>div>pre>code{border-top-left-radius:0;border-bottom-left-radius:0}.md-typeset .highlight+.result{padding:0 px2em(16px);margin-top:calc(-1em + px2em(-2px));overflow:visible;border:px2rem(1px) solid var(--md-code-bg-color);border-top-width:px2rem(2px);border-bottom-right-radius:px2rem(2px);border-bottom-left-radius:px2rem(2px)}.md-typeset .highlight+.result::after{display:block;clear:both;content:""}.image-list{display:grid;grid-template-columns:repeat(auto-fill, minmax(30ch, 1fr));align-items:center;row-gap:var(--block-flow-sm);column-gap:var(--padding-md)}.image-list>.item{display:grid;grid-template-columns:min-content 1fr;align-items:center;column-gap:var(--padding-xs)}.link-actions{display:flex;flex-wrap:wrap;gap:var(--padding-xs) var(--padding-sm);line-height:var(--line-height-sm);--link-external-postfix: none}.link-actions>a{display:flex;align-items:center;white-space:nowrap}.link-actions>a::before,.link-actions>a>img{display:inline-block;width:1.3em;aspect-ratio:1;margin-inline-end:var(--padding-xxs)}.link-actions>a:hover img{opacity:.7}.link-actions>a>img{object-fit:contain}@media(prefers-color-scheme: dark){.link-actions>a>img{filter:invert()}}.link-actions>a::before{background-color:currentColor;-webkit-mask:var(--link-icon) center/contain no-repeat;mask:var(--link-icon) center/contain no-repeat}.link-actions>a[href^="https://crystal-lang.org/api/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M11 44q-1.2 0-2.1-.9Q8 42.2 8 41V7q0-1.2.9-2.1Q9.8 4 11 4h26q1.2 0 2.1.9.9.9.9 2.1v34q0 1.2-.9 2.1-.9.9-2.1.9Zm0-3h26V7h-3v13.3l-4.85-2.8-4.85 2.8V7H11v34Zm0 0V7v34Zm13.3-20.7 4.85-2.8L34 20.3l-4.85-2.8-4.85 2.8Z' /%3E%3C/svg%3E")}.link-actions>a[href^="https://github.com/crystal-lang/crystal/releases"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.41 11.58L12.41 2.58A2 2 0 0 0 11 2H4A2 2 0 0 0 2 4V11A2 2 0 0 0 2.59 12.42L11.59 21.42A2 2 0 0 0 13 22A2 2 0 0 0 14.41 21.41L21.41 14.41A2 2 0 0 0 22 13A2 2 0 0 0 21.41 11.58M13 20L4 11V4H11L20 13M6.5 5A1.5 1.5 0 1 1 5 6.5A1.5 1.5 0 0 1 6.5 5Z' /%3E%3C/svg%3E")}.link-actions>a[href^="https://github.com/crystal-lang/crystal/releases/tag/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M23.85 42q-7.45 0-12.65-5.275T6 23.95h3q0 6.25 4.3 10.65T23.85 39q6.35 0 10.75-4.45t4.4-10.8q0-6.2-4.45-10.475Q30.1 9 23.85 9q-3.4 0-6.375 1.55t-5.175 4.1h5.25v3H7.1V7.25h3v5.3q2.6-3.05 6.175-4.8Q19.85 6 23.85 6q3.75 0 7.05 1.4t5.775 3.825q2.475 2.425 3.9 5.675Q42 20.15 42 23.9t-1.425 7.05q-1.425 3.3-3.9 5.75-2.475 2.45-5.775 3.875Q27.6 42 23.85 42Zm6.4-9.85-7.7-7.6v-10.7h3v9.45L32.4 30Z' /%3E%3C/svg%3E")}.link-actions>a[href^="https://github.com/crystal-lang/crystal/tree/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24.13 23.03'%3E%3Cpath d='M12.11 0C5.61-.19.21 4.91 0 11.41c-.2 5.3 3.2 10 8.3 11.6.3.1.7-.1.8-.4v-2.2c-3.3.7-4-1.6-4-1.6-.2-.7-.7-1.3-1.3-1.7-1.1-.7.1-.7.1-.7.8.1 1.4.6 1.8 1.2.7 1.2 2.2 1.6 3.4 1 .1-.6.3-1.2.8-1.6-2.7-.3-5.5-1.3-5.5-5.8 0-1.2.4-2.3 1.2-3.2-.4-1-.3-2.1.1-3.1 0 0 1-.3 3.3 1.2 2-.5 4-.5 6 0 2.3-1.5 3.3-1.2 3.3-1.2.4 1 .5 2.1.1 3.1.8.9 1.2 2 1.2 3.2 0 4.5-2.8 5.5-5.5 5.8.6.6.9 1.4.8 2.2v3.2c0 .3.3.6.6.6h.3c6.2-1.9 9.7-8.5 7.8-14.7-1.49-5.1-6.19-8.5-11.49-8.31Z' /%3E%3C/svg%3E")}.link-actions>a[href^="https://pretalx.com/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' width='24'%3E%3Cpath d='M200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0 0v-80 80Zm280 240q-17 0-28.5-11.5T440-440q0-17 11.5-28.5T480-480q17 0 28.5 11.5T520-440q0 17-11.5 28.5T480-400Zm-160 0q-17 0-28.5-11.5T280-440q0-17 11.5-28.5T320-480q17 0 28.5 11.5T360-440q0 17-11.5 28.5T320-400Zm320 0q-17 0-28.5-11.5T600-440q0-17 11.5-28.5T640-480q17 0 28.5 11.5T680-440q0 17-11.5 28.5T640-400ZM480-240q-17 0-28.5-11.5T440-280q0-17 11.5-28.5T480-320q17 0 28.5 11.5T520-280q0 17-11.5 28.5T480-240Zm-160 0q-17 0-28.5-11.5T280-280q0-17 11.5-28.5T320-320q17 0 28.5 11.5T360-280q0 17-11.5 28.5T320-240Zm320 0q-17 0-28.5-11.5T600-280q0-17 11.5-28.5T640-320q17 0 28.5 11.5T680-280q0 17-11.5 28.5T640-240Z'/%3E%3C/svg%3E")}.link-actions>a[href^="https://youtube.com/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.582,6.186c-0.23-0.86-0.908-1.538-1.768-1.768C18.254,4,12,4,12,4S5.746,4,4.186,4.418 c-0.86,0.23-1.538,0.908-1.768,1.768C2,7.746,2,12,2,12s0,4.254,0.418,5.814c0.23,0.86,0.908,1.538,1.768,1.768 C5.746,20,12,20,12,20s6.254,0,7.814-0.418c0.861-0.23,1.538-0.908,1.768-1.768C22,16.254,22,12,22,12S22,7.746,21.582,6.186z M10,15.464V8.536L16,12L10,15.464z'%3E%3C/path%3E%3C/svg%3E%0A")}.link-actions>a[href^="https://lu.ma/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 -960 960 960' width='24px' fill='%25235f6368'%3E%3Cpath d='M80-160v-112q0-33 17-62t47-44q51-26 115-44t141-18q30 0 58.5 3t55.5 9l-70 70q-11-2-21.5-2H400q-71 0-127.5 17T180-306q-9 5-14.5 14t-5.5 20v32h250l80 80H80Zm542 16L484-282l56-56 82 82 202-202 56 56-258 258ZM400-480q-66 0-113-47t-47-113q0-66 47-113t113-47q66 0 113 47t47 113q0 66-47 113t-113 47Zm10 240Zm-10-320q33 0 56.5-23.5T480-640q0-33-23.5-56.5T400-720q-33 0-56.5 23.5T320-640q0 33 23.5 56.5T400-560Zm0-80Z'/%3E%3C/svg%3E")}.link-actions>a[href^="/install"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24'%3E%3Cpath d='M320-120v-80H160q-33 0-56.5-23.5T80-280v-480q0-33 23.5-56.5T160-840h320v80H160v480h640v-120h80v120q0 33-23.5 56.5T800-200H640v80H320Zm360-280L480-600l56-56 104 103v-287h80v287l104-103 56 56-200 200Z'/%3E%3C/svg%3E")}.link-actions>a[href^="/blog/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24'%3E%3Cpath d='M160-120q-33 0-56.5-23.5T80-200v-560q0-33 23.5-56.5T160-840h640q33 0 56.5 23.5T880-760v560q0 33-23.5 56.5T800-120H160Zm0-80h640v-560H160v560Zm80-80h480v-80H240v80Zm0-160h160v-240H240v240Zm240 0h240v-80H480v80Zm0-160h240v-80H480v80ZM160-200v-560 560Z'/%3E%3C/svg%3E")}.link-actions>a[href^="/feed.xml"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.18 15.64a2.18 2.18 0 0 1 2.18 2.18C8.36 19 7.38 20 6.18 20C5 20 4 19 4 17.82a2.18 2.18 0 0 1 2.18-2.18M4 4.44A15.56 15.56 0 0 1 19.56 20h-2.83A12.73 12.73 0 0 0 4 7.27V4.44m0 5.66a9.9 9.9 0 0 1 9.9 9.9h-2.83A7.07 7.07 0 0 0 4 12.93V10.1Z'%3E%3C/path%3E%3C/svg%3E")}.link-actions>a[href^="/newsletter/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .64L8.23 3H5v2L2.97 6.29C2.39 6.64 2 7.27 2 8v10a2 2 0 0 0 2 2h16c1.11 0 2-.89 2-2V8c0-.73-.39-1.36-.97-1.71L19 5V3h-3.23M7 5h10v4.88L12 13L7 9.88M8 6v1.5h8V6M5 7.38v1.25L4 8m15-.62L20 8l-1 .63M8 8.5V10h8V8.5Z'/%3E%3C/svg%3E%0A")}.link-actions>a[href^="/newsletter/feed"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.18 15.64a2.18 2.18 0 0 1 2.18 2.18C8.36 19 7.38 20 6.18 20C5 20 4 19 4 17.82a2.18 2.18 0 0 1 2.18-2.18M4 4.44A15.56 15.56 0 0 1 19.56 20h-2.83A12.73 12.73 0 0 0 4 7.27V4.44m0 5.66a9.9 9.9 0 0 1 9.9 9.9h-2.83A7.07 7.07 0 0 0 4 12.93V10.1Z'%3E%3C/path%3E%3C/svg%3E")}.link-actions>a[href^="/releases/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='m344-60-76-128-144-32 14-148-98-112 98-112-14-148 144-32 76-128 136 58 136-58 76 128 144 32-14 148 98 112-98 112 14 148-144 32-76 128-136-58-136 58Zm34-102 102-44 104 44 56-96 110-26-10-112 74-84-74-86 10-112-110-24-58-96-102 44-104-44-56 96-110 24 10 112-74 86 74 84-10 114 110 24 58 96Zm102-318Zm-42 142 226-226-56-58-170 170-86-84-56 56 142 142Z'/%3E%3C/svg%3E")}.link-actions>a[href^="/blog/project/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 193.2 206.7'%3E%3Cpath d='m165.4 122-50 49.9c-.2.2-.5.3-.7.2l-68.3-18.3c-.3-.1-.5-.3-.5-.5L27.5 85.1c-.1-.3 0-.5.2-.7l50-49.9c.2-.2.5-.3.7-.2l68.3 18.3c.3.1.5.3.5.5l18.3 68.2c.2.3.1.5-.1.7zm-67-54.3L31.3 85.6c-.1 0-.2.2-.1.3l49.1 49c.1.1.3.1.3-.1l18-67c.1 0-.1-.2-.2-.1z'/%3E%3Cpath d='M0 0h193.2v206.7H0z' style='fill:none'/%3E%3C/svg%3E%0A")}.link-actions>a[href^="/blog/technical/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24'%3E%3Cpath d='M756-120 537-339l84-84 219 219-84 84Zm-552 0-84-84 276-276-68-68-28 28-51-51v82l-28 28-121-121 28-28h82l-50-50 142-142q20-20 43-29t47-9q24 0 47 9t43 29l-92 92 50 50-28 28 68 68 90-90q-4-11-6.5-23t-2.5-24q0-59 40.5-99.5T701-841q15 0 28.5 3t27.5 9l-99 99 72 72 99-99q7 14 9.5 27.5T841-701q0 59-40.5 99.5T701-561q-12 0-24-2t-23-7L204-120Z'/%3E%3C/svg%3E")}.link-actions>a[href^="/blog/community/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24'%3E%3Cpath d='M40-160v-160q0-34 23.5-57t56.5-23h131q20 0 38 10t29 27q29 39 71.5 61t90.5 22q49 0 91.5-22t70.5-61q13-17 30.5-27t36.5-10h131q34 0 57 23t23 57v160H640v-91q-35 25-75.5 38T480-200q-43 0-84-13.5T320-252v92H40Zm440-160q-38 0-72-17.5T351-386q-17-25-42.5-39.5T253-440q22-37 93-58.5T480-520q63 0 134 21.5t93 58.5q-29 0-55 14.5T609-386q-22 32-56 49t-73 17ZM160-440q-50 0-85-35t-35-85q0-51 35-85.5t85-34.5q51 0 85.5 34.5T280-560q0 50-34.5 85T160-440Zm640 0q-50 0-85-35t-35-85q0-51 35-85.5t85-34.5q51 0 85.5 34.5T920-560q0 50-34.5 85T800-440ZM480-560q-50 0-85-35t-35-85q0-51 35-85.5t85-34.5q51 0 85.5 34.5T600-680q0 50-34.5 85T480-560Z'/%3E%3C/svg%3E")}.link-actions>a[href^="/success-stories/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='M160-120q-33 0-56.5-23.5T80-200v-640l67 67 66-67 67 67 67-67 66 67 67-67 67 67 66-67 67 67 67-67 66 67 67-67v640q0 33-23.5 56.5T800-120H160Zm0-80h280v-240H160v240Zm360 0h280v-80H520v80Zm0-160h280v-80H520v80ZM160-520h640v-120H160v120Z'/%3E%3C/svg%3E")}.link-actions>a[href^="/blog/tags"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ctitle%3Etag-multiple%3C/title%3E%3Cpath d='M5.5,9A1.5,1.5 0 0,0 7,7.5A1.5,1.5 0 0,0 5.5,6A1.5,1.5 0 0,0 4,7.5A1.5,1.5 0 0,0 5.5,9M17.41,11.58C17.77,11.94 18,12.44 18,13C18,13.55 17.78,14.05 17.41,14.41L12.41,19.41C12.05,19.77 11.55,20 11,20C10.45,20 9.95,19.78 9.58,19.41L2.59,12.42C2.22,12.05 2,11.55 2,11V6C2,4.89 2.89,4 4,4H9C9.55,4 10.05,4.22 10.41,4.58L17.41,11.58M13.54,5.71L14.54,4.71L21.41,11.58C21.78,11.94 22,12.45 22,13C22,13.55 21.78,14.05 21.42,14.41L16.04,19.79L15.04,18.79L20.75,13L13.54,5.71Z' /%3E%3C/svg%3E")}.link-actions>a[href^="/used_in_prod/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24'%3E%3Cpath d='m226-559 78 33q14-28 29-54t33-52l-56-11-84 84Zm142 83 114 113q42-16 90-49t90-75q70-70 109.5-155.5T806-800q-72-5-158 34.5T492-656q-42 42-75 90t-49 90Zm178-65q-23-23-23-56.5t23-56.5q23-23 57-23t57 23q23 23 23 56.5T660-541q-23 23-57 23t-57-23Zm19 321 84-84-11-56q-26 18-52 32.5T532-299l33 79Zm313-653q19 121-23.5 235.5T708-419l20 99q4 20-2 39t-20 33L538-80l-84-197-171-171-197-84 167-168q14-14 33.5-20t39.5-2l99 20q104-104 218-147t235-24ZM157-321q35-35 85.5-35.5T328-322q35 35 34.5 85.5T327-151q-25 25-83.5 43T82-76q14-103 32-161.5t43-83.5Zm57 56q-10 10-20 36.5T180-175q27-4 53.5-13.5T270-208q12-12 13-29t-11-29q-12-12-29-11.5T214-265Z'/%3E%3C/svg%3E")}body>header{--link-external-postfix: "";--link-color: var(--light-text);--link-hover-color: var(--primary-text);padding:var(--padding-xs);display:grid;grid-template-columns:minmax(min-content, calc((100vw - var(--main-width)) / 2 - var(--padding-xs) - var(--padding-sm))) minmax(min-content, var(--main-width)) auto max-content;grid-template-areas:"logo breadcrumbs main util";column-gap:var(--padding-sm)}body>header .nav-start{grid-area:logo;display:grid;justify-content:start}body>header .section-nav{grid-area:breadcrumbs}body>header .mainnav{grid-area:main;justify-self:end}body>header .utilnav{grid-area:util}body>header>.section-nav{margin:0}.mainnav{align-self:center}.mainnav ul{all:unset;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:end;column-gap:var(--padding-xxs);font-size:.8rem}.mainnav li{all:unset}.mainnav li>a{display:block;padding:0 var(--padding-xxs);cursor:pointer}.mainnav li>a[aria-current=page]{font-weight:500}.utilnav{display:flex;justify-self:end;justify-content:end;align-items:center;gap:1em}@media(max-width: 50em){body:not(.layout--home) .utilnav{flex-direction:column}}.utilnav>a{display:flex}.site-logo{display:flex;align-items:center;--link-color: var(--primary-text);--link-hover-color: var(--light-text)}.site-logo>svg{height:1.5em;fill:currentcolor}.partner-images{display:grid;grid-auto-flow:column;grid-template-columns:min(22%,8rem);grid-auto-columns:auto min(22%,8rem);align-items:center;justify-content:center;justify-items:center;column-gap:var(--padding-xs)}.partner-images>a{display:block;width:100%}.partner-images>span{font-size:300%}.post-teaser,.post{display:grid;grid-template-columns:4.5em 1fr}.post-teaser.post-teaser,.post.post-teaser{grid-template-rows:1.4em 1.4em auto auto 1fr auto;grid-template-areas:"avatars names" "avatars date" "avatars title" "avatars image" "avatars body" ". body" ". taxonomy"}.post-teaser.post,.post.post{grid-template-rows:1.4em 1.4em auto auto auto 1fr;column-gap:var(--padding-xs);grid-template-areas:"avatars names" "avatars date" "avatars title" "avatars taxonomy" "avatars image" "avatars body" ". body"}@media(max-width: 80ch){.post-teaser.post,.post.post{grid-template-areas:"avatars names" "avatars date" "avatars title" "avatars taxonomy" "image image" "body body"}}@media(max-width: 80ch){.post-teaser,.post{grid-template-columns:3.5em 1fr}}.post-teaser>.avatar-list,.post>.avatar-list{grid-area:avatars;justify-self:center}.post-teaser>.author-names,.post>.author-names{grid-area:names;align-self:end}.post-teaser>.post-date,.post>.post-date{grid-area:date}.post-teaser>.post-title,.post-teaser.post-card>.name,.post-teaser>hgroup,.post>.post-title,.post.post-card>.name,.post>hgroup{grid-area:title}.post-teaser>.excerpt,.post-teaser>.post__body,.post>.excerpt,.post>.post__body{grid-area:body}.post-teaser>.post-image,.post-teaser>.partner-images,.post>.post-image,.post>.partner-images{grid-area:image}.post-teaser>.taxonomy,.post>.taxonomy{margin-block-start:var(--padding-xs);grid-area:taxonomy}@media(max-width: 80ch){.post{grid-template-areas:"avatars names" "avatars date" "title title" "image image" "body body"}}.post-date{color:var(--lighter-text)}.post-date,.author-names{font-size:.8rem;line-height:var(--line-height-sm)}.author-names>.author-name:not(:last-child)::after{content:", "}.excerpt{margin-block-start:.2em;line-height:var(--line-height-md)}.post-image,.post>.partner-images{max-width:min(100%,var(--content-width));margin-block-start:var(--block-flow-md)}.taxonomy{font-size:.8rem;display:flex;flex-wrap:wrap;flex-direction:row;align-items:center;column-gap:var(--padding-xxs);color:var(--lighter-text);font-size:.8rem;line-height:var(--line-height-sm)}.taxonomy .category{display:flex;align-items:center;font-weight:500}.taxonomy .category::before,.taxonomy .category>img{display:inline-block;width:1.3em;aspect-ratio:1;margin-inline-end:var(--padding-xxs)}.taxonomy .category:hover img{opacity:.7}.taxonomy .category>img{object-fit:contain}@media(prefers-color-scheme: dark){.taxonomy .category>img{filter:invert()}}.taxonomy .category::before{background-color:currentColor;-webkit-mask:var(--link-icon) center/contain no-repeat;mask:var(--link-icon) center/contain no-repeat}.taxonomy .category[href^="https://crystal-lang.org/api/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M11 44q-1.2 0-2.1-.9Q8 42.2 8 41V7q0-1.2.9-2.1Q9.8 4 11 4h26q1.2 0 2.1.9.9.9.9 2.1v34q0 1.2-.9 2.1-.9.9-2.1.9Zm0-3h26V7h-3v13.3l-4.85-2.8-4.85 2.8V7H11v34Zm0 0V7v34Zm13.3-20.7 4.85-2.8L34 20.3l-4.85-2.8-4.85 2.8Z' /%3E%3C/svg%3E")}.taxonomy .category[href^="https://github.com/crystal-lang/crystal/releases"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.41 11.58L12.41 2.58A2 2 0 0 0 11 2H4A2 2 0 0 0 2 4V11A2 2 0 0 0 2.59 12.42L11.59 21.42A2 2 0 0 0 13 22A2 2 0 0 0 14.41 21.41L21.41 14.41A2 2 0 0 0 22 13A2 2 0 0 0 21.41 11.58M13 20L4 11V4H11L20 13M6.5 5A1.5 1.5 0 1 1 5 6.5A1.5 1.5 0 0 1 6.5 5Z' /%3E%3C/svg%3E")}.taxonomy .category[href^="https://github.com/crystal-lang/crystal/releases/tag/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M23.85 42q-7.45 0-12.65-5.275T6 23.95h3q0 6.25 4.3 10.65T23.85 39q6.35 0 10.75-4.45t4.4-10.8q0-6.2-4.45-10.475Q30.1 9 23.85 9q-3.4 0-6.375 1.55t-5.175 4.1h5.25v3H7.1V7.25h3v5.3q2.6-3.05 6.175-4.8Q19.85 6 23.85 6q3.75 0 7.05 1.4t5.775 3.825q2.475 2.425 3.9 5.675Q42 20.15 42 23.9t-1.425 7.05q-1.425 3.3-3.9 5.75-2.475 2.45-5.775 3.875Q27.6 42 23.85 42Zm6.4-9.85-7.7-7.6v-10.7h3v9.45L32.4 30Z' /%3E%3C/svg%3E")}.taxonomy .category[href^="https://github.com/crystal-lang/crystal/tree/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24.13 23.03'%3E%3Cpath d='M12.11 0C5.61-.19.21 4.91 0 11.41c-.2 5.3 3.2 10 8.3 11.6.3.1.7-.1.8-.4v-2.2c-3.3.7-4-1.6-4-1.6-.2-.7-.7-1.3-1.3-1.7-1.1-.7.1-.7.1-.7.8.1 1.4.6 1.8 1.2.7 1.2 2.2 1.6 3.4 1 .1-.6.3-1.2.8-1.6-2.7-.3-5.5-1.3-5.5-5.8 0-1.2.4-2.3 1.2-3.2-.4-1-.3-2.1.1-3.1 0 0 1-.3 3.3 1.2 2-.5 4-.5 6 0 2.3-1.5 3.3-1.2 3.3-1.2.4 1 .5 2.1.1 3.1.8.9 1.2 2 1.2 3.2 0 4.5-2.8 5.5-5.5 5.8.6.6.9 1.4.8 2.2v3.2c0 .3.3.6.6.6h.3c6.2-1.9 9.7-8.5 7.8-14.7-1.49-5.1-6.19-8.5-11.49-8.31Z' /%3E%3C/svg%3E")}.taxonomy .category[href^="https://pretalx.com/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' width='24'%3E%3Cpath d='M200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0 0v-80 80Zm280 240q-17 0-28.5-11.5T440-440q0-17 11.5-28.5T480-480q17 0 28.5 11.5T520-440q0 17-11.5 28.5T480-400Zm-160 0q-17 0-28.5-11.5T280-440q0-17 11.5-28.5T320-480q17 0 28.5 11.5T360-440q0 17-11.5 28.5T320-400Zm320 0q-17 0-28.5-11.5T600-440q0-17 11.5-28.5T640-480q17 0 28.5 11.5T680-440q0 17-11.5 28.5T640-400ZM480-240q-17 0-28.5-11.5T440-280q0-17 11.5-28.5T480-320q17 0 28.5 11.5T520-280q0 17-11.5 28.5T480-240Zm-160 0q-17 0-28.5-11.5T280-280q0-17 11.5-28.5T320-320q17 0 28.5 11.5T360-280q0 17-11.5 28.5T320-240Zm320 0q-17 0-28.5-11.5T600-280q0-17 11.5-28.5T640-320q17 0 28.5 11.5T680-280q0 17-11.5 28.5T640-240Z'/%3E%3C/svg%3E")}.taxonomy .category[href^="https://youtube.com/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.582,6.186c-0.23-0.86-0.908-1.538-1.768-1.768C18.254,4,12,4,12,4S5.746,4,4.186,4.418 c-0.86,0.23-1.538,0.908-1.768,1.768C2,7.746,2,12,2,12s0,4.254,0.418,5.814c0.23,0.86,0.908,1.538,1.768,1.768 C5.746,20,12,20,12,20s6.254,0,7.814-0.418c0.861-0.23,1.538-0.908,1.768-1.768C22,16.254,22,12,22,12S22,7.746,21.582,6.186z M10,15.464V8.536L16,12L10,15.464z'%3E%3C/path%3E%3C/svg%3E%0A")}.taxonomy .category[href^="https://lu.ma/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 -960 960 960' width='24px' fill='%25235f6368'%3E%3Cpath d='M80-160v-112q0-33 17-62t47-44q51-26 115-44t141-18q30 0 58.5 3t55.5 9l-70 70q-11-2-21.5-2H400q-71 0-127.5 17T180-306q-9 5-14.5 14t-5.5 20v32h250l80 80H80Zm542 16L484-282l56-56 82 82 202-202 56 56-258 258ZM400-480q-66 0-113-47t-47-113q0-66 47-113t113-47q66 0 113 47t47 113q0 66-47 113t-113 47Zm10 240Zm-10-320q33 0 56.5-23.5T480-640q0-33-23.5-56.5T400-720q-33 0-56.5 23.5T320-640q0 33 23.5 56.5T400-560Zm0-80Z'/%3E%3C/svg%3E")}.taxonomy .category[href^="/install"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24'%3E%3Cpath d='M320-120v-80H160q-33 0-56.5-23.5T80-280v-480q0-33 23.5-56.5T160-840h320v80H160v480h640v-120h80v120q0 33-23.5 56.5T800-200H640v80H320Zm360-280L480-600l56-56 104 103v-287h80v287l104-103 56 56-200 200Z'/%3E%3C/svg%3E")}.taxonomy .category[href^="/blog/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24'%3E%3Cpath d='M160-120q-33 0-56.5-23.5T80-200v-560q0-33 23.5-56.5T160-840h640q33 0 56.5 23.5T880-760v560q0 33-23.5 56.5T800-120H160Zm0-80h640v-560H160v560Zm80-80h480v-80H240v80Zm0-160h160v-240H240v240Zm240 0h240v-80H480v80Zm0-160h240v-80H480v80ZM160-200v-560 560Z'/%3E%3C/svg%3E")}.taxonomy .category[href^="/feed.xml"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.18 15.64a2.18 2.18 0 0 1 2.18 2.18C8.36 19 7.38 20 6.18 20C5 20 4 19 4 17.82a2.18 2.18 0 0 1 2.18-2.18M4 4.44A15.56 15.56 0 0 1 19.56 20h-2.83A12.73 12.73 0 0 0 4 7.27V4.44m0 5.66a9.9 9.9 0 0 1 9.9 9.9h-2.83A7.07 7.07 0 0 0 4 12.93V10.1Z'%3E%3C/path%3E%3C/svg%3E")}.taxonomy .category[href^="/newsletter/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .64L8.23 3H5v2L2.97 6.29C2.39 6.64 2 7.27 2 8v10a2 2 0 0 0 2 2h16c1.11 0 2-.89 2-2V8c0-.73-.39-1.36-.97-1.71L19 5V3h-3.23M7 5h10v4.88L12 13L7 9.88M8 6v1.5h8V6M5 7.38v1.25L4 8m15-.62L20 8l-1 .63M8 8.5V10h8V8.5Z'/%3E%3C/svg%3E%0A")}.taxonomy .category[href^="/newsletter/feed"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.18 15.64a2.18 2.18 0 0 1 2.18 2.18C8.36 19 7.38 20 6.18 20C5 20 4 19 4 17.82a2.18 2.18 0 0 1 2.18-2.18M4 4.44A15.56 15.56 0 0 1 19.56 20h-2.83A12.73 12.73 0 0 0 4 7.27V4.44m0 5.66a9.9 9.9 0 0 1 9.9 9.9h-2.83A7.07 7.07 0 0 0 4 12.93V10.1Z'%3E%3C/path%3E%3C/svg%3E")}.taxonomy .category[href^="/releases/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='m344-60-76-128-144-32 14-148-98-112 98-112-14-148 144-32 76-128 136 58 136-58 76 128 144 32-14 148 98 112-98 112 14 148-144 32-76 128-136-58-136 58Zm34-102 102-44 104 44 56-96 110-26-10-112 74-84-74-86 10-112-110-24-58-96-102 44-104-44-56 96-110 24 10 112-74 86 74 84-10 114 110 24 58 96Zm102-318Zm-42 142 226-226-56-58-170 170-86-84-56 56 142 142Z'/%3E%3C/svg%3E")}.taxonomy .category[href^="/blog/project/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 193.2 206.7'%3E%3Cpath d='m165.4 122-50 49.9c-.2.2-.5.3-.7.2l-68.3-18.3c-.3-.1-.5-.3-.5-.5L27.5 85.1c-.1-.3 0-.5.2-.7l50-49.9c.2-.2.5-.3.7-.2l68.3 18.3c.3.1.5.3.5.5l18.3 68.2c.2.3.1.5-.1.7zm-67-54.3L31.3 85.6c-.1 0-.2.2-.1.3l49.1 49c.1.1.3.1.3-.1l18-67c.1 0-.1-.2-.2-.1z'/%3E%3Cpath d='M0 0h193.2v206.7H0z' style='fill:none'/%3E%3C/svg%3E%0A")}.taxonomy .category[href^="/blog/technical/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24'%3E%3Cpath d='M756-120 537-339l84-84 219 219-84 84Zm-552 0-84-84 276-276-68-68-28 28-51-51v82l-28 28-121-121 28-28h82l-50-50 142-142q20-20 43-29t47-9q24 0 47 9t43 29l-92 92 50 50-28 28 68 68 90-90q-4-11-6.5-23t-2.5-24q0-59 40.5-99.5T701-841q15 0 28.5 3t27.5 9l-99 99 72 72 99-99q7 14 9.5 27.5T841-701q0 59-40.5 99.5T701-561q-12 0-24-2t-23-7L204-120Z'/%3E%3C/svg%3E")}.taxonomy .category[href^="/blog/community/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24'%3E%3Cpath d='M40-160v-160q0-34 23.5-57t56.5-23h131q20 0 38 10t29 27q29 39 71.5 61t90.5 22q49 0 91.5-22t70.5-61q13-17 30.5-27t36.5-10h131q34 0 57 23t23 57v160H640v-91q-35 25-75.5 38T480-200q-43 0-84-13.5T320-252v92H40Zm440-160q-38 0-72-17.5T351-386q-17-25-42.5-39.5T253-440q22-37 93-58.5T480-520q63 0 134 21.5t93 58.5q-29 0-55 14.5T609-386q-22 32-56 49t-73 17ZM160-440q-50 0-85-35t-35-85q0-51 35-85.5t85-34.5q51 0 85.5 34.5T280-560q0 50-34.5 85T160-440Zm640 0q-50 0-85-35t-35-85q0-51 35-85.5t85-34.5q51 0 85.5 34.5T920-560q0 50-34.5 85T800-440ZM480-560q-50 0-85-35t-35-85q0-51 35-85.5t85-34.5q51 0 85.5 34.5T600-680q0 50-34.5 85T480-560Z'/%3E%3C/svg%3E")}.taxonomy .category[href^="/success-stories/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='M160-120q-33 0-56.5-23.5T80-200v-640l67 67 66-67 67 67 67-67 66 67 67-67 67 67 66-67 67 67 67-67 66 67 67-67v640q0 33-23.5 56.5T800-120H160Zm0-80h280v-240H160v240Zm360 0h280v-80H520v80Zm0-160h280v-80H520v80ZM160-520h640v-120H160v120Z'/%3E%3C/svg%3E")}.taxonomy .category[href^="/blog/tags"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ctitle%3Etag-multiple%3C/title%3E%3Cpath d='M5.5,9A1.5,1.5 0 0,0 7,7.5A1.5,1.5 0 0,0 5.5,6A1.5,1.5 0 0,0 4,7.5A1.5,1.5 0 0,0 5.5,9M17.41,11.58C17.77,11.94 18,12.44 18,13C18,13.55 17.78,14.05 17.41,14.41L12.41,19.41C12.05,19.77 11.55,20 11,20C10.45,20 9.95,19.78 9.58,19.41L2.59,12.42C2.22,12.05 2,11.55 2,11V6C2,4.89 2.89,4 4,4H9C9.55,4 10.05,4.22 10.41,4.58L17.41,11.58M13.54,5.71L14.54,4.71L21.41,11.58C21.78,11.94 22,12.45 22,13C22,13.55 21.78,14.05 21.42,14.41L16.04,19.79L15.04,18.79L20.75,13L13.54,5.71Z' /%3E%3C/svg%3E")}.taxonomy .category[href^="/used_in_prod/"]:not(:has(>img))::before{content:"";--link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24'%3E%3Cpath d='m226-559 78 33q14-28 29-54t33-52l-56-11-84 84Zm142 83 114 113q42-16 90-49t90-75q70-70 109.5-155.5T806-800q-72-5-158 34.5T492-656q-42 42-75 90t-49 90Zm178-65q-23-23-23-56.5t23-56.5q23-23 57-23t57 23q23 23 23 56.5T660-541q-23 23-57 23t-57-23Zm19 321 84-84-11-56q-26 18-52 32.5T532-299l33 79Zm313-653q19 121-23.5 235.5T708-419l20 99q4 20-2 39t-20 33L538-80l-84-197-171-171-197-84 167-168q14-14 33.5-20t39.5-2l99 20q104-104 218-147t235-24ZM157-321q35-35 85.5-35.5T328-322q35 35 34.5 85.5T327-151q-25 25-83.5 43T82-76q14-103 32-161.5t43-83.5Zm57 56q-10 10-20 36.5T180-175q27-4 53.5-13.5T270-208q12-12 13-29t-11-29q-12-12-29-11.5T214-265Z'/%3E%3C/svg%3E")}.post-title,.post-card>.name{--link-color: currentcolor;--link-hover-color: var(--light-text);font-weight:400;font-size:150%;line-height:var(--line-height-heading);margin-right:auto;margin-left:-0.1ch;text-wrap:balance}.post-title:is(h1,.h1),.post-card>.name:is(h1,.h1){font-size:300%}.post-title+.subtitle,.post-card>.name+.subtitle{margin-block-start:.4em;color:var(--light-gray)}.post>.post__body{margin-block-start:var(--block-flow-md)}:where(.post>.post__body>*){margin-block:0}:where(.post>.post__body>*)+*{margin-block-start:var(--block-flow, var(--block-flow-sm))}:where(.post>.post__body>*)+*:is(hr,.full-width-rule),:where(.post>.post__body>*)+*:is(.link-actions){margin-block-start:var(--block-flow-md)}:where(.post>.post__body>:is(hr,.full-width-rule)+*){margin-block-start:var(--block-flow-md)}:where(.post>.post__body>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*){margin-block-start:var(--block-flow-xs)}:where(.post>.post__body>section+section){margin-block-start:var(--block-flow-lg)}:where(.post>.post__body>p+p){margin-block-start:var(--block-flow-xs)}#discourse-comments{max-width:var(--content-width)}.post-pagination{--link-color: var(--light-gray);display:flex;flex-wrap:wrap;gap:var(--padding-xs) var(--padding-sm)}.post-pagination a{font-weight:500;display:inline-block;line-height:var(--line-height-sm);text-wrap:balance;align-self:center}.post-pagination a[rel=next]::before,.post-pagination a[rel=prev]::after{content:"";display:inline-block;border:solid currentColor;border-width:0 .33ch .33ch 0;padding:.33ch;align-self:center}.post-pagination a[rel=prev]{margin-inline-start:auto;text-align:right}.post-pagination a[rel=prev]::after{transform:rotate(-45deg);margin-inline-start:.5ch;transition:transform .2s}.post-pagination a[rel=prev]:hover::after{transform:translateX(0.3ch) scale(1.1) rotate(-45deg)}.post-pagination a[rel=next]{margin-inline-end:auto}.post-pagination a[rel=next]::before{transform:rotate(135deg);margin-inline-end:.5ch;transition:transform .2s}.post-pagination a[rel=next]:hover::before{transform:translateX(-0.3ch) scale(1.1) rotate(135deg)}.side-section{column-gap:clamp(var(--block-flow-sm),-5rem + 13vw,var(--block-flow-lg));row-gap:var(--block-flow-sm);display:flex;flex-flow:row wrap;align-items:start}.side-section.reversed{flex-direction:row-reverse;justify-content:flex-end}.side-section>aside{flex-grow:1;flex-basis:25%}:where(.side-section>aside>*){margin-block:0}:where(.side-section>aside>*)+*{margin-block-start:var(--block-flow, var(--block-flow-xs))}:where(.side-section>aside>*)+*:is(hr,.full-width-rule),:where(.side-section>aside>*)+*:is(.link-actions){margin-block-start:var(--block-flow-md)}:where(.side-section>aside>:is(hr,.full-width-rule)+*){margin-block-start:var(--block-flow-md)}:where(.side-section>aside>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*){margin-block-start:var(--block-flow-xs)}:where(.side-section>aside>section+section){margin-block-start:var(--block-flow-lg)}:where(.side-section>aside>p+p){margin-block-start:var(--block-flow-xs)}.side-section>aside>:is(h2,.h2,h3,.h3,h4,.h4,.releases-info>strong){color:var(--primary-color)}.side-section>aside>:is(h2,.h2,h3,.h3,h4,.h4,.releases-info>strong):not(:first-child){margin-block-start:var(--block-flow, var(--block-flow-md))}.side-section>aside>:is(a):not(:first-child){margin-block-start:var(--block-flow, var(--block-flow-sm))}.side-section>:not(aside){flex-grow:1000;flex-basis:min(60ch,70%);margin:0}:where(.side-section>:not(aside)>*){margin-block:0}:where(.side-section>:not(aside)>*)+*{margin-block-start:var(--block-flow, var(--block-flow-sm))}:where(.side-section>:not(aside)>*)+*:is(hr,.full-width-rule),:where(.side-section>:not(aside)>*)+*:is(.link-actions){margin-block-start:var(--block-flow-md)}:where(.side-section>:not(aside)>:is(hr,.full-width-rule)+*){margin-block-start:var(--block-flow-md)}:where(.side-section>:not(aside)>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*){margin-block-start:var(--block-flow-xs)}:where(.side-section>:not(aside)>section+section){margin-block-start:var(--block-flow-lg)}:where(.side-section>:not(aside)>p+p){margin-block-start:var(--block-flow-xs)}.side-section>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong){flex-basis:100%}.sponsor-card:not(:hover)>.name:any-link~img{filter:grayscale(1)}.sponsor-card>.name,.sponsor-card>.all-time{font-weight:500}.testimonial-profile{color:var(--lighter-text);display:flex;flex-direction:column;gap:var(--padding-md);align-items:center}.testimonial-profile>img{width:11em;aspect-ratio:1;object-fit:cover;clip-path:content-box circle(50%)}.testimonial-profile>p{text-align:center;max-width:20em;text-wrap:balance}.testimonial-profile+blockquote{color:var(--light-text);font-style:italic;text-align:center;text-wrap:balance;font-weight:500;border:none;padding:0}.top-sponsors{display:flex;flex-wrap:wrap;gap:var(--padding-sm);justify-content:center;margin-top:var(--block-flow-md);--top-sponsors-icon-width: 12ch;--top-sponsors-icon-filter: grayscale();--link-color: var(--primary-text);--link-hover-color: var(--light-text)}@media(prefers-color-scheme: dark){.top-sponsors{--top-sponsors-icon-filter: invert() contrast(0.78) grayscale()}}.top-sponsors--corporate{gap:var(--padding-md)}.top-sponsors--gold{--top-sponsors-icon-width: 10ch;--top-sponsors-icon-filter: grayscale();--link-color: var(--lighter-text);font-size:.8rem}.top-sponsors--silver{--top-sponsors-icon-width: 6ch;--top-sponsors-icon-filter: grayscale();--link-color: var(--lighter-text);font-size:.8rem}.top-sponsors>a{display:flex;flex-direction:column;row-gap:var(--padding-sm);align-items:center;text-align:center;line-height:var(--line-height-sm);width:var(--top-sponsors-icon-width);white-space:normal}.top-sponsors>a>img{width:80%;aspect-ratio:1;object-fit:contain;transition:all 200ms}@media(prefers-color-scheme: dark){.top-sponsors>a>img[src="/assets/m.svg"]{filter:contrast(0.7)}}.top-sponsors>a:not(:hover)>img{filter:var(--top-sponsors-icon-filter);transform:scale(0.97)}@media(prefers-color-scheme: dark){.top-sponsors>a:not(:hover)>img[src="/assets/m.svg"]{filter:grayscale() contrast(0.7)}}.topics{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%, 14em), 1fr));column-gap:var(--padding-md);row-gap:var(--padding-lg)}.topic{display:grid;justify-self:center;grid-template-areas:"icon title" "x main" "x cta";grid-template-rows:auto auto 1fr;grid-template-columns:auto 1fr;column-gap:var(--padding-sm)}.topic>*{grid-area:main}.topic>p{max-width:43ch}.topic>.topic-icon{grid-area:icon;width:2.5ch;align-self:center}.topic>strong{grid-area:title;font-weight:500}.topic>:last-child:any-link{grid-area:cta;align-self:end;margin-top:var(--padding-md)}@media(prefers-color-scheme: dark){.topic img.topic-icon{filter:contrast(0)}.topic .topic-icon svg{fill:hsl(0,0%,50%)}}}@layer pages{.more-posts{display:flex;flex-direction:column;gap:var(--block-flow-sm)}.more-posts>.post-micro-teaser{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"date taxonomy" "title title";align-items:baseline;gap:var(--padding-xxs) var(--padding-xs)}.more-posts>.post-micro-teaser>.post-date{grid-area:date}.more-posts>.post-micro-teaser>.post-title,.more-posts>.post-micro-teaser.post-card>.name{grid-area:title}.more-posts>.post-micro-teaser>.taxonomy{grid-area:taxonomy}.releases-info{padding:var(--padding-sm) var(--padding-md);background-color:var(--background-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--padding-xs);border-radius:4px}.releases-info>.hex{margin-bottom:var(--padding-sm)}.featured-posts:has(>.releases-info){grid-template-columns:1fr max(18em,30%)}.featured-posts:has(>.releases-info)>:first-child{grid-column:1/-2}@media(max-width: 49em){.featured-posts:has(>.releases-info){grid-template-columns:1fr}.featured-posts:has(>.releases-info)>.releases-info{order:-1}}@media(max-width: 49em)and (min-width: 22em){.featured-posts:has(>.releases-info)>.releases-info{flex-direction:row}.featured-posts:has(>.releases-info)>.releases-info>.hex{margin-bottom:0;margin-right:var(--padding-sm)}}.layout--error>main{flex-grow:1;display:grid;align-content:center;justify-content:center;text-align:center}.layout--error .highlight{--code-bg: transparent;font-size:200%}:where(.event-header>*){margin-block:0}:where(.event-header>*)+*{margin-block-start:var(--block-flow, var(--block-flow-xs))}:where(.event-header>*)+*:is(hr,.full-width-rule),:where(.event-header>*)+*:is(.link-actions){margin-block-start:var(--block-flow-md)}:where(.event-header>:is(hr,.full-width-rule)+*){margin-block-start:var(--block-flow-md)}:where(.event-header>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*){margin-block-start:var(--block-flow-xs)}:where(.event-header>section+section){margin-block-start:var(--block-flow-lg)}:where(.event-header>p+p){margin-block-start:var(--block-flow-xs)}.event-header+.content,.styleguide>.event-header+.styleguide-preview,.event-header+.page-description{margin-top:var(--block-flow-sm)}.conference-session-list{margin:50px 0 80px 0}.conference-session-list header{position:sticky;top:0;margin:0;background-color:#fff;z-index:100;padding-left:15vw;margin-left:-15vw;margin-bottom:30px;transition:all .25s}.conference-session-list header.shadow{box-shadow:0 3px 6px color-mix(in srgb, var(--primary-text) 20%, transparent),0 3px 6px color-mix(in srgb, var(--primary-text) 30%, transparent)}.conference-sessions-grid{display:grid;grid-template-columns:auto 1fr 1fr 1fr;column-gap:30px;row-gap:40px;align-items:start}.conference-sessions-grid .conference-session{width:100%;display:flex;flex-direction:column;row-gap:12px;grid-column:1;border-left:4px solid #000;padding-left:10px;height:100%;align-items:start}.conference-sessions-grid .conference-session :first-child:last-child{max-width:65em}@media only screen and (min-width: 900px){.conference-sessions-grid .conference-session--track-1,.conference-sessions-grid .conference-session--main{grid-column:2}.conference-sessions-grid .conference-session--track-2{grid-column:3}.conference-sessions-grid .conference-session--track-3{grid-column:4}.conference-sessions-grid .conference-session--span2{grid-row-end:2 span}.conference-sessions-grid .conference-session--span6{grid-row-end:6 span}.conference-sessions-grid .conference-session--span7{grid-row-end:7 span}}.conference-sessions-grid .conference-sessions-break{margin-top:-4px;font-size:1.4rem;color:var(--primary-text);font-weight:500;grid-column:1}@media only screen and (min-width: 900px){.conference-sessions-grid .conference-sessions-break{grid-column:2/-1}}.conference-slot-info{grid-column:1;display:flex;flex-direction:column;align-items:start}@media only screen and (min-width: 900px){.conference-slot-info{align-items:end}}.conference-slot-info time{text-align:right;font-size:inherit;font-weight:normal}.conference-slot-info time small{display:block}hr.custom-hr{position:relative;content:"";border:none;border-top:1px var(--light-gray) solid;margin:30px 0;overflow:visible;grid-column:1/-1}hr.custom-hr::before{position:absolute;bottom:-3px;left:-6px;content:"";width:5px;height:5px;border:1px var(--light-gray) solid}hr.custom-hr::after{position:absolute;bottom:-3px;right:-6px;content:"";width:5px;height:5px;border:1px var(--light-gray) solid}.conference-session .conference-track{display:inline-flex;align-items:center;font-size:1rem;font-weight:500;text-transform:uppercase;background-color:var(--light-gray);border-radius:4px;margin-right:12px;height:1.5rem;padding:4px;color:var(--white)}.conference-session .conference-track--main{display:none}.conference-session .presenter{display:grid;grid-auto-flow:column;column-gap:12px;align-items:center;width:-moz-fit-content;width:fit-content;line-height:var(--line-height-sm);color:var(--lighter-text);font-size:.894427191rem}.conference-session .presenter .speaker-image{width:36px;height:36px;background-size:cover;background-position:center;background-repeat:no-repeat;box-shadow:inset 0 0 12px color-mix(in srgb, var(--primary-text) 25%, transparent);border-radius:50%}.conference-session>h3,.conference-session>.h3{margin:0;font-size:1.2rem;color:var(--black)}.speaker .github_handle{font-size:1rem}.speaker .github_handle i{transform:scale(0.7);opacity:.6;margin-right:-5px;margin-top:-3px}.theme{display:flex;align-items:center;height:1.2rem;border-radius:.6rem;padding:0 .5rem;color:var(--primary-text);border:1px var(--primary-text) solid;width:-moz-fit-content;width:fit-content;font-size:.75rem;text-transform:uppercase;vertical-align:text-top;white-space:nowrap}@media only screen and (max-width: 900px){.conference-session-list .conference-slot .conference-slot-inner{grid-template-columns:1fr;row-gap:60px}.conference-session-list header{position:unset;padding-left:unset;margin-left:unset;width:unset}.conference-session-list header.shadow{box-shadow:none}}.session-links{display:flex;gap:.5em;flex-wrap:wrap}.session-summary{font-size:.894427191rem;line-height:var(--line-height-md);color:var(--lighter-text)}.layout--home>header{color-scheme:dark;grid-template-columns:1fr minmax(min-content, var(--container-max, 120ch)) minmax(0, min-content) 1fr;grid-template-areas:". main    util    util" ". intro   intro   .   " ". samples samples .   ";position:relative;background-color:var(--pitch-black);--primary-text: var(--white);--link-color: currentColor;--link-hover-color: hsl(0, 0%, 80%);--light-text: hsl(0, 0%, 80%);--lighter-text: var(--white);--code-bg: hsl(0, 0%, 13%);--hex-bg: var(--black);--hex-color: var(--white);--hex-bg-hover: var(--black);--hex-shadow: drop-shadow(0 0 1px rgb(255 255 255 / 40%)) drop-shadow(0 0 1px rgb(255 255 255 / 10%));--hex-hover-shadow: drop-shadow(0 0 1px rgba(255 255 255 / 100%)) drop-shadow(0 0 1px rgb(255 255 255 / 10%));color:var(--primary-text);margin-block-end:var(--block-flow-md)}.layout--home>header .highlight{--code-bg: var(--tainted-black);--md-code-fg-color: var(--lighter-text);--md-code-hl-number-color: hsla(291, 45%, 65%, 1);--md-code-hl-special-color: hsla(0, 67%, 65%, 1);--md-code-hl-function-color: hsla(219, 54%, 68%, 1);--md-code-hl-constant-color: hsla(17, 52%, 61%, 1);--md-code-hl-keyword-color: hsla(219, 54%, 64%, 1);--md-code-hl-string-color: hsla(130, 48%, 51%, 1);--md-code-hl-name-color: var(--md-code-fg-color);--md-code-hl-operator-color: var(--lighter-gray);--md-code-hl-punctuation-color: var(--lighter-gray);--md-code-hl-comment-color: var(--lighter-gray);--md-code-hl-generic-color: var(--lighter-gray)}html:not([data-ua-iphone]) .layout--home>header::before{content:"";position:absolute;display:block;top:0;left:0;right:0;bottom:0;z-index:0;opacity:.5;background-image:url(/assets/home/pattern.svg);background-repeat:no-repeat;background-size:clamp(30vw,max(80rem,50vw),250vw) auto;background-position:clamp(-15vw,-40rem + 50vw,0px) top}.layout--home>header>*{z-index:1}.layout--home>header>.mainnav{justify-self:center;font-size:var(--font-size-lead)}.layout--home>header>.mainnav ul{column-gap:var(--padding-sm)}@media(max-width: 30em){.layout--home>header{grid-template-areas:". main    main    util" ". intro   intro   util   " ". samples samples samples   "}.layout--home>header>.mainnav{justify-self:start}.layout--home>header>.utilnav{flex-direction:column;align-self:start}}.layout--home>header>.intro{grid-area:intro;display:grid;grid-template-columns:minmax(11em, 18em) 1fr;grid-template-rows:3fr 1fr auto;column-gap:var(--block-flow-xs);row-gap:var(--block-flow-xs);grid-template-areas:"logo      motto" "text-logo actions" "release   actions";justify-items:center;align-items:center;margin-block:var(--block-flow-sm)}@media(max-width: 40em){.layout--home>header>.intro{margin-block-start:var(--block-flow-sm);grid-template-columns:2fr auto 1fr;grid-template-rows:3fr 2fr auto auto;grid-template-rows:initial;grid-template-areas:"logo text-logo ." "logo release ." "motto motto motto" "actions actions actions"}}.layout--home>header>.intro>.motto{grid-area:motto;font-weight:300;font-size:1.953125rem;align-self:end;text-align:center;text-wrap:balance}.layout--home>header>.intro>.latest-release-info{grid-area:release;align-self:start}.layout--home>header>.intro>.brand-logo{display:contents}@media(max-width: 40em){.layout--home>header>.intro>.brand-logo>canvas{justify-self:end}}.layout--home>header>.intro>.brand-logo>canvas{grid-area:logo;max-width:min(30cqw,9em)}.layout--home>header>.intro>.brand-logo>svg{fill:currentColor;max-width:11em;grid-area:text-logo;align-self:end}.layout--home>header>.intro .actions{grid-area:actions;display:grid;width:fit-content;grid-template-columns:1fr 1fr 1fr;gap:var(--padding-xs)}@media(max-width: 23em){.layout--home>header>.intro .actions{grid-template-columns:1fr 1fr}.layout--home>header>.intro .actions>:last-child{translate:calc(50% + var(--padding-xxs))}}@media(max-width: 14em){.layout--home>header>.intro .actions{grid-template-columns:1fr}.layout--home>header>.intro .actions>:last-child{translate:none}}.layout--home>header>.example-tabs{grid-area:samples;margin-block-end:calc(-1*var(--block-flow-md))}.install-panels{display:grid;grid-template-columns:[section] 1fr [title] 1.8fr [version] 62px [command] 4fr [info] 3ch [end];margin-block-start:var(--block-flow-sm)}.install-group{display:grid;grid-template-columns:subgrid;grid-column:1/-1;column-gap:var(--padding-xs);border-top:1.4px solid var(--border-color);grid-template-areas:"section entries entries entries entries"}.install-group>h3,.install-group>.h3{padding:calc(var(--padding-xs) + var(--padding-xxs)) 0;line-height:var(--line-height-lg)}.install-group>h3,.install-group>.h3{grid-area:section}.install-entries{display:grid;grid-template-columns:subgrid;grid-area:entries}.install-entry{display:grid;grid-template-columns:subgrid;grid-template-areas:"title version command info" "targets version command info";grid-template-rows:auto 1fr;grid-column:1/-1;--link-color: var(--body-text);align-items:baseline;padding:var(--padding-xxs) 0}.install-entry:not(:first-child){border-top:1.4px solid var(--border-color)}.install-entry>.title{grid-area:title}.install-entry>.targets{font-size:.8rem;grid-area:targets;display:flex;flex-wrap:wrap;gap:var(--padding-sm) var(--padding-xs)}.install-entry>.targets>code{background:rgba(0,0,0,0);padding:0;color:var(--lighter-text)}.install-entry>.example{grid-area:command;margin-left:0 var(--padding-xs)}.install-entry>.example .highlight>pre{padding:var(--padding-xs)}.install-entry>.example>p{padding:calc(var(--padding-xs)*.6)}.install-entry>.repo-badge{--link-external-postfix: none;grid-area:version;justify-self:flex-end}.install-entry>.instructions{grid-area:instructions;justify-self:flex-start;font-weight:500;text-transform:uppercase;font-size:85%;border:1px solid currentColor;padding:0 var(--padding-xs);margin-top:var(--padding-xs);align-content:center;align-self:flex-end;--link-color: var(--body-text);--link-hover-color: var(--light-text)}.install-entry>.info{--link-external-postfix: none;grid-area:info;font-size:.894427191rem;justify-self:center;--link-color: var(--lighter-text);--link-hover-color: var(--light-text);margin-right:var(--padding-xs)}.install-entry>.info>svg{transform:translateY(0.6ch)}img.version-badge{display:inline-block;vertical-align:sub;transition:all .25s}@media(max-width: 50em){.install-panels{grid-template-columns:[title] 1.8fr [version] 46px [command] 4fr [info] 2.5ch [end];column-gap:var(--padding-xs)}.install-group{grid-template-areas:"section section section section" "entries entries entries entries";padding-block:var(--padding-sm);border-top:none}.install-group>h3,.install-group>.h3{font-size:1.25rem}}@media(max-width: 37em){.install-panels{grid-template-columns:[title] 1.8fr [targets] auto [version] 46px [info] 2.5ch [end];column-gap:var(--padding-sm)}.install-entry{row-gap:var(--padding-xs);padding-block:var(--padding-sm);grid-template-areas:"title targets version info" "command command command command"}.install-entry>p{padding:0}.install-entry>.targets{justify-content:end}}table.releases{--link-color: var(--primary-text);--link-hover-color: var(--light-text)}table.releases tr{border-left:.5ch solid rgba(0,0,0,0)}table.releases tr.latest-release{border-left-color:currentcolor}table.releases tr:not(.minor-release) th{font-weight:400;--link-color: var(--light-text)}table.releases>tbody>tr:hover{background-color:var(--highlight-bg)}table.releases td.release-date{width:0;text-align:right;padding-right:0;white-space:nowrap}table.releases .release-links:not(:hover){opacity:.25}#sponsors-tbl th.currency,#sponsors-tbl th.since,#sponsors-tbl td.currency,#sponsors-tbl td.since{text-align:right}#sponsors-tbl th.since,#sponsors-tbl td.since{white-space:nowrap}#sponsors-tbl th.name,#sponsors-tbl td.name{display:grid;padding:0;grid-template-columns:calc(2em + var(--padding-sm)) 1fr;grid-gap:var(--padding-sm);align-items:center}#sponsors-tbl th.name[scope=row],#sponsors-tbl td.name[scope=row]{font-weight:unset}#sponsors-tbl th.name>*,#sponsors-tbl td.name>*{padding-block:var(--padding-sm)}#sponsors-tbl th.name>a,#sponsors-tbl td.name>a{display:grid;grid-template-columns:subgrid;grid-column:1/-1;align-items:center}#sponsors-tbl th.name img,#sponsors-tbl td.name img{justify-self:end}#sponsors-tbl th.name span,#sponsors-tbl td.name span{grid-column-start:2}#sponsors-tbl>thead>tr>th{white-space:nowrap}#sponsors-tbl>thead>tr>th:not(:first-child){cursor:pointer;position:relative}#sponsors-tbl>thead>tr>th:not(:first-child)::before,#sponsors-tbl>thead>tr>th:not(:first-child)::after{border:4px solid rgba(0,0,0,0);content:"";display:block;height:0;right:0;top:50%;position:absolute;width:0}#sponsors-tbl>thead>tr>th:not(:first-child)::before{border-bottom-color:rgba(0,0,0,.1);margin-top:-9px}#sponsors-tbl>thead>tr>th:not(:first-child)::before[aria-sort=ascending]{border-bottom-color:#666}#sponsors-tbl>thead>tr>th:not(:first-child)::after{border-top-color:rgba(0,0,0,.1);margin-top:1px}#sponsors-tbl>thead>tr>th:not(:first-child)::after[aria-sort=descending]{border-top-color:#666}#sponsors-tbl img{aspect-ratio:1;object-fit:cover;clip-path:content-box circle(50%);width:2em;min-width:1.5em}#sponsors-tbl tr:not(:hover) img{filter:grayscale(1) opacity(0.8)}.faq{color:var(--lighter-text)}.styleguide{padding-block:var(--block-flow, var(--block-flow-sm))}:where(.styleguide>*){margin-block:0}:where(.styleguide>*)+*{margin-block-start:var(--block-flow, var(--block-flow-sm))}:where(.styleguide>*)+*:is(hr,.full-width-rule),:where(.styleguide>*)+*:is(.link-actions){margin-block-start:var(--block-flow-md)}:where(.styleguide>:is(hr,.full-width-rule)+*){margin-block-start:var(--block-flow-md)}:where(.styleguide>:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,.releases-info>strong)+*){margin-block-start:var(--block-flow-xs)}:where(.styleguide>section+section){margin-block-start:var(--block-flow-lg)}:where(.styleguide>p+p){margin-block-start:var(--block-flow-xs)}.styleguide>.styleguide-preview{border:1px solid var(--border-color);border-radius:.425rem;padding:var(--padding-sm);max-width:unset}.styleguide>.styleguide-preview:not(.wide){width:var(--content-width)}.styleguide>details{clear:both}.styleguide>details pre{white-space:pre-line}.styleguide-preview{resize:both;overflow:scroll}.used-in-production{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%, 25em), 1fr));gap:var(--block-flow-md)}.used-in-production>section{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon headline" ".    description" ".    list";column-gap:var(--padding-sm);align-self:start}.used-in-production>section>h3,.used-in-production>section>.h3{grid-area:headline;margin:0;align-self:center;font-weight:500;color:var(--primary-text);font-size:1.25rem}.used-in-production>section>.hex-icon{grid-area:icon;align-self:center}.used-in-production>section>p{grid-area:description;color:var(--light-text)}.used-in-production>section>ul{grid-area:list;display:flex;flex-direction:column;gap:var(--padding-xs);list-style:none;padding:0;line-height:var(--line-height-md);height:fit-content}.used-in-production>section>ul>li>strong:first-child{--link-external-postfix: none}}@layer utilities{:is([hidden],.visually-hidden):not(:focus,:active){clip-path:inset(100%);height:1px;width:1px;overflow:hidden;position:absolute;white-space:nowrap}.icon{--link-color: var(--light-text);--link-hover-color: var(--lighter-text)}.icon>svg{height:1.2em;width:auto;fill:currentcolor;display:inline-block;vertical-align:text-bottom}.pill{font-size:.894427191rem;font-weight:400}.pill-form,.taxonomy .category,.pill{background:var(--background-secondary);border-radius:10px;padding:.2em .4em}.label{font-size:.894427191rem;font-weight:200;color:var(--lighter-text)}ul.yes,li.yes{list-style-image:url("/assets/icons/check.svg")}ul.no,li.no{list-style-image:url("/assets/icons/close.svg")}.external::after,.content a[href]:where([href*="//"]):not(:where([href*="//crystal-lang.org/"],[href*="//forum.crystal-lang.org/"],:has(>img:first-child:last-child,>svg:first-child:last-child)))::after,.page-description a[href]:where([href*="//"]):not(:where([href*="//crystal-lang.org/"],[href*="//forum.crystal-lang.org/"],:has(>img:first-child:last-child,>svg:first-child:last-child)))::after,.edit-on-github a[href]:where([href*="//"]):not(:where([href*="//crystal-lang.org/"],[href*="//forum.crystal-lang.org/"],:has(>img:first-child:last-child,>svg:first-child:last-child)))::after,.mainnav li a[href]:where([href*="//"]):not(:where([href*="//crystal-lang.org/"],[href*="//forum.crystal-lang.org/"],:has(>img:first-child:last-child,>svg:first-child:last-child)))::after,.styleguide>.styleguide-preview a[href]:where([href*="//"]):not(:where([href*="//crystal-lang.org/"],[href*="//forum.crystal-lang.org/"],:has(>img:first-child:last-child,>svg:first-child:last-child)))::after{content:var(--link-external-postfix, "");width:1.2ch;aspect-ratio:1;margin-left:.2ch;mask:var(--link-external-mask, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V32c0-17.7-14.3-32-32-32H352zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z'/%3E%3C/svg%3E")) center no-repeat;display:inline-block;break-before:avoid;background-color:var(--light-gray)}.external:hover::after,.content a[href]:hover:where([href*="//"]):not(:where([href*="//crystal-lang.org/"],[href*="//forum.crystal-lang.org/"],:has(>img:first-child:last-child,>svg:first-child:last-child)))::after,.page-description a[href]:hover:where([href*="//"]):not(:where([href*="//crystal-lang.org/"],[href*="//forum.crystal-lang.org/"],:has(>img:first-child:last-child,>svg:first-child:last-child)))::after,.edit-on-github a[href]:hover:where([href*="//"]):not(:where([href*="//crystal-lang.org/"],[href*="//forum.crystal-lang.org/"],:has(>img:first-child:last-child,>svg:first-child:last-child)))::after,.mainnav li a[href]:hover:where([href*="//"]):not(:where([href*="//crystal-lang.org/"],[href*="//forum.crystal-lang.org/"],:has(>img:first-child:last-child,>svg:first-child:last-child)))::after,.styleguide>.styleguide-preview a[href]:hover:where([href*="//"]):not(:where([href*="//crystal-lang.org/"],[href*="//forum.crystal-lang.org/"],:has(>img:first-child:last-child,>svg:first-child:last-child)))::after{background-color:var(--light-text)}.ui-link,[rel=footnote],.reversefootnote,.hex,.breadcrumbs,.section-links,.card>.name,.profile-card>.name,a.ico,.event-card>.name,.post-card>.name,.footer-nav,.link-items--social,body>header,.taxonomy,.sponsor-card>.name,.top-sponsors,.icon{--link-external-postfix: none;--link-underline: none}[data-dead-link]:link{--link-external-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ctitle%3Ecancel%3C/title%3E%3Cpath d='M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z' /%3E%3C/svg%3E");text-decoration-style:dashed}.scroll-snap-x,.example-tabs .example-tabs__tabs{overflow:auto hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}.scroll-snap-x::-webkit-scrollbar,.example-tabs .example-tabs__tabs::-webkit-scrollbar{width:0;height:0}.white-background{background:var(--white);color:var(--black)}.center{text-align:center;align-self:center;justify-self:center;margin-inline:auto}.center>p{margin-inline:auto}.small,.section-links,.callout,.example-tabs .example-tabs__tabs>.example-tab>.example-description>p,.side-section>aside,.layout--home>header>.intro>.latest-release-info{font-size:.9rem;line-height:var(--line-height-md)}.reversefootnote{margin-left:.5em}[rel=footnote],.reversefootnote{font-size:.7155417528rem;font-weight:600;color:var(--lighter-text)}sup[role=doc-noteref]{font-size:.7155417528rem}.footnote:target,[role=doc-noteref]:target{background-color:var(--highlight-bg);outline:.15em solid var(--highlight-bg)}.footnotes{font-size:.894427191rem;margin-block-start:var(--block-flow-md);border-top:2px solid var(--highlight-bg);padding-block-start:.75em;color:var(--lighter-text);counter-reset:footnote}.footnotes ol{padding:0;margin:0}.footnotes li{list-style:none;display:grid;grid-template-columns:min-content 1fr;gap:.3em}.footnotes li::before{counter-increment:footnote;content:counter(footnote);font-size:.7155417528rem;font-weight:500;vertical-align:super}.footnotes :target{background-color:var(--highlight-bg)}.full-width-rule{display:grid;justify-items:center;font-size:1rem}.full-width-rule:before{content:"";display:block;position:absolute;inset-inline:0;border-block-end:.16ch solid var(--border-color)}.full-width-rule:has(.hex):before{transform:translateY(-50%);margin-top:1.25em}}/*# sourceMappingURL=stylesheet.css.map */