
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(../fonts/OpenSans.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--blue: #6961ff;
  --light-blue: #b3adff;
  --red: #ff4042;
  --light-red: #ffcdce;
  --sand: #ebe5db;
	--button-blue: #9297ff;
	--button-light-blue: #cfccff;
	--neon-green: #74fac6;
  --light-gray: #b4b4b4;
  
  --100vh: 100dvh;
	
	--transition: all .3s ease-in-out;
	
	--website-gap-xs: 16px;
	--website-gap-s: 24px;
	--website-gap-m: 32px;
	--website-gap-l: 64px;
	--website-gap-xl: 100px;
	
	--website-padding-top-bottom: var(--website-gap-s);
	--website-padding-right-left: var(--website-gap-s);
	
	--header-height: 65px;
	
	--navigation-padding-right: calc(var(--website-gap-s) - 10px);
	--menu-font-size: 36px;
	
	--home-content-max-width: 1280px;
	--home-heading-font-size: 40px;
	--home-motif-width: 28vh;
	--home-motif-height: var(--home-motif-width);
	
	--main-width: unset;
	--main-height: calc(var(--100vh) - var(--header-height) - var(--footer-padding-top-bottom) * 2 - var(--toggle-controls-pagination-height) - var(--website-gap-xs) - var(--main-button-height));
	
	--main-button-height: 46px;
	
	--logos-width: min(600px, calc(100vw - 2 * var(--website-padding-right-left)));
	--logos-height: 2rem;
	--logos-gap: var(--website-gap-s);
	
	--toggle-controls-pagination-height: 40px;
	--toggle-controls-pagination-button-width: min(350px, 100%);
	
	--step-width: min(600px, calc(100vw - 2 * var(--website-padding-right-left)));
	--step-gap: var(--website-gap-xs);
	
	--format-a3-short: 297;
	--format-a3-long: 420;
	--format-linkedin-short: 396;
	--format-linkedin-long: 1584;
	--format-post-story-short: 1080;
	--format-post-long: 1350;
	--format-story-long: 1920;
	
	--height-ratio-a3-square: 1;
	--height-ratio-a3-landscape: calc(var(--format-a3-short) / var(--format-a3-long));
	--height-ratio-a3-portrait: calc(var(--format-a3-long) / var(--format-a3-short));
	--height-ratio-linkedin-banner: calc(var(--format-linkedin-short) / var(--format-linkedin-long));
	--height-ratio-post-square: 1;
	--height-ratio-post-portrait: calc(var(--format-post-long) / var(--format-post-story-short));
	--height-ratio-story: calc(var(--format-story-long) / var(--format-post-story-short));
	
	--motif-width: calc((var(--step-width) - var(--website-gap-xs)) / 2);
	--motif-height: var(--motif-width);
	
	--stage-container-height: calc(var(--main-height) - var(--toggle-controls-pagination-height) - 2rem - var(--website-gap-xs));
	
	--colors-stage-container-width: calc((var(--step-width) - var(--website-gap-xs)) / 2);
	
	--footer-padding-top-bottom: var(--website-gap-xs);
	--footer-gap: var(--website-gap-xs);
	
	--pagination-1-active-width: calc(var(--toggle-controls-pagination-button-width) * .1793 + 2 * 18px);
	--pagination-2-active-width: calc(var(--toggle-controls-pagination-button-width) * .1413 + 2 * 18px);
	--pagination-3-active-width: calc(var(--toggle-controls-pagination-button-width) * .1074 + 2 * 18px);
	--pagination-4-active-width: calc(var(--toggle-controls-pagination-button-width) * .1394 + 2 * 18px);
  overflow: hidden;
}

* {
  box-sizing: border-box;
}

body {
	width: 100vw;
  height: var(--100vh);
  margin: 0;
	background-color: #fff;
  font-family: "Open Sans";
  font-size: 16px;
	line-height: 1.3;
	color: #000;
  overflow: hidden;
}

