html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }

body { line-height: 1; }

ol, ul { list-style: none; }

blockquote, q { quotes: none; }

blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }

table { border-collapse: collapse; border-spacing: 0; }

*, *:before, *:after { box-sizing: border-box; }

@font-face { font-family: "JetBrainsMono"; font-display: swap; font-style: normal; font-weight: 300; src: url("Fonts/JetBrainsMono-Light.woff2") format("woff2"), url("Fonts/JetBrainsMono-Light.woff") format("woff"); }

@font-face { font-family: "JetBrainsMono"; font-display: swap; font-style: normal; font-weight: 400; src: url("Fonts/JetBrainsMono-Regular.woff2") format("woff2"), url("Fonts/JetBrainsMono-Regular.woff") format("woff"); }

@font-face { font-family: "JetBrainsMono"; font-display: swap; font-style: normal; font-weight: 500; src: url("Fonts/JetBrainsMono-Medium.woff2") format("woff2"), url("Fonts/JetBrainsMono-Medium.woff") format("woff"); }

@font-face { font-family: "JetBrainsMono"; font-display: swap; font-style: normal; font-weight: 800; src: url("Fonts/JetBrainsMono-Bold.woff2") format("woff2"), url("Fonts/JetBrainsMono-Bold.woff") format("woff"); }

