/*
 * Lazy Plate. Served on a plate: the circle is the only shape with character, in two forms:
 * the big plate (a deep-sage rim with food inside) and the small plate bullet in lists.
 * Buttons are round; every other surface is square.
 * Colours come from the sets: eggshell, walnut ink, the sage garden table, deep sage.
 * Built for readers aged 55+: body text 19-20px, nothing under 16px, 48px tap targets,
 * body text and links at 7:1 contrast or more.
 */

:root {
	--bg: #f3f4f0;
	--surface: #e7e9e2;
	--surface-hover: #dcdfd6;
	--ink: #241f1b;
	--muted: #4f4a44;
	--sage: #a7b8a1;
	--deep: #35523f;
	--deep-press: #2a4232;
	--on-deep: #ffffff;
	--panel: #241f1b;
	--on-panel: #f3f4f0;
	--logo-ink: #481b01;
	--logo-spark: #f6ac22;
	/* Kitchen patterns: speckled enamel for plate rims, a gingham tablecloth, a subway-tile backsplash. */
	--enamel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='46'%3E%3Cg fill='%23f3f4f0'%3E%3Ccircle cx='6' cy='9' r='1.1' fill-opacity='.42'/%3E%3Ccircle cx='27' cy='4' r='.8' fill-opacity='.3'/%3E%3Ccircle cx='38' cy='21' r='1.2' fill-opacity='.36'/%3E%3Ccircle cx='15' cy='30' r='.9' fill-opacity='.3'/%3E%3Ccircle cx='31' cy='38' r='1' fill-opacity='.4'/%3E%3Ccircle cx='4' cy='42' r='.7' fill-opacity='.26'/%3E%3Ccircle cx='22' cy='17' r='.6' fill-opacity='.26'/%3E%3Ccircle cx='43' cy='33' r='.6' fill-opacity='.3'/%3E%3C/g%3E%3C/svg%3E");
	--gingham: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64'%3E%3Cg fill='%23f3f4f0' fill-opacity='.12'%3E%3Crect width='32' height='64'/%3E%3Crect width='64' height='32'/%3E%3C/g%3E%3C/svg%3E");
	--tiles: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72'%3E%3Cg fill='%23f3f4f0' fill-opacity='.038'%3E%3Crect x='1.5' y='1.5' width='69' height='33' rx='2'/%3E%3Crect x='-34.5' y='37.5' width='69' height='33' rx='2'/%3E%3Crect x='37.5' y='37.5' width='69' height='33' rx='2'/%3E%3C/g%3E%3C/svg%3E");
	--rim: var(--enamel) 0 0 / 46px, var(--enamel) 19px 31px / 79px, var(--deep);

	--font: Switzer, "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
	--fs-small: 1rem;
	--fs-body: clamp(1.1875rem, 1.15rem + 0.2vw, 1.25rem);
	--fs-lead: clamp(1.375rem, 1.2rem + 0.7vw, 1.75rem);
	--fs-head: clamp(2.125rem, 1.4rem + 2.8vw, 3.75rem);
	--fs-display: clamp(3.25rem, 1.6rem + 6vw, 7rem);

	--gutter: clamp(20px, 3vw, 40px);
	--max: 1320px;
	/* The one left edge every full-width band lines up on. */
	--edge: max(var(--gutter), calc((100% - var(--max)) / 2 + var(--gutter)));
	--section: clamp(88px, 7vw + 48px, 176px);
	--tap: 52px;
	--ease: cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-padding-top: 24px; }

body {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--font);
	font-size: var(--fs-body);
	line-height: 1.55;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

img, video, svg, iframe { display: block; max-width: 100%; }
img { height: auto; }

h1, h2, h3, h4 { margin: 0; line-height: 1.05; letter-spacing: -0.03em; font-weight: 640; text-wrap: balance; }
p, ul, ol, dl, figure { margin: 0; }
p, li { text-wrap: pretty; }

a { color: var(--deep); text-underline-offset: 0.18em; text-decoration-thickness: 2px; }
a:hover { color: var(--deep-press); }
:focus-visible { outline: 3px solid var(--deep); outline-offset: 3px; }
::selection { background: var(--sage); color: var(--ink); }

.lp-skip {
	position: absolute; left: 12px; top: -80px; z-index: 50;
	background: var(--ink); color: var(--bg); padding: 14px 22px; border-radius: 999px;
}
.lp-skip:focus { top: 12px; color: var(--bg); }

.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-block-group { margin: 0; }