a {
	color: inherit;
}

a:hover {
	text-decoration: none;
}

h1 {
  margin: 0;
	font-weight: 900;
	line-height: .85;
	text-transform: uppercase;
}

/* Buttons */

.button {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0;
  border: none;
  outline: none;
	background-color: transparent;
  cursor: pointer;
	color: #000;
	transition: var(--transition);
  font-family: 'Open Sans';
}

.button.disabled,
.button[disabled] {
  opacity: .4;
	cursor: not-allowed;
	transition: var(--transition);
}

.button:is(.main, .minor) {
	height: var(--main-button-height);
	width: var(--toggle-controls-pagination-button-width);
	border: 2px solid var(--button-blue);
	border-radius: 40px;
	font-size: 18px;
	font-weight: 700;
	transition: var(--transition);
}

.button.main {
	background-color: var(--button-blue);
}

.button.minor {
	background-color: transparent;
	color: var(--button-blue);
}

.button.disabled:hover,
.button[disabled]:hover {
	background-color: var(--button-blue);
	color: #000;
	text-decoration: none;
}

.button-icon {
	height: .7em;
	padding-right: .5em;
}

/* Menu */

#navigation {
	height: var(--header-height);
	display: flex;
	justify-content: flex-end;
	align-items: center;
	position: relative;
	padding-right: calc(var(--website-padding-right-left) - 10px);
	background-color: #000;
	color: #fff;
}

#menu-toggle {
	display: flex;
	position: relative;
  z-index: 999;
	cursor: pointer;
}

#menu-toggle > svg {
	transition: .2s;
}

#menu-toggle > svg > g:first-child {
	opacity: 1;
	transition: opacity 0s .2s;
}

#menu-toggle > svg > g:first-child > line {
	transition: transform .2s .2s;
	transform: translateY(0px);
}

#menu-toggle > svg > g:last-child {
	opacity: 0;
	transition: opacity 0s .2s;
}

#menu-toggle > svg > g:last-child > line {
	transition: transform .2s;
	transform: rotate(0deg);
	transform-origin: center;
}

#menu-toggle.menu-open > svg > g:first-child {
	opacity: 0;
}

#menu-toggle.menu-open > svg > g:first-child > line {
	transition: transform .2s;
}

#menu-toggle.menu-open > svg > g:first-child > line:first-child {
	transform: translateY(5px);
}

#menu-toggle.menu-open > svg > g:first-child > line:last-child {
	transform: translateY(-5px);
}
        
#menu-toggle.menu-open > svg > g:last-child {
	opacity: 1;
}

#menu-toggle.menu-open > svg > g:last-child > line {
	transition: transform .2s .2s;
}

#menu-toggle.menu-open > svg > g:last-child > line:first-child {
	transform: rotate(45deg);
}

#menu-toggle.menu-open > svg > g:last-child > line:last-child {
	transform: rotate(-45deg);
}
        
#menu {
	width: 100%;
  height: var(--100vh);
	display: flex;
	flex-direction: column;
	justify-content: center;
  position: absolute;
  top: 0;
	left: 0;
	padding: 0 var(--website-padding-right-left) calc(var(--logos-height) + var(--website-padding-top-bottom));
	opacity: 0;
  background-color: #000;
	z-index: -1;
	transition: opacity .3s;
}

#menu.open {
  z-index: 99;
	opacity: 1;
	transition: opacity .3s;
}

#menu > ul {
	list-style-type: none;
	display: flex;
	flex-direction: column;
	gap: 1.75em;
	margin: 0;
	padding: 0;
	font-size: var(--menu-font-size);
	font-weight: 900;
	text-transform: uppercase;
	color: #fff;
}

#menu > ul > li {
	opacity: 0;
	transform: translateY(100px);
	transition: transform .2s;
}

#menu.open > ul > li {
	opacity: 1;
	transform: translateY(0px);
}

#menu.open > ul > li:nth-child(1) {
	transition: all .3s .4s;
}

