*,
*::after,
*::before {
	box-sizing: border-box;
}

:root {
	font-size: 30px;
	--page-padding: 2rem;
	--color-text: #000;
	--color-bg: #fff;
	--color-link: rgba(0,0,0,0.8);
	--color-link-hover: #000;
	--color-list-item: #000;
	--color-title: #000;
	--color-number: #000;
  --color-bg-effect: white;
  --blendmode-effect: difference;
  --bg-blur: 0px;
  --font-size-list-item: 18px;
}
@font-face{font-family:'Teko';src:url('../../media/Teko-VariableFont_wght.ttf') format('truetype');font-display:swap;}

body {
	margin: 0;
	color: #fff;
	background-color: #000;
	font-family: 'Teko', "Inter", sans-serif;
	font-weight: 300;
	font-optical-sizing: auto;
	text-transform: uppercase;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	width: 100vw !important;
	min-height: 100vh;
	user-select: none; -webkit-user-select: none;/* Safari */ -moz-user-select: none;/* Firefox */ -ms-user-select: none;/* IE/Edge */ -webkit-user-drag: none; /* Prevent drag on WebKit browsers */
}

body::before{animation:grain 8s steps(10) infinite;background-image:url(../../media/noiseWII.png);content:'';height:300%;left:-50%;opacity:1;position:fixed;top:-100%;width:300%;z-index: 999;mix-blend-mode: difference;pointer-events: none;}
@keyframes grain{0%,100%{transform:translate(0,0);}10%{transform:translate(-5%,-10%);}20%{transform:translate(-15%,5%);}30%{transform:translate(7%,-25%);}40%{transform:translate(-5%,25%);}50%{transform:translate(-15%,10%);}60%{transform:translate(15%,0%);}70%{transform:translate(0%,15%);}80%{transform:translate(3%,35%);}90%{transform:translate(-10%,10%);}}

.demo-3 {
	--color-text: #fff;
	--color-bg: #000;
	--color-link: #ddd;
	--color-link-hover: #fff;
	--color-list-item: #fff;
	--color-title: #fff;
	--color-number: #fff;
}

.section-1{height:3vh;width:100vw;color:#000;background-color:#fff;position:fixed;display:flex;align-items:center;top:1vh;z-index:2;overflow:hidden;}
.section-2{height:3vh;width:100vw;color:#000;background-color:#fff;position:fixed;display:flex;align-items:center;bottom:1vh;z-index:2;overflow:hidden;}
.team-copy{height:50vh;margin-top:25vh;margin-bottom:25vh;margin-right:0;margin-left:0;overflow:hidden;}
.team-copy0{display:flex;white-space:nowrap;overflow:hidden;}
.team-copy0-wrap{font-size:.66rem;font-weight:normal; letter-spacing:10px;line-height:15vh;padding-right:0.3em;margin:-0.3rem 0;}
.team-copy0-wrap span{display:flex;align-items:center;gap:2px;text-align:center;}
.team-copy0-wrap{animation:subLoop0 5s linear infinite;}
@keyframes subLoop0{from{transform:translateX(0);}to{transform:translateX(-100%);}}

.slider{position:absolute;left: 10vw; top:20vh;width:80vw;height:10vh;overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 10% 90%,transparent);z-index: 2;}
.slider .list{display:flex;align-items:center;width:100%;height:100%;min-width:calc(6vw * var(--quantity));position:relative;}
.slider .list .item{width:6vw;height:100%;position:absolute;left:100%;animation:autoRun 10s linear infinite;transition:filter 0.5s;animation-delay:calc((10s / var(--quantity)) * (var(--position) - 1))!important;}
.slider .list .item img{width:100%;}
@keyframes autoRun{from{left:100%;}to{left:calc(6vw * -1);}}
.slider:hover .item{animation-play-state:paused!important;filter:grayscale(1);}
.slider .item:hover{filter:grayscale(0);}
.slider[reverse="true"] .item{animation:reversePlay 10s linear infinite;}
@keyframes reversePlay{from{left:calc(6vw * -1);}to{left:100%;}}

main {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	justify-content: space-between;
}

a {
	text-decoration: none;
	color: var(--color-link);
	outline: none;
	cursor: pointer;
}

a:hover {
	text-decoration: none;
	color: var(--color-link-hover);
	outline: none;
}

/* Better focus styles from https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible */
a:focus {
	/* Provide a fallback style for browsers
	 that don't support :focus-visible */
	outline: none;
}

a:focus-visible {
	/* Draw a very noticeable focus style for
	 keyboard-focus on browsers that do support
	 :focus-visible */
	outline: 2px solid red;
}

.unbutton {
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
	font: inherit;
	cursor: pointer;
}

.unbutton:focus {
	outline: none;
}

.linethrough {text-decoration: line-through;}

.frame {
	font-size: 22px;
	font-weight:400;
	letter-spacing: 1px;
	padding: var(--page-padding);
	position: relative;
	display: grid;
	grid-row-gap: 1rem;
	grid-column-gap: 2rem;
	align-items: start;
	pointer-events: none;
	justify-items: start;
	grid-template-columns: auto auto;
	grid-template-areas: 'title' 'archive' 'back' 'github' 'sponsor' 'demos';
}

.frame #cdawrap {
	justify-self: start;
}

