:root {
	--card-height: 40vw;
	--card-margin: 4vw;
	--card-top-offset: 1em;
	--numcards: 4;
	--outline-width: 0px;
}

#cccards {
	padding-bottom: calc(var(--numcards) * var(--card-top-offset));
	/* Make place at bottom, as items will slide to that position*/
	margin-bottom: var(--card-margin);
	/* Don't include the --card-margin in padding, as that will affect the scroll-timeline*/
}

#cccard_1 {
	--index: 1;
}

#cccard_2 {
	--index: 2;
}

#cccard_3 {
	--index: 3;
}

#cccard_4 {
	--index: 4;
}

.cccard {
	position: sticky;
	top: 75px;
	padding-top: calc((var(--index) * var(--card-top-offset)) );
}

@supports (animation-timeline: works) {

	@scroll-timeline cards-element-scrolls-in-body {
		source: selector(body);
		scroll-offsets:
			/* Start when the start edge touches the top of the scrollport */
			selector(#cccards) start 1,
			/* End when the start edge touches the start of the scrollport */
			selector(#cccards) start 0;
		start: selector(#cccards) start 1;
		/* Start when the start edge touches the top of the scrollport */
		end: selector(#cccards) start 0;
		/* End when the start edge touches the start of the scrollport */
		time-range: 4s;
	}

	.cccard {
		--index0: calc(var(--index) - 1);
		/* 0-based index */
		--reverse-index: calc(var(--numcards) - var(--index0));
		/* reverse index */
		--reverse-index0: calc(var(--reverse-index) - 1);
		/* 0-based reverse index */
	}

	.cccard__content {
		transform-origin: 50% 0%;
		will-change: transform;

		--duration: calc(var(--reverse-index0) * 1s);
		--delay: calc(var(--index0) * 1s);

		animation: var(--duration) linear scale var(--delay) forwards;
		animation-timeline: cards-element-scrolls-in-body;
	}

	@keyframes scale {
		to {
			transform:
				scale(calc(1.1 - calc(0.1 * var(--reverse-index))));
		}
	}
}
 

/** PAGE STYLING **/

* {
	/* Poor Man's Reset */
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}


header,
main {
	width: 80vw;
	margin: 0 auto;
}

header {
	height: 100vh;
	display: grid;
	place-items: center;
}

#cccards {
	list-style: none;
	outline: calc(var(--outline-width) * 10) solid blue;

	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: repeat(var(--numcards), var(--card-height));
	gap: var(--card-margin);
}

.cccard {
	outline: var(--outline-width) solid hotpink;
}

.cccard__content {
	box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.1), 0 .2em 1em rgba(0, 0, 0, 0.1);
	background: #ffffff;
	border-radius: 1em;
	overflow: hidden;

	display: grid;
	grid-template-areas: "text img";
	grid-template-columns: 2fr 1fr;
	grid-template-rows: auto;

	align-items: stretch;
	outline: var(--outline-width) solid lime;
}

.cccard__content>div {
	grid-area: text;
	width: 80%;
	place-self: center;
	text-align: left;

	display: grid;
	gap: 1em;
	place-items: start;
}

.cccard__content>figure {
	grid-area: img;
	overflow: hidden;
	margin-bottom:0px;
}

.cccard__content>figure>img {
	width: 100%;
	height: 100%;
	object-fit: fill;
}


aside {
	width: 50vw;
	margin: 0 auto;
	text-align: left;
}

aside p {
	margin-bottom: 1em;
}