#menu.open > ul > li:nth-child(2) {
	transition: all .3s .6s;
}

#menu.open > ul > li:nth-child(3) {
	transition: all .3s .8s;
}

#menu.open > ul > li:nth-child(4) {
	transition: all .3s 1s;
}

#menu > ul > li > a {
	text-decoration: none;
}

#logos {
	width: var(--logos-width);
	height: var(--logos-height);
	display: flex;
	justify-content: space-between;
	position: absolute;
	bottom: var(--website-padding-top-bottom);
	left: var(--website-padding-right-left);
}

.logo {
	flex-shrink: 0;
	height: 100%;
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
}

.logo#gwa {
	width: calc((var(--logos-width) - 3 * var(--logos-gap)) * .22);
	background-image: url(../logos/logo_gwa_w.svg);
}

.logo#mutabor {
	width: calc((var(--logos-width) - 3 * var(--logos-gap)) * .26);
  background-image: url(../logos/logo_mutabor_w.png);
}

.logo#universum {
	width: calc((var(--logos-width) - 3 * var(--logos-gap)) * .26);
  background-image: url(../logos/logo_universum_w.svg);
}

.logo#visualtech {
	width: calc((var(--logos-width) - 3 * var(--logos-gap)) * .26);
	background-image: url(../logos/logo_visualtech_w.svg);
}

#page {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
}

/* Home */

#home {
	width: 100%;
	height: calc(var(--100vh) - var(--header-height));
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 0 var(--website-padding-right-left) var(--website-padding-top-bottom);
	background-color: #000;
	color: #fff;
}

.container.top {
	position: relative;
}

.home-slide {
	position: relative;
	font-size: var(--home-heading-font-size);
}

#home-heading {
  position: relative;
  z-index: 1;
	font-size: inherit;
	-webkit-text-stroke: .01em #000;
}

#home-motif {
	width: var(--home-motif-width);
	height: var(--home-motif-height);
	position: absolute;
	top: calc(5em * .85 - .75rem);
	right: 0;
	transform: rotate(15deg);
}

#home-motif-svg {
  width: 100%;
  height: 100%;
  object-fit: contain;
	opacity: 0;
	scale: 0;
	transition: all .4s cubic-bezier(.56,-0.49,.56,.61);
/* 	animation-name: bounce-out;
	animation-duration: 1s;
	animation-timing-function: cubic-bezier(.47,1.64,.8,1); */
}

#home-motif-svg.active {
	opacity: 1;
	scale: 1;
	transition: all .6s cubic-bezier(.47,1.64,.41,1);
/* 	animation-name: bounce-in;
	animation-duration: 1s;
	animation-timing-function: cubic-bezier(.47,1.64,.41,1); */
}

@keyframes bounce-in {
	0%   { scale: 0; opacity: 0; }
	80%  { scale: 1.1; opacity: .8; }
	100% { scale: 1; opacity: 1; }
}

@keyframes bounce-out {
	0%   { scale: 1; opacity: 1; }
	10%  { scale: 1.1; opacity: .9; }
	100% { scale: 0; opacity: 0; }
}

.container.bottom {
	display: flex;
	flex-direction: column;
	gap: var(--website-gap-s);
	z-index: 9;
}

#introduction {
	max-width: 600px;
}

#introduction-heading {
	padding-bottom: .2em;
	font-size: 1.25rem;
	font-weight: 700;
}

#introduction-paragraph {
	font-size: 1.125rem;
}

/* Terms */

#terms-input {
	display: none;
}

#terms-label {
	display: flex;
	gap: 1rem;
}

#confirm-check {
	flex-shrink: 0;
	width: 1.625rem;
	height: 1.625rem;
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 4px;
	background-color: #fff;
	cursor: pointer;
}

#check-square {
  display: none;
	width: calc(100% - 4px);
	height: calc(100% - 4px);
	justify-content: center;
	align-items: center;
	position: relative;
	background-color: var(--neon-green);
	border-radius: 4px;
	transition: var(--transition);
}

