/* Circuit Works: a light technical drawing set. Navy ink and cyan lines on white over a pale cyan grid. */

:root {
	--cw-paper: var(--wp--preset--color--paper, #ffffff);
	--cw-ink: var(--wp--preset--color--ink, #0b1b3a);
	--cw-cyan: var(--wp--preset--color--cyan, #0891b2);
	--cw-cyan-deep: var(--wp--preset--color--cyan-deep, #0a6c86);
	--cw-muted: var(--wp--preset--color--muted, #4e5b73);
	--cw-line: var(--wp--preset--color--line, #9fc3d1);
	--cw-wash: var(--wp--preset--color--wash, #f3fafc);
	--cw-mono: var(--wp--preset--font-family--mono, ui-monospace, monospace);
	--cw-grid-line: var(--wp--custom--grid--color, #ddeff5);
	--cw-grid-pitch: var(--wp--custom--grid--pitch, 24px);
	--cw-sheet-pad: var(--wp--custom--sheet--pad, clamp(1.25rem, 3vw, 2.5rem));
	--cw-sheet-gap: var(--wp--custom--sheet--gap, clamp(2.5rem, 6vw, 5rem));
	--cw-photo-fit: var(--wp--custom--photo--fit, cover);
	--cw-photo-ratio: var(--wp--custom--photo--ratio, 4 / 5);
	--cw-reading-width: 720px;
	--cw-rev-display: inline;
	--cw-frame: 2px solid var(--cw-ink);
	--cw-rule: 1px solid var(--cw-ink);
	--cw-hair: 1px solid var(--cw-line);
	--cw-grid-image: linear-gradient(to right, var(--cw-grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--cw-grid-line) 1px, transparent 1px);
}

body,
.editor-styles-wrapper {
	/* The page colour comes from Styles (theme.json styles.color.background = the Paper preset, the same colour as before), so a
	   background chosen in Styles is no longer overridden here. The drafting grid is still drawn on top of it. */
	background-image: var(--cw-grid-image);
	background-size: var(--cw-grid-pitch) var(--cw-grid-pitch);
	text-rendering: optimizeLegibility;
}

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--cw-cyan-deep);
	outline-offset: 2px;
}
a { text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
h1, h2, h3, .wp-block-post-title { overflow-wrap: break-word; }
img { max-width: 100%; height: auto; }

.cw-main { padding-bottom: var(--cw-sheet-gap); }

/* Shared: mono labels, chips, cells ------------------------------------------------ */

.cw-cell__label,
.cw-label-heading,
.is-style-cw-label {
	font-family: var(--cw-mono);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--cw-muted);
}
.cw-label-heading { margin: 2rem 0 0.75rem; }
.cw-cell__value { font-family: var(--cw-mono); font-size: 1rem; line-height: 1.4; }
body .cw-cell > * { margin-block: 0; }
.cw-cell { display: grid; align-content: start; gap: 0.2rem; padding: 0.6rem 0.85rem; min-width: 0; }

.cw-chip,
.cw-chips a {
	display: inline-block;
	font-family: var(--cw-mono);
	font-size: var(--wp--preset--font-size--caption);
	line-height: 1.3;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--cw-ink);
	border: var(--cw-rule);
	padding: 0.25rem 0.55rem;
	white-space: nowrap;
}
.cw-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0; }
.cw-chips .wp-block-post-terms__separator { display: none; }
.cw-chips a:hover { background: var(--cw-ink); color: var(--cw-paper); }

.cw-code {
	font-family: var(--cw-mono);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 700;
	letter-spacing: 0.03em;
	color: var(--cw-ink);
	margin: 0;
}
.cw-code a { text-decoration: none; }
.cw-code--large,
.cw-sheet__no,
.cw-strip__code {
	font-family: var(--cw-mono);
	font-weight: 700;
	font-size: clamp(1.5rem, 2.6vw, 2.125rem);
	line-height: 1;
	letter-spacing: -0.01em;
	color: var(--cw-cyan);
	margin: 0;
}
.cw-rev { display: var(--cw-rev-display); font-family: var(--cw-mono); font-size: var(--wp--preset--font-size--caption); color: var(--cw-muted); }
.cw-rev::before { content: "Rev. "; }
.cw-standfirst { max-width: 40ch; color: var(--cw-ink); line-height: 1.45; }

/* Header: bordered title block top right ------------------------------------------- */

.cw-header { padding-block: clamp(1rem, 2.5vw, 1.75rem) 0; }
.cw-header__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 1rem 2rem;
	align-items: end;
}
body .cw-header__row > * { margin-block: 0; }
.cw-header__mark { display: flex; align-items: center; gap: 0.75rem; min-width: 0; }
body .cw-header__mark > * { margin: 0; }
.cw-header__tagline { font-family: var(--cw-mono); font-size: var(--wp--preset--font-size--caption); color: var(--cw-muted); max-width: 30ch; line-height: 1.45; }

.cw-titleblock {
	display: grid;
	grid-template-columns: minmax(11rem, 1.7fr) minmax(7rem, 0.9fr) minmax(4rem, 0.45fr);
	width: min(38rem, 100%);
	border: var(--cw-frame);
	background: var(--cw-paper);
}
body .cw-titleblock > * { margin-block: 0; }
.cw-titleblock > .cw-cell { border-right: var(--cw-rule); border-bottom: var(--cw-rule); }
.cw-titleblock > .cw-cell--rev { border-right: 0; }
.cw-titleblock > .cw-cell--nav { grid-column: 1 / -1; border: 0; padding-block: 0.1rem; }
.cw-titleblock__name { font-size: 1.375rem; font-weight: 700; letter-spacing: -0.02em; line-height: 1.1; }
.cw-titleblock__name a { text-decoration: none; }

.cw-nav .wp-block-navigation__container { gap: 0 1.5rem; }
.cw-nav .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	text-decoration: none;
	font-family: var(--cw-mono);
}
.cw-nav .wp-block-navigation-item__content:hover,
.cw-nav .current-menu-item > .wp-block-navigation-item__content { text-decoration: underline; text-decoration-color: var(--cw-cyan); text-decoration-thickness: 2px; text-underline-offset: 0.35em; }
.cw-nav .wp-block-navigation__responsive-container-open,
.cw-nav .wp-block-navigation__responsive-container-close {
	min-width: 44px;
	min-height: 44px;
}
.cw-nav .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--cw-paper);
	background-image: var(--cw-grid-image);
	background-size: var(--cw-grid-pitch) var(--cw-grid-pitch);
	color: var(--cw-ink);
	padding: 1.25rem clamp(1rem, 4vw, 3rem);
}
.cw-nav .is-menu-open .wp-block-navigation__container { gap: 0; border: var(--cw-frame); background: var(--cw-paper); width: 100%; }
.cw-nav .is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: var(--cw-rule); }
.cw-nav .is-menu-open .wp-block-navigation-item:last-child { border-bottom: 0; }
.cw-nav .is-menu-open .wp-block-navigation-item__content { font-size: 1.25rem; padding: 0.5rem 1rem; width: 100%; }

