<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">:root {
    /*true globals, won’t change, only for DRY*/
    --nav-height: 3rem;
    --online-now-gap: .2rem;
}

:root {
    /*TODO: duplicate these globals in 2/3, though modified in only 1/3 versions‽*/
    --about-us-before-height: 7rem;
    --about-us-before-top: -7rem;
    --about-us-padding-bottom: 8rem;
    --article-flex-direction: row-reverse;
    --is-small-responsiveness: "false";
    --join-us-now-button-font-size: 1.6rem;
    --join-us-now-button-padding-block: .5rem;
    --language-current-background-position: right 1rem center;
    --logo-background-position: left top .5rem;
    --logo-height: clamp(6rem, 20vh, 16rem) /*TODO: boundaries and preferred height okay?*/;
    --logo-left: 2vw;
    --logo-width: calc(100% - (2 * var(--logo-left)));
    --main-after-height: 9rem;
    --online-now-rows: 3;
    --online-now-square: 7rem;
    --sub-nav-menu-border-radius: .8rem;
    --sub-nav-menu-backdrop-filter: none;
}
:root[lang="de"],
:root[lang="es"] { --join-us-now-button-font-size: 1.7rem; }
:root[lang="en"] { --join-us-now-button-font-size: 2.2rem; }
:root[lang="fr"] { --join-us-now-button-font-size: 2rem; }
:root[lang="it"],
:root[lang="nl"] { --join-us-now-button-font-size: 1.9rem; }

#veil-content[data-which="imprint"],
#veil-content[data-which="privacy"]{
    --veil-content-width:42vw;
    --veil-content-height:58vh;
}
#veil-content[data-which="forgot-password"]{
    --veil-content-width:auto;
    --veil-content-height:auto;
}

@media (orientation:portrait) and (min-width:769px) {
    :root {
        --online-now-rows: 4 /*TODO: or 5? (with min-height?)*/;
    }
}
/*------------- ↓ Responsiveness Small ↓ ---------------------------------*/
@media (max-width:768px) {
    :root {
        --about-us-before-height: 3rem;
        --about-us-before-top: -3rem;
        --about-us-padding-bottom: 4rem;
        --article-elements-width: 100%;
        --article-flex-direction: row;
        --article-figure-align-items: center;
        --article-headline-font-size: 0.8rem;
        --article-headline-margin-bottom: 0.5rem;
        --article-margin: 0 auto 2rem auto;
        --article-paragraph-font-size: 0.9rem;
        --article-width: 90vw;
        --fieldset-width: 100%;
        --is-small-responsiveness: "true";
        --join-us-now-button-font-size: 1.4rem;
        --join-us-now-button-padding-block: .5rem ;
        --language-current-background-position: right 2rem center;
        --logo-background-position: center;
        --logo-left: 0;
        --logo-width: 100%;
        --main-after-height: 5rem;
        --nav-shifting-item-bottom-display: list-item;
        --nav-shifting-item-top-display: none;
        --online-now-margin-right: auto;
        --online-now-square: calc((80vw) / 3);
        --sub-nav-menu-border-radius: unset;
        --sub-nav-menu-backdrop-filter: blur(.5rem);
    }
    :root[lang="de"],
    :root[lang="es"] { --join-us-now-button-font-size: 1.5rem; }
    :root[lang="en"] { --join-us-now-button-font-size: 1.8rem; }
    :root[lang="fr"] { --join-us-now-button-font-size: 2rem; }
    :root[lang="it"],
    :root[lang="nl"] { --join-us-now-button-font-size: 1.8rem; }
    
    /* ↓ small nav bar: show some on bottom; top first left, others right ↓ */
    nav#nav-top &gt; ul &gt; li,
    nav#nav-bottom &gt; ul &gt; li {
        min-width: 4rem;
    }

    nav#nav-top &gt; ul {
        justify-content: flex-end;
    }

        nav#nav-top &gt; ul &gt; li:first-of-type {
            position: absolute;
            left: 2rem;
        }

    nav#nav-bottom &gt; ul {
        margin: 0 auto;
        max-width: 26rem;
        justify-content: space-around;
    }

        nav#nav-bottom &gt; ul &gt; li:last-of-type {
            margin-right: unset;
        }
    /* ↑ small nav bar: show some on bottom; top first left, others right ↑ */
    /* ↓ full-width nav menu: disable scrolling, retain scrollbar ↓ */
    body.sub-nav-menu-visible {
        position: fixed;
        overflow-y: scroll;
    }
    /* ↑ full-width nav menu: disable scrolling, retain scrollbar ↑ */
    /* ↓ stack members and login ↓ */
    main {
        padding-bottom: 3rem;
    }

    section#members-and-login {
        flex-wrap: wrap;
    }

    aside#online-now-box,
    form#sign-up-in-form,
    div.error-hint
    {
        flex-basis: 80vw;
        margin-inline: auto;
        margin-bottom: 2rem;
    }

    aside#online-now-box {
        order: 2;
    }

    form#sign-up-in-form, div.error-hint {
        order: 1;
    }
    /* ↑ stack members and login ↑ */
    /* ↓ “about us” layout ↓ */
    article {
        flex-wrap: wrap;
    }

        article &gt; figure {
            margin-top: 1rem;
        }
    /* ↑ “about us” layout ↑ */
    /* ↓ overlay veil dimensions ↓ */
    #veil-content[data-which="imprint"],
    #veil-content[data-which="privacy"]{
        --veil-content-width:85vw;
        --veil-content-height:75dvh;
    }
    #veil-content[data-which="forgot-password"]{
        --veil-content-width:70vw;
        --veil-content-height:auto;
    }
    /* ↑ overlay veil dimensions ↑ */
}
/*------------- ↑ Responsiveness Small ↑ ---------------------------------*/

