/*
Theme Name: Kanso
Theme URI: https://rich.blog/kanso
Author: Rich Tabor
Author URI: https://rich.blog
Description: Kanso is a simple and intuitive blog block theme designed with a focus on writing. It offers a clean and distraction-free reading experience, perfect for bloggers who want their content to take center stage. Kanso also includes several patterns for newsletters, providing an easy way to engage with your audience. The theme features 20 color variations and three font variations (sans serif, monospace, and serif), offering a variety of customization options. Additionally, Kanso supports section styles and text styles across all elements, ensuring a cohesive and visually appealing design that you can flex however you'd like.
Requires at least: 6.5
Tested up to: 6.6
Requires PHP: 7.0
Version: 1.0.144
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kanso
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, accessibility-ready, blog, news
*/

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Dark styles */

.theme-dark body {
	--wp--preset--color--theme-1: var(--wp--preset--color--custom-theme-1-dark, var(--wp--custom--color--theme-1-dark));
	--wp--preset--color--theme-2: var(--wp--preset--color--custom-theme-2-dark, var(--wp--custom--color--theme-2-dark));
	--wp--preset--color--theme-3: var(--wp--preset--color--custom-theme-3-dark, var(--wp--custom--color--theme-3-dark));
	--wp--preset--color--theme-4: var(--wp--preset--color--custom-theme-4-dark, var(--wp--custom--color--theme-4-dark));
	--wp--preset--color--theme-5: var(--wp--preset--color--custom-theme-5-dark, var(--wp--custom--color--theme-5-dark));
	--wp--preset--color--theme-6: var(--wp--preset--color--custom-theme-6-dark, var(--wp--custom--color--theme-6-dark));
}

/* Element styles */

strong {
	font-weight: 550;
}

h1,
h2,
h3,
h4,
blockquote {
	text-wrap: balance;
}

.wp-block-post-content > ul + p,
.wp-block-post-content > p + h2,
.wp-block-post-content > p + h3,
.wp-block-post-content > ul + h2,
.wp-block-post-content > ul + h3,
.wp-block-post-content > ol + h2,
.wp-block-post-content > ol + h3 {
	/* Add spacing above headings, so anchor links are not against the viewport. */
	padding-top: var(--wp--preset--spacing--30);
}

.wp-block-post-content > figure + h2,
.wp-block-post-content > figure + h3 {
	/* Add less spacing when applied after figures, to emulate the same visual spacing. */
	padding-top: var(--wp--preset--spacing--20);
}

ul {
	padding-inline-start: var(--wp--preset--spacing--20);
	list-style-type: circle;
}

ol {
	padding-inline-start: var(--wp--preset--spacing--20);
}

/* Inline code format */

p code {
	border-color: var(--wp--preset--color--theme-4);
	border-radius: 5px;
	border-style: solid;
	border-width: 1px;
	display: inline-block;
	font-size: 85%;
	padding: 2px 6px 1px;
}

/* Truncate utility class. */

.truncate {
	white-space: nowrap;
	max-width: 75%;
}

.truncate a {
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 100%;
}

/* Links & Buttons */

a:where(:not(.wp-element-button)) {
	text-underline-offset: 2px;
}

.no-underline,
.no-underline a {
	/* For blocks that do not properly remove underlines. */
	text-decoration: none !important;
}

.wp-element-button {
	/* Simple transition for button. */
	transition: background-color var(--wp--custom--transition--duration) ease-out, color var(--wp--custom--transition--duration) ease-out;
}

/* Dark-mode excerpt contrast fix: keep summary text readable on a dark surface. */
.theme-dark .wp-block-post-excerpt,
body.theme-dark .wp-block-post-excerpt {
	background: #252525;
	border-inline-start-color: #666666;
}

.theme-dark .wp-block-post-excerpt__excerpt,
body.theme-dark .wp-block-post-excerpt__excerpt {
	background: transparent;
	color: #e5e5e5;
}

.theme-dark .wp-block-post-excerpt__more-link,
body.theme-dark .wp-block-post-excerpt__more-link {
	color: #f0f0f0;
	border-bottom-color: rgb(240 240 240 / 35%);
}

