:root {
	--bg-color: #fff;
	--text-color: #444;
	--text-color-off: #b4b4b4;
	--link-color: #6f6e6a;
	--link-color-hover: #383836;
	--border-color: #eee;
	--beam-color: #f9f9f9;
	
	--bg-btn: #f6f6f6;
	--bg-btn-hover: #e5e5e5;
	
	--bg-progress-bar: #eee;
	--bg-progress-value: #ccc;
}
[data-theme="dark"] {
	--bg-color: #222;
	--text-color: #bbb;
	--text-color-off: rgba(255,255,255,0.2);
	--link-color: #6f6e6a;
	--link-color-hover: #6f6e6a;
	--border-color: rgba(255,255,255,0.04);
	--beam-color: rgba(255,255,255,0.04);
	
	--bg-btn: #282828;
	--bg-btn-hover: #121212;
	
	--bg-progress-bar: var(--text-color);
	--bg-progress-value: #666;
}

*, *:before, *:after {
	box-sizing: border-box;
}
html, body {
	height: 100%;
}
body {
	margin: 0;
	padding: 0;
	font-size: 100%;
	line-height: 1.6rem;
	font-family: 'Karla', Arial, Helvetica, sans-serif;
	font-weight: 400;
	
	color: var(--text-color);
	background: var(--bg-color);
	transition: color 0.3s ease, background 0.3s ease;
}
img {
	max-width: 100%;
	display: inline-block;
	vertical-align: middle;
}
a {
	cursor: pointer;
	outline: none;
	-webkit-transition: all 0.25s ease-in-out;
	-moz-transition: all 0.25s ease-in-out;
	-ms-transition: all 0.25s ease-in-out;
	-o-transition: all 0.25s ease-in-out;
	transition: all 0.25s ease-in-out;
	color: var(--link-color);
}
.no-touch a:hover {
	color: var(--link-color-hover);
}
h1, h2, h3, h4, h5, h6 {
	font-weight: 700;
	line-height: 1.6rem;
}
h3 {
	font-size: .85rem;
	margin: 1.25rem 0;
	line-height: 1.8rem;
}
hr {
    border: 0;
    height: 0;
    border-bottom: 1px solid var(--border-color);
    margin: 3rem 0;
}
.txt {
	font-size: .95rem;
	margin-top: 0;
}
.txt a {
	text-decoration: none;
	border-bottom: 1px solid var(--border-color);
}
.no-touch .txt a:hover {
	border-color: var(--text-color-off);
}
.grid-container {
	display: grid;
}
.text-center {
	text-align: center;
}
.text-right {
	text-align: right;
}
.color-off {
	color: var(--text-color-off);
}

/* !Buttons */
.btn {
    display: inline-block;
	cursor: pointer;
    font-size: .7rem;
    color: var(--text-color);
    background: var(--bg-btn);
    border: none;
    text-decoration: none;
    text-transform: uppercase;
	font-family: Arial, sans-serif;
    font-weight: 300;
	line-height: 33px;
	padding: 6px 2rem;
	border-radius: 20px;
	letter-spacing: 1.6px;
    transition: .5s ease-out;
}
.no-touch .btn:hover {
	color: var(--text-color);
	background: var(--bg-btn-hover);
}
.no-touch[data-theme="dark"] .btn:hover {
	
}