/* Homepage title block ------------------------------------------------------------- */

.cw-intro {
	margin-top: clamp(1.5rem, 4vw, 3rem);
	border: var(--cw-frame);
	background: var(--cw-paper);
}
body .cw-intro > * { margin-block: 0; }
.cw-intro__main {
	display: grid;
	grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr);
	gap: 1.5rem clamp(1.5rem, 4vw, 3.5rem);
	align-items: end;
	padding: var(--cw-sheet-pad);
}
body .cw-intro__main > * { margin-block: 0; }
.cw-intro__title { font-weight: 600; line-height: 0.98; letter-spacing: -0.035em; max-width: 15ch; }
.cw-intro__lede { max-width: 34ch; line-height: 1.45; }
.cw-intro__cells { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: var(--cw-rule); }
body .cw-intro__cells > * { margin-block: 0; }
.cw-intro__cells > .cw-cell { border-right: var(--cw-rule); padding: 0.75rem var(--cw-sheet-pad); }
.cw-intro__cells > .cw-cell:last-child { border-right: 0; }

/* Build sheets --------------------------------------------------------------------- */

.cw-sheets { margin-top: var(--cw-sheet-gap); }
body .cw-sheets > * { margin-block: 0; }
body .cw-sheets > * + * { margin-top: var(--cw-sheet-gap); }

.cw-sheet {
	position: relative;
	border: var(--cw-frame);
	outline: var(--cw-hair);
	outline-offset: 6px;
	background: var(--cw-paper);
}
body .cw-sheet > * { margin-block: 0; }
.cw-sheet__head {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.5rem 1.5rem;
	padding: 0.9rem var(--cw-sheet-pad);
	border-bottom: var(--cw-rule);
}
body .cw-sheet__head > * { margin-block: 0; }
.cw-sheet__title { font-size: var(--wp--preset--font-size--x-large); line-height: 1.1; }
.cw-sheet__title a { text-decoration: none; }
.cw-sheet__title a:hover { text-decoration: underline; text-decoration-color: var(--cw-cyan); }