@media (prefers-reduced-motion: reduce) {
	.wp-element-button {
		/* Reduce motion per user preference. */
		transition: none;
	}
}

/* Fields */

label {
	color: var(--wp--preset--color--theme-6);
	display: inline-block;
	font-size: var(--wp--preset--font-size--small);
	margin-bottom: calc( var(--wp--preset--spacing--10) * 0.5);
}

textarea,
input:not([type=submit]):not([type=checkbox]) {
	background-color: color-mix(in srgb, var(--wp--preset--color--theme-1) 98%, var(--wp--preset--color--theme-6) 2%);
	border-color: var(--wp--preset--color--theme-4);
	border-radius: var(--wp--preset--spacing--10);
	border-style: solid;
	border-width: 1px;
	box-shadow: none;
	box-sizing: border-box;
	color: var(--wp--preset--color--theme-6);
	font-size: var(--wp--preset--font-size--small);
	font-family: inherit;
	line-height: 1.5;
	min-height: 40px;
	padding: 8px 12px;
	width: 100%;
}

input::placeholder {
	color: var(--wp--preset--color--theme-5);
}

input[type=submit] {
	width: 100%;
}

textarea:focus-visible,
input:not([type=submit]):focus-visible {
	outline: 2px solid var(--wp--preset--color--theme-3);
	outline-offset: 2px;
}

/* Images */
.is-style-framed {
	box-sizing: border-box;
	border-radius: var(--wp--preset--spacing--20);
}

.is-style-framed::before {
	box-sizing: border-box;
	display: none !important;
}

.is-style-framed img {
	border-radius: calc( var(--wp--preset--spacing--10) * 0.5) !important;
}

.is-style-rounded img {
	border-radius: 100%;
}

.single .wp-block-image.alignfull img {
	/* Don't use border radius when images are fullwidth on single pages. */
	border-radius: 0;
}

.single .wp-block-image.alignfull {
	margin-top: calc( var(--wp--preset--spacing--40) + 4px);
	margin-bottom: var(--wp--preset--spacing--40);
}

/* VideoPress */

.wp-block-jetpack-videopress iframe {
	display: block;
	border-radius: var(--wp--preset--spacing--20);
}

.wp-block-jetpack-videopress {
	/* CSS in third party blocks is not supported yet — https://github.com/WordPress/gutenberg/issues/48439 */
	margin-top: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--30);
	overflow: hidden;
}

/* Lightbox */

.wp-lightbox-overlay .close-button:focus {
	outline: none;
}

.wp-lightbox-overlay .close-button svg {
	height: 24px;
	width: 24px;
}

/* Quote block */

.wp-block-quote cite {
	color: var(--wp--preset--color--theme-6);
	font-size: var(--wp--preset--font-size--small);
	margin-top: var(--wp--preset--font-size--small) !important;
}

.wp-block-quote > * + * {
	margin-block-start: var(--wp--style--block-gap);
}

.wp-block-quote *:first-of-type {
	margin-top: 0;
}

.wp-block-quote *:last-of-type {
	margin-bottom: 0;
}

/* Tag/category cloud blocks */

