@charset "UTF-8";

@font-face {
    font-family: Baumans;
    src: url(/assets/Baumans-Regular.ttf) format("truetype");
    font-weight: 400;
    font-style: normal
}

:root {
    --content-width: 50rem;
    --accent-contrast: #00e1ff;
    --accent-contrast-alt: #F5B157;
    --accent-contrast-dim: #00444D;
    --accent-contrast-alt-dim: #A8612A;
    --text-color: #e2e2e2;
    --background-color: #222
}

body {
    background-color: var(--background-color);
    color: var(--text-color);
    font-family: Helvetica Neue, sans-serif;
    margin: 0;
    padding: 0;
    line-height: 1.5
}

.grid {
    display: grid;
    gap: 1rem
}

.grid.cols-2 {
    grid-template-columns: 1fr 1fr
}

.grid.cols-3 {
    grid-template-columns: 1fr 1fr 1fr
}

.grid.cols-4 {
    grid-template-columns: 1fr 1fr 1fr 1fr
}

.grid.rows-2 {
    grid-template-rows: 1fr 1fr
}

.grid.rows-3 {
    grid-template-rows: 1fr 1fr 1fr
}

.grid.rows-4 {
    grid-template-rows: 1fr 1fr 1fr 1fr
}

h1 {
    font-size: 2rem
}

h2 {
    font-size: 1.8rem
}

h3 {
    font-size: 1.6rem
}

h4 {
    font-size: 1.4rem
}

h5 {
    font-size: 1.2rem
}

a,
a:visited,
a:active,
a:hover {
    color: #00e1ff
}

details summary {
    cursor: pointer
}

h1,
h2,
h3,
h4,
h5 {
    font-family: Baumans;
    margin-bottom: 0
}

.center-content {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 300px
}

.bigfacts {
    font-size: 1.5rem;
    font-style: italic;
    text-align: center;
    padding-top: 2rem;
    padding-bottom: 2rem;
    text-shadow: 0 0 4px black
}

.content h1,
.content h2 {
    text-shadow: 0 0 3px #00e5ff
}

.hover-underline {
    position: relative;
    display: inline-block;
    transition: color .1s ease-out
}

.hover-underline.external {
    color: var(--accent-contrast-alt)
}

.hover-underline:hover {
    color: #00e1ff
}

.hover-underline:hover.external {
    color: var(--accent-contrast-alt)
}