.cw-sheet__body { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
body .cw-sheet__body > * { margin-block: 0; }
.cw-sheet--mirror .cw-sheet__body { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.cw-sheet--mirror .cw-sheet__photo { order: 2; border-right: 0; border-left: var(--cw-rule); }

.cw-sheet__photo {
	--dim: calc(var(--cw-sheet-pad) + 0.9rem);
	--dim-left: var(--cw-sheet-pad);
	--dim-bottom: var(--cw-sheet-pad);
	border-right: var(--cw-rule);
	background-image: var(--cw-grid-image);
	background-size: var(--cw-grid-pitch) var(--cw-grid-pitch);
}
.cw-sheet__photo img {
	display: block;
	width: 100%;
	aspect-ratio: var(--cw-photo-ratio);
	object-fit: var(--cw-photo-fit);
	border: var(--cw-rule);
}

.cw-sheet__notes { padding: var(--cw-sheet-pad); min-width: 0; }
body .cw-sheet__notes > * { margin-block: 0; }
body .cw-sheet__notes > .cw-label-heading { margin: 0 0 0.85rem; }
body .cw-sheet__notes > * + .cw-label-heading { margin-top: 1.75rem; }
.cw-sheet__open { margin-top: 1.25rem !important; }
.cw-sheet__open a,
.cw-register__more a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-family: var(--cw-mono);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}
.cw-sheet__open a::after,
.cw-register__more a::after { content: "\2192"; margin-left: 0.5em; }

/* Image block style: Dimensioned. Two cyan dimension lines with end ticks, drawn with CSS only. */
.is-style-cw-dimensioned {
	--dim: 1.5rem;
	--dim-left: 0px;
	--dim-bottom: 0px;
	--dim-cap: 0px;
	position: relative;
	margin-inline: 0;
	padding: var(--dim) var(--dim) calc(var(--dim-bottom) + var(--dim-cap)) var(--dim-left);
}
.is-style-cw-dimensioned:has(> figcaption) { --dim-cap: 2.9rem; }
.is-style-cw-dimensioned::before,
.is-style-cw-dimensioned::after {
	content: "";
	position: absolute;
	pointer-events: none;
	background-repeat: no-repeat;
	background-image: linear-gradient(var(--cw-cyan), var(--cw-cyan));
}
.is-style-cw-dimensioned::before {
	top: calc(var(--dim) / 2 - 0.4rem);
	left: var(--dim-left);
	right: var(--dim);
	height: 0.8rem;
	border-inline: 1.5px solid var(--cw-cyan);
	background-size: 100% 1px;
	background-position: center;
}
.is-style-cw-dimensioned::after {
	right: calc(var(--dim) / 2 - 0.4rem);
	top: var(--dim);
	bottom: calc(var(--dim-bottom) + var(--dim-cap));
	width: 0.8rem;
	border-block: 1.5px solid var(--cw-cyan);
	background-size: 1px 100%;
	background-position: center;
}
.is-style-cw-dimensioned > figcaption {
	position: absolute;
	left: var(--dim-left);
	right: var(--dim);
	bottom: var(--dim-bottom);
	height: var(--dim-cap);
	margin: 0;
	padding-top: 0.55rem;
	overflow: hidden;
	display: flex;
	gap: 0.6rem;
	font-family: var(--cw-mono);
	font-size: var(--wp--preset--font-size--caption);
	line-height: 1.4;
	color: var(--cw-ink);
	text-align: left;
}
.is-style-cw-dimensioned > figcaption::before {
	content: "";
	flex: 0 0 1.5rem;
	height: 0.7rem;
	border-bottom: 1px solid var(--cw-cyan);
	border-left: 1.5px solid var(--cw-cyan);
}

/* List block style: Numbered callouts. On sheets, a cyan leader runs from each note to the photograph. */
.is-style-cw-callouts {
	list-style: none;
	counter-reset: cw-callout;
	margin: 0;
	padding: 0;
}
.is-style-cw-callouts > li {
	counter-increment: cw-callout;
	position: relative;
	min-height: 2rem;
	margin: 0 0 0.85rem;
	padding: 0.2rem 0 0 2.75rem;
	line-height: 1.45;
}
.is-style-cw-callouts > li::before {
	content: counter(cw-callout, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: 0;
	width: 2rem;
	height: 2rem;
	display: grid;
	place-items: center;
	border: 1.5px solid var(--cw-ink);
	border-radius: 50%;
	background: var(--cw-paper);
	font-family: var(--cw-mono);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 700;
}
.cw-sheet .is-style-cw-callouts > li::after {
	content: "";
	position: absolute;
	top: calc(1rem - 4px);
	right: 100%;
	width: var(--cw-sheet-pad);
	height: 8px;
	border-left: 1.5px solid var(--cw-cyan);
	background: linear-gradient(var(--cw-cyan), var(--cw-cyan)) center / 100% 1px no-repeat;
}
.cw-sheet--mirror .is-style-cw-callouts > li::after {
	right: auto;
	left: 100%;
	border-left: 0;
	border-right: 1.5px solid var(--cw-cyan);
}

/* Table block styles: Facts and Bill of materials */
.wp-block-table.is-style-cw-facts,
.wp-block-table.is-style-cw-bom { margin: 0; }
.is-style-cw-facts table,
.is-style-cw-bom table { width: 100%; border-collapse: collapse; font-family: var(--cw-mono); }
.is-style-cw-facts :is(td, th) {
	border: 0;
	border-top: var(--cw-hair);
	padding: 0.55rem 0.75rem 0.55rem 0;
	text-align: left;
	vertical-align: top;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.4;
}
.is-style-cw-facts tr:last-child :is(td, th) { border-bottom: var(--cw-hair); }
.is-style-cw-facts th {
	width: 38%;
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--cw-muted);
}
.is-style-cw-bom table { border: 1.5px solid var(--cw-ink); }
.is-style-cw-bom :is(td, th) {
	border: 0;
	border-bottom: var(--cw-hair);
	padding: 0.6rem 0.8rem;
	text-align: left;
	vertical-align: top;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.4;
}
.is-style-cw-bom thead th {
	background: var(--cw-ink);
	color: var(--cw-paper);
	font-size: var(--wp--preset--font-size--caption);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	border-bottom: 0;
}
.is-style-cw-bom tbody tr:nth-child(even) { background: var(--cw-wash); }
.is-style-cw-bom :is(td, th):nth-child(2) { text-align: right; width: 4.5rem; white-space: nowrap; }
.wp-block-table figcaption { font-family: var(--cw-mono); font-size: var(--wp--preset--font-size--caption); color: var(--cw-muted); text-align: left; }

/* Group block style: Sheet frame */
.is-style-cw-frame { border: var(--cw-frame); background: var(--cw-paper); padding: var(--cw-sheet-pad); }

/* Homepage index of drawings ------------------------------------------------------- */

.cw-register { margin-top: var(--cw-sheet-gap); border: var(--cw-frame); background: var(--cw-paper); }
body .cw-register > * { margin-block: 0; }
.cw-register__head { padding: 0.9rem var(--cw-sheet-pad); border-bottom: var(--cw-rule); gap: 0.5rem 1.5rem; }
body .cw-register__head > * { margin: 0; }
.cw-register__title { font-size: var(--wp--preset--font-size--x-large); }
.cw-index .wp-block-post-template { list-style: none; margin: 0; padding: 0; }
.cw-index--compact .cw-index__rows { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cw-index--compact .cw-index__rows > li {
	display: grid;
	grid-template-columns: 7.5rem minmax(0, 1fr) auto;
	gap: 0.35rem 1rem;
	align-items: baseline;
	padding: 0.85rem var(--cw-sheet-pad);
	border-bottom: var(--cw-hair);
	margin: 0;
}
body .cw-index__rows > li > * { margin: 0; }
.cw-index--compact .cw-index__rows > li:nth-child(odd) { border-right: var(--cw-hair); }
.cw-index__title { font-size: var(--wp--preset--font-size--medium); font-weight: 600; letter-spacing: -0.01em; line-height: 1.3; }
.cw-index__title a { text-decoration: none; }
.cw-index__title a:hover { text-decoration: underline; text-decoration-color: var(--cw-cyan); }
.cw-empty { padding: var(--cw-sheet-pad); }
body .cw-empty > * + * { margin-top: 1rem; }

/* Title strip (index, archive, search, page) --------------------------------------- */

.cw-strip {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.75rem clamp(1.25rem, 3vw, 2.5rem);
	align-items: start;
	margin-top: clamp(1.5rem, 4vw, 3rem);
	padding: var(--cw-sheet-pad);
	border: var(--cw-frame);
	background: var(--cw-paper);
}
body .cw-strip > * { margin-block: 0; grid-column: 2; }
body .cw-strip > .cw-strip__code { grid-column: 1; grid-row: 1 / span 4; padding-top: 0.3rem; }
.cw-strip--page { grid-template-columns: minmax(0, 1fr); }
body .cw-strip--page > * { grid-column: 1; }
.cw-strip__title { font-size: var(--wp--preset--font-size--xx-large); line-height: 1.02; letter-spacing: -0.03em; }
.cw-strip__note { max-width: 58ch; color: var(--cw-muted); }
body .cw-strip__note > * { margin: 0; }
.cw-materials { list-style: none; display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 0.25rem 0 0; padding: 0; font-family: var(--cw-mono); font-size: var(--wp--preset--font-size--caption); color: var(--cw-muted); }
.cw-materials li { margin: 0; }
.cw-materials a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 0.6rem; border: var(--cw-rule); color: var(--cw-ink); text-decoration: none; text-transform: uppercase; letter-spacing: 0.04em; }
.cw-materials a:hover,
.cw-materials .current-cat > a { background: var(--cw-ink); color: var(--cw-paper); }

.cw-search .wp-block-search__input { border: var(--cw-rule); border-radius: 0; min-height: 44px; font-family: var(--cw-mono); padding-inline: 0.75rem; background: var(--cw-paper); }
.cw-search .wp-block-search__button { min-height: 44px; margin-left: 0; }
.cw-search .wp-block-search__label { font-family: var(--cw-mono); font-size: var(--wp--preset--font-size--caption); text-transform: uppercase; letter-spacing: 0.06em; color: var(--cw-muted); }

/* Full index rows */
.cw-index--index { border: var(--cw-frame); border-top: 0; background: var(--cw-paper); }
.cw-index--index .cw-index__rows > li {
	display: grid;
	grid-template-columns: 8.5rem 72px minmax(0, 1fr) minmax(0, auto) 8.5rem;
	grid-template-areas: "code thumb title chips rev";
	gap: 0.35rem 1.25rem;
	align-items: center;
	padding: 0.85rem var(--cw-sheet-pad);
	border-bottom: var(--cw-hair);
	margin: 0;
}
.cw-index--index .cw-index__rows > li:hover { background: var(--cw-wash); }
.cw-index--index .cw-code { grid-area: code; }
.cw-index--index .cw-index__thumb { grid-area: thumb; }
.cw-index--index .cw-index__title { grid-area: title; font-size: var(--wp--preset--font-size--large); }
.cw-index--index .cw-chips { grid-area: chips; }
.cw-index--index .cw-rev { grid-area: rev; text-align: right; }
.cw-index__thumb img { width: 72px; height: 72px; object-fit: cover; border: var(--cw-rule); display: block; }
.cw-index__thumb:empty { display: none; }
.cw-pagination { padding: 0.75rem var(--cw-sheet-pad); font-family: var(--cw-mono); font-size: var(--wp--preset--font-size--small); gap: 0.5rem 1rem; }
.cw-pagination a,
.cw-pagination .current { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 0.5rem; }
.cw-pagination .current { border: var(--cw-rule); }

/* Study (single) ------------------------------------------------------------------- */

.cw-study-head {
	display: grid;
	grid-template-columns: minmax(0, 1.8fr) minmax(15rem, 1fr);
	margin-top: clamp(1.5rem, 4vw, 3rem);
	border: var(--cw-frame);
	background: var(--cw-paper);
}
body .cw-study-head > * { margin-block: 0; }
.cw-study-head__main { padding: var(--cw-sheet-pad); }
body .cw-study-head__main > * { margin-block: 0; }
.cw-study-head__title { font-size: var(--wp--preset--font-size--xx-large); line-height: 1.02; letter-spacing: -0.03em; margin: 0.9rem 0 1rem !important; }
.cw-study-head__facts { border-left: var(--cw-rule); display: grid; align-content: start; }
body .cw-study-head__facts > * { margin-block: 0; }
.cw-study-head__facts > .cw-cell { border-bottom: var(--cw-rule); padding: 0.8rem 1rem; }
.cw-study-head__facts > .cw-cell:last-child { border-bottom: 0; }
.cw-study-head__facts .wp-block-post-date,
.cw-study-head__facts .wp-block-post-author-name { font-family: var(--cw-mono); font-size: var(--wp--preset--font-size--small); color: var(--cw-ink); }
.cw-cell--rev-date { display: var(--cw-rev-display); }
.cw-cell--rev-date:not(:has(.cw-rev)) { display: none; }
.cw-cell--rev-date .cw-rev::before { content: none; }

.cw-study-figure {
	--dim: 2.25rem;
	position: relative;
	margin: 0;
	padding: var(--dim) var(--dim) clamp(1.25rem, 3vw, 2.25rem) clamp(1.25rem, 3vw, 2.25rem);
	border: var(--cw-frame);
	border-top: 0;
	background-color: var(--cw-paper);
	background-image: var(--cw-grid-image);
	background-size: var(--cw-grid-pitch) var(--cw-grid-pitch);
}
.cw-study-figure::before,
.cw-study-figure::after {
	content: "";
	position: absolute;
	background: linear-gradient(var(--cw-cyan), var(--cw-cyan)) center / 100% 1px no-repeat;
}
.cw-study-figure::before { top: calc(var(--dim) / 2 - 0.4rem); left: clamp(1.25rem, 3vw, 2.25rem); right: var(--dim); height: 0.8rem; border-inline: 1.5px solid var(--cw-cyan); }
.cw-study-figure::after { right: calc(var(--dim) / 2 - 0.4rem); top: var(--dim); bottom: clamp(1.25rem, 3vw, 2.25rem); width: 0.8rem; border-block: 1.5px solid var(--cw-cyan); background-size: 1px 100%; }
.cw-study__photo { margin: 0; }
.cw-study__photo.wp-block-post-featured-image img {
	display: block;
	width: 100%;
	max-height: min(82vh, 860px);
	object-fit: contain;
}

.cw-prose { --wp--style--global--content-size: var(--cw-reading-width); margin-top: clamp(2rem, 5vw, 3.5rem); }
.cw-prose > h2 { margin-top: 2.75rem; padding-top: 0.75rem; border-top: var(--cw-frame); font-size: var(--wp--preset--font-size--large); }
.cw-prose > h2.cw-label-heading { border-top: var(--cw-frame); color: var(--cw-ink); }
.cw-prose > .wp-block-table { margin-block: 1.25rem; }
.cw-revision { border-left: 3px solid var(--cw-cyan); padding: 0.1rem 0 0.1rem 1.25rem; }
body .cw-revision > * { margin-block: 0; }
body .cw-revision > * + * { margin-top: 0.5rem; }
.cw-revision__head { font-family: var(--cw-mono); font-size: 1rem; font-weight: 700; letter-spacing: 0; line-height: 1.4; }

.cw-study-foot { margin-top: clamp(2.5rem, 6vw, 4rem); }
body .cw-study-foot > * + * { margin-top: 1rem; }
.cw-tags { font-family: var(--cw-mono); font-size: var(--wp--preset--font-size--caption); color: var(--cw-muted); }
.cw-sheet-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: var(--cw-frame); background: var(--cw-paper); }
body .cw-sheet-nav > * { margin: 0; }
.cw-sheet-nav > div { padding: 0.9rem var(--cw-sheet-pad); min-height: 44px; }
.cw-sheet-nav > div + div { border-left: var(--cw-rule); text-align: right; }
.cw-sheet-nav a { font-weight: 600; text-decoration: none; }
.cw-sheet-nav a:hover { text-decoration: underline; }
.cw-sheet-nav .post-navigation-link__label { display: block; font-family: var(--cw-mono); font-size: var(--wp--preset--font-size--caption); text-transform: uppercase; letter-spacing: 0.06em; color: var(--cw-muted); }

