* { margin: 0; padding: 0; } :root { --padding: 1.5rem; --color-black: #000; --color-white: #fff; --color-grey: #777; --color-light: #efefef; --color-text: var(--color-black); --color-text-grey: var(--color-grey); --color-background: var(--color-white); --color-code-light-grey: #cacbd1; --color-code-comment: #a9aaad; --color-code-white: #c5c9c6; --color-code-red: #d16464; --color-code-orange: #de935f; --color-code-yellow: #f0c674; --color-code-green: #a7bd68; --color-code-aqua: #8abeb7; --color-code-blue: #7e9abf; --color-code-purple: #b294bb; --font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; --font-family-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; } html { font-family: var(--font-family-sans); color: var(--color-text); background: var(--color-background); } img { width: 100%; } body { padding: var(--padding); max-width: 70rem; margin: 0 auto; } li { list-style: none; } a { color: currentColor; text-decoration: none; } button { font: inherit; background: none; border: 0; color: currentColor; cursor: pointer; } strong, b { font-weight: 600; } small { font-size: inherit; color: var(--color-text-grey); } .bg-light { background-color: var(--color-light); } .color-grey { color: var(--color-text-grey); } .header { position: relative; display: flex; flex-wrap: wrap; justify-content: space-between; margin-right: -1rem; margin-left: -1rem; margin-bottom: 6rem; } .logo { padding: 1rem; display: flex; align-items: center; font-weight: 600; cursor: pointer; } .menu { display: flex; } .menu a { padding: 1rem; display: block; } .menu a[aria-current] { text-decoration: underline; } .social { display: flex; padding: 0 .5rem; } .social a { padding: 1rem .5rem; } .section { padding: 3rem 0; } .grid { --columns: 12; --gutter: 3rem; display: grid; grid-gap: var(--gutter); grid-template-columns: 1fr; } .grid > .column { margin-bottom: var(--gutter); } .autogrid { --gutter: 3rem; --min: 10rem; display: grid; grid-gap: var(--gutter); grid-template-columns: repeat(auto-fit, minmax(var(--min), 1fr)); grid-auto-flow: dense; } h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; line-height: inherit; } .text { line-height: 1.5em; } .text a { text-decoration: underline; } .text :first-child { margin-top: 0; } .text :last-child { margin-bottom: 0; } .text p, .text ul, .text ol { margin-bottom: 1.5rem; } .text ul, .text ol { margin-left: 1rem; } .text ul p, .text ol p { margin-bottom: 0; } .text ul > li { list-style: disc; } .text ol > li { list-style: decimal; } .text ul ol, .text ul ul, .text ol ul, .text ol ol { margin-bottom: 0; } .text h1, .h1, .intro { font-size: 2rem; margin-bottom: 3rem; line-height: 1.25em; } .text h2, .h2 { font-size: 1.25rem; font-weight: 600; margin-bottom: 1.25rem; } .text h3, .h3 { font-weight: 600; } .text .codeblock { display: grid; } .text code { font-family: var(--font-family-mono); font-size: 1em; background: var(--color-light); padding: 0 .5rem; display: inline-block; color: var(--color-black); } .text pre { margin: 3rem 0; background: var(--color-black); color: var(--color-white); padding: 1.5rem; overflow-x: scroll; overflow-y: hidden; line-height: 1.5rem; } .text pre code { padding: 0; background: none; color: inherit; } .text hr { margin: 6rem 0; } .text dt { font-weight: 600; } .text blockquote { font-size: 1.25rem; line-height: 1.325em; border-left: 2px solid var(--color-black); padding-left: 1rem; margin: 3rem 0; max-width: 25rem; } .text blockquote footer { font-size: .875rem; font-style: italic; } .text figure { margin: 3rem 0; } .text figcaption { padding-top: .75rem; color: var(--color-text-grey); } .text figure ul { line-height: 0; display: grid; gap: 1.5rem; margin: 0; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); } .text figure ul li { list-style: none; } hr { border: 0; background: currentColor; height: 2px; width: 1.5rem; margin: 3rem auto; } .align-center { text-align: center; } .intro { max-width: 40rem; } .intro *:not(:last-child) { margin-bottom: 1em; } .cta { background: var(--color-black); color: var(--color-white); display: inline-flex; justify-content: center; padding: .75rem 1.5rem; border: 4px solid var(--color-white); outline: 2px solid var(--color-black); } .box { background: var(--color-light); padding: 1.5rem; border: 4px solid var(--color-white); outline: 2px solid var(--color-light); } .video, .img { position: relative; display: block; --w: 1; --h: 1; padding-bottom: calc(100% / var(--w) * var(--h)); background: var(--color-black); } .img img, .video iframe { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; object-fit: cover; border: 0; } .img[data-contain] img { object-fit: contain; } .img-caption, .video-caption { padding-top: .75rem; line-height: 1.5em; } .footer { padding: 9rem 0 6rem; line-height: 1.5em; } .footer:before { content: ""; display: block; width: 1.5rem; height: 2px; background: var(--color-black); margin-bottom: 1.5rem; } .footer h2 { font-weight: 600; margin-bottom: .75rem; } .footer ul, .footer p { color: var(--color-text-grey); } .footer p { max-width: 15rem; } .footer a:hover { color: var(--color-text); } .map { --w: 2; --h: 1; padding-bottom: calc(100% / var(--w) * var(--h)); position: relative; overflow: hidden; background: var(--color-black); } .map iframe { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; border: 0; } .margin-s { margin-bottom: .75rem; } .margin-m { margin-bottom: 1.5rem; } .margin-l { margin-bottom: 3rem; } .margin-xl { margin-bottom: 4.5rem; } .margin-xxl { margin-bottom: 6rem; } @media screen and (min-width: 60rem) { body { --padding: 3rem; } .grid { grid-template-columns: repeat(12, 1fr); } .grid > .column { grid-column: span var(--columns); } } .pagination { display: flex; padding-top: 6rem; } .pagination > span { color: var(--color-text-grey); } .pagination > * { padding: .5rem; width: 3rem; text-align: center; border: 2px solid currentColor; margin-right: 1.5rem; } .pagination > a:hover { background: var(--color-black); color: var(--color-white); border-color: var(--color-black); } .note-excerpt { line-height: 1.5em; } .note-excerpt header { margin-bottom: 1.5rem; } .note-excerpt figure { margin-bottom: .5rem; } .note-excerpt-title { font-weight: 600; } .note-excerpt-date { color: var(--color-text-grey); }