/*
 * Yomisheli theme styles: only what theme.json cannot express.
 * Every color, font and size comes from theme.json presets/custom values (var(--wp--...)).
 * Logical properties only (RTL-first); the single physical exception is the leaf transform origin (a pivot corner).
 */

/* ---------- base ---------- */

:root {
	--yomi-ink: var(--wp--preset--color--ink);
	--yomi-paper: var(--wp--preset--color--paper);
	--yomi-focus: var(--wp--custom--focus--width) solid var(--wp--preset--color--ink);
}

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-wrap: break-word;
}

.wp-site-blocks > * + * {
	margin-block-start: 0;
}

a {
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}

:where(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
	outline: var(--yomi-focus);
	outline-offset: var(--wp--custom--focus--offset);
	border-radius: 2px;
}

img {
	max-width: 100%;
	height: auto;
}

.yomi-skip {
	position: absolute;
	inset-inline-start: 16px;
	inset-block-start: -80px;
	z-index: 100;
	padding: 12px 18px;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
	text-decoration: none;
	font-weight: 700;
}

.yomi-skip:focus {
	inset-block-start: 8px;
	outline-color: var(--wp--preset--color--paper);
}

.yomi-skip:focus-visible {
	outline: var(--wp--custom--focus--width) solid var(--wp--preset--color--accent);
}

.wp-block-button__link:focus-visible {
	outline-offset: var(--wp--custom--focus--offset);
}

/* The plain-link style used for tiles, rows and nav: ink, no underline, accent underline on hover. */
.yomi-tile a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.yomi-tile a:hover,
.yomi-tile a:focus-visible {
	color: var(--wp--preset--color--ink);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
	text-decoration-color: var(--wp--preset--color--accent);
}

.yomi-tile {
	position: relative;
	min-inline-size: 0;
}

/* One link per tile, stretched over the whole tile. */
.yomi-tile a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.yomi-tile a:focus-visible {
	outline: none;
}

.yomi-tile a:focus-visible::after {
	outline: var(--yomi-focus);
	outline-offset: var(--wp--custom--focus--offset);
}

/* ---------- header ---------- */

.yomi-header {
	padding-block: 24px;
}

.yomi-header__row {
	gap: 16px;
}

.yomi-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	min-block-size: 48px;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.yomi-brand:hover {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.yomi-brand__mark {
	flex: 0 0 auto;
}

.yomi-mark__paper { fill: var(--wp--preset--color--paper); stroke: var(--wp--preset--color--ink); }
.yomi-mark__band { fill: var(--wp--preset--color--accent); stroke: var(--wp--preset--color--ink); }
.yomi-mark__hole { fill: var(--wp--preset--color--paper); stroke: var(--wp--preset--color--ink); }
.yomi-mark__wire { fill: var(--wp--preset--color--ink); }
.yomi-mark__perf { stroke: var(--wp--preset--color--ink); }
.yomi-mark__day { fill: var(--wp--preset--color--ink); font-family: var(--wp--preset--font-family--heebo); }

.yomi-brand__text {
	display: flex;
	flex-direction: column;
	line-height: 1.2;
	min-inline-size: 0;
}

.yomi-brand__name {
	font-weight: 900;
	font-size: 26px;
	letter-spacing: var(--wp--custom--tracking--heading);
}

.yomi-brand__he {
	font-size: 13px;
	color: var(--wp--preset--color--grey-text);
}

.yomi-brand__greg {
	font-size: 12px;
	color: var(--wp--preset--color--grey-text);
}

.yomi-nav {
	font-size: var(--wp--preset--font-size--ui);
}

.yomi-nav .wp-block-navigation__container {
	column-gap: 28px;
	row-gap: 0;
	padding: 0;
}

.yomi-nav .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-block-size: 48px;
	padding: 0;
	font-weight: 500;
	white-space: nowrap;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.yomi-nav .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--ink);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-decoration-color: var(--wp--preset--color--accent);
	text-underline-offset: 6px;
}

.yomi-nav .wp-block-navigation-item__content[aria-current="page"] {
	font-weight: 800;
	box-shadow: inset 0 -4px 0 var(--wp--preset--color--accent);
}

/* ---------- footer ---------- */

.yomi-footer {
	margin-block-start: 64px;
	padding-block: 24px 40px;
	border-block-start: 1px solid var(--wp--preset--color--ink);
	color: var(--wp--preset--color--grey-text);
	font-size: 15px;
}

.yomi-footer__row {
	gap: 12px 24px;
}

.yomi-footer__name {
	margin: 0;
	font-weight: 900;
	font-size: 18px;
	color: var(--wp--preset--color--ink);
}

.yomi-footer-nav .wp-block-navigation__container {
	column-gap: 20px;
	row-gap: 4px;
	padding: 0;
}