.frame a {
  pointer-events: auto;
}

.frame__title {
  grid-area: title;
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}

.frame__back {
  grid-area: back;
  justify-self: start;
}

.frame__archive {
  grid-area: archive;
  justify-self: start;
}

.frame__sub {
  grid-area: sub;
}

.frame__github {
  grid-area: github;
}

.frame__tags {
  grid-area: tags;
}

.frame__hire {
  grid-area: hire;
}

.frame__demos {
	grid-area: demos;
	display: flex;
	gap: 1rem;
}

.content {
	display: flex;
	flex-direction: column;
	padding: 0 var(--page-padding) 2rem;
	justify-content: center;
	position: absolute;
	bottom: 5vh;
	width: 100vw;
}

.content__title {
	font-size: 18px;
	color: var(--color-title);
}

.spacer {
	margin-top: 15vh;
}

.list {
	margin: 0;
	padding: 0;
	width: 100%;
	list-style: none;
	display: flex;
	flex-direction: column;
	counter-reset: item 0;
}

.content p {
	padding: 5vh var(--page-padding) 0;
	font-size: 12px;
	max-width: 900px;
}

.list__item {
	font-size: 28px;
	cursor: pointer;
	width: 100%;
	display: grid;
	color: #ddd;
	grid-column-gap: 0rem;
	padding: 0.1rem 0;
	grid-template-columns: 100%;
	justify-content: space-between;
	align-items: start;
	justify-items: start;
}

.list__item::before {
	color: #fff;
    content: counter(item, decimal-leading-zero);
    counter-increment: item;
    font-weight: 500;
    padding: 3px 3px 0;
	line-height: 0.8;
}

.list--alt .list__item::before {
  content: "EVT#" counter(item, decimal-leading-zero) "0";
}

.list__item-col {
	flex: none;
	padding: 3px 3px 0;
	line-height: 0.8;
}

.hover-effect .word {
  white-space: nowrap;
}

.hover-effect .char {
  position: relative;
}

.hover-effect {
  font-kerning: none;
  position: relative;
  white-space: nowrap;
}

.hover-effect--cursor-square .char {
  --opa: 0;
}

.hover-effect--cursor-square .char::after {
	content: '';
	width: 1ch;
	top: 0;
	left: 0;
	position: absolute;
	opacity: var(--opa);
}

.hover-effect--cursor-square .char::after {
  background: currentColor;
  height: 100%;
}

.hover-effect--bg,
.hover-effect--bg-south {
  --anim: 0;
}

.hover-effect--bg::after,
.hover-effect--bg-south::after {
	content: '';
	position: absolute;
	left: 0;
	width: 100%;
	height: calc(100% + 3px);
	top: 0;
	background-color: var(--color-bg-effect);
	mix-blend-mode: var(--blendmode-effect);
	-webkit-backdrop-filter: blur(var(--bg-blur));
	backdrop-filter: blur(var(--bg-blur));
  transform-origin: 0% 50%;
	transform: scaleX(var(--anim));
}

.hover-effect--bg-south::after {
	z-index: -1;
	left: -8px;
	right: -8px;
	top: -8px;
	bottom: -8px;
	border-radius: 2px;
	height: auto;
	width: auto;
	transform-origin: 50% 100%;
	transform: scaleY(var(--anim));
}

@media screen and (min-width: 40em) {
	.list__item {
		grid-template-columns: auto 1fr 1fr 1fr auto;
	}
	
}

@media screen and (min-width: 53em) {
	.frame {
		grid-template-columns: auto auto auto auto 1fr 1fr;
		grid-template-areas: 'title back archive github demos sponsor';
	}
	.frame #cdawrap, 
	.frame__demos {
		justify-self: end;
	}
	.frame #cdawrap {
	  text-align: right;
	}
}

@media screen and (min-width: 73em) {
	.list__item {
		grid-template-columns: 100px 1fr 30% 1fr 1fr;
	}
	.demo-4 .list__item {
		grid-template-columns: 100px 1fr 1fr auto ;
	}
	.list__item-col:last-child {
		justify-self: end;
	}
}

@media only screen and (max-device-width: 768px){
  .slider { top: 10vh; height: 20vw; /* Increase height to accommodate larger items */ }
  .slider .list { min-width: calc(20vw * var(--quantity)); /* Updated min-width */ }
  .slider .list .item { width: 20vw; /* Updated width */ }
  @keyframes autoRun { from { left: 100%; } to { left: calc(20vw * -1); /* Updated width in animation */ } }
  @keyframes reversePlay { from { left: calc(20vw * -1); /* Updated width in animation */ } to { left: 100%; } }

  main {position:absolute;top:20vh;left:50%;transform:translateX(-50%); display: flex;flex-direction: column;justify-content: start;align-items: center;}
  .content {position: relative;}
}