/*------------- ↓ Responsiveness Medium ↓ ---------------------------------*/
@media (min-width:769px) and (max-width:1199px) {
    :root {
        --article-elements-width: 50%;
        --article-figure-align-items: flex-start;
        --article-headline-font-size: 1rem;
        --article-headline-margin-bottom: 1.5rem;
        --article-margin: 0 auto 4rem auto;
        --article-paragraph-font-size: 1.0rem;
        --article-width: 75vw;
        --fieldset-width: 24rem; /*TODO: arbitrary or okay? keep as preferred and use clamp with min/max?*/
        --nav-shifting-item-bottom-display: none;
        --nav-shifting-item-top-display: list-item;
        --online-now-margin-right: 1.5rem; /*when online now and login form side by side, keep margin*/
    }
    /* ↓ medium nav menu: spread top evenly instead of right-justified ↓ */
    nav#nav-top &gt; ul {
        justify-content: space-around;
        padding-inline: 1rem;
    }

        nav#nav-top &gt; ul &gt; li:last-of-type {
            margin-right: unset;
        }
    /* ↑ medium nav menu: spread top evenly instead of right-justified ↑ */
}
/*------------- ↑ Responsiveness Medium ↑ ---------------------------------*/

/*------------- ↓ Responsiveness Large ↓ ---------------------------------*/
@media (min-width:1200px) {
    :root {
        --article-elements-width: 50%;
        --article-figure-align-items: flex-start;
        --article-headline-font-size: 1rem;
        --article-headline-margin-bottom: 1.5rem;
        --article-margin: 0 auto 8rem auto;
        --article-paragraph-font-size: 1.2rem;
        --article-width: 66vw;
        --fieldset-width: 24rem; /*TODO: arbitrary or okay? keep as preferred and use clamp with min/max?*/
        --nav-shifting-item-bottom-display: none;
        --nav-shifting-item-top-display: list-item;
        --online-now-margin-right: 1.5rem; /*when online now and login form side by side, keep margin*/
    }
    #veil-content[data-which="forgot-password"]{
        min-width:33vw;
    }
}
/*------------- ↑ Responsiveness Large ↑ ---------------------------------*/

html {
    /*TODO: (min-)height 100 %/vh required for ‘special’ clients?*/
}

body {
    background-color: var(--color-darksky);
    font-family: Poppins,Verdana,sans-serif;
    transition: filter .4s ease-in;
    background-image: url(/img/landing/blurred-back.jpg) /*TODO: proper background graphic*/;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

body.page-progress &gt; main,
body.page-progress &gt; aside,
body.page-progress &gt; footer {
    filter: blur(.4rem) brightness(66%);
}

a {
    color: var(--color-jupiter);
}

a:hover {
    color: var(--color-lightsky);
}

.semantic-only {
    display: none;
}

/*------------- ↓ Resets ↓ ---------------------------------*/
body, h1, h2, h3, h4, ul, p, figure, fieldset, input, button {
    margin: 0;
}

fieldset {
    padding: 0;
    border: unset;
}

ul {
    padding: 0;
    list-style-type: none;
}

button {
    padding: unset;
    border: unset;
    cursor: pointer;
    font-family: inherit;
}

button:hover {
    border: unset;
}

button::-moz-focus-inner {
    border-style: none;
}

input[type="text"],
input[type="password"] {
    box-sizing: border-box;
    border: unset;
    font-family: inherit;
}
/*------------- ↑ Resets ↑ ---------------------------------*/

noscript {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    padding: 25vh 25vw;
    z-index: 4;
    box-sizing: border-box;
    background-color: var(--color-lightsky);
    color: var(--color-darksky);
    font-size: 3rem;
    font-weight: bold;
}

noscript a {
    color: var(--color-airforce);
}

noscript a:hover {
    color: var(--color-snow);
}

button.join-us-now {
    padding-block: var(--join-us-now-button-padding-block);
    font-size: var(--join-us-now-button-font-size);
    line-height: 1;
    border-radius: .5rem;
    color: var(--color-airforce);
    background-image: linear-gradient(to top,var(--color-gold) 0%,var(--color-admin) 100%);
    transition: color 80ms linear;
}

button.join-us-now:hover {
    color: var(--color-snow);
    background-image: linear-gradient(to bottom,var(--color-gold) 0%,var(--color-admin) 100%);
}

button.yellow-grade {
    color: var(--color-airforce);
    background-image: linear-gradient(to bottom,var(--color-gold) 0%,var(--color-admin) 100%);
}

button.yellow-grade:hover,
li#online-now-more:hover &gt; button.yellow-grade {
    background-image: linear-gradient(to top,var(--color-gold) 0%,var(--color-admin) 100%);
}