.yomi-footer .wp-block-navigation-item__content,
.yomi-footer .yomi-social .wp-social-link a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-block-size: 44px;
	padding: 0;
	color: var(--wp--preset--color--ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.yomi-footer .yomi-social {
	gap: 4px 20px;
	margin-block-start: 8px;
}

.yomi-footer .yomi-social .wp-social-link,
.yomi-footer .yomi-social .wp-social-link a {
	color: var(--wp--preset--color--ink) !important;
	background: none !important;
}

.yomi-footer .yomi-social .wp-social-link svg {
	inline-size: 20px;
	block-size: 20px;
}

/* ---------- the calendar leaf ---------- */

.yomi-leaf {
	--k: 1;
	--leaf-w: 150px;
	position: relative;
	flex: 0 0 auto;
	box-sizing: border-box;
	inline-size: var(--leaf-w);
	max-inline-size: 100%;
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--ink);
	border: 2px solid var(--wp--preset--color--ink);
	border-radius: var(--wp--custom--radius--paper);
	box-shadow: var(--wp--preset--shadow--sheets);
	text-align: center;
	transform-origin: left top;
	line-height: 1.2;
}

.yomi-leaf--92 { --leaf-w: 92px; --k: 0.6133; }
.yomi-leaf--104 { --leaf-w: 104px; --k: 0.6933; }
.yomi-leaf--150 { --leaf-w: 150px; --k: 1; }
.yomi-leaf--180 { --leaf-w: 180px; --k: 1.2; }
.yomi-leaf--196 { --leaf-w: 196px; --k: 1.3067; }

.yomi-leaf--tilt-l { rotate: -2deg; }
.yomi-leaf--tilt-r { rotate: 2deg; }
.yomi-leaf--196.yomi-leaf--tilt-l { rotate: -3deg; }

.yomi-leaf__band {
	position: relative;
	box-sizing: border-box;
	block-size: calc(34px * var(--k));
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding-block-end: max(4px, calc(6px * var(--k)));
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
	font-weight: 800;
	font-size: max(12px, calc(14px * var(--k)));
	border-block-end: 3px dotted var(--wp--preset--color--ink);
}

.yomi-leaf__ring {
	position: absolute;
	inset-block-start: calc(5px * var(--k));
	inline-size: calc(15px * var(--k));
	block-size: calc(15px * var(--k));
	box-sizing: border-box;
	border-radius: 50%;
	background: var(--wp--preset--color--paper);
	border: 2px solid var(--wp--preset--color--ink);
}

.yomi-leaf__ring--a { inset-inline-start: 22%; margin-inline-start: calc(-7.5px * var(--k)); }
.yomi-leaf__ring--b { inset-inline-end: 22%; margin-inline-end: calc(-7.5px * var(--k)); }

/* The ink wire bars that cross the band top, drawn over the ring holes. */
.yomi-leaf__ring::after {
	content: "";
	position: absolute;
	inset-block-start: calc(-18px * var(--k) - 2px);
	inset-inline-start: 50%;
	inline-size: calc(7px * var(--k));
	block-size: calc(34px * var(--k));
	margin-inline-start: calc(-3.5px * var(--k));
	border-radius: 99px;
	background: var(--wp--preset--color--ink);
}

.yomi-leaf__notch {
	position: absolute;
	inset-block-end: -9px;
	inline-size: 16px;
	block-size: 16px;
	box-sizing: border-box;
	border-radius: 50%;
	background: var(--wp--preset--color--paper);
	border: 2px solid var(--wp--preset--color--ink);
}

.yomi-leaf__notch--a { inset-inline-start: -10px; }
.yomi-leaf__notch--b { inset-inline-end: -10px; }

.yomi-leaf__body {
	display: flex;
	flex-direction: column;
	padding: max(5px, calc(8px * var(--k))) 4px max(6px, calc(10px * var(--k)));
}

.yomi-leaf__day {
	font-weight: 900;
	font-size: calc(86px * var(--k));
	line-height: 1;
	letter-spacing: var(--wp--custom--tracking--heading);
}

.yomi-leaf__month {
	padding-block-start: 2px;
	font-weight: 700;
	font-size: max(13px, calc(16px * var(--k)));
}

.yomi-leaf__holiday {
	padding-inline: 6px;
	font-weight: 700;
	font-size: max(13px, calc(14px * var(--k)));
	line-height: 1.25;
	color: var(--wp--preset--color--accent-text);
}

.yomi-leaf__holiday[hidden] {
	display: none;
}

.yomi-leaf__greg {
	padding-block-start: 2px;
	font-size: max(12px, calc(13px * var(--k)));
	color: var(--wp--preset--color--grey-text);
}

/* ---------- home ---------- */

.yomi-hero {
	padding-block: clamp(32px, 6vw, 72px) clamp(32px, 5vw, 56px);
	border-block-end: 3px solid var(--wp--preset--color--ink);
}

.yomi-eyebrow {
	margin: 0;
	font-weight: 500;
	font-size: var(--wp--preset--font-size--ui);
	color: var(--wp--preset--color--accent-text);
}

.yomi-hero__row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 28px clamp(28px, 5vw, 64px);
	margin-block-start: 24px;
}

.yomi-hero__row > .yomi-leaf {
	margin-block-start: 8px;
}

.yomi-hero__text {
	flex: 1 1 440px;
	min-inline-size: 0;
}

.yomi-home-title {
	margin: 0;
	font-size: var(--wp--preset--font-size--display-xl);
	font-weight: 900;
	line-height: 0.84;
	letter-spacing: var(--wp--custom--tracking--display);
}

