/* Adi Landing */

.adi-ld,
.adi-ld * { box-sizing: border-box; }

.adi-ld {
	--adi-ld-ink: #111010;
	--adi-ld-muted: #5f5a56;
	--adi-ld-rule: rgba(0, 0, 0, .22);
	--adi-ld-paper: #eceae7;
	font-family: var(--adi-ld-sans, inherit);
	color: var(--adi-ld-ink);
}

.adi-ld section { padding-left: clamp(18px, 4vw, 56px); padding-right: clamp(18px, 4vw, 56px); }

/* Themes commonly re-add bullets and margins to lists inside page content. */
.adi-ld ul,
.adi-ld ol {
	list-style: none !important;
	margin: 0;
	padding: 0;
}
.adi-ld li { list-style: none !important; margin: 0; }
.adi-ld li::marker { content: none; }

.adi-ld img {
	max-width: 100%;
	height: auto;
}

/* A visible focus ring on every interactive element, at 3:1 against both
   the light and the dark panels. */
.adi-ld a:focus-visible,
.adi-ld button:focus-visible,
.adi-ld [tabindex]:focus-visible {
	outline: 3px solid var(--adi-ld-accent, #e03127);
	outline-offset: 3px;
	border-radius: 2px;
}
.adi-ld-about a:focus-visible,
.adi-ld-about button:focus-visible { outline-color: currentColor; }

/* Touch targets. WCAG 2.2 asks for 24px minimum; 44px is comfortable. */
.adi-ld-testi__controls button,
.adi-ld-cta__button,
.adi-ld-related__more a,
.adi-ld-director__more a { min-height: 44px; }
.adi-ld-related__more a,
.adi-ld-director__more a { display: inline-flex; align-items: center; }

.adi-ld-skip {
	position: absolute;
	left: -9999px;
}
.adi-ld-skip:focus {
	left: clamp(18px, 4vw, 56px);
	top: 10px;
	z-index: 10;
	padding: 10px 16px;
	background: var(--adi-ld-ink);
	color: #fff;
}

/* A word in the about statement. The gap between words is real whitespace
   in the markup, so nothing here may collapse it. */
.adi-ld-about__text { white-space: normal; }

.adi-ld .adi-ld-label {
	margin: 0 0 clamp(26px, 3vw, 44px);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--adi-ld-muted);
}

/* ================= hero ================= */

.adi-ld-hero {
	position: relative;
	overflow: hidden; /* the drifting images can sit past the edge */
	min-height: 92vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-top: clamp(60px, 10vh, 140px);
	padding-bottom: clamp(50px, 8vh, 110px);
	background: var(--adi-ld-paper);
}

.adi-ld-hero__type { position: relative; z-index: 2; }

.adi-ld-hero h1 { margin: 0; line-height: .92; }

.adi-ld-hero__serif,
.adi-ld-hero__sans { display: block; }

.adi-ld-hero__serif {
	font-family: var(--adi-ld-serif, Georgia, serif);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(56px, 13vw, 190px);
	letter-spacing: -.01em;
	text-indent: 6vw;
}

.adi-ld-hero__sans {
	font-family: var(--adi-ld-sans, system-ui, sans-serif);
	font-weight: 300;
	font-size: clamp(42px, 11.5vw, 168px);
	letter-spacing: -.035em;
	text-transform: uppercase;
}

.adi-ld-hero__images {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}
.adi-ld-hero__img {
	position: absolute;
	margin: 0;
	width: clamp(110px, 16vw, 250px);
	will-change: transform;
}
.adi-ld-hero__img img { display: block; width: 100%; height: auto; }

.adi-ld-hero__img--1 { top: 6%; left: 16%; }
.adi-ld-hero__img--2 { top: 34%; left: 46%; }
.adi-ld-hero__img--3 { top: 52%; left: 5%; }
.adi-ld-hero__img--4 { top: 44%; right: 7%; }

