﻿html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0;padding:0;background-color:var(--color-fill);color:var(--color-text)}ul,ol,li,dl,dt,dd,h1,h2,h3,h4,h5,h6,hgroup,p,blockquote,figure,form,fieldset,input,legend,pre,abbr{margin:0;padding:0}pre,code,address,caption,th,figcaption{font-size:1em;font-weight:normal;font-style:normal}fieldset,iframe,img{width:100%;border:none}caption,th{text-align:left}table{border-collapse:collapse;border-spacing:0}article,aside,footer,header,nav,main,section,summary,details,hgroup,figure,figcaption{display:block}audio,canvas,video,progress{display:inline-block;vertical-align:baseline}button{font:inherit;vertical-align:middle}nav a:link,nav a:visited,nav a:hover,nav a:active{text-decoration:none}:root{--border-radius: 12px;--content-margin-bottom: 1em;--navigation-mobile-breakpoint: 68rem;--content-mobile-breakpoint: 68rem}body{color-scheme:light dark;--logo-reference: url("../svg/swift.svg");--menu-icon: url("../svg/icon-menu.svg");--menu-icon-close: url("../svg/icon-close.svg");--icon-filter: none;--icon-filter-hover: invert(1);--color-nav-background: var(--color-fill-secondary);--color-nav-rule: rgb(230, 230, 230);--color-active-menu-group: rgb(42, 42, 42);--color-active-nav-item: #f05138;--color-fill: rgb(255, 255, 255);--color-fill-secondary: rgb(247, 247, 247);--color-fill-tertiary: rgb(232, 232, 232);--color-fill-quaternary: rgb(218, 218, 218);--color-fill-blue: rgb(0, 0, 255);--color-fill-gray: rgb(204, 204, 204);--color-fill-gray-secondary: rgb(245, 245, 245);--color-fill-green-secondary: rgb(240, 255, 240);--color-fill-orange-secondary: rgb(255, 250, 246);--color-fill-red-secondary: rgb(255, 240, 245);--color-figure-blue: rgb(51, 102, 255);--color-figure-gray: rgb(0, 0, 0);--color-figure-gray-secondary: rgb(102, 102, 102);--color-figure-gray-tertiary: rgb(102, 102, 102);--color-figure-green: rgb(0, 128, 0);--color-figure-light-gray: rgb(102, 102, 102);--color-figure-orange: rgb(204, 51, 0);--color-figure-red: rgb(255, 0, 0);--color-tutorials-teal: rgb(0, 0, 0);--color-banner-foreground: rgb(222, 75, 52);--color-banner-background: rgb(222, 75, 52, 0.1);--color-banner-border: rgb(222, 75, 52, 0.15);--color-banner-detail: rgb(222, 75, 52, 0.5);--color-article-background: var(--color-fill-tertiary);--color-article-body-background: var(--color-fill);--color-aside-deprecated: var(--color-figure-gray);--color-aside-deprecated-background: var(--color-fill-orange-secondary);--color-aside-deprecated-border: var(--color-figure-orange);--color-aside-experiment: var(--color-figure-gray);--color-aside-experiment-background: var(--color-fill-gray-secondary);--color-aside-experiment-border: var(--color-figure-light-gray);--color-aside-important: var(--color-figure-gray);--color-aside-important-background: var(--color-fill-gray-secondary);--color-aside-important-border: var(--color-figure-light-gray);--color-aside-note: var(--color-figure-gray);--color-aside-note-background: var(--color-fill-gray-secondary);--color-aside-note-border: var(--color-figure-light-gray);--color-aside-tip: var(--color-figure-gray);--color-aside-tip-background: var(--color-fill-gray-secondary);--color-aside-tip-border: var(--color-figure-light-gray);--color-aside-warning: var(--color-figure-gray);--color-aside-warning-background: var(--color-fill-red-secondary);--color-aside-warning-border: var(--color-figure-red);--color-badge-default: var(--color-figure-light-gray);--color-badge-beta: var(--color-figure-gray-tertiary);--color-badge-deprecated: var(--color-figure-orange);--color-badge-dark-default: rgb(176, 176, 176);--color-badge-dark-beta: rgb(176, 176, 176);--color-badge-dark-deprecated: rgb(255, 102, 0);--color-button-background: var(--color-fill-blue);--color-button-background-active: rgb(51, 102, 255);--color-button-background-hover: var(--color-figure-blue);--color-button-text: rgb(255, 255, 255);--color-call-to-action-background: var(--color-fill-secondary);--color-changes-added: var(--color-figure-light-gray);--color-changes-added-hover: var(--color-figure-light-gray);--color-changes-deprecated: var(--color-figure-light-gray);--color-changes-deprecated-hover: var(--color-figure-light-gray);--color-changes-modified: var(--color-figure-light-gray);--color-changes-modified-hover: var(--color-figure-light-gray);--color-changes-modified-previous-background: var( --color-fill-gray-secondary );--color-code-background: var(--color-fill-secondary);--color-code-collapsible-background: var(--color-fill-tertiary);--color-code-collapsible-text: var(--color-figure-gray-tertiary);--color-code-plain: var(--color-figure-gray);--color-content-table-content-color: var(--color-fill-secondary);--color-dropdown-background: rgba(255, 255, 255, 0.8);--color-dropdown-border: rgb(204, 204, 204);--color-dropdown-option-text: rgb(102, 102, 102);--color-dropdown-text: rgb(0, 0, 0);--color-dropdown-dark-background: rgba(255, 255, 255, 0.1);--color-dropdown-dark-border: rgba(255, 255, 255, 0.2);--color-dropdown-dark-option-text: rgb(204, 204, 204);--color-dropdown-dark-text: rgb(255, 255, 255);--color-eyebrow: var(--color-figure-gray-secondary);--color-focus-border-color: var(--color-fill-blue);--color-focus-color: rgba(0, 125, 250, 0.6);--color-form-error: var(--color-figure-red);--color-form-error-background: var(--color-fill-red-secondary);--color-form-valid: var(--color-figure-green);--color-form-valid-background: var(--color-fill-green-secondary);--color-generic-modal-background: var(--color-fill);--color-grid: var(--color-fill-gray);--color-header-text: var(--color-figure-gray);--color-hero-eyebrow: rgb(204, 204, 204);--color-link: var(--color-figure-blue);--color-loading-placeholder-background: var(--color-fill);--color-nav-color: rgb(102, 102, 102);--color-nav-current-link: black;--color-nav-expanded: rgb(255, 255, 255);--color-nav-hierarchy-collapse-background: rgb(240, 240, 240);--color-nav-hierarchy-collapse-borders: rgb(204, 204, 204);--color-nav-hierarchy-item-borders: rgb(204, 204, 204);--color-nav-keyline: black;--color-nav-link-color: rgb(0, 0, 0);--color-nav-link-color-hover: rgb(51, 102, 255);--color-nav-outlines: rgb(204, 204, 204);--color-nav-solid-background: rgb(255, 255, 255);--color-nav-sticking-expanded-keyline: black;--color-nav-stuck: white;--color-nav-uiblur-expanded: white;--color-nav-uiblur-stuck: white;--color-nav-root-subhead: var(--color-tutorials-teal);--color-nav-dark-border-top-color: white;--color-nav-dark-color: rgb(176, 176, 176);--color-nav-dark-current-link: white;--color-nav-dark-expanded: rgb(42, 42, 42);--color-nav-dark-hierarchy-collapse-background: rgb(66, 66, 66);--color-nav-dark-hierarchy-collapse-borders: rgb(102, 102, 102);--color-nav-dark-hierarchy-item-borders: rgb(66, 66, 66);--color-nav-dark-keyline: #424242;--color-nav-dark-link-color: rgb(255, 255, 255);--color-nav-dark-link-color-hover: rgb(0, 153, 255);--color-nav-dark-outlines: rgb(87, 87, 87);--color-nav-dark-rule: rgb(87, 87, 87);--color-nav-dark-solid-background: rgb(0, 0, 0);--color-nav-dark-sticking-expanded-keyline: #424242;--color-nav-dark-stuck: #2a2a2a;--color-nav-dark-uiblur-expanded: #2a2a2a;--color-nav-dark-uiblur-stuck: #2a2a2a;--color-nav-dark-root-subhead: rgb(255, 255, 255);--color-runtime-preview-background: var(--color-fill-tertiary);--color-runtime-preview-disabled-text: #666666;--color-runtime-preview-text: var(--color-figure-gray-secondary);--color-secondary-label: var(--color-figure-gray-secondary);--color-step-background: var(--color-fill-secondary);--color-step-caption: var(--color-figure-gray-secondary);--color-step-focused: var(--color-figure-light-gray);--color-step-text: var(--color-figure-gray-secondary);--color-svg-icon: rgb(102, 102, 102);--color-syntax-attributes: rgb(148, 113, 0);--color-syntax-characters: rgb(39, 42, 216);--color-syntax-comments: rgb(112, 127, 140);--color-syntax-documentation-markup: rgb(80, 99, 117);--color-syntax-documentation-markup-keywords: rgb(80, 99, 117);--color-syntax-heading: rgb(186, 45, 162);--color-syntax-keywords: rgb(173, 61, 164);--color-syntax-marks: rgb(0, 0, 0);--color-syntax-numbers: rgb(39, 42, 216);--color-syntax-other-class-names: rgb(112, 61, 170);--color-syntax-other-constants: rgb(75, 33, 176);--color-syntax-other-declarations: rgb(4, 124, 176);--color-syntax-other-function-and-method-names: rgb(75, 33, 176);--color-syntax-other-instance-variables-and-globals: rgb(112, 61, 170);--color-syntax-other-preprocessor-macros: rgb(120, 73, 42);--color-syntax-other-type-names: rgb(112, 61, 170);--color-syntax-param-internal-name: rgb(64, 64, 64);--color-syntax-plain-text: rgb(0, 0, 0);--color-syntax-preprocessor-statements: rgb(120, 73, 42);--color-syntax-project-class-names: rgb(62, 128, 135);--color-syntax-project-constants: rgb(45, 100, 105);--color-syntax-project-function-and-method-names: rgb(45, 100, 105);--color-syntax-project-instance-variables-and-globals: rgb(62, 128, 135);--color-syntax-project-preprocessor-macros: rgb(120, 73, 42);--color-syntax-project-type-names: rgb(62, 128, 135);--color-syntax-strings: rgb(209, 47, 27);--color-syntax-type-declarations: rgb(3, 99, 140);--color-syntax-urls: rgb(19, 55, 255);--color-tabnav-item-border-color: var(--color-fill-gray);--color-text: var(--color-figure-gray);--color-text-background: var(--color-fill);--color-tutorial-assessments-background: var(--color-fill-secondary);--color-tutorial-background: var(--color-fill);--color-tutorial-navbar-dropdown-background: var(--color-fill);--color-tutorial-navbar-dropdown-border: var(--color-fill-gray);--color-tutorial-quiz-border-active: var(--color-figure-blue);--color-tutorials-overview-background: rgb(22, 22, 22);--color-tutorials-overview-content: rgb(255, 255, 255);--color-tutorials-overview-content-alt: rgb(255, 255, 255);--color-tutorials-overview-eyebrow: rgb(204, 204, 204);--color-tutorials-overview-icon: rgb(176, 176, 176);--color-tutorials-overview-link: rgb(0, 153, 255);--color-tutorials-overview-navigation-link: rgb(204, 204, 204);--color-tutorials-overview-navigation-link-active: rgb(255, 255, 255);--color-tutorials-overview-navigation-link-hover: rgb(255, 255, 255);--color-tutorial-hero-text: rgb(255, 255, 255);--color-tutorial-hero-background: rgb(0, 0, 0);--color-evolution-secondary-fill: var(--color-figure-light-gray);--color-term-normal: var(--color-text);--color-term-background: var(--color-code-background);--color-term-red: rgb(194, 54, 33);--color-term-green: rgb(37, 188, 36);--color-term-yellow: rgb(173, 173, 39);--color-term-blue: rgb(73, 46, 225);--color-term-magenta: rgb(211, 56, 211);--color-term-cyan: rgb(51, 187, 200);--color-term-white: rgb(175, 175, 175);--color-term-gray: rgb(129, 131, 131);--color-term-bright-red: rgb(252, 57, 31);--color-term-bright-green: rgb(49, 231, 34);--color-term-bright-yellow: rgb(234, 236, 35);--color-term-bright-blue: rgb(88, 51, 255);--color-term-bright-magenta: rgb(249, 53, 248);--color-term-bright-cyan: rgb(20, 200, 200);--color-term-bright-white: rgb(255, 255, 255);--color-term-highlight-background: rgb(195, 195, 195)}body[data-color-scheme=light]{color-scheme:light}body[data-color-scheme=dark]{color-scheme:dark}@media screen{body[data-color-scheme=dark]{--logo-reference: url("../svg/swift_dark.svg");--menu-icon: url("../svg/icon-menu_dark.svg");--menu-icon-close: url("../svg/icon-close_dark.svg");--icon-filter: invert(1);--icon-filter-hover: none;--color-nav-background: var(--color-fill-tertiary);--color-nav-rule: rgb(66, 66, 66);--color-active-menu-group: rgb(232, 232, 232);--color-active-nav-item: #f05138;--color-fill: rgb(0, 0, 0);--color-fill-secondary: rgb(22, 22, 22);--color-fill-tertiary: rgb(42, 42, 42);--color-fill-quaternary: rgb(66, 66, 66);--color-fill-blue: rgb(0, 102, 255);--color-fill-gray: rgb(87, 87, 87);--color-fill-gray-secondary: rgb(34, 34, 34);--color-fill-green-secondary: rgb(0, 51, 0);--color-fill-orange-secondary: rgb(71, 36, 0);--color-fill-red-secondary: rgb(51, 0, 0);--color-figure-blue: rgb(0, 153, 255);--color-figure-gray: rgb(255, 255, 255);--color-figure-gray-secondary: rgb(204, 204, 204);--color-figure-gray-tertiary: rgb(176, 176, 176);--color-figure-green: rgb(0, 153, 0);--color-figure-light-gray: rgb(176, 176, 176);--color-figure-orange: rgb(255, 102, 0);--color-figure-red: rgb(255, 51, 51);--color-tutorials-teal: rgb(255, 255, 255);--color-banner-foreground: rgb(240, 81, 56);--color-banner-background: rgb(240, 81, 56, 0.1);--color-banner-border: rgb(240, 81, 56, 0.15);--color-banner-detail: rgb(240, 81, 56, 0.5);--color-article-body-background: rgb(17, 17, 17);--color-button-background-active: rgb(0, 102, 255);--color-dropdown-background: var(--color-dropdown-dark-background);--color-dropdown-border: var(--color-dropdown-dark-border);--color-dropdown-option-text: var(--color-dropdown-dark-option-text);--color-dropdown-text: var(--color-dropdown-dark-text);--color-nav-color: var(--color-nav-dark-color);--color-nav-current-link: var(--color-nav-dark-current-link);--color-nav-expanded: var(--color-nav-dark-expanded);--color-nav-hierarchy-collapse-background: var( --color-nav-dark-hierarchy-collapse-background );--color-nav-hierarchy-collapse-borders: var( --color-nav-dark-hierarchy-collapse-borders );--color-nav-hierarchy-item-borders: var( --color-nav-dark-hierarchy-item-borders );--color-nav-keyline: var(--color-nav-dark-keyline);--color-nav-link-color: var(--color-nav-dark-link-color);--color-nav-link-color-hover: var(--color-nav-dark-link-color-hover);--color-nav-outlines: var(--color-nav-dark-outlines);--color-nav-solid-background: var(--color-nav-dark-solid-background);--color-nav-sticking-expanded-keyline: var( --color-nav-dark-sticking-expanded-keyline );--color-nav-stuck: var(--color-nav-dark-stuck);--color-nav-uiblur-expanded: var(--color-nav-dark-uiblur-expanded);--color-nav-uiblur-stuck: var(--color-nav-dark-uiblur-stuck);--color-runtime-preview-disabled-text: #cccccc;--color-syntax-attributes: rgb(204, 151, 104);--color-syntax-characters: rgb(217, 201, 124);--color-syntax-comments: rgb(127, 140, 152);--color-syntax-documentation-markup: rgb(127, 140, 152);--color-syntax-documentation-markup-keywords: rgb(163, 177, 191);--color-syntax-keywords: rgb(255, 122, 178);--color-syntax-marks: rgb(255, 255, 255);--color-syntax-numbers: rgb(217, 201, 124);--color-syntax-other-class-names: rgb(218, 186, 255);--color-syntax-other-constants: rgb(167, 235, 221);--color-syntax-other-declarations: rgb(78, 176, 204);--color-syntax-other-function-and-method-names: rgb(178, 129, 235);--color-syntax-other-instance-variables-and-globals: rgb(178, 129, 235);--color-syntax-other-preprocessor-macros: rgb(255, 161, 79);--color-syntax-other-type-names: rgb(218, 186, 255);--color-syntax-param-internal-name: rgb(191, 191, 191);--color-syntax-plain-text: rgb(255, 255, 255);--color-syntax-preprocessor-statements: rgb(255, 161, 79);--color-syntax-project-class-names: rgb(172, 242, 228);--color-syntax-project-constants: rgb(120, 194, 179);--color-syntax-project-function-and-method-names: rgb(120, 194, 179);--color-syntax-project-instance-variables-and-globals: rgb(120, 194, 179);--color-syntax-project-preprocessor-macros: rgb(255, 161, 79);--color-syntax-project-type-names: rgb(172, 242, 228);--color-syntax-strings: rgb(255, 129, 112);--color-syntax-type-declarations: rgb(107, 223, 255);--color-syntax-urls: rgb(102, 153, 255);--color-tutorial-background: var(--color-fill-tertiary);--color-term-normal: var(--color-text);--color-term-background: var(--color-code-background);--color-term-red: rgb(194, 54, 33);--color-term-green: rgb(37, 188, 36);--color-term-yellow: rgb(173, 173, 39);--color-term-blue: rgb(73, 46, 225);--color-term-magenta: rgb(211, 56, 211);--color-term-cyan: rgb(51, 187, 200);--color-term-white: rgb(203, 204, 205);--color-term-gray: rgb(129, 131, 131);--color-term-bright-red: rgb(252, 57, 31);--color-term-bright-green: rgb(49, 231, 34);--color-term-bright-yellow: rgb(234, 236, 35);--color-term-bright-blue: rgb(88, 51, 255);--color-term-bright-magenta: rgb(249, 53, 248);--color-term-bright-cyan: rgb(20, 240, 240);--color-term-bright-white: rgb(233, 235, 235);--color-term-highlight-background: rgb(30, 30, 30)}}pre.highlight{background:var(--color-code-background)}pre.highlight .c,pre.highlight .cm,pre.highlight .cp,pre.highlight .c1,pre.highlight .cs{color:var(--color-syntax-comments)}pre.highlight .k,pre.highlight .kc,pre.highlight .kd,pre.highlight .kp,pre.highlight .kr,pre.highlight .kt .nb{color:var(--color-syntax-keywords)}pre.highlight .nv,pre.highlight .nf{color:var(--color-syntax-project-constants)}pre.highlight .s,pre.highlight .sb,pre.highlight .sc,pre.highlight .sd,pre.highlight .s2,pre.highlight .se,pre.highlight .sh,pre.highlight .si,pre.highlight .s1,pre.highlight .sx{color:var(--color-syntax-strings)}pre.highlight .na{color:var(--color-syntax-attributes)}pre.highlight .nc,pre.highlight .ni,pre.highlight .no,pre.highlight .vc,pre.highlight .vg,pre.highlight .vi{color:var(--color-syntax-other-type-names)}pre.highlight .err,pre.highlight .gr,pre.highlight .gt,pre.highlight .ne{color:var(--color-syntax-strings)}pre.highlight .m,pre.highlight .mf,pre.highlight .mh,pre.highlight .mi,pre.highlight .il,pre.highlight .mo{color:var(--color-syntax-numbers)}pre.highlight .o,pre.highlight .ow,pre.highlight .gs{font-weight:bold}pre.highlight .ge{font-style:italic}pre.highlight .nt{color:var(--color-syntax-characters)}pre.highlight .gd,pre.highlight .gd .x{color:var(--color-syntax-plain-text);background-color:var(--color-fill-red-secondary)}pre.highlight .gi,pre.highlight .gi .x{color:var(--color-syntax-plain-text);background-color:var(--color-fill-green-secondary)}pre.highlight .gh,pre.highlight .bp,pre.highlight .go,pre.highlight .gp,pre.highlight .gu,pre.highlight .w{color:var(--color-syntax-comments)}pre.highlight .nn{color:var(--color-syntax-other-declarations)}pre.highlight .sr{color:var(--color-figure-green)}pre.highlight .ss{color:var(--color-syntax-heading)}pre.highlight .gp{-webkit-user-select:none;user-select:none}pre.highlight .gp+.w{-webkit-user-select:none;user-select:none}.language-console{color:var(--color-syntax-plain-text)}.language-cpp .cp,.language-cpp .kt,.language-cpp .nl,.language-cpp .o,.language-c\+\+ .cp,.language-c\+\+ .kt,.language-c\+\+ .nl,.language-c\+\+ .o{color:var(--color-syntax-keywords)}*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}html,body{display:flex;flex-direction:column;position:relative;min-height:100vh}body{font-family:-apple-system,BlinkMacSystemFont,"SF Hello","Helvetica Neue",Helvetica,Arial,Verdana,sans-serif;font-size:18px;line-height:1.5;background-color:var(--color-fill);color:var(--color-text);font-weight:300}body pre,body code{font-family:"SF Mono",ui-monospace,Menlo,Consolas,Monaco,"Courier New",monospace,serif}a:link{color:var(--color-link);text-decoration:none}a:visited{color:var(--color-link)}a:active{color:var(--color-link)}a:hover{color:var(--color-link);text-decoration:underline}p{margin-bottom:1em}h1{margin-bottom:.5em;font-size:2.75em;font-weight:300;line-height:1}h1.active+.main-nav{border-top:1px solid var(--color-active-menu-group)}h2{margin-bottom:.5em;font-size:2.25em;font-weight:300;line-height:1}h3{margin-bottom:.5em;font-size:1.5em;font-weight:300;line-height:1}h4{margin-bottom:.5em;font-size:1.25em;font-weight:300;line-height:1.2}h5{margin-bottom:.5em;font-size:1.175em;font-weight:500;line-height:1.4}h6{margin-bottom:.5em;font-size:1em;font-weight:700;line-height:1.5}h1,h2,h3,h4,h5,h6{color:var(--color-header-text)}pre{font-size:14px;line-height:1.6em;border:1px solid var(--color-fill-tertiary);border-radius:4px;margin:.5em 0 1.5em;padding:1.25em 1.5em;overflow:scroll}a>code,p>code,li>code,dd>code,blockquote>code,td>code{padding:0;margin:0;font-size:16px;word-break:break-word;background-color:rgba(0,0,0,0)}p>code,li>code,dd>code,blockquote>code,td>code{color:var(--color-code-plain)}p>code{white-space:pre-wrap;word-break:break-word;padding:.1em .4em;border-radius:4px;border:1px solid var(--color-fill-tertiary);background:var(--color-code-background)}hr{border:none;border-top:1px var(--color-dropdown-border) solid;margin:2em 0}hr:last-child{display:none}details{margin-bottom:2em}details :first-child{margin-top:1.5em}cite{display:block}cite:before{content:"— "}.header-with-anchor a{display:none;color:var(--color-text);margin-left:.2em;text-decoration:none}.header-with-anchor a svg{filter:var(--icon-filter)}h2.header-with-anchor:hover a{display:inline-block}#logo{margin-bottom:0}#logo a{display:flex;width:120px}#logo svg{flex:1}#logo #logotype{fill:var(--color-header-text)}.site-navigation{padding:1rem;background:var(--color-nav-background);border-bottom:1px solid var(--color-nav-rule)}.site-navigation .wrapper{align-items:center;display:flex;justify-content:space-between;margin:auto;max-width:var(--navigation-mobile-breakpoint)}.menu-toggle{display:none}.navigation-links{list-style:none;margin:0;padding:0}.navigation-links li{display:inline-block;margin-left:.3em;text-align:center}.navigation-links li .active a{font-weight:700;color:var(--color-active-nav-item)}.navigation-links li a{display:inline-block}.navigation-links li a::before{display:block;content:attr(data-text);font-weight:bold;height:0;overflow:hidden;visibility:hidden}.navigation-links li.nav-section{color:var(--color-nav-color);font-size:.7rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:.5rem;padding:1rem 0 .5rem;border-bottom:1px solid var(--color-nav-rule)}.navigation-links li.nav-cta{margin-left:1em}.navigation-links li.nav-cta a{border:2px solid var(--color-nav-rule);border-radius:.5rem;padding:.8em .9em;text-align:center}.navigation-links li.nav-cta a:hover{border-color:var(--color-link)}.navigation-links li a,.navigation-links li>span{color:var(--color-nav-link-color);transition:color .2s ease,border .2s ease;text-decoration:none;text-transform:uppercase;font-size:.8rem;letter-spacing:1px;font-weight:normal;padding:.5em}.navigation-links a:hover{color:var(--color-link)}.nav-item{transition:all .1s ease}.nav-submenu{display:none;position:absolute;background-color:var(--color-nav-background);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(5px);box-shadow:0 8px 32px rgba(0,0,0,.1),0 1px 3px rgba(0,0,0,.05);border-radius:8px;border:1px solid var(--color-nav-rule);min-width:160px;z-index:1;list-style:none;padding:1rem;animation:fade-in-down .3s}.nav-submenu li{display:block;padding:0;margin:0;text-align:left}.nav-submenu li a{display:block;padding:.7em;border-radius:8px;transition:all .1s ease}.nav-submenu li a:hover{background-color:rgba(128,128,128,.1);box-shadow:0 8px 16px rgba(0,0,0,.05),0 1px 3px rgba(0,0,0,.08)}.nav-submenu hr{border:none;border-top:1px solid gray;margin:.5rem 0}.nav-item span{display:inline-block;cursor:pointer}.nav-item span i{display:inline-block;margin-left:-0.75em;font-style:normal;font-weight:100;opacity:.2;line-height:1em;padding-top:.2em}.nav-item:hover>span{color:var(--color-link)}.nav-item:hover .nav-submenu,.nav-item:focus-within .nav-submenu{display:block}.mobile-navigation{display:none}.mobile-navigation-links{list-style:none;margin:1rem 0;padding:0}.mobile-navigation-links li{border-top:1px solid var(--color-nav-rule);display:block}.mobile-navigation-links li:last-child{border-bottom:1px solid var(--color-nav-rule)}.mobile-navigation-links li.active a,.mobile-navigation-links li .link-container.active a{font-weight:700;color:var(--color-active-nav-item)}.mobile-navigation-links li.nav-section{color:var(--color-nav-color);font-size:.7rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:.5rem;padding:1rem 1rem .5rem}.mobile-navigation-links li a{display:inline-block;padding:1rem}.mobile-navigation-links li a,.mobile-navigation-links li>span{color:var(--color-nav-link-color);transition:color .2s ease,border .2s ease;text-decoration:none;text-transform:uppercase;font-size:.8rem;letter-spacing:1px;font-weight:normal}main{padding:4rem 0 0}main .callout{display:grid;gap:1rem;grid-template-columns:repeat(2, 1fr);align-items:center;justify-content:center;margin-bottom:2rem}@media only screen and (max-width: 1280px){main .callout{display:block}}main .page-wide{max-width:var(--content-mobile-breakpoint);padding:0;margin:auto}@media only screen and (max-width: 1280px){main .page-wide{padding:30px 30px 0}}main .post,main .page{max-width:50em;margin:0 auto;padding:0 30px}@media only screen and (max-width: 1280px){main .post,main .page{padding-top:30px}}@media only screen and (max-width: 767px){main .post,main .page{padding:30px 30px 0}}@media only screen and (max-width: 1280px){main{padding:0}}footer[role=contentinfo]{background:var(--color-nav-background);border-top:1px solid var(--color-nav-rule);color:var(--color-nav-color);padding:20px 30px;min-height:74px;margin-top:auto}footer[role=contentinfo] p{font-size:.625em;color:var(--color-nav-link-color);line-height:1em;margin-bottom:var(--content-margin-bottom)}footer[role=contentinfo] p.privacy a{color:var(--color-nav-link-color);border-right:1px solid var(--color-nav-rule);margin-right:6px;padding-right:8px}footer[role=contentinfo] p.privacy a:last-child{border:none;margin:0;padding:0}footer[role=contentinfo] p:last-child{margin-bottom:0}footer[role=contentinfo] aside{position:relative;width:100%;max-width:700px}footer[role=contentinfo] aside i{width:16px;height:16px;background-repeat:no-repeat;background-size:16px;display:block;margin-left:1em;float:right}footer[role=contentinfo] aside i.x{background-image:url("../svg/icon-x.svg")}footer[role=contentinfo] aside i.mastodon{background-image:url("../svg/icon-mastodon.svg")}footer[role=contentinfo] aside i.bluesky{background-image:url("../svg/icon-bluesky.svg")}footer[role=contentinfo] aside i.feed{background-image:url("../svg/icon-feed.svg")}article:first-of-type{padding-bottom:36px}article h2{padding-top:1.1em}article h3{padding-top:1em}article h4{padding-top:1em;border-bottom:1px var(--color-dropdown-border) solid;padding-bottom:.5em}article h5{margin-top:1em}article hr{margin:1.5em 0}article hr+h2,article hr+h3,article hr+h4,article hr+h5{padding-top:.5em}article header{width:100%;display:inline-block}article header h1{padding-bottom:.125em}article header h2{padding-top:0em}article header time{display:block;text-transform:uppercase;font-size:14px;font-weight:400;color:var(--color-figure-gray-tertiary);margin-right:3em;margin-bottom:1.25em}article header .tags{display:block;font-size:12px;font-weight:400;margin-top:0}article:not(:first-of-type){border-top:1px solid var(--color-figure-gray-tertiary);padding:36px 0}article blockquote{border-left:5px var(--color-fill-gray) solid;margin:.5em 0 23px 1em;padding:4px 0 2px 10px;color:var(--color-aside-note);overflow-x:auto}article blockquote p:last-child{margin-bottom:0}article ul,article ol{padding-left:40px;margin:1em 0}article ul ul,article ul ol,article ol ul,article ol ol{margin:0}article ul{list-style:disc}article ul ul{list-style:circle}article ul ul ul{list-style:square}article ol{list-style:decimal}article dl{margin:2em 0 1em 0}article dl:after{content:"";display:table;clear:both}article dl dt{float:left;clear:right;margin-right:1em;display:block;width:28%;text-align:right}article dl dd{float:right;width:65%;margin-bottom:1em;overflow:scroll}article dl dd{padding-bottom:1em;border-bottom:1px var(--color-dropdown-border) solid}article table{display:block;overflow-x:auto;width:max-content;min-width:68%;max-width:100%;margin:2em auto 3em auto;border-collapse:separate;border:1px var(--color-dropdown-border) solid}article table th{font-weight:700;text-align:center}article table th,article table td{width:50%;padding:.5em 1.5em;border-bottom:1px var(--color-dropdown-border) solid}article table th:not(:first-child),article table td:not(:first-child){border-left:1px var(--color-dropdown-border) solid}article table tr:last-child td{border-bottom:none}article details{margin-top:0;cursor:pointer}article details summary{display:list-item;padding-bottom:.5em;outline:none;margin-top:0}article details summary:after{content:"Expand";text-transform:lowercase;font-variant:small-caps;border-bottom:1px var(--color-fill-gray) dashed}article details[open] summary:after{content:"Collapse"}article details[open] *:not(summary){cursor:auto}article details.download{margin-top:0;cursor:pointer}article details.download table{display:inline-table}article details.download summary{padding-bottom:.5em;outline:none;margin-top:0}article details.download summary:after{content:none;text-transform:lowercase;font-variant:small-caps;border-bottom:1px var(--color-fill-gray) dashed}article details.download[open] summary:after{content:none}article details.download[open] *:not(summary){cursor:auto}article>details{margin-left:40px}article .good pre,article pre.good{background:var(--color-fill-green-secondary);border-color:var(--color-figure-green)}article .good pre:before,article pre.good:before{content:"✅";float:right}article .bad pre,article pre.bad{background:var(--color-fill-red-secondary);border-color:var(--color-figure-red)}article .bad pre:before,article pre.bad:before{content:"⛔️";float:right}article .links ul{list-style:none}article .links ul ul{list-style:disc;margin-top:5px}article .links a:after{content:" ›"}article .links .link-external:after,article .links-external a:after,article .link-external:after{content:" ↗"}article .links-download a:after{content:" ⬇"}article .links-list-nostyle ul{padding-left:0}article .links-list-nostyle ul ul{list-style:none}article .links-sublevel p{margin-bottom:0}article .links-sublevel ul{margin-top:0;padding-left:40px}article footer{margin:4em 0 0 0;padding:1.5em 0 1em 0;border-top:1px var(--color-dropdown-border) solid}article footer:after{content:"";display:table;clear:both}article footer nav [rel=prev]{width:45%;float:left;text-align:left}article footer nav [rel=prev]:before{content:"← "}article footer nav [rel=next]{width:45%;float:right;text-align:right}article footer nav [rel=next]:after{content:" →"}article .device-aspect-ratio{width:100%;max-width:400px}.title a:link,.title a:visited{color:var(--color-header-text)}.alert,.danger,.warning,.info,.success{border-width:1px;border-style:solid;padding:.5em;margin:.5em 0 1.5em 0}.alert a,.danger a,.warning a,.info a,.success a{word-break:break-word}.alert p:first-child,.danger p:first-child,.warning p:first-child,.info p:first-child,.success p:first-child{margin-top:0}.alert p:last-child,.danger p:last-child,.warning p:last-child,.info p:last-child,.success p:last-child{margin-bottom:0}.alert code,.danger code,.warning code,.info code,.success code{border:none;background:rgba(0,0,0,0);padding:0}code{white-space:pre-line}pre code{white-space:inherit}pre code .graphic{font-size:19px;line-height:0}pre code .commentary,pre code .graphic{font-family:"SF Hello","Helvetica Neue",Helvetica,Arial,Verdana,sans-serif}@supports(overflow: -webkit-marquee) and (justify-content: inherit){.alert:before,.danger:before,.warning:before,.info:before,.success:before{font-size:1em;float:left;clear:left;padding-left:.125em;width:2em}.alert p,.danger p,.warning p,.info p,.success p{padding-left:2em}.success:before{content:"✅"}.info:before{content:"ℹ️"}.warning:before{content:"⚠️"}.danger:before{content:"❗️"}}.success{color:var(--color-aside-note);border-color:var(--color-form-valid);background-color:var(--color-form-valid-background)}.info{color:var(--color-aside-note);border-color:var(--color-aside-note-border);background-color:var(--color-aside-note-background)}.warning{color:var(--color-aside-deprecated);border-color:var(--color-aside-deprecated-border);background-color:var(--color-aside-deprecated-background)}.danger{color:var(--color-aside-warning);border-color:var(--color-aside-warning-border);background-color:var(--color-aside-warning-background)}table.downloads{width:100%;table-layout:fixed}table.downloads th{font-size:.75em}table.downloads .platform{width:40%}table.downloads .download{width:60%}table.downloads .download a.debug,table.downloads .download a.signature{font-size:.7em;display:block}table.downloads .download a{font-weight:700;font-size:1em}table.downloads .download a:not([download]){font-weight:400}table.downloads .download a:not([download]):before{content:"("}table.downloads .download a:not([download]):after{content:")"}table.downloads .arch-tag{width:60%}table.downloads .arch-tag a.debug,table.downloads .arch-tag a.signature{font-size:.7em;display:block}table.downloads .arch-tag a{font-weight:700;font-size:1em}table.downloads .arch-tag a:not([arch-tag]){font-weight:400}article input.detail[type=checkbox]{visibility:hidden;cursor:pointer;height:0;width:100%;margin-bottom:2em;display:block;font-size:inherit;font-style:inherit;font-weight:inherit;font-family:inherit;position:relative;top:-0.85rem;-moz-appearance:none}article p+input.detail[type=checkbox]{margin-top:auto}article .screenonly{display:none}@media screen{article .screenonly{display:inherit}article input.detail[type=checkbox]:before{content:"▶ ";visibility:visible;font-size:80%}article input.detail[type=checkbox]:after{text-transform:lowercase;font-variant:small-caps;border-bottom:1px var(--color-fill-gray) dashed;color:var(--color-figure-gray-secondary);content:"More detail";visibility:visible}article input.detail[type=checkbox]:checked:before{content:"▼ "}article input.detail[type=checkbox]:checked:after{content:"Less detail"}article input.detail[type=checkbox]+.more{transition:.5s opacity ease,.5s max-height ease}article input.detail[type=checkbox]:checked+.more{visibility:visible;max-height:1000rem}article input.detail[type=checkbox]:not(:checked)+.more{overflow:hidden;max-height:0px;opacity:0}}article .more>p:first-of-type{margin-top:0}.color-scheme-toggle{display:block;outline:none;--toggle-color-fill: var(--color-button-background);font-size:12px;border:1px solid var(--color-nav-link-color);border-radius:4px;display:inline-flex;padding:1px;margin-bottom:var(--content-margin-bottom)}.color-scheme-toggle input{position:absolute;clip:rect(1px, 1px, 1px, 1px);clip-path:inset(0px 0px 99.9% 99.9%);overflow:hidden;height:1px;width:1px;padding:0;border:0;appearance:none}.color-scheme-toggle-label{border:1px solid rgba(0,0,0,0);border-radius:var(--toggle-border-radius-inner, 2px);color:var(--color-nav-link-color);display:inline-block;text-align:center;padding:1px 6px;min-width:42px;box-sizing:border-box}.color-scheme-toggle-label:hover{cursor:pointer}input:checked+.color-scheme-toggle-label{background:var(--color-nav-link-color);color:var(--color-nav-stuck)}[role=contentinfo]{display:flex;justify-content:space-between}.visuallyhidden{position:absolute;clip:rect(1px, 1px, 1px, 1px);clip-path:inset(0px 0px 99.9% 99.9%);overflow:hidden;height:1px;width:1px;padding:0;border:0}.stage{background-color:#fffbcc;color:gray;font-size:16px;line-height:20px;padding:10px 10px;text-align:center}.authors{display:flex;flex-direction:column;flex-wrap:wrap;gap:1.25em;margin-bottom:2em}@media only screen and (max-width: 767px){.authors{gap:.75em}}.authors.compact{flex-direction:row}.authors .author{display:flex;flex-direction:column;gap:.5em}.authors .author .byline{display:flex;align-items:center;gap:.5em;font-size:14px}.authors .author .byline img{width:32px;height:32px;border-radius:50%;border:1px var(--color-fill-gray) solid}.authors .author .about{font-size:14px;font-weight:400;color:var(--color-figure-gray-tertiary);border-left:1px var(--color-figure-gray-tertiary) solid;padding:4px 0 4px 10px}.banner{padding:.75rem 1.25rem;color:var(--color-text);border:1px solid var(--color-fill-tertiary);background:var(--color-fill-secondary);border-radius:var(--border-radius)}.banner p{margin:0}.banner.primary{color:var(--color-banner-foreground);border:1px solid var(--color-banner-border);background:var(--color-banner-background);font-weight:500;text-align:center}.banner.primary a{color:inherit;text-decoration:underline;text-decoration-color:var(--color-banner-detail);text-underline-offset:2px}.banner.primary a:hover{color:var(--color-banner-foreground)}@media(min-width: 1000px){.grid-layout-2-column{grid-template-columns:repeat(2, 1fr)}}@media(min-width: 1000px){.grid-layout-3-column{grid-template-columns:repeat(3, 1fr)}}.grid-level-0{list-style:none;display:grid;gap:1rem;padding:0}.grid-level-1{background-color:var(--color-fill-secondary);border:1px solid var(--color-fill-tertiary);border-radius:var(--border-radius);padding:1rem;display:flex;flex-direction:column}@media(prefers-contrast: more){.grid-level-1{background-color:rgba(0,0,0,0);border:1px solid var(--color-text)}}.grid-level-1 .hero{border-radius:var(--border-radius);border:1px solid var(--color-fill-tertiary);margin-bottom:1rem}.grid-level-1 h3{line-height:1.4;font-size:1.4rem;padding-top:0}.grid-level-1 h4{font-size:.8rem;color:var(--color-secondary-label);border:none;padding:.5rem 0 .125rem}.grid-level-1 p{flex-grow:1;color:var(--color-secondary-label);margin-bottom:0}.grid-level-1 h4+.cta-secondary{margin-top:0rem}.grid-level-1.selectable h3{color:var(--color-link)}.grid-level-1.selectable a{text-decoration:none}.grid-level-1.selectable:hover{background-color:var(--color-fill-tertiary);border:1px solid var(--color-fill-quaternary)}@media(prefers-contrast: more){.grid-level-1.selectable:hover{background-color:var(--color-text)}.grid-level-1.selectable:hover p{color:var(--color-fill)}}a.cta-secondary{background-color:var(--color-fill-tertiary);border:1px solid var(--color-fill-quaternary);border-radius:var(--border-radius);color:var(--color-text);text-decoration:none;display:block;margin-top:1rem;padding:.5rem 0;text-align:center}@media(prefers-contrast: more){a.cta-secondary{background-color:rgba(0,0,0,0);border:1px solid var(--color-text)}}a.cta-secondary:hover{color:var(--color-link);background-color:var(--color-fill-quaternary);text-decoration:none}@media(prefers-contrast: more){a.cta-secondary:hover{background-color:var(--color-text);color:var(--color-fill)}}a.cta-secondary.external:after{content:" ↗"}.interactive-tabs .tabs{display:flex;flex-direction:row;gap:1rem;padding:0}.interactive-tabs .tabs a,.interactive-tabs .tabs button{background-color:var(--color-fill-secondary);border:1px solid var(--color-fill-tertiary);border-radius:var(--border-radius);color:var(--color-text);cursor:pointer;padding:.5rem;display:block;text-align:center;width:100%;grid-template-columns:repeat(3, 1fr)}@media(prefers-contrast: more){.interactive-tabs .tabs a,.interactive-tabs .tabs button{background-color:rgba(0,0,0,0);border:1px solid var(--color-text)}}.interactive-tabs .tabs a:hover,.interactive-tabs .tabs button:hover{color:var(--color-link)}.interactive-tabs .tabs a[aria-pressed=true],.interactive-tabs .tabs button[aria-pressed=true]{color:var(--color-text);font-weight:500}.interactive-tabs .tabs a:hover,.interactive-tabs .tabs a[aria-pressed=true],.interactive-tabs .tabs button:hover,.interactive-tabs .tabs button[aria-pressed=true]{background-color:var(--color-fill-tertiary);border:1px solid var(--color-fill-quaternary);text-decoration:none}@media(prefers-contrast: more){.interactive-tabs .tabs a:hover,.interactive-tabs .tabs a[aria-pressed=true],.interactive-tabs .tabs button:hover,.interactive-tabs .tabs button[aria-pressed=true]{background-color:var(--color-text);color:var(--color-fill)}}@media(max-width: 480px){.interactive-tabs .tabs{flex-direction:column;gap:.5rem}}.interactive-tabs .content{display:none}.interactive-tabs .content.active{display:block}.interactive-tabs~[id]{scroll-margin-top:5rem}@media only screen and (max-width: 62rem){.navigation-links{display:none}.mobile-navigation{display:none}.mobile-navigation.open{display:block}.site-navigation .wrapper{justify-content:space-between}.menu-toggle{display:block;appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;background-color:rgba(0,0,0,0);height:20px;width:20px;background-image:var(--menu-icon-close);background-repeat:no-repeat;background-position:center center;cursor:pointer}.menu-toggle.open{background-image:var(--menu-icon)}.section-toggle{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;background-color:rgba(0,0,0,0);padding:0;margin:0;font-size:.8rem;opacity:.5}.section-toggle[aria-expanded=false]{transform:rotate(0deg)}.section-toggle[aria-expanded=true]{transform:rotate(180deg)}.section-menu{display:none}.section-menu.open{display:block}.section-menu li a{display:block;padding:.5rem 2rem;font-size:.6em;opacity:.8}.link-container{display:flex;flex-direction:row;align-items:flex-start}.link-container a{flex:1 1 auto}.link-container button{flex:0 0 auto;padding:1rem}}@media only screen and (max-width: 767px){main{max-width:100%;min-width:320px;margin-left:0}footer[role=contentinfo]{margin-left:0;flex-direction:column}.footer-other{display:flex;justify-content:space-between;margin-top:var(--content-margin-bottom)}h1{font-size:48px;font-weight:300;line-height:1}h2{font-size:40px;font-weight:300;line-height:1.1}h3{font-size:38px;font-weight:300;line-height:1.1}h4{font-size:36px;font-weight:300;line-height:1.2}h5{font-size:24px;font-weight:500;line-height:1.4}h6{font-size:18px;font-weight:700;line-height:1.5}article blockquote{margin-left:.5em}table.downloads{border:1px var(--color-dropdown-border) solid}table.downloads,table.downloads thead,table.downloads tbody,table.downloads th,table.downloads td,table.downloads tr{display:block !important}table.downloads thead tr{position:absolute;top:-9999px;left:-9999px}table.downloads tr{border:1px solid var(--color-dropdown-border)}table.downloads td{border-left:none !important;border-right:none !important;border-bottom:1px solid var(--color-dropdown-border) !important;position:relative;padding-left:35%;width:100% !important}table.downloads td:before{position:absolute;top:.5em;left:.5em;width:27.5%;padding-right:10px;white-space:nowrap;text-align:right}table.downloads td.platform:before{content:"Platform"}table.downloads td.download:before{content:"Download";top:1em}table.downloads td.date:before{content:"Date"}table.downloads td.toolchain:before{content:"Toolchain";top:1em}table.downloads td.github-tag:before{content:"GitHub Tag"}table.downloads td.docker-tag:before{content:"Docker Tag"}table.downloads td.arch-tag:before{content:"Architecture"}}@media only screen and (max-width: 480px){h1,h2,h3,h4,h5,h6{hyphens:auto}}.nav-menu-container{display:grid;grid-template-columns:1fr;grid-template-rows:1fr;align-items:center}@media(min-width: 1000px){.grid-layout-use-cases{grid-template-columns:repeat(2, 1fr)}.grid-layout-use-cases li:nth-child(2n-1):nth-last-of-type(1){grid-column:span 2}}.preamble{font-size:40px;line-height:1.4;margin-bottom:0}.preamble strong{font-weight:600}.preamble span{display:block;padding-top:2rem}@media only screen and (max-width: 1280px){.preamble{width:100%;font-size:24px;margin-bottom:1.6rem}.preamble span{display:block;padding-top:.5rem}}.featured-snippet{display:none;min-height:18rem;max-width:536px}.featured-snippet.visible{display:block}.featured-snippet .highlight{height:100%;display:flex;justify-content:space-evenly;flex-direction:column}.featured-snippet pre{margin:0}.featured-snippet pre code{font-size:1.2em;line-height:1.6em}@media only screen and (max-width: 1280px){.featured-snippet pre code{font-size:1em}}@media only screen and (max-width: 1280px){.featured-snippet{margin-left:0;width:100%;max-width:100%;min-height:auto}}.link-grid ul{display:grid;align-items:stretch;gap:1rem;padding:0;grid-template-columns:repeat(1, 1fr)}@media(min-width: 1000px){.link-grid ul{grid-template-columns:repeat(4, 1fr)}}.link-grid li{list-style:none;padding-left:0;display:flex}.link-grid li a{border-radius:var(--border-radius);border:1px solid var(--color-text);color:var(--color-text);display:block;padding:.5rem 0;text-align:center;flex-grow:1}.link-grid li a .flex-container{display:flex;flex-direction:column;align-items:center;height:100%}.link-grid li a .flex-container .latest-release-container{height:64px;flex-grow:1;display:flex;align-items:center;justify-content:center}.link-grid li a:hover{background-color:var(--color-text);color:var(--color-fill);text-decoration:none}.link-grid li a:hover .latest-release-container span{border-color:var(--color-fill)}.link-grid li a:hover img{filter:var(--icon-filter-hover)}.link-grid li a img{height:64px;width:64px;display:block;margin:0 auto;filter:var(--icon-filter)}.latest-release-container span{padding:.2rem .5rem;border:2px solid currentColor;font-weight:bold;border-radius:4px}.evolution-dashboard .search-bar{padding:.8rem 0;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;min-height:3.5rem}.evolution-dashboard #search-filter{font-size:.8rem;padding:.2rem .5rem;-webkit-appearance:textfield;appearance:textfield;border:.1rem solid var(--color-dropdown-border);border-radius:.5rem}@supports(position: sticky) or (position: -webkit-sticky){.evolution-dashboard .search-bar{position:-webkit-sticky;border:0;position:sticky;background:var(--color-fill-secondary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);top:8px;padding:.8rem;border-radius:.5rem}}.evolution-dashboard .expandable{display:none;max-height:0px;overflow:hidden}.evolution-dashboard .expandable.expanded{display:block;flex-basis:100%;overflow:hidden;max-height:100vh;order:4}.evolution-dashboard .filter-container{display:flex;font-size:.8rem;align-items:center;gap:.5rem}.evolution-dashboard .filter-button{cursor:pointer;font-size:.8rem;order:3;width:20px;height:20px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.evolution-dashboard .filter-button.active .icon-line{stroke:#fff}.evolution-dashboard .filter-button.active .icon-flag{fill:#fff}.evolution-dashboard .filter-button.active .icon-circle{fill:var(--color-evolution-secondary-fill)}.evolution-dashboard .filter-panel-toggle{color:var(--color-link);cursor:pointer;animation:fade-in .3s}.evolution-dashboard .filter-panel-toggle.hidden{display:none}.evolution-dashboard .filter-options h5{font-size:.9rem;font-weight:300;margin:.8rem 0 0 0}.evolution-dashboard .filter-list{padding:0;display:inline-block;-webkit-user-select:none;margin:.5rem 0}.evolution-dashboard .filter-list.hidden{display:none}.evolution-dashboard .filter-list li{margin-right:6px;margin-bottom:6px;display:inline-block;-webkit-user-select:none}.evolution-dashboard .filter-list label{border:1px solid var(--color-evolution-secondary-fill);border-radius:4px;padding:.2rem 1rem;font-size:.9rem;margin:0;cursor:pointer}.evolution-dashboard .filter-list input[type=checkbox]{display:none}.evolution-dashboard .filter-list input[type=checkbox]+label{color:var(--color-evolution-secondary-fill)}.evolution-dashboard .filter-list input[type=checkbox]:checked+label{background:var(--color-evolution-secondary-fill);color:#fff}.evolution-dashboard #proposals-list-header{margin:1rem 0}.evolution-dashboard #proposals-count-number{font-size:1rem;font-weight:500}.evolution-dashboard #flag-filter-description{font-size:1rem;font-weight:400}.evolution-dashboard #status-filter-subhead{line-height:1rem;margin-bottom:1.3rem}.evolution-dashboard #status-filter-subhead.hidden{display:none}.evolution-dashboard #status-filter-description{font-size:.9rem;font-weight:300}.evolution-dashboard #version-options-label.hidden{display:none}.evolution-dashboard .proposal-id{color:var(--color-evolution-secondary-fill);margin-right:.45em;vertical-align:top}.evolution-dashboard .proposal{font-size:14px;display:flex;flex-direction:row;margin-bottom:40px}.evolution-dashboard .proposal.hidden{display:none}.evolution-dashboard .proposal-header{font-weight:300;font-size:1.2rem;line-height:1.5;padding:0 0 .5rem 0;margin:0 0 .5rem 0}.evolution-dashboard .proposal-details{-moz-column-count:2;column-count:2;-moz-column-width:373px;column-width:373px}.evolution-dashboard .proposal-detail{break-inside:avoid;display:flex}.evolution-dashboard .proposal-detail-label{color:var(--color-evolution-secondary-fill);font-weight:200;display:inline-block;padding-right:6px;white-space:nowrap}.evolution-dashboard .proposal-detail-value{display:inline-block;color:var(--color-text)}.evolution-dashboard .proposal-title:link,.evolution-dashboard .proposal-title:visited,.evolution-dashboard .proposal-title:active,.evolution-dashboard .proposal-detail-value a:link,.evolution-dashboard .proposal-detail-value a:visited,.evolution-dashboard .proposal-detail-value a:active{color:var(--color-text)}.evolution-dashboard .authors{display:block;margin:0}.evolution-dashboard .authors a{white-space:nowrap}.evolution-dashboard .bug-list a,.evolution-dashboard .implementation-list a{word-wrap:break-word}.evolution-dashboard .proposal-title{font-weight:400}.evolution-dashboard .status-pill-container{margin-top:-2px}.evolution-dashboard .status-pill{display:inline-block;border:1px solid #000;border-radius:4px;padding:.2rem;white-space:nowrap;text-align:center;width:152px;min-width:152px;max-width:152px;margin-right:20px}.evolution-dashboard .proposals-list{margin:0;padding:0}@media(max-width: 1000px){.evolution-dashboard .status-pill{width:inherit;max-width:inherit;min-width:inherit;padding:0px 8px;margin-bottom:6px}.evolution-dashboard .authors a{white-space:normal}.evolution-dashboard .proposal{flex-direction:column;max-width:100%}.evolution-dashboard .proposal-header{flex-direction:column}.evolution-dashboard .proposal-detail{display:block}.evolution-dashboard .proposal-detail-label,.evolution-dashboard .proposal-detail-value{display:inline}}@media(max-width: 768px){.evolution-dashboard #search-filter{width:100%}.evolution-dashboard .filter-container{margin-top:1rem;width:100%;justify-content:end}}@media(max-width: 320px){.evolution-dashboard #proposals-count-number{font-size:.9rem;letter-spacing:-0.2px}.evolution-dashboard #flag-filter-description{font-size:.9rem;letter-spacing:-0.2px}}.evolution-dashboard .color-awaiting-review{color:#ff9500;border-color:#ff9500}.evolution-dashboard .color-scheduled-for-review{color:#ff9500;border-color:#ff9500}.evolution-dashboard .color-active-review{color:#ff9500;border-color:#ff9500}.evolution-dashboard .color-returned-for-revision{color:#5856d6;border-color:#5856d6}.evolution-dashboard .color-accepted,.evolution-dashboard .color-accepted-with-revisions{color:#4cd964;border-color:#4cd964}.evolution-dashboard .color-rejected{color:#ff3b30;border-color:#ff3b30}.evolution-dashboard .color-previewing{color:#00beb4;border-color:#00beb4}.evolution-dashboard .color-implemented{color:#007aff;border-color:#007aff}.evolution-dashboard .color-withdrawn{color:#ff3b30;border-color:#ff3b30}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}@media(min-width: 1000px){.grid-layout-category-list{grid-template-columns:repeat(2, 1fr)}}@media only screen and (min-width: 767px){.grid-layout-category-list :first-child{grid-column:span 2}}.package-list nav{padding-bottom:20px}.package-list nav a[rel=parent]::before{content:"← "}.package-list ul{display:grid;grid-template-columns:1fr 1fr;gap:50px 40px;padding:30px 0;list-style:none}@media only screen and (max-width: 767px){.package-list ul{grid-template-columns:1fr}}.package-list ul li{display:grid}.package-list ul li.with-note{grid-template-rows:5fr 1fr;gap:5px}.package-list ul li>a{display:flex;flex-direction:column;color:inherit;height:100%}.package-list ul li>a:hover{text-decoration:none}.package-list ul li>a:hover h4{background-image:url("../svg/icon-external-color.svg")}.package-list ul li>a:hover h4 .name{color:var(--color-link);text-decoration:underline}.package-list ul li h4{display:flex;flex-direction:column;gap:5px;padding-top:10px;background-image:url("../svg/icon-external.svg");background-repeat:no-repeat;background-size:15px;background-position:top 15px right}.package-list ul li h4 .name{padding-right:20px}.package-list ul li h4 .owner{font-size:16px}.package-list ul li .description{flex-grow:1;font-size:16px}.package-list ul li .description>p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;text-overflow:ellipsis;overflow:hidden}.package-list ul li .metadata{display:grid;grid-template-columns:auto auto 1fr auto;gap:10px}.package-list ul li .metadata .lozenge{display:inline-flex;align-items:center;justify-content:center;border-radius:4px;border:1px #000 solid;font-size:12px;line-height:1;white-space:nowrap}.package-list ul li .metadata .lozenge>span{padding:4px 5px}.package-list ul li .metadata .lozenge.platform-compatibility{color:#007aff;border-color:#007aff}.package-list ul li .metadata .lozenge.platform-compatibility>span:not(:last-child){border-right:1px solid #007aff}.package-list ul li .metadata .lozenge.swift-compatibility{color:#f05138;border-color:#f05138}.package-list ul li .metadata .lozenge.swift-compatibility>span{padding-left:22px;background-image:url("../svg/icon-swift-color.svg");background-repeat:no-repeat;background-position:3px center;background-size:13px}.package-list ul li .metadata .lozenge.license{grid-column:4;color:#3ea639;border-color:#3ea639}.package-list ul li .note p{font-size:12px;margin-top:10px;margin-bottom:0;color:#666}.platform-grid ul{display:grid;align-items:stretch;gap:1rem;padding:0;grid-template-columns:repeat(1, 1fr)}@media(min-width: 1000px){.platform-grid ul{grid-template-columns:repeat(3, 1fr)}}.platform-grid li{list-style:none;padding-left:0;display:flex}.platform-grid li a{border-radius:var(--border-radius);border:1px solid var(--color-text);color:var(--color-text);display:block;padding:.5rem 0;text-align:center;flex-grow:1}.platform-grid li a .flex-container{display:flex;flex-direction:column;align-items:center;height:100%}.platform-grid li a:hover{background-color:var(--color-text);color:var(--color-fill);text-decoration:none}.platform-grid li a:hover .latest-release-container span{border-color:var(--color-fill)}.platform-grid li a:hover img{filter:var(--icon-filter-hover)}@media only print{html body{background:#fff;font-size:12pt;padding:.5in}html body *{-webkit-print-color-adjust:exact}a{color:#000 !important;text-decoration:underline !important}a[href^="http://"]:after{content:" (" attr(href) ") ";color:#444}h1,h2,h3,h4,h5,h6,p,article>div,pre,table{page-break-inside:avoid}details:not([open]){visibility:visible}details:not([open]) summary{display:none !important}details:not([open])>*,details:not([open]){display:block}.alert{margin:1.5em 0}main{width:auto;padding:0;border:0;float:none !important;color:#000;background:rgba(0,0,0,0);margin:0;max-width:100%;min-height:1in}nav[role=navigation]{background:rgba(0,0,0,0);border:none;width:auto;position:static;padding:0}nav[role=navigation] h2,nav[role=navigation] ul{display:none}nav[role=navigation] #logo{position:static;margin-bottom:1.5em}nav[role=navigation] #logo a{background-position:-15px}footer[role=contentinfo]{display:none}}/*# sourceMappingURL=application.css.map */