.hover-underline:after,
.hover-underline:before {
    content: "";
    position: absolute;
    width: 100%;
    height: 2px;
    background: linear-gradient(to right, #0000, #00e1ff, #0000);
    bottom: -5px;
    left: 0;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .05s ease-out
}

.hover-underline.external:after,
.hover-underline.external:before {
    background: linear-gradient(to right, rgba(0, 0, 0, 0), var(--accent-contrast-alt), rgba(0, 0, 0, 0))
}

.hover-underline:before {
    top: -5px;
    transform-origin: left
}

.hover-underline:hover:after,
.hover-underline:hover:before {
    transform: scaleX(1)
}

.fancy-border {
    border-width: 22px;
    border-style: solid;
    border-image-slice: 33%
}

.fancy-border.only-bottom {
    border-top: none;
    border-left: none;
    border-right: none
}

.fancy-border.only-top {
    border-bottom: none;
    border-left: none;
    border-right: none
}

.fancy-border.only-left {
    border-top: none;
    border-bottom: none;
    border-right: none
}

.fancy-border.only-right {
    border-top: none;
    border-left: none;
    border-bottom: none
}

.fancy-border.only-top-bottom {
    border-left: none;
    border-right: none
}

.fancy-border.only-left-right {
    border-top: none;
    border-bottom: none
}

.fancy-border {
    border-image-source: url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-miterlimit:1.5;'%3e%3cdefs%3e%3c!--%20Tunable%20glow%20filter%20--%3e%3cfilter%20id='glow'%20x='-50%25'%20y='-50%25'%20width='200%25'%20height='200%25'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3c!--%20Blur%20the%20source%20(stroke/fill)%20--%3e%3cfeGaussianBlur%20in='SourceGraphic'%20stdDeviation='0.5'%20result='blur'/%3e%3c!--%20Color%20the%20blur%20(optional;%20use%20if%20you%20want%20a%20specific%20glow%20color)%20--%3e%3cfeFlood%20flood-color='%2300E5FF'%20flood-opacity='1'%20result='glowColor'/%3e%3cfeComposite%20in='glowColor'%20in2='blur'%20operator='in'%20result='coloredBlur'/%3e%3c!--%20Stack%20glow%20behind%20the%20original%20--%3e%3cfeMerge%3e%3cfeMergeNode%20in='coloredBlur'/%3e%3cfeMergeNode%20in='SourceGraphic'/%3e%3c/feMerge%3e%3c/filter%3e%3c/defs%3e%3cpath%20filter='url(%23glow)'%20d='M12.42,9.841l0,-6.42l-0.599,-0.002'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M5.28,3.42l-1.86,0l-0,1.86'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M3.42,7.98l-0,2.64l1.68,1.68'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M7.795,12.42l3.84,0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M6.12,2.7l-3.42,-0l0,0.72l-0.96,0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M2.7,10.56l0,2.58l3.781,-0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M10.676,13.14l2.464,-0l0,-10.44l-0.965,-0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M11.693,2.7l-1.766,-0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M9.124,1.98l1.912,-0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M13.86,5.28l-0,-3.3l-1.881,-0l-0.75,-0.72l-3.909,0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M7.8,1.98l-4.815,-0l-1.005,-0.72l0,1.2l-0.837,-0l-0.006,1.32l0.843,0.595l0,9.485l7.353,0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M11.43,13.86l1.45,0c0,0.573%200.407,1.038%200.98,1.038c0.573,0%201.038,-0.465%201.038,-1.038c0,-0.573%20-0.465,-0.99%20-1.038,-0.99l-0,0.99l0.48,0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M1.26,10.32l0,-5.04'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M0.54,7.92l-0,-2.64'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M4.26,12.42l-0.84,-0.84l0,0.84l0.84,0Z'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3c/svg%3e")
}

.fancy-border.rot90 {
    border-image-source: url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-miterlimit:1.5;'%3e%3cdefs%3e%3c!--%20Tunable%20glow%20filter%20--%3e%3cfilter%20id='glow'%20x='-50%25'%20y='-50%25'%20width='200%25'%20height='200%25'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3c!--%20Blur%20the%20source%20(stroke/fill)%20--%3e%3cfeGaussianBlur%20in='SourceGraphic'%20stdDeviation='0.5'%20result='blur'/%3e%3c!--%20Color%20the%20blur%20(optional;%20use%20if%20you%20want%20a%20specific%20glow%20color)%20--%3e%3cfeFlood%20flood-color='%2300E5FF'%20flood-opacity='1'%20result='glowColor'/%3e%3cfeComposite%20in='glowColor'%20in2='blur'%20operator='in'%20result='coloredBlur'/%3e%3c!--%20Stack%20glow%20behind%20the%20original%20--%3e%3cfeMerge%3e%3cfeMergeNode%20in='coloredBlur'/%3e%3cfeMergeNode%20in='SourceGraphic'/%3e%3c/feMerge%3e%3c/filter%3e%3c/defs%3e%3cpath%20filter='url(%23glow)'%20d='M5.999,12.42l6.42,0l0.002,-0.599'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M12.42,5.28l-0,-1.86l-1.86,0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M7.86,3.42l-2.64,0l-1.68,1.68'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M3.42,7.795l-0,3.84'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M13.14,6.12l-0,-3.42l-0.72,0l-0,-0.96'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M5.28,2.7l-2.58,0l-0,3.781'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M2.7,10.676l-0,2.464l10.44,0l-0,-0.965'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M13.14,11.693l-0,-1.766'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M13.86,9.124l-0,1.912'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M10.56,13.86l3.3,0l0,-1.881l0.72,-0.75l-0,-3.909'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M13.86,7.8l0,-4.815l0.72,-1.005l-1.2,0l-0,-0.837l-1.32,-0.006l-0.595,0.843l-9.485,0l-0,7.353'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M1.98,11.43l-0,1.45c-0.573,0%20-1.038,0.407%20-1.038,0.98c-0,0.573%200.465,1.038%201.038,1.038c0.573,0%200.99,-0.465%200.99,-1.038l-0.99,-0l-0,0.48'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M5.52,1.26l5.04,0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M7.92,0.54l2.64,0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M3.42,4.26l0.84,-0.84l-0.84,0l-0,0.84Z'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3c/svg%3e")
}

.fancy-border.rot180 {
    border-image-source: url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-miterlimit:1.5;'%3e%3cdefs%3e%3c!--%20Tunable%20glow%20filter%20--%3e%3cfilter%20id='glow'%20x='-50%25'%20y='-50%25'%20width='200%25'%20height='200%25'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3c!--%20Blur%20the%20source%20(stroke/fill)%20--%3e%3cfeGaussianBlur%20in='SourceGraphic'%20stdDeviation='0.5'%20result='blur'/%3e%3c!--%20Color%20the%20blur%20(optional;%20use%20if%20you%20want%20a%20specific%20glow%20color)%20--%3e%3cfeFlood%20flood-color='%2300E5FF'%20flood-opacity='1'%20result='glowColor'/%3e%3cfeComposite%20in='glowColor'%20in2='blur'%20operator='in'%20result='coloredBlur'/%3e%3c!--%20Stack%20glow%20behind%20the%20original%20--%3e%3cfeMerge%3e%3cfeMergeNode%20in='coloredBlur'/%3e%3cfeMergeNode%20in='SourceGraphic'/%3e%3c/feMerge%3e%3c/filter%3e%3c/defs%3e%3cpath%20filter='url(%23glow)'%20d='M9.841,3.42l-6.42,-0l-0.002,0.599'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M3.42,10.56l0,1.86l1.86,0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M7.98,12.42l2.64,0l1.68,-1.68'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M12.42,8.045l0,-3.84'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M2.7,9.72l0,3.42l0.72,-0l0,0.96'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M10.56,13.14l2.58,-0l0,-3.781'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M13.14,5.164l0,-2.464l-10.44,-0l0,0.965'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M2.7,4.147l0,1.766'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M1.98,6.716l0,-1.912'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M5.28,1.98l-3.3,-0l-0,1.881l-0.72,0.75l0,3.909'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M1.98,8.04l-0,4.815l-0.72,1.005l1.2,-0l0,0.837l1.32,0.006l0.595,-0.843l9.485,-0l0,-7.353'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M13.86,4.41l0,-1.45c0.573,-0%201.038,-0.407%201.038,-0.98c0,-0.573%20-0.465,-1.038%20-1.038,-1.038c-0.573,-0%20-0.99,0.465%20-0.99,1.038l0.99,0l0,-0.48'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M10.32,14.58l-5.04,-0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M7.92,15.3l-2.64,-0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M12.42,11.58l-0.84,0.84l0.84,-0l0,-0.84Z'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3c/svg%3e")
}

.fancy-border.rot270 {
    border-image-source: url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-miterlimit:1.5;'%3e%3cdefs%3e%3c!--%20Tunable%20glow%20filter%20--%3e%3cfilter%20id='glow'%20x='-50%25'%20y='-50%25'%20width='200%25'%20height='200%25'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3c!--%20Blur%20the%20source%20(stroke/fill)%20--%3e%3cfeGaussianBlur%20in='SourceGraphic'%20stdDeviation='0.5'%20result='blur'/%3e%3c!--%20Color%20the%20blur%20(optional;%20use%20if%20you%20want%20a%20specific%20glow%20color)%20--%3e%3cfeFlood%20flood-color='%2300E5FF'%20flood-opacity='1'%20result='glowColor'/%3e%3cfeComposite%20in='glowColor'%20in2='blur'%20operator='in'%20result='coloredBlur'/%3e%3c!--%20Stack%20glow%20behind%20the%20original%20--%3e%3cfeMerge%3e%3cfeMergeNode%20in='coloredBlur'/%3e%3cfeMergeNode%20in='SourceGraphic'/%3e%3c/feMerge%3e%3c/filter%3e%3c/defs%3e%3cpath%20filter='url(%23glow)'%20d='M3.42,5.999l-0,6.42l0.599,0.002'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M10.56,12.42l1.86,-0l0,-1.86'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M12.42,7.86l0,-2.64l-1.68,-1.68'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M8.045,3.42l-3.84,-0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M9.72,13.14l3.42,-0l-0,-0.72l0.96,-0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M13.14,5.28l-0,-2.58l-3.781,-0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M5.164,2.7l-2.464,-0l-0,10.44l0.965,-0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M4.147,13.14l1.766,-0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M6.716,13.86l-1.912,-0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M1.98,10.56l-0,3.3l1.881,-0l0.75,0.72l3.909,-0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M8.04,13.86l4.815,-0l1.005,0.72l-0,-1.2l0.837,-0l0.006,-1.32l-0.843,-0.595l-0,-9.485l-7.353,-0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M4.41,1.98l-1.45,-0c-0,-0.573%20-0.407,-1.038%20-0.98,-1.038c-0.573,-0%20-1.038,0.465%20-1.038,1.038c-0,0.573%200.465,0.99%201.038,0.99l0,-0.99l-0.48,-0'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M14.58,5.52l-0,5.04'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M11.58,3.42l0.84,0.84l-0,-0.84l-0.84,-0Z'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3cpath%20filter='url(%23glow)'%20d='M15.3,7.92l-0,2.64'%20style='fill:none;stroke:%23fff;stroke-width:0.33px;'/%3e%3c/svg%3e")
}

.width-limiter {
    width: 100%;
    max-width: var(--content-width);
    margin: 0 auto
}

.full-width {
    clear: both;
    width: 100vw;
    position: relative
}

.full-width .width-limiter {
    margin: 0 auto
}

.full-width .width-limiter.with-custom-bg {
    pointer-events: none
}

.full-width .width-limiter .content {
    pointer-events: all
}

.full-width .width-limiter>* {
    position: relative
}

.full-width .background,
.full-width .foreground {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden
}

.full-width .foreground {
    z-index: 1;
    opacity: .85
}

@media(max-width:768px) {
    body {
        font-size: 1rem
    }

    h1 {
        font-size: 1.5rem
    }

    h2 {
        font-size: 1.3rem
    }

    h3 {
        font-size: 1.1rem
    }

    h4 {
        font-size: 1rem
    }

    h5 {
        font-size: .95rem
    }

    .center-content {
        height: 180px
    }

    .bigfacts {
        font-size: 1.1rem;
        padding-top: 1rem;
        padding-bottom: 1rem
    }

    .width-limiter {
        padding: 0 .5rem
    }

    .responsive.grid.cols-2,
    .responsive.grid.cols-3,
    .responsive.grid.cols-4,
    .responsive.grid.rows-2,
    .responsive.grid.rows-3,
    .responsive.grid.rows-4 {
        display: block
    }
}

header {
    text-align: center;
    padding-top: 1rem;
    padding-bottom: 1rem
}

header div {
    font-family: monospace;
    margin: 0;
    padding: 0;
    font-size: 1rem
}

#logo a {
    display: inline-block;
    margin: 0 auto
}