#terms-input:checked + #terms-label #check-square {
  display: flex;
}

#confirm-caption {
	line-height: 1.4;
}

#terms-link:hover {
	text-decoration: underline;
}

/* Generator */

#generator {
  width: 100vw;
  height: 100vh;
  display: flex;
	flex-direction: column;
	position: relative;
}

#header {
	width: 100vw;
	height: var(--header-height);
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: relative;
	padding: 0 var(--website-padding-right-left);
	z-index: 9;
}

#main {
	width: var(--main-width);
	height: var(--main-height);
	padding: 0 var(--website-padding-right-left);
}

.toggle {
	flex-shrink: 0;
	width: var(--toggle-controls-pagination-button-width);
	height: var(--toggle-controls-pagination-height);
	display: flex;
	position: relative;
	border: 1px solid #000;
	border-radius: var(--toggle-controls-pagination-height);
	font-size: 1.125rem;
}

.toggle::before {
	content: '';
	width: 50%;
	height: 100%;
	position: absolute;
	z-index: -1;
	border-radius: var(--toggle-controls-pagination-height);
	background-color: #000;
}

.toggle:is(.print,.light)::before {
	left: 0%;
	transition: var(--transition);
}

.toggle:is(.web,.dark)::before {
	left: 50%;
	transition: var(--transition);
}

.toggle-item {
	width: 50%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	border-radius: var(--toggle-controls-pagination-height);
	overflow: hidden;
	transition: var(--transition);
}

.toggle.print > #toggle-print,
.toggle.web > #toggle-web,
.toggle.light > #toggle-light,
.toggle.dark > #toggle-dark {
	color: #fff;
	transition: var(--transition);
}

.toggle:not(.print) > #toggle-print,
.toggle:not(.web) > #toggle-web,
.toggle:not(.light) > #toggle-light,
.toggle:not(.web) > #toggle-dark {
	cursor: pointer;
}

#loading-screen {
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
	background-color: rgba(255,255,255,.75);
}

#loading-screen.to-generator {
	opacity: 0;
	background-color: #fff;
}

#loading-screen.to-generator.active {
	opacity: 1;
	transition: .3s;
}

#loading-spinner {
	width: 60px;
  height: 60px;
	border-radius: 50%;
	border: 5px solid var(--button-blue);
	border-right-color: var(--button-light-blue);
	animation: rotatespinner 800ms linear infinite;
}

@keyframes rotatespinner {
	to {
		transform: rotate(360deg);
	}
}

#steps {
	height: 100%;
	display: flex;
	justify-content: center;
}

.step {
	width: var(--step-width);
	height: 100%;
  display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--website-gap-m);
	position: relative;
}

/* Formats */

#formats {
	height: 100%;
	padding-bottom: var(--step-gap);
	overflow-y: auto;
}

#formats-print {
  text-align: right;
}

#formats-web {
  text-align: left;
}

.format-options {
	width: var(--step-width);
  gap: var(--step-gap);
}

#formats-print {
  display: flex;
  flex-wrap: wrap;
}

#formats-web {
	display: grid;
	grid-template-columns: auto auto;
}

.format-input {
  display: none;
}

.format-label {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
	position: relative;
  padding: 1rem;
  background-color: var(--sand);
  cursor: pointer;
}

#format-label-a3-square {
	width: calc((var(--step-width) - var(--step-gap)) * var(--format-a3-short) / (var(--format-a3-short) + var(--format-a3-long)));
	height: calc((var(--step-width) - var(--step-gap)) * var(--format-a3-short) / (var(--format-a3-short) + var(--format-a3-long)));
}

#format-label-a3-landscape {
	width: calc((var(--step-width) - var(--step-gap)) * var(--format-a3-long) / (var(--format-a3-short) + var(--format-a3-long)));
	height: calc((var(--step-width) - var(--step-gap)) * var(--format-a3-short) / (var(--format-a3-short) + var(--format-a3-long)));
}