.yomi-tagline {
	margin: 18px 0 0;
	font-size: var(--wp--preset--font-size--tagline);
	font-weight: 300;
	line-height: 1.05;
	letter-spacing: var(--wp--custom--tracking--heading);
	color: var(--wp--preset--color--grey-text);
}

.yomi-accent {
	font-weight: 900;
	color: var(--wp--preset--color--accent-text);
}

.yomi-stats {
	margin: 40px 0 0;
	padding-block-start: 14px;
	border-block-start: 1px solid var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--ui);
	line-height: 1.6;
	color: var(--wp--preset--color--grey-text);
}

.yomi-stats strong {
	color: var(--wp--preset--color--ink);
}

.yomi-year {
	display: flex;
	flex-wrap: wrap;
	gap: 24px clamp(24px, 4vw, 56px);
	padding-block-start: 72px;
}

.yomi-year:first-child {
	padding-block-start: 56px;
}

.yomi-year__rail {
	flex: 0 0 240px;
	align-self: flex-start;
	min-inline-size: 0;
}

.yomi-year__name {
	margin: 0;
	font-size: var(--wp--preset--font-size--year);
	white-space: nowrap;
	line-height: 0.95;
	letter-spacing: var(--wp--custom--tracking--year);
}

.yomi-year__range {
	margin: 8px 0 0;
	font-size: 18px;
	font-weight: 500;
	color: var(--wp--preset--color--accent-text);
}

.yomi-year__body {
	flex: 999 1 520px;
	min-inline-size: 0;
}

.yomi-year__body > * + * {
	margin-block-start: 56px;
}

.yomi-feature {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 28px 36px;
}

.yomi-feature__leaf {
	padding-block-end: 12px;
}

.yomi-feature__text {
	flex: 1 1 280px;
	min-inline-size: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 12px;
}

.yomi-feature__meta {
	margin: 0;
	font-size: 15px;
	color: var(--wp--preset--color--grey-text);
}

.yomi-feature__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--title-l);
	font-weight: 900;
	line-height: 1;
	letter-spacing: var(--wp--custom--tracking--title);
}

.yomi-feature__excerpt {
	margin: 0;
	font-size: 19px;
	line-height: 1.65;
	color: var(--wp--preset--color--body-muted);
}

.yomi-feature__media {
	flex: 1 1 280px;
	max-inline-size: 380px;
	margin-block-start: -20px;
}

.yomi-feature__media img {
	display: block;
	inline-size: 100%;
	block-size: auto; /* owner ruling 2026-10-23: images are never cropped, anywhere */
}

.yomi-mixgroup {
	display: flex;
	flex-wrap: wrap;
	gap: 40px 32px;
	align-items: flex-start;
}

.yomi-mix {
	display: flex;
	flex-direction: column;
	gap: 22px;
	flex: 1 1 200px;
	min-inline-size: 0;
}

.yomi-mix--a { flex: 2 1 320px; }
.yomi-mix--b { margin-block-start: 56px; }
.yomi-mix--c { flex-basis: 220px; margin-block-start: 8px; }

.yomi-mix__media {
	position: relative;
}

.yomi-mix__media img {
	display: block;
	inline-size: 100%;
	block-size: auto; /* owner ruling 2026-10-23: images are never cropped, anywhere */
}

.yomi-mix--a .yomi-mix__media img {
	block-size: auto;
}

.yomi-mix__leaf {
	position: absolute;
	inset-block-end: -26px;
	inset-inline-start: 16px;
}

.yomi-mix__media + .yomi-mix__title {
	margin-block-start: 26px;
}

.yomi-mix__plain {
	padding-block-start: 6px;
	border-block-start: 3px solid var(--wp--preset--color--ink);
	padding-block-end: 12px;
}

.yomi-mix__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--title-s);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: var(--wp--custom--tracking--tight);
}

.yomi-mix--a .yomi-mix__title {
	font-size: var(--wp--preset--font-size--title-m);
}

.yomi-ledger {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: 0 48px;
	border-block-end: 1px solid var(--wp--preset--color--ink);
}

.yomi-ledger__item {
	border-block-start: 1px solid var(--wp--preset--color--ink);
	min-inline-size: 0;
}

.yomi-row {
	display: flex;
	align-items: center;
	gap: 20px;
	padding-block: 16px;
	min-block-size: 48px;
}

.yomi-rowdate {
	flex: 0 0 76px;
	display: flex;
	flex-direction: column;
	line-height: 1.15;
}

.yomi-rowdate__day {
	font-weight: 900;
	font-size: 38px;
	letter-spacing: -0.03em;
}

.yomi-rowdate__month {
	font-size: 14px;
	font-weight: 700;
	color: var(--wp--preset--color--accent-text);
}

.yomi-rowdate__greg {
	font-size: 12px;
	color: var(--wp--preset--color--grey-text);
}

.yomi-row__title {
	flex: 1 1 auto;
	min-inline-size: 0;
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0;
}

/* ---------- archive ---------- */

.yomi-archive {
	padding-block-start: clamp(24px, 4vw, 48px);
}

.yomi-crumbs {
	padding-block-end: 12px;
	font-size: 15px;
	color: var(--wp--preset--color--grey-text);
}