@font-face { font-family: 'Inter'; font-style: normal; font-weight: 100; font-display: swap; src: url("Fonts/Inter-Thin.woff2?v=3.15") format("woff2"), url("Fonts/Inter-Thin.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: italic; font-weight: 100; font-display: swap; src: url("Fonts/Inter-ThinItalic.woff2?v=3.15") format("woff2"), url("Fonts/Inter-ThinItalic.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: normal; font-weight: 200; font-display: swap; src: url("Fonts/Inter-ExtraLight.woff2?v=3.15") format("woff2"), url("Fonts/Inter-ExtraLight.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: italic; font-weight: 200; font-display: swap; src: url("Fonts/Inter-ExtraLightItalic.woff2?v=3.15") format("woff2"), url("Fonts/Inter-ExtraLightItalic.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: normal; font-weight: 300; font-display: swap; src: url("Fonts/Inter-Light.woff2?v=3.15") format("woff2"), url("Fonts/Inter-Light.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: italic; font-weight: 300; font-display: swap; src: url("Fonts/Inter-LightItalic.woff2?v=3.15") format("woff2"), url("Fonts/Inter-LightItalic.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url("Fonts/Inter-Regular.woff2?v=3.15") format("woff2"), url("Fonts/Inter-Regular.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: italic; font-weight: 400; font-display: swap; src: url("Fonts/Inter-Italic.woff2?v=3.15") format("woff2"), url("Fonts/Inter-Italic.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url("Fonts/Inter-Medium.woff2?v=3.15") format("woff2"), url("Fonts/Inter-Medium.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: italic; font-weight: 500; font-display: swap; src: url("Fonts/Inter-MediumItalic.woff2?v=3.15") format("woff2"), url("Fonts/Inter-MediumItalic.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url("Fonts/Inter-SemiBold.woff2?v=3.15") format("woff2"), url("Fonts/Inter-SemiBold.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: italic; font-weight: 600; font-display: swap; src: url("Fonts/Inter-SemiBoldItalic.woff2?v=3.15") format("woff2"), url("Fonts/Inter-SemiBoldItalic.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: normal; font-weight: 700; font-display: swap; src: url("Fonts/Inter-Bold.woff2?v=3.15") format("woff2"), url("Fonts/Inter-Bold.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: italic; font-weight: 700; font-display: swap; src: url("Fonts/Inter-BoldItalic.woff2?v=3.15") format("woff2"), url("Fonts/Inter-BoldItalic.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: normal; font-weight: 800; font-display: swap; src: url("Fonts/Inter-ExtraBold.woff2?v=3.15") format("woff2"), url("Fonts/Inter-ExtraBold.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: italic; font-weight: 800; font-display: swap; src: url("Fonts/Inter-ExtraBoldItalic.woff2?v=3.15") format("woff2"), url("Fonts/Inter-ExtraBoldItalic.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: normal; font-weight: 900; font-display: swap; src: url("Fonts/Inter-Black.woff2?v=3.15") format("woff2"), url("Fonts/Inter-Black.woff?v=3.15") format("woff"); }

@font-face { font-family: 'Inter'; font-style: italic; font-weight: 900; font-display: swap; src: url("Fonts/Inter-BlackItalic.woff2?v=3.15") format("woff2"), url("Fonts/Inter-BlackItalic.woff?v=3.15") format("woff"); }

.header { text-decoration: none; background-color: #F2F2F2; z-index: 2; position: fixed; top: 0; width: 100%; max-width: 1280px; display: flex; flex-direction: column; }

.header .wrapper { padding: 1rem; display: flex; flex-direction: row; align-items: center; justify-content: space-between; height: 4.5rem; }

.header__logo { font-family: "JetBrainsMono", monospace; font-size: 2.5rem; font-weight: bold; color: #FF4F1F; text-shadow: 1px 1px 0px #A4BEF3, 2px 2px 0px #A4BEF3, 3px 3px 0px #A4BEF3; text-align: center; }

.header__menu { display: flex; flex-direction: row; align-items: center; grid-column-gap: 2rem; }

.header__menu__list { display: none; }

.header__menu__list--expanded { display: flex; }

@media screen and (min-width: 1280px) { .header__menu__list--expanded { flex-direction: row; align-items: center; grid-column-gap: 2rem; } }

@media screen and (max-width: 1280px) { .header__menu__list--expanded { justify-content: center; flex-direction: column; align-items: flex-start; align-content: center; flex-wrap: wrap; grid-column-gap: 2rem; position: fixed; width: 100%; height: 100%; top: 4.5rem; bottom: 0; left: 0; right: 0; padding-bottom: 4.5rem; background-color: #F2F2F2; } }

.header__menu__item { color: rgba(0, 0, 0, 0.83); text-transform: uppercase; font-weight: 400; }

@media screen and (min-width: 1280px) { .header__menu__item { font-size: 1rem; } }

@media screen and (max-width: 1280px) { .header__menu__item { font-size: 2.5rem; line-height: 2; } }

.header__menu__button { display: flex; border: none; padding: 0; outline: 0; background-color: transparent; cursor: pointer; user-select: none; -webkit-tap-highlight-color: transparent; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; }

.header__menu__button-line { stroke-dasharray: 26 87; stroke-dashoffset: 0; transition: stroke-dasharray 1000ms cubic-bezier(0.4, 0, 0.2, 1), stroke-dashoffset 1000ms cubic-bezier(0.4, 0, 0.2, 1); fill: none; stroke: #BCBEC8; stroke-width: 2; stroke-linejoin: round; }

.header__menu__button-line--expanded { stroke-dasharray: 26 87; stroke-dashoffset: -61; transition: stroke-dasharray 1000ms cubic-bezier(0.4, 0, 0.2, 1), stroke-dashoffset 1000ms cubic-bezier(0.4, 0, 0.2, 1); }

.footer { margin-top: 20px; margin-bottom: 2rem; display: flex; flex-direction: column; align-items: center; justify-content: space-between; }

.footer .wrapper { display: flex; flex-direction: row; align-items: center; justify-content: space-around; }

.footer__link { font-family: "Inter"; font-size: 1rem; color: rgba(0, 0, 0, 0.83); margin: 0 0.5rem; }

.footer__link-image { position: relative; left: 0; top: 0.25rem; margin-right: 0.25rem; width: 1.25rem; height: 1.25rem; }

.footer__author { color: #BCBEC8; font-family: "JetBrainsMono"; font-size: 0.75rem; margin-top: 1rem; font-weight: normal; }

.article-preview { font-family: 'Inter'; color: rgba(0, 0, 0, 0.83); }

.article-preview__title { font-weight: 700; font-size: 1.4375rem; line-height: 1.75rem; margin-bottom: 0.625rem; }

.article-preview__description { font-weight: 400; font-size: 0.875rem; letter-spacing: 0.0625rem; line-height: 1.375rem; }

.article-gallery { margin: 1rem; }

.article-gallery__title { font-family: "Inter"; font-weight: 400; font-size: 1rem; line-height: 1.5rem; letter-spacing: 0.009375rem; color: #A4BEF3; text-transform: uppercase; margin-bottom: 1rem; }

.article-gallery__list { display: grid; grid-template-rows: 1fr; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); grid-row-gap: 2rem; grid-column-gap: 2.5rem; }

.sharebox { margin: 1rem 0; }

.sharebox__image { height: 1.25rem; width: 1.25rem; position: relative; top: 5px; right: 5px; }

.sharebox__call-to-action { color: #A4BEF3; text-transform: uppercase; font-family: 'Inter'; font-weight: 500; font-size: 0.875rem; letter-spacing: 0.078125rem; }

.article { font-family: 'Inter'; font-weight: 400; font-size: 1rem; line-height: 1.4rem; letter-spacing: 0.03125rem; padding: 0 1rem; margin: 1rem auto; max-width: 75ch; }

.article em { font-style: italic; }

.article strong { font-weight: 700; }

.article body > *:first-child { margin-top: 0 !important; }

.article body > *:last-child { margin-bottom: 0 !important; }

.article a { color: #2665E3; text-decoration: none; }

.article a.absent { color: #cc0000; }

.article a.anchor { display: block; padding-left: 30px; margin-left: -30px; cursor: pointer; position: absolute; top: 0; left: 0; bottom: 0; }

.article h1, .article h2, .article h3, .article h4, .article h5, .article h6 { margin: 1.5rem 0 1rem; cursor: text; font-weight: 700; -webkit-font-smoothing: antialiased; position: relative; }

.article h2:first-child, .article h1:first-child, .article h1:first-child + h2, .article h3:first-child, .article h4:first-child, .article h5:first-child, .article h6:first-child { margin-top: 0; padding-top: 0; }

.article h1:hover a.anchor, .article h2:hover a.anchor, .article h3:hover a.anchor, .article h4:hover a.anchor, .article h5:hover a.anchor, .article h6:hover a.anchor { text-decoration: none; }

.article h1 tt, .article h1 code { font-size: inherit; }

.article h2 tt, .article h2 code { font-size: inherit; }

.article h3 tt, .article h3 code { font-size: inherit; }

.article h4 tt, .article h4 code { font-size: inherit; }

.article h5 tt, .article h5 code { font-size: inherit; }

.article h6 tt, .article h6 code { font-size: inherit; }

.article h1 { font-size: 2rem; line-height: 3rem; color: rgba(0, 0, 0, 0.83); }

.article h2 { font-size: 1.5rem; line-height: 2.25rem; color: rgba(0, 0, 0, 0.83); }

.article h3 { font-size: 1.25rem; line-height: 1.875rem; color: rgba(0, 0, 0, 0.83); }

.article h4 { font-size: 1rem; color: rgba(0, 0, 0, 0.83); }

.article h5 { font-size: 0.875rem; color: rgba(0, 0, 0, 0.83); }

.article h6 { font-size: 0.875rem; color: #777777; }

.article p, .article blockquote, .article ul, .article ol, .article dl, .article li, .article table, .article pre { margin: 15px 0; }

.article hr { border: 0; padding: 0; height: 1px; background: #DEDEDE; }

.article body > h2:first-child { margin-top: 0; padding-top: 0; }

.article body > h1:first-child { margin-top: 0; padding-top: 0; }

.article body > h1:first-child + h2 { margin-top: 0; padding-top: 0; }

.article body > h3:first-child, .article body > h4:first-child, .article body > h5:first-child, .article body > h6:first-child { margin-top: 0; padding-top: 0; }

.article a:first-child h1, .article a:first-child h2, .article a:first-child h3, .article a:first-child h4, .article a:first-child h5, .article a:first-child h6 { margin-top: 0; padding-top: 0; }

.article h1 p, .article h2 p, .article h3 p, .article h4 p, .article h5 p, .article h6 p { margin-top: 0; }

.article li p.first { display: inline-block; }

.article ul, .article ol { padding-left: 30px; list-style-type: disc; list-style-position: outside; }

.article ul :first-child, .article ol :first-child { margin-top: 0; }

.article ul :last-child, .article ol :last-child { margin-bottom: 0; }

.article dl { padding: 0; }

.article dl dt { font-size: 14px; font-weight: bold; font-style: italic; padding: 0; margin: 15px 0 5px; }

.article dl dt:first-child { padding: 0; }

.article dl dt > :first-child { margin-top: 0; }

.article dl dt > :last-child { margin-bottom: 0; }

.article dl dd { margin: 0 0 15px; padding: 0 15px; }

.article dl dd > :first-child { margin-top: 0; }

.article dl dd > :last-child { margin-bottom: 0; }

.article blockquote { letter-spacing: 0; border-left: 4px solid #DEDEDE; padding: 0 15px; color: #6E6E6E; }

.article blockquote > :first-child { margin-top: 0; }

.article blockquote > :last-child { margin-bottom: 0; }

.article table { padding: 0; }

.article table tr { border-top: 1px solid #cccccc; background-color: white; margin: 0; padding: 0; }

.article table tr:nth-child(2n) { background-color: #f8f8f8; }

.article table tr th { font-weight: bold; border: 1px solid #cccccc; text-align: left; margin: 0; padding: 6px 13px; }

.article table tr td { border: 1px solid #cccccc; text-align: left; margin: 0; padding: 6px 13px; }

.article table tr th :first-child, .article table tr td :first-child { margin-top: 0; }

.article table tr th :last-child, .article table tr td :last-child { margin-bottom: 0; }

.article img { max-width: 100%; }

.article span.frame { display: block; overflow: hidden; }

.article span.frame > span { border: 1px solid #dddddd; display: block; float: left; overflow: hidden; margin: 13px 0 0; padding: 7px; width: auto; }

.article span.frame span img { display: block; float: left; }

.article span.frame span span { clear: both; color: #333333; display: block; padding: 5px 0 0; }

.article span.align-center { display: block; overflow: hidden; clear: both; }

.article span.align-center > span { display: block; overflow: hidden; margin: 13px auto 0; text-align: center; }

.article span.align-center span img { margin: 0 auto; text-align: center; }

.article span.align-right { display: block; overflow: hidden; clear: both; }

.article span.align-right > span { display: block; overflow: hidden; margin: 13px 0 0; text-align: right; }

.article span.align-right span img { margin: 0; text-align: right; }

.article span.float-left { display: block; margin-right: 13px; overflow: hidden; float: left; }

.article span.float-left span { margin: 13px 0 0; }

.article span.float-right { display: block; margin-left: 13px; overflow: hidden; float: right; }

.article span.float-right > span { display: block; overflow: hidden; margin: 13px auto 0; text-align: right; }

.article code { margin: 0 2px; padding: 0 5px; border-radius: 5px; background-color: #DEDEDE; font-weight: 400; font-family: "JetBrainsMono", monospace; font-feature-settings: "liga" on, "calt" on; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -ms-font-feature-settings: "liga" on, "calt" on; -moz-font-feature-settings: "liga" on, "calt" on; -webkit-font-feature-settings: "liga" on, "calt" on; }

.article pre code { font-weight: 500; font-size: 0.8125rem; color: rgba(255, 255, 255, 0.85); background-color: #25252a; margin: 0; padding: 1rem 1.5rem; border-radius: 3px; display: block; overflow-x: auto; white-space: pre; -webkit-overflow-scrolling: touch; }

@media (max-width: 75ch) { .article pre code { margin: 0 -1rem; padding: 1rem; border-radius: 0px; } }

.article .highlight pre { background-color: #f8f8f8; border: 1px solid #cccccc; font-size: 13px; line-height: 19px; overflow: auto; padding: 6px 10px; border-radius: 3px; }

.article .code__swift--keyword { font-weight: bold; color: #e73289; }

.article .code__swift--type { color: #A4BEF3; }

.article .code__swift--call { color: #348fe5; }

.article .code__swift--property { color: #21ab9d; }

.article .code__swift--number { color: #db6f57; }

.article .code__swift--string { color: #fa641e; }

.article .code__swift--comment { font-weight: normal; color: #6b8a94; }

.article .code__swift--dotAccess { color: #92b300; }

.article .code__swift--preprocessing { font-weight: bold; color: #ff9746; }

a { text-decoration: none; color: inherit; }

body { padding-top: 4.5rem; max-width: 1280px; margin-left: auto; margin-right: auto; background-color: #F2F2F2; font-family: 'Inter', sans-serif; }