.adi-ld-hero__note {
	position: absolute;
	top: 26%;
	right: clamp(18px, 4vw, 56px);
	z-index: 3;
	max-width: 24ch;
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	text-align: right;
}
.adi-ld-hero__note span { color: var(--adi-ld-accent, #e03127); }

.adi-ld-hero__cue {
	position: absolute;
	right: clamp(18px, 4vw, 56px);
	bottom: clamp(30px, 6vh, 70px);
	width: 26px;
	animation: adi-ld-bob 2.4s ease-in-out infinite;
}
.adi-ld-hero__cue svg { width: 100%; fill: none; stroke: currentColor; stroke-width: 1.4; }

@keyframes adi-ld-bob {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(8px); }
}

/* ================= about ================= */

.adi-ld-about {
	background: var(--adi-ld-about-bg, #0e0e0e);
	color: var(--adi-ld-about-ink, #f4f1ec);
	padding-top: clamp(80px, 14vh, 190px);
	padding-bottom: clamp(80px, 14vh, 190px);
}

.adi-ld-about__text {
	max-width: 24ch;
	margin: 0 auto;
	font-size: clamp(26px, 4.6vw, 62px);
	line-height: 1.16;
	letter-spacing: -.015em;
}

.adi-ld-about__dot {
	display: inline-block;
	width: .22em;
	height: .22em;
	margin-right: 1.4em;
	border-radius: 50%;
	background: currentColor;
	vertical-align: middle;
}

.adi-ld-word {
	display: inline-block;
	opacity: .14;
	transition: opacity .5s ease;
}
[data-words].is-in .adi-ld-word {
	opacity: 1;
	transition-delay: calc(var(--w) * 28ms);
}

/* ================= process ================= */

.adi-ld-process {
	display: grid;
	grid-template-columns: minmax(220px, 1fr) 2fr;
	gap: clamp(30px, 6vw, 110px);
	padding-top: clamp(70px, 10vw, 150px);
	padding-bottom: clamp(70px, 10vw, 150px);
}

.adi-ld-process__head { position: sticky; top: 14vh; align-self: start; }
.adi-ld-process__head h2 {
	margin: 0;
	max-width: 12ch;
	font-size: clamp(24px, 2.6vw, 40px);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -.01em;
	text-transform: uppercase;
}

.adi-ld-process__list { margin: 0; padding: 0; list-style: none; }
.adi-ld-process__list li {
	display: grid;
	grid-template-columns: 5.5rem 1fr;
	gap: clamp(16px, 3vw, 44px);
	padding: clamp(28px, 4vw, 54px) 0;
	border-top: 1px solid var(--adi-ld-rule);
}
.adi-ld-process__list li:first-child { border-top: 0; }

.adi-ld-process__num {
	font-size: clamp(18px, 1.8vw, 26px);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}
.adi-ld-process__body { border-left: 1px solid var(--adi-ld-rule); padding-left: clamp(16px, 2vw, 34px); }
.adi-ld-process__body h3 {
	margin: 0 0 16px;
	font-size: clamp(22px, 2.6vw, 38px);
	font-weight: 700;
	line-height: 1.05;
	text-transform: uppercase;
	letter-spacing: -.01em;
}
.adi-ld-process__body p {
	margin: 0;
	max-width: 36ch;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.55;
}
.adi-ld-process__arrow { color: var(--adi-ld-accent, #e03127); margin-right: 8px; }

/* ================= art director ================= */

.adi-ld-director { padding-top: clamp(60px, 9vw, 130px); padding-bottom: clamp(60px, 9vw, 130px); }

.adi-ld-director__heading {
	margin: 0 0 clamp(40px, 6vw, 90px);
	font-size: clamp(42px, 8vw, 110px);
	font-weight: 300;
	line-height: .95;
	letter-spacing: -.035em;
	text-transform: uppercase;
}

.adi-ld-director__grid {
	display: grid;
	grid-template-columns: minmax(140px, 1fr) 1.4fr 1.4fr;
	gap: clamp(24px, 4vw, 70px);
	align-items: start;
}
.adi-ld-director__photo { margin: 0; }
.adi-ld-director__photo img {
	display: block;
	width: 100%;
	max-width: 230px;
	height: auto;
	filter: grayscale(1);
}
.adi-ld-director__grid p {
	margin: 0;
	font-size: clamp(15px, 1.15vw, 17px);
	line-height: 1.6;
}

.adi-ld-director__more { margin: clamp(30px, 4vw, 54px) 0 0; text-align: right; }
.adi-ld-director__more a {
	font-size: 12px;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
	color: inherit;
	border-bottom: 1px solid var(--adi-ld-rule);
	padding-bottom: 3px;
}
.adi-ld-director__more a:hover { border-color: var(--adi-ld-accent, #e03127); color: var(--adi-ld-accent, #e03127); }

/* ================= services ================= */

.adi-ld-services {
	position: relative;
	padding-top: clamp(60px, 9vw, 130px);
	padding-bottom: clamp(60px, 9vw, 130px);
}

.adi-ld-services__label {
	margin: 0 0 clamp(30px, 4vw, 56px);
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
}

.adi-ld-services__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
	gap: clamp(30px, 5vw, 80px) clamp(26px, 4vw, 70px);
	margin: 0;
	padding: 0;
	list-style: none;
}
.adi-ld-services__list li { position: relative; }

.adi-ld-service {
	display: block;
	text-decoration: none;
	color: inherit;
}
.adi-ld-service__num {
	display: inline-block;
	margin-right: 14px;
	font-size: 12px;
	vertical-align: super;
	font-variant-numeric: tabular-nums;
	color: var(--adi-ld-muted);
}
.adi-ld-service__title {
	font-family: var(--adi-ld-serif, Georgia, serif);
	font-size: clamp(30px, 3.6vw, 54px);
	line-height: 1.04;
	letter-spacing: -.005em;
	transition: color .2s ease;
}
a.adi-ld-service:hover .adi-ld-service__title { color: var(--adi-ld-accent, #e03127); }

.adi-ld-service__text {
	display: block;
	margin-top: 14px;
	max-width: 30ch;
	font-size: 14px;
	line-height: 1.6;
	color: var(--adi-ld-muted);
}

.adi-ld-service__img {
	margin: 18px 0 0;
	max-width: 300px;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity .35s ease, transform .35s ease;
	pointer-events: none;
}
.adi-ld-services__list li:hover .adi-ld-service__img,
.adi-ld-services__list li:focus-within .adi-ld-service__img { opacity: 1; transform: none; }
.adi-ld-service__img img { display: block; width: 100%; height: auto; }

/* ================= featured work ================= */

.adi-ld-work { padding-top: clamp(60px, 9vw, 130px); padding-bottom: clamp(60px, 9vw, 130px); }

.adi-ld-work__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: clamp(24px, 3vw, 48px);
	margin: 0;
	padding: 0;
	list-style: none;
}
.adi-ld-work__list a { display: block; text-decoration: none; color: inherit; }
.adi-ld-work__list figure { margin: 0 0 16px; overflow: hidden; background: #f1efec; }
.adi-ld-work__list img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform .6s cubic-bezier(.2, .7, .3, 1);
}
.adi-ld-work__list a:hover img { transform: scale(1.03); }
.adi-ld-work__list h3 { margin: 0 0 5px; font-size: 20px; font-weight: 500; }
.adi-ld-work__list p { margin: 0; font-size: 14px; color: var(--adi-ld-muted); }

/* ================= testimonials ================= */

.adi-ld-testi {
	padding-top: clamp(60px, 9vw, 130px);
	padding-bottom: clamp(60px, 9vw, 130px);
	background: var(--adi-ld-paper);
}

.adi-ld-testi__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
}

.adi-ld-testi__controls { display: flex; gap: 8px; margin: 0 0 clamp(26px, 3vw, 44px); }
.adi-ld-testi__controls button {
	width: 42px;
	height: 42px;
	border: 1px solid var(--adi-ld-rule);
	border-radius: 50%;
	background: none;
	color: inherit;
	font-size: 16px;
	cursor: pointer;
	transition: border-color .15s ease, opacity .15s ease;
}
.adi-ld-testi__controls button:hover { border-color: var(--adi-ld-ink); }
.adi-ld-testi__controls button[disabled] { opacity: .3; cursor: default; }

.adi-ld-testi__track {
	display: flex;
	overscroll-behavior-x: contain;
	gap: clamp(16px, 2vw, 28px);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: 18px;
	margin: 0 calc(clamp(18px, 4vw, 56px) * -1);
	padding-left: clamp(18px, 4vw, 56px);
	padding-right: clamp(18px, 4vw, 56px);
	scrollbar-width: none;
	cursor: grab;
}
.adi-ld-testi__track::-webkit-scrollbar { display: none; }
.adi-ld-testi__track.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.adi-ld-testi__track:focus-visible { outline: 2px solid var(--adi-ld-accent, #e03127); outline-offset: 4px; }

.adi-ld-testi__card {
	flex: 0 0 min(430px, 82vw);
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	margin: 0;
	padding: clamp(24px, 3vw, 38px);
	background: #fff;
	border-radius: 3px;
}
.adi-ld-testi__card blockquote {
	margin: 0 0 28px;
	font-family: var(--adi-ld-serif, Georgia, serif);
	font-size: clamp(18px, 1.6vw, 23px);
	line-height: 1.45;
}
.adi-ld-testi__card figcaption { display: flex; align-items: center; gap: 14px; }
.adi-ld-testi__avatar {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	object-fit: cover;
	filter: grayscale(1);
}
.adi-ld-testi__card strong { display: block; font-size: 15px; font-weight: 600; }
.adi-ld-testi__card em { font-style: normal; font-size: 13px; color: var(--adi-ld-muted); }

.adi-ld-testi__hint {
	margin: 14px 0 0;
	font-size: 12px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--adi-ld-muted);
}

/* ================= logo marquee ================= */

.adi-ld-logos { padding-top: clamp(50px, 7vw, 100px); padding-bottom: clamp(50px, 7vw, 100px); }

.adi-ld-logos__marquee {
	display: flex;
	gap: clamp(30px, 5vw, 70px);
	width: 100%;
	overflow: hidden;
	mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}

.adi-ld-logos__row {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: clamp(30px, 5vw, 70px);
	margin: 0;
	padding: 0;
	list-style: none;
	animation: adi-ld-marquee 38s linear infinite;
}
.adi-ld-logos__marquee:hover .adi-ld-logos__row { animation-play-state: paused; }

.adi-ld-logos__row img {
	display: block;
	max-height: 40px;
	width: auto;
	filter: grayscale(1);
	opacity: .55;
	transition: opacity .2s ease, filter .2s ease;
}
.adi-ld-logos__row li:hover img { filter: none; opacity: 1; }

@keyframes adi-ld-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(calc(-100% - clamp(30px, 5vw, 70px))); }
}

/* ================= closing ================= */

.adi-ld-cta {
	padding-top: clamp(70px, 11vw, 160px);
	padding-bottom: clamp(70px, 11vw, 160px);
	border-top: 1px solid var(--adi-ld-rule);
}
.adi-ld-cta h2 {
	margin: 0 0 34px;
	max-width: 16ch;
	font-family: var(--adi-ld-serif, Georgia, serif);
	font-size: clamp(32px, 5.5vw, 78px);
	line-height: 1.04;
	letter-spacing: -.01em;
}
.adi-ld-cta__button {
	display: inline-block;
	padding: 15px 32px;
	border-radius: 2px;
	background: var(--adi-ld-ink);
	color: #fff;
	font-size: 14px;
	letter-spacing: .04em;
	text-decoration: none;
	transition: background-color .18s ease;
}
.adi-ld-cta__button:hover { background: var(--adi-ld-accent, #e03127); color: #fff; }

/* ================= reveal ================= */

.adi-ld-reveal { opacity: 0; transform: translateY(26px); }
.adi-ld-reveal.is-in {
	opacity: 1;
	transform: none;
	transition: opacity .8s cubic-bezier(.2, .7, .3, 1), transform .8s cubic-bezier(.2, .7, .3, 1);
}

/* ================= small screens ================= */

/* ---------- tablet ---------- */

@media (max-width: 1024px) {
	.adi-ld-director__grid { grid-template-columns: minmax(130px, .8fr) 1fr 1fr; gap: clamp(20px, 3vw, 40px); }
	.adi-ld-services__list { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
	.adi-ld-process__list li { grid-template-columns: 4rem 1fr; }
}

@media (max-width: 900px) {
	.adi-ld-process { grid-template-columns: 1fr; }
	.adi-ld-process__head { position: static; }
	.adi-ld-process__head h2 { max-width: none; }
	.adi-ld-director__grid { grid-template-columns: 1fr; }
	.adi-ld-director__photo img { max-width: 160px; }
	.adi-ld-hero__note { position: static; max-width: none; text-align: left; margin-top: 26px; }
	.adi-ld-hero__img--2,
	.adi-ld-hero__img--4 { display: none; }
	.adi-ld-hero__img { width: clamp(90px, 26vw, 150px); }
	.adi-ld-hero__serif { text-indent: 0; }
}

/* ---------- phone ---------- */

@media (max-width: 680px) {
	.adi-ld-hero {
		min-height: 0;
		padding-top: clamp(40px, 12vh, 80px);
		padding-bottom: clamp(36px, 8vh, 70px);
	}
	.adi-ld-hero__serif { font-size: clamp(38px, 15vw, 64px); }
	.adi-ld-hero__sans { font-size: clamp(32px, 12.5vw, 56px); letter-spacing: -.02em; }
	.adi-ld-hero__images { position: relative; inset: auto; height: 150px; margin-top: 26px; }
	.adi-ld-hero__img { position: relative; top: auto !important; left: auto !important; right: auto !important; display: inline-block; width: 44%; margin-right: 10px; transform: none !important; }
	.adi-ld-hero__img--3 { display: none; }
	.adi-ld-hero__cue { display: none; }

	.adi-ld-about {
		padding-top: clamp(50px, 9vh, 90px);
		padding-bottom: clamp(50px, 9vh, 90px);
	}
	.adi-ld-about__text {
		max-width: none;
		font-size: clamp(21px, 6.2vw, 30px);
		line-height: 1.3;
	}
	.adi-ld-about__dot { margin-right: .8em; }

	.adi-ld-process__list li { grid-template-columns: 2.6rem 1fr; gap: 12px; padding: 24px 0; }
	.adi-ld-process__num { font-size: 15px; }
	.adi-ld-process__body { padding-left: 14px; }
	.adi-ld-process__body h3 { font-size: 21px; margin-bottom: 10px; }
	.adi-ld-process__body p { font-size: 14px; font-weight: 500; }

	.adi-ld-director__heading { font-size: clamp(34px, 13vw, 56px); }
	.adi-ld-director__grid p { font-size: 15px; }
	.adi-ld-director__more { text-align: left; }

	.adi-ld-services__list { grid-template-columns: 1fr; gap: 28px; }
	.adi-ld-service__title { font-size: clamp(26px, 8.5vw, 38px); }
	/* Hover cannot happen on a touch screen, so show the image. */
	.adi-ld-service__img { opacity: 1; transform: none; max-width: 100%; }

	.adi-ld-work__list,
	.adi-ld-related__list { grid-template-columns: 1fr; }

	.adi-ld-testi__head { flex-direction: column; align-items: flex-start; gap: 0; }
	.adi-ld-testi__card { flex: 0 0 86vw; padding: 22px; }
	.adi-ld-testi__card blockquote { font-size: 17px; margin-bottom: 20px; }
	.adi-ld-testi__controls button { width: 48px; height: 48px; }

	.adi-ld-logos__row img { max-height: 28px; }

	.adi-ld-cta h2 { font-size: clamp(27px, 9vw, 40px); max-width: none; }
	.adi-ld-cta__button { display: block; text-align: center; }
}

/* Touch devices of any width: hover-only reveals never fire. */
@media (hover: none) {
	.adi-ld-service__img { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
	.adi-ld-reveal,
	.adi-ld-word,
	.adi-ld-service__img,
	.adi-ld-work__list img { transition: none; }
	.adi-ld-reveal { opacity: 1; transform: none; }
	.adi-ld-word { opacity: 1; }
	.adi-ld-logos__row { animation: none; }
	.adi-ld-hero__cue { animation: none; }
	.adi-ld-hero__img { transform: none !important; }
}

/* ================= related content ================= */

.adi-ld-related { padding-top: clamp(60px, 9vw, 130px); padding-bottom: clamp(60px, 9vw, 130px); }

.adi-ld-related__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: clamp(24px, 3vw, 46px);
	margin: 0;
	padding: 0;
	list-style: none;
}
.adi-ld-related__list a,
.adi-ld-related__list .adi-ld-work__demo { display: block; text-decoration: none; color: inherit; }
.adi-ld-related__list figure { margin: 0 0 16px; overflow: hidden; background: #f1efec; }
.adi-ld-related__list img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform .6s cubic-bezier(.2, .7, .3, 1);
}
.adi-ld-related__list a:hover img { transform: scale(1.03); }

.adi-ld-related__date {
	margin: 0 0 6px;
	font-size: 11px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--adi-ld-muted);
}
.adi-ld-related__list h3 { margin: 0 0 8px; font-size: 20px; font-weight: 500; line-height: 1.25; }
.adi-ld-related__list a:hover h3 { color: var(--adi-ld-accent, #e03127); }
.adi-ld-related__excerpt { margin: 0; font-size: 14px; line-height: 1.6; color: var(--adi-ld-muted); }

.adi-ld-related__more { margin: clamp(26px, 3vw, 44px) 0 0; }
.adi-ld-related__more a {
	font-size: 12px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid var(--adi-ld-rule);
	padding-bottom: 3px;
}
.adi-ld-related__more a:hover { border-color: var(--adi-ld-accent, #e03127); color: var(--adi-ld-accent, #e03127); }

/* Placeholder graphics and demo cards. */
.adi-ld-placeholder { background: #efedea; }
.adi-ld-work__demo { display: block; cursor: default; }
.adi-ld-work__demo figure { margin: 0 0 16px; background: #f1efec; }
.adi-ld-work__demo img { display: block; width: 100%; height: auto; }
.adi-ld-work__demo h3 { margin: 0 0 5px; font-size: 20px; font-weight: 500; }
.adi-ld-work__demo p { margin: 0; font-size: 14px; color: var(--adi-ld-muted); }

@media (prefers-reduced-motion: reduce) {
	.adi-ld-related__list img { transition: none; }
}

/* Admin-only marker for a section with nothing in it. */
.adi-ld-empty {
	margin: 0 clamp(18px, 4vw, 56px);
	padding: clamp(26px, 4vw, 48px);
	border: 1px dashed rgba(0, 0, 0, .3);
	border-radius: 3px;
	background: rgba(0, 0, 0, .02);
	text-align: center;
}
.adi-ld-empty p { margin: 0; font-size: 15px; color: var(--adi-ld-muted); }
.adi-ld-empty strong { color: var(--adi-ld-ink); }
.adi-ld-empty a { color: var(--adi-ld-accent, #e03127); }
.adi-ld-empty__note { margin-top: 6px !important; font-size: 12px !important; opacity: .7; }

/* =====================================================================
   Hero: Nameplate
   ================================================================== */

.adi-ld-plate {
	position: relative;
	min-height: 86vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-top: clamp(50px, 10vh, 120px);
	padding-bottom: clamp(50px, 10vh, 120px);
	background:
		linear-gradient(rgba(0, 0, 0, .045) 1px, transparent 1px) 0 0 / 46px 46px,
		linear-gradient(90deg, rgba(0, 0, 0, .045) 1px, transparent 1px) 0 0 / 46px 46px,
		var(--adi-ld-paper);
}

.adi-ld-plate__sig { text-align: center; margin-bottom: clamp(20px, 4vh, 48px); }
.adi-ld-plate__sig img { display: inline-block; max-height: 70px; width: auto; }

.adi-ld-plate__row {
	display: grid;
	grid-template-columns: 1fr auto auto auto 1fr;
	align-items: center;
	gap: clamp(14px, 3vw, 40px);
}

.adi-ld-plate__rule { height: 1px; background: rgba(0, 0, 0, .35); }

.adi-ld-plate__meta {
	margin: 0;
	font-size: clamp(13px, 1.3vw, 18px);
	white-space: nowrap;
	color: var(--adi-ld-ink);
}

.adi-ld-plate__name {
	margin: 0;
	max-width: 11ch;
	text-align: center;
	font-family: var(--adi-ld-sans, inherit);
	font-weight: 700;
	font-size: clamp(42px, 9vw, 140px);
	line-height: .9;
	letter-spacing: -.035em;
	text-transform: uppercase;
}

.adi-ld-plate__note {
	margin: clamp(28px, 5vh, 56px) auto 0;
	max-width: 44ch;
	text-align: center;
	font-size: 15px;
	line-height: 1.6;
	color: var(--adi-ld-muted);
}

/* =====================================================================
   Hero: Sentence
   ================================================================== */

.adi-ld-say {
	position: relative;
	overflow: hidden;
	min-height: 84vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-top: clamp(50px, 10vh, 110px);
	padding-bottom: clamp(50px, 10vh, 110px);
	background: var(--adi-ld-paper);
	text-align: center;
}

.adi-ld-say__blobs { position: absolute; inset: 0; pointer-events: none; }
.adi-ld-say__blob {
	position: absolute;
	border-radius: 50%;
	filter: blur(70px);
	opacity: .55;
}
.adi-ld-say__blob--1 { width: 34vw; height: 34vw; top: 4%; left: -6%; background: #e8785a; }
.adi-ld-say__blob--2 { width: 30vw; height: 30vw; bottom: -8%; right: -4%; background: #9ec89a; }
.adi-ld-say__blob--3 { width: 26vw; height: 26vw; top: 30%; right: 20%; background: #b3a7e0; opacity: .4; }

.adi-ld-say__pill {
	position: relative;
	display: inline-block;
	margin: 0 auto clamp(22px, 4vh, 44px);
	padding: 9px 22px;
	border: 1px solid currentColor;
	border-radius: 999px;
	font-size: 14px;
}

.adi-ld-say__line {
	position: relative;
	margin: 0 auto;
	max-width: 20ch;
	font-family: var(--adi-ld-serif, Georgia, serif);
	font-size: clamp(32px, 6.5vw, 92px);
	line-height: 1.06;
	letter-spacing: -.015em;
}

.adi-ld-say__inline {
	display: inline-block;
	width: .92em;
	height: .92em;
	margin: 0 .1em;
	vertical-align: -.1em;
	border-radius: 50%;
	overflow: hidden;
}
.adi-ld-say__inline img { width: 100%; height: 100%; object-fit: cover; }

.adi-ld-say__note {
	position: relative;
	margin: clamp(26px, 4vh, 46px) auto 0;
	max-width: 46ch;
	font-size: 15px;
	line-height: 1.6;
	color: var(--adi-ld-muted);
}

/* =====================================================================
   Hero: Tiles
   ================================================================== */

.adi-ld-tiles {
	display: grid;
	grid-template-columns: minmax(230px, 1fr) 2.6fr;
	gap: clamp(10px, 1.2vw, 16px);
	min-height: 88vh;
	padding-top: clamp(16px, 2vw, 26px);
	padding-bottom: clamp(16px, 2vw, 26px);
}

.adi-ld-tiles__intro {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: clamp(20px, 2.4vw, 32px);
	border-radius: 16px;
	background: #fbf5ec;
}
.adi-ld-tiles__brand { margin: 0; font-size: 15px; font-weight: 600; }
.adi-ld-tiles__blurb { margin: 0; max-width: 32ch; font-size: 15px; line-height: 1.55; color: var(--adi-ld-muted); }

.adi-ld-tiles__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-auto-rows: 1fr;
	gap: clamp(10px, 1.2vw, 16px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.adi-ld-tiles__cell { min-height: 200px; }
.adi-ld-tiles__cell > a,
.adi-ld-tiles__cell > .adi-ld-tiles__static {
	position: relative;
	display: flex;
	align-items: flex-end;
	height: 100%;
	padding: clamp(18px, 2.2vw, 30px);
	border-radius: 16px;
	overflow: hidden;
	background: var(--tile);
	color: inherit;
	text-decoration: none;
	transition: transform .3s cubic-bezier(.2, .7, .3, 1);
}
.adi-ld-tiles__cell > a:hover { transform: translateY(-3px); }

.adi-ld-tiles__media { position: absolute; inset: 0; }
.adi-ld-tiles__media img { width: 100%; height: 100%; object-fit: cover; }

.adi-ld-tiles__label {
	position: relative;
	font-family: var(--adi-ld-serif, Georgia, serif);
	font-size: clamp(22px, 2.6vw, 38px);
	line-height: 1.05;
}

/* =====================================================================
   Articles section
   ================================================================== */

.adi-ld-articles { padding-top: clamp(50px, 8vw, 110px); padding-bottom: clamp(50px, 8vw, 110px); }
.adi-ld-articles .adi-bl { padding-left: 0; padding-right: 0; max-width: none; }

@media (max-width: 900px) {
	.adi-ld-plate__row { grid-template-columns: 1fr; gap: 16px; text-align: center; }
	.adi-ld-plate__rule { display: none; }
	.adi-ld-plate__name { max-width: none; font-size: clamp(34px, 13vw, 64px); }
	.adi-ld-plate__meta { white-space: normal; }
	.adi-ld-tiles { grid-template-columns: 1fr; min-height: 0; }
	.adi-ld-tiles__intro { gap: 20px; }
}

@media (max-width: 600px) {
	.adi-ld-tiles__grid { grid-template-columns: 1fr; }
	.adi-ld-tiles__cell { min-height: 150px; }
	.adi-ld-say__line { font-size: clamp(26px, 8.5vw, 42px); max-width: none; }
	.adi-ld-say__blob { filter: blur(50px); }
}

@media (prefers-reduced-motion: reduce) {
	.adi-ld-tiles__cell > a { transition: none; }
}

/* =====================================================================
   Metrics, inside the About section
   ================================================================== */

.adi-ld-metrics {
	max-width: 1100px;
	margin: clamp(44px, 7vh, 96px) auto 0;
}

.adi-ld-metrics__heading {
	margin: 0 0 clamp(20px, 3vw, 36px);
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	opacity: .6;
}

.adi-ld-metrics__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 clamp(26px, 5vw, 76px);
	margin: 0;
}

.adi-ld-metrics__item {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto;
	column-gap: clamp(14px, 2vw, 26px);
	align-items: start;
	padding: clamp(22px, 3vw, 36px) 0 clamp(30px, 5vw, 60px);
	border-top: 1px solid currentColor;
}
/* The rule belongs to the row, not the cell, so the two columns line up. */
.adi-ld-metrics__item:nth-child(-n+2) { border-top-color: currentColor; }

.adi-ld-metrics__icon {
	grid-row: 1 / 3;
	display: block;
	width: clamp(28px, 2.6vw, 38px);
	margin-top: .18em;
	opacity: .9;
}
.adi-ld-metrics__icon svg {
	width: 100%;
	height: auto;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.adi-ld-metrics__value {
	margin: 0;
	font-weight: 700;
	font-size: clamp(34px, 5.2vw, 72px);
	line-height: .92;
	letter-spacing: -.035em;
}

.adi-ld-metrics__label {
	margin: clamp(10px, 1.2vw, 16px) 0 0;
	font-size: clamp(11px, 1vw, 13px);
	letter-spacing: .14em;
	text-transform: uppercase;
	opacity: .62;
}

/* With no icon the figure should still start at the left edge. */
.adi-ld-metrics__item:not(:has(.adi-ld-metrics__icon)) { grid-template-columns: 1fr; }

@media (max-width: 680px) {
	.adi-ld-metrics__grid { grid-template-columns: 1fr; }
	.adi-ld-metrics__item { padding-bottom: clamp(20px, 5vw, 34px); }
	.adi-ld-metrics__value { font-size: clamp(30px, 11vw, 48px); }
}


/* =====================================================================
   Dark mode
   ---------------------------------------------------------------------
   Follows the visitor's own system setting, and obeys an explicit
   override when the site has its own toggle:

       <html data-adi-theme="dark">   force dark
       <html data-adi-theme="light">  force light

   Every value below is checked against WCAG AA — body text at or above
   4.5:1, borders and large text at or above 3:1.
   ================================================================== */

@media (prefers-color-scheme: dark) {
	:root:not([data-adi-theme="light"]) .adi-ld {
		--adi-ld-ink: #f3f1ee;
		--adi-ld-muted: #b4aea7;
		--adi-ld-rule: rgba(255, 255, 255, .34);
		--adi-ld-paper: #1a1918;
	}

	:root:not([data-adi-theme="light"]) .adi-ld { background: #141312; }
	:root:not([data-adi-theme="light"]) .adi-ld-testi__card,
	:root:not([data-adi-theme="light"]) .adi-ld-tiles__intro { background: #1f1e1d; }
	:root:not([data-adi-theme="light"]) .adi-ld-cta__button { background: #f3f1ee; color: #141312; }
	:root:not([data-adi-theme="light"]) .adi-ld-hero,
	:root:not([data-adi-theme="light"]) .adi-ld-testi,
	:root:not([data-adi-theme="light"]) .adi-ld-plate,
	:root:not([data-adi-theme="light"]) .adi-ld-say { background: #171615; }
	:root:not([data-adi-theme="light"]) .adi-ld-empty { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.3); }
}

[data-adi-theme="dark"] .adi-ld {
		--adi-ld-ink: #f3f1ee;
		--adi-ld-muted: #b4aea7;
		--adi-ld-rule: rgba(255, 255, 255, .34);
		--adi-ld-paper: #1a1918;
}

/* Windows high contrast, and "increase contrast" on macOS. */
@media (prefers-contrast: more) {
	.adi-ld {
		--adi-ld-muted: var(--adi-ld-ink);
		--adi-ld-rule: currentColor;
	}
}


/* Headings inherit our colour, not the theme's.
   Divi and most themes set an explicit heading colour, which beats the
   colour inherited from the wrapper — so on a dark background the
   headings stayed dark. This puts them back under our control. */
.adi-ld h1,
.adi-ld h2,
.adi-ld h3,
.adi-ld h4,
.adi-ld h5,
.adi-ld h6 {
	color: inherit;
}

/* ---------- nameplate signature: one file per mode ---------- */

.adi-ld-plate__sig-light,
.adi-ld-plate__sig-dark { display: inline-block; }

/* Only one is ever shown. When no dark version was uploaded the light one
   is used for both, so nothing disappears. */
.adi-ld-plate__sig-dark { display: none; }

@media (prefers-color-scheme: dark) {
	:root:not([data-adi-theme="light"]) .adi-ld-plate__sig-dark { display: inline-block; }
	:root:not([data-adi-theme="light"]) .adi-ld-plate__sig-dark ~ .adi-ld-plate__sig-light,
	:root:not([data-adi-theme="light"]) .adi-ld-plate__sig:has(.adi-ld-plate__sig-dark) .adi-ld-plate__sig-light { display: none; }
}

[data-adi-theme="dark"] .adi-ld-plate__sig-dark { display: inline-block; }
[data-adi-theme="dark"] .adi-ld-plate__sig:has(.adi-ld-plate__sig-dark) .adi-ld-plate__sig-light { display: none; }