.yomi-archive__grid {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 40px clamp(32px, 5vw, 72px);
}

.yomi-archive__aside {
	flex: 1 1 280px;
	max-inline-size: 360px;
	min-inline-size: 0;
}

.yomi-archive__title {
	margin: 0;
	font-size: clamp(64px, 8vw, 104px);
	line-height: 0.9;
	letter-spacing: var(--wp--custom--tracking--display);
}

.yomi-archive__range {
	margin: 12px 0 0;
	font-size: 22px;
	font-weight: 500;
	color: var(--wp--preset--color--accent-text);
}

.yomi-archive__sum {
	margin: 20px 0 0;
	font-size: 18px;
	line-height: 1.6;
	color: var(--wp--preset--color--body-muted);
}

.yomi-sidelist {
	margin-block-start: 32px;
}

.yomi-sidelist__title {
	margin: 0;
	padding-block-end: 8px;
	font-weight: 900;
	font-size: 18px;
}

.yomi-sidelist ul {
	list-style: none;
	margin: 0;
	padding: 0;
	border-block-end: 1px solid var(--wp--preset--color--line);
}

.yomi-sidelist a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-block-size: 48px;
	border-block-start: 1px solid var(--wp--preset--color--line);
	font-weight: 500;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.yomi-sidelist a:hover {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-decoration-color: var(--wp--preset--color--accent);
	text-underline-offset: 4px;
}

.yomi-sidelist a[aria-current="page"] {
	font-weight: 900;
	color: var(--wp--preset--color--accent-text);
}

.yomi-sidelist__aux {
	font-size: 13px;
	font-weight: 400;
	color: var(--wp--preset--color--grey-text);
}

.yomi-archive__list {
	flex: 999 1 520px;
	min-inline-size: 0;
}

.yomi-archive__yearhead {
	margin: 40px 0 8px;
	font-size: var(--wp--preset--font-size--section);
}

.yomi-archive__year:first-child .yomi-archive__yearhead {
	margin-block-start: 0;
}

.yomi-archive__yearrange {
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--wp--preset--color--accent-text);
}

.yomi-alist {
	list-style: none;
	margin: 0;
	padding: 0;
	border-block-end: 1px solid var(--wp--preset--color--ink);
}

.yomi-alist__item {
	border-block-start: 1px solid var(--wp--preset--color--ink);
}

.yomi-arow {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 28px;
	padding-block: 24px;
}

.yomi-arow__text {
	flex: 1 1 240px;
	min-inline-size: 0;
}

.yomi-arow__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--title-m);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: var(--wp--custom--tracking--tight);
}

.yomi-arow__cat {
	margin: 6px 0 0;
	font-size: 15px;
	color: var(--wp--preset--color--grey-text);
}

.yomi-arow__media {
	flex: 0 1 200px;
	min-inline-size: 120px;
}

.yomi-arow__media img {
	display: block;
	inline-size: 100%;
	block-size: auto; /* owner ruling 2026-10-23: images are never cropped, anywhere */
}

.yomi-empty {
	font-size: 22px;
	line-height: 1.7;
	color: var(--wp--preset--color--body-muted);
}

/* ---------- single post ---------- */

.yomi-post-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 28px clamp(24px, 4vw, 56px);
	padding-block: clamp(32px, 5vw, 64px) 36px;
}

.yomi-post-head > .yomi-leaf {
	margin-block-end: 12px;
}

.yomi-post-head__text {
	flex: 999 1 460px;
	min-inline-size: 0;
}

.yomi-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 12px;
	font-size: var(--wp--preset--font-size--ui);
	color: var(--wp--preset--color--grey-text);
}

.yomi-meta__cat {
	font-weight: 700;
}

.yomi-post-head .wp-block-post-title {
	margin: 14px 0 0;
	overflow-wrap: break-word;
}

.yomi-hero-image {
	margin: 0;
}

.yomi-hero-image img {
	/* Whole image, never upscaled past its own pixels, never cropped; tall images stop at ~70% of the screen. */
	display: block;
	inline-size: auto;
	max-inline-size: 100%;
	block-size: auto;
	max-block-size: min(70vh, 720px);
	margin-inline: auto;
}

.yomi-post-body {
	display: flex;
	flex-wrap: wrap;
	gap: 40px clamp(28px, 5vw, 80px);
	padding-block: 56px 24px;
}

.yomi-toc {
	flex: 1 1 240px;
	min-inline-size: 0;
	max-inline-size: 300px;
	align-self: flex-start;
	padding-block-start: 14px;
	border-block-start: 3px solid var(--wp--preset--color--ink);
}

.yomi-toc__title {
	margin: 0 0 8px;
	font-weight: 900;
	font-size: 19px;
}

.yomi-toc ul {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: var(--wp--preset--font-size--ui);
	line-height: 1.4;
}

.yomi-toc li {
	border-block-start: 1px solid var(--wp--preset--color--line);
}

.yomi-toc a {
	display: flex;
	align-items: center;
	min-block-size: 44px;
	color: var(--wp--preset--color--body);
	text-decoration: none;
}

.yomi-toc a:hover {
	color: var(--wp--preset--color--accent-text);
	text-decoration: underline;
}