/* Buttons: round, flat, one fill. */
.lp-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px; text-align: center;
	min-height: var(--tap); padding: 8px 24px; max-width: 100%; border: 0; border-radius: 999px;
	background: var(--surface); color: var(--ink);
	font: inherit; font-size: var(--fs-body); font-weight: 560; line-height: 1.1;
	text-decoration: none; cursor: pointer;
	transition: transform .18s var(--ease), background-color .18s;
}
.lp-btn:hover { background: var(--surface-hover); color: var(--ink); }
.lp-btn:active { transform: scale(.97); }
.lp-btn--solid { background: var(--deep); color: var(--on-deep); }
.lp-btn--solid:hover { background: var(--deep-press); color: var(--on-deep); }
.lp-btn--light { background: var(--on-panel); color: var(--ink); }
.lp-btn--light:hover { background: #ffffff; color: var(--ink); }
.lp-btn--big { min-height: 60px; padding: 0 32px; }

/* Search box (menu, footer). */
.lp-searchbox { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.lp-searchbox label { font-weight: 600; }
.lp-searchbox span { display: flex; gap: 8px; }
.lp-searchbox .lp-btn { flex: none; padding-inline: 20px; }
.lp-searchbox input {
	flex: 1; width: 0; min-width: 0; min-height: var(--tap); padding: 0 20px;
	font: inherit; color: var(--ink); background: #fff; border: 2px solid var(--muted); border-radius: 999px;
}

/* Header: a plain bar. */
.lp-header {
	position: relative;
	max-width: var(--max); margin: 0 auto;
	padding: 18px var(--gutter);
	display: flex; align-items: center; gap: 32px;
}
.lp-header__logo { display: block; width: clamp(140px, 12vw, 172px); flex: none; padding-block: 6px; }
.lp-logo { width: 100%; height: auto; }
.lp-logo__ink { fill: var(--logo-ink); }
.lp-logo__spark { fill: var(--logo-spark); }
.lp-header__nav { margin-left: auto; }
.lp-header__nav ul { list-style: none; padding: 0; display: flex; gap: 28px; }
.lp-header__nav a { color: var(--ink); text-decoration: none; font-weight: 540; display: inline-block; padding-block: 12px; }
.lp-header__nav a:hover { text-decoration: underline; }
.lp-header__nav a, .lp-header__join { white-space: nowrap; }
@media (min-width: 900px) and (max-width: 1099px) {
	.lp-header { gap: 20px; }
	.lp-header__nav ul { gap: 18px; }
	.lp-header__logo { width: 132px; }
	.lp-header__join { padding-inline: 18px; }
}
.lp-header__menu { display: none; }

@media (max-width: 899px) {
	.lp-header { flex-wrap: wrap; gap: 0; padding-block: 12px; }
	.lp-header__nav, .lp-header__join { display: none; }
	.lp-header__menu { display: block; }
	/* The menu drops down over the page from under the header; the page behind dims and stays put. */
	.lp-header__menu summary {
		position: absolute; right: var(--gutter); top: 14px;
		list-style: none; cursor: pointer;
		min-height: var(--tap); padding: 0 26px; border-radius: 999px;
		display: inline-flex; align-items: center;
		background: var(--surface); font-weight: 600;
	}
	.lp-header__menu summary::-webkit-details-marker { display: none; }
	.lp-header__menu[open] summary { background: var(--ink); color: var(--bg); }
	.lp-header__panel {
		position: absolute; z-index: 40; top: calc(100% - 1px); left: 0; right: 0;
		max-height: calc(100dvh - 80px); overflow: hidden auto; overscroll-behavior: contain;
		padding: 8px var(--gutter) 24px; display: grid; gap: 16px;
		background: var(--bg);
		animation: lp-menu-in .3s var(--ease) both;
	}
	.lp-header__scrim { position: absolute; z-index: 39; top: 100%; left: 0; right: 0; height: 100dvh; background: rgb(36 31 27 / .45); animation: lp-fade-in .3s var(--ease) both; }
	.lp-header__menu.is-closing .lp-header__panel { animation: lp-menu-out .2s var(--ease) both; }
	.lp-header__menu.is-closing .lp-header__scrim { animation: lp-fade-out .2s var(--ease) both; }
	html:has(.lp-header__menu[open]) { overflow: hidden; }
	.lp-header__menu ul { list-style: none; padding: 0; }
	.lp-header__menu li a {
		display: block; padding: 12px 0; font-size: var(--fs-body); font-weight: 600;
		color: var(--ink); text-decoration: none;
	}
}

@keyframes lp-menu-in { from { clip-path: inset(0 0 100% 0); translate: 0 -12px; } to { clip-path: inset(0 0 0 0); } }
@keyframes lp-menu-out { from { clip-path: inset(0 0 0 0); } to { clip-path: inset(0 0 100% 0); translate: 0 -12px; } }
@keyframes lp-fade-in { from { opacity: 0; } }
@keyframes lp-fade-out { to { opacity: 0; } }

/* The plate: a deep-sage rim with food inside. Several dishes crossfade; each links to its recipe. */
.lp-plate { position: relative; aspect-ratio: 1; border-radius: 50%; background: var(--rim); }
.lp-plate__food { position: absolute; inset: 7.5%; border-radius: 50%; overflow: hidden; background: var(--sage); }
.lp-plate__dish, .lp-plate__img, .lp-plate__loop { position: absolute; inset: 0; width: 100%; height: 100%; }
.lp-plate__img, .lp-plate__loop { object-fit: cover; }
.lp-plate__dish { display: block; }
.lp-plate--moving .lp-plate__dish {
	opacity: 0; visibility: hidden;
	animation: lp-crossfade calc(var(--n) * 6s) linear infinite;
	animation-delay: calc(var(--i) * 6s - 1.5s);
}
.lp-plate--moving .lp-plate__dish:first-child { opacity: 1; visibility: visible; }
@keyframes lp-crossfade {
	0% { opacity: 0; visibility: hidden; }
	6% { opacity: 1; visibility: visible; }
	25% { opacity: 1; visibility: visible; }
	31% { opacity: 0; visibility: hidden; }
	100% { opacity: 0; visibility: hidden; }
}
@keyframes lp-name-swap {
	0%, 3% { opacity: 0; visibility: hidden; }
	6%, 25% { opacity: 1; visibility: visible; }
	28%, 100% { opacity: 0; visibility: hidden; }
}
html.lp-paused .lp-plate--moving .lp-plate__dish,
html.lp-paused .lp-hero__dish { animation-play-state: paused; }
/* Keyboard focus on the plate stops the crossfade on the first dish, so the focused link stays visible. */
.lp-plate--moving:has(a:focus) .lp-plate__dish { animation: none; opacity: 0; visibility: hidden; }
.lp-plate--moving:has(a:focus) .lp-plate__dish:first-child { opacity: 1; visibility: visible; }
.lp-pause {
	position: absolute; left: 4%; bottom: 3%; z-index: 3;
	min-height: 48px; padding: 0 18px; border: 0; border-radius: 999px;
	background: var(--panel); color: var(--on-panel);
	font: inherit; font-size: var(--fs-small); font-weight: 560; cursor: pointer;
}
.lp-pause:hover { background: #000; }
.lp-pause:focus-visible { outline: 3px solid var(--bg); outline-offset: 0; box-shadow: 0 0 0 6px var(--ink); } /* taste-skill-ignore: a focus ring, not a resting shadow */

/* At large text sizes a long word wraps rather than pushing the page sideways. */
h1, h2, h3, p, summary, li, .lp-menu__desc { overflow-wrap: anywhere; }
.lp-nutrition dl > div { flex-wrap: wrap; }

/* Home hero. */
.lp-hero {
	--hero-text: min(700px, 46vw);
	/* The plate's size, from the room beside the text (in vw, so the hero's height can use it too). */
	--edge-v: max(var(--gutter), calc((100vw - 16px - var(--max)) / 2 + var(--gutter)));
	--p: min(calc((100vw - 16px - var(--edge-v) - var(--hero-text) - 32px) / 0.82), 100svh, 1040px);
	position: relative; overflow-x: clip;
	min-height: calc(var(--p) * 0.86);
	display: grid; align-items: center;
	padding: 32px var(--edge) 72px;
}
.lp-hero__text { position: relative; z-index: 2; max-width: 640px; }
.lp-hero__title { font-size: clamp(3.25rem, 1.6rem + 6vw, 8.5rem); letter-spacing: -0.05em; line-height: .9; font-weight: 660; }
.lp-hero__lead { font-size: var(--fs-lead); line-height: 1.38; max-width: 28ch; margin: 30px 0 34px; }
/* The plate's label: a dark card naming the dish, how long it takes, and a link to it. */
.lp-hero__dishes {
	position: relative; z-index: 3; margin-top: 28px;
	display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 4px 20px;
	width: min(100%, 380px); padding: 18px 22px 20px 24px; border-radius: 24px;
	background: var(--ink); color: var(--bg);
}
.lp-hero__on { font-size: var(--fs-small); color: var(--sage); }
.lp-hero__names { display: grid; grid-column: 1 / -1; }
.lp-hero__arrow { position: absolute; right: 22px; bottom: 20px; color: var(--sage); transition: translate .2s var(--ease); }
.lp-hero__dishes:hover .lp-hero__arrow { translate: 4px 0; }
.lp-hero__dishes :focus-visible { outline-color: var(--bg); }
.lp-hero__dish::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.lp-hero__arrow { pointer-events: none; }
.lp-hero__dishes .lp-pause { position: relative; inset: auto; z-index: 2; grid-column: 2; grid-row: 1; justify-self: end; min-height: 48px; padding: 0 16px; background: var(--bg); color: var(--ink); }
.lp-hero__dishes .lp-pause:hover { background: #fff; }
.lp-hero__dishes .lp-hero__on { grid-column: 1; grid-row: 1; align-self: center; }
.lp-hero__dish-name { display: block; font-size: var(--fs-body); font-weight: 680; letter-spacing: -0.01em; line-height: 1.25; }
.lp-hero__dish-facts { display: block; margin-top: 6px; font-size: var(--fs-small); font-weight: 600; color: var(--sage); }
.lp-hero__dish:hover .lp-hero__dish-name { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; }
.lp-hero__dish {
	grid-area: 1 / 1; color: var(--bg); text-decoration: none;
	opacity: 0; visibility: hidden;
	animation: lp-name-swap calc(var(--n) * 6s) linear infinite;
	animation-delay: calc(var(--i) * 6s - 1.5s);
}
.lp-hero__dish:first-child { opacity: 1; visibility: visible; }
.lp-hero:has(a:focus) .lp-plate__dish, .lp-hero:has(a:focus) .lp-hero__dish { animation: none; opacity: 0; visibility: hidden; }
.lp-hero:has(a:focus) .lp-plate__dish:first-child, .lp-hero:has(a:focus) .lp-hero__dish:first-child { opacity: 1; visibility: visible; }
/* The plate starts just under the header, runs off the right edge, and its lower part sits over the next section. */
.lp-hero__plate {
	position: absolute; z-index: 1;
	width: var(--p); top: 16px;
	right: calc(var(--p) * -0.18);
}
@media (min-width: 900px) {
	.lp-hero__text { max-width: var(--hero-text); }
	/* The headline sets on two lines: as large as the column allows "for busy days." */
	.lp-hero__title { font-size: min(clamp(3.25rem, 1.6rem + 6vw, 8.5rem), calc(var(--hero-text) / 5.9)); }
	/* The label sits on the plate's lower-left rim, half on the food. */
	.lp-hero__dish-name { font-size: var(--fs-lead); letter-spacing: -0.02em; line-height: 1.2; }
	.lp-hero__dishes { position: absolute; margin: 0; left: calc(100% - var(--p) * 0.82 - 48px); top: calc(16px + var(--p) * 0.56); }
}
@media (min-width: 2100px) {
	/* Wider than the composition: the plate follows the text instead of the screen edge. */
	.lp-hero { --p: min(1040px, 100svh); }
	.lp-hero__plate { right: auto; left: calc(var(--edge-v) + var(--hero-text) + 40px); }
	.lp-hero__dishes { left: calc(var(--edge-v) + var(--hero-text) - 8px); }
}
@media (min-width: 600px) and (max-width: 899px) {
	.lp-hero { display: block; min-height: 0; padding-top: 0; }
	.lp-hero__plate { position: relative; translate: none; top: auto; right: auto; width: min(64vw, 52svh); margin: 0 -16vw 0 auto; }
}
/* Below 900px the card sits on the plate's lower-left rim, as on desktop. */
@media (min-width: 600px) and (max-width: 899px) {
	.lp-hero__dishes { position: absolute; margin: 0; left: var(--edge); top: calc(min(64vw, 52svh) * 0.6); width: min(380px, 50vw); }
}
/*
 * Phones: one dish, standing still. Nothing to catch halfway through a crossfade, no Pause needed,
 * and the other three photos never download (lazy images inside display: none aren't fetched).
 * Plate, then its card overlapping the plate's lower edge, then the headline: all in normal flow.
 */
@media (max-width: 599px) {
	.lp-hero { display: flex; flex-direction: column; align-items: stretch; min-height: 0; padding-top: 4px; }
	.lp-hero__plate { position: relative; translate: none; top: auto; right: auto; align-self: flex-end; width: 96vw; margin: 0 calc(-1 * var(--gutter) - 8vw) 0 0; }
	.lp-hero__plate .lp-plate__dish:not(:first-child), .lp-hero__dish:not(:first-child), .lp-hero__dishes .lp-pause { display: none; }
	.lp-hero__plate .lp-plate__dish:first-child, .lp-hero__dish:first-child { animation: none; opacity: 1; visibility: visible; }
	.lp-hero__dishes { order: 1; align-self: flex-start; margin: -52px 0 0; width: auto; max-width: min(290px, 82%); padding: 10px 42px 12px 14px; gap: 0 10px; border-radius: 16px; }
	.lp-hero__on { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } /* Still read out, just not shown. */
	.lp-hero__arrow { right: 12px; bottom: 50%; translate: 0 50%; width: 20px; height: 20px; }
	.lp-hero__dish-name { font-size: 1rem; line-height: 1.25; }
	.lp-hero__dish-facts { margin-top: 2px; }
	.lp-hero__text { order: 2; padding-top: 28px; }
	.lp-hero__lead { margin: 22px 0 26px; }
}
/* Small listing plates on phones and tablets hold still, so they need no Pause. */
@media (max-width: 799px) {
	.lp-archive-head__plate .lp-plate__dish, .lp-page__head--list .lp-plate__dish { animation: none; opacity: 0; visibility: hidden; }
	.lp-archive-head__plate .lp-plate__dish:first-child, .lp-page__head--list .lp-plate__dish:first-child { opacity: 1; visibility: visible; }
	.lp-archive-head__plate .lp-pause, .lp-page__head--list .lp-pause { display: none; }
}

/* Sections. */
.lp-section { max-width: var(--max); margin: 0 auto; padding: var(--section) var(--gutter) 0; }
.lp-section--menu { padding-top: clamp(48px, 5vw, 104px); padding-bottom: var(--section); }

/* Recipe lists: a diner menu with plate photos for bullets and the time where the price would be. */
.lp-menu-block__title { font-size: var(--fs-head); margin-bottom: 28px; }
.lp-filter { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 14px; }
.lp-filter button {
	min-height: 56px; padding: 0 28px; border: 0; border-radius: 999px;
	background: var(--surface); color: var(--ink);
	font: inherit; font-weight: 560; cursor: pointer;
	transition: background-color .18s, color .18s, transform .18s var(--ease);
}
.lp-filter button:hover { background: var(--surface-hover); }
.lp-filter button:active { transform: scale(.97); }
.lp-filter button[aria-pressed="true"] { background: var(--deep); color: var(--on-deep); }
.lp-filter__count { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; color: var(--muted); margin-bottom: 36px; min-height: 48px; }
.lp-filter__all {
	min-height: 48px; padding: 0 4px; border: 0; background: none; cursor: pointer;
	font: inherit; font-weight: 600; color: var(--deep); text-decoration: underline; text-underline-offset: .18em;
}

.lp-menu { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 520px), 1fr)); gap: 8px 72px; }
.lp-menu__row[hidden] { display: none; }
.lp-menu__link {
	display: grid; grid-template-columns: 160px minmax(0, 1fr); align-items: center; gap: 4px 28px;
	padding: 16px 0; color: var(--ink); text-decoration: none;
}
.lp-menu__plate {
	grid-row: 1 / span 2; width: 160px; height: 160px; border-radius: 50%; object-fit: cover;
	padding: 9px; background: var(--rim);
	transition: transform .3s var(--ease);
}
.lp-menu__text { align-self: end; }
.lp-menu__effort { grid-column: 2; align-self: start; color: var(--deep); }
.lp-menu__link:hover .lp-menu__plate { transform: scale(1.06) rotate(-4deg); }
.lp-menu__link:hover .lp-menu__name { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; }
.lp-menu__name { font-size: var(--fs-body); font-weight: 640; letter-spacing: -0.01em; line-height: 1.25; }
.lp-menu__desc { display: block; color: var(--muted); font-size: var(--fs-body); line-height: 1.4; margin-top: 4px; }
.lp-menu__effort { font-weight: 640; white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 599px) {
	.lp-menu__link { grid-template-columns: 112px minmax(0, 1fr); gap: 4px 18px; }
	.lp-menu__plate { width: 112px; height: 112px; padding: 6px; }
}
.lp-menu__empty { color: var(--muted); }

/* The season: the party food on its own plate. */
.lp-season { background: var(--gingham) 0 0 / 64px, var(--sage); overflow: hidden; }
.lp-season__inner {
	padding: var(--section) var(--edge) 0;
	display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 88px); align-items: start;
}
/* Set on the sage table and seen from above: the band's edges crop the plate. */
.lp-season__plate { width: auto; margin: 0 0 -24% calc(var(--edge) * -1 - 6vw); }
.lp-season__text { display: grid; gap: 28px; min-width: 0; align-content: start; padding: clamp(24px, 4vw, 64px) 0 var(--section); }
.lp-season__title { font-size: var(--fs-head); }
.lp-season__text p { max-width: 36ch; }
.lp-season__cells { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; max-width: 520px; }
.lp-season__cells--one { grid-template-columns: minmax(0, 340px); }
.lp-season__more { font-weight: 500; line-height: 2.4; }
.lp-season__more a { color: var(--ink); padding-block: 12px; }
.lp-cell {
	display: flex; align-items: center; justify-content: center; text-align: center;
	min-height: 72px; padding: 12px 20px; border-radius: 999px;
	background: var(--bg); color: var(--ink); font-weight: 600; text-decoration: none;
	transition: transform .18s var(--ease), background-color .18s;
}
.lp-cell:hover { background: #ffffff; color: var(--ink); }
.lp-cell:active { transform: scale(.98); }
.lp-cell--ink { background: var(--ink); color: var(--bg); }
.lp-cell--ink:hover { background: #000; color: var(--bg); }
.lp-season :focus-visible { outline-color: var(--ink); }
@media (max-width: 899px) {
	.lp-season__inner { grid-template-columns: 1fr; }
	.lp-season__plate { width: 92vw; margin: 0 0 0 calc(var(--edge) * -1 - 10vw); }
	.lp-season__text { padding-top: 8px; }
	.lp-season__cells { grid-template-columns: 1fr; }
	.lp-cell { min-height: 60px; }
}

/* One word is the button. */
.lp-join {
	position: relative; display: block; overflow: hidden;
	min-height: clamp(320px, 52svh, 580px);
	background: var(--deep); color: var(--on-deep); text-decoration: none;
	padding: 36px var(--edge);
	transition: background-color .25s;
}
.lp-join:hover { background: var(--ink); color: var(--bg); }
.lp-join:focus-visible { outline: 4px solid var(--ink); outline-offset: -8px; background: var(--ink); color: var(--bg); }
.lp-join__note { position: relative; z-index: 2; display: block; max-width: 30ch; margin-right: clamp(64px, 6vw, 96px); font-size: var(--fs-lead); line-height: 1.35; }
.lp-join__arrow { position: absolute; z-index: 2; right: var(--edge); top: 40px; width: clamp(32px, 4vw, 48px); height: auto; transition: transform .25s var(--ease); }
.lp-join:hover .lp-join__arrow { transform: translate(4px, -4px); }
.lp-join__word {
	position: absolute; z-index: 1; left: var(--edge); bottom: 24px; pointer-events: none;
	font-size: clamp(9rem, 27vw, 27rem); font-weight: 700; letter-spacing: -0.06em; line-height: .8;
}
@media (max-width: 899px) {
	.lp-join { min-height: 0; }
	.lp-join__word { position: static; display: block; margin-top: 28px; font-size: 26vw; }
}

/* About panel. */
.lp-host { background: var(--tiles) 0 0 / 72px, var(--panel); }
.lp-host__inner {
	color: var(--on-panel);
	padding: clamp(56px, 6vw, 96px) var(--edge);
	display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 30vw, 400px); gap: 40px clamp(40px, 5vw, 96px); align-items: start;
}
.lp-host__title { grid-column: 1; font-size: var(--fs-head); color: var(--on-panel); max-width: 16ch; }
.lp-host__media { grid-column: 2; grid-row: 1 / span 3; width: 100%; margin-top: clamp(-200px, -12vw, -120px); position: relative; z-index: 1; }
.lp-host__blocks { grid-column: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px clamp(32px, 4vw, 64px); }
.lp-host__blocks p { max-width: 36ch; }
.lp-host h3 { font-size: var(--fs-lead); margin-bottom: 10px; letter-spacing: -0.015em; }
.lp-host__more { grid-column: 1; justify-self: start; }
.lp-host :focus-visible { outline-color: var(--on-panel); }
.lp-host .lp-pause { background: var(--on-panel); color: var(--ink); }
.lp-host .lp-pause:focus-visible { outline-color: var(--on-panel); outline-offset: 3px; }
@media (max-width: 899px) {
	.lp-host__inner { grid-template-columns: 1fr; }
	.lp-host__title, .lp-host__blocks, .lp-host__more { grid-column: 1; }
	.lp-host__media { grid-column: 1; grid-row: auto; order: -1; justify-self: center; max-width: 420px; margin-top: -96px; }
}
@media (max-width: 599px) {
	.lp-host__blocks { grid-template-columns: 1fr; }
}

/* Footer. */
.lp-footer { background: var(--surface); padding: clamp(48px, 6vw, 88px) var(--edge) 28px; }
.lp-footer__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 32px; }
.lp-footer__mark { display: block; width: min(100%, 420px); }
.lp-footer__top .lp-searchbox { width: min(100%, 440px); }
.lp-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px; margin-top: 56px; }
.lp-footer__about { max-width: 40ch; }
.lp-footer__col h2 { font-size: var(--fs-small); font-weight: 600; letter-spacing: 0; margin-bottom: 6px; }
.lp-footer__col ul { list-style: none; padding: 0; }
.lp-footer__col a { color: var(--ink); display: inline-block; padding-block: 12px; }
.lp-footer__legal { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 56px; font-size: var(--fs-small); color: var(--muted); }
.lp-footer__legal a { color: var(--muted); display: inline-block; padding: 12px 0; }
@media (max-width: 899px) {
	.lp-footer__grid { grid-template-columns: 1fr 1fr; }
	.lp-footer__about { grid-column: 1 / -1; }
}
@media (max-width: 420px) {
	.lp-footer__grid { grid-template-columns: 1fr; }
	.lp-footer__legal { flex-wrap: wrap; }
}

