@font-face {
	font-family: Monument Extended;
	font-weight: 400;
	src: url("../fonts/MonumentExtended-Regular.otf") format("opentype");
	font-display: swap;
	}

@font-face {
	font-family: Averta;
	font-weight: 400;
	src: url("../fonts/averta-regular.otf") format("opentype");
	font-display: swap;
	}

@font-face {
	font-family: Averta;
	font-weight: 600;
	src: url("../fonts/averta-semibold.otf") format("opentype");
	font-display: swap;
	}

* {
	margin: 0;
	padding: 0;
	border: none;
	underline: none;
	outline: none;
	text-decoration: none;
	-webkit-font-smoothing: antialiased;
	}

html, body {
	background: #fff;
	font-family: "Averta", sans-serif;
	color: #0d0d0d;
	}

html.dark-bg, body.dark-bg, #backgrounds .bg {
	background: #151515;
	}

#page {
	width: 100%;
	position: absolute;
	top: 0; left: 0;

	transform: scale(1);
	transform-origin: top;
	transition: transform .7s ease;
	}

#page.scale {
	transform: scale(0.98) skew(-4deg, -4deg);
	}

#header {
	width: 100%;
	position: absolute;
	z-index: 1;
	top: 0;
	}

.header-holder {
//	width: 1700px;
	width: 90%;
	position: relative;
	margin: 70px auto;
	}

#dark-mode {
	width: 50px;
	height: 50px;
	position: absolute;
	border: 1px solid #aaa;
	border-radius: 99px;
	box-sizing: border-box;
	cursor: pointer;
	right: 0;
	}

#mode {
	width: 18px;
	height: 18px;
	position: absolute;
	border: 2px solid #222;
	border-radius: 99px;
	box-sizing: border-box;
	overflow: hidden;
	margin-top: -9px;
	margin-left: -9px;
	top: 50%; left: 50%;

	transition: width .4s ease, height .4s ease, margin-top .4s ease, margin-left .4s ease;
	}

.dark #mode {
	border: 2px solid #eee;
	}

#mode.sun {
	width: 14px;
	height: 14px;
	margin-top: -7px;
	margin-left: -7px;
	}

#mode:after {
	width: 100%;
	height: 100%;
	position: absolute;
	background: #222;
	content: "";
	border-radius: 99px;
	right: -100%;

	transition: right .4s ease;
	}

.dark #mode:after {
	background: #eee;
	}

#mode.moon:after {
	right: -30%;
	}

.beams {
	width: 28px;
	height: 28px;
	position: absolute;
	border-radius: 99px;
	margin-top: -14px;
	margin-left: -14px;
	top: 50%; left: 50%;

	opacity: 1;
	transform: scale(1);
	transition: all .4s ease;
	}

.beams.sun {
	transform: scale(1) rotate(90deg);
	}

.beams.moon {
	opacity: 0;
	transform: scale(0);
	}

.beam {
	width: 2px;
	height: 100%;
	position: absolute;
	margin-left: -1px;
	top: 0; left: 50%;
	}

.beam:before, .beam:after {
	width: 100%;
	height: 4px;
	position: absolute;
	background: #222;
	border-radius: 3px;
	content: "";
	}

.dark .beam:before, .dark .beam:after {
	background: #eee;
	}

.beam:after {
	bottom: 0;
	}

.beam.two {
	transform: rotate(45deg);
	}

.beam.three {
	transform: rotate(90deg);
	}

.beam.four {
	transform: rotate(135deg);
	}

#pointer {
	width: 12px;
	height: 12px;
	position: fixed;
	background: #dff3f3;
	border-radius: 99px;
	backdrop-filter: blur(5px);
	z-index: 60;
	pointer-events: none;
	mix-blend-mode: unset;
	margin-top: -7px;
	margin-left: -7px;
	
	transition: width .3s ease, height .3s ease, background .3s ease, mix-blend-mode .3s ease, margin-top .3s ease, margin-left .3s ease, transform .6s cubic-bezier(.29,.58,.74,.87);
	}

#pointer.hover {
	width: 78px;
	height: 78px;
	background: rgba(160, 220, 255, 0.6);