.cw-adjacent { margin-top: var(--cw-sheet-gap); }
body .cw-adjacent > .cw-label-heading { margin: 0 0 0.85rem; }
.cw-adjacent__items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border: var(--cw-frame); background: var(--cw-paper); }
.cw-adjacent__items > li { padding: var(--cw-sheet-pad); border-right: var(--cw-rule); margin: 0; }
.cw-adjacent__items > li:last-child { border-right: 0; }
body .cw-adjacent__items > li > * { margin-block: 0; }
body .cw-adjacent__items > li > * + * { margin-top: 0.6rem; }
.cw-adjacent__photo img { border: var(--cw-rule); }
.cw-adjacent__title { font-size: var(--wp--preset--font-size--large); }
.cw-adjacent__title a { text-decoration: none; }

.cw-comments { margin-top: var(--cw-sheet-gap); }
.cw-comment { border-top: var(--cw-hair); padding-block: 1rem; }
.cw-comment__meta { font-family: var(--cw-mono); font-size: var(--wp--preset--font-size--caption); gap: 0.25rem 1rem; }
.cw-comments :is(input, textarea) { border: var(--cw-rule); border-radius: 0; padding: 0.6rem; font: inherit; }

/* Page, About (practice sheet), Contact ------------------------------------------- */

.cw-page__photo { margin-top: 1.5rem; }
.cw-page__photo img { border: var(--cw-frame); }