.wp-block-tag-cloud,
.wp-block-categories-list {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.wp-block-tag-cloud a,
.wp-block-categories-list a,
.kanso-all-link a {
	align-items: center;
	box-sizing: border-box;
	border-radius: var(--wp--preset--spacing--10);
	border: 1px solid var(--wp--preset--color--theme-3);
	display: inline-flex;
	font-size: var(--wp--preset--font-size--small) !important;
	justify-content: center;
	min-height: 44px;
	padding: 0 var(--wp--preset--spacing--20);
	text-decoration: none;
	transition: background-color var(--wp--custom--transition--duration, 200ms) ease-out, color var(--wp--custom--transition--duration, 200ms) ease-out, transform var(--wp--custom--transition--duration, 200ms) cubic-bezier(.4,0,.2,1);
}

.wp-block-tag-cloud a:hover,
.wp-block-categories-list a:hover,
.kanso-all-link a:hover {
	background-color: var(--wp--preset--color--theme-2);
	color: var(--wp--preset--color--theme-6);
}

.wp-block-tag-cloud a:active,
.wp-block-categories-list a:active,
.kanso-all-link a:active {
	transform: scale(0.97);
}

.kanso-archive-topics {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: var(--wp--preset--spacing--20);
}

.kanso-all-link {
	margin: 0;
}

.kanso-archive-topics > .wp-block-categories {
	margin: 0;
}

.kanso-archive-topics .wp-block-categories-list {
	margin: 0;
}

.kanso-all-link a {
	min-width: 92px;
}

/* Dark mode toggle: prevent the mobile browser tap/focus rectangle. */
.wp-block-tabor-dark-mode-toggle__track,
.wp-block-tabor-dark-mode-toggle__track:focus,
.wp-block-tabor-dark-mode-toggle__track:focus-visible,
.wp-block-tabor-dark-mode-toggle__track:active {
	-webkit-tap-highlight-color: transparent;
	outline: none !important;
	box-shadow: none !important;
}

/* Navigation block */
.wp-block-navigation .wp-block-navigation__submenu-container {
	border-radius: var(--wp--preset--spacing--10);
	padding: 12px 8px;
}

/* Dark mode toggle block */

.wp-block-tabor-dark-mode-toggle__track:not(.has-background) {
	background: var(--wp--preset--color--theme-3);
}

.wp-block-tabor-dark-mode-toggle__track:not(.has-background):hover {
	background-color: var(--wp--preset--color--theme-4);
	color: var(--wp--preset--color--theme-6);
}

/* Other third party blocks */

.wp-block-tabor-card:not(.is-style-dark) .wp-block-tabor-card__description {
	/* CSS in theme.json for third party blocks is not supported yet; related — https://github.com/WordPress/gutenberg/issues/48439 */
	color: var(--wp--preset--color--theme-5);
	opacity: 1;
}

.theme-dark .wp-block-tabor-card__image-blur {
	opacity: 0.5;
}

.wp-block-tabor-comments-count a:hover {
	color: var(--wp--preset--color--theme-6);
}

/* Jetpack Social */

.sd-like {
	/* Add more spacing to Jetpack likes */
	margin-top: var(--wp--preset--spacing--40);
}

.sd-title {
	/* Hide the "Like this" label from Jetpack Social. */
	display: none !important;
}

/* Comments */

.comment-reply-title {
	display: flex;
	font-size: var(--wp--preset--font-size--x-large);
	justify-content: space-between;
	margin: 0;
}

.comment-reply-title :where(small) a {
	color: var(--wp--preset--color--theme-5);
	font-size: 90%;
	font-weight: normal;
	text-decoration: none;
}

.comment-reply-title :where(small) a:hover {
	color: var(--wp--preset--color--theme-6);
}

.logged-in-as,
.comment-notes,
.required-field-message {
	display: block;
	font-size: var(--wp--preset--font-size--small);
}

.required-field-message {
	color: var(--wp--preset--color--theme-5);
	margin-top: calc( var(--wp--preset--spacing--10) * 0.5 );
}

.comment-form-cookies-consent {
	align-items: start;
}

/* Blank template */

.page-template-template-blank .wp-site-blocks {
	/* Zero out padding on blank template. */
	padding: 0;
}


/* Chinese typography and responsive reading improvements */
:root {
	--kanso-cjk-font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;
	--kanso-summary-bg: color-mix(in srgb, var(--wp--preset--color--theme-2) 52%, var(--wp--preset--color--theme-1) 48%);
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	font-family: var(--kanso-cjk-font);
	line-height: 1.75;
	letter-spacing: 0;
	word-break: normal;
	overflow-wrap: anywhere;
	font-kerning: normal;
}

/* Keep Chinese headlines compact and easy to scan. */
h1, h2, h3, h4,
.wp-block-post-title,
.wp-block-query-title {
	font-family: var(--kanso-cjk-font);
	letter-spacing: -0.025em;
	line-height: 1.42;
	word-break: normal;
	overflow-wrap: anywhere;
	text-wrap: pretty;
}

.wp-block-post-title {
	margin-block-end: 10px;
}

.wp-block-post-title a {
	text-decoration: none;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.16em;
	text-decoration-color: color-mix(in srgb, currentColor 38%, transparent);
}

.wp-block-post-title a:hover {
	text-decoration: underline;
}

/* Article excerpts: soft surface, restrained length, and safe four-line clamping. */
.wp-block-post-excerpt {
	box-sizing: border-box;
	margin-block-start: 8px;
	margin-block-end: 10px;
	min-width: 0;
	padding: 11px 14px;
	border-inline-start: 3px solid var(--wp--preset--color--theme-3);
	border-radius: 0 10px 10px 0;
	background: var(--kanso-summary-bg);
}

.wp-block-post-excerpt__excerpt {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	background: transparent;
	color: var(--wp--preset--color--theme-6);
	font-family: var(--kanso-cjk-font);
	font-size: 15px;
	line-height: 28px;
	letter-spacing: 0.005em;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	overflow: hidden;
	word-break: normal;
	overflow-wrap: normal;
	line-break: strict;
}

.wp-block-post-excerpt__more-text {
	margin: 8px 0 0;
	font-size: 0.9em;
	line-height: 1.5;
}

.wp-block-post-excerpt__more-link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-weight: 600;
	text-decoration: none !important;
	color: var(--wp--preset--color--theme-6);
	border-bottom: 1px solid color-mix(in srgb, currentColor 35%, transparent);
	padding-bottom: 2px;
	transition: opacity 160ms ease, border-color 160ms ease;
}