//	mix-blend-mode: luminosity;
	margin-top: -45px;
	margin-left: -45px;
	}

#pointer span {
	width: 90%;
	position: absolute;
	font-size: 18px;
//	color: #d586da;
	color: #fff;
	letter-spacing: 0.8px;
	text-align: center;
	text-transform: lowercase;
//	mix-blend-mode: multiply;
	opacity: 0;
	margin-top: -12px;
	top: 50%; left: 5%;

	transform: scale(0);
	transition: opacity .3s ease, transform .3s ease;
	}

#pointer.hover span {
	opacity: 1;

	transform: scale(1);
	}

#pointer.hide {
	opacity: 0;

	transform: scale(0);
	}

#intro {
	width: 100%;
	margin: 210px 0 160px 0;
	}

.holder {
	width: 900px;
	position: relative;
	z-index: 1;
	display: table;
	margin: 0 auto;
	}

.holder.full {
	width: 100%;
	}

.holder.media {
	width: 1100px;
	}

.about .holder, .rev .holder {
	width: 1200px;
	}

#circle {
//	width: 168px;
//	height: 168px;
	width: 150px;
	height: 150px;
	background-color: #ecfcfc;
	background-size: cover;
	border-radius: 999px;
	margin-bottom: 50px;

	transform: scale(0);
	transition: transform .85s ease;
	}

#circle.show {
	transform: scale(1);
	}

#circle video {
	width: 60%;
	height: 60%;
	position: absolute;
	border-radius: 999px;
	top: 20%; left: 22%;
	}

#intro p {
	font-size: 21px;
	letter-spacing: -0.6px;
	color: #6a7d82;
//	-webkit-text-stroke: 0.4px #0d0d0d;
	-webkit-text-stroke: 0.4px #6a7d82;
	overflow: hidden;
	margin-bottom: 26px;

	transition: color 0.1s ease, -webkit-text-stroke 0.1s ease;
	}

#intro p:before {
	width: 8px;
	height: 8px;
	position: absolute;
	background: #ceeded;
	border-radius: 99px;
	content: "";
	margin-top: 12px;
	left: -24px;

	transform: scale(0);
	transition: transform .3s ease;
	}

#intro p.pop:before {
	transform: scale(1);
	}

.dark #intro p, .dark h1 {
	color: #fefefe;
	-webkit-text-stroke: 0.4px #fefefe;
	}

#intro p .line {
	position: relative;
	opacity: 0;
	top: -35px;

	transition: opacity .8s ease, top .8s ease;
	}

#intro p .line.show, #intro p .line.show {
	opacity: 1;
	top: 0;
	}

h1 {
	font-weight: 400;
	font-size: 70px;
	-webkit-text-stroke: 0.8px #0d0d0d;
	letter-spacing: -5.6px;
	line-height: 124%;
	opacity: 0;

	transition: color 0.1s ease, -webkit-text-stroke 0.1s ease;
	}

h1 {
	width: 820px;
	font-size: 60px;
	letter-spacing: -3.6px;
	}

h1.show {
	opacity: 1;
	}

h1 span {
	position: relative;
	opacity: 0;
	display: inline-block;
	transform: rotateX(45deg) rotate3d(0, 0, 10, 4deg);
	top: 80px;

	transition: opacity .5s ease, top .5s ease, transform 0.8s ease;
	}

h1 span {
	top: 50px;
	}

h1 span.show {
	opacity: 1;
	top: 0;
	transform: rotateX(0deg);
	}

.text {
	width: 180px;
	position: relative;
	opacity: 0;

	transition: opacity .7s ease, margin-left .7s ease;
	}

.text.animate {
	opacity: 1;
	margin-left: 0;
	}

.waving {
	opacity: 0;
	display: inline-block;
	-webkit-animation: wave 1s infinite;
	-moz-animation: wave 1s infinite;
	-o-animation: wave 1s infinite;
	animation: wave 1s infinite;

	transition: opacity .4s ease, margin-left .7s ease;
	}

.waving.animate {
	opacity: 1;
	margin-left: 10px;
	}

@-webkit-keyframes wave {
	0% {
		-webkit-transform: rotate(6deg);
		}
	50% {
		-webkit-transform: rotate(18deg);
		}
	100% {
		-webkit-transform: rotate(6deg);
		}
	}

