body {
    margin: 0;
    padding: 0;
    background-color: rgb(255,255,255);
}

.featherlight .featherlight-image {
    margin: 0 auto;
}

.featherlight .featherlight-content {
    border-radius: 3px;
}

article.docs,
.featherlight .featherlight-content p {
    background-color: transparent;
    color: rgb(20,20,20);
    font-family: 'Open Sans', -apple-system-body, 'Helvetica Neue', Helvetica, 'Droid Sans', Roboto, sans-serif;
    font-size: .9375rem;
    -moz-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    line-height: 1.66666;
}

article.docs {
    margin: 0 auto;
    padding: 1.875rem 15px;
    max-width: 90%;
}

article.docs .hidden {
    display: none;
}

article.docs :target {
    padding-top: 6.5rem;
    margin-top: -6.5rem;
}

article.docs a,
article.docs a:visited {
    color: rgb(67,149,191);
}

article.docs a:hover {
    color: rgb(100,178,212);;
}

article.docs a:active {
    color: orange;
}

article.docs header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 999;
    width: 100%;
    background-color: rgb(255,255,255);
    background: linear-gradient(0deg, rgba(255,255,255,0), rgb(255,255,255) 1.875rem);
    pointer-events: none; /* allows selecting elements on layers with a lower z-index */
}

article.docs header .super {
    height: 2.5rem;
    background-color: steelblue;
    color: white;
    font-size: .75rem;
}

article.docs header .super * {
    pointer-events: auto; /* make sure items are selectable */
}

article.docs header .super a,
article.docs header .super a:visited {
    color: white;
    text-decoration: none;
}

article.docs header .super a:active,
article.docs header .super a:hover {
    text-decoration: underline;
}

article.docs header .super .logo {
    display: inline-block;
    padding: .25rem .5rem;
    width: 2rem;
    height: 2rem;
    vertical-align: middle;
    transition: background-color .3s, margin-right .3s;
}

article.docs header .super .logo:hover {
    margin-right: .625rem;
    background-color: rgb(40,44,48);
}

article.docs header .super .logo img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
}

article.docs header .super .title {
    display: inline-block;
    vertical-align: middle;
}

article.docs header + * {
    margin-top: 7.875rem; /* 4.75rem + header .super height */
}

article.docs nav {
    margin: 0 auto;
    padding: .9375rem .9375rem 2.75rem;
    width: 90%;
    height: 3.75rem;
    font-size: .6875rem;
}

article.docs nav * {
    pointer-events: auto; /* make sure nav items are selectable */
}

article.docs nav .breadcrumbs {
    margin: 1em 0 0;
    white-space: nowrap;
}

article.docs.article nav .breadcrumbs .language-separator,
article.docs.article nav .breadcrumbs .language,
article.docs.article nav .breadcrumbs .version-separator,
article.docs.article nav .breadcrumbs .version {
    display: inline;
}

article.docs.article.js nav .system-select {
    display: block;
}

article.docs nav .system-select {
    margin: 0;
    padding: 0;
}

article.docs nav .system-select ul,
article.docs nav .system-select li {
    display: inline-block;
    margin: 0;
    padding: 0;
    list-style-type: none;
    white-space: nowrap;
}

article.docs nav .system-select li {
    margin: .166666em .25rem;
    padding: .25em .5rem;
    color: white;
    background-color: skyblue;
    cursor: pointer;
}

article.docs nav .system-select li:first-child {
    margin-left: .75em;
}

article.docs nav .system-select li:hover {
    background-color: rebeccapurple;
}

article.docs nav .system-select li.selected {
    font-weight: 700;
    background-color: orange;
}

article.docs nav .navigation {
    display: none;
    transform: translate3d(0,0,0); /* hint to enable hardware graphics acceleration */
}

article.docs nav .navigation h1,
article.docs nav .navigation h2 {
    margin: 0;
    padding: .1875rem .625rem;
    background-color: skyblue;
    color: white;
    font-family: 'Open Sans', -apple-system, 'Helvetica Neue', Helvetica, 'Droid Sans', Roboto, sans-serif;
    font-size: .875rem;
    line-height: 1.42857;
    cursor: pointer;
}