/* !Theme toggle */
.theme-toggle {
	position: relative;
	position: fixed;
	bottom: 20px;
	left: 20px;
	display: inline-block;
	width: 60px;
	height: 30px;
	cursor: pointer;
}
.theme-toggle input {
	opacity: 0;
	width: 0;
	height: 0;
}
.slider {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	/*background: linear-gradient(to right, #87CEEB, #4A90E2);*/
	background: #000;
	border-radius: 30px;
	transition: all 0.4s ease;
	box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
}
.slider-icon {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity 0.3s ease;
}
.slider-icon svg {
	display: block;
	width: 95%;
	height: 95%;
}
/* Safari only (desktop + ios) */
@supports (-webkit-hyphens:none)
{
	.slider-icon svg {
		width: 100%;
		height: 100%;
	}
}
.slider-icon.sun {
	left: 5px;
	opacity: 1;
}
.slider-icon.moon {
	right: 5px;
	opacity: 0;
}
.slider:before {
	content: "";
	position: absolute;
	height: 22px;
	width: 22px;
	left: 4px;
	bottom: 4px;
	background-color: white;
	border-radius: 50%;
	transition: transform 0.4s ease;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
input:checked+.slider {
	/*background: linear-gradient(to right, #1a1a3e, #0f0f23);*/
	background: #000;
}
input:checked+.slider:before {
	transform: translateX(30px);
}
input:checked+.slider .sun {
	opacity: 0;
}
input:checked+.slider .moon {
	opacity: 1;
}

/* !Header */
header {
	position: fixed;
	top: 0;
	left: 0; 
	right: 0;
	z-index: 1000;
	background-color: #fff;
	padding-top: 1rem;
	min-height: 85px;
}
header.boxshadow {
	box-shadow: 0 40px 100px 0 rgba(0,0,0,0.05);	
	-webkit-box-shadow: 0 40px 100px 100px rgba(0,0,0,0.05);
}
header a {
	color: #666;
	text-decoration: none;
}

/* nav.main */
header nav.main ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: inline-block;
}
header nav.main ul li {
	display: inline-block;
	margin-left: 1rem;
}
header nav.main ul li a {
	display: block;
	font-size: .9rem;
	padding: .1rem .6rem;
	color: #888;
}
header nav.main ul li.active a,
.no-touch header nav.main ul li a:hover {
	color: #000;
}

/* !Mobile nav */
.hamburger {
	display: none;
	width: 30px;
	height: 25px;
	position: absolute;
	top: 20px;
	right: 20px;
	-webkit-transform: rotate(0deg);
	-moz-transform: rotate(0deg);
	-o-transform: rotate(0deg);
	transform: rotate(0deg);
	-webkit-transition: .5s ease-in-out;
	-moz-transition: .5s ease-in-out;
	-o-transition: .5s ease-in-out;
	transition: .5s ease-in-out;
	-webkit-transition: top 0.16s ease-in-out;
	-moz-transition: top 0.16s ease-in-out;
	-o-transition: top 0.16s ease-in-out;
	transition: top 0.16s ease-in-out;
	cursor: pointer;
	z-index: 200;
}
.hamburger span {
	display: block;
	position: absolute;
	height: 3px;
	width: 100%;
	background: #555;
	border-radius: 9px;
	opacity: 1;
	left: 0;
	-webkit-transform: rotate(0deg);
	-moz-transform: rotate(0deg);
	-o-transform: rotate(0deg);
	transform: rotate(0deg);
	-webkit-transition: .25s ease-in-out;
	-moz-transition: .25s ease-in-out;
	-o-transition: .25s ease-in-out;
	transition: .25s ease-in-out;
	z-index: 200;
}
.hamburger.open span {
	left: 0;
	z-index: 200;
}
.hamburger span:nth-child(1) {
	top: 2px;
}
.hamburger span:nth-child(2) {
	top: 12px;
}
.hamburger span:nth-child(3) {
	top: 22px;
}
.hamburger.open span:nth-child(1) {
	top: 14px;
	-webkit-transform: rotate(135deg);
	-moz-transform: rotate(135deg);
	-o-transform: rotate(135deg);
	transform: rotate(135deg);
}
.hamburger.open span:nth-child(2) {
	opacity: 0;
	left: -60px;
}
.hamburger.open span:nth-child(3) {
	top: 14px;
	-webkit-transform: rotate(-135deg);
	-moz-transform: rotate(-135deg);
	-o-transform: rotate(-135deg);
	transform: rotate(-135deg);
}
.mobilenav {
	display: none;
	border-bottom: 1px solid #efefef;
}
.mobilenav ul {
	list-style: none;
	margin: 0;
	padding: 1rem 0 .5rem;
}
.mobilenav ul li {
	margin-top: .2rem;
}
.mobilenav ul li a {
	display: block;
	padding: .4rem 0;
	font-size: .9rem;
	text-transform: uppercase;
}

