/* 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: #fff;
	--c-font: #444;
	--c-label-font: #f1c97a;
	--c-light-background: #f1c97a;
	--c-dark-background: #041836;
	--side-margins: 4vw;
	--m-side-margins: 5vw;
	--dark-font: #041836;
	--light-font: #fff;
}

html {
	font-size: 10px;
	width: 100%;
}

body {
	background-color: var(--c-background);
}

section, header, footer, main > h2 {
	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;
}

.secondary {
    letter-spacing: 0.03em;
    text-transform: none;
    font-family: var(--heading-font);
    font-weight: normal;
    line-height: 1.1em;
}

h4.secondary {
    margin-bottom: -2em;
    font-size: 4em;
}

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;
}

a.inline {
    font-size: 1em;
    text-decoration: underline;
}
a.inline:hover {
    font-weight: bold;
}

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, a.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;
	border: none;
}
button:hover, a.button:hover {
    filter: contrast(120%);
}

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;
}

.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%;
}

.four-across {
	display: grid;
	grid-template-columns: 22% 22% 22% 22%;
	grid-template-rows: auto;
	grid-column-gap: 4%;
}

.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);
}

.image-container {
    background-repeat: no-repeat;
}

.button-container {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 9em 0 5em 0;
}


/* 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: 0 4em 4em 4em;
}

section.chains img {
	height: 4.5em;
	margin: 2em 3em;
}

.section-divider {
	margin: 8em var(--side-margins) 0;
	border: 2px solid white;
}

section.stages {
	padding-bottom: 10em;
}

section.stages p {
	font-size: 2.1em;
    margin-bottom: 1em;
    letter-spacing: 0.015em;
}
section.stages .flare-pos-1 {
	width: 65vw;
    height: 81vw;
    top: -2%;
    left: 46%;
    opacity: 0.7;
}
section.stages .flare-pos-3 {
	width: 65%;
    top: 42%;
    left: 32%;
    opacity: 0.8;
    padding-bottom: 73%;
}
section.stages .flare-pos-2 {
    width: 83%;
    padding-bottom: 63%;
    top: 20%;
    left: -6%;
    opacity: 0.65;
}
section.stages .flare-pos-4 {
	width: 81%;
    top: 74%;
    left: -12%;
    opacity: 0.65;
    padding-bottom: 80%;
}

section.stages .image-container {
    min-width: 100%;
    position: relative;
    padding: 0;
    overflow: hidden;
}
section.stages .image-container img {
    width: 100.1%;
    max-width: none;
}

section.stages .stage-container {
    align-self: stretch;
    display: flex;
    flex-direction: column;
}

section.stages .side-heading {
    font-family: var(--heading-font);
    font-size: 4em;
    line-height: 1.2em;
    margin-bottom: 0.5em;
    position: relative;
    padding: 0.5em 0;
}

section.stages .heading-background {
    position: absolute;
    top: 0;
    left: -5%;
    right: -40%;
    bottom: 0;
    background-color: #eee;
    z-index: -1;
}

section.stages .vertical-block {
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1 1;
    position: relative;
}
section.stages .vertical-block.glass {
    position: relative;
    left: -5%;
    padding-left: 5%;
}
section.stages .stage-background {
    position: absolute;
    top: 0;
    bottom: 0;
    left: -5%;
    right: -40%;
    background-color: #ffffff20;
    z-index: 1;
}

section.stages .reverse {
    right: -5%;
    left: -40%;
}

div.network-participants h4 {
    margin: 0;
}

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 {
    background-color: var(--c-dark-background);
}
section.innovate h4 {
	margin-bottom: 0em;
	font-size: 3em;
	color: var(--light-font);
}
section.innovate h2 {
	font-size: 8em;
	margin-top: 0;
	margin-bottom: 0.5em;
	letter-spacing: 0.05em;
	color: var(--light-font);
}
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;
	color: var(--light-font);
}

section.sign-up {
	padding-bottom: 12em;
	background-color: var(--c-dark-background);
}
section.sign-up h4 {
	font-size: 4em;
    margin-top: 0;
    margin-bottom: 1em;
    color: var(--light-font);
}
section.sign-up form {
	text-align: center;
}
section.sign-up input {
	border: none;
	border-bottom: 1px solid white;
	color: var(--light-font);
}
section.sign-up textarea {
    color: var(--light-font);
}
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;
	color: var(--light-font);
}
footer h3 {
    color: var(--light-font);
}

/* EFFECTS */

.flare-container {
	position: relative;
}

.flare-effect {
	position: absolute;
	z-index: -1;
}

.flare-orange {
    background-image: url(/images/flare-orange.png);
    background-size: 100% 100%;
    background-color: transparent;
    left: -45%;
    padding-top: 170%;
    width: 203%;
    top: -34%;
}

.flare-blue {
    background-image: url(/images/flare-purple.png);
    background-size: 100% 100%;
    background-color: transparent;
    padding-top: 70%;
    width: 182%;
    height: 244%;
    left: -43%;
    top: -29%;
}

.flare-blue-round {
	background-image: url(/images/flare-blue.png);
	background-size: 100% 100%;
}

.flare-orange-round {
    background: url(/images/flare-orange.png);
    background-size: 100% 100%;
}

.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%);
	height: 100%;
	width: 100%;
	z-index: 0;
	filter: blur(30px);
}

/* 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, main > h2 {
		padding: 0 var(--m-side-margins);
	}

	p {
		font-size: 2.5em;
	}

	main .m-stack-vertical {
		grid-template-columns: 100%;
		grid-row-gap: 5em;
	}
	
	section.stages .m-stack-vertical .side-heading .heading-background {
	    left: -20vw;
	    right: -20vw;
	}
	
	.stages .two-across-60-40 .image-container {
	    order: 1;
	}

	.flare-blue {
		background-image: url(/images/flare-purple.png);
        background-size: 100% 100%;
        background-color: transparent;
        padding-top: 90%;
        width: 166%;
        left: -25%;
        top: -42%;
	}

	.screenshot {
		order: -1; /* screenshot comes first in screeshots section */
	}
	
	section.stages .flare-pos-1 {
    	width: 99vw;
        height: 83vw;
        top: -8%;
        left: 21%;
    }
    section.stages .flare-pos-3 {
        width: 92vw;
        height: 94vw;
    }
    section.stages .flare-pos-2 {
    	width: 89vw;
        height: 77vw;
    }
    section.stages .flare-pos-4 {
    	width: 106vw;
        height: 167vw;
        top: 60%;
        left: -13%;
    }
}




