:root {
--ink:#101719;
--paper:#f4f2ed;
--blue:#2aa4d6;
--cyan:#72d4ef;
--gold:#e3a642;
--line:rgba(16, 23, 25, .18);
--pad:clamp(1.25rem, 5vw, 5.75rem)
}
* {
	box-sizing:border-box
}
html {
	scroll-behavior:smooth
}
body {
	margin:0;
	background:var(--paper);
	color:var(--ink);
	font-family:"DM Sans", sans-serif;
	font-size:16px;
	line-height:1.6
}
img {
	display:block;
	width:100%
}
a {
	color:inherit;
	text-decoration:none
}
b{
	font-weight: 600;
}
strong{
	font-weight: 800;
}
#shell {
	position: relative;
}
/* from common */
.pad {
	padding: .5em;
}
.right {
	text-align: right;
}
.center, .center > p {
	text-align: center;
}
.error {
	color: #E92D25;
}
.errorborder {
	background-color: #990000;
	border: 1px solid #E92D25;
	color: #FFFFFF;
}
.errorborder a, .errorborder a:link, .errorborder a:visited {
	color: #FFDA1F !important;
	text-decoration: none;
}
.errorborder a:hover, .errorborder a:visited:hover {
	color: #FFDA1F !important;
	text-decoration: underline;
}