video#bgVideo {
    min-width: 100vw;
    min-height: 100vh;
    position: fixed;
    z-index: 0;
}

header#logo {
    display: block;
    position: absolute;
    z-index: 2;
    top: var(--nav-height);
    left: var(--logo-left);
    height: var(--logo-height);
    width: var(--logo-width);
    background-image: url(/img/logo/GayRoyal.svg);
    background-repeat: no-repeat;
    background-position: var(--logo-background-position);
    background-size: auto 90%;
    transition: height 42ms ease-out;
    pointer-events: none;
}

main {
    position: relative;
    min-height: 100vh;
}

nav {
    position: relative;
    z-index: 2;
    color: var(--color-snow);
}

nav#nav-top {
    background-color: rgba(var(--color-saturn-rgb),.45);
    filter: contrast(150%) saturate(150%);
}

nav#nav-bottom {
    width: 100%;
    margin-top: 4rem;
}

nav &gt; ul {
    display: flex;
    height: var(--nav-height);
    justify-content: flex-end;
    align-items: center;
}

nav &gt; ul &gt; li {
    margin-right: 2rem;
    line-height: 1;
}

nav#nav-top li.shifting-item {
    display: var(--nav-shifting-item-top-display);
}

nav#nav-bottom li.shifting-item {
    display: var(--nav-shifting-item-bottom-display);
}

nav &gt; ul &gt; li &gt; a {
    color: inherit;
    text-decoration: none;
    transition: color 80ms linear;
}

nav &gt; ul &gt; li &gt; a:hover {
    color: var(--color-lightsky);
}

li#languages-item,
li#contact-item {
    position: relative;
}

.sub-nav-menu {
    position: absolute;
    top: 3.5rem;
    left: -1rem;
    background-color: rgba(var(--color-darksky-rgb),.75);
    box-shadow: 0 0 0 .2rem rgba(var(--color-darkness-rgb),.5);
    border-radius: var(--sub-nav-menu-border-radius);
    transition: opacity .1s linear;
    opacity: 0;
}

li:not(.sub-nav-menu-widened) .sub-nav-menu::before,
li:not(.sub-nav-menu-widened) .sub-nav-menu::after {
    content: " ";
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
}

li:not(.sub-nav-menu-widened) .sub-nav-menu::before { /*outer wedge, rather transparent*/
    top: -2.4rem;
    border-width: 0 1.4rem 2.2rem;
    border-color: rgba(var(--color-darksky-rgb),0.5) transparent;
}

li:not(.sub-nav-menu-widened) .sub-nav-menu::after { /*inner wedge, rather opaque*/
    top: -2rem;
    border-width: 0 1.2rem 2rem;
    border-color: rgba(var(--color-darkestsky-rgb),0.5) transparent;
}

.sub-nav-menu.wedge-left::before {
    left: 1rem;
}

.sub-nav-menu.wedge-left::after {
    left: 1.2rem;
}

.sub-nav-menu.wedge-center::before {
    left: calc(50% - 1.2rem);
}

.sub-nav-menu.wedge-center::after {
    left: calc(50% - 1rem);
}

.sub-nav-menu.wedge-right::before {
    right: 1rem;
}

.sub-nav-menu.wedge-right::after {
    right: 1.2rem;
}

li#languages-item.sub-nav-menu-widened,
li#contact-item.sub-nav-menu-widened {
    position: unset;
}

li#languages-item.sub-nav-menu-widened ul#language-list,
li#contact-item.sub-nav-menu-widened form#contact-form {
    height: 100vh;
    background-color: rgba(var(--color-saturn-rgb),0.75);
}

li#languages-item.sub-nav-menu-widened ul#language-list {
    width: 100vw;
    left: -2rem; /*nav#nav-top&gt;ul&gt;li:first-of-type has left:2rem*/
    /*↕languages-item in narrow version is absolutely positioned and somewhat off*/
    top: calc(var(--nav-height) - 1rem /*no explicit font-size in nav; it’s 1rem*/ );
}

body.sub-nav-menu-visible ul#language-list,
body.sub-nav-menu-visible #nav-top {
    backdrop-filter: var(--sub-nav-menu-backdrop-filter);
}

li#contact-item.sub-nav-menu-widened form#contact-form {
    width: 100%;
    left: 0;
    top: var(--nav-height);
}

ul#language-list {
    z-index: 2;
    width: 15rem;
    pointer-events: none;
}

ul#language-list.languages-shown {
    pointer-events: auto;
    opacity: 1;
}

ul#language-list li:first-of-type {
    border-top-left-radius: var(--sub-nav-menu-border-radius);
    border-top-right-radius: var(--sub-nav-menu-border-radius);
}

