/*
Theme Name: Balancing Diamonds
Theme URI: https://balancingdiamonds.com
Author: Derek Green / Bodhi Oak
Author URI: https://balancingdiamonds.com/founder/
Description: A parchment-lit editorial maison for essays, letters, editions, and the Diamond Architecture. Built for direct publishing from Ulysses into WordPress.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: balancing-diamonds
Tags: blog, custom-logo, custom-menu, featured-images, editor-style, wide-blocks, accessibility-ready
*/

:root {
	--parchment: #f2eadc;
	--parchment-deep: #e6dac7;
	--paper: #fbf7ef;
	--paper-soft: #f7f1e7;
	--espresso: #221b17;
	--ink: #312923;
	--muted: #6d6258;
	--line: rgba(34, 27, 23, 0.18);
	--line-strong: rgba(34, 27, 23, 0.34);
	--oxblood: #6f2630;
	--oxblood-deep: #4c1820;
	--navy: #173d4c;
	--navy-deep: #0d2a35;
	--teal: #2f6f70;
	--sea-glass: #9db9b0;
	--gold: #9c8056;
	--white: #fffdf8;
	--shadow: 0 24px 70px rgba(48, 35, 25, 0.12);
	--serif: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
	--sans: "Avenir Next", Avenir, "Helvetica Neue", Helvetica, Arial, sans-serif;
	--shell: min(92vw, 1380px);
	--reading: min(86vw, 760px);
	--header-height: 96px;
	--ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

html[data-theme="night"] {
	--parchment: #111c22;
	--parchment-deep: #0b151a;
	--paper: #17262d;
	--paper-soft: #1b2b32;
	--espresso: #f1eadc;
	--ink: #e0d8ca;
	--muted: #a9a095;
	--line: rgba(239, 232, 219, 0.18);
	--line-strong: rgba(239, 232, 219, 0.34);
	--oxblood: #b8757b;
	--oxblood-deep: #9e626a;
	--navy: #83b5c3;
	--navy-deep: #5b9aad;
	--teal: #85b8b1;
	--sea-glass: #5d8882;
	--gold: #c0a67c;
	--white: #f5efe4;
	--shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
}

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

html {
	scroll-behavior: smooth;
	background: var(--parchment);
}

body {
	margin: 0;
	background:
		radial-gradient(circle at 15% 10%, rgba(157, 185, 176, 0.14), transparent 30rem),
		radial-gradient(circle at 88% 22%, rgba(156, 128, 86, 0.08), transparent 28rem),
		var(--parchment);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.72;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

body::before {
	position: fixed;
	z-index: 1000;
	inset: 0;
	pointer-events: none;
	content: "";
	opacity: 0.13;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");
	mix-blend-mode: multiply;
}

html[data-theme="night"] body::before {
	opacity: 0.08;
	mix-blend-mode: screen;
}

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

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

figure {
	margin: 0;
}

a {
	color: var(--navy);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

a:hover {
	color: var(--oxblood);
}

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

button,
a {
	-webkit-tap-highlight-color: transparent;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 0.65em;
	color: var(--espresso);
	font-family: var(--serif);
	font-weight: 400;
	line-height: 1.03;
	letter-spacing: -0.026em;
}

h1 { font-size: clamp(3.6rem, 7.6vw, 8.3rem); }
h2 { font-size: clamp(2.65rem, 4.7vw, 5.4rem); }
h3 { font-size: clamp(1.65rem, 2.4vw, 2.45rem); }

p {
	margin: 0 0 1.25em;
}

blockquote {
	margin: 2.5rem 0;
	padding: 0 0 0 1.5rem;
	border-left: 2px solid var(--oxblood);
	color: var(--espresso);
	font-family: var(--serif);
	font-size: clamp(1.6rem, 3vw, 2.45rem);
	font-style: italic;
	line-height: 1.34;
}

.shell {
	width: var(--shell);
	margin-inline: auto;
}

.shell--wide {
	width: var(--shell);
}

.shell--reading {
	width: var(--reading);
}

.section-pad {
	padding-block: clamp(5.5rem, 10vw, 10rem);
}

.site-frame {
	position: relative;
	min-height: 100vh;
	overflow: clip;
}

.site-main {
	display: block;
}

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

.screen-reader-text:focus,
.skip-link:focus {
	z-index: 100000;
	top: 1rem;
	left: 1rem;
	width: auto;
	height: auto;
	padding: 0.9rem 1.2rem;
	clip: auto !important;
	background: var(--espresso);
	color: var(--paper);
	font-weight: 700;
}

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

.eyebrow,
.kicker,
.post-meta,
.essay-kicker {
	margin-bottom: 1.5rem;
	color: var(--oxblood);
	font-family: var(--sans);
	font-size: 0.69rem;
	font-weight: 700;
	letter-spacing: 0.17em;
	line-height: 1.4;
	text-transform: uppercase;
}

.eyebrow span {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
}

.eyebrow span::before {
	width: 2.75rem;
	height: 1px;
	background: currentColor;
	content: "";
}

.button-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 1.5rem 2rem;
	margin-top: 2.25rem;
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 1.4rem;
	min-height: 54px;
	padding: 0.9rem 1.4rem;
	border: 1px solid var(--espresso);
	background: var(--espresso);
	color: var(--paper);
	font-size: 0.69rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	line-height: 1.25;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	transition: background 250ms var(--ease), color 250ms var(--ease), transform 250ms var(--ease);
}

.button:hover {
	background: transparent;
	color: var(--espresso);
	transform: translateY(-2px);
}

.button--outline {
	background: transparent;
	color: var(--espresso);
}

.button--outline:hover {
	background: var(--espresso);
	color: var(--paper);
}

.button--light {
	border-color: var(--paper);
	background: var(--paper);
	color: var(--navy-deep);
}

.button--light:hover {
	background: transparent;
	color: var(--paper);
}

.text-link {
	display: inline-block;
	padding-bottom: 0.25rem;
	border-bottom: 1px solid currentColor;
	color: var(--navy);
	font-size: 0.71rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.4;
	text-decoration: none;
	text-transform: uppercase;
	transition: color 180ms ease, border-color 180ms ease;
}

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

/* Header */
.site-header {
	position: relative;
	z-index: 100;
	height: var(--header-height);
	border-bottom: 1px solid var(--line);
	background: var(--parchment);
	background: color-mix(in srgb, var(--parchment) 90%, transparent);
	backdrop-filter: blur(18px);
}

.site-header__inner {
	display: grid;
	grid-template-columns: minmax(220px, 1fr) auto 2rem;
	align-items: center;
	gap: 2rem;
	height: 100%;
}

.wordmark {
	display: inline-flex;
	flex-direction: column;
	color: var(--espresso);
	text-decoration: none;
}

.wordmark:hover { color: var(--espresso); }
.wordmark__primary {
	font-family: var(--serif);
	font-size: 1.48rem;
	line-height: 1;
	letter-spacing: -0.035em;
}

.wordmark__secondary {
	margin-top: 0.38rem;
	color: var(--muted);
	font-size: 0.54rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1;
	text-transform: uppercase;
}

.custom-logo-link { display: inline-flex; }
.custom-logo { width: auto; max-height: 62px; }

.primary-navigation .menu,
.footer-navigation .menu {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 2.2vw, 2.35rem);
	padding: 0;
	margin: 0;
	list-style: none;
}

.primary-navigation a {
	position: relative;
	color: var(--espresso);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
}

.primary-navigation a::after {
	position: absolute;
	right: 0;
	bottom: -0.45rem;
	left: 0;
	height: 1px;
	background: var(--oxblood);
	content: "";
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 250ms var(--ease);
}

.primary-navigation a:hover::after,
.primary-navigation .current-menu-item > a::after {
	transform: scaleX(1);
	transform-origin: left;
}

.menu-toggle {
	display: none;
	border: 0;
	background: transparent;
	color: var(--espresso);
}

.mode-toggle {
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--espresso);
	cursor: pointer;
}

.mode-toggle__moon { display: none; }
html[data-theme="night"] .mode-toggle__sun { display: none; }
html[data-theme="night"] .mode-toggle__moon { display: inline; }

/* Home salon */
.salon-hero {
	position: relative;
	min-height: calc(100svh - var(--header-height));
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	background:
		linear-gradient(90deg, transparent 0 66%, rgba(47, 111, 112, 0.08) 66% 100%),
		linear-gradient(180deg, var(--paper-soft), var(--parchment));
}

.salon-hero::after {
	position: absolute;
	top: 0;
	right: 8vw;
	bottom: 0;
	width: 1px;
	background: var(--line);
	content: "";
}

.salon-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.75fr) minmax(280px, 0.75fr);
	align-items: center;
	gap: clamp(4rem, 9vw, 10rem);
	padding-block: clamp(5rem, 10vh, 9rem);
}

.salon-hero__copy {
	max-width: 910px;
}

.salon-hero h1 {
	max-width: 900px;
	margin-bottom: 0.28em;
}

.salon-hero__lede {
	max-width: 670px;
	color: var(--muted);
	font-family: var(--serif);
	font-size: clamp(1.3rem, 2.2vw, 1.8rem);
	line-height: 1.5;
}

.salon-hero__emblem {
	text-align: center;
}

.salon-hero__emblem p {
	margin-top: 3rem;
	color: var(--muted);
	font-size: 0.6rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 2;
	text-transform: uppercase;
}

.diamond-emblem {
	position: relative;
	width: min(19vw, 260px);
	aspect-ratio: 1;
	margin: auto;
	border: 1px solid var(--line-strong);
	transform: rotate(45deg);
}

.diamond-emblem::before,
.diamond-emblem::after {
	position: absolute;
	inset: 15%;
	border: 1px solid var(--teal);
	content: "";
}

.diamond-emblem::after {
	inset: 34%;
	border-color: var(--oxblood);
}

.diamond-emblem__line {
	position: absolute;
	background: var(--line);
}

.diamond-emblem__line--one { top: 50%; right: 0; left: 0; height: 1px; }
.diamond-emblem__line--two { top: 0; bottom: 0; left: 50%; width: 1px; }
.diamond-emblem__line--three { inset: 0; border: 1px solid var(--line); background: none; transform: rotate(45deg) scale(0.7); }
.diamond-emblem__center { position: absolute; top: 50%; left: 50%; width: 8px; height: 8px; background: var(--gold); transform: translate(-50%, -50%); }

.salon-hero__folio {
	display: flex;
	justify-content: space-between;
	padding-block: 1.1rem 1.4rem;
	border-top: 1px solid var(--line);
	color: var(--muted);
	font-size: 0.56rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.belief-band {
	background: var(--oxblood-deep);
	color: #f5ece0;
}

.belief-band__inner {
	display: grid;
	grid-template-columns: 0.65fr 2fr;
	align-items: center;
	gap: 3rem;
	padding-block: 2.5rem;
}

.belief-band p { margin: 0; }
.belief-band .kicker { color: #d9bfc0; }
.belief-band p:last-child { font-family: var(--serif); font-size: clamp(1.25rem, 2vw, 1.8rem); }

.section-heading {
	max-width: 790px;
	margin-bottom: clamp(3rem, 6vw, 5.75rem);
}

.section-heading > p:last-child {
	max-width: 630px;
	color: var(--muted);
	font-family: var(--serif);
	font-size: 1.35rem;
}

.section-heading--split {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 3rem;
	max-width: none;
}

.section-heading--split h2 { margin-bottom: 0; }

.featured-work { background: var(--paper); }

.feature-card {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
	min-height: 580px;
	border: 1px solid var(--line);
	background: var(--parchment);
	box-shadow: var(--shadow);
}

.feature-card__media {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 520px;
	overflow: hidden;
	background:
		linear-gradient(145deg, rgba(13, 42, 53, 0.96), rgba(47, 111, 112, 0.82)),
		var(--navy-deep);
	text-decoration: none;
}

.feature-card__media::before,
.feature-card__media::after {
	position: absolute;
	width: 52%;
	aspect-ratio: 1;
	border: 1px solid rgba(255, 255, 255, 0.28);
	content: "";
	transform: rotate(45deg);
}

.feature-card__media::after { width: 28%; border-color: rgba(214, 186, 141, 0.48); }
.feature-card__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.72) contrast(0.96); transition: transform 800ms var(--ease); }
.feature-card:hover .feature-card__media img { transform: scale(1.025); }
.feature-card__monogram { z-index: 1; color: #f2eadc; font-family: var(--serif); font-size: clamp(4rem, 8vw, 8rem); letter-spacing: -0.07em; }
.feature-card__content { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(3rem, 6vw, 6.5rem); }
.feature-card__content h3 { margin-bottom: 1rem; }
.feature-card__content h3 a { color: var(--espresso); text-decoration: none; }
.feature-card__content > p:not(.post-meta) { color: var(--muted); }

.post-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
	margin-bottom: 1.25rem;
}

.post-meta span + span::before {
	display: inline-block;
	width: 3px;
	height: 3px;
	margin-right: 1rem;
	border-radius: 50%;
	background: currentColor;
	vertical-align: middle;
	content: "";
}

/* Axis */
.axis-section {
	background: var(--parchment);
}

.axis-section__layout {
	display: grid;
	grid-template-columns: minmax(280px, 0.78fr) minmax(0, 1.22fr);
	gap: clamp(5rem, 11vw, 12rem);
}

.axis-section__intro {
	position: sticky;
	top: 3rem;
	align-self: start;
}

.axis-section__intro p:not(.eyebrow) { max-width: 480px; color: var(--muted); }
.axis-section__intro .button { margin-top: 1.5rem; }

.axis-list {
	padding: 0;
	margin: 0;
	border-top: 1px solid var(--line-strong);
	list-style: none;
}

.axis-list li {
	display: grid;
	grid-template-columns: 4rem 1fr;
	gap: 1.5rem;
	padding-block: 1.5rem;
	border-bottom: 1px solid var(--line);
}

.axis-list li > span {
	padding-top: 0.3rem;
	color: var(--oxblood);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.14em;
}

.axis-list strong {
	display: block;
	color: var(--espresso);
	font-family: var(--serif);
	font-size: clamp(1.6rem, 2.8vw, 2.65rem);
	font-weight: 400;
	line-height: 1.1;
}

