:root { --color-bg: #21252b; --color-bg-light: #2c313a; --color-white: #c5cad3; --color-gray-light: #acb0b9; --color-gray: #828997; --color-gray-dark: #5c6370; --color-gray-dark-dark: #454b54; --color-red: #e06c75; --color-red-light: #e9969d; --color-red-dark: #cb4d58; --color-orange: #d19a66; --color-orange-light: #ddb48d; --color-orange-dark: #b9804b; --color-yellow: #dace71; --color-yellow-light: #e5dc9a; --color-yellow-dark: #c4b754; --color-green: #98c379; --color-green-light: #b3d39c; --color-green-dark: #7fa762; --color-cyan: #71d6bc; --color-cyan-light: #98e1cf; --color-cyan-dark: #55bea4; --color-blue: #61afef; --color-blue-light: #90c7f4; --color-blue-dark: #3e97e0; --color-purple: #c678dd; --color-purple-light: #d7a1e8; --color-purple-dark: #af5bc8; } * { box-sizing: border-box; } html, body { margin: 0; padding: 0; overflow-x: hidden; color: var(--color-white); background-color: var(--color-bg); } html { font-size: 16px; } @media only screen and (max-width: 1000px) { html { font-size: 14px; } } body { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 0; font-family: "Ubuntu", sans-serif; } span { display: block; font-size: 1rem; } a { text-decoration: none; } span a { color: var(--theme); } span a:hover { text-decoration: underline; cursor: pointer; } span.gray a { color: var(--color-gray); text-decoration: underline; text-decoration-style: dotted; } span.gray a:hover { text-decoration-style: solid; } button { all: unset; } button:focus { outline: revert; } .link { color: var(--theme); } .link:hover { cursor: pointer; text-decoration: underline; } span.inline { display: inline; } span.align-left { text-align: left; } .colored { color: var(--theme); } .gray { color: var(--color-gray); } .white { color: var(--color-white); } .hidden { visibility: hidden !important; } .gone { display: none !important; } .select-none { -webkit-user-select: none; -ms-user-select: none; user-select: none; } /* PAGE LAYOUT */ .page-container { flex-grow: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; } .page-container.full-page { width: 100%; } .page { max-width: 50vw; padding: 6rem 2rem; display: flex; flex-direction: column; gap: 6rem; text-align: center; } .page-container.full-page .page { width: 100%; } @media only screen and (max-width: 1600px) { .page { max-width: 70vw; } } @media only screen and (max-width: 1300px) { .page { max-width: 80vw; } } @media only screen and (max-width: 1000px) { .page { max-width: 100vw; padding: 6rem 1rem; } } /* PAGE TITLE */ .page > .title { display: flex; flex-direction: column; gap: 1rem; margin: 2rem 0; } @media only screen and (max-width: 1000px) { .page > .title { margin: 0 0; } } .page > .title h1, .page > .title h2 { align-self: center; margin: 0; } .page > .title h1 { font-size: 3rem; background-image: linear-gradient(to right, var(--color-red), var(--color-orange), var(--color-yellow), var(--color-green), var(--color-blue), var(--color-purple)); -webkit-background-clip: text; color: transparent; } .page > .title h2 { font-size: 1.5rem; } /* SECTIONS */ .section { display: flex; flex-direction: column; width: 100%; } .section > .header { align-self: flex-start; position: relative; padding-right: 0.5rem; display: inline-flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 0.5rem; color: var(--theme); } .section > .header .extra { color: var(--color-gray); } .section > .content { display: flex; flex-direction: column; gap: 2rem; padding: 1rem 2rem; } .section > .content.rows { flex-direction: row; flex-wrap: wrap; align-items: flex-start; justify-content: center; } .section > .content.full-page { width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; } /* BOX */ .box { display: flex; flex-direction: column; align-items: center; gap: 1rem; padding: 2rem; border-radius: 2rem; background-color: var(--color-bg-light); } .box.align-left { align-items: flex-start; } .box.shrink { display: inline-flex; } .box.important { border: 0.5rem solid var(--theme); } .box.danger { border: 0.5rem solid var(--color-red); } .box.danger * { --theme: var(--color-red); --theme-light: var(--color-red-light); --theme-dark: var(--color-red-dark); } a.box:hover { background-color: var(--color-gray-dark-dark); } .box .title, .box .extra { display: inline-flex; flex-direction: row; justify-content: center; align-items: baseline; gap: 0.5rem; } .box .title { position: relative; left: -0.5rem; padding-left: 0.5rem; color: var(--theme); font-size: 1.5rem; } .box .extra { color: var(--color-gray); } /* TIMELINE */ .timeline { display: flex; flex-direction: column; } .timeline > .item { display: flex; flex-direction: row; align-items: center; gap: 1rem; } .timeline > .item > .connector { align-self: stretch; position: relative; display: flex; flex-direction: column; justify-content: center; } .timeline > .item:not(:first-child) > .connector::before, .timeline > .item:not(:last-child) > .connector::after { content: ""; position: absolute; left: calc(50% - 0.25rem); width: 0.5rem; height: calc(50% + 0.5rem); border-radius: 0.5rem; background-color: var(--color-bg-light); z-index: 0; } .timeline > .item > .connector::before { top: 0; } .timeline > .item.done > .connector::before { background-color: var(--theme); } .timeline > .item.next > .connector::before { background-color: var(--theme); } .timeline > .item > .connector::after { top: 50%; z-index: 1 !important; } .timeline > .item.done > .connector::after { background-color: var(--theme); } .timeline > .item > .connector > .waypoint { padding: 1rem; font-size: 1.5rem; border-radius: 50%; background-color: var(--color-bg-light); z-index: 2; } .timeline > .item.done > .connector > .waypoint { color: var(--color-bg); background-color: var(--theme); } .timeline > .item.next > .connector > .waypoint { background-color: var(--color-gray-dark); } .timeline > .item > .box { flex-grow: 1; align-items: flex-start; margin: 1rem 0; z-index: 2; text-align: left; } .timeline > .item:first-child > .box { margin: 0 0 1rem 0; } .timeline > .item:last-child > .box { margin: 1rem 0 0 0; } @media only screen and (max-width: 1000px) { .timeline > .item { position: relative; flex-direction: column; gap: 0; } .timeline > .item > .connector { align-self: center; } .timeline > .item:not(:last-child)::after { content: ""; position: absolute; left: calc(50% - 0.25rem); top: 1rem; width: 0.5rem; height: 100%; background-color: var(--color-bg-light); z-index: 0; } .timeline > .item.done::after { background-color: var(--theme); } .timeline > .item.done-stop::after { background-color: var(--theme); } .timeline > .item:not(:last-child) > .box { margin: 0 0 4rem 0; } .timeline > .item:last-child > .box { margin: 0; } .timeline > .item > .connector > .waypoint { border-radius: 50% 50% 0 0; } .timeline > .item > .box { align-items: center; text-align: center; } .timeline > .item > .box { outline: 0.125rem solid var(--color-bg-light); } .timeline > .item.done > .box { outline: 0.125rem solid var(--theme); } .timeline > .item.next > .box { outline: 0.125rem solid var(--color-gray-dark); } } /* BUTTONS */ .button-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; } .button-list.align-left { justify-content: flex-start; } .button, .button.disabled:hover { align-items: center; display: inline-flex; gap: 0.5rem; width: fit-content; padding: 1rem 1.5rem; color: var(--color-white); border-radius: 1rem; background-color: var(--color-gray-dark-dark); -webkit-user-select: none; -ms-user-select: none; user-select: none; } .button.on-bg { background-color: var(--color-bg-light); } .button:hover { cursor: pointer; background-color: var(--color-gray-dark); } .button.on-bg:hover { background-color: var(--color-gray-dark-dark); } .button.disabled { opacity: 0.3; } .button.disabled:hover { cursor: not-allowed; } .button.primary, .button.primary.disabled:hover { color: var(--color-bg); background-color: var(--theme); } .button.primary:hover { background-color: var(--theme-dark); } .button .icon.big { font-size: 2rem; } .button .text { display: inline-flex; flex-flow: column; align-items: flex-start; } /* SECTION: NEWS */ .section > .content.rows > #newsletter, .section > .content.rows > #social-media { align-items: flex-start; } .section > .content.rows > #newsletter { flex-basis: 22rem; flex-grow: 64; } .section > .content.rows > #social-media { flex-basis: 16rem; flex-grow: 1; flex-shrink: 1; } .form-container { position: relative; width: 100%; } .form { display: flex; flex-direction: column; flex-wrap: nowrap; gap: 1rem; } #newsletter-signup-form-mail-address { min-width: 18rem; } @media only screen and (max-width: 1000px) { #newsletter-signup-form-mail-address { min-width: 14rem; } } .form-feedback { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex; flex-direction: column; flex-wrap: nowrap; justify-content: center; } .form-feedback .centertext { display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: center; align-items: center; gap: 0.5rem; } .form-feedback-wait { color: var(--color-blue); } .form-feedback-success { color: var(--color-green); } .form-feedback-failure { color: var(--color-red); } /* SECTION: RECOMMENDATIONS */ .card-list { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-evenly; align-items: stretch; gap: 1rem; } .card-list .card { flex-basis: calc(50% - 0.5rem); flex-grow: 1; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 1rem; max-width: 32rem; padding: 1rem; border-radius: 2rem; background-color: var(--color-bg-light); } .card-list .card img { align-self: center; width: 4rem; } .card-list .card .text { align-self: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 0.5rem; text-align: left; } .card-list .card .text .title { color: var(--color-white); font-weight: bold; } .card-list .card:hover .text .title { text-decoration: underline; } .card-list .card .text .description { color: var(--color-gray); } /* COPYLINKS */ .copylink { position: absolute; padding: 0.5rem; font-size: 1rem; color: #0000; } .title .copylink { left: -1.3rem; padding-right: 0.2rem; } .header .copylink { right: -1.3rem; padding-left: 0.2rem; } *:hover > .copylink { color: var(--color-gray); } .copylink:hover, .copylink:focus-visible { color: var(--color-white); cursor: pointer; } .copylink.feedback-negative, .copylink.feedback-positive { opacity: 0; transition: opacity 1s 1.5s linear; } .copylink.feedback-negative { color: var(--color-red); } .copylink.feedback-positive { color: var(--color-green); } /* FORM ELEMENTS */ .key-value-pair { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: stretch; } .key-value-pair .key { display: flex; align-items: center; padding: 1rem; border-top-left-radius: 1rem; border-bottom-left-radius: 1rem; background-color: var(--theme); color: var(--color-bg); } .key-value-pair .value-list { flex-grow: 1; display: flex; flex-direction: column; flex-wrap: nowrap; align-items: flex-start; gap: 0.5rem; } .key-value-pair .value { flex-grow: 1; display: flex; flex-direction: column; flex-wrap: nowrap; align-items: flex-start; gap: 0.5rem; padding: 1rem; border-top-right-radius: 1rem; border-bottom-right-radius: 1rem; background-color: var(--color-gray-dark-dark); } .inputwrapper { position: relative; width: 100%; } .inputwrapper.valid input, .inputwrapper.invalid input { padding-right: 2.5rem; } .inputwrapper.valid::after, .inputwrapper.invalid::after { position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); display: block; font-size: 1rem; font-family: "tabler-icons" !important; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .inputwrapper.valid::after { content: "\ea5e"; color: var(--color-green); } .inputwrapper.invalid::after { content: "\eb55"; color: var(--color-red); } input { width: 100%; outline: none; border: none; margin: 0; font-family: inherit; font-size: 1rem; color: var(--color-white); background: none; } input::placeholder { color: var(--color-gray-light); } .value.switch { flex-direction: row; gap: 0; padding: 0; background: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; } .switch .option { padding: 1rem; background-color: var(--color-gray-dark-dark); } .switch .option:last-child { border-top-right-radius: 1rem; border-bottom-right-radius: 1rem; } .switch .option:hover { background-color: var(--color-gray-dark); cursor: pointer; } .switch .option.selected { background-color: var(--theme-dark); color: var(--color-bg); } /* FOOTER */ .footer { width: 100%; display: flex; flex-direction: row; justify-content: space-between; flex-wrap: wrap; gap: 1rem; padding: 1rem; background-color: var(--color-bg-light); } .footer > div { flex-grow: 1; flex-shrink: 1; flex-basis: 0px; display: flex; flex-direction: row; align-items: center; justify-content: center; gap: 0.5rem; text-align: center; } @media only screen and (max-width: 1000px) { .footer > div { flex-basis: 100%; justify-content: center !important; } } .footer > div a { font-size: 1rem; color: var(--theme); } .footer > div a:hover { text-decoration: underline; } .footer .delimiter { color: var(--color-gray); } .footer .brand { justify-content: flex-start; } .footer .legal { justify-content: flex-end; } .footer .brand img { height: 2rem; } .footer .brand .version { color: var(--color-gray); } .footer .lang .selected { font-weight: bold; color: inherit; } /* ANIMATION KIT */ .form-feedback .spinning { animation-name: spinning; animation-duration: 0.5s; animation-iteration-count: infinite; animation-timing-function: linear; } @keyframes spinning { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }