/* TricksPanda: tester's notebook. Tokens first, then frame (header, masthead, lists, footer), then the
   reading column (entry, blocks, code, tables), then comments and forms. */

@font-face {
	font-family: "Atkinson Next";
	src: url(fonts/atkinson-hyperlegible-next-latin-wght-normal.woff2) format("woff2");
	font-weight: 200 800; font-style: normal; font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Atkinson Next";
	src: url(fonts/atkinson-hyperlegible-next-latin-ext-wght-normal.woff2) format("woff2");
	font-weight: 200 800; font-style: normal; font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Atkinson Next";
	src: url(fonts/atkinson-hyperlegible-next-latin-wght-italic.woff2) format("woff2");
	font-weight: 200 800; font-style: italic; font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Atkinson Next";
	src: url(fonts/atkinson-hyperlegible-next-latin-ext-wght-italic.woff2) format("woff2");
	font-weight: 200 800; font-style: italic; font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Archivo";
	src: url(fonts/archivo-latin-wght-normal.woff2) format("woff2");
	font-weight: 100 900; font-style: normal; font-display: swap;
}
@font-face {
	font-family: "JetBrains Mono";
	src: url(fonts/jetbrains-mono-latin-wght-normal.woff2) format("woff2");
	font-weight: 100 800; font-style: normal; font-display: swap;
}

:root {
	--ink: #15171c;
	--ink-2: #4b5261;
	--ink-3: #626a78;
	--accent: #c2410c;
	--accent-ink: #9a3412;
	--paper: #ffffff;
	--paper-2: #f5f6f8;
	--rule: #d5d9e0;
	--rule-ui: #8a92a0;
	--grid: #eceff3;
	--select: #fbd9c6;

	--font-read: "Atkinson Next", "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;
	--font-head: "Archivo", "Helvetica Neue", Arial, sans-serif;
	--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;

	--page: 72rem;
	--list: 52rem;
	--gutter: clamp(1rem, 4vw, 2rem);
	--measure: 34em;
	--wide-extra: 6em;
	--space-section: clamp(2.5rem, 6vw, 4rem);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scrollbar-color: var(--rule-ui) var(--paper-2); }
body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--font-read);
	font-size: 1.0625rem;
	line-height: 1.6;
	font-kerning: normal;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
@media (min-width: 720px) { body { font-size: 1.125rem; } }
img, svg, video, iframe { max-width: 100%; }
img { height: auto; }
::selection { background: var(--select); color: var(--ink); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 2px; }
a { color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--accent-ink); text-decoration-thickness: 2px; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-head); color: var(--ink); text-wrap: balance; }
p, li, dd, figcaption { text-wrap: pretty; }
.stamp, time { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
code, pre, kbd, samp, .stamp, time, .record dt, .row-status { font-variant-ligatures: none; font-feature-settings: "calt" 0, "liga" 0; }

.screen-reader-text {
	border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; width: 1px; word-wrap: normal !important;
}
.skip-link {
	position: absolute; left: 0.75rem; top: -4rem; z-index: 100;
	background: var(--ink); color: var(--paper); padding: 0.6rem 1rem; font-weight: 600; text-decoration: none;
}
.skip-link:focus { top: 0.75rem; color: var(--paper); }
.site-main:focus { outline: none; }

/* ---------- Header ---------- */
.site-header { position: relative; border-bottom: 1px solid var(--ink); background: var(--paper); }
.header-bar {
	max-width: var(--page); margin: 0 auto; padding: 0 var(--gutter);
	display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "brand nav search";
	align-items: center; column-gap: 2rem; min-height: 4rem;
}
.brand { grid-area: brand; display: inline-flex; align-items: center; gap: 0.6rem; color: var(--ink); text-decoration: none; min-height: 44px; }
.brand:hover { color: var(--ink); }
.brand-mark { width: 2rem; height: 2rem; display: block; flex: none; }
.brand-name { font-family: var(--font-head); font-weight: 700; font-size: 1.25rem; letter-spacing: -0.01em; line-height: 1; }
.site-nav { grid-area: nav; justify-self: end; }
.nav-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0 0.25rem; }
.nav-list a {
	display: flex; align-items: center; min-height: 44px; padding: 0 0.7rem;
	font-family: var(--font-head); font-weight: 600; font-size: 0.9375rem; color: var(--ink); text-decoration: none; white-space: nowrap;
}
.nav-list a:hover { color: var(--accent-ink); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.35em; }
.nav-list .current-menu-item > a,
.nav-list .current-menu-parent > a,
.nav-list .current-post-parent > a,
.nav-list .current-menu-ancestor > a { text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 2px; text-underline-offset: 0.35em; }
.header-search { grid-area: search; }