.cw-practice {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(15rem, 1fr);
	margin-top: clamp(1.5rem, 4vw, 3rem);
	border: var(--cw-frame);
	background: var(--cw-paper);
}
body .cw-practice > * { margin-block: 0; }
.cw-practice__main { padding: var(--cw-sheet-pad); }
body .cw-practice__main > * { margin-block: 0; }
body .cw-practice__main > * + * { margin-top: 1rem; }
body .cw-practice__main > .cw-label-heading { margin-top: 2.25rem; }
.cw-practice__title { font-size: var(--wp--preset--font-size--xx-large); line-height: 1.02; letter-spacing: -0.03em; max-width: 16ch; margin-top: 0.9rem !important; }
.cw-practice__aside {
	padding: var(--cw-sheet-pad);
	border-left: var(--cw-rule);
	background-image: var(--cw-grid-image);
	background-size: var(--cw-grid-pitch) var(--cw-grid-pitch);
}
body .cw-practice__aside > * { margin-block: 0; }
body .cw-practice__aside > * + * { margin-top: 1.5rem; }
.cw-practice__aside .is-style-cw-facts { background: var(--cw-paper); padding: 0 0.75rem; }
.cw-portrait { max-width: 19rem; margin-inline: auto !important; }
.cw-portrait img { display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: 56% 62%; border: var(--cw-rule); }
.cw-portrait.is-style-cw-dimensioned { --dim-cap: 0px; }
.cw-portrait.is-style-cw-dimensioned > figcaption { position: static; height: auto; padding: 0.75rem 0 0; background: var(--cw-paper); }
.cw-portrait.is-style-cw-dimensioned::after { bottom: auto; height: calc(100% - var(--dim) - 5.5rem); }