.yomi-adjacent {
	display: flex;
	flex-wrap: wrap;
	gap: 24px 40px;
	padding-block: 40px;
}

.yomi-adj {
	flex: 1 1 300px;
	display: flex;
	align-items: center;
	gap: 22px;
	padding-block-start: 18px;
	border-block-start: 3px solid var(--wp--preset--color--ink);
}

.yomi-adj__text {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-inline-size: 0;
}

.yomi-adj__label {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--grey-text);
}

.yomi-adj__title {
	font-weight: 800;
	font-size: 21px;
	line-height: 1.25;
}

/* ---------- reading column ---------- */

.yomi-prose {
	flex: 999 1 560px;
	min-inline-size: 0;
	max-inline-size: 720px;
	font-size: var(--wp--preset--font-size--body);
	line-height: 1.85;
	color: var(--wp--preset--color--body);
}

.yomi-prose > * {
	margin-block: 0 24px;
}

.yomi-prose > p:first-child {
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.7;
	color: var(--wp--preset--color--ink);
}

.yomi-prose h2 {
	margin-block: 52px 14px;
}

.yomi-prose h3 {
	margin-block: 40px 12px;
}

.yomi-prose img {
	block-size: auto;
}

.yomi-prose figure {
	margin-inline: 0;
}

.yomi-prose figcaption {
	margin-block-start: 8px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--wp--preset--color--grey-text);
}

.yomi-prose :where(ul, ol) {
	padding-inline-start: 1.4em;
}

/* Pull quote (default quote style). */
.wp-block-quote,
.wp-block-quote.is-style-pull {
	position: relative;
	margin-block: 36px;
	margin-inline: 0;
	padding: 18px 0 0;
	border: 0;
	border-block-start: 3px solid var(--wp--preset--color--ink);
	font-weight: 900;
	font-size: 32px;
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--ink);
}

.wp-block-quote::after {
	content: "\201D" / "";
	position: absolute;
	inset-inline-end: 0;
	inset-block-start: -2px;
	font-size: 96px;
	line-height: 0.8;
	color: var(--wp--preset--color--accent);
	pointer-events: none;
}

.wp-block-quote p {
	margin: 0;
	/* English quotes on an RTL page: take direction from the first strong letter so end punctuation lands correctly. */
	unicode-bidi: plaintext;
}

.wp-block-quote cite {
	display: block;
	margin-block-start: 12px;
	font-size: var(--wp--preset--font-size--ui);
	font-weight: 500;
	font-style: normal;
	color: var(--wp--preset--color--grey-text);
	unicode-bidi: plaintext;
}

/* Ticket: a fact with a big number. */
.wp-block-group.is-style-ticket {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 28px;
	padding: 20px 24px;
	border: 2px dashed var(--wp--preset--color--ink);
	background: var(--wp--preset--color--tint);
}

.yomi-ticket__num {
	margin: 0;
	font-weight: 900;
	font-size: 72px;
	line-height: 1;
	letter-spacing: -0.04em;
	color: var(--wp--preset--color--accent-text);
}

.yomi-ticket__text {
	flex: 1 1 260px;
	margin: 0;
	font-size: 18px;
	line-height: 1.6;
}

/* Agenda list. */
.wp-block-list.is-style-ledger {
	list-style: none;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
	column-gap: 40px;
	border-block-end: 1px solid var(--wp--preset--color--ink);
	font-size: 19px;
	line-height: 1.5;
}

.wp-block-list.is-style-ledger > li {
	padding-block: 10px;
	border-block-start: 1px solid var(--wp--preset--color--ink);
	font-weight: 700;
}

/* YouTube facade (markup comes from the yomisheli-core mu-plugin). */
.yomisheli-yt {
	position: relative;
	margin-block: 36px 0;
	aspect-ratio: 16 / 9;
	background: var(--wp--preset--color--ink);
	overflow: hidden;
}

.yomisheli-yt__thumb {
	position: absolute;
	inset: 0;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
	object-position: center top;
	display: block;
}

.yomisheli-yt__play {
	position: absolute;
	inset: 0;
	margin: auto;
	inline-size: 88px;
	block-size: 64px;
	min-block-size: 44px;
	padding: 0;
	border: 3px solid var(--wp--preset--color--on-accent);
	border-radius: var(--wp--custom--radius--control);
	background: var(--wp--preset--color--accent);
	cursor: pointer;
	display: grid;
	place-items: center;
}

.yomisheli-yt__play::before {
	content: "";
	inline-size: 26px;
	block-size: 30px;
	background: var(--wp--preset--color--on-accent);
	clip-path: polygon(11% 7%, 92% 50%, 11% 93%);
}

.yomisheli-yt__play:hover {
	background: var(--wp--preset--color--on-accent);
}

.yomisheli-yt__play:hover::before {
	background: var(--wp--preset--color--accent);
}

.yomisheli-yt__play:focus-visible {
	outline-color: var(--wp--preset--color--paper);
	outline-offset: 0;
	box-shadow: 0 0 0 var(--wp--custom--focus--width) var(--wp--preset--color--ink);
}

.yomisheli-yt__note {
	position: absolute;
	inset-inline: 0;
	inset-block-end: 0;
	margin: 0;
	padding: 10px 16px;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
	font-size: 15px;
	line-height: 1.5;
}

.yomisheli-yt iframe {
	position: absolute;
	inset: 0;
	inline-size: 100%;
	block-size: 100%;
	border: 0;
}

.yomisheli-yt noscript a {
	position: absolute;
	inset-block-start: 8px;
	inset-inline-start: 8px;
	color: var(--wp--preset--color--paper);
}

/* ---------- comments ---------- */

.yomi-comments {
	max-inline-size: 820px;
	padding-block: 8px 24px;
}

.yomi-comments .wp-block-comments-title {
	margin: 0 0 20px;
	font-size: var(--wp--preset--font-size--title-m);
}

.yomi-comments .wp-block-comment-template {
	list-style: none;
	margin: 0;
	padding: 0;
}

.yomi-comments .wp-block-comment-template ol {
	list-style: none;
	padding-inline-start: 24px;
}

.yomi-comment {
	display: flex;
	gap: 16px;
	padding-block: 20px;
	border-block-start: 1px solid var(--wp--preset--color--ink);
}

.yomi-comment .wp-block-avatar,
.yomi-comment .wp-block-comment-author-avatar {
	flex: 0 0 48px;
	margin: 0;
}

.yomi-avatar {
	display: grid;
	place-items: center;
	inline-size: 48px;
	block-size: 48px;
	border-radius: 50%;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
	font-weight: 900;
	font-size: 20px;
	line-height: 1;
}

.yomi-comment__main {
	min-inline-size: 0;
	flex: 1 1 auto;
}

.yomi-comment__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
}

.yomi-comment .wp-block-comment-author-name {
	font-weight: 700;
}

.yomi-comment .wp-block-comment-date {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--grey-text);
}

.yomi-comment .wp-block-comment-content {
	font-size: 17px;
	line-height: 1.7;
	color: var(--wp--preset--color--body-muted);
}

.yomi-comment .wp-block-comment-reply-link {
	font-size: var(--wp--preset--font-size--ui);
}

.yomi-comment .wp-block-comment-reply-link a {
	display: inline-flex;
	align-items: center;
	min-block-size: 44px;
}

.yomi-comments .comment-form {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	margin-block-start: 32px;
	padding: 28px;
	border-radius: var(--wp--custom--radius--panel);
	background: var(--wp--preset--color--soft);
}

.yomi-comments .comment-reply-title {
	margin-block: 32px 0;
	font-size: 24px;
	font-weight: 900;
}

.yomi-comments .comment-form p {
	margin: 0;
	flex: 1 1 100%;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.yomi-comments .comment-form .comment-form-author,
.yomi-comments .comment-form .comment-form-email {
	flex: 1 1 220px;
}

.yomi-comments .comment-form label {
	font-weight: 700;
}

.yomi-comments .comment-form :where(input[type="text"], input[type="email"], textarea) {
	font: inherit;
	font-weight: 400;
	min-block-size: 48px;
	padding: 12px;
	border: 2px solid var(--wp--preset--color--control-border);
	border-radius: var(--wp--custom--radius--control);
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--ink);
	inline-size: 100%;
	box-sizing: border-box;
}

.yomi-comments .comment-form textarea {
	resize: vertical;
}

.yomi-comment-note {
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.6;
	color: var(--wp--preset--color--body-muted);
}

.yomi-comments .comment-form .form-submit {
	display: block;
}

.yomi-comments .comment-form .submit {
	align-self: flex-start;
	min-block-size: 48px;
	padding: 0 32px;
	border: 0;
	border-radius: var(--wp--custom--radius--control);
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.yomi-comments .comment-form .submit:hover {
	background: var(--wp--preset--color--accent-text);
}

.yomi-comments .wp-block-comments-pagination a {
	display: inline-flex;
	align-items: center;
	min-block-size: 44px;
}

/* ---------- pages, contact, 404 ---------- */

.yomi-page {
	padding-block: clamp(32px, 6vw, 88px) 24px;
}

.yomi-page__title {
	margin: 0 0 28px;
}

.yomi-page .yomi-prose {
	max-inline-size: 720px;
}

.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	min-block-size: 48px;
	text-decoration: none;
}

.yomi-contact__lead {
	max-inline-size: 460px;
	margin: 0 0 28px;
	font-size: 22px;
	line-height: 1.7;
	color: var(--wp--preset--color--body-muted);
}

.yomi-contact__card {
	max-inline-size: 560px;
	border: 2px solid var(--wp--preset--color--ink);
	border-radius: var(--wp--custom--radius--paper);
	background: var(--wp--preset--color--paper);
	box-shadow: var(--wp--preset--shadow--sheets);
	rotate: 1.5deg;
	margin-block-end: 24px;
}

.yomi-contact__label {
	margin: 0;
	padding: 22px 28px 10px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
	border-block-end: 3px dotted var(--wp--preset--color--ink);
	font-weight: 800;
	font-size: 16px;
}

.yomi-contact__mail {
	margin: 0;
	padding: 28px 28px 0;
	font-weight: 900;
	font-size: clamp(22px, 3.2vw, 34px);
	letter-spacing: var(--wp--custom--tracking--heading);
	line-height: 1.2;
	word-break: break-all;
}

.yomi-contact__mail a {
	color: var(--wp--preset--color--ink);
}

.yomi-contact__card .wp-block-buttons {
	padding: 24px 28px 0;
}

.yomi-contact__soon {
	margin: 28px 28px 28px;
	padding-block-start: 16px;
	border-block-start: 2px dashed var(--wp--preset--color--control-border);
	font-size: var(--wp--preset--font-size--ui);
	line-height: 1.6;
	color: var(--wp--preset--color--grey-text);
}

.yomi-notfound {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 40px clamp(32px, 6vw, 96px);
	padding-block: clamp(32px, 6vw, 88px) 24px;
}

.yomi-torn {
	flex: 0 0 auto;
	rotate: -4deg;
	filter: drop-shadow(2px 0 0 var(--wp--preset--color--ink)) drop-shadow(-2px 0 0 var(--wp--preset--color--ink)) drop-shadow(0 2px 0 var(--wp--preset--color--ink));
}

.yomi-torn__sheet {
	inline-size: 240px;
	max-inline-size: 100%;
	box-sizing: border-box;
	background: var(--wp--preset--color--paper);
	text-align: center;
	clip-path: polygon(0 0, 100% 0, 100% 94%, 94% 100%, 88% 95%, 80% 100%, 72% 94%, 63% 99%, 55% 93%, 46% 100%, 38% 95%, 29% 100%, 21% 94%, 12% 99%, 6% 94%, 0 98%);
}

.yomi-torn__band {
	padding: 22px 0 8px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
	border-block-end: 3px dotted var(--wp--preset--color--ink);
	font-weight: 800;
	font-size: 18px;
}

.yomi-torn__body {
	display: flex;
	flex-direction: column;
	padding: 16px 12px 40px;
}

.yomi-torn__mark {
	font-weight: 900;
	font-size: 140px;
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--wp--preset--color--ink);
}

.yomi-torn__code {
	font-weight: 700;
	font-size: 20px;
	color: var(--wp--preset--color--ink);
}

.yomi-notfound__text {
	flex: 1 1 420px;
	min-inline-size: 0;
}

.yomi-notfound__title {
	margin: 0;
	font-size: clamp(48px, 7vw, 96px);
	line-height: 0.95;
	letter-spacing: -0.04em;
}

.yomi-notfound__lead {
	max-inline-size: 520px;
	margin: 24px 0 0;
	font-size: 22px;
	line-height: 1.7;
	color: var(--wp--preset--color--body-muted);
}

.yomi-notfound .wp-block-buttons {
	margin-block-start: 28px;
}

.yomi-recent {
	max-inline-size: 520px;
	margin-block-start: 48px;
}

.yomi-recent__title {
	margin: 0;
	padding-block-end: 10px;
	font-weight: 900;
	font-size: 20px;
}

.yomi-recent .yomi-ledger {
	grid-template-columns: 1fr;
}

.yomi-recent .yomi-rowdate__day {
	font-size: 32px;
}

.yomi-recent .yomi-row__title {
	font-size: 19px;
}

/* ---------- search form (core block) ---------- */

.wp-block-search__input {
	min-block-size: 48px;
	border: 2px solid var(--wp--preset--color--control-border);
	border-radius: var(--wp--custom--radius--control);
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--ink);
	padding-inline: 12px;
	font: inherit;
}

.wp-block-search__button {
	min-block-size: 48px;
}

/* ---------- small screens ---------- */

@media (max-width: 600px) {
	.yomi-header {
		padding-block: 16px 4px;
	}

	.yomi-brand__name {
		font-size: 24px;
	}

	.yomi-nav .wp-block-navigation__container {
		column-gap: 24px;
	}

	.yomi-hero__row {
		gap: 12px;
	}

	.yomi-hero__row > .yomi-leaf {
		margin-inline-start: auto;
		margin-inline-end: 8px;
	}

	.yomi-hero__text {
		flex-basis: 100%;
	}

	.yomi-home-title {
		font-size: 92px;
		line-height: 0.85;
	}

	.yomi-prose h2 {
		margin-block-start: 40px;
	}

	.wp-block-quote,
	.wp-block-quote.is-style-pull {
		font-size: 26px;
	}

	.yomi-post-body {
		padding-block-start: 32px;
	}

	.yomi-toc {
		max-inline-size: none;
	}

	.yomi-comments .comment-form {
		padding: 20px;
	}

	.yomi-feature__media {
		margin-block-start: 0;
		max-inline-size: none;
	}
}

/* ---------- motion: the calendar page tears when a post opens ---------- */

@media (prefers-reduced-motion: no-preference) {
	@view-transition {
		navigation: auto;
	}

	.yomi-post-head > .yomi-leaf {
		view-transition-name: yomi-leaf;
	}

	::view-transition-group(yomi-leaf) {
		animation: none;
	}

	::view-transition-old(yomi-leaf) {
		animation: yomi-tear-away var(--wp--custom--tear-duration) var(--wp--custom--tear-ease) both;
	}

	::view-transition-new(yomi-leaf) {
		animation: yomi-land 600ms var(--wp--custom--land-ease) both;
	}

	.yomi-leaf {
		transition: transform var(--wp--custom--tear-duration) var(--wp--custom--tear-ease);
	}

	.yomi-tile:hover .yomi-leaf,
	.yomi-tile:has(a:focus-visible) .yomi-leaf {
		transform: rotate(6deg) translate(-8px, 14px);
	}

	.yomi-leaf--land {
		animation: yomi-land 600ms var(--wp--custom--land-ease) both;
	}

	@keyframes yomi-land {
		from {
			transform: rotate(-7deg) translateY(-32px);
			opacity: 0;
		}

		to {
			transform: none;
			opacity: 1;
		}
	}

	@keyframes yomi-tear-away {
		to {
			transform: rotate(6deg) translate(-8px, 64px);
			opacity: 0;
		}
	}
}

/* ---------- converted-post structures ---------- */

/* Info box (converted from Elementor alerts). */
.yomi-alert {
	margin-block: 32px;
	padding: 18px 20px;
	background: var(--wp--preset--color--tint);
	border: 1px solid var(--wp--preset--color--line);
	border-inline-start: 6px solid var(--wp--preset--color--accent);
	border-radius: var(--wp--custom--radius--paper);
	font-size: var(--wp--preset--font-size--ui);
	line-height: 1.7;
	color: var(--wp--preset--color--ink);
}

.yomi-alert > * {
	margin-block: 0;
}

.yomi-alert > * + * {
	margin-block-start: 8px;
}

/* Disclosure list (core/details). */
.yomi-prose .wp-block-details {
	margin-block: 0 12px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--paper);
	background: var(--wp--preset--color--paper);
}

.yomi-prose .wp-block-details > summary {
	display: flex;
	align-items: center;
	min-block-size: 48px;
	padding: 8px 16px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	text-align: start;
	list-style: none;
	gap: 12px;
}

.yomi-prose .wp-block-details > summary::-webkit-details-marker {
	display: none;
}

.yomi-prose .wp-block-details > summary::after {
	content: "";
	flex: none;
	margin-inline-start: auto;
	inline-size: 10px;
	block-size: 10px;
	border-inline-end: 3px solid var(--wp--preset--color--ink);
	border-block-end: 3px solid var(--wp--preset--color--ink);
	/* border corner is inline-end/block-end (bottom-left in RTL): -45deg points it down */
	rotate: -45deg;
	translate: 0 -3px;
}

.yomi-prose .wp-block-details[open] > summary::after {
	rotate: 135deg;
	translate: 0 3px;
}

.yomi-prose .wp-block-details[open] > summary {
	border-block-end: 1px solid var(--wp--preset--color--line);
}

.yomi-prose .wp-block-details > summary:focus-visible {
	outline-offset: -3px;
}

.yomi-prose .wp-block-details > :not(summary) {
	margin-block: 12px;
	margin-inline: 16px;
}

/* Star rating line: decorative stars, text alternative is the .yomi-vh span. */
.yomi-prose p > span[aria-hidden="true"] {
	color: var(--wp--preset--color--accent-text);
	letter-spacing: 0.08em;
	overflow-wrap: anywhere;
}

/* Form replacement button. */
.yomi-prose .wp-block-buttons {
	margin-block: 24px;
}

/* ---------- a11y utilities ---------- */

.yomi-vh {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.yomi-crumbs a {
	display: inline-flex;
	align-items: center;
	min-block-size: 44px;
}

/* ---------- click-to-reveal e-mail ---------- */

.yomi-reveal__btn {
	display: inline-flex;
	align-items: center;
	min-block-size: 44px;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	color: var(--wp--preset--color--accent-text);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.yomi-reveal__btn:hover {
	color: var(--wp--preset--color--ink);
}

.yomi-reveal__link {
	font-weight: 900;
	color: var(--wp--preset--color--ink);
	overflow-wrap: anywhere;
}

.yomi-contact__mail .yomi-reveal__link {
	display: inline-block;
	font-size: clamp(22px, 3.2vw, 34px);
	letter-spacing: var(--wp--custom--tracking--heading);
	line-height: 1.2;
}

.yomi-contact__mail {
	padding: 28px 28px 0;
}

.yomi-contact__card .yomi-contact__social {
	margin: 0 28px 28px;
}

.yomi-contact__card .yomi-contact__social .wp-social-link,
.yomi-contact__card .yomi-contact__social .wp-social-link a {
	color: var(--wp--preset--color--ink) !important;
	background: none !important;
}

.yomi-contact__card .yomi-contact__social .wp-social-link a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-block-size: 44px;
	padding: 0;
	text-decoration: underline;
}

.yomi-table {
	margin-block: 24px;
	overflow-x: auto;
}

.yomi-table table {
	border-collapse: collapse;
	inline-size: 100%;
	font-size: 17px;
	line-height: 1.5;
}

.yomi-table :where(th, td) {
	padding: 12px;
	border: 1px solid var(--wp--preset--color--ink);
	text-align: start;
	vertical-align: top;
	overflow-wrap: anywhere;
}

.yomi-table th {
	background: var(--wp--preset--color--soft);
}