/* Recipe page. Phone: title, the reel, the facts, the recipe. Desktop: the reel stays pinned beside the recipe. */
.lp-article {
	max-width: var(--max); margin: 0 auto; padding: clamp(12px, 3vw, 48px) var(--gutter) 0;
	display: grid; grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "title" "reel" "meta" "body";
	gap: 24px 40px;
}
.lp-recipe-hero { display: contents; }
.lp-recipe-hero__title, .lp-page-head { grid-area: title; min-width: 0; }
.lp-recipe-hero__meta { grid-area: meta; min-width: 0; display: grid; gap: 18px; align-content: start; }
.lp-article__reel { grid-area: reel; min-width: 0; }
.lp-article__body { grid-area: body; min-width: 0; display: grid; gap: clamp(56px, 6vw, 96px); margin-top: 16px; }
@media (min-width: 600px) and (max-width: 999px) {
	.lp-article { grid-template-columns: minmax(0, 1fr) 300px; grid-template-areas: "title title" "meta reel" "body body"; }
}
@media (min-width: 1000px) {
	.lp-article {
		grid-template-columns: minmax(0, 1fr) min(34vw, 440px);
		grid-template-areas: "title title" "meta reel" "body reel";
		column-gap: clamp(48px, 5vw, 96px); row-gap: 36px;
	}
	.lp-article__reel { position: sticky; top: 24px; align-self: start; }
	.lp-article__body { margin-top: 0; }
}

