* {padding: 0; margin: 0; box-sizing: border-box;}
html {font-size: 16px; line-height: 2.2; height: 100%; background: #101010;}
body {overflow-y: scroll; height: 100%; color: #101010; font-family: 'Roboto', sans-serif;}
body::after {content: ""; position: fixed; left: 0; top: 0; background: #101010; height: 100vh; width: 0.75rem; z-index: 2;}
h1,h2,h3 {line-height: 1.05; margin-bottom: 0.5em; padding-top: 1.5em; font-weight: 900;}
a {color: #101010;}
code {font-family: 'Roboto Mono', monospace;}
pre {padding: 1rem 1.25rem 1.15rem; margin-bottom: 1.5rem; background: rgba(0,0,0,0.02); border: 1px solid rgba(0,0,0,0.075);}
pre code {font-family: 'Roboto', sans-serif; font-size: 0.9rem; line-height: 1.7; display: block;}
img {max-width: 100%; width: 100%; display: block;}
a img {border: 1px solid rgba(0,0,0,0.2);}
p img {margin-bottom: 0.25rem;}
.date:first-child {position: relative; margin-top: 0.75rem; top: 1.75rem; opacity: 0.5; font-size: 0.9rem; font-family: 'Roboto Mono', monospace;}
.h1 {
    line-height: 1.15;
    font-size: 1.5rem;
    display: flex;
    text-decoration: none;
    font-weight: bold;
    align-items: center;
    margin-right: 2rem;
}

.rposlogo {
    letter-spacing: 0.025em; 
    text-align: left; 
    margin-block: 1rem 1.3rem; 
    line-height: 1.15rem;
    display: flex; 
    align-items: center;
}
.rposlogo > span {display: block;}
.rposlogo img {height: 1.8rem; position: relative; top: 0; border: 0; display: block; margin-inline: 2.75rem 0.55rem; width: auto;}
.rposlogo > span:last-child {
    font-weight: normal; 
    margin-left: 0.35rem; 
    font-size: 1.15rem; 
    line-height: 1.25rem;
    position: relative;
    top: 0.125rem;
}

blockquote {font-size: 150%; margin-block: 2rem 2.5rem; line-height: 1.4;}
h1 + blockquote {margin-top: 0;}
p img {margin-block: 2.75rem;}
p img + em, p a.lightbox-image + em {display: block; margin-block: -2.5rem 2.25rem;}
h1 + p img {margin-top: 0;}

.header {position: relative; top: 0; background: white; width: 100%; z-index: 2;}
.header > div {max-width: 80rem; margin: 0 auto; display: flex; justify-content: space-between; align-items: center;}
.header > div > div {display: flex; align-items: center; gap: 2rem; margin-right: 1.25rem;}
.header > div ul {display: flex; gap: 1.5rem;}
.header > div ul li:nth-last-child(1),
.header > div ul li:nth-last-child(2) {display: none;}
.header > div ul li {list-style: none;}
.header > div ul li a {color: rgba(16, 16, 16, 0.5); text-decoration: none;}
.header > div ul li.active > a {font-weight: normal; color: #101010;}
.header > div button {width: 2rem; height: 2rem; border: 0; background: 0; border-radius: 0; cursor: pointer; display: none; position: relative;}
.header > div button span {display: block; height: 2px; background: #101010; margin: 0.5rem 0;}
body.showmenu .header > div button span {position: absolute; transform: rotate(45deg); width: 100%; top: 0.5rem; transform-origin: center center;}
body.showmenu .header > div button span + span {transform: rotate(-45deg);}

.main {display: flex; justify-content: center; background: white;}
.main > .sidebar {margin-left: 0.75rem; min-width: 20rem; padding: 4.25rem 2rem 4.25rem; border-right: 1px solid rgba(0,0,0,0.1);}
.main > .sidebar > div > ul ul {margin-left: 1.4rem;}
.main > .sidebar li {line-height: 1.5; padding: 0; list-style: none;}
.main > .sidebar li a {color: rgba(16, 16, 16, 0.5); text-decoration: none; display: block; line-height: 2;}

ul.nestedmenu {margin-left: 0;}
ul.nestedmenu li {list-style: none;}
ul.nestedmenu li > ul {display: none;}
ul.nestedmenu li > a {color: rgba(16, 16, 16, 0.5);}
ul.nestedmenu li > a::before {content: "•"; display: inline-block; margin-right: 1rem; width: 0.5rem; text-align: center;}
ul.nestedmenu li.haschildren > a::before {content: "›";}
ul.nestedmenu li.haschildren.active > a::before {transform: rotate(90deg);}
ul.nestedmenu li.active > ul {display: block;}
ul.nestedmenu li.active > a {color: #101010; font-weight: normal;}
ul.nestedmenu > li > ul > li:last-child {margin-bottom: 1rem;}

.main > .content {flex-grow: 1; padding: 2rem 2rem 6rem; max-width: 60rem;}
.innercontent {max-width: 60rem; display: flex; width: 100%; flex-direction: column; margin: 0 auto;}
.innercontent > .innerinnercontent {max-width: 40rem; margin: 0 auto; width: 100%; line-height: 1.65;}
.main > .sidebar + .content > .innercontent > .innerinnercontent {max-width: 40rem;}
.main > .content h1 {font-size: 2.5rem; padding: 0.8em 0 0.5rem;}
.main > .content h2 {font-size: 1.4rem; font-weight: 700; line-height: 1.2;}
.main > .content h3 {font-size: 1rem; line-height: 1.6; padding-top: 1.25rem;}
.main > .content p {margin-bottom: 1.5rem;}
.main > .content ol {margin: 0 0 1.5rem 2rem;}
.main > .content ul {margin: 0 0 1.5rem 2rem;}
.main > .content li.active {font-family: 'Roboto Mono', monospace; font-weight: normal;}
.main > .content em { color: rgba(16, 16, 16, 0.5);}

form {max-width: 33rem;}
form > div {display: flex; flex-direction: column; margin-bottom: 1rem;}
form > div.radio + .radio {bottom: 1rem; position: relative; margin-bottom: 0;}
input:not([type="radio"],[type="checkbox"]), textarea, select {
    border: 1px solid rgba(0,0,0,0.2);
    background: #fafafa;
    display: block;
    resize: none;
    padding: 0.25rem 0.5rem;
    line-height: 1.5;
    font-size: 1rem;
    border-radius: 0;
    -webkit-appearance: none;
}
input[type="submit"], .button {
    display: inline-block;
    width: auto;
    padding: 0rem 1.5rem;
    height: 2.35rem;
    line-height: 2.35rem;
    color: white;
    background: #101010;
    border: 0;
    font-weight: bold;
    cursor: pointer;
    text-decoration: none;
    letter-spacing: 0.02em;
    font-size: 1rem;
}
.button.demo {position: relative; left: 0.75rem; box-shadow: inset 0px 0px 0px 1px #101010; background: transparent; color: #101010;}
label > input {margin-right: 0.5rem;}
form > div > label {margin-bottom: 0.25rem;}


.features, .graphics {text-align: center;}

body.home .main, body.home .stats, body.home .features {flex-direction: column; align-items: center; display: flex; width: 100%;}
body.home .main > .content {text-align: center; padding-bottom: 4rem;}
body.home .main > .content h1 {font-size: 4rem; line-height: 1.05; margin: 1rem 0 1.5rem; font-weight: 900; letter-spacing: 0.02em;}
body.home .main > .content h1 + p {font-size: 1.1rem;}
body.home .main > .content h1 em {color: #2E3192; font-family: inherit; font-style: normal; font-weight: inherit;}
body.home .main > .stats {border: 1px solid rgba(0,0,0,0.1); background: #fafafa; width: 100%; margin-bottom: 3rem;}
body.home .stats ul {display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); grid-gap: 1.5rem; justify-content: center; align-items: center; opacity: 1; margin: 2rem 0;} 
body.home .stats ul li {list-style: none; text-align: center; line-height: 1.33;}
body.home .stats ul li > div:nth-child(1) {font-weight: 900; font-size: 2.2rem;}
body.home .stats ul li > div:nth-child(2) {opacity: 0.5; text-transform: uppercase; letter-spacing: 0.075rem; font-size: 0.75rem;}
body.home h2 {font-weight: 900; font-size: 2.2rem; letter-spacing: 0.02em;}
body.home .features ul {display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); grid-gap: 0 2rem; margin: 1rem auto 8rem; opacity: 0.5; width: 100%;}
body.home .features li {list-style: none;}


.footer {filter: invert(100%); background: #eee; border-top: 5rem solid black; padding: 1.5rem 0 0; font-size: 0.95rem;}
.footer .innercontent {max-width: 80rem; margin: 0 auto; display: flex; gap: 0 4rem; flex-direction: row; flex-wrap: wrap; padding: 1rem 0 2rem;}
.footer .innercontent > div:not(:first-child) {padding-left: 1.75rem;}
.footer .innercontent > div {max-width: 22rem;}
.footer .innercontent > div:first-child p {margin-top: 1.65rem; line-height: 1.5; padding-left: 2.75rem; opacity: 0.5;}
.footer h3 {margin: -0.15rem 0 1.25rem; font-weight: 700;}
.footer ul li {list-style: none; opacity: 0.5;}
.footer ul li a {text-decoration: none;}
.footer > img {filter: invert(100%); right: 7vw; position: absolute; border: 0; aspect-ratio: 1;}
.footer > img:nth-child(1) {margin: -11rem -3rem 0 0; width: 11rem;}
.footer > img:nth-child(2) {margin: -15rem 5.25rem 0; width: 6rem;}
.footer > img:nth-child(3) {margin: -19rem 2.75rem 0; width: 3rem;}
.footer > img:nth-child(4) {margin: -20rem 9.75rem 0; width: 2rem;}
.footer .innercontent + .innercontent {margin-top: 1rem; padding: 1rem 0 1.5rem;}
.footer .innercontent + .innercontent::before {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    border-top: 1px solid rgba(0,0,0,0.05);
    margin-top: -0.7rem;
}

.logos {text-align: center; margin-top: -4.5rem; width: 100%;}
.logos img {height: 3rem; border: 0; object-fit: contain;}
.logos ul {display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin: 1rem 0;}
.logos ul li {list-style: none; width: 4rem;}

@media screen and (max-width: 100rem) {
    .footer > img {display: none;}
}

@media screen and (max-width: 60rem) {
    body::after {width: 0.25rem;}
    .rposlogo img {margin-left: 1.75rem;}
    .main {flex-direction: column-reverse;}
    .main > .sidebar {padding: 0 1.5rem 4rem 1.75rem; border: 0; margin-left: 0rem;}
    .main > .content, body.home .main > * {padding-left: 1.75rem; padding-right: 1.5rem;}
    .main > .content > .innercontent > .innerinnercontent {margin: 0;}
    .footer .innercontent > div:first-child p {padding-left: 1.75rem;}
    .footer img + .innercontent > div:first-child p {padding-bottom: 2rem;}
    body.home .main > .content p br {display: none;}
}

@media screen and (max-width: 45rem) {
    .header > div button {display: block;}
    .header > div ul {
        display: none;
        position: absolute;
        top: 4.3rem;
        background: #eee;
        left: 0;
        width: 100%;
        padding: 1rem 1rem 1.25rem 1.75rem;
    }
    body.showmenu .header > div ul {display: block;}
    .footer .innercontent {flex-direction: column;}
    body.home .main > .content h1 {font-size: 3.5rem; margin: 1.5rem 0;}
    body.home .main > .content h1 img {height: 1.75rem;}
}

@media screen and (max-width: 35rem) {
    .header > div .button {display: none!important;}
    .header > div ul li:nth-last-child(1),
    .header > div ul li:nth-last-child(2) {display: block;}
    body.showmenu .header > div .button {display: block;}
    body.home .main > .content h1 {font-size: 2.75rem;}
    body.home .main > .content h1 img {height: 1.5rem;}
}