.cw-credits { margin-top: var(--cw-sheet-gap); padding: var(--cw-sheet-pad); border: var(--cw-frame); background: var(--cw-paper); }
body .cw-credits > * { margin-block: 0; }
body .cw-credits > * + * { margin-top: 0.85rem; }
body .cw-credits > .cw-label-heading { margin: 0; }
.cw-credits p { max-width: 70ch; }
.cw-credit-list { font-family: var(--cw-mono); font-size: var(--wp--preset--font-size--small); padding-left: 1.1rem; }
.cw-credit-list li { margin-bottom: 0.3rem; }

.cw-contact {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
	margin-top: clamp(1.5rem, 4vw, 3rem);
	border: var(--cw-frame);
	background: var(--cw-paper);
}
body .cw-contact > * { margin-block: 0; }
.cw-contact__intro { padding: var(--cw-sheet-pad); border-right: var(--cw-rule); background-image: var(--cw-grid-image); background-size: var(--cw-grid-pitch) var(--cw-grid-pitch); }
body .cw-contact__intro > * { margin-block: 0; }
body .cw-contact__intro > * + * { margin-top: 1rem; }
.cw-contact__title { font-size: var(--wp--preset--font-size--xx-large); line-height: 1.02; letter-spacing: -0.03em; margin-top: 0.9rem !important; }
.cw-contact__intro .cw-standfirst { background: var(--cw-paper); }
.cw-rows { display: grid; }
body .cw-rows > * { margin-block: 0; }
.cw-row { display: grid; grid-template-columns: 9.5rem minmax(0, 1fr); gap: 0.5rem 1.5rem; padding: 1.1rem var(--cw-sheet-pad); border-bottom: var(--cw-rule); }
.cw-row:last-child { border-bottom: 0; }
body .cw-row > * { margin-block: 0; }
.cw-row__label { font-family: var(--cw-mono); font-size: var(--wp--preset--font-size--caption); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--cw-muted); padding-top: 0.2rem; }
body .cw-row__value > * { margin-block: 0; }
body .cw-row__value > * + * { margin-top: 0.75rem; }
.cw-mail .wp-block-button__link { min-height: 48px; display: inline-flex; align-items: center; padding-inline: 1.25rem; }