/* !Home */
#home {
	height: 100vh;
	padding-top: 120px;
}
#home h2 {
	font-size: 1rem;
	line-height: 1.6rem;
	font-weight: 400;
	letter-spacing: .5px;
	color: #656565;
	margin: 0;
}
#home h1 {
	font-size: 1.8rem;
	line-height: 2.4rem;
	font-weight: 400;
	margin: .8rem 0 2rem;
}

/* !About */
#about {
	padding: 3rem 0;
	border-top: 1px solid var(--border-color);
}
#about .grey-bg {
	margin-top: 2rem;
	padding: 2rem 3rem;
}

/* !SPOTIFY Album */
.album {
	width: 200px;
	margin: 0 auto;
	position: relative;
	line-height: 1;
}
.cover {
	display: inline-block;
	width: 200px;
	height: 200px;
	background: #fff no-repeat center center / cover;
	position: absolute;
	z-index: 2;
}
[data-theme="dark"] .cover {
	filter: brightness(70%);
}
.record-container {
	display: inline-block;
	overflow: hidden;
	width: 250px;
	height: 200px;
}
.record {
	position: relative;
	margin: auto;
	width: 220px;
	height: 220px;
	margin-top: -10px;
	border-radius: 50%;
	background: 
	repeating-radial-gradient(#2a2928, #2a2928 10px, #222 11px, #2a2928 12px);
	box-shadow: 0 0 4px 1px rgba(0,0,0,0.5);
}

/* Album - small version */
.album.small {}
.album.small .cover {width: 150px; height: 150px;}
.album.small .record-container {width: 200px; height: 150px;}
.album.small .record {width: 158px; height: 158px; margin-top: -4px;}

/* Album beams */
.album::before,
.album::after {
	content: '';
	display: block;
	width: 50vw;
	height: 10%;
	background-color: var(--beam-color);
	transition: background-color 0.3s ease;
	position: absolute;
	z-index: -1;
}
.album::before {
	top: 0;
	transform: rotate(-16deg);
}
.album::after {
	bottom: 0;
	transform: rotate(16deg);
}
@media screen and (min-width: 1600px)
{
	.album::before {top: -35px;}
	.album::after {bottom: -35px;}
}
@media screen and (min-width: 2230px)
{
	.album::before {top: -50px;}
	.album::after {bottom: -50px;}
}

/* Spotify Player */
#spotify h4, 
#spotify h5 {
	margin: .5rem 0;
	line-height: 1.2rem;
}
#spotify div.time h5 {
	margin-top: 0;
}
#spotify h5,
#spotify div.time {
	font-family: 'Heebo', Arial, Helvetica, sans-serif;
	font-weight: 300;
}
#spotify .row div.play-wrap {
	display: flex;
	align-items: center;
	gap: 1.2rem;
	margin: 3.15rem 0 0;
}
#spotify audio {
	display: none;
}
/* play-btn */
a.play {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 100px;
	
	position: relative;
	width: 100px;
	height: 100px;
	border-radius: 100%;
	
	color: #bbb;
	background: conic-gradient(
		#000 calc(var(--progress, 0) * 360deg),
		#bbb calc(var(--progress, 0) * 360deg)
	);
	padding: 2px; /* thickness of the ring */
}
/* inner circle masks the gradient, leaving only the border ring */
a.play::before {
  content: '';
  position: absolute;
  inset: 2px; /* same as padding above */
  border-radius: 50%;
  background: var(--bg-color);
  z-index: 0;
}
a.play i {
  position: relative;
  z-index: 1;
}
a.play.playing,
.no-touch a.play.playing:hover {
	color: #000;
}
.no-touch a.play:hover {
	color: #bbb;
	border-color: #ccc;
	transform: scale(1.1);
}
/* progress bar (tem play-btn2 zichtbaar gezet) */
/*https://css-tricks.com/html5-progress-element/*/
/* >>> verder uitwerken voor cross browser */
.progressbar {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	border: none;
	width: 100px;
	height: 8px;
	color: #ccc; /*IE*/
	background-color: var(--bg-progress-bar);
}
.progressbar::-webkit-progress-bar {
	background-color: var(--bg-progress-bar);
	border-radius: 2px;
}
.progressbar::-webkit-progress-value {
	background-color: var(--bg-progress-value);
	border-radius: 2px;
}
.progressbar::-moz-progress-bar { /* firefox slechts 1 pseudo-class, en de 'bar' betekent eigl de 'value' */
	background-color: var(--bg-progress-value);
	border-radius: 2px;
}
[data-theme="dark"] .progressbar::-webkit-progress-bar {border-radius: 0;} /* kan niet met comma separated selector */
[data-theme="dark"] .progressbar::-webkit-progress-value {border-radius: 0;}
[data-theme="dark"] .progressbar::-moz-progress-bar {border-radius: 0;}

