/*
Theme Name: Joshua Whysall Photography
Author: Joshua Whysall Photography
Description: A custom, image-led WordPress theme for a Sunshine Coast wedding photography studio.
Version: 1.0.0
Text Domain: joshua-whysall-photography
*/

@font-face {
	font-family: "Platypi";
	src: url("assets/fonts/platypi-latin-ext.woff2") format("woff2");
	font-weight: 300 800;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0100-024F, U+0250-02FF, U+0300-036F, U+1D00-1DBF, U+1E00-1EFF, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: "Platypi";
	src: url("assets/fonts/platypi.woff2") format("woff2");
	font-weight: 300 800;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122, U+2190-21FF;
}

@font-face {
	font-family: "Platypi";
	src: url("assets/fonts/platypi-italic-latin-ext.woff2") format("woff2");
	font-weight: 300 800;
	font-style: italic;
	font-display: swap;
	unicode-range: U+0100-024F, U+0250-02FF, U+0300-036F, U+1D00-1DBF, U+1E00-1EFF, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: "Platypi";
	src: url("assets/fonts/platypi-italic.woff2") format("woff2");
	font-weight: 300 800;
	font-style: italic;
	font-display: swap;
	unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122, U+2190-21FF;
}

@font-face {
	font-family: "Ysabeau Office";
	src: url("assets/fonts/ysabeau-office-latin-ext.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0100-024F, U+0250-02FF, U+0300-036F, U+1D00-1DBF, U+1E00-1EFF, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: "Ysabeau Office";
	src: url("assets/fonts/ysabeau-office.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122, U+2190-21FF;
}

@font-face {
	font-family: "Great Vibes";
	src: url("assets/fonts/great-vibes-regular-latin-ext.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0100-024F, U+0250-02FF, U+0300-036F, U+1D00-1DBF, U+1E00-1EFF, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: "Great Vibes";
	src: url("assets/fonts/great-vibes-regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122, U+2190-21FF;
}

:root {
	--ink: #151914;
	--ink-soft: #384039;
	--forest: #151515;
	--shell: #f5f4f0;
	--paper: #ebece7;
	--mist: #d9ded8;
	--sage: #97a197;
	--bronze: #6f4b39;
	--line: rgba(21, 25, 20, 0.2);
	--line-light: rgba(255, 255, 255, 0.32);
	--white: #fff;
	--display: "Platypi", Georgia, serif;
	--body: "Ysabeau Office", "Helvetica Neue", Arial, sans-serif;
	--gutter: clamp(1.25rem, 4vw, 4.5rem);
	--max: 1480px;
	--ease: cubic-bezier(0.16, 1, 0.3, 1);
	--header-h: 104px;
	--z-header: 100;
	--z-menu: 200;
}

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

html {
	scroll-behavior: smooth;
	overscroll-behavior-y: none;
	background: var(--shell);
}

body {
	margin: 0;
	overscroll-behavior-y: none;
	background: var(--shell);
	color: var(--ink);
	font-family: var(--body);
	font-size: 18px;
	font-weight: 420;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body:not(.home) {
	padding-top: var(--header-h);
}

body.menu-open {
	overflow: hidden;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
	text-decoration: none;
}

button,
input,
textarea,
select {
	font: inherit;
}

button,
a,
select {
	touch-action: manipulation;
}

button {
	color: inherit;
}

h1,
h2,
h3,
p,
figure,
blockquote {
	margin-top: 0;
}

h1,
h2,
h3 {
	font-family: var(--display);
	font-weight: 380;
	letter-spacing: -0.025em;
	line-height: 1.02;
}

h1 em,
h2 em,
blockquote em {
	font-weight: 350;
}

p {
	max-width: 68ch;
}

::selection {
	background: var(--forest);
	color: var(--white);
}

:focus-visible {
	outline: 2px solid var(--bronze);
	outline-offset: 4px;
}

.skip-link {
	position: fixed;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 1000;
	transform: translateY(-160%);
	background: var(--white);
	color: var(--ink);
	padding: 0.75rem 1rem;
	font-weight: 700;
}

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

.section-pad {
	padding: clamp(6rem, 10vw, 10rem) var(--gutter);
}

.section-rule {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	max-width: var(--max);
	margin: 0 auto clamp(4.5rem, 8vw, 8rem);
	padding-top: 0.85rem;
	border-top: 1px solid var(--line);
	color: var(--ink-soft);
	font-size: 0.67rem;
	font-weight: 650;
	letter-spacing: 0.16em;
	line-height: 1.2;
	text-transform: uppercase;
}

.eyebrow {
	margin-bottom: 1.2rem;
	color: var(--bronze);
	font-size: 0.69rem;
	font-weight: 720;
	letter-spacing: 0.2em;
	line-height: 1.3;
	text-transform: uppercase;
}

.eyebrow--light {
	color: rgba(255, 255, 255, 0.78);
}

.lead {
	font-family: var(--display);
	font-size: clamp(1.35rem, 2vw, 2rem);
	font-weight: 380;
	letter-spacing: -0.025em;
	line-height: 1.35;
}

.button {
	display: inline-flex;
	min-height: 50px;
	align-items: center;
	justify-content: space-between;
	gap: 2.5rem;
	border: 1px solid var(--ink);
	background: transparent;
	padding: 0.72rem 1.15rem;
	color: var(--ink);
	cursor: pointer;
	font-size: 0.73rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1;
	text-transform: uppercase;
	transition: background-color 220ms ease, color 220ms ease, border-color 220ms ease;
}

.button:hover,
.button:focus-visible {
	background: var(--ink);
	color: var(--white);
}

.button--light {
	border-color: rgba(255, 255, 255, 0.68);
	color: var(--white);
}

.button--light:hover,
.button--light:focus-visible {
	border-color: var(--white);
	background: var(--white);
	color: var(--ink);
}

.text-link {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	gap: 2.75rem;
	border-bottom: 1px solid currentColor;
	font-size: 0.72rem;
	font-weight: 720;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	transition: gap 260ms var(--ease), color 180ms ease;
}

.text-link:hover {
	gap: 3.35rem;
	color: var(--bronze);
}

.text-link--light {
	color: var(--white);
}

.text-link--light:hover {
	color: var(--white);
}

/* Header */
.site-header {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	z-index: var(--z-header);
	height: var(--header-h);
	background: rgba(245, 244, 240, 0.96);
	color: var(--ink);
}

.home .site-header {
	background: transparent;
	color: var(--white);
}

.site-header__inner {
	display: grid;
	height: 100%;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	column-gap: clamp(2rem, 4vw, 5.5rem);
	padding: 0 var(--gutter);
	transform: translateY(10px);
}

.desktop-nav {
	display: flex;
	align-items: center;
	gap: clamp(1.3rem, 2.5vw, 2.9rem);
}

.desktop-nav--main {
	justify-content: flex-start;
	padding-left: clamp(2rem, 5.5vw, 5rem);
}

.desktop-nav > a,
.nav-parent__trigger {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	font-size: clamp(0.9rem, 1.1vw, 1.02rem);
	font-weight: 470;
	letter-spacing: 0.035em;
	white-space: nowrap;
}

.desktop-nav > a::after,
.nav-parent__trigger::after {
	position: absolute;
	right: 0;
	bottom: 7px;
	left: 0;
	height: 1px;
	background: currentColor;
	content: "";
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 240ms var(--ease);
}

.desktop-nav > a,
.nav-parent__trigger {
	position: relative;
}

.desktop-nav > a:hover::after,
.nav-parent:hover > .nav-parent__trigger::after,
.nav-parent:focus-within > .nav-parent__trigger::after,
.nav-parent.is-open > .nav-parent__trigger::after {
	transform: scaleX(1);
	transform-origin: left;
}

.nav-parent {
	position: relative;
}

.nav-parent__trigger {
	appearance: none;
	border: 0;
	background: transparent;
	color: inherit;
	cursor: pointer;
	font-family: inherit;
	padding: 0;
}

.nav-dropdown {
	position: absolute;
	top: calc(100% - 2px);
	left: 0;
	display: grid;
	min-width: max-content;
	visibility: hidden;
	transform: translateY(8px);
	background: transparent;
	opacity: 0;
	padding: 1rem 0 0.75rem;
	color: inherit;
	transition: opacity 180ms ease, transform 240ms var(--ease);
}

body:not(.home) .nav-dropdown {
	left: -1.25rem;
	background: var(--shell);
	padding: 1rem 1.25rem .75rem;
	box-shadow: 0 18px 32px rgba(21, 25, 20, .08);
}

body:not(.home) .nav-dropdown a {
	text-shadow: none;
}

.nav-dropdown a {
	display: flex;
	min-height: 44px;
	align-items: center;
	font-size: clamp(0.9rem, 1.1vw, 1.02rem);
	font-weight: 470;
	letter-spacing: 0.035em;
	text-shadow: 0 1px 18px rgba(0, 0, 0, 0.2);
	white-space: nowrap;
}

.nav-dropdown a:last-child {
	border-bottom: 0;
}

.nav-dropdown a:hover {
	color: var(--bronze);
}

.no-js .nav-parent:hover .nav-dropdown,
.no-js .nav-parent:focus-within .nav-dropdown,
.nav-parent.is-open .nav-dropdown {
	visibility: visible;
	transform: translateY(0);
	opacity: 1;
}

.wordmark {
	display: flex;
	min-width: 190px;
	min-height: 44px;
	align-items: center;
	justify-content: flex-start;
}

.wordmark__logo {
	display: block;
	width: clamp(170px, 13.5vw, 210px);
	height: auto;
	filter: brightness(0);
	transition: filter 260ms ease;
}

.home .site-header .wordmark__logo {
	filter: none;
}

.nav-talk {
	position: relative;
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	font-family: var(--display);
	font-size: clamp(1.05rem, 1.35vw, 1.38rem);
	font-style: italic;
	font-weight: 350;
	letter-spacing: -0.02em;
	white-space: nowrap;
}

.nav-talk::after {
	position: absolute;
	right: 0;
	bottom: 5px;
	left: 0;
	height: 1px;
	background: currentColor;
	content: "";
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 240ms var(--ease);
}

.nav-talk:hover::after,
.nav-talk:focus-visible::after {
	transform: scaleX(1);
	transform-origin: left;
}

.menu-toggle,
.mobile-menu {
	display: none;
}

/* Home hero */
.home-hero {
	position: relative;
	display: flex;
	min-height: max(700px, 100svh);
	align-items: flex-end;
	overflow: hidden;
	background: var(--forest);
	color: var(--white);
}

.home-hero__image,
.gallery-hero > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home-hero__image {
	object-position: center 48%;
	animation: hero-settle 1.4s var(--ease) both;
}

.home-hero__veil,
.gallery-hero__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(12, 17, 14, 0.34) 0%, rgba(12, 17, 14, 0.04) 38%, rgba(12, 17, 14, 0.58) 100%);
}

.gallery-hero__count {
	position: absolute;
	top: calc(var(--header-h) + 1.3rem);
	right: var(--gutter);
	left: var(--gutter);
	display: flex;
	justify-content: space-between;
	padding-top: 0.75rem;
	border-top: 1px solid var(--line-light);
	font-size: 0.62rem;
	font-weight: 650;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.home-hero__content {
	position: relative;
	z-index: 1;
	width: 100%;
	padding: 0 var(--gutter) clamp(6rem, 10vw, 9.5rem);
	text-align: center;
}

.home-hero__content > .eyebrow {
	width: 100%;
	max-width: none;
	text-align: center;
}

.home-hero h1 {
	margin: 0;
	font-size: clamp(3.3rem, 6.5vw, 7rem);
	font-weight: 330;
	letter-spacing: -0.035em;
	line-height: 0.95;
	text-shadow: 0 2px 20px rgba(0, 0, 0, 0.12);
}

.home-hero__script {
	display: inline-block;
	font-family: "Great Vibes", "Snell Roundhand", cursive;
	font-size: 1.22em;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 0.9;
}

.hero-scroll {
	position: absolute;
	right: var(--gutter);
	bottom: 3.1rem;
	display: flex;
	min-height: 44px;
	align-items: center;
	gap: 1rem;
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.hero-scroll i {
	position: relative;
	width: 46px;
	height: 1px;
	background: rgba(255, 255, 255, 0.8);
	overflow: hidden;
}

.hero-scroll i::after {
	position: absolute;
	inset: 0;
	background: var(--white);
	content: "";
	transform: translateX(-100%);
	animation: line-travel 2.4s ease-in-out infinite;
}

@keyframes hero-settle {
	from { transform: scale(1.045); }
	to { transform: scale(1); }
}

@keyframes line-travel {
	0%, 20% { transform: translateX(-100%); }
	65%, 100% { transform: translateX(100%); }
}

/* Home introduction */
.home-intro,
.portfolio-preview,
.recent-preview,
.experience-process,
.experience-roles,
.faq-section,
.investment-hero,
.portrait-investment,
.journal-intro,
.gallery-close,
.page-intro,
.portfolio-index,
.portfolio-promise {
	max-width: 100%;
}

.home-intro {
	padding-bottom: clamp(3rem, 4vw, 4rem);
}

.home-intro__grid,
.page-intro__grid,
.investment-hero__grid,
.journal-intro__grid {
	display: grid;
	max-width: var(--max);
	grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.62fr);
	gap: clamp(3rem, 9vw, 10rem);
	margin: 0 auto;
}

.home-intro__grid {
	grid-template-columns: minmax(0, 1.1fr) minmax(240px, 0.48fr) minmax(280px, 0.62fr);
	gap: clamp(2rem, 5vw, 5rem);
}

.home-intro__portrait {
	width: 100%;
	aspect-ratio: 4 / 5;
	align-self: center;
	margin: 0;
	overflow: hidden;
	background: var(--forest);
}

.home-intro__portrait > img,
.home-intro__portrait-placeholder {
	width: 100%;
	height: 100%;
}

.home-intro__portrait > img {
	object-fit: cover;
}

.home-intro__portrait-placeholder {
	display: grid;
	place-items: center;
	padding: 2rem;
}

.home-intro__portrait-placeholder img {
	width: min(100%, 190px);
	height: auto;
	opacity: 0.88;
}

.home-intro__headline h2,
.portfolio-preview__heading h2,
.recent-preview__top h2,
.location-note h2,
.page-intro h1,
.gallery-intro h2,
.gallery-close h2,
.portfolio-promise h2,
.experience-hero h1,
.experience-process__heading h2,
.journal-intro h1,
.investment-hero h1,
.portrait-investment__heading h2 {
	margin: 0;
	font-size: clamp(2.6rem, 5vw, 5.6rem);
}

.home-intro__copy {
	align-self: end;
	padding-bottom: 0.5rem;
}

.portfolio-preview__heading h2 {
	font-size: clamp(2.45rem, 3.6vw, 4.4rem);
}

.home-intro__copy > p:not(.lead),
.page-intro__lead p,
.gallery-intro__grid > div p,
.investment-hero__lead p,
.journal-intro__grid > p {
	color: var(--ink-soft);
}

.editorial-triptych {
	position: relative;
	display: grid;
	max-width: var(--max);
	min-height: 670px;
	grid-template-columns: 0.7fr 1.3fr;
	align-items: start;
	gap: clamp(1.5rem, 5vw, 5rem);
	margin: clamp(3.5rem, 6vw, 6rem) auto 0;
}

.editorial-triptych figure {
	margin: 0;
	overflow: hidden;
}

.editorial-triptych img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.editorial-triptych__portrait {
	height: 690px;
	margin-top: -70px !important;
}

.editorial-triptych__wide {
	height: 670px;
}

/* Manifesto */
.manifesto,
.experience-belief {
	display: grid;
	min-height: 760px;
	grid-template-columns: 1.12fr 0.88fr;
	background: var(--forest);
	color: var(--white);
}

.manifesto__image,
.experience-belief__image {
	min-height: 760px;
	overflow: hidden;
}

.manifesto__image img,
.experience-belief__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.manifesto__content,
.experience-belief__copy {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-direction: column;
	padding: clamp(4rem, 8vw, 9rem);
}

.manifesto__content h2,
.experience-belief__copy h2 {
	margin: 0 0 2.5rem;
	font-size: clamp(2.8rem, 4.7vw, 5.3rem);
}

.manifesto__content > p:not(.eyebrow),
.experience-belief__copy > p:not(.eyebrow) {
	color: rgba(255, 255, 255, 0.73);
}

/* Portfolio previews */
.portfolio-preview__heading,
.recent-preview__top,
.experience-process__heading,
.portrait-investment__heading {
	display: flex;
	max-width: var(--max);
	align-items: flex-end;
	justify-content: space-between;
	gap: 3rem;
	margin: 0 auto clamp(4rem, 8vw, 8rem);
}

.portfolio-preview__heading p,
.portrait-investment__heading p {
	width: min(100%, 390px);
	color: var(--ink-soft);
}

.recent-preview__script {
	display: inline;
	margin: 0 0.04em;
	font-family: "Great Vibes", "Snell Roundhand", cursive;
	font-size: 1.52em;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0;
	line-height: inherit;
	vertical-align: baseline;
}

.service-collage {
	display: grid;
	max-width: var(--max);
	grid-template-columns: 1.08fr 0.72fr 0.82fr;
	align-items: start;
	gap: clamp(1rem, 3vw, 3rem);
	margin: 0 auto;
}

.service-card {
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--mist);
}

.service-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms var(--ease), filter 400ms ease;
}

.service-card::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 48%, rgba(9, 13, 11, 0.64) 100%);
	content: "";
}