/* 404 */
.cw-missing {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 1.5rem clamp(1.5rem, 5vw, 4rem);
	align-items: start;
	margin-top: clamp(1.5rem, 4vw, 3rem);
	padding: var(--cw-sheet-pad);
	border: var(--cw-frame);
	background: var(--cw-paper);
}
body .cw-missing > * { margin-block: 0; }
.cw-missing__code { font-family: var(--cw-mono); font-weight: 700; font-size: clamp(3.5rem, 10vw, 7.5rem); line-height: 0.9; color: var(--cw-cyan); }
body .cw-missing__text > * + * { margin-top: 1rem; }
.cw-missing__links { font-family: var(--cw-mono); }

.cw-full__title { margin-top: clamp(1.5rem, 4vw, 3rem); }

/* Footer: a bordered strip like a sheet margin --------------------------------------- */

.cw-footer { padding-bottom: 2rem; }
.cw-footer__strip {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
	border: var(--cw-frame);
	background: var(--cw-paper);
}
body .cw-footer__strip > * { margin-block: 0; }
.cw-footer__strip > .cw-cell { padding: 1.1rem 1.25rem; border-right: var(--cw-rule); gap: 0.5rem; }
.cw-footer__strip > .cw-cell:last-child { border-right: 0; }
.cw-footer__title { font-size: 1.375rem; font-weight: 700; letter-spacing: -0.02em; }
.cw-footer__title a { text-decoration: none; }
.cw-footer__note { max-width: 42ch; color: var(--cw-muted); }
.cw-footer__list { list-style: none; margin: 0; padding: 0; font-family: var(--cw-mono); font-size: var(--wp--preset--font-size--small); }
.cw-footer__list li { margin: 0; }
.cw-footer__list a { display: inline-flex; align-items: center; min-height: 36px; }
.cw-footer__base { margin-top: 0.85rem !important; gap: 0.5rem 2rem; font-family: var(--cw-mono); font-size: var(--wp--preset--font-size--caption); color: var(--cw-muted); }
body .cw-footer__base > * { margin: 0; }
.cw-footer__demo { max-width: 72ch; }
.cw-footer__credit { color: var(--cw-ink); }

/* Tablet and phone: the sheet becomes photo, callouts, facts, in that order. ------- */