.axis-list p { margin: 0.3rem 0 0; color: var(--muted); font-size: 0.9rem; }

/* Rooms */
.rooms-section { background: var(--paper); }
.room-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line-strong); border-left: 1px solid var(--line); }
.room-card { position: relative; min-height: 390px; padding: 2rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper-soft); color: var(--ink); text-decoration: none; transition: background 300ms var(--ease), color 300ms var(--ease), transform 300ms var(--ease); }
.room-card::before { position: absolute; inset: 0; background: linear-gradient(155deg, var(--navy-deep), var(--teal)); content: ""; opacity: 0; transition: opacity 300ms var(--ease); }
.room-card > * { position: relative; z-index: 1; }
.room-card__number { color: var(--oxblood); font-size: 0.62rem; font-weight: 700; letter-spacing: 0.15em; }
.room-card h3 { margin-top: 7rem; font-size: clamp(2.2rem, 4vw, 3.7rem); }
.room-card p { color: var(--muted); font-size: 0.9rem; }
.room-card__arrow { position: absolute; right: 2rem; bottom: 1.5rem; color: var(--navy); font-size: 1.5rem; }
.room-card:hover { color: #f5efe3; transform: translateY(-5px); }
.room-card:hover::before { opacity: 1; }
.room-card:hover h3, .room-card:hover p, .room-card:hover .room-card__number, .room-card:hover .room-card__arrow { color: #f5efe3; }

/* Journal cards */
.journal-section { background: var(--parchment); }
.post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 4.5rem); }
.post-grid--archive { row-gap: clamp(4rem, 7vw, 7rem); }
.post-card__media { position: relative; display: grid; place-items: center; aspect-ratio: 4 / 3; margin-bottom: 1.7rem; overflow: hidden; background: linear-gradient(145deg, var(--navy-deep), var(--teal)); text-decoration: none; }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.75); transition: transform 700ms var(--ease); }
.post-card:hover .post-card__media img { transform: scale(1.035); }
.post-card__facet { width: 38%; aspect-ratio: 1; border: 1px solid rgba(255,255,255,0.5); box-shadow: inset 0 0 0 2rem rgba(255,255,255,0.03); transform: rotate(45deg); }
.post-card__facet--2 { border-radius: 50%; transform: none; }
.post-card__facet--3 { width: 28%; transform: rotate(45deg) scaleY(1.5); }
.post-card__content h3 { font-size: clamp(1.6rem, 2.8vw, 2.4rem); }
.post-card__content h3 a { color: var(--espresso); text-decoration: none; }
.post-card__content > p:not(.post-meta) { color: var(--muted); font-size: 0.92rem; }