#logo img {
    height: 6rem;
    filter: drop-shadow(0 0 13px #0a90ff);
    transition: filter .3s ease-in-out
}

#logo a:hover img {
    filter: drop-shadow(0 0 13px rgb(145, 206, 255))
}

#logo span {
    position: absolute;
    left: -999em
}

.bg-grid {
    width: 100%;
    height: 100%;
    overflow: hidden;
    perspective: 450px
}

.bg-grid .grid-fade {
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: 1;
    background: radial-gradient(ellipse at 50% 50%, #2220, #222 80%)
}

.bg-grid .grid-lines {
    width: 100%;
    height: 200%;
    background-image: linear-gradient(to right, rgba(0, 225, 255, .3) 1px, transparent 0), linear-gradient(to bottom, rgba(0, 225, 255, .3) 1px, transparent 0);
    background-size: 45px 30px;
    background-position: center center;
    background-repeat: repeat;
    transform-origin: 100% 0 0;
    transform: rotateX(70deg)
}

nav {
    font-family: Baumans;
    padding-bottom: 1rem;
    transform-style: preserve-3d
}

nav ul {
    list-style-type: none;
    margin: 0;
    margin-top: 1rem;
    padding: 0;
    display: flex
}

nav li {
    margin: 0 auto
}

nav li a {
    font-weight: 700;
    font-size: 1.7rem;
    text-decoration: none
}

@media(max-width:1024px) {
    #logo img {
        max-width: 66vw
    }

    nav>ul {
        display: block;
        text-align: center
    }

    nav>ul>li {
        display: inline-block;
        margin: 0 1rem
    }

    nav>ul>li .hover-underline {
        font-size: 1em
    }
}