.wp-block-post-excerpt__more-link:hover {
	opacity: 0.72;
	border-color: currentColor;
}

.wp-block-post-date,
.wp-block-post-author-name {
	font-family: var(--kanso-cjk-font);
	font-size: 0.84em;
	line-height: 1.6;
	color: var(--wp--preset--color--theme-5);
	letter-spacing: 0.01em;
}

.wp-block-post-date a {
	text-decoration: none;
}

/* Give each list entry a little separation without changing the theme's minimal feel. */
.wp-block-post-template > li {
	min-width: 0;
	padding-block: 2px 6px;
}

.wp-block-post-template > li + li {
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--theme-4) 65%, transparent);
	padding-top: 14px;
	margin-top: 6px;
}

.wp-block-post-featured-image img {
	display: block;
	width: 100%;
	object-fit: cover;
}

/* Mobile-first spacing: prevent oversized, crowded Chinese text on narrow screens. */
@media (max-width: 600px) {
	body {
		font-size: 16px;
		line-height: 1.8;
	}

	h1, .wp-block-post-title {
		line-height: 1.4;
		letter-spacing: -0.02em;
	}

	.wp-block-post-excerpt {
		padding: 10px 12px;
		border-radius: 0 8px 8px 0;
	}

	.wp-block-post-excerpt__excerpt {
		font-size: 15px;
		line-height: 28px;
		-webkit-line-clamp: 4;
	}

	.wp-block-post-template > li + li {
		padding-top: 14px;
		margin-top: 6px;
	}

	.wp-block-post-excerpt__more-text {
		margin-top: 6px;
	}

	.kanso-archive-topics {
		gap: 10px;
		margin-top: var(--wp--preset--spacing--20);
	}

	.wp-block-tag-cloud,
	.wp-block-categories-list {
		gap: 12px;
	}

	.wp-block-tag-cloud a,
	.wp-block-categories-list a,
	.kanso-all-link a {
		min-height: 44px;
		padding-inline: 20px;
	}
}

/* Dark-mode excerpt contrast fix: keep summary text readable on a dark surface. */
.theme-dark .wp-block-post-excerpt,
body.theme-dark .wp-block-post-excerpt {
	background: #252525;
	border-inline-start-color: #666666;
}

.theme-dark .wp-block-post-excerpt__excerpt,
body.theme-dark .wp-block-post-excerpt__excerpt {
	background: transparent;
	color: #e5e5e5;
}