article.docs nav .navigation h1 {
    padding-top: .25em;
    padding-bottom: .25em;
    background-color: steelblue;
    font-size: .9rem;
    line-height: 1.66666;
    cursor: default;
}

article.docs nav .navigation h1 a,
article.docs nav .navigation h1 a:visited {
    color: white;
    text-decoration: none;
}

article.docs nav .navigation h1 a:hover {
    text-decoration: underline;
}

article.docs nav .navigation h2 {
    text-transform: uppercase;
}

article.docs.js nav .navigation h2:before {
    content: "+ "
}

article.docs nav .navigation h2:hover {
    background-color: rebeccapurple;
}

article.docs nav .navigation h2.selected {
    background-color: orange;
    cursor: default;
}

article.docs nav .navigation h2.selected:before {
    content: ""
}

article.docs nav .navigation ul {
    margin: 0;
    padding: .375rem .625rem;
    background-color: rgb(252,252,255);
    font-size: .875rem;
    line-height: 1.42857;
}

article.docs.js nav .navigation > ul {
    display: none;
    overflow-x: hidden;
    overflow-y: auto;
}

article.docs nav .navigation li {
    padding-left: 0;
    list-style-type: none;
}

article.docs nav .navigation li > a.selected {
    color: rgb(20,20,20);
    font-style: italic;
    text-decoration: none;
    cursor: default;
}

article.docs nav .navigation li > em {
    display: none !important;
}

article.docs nav .navigation li > ul {
    padding-left: .9375rem;
}

article.docs .notice {
    margin-bottom: .66666em;
    padding: 0 .625rem;
    border: 1px dotted lightgreen;
    border-radius: .3em;
    background-color: honeydew;
    font-size: .8em;
    line-height: 1.25;
    text-align: center;
}

article.docs span.notice {  /* inline notice */
    margin: 0 .75em;
    padding: .3em .75em;
    color: dimgray;
    font-size: .5em;
    font-weight: 700;
    text-transform: uppercase;
    vertical-align: middle;
}

article.docs .notice p {
    display: none;
}

article.docs[lang="de"] .notice p[lang="de"],
article.docs[lang="en"] .notice p[lang="en"] {  /* notice matching article language */
    display: block;
}

article.docs li a + span.notice {  /* table of contents notice */
    display: inline-block;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .25s;
}

article.docs li a:active + span.notice,
article.docs li a:hover + span.notice {
    transform: scaleX(1);
}

article.docs .notice.draft {
    border: 1px dotted khaki;
    background-color: lightyellow;
}

article.docs .notice > *:before {
    display: inline;
    margin-right: .5em;
    content: "♻";
}

article.docs .notice.draft > *:before {
    content: "⚠";
}

article.docs .notice p {
    margin: .71429em 0;
}

article.docs li a + em,
article.docs li a + span.notice + em {  /* table of contents description */
    display: block;
    position: relative;
    top: -.3em;
    font-size: .825em;
    color: rgb(40,44,48);
}

article.docs h1,
article.docs h2,
article.docs h3,
article.docs h4,
article.docs h5,
article.docs h6 {
    font-family: 'Ropa Sans', -apple-system-headline, 'Lucida Grande', 'Droid Sans', Roboto, sans-serif;
    font-weight: 400;
    color: rgb(60,60,60);
}

article.docs h1 {
    font-size: 2.5rem;
    line-height: 1;
    letter-spacing: -.035em;
}

article.docs h2 {
    font-size: 1.75rem;
    line-height: 1.07143;
    letter-spacing: -.025em;
}

article.docs h3 {
    font-size: 1.3125rem;
    line-height: 1.190476;
    letter-spacing: -.022em;
}

article.docs h4 {
    font-size: 1.1875rem;
    line-height: 1.05263;
    letter-spacing: -.02em;
}