.service-card:hover img {
	transform: scale(1.025);
}

.service-card--weddings {
	height: 760px;
}

.service-card--engagements {
	height: 520px;
	margin-top: 160px;
}

.service-card--families {
	height: 610px;
	margin-top: 35px;
}

.service-card__index,
.service-card__title {
	position: absolute;
	z-index: 1;
	right: 1.5rem;
	left: 1.5rem;
}

.service-card__index {
	top: 1.35rem;
	color: var(--ink);
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.service-card__title {
	bottom: 1.35rem;
	color: var(--white);
	font-family: var(--display);
	font-size: clamp(1.6rem, 2.8vw, 3.2rem);
	letter-spacing: -0.04em;
}

/* Home experience */
.home-experience {
	position: relative;
	display: flex;
	min-height: clamp(700px, 84svh, 980px);
	align-items: flex-end;
	overflow: hidden;
	background: var(--forest);
	color: var(--white);
}

.home-experience__image,
.home-experience__veil {
	position: absolute;
	inset: 0;
}

.home-experience__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(.28) contrast(.9);
	transform: scale(1.015);
}

.home-experience__veil {
	background: linear-gradient(90deg, rgba(11, 13, 11, .68) 0%, rgba(11, 13, 11, .28) 58%, rgba(11, 13, 11, .12) 100%);
}

.home-experience__content {
	position: relative;
	z-index: 1;
	max-width: 1080px;
	padding: clamp(4rem, 8vw, 8rem) var(--gutter);
}

.home-experience h2 {
	margin: 0 0 2.25rem;
	font-size: clamp(2.6rem, 4.4vw, 4.5rem);
	font-weight: 300;
	letter-spacing: -.045em;
	line-height: 1;
}

.home-experience h2 span,
.home-experience h2 em {
	white-space: nowrap;
}

.home-experience__content > p:not(.eyebrow) {
	max-width: 580px;
	margin: 0 0 2.5rem;
	color: rgba(255, 255, 255, .82);
	font-size: clamp(1rem, 1.35vw, 1.2rem);
}

.home-experience__link {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	gap: .9rem;
	border-bottom: 1px solid rgba(255, 255, 255, .86);
	color: var(--white);
	font-family: var(--display);
	font-size: clamp(1.05rem, 1.4vw, 1.3rem);
	font-style: italic;
	transition: gap 240ms var(--ease);
}

.home-experience__link:hover,
.home-experience__link:focus-visible {
	gap: 1.25rem;
	color: var(--white);
}

.timeline,
.faq-list {
	max-width: var(--max);
	margin: 0 auto 3.5rem;
	border-top: 1px solid var(--line);
}

.timeline__item > span {
	color: var(--bronze);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.14em;
}

/* Recent stories */
.recent-preview.section-pad {
	padding-top: clamp(4.5rem, 7vw, 7rem);
	padding-bottom: clamp(4.5rem, 7vw, 7rem);
}

.recent-preview__top h2 {
	font-size: clamp(2.9rem, 5.2vw, 5.9rem);
}

.story-grid {
	display: grid;
	max-width: var(--max);
	grid-template-columns: repeat(3, 1fr);
	align-items: start;
	gap: clamp(1.5rem, 3.2vw, 3.5rem);
	margin: 0 auto;
}

.story-card--offset {
	margin-top: 7rem;
}

.story-card figure {
	height: 470px;
	margin: 0 0 1.4rem;
	overflow: hidden;
	background: var(--mist);
}

.story-card:nth-child(2) figure {
	height: 590px;
}

.story-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 600ms var(--ease);
}

.story-card:hover img {
	transform: scale(1.025);
}

.story-card__meta {
	margin-bottom: 0.55rem;
	color: var(--bronze);
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.story-card h3 {
	font-size: clamp(1.45rem, 2vw, 2.2rem);
	line-height: 1.15;
}

.location-note {
	display: grid;
	min-height: 660px;
	grid-template-columns: 1.12fr 0.88fr;
	background: var(--paper);
}

.location-note__image {
	min-height: 660px;
}

.location-note__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.location-note__copy {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-direction: column;
	padding: clamp(3rem, 7vw, 8rem);
}

.location-note h2 {
	margin-bottom: 2rem;
	font-size: clamp(2.4rem, 4vw, 4.3rem);
}

/* Shared page intro */
.page-intro {
	padding-bottom: clamp(4rem, 8vw, 8rem);
}

.page-intro__grid {
	align-items: end;
}

.page-intro__lead p {
	font-family: var(--display);
	font-size: clamp(1.35rem, 2.1vw, 2rem);
	line-height: 1.38;
}

/* About */
.page-intro--about {
	padding-top: clamp(3.5rem, 5vw, 5.5rem);
}

.page-intro--about .page-intro__grid {
	align-items: start;
	grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
	gap: clamp(3rem, 7vw, 8rem);
}

.page-intro--about h1 {
	font-size: clamp(2.4rem, 4.2vw, 4.5rem);
}

.page-intro--about .page-intro__lead {
	padding-top: clamp(2rem, 4.5vw, 4.75rem);
}

.page-intro--about .page-intro__lead p {
	max-width: 40ch;
	font-size: clamp(1.15rem, 1.6vw, 1.5rem);
	line-height: 1.5;
}

.about-portrait {
	display: grid;
	max-width: var(--max);
	grid-template-columns: minmax(280px, .72fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(4rem, 9vw, 10rem);
	margin: 0 auto;
	padding: clamp(2rem, 4vw, 4rem) var(--gutter) clamp(2rem, 3.5vw, 3.5rem);
}

.about-portrait__image {
	width: min(100%, 520px);
	aspect-ratio: 4 / 5;
	justify-self: center;
	margin: 0;
	overflow: hidden;
}

.about-portrait__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.about-portrait__copy h2 {
	margin-bottom: 2rem;
	font-size: clamp(2.5rem, 4vw, 4.3rem);
}

.about-portrait__copy {
	max-width: 650px;
}

.about-portrait__copy .lead {
	font-size: clamp(1.25rem, 1.7vw, 1.65rem);
}

.about-portrait__copy > p:not(.eyebrow):not(.lead) {
	color: var(--ink-soft);
}

.about-glimpses {
	max-width: var(--max);
	margin: 0 auto;
	padding: 0 var(--gutter) clamp(1rem, 2.5vw, 2rem);
}

.about-glimpses__stage {
	position: relative;
	min-height: clamp(560px, 52vw, 790px);
}

.about-glimpses figure {
	margin: 0;
	overflow: hidden;
}

.about-glimpses img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.about-glimpses__story {
	position: absolute;
	top: 0;
	left: 0;
	width: 72%;
	height: 72%;
}

.about-glimpses__personal {
	position: absolute;
	top: 12%;
	right: 0;
	width: 31%;
	height: 69%;
	box-shadow: 0 0 0 clamp(7px, 1vw, 14px) var(--shell);
}

.about-glimpses__note {
	position: absolute;
	bottom: 2%;
	left: 9%;
	max-width: 420px;
	margin: 0;
	color: var(--ink-soft);
	font-family: var(--display);
	font-size: clamp(.92rem, 1.1vw, 1.1rem);
	font-style: italic;
	line-height: 1.45;
}

.about-presence {
	display: grid;
	max-width: var(--max);
	grid-template-columns: minmax(0, 1.05fr) minmax(340px, .7fr);
	align-items: center;
	gap: clamp(4rem, 8vw, 9rem);
	margin: 0 auto;
	padding: clamp(2.5rem, 4.5vw, 4.5rem) var(--gutter) clamp(5rem, 8vw, 8rem);
}

.about-presence__image {
	height: clamp(560px, 62vw, 820px);
	margin: 0;
	overflow: hidden;
}

.about-presence__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.about-presence__copy {
	max-width: 590px;
}

.about-presence__copy h2 {
	margin-bottom: 2rem;
	font-size: clamp(2.7rem, 4.2vw, 4.5rem);
	font-weight: 350;
}

.about-presence__copy > p:not(.eyebrow) {
	margin: 0;
	color: var(--ink-soft);
}

.about-presence__outcomes {
	display: grid;
	gap: 1.15rem;
	margin: clamp(2.25rem, 4vw, 3.5rem) 0;
	padding: 0;
	list-style: none;
}

.about-presence__outcomes li {
	font-family: var(--display);
	font-size: clamp(1.3rem, 1.8vw, 1.65rem);
	font-weight: 320;
	line-height: 1.25;
}

.about-presence__outcomes strong {
	font-weight: 520;
}

.about-statement {
	position: relative;
	min-height: 780px;
	overflow: hidden;
	color: var(--white);
}

.about-statement__image {
	position: absolute;
	inset: 0;
}

.about-statement__image::after {
	position: absolute;
	inset: 0;
	background: rgba(13, 20, 16, 0.52);
	content: "";
}

.about-statement__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.about-statement__copy {
	position: relative;
	z-index: 1;
	display: flex;
	min-height: 780px;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	padding: var(--gutter);
	text-align: center;
}

.about-statement blockquote {
	max-width: 1000px;
	margin-bottom: 3rem;
	font-family: var(--display);
	font-size: clamp(2.3rem, 4.5vw, 5rem);
	font-weight: 330;
	letter-spacing: -0.03em;
	line-height: 1.06;
}

/* Portfolio index */
.portfolio-index {
	padding-top: 0;
}

.portfolio-index__feature {
	display: grid;
	max-width: var(--max);
	grid-template-columns: 1.45fr 0.55fr;
	margin: 0 auto clamp(9rem, 14vw, 15rem);
}

.portfolio-index__feature .portfolio-index__image {
	height: 720px;
}

.portfolio-index__image {
	overflow: hidden;
	background: var(--mist);
}

.portfolio-index__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms var(--ease);
}

.portfolio-index a:hover .portfolio-index__image img {
	transform: scale(1.025);
}

.portfolio-index__text {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-direction: column;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	padding: 3rem;
}

.portfolio-index__text > span,
.portfolio-index__text > i {
	font-size: 0.66rem;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.portfolio-index__text > span {
	color: var(--bronze);
}

.portfolio-index__text h2 {
	margin: 4rem 0 1.5rem;
	font-size: clamp(2.7rem, 4.6vw, 5rem);
}

.portfolio-index__text p {
	margin-bottom: 3.5rem;
	color: var(--ink-soft);
}

.portfolio-index__secondary {
	display: grid;
	max-width: 1180px;
	grid-template-columns: 1fr 1fr;
	align-items: start;
	gap: clamp(3rem, 9vw, 9rem);
	margin: 0 auto;
}

.portfolio-index__card .portfolio-index__image {
	height: 600px;
}

.portfolio-index__card--lower {
	margin-top: 10rem;
}

.portfolio-index__card .portfolio-index__text {
	border-top: 0;
	padding: 2.2rem 0;
}

.portfolio-index__card .portfolio-index__text h2 {
	margin: 1.2rem 0;
	font-size: clamp(2.4rem, 4vw, 4.2rem);
}

.portfolio-index__card .portfolio-index__text p {
	margin-bottom: 1.5rem;
}

.portfolio-promise {
	background: var(--paper);
	text-align: center;
}

.portfolio-promise .eyebrow,
.portfolio-promise h2 {
	margin-right: auto;
	margin-left: auto;
}

.portfolio-promise h2 {
	margin-bottom: 3rem;
}

/* Category galleries */
.gallery-hero {
	position: relative;
	display: flex;
	min-height: clamp(620px, 82svh, 980px);
	align-items: flex-end;
	overflow: hidden;
	background: var(--forest);
	color: var(--white);
}

.gallery-hero__veil {
	background: linear-gradient(180deg, transparent 55%, rgba(10, 12, 10, .55) 100%);
}

.gallery-hero__title {
	position: relative;
	z-index: 1;
	padding: 0 var(--gutter) clamp(2.5rem, 4vw, 4.5rem);
}

.gallery-hero__title h1 {
	margin: 0;
	font-size: clamp(2.55rem, 4vw, 4.6rem);
	font-weight: 350;
	line-height: 1.02;
}

.gallery-hero__title .eyebrow {
	margin-bottom: .8rem;
}

.gallery-story {
	display: grid;
	gap: clamp(5px, .55vw, 9px);
	background: var(--shell);
	padding-top: clamp(5px, .55vw, 9px);
}

.gallery-story figure {
	margin: 0;
	overflow: hidden;
	background: var(--paper);
}

.gallery-story__frame {
	height: clamp(580px, 80svh, 960px);
}

.gallery-story img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gallery-mosaic {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: clamp(5px, .55vw, 9px);
}

.gallery-mosaic__item {
	grid-column: span 2;
	aspect-ratio: 4 / 5;
}

.gallery-mosaic--remainder-1 .gallery-mosaic__item:last-child {
	grid-column: 3 / span 2;
}

.gallery-mosaic--remainder-2 .gallery-mosaic__item:nth-last-child(2) {
	grid-column: 2 / span 2;
}

.gallery-capture-cta {
	position: relative;
	display: grid;
	min-height: clamp(720px, 88svh, 1080px);
	place-items: center;
	overflow: hidden;
	margin-top: clamp(2rem, 3.5vw, 4.25rem);
	background: var(--forest);
	color: var(--white);
}

.gallery-capture-cta--recent {
	margin-top: 0;
}

.gallery-capture-cta__image,
.gallery-capture-cta__veil {
	position: absolute;
	inset: 0;
}

.gallery-capture-cta__image {
	overflow: hidden;
}

.gallery-capture-cta__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: grayscale(1) contrast(.88);
	transform: scale(1.035);
}

.gallery-capture-cta__veil {
	background: linear-gradient(180deg, rgba(11, 12, 11, .25), rgba(11, 12, 11, .52));
}

.gallery-capture-cta__content {
	position: relative;
	z-index: 1;
	display: flex;
	width: min(100%, 1160px);
	min-width: 0;
	align-items: center;
	flex-direction: column;
	padding: clamp(4rem, 8vw, 8rem) var(--gutter);
	text-align: center;
}

.gallery-capture-cta__eyebrow {
	margin-bottom: 1.5rem;
	color: rgba(255, 255, 255, .9);
	font-size: .68rem;
	font-weight: 720;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.gallery-capture-cta h2 {
	margin: 0 0 clamp(2rem, 4vw, 3.5rem);
	font-size: clamp(3.4rem, 6.5vw, 6.5rem);
	font-weight: 300;
	letter-spacing: -.045em;
	line-height: .98;
}

.gallery-capture-cta h2 .gallery-capture-cta__script {
	font-family: "Great Vibes", "Snell Roundhand", cursive;
	font-size: 1.18em;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0;
	line-height: inherit;
}

.gallery-capture-cta__content > p {
	max-width: 660px;
	margin: 0 0 2.5rem;
	color: rgba(255, 255, 255, .82);
	font-size: clamp(1rem, 1.35vw, 1.2rem);
	line-height: 1.55;
}

.gallery-capture-cta__link {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	gap: .9rem;
	border-bottom: 1px solid rgba(255, 255, 255, .86);
	color: var(--white);
	font-family: var(--display);
	font-size: clamp(1.05rem, 1.4vw, 1.3rem);
	font-style: italic;
	transition: gap 240ms var(--ease);
}

.gallery-capture-cta__link:hover,
.gallery-capture-cta__link:focus-visible {
	gap: 1.25rem;
	color: var(--white);
}

.gallery-close {
	background: var(--shell);
	text-align: center;
}

.gallery-close h2 {
	margin: 0 auto 3rem;
	font-size: clamp(2.5rem, 4.2vw, 4.6rem);
}

/* Experience */
.experience-editorial {
	padding-top: clamp(4.75rem, 7vw, 7.5rem);
	padding-bottom: clamp(5.5rem, 9vw, 9rem);
}

.experience-editorial__intro {
	width: min(100%, 820px);
	margin: 0 auto;
	text-align: center;
}

.experience-editorial__intro h1 {
	margin: 0 0 1.15rem;
	font-size: clamp(3rem, 4.7vw, 4.7rem);
	font-weight: 340;
	letter-spacing: -0.035em;
	line-height: 1;
}

.experience-editorial__intro > p:last-child {
	width: min(100%, 680px);
	margin: 0 auto;
	color: var(--ink-soft);
	font-size: clamp(1rem, 1.25vw, 1.15rem);
}

.experience-journey {
	max-width: var(--max);
	margin: clamp(5rem, 8vw, 8rem) auto 0;
}

.experience-stage {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(2.5rem, 6vw, 7rem);
}

.experience-stage + .experience-stage {
	margin-top: clamp(4.5rem, 8vw, 8rem);
}

.experience-stage__image {
	margin: 0;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--paper);
}

.experience-stage__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 900ms var(--ease);
}

.experience-stage:hover .experience-stage__image img {
	transform: scale(1.018);
}

.experience-stage__copy {
	width: min(100%, 540px);
	justify-self: center;
}

.experience-stage__number {
	margin: 0 0 0.7rem;
	color: var(--bronze);
	font-family: var(--display);
	font-size: 0.82rem;
	letter-spacing: 0.08em;
}

.experience-stage__copy h2 {
	margin: 0 0 1rem;
	font-size: clamp(2rem, 2.8vw, 3.1rem);
	font-weight: 340;
	letter-spacing: -0.03em;
	line-height: 1.1;
}

.experience-stage__copy > p:last-child {
	margin: 0;
	color: var(--ink-soft);
}

.experience-stage--reverse .experience-stage__image {
	order: 2;
}

.experience-stage--reverse .experience-stage__copy {
	order: 1;
}

.page-slug-experience .faq-section {
	border-top: 1px solid var(--line);
}

.experience-hero__grid {
	display: grid;
	max-width: var(--max);
	grid-template-columns: 1.12fr 0.88fr;
	align-items: center;
	gap: clamp(3rem, 8vw, 9rem);
	margin: 0 auto;
}

.experience-hero h1 {
	margin-bottom: 2rem;
	font-size: clamp(3rem, 5vw, 5.4rem);
}

.experience-hero__copy > p:not(.eyebrow) {
	max-width: 560px;
	color: var(--ink-soft);
}

.experience-hero__copy .button {
	margin-top: 1.5rem;
}

.experience-hero__image {
	height: 760px;
}

.experience-hero__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.experience-belief__image img {
	object-position: center 35%;
}

.experience-belief__copy ul,
.investment-offer__copy ul {
	width: 100%;
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
}

.experience-belief__copy li,
.investment-offer__copy li {
	position: relative;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
	padding: 0.75rem 0 0.75rem 1.35rem;
	font-size: 0.92rem;
}

.experience-belief__copy li::before,
.investment-offer__copy li::before {
	position: absolute;
	top: 1.08rem;
	left: 0;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: currentColor;
	content: "";
}

.timeline {
	max-width: 1050px;
}

.timeline__item {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 3rem;
	border-bottom: 1px solid var(--line);
	padding: 2.5rem 0;
}

.timeline__item h3 {
	margin-bottom: 0.75rem;
	font-size: clamp(1.8rem, 2.7vw, 3rem);
}

.timeline__item p {
	margin: 0;
	color: var(--ink-soft);
}

.experience-roles {
	background: var(--paper);
}

.experience-roles__intro {
	max-width: var(--max);
	margin: 0 auto 4rem;
}

.experience-roles__intro h2 {
	font-size: clamp(2.7rem, 4.4vw, 4.8rem);
}

.experience-roles__grid {
	display: grid;
	max-width: var(--max);
	grid-template-columns: repeat(4, 1fr);
	margin: 0 auto;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}

.experience-roles__grid article {
	min-height: 320px;
	border-right: 1px solid var(--line);
	padding: 2rem;
}

.experience-roles__grid article:last-child {
	border-right: 0;
}

.experience-roles__grid h3 {
	margin: 5rem 0 1rem;
	font-size: 2rem;
}

.experience-roles__grid p {
	color: var(--ink-soft);
	font-size: 0.95rem;
}

.faq-section {
	display: grid;
	grid-template-columns: 0.35fr 0.65fr;
	gap: clamp(3rem, 9vw, 9rem);
}

.faq-section__heading h2 {
	font-size: clamp(2.5rem, 4.2vw, 4.4rem);
}

.faq-list {
	margin: 0;
}

.faq-list details {
	border-bottom: 1px solid var(--line);
}

.faq-list summary {
	display: flex;
	min-height: 76px;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	cursor: pointer;
	font-family: var(--display);
	font-size: 1.25rem;
	font-weight: 450;
	list-style: none;
}

.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { font-family: var(--body); font-size: 1.2rem; font-weight: 400; transition: transform 220ms ease; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { max-width: 680px; padding: 0 2rem 1.7rem 0; color: var(--ink-soft); }

/* Investment */

.investment-intro {
	padding-top: clamp(4.75rem, 7vw, 7.5rem);
	padding-bottom: clamp(5.5rem, 9vw, 9rem);
}

.investment-intro__header {
	width: min(100%, 1040px);
	margin: 0 auto;
	text-align: center;
}

.investment-intro h1 {
	margin: 0 0 1.15rem;
	font-size: clamp(3rem, 4.7vw, 4.7rem);
	font-weight: 340;
	letter-spacing: -.035em;
	line-height: 1;
	white-space: nowrap;
}

.investment-intro__script {
	display: inline;
	margin: 0 .025em;
	font-family: "Great Vibes", "Snell Roundhand", cursive;
	font-size: 1.3em;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0;
	line-height: inherit;
	vertical-align: baseline;
}

.investment-intro__header > p {
	width: min(100%, 680px);
	margin: 0 auto;
	color: var(--ink-soft);
	font-size: clamp(1rem, 1.25vw, 1.15rem);
}

.investment-offers {
	padding: 0 var(--gutter) clamp(5rem, 9vw, 9rem);
}

.investment-offer {
	display: grid;
	max-width: var(--max);
	min-height: 720px;
	grid-template-columns: minmax(0, 1.08fr) minmax(380px, .72fr);
	margin: 0 auto clamp(4rem, 7vw, 7rem);
	background: var(--paper);
}

.investment-offer:last-child {
	margin-bottom: 0;
}

.investment-offer--reverse {
	grid-template-columns: minmax(380px, .72fr) minmax(0, 1.08fr);
}

.investment-offer--reverse .investment-offer__image {
	order: 2;
}

.investment-offer--reverse .investment-offer__copy {
	order: 1;
}

.investment-offer__image {
	min-height: 720px;
	margin: 0;
	overflow: hidden;
}

.investment-offer__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 900ms var(--ease);
}

.investment-offer:hover .investment-offer__image img {
	transform: scale(1.018);
}

.investment-offer__copy {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-direction: column;
	padding: clamp(3.5rem, 6vw, 6.5rem);
}

.investment-offer__copy h2 {
	margin: 0 0 1.1rem;
	font-size: clamp(2.65rem, 4vw, 4.5rem);
	font-weight: 350;
	letter-spacing: -.04em;
	line-height: 1;
}

.investment-offer__price {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	margin: 0 0 2rem;
}