@-moz-keyframes wave {
	0% {
		-moz-transform: rotate(6deg);
		}
	50% {
		-moz-transform: rotate(18deg);
		}
	100% {
		-moz-transform: rotate(6deg);
		}
	}

@-o-keyframes wave {
	0% {
		-o-transform: rotate(6deg);
		}
	50% {
		-o-transform: rotate(18deg);
		}
	100% {
		-o-transform: rotate(6deg);
		}
	}

@keyframes wave {
	0% {
		transform: rotate(6deg);
		}
	50% {
		transform: rotate(18deg);
		}
	100% {
		transform: rotate(6deg);
		}
	}

.fade-in, .holder.media .media {
	position: relative;
	opacity: 0;
	top: 100px;

	transform: skew(0deg, 10deg);
	transition: opacity .8s ease, top .8s ease, transform .8s ease;
	}

.fade-in.show, .holder.media .media.show {
	opacity: 1;
	top: 0;

	transform: skew(0deg, 0deg);
	}

.full.media video {
	max-width: 1350px;
	width: 80%;
	border-radius: 10px;
	display: block;
	margin: 0 auto;
	}

.media img, .media video {
	position: relative;
	transition: margin-top .1s ease;
	}

.websites {
	margin-top: 80px;
	}

.website.media {
	width: 100%;
	position: relative;
	border-radius: 8px;
	margin: 0 auto 40px auto;
	}

.link {
	position: absolute;
	background: rgba(255, 255, 255, 0.7);
	backdrop-filter: blur(4px);
	font-size: 14px;
	letter-spacing: -0.3px;
	border-radius: 99px;
	padding: 12px 24px;
	left: 24px; bottom: 24px;
	}

.about {
	margin: 250px 0;
	}

.rev {
	margin-top: -150px;
	}

h2 {
	position: relative;
	font-size: 40px;
	letter-spacing: -2px;
	display: table;
	}

.dark h2 {
	color: #fefefe;
	}

h2:after {
	width: 0;
	height: 8px;
	position: absolute;
	background: #def7f7;
	content: "";
	bottom: 6px; left: 0;

	transition: width .6s ease;
	}

.dark h2:after {
	background: #343434;
	}

h2.mark:after {
	width: 100%;
	}

h2 .line {
	position: relative;
	z-index: 1;
	display: block;
	overflow: hidden;
	padding: 0 5px;
	}

h2 .l-h {
	position: relative;
	display: block;
	top: 70px;

	transform: skewY(8deg);
	transition: top .5s ease, transform .5s ease;
	}

h2.show .l-h {
	top: 0;
	transform: skewY(0deg);
	}

.about p, .content {
	width: 720px;
	position: relative;
	font-size: 22px;
	line-height: 210%;
	margin-top: 80px;
	margin-left: 100px;
	margin: 80px auto 0 auto;
	}

.services {
	width: 720px;
	position: relative;
	margin: 80px auto 0 auto;
	}

.services li {
//	background: #eff9f9;
	position: relative;
	font-size: 15px;
	color: #546569;
	letter-spacing: -0.4px;
	border-radius: 99px;
	border: 1px solid #c0c7c7;
	display: inline-block;
	float: left;
	opacity: 0;
	padding: 11px 20px;
	margin-right: 12px;
	margin-bottom: 16px;
	top: 20px;

	transform: scale(0.2) rotateX(45deg) rotate3d(0, 0, 10, 4deg);
	transform: skew(0deg, 10deg);

	transition: opacity .6s ease, top .6s ease, transform .6s ease;
	}

.services li.show {
	opacity: 1;
	top: 0;
	transform: scale(1) rotateX(0deg) rotate3d(0, 0, 0, 0deg);
	}

.content.wide {
	width: 950px;
	}

.dark .about p {
	color: #d9dbdb;
	}

.about p .line {
	display: block;
	overflow: hidden;
	}

.about p .l-h {
	position: relative;
	top: 40px;

	transition: top 1.2s ease;
	}

.about p .l-h.show {
	top: 0;
	}

.holder.media .media {
	width: 480px;
	height: 600px;
	display: inline-block;
	overflow: hidden;
	}