video {
    object-fit: cover;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%
}

.video-wrapper {
    border: 2px solid #000;
    height: 100%;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: end;
    justify-content: center
}

.video-wrapper>* {
    position: relative
}

.video-wrapper>video {
    position: absolute
}

.hex-tessellation {
    position: relative;
    overflow: hidden
}

.hex-tessellation:before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 289.3 165.65'><defs><path id='h' d='M -90,0 L -45,-78 L 45,-78 L 90,0 L 45,78 L -45,78 Z' fill='none' stroke='white' stroke-opacity='0.1' stroke-width='2'/></defs><use href='%23h' x='90' y='78'/><use href='%23h' x='234.65' y='160.825'/><use href='%23h' x='-54.65' y='160.825'/><use href='%23h' x='234.65' y='-4.825'/><use href='%23h' x='-54.65' y='-4.825'/></svg>");
    background-size: 15rem 8.58rem;
    background-position: calc((100vw - 47rem)/2) 1rem;
    background-repeat: repeat
}

.hex-tessellation>* {
    position: relative;
    z-index: 1
}

.hex-tessellation .center-content {
    height: auto
}

.hex-tessellation .improving {
    height: 8.58rem;
    margin: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-weight: 700
}

.hex-tessellation .improving p {
    margin: 0;
    font-size: 2rem;
    line-height: 1.1
}