@media (max-width: 960px) {
	.cw-intro__main { grid-template-columns: minmax(0, 1fr); }
	.cw-intro__cells { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cw-intro__cells > .cw-cell:nth-child(2) { border-right: 0; }
	.cw-intro__cells > .cw-cell:nth-child(-n+2) { border-bottom: var(--cw-rule); }
	.cw-sheet__body,
	.cw-sheet--mirror .cw-sheet__body { grid-template-columns: minmax(0, 1fr); }
	.cw-sheet__photo,
	.cw-sheet--mirror .cw-sheet__photo { order: 0; border: 0; border-bottom: var(--cw-rule); }
	.cw-sheet .is-style-cw-callouts > li::after { display: none; }
	.cw-study-head,
	.cw-practice,
	.cw-contact { grid-template-columns: minmax(0, 1fr); }
	.cw-study-head__facts { border-left: 0; border-top: var(--cw-rule); grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cw-study-head__facts > .cw-cell { border-right: var(--cw-rule); }
	.cw-study-head__facts > .cw-cell:nth-child(even) { border-right: 0; }
	.cw-practice__aside { border-left: 0; border-top: var(--cw-rule); }
	.cw-contact__intro { border-right: 0; border-bottom: var(--cw-rule); }
	.cw-index--index .cw-index__rows > li {
		grid-template-columns: 64px minmax(0, 1fr) auto;
		grid-template-areas: "thumb code rev" "thumb title title" "thumb chips chips";
	}
	.cw-index__thumb img { width: 64px; height: 64px; }
	.cw-adjacent__items { grid-template-columns: minmax(0, 1fr); }
	.cw-adjacent__items > li { border-right: 0; border-bottom: var(--cw-rule); }
	.cw-adjacent__items > li:last-child { border-bottom: 0; }
	.cw-footer__strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cw-footer__id { grid-column: 1 / -1; border-right: 0 !important; border-bottom: var(--cw-rule); }
}

@media (max-width: 781px) {
	.cw-header__row { grid-template-columns: minmax(0, 1fr); }
	.cw-header__mark:not(:has(img, .wp-block-site-tagline:not(:empty))) { display: none; }
	.cw-titleblock { width: 100%; grid-template-columns: minmax(0, 1fr) auto auto; }
	.cw-titleblock > .cw-cell--nav { padding-block: 0; }
	.cw-sheet { outline-offset: 4px; }
	.cw-sheet__head { grid-template-columns: auto minmax(0, 1fr); }
	.cw-sheet__head > .cw-chip { grid-column: 1 / -1; justify-self: start; }
	.cw-sheet__photo { --dim: calc(var(--cw-sheet-pad) + 0.8rem); }
	.is-style-cw-dimensioned { --dim-cap: 0px !important; }
	.is-style-cw-dimensioned::after { display: none; }
	.is-style-cw-dimensioned > figcaption { position: static; height: auto; padding-top: 0.6rem; }
	.cw-index--compact .cw-index__rows { grid-template-columns: minmax(0, 1fr); }
	.cw-index--compact .cw-index__rows > li { grid-template-columns: minmax(0, 1fr) auto; }
	.cw-index--compact .cw-index__rows > li:nth-child(odd) { border-right: 0; }
	.cw-index--compact .cw-index__title { grid-column: 1 / -1; grid-row: 2; }
	.cw-strip { grid-template-columns: minmax(0, 1fr); }
	body .cw-strip > *,
	body .cw-strip > .cw-strip__code { grid-column: 1; grid-row: auto; }
	.cw-row { grid-template-columns: minmax(0, 1fr); }
	.cw-missing { grid-template-columns: minmax(0, 1fr); }
	.cw-sheet-nav { grid-template-columns: minmax(0, 1fr); }
	.cw-sheet-nav > div + div { border-left: 0; border-top: var(--cw-rule); text-align: left; }
}

@media (max-width: 480px) {
	.cw-titleblock { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.cw-titleblock > .cw-cell--name { grid-column: 1 / -1; border-right: 0; }
	.cw-study-head__facts { grid-template-columns: minmax(0, 1fr); }
	.cw-study-head__facts > .cw-cell { border-right: 0 !important; }
	.cw-footer__strip { grid-template-columns: minmax(0, 1fr); }
	.cw-footer__strip > .cw-cell { border-right: 0; border-bottom: var(--cw-rule); }
	.cw-footer__strip > .cw-cell:last-child { border-bottom: 0; }
	.is-style-cw-facts th { width: 42%; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

@media print {
	body { background: none; }
	.cw-header .cw-cell--nav, .cw-sheet-nav, .cw-adjacent, .cw-comments { display: none; }
}

/* Content robustness: long unbroken words wrap inside titles, previous/next links and menu labels instead of widening the page; classic [caption] figures keep their images inside the column. */
:where(.wp-block-post-title,.wp-block-post-title a,.wp-block-query-title,.wp-block-post-navigation-link,.wp-block-post-navigation-link a,.wp-block-navigation-item__label,.wp-block-navigation-item__content){overflow-wrap:anywhere;min-width:0}
:where(.wp-block-post-content,.wp-block-post-excerpt,.wp-block-comment-content){overflow-wrap:break-word}
:where(.wp-caption){max-width:100%}
.wp-caption.wp-caption{max-width:min(100%,var(--wp--style--global--content-size,100%))}
:where(.wp-caption img){max-width:100%;height:auto}

/* Classic <pre> blocks (no block class) in post content and comments scroll inside the column instead of widening the page. */
:where(.wp-block-post-content pre,.wp-block-comment-content pre){overflow-x:auto;max-width:100%}
/* Page links on posts split with <!--nextpage-->: one wrapping row after the text, in the theme's own link style. */
:where(.post-nav-links){display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .9rem;margin-block-start:2rem}
