/* RESET */

/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Remove default padding */
ul[class],
ol[class] {
  padding: 0;
}

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
ul[class],
ol[class],
li,
figure,
figcaption,
blockquote,
dl,
dd {
  margin: 0;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  scroll-behavior: smooth;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

/* Remove list styles on ul, ol elements with a class attribute */
ul[class],
ol[class] {
  list-style: none;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img {
  max-width: 100%;
  display: block;
}

/* Natural flow and rhythm in articles by default */
article > * + * {
  margin-top: 1em;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

/* Remove all animations and transitions for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* CUSTOM STYLES - DEFAULT FOR EXTRA LARGE SCREEN */

:root {
	--heading-font: 'Share Tech', sans-serif;
	--body-font: 'Montserrat', sans-serif;
	--c-background: #041836;
	--c-font: #ffffff;
	--c-label-font: #f1c97a;
	--c-light-background: #f1c97a;
	--side-margins: 16.6em;
	--m-side-margins: 8em;
	--dark-font: #041836;
}

html {
	font-size: 10px;
	width: 100%;
}

body {
	background-color: var(--c-background);
}

section, header, footer {
	padding: 0 var(--side-margins);
}

section {
	overflow-x: clip;
}

.v-spaced {
	padding-top: 10em;
	padding-bottom: 10em;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--c-font);
}

h1, h2, h3, h4, h5 {
    text-transform: uppercase;
}

h1, h2, h3 {
	font-family: var(--heading-font);
	font-size: 6.4em;
	line-height: 120%;
	letter-spacing: 0.02em;
}

h1 {
	margin-bottom: 0.4em;
}

h2 {
	text-align: center;
    font-weight: normal;
    font-size: 5em;
    letter-spacing: 0.2em;
    margin: 2.5em 0 2em;
}

h2.dark, h3.dark, h4.dark {
    background-color: white;
    color: var(--dark-font);
    margin: 0;
    padding-top: 2.5em;
}

h3 {
	font-size: 3.5em;
	font-weight: normal;
	letter-spacing: 0;
}

h4.secondary {
    margin-bottom: -5em;
    letter-spacing: 0.1em;
}

h5, h6 {
    font-family: var(--body-font);
    letter-spacing: 0.05em;
    margin-top: 0.4em;
	margin-bottom: 0.4em;
}

h5 {
	position: relative;
	font-size: 2.4em;
}

h6 {
    font-size: 2em;
    font-style: italic;
}

p, a, label, input, textarea, li {
	font-family: var(--body-font);
	color: var(--c-font);
	line-height: 130%;
}

p, label, input, textarea {
	font-size: 2em;
}

li {
    font-size: 1.7em;
}

a {
	font-size: 1.5em;
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

label {
	color: var(--c-label-font);
}

input, textarea {
	border: none;
	border-bottom: 1px solid white;
	background: transparent;
	text-align: center;
	margin: 1em 0;
	width: 30em;
}
input:focus, textarea:focus {
	outline: none;
	background: rgba(255, 255, 255, 0.2);
}

textarea {
	text-align: left;
}

button {
	padding: 1em 3em;
	background-color: var(--c-light-background);
	color: var(--c-background);
	border-radius: 3em;
	font-size: 2em;
	font-family: var(--heading-font);
	cursor: pointer;
}

header {
	position: fixed;
	width: 100%;
	height: 10em;
	background-color: var(--c-background);
	z-index: 100;
}

/* LAYOUT */

.left-centre-right {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	grid-template-rows: 100%;
	grid-column-gap: 2em;
	align-items: center;
}

.left-item {
	justify-self: start;
}

.right-item {
	justify-self: end;
}

.align-items-bottom {
	align-items:end;
}

.flex-space-between {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.two-across-40-60 {
	display: grid;
	grid-template-columns: 37% 57%;
	grid-template-rows: auto;
	grid-column-gap: 6%;
	align-items: center;
}

.two-across-40-60.small-gap {
    grid-template-columns: 39% 59%;
	grid-column-gap: 2%;
}

.two-across-50-50 {
	display: grid;
	grid-template-columns: calc(50% - 4em) calc(50% - 4em);
	grid-template-rows: auto;
	grid-column-gap: 8em;
	grid-row-gap: 8em;
	align-items: center;
}

.two-across-50-50.equal-blocks {
    align-items: stretch;
}

.two-across-60-40 {
	display: grid;
	grid-template-columns: 57% 37%;
	grid-template-rows: auto;
	grid-column-gap: 6%;
	align-items: center;
}

.three-across {
	display: grid;
	grid-template-columns: 30% 30% 30%;
	grid-template-rows: auto;
	grid-column-gap: 5%;
}

.vertical-block {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}

.flex-centred {
	align-items: center;
}

.justify-end {
	justify-content: end;
}

.wrapped-blocks {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}

.wrapped-blocks-white {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	background-color: white;
}

.flex-2-across > * {
	width: 40%;
	margin: 5%;
}

.text-block p {
    margin-bottom: 1em;
}

/* GENERAL */

.glass {
    padding: 0 2em 4em;
    background: rgba(255, 255, 255, 0.19);
    border-radius: 16px;
    box-shadow: 0 4px 30px rgb(0 0 0 / 10%);
    backdrop-filter: blur(5.5px);
    -webkit-backdrop-filter: blur(5.5px);
    border: 1px solid rgba(255, 255, 255, 0.64);
}


/* SECTION CUSTOMISATION */

header a {
	text-transform: uppercase;
	margin-left: 4em;
}

header a:first-child {
	margin-left: 0;
}

main h4 {
	font-family: var(--body-font);
    color: var(--c-font);
    font-size: 2em;
    text-transform: uppercase;
    text-align: center;
    letter-spacing: 4;
    font-weight: bold;
    margin-top: 5em;
    margin-bottom: 3em;
}

.top-spacer {
	height: 17em;
}

section.chains {
	padding: 4em;
}

section.chains img {
	height: 4.5em;
	margin: 2em 3em;
}

.section-divider {
	margin: 8em var(--side-margins) 0;
	border: 2px solid white;
}

section.user-groups {
	padding-bottom: 10em;
}

section.user-groups .user-group {
	margin: 0;
}

section.user-groups .vertical-block {
    min-height: 21em;
}

section.user-groups h3 {
	text-align: center;
	margin-bottom: 1.5em;
	margin-top: 1.5em;
	font-family: var(--body-font);
	font-weight: bold;
	letter-spacing: 0.3em;
	font-size: 3em;
}
section.user-groups h3 em {
	font-style: normal;
    font-size: 4em;
    line-height: 1em;
    text-transform: none;
	font-family: var(--heading-font);
	font-weight: normal;
	letter-spacing: 0.05em;
}

section.user-groups h5 div {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: -1;
}
section.user-groups img.main {
	height: 4em;
	opacity: 0.75;
}
section.user-groups p {
	font-size: 1.8em;
	text-align: center;
}
section.user-groups .flare-pos-1 {
	width: 30%;
	height: 43em;
	top: 5%;
	left: 50%;
}
section.user-groups .flare-pos-2 {
	width: 25%;
    height: 40em;
    top: 59%;
    left: 16%;
}

section.screenshots {
	background-color: white;
}
section.screenshots > div {
	margin-bottom: 5em;
}
section.screenshots > div:last-child {
	margin-bottom: 0;
}

section.screenshots h3,
section.screenshots p {
	color: var(--dark-font);
}
section.screenshots h3 {
	margin-bottom: 0.5em;
}
section.screenshots img {
	position: relative;
}

section.innovate h4 {
	margin-bottom: 0em;
	font-size: 3em;
}
section.innovate h2 {
	font-size: 8em;
	margin-top: 0;
	margin-bottom: 0.5em;
	letter-spacing: 0.05em;
}
section.innovate img {
	margin: 0 auto;
	width: 100%;
	max-width: 90em;
}
section.innovate p {
	text-align: center;
	margin: 0 auto;
	width: 100%;
	max-width: 54em;
}

section.sign-up {
	margin-bottom: 12em;
}
section.sign-up h4 {
	font-size: 4em;
    margin-top: 0;
    margin-bottom: 1em;
}
section.sign-up form {
	text-align: center;
}
section.sign-up input {
	border: none;
	border-bottom: 1px solid white;
}
section.sign-up label {
	color: var(--c-label-font);
}
section.sign-up button {
	margin-top: 2em;
}

footer {
	background-color: #000;
}

footer a {
	text-transform: uppercase;
	margin-top: 0.1em;
}

/* EFFECTS */

.flare-container {
	position: relative;
}

.flare-effect {
	position: absolute;
	z-index: -1;
}

.flare-orange {
	background: linear-gradient(270deg, #F1C97A 0%, #F1AD86 100%);
	filter: blur(16em);
	left: 20%;
	padding-top: 125%;
	width: 100%;
}

.flare-blue {
	background: linear-gradient(270deg, #34236E 0%, #63C1C9 100%);
	filter: blur(16em);
	padding-top: 70%;
	width: 120%;
	left: -10%;
	top: 5%
}

.flare-blue-round {
	background: radial-gradient(#447f9d 0%, var(--c-background) 100%);
	filter: blur(16em);
}

.flare-pink {
	background: linear-gradient(270deg, rgba(127, 46, 138, 0.3) 0%, rgba(211, 78, 91, 0.3) 49%, rgba(224, 119, 58, 0.3) 100%);
	filter: blur(7em);
	height: 100%;
	width: 100%;
	z-index: 0;
}

/* SPECIFIC ITEM RULES */

.top-logo {
	position: relative;
	top: 0.15em;
	height: 80%;
}

.topic-icon {
	width: 30%;
	position: relative;
}
.topic-icon .shadow {
	position: absolute;
	left: -4px;
	top: 3px;
	z-index: -1;
}
.topic-icon .main {
	width: 100%;
}

.bottom-logo {
	width: 24em;
}

.bottom-logo img {
	position: relative;
	top: -0.15em;
	height: 7em;
}

.footer-logo {
    margin-left: -1.7em;
    display: inline-block;
    height: 1.3em;
    margin-right: 0.3em;
    position: relative;
    top: 0.2em;
}

/* TYPE EFFECT */

.text-2xl {
	font-family: 'Courier New', Courier, monospace;
	font-size: 3em;
	font-weight: bold;
}

.text-m {
	font-family: 'Courier New', Courier, monospace;
	font-size: 1.5em;
	font-weight: bold;
}

.-rs-anim {
    background: black;
    color: white;
    padding: 3em;
}

.-type-effect {
	overflow: hidden;
	width: 2ch;
	white-space: nowrap;
	display: inline-block;
}

.-rs-anim .-type-effect {
	animation: typer-18 3s steps(24, end) forwards;
}

.-rs-anim .-type-cursor {
	animation: hide 10ms 3000ms forwards;
	position: relative;
    top: -0.45em
}

.-term-line {
	opacity: 0;
}

.-rs-anim .-term-line {
	animation: show 200ms forwards;
}

.-rs-anim .-term-line:nth-child(1) {
	animation-delay: 3000ms
}
.-rs-anim .-term-line:nth-child(2) {
	animation-delay: 3250ms;
}
.-rs-anim .-term-line:nth-child(3) {
	animation-delay: 3500ms;
}
.-rs-anim .-term-line:nth-child(4) {
	animation-delay: 3750ms;
}
.-rs-anim .-term-line:nth-child(5) {
	animation-delay: 4000ms;
}
.-rs-anim .-term-line:nth-child(6) {
	animation-delay: 4250ms;
}
.-rs-anim .-term-line:nth-child(7) {
	animation-delay: 4500ms;
}
.-rs-anim .-term-line:nth-child(8) {
	animation-delay: 4750ms;
}
.-rs-anim .-term-line:nth-child(9) {
	animation-delay: 5000ms;
}
.-rs-anim .-term-line:nth-child(10) {
	animation-delay: 5250ms;
}


@keyframes typer-18 {
	from { width: 2ch; }
	to { width: 26ch; }
}

@keyframes show {
	from { opacity: 0 }
	to { opacity: 1 }
}

@keyframes hide {
	from { opacity: 1 }
	to { opacity: 0 }
}

/* USE CASES SPECIFIC */

.use-cases h2 {
    margin-top: 1em;
}

.use-cases h3 {
    margin-bottom: 1em;
}

.case-category {
    margin-bottom: 6em;
    padding: 3em;
    row-gap: 3em;
    grid-template-columns: calc(33.3% - 2em) calc(33.3% - 2em) calc(33.3% - 2em);
    column-gap: 3em;
}

.use-case {
    border: 1px solid rgba(255,255,255,0.64);
    border-radius: 1em;
    padding: 1.5em;
    background-color: rgba(255,255,255,0.07);
}

.use-case h5 {
    margin-top: 0;
}

.use-case button {
    background-color: transparent;
    padding: 0;
    border: none;
}
.use-case button img {
    display: inline-block;
    vertical-align: middle;
    margin-right: 0.5em;
    position: relative;
    top: -2px;
}
.use-case button h6 {
    font-size: 1em;
}

#use-case-demo {
    display: none;
}
#use-case-demo[open] {
    position: fixed;
    z-index: 100;
    top: 0;
    left: 0;
    height: 100vh;
    width: 100vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-color: rgba(0, 0, 0, 0.9);
    border: none;
    padding: 0;
    margin: 0;
    max-width: none;
    max-height: none;
}
#use-case-demo h5 {
    margin-bottom: 3em;
}
#use-case-demo .closer {
    position: absolute;
    top: 0.2em;
    font-size: 6em;
    color: white;
    right: 1em;
    font-family: system-ui;
    cursor: pointer;
}


/* LARGE SCREEN */
@media (max-width: 1599px) {
	html {
		font-size: 8px;
	}
}

/* SMALL SCREEN */
@media (max-width: 1199px) {
	html {
		font-size: 6px;
	}
}

/* TABLET */
@media (max-width: 767px) {
	html {
		font-size: 5px;
	}

	.t-stack-vertical {
		grid-template-columns: 100%;
		grid-row-gap: 5em;
	}
}

/* MOBILE */
@media (max-width: 575px) {
	html {
		font-size: 4.5px;
	}

	section, header, footer {
		padding: 0 var(--m-side-margins);
	}

	p {
		font-size: 2.5em;
	}

	.m-stack-vertical {
		grid-template-columns: 100%;
		grid-row-gap: 5em;
	}

	.flare-blue {
		background: linear-gradient(0deg, #34236E 0%, #63C1C9 100%);
		filter: blur(18em);
		padding-top: 99%;
		width: 99%;
		left: 0;
		top: 0;
	}

	.screenshot {
		order: -1; /* screenshot comes first in screeshots section */
	}
}