/* fallbacks */
html.no-audio #spotify a.play {
	display: none;
}

/* !INSTAGRAM */
#instagram .grid-container {
	grid-template-columns: repeat(8, 1fr);
	grid-gap: 3.8%;
	margin: .5rem auto 2.2rem;
}
#instagram .grid-container a {
	display: block;
	object-fit: cover;
	object-position: center center;
}
.no-touchevents #instagram .grid-container a:hover {
	opacity: 0.8;
}
#instagram .grid-container a img {
	display: block;
	width: 100%;
	border-radius: 5px;
	aspect-ratio: 1;
	object-fit: cover;
	object-position: center center;
	-webkit-transition: all 0.25s ease-in-out;
	-moz-transition: all 0.25s ease-in-out;
	-ms-transition: all 0.25s ease-in-out;
	-o-transition: all 0.25s ease-in-out;
	transition: all 0.25s ease-in-out;
}
.no-touch #instagram .grid-container a img:hover {
	opacity: 0.6;
}
[data-theme="dark"] #instagram .grid-container a img {
	filter: brightness(80%);
}

/* !Contact */
#contact {
	padding: 3rem 0;
	border-top: 1px solid var(--border-color);
	min-height: 100px;
	text-align: center;
}
ul.social {
	padding: 0;
	list-style: none;
}
ul.social li {
	display: inline-block;
}
ul.social li a {
	text-decoration: none;
	color: #ccc;
	font-size: 18px;
	width: 35px;
	height: 35px;
	line-height: 35px;
	border-radius: 100%;
	transition: all ease-in-out 0.4s;
}
.no-touch ul.social li a:hover {
	color: #444;
	background-color: #f2f2f2;
	transform: scale(1.1);
}
ul.social li a span {
	display: none;
}



/* !====MEDIA==== */
/* !Large */
@media screen and (min-width: 64em)
{
	/* flex voor vertical centering (enkel op large) */
	#home.flex-container {
		display: flex;
	}
	#home .flex-item-center {
		align-self: center;
		width: 100%;
	}
	#home .flex-item-center.marginTop {
		margin-top: 40px;
	}
	
	header {
		padding: 2rem 0 1rem 0;
	}
}

/* !Medium */
@media screen and (max-width: 63.9375em)
{
	/*body {color: red;} /* < 1024 px */
	
	.hide-medium {
		display: none;
	}

	header {
		min-height: 65px;
		box-shadow: 0 40px 100px 0 rgba(0,0,0,0.05);	
		-webkit-box-shadow: 0 40px 100px 100px rgba(0,0,0,0.05);
	}
	header a#logo {
		display: inline-block;
		margin-top: .5rem;
		font-size: 1.1rem;
	}
	nav.main {
		display: none;
	}
	.hamburger {
		display: block;
	}
	
	#home h1 {
		font-size: 1.5rem;
	}
	
	.album::before,
	.album::after { /* Album beams */
		display: none;
	}
	#spotify .row div.play-wrap {
		flex-direction: column;
		gap: .6rem;
		margin: 0;
		text-align: center;
	}
	
	#instagram .grid-container {
		grid-gap: 10px;
	}
}

/* !Small */
@media screen and (max-width: 39.9375em)
{
	/*body {color: blue;} /* < 640 px */
	
	.text-right {
		text-align: left;
	}
	.hide-small {
		display: none;
	}
	
	#home h1 {
		font-size: 1.4rem;
	}
	
	.album {
		margin: 1rem auto 1.5rem;
	}
	
	#instagram .grid-container {
		grid-template-columns: repeat(4, 1fr);
	}
}