.search-form { display: flex; align-items: stretch; }
.search-input {
	font: inherit; font-size: 0.9375rem; color: var(--ink); background: var(--paper);
	border: 1px solid var(--rule-ui); border-right: 0; border-radius: 3px 0 0 3px;
	padding: 0 0.75rem; min-height: 44px; width: 13rem; min-width: 0;
}
.search-input::placeholder { color: var(--ink-3); opacity: 1; }
.search-input:focus-visible { outline-offset: -1px; border-radius: 3px 0 0 3px; }
.search-submit {
	display: inline-flex; align-items: center; justify-content: center; width: 44px; min-height: 44px;
	border: 1px solid var(--ink); background: var(--ink); color: var(--paper); border-radius: 0 3px 3px 0; cursor: pointer;
}
.search-submit:hover { background: var(--accent-ink); border-color: var(--accent-ink); }
.icon { display: block; }

.search-toggle { grid-area: toggle; display: none; justify-self: end; }
.search-toggle > summary {
	list-style: none; display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; margin-right: -0.5rem; color: var(--ink); cursor: pointer; border-radius: 3px;
}
.search-toggle > summary::-webkit-details-marker { display: none; }
.search-toggle > summary .icon + .icon { display: none; }
.search-toggle[open] > summary .icon { display: none; }
.search-toggle[open] > summary .icon + .icon { display: block; }
.search-drawer {
	position: absolute; left: 0; right: 0; top: 100%; z-index: 20;
	background: var(--paper); border-bottom: 1px solid var(--ink); padding: 0.75rem var(--gutter);
}
.search-drawer .search-input { width: 100%; flex: 1; }