#format-label-a3-portrait {
	width: calc((var(--step-width) - var(--step-gap)) * var(--format-a3-short) / (var(--format-a3-short) + var(--format-a3-long)));
	height: calc((var(--step-width) - var(--step-gap)) * var(--format-a3-long) / (var(--format-a3-short) + var(--format-a3-long)));
}

#format-label-linkedin-banner {
	grid-column: 1/3;
	grid-row: 1/2;
	width: calc((var(--step-width) - var(--step-gap)) * var(--format-linkedin-long) / (var(--format-post-story-short) * 2));
	height: calc((var(--step-width) - var(--step-gap)) * var(--format-linkedin-long) / (var(--format-post-story-short) * 2) * var(--format-linkedin-short) / var(--format-linkedin-long));
}

#format-label-post-square {
	grid-column: 1/2;
	grid-row: 2/3;
	width: calc((var(--step-width) - var(--step-gap)) * var(--format-post-story-short) / (var(--format-post-story-short) * 2));
	height: calc((var(--step-width) - var(--step-gap)) * var(--format-post-story-short) / (var(--format-post-story-short) * 2));;
}

#format-label-story {
	grid-column: 2/3;
	grid-row: 2/4;
	width: calc((var(--step-width) - var(--step-gap)) * var(--format-post-story-short) / (var(--format-post-story-short) * 2));
	height: calc((var(--step-width) - var(--step-gap)) * var(--format-post-story-short) / (var(--format-post-story-short) * 2) * var(--format-story-long) / var(--format-post-story-short));
}

#format-label-post-portrait {
	grid-column: 1/2;
	grid-row: 3/4;
	width: calc((var(--step-width) - var(--step-gap)) * var(--format-post-story-short) / (var(--format-post-story-short) * 2));
	height: calc((var(--step-width) - var(--step-gap)) * var(--format-post-story-short) / (var(--format-post-story-short) * 2) * var(--format-post-long) / var(--format-post-story-short));
}

.check {
	width: 20px;
	height: 20px;
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: .5rem;
	right: .5rem;
	border: 1px solid #000;
	border-radius: 100%;
}

.toggle.dark + #colors .check {
	border-color: #fff;
}

.check-circle {
	width: 15px;
	height: 15px;
	display: none;
	justify-content: center;
	align-items: center;
	position: relative;
	background-color: var(--neon-green);
	border-radius: 100%;
	transition: var(--transition);
}

.format-input:checked + .format-label .check-circle {
  display: flex;
}

.motif-input:checked + .motif-label .check-circle {
  display: flex;
}

.check-icon {
	width: 85%;
	position: absolute;
	top: 9%;
}

/* Motifs */

#motifs {
	height: 100%;
  display: flex;
	justify-content: center;
	gap: var(--step-gap);
	flex-wrap: wrap;
	padding-bottom: var(--step-gap);
	overflow-y: auto;
}

.motif-input {
  display: none;
}

.motif-label {
	flex-shrink: 0;
	width: var(--motif-width);
	height: var(--motif-height);
	position: relative;
	padding: .5rem;
	background-color: var(--sand);
  cursor: pointer;
}

.motif-label > svg {
	width: 100%;
	height: 100%;
}

#motif-input-hug + .motif-label > svg,
#motif-input-peace + .motif-label > svg,
#motif-input-one-world + .motif-label > svg {
	height: calc(100% - .5rem);
	position: absolute;
	right: 0;
}

#motif-input-hands + .motif-label > svg {
	position: absolute;
	top: 0;
	right: 0;
}

#motif-input-hug + .motif-label > svg,
#motif-input-peace + .motif-label > svg,
#motif-input-one-world + .motif-label > svg {
	bottom: 0;
}

/* Texts */

#controls {
	flex-shrink: 0;
  width: var(--toggle-controls-pagination-button-width);
  display: flex;
	gap: var(--website-gap-xs);
}