.lp-recipe-hero__title { font-size: clamp(2.125rem, 0.9rem + 5.4vw, 6.25rem); letter-spacing: -0.05em; line-height: .92; font-weight: 660; }
.lp-page-head__title { font-size: var(--fs-head); letter-spacing: -0.04em; line-height: .98; }
.lp-recipe-hero__subtitle { font-size: var(--fs-lead); line-height: 1.3; max-width: 32ch; font-weight: 500; }
.lp-recipe-hero__hook { max-width: 46ch; }
.lp-factline { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-weight: 620; font-variant-numeric: tabular-nums; }
.lp-factline > span { flex-basis: 100%; }
.lp-factline__part { white-space: nowrap; }
.lp-tag { display: inline-flex; align-items: center; min-height: 48px; padding: 0 18px; border-radius: 999px; background: var(--sage); color: var(--ink); text-decoration: none; font-weight: 600; }
.lp-tag:hover { background: #98ab92; color: var(--ink); }
.lp-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }

/* The reel. */
.lp-reel { margin: 0; }
.lp-reel__frame {
	position: relative; overflow: hidden; background: var(--panel);
	aspect-ratio: 9 / 16; height: min(50svh, 440px); max-width: 100%; margin-inline: auto;
}
.lp-reel__frame:focus-within { outline: 3px solid var(--deep); outline-offset: 3px; }
@media (min-width: 600px) {
	.lp-reel__frame { height: auto; width: 100%; max-height: calc(100svh - 120px); }
}
.lp-reel__poster, .lp-reel__player { position: absolute; inset: 0 -1px; width: calc(100% + 2px); max-width: none; height: 100%; object-fit: cover; border: 0; background: var(--panel); }
.lp-reel__play {
	position: absolute; inset: 0; width: 100%; border: 0; padding: 0; cursor: pointer;
	background: none; color: var(--on-deep);
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;
	font: inherit;
}
.lp-reel__play[hidden] { display: none; }
.lp-reel__play:focus-visible { outline: none; }
.lp-reel__play:focus-visible .lp-reel__disc { outline: 3px solid var(--on-deep); outline-offset: 4px; }
.lp-reel__disc {
	display: grid; place-items: center; width: 88px; height: 88px; border-radius: 50%;
	background: var(--deep); transition: transform .2s var(--ease), background-color .2s;
}
.lp-reel__disc svg { translate: 3px 0; }
.lp-reel__label { background: var(--panel); color: var(--on-panel); padding: 12px 20px; border-radius: 999px; font-size: var(--fs-small); font-weight: 600; }
.lp-reel__play:hover .lp-reel__disc { transform: scale(1.06); background: var(--deep-press); }
.lp-reel__play:active .lp-reel__disc { transform: scale(.96); }