@media (max-width: 899px) {
	.header-bar { grid-template-columns: 1fr auto; grid-template-areas: "brand toggle" "nav nav"; min-height: 0; padding-top: 0.5rem; }
	.header-search { display: none; }
	.search-toggle { display: block; }
	.site-nav {
		justify-self: stretch; margin: 0.35rem calc(-1 * var(--gutter)) 0; padding: 0 calc(var(--gutter) - 0.7rem);
		border-top: 1px solid var(--rule); overflow-x: auto; scrollbar-width: none;
	}
	.site-nav::-webkit-scrollbar { display: none; }
	@media (max-width: 379px) { .site-nav { -webkit-mask-image: linear-gradient(to right, #000 82%, transparent); mask-image: linear-gradient(to right, #000 82%, transparent); } }
	.nav-list { gap: 0; flex-wrap: nowrap; justify-content: flex-start; }
}

/* ---------- Masthead (home) ---------- */
.masthead {
	border-bottom: 1px solid var(--ink);
	background-color: var(--paper);
	background-image:
		linear-gradient(var(--grid) 1px, transparent 1px),
		linear-gradient(90deg, var(--grid) 1px, transparent 1px);
	background-size: 1.5rem 1.5rem;
	background-position: -1px -1px;
}
.masthead-inner { max-width: var(--list); margin: 0 auto; padding: clamp(2rem, 5vw, 3.25rem) var(--gutter) clamp(1.75rem, 4vw, 2.5rem); }
.masthead-title {
	margin: 0; max-width: 19ch;
	font-size: clamp(2rem, 1.4rem + 2.2vw, 2.75rem); font-weight: 750; line-height: 1.08; letter-spacing: -0.025em;
}
.masthead-lede { margin: 1.25rem 0 0; max-width: 34em; color: var(--ink-2); font-size: 1.0625rem; line-height: 1.6; }
@media (min-width: 720px) { .masthead-lede { font-size: 1.125rem; } }
.masthead-lede a { white-space: nowrap; color: var(--accent-ink); }

/* ---------- Page body, lists ---------- */
.page-body { max-width: var(--list); margin: 0 auto; padding: 0 var(--gutter) var(--space-section); }
.page-head { padding: clamp(2rem, 6vw, 3.5rem) 0 1.5rem; }
.page-title { margin: 0; font-size: clamp(1.875rem, 1.3rem + 2.4vw, 2.625rem); font-weight: 750; line-height: 1.1; letter-spacing: -0.02em; }
.page-lede { margin: 0.9rem 0 0; color: var(--ink-2); max-width: 34em; }
.page-lede p { margin: 0; }
.page-count { margin: 1rem 0 0; font-size: 0.8125rem; color: var(--ink-2); }
.subtopics { margin: 0.75rem 0 0; color: var(--ink-2); }
.page-search { margin-top: 1.5rem; max-width: 30rem; }
.page-search .search-input { flex: 1; width: auto; }
.author-bio { margin-top: 1rem; max-width: 34em; color: var(--ink-2); }
.author-bio p { margin: 0 0 0.75em; }

.section-title { margin: var(--space-section) 0 0; font-size: 1.375rem; font-weight: 700; line-height: 1.2; letter-spacing: -0.01em; padding-bottom: 0.6rem; }
.section-lede { margin: -0.25rem 0 0.9rem; color: var(--ink-2); font-size: 1rem; }

.rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
.row {
	position: relative;
	display: grid; grid-template-columns: 6.75rem minmax(0, 1fr) minmax(0, 11.5rem); grid-template-areas: "date main status";
	column-gap: 1.5rem; padding: 1.05rem 0 1.1rem; border-bottom: 1px solid var(--rule);
}
.row-date { grid-area: date; font-size: 0.8125rem; color: var(--ink-2); padding-top: 0.28rem; white-space: nowrap; }
.row-main { grid-area: main; min-width: 0; }
.row-title { margin: 0; font-size: 1.1875rem; font-weight: 650; line-height: 1.3; letter-spacing: -0.005em; }
.row-title a { color: var(--ink); text-decoration: none; }
.row-title a::after { content: ""; position: absolute; inset: 0; }
.row:hover .row-title a { color: var(--accent-ink); text-decoration: underline; text-decoration-thickness: 2px; }
.row-title a:focus-visible { outline: none; }
.row:focus-within { outline: 2px solid var(--accent); outline-offset: 3px; }
.row-excerpt { margin: 0.35rem 0 0; color: var(--ink-2); font-size: 1rem; line-height: 1.5; max-width: 38em; }
.row-status { grid-area: status; margin: 0; padding-top: 0.28rem; font-family: var(--font-mono); font-size: 0.8125rem; line-height: 1.45; color: var(--ink-2); text-align: right; }
.row--archive .row-date, .row--archive .row-status { color: var(--ink-3); }
@media (max-width: 719px) {
	.row { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "date status" "main main"; row-gap: 0.3rem; column-gap: 1rem; }
	.row-date, .row-status { padding-top: 0; }
	.row-status { text-align: right; }
	.row-title { font-size: 1.125rem; }
}

.topic-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); column-gap: 2rem; }
.topic { padding: 0.9rem 0 1rem; border-bottom: 1px solid var(--rule); }
.topic-name { font-family: var(--font-head); font-weight: 650; font-size: 1.1875rem; color: var(--ink); text-decoration: none; }
.topic-name:hover { color: var(--accent-ink); text-decoration: underline; text-decoration-thickness: 2px; }
.topic-count { display: block; margin-top: 0.15rem; font-size: 0.8125rem; color: var(--ink-2); }
.topic-kids { list-style: none; margin: 0.5rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.15rem 1rem; font-size: 0.9375rem; }

.pagination { margin-top: 2rem; }
.pagination ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.35rem; }
.pagination a, .pagination span {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 0.75rem;
	font-family: var(--font-mono); font-size: 0.875rem; color: var(--ink); text-decoration: none; border: 1px solid var(--rule); border-radius: 3px;
}
.pagination a:hover { border-color: var(--ink); color: var(--ink); }
.pagination .current { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.pagination .dots { border-color: transparent; }

.empty { margin: 1rem 0 0; color: var(--ink-2); }
.empty p { margin: 0; }

/* ---------- Single post / page ---------- */
.entry { font-size: 1.0625rem; }
@media (min-width: 720px) { .entry { font-size: 1.125rem; } }
.entry-head { width: min(var(--measure), 100% - 2 * var(--gutter)); margin: 0 auto; padding-top: clamp(2rem, 6vw, 3.5rem); }
.entry-title { margin: 0; font-size: clamp(1.875rem, 1.25rem + 2.5vw, 2.625rem); font-weight: 750; line-height: 1.1; letter-spacing: -0.02em; }
.byline { margin: 0.9rem 0 0; font-size: 0.9375rem; color: var(--ink-2); }
.byline a { color: var(--ink); text-decoration: none; }
.byline a:hover { color: var(--accent-ink); text-decoration: underline; }
.byline .sep { margin: 0 0.3rem; color: var(--ink-3); }
.published { margin: 1.25rem 0 0; font-size: 0.875rem; color: var(--ink-2); }

.record { margin: 1.5rem 0 0; border-top: 2px solid var(--ink); border-bottom: 1px solid var(--ink); }
.record-list { margin: 0; }
.record-row { display: grid; grid-template-columns: clamp(6rem, 22vw, 7.5rem) minmax(0, 1fr); column-gap: 1rem; padding: 0.5rem 0 0.55rem; border-top: 1px solid var(--rule); }
.record-row:first-child { border-top: 0; }
.record dt { font-family: var(--font-mono); font-size: 0.8125rem; line-height: 1.75; color: var(--ink-2); }
.record dd { margin: 0; font-size: 0.9375rem; line-height: 1.55; }
.record dd time { font-size: 0.875rem; }
.record dd code { font-family: var(--font-mono); font-size: 0.85em; }
.record--archive { border-top-color: var(--ink-3); }
.record--archive .record-row:first-child dd { font-weight: 650; }
@media (max-width: 359px) {
	.record-row { grid-template-columns: 1fr; }
	.record dt { line-height: 1.4; }
}

.entry-content {
	display: grid; margin-top: 2rem;
	grid-template-columns:
		[full-start] minmax(var(--gutter), 1fr)
		[wide-start] minmax(0, var(--wide-extra))
		[content-start] min(var(--measure), 100% - 2 * var(--gutter))
		[content-end] minmax(0, var(--wide-extra))
		[wide-end] minmax(var(--gutter), 1fr) [full-end];
}
.entry-content > * { grid-column: content; margin-top: 0; margin-bottom: 0; min-width: 0; }
.entry-content > * + * { margin-top: 1.1em; }
.entry-content > .wp-block-code,
.entry-content > pre,
.entry-content > .wp-block-table,
.entry-content > .wp-block-image,
.entry-content > figure,
.entry-content > .alignwide,
.entry-content > .wp-block-syntaxhighlighter-code { grid-column: wide; }
.entry-content > .alignfull { grid-column: full; }
.entry-content > p, .entry-content li { line-height: 1.65; }

.entry-content h2 { font-size: 1.625rem; font-weight: 700; line-height: 1.2; letter-spacing: -0.015em; }
.entry-content h3 { font-size: 1.3125rem; font-weight: 650; line-height: 1.25; }
.entry-content h4 { font-size: 1.0625rem; font-weight: 700; line-height: 1.3; }
.entry-content > h2 { margin-top: 2.4em; }
.entry-content > h3 { margin-top: 2em; }
.entry-content > h4 { margin-top: 1.8em; }
.entry-content > h2 + *, .entry-content > h3 + *, .entry-content > h4 + * { margin-top: 0.6em; }

.entry-content ul, .entry-content ol { padding-left: 1.35em; }
.entry-content li + li { margin-top: 0.4em; }
.entry-content li > ul, .entry-content li > ol { margin-top: 0.4em; }
.entry-content li::marker { color: var(--ink-3); }
.entry-content ol > li::marker { font-family: var(--font-mono); font-size: 0.875em; }
.entry-content strong { font-weight: 700; }
.entry-content blockquote { margin-left: 0; margin-right: 0; padding-left: 1.25rem; border-left: 1px solid var(--ink); color: var(--ink-2); }
.entry-content blockquote p { margin: 0; }
.entry-content blockquote p + p { margin-top: 0.75em; }
.entry-content hr, .entry-content .wp-block-separator { border: 0; border-top: 1px solid var(--rule); margin-top: 2.5em; margin-bottom: 0.5em; width: 100%; }
.entry-content .has-small-font-size { font-size: 0.875rem; }

/* Inline code */
.entry-content :not(pre) > code, .comment-content :not(pre) > code {
	font-family: var(--font-mono); font-size: 0.84em; color: var(--ink);
	background: #eef0f3; border-radius: 3px; padding: 0.08em 0.32em; overflow-wrap: break-word;
}

/* Code blocks (core + Syntax-highlighting Code Block) */
.entry-content pre, .comment-content pre {
	margin: 1.5em 0 0; padding: 1rem 1.25rem; overflow-x: auto;
	background: var(--paper-2); color: var(--ink); border: 1px solid var(--rule); border-radius: 3px;
	font-family: var(--font-mono); font-size: 0.8125rem; line-height: 1.65; tab-size: 2; -moz-tab-size: 2;
	white-space: pre; scrollbar-width: thin;
}
@media (min-width: 720px) { .entry-content pre { font-size: 0.875rem; } }
.entry-content > pre + *, .entry-content > .wp-block-code + * { margin-top: 1.5em; }
.entry-content pre code { font: inherit; background: none; padding: 0; color: inherit; display: block; }
.entry-content pre .hljs { background: none !important; color: var(--ink) !important; padding: 0 !important; }
.hljs-comment, .hljs-quote, .hljs-meta, .hljs-doctag { color: #5c6470 !important; font-style: italic; }
.hljs-keyword, .hljs-selector-tag, .hljs-literal, .hljs-section, .hljs-name { color: #8a2d84 !important; }
.hljs-string, .hljs-regexp, .hljs-addition, .hljs-template-tag { color: #1e6b36 !important; }
.hljs-number, .hljs-attr, .hljs-attribute, .hljs-symbol, .hljs-bullet, .hljs-link { color: #0b57a4 !important; }
.hljs-title, .hljs-title.function_, .hljs-function .hljs-title, .hljs-selector-id, .hljs-selector-class { color: #8f3a0a !important; }
.hljs-variable, .hljs-template-variable, .hljs-deletion, .hljs-params { color: #a1262a !important; }
.hljs-built_in, .hljs-type, .hljs-class .hljs-title, .hljs-title.class_ { color: #6a3bb0 !important; }
.hljs-emphasis { font-style: italic; }
.hljs-strong { font-weight: 700; }
.entry-content .wp-block-code { position: relative; }
.entry-content .wp-block-code .loc, .entry-content .wp-block-code mark { background: #fff1e6; }

/* Images and figures */
.entry-content figure { margin-left: 0; margin-right: 0; }
.entry-content .wp-block-image { text-align: center; }
.entry-content .wp-block-image img, .entry-content figure > img { border: 1px solid var(--rule); border-radius: 2px; }
.entry-content .wp-block-image figure { margin: 0; }
.entry-content figcaption, .entry-content .wp-element-caption {
	margin: 0.6rem auto 0; max-width: var(--measure); font-size: 0.875rem; line-height: 1.5; color: var(--ink-2); text-align: left;
}

/* Tables */
.entry-content .wp-block-table { overflow-x: auto; margin-top: 1.5em; }
.entry-content > .wp-block-table + * { margin-top: 1.5em; }
.entry-content table { width: 100%; border-collapse: collapse; font-size: 0.9375rem; line-height: 1.45; font-variant-numeric: tabular-nums; }
.entry-content thead { border-bottom: 1px solid var(--ink) !important; }
.entry-content th { font-family: var(--font-head); font-weight: 650; font-size: 0.875rem; text-align: left; padding: 0.55rem 0.75rem; border: 0; vertical-align: bottom; }
.entry-content td { padding: 0.7rem 0.75rem; border: 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
.entry-content th:first-child, .entry-content td:first-child { padding-left: 0; }
.entry-content th:last-child, .entry-content td:last-child { padding-right: 0; }
.entry-content .wp-block-table.is-style-stripes { border-bottom: 0; }
.entry-content .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: transparent; }
.entry-content .wp-block-table table { border: 0; }
.entry-content .wp-block-table thead { border-top: 2px solid var(--ink); }
.entry-content .cell-action, .entry-content .cell-short { white-space: nowrap; }
.entry-content .cell-action a { font-weight: 650; text-decoration: none; }
.entry-content .cell-action a::after { content: "\2192" / ""; margin-left: 0.3em; }
.entry-content .cell-action a:hover { text-decoration: underline; }

@media (max-width: 639px) {
	.entry-content .tp-stack { overflow: visible; }
	.entry-content .tp-stack table, .entry-content .tp-stack tbody, .entry-content .tp-stack tr, .entry-content .tp-stack td { display: block; width: 100%; }
	.entry-content .tp-stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
	.entry-content .tp-stack tbody { border-top: 2px solid var(--ink); }
	.entry-content .tp-stack tr { padding: 1rem 0 1.1rem; border-bottom: 1px solid var(--ink-3); }
	.entry-content .tp-stack td, .entry-content .tp-stack td.cell-short { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); column-gap: 0.75rem; padding: 0.2rem 0; border: 0; white-space: normal; }
	.entry-content .tp-stack td::before { content: attr(data-label); font-family: var(--font-mono); font-size: 0.75rem; line-height: 1.9; color: var(--ink-2); }
	.entry-content .tp-stack td.cell-first { display: block; padding: 0 0 0.35rem; font-size: 1.0625rem; }
	.entry-content .tp-stack td.cell-first::before { content: none; }
	.entry-content .tp-stack td.cell-action { display: block; padding-top: 0.75rem; white-space: normal; }
	.entry-content .tp-stack td.cell-action::before { content: none; }
	.entry-content .tp-stack td.cell-action a {
		display: flex; align-items: center; justify-content: center; min-height: 48px; width: 100%;
		background: var(--ink); color: var(--paper); border-radius: 3px; font-family: var(--font-head); font-size: 1rem;
	}
	.entry-content .tp-stack td.cell-action a:hover { background: var(--accent-ink); color: var(--paper); text-decoration: none; }
}

/* SEOPress FAQ block (rendered as headings + answers by inc/content-filters.php) */
.entry-content .wpseopress-faqs { margin-top: 1.25em; border-top: 1px solid var(--ink); }
.entry-content .wpseopress-faq { padding: 1rem 0 1.1rem; border-bottom: 1px solid var(--rule); }
.entry-content .wpseopress-faq-question { margin: 0; font-size: 1.125rem; font-weight: 650; line-height: 1.3; }
.entry-content .wpseopress-faq-answer p { margin: 0.4rem 0 0; }

/* SimpleTOC */
.entry-content .simpletoc-title, .entry-content h2.simpletoc-title { font-size: 1rem; font-family: var(--font-mono); font-weight: 500; color: var(--ink-2); margin-top: 2em; }
.entry-content .simpletoc-list, .entry-content .simpletoc { font-size: 0.9375rem; }

/* Buttons */
.wp-block-button__link, .wp-element-button, .button, input[type="submit"], button[type="submit"]:not(.search-submit) {
	display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 1.25rem;
	background: var(--ink); color: var(--paper); border: 1px solid var(--ink); border-radius: 3px;
	font-family: var(--font-head); font-weight: 650; font-size: 1rem; text-decoration: none; cursor: pointer;
}
.wp-block-button__link:hover, .wp-element-button:hover, .button:hover, input[type="submit"]:hover { background: var(--accent-ink); border-color: var(--accent-ink); color: var(--paper); }

/* Share row (Scriptless Social Sharing), quiet */
.entry-content > .scriptlesssocialsharing { margin-top: 3em; padding-top: 1rem; border-top: 1px solid var(--rule); display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 1rem; }
.scriptlesssocialsharing__heading { margin: 0 0.5rem 0 0 !important; font-family: var(--font-mono) !important; font-size: 0.8125rem !important; font-weight: 400 !important; color: var(--ink-2); }
.scriptlesssocialsharing__buttons { display: flex; flex-wrap: wrap; gap: 0 1rem; }
.scriptlesssocialsharing .button {
	all: unset; display: inline-flex; align-items: center; min-height: 44px; padding: 0; cursor: pointer;
	font-size: 0.9375rem; color: var(--ink-2); text-decoration: underline; text-decoration-color: var(--rule-ui); text-underline-offset: 0.2em;
}
.scriptlesssocialsharing .button:hover { color: var(--accent-ink); text-decoration-color: currentColor; }
.scriptlesssocialsharing .button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.scriptlesssocialsharing svg { display: none; }

.page-links { width: min(var(--measure), 100% - 2 * var(--gutter)); margin: 2rem auto 0; font-family: var(--font-mono); }

/* "On this page" list on long posts */
.steps { width: min(var(--measure), 100% - 2 * var(--gutter)); margin: 1.25rem auto 0; border-bottom: 1px solid var(--rule); }
.steps ol { font-size: 0.9375rem; }
.steps > summary { display: flex; align-items: center; min-height: 44px; cursor: pointer; font-family: var(--font-mono); font-size: 0.8125rem; color: var(--ink-2); list-style: none; }
.steps > summary::-webkit-details-marker { display: none; }
.steps > summary::before { content: ""; flex: none; width: 0.45rem; height: 0.45rem; margin: 0 0.8rem 0 0.15rem; border-right: 1.75px solid currentColor; border-bottom: 1.75px solid currentColor; transform: rotate(-45deg); transition: transform 0.15s ease-out; }
.steps[open] > summary::before { transform: rotate(45deg); }
.steps ol { margin: 0 0 1rem; padding-left: 1.6rem; }
.steps li + li { margin-top: 0.3rem; }
.steps li::marker { font-family: var(--font-mono); font-size: 0.8125rem; color: var(--ink-3); }
.steps a { color: var(--ink); text-decoration-color: var(--rule-ui); }
.steps a:hover { color: var(--accent-ink); text-decoration-color: currentColor; }
.entry-content h2[id] { scroll-margin-top: 1.5rem; }

/* End of a post: more re-tested guides */
.more { width: min(var(--measure), 100% - 2 * var(--gutter)); margin: var(--space-section) auto 0; }
@media (min-width: 720px) { .more { width: min(38.25rem, 100% - 2 * var(--gutter)); } }
@media (min-width: 720px) { .more .row { grid-template-columns: 6.75rem minmax(0, 1fr); grid-template-areas: "date main"; } }
.more .section-title { margin-top: 0; }
.more-link { margin: 0.9rem 0 0; font-size: 0.9375rem; }

/* ---------- Comments ---------- */
.comments { width: min(var(--measure), 100% - 2 * var(--gutter)); margin: var(--space-section) auto 0; padding-top: 1rem; border-top: 2px solid var(--ink); font-size: 1rem; }
@media (min-width: 720px) { .comments { width: min(38.25rem, 100% - 2 * var(--gutter)); } }
.comments-title, .comment-reply-title { margin: 0 0 1rem; font-size: 1.375rem; font-weight: 700; }
.comment-reply-title small { font-family: var(--font-read); font-size: 0.875rem; font-weight: 400; margin-left: 0.5rem; }
.comment-list, .comment-list .children { list-style: none; margin: 0; padding: 0; }
.comment-list .children { margin-left: 1.25rem; padding-left: 1rem; border-left: 1px solid var(--rule); }
.comment-body { padding: 1rem 0; border-bottom: 1px solid var(--rule); }
.comment-author { font-family: var(--font-head); font-weight: 650; }
.comment-author .fn { font-weight: inherit; font-style: normal; }
.comment-author .says { display: none; }
.comment-author a { color: var(--ink); }
.comment-metadata { font-family: var(--font-mono); font-size: 0.75rem; }
.comment-metadata a { color: var(--ink-2); text-decoration: none; }
.comment-metadata a:hover { text-decoration: underline; }
.comment-content { margin-top: 0.5rem; }
.comment-content p { margin: 0 0 0.75em; }
.reply a { display: inline-flex; align-items: center; min-height: 44px; font-size: 0.875rem; }
.comment-respond { margin-top: 2rem; }
.comment-notes, .logged-in-as { color: var(--ink-2); font-size: 0.9375rem; margin: 0 0 1rem; }
.comment-form p { margin: 0 0 1rem; }
.comment-form label { display: block; font-weight: 650; font-size: 0.9375rem; margin-bottom: 0.3rem; }
.comment-form .required { color: var(--accent-ink); }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea {
	width: 100%; font: inherit; font-size: 1rem; color: var(--ink); background: var(--paper);
	border: 1px solid var(--rule-ui); border-radius: 3px; padding: 0.6rem 0.75rem; min-height: 44px;
}
.comment-form textarea { min-height: 9rem; resize: vertical; }
.comment-form-cookies-consent { display: flex; gap: 0.5rem; align-items: flex-start; }
.comment-form-cookies-consent label { font-weight: 400; }
.comment-form-cookies-consent input[type="checkbox"] { accent-color: var(--ink); width: 1.125rem; height: 1.125rem; margin-top: 0.2rem; flex: none; }
.comments-closed { color: var(--ink-2); }
.comments-older { margin-top: 1rem; border-top: 1px solid var(--rule); }
.comments-older > summary { display: flex; align-items: center; min-height: 48px; cursor: pointer; font-weight: 650; list-style: none; }
.comments-older > summary::-webkit-details-marker { display: none; }
.comments-older > summary::before { content: ""; flex: none; width: 0.45rem; height: 0.45rem; margin: 0 0.8rem 0 0.15rem; border-right: 1.75px solid currentColor; border-bottom: 1.75px solid currentColor; transform: rotate(-45deg); transition: transform 0.15s ease-out; }
.comments-older[open] > summary::before { transform: rotate(45deg); }
.comments-older-note { margin: 0 0 0.5rem; color: var(--ink-2); font-size: 0.9375rem; }

/* ---------- Footer ---------- */
.site-footer { margin-top: var(--space-section); border-top: 1px solid var(--ink); background: var(--paper-2); }
.footer-grid {
	max-width: var(--page); margin: 0 auto; padding: 2.5rem var(--gutter) 1.5rem;
	display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); gap: 2rem;
}
.footer-about p { margin: 0.75rem 0 0; max-width: 32em; color: var(--ink-2); font-size: 0.9375rem; }
.footer-disclosure { font-size: 0.875rem !important; }
.footer-title { margin: 0 0 0.5rem; font-family: var(--font-mono); font-size: 0.8125rem; font-weight: 500; color: var(--ink-2); }
.footer-col ul { list-style: none; margin: 0; padding: 0; }
.footer-col a { display: inline-flex; align-items: center; min-height: 36px; color: var(--ink); text-decoration: none; font-size: 0.9375rem; }
.footer-col a:hover { color: var(--accent-ink); text-decoration: underline; }
.footer-legal { max-width: var(--page); margin: 0 auto; padding: 1rem var(--gutter) 2rem; font-family: var(--font-mono); font-size: 0.75rem; color: var(--ink-2); border-top: 1px solid var(--rule); }
@media (max-width: 719px) {
	.footer-grid { grid-template-columns: 1fr 1fr; }
	.footer-about { grid-column: 1 / -1; }
	.footer-col a { min-height: 44px; }
}

/* ---------- Misc ---------- */
/* Neve prints its scroll-to-top button from wp_footer; this theme does not use it. */
#scroll-to-top { display: none !important; }
.alignleft { float: left; margin: 0.3em 1.5em 1em 0; }
.alignright { float: right; margin: 0.3em 0 1em 1.5em; }
.aligncenter { margin-left: auto; margin-right: auto; }
.sticky, .bypostauthor, .gallery-caption { }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
@media print {
	.site-header, .site-footer, .scriptlesssocialsharing, .comment-respond, .search-toggle { display: none !important; }
	.entry-content { display: block; }
	a { color: inherit; }
}