.theme-dark .wp-block-post-excerpt__more-link,
body.theme-dark .wp-block-post-excerpt__more-link {
	color: #f0f0f0;
	border-bottom-color: rgb(240 240 240 / 35%);
}

@media (prefers-reduced-motion: reduce) {
	.wp-block-post-excerpt__more-link {
		transition: none;
	}
}


/* Kanso clean & fresh visual refinement */
:root {
	--kanso-clean-radius: 8px;
	--kanso-clean-line: color-mix(in srgb, var(--wp--preset--color--theme-4) 52%, transparent);
	--kanso-clean-muted: color-mix(in srgb, var(--wp--preset--color--theme-5) 82%, transparent);
}

/* Keep the archive/category controls light and compact. */
.wp-block-tag-cloud,
.wp-block-categories-list {
	gap: 8px 10px;
}

.wp-block-tag-cloud a,
.wp-block-categories-list a {
	min-height: 38px;
	padding: 0 14px;
	border-radius: 7px;
	border-color: var(--kanso-clean-line);
	font-size: 14px !important;
	font-weight: 400;
	background: transparent;
}

.wp-block-tag-cloud a:hover,
.wp-block-categories-list a:hover {
	background: color-mix(in srgb, var(--wp--preset--color--theme-3) 18%, transparent);
}

/* Cleaner article rhythm: one quiet divider, no heavy card feeling. */
.wp-block-post-template > li {
	padding-block: 0 22px;
}

.wp-block-post-template > li + li {
	border-top: 1px solid var(--kanso-clean-line);
	padding-top: 22px;
	margin-top: 0;
}

.wp-block-post-title {
	margin-block-end: 8px;
	font-weight: 600;
}

.wp-block-post-excerpt {
	margin-block-start: 6px;
	margin-block-end: 8px;
	padding: 9px 13px;
	border-inline-start-width: 2px;
	border-radius: 0 7px 7px 0;
	background: color-mix(in srgb, var(--wp--preset--color--theme-2) 34%, transparent);
}

.wp-block-post-excerpt__excerpt {
	font-size: 14px;
	line-height: 26px;
	letter-spacing: 0;
}

.wp-block-post-excerpt__more-text {
	margin-top: 5px;
}

.wp-block-post-excerpt__more-link {
	font-size: 14px;
	font-weight: 500;
	border-bottom: 0;
	padding-bottom: 0;
}

.wp-block-post-date,
.wp-block-post-author-name {
	font-size: 13px;
	color: var(--kanso-clean-muted);
}

/* Remove browser tap/focus paint without changing keyboard accessibility. */
.wp-block-tabor-dark-mode-toggle__track {
	-webkit-tap-highlight-color: transparent;
}

.wp-block-tabor-dark-mode-toggle__track:focus-visible {
	outline: 1px solid color-mix(in srgb, currentColor 35%, transparent) !important;
	outline-offset: 2px;
	box-shadow: none !important;
}

@media (max-width: 600px) {
	.wp-block-tag-cloud,
	.wp-block-categories-list {
		gap: 7px 8px;
	}

	.wp-block-tag-cloud a,
	.wp-block-categories-list a {
		min-height: 36px;
		padding-inline: 13px;
	}

	.wp-block-post-template > li {
		padding-bottom: 20px;
	}

	.wp-block-post-template > li + li {
		padding-top: 20px;
	}

	.wp-block-post-excerpt {
		padding: 8px 12px;
	}

	.wp-block-post-excerpt__excerpt {
		font-size: 14px;
		line-height: 26px;
	}
}

/* Expandable Gutenberg Archives: click a date to reveal its post titles. */
.kanso-expandable-archives {
	margin: 0;
}

.kanso-archive-item {
	margin: 0;
	border-bottom: 1px solid color-mix(in srgb, currentColor 14%, transparent);
}