.success {
	color: #0066CC;
}
.successborder {
	background-color: #DDDDDD;
	border: 1px solid #0066CC;
	color: #0066CC;
}
.successborder a, .successborder a:link, .successborder a:visited {
	color: #000000 !important;
	text-decoration: none;
}
.successborder a:hover, .successborder a:visited:hover {
	color: #000000 !important;
	text-decoration: underline;
}
/* end from common */
h1, h2, h3, p {
	margin-top:0
}
h1, h2 {
	font-family:Manrope, sans-serif;
	letter-spacing:-.045em;
	line-height:1.02
}
h2 {
	font-size:clamp(2.6rem, 6vw, 6.5rem);
	font-weight:600
}
em {
	font-family:Georgia, serif;
	font-weight:400;
	color:#278bb5
}
.blue {
	color:var(--blue);
}
.cyan {
	color:var(--cyan);
}
.site-header {
	position:absolute;
	z-index:5;
	top:0;
	left:0;
	width:100%;
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:1.4rem var(--pad);
	color:white;
	border-bottom:1px solid rgba(255, 255, 255, .25)
}
.brand {
	display:flex;
	align-items:center;
	gap:.8rem;
	font:600 .75rem/1.05 Manrope, sans-serif;
	letter-spacing:.08em
}
.brand-mark {
	display:flex;
	gap:3px;
	align-items:flex-end;
	height:28px
}
.brand-mark i {
	display:block;
	width:5px;
	background:var(--cyan);
	transform:skew(-10deg)
}
.brand-mark i:nth-child(1) {
	height:18px
}
.brand-mark i:nth-child(2) {
	height:27px
}
.brand-mark i:nth-child(3) {
	height:22px
}
nav {
	display:flex;
	align-items:center;
	gap:clamp(1rem, 2.5vw, 2.5rem);
	font-size:.83rem;
	font-weight:600;
	letter-spacing:.025em
}
nav a:not(.nav-cta) {
	border-bottom:1px solid transparent
}
nav a:hover {
	border-color:currentColor
}
.nav-cta {
	padding:.7rem 1.05rem;
	border:1px solid rgba(255, 255, 255, .55)
}
.menu-button {
	display:none;
	background:none;
	border:1px solid rgba(255, 255, 255, .6);
	color:white;
	padding:.5rem .8rem
}
.hero {
	min-height:100svh;
	position:relative;
	color:white;
	display:flex;
	align-items:flex-end;
	overflow:hidden
}
.hero>img {
	position:absolute;
	inset:0;
	height:100%;
	object-fit:cover;
	object-position:center
}
.hero-shade {
	position:absolute;
	inset:0;
	background:linear-gradient(90deg, rgba(4, 13, 17, .82) 0%, rgba(4, 13, 17, .45) 48%, rgba(4, 13, 17, .08) 75%), linear-gradient(0deg, rgba(4, 13, 17, .55), transparent 45%)
}
.hero-content {
	position:relative;
	z-index:1;
	width:min(960px, 88vw);
	padding:clamp(9rem, 17vh, 13rem) var(--pad) clamp(5rem, 11vh, 8rem)
}
.sub-hero {
	position:relative;
	min-height:560px;
	color:white;
	display:flex;
	align-items:flex-end;
	overflow:hidden
}
.sub-hero>img {
	position:absolute;
	inset:0;
	height:100%;
	object-fit:cover
}
.sub-hero-shade {
	position:absolute;
	inset:0;
	background:linear-gradient(90deg, rgba(4, 13, 17, .87), rgba(4, 13, 17, .36) 68%, rgba(4, 13, 17, .12))
}
.sub-hero-content {
	position:relative;
	z-index:1;
	padding:clamp(10rem, 20vh, 14rem) var(--pad) clamp(4rem, 8vw, 7rem);
	max-width:960px
}
.sub-hero h1 {
	font-size:clamp(4rem, 8vw, 8rem);
	font-weight:600;
	margin-bottom:1rem
}
.sub-hero-content>p:last-child {
	font:600 clamp(1.15rem, 2vw, 1.55rem)/1.5 Manrope, sans-serif;
	max-width:720px;
	color:rgba(255, 255, 255, .9)
}
.eyebrow, .section-kicker {
	text-transform:uppercase;
	letter-spacing:.17em;
	font-size:.72rem;
	font-weight:600
}
.eyebrow:before {
	content:"";
	display:inline-block;
	width:2.5rem;
	height:1px;
	background:var(--cyan);
	vertical-align:middle;
	margin-right:.9rem
}
.eyebrow.dark {
	color:#247e9f
}
.hero h1 {
	font-size:clamp(3.6rem, 8.2vw, 8.8rem);
	font-weight:600;
	max-width:1000px;
	margin-bottom:1.3rem
}
.hero-copy {
	font-family:Manrope, sans-serif;
	font-size:clamp(1.15rem, 2vw, 1.65rem);
	line-height:1.45;
	max-width:680px;
	color:rgba(255, 255, 255, .88)
}
.hero-actions, .support-actions {
	display:flex;
	align-items:center;
	gap:2rem;
	margin-top:2rem
}
.button, .form-card .button {
	display:inline-flex;
	padding:.95rem 1.35rem;
	font-weight:600;
	font-size:.88rem;
	letter-spacing:.02em;
	transition:.25s
}
.button-primary {
	background:var(--cyan);
	color:#0a2128
}
.button:hover {
	transform:translateY(-2px)
}
.text-link {
	font-weight:600;
	font-size:.9rem;
	border-bottom:1px solid currentColor;
	padding-bottom:.2rem
}
.form-submit, .form-card .form-submit {
	background:#177da2;
	color:white;
	justify-content:center;
	min-height:52px
}
.scroll-cue {
	position:absolute;
	right:var(--pad);
	bottom:2.25rem;
	z-index:1;
	font-size:.72rem;
	letter-spacing:.14em;
	text-transform:uppercase;
	display:flex;
	align-items:center;
	gap:.8rem
}
.scroll-cue span {
	width:2.5rem;
	height:1px;
	background:white
}
.section {
	padding:clamp(5.5rem, 10vw, 10rem) var(--pad)
}
.section-kicker {
	padding-bottom:1.4rem;
	border-bottom:1px solid var(--line);
	color:#4d5a5e
}
.vision-grid {
	display:grid;
	grid-template-columns:minmax(0, 1.15fr) minmax(300px, .65fr);
	gap:clamp(3rem, 8vw, 9rem);
	padding-top:3rem
}
.vision-grid h2 {
	font-size:clamp(3rem, 5.7vw, 6rem)
}
.lead {
	font-family:Manrope, sans-serif;
	font-size:clamp(1.25rem, 2vw, 1.7rem);
	line-height:1.48
}
.vision-grid p:not(.lead), .performance-copy>p:not(.eyebrow):not(.lead) {
	color:#526064;
	max-width:38rem
}
.verbs {
	display:flex;
	justify-content:space-between;
	align-items:center;
	margin-top:7rem;
	font:600 clamp(1.3rem, 2.8vw, 2.8rem)/1 Manrope, sans-serif
}
.verbs i {
	width:clamp(1.5rem, 5vw, 6rem);
	height:1px;
	background:var(--line)
}
.experience {
	background:#10252b;
	color:white;
	display:grid;
	grid-template-columns:1.2fr .8fr;
	min-height:750px
}
.experience-image {
	min-height:650px
}
.experience-image img {
	height:100%;
	object-fit:cover
}
.experience-copy {
	padding:clamp(4rem, 8vw, 9rem) var(--pad);
	align-self:center
}
.experience-copy h2 {
	font-size:clamp(3rem, 5vw, 5.8rem)
}
.experience-copy p:not(.eyebrow) {
	max-width:32rem;
	color:#cbd4d5
}
.performance {
	display:grid;
	grid-template-columns:.72fr 1.28fr;
	gap:clamp(3rem, 8vw, 8rem);
	align-items:center
}
.performance-copy h2 {
	font-size:clamp(3rem, 5.1vw, 5.6rem)
}
.performance figure {
	margin:0
}
.performance figure img {
	aspect-ratio:4/3;
	object-fit:cover
}
.performance figcaption {
	font-size:.7rem;
	text-transform:uppercase;
	letter-spacing:.12em;
	color:#687478;
	margin-top:.7rem
}
.day {
	background:#09181d;
	color:white;
	padding:clamp(5rem, 9vw, 9rem) var(--pad);
	display:grid;
	grid-template-columns:.7fr 1.3fr;
	gap:clamp(3rem, 8vw, 10rem)
}
.day-intro {
	position:sticky;
	top:3rem;
	align-self:start
}
.day-intro h2 {
	font-size:clamp(3rem, 5.3vw, 5.8rem)
}
.timeline article {
	display:grid;
	grid-template-columns:8rem 1fr;
	gap:2rem;
	padding:2.4rem 0;
	border-top:1px solid rgba(255, 255, 255, .25)
}
.timeline article:last-child {
	border-bottom:1px solid rgba(255, 255, 255, .25)
}
.timeline time {
	font:600 1.45rem Manrope, sans-serif;
	color:var(--cyan)
}
.timeline small {
	font-size:.65rem;
	letter-spacing:.1em
}
.timeline span {
	font-size:.65rem;
	text-transform:uppercase;
	letter-spacing:.16em;
	color:#9cadb1
}
.timeline h3 {
	font:600 clamp(1.2rem, 2.1vw, 1.9rem)/1.35 Manrope, sans-serif;
	margin:.3rem 0
}
.belong {
	text-align:center
}
.belong h2 {
	margin:0 auto 2.5rem
}
.belong .lead {
	max-width:950px;
	margin:0 auto
}
.support {
	min-height:82vh;
	position:relative;
	background:#177da2;
	color:white;
	display:flex;
	flex-direction:column;
	justify-content:center;
	overflow:hidden;
	padding:clamp(5rem, 10vw, 10rem) var(--pad)
}
.support-glow {
	position:absolute;
	width:65vw;
	height:65vw;
	border:1px solid rgba(255, 255, 255, .2);
	border-radius:50%;
	right:-15vw;
	top:-20vw
}
.support-glow:before, .support-glow:after {
	content:"";
	position:absolute;
	border:1px solid rgba(255, 255, 255, .13);
	border-radius:50%;
	inset:12%
}
.support-glow:after {
	inset:27%
}
.support-inner {
	position:relative;
	max-width:1100px
}
.support h2 {
	font-size:clamp(3.5rem, 7vw, 7rem);
	max-width:1050px;
	margin-bottom:1.5rem
}
.support-inner>p:not(.eyebrow) {
	font-size:clamp(1.1rem, 1.8vw, 1.45rem);
	max-width:670px
}
.button-light {
	background:white;
	color:#12627d
}
.text-link.light {
	color:white
}
.final-line {
	position:absolute;
	right:var(--pad);
	bottom:2.2rem;
	font:600 clamp(.9rem, 1.5vw, 1.25rem) Manrope, sans-serif
}
.final-line span {
	font-family:Georgia, serif;
	font-style:italic
}
footer {
	background:#071115;
	color:#b8c4c6;
	padding:2.5rem var(--pad);
	display:grid;
	grid-template-columns:1fr 1fr auto;
	gap:2rem;
	align-items:center;
	font-size:.8rem
}
footer p {
	margin:0;
	max-width:430px
}
.footer-brand {
	color:white
}
footer>a:last-child {
	border-bottom:1px solid #526268
}
.brand {
	background:#fff;
	padding:.38rem .55rem;
	line-height:0
}
.brand img {
	display:block;
	width:clamp(150px, 15vw, 210px);
	height:auto
}
.footer-brand {
	justify-self:start;
	padding:.55rem .7rem
}
.footer-brand img {
	width:220px
}
.donate-button {
	background:var(--gold);
	border-color:var(--gold);
	color:#101719;
	font-weight:800;
	letter-spacing:.08em;
	box-shadow:0 8px 24px rgba(0, 0, 0, .2)
}
.donate-button:hover {
	background:#f0bb5c;
	border-color:#f0bb5c
}
.day {
	display:block
}
.day-intro {
	position:static;
	max-width:900px
}
.day-intro h2 {
	max-width:850px
}
.timeline {
	display:grid;
	grid-template-columns:repeat(4, minmax(0, 1fr));
	gap:clamp(1rem, 2vw, 2rem);
	margin-top:clamp(3rem, 6vw, 5rem)
}
.timeline article {
	display:flex;
	flex-direction:column;
	gap:.7rem;
	padding:0 0 1.5rem;
	border-top:0;
	border-bottom:1px solid rgba(255, 255, 255, .25)
}
.timeline article:last-child {
	border-bottom:1px solid rgba(255, 255, 255, .25)
}
.timeline-visual {
	margin:0 0 .65rem;
	overflow:hidden;
	aspect-ratio:4/3;
	background:#163039
}
.timeline-visual img {
	height:100%;
	object-fit:cover;
	transition:transform .45s ease
}
.timeline article:hover .timeline-visual img {
	transform:scale(1.025)
}
.timeline time {
	font-size:1.2rem
}
.timeline h3 {
	font-size:clamp(1.05rem, 1.45vw, 1.4rem);
	margin:.2rem 0 0
}
.vision-panorama {
	margin:clamp(3.5rem, 7vw, 6.5rem) 0 0;
	position:relative;
	overflow:hidden;
	background:#d7e7eb
}
.vision-panorama img {
	width:100%;
	aspect-ratio:3/1;
	object-fit:cover
}
.vision-panorama figcaption {
	position:absolute;
	left:1.25rem;
	bottom:1.1rem;
	margin:0;
	padding:.55rem .8rem;
	background:rgba(5, 20, 25, .78);
	color:white;
	font-size:.72rem;
	letter-spacing:.08em;
	text-transform:uppercase;
	backdrop-filter:blur(6px)
}
.vision .verbs {
	margin-top:3.5rem
}