ul#language-list li:last-of-type {
    border-bottom-left-radius: var(--sub-nav-menu-border-radius);
    border-bottom-right-radius: var(--sub-nav-menu-border-radius);
}

ul#language-list li:not(:last-of-type) {
    border-bottom: .1rem solid var(--color-snow);
}

ul#language-list li.language-current {
    background-image: url(/img/misc/check-ball-white_TODO_AS_SVG.PNG);
    background-repeat: no-repeat;
    background-position: var(--language-current-background-position);
    background-size: 2rem;
}

ul#language-list a {
    display: block;
    padding: 1rem;
    font-size: 1.6rem;
    text-decoration: none;
    color: var(--color-snow);
}

ul#language-list li.language-current,
ul#language-list li:hover {
    background-color: rgba(var(--color-rainy-rgb),.4);
}

form#contact-form {
    box-sizing: border-box;
    width: 25rem;
    padding: .75rem;
    pointer-events: none;
}

form#contact-form.contact-shown {
    pointer-events: auto;
    opacity: 1;
}

form#contact-form h2 {
    font-size: 1.8rem;
    font-weight: 600 /*SemiBold*/;
}

form#contact-form p {
    margin: 1rem auto;
    line-height: 1.25;
}

form#contact-form input,
form#contact-form button,
form#contact-form textarea {
    box-sizing: border-box;
    width: 100%;
    margin: .4rem auto;
    padding: .75rem;
    border: unset;
    border-radius: .6rem;
    color: var(--color-snow);
    background-color: var(--color-space);
    font-family: inherit;
    font-size: 1rem;
}

form#contact-form textarea {
    resize: vertical;
    max-height: 20rem;
}

form#contact-form button {
    display: block;
    width: 80%;
    padding: .5rem;
    font-size: 1.6rem;
    color: var(--color-airforce);
}

form#contact-form input::placeholder,
form#contact-form button::placeholder,
form#contact-form textarea::placeholder {
    color: var(--color-cloudy);
    opacity: 1;
    font-style: italic;
    font-weight: 500 /*Medium*/;
}

p#contact-success-pill,
p#contact-failure-pill {
    box-sizing: border-box;
    width: 80%;
    height: 3rem;
    padding-right: calc(3rem - .2rem /*height (= ball radius) − border width*/ );
    font-size: 1.2rem;
    line-height: 3rem !important;
    text-align: center;
    font-weight: 600 /*SemiBold*/;
    border-width: .2rem;
    border-style: solid;
    border-radius: 3rem;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: right center;
}

p#contact-success-pill {
    border-color: var(--color-nature);
    color: #00057B; /*TODO: ambiguous draft: opaque or semi-transparent background? check-ball image also has a color*/
    background-color: var(--color-nature);
    background-image: url(/img/misc/check-ball-blue_TODO_AS_SVG.PNG);
}

p#contact-failure-pill {
    border-color: var(--color-cloudy);
    color: var(--color-meteor);
    background-color: var(--color-cloudy);
    background-image: url(/img/icon/ball_x_red_transparent.svg);
}

#contact-form:not(.message-sent) #contact-close,
#contact-form #contact-success-hint,
#contact-form #contact-success-pill,
#contact-form #contact-failure-hint,
#contact-form #contact-failure-pill {
    display: none;
}

#contact-form.message-sent #contact-success-hint,
#contact-form.message-sent #contact-close,
#contact-form.message-sent #contact-success-pill,
#contact-form.message-sent.message-failed #contact-failure-pill,
#contact-form.message-sent.message-failed #contact-failure-hint {
    display: block;
}

#contact-form.message-sent #contact-subject,
#contact-form.message-sent #contact-address,
#contact-form.message-sent #contact-message,
#contact-form.message-sent #contact-send,
#contact-form.message-sent.message-failed #contact-success-pill,
#contact-form.message-sent.message-failed #contact-success-hint {
    display: none;
}

section#members-and-login {
    display: flex;
    justify-content: space-between;
    width: calc(100% - (2*var(--logo-left)));
    max-width: calc(16 * (var(--online-now-square) + var(--online-now-gap))); /*TODO: arbitrary multiplier*/
    margin-top: var(--logo-height);
    margin-inline: auto;
    transition: opacity 1s linear;
}

aside#online-now-box {
    min-width: calc(3 * (var(--online-now-square) + var(--online-now-gap)));
    margin-right: var(--online-now-margin-right);
    margin-bottom: 2.5rem /*offset for "online now" h4*/;
    overflow: hidden;
}

aside#online-now-box &gt; h4 {
    padding-left: 1.5rem;
    height: 2.5rem;
    line-height: 2.5rem;
    font-size: 1.1rem;
    font-weight: 600 /*SemiBold*/;
    color: transparent;
    background-image: linear-gradient(to right, var(--color-darksky) 0%, transparent 100%);
    cursor: default;
}

    aside#online-now-box &gt; h4 &gt; SPAN {
        display: none;
    }

    aside#online-now-box[data-online="1"] &gt; h4 &gt; SPAN#online-now-header {
        color: var(--color-nature);
        display: block;
    }

    aside#online-now-box[data-online="0"] &gt; h4 &gt; SPAN#proposals-header {
        color: var(--color-gold);
        display: block;
    }


    ul#online-now-list {
        position: relative;
        z-index: 1;
        height: calc((var(--online-now-square) * var(--online-now-rows)) + (var(--online-now-rows) * var(--online-now-gap)));
        max-width: calc((var(--online-now-square) + var(--online-now-gap)) * 12);
        overflow: hidden;
        display: flex;
        flex-wrap: wrap;
        flex-wrap: wrap-reverse;
        flex-direction: row-reverse;
        justify-content: flex-end;
    }

