/* ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------ 6.0/00 - 11-10-2022
/* colors   -> #EE741D | rgba(238,116,29) | hsla(25,86%,53%) */
/* ------------------------------------------------------------------------------ */
/* link     -> https://codepen.io/jh3y/pen/xxWdOQy */
/* info     -> loading */
/* ------------------------------------------------------------------------------ */
/* ROOT and VARIBLES */
:root {
	--hover-bgr:hsla(210,100%,56%,1);
    
    /* cards */
    --card-front-col: rgba(0,0,0,.6); /* black, gray OR client-color */
    --card-front-bgr: #fff;
    --card-back-col: #fff;
    --card-back-bgr: #EE741D;
    --card-ibox-hgt: 14rem;         /* min-height of the card - depends of the text card-back - def 14rem */
    --card-body-bdr: 1px solid rgba(0,0,0,.05);     /* border - def 1px */
    /* grid-area */
    --grid-area-gap: 1rem;          /* gap between flipboxes - def 1rem | min .3rem - check used shadow */
    --grid-area-pad: 1rem;          /* padding - check card-border-radius - def 1rem | min .3rem */
    --grid-area-bgr: none;          /* background - def none */
    --grid-area-bdr: 0px solid rgba(0,0,0,.25);     /* border - def 0px  */
    --grid-area-rad: 0rem;          /* border-radius - def 0rem */
    /* counter - card-front */ 
    --count-color: rgb(255,255,255,1);  /* color of the counter - must be the same as card-back-background AND no transparent */
    --count-size: 2.2rem;                 /* counter size - def 4rem */
    --count-pos-top:1.4rem;                  /* counter position top - def 1rem */
    /*--count-pos-right:1rem;             /* counter position right - def 1.2rem */
    --count-pos-left:1rem;       /* counter position left - NOT IN USE */
    /*--count-pos-bottom: -70%;     /* counter position bottom - NOT IN USE */ 
    --count-width: 1px;             /* counter stroke - def 1px | max 3px */
    /* animation */
    --time-flip: 0.8s;              /* def 0.8s */
	}

/* ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------ 6.0/00 - 11-10-22 */
/* RESET COUNTER -> SEE design.css */
/* LOADING */

*,
*:after,
*:before {
  box-sizing: border-box;
  transform-style: preserve-3d;
  touch-action: none;
}

:root {
  --rotation-y: 0;
  --rotation-x: 0;
	--size: 80vmin;
	--segment: calc(var(--size) / 100);
	--loading-speed: 12s;
	--color: hsl(210 80% 50%);
	--segments-per-second: calc(var(--loading-speed) / var(--total-length));
}

body {
  display: grid;
  place-items: center;
  align-content: center;
  grid-gap:20vmin;
  min-height: 100vh;
  background: hsl(0 0% 90%);
  font-family:  'Google Sans', sans-serif, system-ui;
}

.container:last-of-type {
	--rotation-y: -24;
	--rotation-x: -24;
}

[for] {
	transform: translateZ(200vmin);
	position: fixed;
	inset: 0;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.loading-label {
	position: absolute;
	left: 0;
	bottom: 110%;
	font-weight: bold;
	font-size: clamp(1rem, var(--size) * 0.025, 6rem);
}

.container {
	width: var(--size);
	aspect-ratio: 16 / 1.25;
	position: relative;
}

.scene {
	height: 100%;
  width: 100%;
  transform: translate3d(0, 0, 100vmin) rotateX(calc(var(--rotation-y, 0) * 1deg)) rotateY(calc(var(--rotation-x, 0) * 1deg));
  transition: transform 0.25s;
}

h1 {
  opacity: 0.5;
  color: var(--color);
  font-size: calc(var(--depth, 20vmin) * 0.25);
  position: fixed;
  bottom: 1rem;
  right: 1rem;
  margin: 0;
}

.bar {
	width: 100%;
	height: 100%;
	display: grid;
	grid-template-columns: var(--columns);
}

.bar__segment {
	background: hsl(0 0% 100%);
	transform: translateZ(calc(var(--depth) * var(--segment)));
	border: calc(var(--segment) * 0.5) solid black;
}

.bar__segment:after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--color);
	transform-origin: 0 50%;
	/*animation: reveal calc(var(--length) * var(--segments-per-second)) calc(var(--delay) * var(--segments-per-second)) both linear;*/
	animation-name: var(--name);
	animation-duration: var(--loading-speed);
	animation-fill-mode: both;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}

@keyframes reveal {
	from {
		transform: scaleX(0);
	}
}

.bar__segment:not(:first-of-type, :last-of-type) {
	border-left: transparent;
	border-right: transparent;
}