.investment-offer__price span {
	font-size: .68rem;
	font-weight: 720;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.investment-offer__price strong {
	font-family: var(--display);
	font-size: clamp(1.65rem, 2.1vw, 2.2rem);
	font-weight: 420;
	letter-spacing: -.03em;
}

.investment-offer__description {
	max-width: 510px;
	margin: 0;
	color: var(--ink-soft);
}

.investment-offer__copy ul {
	margin: 2rem 0 2.25rem;
}

.investment-offer__copy li {
	display: flex;
	align-items: flex-start;
	gap: .85rem;
	border-color: var(--line);
	padding-left: 0;
}

.investment-offer__copy li::before {
	position: static;
	flex: 0 0 5px;
	margin-top: .62rem;
}

.investment-offer__copy .text-link {
	margin-top: auto;
}

.investment-offer__description + .text-link {
	margin-top: 2.25rem;
}

.investment-notes {
	background: var(--shell);
}

.investment-notes.section-pad {
	padding-top: clamp(4rem, 6vw, 6rem);
}

.investment-notes__heading {
	margin: 0 auto clamp(5.5rem, 9vw, 9rem);
	text-align: center;
}

.investment-notes__heading h2 {
	margin: 0;
	font-size: clamp(4.4rem, 8vw, 8.5rem);
	font-weight: 310;
	letter-spacing: -.065em;
	line-height: .9;
	text-transform: uppercase;
}

.investment-notes__heading h2 span {
	display: inline-block;
	margin-right: .08em;
	font-family: "Great Vibes", "Snell Roundhand", cursive;
	font-size: .78em;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.investment-notes__grid {
	display: grid;
	max-width: var(--max);
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: clamp(2.5rem, 4vw, 4.75rem);
	row-gap: clamp(4rem, 7vw, 7rem);
	margin: 0 auto;
}

.investment-note {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	align-items: start;
	gap: 1.1rem;
}

.investment-note__number {
	margin: .15rem 0 0;
	font-size: .8rem;
	font-weight: 650;
	letter-spacing: .08em;
}

.investment-note h3 {
	margin: 0 0 .75rem;
	font-family: var(--body);
	font-size: clamp(1.35rem, 1.7vw, 1.75rem);
	font-weight: 540;
	letter-spacing: -.015em;
	line-height: 1.18;
}

.investment-note div > p {
	max-width: 48ch;
	margin: 0;
	color: var(--ink-soft);
	font-size: .98rem;
	line-height: 1.5;
}

/* Journal */
.recent-work-index {
	background: var(--shell);
}

.recent-work-row {
	--story-min-height: 100svh;
	position: relative;
	display: grid;
	min-height: var(--story-min-height);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: minmax(var(--story-min-height), auto);
	scroll-margin-top: var(--header-h);
}

.recent-work-row:first-child {
	--story-min-height: calc(100svh - var(--header-h));
}

.recent-work-row__link {
	position: absolute;
	z-index: 3;
	inset: 0;
}

.recent-work-row__link:focus-visible {
	outline: 2px solid var(--bronze);
	outline-offset: -8px;
}

.recent-work-row__copy {
	position: relative;
	z-index: 1;
	display: flex;
	min-width: 0;
	align-items: center;
	justify-content: center;
	padding: clamp(4rem, 8vw, 9rem);
}

.recent-work-row__copy > div {
	width: min(100%, 560px);
}

.recent-work-row__copy .eyebrow {
	margin-bottom: 1.5rem;
}

.recent-work-row h1,
.recent-work-row h2 {
	margin: 0;
	font-size: clamp(3rem, 4.7vw, 5.2rem);
	font-weight: 330;
	letter-spacing: -.045em;
	line-height: 1.02;
	overflow-wrap: anywhere;
}

.recent-work-row__view {
	display: inline-block;
	margin-top: 2rem;
	border-bottom: 1px solid currentColor;
	font-size: 0.64rem;
	font-weight: 720;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	transition: letter-spacing 260ms var(--ease);
}

.recent-work-row:hover .recent-work-row__view {
	letter-spacing: 0.2em;
}

.recent-work-row__image {
	position: relative;
	min-width: 0;
	min-height: 0;
	margin: 0;
	overflow: hidden;
}

.recent-work-row__image img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 900ms var(--ease);
}

.recent-work-row:hover .recent-work-row__image img {
	transform: scale(1.018);
}

.recent-work-row--image-first .recent-work-row__copy {
	order: 2;
}

.recent-work-row--image-first .recent-work-row__image {
	order: 1;
}

.recent-work-index__empty {
	min-height: 60svh;
}

.recent-work-index__empty h1 {
	max-width: 850px;
	font-size: clamp(3rem, 6vw, 6rem);
}

/* Individual recent work stories */
.single-story__hero {
	display: grid;
	min-height: calc(100svh - var(--header-h));
	grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
	background: var(--shell);
}

.single-story__hero-copy {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-direction: column;
	padding: clamp(4rem, 7vw, 8rem) var(--gutter);
}

.single-story__back {
	display: inline-flex;
	margin-bottom: clamp(4rem, 8vw, 8rem);
	border-bottom: 1px solid currentColor;
	font-size: .64rem;
	font-weight: 700;
	letter-spacing: .15em;
	text-transform: uppercase;
}

.single-story__hero-copy h1 {
	max-width: 760px;
	margin: 0;
	font-size: clamp(3.25rem, 5.6vw, 6.6rem);
	font-weight: 330;
	letter-spacing: -.05em;
	line-height: .98;
}

.single-story__summary {
	max-width: 600px;
	margin: 2rem 0 0;
	color: var(--ink-soft);
	font-family: var(--display);
	font-size: clamp(1.05rem, 1.45vw, 1.35rem);
	line-height: 1.45;
}

.single-story__facts {
	display: grid;
	width: 100%;
	max-width: 660px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	margin: clamp(3rem, 6vw, 5rem) 0 0;
	border-top: 1px solid var(--line);
}

.single-story__facts div {
	padding: .85rem 1rem .8rem 0;
	border-bottom: 1px solid var(--line);
}

.single-story__facts dt {
	font-size: .59rem;
	font-weight: 720;
	letter-spacing: .15em;
	text-transform: uppercase;
}

.single-story__facts dd {
	margin: .18rem 0 0;
	color: var(--ink-soft);
	font-size: .88rem;
}

.single-story__hero-image {
	min-height: 720px;
	margin: 0;
	overflow: hidden;
}

.single-story__hero-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.single-story__body {
	background: var(--white);
}

.single-story__content {
	overflow: hidden;
	padding: clamp(5rem, 9vw, 10rem) 0;
}

.single-story__content > * {
	width: min(760px, calc(100% - (2 * var(--gutter))));
	max-width: 100%;
	margin-right: auto;
	margin-left: auto;
}

.single-story__content > p,
.single-story__content > ul,
.single-story__content > ol {
	margin-bottom: 1.5rem;
}

.single-story__content > .story-opening,
.single-story__content > p:first-child {
	margin-bottom: clamp(4rem, 7vw, 7rem);
	font-family: var(--display);
	font-size: clamp(1.55rem, 2.5vw, 2.55rem);
	font-weight: 350;
	letter-spacing: -.03em;
	line-height: 1.35;
}

.single-story__content h2 {
	margin-top: clamp(5rem, 9vw, 9rem);
	margin-bottom: 1.5rem;
	font-size: clamp(2.6rem, 4.8vw, 5rem);
	font-weight: 340;
}

.single-story__content h3 {
	margin-top: 4rem;
	font-size: clamp(1.8rem, 3vw, 3rem);
}

.single-story__content > .alignwide,
.single-story__content > .wp-block-gallery,
.single-story__content > .wp-block-columns,
.single-story__content > .wp-block-video {
	width: min(1320px, calc(100% - (2 * var(--gutter))));
	margin-top: clamp(4rem, 8vw, 8rem);
	margin-bottom: clamp(4rem, 8vw, 8rem);
}

.single-story__content > .alignfull {
	width: 100vw;
	max-width: none;
	margin-top: clamp(4rem, 8vw, 8rem);
	margin-bottom: clamp(4rem, 8vw, 8rem);
	margin-left: calc(50% - 50vw);
}

.single-story__content .wp-block-image img,
.single-story__content .wp-block-gallery img,
.single-story__content video {
	width: 100%;
}

.single-story__content .wp-block-gallery {
	gap: 6px;
}

.single-story__content .wp-block-gallery.story-masonry {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-auto-rows: 1px;
	align-items: start;
	column-gap: 6px;
	row-gap: 6px;
}

.single-story__content .wp-block-gallery.story-masonry figure.wp-block-image {
	position: relative;
	display: block;
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
	overflow: hidden;
}

.single-story__content .wp-block-gallery.story-masonry figure.wp-block-image img {
	display: block;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100% !important;
	object-fit: contain !important;
}

.single-story__content blockquote {
	width: min(1040px, calc(100% - (2 * var(--gutter))));
	margin-top: clamp(5rem, 9vw, 9rem);
	margin-bottom: clamp(5rem, 9vw, 9rem);
	border: 0;
	background: var(--paper);
	padding: clamp(3rem, 6vw, 6rem);
	font-family: var(--display);
	font-size: clamp(1.7rem, 3vw, 3.2rem);
	font-style: italic;
	line-height: 1.25;
}

.single-story__content blockquote p {
	margin-bottom: 0;
}

.single-story__content blockquote cite {
	display: block;
	margin-top: 1.8rem;
	font-family: var(--body);
	font-size: .65rem;
	font-style: normal;
	font-weight: 720;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.single-story__credits {
	background: var(--paper);
}

.single-story__credits-inner {
	display: grid;
	max-width: 980px;
	grid-template-columns: .7fr 1fr;
	gap: 2rem clamp(3rem, 8vw, 8rem);
	margin: 0 auto;
}

.single-story__credits-inner .eyebrow {
	grid-column: 1 / -1;
}

.single-story__credits h2 {
	font-size: clamp(2.5rem, 4vw, 4.5rem);
}

.single-story__credits p:last-child {
	margin: 0;
	white-space: normal;
}

.single-story__closing {
	position: relative;
	display: grid;
	min-height: clamp(700px, 88svh, 960px);
	place-items: center;
	overflow: hidden;
	background: var(--forest);
	color: var(--white);
}

.single-story__closing-image,
.single-story__closing-veil {
	position: absolute;
	inset: 0;
}

.single-story__closing-image img {
	width: 100%;
	height: 100%;
	filter: grayscale(1);
	object-fit: cover;
}

.single-story__closing-veil {
	background: rgba(12, 14, 12, .55);
}

.single-story__closing-content {
	position: relative;
	z-index: 1;
	width: min(980px, calc(100% - (2 * var(--gutter))));
	text-align: center;
}

.single-story__closing-content h2 {
	margin: 0 auto 1.7rem;
	font-size: clamp(3rem, 6.5vw, 7rem);
	font-weight: 320;
	line-height: .98;
}

.single-story__closing-content p:not(.eyebrow) {
	margin: 0 auto 2rem;
	color: rgba(255, 255, 255, .82);
}

.single-story__closing .gallery-capture-cta__link {
	color: var(--white);
}

/* Enquiry */
.enquire-page {
	background: var(--shell);
	padding-top: clamp(4.5rem, 7vw, 7rem);
}

.enquire-page__grid {
	display: grid;
	max-width: var(--max);
	grid-template-columns: minmax(0, 1.48fr) minmax(300px, 0.52fr);
	align-items: start;
	gap: clamp(4rem, 9vw, 9rem);
	margin: 0 auto;
}

.enquire-page__intro {
	margin-bottom: clamp(2.8rem, 5vw, 4.5rem);
}

.enquire-page__intro h1 {
	margin: 0 0 1.25rem;
	font-size: clamp(3.25rem, 5.25vw, 5.6rem);
	font-weight: 330;
	letter-spacing: -0.045em;
	line-height: 1;
}

.enquire-page__script {
	display: inline-block;
	margin-left: .02em;
	font-family: "Great Vibes", "Snell Roundhand", cursive;
	font-size: 1.2em;
	font-weight: 400;
	letter-spacing: 0;
	line-height: .8;
}

.enquire-page__intro > p:last-child {
	max-width: 780px;
	margin: 0;
	color: var(--ink-soft);
	font-size: clamp(1.05rem, 1.35vw, 1.2rem);
}

.form-notice {
	margin: 0 0 2rem;
	border-left: 3px solid var(--bronze);
	background: rgba(255, 255, 255, 0.68);
	padding: 1.2rem 1.4rem;
}

.form-notice p {
	margin: 0.3rem 0 0;
}

.form-notice--success {
	border-left-color: #2e6648;
}

.enquiry-form {
	margin: 0;
}

.form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: clamp(2rem, 4vw, 4rem);
}

.form-field {
	position: relative;
	border: 0;
	padding: 0 0 clamp(1.8rem, 3vw, 2.5rem);
}

.form-field label {
	display: block;
	margin-bottom: 0.35rem;
	color: var(--ink-soft);
	font-size: 0.64rem;
	font-weight: 680;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.form-field label small {
	font-size: inherit;
	font-weight: 500;
	letter-spacing: 0.08em;
}

.form-field label span {
	color: var(--bronze);
}

.form-field input,
.form-field select,
.form-field textarea {
	width: 100%;
	min-height: 54px;
	border: 0;
	border-bottom: 1px solid rgba(21, 25, 20, 0.32);
	border-radius: 0;
	outline: none;
	background: transparent;
	padding: 0 2rem 0 0;
	color: var(--ink);
	font-family: var(--body);
	font-size: 1.05rem;
	transition: border-color 200ms ease, box-shadow 200ms ease;
}

.form-field textarea {
	min-height: 160px;
	padding: 0.85rem 0 1rem;
	line-height: 1.6;
	resize: vertical;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
	border-color: var(--bronze);
	background: transparent;
	box-shadow: 0 1px 0 var(--bronze);
}

.form-field--error input,
.form-field--error select,
.form-field--error textarea {
	border-color: #8f2f24;
	box-shadow: 0 1px 0 #8f2f24;
}

.form-field__error {
	margin: 0.55rem 0 0;
	color: #79271f;
	font-size: 0.82rem;
	line-height: 1.45;
}

.form-field input::placeholder,
.form-field textarea::placeholder {
	color: #687068;
	opacity: 0.72;
}

.form-submit {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 2rem;
	margin-top: 0.85rem;
}

.form-submit p {
	max-width: 370px;
	margin: 0;
	color: var(--ink-soft);
	font-size: 0.78rem;
}

.form-submit .button {
	min-width: 205px;
	border-color: var(--forest);
	background: var(--forest);
	color: var(--white);
}

.form-submit .button:hover,
.form-submit .button:focus-visible {
	border-color: var(--forest);
	background: var(--forest);
	color: var(--white);
}

.form-submit .button:disabled {
	cursor: wait;
	opacity: 0.6;
}

.form-honeypot {
	position: absolute !important;
	left: -9999px !important;
}

.enquire-direct {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 0.4rem;
	margin-top: 3.5rem;
	color: var(--ink-soft);
	font-size: 0.86rem;
}

.enquire-direct a {
	border-bottom: 1px solid currentColor;
	color: var(--ink);
}

.enquire-profile {
	position: relative;
}

.enquire-profile__portrait {
	width: min(100%, 285px);
	margin: 0 auto 1.6rem;
	overflow: hidden;
	aspect-ratio: 4 / 5;
	border: 1px solid rgba(111, 75, 57, 0.28);
	border-radius: 50% 50% 47% 47% / 43% 43% 57% 57%;
	background: var(--paper);
}

.enquire-profile__portrait img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.enquire-profile__identity {
	text-align: center;
}

.enquire-profile__identity h2 {
	margin: 0 0 0.15rem;
	font-size: clamp(1.55rem, 2.1vw, 2rem);
	font-weight: 350;
}

.enquire-profile__identity p {
	margin: 0;
	color: var(--ink-soft);
	font-size: 0.72rem;
	font-weight: 650;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.enquire-profile__notes {
	display: grid;
	gap: 2rem;
	margin-top: 3rem;
	border-top: 1px solid var(--line);
	padding-top: 2.4rem;
}

.enquire-profile__notes .eyebrow {
	margin-bottom: 0.65rem;
}

.enquire-profile__notes p:not(.eyebrow) {
	margin: 0;
	color: var(--ink-soft);
	font-size: 0.93rem;
	line-height: 1.55;
}

.enquire-profile__notes a {
	display: table;
	margin-top: 0.35rem;
	border-bottom: 1px solid rgba(21, 25, 20, 0.42);
	font-size: 0.9rem;
}

/* Footer */
.footer-lower {
	background: var(--shell);
}

.instagram-curation {
	background: var(--shell);
	padding: clamp(4rem, 7vw, 7rem) var(--gutter) clamp(3.5rem, 6vw, 6rem);
}

.instagram-curation__grid {
	display: grid;
	max-width: 1380px;
	align-items: start;
	grid-template-columns: 1fr .82fr 1.08fr .82fr 1fr;
	gap: clamp(.8rem, 1.45vw, 1.5rem);
	margin: 0 auto;
	padding-bottom: clamp(1.5rem, 3vw, 3rem);
}

.instagram-curation__image {
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 5;
	background: var(--shell);
}

.instagram-curation__image:nth-child(1),
.instagram-curation__image:nth-child(5) {
	margin-top: clamp(.75rem, 1.7vw, 1.75rem);
}

.instagram-curation__image:nth-child(2),
.instagram-curation__image:nth-child(4) {
	margin-top: clamp(1.5rem, 3.5vw, 3.75rem);
}

.instagram-curation__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms var(--ease), filter 500ms ease;
}

.instagram-curation__image:hover img {
	transform: scale(1.025);
	filter: brightness(.92);
}

.instagram-curation__image:focus-visible {
	outline: 2px solid var(--bronze);
	outline-offset: 4px;
}

.instagram-curation__follow {
	display: block;
	max-width: max-content;
	margin: clamp(1.25rem, 2vw, 2rem) auto 0;
	color: var(--ink-soft);
	font-family: var(--display);
	font-size: clamp(.95rem, 1.2vw, 1.2rem);
	font-style: italic;
	font-weight: 320;
	line-height: 1.3;
	opacity: .68;
	overflow-wrap: anywhere;
	text-align: center;
	transition: color 220ms ease, opacity 220ms ease;
}

.instagram-curation__follow:hover {
	opacity: 1;
}

.footer-invitation {
	background: var(--forest);
	padding: 1.25rem var(--gutter) clamp(6rem, 11vw, 11rem);
	color: var(--white);
	text-align: center;
}

.footer-invitation__line {
	display: flex;
	max-width: var(--max);
	justify-content: space-between;
	margin: 0 auto clamp(6rem, 10vw, 10rem);
	border-top: 1px solid var(--line-light);
	padding-top: 0.75rem;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.footer-invitation h2 {
	margin-bottom: 1.5rem;
	font-size: clamp(3.1rem, 6.4vw, 7.2rem);
	font-weight: 330;
}

.footer-invitation__content .eyebrow {
	width: 100%;
	margin-right: auto;
	margin-left: auto;
	text-align: center;
}

.footer-invitation__script {
	display: inline;
	margin: 0 0.025em;
	font-family: "Great Vibes", "Snell Roundhand", cursive;
	font-size: 1.3em;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0;
	line-height: inherit;
	vertical-align: baseline;
}

.footer-invitation__copy {
	max-width: 930px;
	margin: 0 auto 2.75rem;
	color: rgba(255, 255, 255, 0.76);
	font-size: clamp(1rem, 1.25vw, 1.18rem);
}

.footer-invitation .button--light:hover,
.footer-invitation .button--light:focus-visible {
	border-color: rgba(255, 255, 255, 0.68);
	background: transparent;
	color: var(--white);
}

.footer-main {
	display: grid;
	min-height: clamp(430px, 43vw, 660px);
	align-items: stretch;
	grid-template-columns: minmax(280px, .55fr) minmax(0, 1.45fr);
	background: var(--shell);
	padding: clamp(4.5rem, 8vw, 8rem) var(--gutter) clamp(3rem, 5vw, 5rem);
}

.footer-wordmark {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem clamp(2rem, 4vw, 4rem);
}

.footer-wordmark__logo {
	display: block;
	width: min(100%, 250px);
	height: auto;
	filter: brightness(0);
}

.footer-main__cta {
	display: grid;
	align-items: center;
	grid-template-columns: minmax(0, 1fr) minmax(230px, .55fr);
	gap: clamp(2.5rem, 5vw, 6rem);
	border-left: 1px solid var(--line);
	padding: 1rem 0 1rem clamp(3rem, 6vw, 7rem);
}

.footer-main__talk {
	font-family: var(--display);
	font-size: clamp(4.4rem, 7.4vw, 8.6rem);
	font-weight: 310;
	letter-spacing: -.035em;
	line-height: .95;
	white-space: nowrap;
}

.footer-main__contact {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: .35rem;
}

.footer-main__message {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	gap: 1.25rem;
	font-family: var(--display);
	font-size: clamp(1rem, 1.35vw, 1.4rem);
	font-style: italic;
}

.footer-main__email {
	font-size: clamp(.9rem, 1.1vw, 1.1rem);
	overflow-wrap: anywhere;
}

.footer-legal {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	border-top: 1px solid var(--line);
	background: var(--shell);
	padding: 1.2rem var(--gutter);
	font-size: 0.6rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.footer-legal a {
	display: inline-flex;
	width: 52px;
	height: 52px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--ink);
	font-size: 1.2rem;
	transition: background 220ms ease, color 220ms ease;
}

.footer-legal a:hover {
	background: var(--ink);
	color: var(--shell);
}

.footer-legal .footer-privacy {
	width: auto;
	height: auto;
	min-height: 44px;
	justify-content: flex-start;
	border: 0;
	font-size: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .35em;
}

.footer-legal .footer-privacy:hover,
.footer-legal .footer-privacy:focus-visible {
	background: transparent;
	color: var(--bronze);
}

/* Generic and not found */
.generic-page {
	min-height: 60vh;
}

.generic-page__content {
	max-width: 900px;
	margin: 0 auto;
}

.generic-page__content h1 {
	font-size: clamp(3rem, 6vw, 6.5rem);
}

.page-slug-privacy-policy .generic-page__content {
	max-width: 800px;
}

.page-slug-privacy-policy .generic-page__content h1 {
	margin-bottom: .8rem;
}

.page-slug-privacy-policy .generic-page__content h2 {
	margin: clamp(2.8rem, 6vw, 4.5rem) 0 1rem;
	font-family: var(--display);
	font-size: clamp(1.8rem, 3.2vw, 2.8rem);
	font-weight: 350;
	letter-spacing: -.02em;
	line-height: 1.05;
}

.page-slug-privacy-policy .generic-page__content p,
.page-slug-privacy-policy .generic-page__content li {
	font-size: clamp(.98rem, 1.25vw, 1.1rem);
	line-height: 1.75;
}

.page-slug-privacy-policy .generic-page__content ul {
	margin: 1.25rem 0 1.75rem;
	padding-left: 1.2rem;
}

.page-slug-privacy-policy .generic-page__content li + li {
	margin-top: .45rem;
}

.page-slug-privacy-policy .generic-page__content a {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .25em;
}

.privacy-policy__updated {
	margin: 0 0 clamp(2rem, 4vw, 3.5rem);
	font-size: .65rem !important;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.privacy-policy__intro {
	margin: 0;
	font-family: var(--display);
	font-size: clamp(1.35rem, 2.4vw, 2rem) !important;
	font-weight: 350;
	letter-spacing: -.015em;
	line-height: 1.35 !important;
}

.post-index article {
	border-top: 1px solid var(--line);
	padding: 2rem 0;
}

.not-found {
	display: grid;
	min-height: calc(100svh - var(--header-h));
	grid-template-columns: 1fr 1fr;
}

.not-found__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.not-found__copy {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-direction: column;
	padding: var(--gutter);
}

.not-found__copy h1 {
	font-size: clamp(3rem, 5.5vw, 6rem);
}

/* Scroll reveal */
.js .reveal {
	transform: translateY(28px);
	opacity: 0;
	transition: opacity 800ms ease, transform 900ms var(--ease);
}

.js .reveal.is-visible {
	transform: translateY(0);
	opacity: 1;
}

/* Responsive */
@media (min-width: 821px) {
	.footer-lower {
		display: grid;
		min-height: 100svh;
		grid-template-rows: auto minmax(0, 1fr) auto;
	}

	.instagram-curation {
		padding-top: clamp(2rem, 3.5vh, 3.5rem);
		padding-bottom: clamp(1.25rem, 2vh, 2rem);
	}

	.instagram-curation__grid {
		max-width: min(1120px, 72vw, 125vh);
		padding-bottom: clamp(.5rem, 1.2vh, 1rem);
	}

	.instagram-curation__image:nth-child(1),
	.instagram-curation__image:nth-child(5) {
		margin-top: clamp(.35rem, .8vh, .75rem);
	}

	.instagram-curation__image:nth-child(2),
	.instagram-curation__image:nth-child(4) {
		margin-top: clamp(.8rem, 1.8vh, 1.5rem);
	}

	.instagram-curation__follow {
		margin-top: clamp(.35rem, 1vh, .75rem);
	}

	.footer-main {
		min-height: 0;
		padding-top: clamp(2.25rem, 4vh, 4rem);
		padding-bottom: clamp(2rem, 3.5vh, 3.5rem);
	}
}

@media (max-width: 1180px) {
	:root { --header-h: 78px; }
	.desktop-nav,
	.nav-talk { display: none; }
	.site-header__inner { grid-template-columns: 1fr auto; transform: translateY(6px); }
	.wordmark { justify-self: start; min-width: 0; text-align: left; }
	.menu-toggle {
		position: relative;
		z-index: 201;
		display: inline-flex;
		min-width: 70px;
		min-height: 48px;
		align-items: center;
		justify-content: flex-end;
		gap: 0.75rem;
		border: 0;
		background: transparent;
		cursor: pointer;
	}
	.menu-toggle__label { font-size: 0.64rem; font-weight: 750; letter-spacing: 0.13em; text-transform: uppercase; }
	.menu-toggle__lines { position: relative; width: 26px; height: 14px; }
	.menu-toggle__lines i { position: absolute; right: 0; left: 0; height: 1px; background: currentColor; transition: transform 240ms var(--ease), top 240ms var(--ease); }
	.menu-toggle__lines i:first-child { top: 3px; }
	.menu-toggle__lines i:last-child { top: 10px; }
	.mobile-menu__close .menu-toggle__lines i:first-child { top: 7px; transform: rotate(45deg); }
	.mobile-menu__close .menu-toggle__lines i:last-child { top: 7px; transform: rotate(-45deg); }
	.mobile-menu { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; border: 0; padding: 0; overflow: hidden; background: transparent; color: var(--white); }
	.mobile-menu[open] { display: block; }
	.mobile-menu::backdrop { background: rgba(11, 16, 13, 0.5); }
	.mobile-menu__panel { position: absolute; top: 0; right: 0; display: flex; width: min(520px, 92vw); height: 100%; flex-direction: column; background: var(--forest); color: var(--white); }
	.mobile-menu[open] .mobile-menu__panel { animation: mobile-menu-enter 240ms var(--ease); }
	.mobile-menu__header { display: flex; min-height: var(--header-h); flex: 0 0 auto; align-items: center; justify-content: flex-end; padding: max(.5rem, env(safe-area-inset-top)) var(--gutter) .5rem; }
	.mobile-menu__close { color: var(--white); }
	.mobile-menu :focus-visible { outline-color: var(--white); }
	.mobile-menu__content { display: flex; min-height: 0; flex: 1 1 auto; flex-direction: column; gap: 1.5rem; overflow-y: auto; overscroll-behavior: contain; padding: 2rem 2rem max(2.5rem, env(safe-area-inset-bottom)); scroll-padding-block: 1rem; }
	.mobile-menu__content > * { flex-shrink: 0; }
	.mobile-menu__rule { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; border-top: 1px solid var(--line-light); padding-top: 0.7rem; font-size: 0.56rem; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; }
	.mobile-menu nav { display: flex; flex-direction: column; margin: auto 0; }
	.mobile-menu nav > a, .mobile-menu__parent-label { display: flex; min-height: 53px; align-items: center; border-bottom: 1px solid rgba(255,255,255,.16); font-family: var(--display); font-size: clamp(1.65rem, 6vw, 2.7rem); line-height: 1; }
	.mobile-subnav { display: flex; flex-wrap: wrap; gap: .25rem 1.3rem; padding: 0.8rem 0 1rem; }
	.mobile-subnav a { display: inline-flex; min-height: 42px; align-items: center; color: rgba(255,255,255,.72); font-size: .64rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
	.manifesto__content, .experience-belief__copy { padding: clamp(3rem, 6vw, 5rem); }
	.home-intro__grid { grid-template-columns: minmax(220px, .62fr) minmax(0, 1fr); }
	.home-intro__headline { grid-column: 1 / -1; }
	.home-intro__portrait { width: min(100%, 320px); }
	.service-collage { grid-template-columns: 1fr 1fr; }
	.service-card--weddings { grid-row: span 2; }
	.service-card--engagements { margin-top: 70px; }
	.service-card--families { margin-top: 0; }
	.service-card--families { height: 520px; }
	.faq-section { grid-template-columns: 1fr; }
	.investment-notes__grid { max-width: 940px; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 4rem; }
	.experience-roles__grid { grid-template-columns: 1fr 1fr; }
	.experience-roles__grid article:nth-child(2) { border-right: 0; }
	.experience-roles__grid article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
	.enquire-page__grid { grid-template-columns: minmax(0, 1.3fr) minmax(280px, .7fr); gap: 4rem; }
}

@media (max-width: 820px) {
	:root { --gutter: 1.25rem; }
	body { font-size: 16px; }
	.section-pad { padding-top: 5.5rem; padding-bottom: 5.5rem; }
	.section-rule { align-items: flex-start; margin-bottom: 4rem; }
	.section-rule span:last-child { max-width: 48%; text-align: right; }
	.home-hero { min-height: 100svh; }
	.home-hero__image { object-position: 55% center; }
	.home-hero__content { padding-bottom: 7rem; }
	.home-hero h1 { font-size: clamp(3rem, 12vw, 4.8rem); }
	.hero-scroll { right: auto; bottom: 1.5rem; left: var(--gutter); }
	.home-intro__grid, .page-intro__grid, .gallery-intro__grid, .investment-hero__grid, .journal-intro__grid { grid-template-columns: 1fr; gap: 2.4rem; }
	.page-intro--about { padding-top: 3rem; }
	.page-intro--about .page-intro__grid { grid-template-columns: 1fr; gap: 2rem; }
	.page-intro--about .page-intro__lead { padding-top: 0; }
	.home-intro__headline, .home-intro__portrait, .home-intro__copy { grid-column: auto; }
	.home-intro__portrait { width: min(78vw, 320px); }
	.home-intro__headline h2, .portfolio-preview__heading h2, .recent-preview__top h2, .page-intro h1, .gallery-intro h2, .gallery-close h2, .portfolio-promise h2, .experience-hero h1, .journal-intro h1, .investment-hero h1, .portrait-investment__heading h2 { font-size: clamp(2.4rem, 9.5vw, 4.2rem); }
	.page-intro--about h1 { font-size: clamp(2.15rem, 8vw, 3.6rem); }
	.editorial-triptych { min-height: 430px; grid-template-columns: 0.78fr 1.22fr; gap: .8rem; }
	.editorial-triptych__portrait { height: 430px; margin-top: -35px !important; }
	.editorial-triptych__wide { height: 430px; }
	.manifesto, .experience-belief, .location-note { grid-template-columns: 1fr; }
	.manifesto__image, .experience-belief__image, .location-note__image { min-height: 65svh; }
	.manifesto__content, .experience-belief__copy, .location-note__copy { padding: 4.5rem var(--gutter); }
	.manifesto__content h2, .experience-belief__copy h2 { font-size: clamp(2.6rem, 9.5vw, 4.4rem); }
	.portfolio-preview__heading, .recent-preview__top, .experience-process__heading, .portrait-investment__heading { align-items: flex-start; flex-direction: column; gap: 1.5rem; margin-bottom: 4rem; }
	.service-collage { grid-template-columns: 1fr 1fr; gap: .8rem; }
	.service-card--weddings { height: 650px; }
	.service-card--engagements, .service-card--families { height: 320px; }
	.service-card--engagements { margin-top: 50px; }
	.service-card__index { display: none; }
	.service-card__title { right: .8rem; bottom: .8rem; left: .8rem; font-size: 1.35rem; }
	.home-experience { min-height: 72svh; }
	.home-experience__content { padding: 4.5rem var(--gutter); }
	.story-grid { grid-template-columns: 1fr 1fr; }
	.story-card--offset { margin-top: 5rem; }
	.story-card:nth-child(3) { grid-column: 1 / -1; width: 62%; margin: 2rem auto 0; }
	.story-card figure, .story-card:nth-child(2) figure { height: 430px; }
	.location-note { min-height: 0; }
	.about-portrait { grid-template-columns: 1fr; gap: 4rem; }
	.about-portrait__image { width: min(78vw, 520px); justify-self: start; }
	.about-glimpses__stage { min-height: 650px; }
	.about-glimpses__story { width: 82%; height: 470px; }
	.about-glimpses__personal { top: 180px; width: 40%; height: 390px; }
	.about-glimpses__note { bottom: 0; left: 0; max-width: 340px; }
	.about-presence { grid-template-columns: 1fr; gap: 3.5rem; }
	.about-presence__image { width: min(88vw, 720px); height: 650px; }
	.about-presence__copy { max-width: 640px; }
	.about-statement, .about-statement__copy { min-height: 650px; }
	.portfolio-index__feature { grid-template-columns: 1fr; margin-bottom: 7rem; }
	.portfolio-index__feature .portfolio-index__image { height: 560px; }
	.portfolio-index__text { border-top: 0; padding: 2.2rem 0; }
	.portfolio-index__text h2 { margin: 1.5rem 0; }
	.portfolio-index__secondary { gap: 1.2rem; }
	.portfolio-index__card .portfolio-index__image { height: 480px; }
	.portfolio-index__card--lower { margin-top: 6rem; }
	.gallery-hero { min-height: 76svh; }
	.gallery-hero > img { object-position: center; }
	.page-slug-engagements .gallery-hero > img { object-position: center 68%; }
	.gallery-story__frame { height: 72svh; }
	.gallery-capture-cta { min-height: 78svh; }
	.experience-editorial { padding-top: 4.5rem; padding-bottom: 6rem; }
	.experience-journey { margin-top: 4.5rem; }
	.experience-stage, .experience-stage--reverse { grid-template-columns: 1fr; gap: 1.8rem; }
	.experience-stage + .experience-stage { margin-top: 5rem; }
	.experience-stage--reverse .experience-stage__image, .experience-stage__image { order: 1; }
	.experience-stage--reverse .experience-stage__copy, .experience-stage__copy { width: 100%; order: 2; justify-self: start; padding: 0 0.25rem; }
	.experience-hero__grid { grid-template-columns: 1fr; }
	.experience-hero__image { height: 650px; }
	.experience-belief__image { order: 1; }
	.experience-belief__copy { order: 2; }
	.investment-intro h1 { white-space: normal; }
	.investment-offer, .investment-offer--reverse { min-height: 0; grid-template-columns: 1fr; }
	.investment-offer--reverse .investment-offer__image, .investment-offer__image { min-height: 62svh; order: 1; }
	.investment-offer--reverse .investment-offer__copy, .investment-offer__copy { order: 2; padding: 4.5rem var(--gutter); }
	.investment-notes__grid { max-width: 760px; grid-template-columns: 1fr; row-gap: 3.75rem; }
	.recent-work-row { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(min(35svh, 18rem), 1fr); }
	.recent-work-row--image-first .recent-work-row__copy, .recent-work-row__copy { order: 1; padding: clamp(1.5rem, 4svh, 2.5rem) var(--gutter); }
	.recent-work-row--image-first .recent-work-row__image, .recent-work-row__image { order: 2; }
	.single-story__hero { min-height: 0; grid-template-columns: 1fr; }
	.single-story__hero-copy { min-height: 640px; padding: 4.5rem var(--gutter); }
	.single-story__back { margin-bottom: 5rem; }
	.single-story__hero-image { min-height: 72svh; }
	.single-story__content .wp-block-gallery.story-masonry { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.single-story__credits-inner { grid-template-columns: 1fr; }
	.single-story__credits-inner .eyebrow { grid-column: auto; }
	.single-story__closing { min-height: 78svh; }
	.enquire-page__grid { grid-template-columns: 1fr; gap: 5rem; }
	.enquire-profile { position: static; width: min(100%, 520px); margin: 0 auto; }
	.enquire-profile__portrait { width: min(70vw, 285px); }
	.enquire-profile__notes { grid-template-columns: 1fr 1fr; }
	.footer-main { min-height: 0; grid-template-columns: 1fr; gap: 4rem; }
	.footer-wordmark { min-height: 190px; padding: 0; }
	.footer-main__cta { border-top: 1px solid var(--line); border-left: 0; padding: 4rem 0 1rem; }
}

@media (max-width: 560px) {
	.wordmark__logo { width: 168px; }
	.mobile-menu__panel { width: 100%; }
	.mobile-menu__content { padding-right: var(--gutter); padding-left: var(--gutter); }
	.mobile-menu nav > a { font-size: 1.75rem; }
	.mobile-subnav { gap: .7rem; }
	.home-hero__content { padding-bottom: 6.5rem; }
	.home-hero h1 { font-size: 2.95rem; }
	.about-glimpses { padding-bottom: 2.5rem; }
	.about-glimpses__stage { min-height: 590px; }
	.about-glimpses__story { position: relative; width: 100%; height: 380px; }
	.about-glimpses__personal { top: 260px; width: 48%; height: 300px; }
	.about-glimpses__note { bottom: 0; max-width: 48%; font-size: .88rem; }
	.about-presence { padding-top: 2.5rem; }
	.about-presence__image { width: 100%; height: 520px; }
	.editorial-triptych { min-height: 360px; }
	.editorial-triptych__portrait { height: 360px; margin-top: -22px !important; }
	.editorial-triptych__wide { height: 360px; }
	.service-collage { grid-template-columns: 1fr; }
	.service-card--weddings { grid-row: auto; height: 620px; }
	.service-card--engagements, .service-card--families { height: 430px; margin-top: 0; }
	.home-experience { min-height: 68svh; }
	.home-experience h2 { font-size: clamp(1.55rem, 7.2vw, 3rem); }
	.story-grid { grid-template-columns: 1fr; }
	.story-card--offset { margin-top: 0; }
	.story-card:nth-child(3) { grid-column: auto; width: 100%; margin: 0; }
	.story-card figure, .story-card:nth-child(2) figure { height: 520px; }
	.location-note__image { min-height: 55svh; }
	.portfolio-index__secondary { grid-template-columns: 1fr; gap: 5rem; }
	.portfolio-index__card--lower { margin-top: 0; }
	.portfolio-index__feature .portfolio-index__image, .portfolio-index__card .portfolio-index__image { height: 520px; }
	.gallery-hero { min-height: 72svh; }
	.gallery-hero__title { padding-bottom: 2rem; }
	.gallery-hero__title h1 { font-size: 2.45rem; }
	.gallery-story { gap: 4px; padding-top: 4px; }
	.gallery-story__frame { height: 62svh; }
	.gallery-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; }
	.gallery-mosaic__item,
	.gallery-mosaic--remainder-1 .gallery-mosaic__item:last-child,
	.gallery-mosaic--remainder-2 .gallery-mosaic__item:nth-last-child(2) { grid-column: auto; }
	.gallery-capture-cta { min-height: 72svh; }
	.gallery-capture-cta h2 { font-size: clamp(3.15rem, 15vw, 4.7rem); }
	.gallery-capture-cta__content > p { max-width: 32ch; }
	.experience-editorial__intro h1 { font-size: clamp(2.85rem, 14vw, 4rem); }
	.investment-intro h1 { font-size: clamp(2.85rem, 14vw, 4rem); }
	.investment-intro__script { font-size: 1.1em; }
	.investment-notes__heading { margin-bottom: 4rem; }
	.investment-notes__heading h2 { font-size: clamp(2.5rem, 15vw, 5rem); letter-spacing: -.055em; white-space: normal; }
	.investment-note { grid-template-columns: 36px minmax(0, 1fr); gap: .75rem; }
	.investment-note h3 { font-size: 1.25rem; }
	.investment-note div > p { font-size: .94rem; }
	.experience-stage__copy h2 { font-size: 2.25rem; }
	.timeline__item { grid-template-columns: 48px 1fr; gap: 1rem; }
	.experience-roles__grid { grid-template-columns: 1fr; }
	.experience-roles__grid article { min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
	.experience-roles__grid article:nth-child(3) { border-bottom: 1px solid var(--line); }
	.experience-roles__grid h3 { margin-top: 2.5rem; }
	.investment-offers { padding-right: 0; padding-left: 0; }
	.investment-offer { margin-bottom: 1rem; }
	.investment-offer--reverse .investment-offer__image, .investment-offer__image { min-height: 520px; }
	.recent-work-row h1, .recent-work-row h2 { font-size: clamp(2.8rem, 13vw, 4rem); }
	.single-story__hero-copy { min-height: 0; padding-top: 3.5rem; padding-bottom: 4rem; }
	.single-story__back { margin-bottom: 4rem; }
	.single-story__hero-copy h1 { font-size: clamp(3rem, 13vw, 4.5rem); }
	.single-story__summary { font-size: 1.1rem; }
	.single-story__facts { grid-template-columns: 1fr; }
	.single-story__hero-image { min-height: 590px; }
	.single-story__content { padding-top: 4.5rem; padding-bottom: 4.5rem; }
	.single-story__content > .story-opening, .single-story__content > p:first-child { margin-bottom: 4rem; font-size: 1.55rem; }
	.single-story__content h2 { margin-top: 4.5rem; font-size: clamp(2.5rem, 12vw, 3.8rem); }
	.single-story__content > .alignwide, .single-story__content > .wp-block-gallery, .single-story__content > .wp-block-columns, .single-story__content > .wp-block-video { width: 100%; }
	.single-story__content .wp-block-gallery.story-masonry { grid-template-columns: 1fr; }
	.single-story__content blockquote { width: 100%; padding: 3rem var(--gutter); }
	.single-story__closing { min-height: 680px; }
	.single-story__closing-content h2 { font-size: clamp(3rem, 14vw, 4.7rem); }
	.form-row { grid-template-columns: 1fr; gap: 0; }
	.form-submit { align-items: flex-start; flex-direction: column; }
	.form-submit .button { width: 100%; }
	.enquire-direct { align-items: flex-start; flex-direction: column; gap: .75rem; }
	.enquire-page { padding-top: 3.75rem; }
	.enquire-page__intro h1 { font-size: clamp(3rem, 14vw, 4.2rem); }
	.enquire-profile__notes { grid-template-columns: 1fr; }
	.instagram-curation { overflow: hidden; }
	.instagram-curation__grid { display: flex; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; }
	.instagram-curation__grid::-webkit-scrollbar { display: none; }
	.instagram-curation__image { width: min(68vw, 300px); flex: 0 0 auto; scroll-snap-align: start; }
	.footer-invitation__line span:last-child { display: none; }
	.footer-invitation h2 { font-size: 2.9rem; }
	.footer-invitation__script { font-size: 1em; }
	.footer-main { gap: 3rem; padding-top: 4rem; }
	.footer-wordmark { min-height: 165px; }
	.footer-main__cta { grid-template-columns: 1fr; gap: 2.5rem; padding-top: 3.5rem; }
	.footer-main__talk { font-size: clamp(3.8rem, 18vw, 5.6rem); white-space: normal; }
	.footer-legal { display: grid; grid-template-columns: 1fr auto; gap: .35rem 1rem; }
	.footer-location { display: none; }
	.footer-privacy { grid-column: 1; grid-row: 2; justify-self: start; }
	.footer-to-top { grid-column: 2; grid-row: 1; }
	.not-found { grid-template-columns: 1fr; }
	.not-found__image { height: 55svh; }
	.not-found__copy { min-height: 50svh; padding: 4rem var(--gutter); }
}

@keyframes mobile-menu-enter {
	from { transform: translateX(100%); }
	to { transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.js .reveal { transform: none; opacity: 1; }
}