.media img {
	display: block;
	}

.holder.media .media video {
	width: 100%;
	}

.holder.media .media:nth-child(even) {
	float: right;
	margin-top: 120px;
	}

img {
	width: 100%;
	}

#backgrounds {
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0; left: 0;
	}

#backgrounds .bg {
	width: 40px;
	height: 40px;
	position: absolute;
	border-radius: 999999px;
	display: none;
	top: 0; right: 0;

	transition: all 1.2s ease;
	}

#backgrounds .bg.light {
	background: #fff;
	}

#backgrounds .bg.visible {
	display: block;
	}

#backgrounds .bg.spread {
	transform: scale(99);
	}

#brands, #recognitions {
	display: block;
	justify-content: center;
	}

.brand {
	width: 24%;
	width: 140px;
	height: 140px;
	background-size: cover;
	background-position: center;
	text-align: center;
	display: inline-block;
	border-radius: 14px;
	margin: 24px 40px;

	transform: scale(0);
	transition: all .8s ease;
	}

.brand.show {
	transform: scale(1);
	}

.brand.rtl {
	background: url(../img/rtl.svg);
	}

.brand.dela {
	background: url(../img/dela.svg);
	}

.brand.fm {
	background: url(../img/3fm.svg);
	}

.brand.kro-ncrv {
	background: url(../img/kro-ncrv.svg);
	}

.brand.tnw {
	background: url(../img/tnw.svg);
	}

.brand.jcdecaux {
	background: url(../img/jcdecaux.svg);
	}

.brand.hogeschool-utrecht {
	background: url(../img/hogeschool-utrecht.svg);
	}

.brand.summa-college {
	background: url(../img/summa-college.svg);
	}

.brand.erasmus-mc {
	background: url(../img/erasmus-mc.svg);
	}

.recognition {
	width: 24%;
	width: 130px;
//	height: 150px;
//	background: url(../img/recognition.svg);
	text-align: center;
	display: inline-block;
	vertical-align: top;
	border-radius: 14px;
	margin: 50px;

	transform: scale(0);
	transition: all .8s ease;
	}

.recognition.show {
	transform: scale(1);
	}

.symbol {
	width: 120px;
	height: 120px;
	position: relative;
	background: url(../img/recognition.svg);
	background-size: cover;
	background-position: center;
	}

.dark .symbol {
	opacity: 0.7;
	}

.symbol:after {
	width: 100%;
	height: 100%;
	position: absolute;
	content: "";
	top: 0; left: 0;
	}

.t500 .symbol:after {
	background: url(../img/t500.svg);
	}

.spinawards .symbol:after {
	background: url(../img/spinawards.svg);
	}

.dia .symbol:after {
	background: url(../img/dia.svg);
	}

.instruct .symbol:after {
	background: url(../img/instruct.svg);
	}

.cssda .symbol:after {
	background: url(../img/cssda.svg);
	}

.opl .symbol:after {
	background: url(../img/opl.svg);
	}

.recognition h3 {
	font-size: 15px;
	font-weight: 400;
	color: #0d0d0d;
	line-height: 140%;
	letter-spacing: -0.3px;
	margin-top: 26px;
	}

.dark .recognition h3 {
	color: #bfbcbc;
	}

.reviews {
	margin-top: 120px;
	}

.review {
	width: 700px;
	margin: 0 auto 120px auto;
	}

.review-image {
	position: relative;
	display: inline-block;
	margin-bottom: 20px;
	}

.review .person {
	width: 80px;
	height: 80px;
	display: inline-block;
	float: left;
	}

.review .company {
	width: 36px;
	height: 36px;
	position: absolute;
	border: 2px solid #fff;
	border-radius: 99px;
	box-sizing: border-box;
	float: left;
	margin-left: -24px;
	bottom: 0;
	}

.review h3 {
	font-size: 22px;
	margin-bottom: 10px;
	}

.review h4 {
	font-size: 16px;
	font-weight: 400;
	color: #6a7d82;
	-webkit-text-stroke: 0.2px #6a7d82;
	margin-bottom: 20px;
	}

.review p {
	font-size: 19px;
	line-height: 210%;
	}