@layer variables {
	:root {
		/* COLORS */

		--light-blue: #a2e2eb;
		--dark-blue: #4edcf1;
		--light-green: #b4ffe4;
		--dark-green: #51f6bb;
		--light-yellow: #ffe8bb;
		--dark-yellow: #fcc57a;
		--light-red: #ffa184;
		--dark-red: #f07b56;

		/* FONTS */

		--font-learnings: var(--font-weight-bold) var(--is-mobile, 20px / var(--line-height-1-2)) var(--is-desktop, 32px / var(--line-height-1-5)) var(--font-family-sans);
	}
}

@layer classes {
	/* SIDONOTES */

	@media (min-width: 1920px) {
		[class^='sidenote-'] {
			display: flex;
			flex-direction: column;
		}
	}

	[class^='sidenote-'] > * {
		margin-top: var(--spacing-relative);
	}

	[class^='sidenote-'] > :nth-child(2) {
		margin-top: 0;
	}

	[class^='sidenote-'] > h2 {
		order: 1;

		font: var(--font-section-title-alternate);
	}

	[class^='sidenote-'] > h2::after {
		content: ' ->';
	}

	/* CARDS */

	.cards > * {
		padding-block: 48px;
		padding-inline: 24px;

		background-color: var(--color-normal);
		border-bottom: var(--border-thick);

		transition-property: background-color;
	}

	.cards > .selected {
		background-color: var(--color-selected);
	}

	@media (hover: hover) {
		.cards > :hover,
		.cards:not(:hover, :has(> .selected)) > :first-of-type {
			background-color: var(--color-hover);
		}
	}

	@media (hover: none) {
		.cards:not(:has(> .selected)) > :first-of-type {
			background-color: var(--color-hover);
		}
	}

	.cards > * > * + * {
		margin-top: var(--spacing-relative);
	}
}