.control {
	width: calc((var(--toggle-controls-pagination-button-width) - var(--website-gap-xs)) / 2);
  height: var(--toggle-controls-pagination-height);
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 5px;
  border: 1px solid #000;
  border-radius: var(--toggle-controls-pagination-height);
	font-weight: 700;
	perspective: 500px;
}

.control-button {
	width: calc(var(--toggle-controls-pagination-height) - 10px);
	height: calc(var(--toggle-controls-pagination-height) - 10px);
	display: flex;
	cursor: pointer;
	transition: all .3s ease-in-out;
	transform-style: preserve-3d;
}

.control-button > *:is(.front,.back) {
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	border-radius: 100%;
	font-size: 1rem;
	line-height: 1;
	user-select: none;
	backface-visibility: hidden;
}

.control-button.disabled {
	opacity: 1;
	transform: rotateY(180deg);
}

.control-button.disabled:hover {
	background-color: unset;
}

.control-button > .back {
	background-color: #fff;
	transform: rotateY(180deg);
}

.control-button.down > .front {
	background-color: var(--button-light-blue);
}

.control-button.up > .front {
	background-color: var(--button-blue);
}

.control-symbol {
	display: flex;
	align-items: flex-end;
}

.control-symbol > span {
	line-height: 100%;
}

.control.font-size > .control-symbol > :is(span,svg):nth-child(1) {
	height: 11px;
	font-size: .875rem;
}

.control.font-size > .control-symbol > :is(span,svg):nth-child(2) {
	height: 15px;
	font-size: 1.125rem;
}

.control.image-size > .control-symbol > svg {
	height: 19.5px;
}

#texts {
	display: flex;
  width: 100%;
  height: 100%;
}

.stage-container {
	display: flex;
	justify-content: center;
	align-items: center;
}

#preview-stage-container {
  width: 100%;
  height: var(--stage-container-height);
}

.stage {
	flex-shrink: 0;
  caret-color: #000;
  overflow: hidden;
}

#preview-stage {
  background-color: var(--sand);
}

.stage-text:not(.colors-text) {
  cursor: text;
}

.stage-text:not(.colors-text):empty,
.stage-text:not(.colors-text):focus,
.stage-text:not(.colors-text):hover {
	outline: 2px dashed rgba(0,0,0,.5);
  outline: 0;
	background-image: url("data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' stroke='%239297FFFF' stroke-width='8' stroke-dasharray='15%2c 30' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e");
}

/* Colors */

#colors {
  width: 100%;
  max-height: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: var(--step-gap);
	padding-bottom: var(--step-gap);
  overflow-y: auto;
}

.color-input {
	display: none;
}

.colors-stage-container {
	flex-shrink: 0;
  width: var(--colors-stage-container-width);
	position: relative;
	cursor: pointer;
}

.colors-stage-container.format-a3-square {
	height: calc(var(--colors-stage-container-width) * 
	var(--height-ratio-a3-square));
}

.colors-stage-container.format-a3-portrait {
	height: calc(var(--colors-stage-container-width) * 
	var(--height-ratio-a3-portrait));
}

.colors-stage-container.format-a3-landscape {
	height: calc(var(--colors-stage-container-width) * 
	var(--height-ratio-a3-landscape));
}

.colors-stage-container.format-linkedin-banner {
	--colors-stage-container-width: var(--step-width);
	height: calc(var(--colors-stage-container-width) * 
	var(--height-ratio-linkedin-banner));
}

.colors-stage-container.format-post-square {
	height: calc(var(--colors-stage-container-width) * 
	var(--height-ratio-post-square));
}

.colors-stage-container.format-post-portrait {
	height: calc(var(--colors-stage-container-width) * 
	var(--height-ratio-post-portrait));
}

.colors-stage-container.format-story {
	height: calc(var(--colors-stage-container-width) * 
	var(--height-ratio-story));
}

#colors.dark .check {
	border-color: #fff;
}

.color-input:checked + .color-label .check-circle {
  display: flex;
}