/* Running text. */
.lp-prose { max-width: 66ch; }
.lp-prose > * + * { margin-top: 1em; }
.lp-prose p:first-child { font-size: var(--fs-lead); line-height: 1.42; }
.lp-prose h2 { font-size: var(--fs-lead); margin-top: 1.8em; letter-spacing: -0.02em; }
.lp-prose ul, .lp-prose ol { padding-left: 1.2em; }
.lp-page { max-width: var(--max); margin: 0 auto; padding: clamp(32px, 5vw, 80px) var(--gutter) var(--section); overflow-x: clip; }
.lp-page__head { margin-bottom: clamp(40px, 5vw, 72px); }
.lp-page__title { font-size: clamp(3rem, 1.4rem + 5vw, 5.75rem); letter-spacing: -0.05em; line-height: .92; font-weight: 660; }
.lp-page__lede { font-size: var(--fs-lead); line-height: 1.38; max-width: 30ch; margin-top: 24px; }
.lp-page__head--plate { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 460px); align-items: center; gap: clamp(32px, 5vw, 80px); }
.lp-page__plate { width: 100%; }
.lp-page__sets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 32px); margin-bottom: clamp(56px, 6vw, 96px); }
.lp-page__sets img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.lp-page__sets figcaption { margin-top: 12px; max-width: 34ch; }
@media (max-width: 799px) {
	.lp-page__head--plate, .lp-page__head--list { grid-template-columns: 1fr; }
	.lp-page__head--list .lp-page__plate, .lp-page__head--list .lp-plate { width: 46vw; }
	.lp-archive-head__plate .lp-pause, .lp-page__plate .lp-pause { left: auto; right: calc(100% + 12px); bottom: 12px; }
	.lp-page__plate { width: 72vw; justify-self: end; margin-right: calc(var(--gutter) * -1 - 12vw); order: -1; }
	.lp-page__sets { grid-template-columns: 1fr; }
}