.patches {
    padding-top: 1rem;
    height: fit-content;
    padding-left: 1.5rem;
    --hex-width: 14rem;
    --gap-horizontal: .5rem;
    --gap-vertical: .5rem;
    --sqrt-of-3: 1.732;
    --hex-height: calc(var(--hex-width) / var(--sqrt-of-3));
    padding-bottom: calc(var(--hex-height) + var(--gap-vertical) / 2);
    display: grid;
    grid-template-columns: repeat(6, calc(var(--hex-width) / 2));
    column-gap: var(--gap-horizontal);
    row-gap: var(--gap-vertical);
    font-size: 0
}

.patches .patch {
    width: fit-content
}

.patches .patch img,
.patches .patch .patch-contents {
    --hex-scale: 1;
    height: var(--hex-height);
    transform-origin: 50% 50%;
    transition: transform .15s ease-out;
    width: calc(var(--hex-height) * 180 / 156);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: calc(var(--hex-height) * .2);
    line-height: 1;
    color: #ffffff73;
    font-weight: 700
}

.patches .patch a:hover img,
.patches .patch a:hover .patch-contents {
    --hex-scale: 1.1
}

.patches .patch:nth-child(2n) img,
.patches .patch:nth-child(2n) .patch-contents {
    transform: translateY(calc(var(--hex-height) / 2 + var(--gap-vertical) / 2)) scale(var(--hex-scale))
}

.patches .patch:nth-child(odd) img,
.patches .patch:nth-child(odd) .patch-contents {
    transform: scale(var(--hex-scale))
}

.telescope {
    height: 500px
}

.glamor-shots {
    --bg-height: 30rem;
    grid-template-columns: 3fr 2fr 3fr;
    display: grid
}

.glamor-shots .column {
    padding: 2rem;
    align-content: center;
    font-size: 18px
}

.glamor-shots .column.left {
    text-align: right
}

.glamor-shots .column.right {
    text-align: left
}

.glamor-shots .column img {
    max-width: 80%
}

.proem {
    --proem-height: 30rem
}

.proem .background {
    background-image: url(/assets/proem-side.svg), url(/assets/proem-perspective.svg);
    --gutter-width: calc((100vw - var(--content-width)) / 2);
    --background-left-width: 20rem;
    --background-right-width: 20rem;
    --background-left-origin: calc(var(--gutter-width) / 2 - var(--background-left-width) / 2);
    --background-right-origin: calc(var(--gutter-width) + var(--content-width) + var(--gutter-width) / 2 - var(--background-right-width) / 2);
    background-size: auto 100%;
    background-position: var(--background-left-origin) center, var(--background-right-origin) center;
    background-repeat: no-repeat, no-repeat;
    height: var(--proem-height)
}