article.docs h5 {
    font-size: 1.0625rem;
    line-height: 1.17647;
    letter-spacing: -.01em;
}

article.docs h6 {
    font-size: .875rem;
    line-height: 1.07143;
    text-transform: uppercase;
    letter-spacing: -.005em;
}

article.docs code,
article.docs pre {
    font-family: Courier, monospace, serif;  /* webkit is an unrequested silly thing */
}

article.docs p > code {
    display: inline-block;
    position: relative;
    top: -.08rem;
    border-radius: .25rem;
    font-size: .85rem;
    margin: -.08rem .12rem 0;
    padding: .08rem .35rem 0;
    background-color: whitesmoke;
    line-height: 1.83824;
}

article.docs pre {
    padding: .75rem;
    background-color: whitesmoke;
    font-size: .625rem;
    line-height: 1;
    overflow-x: auto;
}

article.docs p + pre {
    position: relative;
    top: -.75rem;
    margin-left: 1em;
    margin-right: 1em;
}

article.docs table {
    margin: 1.5rem 0;
    font-size: .75em;
    border-spacing: 0;
    border-collapse: collapse;
}

article.docs thead {
    border-left:  1px solid steelblue;
    border-right: 1px solid steelblue;
    background: steelblue;
    color: white;
    font-weight: 700;
    white-space: nowrap;
}

article.docs th {
    padding: .5em .66666em;
    text-align: left;
}

article.docs tbody tr {
    background: white;
}

article.docs tbody tr {
    border-left:  1px solid whitesmoke;
    border-right: 1px solid whitesmoke;
}

article.docs tbody tr:last-child {
    border-bottom: 1px solid whitesmoke;
}

article.docs tbody tr:nth-of-type(odd) {
    background: whitesmoke;
}

article.docs td {
    padding: .5em .66666em;
}

article.docs td > code {
    padding: 0 .2em;
    text-decoration: underline;
    text-decoration-style: dotted;
    text-decoration-color: steelblue;
    text-decoration-thickness: .1em;
}

article.docs footer {
    border-top: 1px solid lightgray;
    margin-top: 2em;
}

article.docs.license footer {
    display: none;
}

article.docs footer p,
article.docs footer small {
    font-size: .75rem;
}

article.docs footer p {
    font-style: italic;
}

article.docs p,
article.docs ol,
article.docs ul,
article.docs footer p,
article.docs footer small {
    margin: 1.33333em 0;
}

article.docs li > ol,
article.docs li > ul {
    margin-top: 0;
    margin-bottom: 0;
}

article.docs.license li {
    margin-top: 1.33333em;
    margin-bottom: 1.33333em;
}

article.docs.credits img {
    max-width: 30%;
    max-height: 6em;
}

article.docs figure {
    position: relative;
    left: -3%;
    display: block;
    margin: 1.33333em auto;
    width: 106%;
}

article.docs figure img {
    display: block;
    max-width: 100%;
}

article.docs figcaption,
.featherlight .featherlight-content p {
    margin-top: .5rem;
    padding-top: .454545em;
    border-top: 1px solid rgb(232,232,232);
    font-size: .6875rem;
    line-height: 1.36364;
    color: rgb(120,120,120);
}

.featherlight .featherlight-content p:last-child {
    margin-bottom: 0;
}

article.docs figcaption {
    margin-bottom: -1px;
}

article.docs .continue {
    margin-top: 2em;
    padding-bottom: .1px;
    background-color: rgb(252,252,255);
}

article.docs .continue h2 {
    margin: 0;
    padding: .625rem .9375rem;
    background-color: steelblue;
    color: white;
    font-family: 'Open Sans', -apple-system, 'Helvetica Neue', Helvetica, 'Droid Sans', Roboto, sans-serif;
    font-size: 1.0625rem;
    line-height: 1.17647;
}

article.docs .continue p {
    margin-left: .9375rem;
    margin-right: .9375rem;
}

article.docs .continue .success {
    margin-left: .9375rem;
    border-left: .2rem solid green;
}

