:root
{
	--ink: #132928;
	--ink-soft: #203c39;
	--river: #0d5d67;
	--river-light: #7eb5b4;
	--acid: #d7ef61;
	--paper: #f2f0e9;
	--paper-deep: #e6e4dc;
	--white: #fffef9;
	--line: rgba(19, 41, 40, 0.18);
	--line-light: rgba(255, 255, 255, 0.18);
	--muted: #65716e;
	--display: "Saira Condensed", sans-serif;
	--body: "Source Sans 3", sans-serif;
	--display-leading: 1.04;
	--display-leading-small: 1.1;
	--page-pad: clamp(24px, 5vw, 76px);
	--section-space: clamp(88px, 12vw, 172px);
}

html
{
	background: var(--paper);
	scroll-padding-top: 100px;
}

body
{
	background: var(--paper);
	color: var(--ink);
	font-family: var(--body);
	font-size: 17px;
}

body.menu_open
{
	overflow: hidden;
}

::selection
{
	background: var(--acid);
	color: var(--ink);
}

:focus-visible
{
	outline: 3px solid var(--acid);
	outline-offset: 4px;
}

.sr_only
{
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip_link
{
	position: fixed;
	z-index: 1000;
	top: 12px;
	left: 12px;
	padding: 10px 16px;
	background: var(--acid);
	color: var(--ink);
	font-weight: 700;
	transform: translateY(-150%);
	transition: transform 180ms ease;
}

.skip_link:focus
{
	transform: translateY(0);
}

.site_header
{
	position: sticky;
	z-index: 100;
	top: 0;
	background: rgba(242, 240, 233, 0.92);
	border-bottom: 1px solid var(--line);
	backdrop-filter: blur(18px);
	transition: box-shadow 200ms ease, background 200ms ease;
}

.site_header.is_scrolled
{
	background: rgba(242, 240, 233, 0.98);
	box-shadow: 0 14px 40px rgba(19, 41, 40, 0.08);
}

.site_header_grid
{
	display: grid;
	grid-template-columns: minmax(230px, 1fr) auto minmax(230px, 1fr);
	align-items: stretch;
	min-height: 84px;
}

.brand
{
	display: flex;
	align-items: center;
	gap: 14px;
	padding-left: var(--page-pad);
}

.brand_mark
{
	position: relative;
	display: grid;
	width: 38px;
	height: 38px;
	grid-template-columns: repeat(3, 1fr);
	gap: 3px;
	overflow: hidden;
	transform: skewX(-13deg);
}

.brand_mark i
{
	background: var(--ink);
}

.brand_mark i:nth-child(2)
{
	background: var(--river);
	transform: translateY(8px);
}

.brand_mark i:nth-child(3)
{
	background: var(--acid);
	transform: translateY(16px);
}

.brand_copy
{
	display: flex;
	flex-direction: column;
	line-height: 1;
}

.brand_copy strong
{
	font-family: var(--display);
	font-size: 27px;
	letter-spacing: 0.08em;
}

.brand_copy small
{
	margin-top: 5px;
	color: var(--muted);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.desktop_nav
{
	display: flex;
	align-items: stretch;
}

.desktop_nav a
{
	position: relative;
	display: flex;
	align-items: center;
	padding: 0 24px;
	color: #3b4d4a;
	font-size: 14px;
	font-weight: 600;
}

.desktop_nav a::after
{
	position: absolute;
	right: 24px;
	bottom: 19px;
	left: 24px;
	height: 2px;
	background: var(--river);
	content: "";
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 220ms ease;
}

.desktop_nav a:hover::after,
.desktop_nav a.is_active::after
{
	transform: scaleX(1);
	transform-origin: left;
}

.header_contact
{
	display: flex;
	align-items: center;
	align-self: stretch;
	justify-self: end;
	gap: 36px;
	min-width: 230px;
	padding: 0 var(--page-pad) 0 28px;
	background: var(--ink);
	color: var(--white);
	font-size: 14px;
	font-weight: 600;
	transition: color 180ms ease, background 180ms ease;
}

.header_contact:hover
{
	background: var(--river);
	color: var(--acid);
}

.header_contact svg,
.text_link svg
{
	width: 20px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: square;
	stroke-width: 1.7;
	transition: transform 180ms ease;
}

.header_contact:hover svg,
.text_link:hover svg
{
	transform: translateX(5px);
}

.menu_button,
.mobile_nav
{
	display: none;
}

.eyebrow
{
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--river);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.eyebrow::before
{
	width: 28px;
	height: 1px;
	background: currentColor;
	content: "";
}

.eyebrow_light
{
	color: var(--acid);
}

.button
{
	display: inline-flex;
	min-height: 58px;
	align-items: center;
	justify-content: center;
	padding: 0 28px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.03em;
	transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

.button:hover
{
	transform: translateY(-2px);
}

.button_accent
{
	background: var(--acid);
	color: var(--ink);
}

.button_accent:hover
{
	background: var(--white);
}

.button_dark
{
	background: var(--ink);
	color: var(--white);
}

.button_dark:hover
{
	background: var(--river);
	color: var(--acid);
}

.text_link
{
	display: inline-flex;
	align-items: center;
	gap: 24px;
	color: var(--white);
	font-size: 14px;
	font-weight: 600;
}

.text_link_dark
{
	color: var(--ink);
}

.hero
{
	position: relative;
	overflow: hidden;
	background: var(--ink);
	color: var(--white);
}

.hero::before
{
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
	background-size: 64px 64px;
	content: "";
	mask-image: linear-gradient(90deg, black, transparent 72%);
}

.hero_grid
{
	position: relative;
	display: grid;
	min-height: min(760px, calc(100vh - 84px));
	grid-template-columns: 1.08fr 0.92fr;
}

.hero_content
{
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding: clamp(80px, 10vw, 140px) var(--page-pad);
}

.hero_title
{
	margin-top: 32px;
	font-family: var(--display);
	font-size: clamp(68px, 8.4vw, 142px);
	font-weight: 600;
	letter-spacing: -0.035em;
	line-height: var(--display-leading);
	text-transform: uppercase;
}

.hero_title span
{
	color: var(--acid);
	font-style: italic;
	font-weight: 500;
}

.hero_lead
{
	max-width: 640px;
	margin-top: 44px;
	color: rgba(255, 255, 255, 0.7);
	font-size: clamp(18px, 1.4vw, 22px);
	line-height: 1.55;
}

.hero_actions
{
	display: flex;
	align-items: center;
	gap: 42px;
	margin-top: 46px;
}

.hero_console
{
	position: relative;
	align-self: center;
	width: min(88%, 610px);
	margin: 50px auto;
	background: #edf0e8;
	border: 1px solid rgba(255, 255, 255, 0.24);
	color: var(--ink);
	box-shadow: 28px 28px 0 rgba(9, 91, 102, 0.45);
	transform: rotate(1.4deg);
}

.hero_console::after
{
	position: absolute;
	z-index: -1;
	top: -22px;
	right: -22px;
	width: 92px;
	height: 92px;
	border-top: 2px solid var(--acid);
	border-right: 2px solid var(--acid);
	content: "";
}

.console_header,
.console_axis,
.console_footer
{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 18px;
	font-family: var(--display);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
}

.console_header
{
	background: var(--acid);
	border-bottom: 1px solid var(--ink);
}

.console_status
{
	display: flex;
	align-items: center;
	gap: 7px;
}

.console_status i
{
	width: 7px;
	height: 7px;
	background: var(--river);
	border-radius: 50%;
	box-shadow: 0 0 0 4px rgba(13, 93, 103, 0.13);
}

.console_axis
{
	color: var(--muted);
	font-size: 10px;
}

.console_list
{
	border-top: 1px solid var(--line);
}

.console_row
{
	display: grid;
	grid-template-columns: 54px minmax(130px, 1fr) 120px;
	align-items: center;
	min-height: 62px;
	border-bottom: 1px solid var(--line);
}

.console_code
{
	display: grid;
	align-self: stretch;
	place-items: center;
	border-right: 1px solid var(--line);
	color: var(--river);
	font-family: var(--display);
	font-size: 14px;
	font-weight: 700;
}

.console_row strong
{
	padding: 0 16px;
	font-family: var(--display);
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.console_line
{
	height: 6px;
	margin-right: 18px;
	background: rgba(19, 41, 40, 0.11);
}

.console_line i
{
	display: block;
	width: var(--flow, 72%);
	height: 100%;
	background: var(--river);
}

.console_row:nth-child(2) .console_line i { --flow: 82%; }
.console_row:nth-child(3) .console_line i { --flow: 64%; }
.console_row:nth-child(4) .console_line i { --flow: 76%; }
.console_row:nth-child(5) .console_line i { --flow: 58%; }
.console_row:nth-child(6) .console_line i { --flow: 69%; }

.console_footer
{
	color: var(--muted);
	font-size: 10px;
}

.hero_strip
{
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--line-light);
}

.hero_strip > div
{
	display: grid;
	grid-template-columns: 42px 1fr;
	gap: 2px 14px;
	padding: 26px var(--page-pad);
	border-right: 1px solid var(--line-light);
}

.hero_strip > div:last-child
{
	border-right: 0;
}

.hero_strip span
{
	grid-row: 1 / 3;
	color: var(--acid);
	font-family: var(--display);
	font-size: 13px;
}

.hero_strip strong
{
	font-family: var(--display);
	font-size: 19px;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.hero_strip small
{
	color: rgba(255, 255, 255, 0.54);
	font-size: 13px;
}

.section
{
	padding: var(--section-space) var(--page-pad);
}

.section_heading
{
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
	gap: clamp(40px, 8vw, 130px);
	align-items: end;
	margin-bottom: clamp(60px, 8vw, 110px);
}

.section_heading h2,
.process_intro h2,
.home_about_content h2
{
	max-width: 820px;
	margin-top: 24px;
	font-family: var(--display);
	font-size: clamp(48px, 6.4vw, 98px);
	font-weight: 600;
	letter-spacing: -0.035em;
	line-height: var(--display-leading);
	text-transform: uppercase;
}

.section_heading > p,
.process_intro > p,
.home_about_content > p
{
	color: var(--muted);
	font-size: 18px;
	line-height: 1.65;
}

.category_grid
{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--line);
	border-left: 1px solid var(--line);
}

.category_card
{
	display: flex;
	min-height: 380px;
	flex-direction: column;
	padding: clamp(28px, 3.5vw, 50px);
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	transition: background 260ms ease, color 260ms ease, transform 260ms ease;
	transition-delay: var(--delay, 0ms);
}

.category_card:hover
{
	z-index: 1;
	background: var(--ink);
	color: var(--white);
	transform: translateY(-8px);
}

.category_card_top
{
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: var(--river);
	font-family: var(--display);
	font-size: 14px;
	font-weight: 700;
}

.category_card_top svg
{
	width: 26px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
	transition: transform 200ms ease;
}

.category_card:hover .category_card_top
{
	color: var(--acid);
}

.category_card:hover .category_card_top svg
{
	transform: translate(4px, -4px);
}

.category_card h3
{
	margin-top: auto;
	font-family: var(--display);
	font-size: clamp(35px, 3vw, 50px);
	font-weight: 600;
	line-height: var(--display-leading-small);
	text-transform: uppercase;
}

.category_card p
{
	margin-top: 24px;
	color: var(--muted);
	font-size: 15px;
	line-height: 1.6;
}

.category_card:hover p
{
	color: rgba(255, 255, 255, 0.65);
}

.category_card a
{
	margin-top: 34px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.03em;
}

.category_card:hover a
{
	color: var(--acid);
}

.operating_section
{
	display: grid;
	grid-template-columns: minmax(340px, 0.85fr) minmax(0, 1.15fr);
	gap: clamp(50px, 9vw, 150px);
	background: var(--river);
	color: var(--white);
}

.operating_statement h2
{
	margin-top: 30px;
	font-family: var(--display);
	font-size: clamp(56px, 7vw, 108px);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: var(--display-leading);
	text-transform: uppercase;
}

.operating_statement em
{
	color: var(--acid);
	font-weight: 500;
}

.operating_grid
{
	border-top: 1px solid var(--line-light);
}

.operating_note
{
	display: grid;
	grid-template-columns: 54px 1fr;
	gap: 8px 26px;
	padding: 36px 0;
	border-bottom: 1px solid var(--line-light);
}

.note_index
{
	grid-row: 1 / 3;
	color: var(--acid);
	font-family: var(--display);
	font-size: 16px;
	font-weight: 700;
}

.operating_note h3
{
	font-family: var(--display);
	font-size: 29px;
	font-weight: 600;
	line-height: var(--display-leading-small);
	text-transform: uppercase;
}

.operating_note p
{
	max-width: 560px;
	color: rgba(255, 255, 255, 0.66);
	font-size: 15px;
	line-height: 1.65;
}

.process_section
{
	display: grid;
	grid-template-columns: minmax(300px, 0.8fr) minmax(0, 1.2fr);
	gap: clamp(60px, 10vw, 160px);
	background: var(--white);
}

.process_intro
{
	align-self: start;
	position: sticky;
	top: 130px;
}

.process_intro > p
{
	max-width: 510px;
	margin-top: 34px;
}

.process_intro .text_link
{
	margin-top: 38px;
}

.process_steps
{
	counter-reset: steps;
	border-top: 1px solid var(--line);
}

.process_steps li
{
	display: grid;
	grid-template-columns: 90px 1fr;
	gap: 30px;
	min-height: 220px;
	align-items: center;
	border-bottom: 1px solid var(--line);
}

.process_steps > li > span
{
	color: var(--river);
	font-family: var(--display);
	font-size: 14px;
	font-weight: 700;
}

.process_steps h3
{
	font-family: var(--display);
	font-size: clamp(40px, 4vw, 64px);
	font-weight: 600;
	line-height: var(--display-leading-small);
	text-transform: uppercase;
}

.process_steps p
{
	max-width: 520px;
	margin-top: 14px;
	color: var(--muted);
}

.home_about
{
	display: grid;
	grid-template-columns: 0.55fr 1.45fr;
	gap: clamp(50px, 9vw, 150px);
	background: var(--paper-deep);
}

.home_about_number
{
	color: var(--river);
	font-family: var(--display);
	font-size: clamp(70px, 10vw, 170px);
	font-weight: 600;
	line-height: 0.8;
}

.home_about_content h2
{
	max-width: 930px;
}

.home_about_content > p
{
	max-width: 680px;
	margin-top: 34px;
}

.home_about_content .button
{
	margin-top: 38px;
}

.page_hero
{
	display: grid;
	min-height: 620px;
	grid-template-columns: 150px minmax(0, 1fr) minmax(280px, 0.4fr);
	gap: clamp(32px, 5vw, 80px);
	align-items: end;
	padding: clamp(90px, 12vw, 160px) var(--page-pad) 80px;
	background:
		linear-gradient(90deg, transparent 49.9%, var(--line) 50%, transparent 50.1%),
		var(--paper);
	border-bottom: 1px solid var(--line);
}

.page_hero_index
{
	align-self: start;
	padding-top: 14px;
	border-top: 2px solid var(--ink);
	color: var(--river);
	font-family: var(--display);
	font-size: 15px;
	font-weight: 700;
}

.page_hero_content h1
{
	margin-top: 28px;
	font-family: var(--display);
	font-size: clamp(62px, 7.4vw, 126px);
	font-weight: 600;
	letter-spacing: -0.045em;
	line-height: var(--display-leading);
	text-transform: uppercase;
}

.page_hero_content h1 span
{
	color: var(--river);
	font-style: italic;
	font-weight: 500;
}

.page_hero_lead
{
	padding-bottom: 8px;
	color: var(--muted);
	font-size: 18px;
	line-height: 1.65;
}

.corporate_manifesto
{
	display: grid;
	grid-template-columns: 0.55fr 1.45fr;
	gap: 80px;
}

.manifesto_label
{
	display: flex;
	align-items: flex-start;
	gap: 24px;
	color: var(--river);
	font-family: var(--display);
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.manifesto_label i
{
	flex: 1;
	height: 1px;
	margin-top: 12px;
	background: var(--line);
}

.manifesto_copy
{
	max-width: 980px;
}

.manifesto_copy p
{
	font-family: var(--display);
	font-size: clamp(34px, 4vw, 62px);
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.08;
}

.manifesto_copy p + p
{
	margin-top: 56px;
	color: var(--muted);
	font-family: var(--body);
	font-size: 20px;
	line-height: 1.7;
}

.principles_section
{
	background: var(--white);
}

.principles_grid
{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--line);
}

.principle
{
	min-height: 380px;
	padding: 42px clamp(24px, 3vw, 48px);
	border-right: 1px solid var(--line);
}

.principle:last-child
{
	border-right: 0;
}

.principle > span
{
	color: var(--river);
	font-family: var(--display);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.principle h3
{
	margin-top: 90px;
	font-family: var(--display);
	font-size: clamp(30px, 3vw, 46px);
	font-weight: 600;
	line-height: var(--display-leading-small);
	text-transform: uppercase;
}

.principle p
{
	margin-top: 28px;
	color: var(--muted);
	line-height: 1.65;
}

.capability_band
{
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: clamp(60px, 10vw, 160px);
	background: var(--ink);
	color: var(--white);
}

.capability_title h2
{
	margin-top: 28px;
	font-family: var(--display);
	font-size: clamp(54px, 6.5vw, 102px);
	font-weight: 600;
	line-height: var(--display-leading);
	text-transform: uppercase;
}

.capability_list
{
	border-top: 1px solid var(--line-light);
}

.capability_list div
{
	display: grid;
	grid-template-columns: 50px 1fr;
	gap: 20px;
	padding: 25px 0;
	border-bottom: 1px solid var(--line-light);
}

.capability_list span
{
	color: var(--acid);
	font-family: var(--display);
	font-size: 13px;
}

.capability_list strong
{
	font-family: var(--display);
	font-size: 25px;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: var(--display-leading-small);
	text-transform: uppercase;
}

.corporate_cta
{
	text-align: center;
}

.corporate_cta .eyebrow
{
	justify-content: center;
}

.corporate_cta h2
{
	max-width: 1100px;
	margin: 32px auto 46px;
	font-family: var(--display);
	font-size: clamp(50px, 6vw, 94px);
	font-weight: 600;
	letter-spacing: -0.035em;
	line-height: var(--display-leading);
	text-transform: uppercase;
}

.category_directory
{
	background: var(--white);
}

.directory_item
{
	display: grid;
	grid-template-columns: 150px minmax(280px, 0.9fr) minmax(300px, 0.8fr) 90px;
	gap: clamp(30px, 5vw, 80px);
	align-items: center;
	min-height: 430px;
	padding: 70px var(--page-pad);
	border-bottom: 1px solid var(--line);
	scroll-margin-top: 84px;
	transition: background 220ms ease;
}

.directory_item:hover
{
	background: #eef0e8;
}

.directory_code
{
	align-self: start;
	color: var(--river);
	font-family: var(--display);
	font-size: clamp(64px, 7vw, 108px);
	font-weight: 600;
	line-height: 0.8;
}

.directory_intro h2
{
	margin-top: 20px;
	font-family: var(--display);
	font-size: clamp(44px, 5vw, 78px);
	font-weight: 600;
	line-height: var(--display-leading);
	text-transform: uppercase;
}

.directory_intro > p:last-child
{
	max-width: 620px;
	margin-top: 26px;
	color: var(--muted);
	line-height: 1.65;
}

.directory_items
{
	border-top: 1px solid var(--line);
}

.directory_items li
{
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 13px 0;
	border-bottom: 1px solid var(--line);
	font-size: 15px;
}

.directory_items li span
{
	width: 6px;
	height: 6px;
	background: var(--river);
	transform: rotate(45deg);
}

.directory_action
{
	display: grid;
	width: 64px;
	height: 64px;
	place-items: center;
	background: var(--ink);
	color: var(--white);
	transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

.directory_action:hover
{
	background: var(--acid);
	color: var(--ink);
	transform: rotate(-4deg);
}

.directory_action svg
{
	width: 28px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
}

.category_notice
{
	display: grid;
	grid-template-columns: 1fr 0.65fr;
	gap: clamp(60px, 10vw, 160px);
	background: var(--river);
	color: var(--white);
}

.category_notice h2
{
	margin-top: 24px;
	font-family: var(--display);
	font-size: clamp(54px, 6vw, 90px);
	font-weight: 600;
	line-height: var(--display-leading);
	text-transform: uppercase;
}

.category_notice > div:last-child
{
	align-self: end;
}

.category_notice > div:last-child p
{
	color: rgba(255, 255, 255, 0.68);
	font-size: 19px;
	line-height: 1.65;
}

.category_notice .button
{
	margin-top: 38px;
}

.contact_workspace
{
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
	gap: 1px;
	background: var(--line);
}

.contact_form_column,
.contact_context
{
	background: var(--white);
	padding: clamp(60px, 8vw, 120px) var(--page-pad);
}

.contact_form_heading
{
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 22px;
	margin-bottom: 58px;
}

.contact_form_heading > span,
.context_header > span
{
	color: var(--river);
	font-family: var(--display);
	font-size: 14px;
	font-weight: 700;
}

.contact_form_heading h2,
.context_header h2
{
	font-family: var(--display);
	font-size: 38px;
	font-weight: 600;
	line-height: var(--display-leading-small);
	text-transform: uppercase;
}

.contact_form_heading p
{
	margin-top: 10px;
	color: var(--muted);
	font-size: 14px;
}

.form_errors
{
	margin-bottom: 36px;
	padding: 22px 26px;
	background: #f7e4dc;
	border-left: 4px solid #a9442f;
	color: #702c20;
}

.form_errors ul
{
	margin-top: 10px;
	padding-left: 18px;
	list-style: square;
	font-size: 14px;
}

.form_grid
{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 34px 28px;
}

.form_field
{
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.form_grid + .form_field
{
	margin-top: 34px;
}

.form_field label
{
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.form_field label span
{
	color: var(--river);
}

.form_field input,
.form_field select,
.form_field textarea
{
	width: 100%;
	border: 0;
	border-bottom: 1px solid var(--line);
	border-radius: 0;
	background: transparent;
	color: var(--ink);
	outline: 0;
	transition: border-color 160ms ease, background 160ms ease;
}

.form_field input,
.form_field select
{
	height: 58px;
}

.form_field textarea
{
	min-height: 190px;
	padding: 18px 0;
	resize: vertical;
}

.form_field input:focus,
.form_field select:focus,
.form_field textarea:focus
{
	border-color: var(--river);
	background: rgba(13, 93, 103, 0.035);
}

.form_field small
{
	color: var(--muted);
	font-size: 12px;
}

.form_honeypot
{
	position: absolute;
	left: -10000px;
}

.form_submit
{
	display: flex;
	align-items: center;
	gap: 28px;
	margin-top: 38px;
}

.form_submit .button
{
	gap: 34px;
}

.form_submit svg
{
	width: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
}

.form_submit p
{
	max-width: 300px;
	color: var(--muted);
	font-size: 12px;
}

.contact_context
{
	background: var(--paper-deep);
}

.context_header
{
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 22px;
	margin-bottom: 54px;
}

.context_item
{
	padding: 22px 0;
	border-top: 1px solid var(--line);
}

.context_item small,
.context_process > small
{
	display: block;
	margin-bottom: 8px;
	color: var(--muted);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.context_item a,
.context_item address
{
	font-family: var(--display);
	font-size: 23px;
	font-weight: 600;
	line-height: 1.3;
}

.context_process
{
	margin-top: 70px;
	padding-top: 22px;
	border-top: 1px solid var(--line);
}

.context_process li
{
	display: grid;
	grid-template-columns: 40px 1fr;
	gap: 16px;
	padding: 15px 0;
	border-bottom: 1px solid var(--line);
	font-size: 15px;
}

.context_process li span
{
	color: var(--river);
	font-family: var(--display);
	font-size: 12px;
	font-weight: 700;
}

.contact_success
{
	grid-column: 1 / -1;
	display: flex;
	min-height: 620px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 80px var(--page-pad);
	background: var(--white);
	text-align: center;
}

.success_mark
{
	display: grid;
	width: 84px;
	height: 84px;
	margin-bottom: 34px;
	place-items: center;
	background: var(--acid);
}

.success_mark svg
{
	width: 40px;
	fill: none;
	stroke: var(--ink);
	stroke-width: 2;
}

.contact_success h2
{
	margin-top: 24px;
	font-family: var(--display);
	font-size: clamp(54px, 6vw, 90px);
	font-weight: 600;
	line-height: var(--display-leading);
	text-transform: uppercase;
}

.contact_success > p:not(.eyebrow)
{
	max-width: 520px;
	margin-top: 18px;
	color: var(--muted);
	font-size: 18px;
}

.contact_success .button
{
	margin-top: 34px;
}

.error_page
{
	display: grid;
	min-height: 720px;
	grid-template-columns: 0.8fr 1.2fr;
	align-items: center;
	padding: 90px var(--page-pad);
	background: var(--ink);
	color: var(--white);
}

.error_code
{
	color: var(--acid);
	font-family: var(--display);
	font-size: clamp(160px, 26vw, 440px);
	font-weight: 600;
	letter-spacing: -0.08em;
	line-height: 0.7;
	opacity: 0.92;
}

.error_content h1
{
	margin-top: 28px;
	font-family: var(--display);
	font-size: clamp(56px, 7vw, 110px);
	font-weight: 600;
	line-height: var(--display-leading);
	text-transform: uppercase;
}

.error_content > p:not(.eyebrow)
{
	max-width: 560px;
	margin-top: 28px;
	color: rgba(255, 255, 255, 0.65);
	font-size: 19px;
}

.error_actions
{
	display: flex;
	align-items: center;
	gap: 36px;
	margin-top: 42px;
}

.site_footer
{
	background: #0c211f;
	color: var(--white);
}

.site_footer_intro
{
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 60px;
	padding: clamp(80px, 10vw, 140px) var(--page-pad);
	border-bottom: 1px solid var(--line-light);
}

.site_footer_intro h2
{
	margin-top: 26px;
	font-family: var(--display);
	font-size: clamp(56px, 7.5vw, 116px);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: var(--display-leading);
	text-transform: uppercase;
}

.footer_cta
{
	display: grid;
	flex: 0 0 auto;
	width: clamp(150px, 14vw, 210px);
	height: clamp(150px, 14vw, 210px);
	place-items: center;
	background: var(--acid);
	color: var(--ink);
	font-family: var(--display);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-align: center;
	text-transform: uppercase;
	transform: rotate(-4deg);
	transition: transform 220ms ease, background 220ms ease;
}

.footer_cta:hover
{
	background: var(--white);
	transform: rotate(0);
}

.footer_cta svg
{
	width: 32px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
}

.site_footer_grid
{
	display: grid;
	grid-template-columns: 1.5fr repeat(3, 0.65fr);
	gap: 50px;
	padding: 74px var(--page-pad);
}

.footer_brand strong
{
	font-family: var(--display);
	font-size: 42px;
	letter-spacing: 0.1em;
}

.footer_brand p
{
	max-width: 360px;
	margin-top: 18px;
	color: rgba(255, 255, 255, 0.5);
	font-size: 14px;
}

.footer_socials
{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 30px;
}

.footer_socials a
{
	display: grid;
	width: 43px;
	height: 43px;
	place-items: center;
	border: 1px solid var(--line-light);
	color: rgba(255, 255, 255, 0.72);
	transition: background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.footer_socials a:hover
{
	border-color: var(--acid);
	background: var(--acid);
	color: var(--ink);
	transform: translateY(-3px);
}

.footer_socials svg
{
	display: block;
	width: 19px;
	height: 19px;
}

.footer_socials .social_icon_fill
{
	fill: currentColor;
}

.footer_socials .social_icon_line
{
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.footer_socials .social_icon_dot
{
	fill: currentColor;
	stroke: none;
}

.footer_column
{
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 9px;
}

.footer_column h3
{
	margin-bottom: 15px;
	color: var(--acid);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.footer_column a,
.footer_column address
{
	color: rgba(255, 255, 255, 0.65);
	font-size: 14px;
	transition: color 160ms ease;
}

.footer_column a:hover
{
	color: var(--white);
}

.site_footer_bottom
{
	display: flex;
	justify-content: space-between;
	padding: 22px var(--page-pad);
	border-top: 1px solid var(--line-light);
	color: rgba(255, 255, 255, 0.38);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.reveal
{
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 650ms ease, transform 650ms cubic-bezier(0.2, 0.72, 0.2, 1);
}

.reveal.is_visible
{
	opacity: 1;
	transform: translateY(0);
}

@media (max-width: 1180px)
{
	.site_header_grid
	{
		grid-template-columns: 1fr auto;
	}

	.desktop_nav,
	.header_contact
	{
		display: none;
	}

	.menu_button
	{
		display: flex;
		width: 84px;
		height: 84px;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 8px;
		background: var(--ink);
		color: var(--white);
	}

	.menu_button i
	{
		width: 25px;
		height: 1px;
		background: currentColor;
		transition: transform 180ms ease;
	}

	.menu_button[aria-expanded="true"] i:first-of-type
	{
		transform: translateY(4.5px) rotate(45deg);
	}

	.menu_button[aria-expanded="true"] i:last-of-type
	{
		transform: translateY(-4.5px) rotate(-45deg);
	}

	.mobile_nav
	{
		position: absolute;
		z-index: 99;
		top: 100%;
		right: 0;
		left: 0;
		display: flex;
		height: calc(100vh - 84px);
		height: calc(100dvh - 84px);
		flex-direction: column;
		padding: 50px var(--page-pad);
		overflow-y: auto;
		background: var(--ink);
		color: var(--white);
	}

	.mobile_nav a
	{
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 18px 0;
		border-bottom: 1px solid var(--line-light);
		font-family: var(--display);
		font-size: clamp(36px, 7vw, 58px);
		font-weight: 600;
		text-transform: uppercase;
	}

	.mobile_nav a span
	{
		color: var(--acid);
		font-size: 13px;
	}

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

	.hero_console
	{
		width: min(86%, 720px);
	}

	.hero_strip > div
	{
		padding-right: 26px;
		padding-left: 26px;
	}

	.category_grid
	{
		grid-template-columns: repeat(2, 1fr);
	}

	.page_hero
	{
		grid-template-columns: 100px 1fr;
	}

	.page_hero_lead
	{
		grid-column: 2;
		max-width: 620px;
	}

	.directory_item
	{
		grid-template-columns: 90px 1fr 0.8fr 64px;
	}

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

	.site_footer_grid
	{
		grid-template-columns: 1.2fr repeat(3, 0.8fr);
	}
}

@media (max-width: 820px)
{
	:root
	{
		--page-pad: 22px;
		--section-space: 86px;
	}

	body
	{
		font-size: 16px;
	}

	.site_header_grid,
	.menu_button
	{
		min-height: 72px;
		height: 72px;
	}

	.brand
	{
		padding-left: 20px;
	}

	.brand_mark
	{
		width: 31px;
		height: 31px;
	}

	.brand_copy strong
	{
		font-size: 23px;
	}

	.brand_copy small
	{
		font-size: 8px;
	}

	.mobile_nav
	{
		height: calc(100vh - 72px);
		height: calc(100dvh - 72px);
	}

	.hero_grid
	{
		min-height: auto;
	}

	.hero_content
	{
		padding-top: 86px;
		padding-bottom: 64px;
	}

	.hero_title
	{
		font-size: clamp(59px, 18vw, 92px);
	}

	.hero_lead
	{
		margin-top: 34px;
	}

	.hero_actions
	{
		align-items: flex-start;
		flex-direction: column;
		gap: 26px;
	}

	.hero_console
	{
		width: calc(100% - 44px);
		margin: 20px auto 70px;
		box-shadow: 12px 12px 0 rgba(9, 91, 102, 0.45);
		transform: none;
	}

	.console_row
	{
		grid-template-columns: 44px 1fr 76px;
	}

	.console_row strong
	{
		font-size: 15px;
	}

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

	.hero_strip > div
	{
		border-right: 0;
		border-bottom: 1px solid var(--line-light);
		padding: 21px 22px;
	}

	.hero_strip > div:last-child
	{
		border-bottom: 0;
	}

	.section_heading,
	.operating_section,
	.process_section,
	.home_about,
	.corporate_manifesto,
	.capability_band,
	.category_notice
	{
		grid-template-columns: 1fr;
	}

	.section_heading
	{
		gap: 30px;
		margin-bottom: 54px;
	}

	.section_heading h2,
	.process_intro h2,
	.home_about_content h2
	{
		font-size: clamp(44px, 13vw, 66px);
	}

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

	.category_card
	{
		min-height: 330px;
	}

	.operating_section
	{
		gap: 60px;
	}

	.operating_statement h2
	{
		font-size: clamp(51px, 15vw, 76px);
	}

	.process_intro
	{
		position: static;
	}

	.process_steps li
	{
		grid-template-columns: 54px 1fr;
		min-height: 180px;
	}

	.home_about
	{
		gap: 50px;
	}

	.home_about_number
	{
		font-size: 92px;
	}

	.page_hero
	{
		min-height: 590px;
		grid-template-columns: 1fr;
		gap: 34px;
		align-items: start;
		padding-top: 90px;
		padding-bottom: 60px;
		background: var(--paper);
	}

	.page_hero_index
	{
		width: 90px;
	}

	.page_hero_content h1
	{
		font-size: clamp(54px, 16vw, 80px);
	}

	.page_hero_lead
	{
		grid-column: 1;
		align-self: end;
	}

	.corporate_manifesto
	{
		gap: 48px;
	}

	.manifesto_copy p
	{
		font-size: 37px;
	}

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

	.principle
	{
		min-height: auto;
		padding: 42px 0;
		border-right: 0;
		border-bottom: 1px solid var(--line);
	}

	.principle h3
	{
		margin-top: 50px;
	}

	.capability_band
	{
		gap: 60px;
	}

	.directory_item
	{
		grid-template-columns: 64px 1fr;
		gap: 34px 24px;
		min-height: auto;
		padding: 64px 22px;
	}

	.directory_code
	{
		font-size: 56px;
	}

	.directory_items
	{
		grid-column: 2;
	}

	.directory_action
	{
		grid-column: 2;
		width: 56px;
		height: 56px;
	}

	.category_notice
	{
		gap: 46px;
	}

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

	.form_submit
	{
		align-items: flex-start;
		flex-direction: column;
	}

	.error_page
	{
		grid-template-columns: 1fr;
		gap: 70px;
		min-height: 720px;
	}

	.error_code
	{
		font-size: 180px;
	}

	.site_footer_intro
	{
		align-items: flex-start;
		flex-direction: column;
	}

	.site_footer_intro h2
	{
		font-size: clamp(51px, 15vw, 74px);
	}

	.footer_cta
	{
		width: 150px;
		height: 150px;
	}

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

	.footer_brand
	{
		grid-column: 1 / -1;
		margin-bottom: 24px;
	}

	.site_footer_bottom
	{
		align-items: flex-start;
		flex-direction: column;
		gap: 8px;
	}
}

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

	*,
	*::before,
	*::after
	{
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}

	.reveal
	{
		opacity: 1;
		transform: none;
	}
}