/* Footer */

#footer {
	width: calc(100vw + 2px);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--footer-gap);
	position: fixed;
	bottom: 0;
	left: -1px;
	padding: var(--footer-padding-top-bottom) var(--website-padding-right-left);
	background-color: #000;
	border: 1px solid #fff;
	border-bottom: 0;
	border-radius: 24px 24px 0 0;
	transform: translateY(0px);
	transition: .5s ease-out 3s;
}

#footer.loading {
	transform: translateY(150px);
	
}

#pagination {
	width: var(--toggle-controls-pagination-button-width);
	height: var(--toggle-controls-pagination-height);
	display: grid;
	grid-template-columns: repeat(4, auto);
	position: relative;
	border: 1px solid #fff;
	border-radius: var(--toggle-controls-pagination-height);
	color: #fff;
}

#pagination::before {
	content: '';
  width: 100%;
	height: 100%;
	position: absolute;
	background-color: #fff;
	border-radius: var(--toggle-controls-pagination-height);
}

#pagination.active-1::before {
	grid-column: 1/2;
  transition: var(--transition);
}

#pagination.active-2::before {
	grid-column: 2/3;
  transition: var(--transition);
}

#pagination.active-3::before {
	grid-column: 3/4;
  transition: var(--transition);
}

#pagination.active-4::before {
	grid-column: 4/5;
  transition: var(--transition);
}

.step-marker {
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: var(--website-gap-xs);
	position: relative;
	padding: 0 1rem;
  user-select: none;
/* 	overflow: hidden; */
}

.step-marker.active {
	font-weight: 700;
	color: #222;
}

.step-marker.completed {
	font-weight: 700;
}

.step-marker.upcoming {
	color: var(--light-gray);
}

.step-marker:not(.active, .disabled) {
	cursor: pointer;
}

.step-key {
	width: 34px;
	height: 34px;
	display: none;
	justify-content: center;
	align-items: center;
	border: 1px solid #fff;
	border-radius: 100%;
}


/* Termination */

#termination {
	width: 100%;
	height: calc(var(--100vh) - var(--header-height) + var(--website-gap-xs));
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	margin-top: calc(var(--website-gap-xs) * -1);
	padding: 0 var(--website-padding-right-left) var(--website-padding-top-bottom);
	background-color: #000;
	color: #fff;
}

#termination > .container.top {
	display: flex;
	flex-direction: column;
	gap: var(--website-gap-s);
	font-size: 1.125rem;
	line-height: 1.4;
}

#termination-heading {
	font-size: 40px;
}

#external-links {
	display: flex;
	flex-direction: column;
	gap: var(--website-gap-xs);
	font-size: 1.125rem;
	color: var(--neon-green);
}

.external-link {
	width: fit-content;
	padding: calc(var(--website-gap-xs) / 2) var(--website-gap-xs);
	border: 1px solid var(--neon-green);
	border-radius: 40px;
	text-decoration: none;
}

#termination > .container.bottom {
	gap: var(--website-gap-xs);
}

/* Sub-Page */

#sub-page {
	width: 100%;
  height: calc(var(--100vh) - var(--header-height));
  display: flex;
  flex-direction: column;
	position: relative;
  padding: 0 var(--website-padding-right-left) var(--website-padding-top-bottom);
  background-color: #000;
  color: #fff;
}

#sub-page h1 {
  font-size: 2.75rem;
}

#sub-page p {
	overflow-y: auto;
  font-size: 1.125rem;
	line-height: 1.4;
}

#sub-page.imprint,
#sub-page.data-protection,
#sub-page.terms {
  display: block;
  overflow: auto;
}


/* Media Queries */

@media screen and (min-width: 801px) {
  :root {
    --website-padding-right-left: max(calc((100vw - var(--home-content-max-width)) / 2), var(--website-gap-l));
    --website-padding-top-bottom: var(--website-gap-m);
    --home-heading-font-size: 80px;
    --home-motif-width: 40vh;
  }
  #menu-toggle {
    position: absolute;
    top: calc(100% - 10px);
  }
  #home-motif {
    top: calc(4em * .85 * .7);
  }
}