article.docs .continue .fail {
    margin-left: .9375rem;
    border-left: .2rem solid firebrick;
}

article.docs .footnotes {
    margin-top: 2em;
    padding-top: .25rem;
    border-top: 1px solid lightgray;
    font-size: .875rem;
}

article.docs .footnotes hr {
    display: none;
}

article.docs .footnotes + footer {
    border-top: none;
}

/* Wider than 350 */
@media (min-width: 350px) {
    article.docs header + * {
        margin-top: 8.125rem; /* 5rem + header .super height */
    }

    article.docs nav {
        padding-bottom: 3rem;
        font-size: .75rem;
    }
}

/* Wider than 390 */
@media (min-width: 390px) {

}

/* Wider than 550 */
@media (min-width: 550px) {
    article.docs pre {
        padding: .8125rem;
        font-size: .6875rem;
    }

    article.docs figure {
        left: 0;
        width: 82%;
    }

    article.docs footer p,
    article.docs footer small {
        font-size: .875rem;
    }
}

/* Wider than 720 */
@media (min-width: 720px) {
    article.docs {
        padding-left: 50px;
        padding-right: 50px;
        max-width: 580px;
    }

    article.docs :target {
        padding-top: 7.75rem;
        margin-top: -7.75rem;
    }

    article.docs header .super {
        height: 3.125rem;
        font-size: .9375rem;
    }

    article.docs header .super .logo {
        padding: .3125rem .625rem;
        width: 2.5rem;
        height: 2.5rem;
    }

    article.docs header .super .logo:hover {
        margin-right: .75rem;
    }

    article.docs header + * {
        margin-top: 9.5rem; /* 5.75rem + header .super height */
    }

    article.docs nav {
        padding: 1.25rem 3.125rem 2.5rem;
        width: 580px;
        height: 4.6875rem;
    }

    article.docs nav .breadcrumbs {
        margin-top: 1.33333em;
    }

    article.docs pre {
        padding: .9375rem;
        font-size: .75rem;
    }

    article.docs figure {
        display: inline-block;
        margin: 1.33333em 0;
        position: relative;
        left: -5%;
        width: auto;
        max-width: 42%;
        vertical-align: top;
    }

    article.docs figure + figure {
        margin-left: 3%;
    }

    article.docs figure img {
        max-height: 240px;
    }

    .featherlight .featherlight-content p {
        font-size: .825rem;
    }

}

/* Wider than 1000, taller than 550 */
@media (min-width: 1000px) and (min-height: 550px) {
    article.docs {
        padding-left: 100px;
        padding-right: 100px;
        max-width: 680px;
    }

    article.docs :target {
        padding-top: 9.3125rem;
        margin-top: -9.3125rem;
    }

    article.docs header .super {
        height: 3.75rem;
        font-size: 1.125rem;
    }

    article.docs header .super .logo {
        padding: .375rem .75rem;
        width: 3rem;
        height: 3rem;
    }

    article.docs header .super .logo:hover {
        margin-right: .75rem;
    }

    article.docs header + * {
        margin-top: 12.5rem; /* 7rem + header .super height */
    }

    article.docs nav {
        padding: 1.875rem 6.25rem 2.5rem;
        width: 680px;
    }

    article.docs figure {
        max-width: 45%;
    }

    article.docs figure + figure {
        margin-left: 5%;
    }

    article.docs figure img {
        max-height: 320px;
    }

    .featherlight .featherlight-content p {
        font-size: .9375rem;
    }

}