.contact-form-section {
	padding:clamp(5rem, 9vw, 9rem) var(--pad);
	display:grid;
	grid-template-columns:minmax(0, .8fr) minmax(420px, 1fr);
	gap:clamp(3rem, 8vw, 9rem);
	align-items:start
}
.contact-form-intro h2 {
	font-size:clamp(3rem, 5vw, 5.4rem)
}
.contact-form-intro>p:not(.section-kicker) {
	font-size:1.1rem;
	color:#526064;
	max-width:35rem
}
.contact-details {
	display:flex;
	flex-direction:column;
	gap:.25rem;
	margin-top:1.5rem;
	font-style:normal;
	color:#34484e
}
.contact-details strong {
	font-family:Manrope, sans-serif;
	margin-bottom:.2rem
}
.contact-details a {
	color:#177da2;
	font-weight:600;
	width:max-content
}
.form-card, .formtable {
	background:white;
	padding:clamp(1.5rem, 4vw, 3.5rem);
	box-shadow:0 24px 70px rgba(9, 24, 29, .12);
	border-top:5px solid var(--cyan);
	position: relative;
}
.formtable {
	margin: 2em auto;
}
table.formtable td {
	padding:.75rem .85rem;
	vertical-align: top;
}
.form-card .inside {
	display:grid;
	gap:1.35rem
}
.clear-session {
	position: absolute;
	bottom: 1em;
	right: 1em;
}
.clear-session a {
	text-decoration: underline;
}
.form-card label {
	display:grid;
	gap:.45rem;
	font:600 .84rem/1.4 Manrope, sans-serif;
	color:#24363b
}
.form-card .errorborder {
	color: #FFF;
	padding: 4px;
}
.errorborder .required {
	display: none;
}
.form-row {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:1rem
}
.form-card input, .form-card select, .form-card textarea {
	width:100%;
	min-height:48px;
	border:1px solid #b8c5c8;
	background:#fbfcfc;
	color:#101719;
	padding:.75rem .85rem;
	font:400 1rem/1.2 "DM Sans", sans-serif;
	border-radius:0
}
.form-card input:focus, .form-card select:focus {
	outline:3px solid rgba(114, 212, 239, .35);
	border-color:#177da2;
}
.required {
	font-weight:600;
	color:#687478;
}
.consent-copy {
	font-size:.78rem;
	line-height:1.55;
	color:#667579;
	margin:0;
}
.granted, .form-card label.granted {
	display: none;
}
.submitgroup {
	position: relative;
	padding-bottom: 1em;
}
#coverup {
	position: absolute;
	font-size: .85em;
	padding: 3.2em .5em 0;
	text-align: center;
	width: 100%;
	top: 0;
	left: 0;
	color: #990000;
	background-color: rgba(0,0,0,0);
	z-index: 11;
	display: none;
}
#coverup.after {
	display: block;
}
#coverup.after:after {
	content: "Submitting, please wait";
}
.form-honeypot {
	position:absolute!important;
	left:-9999px!important;
	width:1px!important;
	height:1px!important
}
.form-success {
	min-height:450px;
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:flex-start
}
.form-success[hidden] {
	display:none
}
.form-success h2 {
	font-size:clamp(2.5rem, 4vw, 4rem);
	margin-bottom:1rem
}
.form-success>p:not(.eyebrow) {
	font-size:1.1rem;
	color:#526064;
	max-width:34rem
}
.form-success .preview-note {
	font-size:.78rem;
	color:#687478
}
.form-success .button {
	margin-top:1rem
}
@media(prefers-reduced-motion:reduce) {
	html {
		scroll-behavior:auto
	}
	.button {
		transition:none
	}
	.timeline-visual img {
		transition:none
	}
}
@media(max-width:900px) {
	.timeline {
		grid-template-columns:repeat(2, minmax(0, 1fr));
		row-gap:2.5rem
	}
	.contact-form-section {
		grid-template-columns:1fr
	}
	.contact-form-intro {
		max-width:720px
	}
	.sub-hero {
		min-height:520px
	}
}
@media(max-width:820px) {
	.site-header {
		align-items:flex-start
	}
	.menu-button {
		display:block
	}
	.site-header nav {
		display:none;
		position:absolute;
		top:72px;
		left:var(--pad);
		right:var(--pad);
		padding:1.5rem;
		background:#0b2229;
		flex-direction:column;
		align-items:stretch
	}
	.site-header nav.open {
		display:flex
	}
	.hero-shade {
		background:linear-gradient(0deg, rgba(4, 13, 17, .78), rgba(4, 13, 17, .05) 75%)
	}
	.hero-content {
		padding-top:11rem
	}
	.vision-grid, .experience, .performance, .day {
		grid-template-columns:1fr
	}
	.verbs {
		display:grid;
		grid-template-columns:1fr 1fr;
		gap:1.5rem
	}
	.verbs i {
		display:none
	}
	.experience-image {
		min-height:430px
	}
	.experience-copy {
		padding-block:5rem
	}
	.performance-copy {
		order:2
	}
	.performance figure {
		order:1
	}
	.day-intro {
		position:static
	}
	.timeline article {
		grid-template-columns:6rem 1fr
	}
	.support {
		min-height:720px
	}
	.final-line {
		left:var(--pad);
		right:auto
	}
	footer {
		grid-template-columns:1fr
	}
	footer>a:last-child {
		justify-self:start
	}
}
@media(max-width:720px) {
	.vision-panorama img {
		aspect-ratio:16/10
	}
	.vision-panorama figcaption {
		position:static;
		background:#10252b;
		font-size:.68rem;
		line-height:1.4
	}
	.vision .verbs {
		margin-top:2.75rem
	}
}
@media(max-width:600px) {
	.form-row {
		grid-template-columns:1fr
	}
	.contact-form-section {
		padding-block:4rem
	}
	.sub-hero {
		min-height:500px
	}
	.sub-hero h1 {
		font-size:3.6rem
	}
	.form-card {
		padding:1.4rem
	}
	table.formtable td {
		display: block;
	}
	table.formtable td + td {
		padding-top: 0;
	}
	.formtable .right {
		text-align: left;
	}
}
@media(max-width:560px) {
	.timeline {
		grid-template-columns:1fr
	}
	.timeline article {
		gap:.55rem
	}
	.timeline-visual {
		aspect-ratio:16/10
	}
}
@media(max-width:520px) {
	.hero-actions, .support-actions {
		align-items:flex-start;
		flex-direction:column;
		gap:1.3rem
	}
	.hero h1 {
		font-size:3.4rem
	}
	.hero-copy {
		font-size:1.08rem
	}
	.scroll-cue {
		display:none
	}
	.timeline article {
		grid-template-columns:1fr;
		gap:.5rem
	}
	.verbs {
		font-size:1.45rem
	}
	.section {
		padding-block:4.5rem
	}
}
