@import url("/static/spinner.css"); /* Variables */ :root { --red: #cb0b0b; --blue: #2081c3; --transparent-black: #0008; --xl: 4em; --large: 2em; --medium: 1em; } /* Generic styling for elements */ html, body { background: linear-gradient(300deg, var(--red), var(--blue)); background-size: 100vw 100vh; background-attachment: fixed; margin: 0; min-height: 100vh; height: 100vh; font-family: sans-serif; } dialog { background-color: white; border: 0; border-radius: var(--large); opacity: 0; transition: opacity 0.125s ease-out; } dialog::backdrop { backdrop-filter: blur(5px); background-color: var(--transparent-black); transition: background-color 0.125s ease-out; @starting-style { /* This might not work on Firefox because Firefox being behind moment */ background-color: #0000; } } dialog[open] { opacity: 1; @starting-style { /* This might not work on Firefox because Firefox being behind moment */ opacity: 0; } } header { display: flex; justify-content: space-between; } abbr[title] { text-decoration-color: var(--blue); } /* Generic styling properties */ .wrap-balance { text-wrap: balance; } .align-start { text-align: start; } .align-center { text-align: center; } .inline-block { display: inline-block; } .align-content-center { justify-content: center; align-items: center; } .align-self-start { align-self: start; } .flex-vcenter { display: flex; flex-direction: column; justify-content: center; width: 100%; height: 100%; } .flex-hcenter { display: flex; flex-direction: row; justify-content: center; width: 100%; height: 100%; } .flex-row { display: flex; flex-direction: row; } .flex-row-reverse { display: flex; flex-direction: row-reverse; } .flex-column { display: flex; flex-direction: column; } .flex-column-reverse { display: flex; flex-direction: column-reverse; } .flex-vevenly { display: flex; flex-direction: column; justify-content: space-evenly; height: 100%; } .wfit-content { width: fit-content; } .half-width { min-width: 50%; } .half-height { min-height: 50%; } .half-width-max { max-width: 50%; } .full-width { min-width: 100%; } .full-height { min-height: 100%; } .medium-height { height: var(--medium); } .xl-size { width: var(--xl); height: var(--xl); } .xl-size-max { max-width: var(--xl); max-height: var(--xl); } .separator-bottom { border-bottom: solid 1px var(--transparent-black); } .margin-none { margin: 0; } .margin-auto-top { margin-top: auto; } .margin-none-top { margin-top: 0; } .margin-large-bottom { margin-bottom: var(--large); } .margin-none-bottom { margin-bottom: 0; } .square { aspect-ratio: 1; } .absolute-centered { position: absolute; top: 50%; left: 50%; translate: -50% -50%; } /* Specialized elements */ .iconContainer { width: 64px; height: 64px; padding: 1px; border: solid 1px var(--transparent-black); } .icon { position: relative; max-width: 64px; max-height: 64px; margin: auto; top: 50%; left: 50%; translate: -50% -50%; } .logo { height: 4em; } .inlineIcon { vertical-align: text-top; } .buttonPanel>* { margin-top: min(var(--xl), 6vh); } .circlingMembers { position: relative; width: 24em; height: 24em; animation-play-state: running; transition: animation-play-state 1s; } .circlingMembers:hover { animation-play-state: paused; } .member { animation: 8s infinite linear orbit; animation-play-state: inherit; } .member.charlotte { --orbit-translate-x: 8em; } .member.kio { --orbit-translate-x: -8em; } /* Animations */ .pulse-red { animation: 1s ease-in-out 0s infinite alternate both running pulse-red-anim; } @keyframes pulse-red-anim { 0% { box-shadow: 0px 0px 0px var(--red); } 100% { box-shadow: 0px 0px 20px var(--red); } } @keyframes orbit { 0% { transform: rotate(0deg) translateX(var(--orbit-translate-x)) rotate(0deg); } 100% { transform: rotate(360deg) translateX(var(--orbit-translate-x)) rotate(-360deg); } }