.proem .center-content {
    height: var(--proem-height)
}

.proem .bigfacts {
    max-width: 30rem;
    font-size: 1.9rem;
    font-weight: 700
}

.clouds {
    color: #00b7ff;
    overflow: hidden;
    --clouds-image: url(/earth.png);
    --clouds-bg-size: cover;
    --clouds-bg-position: 50% 50%
}

@supports (background-image: url(/earth.webp)) {
    .clouds {
        --clouds-image: url(/earth.webp)
    }
}

.clouds {
    background-image: var(--clouds-image);
    background-size: var(--clouds-bg-size);
    background-position: var(--clouds-bg-position)
}

.clouds .center-content {
    height: 100%
}

.clouds video.foreground {
    object-fit: cover;
    object-position: 50% 50%;
    opacity: 1
}

.clouds .clouds-still {
    display: none;
    background-image: url(/clouds-fallback.webp);
    background-size: cover;
    background-position: 50% 50%
}

@supports (background: -webkit-named-image(i)) {
    .clouds video.foreground {
        display: none
    }

    .clouds .clouds-still {
        display: block;
        mix-blend-mode: screen
    }
}

.clouds .background {
    pointer-events: none;
    background-image: var(--clouds-image);
    background-size: var(--clouds-bg-size);
    background-position: var(--clouds-bg-position)
}

.clouds .bigfacts {
    font-weight: 700;
    font-size: clamp(2.2rem, 4cqi, 4rem);
    margin-top: 2em;
    margin-bottom: 2em
}

.wavefront-control .bigfacts {
    font-weight: 700;
    font-size: 1.2rem;
    text-align: left
}

.wavefront-control .grid {
    grid-template-rows: 1fr 1fr
}

.wavefront-control .grid .bmc2k {
    grid-column: 1/span 2
}

.wavefront-control .grid .ncpc {
    grid-column: 2/span 2;
    align-content: end
}

@media(max-width:768px) {
    .wavefront-control .responsive.grid {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr
    }

    .wavefront-control .responsive.grid .bmc2k {
        grid-column: 1/span 2
    }

    .wavefront-control .responsive.grid .ncpc {
        grid-column: 2/span 2;
        grid-row: 2
    }
}

.drone {
    min-height: 95vh
}

* {
    box-sizing: border-box
}

.overlay {
    display: flex;
    padding: 1rem;
    height: 100%
}

.overlay .content {
    width: 50%;
    padding: 1rem;
    margin: 1rem;
    background: #0003;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px)
}

.overlay .content h2 {
    margin-top: 0
}

.overlay .content h3.subtitle {
    font-size: 1rem;
    font-family: monospace;
    font-weight: inherit;
    margin-top: 0
}

.overlay.right {
    flex-direction: row-reverse
}

.overlay.right.tilt .content {
    transform: perspective(1000px) rotateX(-10deg) rotateY(-10deg)
}

.overlay.left {
    flex-direction: row
}

.overlay.left.tilt .content {
    transform: perspective(1000px) rotateX(-10deg) rotateY(10deg)
}

.proposals-guidance {
    font-style: italic;
    text-align: center;
    color: #999
}

.press-list {
    padding: 1.5rem 0 2rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem
}

.press-list a,
.press-list a:visited,
.press-list a:active,
.press-list a:hover {
    color: var(--accent-contrast-alt)
}

.press-list .press-item {
    background: #ffffff08;
    overflow: hidden;
    display: grid
}

.press-list .press-item>.grid.cols-2 {
    grid-template-columns: 6em 1fr
}

.press-list .press-item .left-gutter {
    padding: 1rem 1rem 0 0
}

.press-list .press-item h3 {
    padding: 1rem 0
}

.press-list .press-item .left-gutter,
.press-list .press-item h3 {
    line-height: 1.8rem
}

.press-list .press-item .left-gutter {
    background-color: var(--accent-contrast-dim);
    border-right: 2px solid var(--accent-contrast);
    text-align: right
}

.press-list .press-item h3,
.press-list .press-item h4 {
    font-family: Helvetica Neue;
    font-weight: 400;
    margin: 0
}

.press-list .press-item .external-links h4 {
    color: #9e5100
}

.press-list .press-item .body {
    padding-bottom: 1rem;
    padding-right: 1rem
}