@layer layout {
	main {
		display: contents;
	}

	main > * {
		grid-column: inherit;
	}

	/* LOGO */

	body > header > a > img {
		padding-bottom: 48px;
	}

	/* HEADER */

	main > header {
		font: var(--font-section);
	}

	main > header > hgroup > h1 > img {
		padding-bottom: var(--is-mobile, 48px) var(--is-desktop, 192px);
	}

	main > header > hgroup > p,
	main > header > div {
		--background: var(--dark);
		--mixins: var(--full-bleed);

		color: var(--light);
	}

	main > header > hgroup > p {
		/* HACK come above full-bleed */
		position: relative;
		z-index: 1;

		padding-top: var(--is-mobile, 48px) var(--is-desktop, 192px);

		font: var(--font-section-title);
	}

	main > header > div {
		padding-top: 48px;
		padding-bottom: var(--is-mobile, 48px) var(--is-desktop, 192px);
	}

	main > header > div > :not(:first-child) {
		margin-top: var(--spacing-relative);
	}

	/* READ THE POST */

	main > aside {
		display: revert;
	}

	main > aside > img {
		margin-top: 0;
		margin-right: var(--is-mobile, 8px) var(--is-desktop, 16px);

		float: left;
	}

	main > aside > a {
		display: block;
	}

	/* NOTE mobile/desktop */
	@media (max-width: 1919.5px) {
		main > aside {
			grid-row: 4;

			position: revert;

			max-width: revert;

			margin-top: 96px;
			margin-inline: 0;

			padding-block: 48px;
			padding-inline: 24px;

			border: var(--border-thin);
			border-color: var(--lighter-grey);
			border-radius: var(--border-radius);

			visibility: visible;

			color: var(--grey);
		}

		main > aside > a {
			margin-top: var(--spacing-relative);

			font-weight: var(--font-weight-bold);
			text-decoration: none;

			transition-property: color;
		}

		main > aside > a:hover {
			color: var(--dark);
		}

		main > aside > a::after {
			content: ' ->';
		}
	}

	@media (min-width: 1920px) {
		main > aside {
			color: var(--light-grey);
		}

		main > aside > a {
			max-width: var(--third);

			margin-top: 48px;

			padding-block: 16px;
			padding-inline: 24px;

			border: var(--border-thin);
			border-radius: var(--border-radius);

			font: var(--font-input);
			font-weight: var(--font-weight-bold);

			text-decoration: none;
			text-align: center;

			transition-property: border-color, color;
		}

		main > aside > a:hover {
			color: var(--light);
		}
	}

	/* LEARNINGS */

	#learnings {
		--color-selected: var(--dark-green);
		--color-hover: var(--light-green);
		--color-normal: var(--light-yellow);

		grid-column-end: -1;
	}

	#learnings > div {
		--background: var(--dark);
		--mixins: var(--full-bleed);

		position: absolute;
	}

	#learnings > header {
		margin-top: 96px;
	}

	#learnings > ul {
		list-style-type: none;

		font: var(--font-learnings);
	}

	#learnings > ul > li {
		display: flex;
		align-items: center;
		gap: var(--is-mobile, 8px) var(--is-desktop, 24px);

		padding-block: var(--is-mobile, 24px) var(--is-desktop, 48px);
		padding-right: max(var(--padding), (100vw - var(--width)) / 2);
	}

	#learnings > ul > li:first-child {
		position: relative;
	}

	#learnings > ul > li:first-child > :nth-child(2) {
		margin-top: 0;
	}

	/* MAKING TOGETHER */

	#making-together {
		--color-selected: var(--dark-blue);
		--color-hover: var(--light-blue);
		--color-normal: var(--light-yellow);

		grid-column-end: -1;

		padding-block: var(--is-mobile, 96px) var(--is-desktop, 192px);
		padding-right: var(--padding);
	}

	#making-together > div {
		--column-width: calc((var(--width) - var(--spacing-gap) * 2) / 3);

		margin-top: var(--is-mobile, 48px) var(--is-desktop, 96px);

		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(min(var(--column-width), 100%), 1fr));
		gap: var(--spacing-gap);
	}

	/* NOTE --width + column-gaps */
	@media (min-width: 1008px) {
		#making-together > div {
			grid-template-columns: repeat(auto-fill, var(--column-width));
		}

		#making-together > .see-more {
			margin-left: calc((var(--width) - 340px) / 2);
		}
	}

	/* LET'S PLAY */

	#lets-play {
		--color-selected: var(--dark-red);
		--color-hover: var(--light-red);
		--color-normal: var(--dark-yellow);
	}

	#lets-play > header {
		--background: var(--dark);
		--mixins: var(--full-bleed);

		padding-block: var(--is-mobile, 48px) var(--is-desktop, 96px);

		color: var(--light);
	}

	#lets-play > header > img {
		width: var(--is-mobile, 96px) var(--is-desktop, 128px);
	}

	#lets-play > header > h2 {
		color: var(--light-red);
	}

	#lets-play > aside {
		margin-bottom: 96px;

		color: var(--light-grey);
	}

	#lets-play > div {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(min(var(--third), 100%), 1fr));
		gap: var(--spacing-gap);
	}

	#lets-play > div > .cards {
		display: contents;
	}

	#lets-play > div > div > article:first-child {
		position: relative;
	}

	#lets-play > div > div > article:first-child::before {
		--background: var(--dark);
		--mixins: var(--full-bleed);

		content: '';

		position: absolute;
		inset: 0;
		bottom: 50%;
		z-index: -1;
	}

	#lets-play > div > div > article:first-child > :nth-child(2) {
		margin-top: 0;
	}

	#lets-play > div > .button {
		grid-column: -2;
		align-self: end;

		margin-top: var(--is-desktop, 24px);

		background-color: var(--light-red);

		transition-property: background-color;
	}

	#lets-play > div > .button:hover {
		background-color: var(--dark-red);
	}

	/* MASTERS OF CARE */

	#masters-of-care {
		padding-block: var(--is-mobile, 96px) var(--is-desktop, 192px);
	}

	#masters-of-care > ul {
		margin-top: var(--is-mobile, 48px) var(--is-desktop, 96px);

		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(min(var(--half), 100%), 1fr));
		column-gap: var(--spacing-gap);
		row-gap: 96px;

		list-style-type: none;
	}

	#masters-of-care > ul > li {
		display: flex;
		gap: var(--is-mobile, 24px) var(--is-desktop, 48px);
	}

	#masters-of-care > ul > li > img {
		height: fit-content;
	}

	#masters-of-care > ul > li:nth-child(3) > img {
		margin-left: -17px;
		margin-right: -13px;
	}
}