ul#online-now-list:empty {
    animation: vacillate 3s infinite ease-in-out;
}
/*↕TODO: progress indicator between load and populating; nopic repeating background?*/
@keyframes vacillate {
    from { background-color: var(--color-darksky); }
    50% { background-color: var(--color-airforce); }
    to { background-color: var(--color-darksky); }
}

ul#online-now-list &gt; li {
    width: var(--online-now-square);
    height: var(--online-now-square);
    margin: 0 var(--online-now-gap) var(--online-now-gap) 0;
    cursor: pointer;
}

ul#online-now-list &gt; li.hide-tile {
    display: none;
}

ul#online-now-list &gt; li.swap-to-hidden {
    opacity: 0;
}

ul#online-now-list &gt; li.swap-in-transition {
    position: absolute;
    transition: opacity 1s;
    opacity: 1 !important;
}

ul#online-now-list &gt; li &gt; img {
    width: 100%;
    height: 100%;
}

li#online-now-more {
    text-align: center;
    line-height: var(--online-now-square);
    background-image: linear-gradient(to bottom, var(--color-airforce) 0%, #155EC2 /*special color*/ 100%);
}

li#online-now-more &gt; button {
    padding: .2rem .5rem;
    font-size: 1rem;
    font-weight: 500 /*Medium*/;
    text-transform: capitalize;
    border-radius: .6rem;
}

form#sign-up-in-form {
    position: relative;
    z-index: 1;
    height: 100%;
    border-style: solid;
    border-radius: 1rem;
    border-width: .3rem;
    border-color: transparent;
}

form#sign-up-in-form.gold-framed {
    border-color: var(--color-gold);
    animation-name: goldframe;
    animation-duration: 3s;
    animation-timing-function: ease-out;
    animation-iteration-count: 1;
}

@keyframes goldframe {
    from { border-color: rgba(var(--color-gold-rgb),0.6); }
    4% { border-color: rgba(var(--color-gold-rgb),1.0); }
    64% { border-color: rgba(var(--color-gold-rgb),1.0); }
    to { border-color: rgba(var(--color-gold-rgb),0.0); }
}

fieldset {
    width: var(--fieldset-width);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    background-color: var(--color-darksky);
    color: var(--color-snow);
    overflow: hidden;
}

fieldset:first-of-type {
    margin-bottom: .2rem;
    border-top-left-radius: .8rem;
    border-top-right-radius: .8rem;
}

fieldset:last-of-type {
    border-bottom-left-radius: .8rem;
    border-bottom-right-radius: .8rem;
}

form button.join-us-now {
    width: 100%;
    height: 4rem;
    margin: 1.33rem 1.4rem;
}

label[for="input-nickname"] {
    color: var(--color-rainy);
}

input#input-nickname,
div#password-wrap {
    margin: .2rem 1rem;
}

input#input-nickname,
input#input-password {
    width: 100%;
    padding: .2rem 1rem;
    height: 3rem;
    border-radius: .6rem;
    font-size: 1.2rem;
    background-color: var(--color-rainy);
    transition: background-color 100ms linear;
}

div#password-wrap{
    width:100%;
    height:3rem;
}

input#input-password{
    padding-right:3rem /*2rem #reveal-password width + 2× 0.5rem “a little inside” to both sides*/;
}

button#reveal-password{
    width:2rem;
    height:2rem;
    position:relative;
    top:calc(-1 * (0.2rem /*wrap margin*/ + 0.2rem /*input padding*/ + 1.2rem /*input font-size*/ + 1rem /*half its own height*/));
    left:calc(100% - (1rem /*input padding*/ + 1rem /*half its own width*/ + 0.5rem /*a little inside*/));
    background-color:transparent;
    background-image:url(/img/icon/eye-slash.svg);
    background-repeat:no-repeat;
    background-size:contain;
    background-position:center;
}

button#reveal-password.password-revealed {
    background-image: url(/img/icon/eye-clear.svg);
}

input#input-nickname:hover,
input#input-nickname:focus,
input#input-password:hover,
input#input-password:focus {
    background-color: var(--color-snow);
}

button#login-go {
    flex-basis: 100%;
    margin-top:.5rem;
    padding: .8rem;
    color: var(--color-lightsky);
    background-color: transparent;
    background-image: linear-gradient(to bottom,#03081B 0%,#03081B 40%,#091341 100%) /*TODO: proper gradient colors*/;
    font-size: 1.75rem;
    font-weight: 400 /*Regular*/;
    transition: font-weight 60ms linear;
}