.press-list .press-item .body h4 {
    font-size: .9rem;
    font-weight: 700;
    margin-top: 1rem
}

.press-list .press-item .body p {
    margin: .25rem 0
}

.press-list .press-item .body .link-list {
    list-style: none;
    padding: 0;
    margin: .25rem 0
}

.press-list .press-item .body .link-list li {
    display: inline
}

.press-list .press-item .body .link-list li+li:before {
    content: " · ";
    white-space: pre;
    color: var(--accent-color)
}

.press-list .more-publications {
    font-size: 1.2rem;
    font-weight: 700;
    text-align: center;
    padding: 1rem;
    overflow: hidden
}

.press-item>summary:hover h3 {
    text-decoration: underline
}

.press-item[open]>summary h3 {
    text-decoration: none
}

.press-item>summary time:before {
    content: "+ ";
    display: inline-block;
    margin-right: .5rem
}

.press-item[open]>summary time:before {
    content: "− "
}

.offset-right {
    width: 120%
}

@media(max-width:1024px) {
    .glamor-shots {
        grid-template-columns: 1fr;
        --bg-height: auto
    }

    .glamor-shots .column.left {
        display: none
    }

    .glamor-shots .column {
        padding: 1rem;
        text-align: center
    }

    .glamor-shots .column.right {
        text-align: center
    }

    .glamor-shots .column img {
        max-width: 70%;
        max-height: 50vh
    }

    .telescope,
    .team {
        height: 600px
    }

    .telescope>.width-limiter,
    .team>.width-limiter {
        height: 100%;
        display: flex;
        align-items: flex-end
    }

    .team {
        height: auto;
        display: flex;
        flex-direction: column
    }

    .team>.background {
        position: relative;
        width: 100%;
        height: auto;
        aspect-ratio: 1;
        max-height: 65vh
    }

    .team>.width-limiter {
        height: auto;
        display: block
    }

    .telescope .content h3.subtitle {
        display: none
    }

    .overlay {
        padding: .5rem;
        align-items: flex-end
    }

    .overlay .content {
        width: auto;
        flex: 1;
        margin: .5rem;
        padding: .75rem
    }

    .overlay.left.tilt .content,
    .overlay.right.tilt .content {
        transform: none
    }

    .proem {
        display: flex;
        flex-direction: column
    }

    .proem>.background {
        position: static;
        width: 100%;
        height: 38vw;
        background-size: 42% auto, 42% auto;
        background-position: 4% center, 96% center
    }

    .proem>.center-content {
        height: auto;
        padding: 1rem
    }

    .proem .bigfacts {
        font-size: 1.2rem;
        max-width: none
    }

    .patches {
        --hex-width: 12rem;
        --gap-horizontal: .25rem;
        --gap-vertical: .25rem;
        grid-template-columns: repeat(2, calc(var(--hex-width) / 2)) calc(var(--hex-width) * 2 / 3);
        justify-content: center;
        padding-left: .25rem;
        padding-right: .25rem
    }

    .patches .patch:nth-child(2n) img,
    .patches .patch:nth-child(2n) .patch-contents,
    .patches .patch:nth-child(odd) img,
    .patches .patch:nth-child(odd) .patch-contents {
        transform: scale(var(--hex-scale))
    }

    .patches .patch:nth-child(3n+2) img,
    .patches .patch:nth-child(3n+2) .patch-contents {
        transform: translateY(calc(var(--hex-height) / 2 + var(--gap-vertical) / 2)) scale(var(--hex-scale))
    }

    .hex-tessellation:before {
        display: block;
        background-size: 12.5rem 7.18rem;
        background-position: calc((100vw - 20.28rem)/2) 1rem
    }

    .hex-tessellation .improving {
        height: 7.18rem;
        padding: 0
    }

    .hex-tessellation .improving p {
        font-size: 1.2rem
    }

    .proposals-guidance p {
        font-size: 1rem
    }

    .press-list .press-item .body .link-list {
        list-style: disc;
        padding-left: 1.25rem
    }

    .press-list .press-item .body .link-list li {
        display: list-item
    }

    .press-list .press-item .body .link-list li+li:before {
        content: none
    }

    .press-list .press-item h3 {
        min-width: 0;
        overflow-wrap: anywhere
    }
}