/* Wider than 1200, taller than 600 */
@media (min-width: 1200px) and (min-height: 600px) {
    article.docs {
        max-width: 760px;
        font-size: 1.125rem;
    }

    article.docs.article.js {
        position: relative;
        padding-left: 350px;
        padding-right: 50px;
    }

    article.docs header .super {
        height: 5rem;
        font-size: 1.5rem;
    }

    article.docs header .super .logo {
        padding: .5rem 1rem;
        width: 4rem;
        height: 4rem;
    }

    article.docs header .super .logo:hover {
        margin-right: 1rem;
    }

    article.docs nav {
        padding-bottom: 4.25rem;
        width: 760px;
        font-size: .9rem;
    }

    article.docs.article.js nav {
        position: relative;
        padding-left: 350px;
        padding-right: 50px;
    }

    article.docs nav .navigation {
        position: absolute;
        top: 1.875rem;
        left: 0;
        margin: .166666em 15px .166666em;
        width: 275px;
        max-height: 100vh;
        overflow-x: hidden;
        overflow-y: hidden;
    }

    article.docs.article.js nav .navigation {
        display: block;
    }

    article.docs.js nav .navigation > ul {
        max-height: calc(80vh - 20rem);
    }

    article.docs.article.js nav .navigation > ul:last-child {
        border-bottom: 1px solid whitesmoke;
    }

    article.docs header + * {
        margin-top: 13.75rem; /* 8.75rem + header .super height */
    }

    article.docs h1 {
        font-size: 3rem;
        letter-spacing: -.04em;
    }

    article.docs h2 {
        font-size: 2.1rem;
        letter-spacing: -.03em;
    }

    article.docs h3 {
        font-size: 1.575rem;
        letter-spacing: -.023em;
    }

    article.docs h4 {
        font-size: 1.425rem;
        letter-spacing: -.022em;
    }

    article.docs h5 {
        font-size: 1.275rem;
        letter-spacing: -.021em;
    }

    article.docs h6 {
        font-size: 1.05rem;
        text-transform: uppercase;
        letter-spacing: -.009em;
    }

    article.docs p > code {
        top: -.1rem;
        font-size: .9375rem;
        margin: -.1rem .15rem 0;
        padding: .1rem .35rem 0;
        line-height: 1.66666;
    }

    article.docs pre {
        padding: .9375rem;
        font-size: .875rem;
    }

    article.docs figure {
        left: -3.45%;
    }

    article.docs figcaption {
        font-size: .825rem;
    }

    article.docs .continue h2 {
        font-size: 1.275rem;
    }

    article.docs .footnotes {
        font-size: 1.05rem;
    }

    article.docs footer p,
    article.docs footer small {
        font-size: 1.05rem;
    }

    article.docs figure img {
        max-height: 384px;
    }
}

/* Shorter than 550 */
@media (max-height: 549px) {
    article.docs figure img {
        max-height: 300px;
    }
}

/* Shorter than 450 */
@media (max-height: 449px) {
    article.docs header {
        background: linear-gradient(0deg, rgba(255,255,255,0), rgb(255,255,255) .9375rem);
    }

    article.docs :target {
        padding-top: 5.3125rem;
        margin-top: -5.3125rem;
    }

    article.docs header + * {
        margin-top: 5.25rem; /* 2.5rem + header .super height */
    }

    article.docs nav {
        padding: .625rem .9375rem 1.5rem;
        height: 2rem;
    }

    article.docs nav .breadcrumbs {
        display: none;
    }

    article.docs figure img {
        max-height: 220px;
    }
}

/* Shorter than 350 */
@media (max-height: 349px) {
    article.docs nav {
        padding: .625rem .9375rem 1.25rem;
    }

    article.docs figure img {
        max-height: 160px;
    }
}

/* Get a new phone? */
@media (max-height: 349px) and (max-width: 349px) {
    article.docs header + * {
        margin-top: 3.75rem; /* 2rem + header .super height */
    }

    article.docs header .super {
        height: 2rem;
    }

    article.docs header .super .logo {
        padding: .25rem .25rem;
        width: 1.5rem;
        height: 1.5rem;
    }

    article.docs header .super .logo:hover {
        margin-right: .46875rem;
    }

    article.docs nav {
        padding: .3125rem .9375rem .9375rem;
    }

    article.docs h1 {
        font-size: 2em;
    }
}

/* @2x */
@media (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {

}

/* @3x */
@media (-webkit-min-device-pixel-ratio: 2.5), (min-resolution: 240dpi) {

}