button#login-go:hover {
    font-weight: 600 /*SemiBold*/;
    filter: brightness(111%);
}
button#forgot-password-go{
    display:block;
    margin:1.5rem auto;
    font-size:1rem;
    background-color:transparent;
    color:var(--color-moon);
    transition-duration:.1s;
    transition-timing-function:linear;
    transition-property:color,font-size,font-weight;
}
button#forgot-password-go:hover{
    color:var(--color-lightsky);
}

main::after {
    content: "";
    position: absolute;
    bottom: 0;
    width: 100%;
    height: var(--main-after-height);
    background-color: var(--color-airforce);
    clip-path: polygon(100% 0%, 100% 100%, -5% 100%);
}

aside#about-us-wrap {
    position: relative;
    background-image: linear-gradient(to bottom, var(--color-darksky) 0%, var(--color-darksky) 10%, var(--color-saturn) 90%, var(--color-saturn) 100%);
}

aside#about-us-wrap::before {
    content: "";
    position: absolute;
    width: 100%;
    top: var(--about-us-before-top);
    /*↕INFO: separating wedge gets flattened in narrower versions*/
    height: var(--about-us-before-height);
    background-color: var(--color-darksky);
    clip-path: polygon(100% 0%, 100% 100%, 0% 100%);
}

aside#about-us-wrap {
    background-color: #031E50 /*TODO: proper color*/;
    padding-bottom: var(--about-us-padding-bottom);
}

article {
    width: var(--article-width);
    margin: var(--article-margin);
    display: flex;
    column-gap: 1.5rem;
    color: var(--color-snow);
}

article:nth-of-type(even) {
    flex-direction: var(--article-flex-direction);
}

article:last-of-type {
    margin-bottom: 0;
}

article &gt; div,
article &gt; figure {
    width: var(--article-elements-width);
}

article &gt; figure {
    display: flex;
    align-items: var(--article-figure-align-items);
}

    article &gt; figure &gt; img {
        width: 100%;
    }

article &gt; div &gt; h3 {
    margin-bottom: var(--article-headline-margin-bottom);
    font-size: var(--article-headline-font-size);
    cursor: default;
    color: var(--color-gold);
}

article &gt; div &gt; p {
    cursor: default;
    transition: width 333ms linear;
    font-size: var(--article-paragraph-font-size);
}

footer {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    background-color: var(--color-airforce);
}

footer::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    width: 100%;
    height: 8rem;
    background-color: var(--color-saturn);
    clip-path: polygon(0% 0%, 0% 100%, 100% 0%);
}

footer button.join-us-now {
    position: relative;
    height: 4rem;
}

footer button.join-us-now::before {
    content: "";
    position: absolute;
    top: -1.25rem;
    left: -1.25rem;
    background-color: var(--color-darksky);
    border-radius: 1rem;
    height: calc(100% + 2.5rem);
    width: calc(100% + 2.5rem);
    z-index: -1;
    pointer-events: none;
    transition: background-color 80ms linear;
}

footer button.join-us-now:hover::before {
    background-color: var(--color-airforce);
}

#register {
    position: absolute;
    top: 3rem;
    margin: 0;
    border: 0;
    left: 0;
    width: 100%;
    height: calc(100% - 3rem);
    z-index: 1;
}

