@font-face {
	font-family: "Montserrat";
	src: url("../evergreen/fonts/Montserrat-400.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Montserrat";
	src: url("../evergreen/fonts/Montserrat-700.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Source Sans 3";
	src: url("../evergreen/fonts/SourceSans3-400.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Source Sans 3";
	src: url("../evergreen/fonts/SourceSans3-600.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

:root {
	--forest: #112a28;
	--forest-light: #415553;
	--green: #8aa14a;
	--green-dark: #6f8436;
	--green-soft: #e8ecdc;
	--paper: #fff;
	--canvas: #f5f6f2;
	--ink: #17201f;
	--muted: #596563;
	--line: #dfe4de;
	--font-heading: "Montserrat", "Helvetica Neue", Arial, sans-serif;
	--font-body: "Source Sans 3", "Source Sans Pro", Arial, sans-serif;
	--gutter: clamp(1rem, 4vw, 2.5rem);
	--content: 48rem;
	--ease: cubic-bezier(.2, 0, 0, 1);
}

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

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--font-body);
	font-size: 1.0625rem;
	line-height: 1.72;
	-webkit-font-smoothing: antialiased;
}

a {
	color: inherit;
	text-decoration-color: color-mix(in srgb, var(--green) 65%, transparent);
	text-decoration-thickness: .0625rem;
	text-underline-offset: .2rem;
}

a:hover {
	color: var(--green-dark);
}

*:focus-visible {
	outline: .125rem solid var(--green);
	outline-offset: .2rem;
}

.skip-link {
	position: fixed;
	top: 1rem;
	left: 1rem;
	z-index: 100;
	transform: translateY(-180%);
	padding: .75rem 1rem;
	background: var(--paper);
	color: var(--forest);
	font-weight: 600;
	transition: transform 180ms var(--ease);
}

.skip-link:focus {
	transform: translateY(0);
}

.reading-progress {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 90;
	width: 100%;
	height: .2rem;
	pointer-events: none;
}

.reading-progress span {
	display: block;
	width: 0;
	height: 100%;
	background: var(--green);
	transition: width 80ms linear;
}

.report-header {
	background: var(--forest);
	color: #fff;
}

.report-header__inner,
.report-intro__inner,
.report-layout,
.report-footer > div {
	width: min(100%, 76rem);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.report-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 5.25rem;
}

.report-header__brand img {
	display: block;
	width: 8.5rem;
	height: auto;
}

.report-header__back {
	font-size: .9375rem;
	font-weight: 600;
	text-decoration: none;
}

.report-header__back:hover {
	color: var(--green-soft);
}

.report-intro {
	position: relative;
	overflow: hidden;
	background: var(--forest);
	color: #fff;
}

.report-intro::after {
	position: absolute;
	right: -5rem;
	bottom: -12rem;
	width: 31rem;
	height: 31rem;
	border: 5rem solid rgba(138, 161, 74, .12);
	border-radius: 50%;
	content: "";
}

.report-intro__inner {
	position: relative;
	z-index: 1;
	padding-top: clamp(3.5rem, 8vw, 7rem);
	padding-bottom: clamp(4rem, 10vw, 8rem);
}

.eyebrow {
	margin: 0 0 1.25rem;
	color: var(--green);
	font-family: var(--font-heading);
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .13em;
	line-height: 1.4;
	text-transform: uppercase;
}

.report-intro h1 {
	max-width: 57rem;
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(2.25rem, 6vw, 4.75rem);
	font-weight: 400;
	letter-spacing: -.04em;
	line-height: 1.04;
}

.report-intro__lede {
	max-width: 42rem;
	margin: 1.75rem 0 0;
	color: rgba(255, 255, 255, .78);
	font-size: clamp(1.1rem, 2vw, 1.35rem);
	line-height: 1.55;
}

.report-intro__meta {
	margin: 2.5rem 0 0;
	color: rgba(255, 255, 255, .58);
	font-size: .875rem;
	letter-spacing: .03em;
}

.report-layout {
	display: grid;
	grid-template-columns: minmax(11rem, 14rem) minmax(0, var(--content));
	gap: clamp(3rem, 8vw, 8rem);
	justify-content: start;
	padding-top: clamp(3.5rem, 8vw, 7rem);
	padding-bottom: clamp(5rem, 10vw, 9rem);
}

.report-sidebar {
	min-width: 0;
}

.report-toc {
	position: sticky;
	top: 2rem;
	max-height: calc(100vh - 4rem);
	overflow-y: auto;
	scrollbar-width: thin;
}

.report-toc > p {
	margin: 0 0 1rem;
	color: var(--forest);
	font-family: var(--font-heading);
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.report-toc ol {
	display: grid;
	gap: .125rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.report-toc a {
	display: block;
	padding: .35rem 0 .35rem .85rem;
	border-left: .125rem solid var(--line);
	color: var(--muted);
	font-size: .875rem;
	line-height: 1.35;
	text-decoration: none;
	transition: border-color 160ms var(--ease), color 160ms var(--ease);
}

.report-toc a:hover,
.report-toc a[aria-current="location"] {
	border-left-color: var(--green);
	color: var(--forest);
}

.report-mobile-toc {
	display: none;
}

.report-content {
	min-width: 0;
}

.report-article > h1:first-child {
	display: none;
}

.report-article h2,
.report-article h3,
.report-article h4 {
	scroll-margin-top: 2rem;
	color: var(--forest);
	font-family: var(--font-heading);
	letter-spacing: -.025em;
}

.report-article h2 {
	margin: 5.5rem 0 1.5rem;
	padding-top: 1.25rem;
	border-top: .0625rem solid var(--line);
	font-size: clamp(1.7rem, 4vw, 2.45rem);
	font-weight: 400;
	line-height: 1.2;
}

.report-article h2:first-of-type {
	margin-top: 0;
}

.report-article h3 {
	margin: 3rem 0 1rem;
	font-size: 1.35rem;
	line-height: 1.3;
}

.report-article h4 {
	margin: 2rem 0 .75rem;
	font-size: 1.05rem;
	line-height: 1.4;
}

.report-article p {
	margin: 0 0 1.25rem;
}

.report-article strong {
	color: var(--forest);
	font-weight: 600;
}

.report-article ul,
.report-article ol {
	display: grid;
	gap: .65rem;
	margin: 1.25rem 0 2rem;
	padding-left: 1.35rem;
}

.report-article li::marker {
	color: var(--green-dark);
	font-weight: 600;
}

.report-article blockquote {
	margin: 2rem 0;
	padding: 1.25rem 1.5rem;
	border-left: .25rem solid var(--green);
	background: var(--canvas);
	color: var(--forest-light);
}

.report-article blockquote p {
	margin: 0;
}

.report-article code {
	padding: .1rem .3rem;
	background: var(--canvas);
	color: var(--forest);
	font-size: .88em;
}

.report-article pre {
	overflow-x: auto;
	margin: 1.75rem 0;
	padding: 1.25rem 1.5rem;
	background: var(--forest);
	color: #edf1e7;
	font-size: .9rem;
	line-height: 1.6;
}

.report-article pre code {
	padding: 0;
	background: transparent;
	color: inherit;
}

.report-article hr {
	margin: 4rem 0;
	border: 0;
	border-top: .0625rem solid var(--line);
}

.report__table-wrap {
	overflow-x: auto;
	margin: 1.75rem 0 2.5rem;
	border-top: .125rem solid var(--forest);
}

.report-article table {
	width: 100%;
	border-collapse: collapse;
	font-size: .9375rem;
	line-height: 1.45;
}

.report-article th,
.report-article td {
	padding: .8rem .75rem;
	border-bottom: .0625rem solid var(--line);
	text-align: left;
	vertical-align: top;
}

.report-article th {
	background: var(--canvas);
	color: var(--forest);
	font-weight: 600;
}

.report__media-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin: 2rem 0;
}

.report__media-grid figure {
	margin: 0;
}

.report__media-grid img {
	display: block;
	width: 100%;
	height: auto;
}

.report__media-note {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	margin: 1.5rem 0 2.5rem;
	padding: 1.15rem 1.25rem;
	border: .0625rem solid var(--line);
	color: var(--muted);
}

.report__media-note strong {
	display: block;
	margin-bottom: .15rem;
	font-size: .95rem;
}

.report__media-note p {
	margin: 0;
	font-size: .9rem;
	line-height: 1.45;
}

.report__media-icon {
	display: grid;
	flex: 0 0 2rem;
	place-items: center;
	width: 2rem;
	height: 2rem;
	background: var(--green-soft);
	color: var(--green-dark);
	font-weight: 600;
}

.report-footer {
	background: var(--forest);
	color: rgba(255, 255, 255, .7);
	font-size: .9rem;
}

.report-footer > div {
	display: flex;
	justify-content: space-between;
	gap: 2rem;
	padding-top: 2rem;
	padding-bottom: 2rem;
}

.report-footer a {
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}

@media (max-width: 56rem) {
	.report-layout {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}

	.report-toc {
		display: none;
	}

	.report-mobile-toc {
		display: block;
		background: var(--canvas);
	}

	.report-mobile-toc summary {
		padding: 1rem 1.25rem;
		color: var(--forest);
		cursor: pointer;
		font-family: var(--font-heading);
		font-size: .8rem;
		font-weight: 700;
		letter-spacing: .08em;
		text-transform: uppercase;
	}

	.report-mobile-toc nav {
		padding: 0 1.25rem 1.25rem;
	}

	.report-mobile-toc ol {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: .25rem 1rem;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.report-mobile-toc a {
		display: block;
		padding: .35rem 0;
		color: var(--muted);
		font-size: .875rem;
		line-height: 1.35;
		text-decoration: none;
	}
}

@media (max-width: 38rem) {
	body {
		font-size: 1rem;
	}

	.report-header__inner {
		min-height: 4.5rem;
	}

	.report-header__brand img {
		width: 7.25rem;
	}

	.report-header__back {
		font-size: .8125rem;
	}

	.report-intro::after {
		right: -13rem;
		bottom: -18rem;
	}

	.report-mobile-toc ol {
		grid-template-columns: 1fr;
	}

	.report-article h2 {
		margin-top: 4.25rem;
	}

	.report__media-grid {
		grid-template-columns: 1fr;
	}

	.report-footer > div {
		flex-direction: column;
		gap: .5rem;
	}
}

@media print {
	.reading-progress,
	.skip-link,
	.report-header,
	.report-sidebar,
	.report-footer {
		display: none;
	}

	body {
		font-size: 10pt;
	}

	.report-intro {
		background: none;
		color: var(--forest);
	}

	.report-intro__inner {
		padding: 0 0 2rem;
	}

	.report-intro__lede,
	.report-intro__meta {
		color: var(--muted);
	}

	.report-layout {
		display: block;
		padding: 0;
	}

	.report-article h2,
	.report-article h3 {
		break-after: avoid;
	}

	.report__table-wrap,
	.report-article blockquote,
	.report__media-note {
		break-inside: avoid;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition-duration: .01ms !important;
	}
}