@media (min-width: 1000px) {
	.lp-page:has(> .lp-page__sets) { display: grid; grid-template-columns: minmax(0, 66ch) minmax(0, 1fr); column-gap: 72px; align-items: start; }
	.lp-page:has(> .lp-page__sets) > .lp-page__head { grid-column: 1 / -1; }
	.lp-page:has(> .lp-page__sets) > .lp-page__sets { grid-column: 2; grid-row: 2; grid-template-columns: 1fr 1fr; position: sticky; top: 24px; }
	.lp-page:has(> .lp-page__sets) > .lp-page__sets figure:first-child { grid-column: 1 / -1; }
	.lp-page:has(> .lp-page__sets) > .lp-prose { grid-column: 1; grid-row: 2; }
}

/* The recipe card. */
.lp-card { background: var(--surface); padding: clamp(24px, 4vw, 48px); scroll-margin-top: 16px; container-type: inline-size; }
.lp-card__head { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px 22px; }
/* The dish's plate sits over the card's top edge. */
.lp-card { margin-top: 110px; scroll-margin-top: 130px; }
.lp-card__plate { grid-row: 1 / span 2; width: 220px; height: 220px; border-radius: 50%; object-fit: cover; padding: 13px; background: var(--rim); margin-top: calc(-1 * clamp(24px, 4vw, 48px) - 110px); align-self: start; }
.lp-card__title { font-size: var(--fs-lead); font-weight: 700; letter-spacing: -0.025em; }
.lp-card .lp-facts { display: flex; flex-wrap: wrap; gap: 4px 32px; }
@container (min-width: 600px) {
	.lp-card .lp-facts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, max-content); column-gap: 32px; margin-top: 4px; }
	.lp-card .lp-facts > div { white-space: nowrap; }
}
.lp-card .lp-facts dt { font-size: var(--fs-small); color: var(--muted); }
.lp-card .lp-facts dd { margin: 0; font-weight: 640; font-variant-numeric: tabular-nums; }
.lp-card__tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 32px 0 40px; }
.lp-card__tools .lp-btn { background: var(--bg); }
.lp-card__tools .lp-btn:hover { background: #ffffff; }
.lp-scale { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.lp-scale__label { font-weight: 600; margin-right: 4px; }
.lp-scale__btn {
	width: var(--tap); height: var(--tap); border: 0; border-radius: 50%;
	background: var(--deep); color: var(--on-deep); font: inherit; font-size: 1.6rem; line-height: 1; cursor: pointer;
	transition: transform .18s var(--ease), background-color .18s;
}
.lp-scale__btn:hover { background: var(--deep-press); }
.lp-scale__btn:active { transform: scale(.92); }
.lp-scale__value { min-width: 2.2ch; text-align: center; font-size: var(--fs-lead); font-weight: 650; font-variant-numeric: tabular-nums; }
.lp-units { display: inline-flex; background: var(--bg); border-radius: 999px; padding: 4px; }
.lp-units button {
	min-height: 48px; padding: 0 20px; border: 0; border-radius: 999px; background: none;
	font: inherit; font-size: var(--fs-small); font-weight: 600; color: var(--ink); cursor: pointer;
}
.lp-units button[aria-checked="true"] { background: var(--ink); color: var(--bg); }
.lp-wake[aria-pressed="true"] { background: var(--deep) !important; color: var(--on-deep); }
.lp-wake[aria-pressed="true"]::before { content: "\2713" / ""; margin-right: 8px; }

.lp-card__body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 56px; }
@container (min-width: 900px) { .lp-card__body { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; } }
.lp-card h3, .lp-extras h2, .lp-signup h2, .lp-comments h2 { font-size: clamp(2rem, 1.5rem + 1.6vw, 2.75rem); letter-spacing: -0.035em; margin-bottom: 20px; }
.lp-card h4 { font-size: var(--fs-body); font-weight: 640; margin: 28px 0 6px; letter-spacing: 0; }
.lp-card__note { color: var(--muted); margin: -8px 0 16px; }

.lp-ings { list-style: none; padding: 0; }
.lp-ing { display: flex; gap: 14px; align-items: flex-start; }
.lp-ing input {
	appearance: none; -webkit-appearance: none; flex: none;
	width: 30px; height: 30px; margin: 9px 0 0; border-radius: 50%;
	background: var(--bg); box-shadow: inset 0 0 0 2px var(--muted); cursor: pointer; /* taste-skill-ignore: a real form control's edge */
	display: grid; place-items: center; transition: background-color .15s;
}
.lp-ing input:checked { background: var(--deep); box-shadow: none; } /* taste-skill-ignore: form control */
.lp-ing input:checked::after { content: ""; width: 7px; height: 13px; border: solid var(--on-deep); border-width: 0 3px 3px 0; rotate: 45deg; translate: 0 -1px; }
.lp-ing label { cursor: pointer; flex: 1; min-height: 48px; padding: 10px 0; }
.lp-ing input:checked + label { opacity: .6; text-decoration: line-through; text-decoration-thickness: 2px; }
.lp-ing__amount, .lp-ing__unit { font-weight: 640; font-variant-numeric: tabular-nums; }

.lp-steps { padding-left: 1.25em; display: grid; gap: 36px; }
.lp-step::marker { font-weight: 700; font-size: var(--fs-lead); color: var(--deep); }
.lp-step { padding-left: 4px; scroll-margin-top: 16px; }
.lp-step p { max-width: 58ch; }
.lp-step__img { margin-top: 14px; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
@container (min-width: 560px) {
	.lp-step__row { display: grid; grid-template-columns: minmax(0, 1fr) 200px; gap: 28px; align-items: center; }
	.lp-step__img { margin-top: 0; aspect-ratio: 1; }
}

.lp-card__before { margin-top: 48px; }
.lp-card__before ul, .lp-extras ul { padding-left: 1.2em; display: grid; gap: 10px; }
.lp-card__foot { display: none; }

.lp-nutrition { margin-top: 40px; background: var(--bg); }
.lp-nutrition summary, .lp-faq summary {
	cursor: pointer; list-style: none; position: relative;
	padding: 18px 64px 18px 22px; min-height: var(--tap); font-weight: 600;
}
.lp-nutrition summary::-webkit-details-marker, .lp-faq summary::-webkit-details-marker { display: none; }
.lp-nutrition summary::after, .lp-faq summary::after {
	content: "+" / ""; position: absolute; right: 18px; top: 50%; translate: 0 -50%;
	width: 36px; height: 36px; border-radius: 50%; background: var(--surface);
	display: grid; place-items: center; font-size: 1.4rem; line-height: 1;
}
.lp-nutrition[open] summary::after, .lp-faq details[open] summary::after { content: "\2212" / ""; }
.lp-nutrition dl { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 4px 28px; padding: 0 22px; }
.lp-nutrition dl > div { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; }
.lp-nutrition dd { margin: 0; font-weight: 620; font-variant-numeric: tabular-nums; }
.lp-nutrition p { padding: 16px 22px 22px; font-size: var(--fs-small); color: var(--muted); max-width: 70ch; }

@media (max-width: 599px) {
	/* The card runs edge to edge on phones, so steps get a full line. */
	.lp-card { margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
	.lp-card { margin-top: 80px; scroll-margin-top: 100px; }
	.lp-card__plate { grid-row: auto; width: 160px; height: 160px; padding: 10px; margin-top: calc(-1 * clamp(24px, 4vw, 48px) - 80px); }
	.lp-card .lp-facts { grid-column: 1 / -1; margin-top: 8px; }
}

/* Tips, swaps, leftovers, questions. */
.lp-extras { display: grid; gap: 56px; max-width: 66ch; }
.lp-faq details { background: var(--surface); margin-bottom: 8px; }
.lp-faq summary::after { background: var(--bg); }
.lp-faq details p { padding: 0 22px 22px; }

/* Weekly email sign-up. */
.lp-signup { max-width: 66ch; }
.lp-signup--recipe { background: var(--sage); padding: clamp(24px, 4vw, 40px); max-width: none; }
.lp-signup--soon p { max-width: 56ch; }
.lp-signup__form { display: grid; gap: 16px; margin: 24px 0 16px; max-width: 520px; }
.lp-signup__field { display: grid; gap: 6px; }
.lp-signup__field label { font-weight: 600; }
.lp-signup__field label span { font-weight: 400; }
.lp-signup__field input {
	min-height: 56px; padding: 0 18px; font: inherit; color: var(--ink);
	background: #fff; border: 2px solid var(--muted); border-radius: 0;
}
.lp-signup__form .lp-btn { justify-self: start; }
.lp-signup__note { font-size: var(--fs-small); }

/* Related recipes. */
.lp-related { max-width: var(--max); margin: 0 auto; padding: var(--section) var(--gutter); }
.lp-related h2 { font-size: var(--fs-head); margin-bottom: 32px; }

/* Comments. */
.lp-comments { max-width: 66ch; }
.lp-comments .comment-form { display: grid; gap: 18px; }
.lp-comments .comment-form label { display: block; font-weight: 600; margin-bottom: 6px; }
.lp-comments .comment-form input:not([type="checkbox"]):not([type="submit"]), .lp-comments .comment-form textarea {
	width: 100%; min-height: 56px; padding: 14px 18px; font: inherit; color: var(--ink);
	background: var(--surface); border: 0; border-radius: 0;
}
.lp-comments .comment-form-cookies-consent { display: flex; gap: 14px; align-items: flex-start; }
.lp-comments .comment-form-cookies-consent input {
	appearance: none; -webkit-appearance: none; flex: none; width: 30px; height: 30px; margin: 4px 0 0;
	border-radius: 50%; background: var(--bg); box-shadow: inset 0 0 0 2px var(--muted); cursor: pointer; /* taste-skill-ignore: form control */
}
.lp-comments .comment-form-cookies-consent input:checked { background: var(--deep); box-shadow: none; } /* taste-skill-ignore: form control */
.lp-comments .comment-form-cookies-consent label { font-weight: 400; margin: 0; }
.lp-comments .form-submit input[type="submit"] {
	min-height: 60px; padding: 12px 32px; max-width: 100%; white-space: normal; border: 0; border-radius: 999px;
	background: var(--deep); color: var(--on-deep); font: inherit; font-weight: 600; cursor: pointer;
}
.lp-comments .form-submit input[type="submit"]:hover { background: var(--deep-press); }
.lp-comments .comment-notes { color: var(--muted); }

/* Listings: category, diet, occasion, search, 404, all recipes. */
.lp-listing { max-width: var(--max); margin: 0 auto; padding: clamp(32px, 5vw, 72px) var(--gutter) var(--section); overflow-x: clip; }
.lp-archive-head { margin-bottom: 40px; }
.lp-archive-head h1, .lp-archive-head__title { font-size: clamp(3rem, 1.4rem + 5vw, 5.75rem); letter-spacing: -0.05em; line-height: .92; margin-bottom: 20px; }
.lp-archive-head p, .lp-archive-head__lead { font-size: var(--fs-lead); line-height: 1.38; max-width: 40ch; }
.lp-archive-head--plate, .lp-page__head--list { display: grid; grid-template-columns: minmax(0, 1fr) 260px; align-items: center; gap: clamp(24px, 4vw, 64px); margin-bottom: 32px; }
@media (max-width: 799px) {
	.lp-archive-head--plate, .lp-page__head--list { grid-template-columns: 1fr; }
	.lp-page__head--list .lp-page__plate { width: 46vw; justify-self: end; margin-right: calc(var(--gutter) * -1 - 8vw); order: -1; }
}
.lp-archive-about { margin-top: clamp(56px, 6vw, 96px); max-width: 66ch; }
.lp-archive-about h2 { font-size: var(--fs-lead); margin-bottom: 12px; }
.lp-archive-head__plate { width: 100%; }
@media (max-width: 799px) {
	.lp-archive-head--plate { grid-template-columns: 1fr; }
	.lp-archive-head__plate { width: 46vw; max-width: 300px; justify-self: end; margin-right: calc(var(--gutter) * -1 - 8vw); order: -1; }
}
.lp-search { margin-bottom: 48px; max-width: 640px; }
.lp-search .wp-block-search__inside-wrapper { display: flex; gap: 10px; }
.lp-search input { flex: 1; min-height: 56px; font: inherit; padding: 0 20px; border: 2px solid var(--muted); border-radius: 999px; background: #fff; }
.lp-search button { min-height: 56px; padding: 0 28px; border: 0; border-radius: 999px; background: var(--deep); color: var(--on-deep); font: inherit; font-weight: 600; }
.lp-results .wp-block-post-template { list-style: none; padding: 0; display: grid; gap: 32px; }
.lp-results h2 { font-size: var(--fs-lead); }
.lp-pagination { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 40px; }
.lp-pagination a, .lp-pagination span { display: inline-flex; align-items: center; min-height: 48px; padding: 0 12px; font-weight: 600; }

/* Entrances: content is visible at rest; the script adds .lp-reveal only when it can animate. */
@media (prefers-reduced-motion: no-preference) {
	.lp-reveal > * { opacity: 0; translate: 0 24px; transition: opacity .7s var(--ease), translate .7s var(--ease); }
	.lp-reveal.is-in > * { opacity: 1; translate: 0 0; }
	.lp-reveal.is-in > *:nth-child(2) { transition-delay: 80ms; }
	.lp-reveal.is-in > *:nth-child(3) { transition-delay: 160ms; }
	.lp-reveal.is-in > *:nth-child(4) { transition-delay: 240ms; }
	.lp-reveal.is-in > *:nth-child(5) { transition-delay: 300ms; }
	.lp-reveal.is-in > *:nth-child(6) { transition-delay: 360ms; }
	.lp-reveal.is-in > *:nth-child(n+7) { transition-delay: 420ms; }
	.lp-reveal:focus-within > * { opacity: 1; translate: none; transition: none; }
}
@media (prefers-reduced-motion: no-preference) {
	.lp-archive-head > *, .lp-page__head > *, .lp-page__sets > * { animation: lp-settle .8s var(--ease) both; }
	.lp-archive-head > :nth-child(2), .lp-page__head > :nth-child(2), .lp-page__sets > :nth-child(2) { animation-delay: 90ms; }
	.lp-archive-head > :nth-child(n+3), .lp-page__head > :nth-child(n+3), .lp-page__sets > :nth-child(n+3) { animation-delay: 180ms; }
	.lp-archive-head__plate.lp-plate, .lp-page__plate.lp-plate, .lp-page__plate > .lp-plate { animation: lp-plate-set 1.1s var(--ease) both; }
}
@keyframes lp-settle { from { translate: 0 18px; } }
@keyframes lp-plate-set { from { rotate: -14deg; scale: .94; } }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.lp-plate--moving .lp-plate__dish, .lp-hero__dish { opacity: 0; visibility: hidden; }
	.lp-plate--moving .lp-plate__dish:first-child, .lp-hero__dish:first-child { opacity: 1; visibility: visible; }
	.lp-pause { display: none; }
}

/* Text for screen readers only. */
.lp-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
