/* Persistent portrait treatment: left desktop edge, round mobile header portrait. */
/* Ported unchanged from the approved static reference (website/dist/style.css). Keep file order: later files override earlier ones. */

:root {
	--david-edge-width: 92px;
}

body {
	padding-left: var(--david-edge-width);
}

.david-edge {
	position: fixed;
	inset: 0 auto 0 0;
	width: var(--david-edge-width);
	z-index: 40;
	background: var(--gold);
	color: var(--ink);
	display: flex;
	flex-direction: column;
	align-items: center;
	border-right: 1px solid #14234820;
	text-decoration: none;
}

.edge-face {
	display: block;
	position: relative;
	width: 100%;
	height: 46vh;
	overflow: hidden;
	flex-shrink: 0;
}

.edge-face img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 12%;
	display: block;
}

.edge-face::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 40%;
	background: linear-gradient(transparent,var(--gold));
}

.edge-label {
	display: flex;
	align-items: center;
	gap: 18px;
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	margin-top: 22px;
}

.edge-label strong {
	font: italic 400 23px/1.1 var(--serif);
}

.edge-label>span {
	font-size: .75rem;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.david-edge:hover strong {
	text-decoration: underline;
	text-underline-offset: 5px;
}

.david-header {
	display: none;
}

.skip:focus {
	left: calc(var(--david-edge-width) + 16px);
	z-index: 60;
}

@media(min-width:1025px) and (max-width:1280px) {
	.menu-toggle {
		display: flex;
		gap: 15px;
		border: 0;
		background: none;
		color: var(--ink);
		padding: 12px;
	}
	header nav {
		display: none;
		position: absolute;
		top: 105px;
		left: 0;
		right: 0;
		background: var(--paper);
		padding: 24px;
		box-shadow: 0 20px 30px #111f4420;
	}
	header nav.open {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 20px;
		font-size: 1rem;
	}
}

@media(max-width:1024px) {
	:root {
		--david-edge-width: 0px;
	}
	.david-edge {
		display: none;
	}
	.david-header {
		display: flex;
		flex: 0 0 44px;
		width: 44px;
		height: 44px;
		border: 2px solid var(--gold);
		border-radius: 50%;
		overflow: hidden;
		background: var(--gold);
	}
	.david-header img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: 50% 12%;
	}
	header {
		gap: 12px;
	}
	header .wordmark {
		margin-right: auto;
	}
}

@media(max-width:760px) {
	header .wordmark .brand-logo {
		width: 185px;
	}
	.menu-toggle {
		padding: 8px 4px;
		font-size: .9rem;
	}
}

@media(max-width:360px) {
	header {
		gap: 8px;
	}
	header .wordmark .brand-logo {
		width: 145px;
	}
}

@media(max-height:600px) and (min-width:1025px) {
	.edge-label {
		gap: 12px;
		margin-top: 12px;
	}
	.edge-label strong {
		font-size: 19px;
	}
	.edge-label>span {
		font-size: .65rem;
	}
}