.kanso-archive-item summary {
	cursor: pointer;
	list-style: none;
	padding: 8px 0;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.6;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.kanso-archive-item summary::-webkit-details-marker {
	display: none;
}

.kanso-archive-item summary::before {
	content: '○';
	display: inline-block;
	margin-right: 10px;
	text-decoration: none;
}

.kanso-archive-item[open] summary::before {
	content: '●';
}

.kanso-archive-count {
	text-decoration: none;
}

.kanso-archive-posts {
	margin: 0 0 10px 26px !important;
	padding: 0 !important;
	list-style: none;
}

.kanso-archive-posts li {
	margin: 0;
	padding: 5px 0;
	line-height: 1.55;
}

.kanso-archive-posts a,
.kanso-archive-post-link {
	display: inline-block;
	position: relative;
	z-index: 1;
	color: inherit;
	text-decoration: none;
	cursor: pointer;
	pointer-events: auto;
}

.kanso-archive-posts a:hover,
.kanso-archive-posts a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 782px) {
	.kanso-archive-item summary {
		padding: 7px 0;
	}

	.kanso-archive-posts {
		margin-left: 24px !important;
	}
}


/* Global background media: fixed to the viewport and never participates in document flow. */
.kanso-global-background {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 0;
	pointer-events: none;
	overflow: hidden;
	background: var(--wp--preset--color--theme-1, #fff);
}
.kanso-global-background__image-wrap,
.kanso-global-background__video,
.kanso-global-background__image,
.kanso-global-background__overlay {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.kanso-global-background__image-wrap { display: block; margin: 0; }
.kanso-global-background__image,
.kanso-global-background__video {
	object-fit: cover;
	object-position: var(--kanso-bg-position, center center);
}
.kanso-global-background__video { z-index: 1; background: transparent; }
.kanso-global-background__image { z-index: 0; }
.kanso-global-background__overlay {
	z-index: 2;
	background: #000;
	opacity: var(--kanso-bg-overlay, 0);
}
/* Only the actual page content gets a stacking context; the background remains outside flow. */
body > .wp-site-blocks,
body > .wp-site-blocks + * {
	position: relative;
	z-index: 1;
}
html.theme-dark .kanso-global-background { background: #111; }

@media (max-width: 782px) {
	/* 移动端横向锁定：页面只做纵向滚动，任何横向位移都归零。
	 * clip 用于阻止产生第二个滚动容器；overscroll-behavior-x 关掉 iOS / 内嵌浏览器
	 * 的横向橡皮筋，避免整页被手指拖着左右滑。 */
	html {
		overflow-x: clip;
		overflow-y: visible;
		overscroll-behavior-x: none;
		overscroll-behavior-y: none;
		width: 100%;
		max-width: 100%;
	}
	body {
		overflow-x: clip;
		overflow-y: visible;
		overscroll-behavior-x: none;
		overscroll-behavior-y: none;
		width: 100%;
		max-width: 100%;
	}
	.wp-site-blocks {
		min-height: 100vh !important;
		min-height: 100dvh !important;
		display: flex;
		flex-direction: column;
		width: 100%;
		max-width: 100%;
		overflow-x: clip;
	}
	.wp-site-blocks > main {
		flex: 1 0 auto;
		width: 100%;
	}
	.wp-site-blocks > .wp-block-template-part:last-child {
		flex: 0 0 auto;
		margin-block-start: auto;
	}
	.kanso-global-background {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		width: auto;
		height: auto;
		min-height: 0;
		max-height: none;
		margin: 0 !important;
		padding: 0 !important;
		transform: none !important;
		will-change: auto;
		overflow: hidden;
	}
	.kanso-global-background__image,
	.kanso-global-background__video {
		object-position: center center;
		max-width: none;
		margin: 0 !important;
		padding: 0 !important;
	}
	.kanso-global-background__overlay {
		opacity: min(0.35, var(--kanso-bg-overlay, 0));
	}
}

@media (prefers-reduced-motion: reduce) {
	.kanso-global-background__video { display: none; }
}

/* 老内核（Chrome < 90、iOS Safari < 16）不认识 overflow: clip，会把整条声明丢掉，
 * 于是移动端没有任何横向裁剪。这里用 hidden 兜底，保证任何内核都只有纵向滚动。 */
@supports not (overflow: clip) {
	@media (max-width: 782px) {
		html,
		body,
		.wp-site-blocks {
			overflow-x: hidden;
		}
	}
}


/* Mobile tap/focus cleanup: prevent Android Chrome from painting a blue
 * rectangle over navigation and other controls after tapping. Keep a
 * visible focus style for keyboard users via :focus-visible. */
@media (hover: none) and (pointer: coarse) {
	.wp-block-navigation a,
	.wp-block-navigation button,
	.wp-block-navigation .wp-block-navigation-item__content,
	.wp-block-navigation__responsive-container-open,
	.wp-block-navigation__responsive-container-close,
	a,
	button,
	[role="button"],
	summary {
		-webkit-tap-highlight-color: transparent !important;
		-webkit-touch-callout: none;
	}

	.wp-block-navigation a,
	.wp-block-navigation .wp-block-navigation-item__content {
		-webkit-user-select: none;
		user-select: none;
	}

	.wp-block-navigation a:focus:not(:focus-visible),
	.wp-block-navigation button:focus:not(:focus-visible),
	.wp-block-navigation .wp-block-navigation-item__content:focus:not(:focus-visible),
	a:focus:not(:focus-visible),
	button:focus:not(:focus-visible),
	[role="button"]:focus:not(:focus-visible),
	summary:focus:not(:focus-visible) {
		outline: none !important;
		box-shadow: none !important;
	}
}


/* 1.0.78：滑动跟手波纹。按住并移动鼠标/手指时，柔和水波中心实时跟随触点。 */
.kanso-ink-ripple {
	position: fixed;
	z-index: 2147483646;
	width: 18px;
	height: 18px;
	margin: -9px 0 0 -9px;
	border-radius: 50%;
	pointer-events: none;
	border: 1.5px solid rgba(67, 72, 65, .48);
	background: rgba(67, 72, 65, .025);
	box-shadow: 0 0 0 1px rgba(67, 72, 65, .06);
	transform: scale(.82);
	opacity: .72;
	/* 跟随移动走 transform（合成器）；按下拖动时位移用 .08s linear，与原 left/top 手感一致。 */
	transition: transform .08s linear, opacity .22s ease;
	will-change: transform, opacity;
}
.kanso-ink-ripple::before,
.kanso-ink-ripple::after {
	content: "";
	position: absolute;
	inset: -2px;
	border: 1px solid rgba(67, 72, 65, .25);
	border-radius: inherit;
	transform: scale(.72);
	opacity: 0;
}
.kanso-ink-ripple.is-active::before {
	animation: kanso-ink-follow-wave 1.05s cubic-bezier(.2,.55,.25,1) infinite;
}
.kanso-ink-ripple.is-active::after {
	animation: kanso-ink-follow-wave 1.05s cubic-bezier(.2,.55,.25,1) .42s infinite;
}
.kanso-ink-ripple.is-release {
	opacity: 0;
	transform: scale(1.12);
	/* 松手阶段位移冻结、仅 scale 放大，沿用原 .22s ease 手感。 */
	transition: transform .22s ease, opacity .22s ease;
}
@keyframes kanso-ink-follow-wave {
	0% { opacity: 0; transform: scale(.68); }
	14% { opacity: .38; }
	65% { opacity: .12; }
	100% { opacity: 0; transform: scale(2.55); }
}
@media (max-width: 782px) {
	.kanso-ink-ripple { width: 20px; height: 20px; margin: -10px 0 0 -10px; }
}
@media (prefers-reduced-motion: reduce) {
	.kanso-ink-ripple { transition-duration: .01s; }
	.kanso-ink-ripple.is-active::before,
	.kanso-ink-ripple.is-active::after { animation: none; opacity: .16; transform: scale(1.15); }
}

/* Hide the WordPress image lightbox/fullscreen trigger in article content. */
.entry-content .wp-block-image .lightbox-trigger,
.entry-content .wp-block-gallery .lightbox-trigger,
.entry-content .wp-block-image button.wp-lightbox-container,
.entry-content .wp-block-gallery button.wp-lightbox-container,
.single-post .wp-block-image .lightbox-trigger,
.single-post .wp-block-gallery .lightbox-trigger {
  display: none !important;
}