/* Letters */
.letters-section { position: relative; overflow: hidden; background: var(--navy-deep); color: #e8e0d5; text-align: center; }
.letters-section::before, .letters-section::after { position: absolute; top: 50%; width: min(34vw, 430px); aspect-ratio: 1; border: 1px solid rgba(157, 185, 176, 0.19); content: ""; transform: translateY(-50%) rotate(45deg); }
.letters-section::before { left: -15vw; }
.letters-section::after { right: -15vw; }
.letters-section__inner { position: relative; z-index: 1; width: min(88vw, 720px); }
.letters-section h2 { color: #f6efe3; }
.letters-section .eyebrow { color: #b7d4cd; }
.letters-section p:not(.eyebrow) { max-width: 610px; margin-inline: auto; color: #cfc7ba; font-family: var(--serif); font-size: 1.25rem; }
.letters-section small { display: block; margin-top: 1.5rem; color: #9ab2b1; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.letters-form { margin-top: 2.25rem; }
.letters-form form { display: flex; justify-content: center; gap: 0.75rem; }
.letters-form input[type="email"] { min-width: min(100%, 340px); padding: 0.9rem 1rem; border: 1px solid rgba(255,255,255,0.35); border-radius: 0; background: rgba(255,255,255,0.08); color: #fff; }
.letters-form input[type="submit"], .letters-form button { min-height: 52px; padding: 0.8rem 1.25rem; border: 1px solid #f5efe3; background: #f5efe3; color: var(--navy-deep); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; }

/* Founder */
.founder-section { background: var(--paper); }
.founder-section__layout { display: grid; grid-template-columns: 0.7fr 1.3fr; align-items: center; gap: clamp(4rem, 10vw, 11rem); }
.founder-section__label { min-height: 400px; display: flex; flex-direction: column; justify-content: space-between; padding: 2rem; border: 1px solid var(--line); background: linear-gradient(150deg, var(--parchment), var(--parchment-deep)); }
.founder-monogram { margin: 0; color: var(--navy); font-family: var(--serif); font-size: clamp(5rem, 12vw, 11rem); letter-spacing: -0.09em; line-height: 0.7; }
.founder-monogram--small { display: grid; place-items: center; width: 86px; height: 86px; border: 1px solid var(--line-strong); font-size: 2.6rem; line-height: 1; transform: rotate(-3deg); }
.founder-section__copy { max-width: 700px; }
.founder-section__copy > p { color: var(--muted); font-family: var(--serif); font-size: clamp(1.25rem, 2.2vw, 1.65rem); line-height: 1.55; }

/* Pages */
.page-hero { padding-block: clamp(6rem, 12vw, 11rem) clamp(3rem, 5vw, 5rem); border-bottom: 1px solid var(--line); }
.page-hero h1 { font-size: clamp(4rem, 9vw, 8.5rem); }
.page-content { padding-block: clamp(4rem, 8vw, 8rem); }
.entry-content { font-family: var(--serif); font-size: clamp(1.12rem, 1.6vw, 1.28rem); line-height: 1.8; }
.entry-content > * { max-width: 100%; }
.entry-content > * + * { margin-top: 1.5em; }
.entry-content h2 { margin-top: 1.8em; font-size: clamp(2.2rem, 4vw, 3.9rem); }
.entry-content h3 { margin-top: 1.6em; }
.entry-content .bd-lede, .bd-lede { color: var(--espresso); font-size: clamp(1.55rem, 2.8vw, 2.25rem); line-height: 1.5; }
.entry-content ul, .entry-content ol { padding-left: 1.35em; }
.entry-content li + li { margin-top: 0.55em; }
.entry-content .alignwide { width: min(92vw, 1100px); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.entry-content .alignfull { width: 100vw; max-width: none; margin-left: 50%; transform: translateX(-50%); }
.entry-content figcaption, .essay-featured figcaption { margin-top: 0.75rem; color: var(--muted); font-family: var(--sans); font-size: 0.7rem; letter-spacing: 0.05em; }

/* Architecture */
.architecture-hero { padding-block: clamp(7rem, 14vw, 13rem); background: linear-gradient(145deg, var(--paper), var(--parchment)); text-align: center; }
.architecture-hero__inner { width: min(88vw, 1050px); }
.architecture-hero h1 { font-size: clamp(3.7rem, 8vw, 7.7rem); }
.architecture-hero p:last-child { max-width: 700px; margin-inline: auto; color: var(--muted); font-family: var(--serif); font-size: 1.35rem; }
.architecture-center { background: var(--paper); }
.architecture-center__layout { display: grid; grid-template-columns: 0.8fr 1.2fr; align-items: center; gap: clamp(4rem, 10vw, 10rem); }
.architecture-gem { position: relative; display: grid; place-items: center; width: min(55vw, 420px); aspect-ratio: 1; margin: auto; border: 1px solid var(--teal); transform: rotate(45deg); }
.architecture-gem::before, .architecture-gem::after { position: absolute; inset: 17%; border: 1px solid var(--line-strong); content: ""; }
.architecture-gem::after { inset: 35%; border-color: var(--oxblood); }
.architecture-gem span { color: var(--espresso); font-size: 0.67rem; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; transform: rotate(-45deg); }
.large-copy { color: var(--muted); font-family: var(--serif); font-size: 1.55rem; }
.architecture-axis { background: var(--parchment); }
.architecture-steps { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line-strong); border-left: 1px solid var(--line); }
.architecture-step { min-height: 350px; padding: 2.25rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.architecture-step__number { color: var(--oxblood); font-size: 0.63rem; font-weight: 700; letter-spacing: 0.14em; }
.architecture-step h3 { margin-top: 4rem; font-size: 2.7rem; }
.architecture-step__command { color: var(--espresso); font-family: var(--serif); font-size: 1.15rem; }
.architecture-step__question { color: var(--muted); font-size: 0.84rem; font-style: italic; }
.architecture-rooms { background: var(--navy-deep); color: #ded6c9; }
.section-heading--light h2 { color: #f5eee2; }
.section-heading--light .eyebrow { color: #a5cac5; }
.section-heading--light > p:last-child { color: #aaa9a1; }
.architecture-room-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,0.3); }
.architecture-room-grid article { min-height: 350px; padding: 2rem; border-right: 1px solid rgba(255,255,255,0.2); }
.architecture-room-grid article:last-child { border-right: 0; }
.architecture-room-grid span { color: #9dc4bf; font-size: 0.63rem; font-weight: 700; letter-spacing: 0.14em; }
.architecture-room-grid h3 { margin-top: 7rem; color: #f5eee2; font-size: 3rem; }
.architecture-room-grid p { color: #aaa9a1; font-size: 0.88rem; }
.disciplines-section { background: var(--paper); }
.disciplines-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); }
.disciplines-grid article { min-height: 250px; padding: 2.5rem; background: var(--parchment); }
.disciplines-grid h3 { font-size: 2.8rem; }
.disciplines-grid p { color: var(--muted); }
.architecture-cta { display: grid; grid-template-columns: 1.2fr auto; align-items: center; gap: 3rem; margin-top: 5rem; padding: 3rem 0; border-top: 1px solid var(--line-strong); }
.architecture-cta p { margin: 0; font-family: var(--serif); font-size: clamp(1.7rem, 3vw, 2.7rem); line-height: 1.25; }
.architecture-page__editable { padding-top: 0; }

/* Journal archive */
.archive-hero { padding-block: clamp(6rem, 12vw, 11rem); background: var(--paper); }
.archive-hero__inner { display: grid; grid-template-columns: 1.1fr 0.9fr; align-items: end; gap: 6rem; }
.archive-hero h1 { margin-bottom: 0; }
.archive-hero__inner > p, .archive-description { max-width: 550px; margin: 0; color: var(--muted); font-family: var(--serif); font-size: 1.4rem; }
.archive-hero--compact { padding-block: clamp(5rem, 9vw, 8rem); }
.archive-hero--compact h1 { font-size: clamp(3.5rem, 7vw, 6.8rem); }
.archive-index { border-block: 1px solid var(--line); background: var(--parchment-deep); }
.archive-index__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; padding-block: 1.4rem; }
.archive-index__group { display: flex; align-items: center; flex-wrap: wrap; gap: 0.7rem 1.2rem; }
.archive-index__group span { color: var(--oxblood); font-size: 0.62rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.archive-index__group a { color: var(--espresso); font-family: var(--serif); font-size: 0.96rem; text-decoration: none; }
.archive-content { background: var(--parchment); }
.navigation.pagination { margin-top: 5rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.nav-links { display: flex; align-items: center; justify-content: center; gap: 1rem; }
.nav-links .page-numbers { min-width: 2.2rem; min-height: 2.2rem; display: grid; place-items: center; color: var(--espresso); text-decoration: none; }
.nav-links .current { background: var(--espresso); color: var(--paper); }

/* Essay reading room */
.essay-header { padding-block: clamp(6rem, 12vw, 11rem) clamp(4rem, 7vw, 7rem); text-align: center; }
.essay-kicker { display: flex; justify-content: center; gap: 1.5rem; }
.essay-kicker a { color: inherit; text-decoration: none; }
.essay-kicker span + span::before { margin-right: 1.5rem; content: "◆"; font-size: 0.4rem; vertical-align: middle; }
.essay-header h1 { font-size: clamp(3.6rem, 8.4vw, 7.8rem); }
.essay-deck { color: var(--muted); font-family: var(--serif); font-size: clamp(1.35rem, 2.5vw, 1.8rem); line-height: 1.5; }
.essay-byline { display: flex; justify-content: center; flex-wrap: wrap; gap: 0.75rem 1.5rem; margin-top: 2.5rem; color: var(--muted); font-size: 0.64rem; font-weight: 700; letter-spacing: 0.11em; text-transform: uppercase; }
.essay-byline span + span::before { margin-right: 1.5rem; content: "·"; }
.essay-featured { margin-bottom: clamp(4rem, 8vw, 7rem); }
.essay-featured img { width: 100%; max-height: 780px; object-fit: cover; filter: saturate(0.8); }
.essay-content { padding-bottom: clamp(5rem, 10vw, 10rem); }
.essay-content > p:first-child::first-letter { float: left; margin: 0.1em 0.12em -0.05em 0; color: var(--oxblood); font-family: var(--serif); font-size: 5em; line-height: 0.72; }
.essay-footer { padding-bottom: clamp(5rem, 10vw, 9rem); }
.essay-tags { display: flex; flex-wrap: wrap; gap: 0.75rem 1rem; padding-block: 1.4rem; border-block: 1px solid var(--line); }
.essay-tags > span { color: var(--muted); font-size: 0.63rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.essay-tags a { color: var(--navy); font-family: var(--serif); text-decoration: none; }
.essay-author-note { display: grid; grid-template-columns: 100px 1fr; gap: 2rem; margin-top: 4rem; }
.essay-author-note h2 { margin-bottom: 0.3rem; font-size: 2.4rem; }
.essay-author-note p:last-child { color: var(--muted); font-size: 0.9rem; }
.essay-navigation { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line-strong); }
.essay-navigation > div { min-height: 190px; display: flex; flex-direction: column; justify-content: center; padding: 2rem 0; }
.essay-navigation > div + div { align-items: end; padding-left: 3rem; border-left: 1px solid var(--line); text-align: right; }
.essay-navigation span { display: block; margin-bottom: 0.8rem; color: var(--muted); font-size: 0.61rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.essay-navigation a { max-width: 460px; color: var(--espresso); font-family: var(--serif); font-size: clamp(1.25rem, 2.4vw, 2rem); line-height: 1.25; text-decoration: none; }
.letters-section--essay { margin-top: clamp(4rem, 8vw, 8rem); }

/* Letters page */
.letters-page { position: relative; min-height: calc(100svh - var(--header-height)); display: grid; place-items: center; padding-block: clamp(6rem, 11vw, 10rem); overflow: hidden; background: var(--navy-deep); color: #dcd3c6; text-align: center; }
.letters-page::before { position: absolute; width: min(70vw, 720px); aspect-ratio: 1; border: 1px solid rgba(157,185,176,0.18); content: ""; transform: rotate(45deg); }
.letters-page__inner { position: relative; z-index: 1; width: min(88vw, 780px); }
.letters-page h1 { color: #f4ede2; font-size: clamp(4rem, 9vw, 8rem); }
.letters-page .eyebrow { color: #a8d0c9; }
.letters-page__lede { font-family: var(--serif); font-size: 1.4rem; }
.letters-page .entry-content { color: #bdb5a9; font-size: 1.05rem; }
.letters-page__form { margin-block: 2.5rem; }
.letters-page__note { color: #97aca8; font-size: 0.65rem; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; }

/* Forms, empty states, and 404 */
.search-form { display: flex; gap: 0.6rem; width: min(100%, 500px); }
.search-field { width: 100%; padding: 0.85rem 1rem; border: 1px solid var(--line-strong); border-radius: 0; background: var(--paper); color: var(--espresso); }
.search-submit { padding: 0.85rem 1.2rem; border: 1px solid var(--espresso); background: var(--espresso); color: var(--paper); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; }
.empty-library { padding-block: 3rem; text-align: center; }
.empty-library .search-form { margin: 2rem auto 0; }
.not-found-page { min-height: calc(100svh - var(--header-height)); display: grid; place-items: center; padding-block: 5rem; text-align: center; }
.not-found-page__inner { width: min(88vw, 760px); }
.not-found-page__number { margin: 0; color: var(--parchment-deep); font-family: var(--serif); font-size: clamp(8rem, 22vw, 17rem); line-height: 0.65; text-shadow: 0 0 0 var(--line); }
.not-found-page h1 { margin-top: -0.2em; font-size: clamp(3rem, 6vw, 5.5rem); }
.not-found-page .button-row { justify-content: center; }
.not-found-page .search-form { margin: 3rem auto 0; }

/* Footer */
.site-footer { padding-block: 4rem 2rem; border-top: 1px solid var(--line); background: var(--parchment-deep); }
.site-footer__inner { display: grid; grid-template-columns: 1fr 1.4fr; gap: 3rem; }
.footer-mark { color: var(--espresso); font-family: var(--serif); font-size: 2rem; letter-spacing: -0.04em; text-decoration: none; }
.site-footer__statement p { max-width: 420px; margin-top: 0.7rem; color: var(--muted); font-family: var(--serif); }
.footer-navigation { justify-self: end; }
.footer-navigation a { color: var(--espresso); font-size: 0.62rem; font-weight: 700; letter-spacing: 0.11em; text-decoration: none; text-transform: uppercase; }
.site-footer__meta { grid-column: 1 / -1; display: flex; justify-content: space-between; padding-top: 1.5rem; border-top: 1px solid var(--line); color: var(--muted); font-size: 0.58rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.site-footer__meta p { margin: 0; }

/* WordPress essentials */
.alignleft { float: left; margin: 0.4rem 2rem 1rem 0; }
.alignright { float: right; margin: 0.4rem 0 1rem 2rem; }
.aligncenter { display: block; margin-right: auto; margin-left: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text, .gallery-caption { color: var(--muted); font-size: 0.75rem; }
.sticky { position: relative; }
.bypostauthor { position: relative; }
.page-links { margin-top: 2rem; }

/* Responsive */
@media (max-width: 1120px) {
	:root { --header-height: 82px; }
	.site-header__inner { grid-template-columns: 1fr auto auto; }
	.menu-toggle { display: inline-flex; align-items: center; gap: 0.7rem; padding: 0.5rem; cursor: pointer; }
	.menu-toggle__label { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
	.menu-toggle__lines { display: grid; gap: 5px; width: 20px; }
	.menu-toggle__lines i { display: block; height: 1px; background: currentColor; transition: transform 220ms ease; }
	.menu-toggle[aria-expanded="true"] .menu-toggle__lines i:first-child { transform: translateY(3px) rotate(45deg); }
	.menu-toggle[aria-expanded="true"] .menu-toggle__lines i:last-child { transform: translateY(-3px) rotate(-45deg); }
	.primary-navigation { position: absolute; top: var(--header-height); right: 0; left: 0; display: none; padding: 2.2rem 4vw; border-bottom: 1px solid var(--line); background: var(--paper); }
	.primary-navigation.is-open { display: block; }
	.primary-navigation .menu { align-items: flex-start; flex-direction: column; gap: 1.35rem; }
	.primary-navigation a { font-family: var(--serif); font-size: 1.5rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
	.salon-hero__inner { grid-template-columns: 1fr 0.55fr; gap: 4rem; }
	.room-grid, .architecture-room-grid { grid-template-columns: repeat(2, 1fr); }
	.architecture-room-grid article:nth-child(2) { border-right: 0; }
	.architecture-room-grid article { border-bottom: 1px solid rgba(255,255,255,0.2); }
	.architecture-room-grid article:nth-child(n+3) { border-bottom: 0; }
	.post-grid { gap: 2.5rem; }
}

@media (max-width: 820px) {
	:root { --shell: min(90vw, 720px); --reading: min(88vw, 720px); }
	body { font-size: 16px; }
	.section-pad { padding-block: 5.5rem; }
	.salon-hero { min-height: auto; background: linear-gradient(180deg, var(--paper-soft), var(--parchment)); }
	.salon-hero__inner { grid-template-columns: 1fr; padding-block: 5.5rem 3.5rem; }
	.salon-hero__emblem { display: none; }
	.salon-hero::after { display: none; }
	.belief-band__inner, .axis-section__layout, .founder-section__layout, .architecture-center__layout, .archive-hero__inner { grid-template-columns: 1fr; gap: 2rem; }
	.axis-section__intro { position: static; }
	.feature-card { grid-template-columns: 1fr; }
	.feature-card__media { min-height: 380px; }
	.feature-card__content { padding: 3rem; }
	.room-grid { grid-template-columns: repeat(2, 1fr); }
	.post-grid { grid-template-columns: 1fr 1fr; }
	.post-grid .post-card:last-child:nth-child(odd) { grid-column: 1 / -1; max-width: calc(50% - 1.25rem); }
	.architecture-steps { grid-template-columns: 1fr 1fr; }
	.architecture-gem { width: min(68vw, 380px); margin-block: 3rem; }
	.architecture-cta { grid-template-columns: 1fr; }
	.archive-index__inner { grid-template-columns: 1fr; gap: 1.2rem; }
	.essay-header { text-align: left; }
	.essay-kicker, .essay-byline { justify-content: flex-start; }
	.site-footer__inner { grid-template-columns: 1fr; }
	.footer-navigation { justify-self: start; }
}

@media (max-width: 560px) {
	:root { --shell: 90vw; --reading: 88vw; --header-height: 74px; }
	h1 { font-size: clamp(3rem, 15vw, 4.8rem); }
	h2 { font-size: clamp(2.4rem, 11vw, 3.6rem); }
	.wordmark__primary { font-size: 1.25rem; }
	.wordmark__secondary { display: none; }
	.site-header__inner { gap: 0.7rem; }
	.mode-toggle { width: 1.6rem; }
	.menu-toggle__label { display: none; }
	.salon-hero__folio { align-items: flex-start; flex-direction: column; gap: 0.4rem; }
	.belief-band__inner { padding-block: 2rem; }
	.section-heading--split { align-items: flex-start; flex-direction: column; gap: 1rem; }
	.feature-card__media { min-height: 285px; }
	.feature-card__content { padding: 2rem; }
	.axis-list li { grid-template-columns: 2.7rem 1fr; }
	.room-grid, .post-grid, .architecture-steps, .architecture-room-grid, .disciplines-grid { grid-template-columns: 1fr; }
	.post-grid .post-card:last-child:nth-child(odd) { grid-column: auto; max-width: none; }
	.room-card { min-height: 320px; }
	.room-card h3 { margin-top: 4rem; }
	.architecture-room-grid article { min-height: 270px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,0.2); }
	.architecture-room-grid article:nth-child(n+3) { border-bottom: 1px solid rgba(255,255,255,0.2); }
	.architecture-room-grid article:last-child { border-bottom: 0; }
	.architecture-room-grid h3 { margin-top: 4rem; }
	.letters-form form { flex-direction: column; }
	.letters-form input[type="email"] { min-width: 0; width: 100%; }
	.essay-byline span + span::before { margin-right: 0.75rem; }
	.essay-author-note { grid-template-columns: 1fr; }
	.essay-navigation { grid-template-columns: 1fr; }
	.essay-navigation > div + div { align-items: flex-start; padding-left: 0; border-top: 1px solid var(--line); border-left: 0; text-align: left; }
	.site-footer__meta { align-items: flex-start; flex-direction: column; gap: 0.5rem; }
	.footer-navigation .menu { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}

@media print {
	.site-header, .site-footer, .letters-section, .essay-navigation, .mode-toggle, .menu-toggle { display: none !important; }
	body { background: #fff; color: #000; font-size: 12pt; }
	body::before { display: none; }
	.essay-header, .essay-content { width: 100%; padding: 1rem 0; }
	a { color: #000; text-decoration: none; }
}