body:has(#veil){/*TODO: as of Firefox 118, :has still doesn’t work, while other’s support is satisfying*/
    overflow:hidden; /*prevent scrolling when veil backdrop overlies page*/
}
#veil{
    position:fixed;
    width:100%;
    height:100%;
    top:0;
    right:0;
    bottom:0;
    left:0;
    background-color:rgba(var(--color-darkestsky-rgb),.777);
    z-index:2;
}
#veil-inner-wrap{
    box-sizing:border-box;
    display:flex;
    position:relative;
    top:20%;
    left:50%;
    transform:translate(-50%,-20%);
    width:min-content;
    height:min-content;
    padding:2.5rem/*space for #veil-close*/ .6666rem 1rem;
    background-color:var(--color-space);
    border-radius:1.25rem;/*as in #veil-content h2*/
    box-shadow:0 0 3rem 1rem rgba(var(--color-darkestsky-rgb),.9);
}
#veil-close{
    position:absolute;
    z-index:2;/*to overlap possible heading inside #veil-content*/
    top:1rem;
    right:1rem;
    width:1.5rem;
    height:1.5rem;
    border:none;
    cursor:pointer;
    outline:none;
    background-color:transparent;
    background-image:url(/img/icon/ball-x.svg);
    background-size:contain;
}
#veil-content{
    box-sizing:border-box;
    width:var(--veil-content-width);
    height:var(--veil-content-height);
    color:var(--color-snow);
}
#veil-content[data-which="privacy"],
#veil-content[data-which="imprint"]{
    overflow-y:auto;
    scrollbar-width:thin;
    scrollbar-gutter:stable both-edges;
}
#veil-content[data-which="imprint"] h2,
#veil-content[data-which="privacy"] h1,
#veil-content[data-which="privacy"] h2{
    font-size:1.2rem;
    margin-block-start:1rem;
}
#veil-content[data-which="imprint"] b{
    font-weight:600/*SemiBold*/;
}
#veil-content[data-which="forgot-password"]{
    overflow:visible;/*for h2 to overlap*/
}
#veil-content[data-which="forgot-password"] h2{
    display:flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:3.25rem;
    padding-block:.75rem;
    padding-inline:2rem;
    border-top-left-radius:1.25rem;
    /*as in #veil-inner-wrap*/
    border-top-right-radius:1.25rem;
    background-color:var(--color-bluesky);
    font-size:1rem;
    text-align:center;
    cursor:default;
}
#forgot-password-wrap{
    margin-top:2rem;/*because h2 overlaps absolutely*/
}
#forgot-password-form{
    position:relative;
    display:flex;
    flex-wrap:wrap;
}
#forgot-password-form label{
    flex-basis:100%;
    margin-bottom:.25rem;
    padding-inline-start:1rem;/*have text begin at end of rounded corner*/
}
#forgot-password-input{
    width:100%;
    height:3rem;
    padding:.75rem 1rem;
    font-size:1.25rem;
    border-radius:0.625rem;
    color:var(--color-darksky);
    background-color:var(--color-rainy);
}
#forgot-password-input:focus-visible{
    outline:none;
}
#forgot-password-input::placeholder{
    color:var(--color-stormy);
    font-size:.9rem;
}
#forgot-password-form p{
    flex-basis:100%;
    margin-block:1rem .5rem;
    color:var(--color-cloudy);
    text-align:center;
    cursor:default;
    line-height:1.25rem;
}
#forgot-password-send{
    height:3rem;
    margin-top:.5rem;
    margin-inline:auto;
    padding:.5rem 3rem;
    border-radius:0.625rem;
    font-size:1.25rem;
    font-weight:600/*SemiBold*/;
}
#forgot-password-sent{
    display:none;
    flex-wrap:wrap;
}
#veil-content.forgot-password-sent #forgot-password-form{display:none;}
#veil-content.forgot-password-sent #forgot-password-sent{display:flex;}
#forgot-password-sent p{
    flex-basis:100%;
}
#forgot-password-sent p:first-of-type{
    display:flex;
    align-items:center;
    height:2.75rem;
    margin-top:.75rem;
    margin-inline:auto;
    padding:.35rem .35rem .35rem 1.625rem;
    border-radius:3rem;
    font-size:1.25rem;
    font-weight:500/*Medium*/;
    color:var(--color-airforce);
    background-color:var(--color-nature);
    background-image:url(/img/icon/ball_check_blue_transparent.svg);
    background-repeat:no-repeat;
    background-position:right .35rem center;
    background-size:auto 84%;
    cursor:default;
}
#forgot-password-sent p:last-of-type{
    margin-top:1.5rem;
    text-align:center;
    line-height:1.25rem;
}
@media (max-width:1199px) and (orientation:landscape) {
    #veil-content[data-which="forgot-password"]{
        --veil-content-width:clamp(33vw,50vw,66vw);
    }
    #forgot-password-sent p:first-of-type{
        height:2rem;
    }
}
#forgot-password-form.invalid-input #forgot-password-input{
    padding-right:2.75rem;
    background-image:url(/img/icon/ball_x_red_transparent.svg);
    background-size:2rem 2rem;
    background-repeat:no-repeat;
    background-position:right .5rem center;
}
#forgot-password-form.invalid-input #forgot-password-input-hint{
    opacity:1;
}
#forgot-password-input-hint{
    position:absolute;
    right:-1rem;
    top:-1rem;
    z-index:2;
    max-width:123%;
    border-radius:1.2rem;
    border:0.3rem solid rgba(var(--color-darksky-rgb),0.5);
    line-height:2rem;
    color:var(--color-snow);
    background-color:transparent;
    pointer-events:none;    
    opacity:0;
    transition:opacity 99ms linear;
}
#forgot-password-input-hint &gt; div{
    box-sizing:border-box;
    width:100%;
    height:100%;
    background-color:var(--color-meteor);
    padding:.25rem .5rem;
    border-radius:1rem;
    cursor:default;
}
#forgot-password-input-hint:before,
#forgot-password-input-hint:after{
    content:"";
    position:absolute;
    width:0;
    height:0;
}
#forgot-password-input-hint:before{
    top:100%;
    right:0.7rem;
    border-width:2.3rem 1.5rem 0;
    border-style:solid;
    border-color:rgba(var(--color-darksky-rgb),0.5) transparent;
}
#forgot-password-input-hint:after{
    top:100%;
    right:1rem;
    border-width:2rem 1.2rem 0;
    border-style:solid;
    border-color:var(--color-meteor) transparent;
}