.bar__segment:first-of-type {
	border-right: transparent;
}
.bar__segment:last-of-type {
	border-left: transparent;
}

.bar__segment:not(.bar__segment--aligned) {
	width: calc(var(--segment) * var(--length));
	transform-origin: 0 50%;
	filter: brightness(0.78);
	transform: translateZ(calc(var(--depth) * var(--segment))) rotateY(var(--rotation, 0deg));
}

.bar__segment--front {
	--rotation: -90deg;
}

.bar__segment--back {
	--rotation: 90deg;
}

/* Perhaps it makes more sense for each segment to have its own keyframe */
/* We know how each keyframes work... */
/**
* 1. Start at 0% plus delay% with scaleX(0). We can normalize the keyframes by dividing 100 / 400 to get a keyframe step.
* 2. Then by the length%, 100% scaleX(1). 
* 3. That's it. Then we don't need delays. Set the animation-name and forget.
* */
/* Keyframes Step = 100 / 400 = 0.25 */
/**
* Step: 100 / 400 = 0.25% ;
* Start: --delay * step || previous ending frame;
* End: (--delay + --length) * step || The next --delay * step;
* */
@keyframes segment-1 {
  0% {
    transform: scaleX(0);
  }
  5%, 100% {
    transform: scaleX(1);
  }

}
@keyframes segment-2 {
  0%, 5% {
    transform: scaleX(0);
  }
  12.5%, 100% {
    transform: scaleX(1);
  }
}
@keyframes segment-3 {
  0%, 12.5% {
    transform: scaleX(0);
  }
  15%, 100% {
    transform: scaleX(1);
  }
}
@keyframes segment-4 {
  0%, 15% {
    transform: scaleX(0);
  }
  27.5%, 100% {
    transform: scaleX(1);
  }
}
@keyframes segment-5 {
  0%, 27.5% {
    transform: scaleX(0);
  }
  30%, 100% {
    transform: scaleX(1);
  }
}
@keyframes segment-6 {
  0%, 30% {
    transform: scaleX(0);
  }
  45%, 100% {
    transform: scaleX(1);
  }
}
@keyframes segment-7 {
  0%, 45% {
    transform: scaleX(0);
  }
  47.5%, 100% {
    transform: scaleX(1);
  }
}
@keyframes segment-8 {
  0%, 47.5% {
    transform: scaleX(0);
  }
  65%, 100% {
    transform: scaleX(1);
  }
}
@keyframes segment-9 {
  0%, 65% {
    transform: scaleX(0);
  }
  70%, 100% {
    transform: scaleX(1);
  }
}
@keyframes segment-10 {
  0%, 70% {
    transform: scaleX(0);
  }
  82.5%, 100% {
    transform: scaleX(1);
  }
}
@keyframes segment-11 {
  0%, 82.5% {
    transform: scaleX(0);
  }
  90%, 100% {
    transform: scaleX(1);
  }
}
@keyframes segment-12 {
  0%, 90% {
    transform: scaleX(0);
  }
  95%, 100% {
    transform: scaleX(1);
  }
}
@keyframes segment-13 {
  0%, 95% {
    transform: scaleX(0);
  }
  100% {
    transform: scaleX(1);
  }
}

/* ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------ 6.0/00 - 21-08-22 */
/* css-counter postion background */
/* https://stackoverflow.com/questions/43514987/css-increasing-number-as-background-images-for-css */	
.box-counter::before { 
	position:absolute;
  display:flex;
	top:var(--count-pos-top,1.2rem);
  /*right:var(--count-pos-right);*/
  /*bottom:var(--count-pos-bottom);*/
  left:var(--count-pos-left);
	justify-content:center;
  align-items:center;
  counter-increment:Element 1;
	content:counter(Element) '';
	font-size:var(--count-size); 
	font: 800 Arial;
	  -webkit-text-fill-color:transparent; /* works FF, Chrome and Edge */
	  -webkit-text-stroke:var(--count-width,1px);
	  -webkit-font-smoothing:antialiased;
	color:var(--count-color); /* must be the same color als card-back background */
    opacity:1;
	/*z-index:999;*/
	}
/* shadow */
/*
.shadow, .flex-item {
  box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.04), 0 2px 2px rgba(0, 0, 0, 0.04), 0 4px 4px rgba(0, 0, 0, 0.04), 0 8px 8px rgba(0, 0, 0, 0.04), 0 16px 16px rgba(0, 0, 0, 0.04);
}
*/	
/* ------------------------------------------------------------------------------ */
/* END */	
/* ------------------------------------------------------------------------------ */