@media screen and (min-width: 1281px) {
  :root {
    --website-padding-right-left: max(calc((100vw - var(--home-content-max-width)) / 2), var(--website-gap-xl));
    --website-padding-top-bottom: var(--website-gap-l);
    --header-height: var(--website-gap-l);
    --header-footer-padding-left: 184px;
    --menu-font-size: 42px;
    --logos-width: 840px;
    --logos-height: 45px;
    --logos-gap: var(--website-gap-l);
    --home-heading-font-size: 110px;
    --home-motif-width: min(500px, 30vw);
    --main-height: calc(var(--100vh) - var(--header-height));
    --main-width: calc(100vw - var(--footer-width));
    --step-width: min(1080px, calc(var(--main-width) - 2 * var(--website-gap-l)));
    --motif-width: calc((var(--step-width) - 3 * var(--website-gap-xs)) / 4);
    --stage-container-height: calc(var(--main-height) - var(--toggle-controls-pagination-height) - var(--website-gap-m) - var(--website-gap-l));
    --colors-stage-container-width: calc((var(--step-width) - 3 * var(--website-gap-xs)) / 4);
    --footer-width: 500px;
    --footer-padding-top-bottom: var(--website-gap-l);
  }
  *::-webkit-scrollbar {
    scrollbar-width: none;
  }
  a {
    text-decoration: none;
  }
  [class="button"] {
    color: #fff;
  }
  .button.main:not(.disabled,[disabled]):hover {
    background-color: transparent;
    color: var(--button-blue);
    text-decoration: none;
  }
  .button:is(.main, .minor) {
    width: fit-content;
    min-width: 230px;
    padding: 0 2rem;
  }
  #header {
    padding-left: var(--header-footer-padding-left);
  }
  #exit-generator {
    position: absolute;
    top: 100%;
  }
  #home-motif {
    top: calc(4em * .85 * .7);
  }
  #generator {
    align-items: flex-end;
  }
  #main {
    padding: 0 calc((var(--main-width) - var(--step-width)) / 2) var(--website-gap-l);
  }
  #formats,
  #motifs,
  #colors {
    padding-bottom: 0;
  }
  #motifs,
  #colors {
    align-content: flex-start;
  }
  #footer {
    width: var(--footer-width);
    height: 100%;
    justify-content: space-between;
    align-items: flex-start;
    left: 0;
    padding: calc(var(--footer-padding-top-bottom) * 2.5) 0 var(--footer-padding-top-bottom) var(--header-footer-padding-left);
    border: 0;
    border-radius: 0;
  }
  #pagination {
    width: unset;
    height: unset;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 84px;
    border: 0;
  }
  #pagination::before {
    display: none;
  }
  .step-marker {
    padding-left: 0;
  }
  .step-marker.active {
    color: #fff;
  }
  .step-marker.completed {
    font-weight: 400;
  }
  .step-marker.upcoming {
    opacity: .5;
    transition: var(--transition);
  }
  .step-key {
    display: flex;
    transition: var(--transition);
  }
  .step-marker.active > .step-key {
    background-color: #fff;
    color: #000;
    transition: var(--transition);
  }
  *:not(#step-marker-1) > .step-key::before {
    content: '';
    width: 1px;
    height: 80px;
    position: absolute;
    bottom: calc(100% + 2px);
    background-color: var(--light-gray);
  }
  .step-marker:is(.active, .completed) > .step-key::before {
    background-color: #fff;
  }
  #termination {
    height: calc(var(--100vh) - var(--header-height));
    margin-top: 0;
  }
  #termination-paragraph {
    max-width: 600px;
  }
  #termination > .container.bottom {
    flex-direction: row-reverse;
    justify-content: flex-end;
    gap: var(--website-gap-m);
  }
}