.login-error-hint-shown fieldset,
.too-short-hint-shown fieldset{
    overflow:unset;
}
.login-error-hint-shown #login-go,
.too-short-hint-shown #login-go{
    border-bottom-left-radius:0.8rem;
    border-bottom-right-radius:0.8rem;
}
.login-error-hint-shown #password-wrap,
.too-short-hint-shown #password-wrap{
    position:relative;
}
.login-error-hint-shown #forgot-password-go{
    font-size:1.125rem;
    color:var(--color-jupiter);
    font-weight:600/*SemiBold*/;
    animation-duration:2s;
    animation-iteration-count:infinite;
    animation-name:lightsky-pulse;
}
@keyframes lightsky-pulse{
    from{color:var(--color-jupiter);}
    50%{color:var(--color-lightsky);}
    to{color:var(--color-jupiter);}
}
.login-error-hint-shown #reveal-password,
.too-short-hint-shown #reveal-password{
    visibility:hidden;
}
.login-error-hint-shown:not(.login-error-hint-fading) #input-password,
.too-short-hint-shown:not(.too-short-hint-fading) #input-password{
    background-image:url(/img/icon/ball_x_red_transparent.svg);
    background-repeat:no-repeat;
    background-position:right .3rem center;
}
.login-error-hint-shown #login-error-hint{
    display:block;
}
.login-error-hint-fading #login-error-hint{
    opacity:0;
}
.too-short-hint-shown #too-short-hint{
    display:block;
}
.too-short-hint-fading #too-short-hint{
    opacity:0;
}

.login-hint{
    display:none;
    position:absolute;
    bottom:4rem;
    right:-2rem;
    width:14rem;
    border-radius:1.5rem;
    border:0.3rem solid rgba(var(--color-darksky-rgb),0.5);
    background-color:transparent;
    color:var(--color-snow);
    transition:opacity .2s ease-out;
}
.login-hint &gt; div{
    box-sizing:border-box;
    width:100%;
    height:100%;
    padding:.5rem 1rem;
    border-radius:1.2rem;
    background-color:var(--color-meteor);
    line-height:1.25rem;
}
.login-hint::before,
.login-hint::after{
    content:"";
    position:absolute;
    top:100%;
    width:0;
    height:0;
    border-style:solid;
}
.login-hint::before{
    left:calc(75% - 1.12rem);
    border-width:2.2rem 1.4rem 0;
    border-color:rgba(var(--color-darksky-rgb),0.5) transparent;
    top:calc(100% + 0.29rem);
}
.login-hint::after{
    left:calc(75% - 0.95rem);
    border-width:2rem 1.2rem 0;
    border-color:var(--color-meteor) transparent;
}
#forgot-password-link-in-login-error-hint{
    color: var(--color-sunlight);
}

#profileSwitch {
    width: 100vw;
    height: 100vh;
    position: absolute;
    top: 0;
    left: 0;
    backdrop-filter: blur(1vmax);
    z-index: 5;
    border: 0 none transparent;
}

body.profileSwitch {
    overflow: hidden;
    height: 100%;
}

dialog {
    border: 0 none transparent;
    background-color: var(--color-bluesky);
    border-radius: 1rem;
    color:var(--color-snow);
    width: 80%;
    max-width: 60ch;
    padding: 0;
    font-size: 1rem;
    backdrop-filter: blur(.5rem);
    filter: drop-shadow(var(--color-darkness) 0.5rem 0.5rem 1rem);
}

dialog::backdrop {
    background: rgba(var(--color-darksky-rgb),0.5);
}

    dialog h1, dialog div {
        font-size:1.2rem;
        padding: 0.5rem;
        text-align:center;
    }


    dialog p {
        text-align:center;
        background-color: var(--color-space);
        padding: 0.5rem;
    }

    dialog p span {
        color:var(--color-gold);
    }

    dialog button {
        display: block;
        min-width: 10ch;
        font-size: 1.2rem;
        color: var(--color-airforce);
        box-sizing: border-box;
        margin: .4rem auto;
        padding: .75rem;
        border: unset;
        border-radius: .6rem;
        font-family: inherit;
        font-weight: bold;
        background-image: linear-gradient(to bottom,var(--color-gold) 0%,var(--color-admin) 100%);
        outline:none;
    }

.error-hint {
    position: relative;
    z-index: 1;
    height: 100%;
    border-style: solid;
    border-radius: 1rem;
    border-width: .3rem;
    border-color: var(--color-gold);
    background-color: rgba(var(--color-fire-rgb),0.8);
    color: var(--color-snow);
    padding: 1rem;
    width: var(--fieldset-width);
    display:block;
}

fieldset:has(#registrations-count) {
    margin-bottom: unset;
    padding-block: .5rem;
    cursor: default;
}

fieldset:has(.join-us-now) {
    margin-block: .2rem;
}

#registrations-count {
    position: relative;
    min-width: 8ch;
    color: var(--color-gold);
    font-weight: 600 /*SemiBold*/;
    text-align: center;
}

@media (max-width:768px) {
    fieldset:has(#registrations-count) {
        font-size: .9rem;
    }
}

#registrations-count::before {
    content: "";
    position: absolute;
    left: -1rem;
    display: inline-block;
    height: 100%;
    aspect-ratio: 80/105;
    background-image: url(/img/icon/guy-gold.svg);
    background-size: auto 50%;
    background-position: center;
    background-repeat: no-repeat;
}</pre></body></html>