/* ==========================================================================
   Kanso Music — 轻量全站音乐播放器（1.0.96）
   --------------------------------------------------------------------------
   仅在“外观 → 音乐播放器”启用且添加了歌曲时才加载。
   所有样式都限定在 #kanso-music 命名空间内，不污染主题其它部分；
   颜色全部取自主题 CSS 变量，深浅色模式自动适配。
   外观定制：--kanso-music-accent（进度条/播放按钮强调色）、
             --kanso-music-radius（按钮圆角）、
             --kanso-music-surface（面板背景不透明度）。
   ========================================================================== */

#kanso-music {
	position: fixed;
	left: 0;
	top: 0;
	width: 0;
	height: 0;
	z-index: 99990;
	--kanso-music-accent: var(--wp--preset--color--theme-6, #333);
	--kanso-music-radius: 999px;
	--kanso-music-surface: 95%;
	/* 封面模糊背景：开关 / 图片 / 透明度 / 模糊半径（由 JS 注入） */
	--km-bg-on: 0;
	--km-bg-img: none;
	--km-bg-opacity: .85;
	--km-blur: 18px;
	font-family: var(--kanso-cjk-font, -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif);
	color: var(--wp--preset--color--theme-6, #333);
	-webkit-tap-highlight-color: transparent;
}

#kanso-music[hidden] {
	display: none !important;
}

#kanso-music *,
#kanso-music *::before,
#kanso-music *::after {
	box-sizing: border-box;
}

/* ---------- 唱片按钮（桌面，右下/左下角悬浮） ---------- */

.kanso-music__disc {
	position: fixed;
	bottom: 22px;
	right: 22px;
	width: 54px;
	height: 54px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
	z-index: 99991;
	-webkit-tap-highlight-color: transparent;
}

.kanso-music--pos-left .kanso-music__disc {
	right: auto;
	left: 22px;
}

.kanso-music__disc-art {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	overflow: hidden;
	background: linear-gradient(135deg, var(--wp--preset--color--theme-3, #cbd8cc), var(--wp--preset--color--theme-2, #eef2ee));
	box-shadow: 0 6px 18px rgba(30, 40, 35, .18), 0 0 0 1px rgba(30, 40, 35, .06);
	will-change: transform;
}

.kanso-music__disc-art img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.kanso-music__disc-fallback {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	font-size: 21px;
	line-height: 1;
	color: var(--wp--preset--color--theme-6, #333);
}

/* 唱片后的封面模糊光晕（收起状态也显示） */
.kanso-music__disc::before {
	content: "";
	position: absolute;
	inset: -16px;
	border-radius: 50%;
	background-image: var(--km-bg-img);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	filter: blur(calc(var(--km-blur) * 0.9));
	opacity: calc(var(--km-bg-on) * var(--km-bg-opacity));
	z-index: 0;
	pointer-events: none;
}

/* 播放时唱片缓慢旋转 */
.kanso-music.is-playing .kanso-music__disc-art {
	animation: kanso-music-spin 16s linear infinite;
}

@keyframes kanso-music-spin {
	to { transform: rotate(1turn); }
}

/* 悬停时在唱片上浮现播放/暂停图标 */
.kanso-music__disc::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, .34) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M8 5.14v13.72c0 .8.87 1.3 1.56.88l10.98-6.86a1.04 1.04 0 0 0 0-1.76L9.56 4.26A1.04 1.04 0 0 0 8 5.14z'/%3E%3C/svg%3E") center / 20px no-repeat;
	opacity: 0;
	transition: opacity .18s ease;
}

.kanso-music__disc:hover::after,
.kanso-music__disc:focus-visible::after {
	opacity: 1;
}

.kanso-music.is-playing .kanso-music__disc::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M7 5h3.2v14H7zM13.8 5H17v14h-3.2z'/%3E%3C/svg%3E");
}

@media (hover: none) {
	.kanso-music__disc::after { display: none; }
}

/* ---------- 播放器卡片（桌面弹层 / 手机底部抽屉） ---------- */

.kanso-music__card {
	position: fixed;
	right: 22px;
	bottom: 88px;
	width: 316px;
	max-height: min(620px, calc(100vh - 120px));
	display: none;
	flex-direction: column;
	border-radius: 16px;
	background: color-mix(in srgb, var(--wp--preset--color--theme-1, #fff) var(--kanso-music-surface, 93%), transparent);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border: 1px solid var(--kanso-clean-line, rgba(0, 0, 0, .08));
	box-shadow: 0 18px 44px rgba(25, 35, 30, .16);
	overflow: hidden;
	z-index: 99992;
}

/* 自定义背景幻灯片切换：只淡化背景层，不影响前景文字与控件 */
.kanso-music__card::before,
.kanso-music__bar::before,
.kanso-music__full::before,
.kanso-music__disc::before {
	transition: opacity .48s ease-in-out;
}
.kanso-music.km-bg-transitioning .kanso-music__card::before,
.kanso-music.km-bg-transitioning .kanso-music__bar::before,
.kanso-music.km-bg-transitioning .kanso-music__full::before,
.kanso-music.km-bg-transitioning .kanso-music__disc::before {
	opacity: 0 !important;
}
@media (prefers-reduced-motion: reduce) {
	.kanso-music__card::before,
	.kanso-music__bar::before,
	.kanso-music__full::before,
	.kanso-music__disc::before { transition-duration: .12s; }
}

/* 封面模糊背景层（位于面板背景之上、内容之下，透明度只影响背景层） */
.kanso-music__card::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: var(--km-bg-img);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	transform: scale(1.08);
	filter: blur(var(--km-blur));
	opacity: calc(var(--km-bg-on) * var(--km-bg-opacity));
	z-index: 1;
	pointer-events: none;
}

/* 封面模糊背景上的可读性遮罩（仅在有封面时出现，不影响前景） */
.kanso-music.km-has-bg .kanso-music__card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(rgba(18, 26, 22, .10), rgba(18, 26, 22, .30));
	z-index: 1;
	pointer-events: none;
}

/* 前景元素一律在背景层之上 */
.kanso-music__card > * {
	position: relative;
	z-index: 2;
}

.kanso-music--pos-left .kanso-music__card {
	right: auto;
	left: 22px;
}

.kanso-music.is-open .kanso-music__card {
	display: flex;
	/* 1.0.87：transform + opacity 动画并在播放前定格初帧（backwards），
	   避免 backdrop-filter 在展开瞬间整层重绘造成的闪烁/跳动 */
	animation: kanso-music-rise .16s ease backwards;
}

@keyframes kanso-music-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes kanso-music-rise {
	from { opacity: 0; translate: 0 10px; }
	to { opacity: 1; translate: 0 0; }
}

.kanso-music__card-head {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 14px 10px;
}

.kanso-music__card-cover {
	position: relative;
	flex: none;
	width: 52px;
	height: 52px;
	border-radius: 10px;
	overflow: hidden;
	background: linear-gradient(135deg, var(--wp--preset--color--theme-3, #cbd8cc), var(--wp--preset--color--theme-2, #eef2ee));
}

.kanso-music__card-cover img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.kanso-music__card-cover .kanso-music__disc-fallback {
	font-size: 20px;
}

.kanso-music__card-meta {
	flex: 1;
	min-width: 0;
}

.kanso-music__card-title {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--wp--preset--color--theme-6, #333);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kanso-music__card-artist {
	margin-top: 2px;
	font-size: 12px;
	line-height: 1.4;
	color: var(--kanso-clean-muted, rgba(0, 0, 0, .55));
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kanso-music__close {
	flex: none;
	width: 30px;
	height: 30px;
	display: grid;
	place-items: center;
	border: 0;
	border-radius: var(--kanso-music-radius, 999px);
	background: transparent;
	color: var(--wp--preset--color--theme-5, #777);
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}

.kanso-music__close:hover {
	background: color-mix(in srgb, var(--wp--preset--color--theme-3) 30%, transparent);
	color: var(--wp--preset--color--theme-6, #333);
}

.kanso-music__close svg {
	width: 16px;
	height: 16px;
	fill: currentColor;
}

/* ---------- 控制区 ---------- */

.kanso-music__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 6px 14px 2px;
}

.kanso-music__btn {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: var(--kanso-music-radius, 999px);
	background: transparent;
	color: var(--wp--preset--color--theme-6, #333);
	cursor: pointer;
	transition: background-color .15s ease, transform .15s ease, opacity .15s ease;
}

.kanso-music__btn svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

.kanso-music__btn:hover {
	background: color-mix(in srgb, var(--wp--preset--color--theme-3) 30%, transparent);
}

.kanso-music__btn:active {
	transform: scale(.94);
}

.kanso-music__btn--play {
	width: 46px;
	height: 46px;
	background: var(--kanso-music-accent, var(--wp--preset--color--theme-6, #333));
	color: var(--wp--preset--color--theme-1, #fff);
}

.kanso-music__btn--play:hover {
	background: var(--kanso-music-accent, var(--wp--preset--color--theme-6, #333));
	opacity: .9;
}

.kanso-music__btn--play svg {
	width: 22px;
	height: 22px;
}

/* ---------- 进度条 ---------- */

.kanso-music__progress {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px 2px;
}

.kanso-music__time {
	min-width: 34px;
	font-size: 11px;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	color: var(--kanso-clean-muted, rgba(0, 0, 0, .55));
}

.kanso-music__time--end {
	text-align: right;
}

.kanso-music__seek {
	flex: 1;
}

/* ---------- 音量 ---------- */

.kanso-music__volume {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 6px 16px 4px;
}

.kanso-music__vol-btn {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: var(--kanso-music-radius, 999px);
	background: transparent;
	color: var(--wp--preset--color--theme-6, #333);
	cursor: pointer;
	transition: background-color .15s ease;
}

.kanso-music__vol-btn:hover {
	background: color-mix(in srgb, var(--wp--preset--color--theme-3) 30%, transparent);
}

.kanso-music__vol-btn svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

.kanso-music__vol {
	flex: 1;
}

/* ---------- 底部：播放模式 + 播放列表入口 ---------- */

.kanso-music__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 8px 14px 12px;
}

.kanso-music__mode,
.kanso-music__list-btn,
.kanso-music__full-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 32px;
	margin: 0;
	padding: 0 12px;
	border: 1px solid var(--kanso-clean-line, rgba(0, 0, 0, .12));
	border-radius: var(--kanso-music-radius, 999px);
	background: transparent;
	color: var(--wp--preset--color--theme-6, #333);
	font-size: 12px;
	font-family: inherit;
	line-height: 1;
	cursor: pointer;
	transition: background-color .15s ease;
}

.kanso-music__full-btn.is-hidden {
	display: none;
}

.kanso-music__mode:hover,
.kanso-music__list-btn:hover,
.kanso-music__full-btn:hover {
	background: color-mix(in srgb, var(--wp--preset--color--theme-3) 22%, transparent);
}

.kanso-music__mode svg,
.kanso-music__list-btn svg,
.kanso-music__full-btn svg {
	width: 14px;
	height: 14px;
	fill: currentColor;
}

/* ---------- 歌词小面板（小歌词模式，卡片内） ---------- */

.kanso-music__lyrics {
	flex: none;
	max-height: 150px;
	margin: 2px 14px 0;
	padding: 8px 8px 14px;
	overflow-y: auto;
	overscroll-behavior: contain;
	border-top: 1px solid var(--kanso-clean-line, rgba(0, 0, 0, .06));
	scrollbar-width: thin;
}

/* 歌词行以 inner 为定位上下文：滚动目标 = 行 offsetTop − 容器高度/2 + 行高/2，
   当前句才能真正自动居中跟随歌曲滚动（1.0.87 修复） */
.kanso-music__lyrics-inner {
	position: relative;
}

/* 开启歌词模式时预留歌词区高度，避免异步歌词加载完成瞬间面板突然变高、
   卡片整体布局上下跳动（播放器界面闪烁的来源之一） */
#kanso-music.kanso-music.km-lyric-on .kanso-music__lyrics {
	min-height: 96px;
}

.kanso-music__lyrics.is-hidden {
	display: none;
}

.kanso-music__lyric-hint {
	display: block;
	text-align: center;
	font-size: 12px;
	color: var(--kanso-clean-muted, rgba(0, 0, 0, .5));
	padding: 6px 0;
}

.kanso-music__lyric-line {
	padding: 3px 4px;
	font-size: 13px;
	line-height: 1.6;
	color: var(--kanso-clean-muted, rgba(0, 0, 0, .55));
	transition: color .18s ease;
}

/* 逐字跟读基础：每个字独立过渡，点亮时有渐变（酷狗式卡拉OK） */
.kanso-music__lyric-char {
	transition: color .25s ease, text-shadow .25s ease, font-weight .25s ease;
}

/* 当前句：字号稍大一圈 + 加粗；未读字灰暗，已读字点亮（酷狗跟随效果） */
.kanso-music__lyric-line.is-current {
	color: var(--wp--preset--color--theme-6, #333);
	font-size: 15px;
	line-height: 1.7;
	font-weight: 600;
}

.kanso-music__lyric-note {
	padding: 4px 4px;
	font-size: 11px;
	color: var(--kanso-clean-muted, rgba(0, 0, 0, .4));
}

/* ---------- 播放列表面板 ---------- */

.kanso-music__playlist {
	display: none;
	max-height: 220px;
	overflow-y: auto;
	padding: 6px;
	border-top: 1px solid var(--kanso-clean-line, rgba(0, 0, 0, .08));
}

.kanso-music.is-list-open .kanso-music__playlist {
	display: block;
}

.kanso-music__song {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	margin: 0;
	padding: 8px 10px;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: background-color .15s ease;
}

.kanso-music__song:hover {
	background: color-mix(in srgb, var(--wp--preset--color--theme-3) 20%, transparent);
}

.kanso-music__song.is-current {
	background: color-mix(in srgb, var(--wp--preset--color--theme-3) 26%, transparent);
}

.kanso-music__song-title {
	flex: 1;
	min-width: 0;
	font-size: 13px;
	line-height: 1.4;
	color: var(--wp--preset--color--theme-6, #333);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kanso-music__song-artist {
	flex: none;
	max-width: 34%;
	font-size: 11px;
	line-height: 1.4;
	color: var(--kanso-clean-muted, rgba(0, 0, 0, .55));
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* 当前歌曲的迷你跳动音柱 */
.kanso-music__eq {
	display: flex;
	align-items: flex-end;
	gap: 2px;
	width: 14px;
	height: 14px;
	flex: none;
}

.kanso-music__eq i {
	width: 3px;
	height: 4px;
	border-radius: 2px;
	background: currentColor;
}

.kanso-music.is-playing .kanso-music__song.is-current .kanso-music__eq i {
	animation: kanso-music-eq 1s ease-in-out infinite;
}

.kanso-music.is-playing .kanso-music__song.is-current .kanso-music__eq i:nth-child(2) {
	animation-delay: .22s;
}

.kanso-music.is-playing .kanso-music__song.is-current .kanso-music__eq i:nth-child(3) {
	animation-delay: .44s;
}

@keyframes kanso-music-eq {
	0%, 100% { height: 4px; }
	50% { height: 13px; }
}

/* ---------- 底部细条（手机端始终显示；桌面端选择“底部”位置时显示） ---------- */

.kanso-music__bar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	display: none;
	align-items: center;
	gap: 10px;
	height: 58px;
	padding: 0 12px;
	background: color-mix(in srgb, var(--wp--preset--color--theme-1, #fff) var(--kanso-music-surface, 95%), transparent);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-top: 1px solid var(--kanso-clean-line, rgba(0, 0, 0, .08));
	box-shadow: 0 -6px 18px rgba(25, 35, 30, .06);
	overflow: hidden;
	z-index: 99991;
}

.kanso-music__bar::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: var(--km-bg-img);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	transform: scale(1.12);
	filter: blur(var(--km-blur));
	opacity: calc(var(--km-bg-on) * var(--km-bg-opacity));
	z-index: 1;
	pointer-events: none;
}

.kanso-music.km-has-bg .kanso-music__bar::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(rgba(18, 26, 22, .08), rgba(18, 26, 22, .28));
	z-index: 1;
	pointer-events: none;
}

.kanso-music__bar > * {
	position: relative;
	z-index: 2;
}

.kanso-music__bar-progress {
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	height: 2px;
	background: color-mix(in srgb, var(--wp--preset--color--theme-3) 45%, transparent);
}

.kanso-music__bar-progress i {
	display: block;
	height: 100%;
	width: 0;
	background: var(--wp--preset--color--theme-6, #333);
}

.kanso-music__bar-cover {
	position: relative;
	flex: none;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	overflow: hidden;
	background: linear-gradient(135deg, var(--wp--preset--color--theme-3, #cbd8cc), var(--wp--preset--color--theme-2, #eef2ee));
	box-shadow: 0 2px 6px rgba(30, 40, 35, .12);
	will-change: transform;
}

/* 手机端 / 底部条：播放时封面作为唱片缓慢旋转 */
.kanso-music.is-playing .kanso-music__bar-cover {
	animation: kanso-music-spin 12s linear infinite;
}

.kanso-music__bar-cover img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.kanso-music__bar-cover .kanso-music__disc-fallback {
	font-size: 16px;
}

.kanso-music__bar-meta {
	flex: 1;
	min-width: 0;
	cursor: pointer;
}

.kanso-music__bar-title {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--wp--preset--color--theme-6, #333);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kanso-music__bar-artist {
	margin-top: 1px;
	font-size: 11px;
	line-height: 1.35;
	color: var(--kanso-clean-muted, rgba(0, 0, 0, .55));
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* 底部细条显示当前歌词句；唱到的部分由裁切前景层显色。 */
.kanso-music__bar-artist.is-lyric {
	color: var(--km-bar-lyric-color, var(--kanso-music-accent, var(--wp--preset--color--theme-6, #333)));
}
.kanso-music__bar-artist.is-lyric .kanso-music__bar-lyric-char {
	color: var(--km-bar-lyric-base, rgba(0, 0, 0, .38));
}
.kanso-music__bar-artist.is-lyric .kanso-music__bar-lyric-char {
	position: relative;
	display: inline-block;
	vertical-align: baseline;
}
.kanso-music__bar-artist.is-lyric .kanso-music__bar-lyric-char[data-km-bar-fill="active"]::after,
.kanso-music__bar-artist.is-lyric .kanso-music__bar-lyric-char[data-km-bar-fill="done"]::after {
	content: attr(data-char);
	position: absolute;
	inset: 0;
	overflow: hidden;
	color: var(--km-bar-lyric-color, var(--kanso-music-accent, #2f7d66));
	white-space: pre;
	line-height: inherit;
	font: inherit;
	pointer-events: none;
}
.kanso-music__bar-artist.is-lyric .kanso-music__bar-lyric-char[data-km-bar-fill="active"]::after {
	clip-path: inset(0 calc(100% - var(--km-bar-char-progress, 0%)) 0 0);
}
.kanso-music__bar-artist.is-lyric .kanso-music__bar-lyric-char[data-km-bar-fill="done"]::after {
	clip-path: inset(0);
}

.kanso-music__bar-btn {
	width: 34px;
	height: 34px;
}

.kanso-music__bar-btn svg {
	width: 18px;
	height: 18px;
}

/* ---------- 滑杆（进度 / 音量） ---------- */

.kanso-music input[type="range"] {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	height: 18px;
	margin: 0;
	background: transparent;
	cursor: pointer;
}

.kanso-music input[type="range"]::-webkit-slider-runnable-track {
	height: 4px;
	border-radius: 2px;
	background: linear-gradient(
		to right,
		var(--kanso-music-accent, var(--wp--preset--color--theme-6, #333)) 0 var(--kanso-music-fill, 0%),
		color-mix(in srgb, var(--wp--preset--color--theme-4) 55%, transparent) var(--kanso-music-fill, 0%) 100%
	);
}

.kanso-music input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 12px;
	height: 12px;
	margin-top: -4px;
	border: 2px solid var(--wp--preset--color--theme-1, #fff);
	border-radius: 50%;
	background: var(--kanso-music-accent, var(--wp--preset--color--theme-6, #333));
	box-shadow: 0 1px 4px rgba(0, 0, 0, .2);
}

.kanso-music input[type="range"]::-moz-range-track {
	height: 4px;
	border-radius: 2px;
	background: linear-gradient(
		to right,
		var(--kanso-music-accent, var(--wp--preset--color--theme-6, #333)) 0 var(--kanso-music-fill, 0%),
		color-mix(in srgb, var(--wp--preset--color--theme-4) 55%, transparent) var(--kanso-music-fill, 0%) 100%
	);
}

.kanso-music input[type="range"]::-moz-range-thumb {
	width: 10px;
	height: 10px;
	border: 2px solid var(--wp--preset--color--theme-1, #fff);
	border-radius: 50%;
	background: var(--kanso-music-accent, var(--wp--preset--color--theme-6, #333));
	box-shadow: 0 1px 4px rgba(0, 0, 0, .2);
}

.kanso-music button:focus-visible,
.kanso-music input[type="range"]:focus-visible {
	outline: 2px solid var(--kanso-music-accent, var(--wp--preset--color--theme-3, #cbd8cc));
	outline-offset: 2px;
}

/* ---------- 全屏歌词 ---------- */

.kanso-music__full {
	position: fixed;
	inset: 0;
	z-index: 99995;
	display: none;
	flex-direction: column;
	padding: max(24px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));
	background: color-mix(in srgb, var(--wp--preset--color--theme-1, #fff) 93%, transparent);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	color: var(--wp--preset--color--theme-6, #333);
}

.kanso-music.is-full .kanso-music__full {
	display: flex;
	animation: kanso-music-fade .18s ease;
}

.kanso-music__full::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: var(--km-bg-img);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	transform: scale(1.08);
	filter: blur(var(--km-blur));
	opacity: calc(var(--km-bg-on) * var(--km-bg-opacity));
	z-index: 1;
	pointer-events: none;
}

.kanso-music.km-has-bg .kanso-music__full::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(rgba(18, 26, 22, .14), rgba(18, 26, 22, .34));
	z-index: 1;
	pointer-events: none;
}

.kanso-music__full > * {
	position: relative;
	z-index: 2;
}

.kanso-music__full-head {
	display: flex;
	align-items: center;
	gap: 14px;
}

.kanso-music__full-cover {
	position: relative;
	flex: none;
	width: 56px;
	height: 56px;
	border-radius: 12px;
	overflow: hidden;
	background: linear-gradient(135deg, var(--wp--preset--color--theme-3, #cbd8cc), var(--wp--preset--color--theme-2, #eef2ee));
	box-shadow: 0 8px 22px rgba(30, 40, 35, .18);
}

.kanso-music__full-cover img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.kanso-music__full-cover .kanso-music__disc-fallback {
	font-size: 22px;
}

.kanso-music__full-meta {
	flex: 1;
	min-width: 0;
}

.kanso-music__full-title {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kanso-music__full-artist {
	margin-top: 2px;
	font-size: 13px;
	line-height: 1.4;
	color: var(--kanso-clean-muted, rgba(0, 0, 0, .55));
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kanso-music__full-close {
	flex: none;
	width: 40px;
	height: 40px;
	display: grid;
	place-items: center;
	border: 0;
	border-radius: var(--kanso-music-radius, 999px);
	background: transparent;
	color: var(--wp--preset--color--theme-5, #777);
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}

.kanso-music__full-close:hover {
	background: color-mix(in srgb, var(--wp--preset--color--theme-3) 30%, transparent);
	color: var(--wp--preset--color--theme-6, #333);
}

.kanso-music__full-close svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

.kanso-music__full-lyrics {
	flex: 1;
	min-height: 0;
	margin-top: 20px;
	padding: 18px 8px 32px;
	overflow-y: auto;
	overscroll-behavior: contain;
	text-align: center;
	scrollbar-width: thin;
}

/* 全屏歌词同样以 inner 为定位上下文，当前句居中滚动（1.0.87 修复） */
.kanso-music__full-lyrics-inner {
	position: relative;
}

.kanso-music__full-lyrics .kanso-music__lyric-line {
	font-size: 19px;
	line-height: 2;
	padding: 6px 4px;
	color: var(--kanso-clean-muted, rgba(0, 0, 0, .45));
}

.kanso-music__full-lyrics .kanso-music__lyric-line.is-current {
	color: var(--wp--preset--color--theme-6, #333);
	font-size: 23px;
	line-height: 2;
	font-weight: 700;
}

.kanso-music__full-foot {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 6px 2px 2px;
}

.kanso-music__full-controls {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 30px;
	padding: 16px 0 4px;
}

/* ---------- 响应式 ---------- */

@media (max-width: 767px) {
	/* 手机端：隐藏唱片，改用底部细条 */
	.kanso-music__disc { display: none; }

	/* 1.0.88：手机端显示底部播放列表按钮与面板（原为隐藏） */
	.kanso-music__list-btn,
	.kanso-music__playlist {
		/* display:none 已移除：手机端播放列表入口可用 */
	}

	.kanso-music__bar { display: flex; }

	/* 手机端歌词区预留高度略小，避免底部抽屉在歌词加载时跳动 */
	#kanso-music.kanso-music.km-lyric-on .kanso-music__lyrics {
		min-height: 84px;
	}

	/* 卡片在手机端变成底部抽屉 */
	.kanso-music__card {
		left: 12px;
		right: 12px;
		bottom: 70px;
		width: auto;
		border-radius: 18px 18px 14px 14px;
	}

	.kanso-music__lyrics {
		max-height: 120px;
	}

	.kanso-music__full {
		padding: max(16px, env(safe-area-inset-top)) 16px max(18px, env(safe-area-inset-bottom));
	}

	.kanso-music__full-cover {
		width: 48px;
		height: 48px;
		border-radius: 10px;
	}

	.kanso-music__full-title {
		font-size: 16px;
	}

	.kanso-music__full-lyrics .kanso-music__lyric-line {
		font-size: 17px;
		line-height: 1.9;
	}

	.kanso-music__full-lyrics .kanso-music__lyric-line.is-current {
		font-size: 21px;
	}
}

@media (min-width: 768px) {
	/* 桌面端选择“底部”位置：底部居中细条，隐藏唱片 */
	.kanso-music--pos-bottom .kanso-music__bar {
		display: flex;
		left: 50%;
		right: auto;
		transform: translateX(-50%);
		width: min(720px, 92vw);
		border-radius: 14px 14px 0 0;
		border: 1px solid var(--kanso-clean-line, rgba(0, 0, 0, .08));
		border-bottom: 0;
	}

	.kanso-music--pos-bottom .kanso-music__disc { display: none; }

	.kanso-music--pos-bottom .kanso-music__card {
		left: 50%;
		right: auto;
		transform: translateX(-50%);
		bottom: 70px;
	}
}

/* 给正文留出空间，避免底部细条遮挡内容 */
body.kanso-music-on {
	padding-bottom: 70px;
}

@media (min-width: 768px) {
	/* 桌面角落模式（右下/左下）只是小圆点，无需给正文留白 */
	body.kanso-music-on.kanso-music-corner {
		padding-bottom: 0;
	}
}

/* ---------- 深色模式微调 ---------- */

html.theme-dark .kanso-music__card,
html.theme-dark .kanso-music__bar {
	background: color-mix(in srgb, #1d201f var(--kanso-music-surface, 90%), transparent);
	border-color: rgba(255, 255, 255, .1);
}

html.theme-dark .kanso-music__disc-art {
	box-shadow: 0 6px 18px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .08);
}

html.theme-dark .kanso-music__card {
	box-shadow: 0 18px 44px rgba(0, 0, 0, .45);
}

html.theme-dark .kanso-music__bar {
	box-shadow: 0 -6px 18px rgba(0, 0, 0, .28);
}

html.theme-dark .kanso-music__full {
	background: color-mix(in srgb, #141715 95%, transparent);
	border-color: rgba(255, 255, 255, .1);
}

html.theme-dark .kanso-music__lyric-line.is-current,
html.theme-dark .kanso-music__full-lyrics .kanso-music__lyric-line.is-current {
	color: #f4f7f5;
}

html.theme-dark .kanso-music__bar-artist.is-lyric .kanso-music__bar-lyric-char {
  --km-bar-lyric-base: rgba(244, 247, 245, .38);
}

/* ---------- 减少动态效果偏好 ---------- */

@media (prefers-reduced-motion: reduce) {
	.kanso-music__disc-art,
	.kanso-music.is-playing .kanso-music__disc-art,
	.kanso-music__bar-cover,
	.kanso-music.is-playing .kanso-music__bar-cover {
		animation: none !important;
	}

	.kanso-music.is-playing .kanso-music__song.is-current .kanso-music__eq i {
		animation: none;
		height: 10px;
	}

	.kanso-music.is-open .kanso-music__card,
	.kanso-music.is-full .kanso-music__full {
		animation: none;
	}
}

/* ==========================================================================
   播放器显示模板 + 装饰元素（1.0.87 独立功能）
   --------------------------------------------------------------------------
   模板只负责外观：切换模板时播放器核心逻辑（进度/歌曲/歌词同步/音量/
   播放列表/循环状态）完全不变。装饰均为纯 CSS + 轻量动画，全部限定在
   #kanso-music 内，pointer-events:none，不影响文章阅读与页面滚动。
   变量（JS 注入）：
     --km-corner     面板圆角 px
     --km-shadow     面板阴影 0/1
     --km-deco-conc  装饰浓度 0-1（山水/竹影/纹样整体不透明度）
     --km-deco-mini / --km-deco-card / --km-deco-full  显示模式开关 0/1
   ========================================================================== */

/* ---------- 装饰层基础 ---------- */

.kanso-music__deco {
	position: absolute;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	z-index: 2; /* 在封面模糊背景层(z1)之上、内容同级最底（作为第一个子元素） */
	display: none;
}

.kanso-music.is-open .kanso-music__deco--card {
	display: block;
}

.kanso-music.is-full .kanso-music__deco--full {
	display: block;
}

.kanso-music__deco > * {
	position: absolute;
	pointer-events: none;
}

#kanso-music.km-deco-card-0 .kanso-music__deco--card,
#kanso-music.km-deco-full-0 .kanso-music__deco--full {
	display: none !important;
}

/* 山水水墨背景（内联 SVG：淡青绿山峦 + 水面波光 + 孤舟 + 飞鸟，参照参考图意境） */
.kanso-music__deco-mountain {
	inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 480 360' preserveAspectRatio='xMidYMax slice'%3E%3Cpath d='M0 240 L120 110 L190 190 L265 95 L350 180 L420 130 L480 190 L480 360 L0 360 Z' fill='%239cc0ad' opacity='.30'/%3E%3Cpath d='M0 275 L100 165 L170 235 L245 145 L325 225 L400 165 L480 235 L480 360 L0 360 Z' fill='%236fa58c' opacity='.36'/%3E%3Cpath d='M0 315 L80 240 L145 300 L225 235 L310 295 L385 250 L480 305 L480 360 L0 360 Z' fill='%234e8a70' opacity='.44'/%3E%3Cpath d='M0 360 L0 330 L70 300 L140 335 L220 300 L300 335 L380 305 L480 335 L480 360 Z' fill='%233d705a' opacity='.32'/%3E%3Cpath d='M30 318 h300' stroke='%234e8a70' stroke-opacity='.28' stroke-width='2' fill='none'/%3E%3Cpath d='M110 336 h220' stroke='%234e8a70' stroke-opacity='.20' stroke-width='1.5' fill='none'/%3E%3Cpath d='M330 322 q16 -16 32 0 q-16 16 -32 0z' fill='%233d705a' opacity='.42'/%3E%3Cpath d='M332 314 q5 -3 2 -6' stroke='%233d705a' stroke-opacity='.5' stroke-width='1.5' fill='none'/%3E%3Cpath d='M60 148 q10 -12 22 -8 M72 136 q-2 10 -10 14' stroke='%234e8a70' stroke-opacity='.4' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center bottom;
	opacity: var(--km-deco-conc, .68);
}

/* 竹影与枝叶（内联 SVG：右下角写意竹枝，淡雅，歌词面板透明后可直接透出） */
.kanso-music__deco-bamboo {
	inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 360' preserveAspectRatio='xMaxYMid slice'%3E%3Cg stroke='%233a644f' fill='none' stroke-linecap='round'%3E%3Cpath d='M176 360 Q164 250 176 170 Q188 90 164 10' stroke-width='7' opacity='.55'/%3E%3Cpath d='M142 360 Q138 300 146 250' stroke-width='5' opacity='.42'/%3E%3Cpath d='M168 210 q-24 -10 -34 -30' stroke-width='4' opacity='.45'/%3E%3Cpath d='M174 128 q22 -12 32 -28' stroke-width='4' opacity='.45'/%3E%3Cpath d='M170 60 q-20 -10 -26 -26' stroke-width='4' opacity='.45'/%3E%3C/g%3E%3Cg fill='%233a644f'%3E%3Cpath d='M130 194 q34 4 42 18 q-2 -18 -22 -24 q-14 4 -20 6z' opacity='.40'/%3E%3Cpath d='M208 96 q-34 4 -42 18 q2 -18 24 -22 q12 4 18 4z' opacity='.40'/%3E%3Cpath d='M148 34 q30 4 36 14 q-2 -14 -18 -18 q-12 2 -18 4z' opacity='.40'/%3E%3Cpath d='M118 262 q28 2 34 12 q-2 -12 -20 -16 q-10 2 -14 4z' opacity='.34'/%3E%3C/g%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right bottom;
	background-size: 50% auto;
	opacity: var(--km-deco-conc, .7);
}
/* 歌词区域纹样（青绿水墨线框） */
.kanso-music__lyrics::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, rgba(63, 125, 105, calc(var(--km-deco-conc, .6) * .9)), transparent);
	opacity: .55;
	pointer-events: none;
}

#kanso-music.km-deco-lyric-0 .kanso-music__lyrics::before {
	display: none;
}

/* 视频背景（仅 bg_mode=video 时创建；展开/全屏显示，关闭即暂停） */
.kanso-music__bg-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: blur(var(--km-blur, 0px));
	opacity: var(--km-bg-opacity, .85);
	z-index: 0;
	pointer-events: none;
	display: none;
}

.kanso-music.is-open .kanso-music__bg-video--card {
	display: block;
}

.kanso-music.is-full .kanso-music__bg-video--full {
	display: block;
}

/* ---------- 面板圆角 / 阴影开关 ---------- */

#kanso-music {
	--km-corner: 18px;
	--km-shadow: 1;
}

.kanso-music__card,
.kanso-music__full,
.kanso-music__playlist {
	border-radius: var(--km-corner, 18px);
}

#kanso-music.km-shadow-0 .kanso-music__card,
#kanso-music.km-shadow-0 .kanso-music__full,
#kanso-music.km-shadow-0 .kanso-music__playlist,
#kanso-music.km-shadow-0 .kanso-music__disc-art {
	box-shadow: none !important;
}

/* 唱片光晕（小播放器装饰开关） */
#kanso-music.km-deco-mini-0 .kanso-music__disc::before {
	display: none;
}

/* 唱片旋转装饰开关 */
#kanso-music.km-deco-disc-0.is-playing .kanso-music__disc-art,
#kanso-music.km-deco-disc-0.is-playing .kanso-music__bar-cover {
	animation: none !important;
}

/* ---------- 模板一：新中式山水（默认，参照玻璃拟态诗意播放器：白玻璃 + 淡青绿 + 水墨） ---------- */

#kanso-music.kanso-music--tmpl-landscape {
	--kanso-music-accent: #3f8d74;
	color: #33564a;
}

.kanso-music--tmpl-landscape .kanso-music__card {
	background: color-mix(in srgb, #ffffff var(--kanso-music-surface, 72%), transparent);
	backdrop-filter: blur(16px) saturate(1.25);
	-webkit-backdrop-filter: blur(16px) saturate(1.25);
	border-color: rgba(110, 170, 145, .30);
	border-radius: var(--km-corner, 20px);
	box-shadow: 0 20px 48px rgba(60, 115, 95, .16);
}

.kanso-music--tmpl-landscape .kanso-music__card-title {
	color: #2c4f41;
}

.kanso-music--tmpl-landscape .kanso-music__card-artist,
.kanso-music--tmpl-landscape .kanso-music__lyric-line:not(.is-current) {
	color: #5d8575;
}

.kanso-music--tmpl-landscape .kanso-music__full {
	background: color-mix(in srgb, #ffffff 78%, transparent);
	backdrop-filter: blur(18px) saturate(1.2);
	-webkit-backdrop-filter: blur(18px) saturate(1.2);
	color: #33564a;
}

.kanso-music--tmpl-landscape .kanso-music__full-title {
	color: #2c4f41;
}

.kanso-music--tmpl-landscape .kanso-music__full-artist {
	color: #5d8575;
}

.kanso-music--tmpl-landscape .kanso-music__bar {
	background: color-mix(in srgb, #ffffff var(--kanso-music-surface, 80%), transparent);
	backdrop-filter: blur(14px) saturate(1.25);
	-webkit-backdrop-filter: blur(14px) saturate(1.25);
	border-color: rgba(110, 170, 145, .28);
}

.kanso-music--tmpl-landscape .kanso-music__card-cover,
.kanso-music--tmpl-landscape .kanso-music__full-cover {
	border: 1px solid rgba(110, 170, 145, .30);
	box-shadow: 0 8px 20px rgba(60, 115, 95, .18);
}

.kanso-music--tmpl-landscape .kanso-music__btn:not(.kanso-music__btn--play):hover {
	background: rgba(110, 170, 145, .18);
}

html.theme-dark .kanso-music--tmpl-landscape .kanso-music__card {
	background: color-mix(in srgb, #15201b var(--kanso-music-surface, 78%), transparent);
	border-color: rgba(120, 190, 160, .20);
}

html.theme-dark .kanso-music--tmpl-landscape .kanso-music__full {
	background: color-mix(in srgb, #111a16 86%, transparent);
}

html.theme-dark .kanso-music--tmpl-landscape .kanso-music__bar {
	background: color-mix(in srgb, #15201b var(--kanso-music-surface, 80%), transparent);
	border-color: rgba(120, 190, 160, .20);
}

/* ---------- 模板二：极简磨砂（半透明玻璃 + 柔和阴影 + 简洁线条） ---------- */

.kanso-music--tmpl-frosted .kanso-music__card {
	background: color-mix(in srgb, #ffffff var(--kanso-music-surface, 55%), transparent);
	backdrop-filter: blur(24px) saturate(1.5);
	-webkit-backdrop-filter: blur(24px) saturate(1.5);
	border-color: rgba(255, 255, 255, .55);
	border-radius: var(--km-corner, 18px);
	box-shadow: 0 16px 40px rgba(30, 40, 35, .14);
}

.kanso-music--tmpl-frosted .kanso-music__full {
	background: color-mix(in srgb, #ffffff 55%, transparent);
	backdrop-filter: blur(28px) saturate(1.4);
	-webkit-backdrop-filter: blur(28px) saturate(1.4);
}

.kanso-music--tmpl-frosted .kanso-music__bar {
	background: color-mix(in srgb, #ffffff var(--kanso-music-surface, 55%), transparent);
	backdrop-filter: blur(18px) saturate(1.4);
	-webkit-backdrop-filter: blur(18px) saturate(1.4);
	border-color: rgba(255, 255, 255, .5);
	box-shadow: 0 -8px 24px rgba(30, 40, 35, .10);
}

html.theme-dark .kanso-music--tmpl-frosted .kanso-music__card {
	background: color-mix(in srgb, #1d2322 var(--kanso-music-surface, 55%), transparent);
	border-color: rgba(255, 255, 255, .14);
}

html.theme-dark .kanso-music--tmpl-frosted .kanso-music__full {
	background: color-mix(in srgb, #161b1a 58%, transparent);
}

html.theme-dark .kanso-music--tmpl-frosted .kanso-music__bar {
	background: color-mix(in srgb, #1d2322 var(--kanso-music-surface, 55%), transparent);
	border-color: rgba(255, 255, 255, .14);
}

/* ---------- 模板四：深色夜听（深色半透明 + 低亮度装饰 + 青绿按钮） ---------- */

#kanso-music.kanso-music--tmpl-night {
	--kanso-music-accent: #4fd6b0;
	color: #d9e6e1;
}

.kanso-music--tmpl-night .kanso-music__card {
	background: color-mix(in srgb, #0e1714 var(--kanso-music-surface, 78%), transparent);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	border-color: rgba(90, 200, 165, .16);
	border-radius: var(--km-corner, 16px);
	box-shadow: 0 18px 44px rgba(0, 0, 0, .5);
	color: #d9e6e1;
}

.kanso-music--tmpl-night .kanso-music__card-title,
.kanso-music--tmpl-night .kanso-music__full-title {
	color: #eef7f2;
}

.kanso-music--tmpl-night .kanso-music__card-artist,
.kanso-music--tmpl-night .kanso-music__full-artist {
	color: #7fa99b;
}

.kanso-music--tmpl-night .kanso-music__full {
	background: color-mix(in srgb, #0b1210 92%, transparent);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	color: #d9e6e1;
}

.kanso-music--tmpl-night .kanso-music__bar {
	background: color-mix(in srgb, #0e1714 var(--kanso-music-surface, 78%), transparent);
	border-color: rgba(90, 200, 165, .16);
	color: #d9e6e1;
}

.kanso-music--tmpl-night .kanso-music__lyric-line:not(.is-current),
.kanso-music--tmpl-night .kanso-music__full-lyrics .kanso-music__lyric-line:not(.is-current) {
	color: #7fa99b;
}

.kanso-music--tmpl-night .kanso-music__song:not(.is-current) .kanso-music__song-title {
	color: #c6d6cf;
}

/* 夜听模板降低装饰亮度（低亮度装饰） */
.kanso-music--tmpl-night .kanso-music__deco-mountain {
	opacity: calc(var(--km-deco-conc, .6) * .55);
}

.kanso-music--tmpl-night .kanso-music__deco-bamboo {
	opacity: calc(var(--km-deco-conc, .6) * .45);
}

/* ---------- 移动端自动减少装饰 ---------- */

@media (max-width: 767px) {
	#kanso-music.km-mobile-simple .kanso-music__deco-mountain,
	#kanso-music.km-mobile-simple .kanso-music__deco-bamboo,
	#kanso-music.km-mobile-simple .kanso-music__deco-petal,
	#kanso-music.km-mobile-simple .kanso-music__deco-mist,
	#kanso-music.km-mobile-simple .kanso-music__deco-floral {
		display: none !important;
	}

	#kanso-music.km-mobile-simple .kanso-music__deco--full {
		display: none !important;
	}
}

/* ==========================================================================
   模板五：玻璃拟态·诗意山水（1.0.87 新增，上下双玻璃面板）
   参考图风格：半透明磨砂玻璃 + 雾白与浅青绿 + 山水/竹叶/云雾/花枝装饰 +
   黑胶唱片元素。仅改外观与布局，播放/歌词/进度/音量/列表/循环逻辑不变。
   ========================================================================== */

/* 轻淡云雾（顶部雾霭，纯 CSS 径向渐变，无外部资源） */
.kanso-music__deco-mist {
	inset: 0;
	background:
		radial-gradient(ellipse 72% 36% at 24% 10%, rgba(255, 255, 255, .55), transparent 70%),
		radial-gradient(ellipse 58% 28% at 74% 20%, rgba(255, 255, 255, .42), transparent 65%),
		radial-gradient(ellipse 44% 22% at 50% 6%, rgba(255, 255, 255, .35), transparent 60%);
	opacity: var(--km-deco-conc, .6);
}

/* 低透明度花枝（内联 SVG：梅枝 + 淡粉梅花，左上角） */
.kanso-music__deco-floral {
	inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 260' preserveAspectRatio='xMinYMid slice'%3E%3Cg stroke='%233f6b58' fill='none' stroke-width='2'%3E%3Cpath d='M-4 250 Q26 190 64 196 Q92 200 128 152 Q148 122 176 92' opacity='.40'/%3E%3Cpath d='M58 200 Q52 158 26 128' opacity='.34'/%3E%3Cpath d='M118 168 Q140 132 108 102' opacity='.34'/%3E%3Cpath d='M150 118 q16 -14 28 -10' opacity='.30'/%3E%3C/g%3E%3Cg fill='%23e2b3c2' opacity='.55'%3E%3Cg%3E%3Ccircle cx='26' cy='128' r='4'/%3E%3Ccircle cx='38' cy='120' r='4'/%3E%3Ccircle cx='42' cy='134' r='4'/%3E%3Ccircle cx='30' cy='140' r='4'/%3E%3Ccircle cx='34' cy='130' r='2.6' fill='%23c9889c'/%3E%3C/g%3E%3Cg%3E%3Ccircle cx='108' cy='102' r='4'/%3E%3Ccircle cx='120' cy='94' r='4'/%3E%3Ccircle cx='124' cy='108' r='4'/%3E%3Ccircle cx='112' cy='114' r='4'/%3E%3Ccircle cx='116' cy='104' r='2.6' fill='%23c9889c'/%3E%3C/g%3E%3Cg%3E%3Ccircle cx='176' cy='92' r='4'/%3E%3Ccircle cx='188' cy='84' r='4'/%3E%3Ccircle cx='192' cy='98' r='4'/%3E%3Ccircle cx='180' cy='104' r='4'/%3E%3Ccircle cx='184' cy='94' r='2.6' fill='%23c9889c'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: left top;
	background-size: 44% auto;
	opacity: var(--km-deco-conc, .6);
}

#kanso-music.kanso-music--tmpl-poetic {
	--kanso-music-accent: #2f7d66;
	--km-corner-poetic: 26px;
	color: #38594d;
}

/* —— 上方播放控制面板（玻璃卡片本体）：桌面端居中 —— */
.kanso-music--tmpl-poetic .kanso-music__card {
	position: fixed;
	right: auto;
	left: 50%;
	transform: translateX(-50%);
	bottom: 96px;
	width: 348px;
	max-height: min(680px, calc(100vh - 150px));
	border-radius: var(--km-corner-poetic, 26px);
	background: color-mix(in srgb, #ffffff var(--kanso-music-surface, 68%), transparent);
	backdrop-filter: blur(20px) saturate(1.35);
	-webkit-backdrop-filter: blur(20px) saturate(1.35);
	border: 1px solid rgba(255, 255, 255, .70);
	box-shadow: 0 24px 56px rgba(45, 85, 70, .18);
}

/* 上方面板内部间距：封面信息 / 控制 / 进度 / 音量 紧凑成一块 */
.kanso-music--tmpl-poetic .kanso-music__card-head {
	padding: 16px 16px 4px;
}

.kanso-music--tmpl-poetic .kanso-music__card-cover {
	width: 64px;
	height: 64px;
	border-radius: 12px;
	border: 1px solid rgba(110, 170, 145, .30);
	box-shadow: 0 10px 24px rgba(45, 85, 70, .22);
}

/* 黑胶唱片装饰：从封面右侧露出一部分（纯 CSS，无图片资源） */
.kanso-music--tmpl-poetic .kanso-music__card-cover::after {
	content: "";
	position: absolute;
	top: 50%;
	left: calc(100% - 38px);
	width: 84px;
	height: 84px;
	margin-top: -42px;
	border-radius: 50%;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(circle at 50% 50%, #cfd8d2 0 5px, #232b28 6px 15px, #151c19 16px 84px),
		repeating-radial-gradient(circle at 50% 50%, rgba(255, 255, 255, .055) 0 2px, transparent 2px 7px);
	box-shadow: 0 6px 16px rgba(20, 45, 38, .28), 0 0 0 1px rgba(255, 255, 255, .14);
}

/* 播放时黑胶缓慢旋转（与「唱片旋转装饰」开关联动） */
#kanso-music.kanso-music--tmpl-poetic.is-playing .kanso-music__card-cover::after {
	animation: kanso-music-spin 14s linear infinite;
}

#kanso-music.km-deco-disc-0.kanso-music--tmpl-poetic .kanso-music__card-cover::after {
	display: none;
}

.kanso-music--tmpl-poetic .kanso-music__card-title {
	color: #2c4f41;
}

.kanso-music--tmpl-poetic .kanso-music__card-artist {
	color: #5d8575;
}

.kanso-music--tmpl-poetic .kanso-music__controls {
	padding: 6px 0 2px;
}

.kanso-music--tmpl-poetic .kanso-music__btn--play {
	box-shadow: 0 6px 18px rgba(47, 125, 102, .32);
}

.kanso-music--tmpl-poetic .kanso-music__progress {
	padding: 4px 16px 0;
}

.kanso-music--tmpl-poetic .kanso-music__volume {
	padding: 4px 16px 12px;
}

/* 进度条：已播深青绿、未播浅灰绿 */
.kanso-music--tmpl-poetic input[type="range"]::-webkit-slider-runnable-track {
	background: linear-gradient(
		to right,
		var(--kanso-music-accent, #2f7d66) 0 var(--kanso-music-fill, 0%),
		rgba(178, 196, 188, .55) var(--kanso-music-fill, 0%) 100%
	);
}

.kanso-music--tmpl-poetic input[type="range"]::-moz-range-track {
	background: linear-gradient(
		to right,
		var(--kanso-music-accent, #2f7d66) 0 var(--kanso-music-fill, 0%),
		rgba(178, 196, 188, .55) var(--kanso-music-fill, 0%) 100%
	);
}

/* —— 下方歌词玻璃面板：独立玻璃卡片，与上方面板留出间距 —— */
.kanso-music--tmpl-poetic .kanso-music__lyrics {
	position: relative;
	margin: 8px 12px 0;
	max-height: 240px;
	border-radius: 20px 20px 0 0;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, .62);
	border-bottom: none;
	box-shadow: 0 8px 24px rgba(45, 85, 70, .10);
	padding: 32px 12px 6px;
	scrollbar-width: thin;
	scrollbar-color: rgba(120, 160, 145, .4) transparent;
}
.kanso-music--tmpl-poetic .kanso-music__lyrics::-webkit-scrollbar {
	width: 4px;
	background: transparent;
}
.kanso-music--tmpl-poetic .kanso-music__lyrics::-webkit-scrollbar-track {
	background: transparent;
}
.kanso-music--tmpl-poetic .kanso-music__lyrics::-webkit-scrollbar-thumb {
	background: rgba(120, 160, 145, .4);
	border-radius: 2px;
}

/* 「歌词」标签（顶部分隔；评论标签不做假功能，全屏歌词入口在底部操作区） */
.kanso-music--tmpl-poetic .kanso-music__lyrics::before {
	content: "歌词";
	position: absolute;
	top: 9px;
	left: 14px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	color: var(--kanso-music-accent, #2f7d66);
	pointer-events: none;
}

/* 歌词：当前行深青绿高亮 + 左侧细标记；非当前行柔和灰蓝绿 */
.kanso-music--tmpl-poetic .kanso-music__lyric-line {
	position: relative;
	color: #7c9a8c;
}

.kanso-music--tmpl-poetic .kanso-music__lyric-line.is-current {
	color: var(--kanso-music-accent, #2f7d66);
	font-weight: 700;
}

/* —— 面板底部操作区：三个均匀圆角按钮（循环 / 全屏歌词 / 播放列表）—— */
.kanso-music--tmpl-poetic .kanso-music__footer {
	margin: 0 12px 14px;
	border-radius: 0 0 20px 20px;
	background: color-mix(in srgb, #ffffff 58%, transparent);
	backdrop-filter: blur(14px) saturate(1.2);
	-webkit-backdrop-filter: blur(14px) saturate(1.2);
	border: 1px solid rgba(255, 255, 255, .62);
	border-top: none;
	box-shadow: 0 10px 26px rgba(45, 85, 70, .10);
	padding: 8px;
	gap: 8px;
}.kanso-music--tmpl-poetic .kanso-music__footer button svg {
	width: 15px;
	height: 15px;
}

.kanso-music--tmpl-poetic .kanso-music__footer button:hover {
	background: rgba(110, 170, 145, .16);
}

/* —— 全屏歌词（诗意模板：整屏白玻璃 + 山水装饰）—— */
.kanso-music--tmpl-poetic .kanso-music__full {
	background: color-mix(in srgb, #ffffff 82%, transparent);
	backdrop-filter: blur(22px) saturate(1.25);
	-webkit-backdrop-filter: blur(22px) saturate(1.25);
	color: #38594d;
}

.kanso-music--tmpl-poetic .kanso-music__full-title {
	color: #2c4f41;
}

.kanso-music--tmpl-poetic .kanso-music__full-artist {
	color: #5d8575;
}

.kanso-music--tmpl-poetic .kanso-music__full-lyrics .kanso-music__lyric-line:not(.is-current) {
	color: #7c9a8c;
}

.kanso-music--tmpl-poetic .kanso-music__full-lyrics .kanso-music__lyric-line.is-current {
	color: var(--kanso-music-accent, #2f7d66);
}

/* —— 深色模式适配 —— */
html.theme-dark .kanso-music--tmpl-poetic .kanso-music__card {
	background: color-mix(in srgb, #141d1a var(--kanso-music-surface, 68%), transparent);
	border-color: rgba(255, 255, 255, .16);
}

html.theme-dark .kanso-music--tmpl-poetic .kanso-music__lyrics {
	background: transparent;
	border-color: rgba(255, 255, 255, .14);
}
html.theme-dark .kanso-music--tmpl-poetic .kanso-music__footer {
	background: color-mix(in srgb, #16201c 62%, transparent);
	border-color: rgba(255, 255, 255, .14);
}
html.theme-dark .kanso-music--tmpl-poetic .kanso-music__full {
	background: color-mix(in srgb, #101815 86%, transparent);
}

html.theme-dark .kanso-music--tmpl-poetic .kanso-music__lyric-line:not(.is-current),
html.theme-dark .kanso-music--tmpl-poetic .kanso-music__full-lyrics .kanso-music__lyric-line:not(.is-current) {
	color: #86a396;
}

html.theme-dark .kanso-music--tmpl-poetic .kanso-music__footer button {
	background: rgba(255, 255, 255, .08);
	border-color: rgba(140, 200, 175, .22);
	color: #bcd6cb;
}
/* —— 诗意模板：歌词标签不受「歌词区域纹样」开关误伤（特异性修复）—— */
#kanso-music.km-deco-lyric-0.kanso-music--tmpl-poetic .kanso-music__lyrics::before {
	display: block;
}

/* 诗意模板歌词面板淡水墨山水纹样（受「歌词区域纹样」开关控制） */
.kanso-music--tmpl-poetic .kanso-music__lyrics::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 120' preserveAspectRatio='xMaxYMax slice'%3E%3Cg fill='none' stroke='%233f6b58'%3E%3Cpath d='M-10 118 Q40 96 86 108 Q120 116 150 104 Q184 92 230 102' stroke-width='2.4' opacity='.30'/%3E%3Cpath d='M-10 100 Q52 74 108 90 Q150 100 230 82' stroke-width='1.6' opacity='.20'/%3E%3Cpath d='M20 118 L70 66 Q100 42 138 66 L176 118' stroke-width='1.4' opacity='.14' fill='%23ffffff' fill-opacity='.10'/%3E%3C/g%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right bottom;
	background-size: 58% auto;
	opacity: .8;
}

#kanso-music.km-deco-lyric-0.kanso-music--tmpl-poetic .kanso-music__lyrics::after {
	display: none;
}

/* 歌词区：所有模板统一隐藏原生滚动条，但保留鼠标滚轮、触摸和自动歌词滚动。
 * 不依赖模板 class，避免桌面端因模板设置或缓存导致白色滚动槽残留。
 */
#kanso-music .kanso-music__lyrics,
#kanso-music .kanso-music__full-lyrics {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
#kanso-music .kanso-music__lyrics::-webkit-scrollbar,
#kanso-music .kanso-music__full-lyrics::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  background: transparent !important;
}
#kanso-music .kanso-music__lyrics::-webkit-scrollbar-track,
#kanso-music .kanso-music__full-lyrics::-webkit-scrollbar-track,
#kanso-music .kanso-music__lyrics::-webkit-scrollbar-thumb,
#kanso-music .kanso-music__full-lyrics::-webkit-scrollbar-thumb {
  display: none !important;
  background: transparent !important;
  border: 0 !important;
}


/* 清屏外框几何锁：尺寸与视口位置取自进入清屏前的真实卡片矩形，避免自动高度塌成正方形。 */
#kanso-music.km-clean-geometry-locked .kanso-music__card {
  left: var(--km-lock-left) !important;
  top: var(--km-lock-top) !important;
  right: auto !important;
  bottom: var(--km-lock-bottom, auto) !important;
  width: var(--km-lock-width) !important;
  height: var(--km-lock-height) !important;
  min-height: var(--km-lock-height) !important;
  max-height: none !important;
  box-sizing: border-box !important;
  flex: none !important;
  transform: none !important;
}

/* 1.0.94：手机端清屏外框安全下限 —— 即使 JS 几何锁未生效（异常/时机问题），
   外框高度也不低于卡片宽度（1×宽兜底，防塌成正方形）；锁生效时
   min-height 仍以锁定的 1.25×宽 为准，此规则不产生冲突。 */
@media (max-width: 767px) {
  #kanso-music.km-clean-screen.is-open .kanso-music__card {
    min-height: calc(100vw - 24px) !important;
  }
}

/* ---------- 1.0.87：视频式清屏播放模式（修正版） ---------- */
/* 清屏只隐藏控件；不重设卡片定位、宽高、比例或模板原有布局。 */
#kanso-music.km-clean-screen.is-open.km-has-bg .kanso-music__card::after {
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.20) 50%, rgba(0,0,0,.24));
}
/* 列表打开（is-list-open）时视为控件可见：清屏不再隐藏任何控件与列表本身，
   避免「打开播放列表后控件/列表被清屏规则强制隐藏」。 */
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__card-head,
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__controls,
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__progress,
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__volume,
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__footer,
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__playlist,
#kanso-music.km-clean-screen:not(.km-controls-visible) .kanso-music__disc {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
/* 1.0.95：底部导航栏（kanso-music__bar）在清屏模式下保持常驻可见——
   上面只有卡片内控件隐藏，底部栏始终提供「清屏」按钮可随时退出，
   不会出现“进得去出不来、底部导航消失”。 */
/* 歌词仍在原播放器卡片内部居中，不扩大卡片、不改变字幕原始字号。 */
/* 列表打开（is-list-open）时歌词恢复原位，不覆盖播放列表面板。 */
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__lyrics {
  position: absolute !important;
  inset: 12px 12px !important;
  top: 12px !important;
  bottom: 12px !important;
  left: 12px !important;
  right: 12px !important;
  width: auto !important;
  height: auto !important;
  flex: none !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 12px 4px 24px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  transform: none !important;
  border: 0 !important;
  background: transparent !important;
  text-align: center;
  scrollbar-width: none;
  /* 字幕显示不全修复：原 8% 淡出区过大，边缘行被淡化看不清；
     改为上下 2.5% 极窄淡出，保证首末行字幕清晰完整。 */
  mask-image: var(--km-sub-mask, linear-gradient(to bottom, transparent, #000 2.5%, #000 97.5%, transparent));
  -webkit-mask-image: var(--km-sub-mask, linear-gradient(to bottom, transparent, #000 2.5%, #000 97.5%, transparent));
}
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__lyrics::before,
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__lyrics::after {
  display: none !important;
}
/* 字幕样式由后台「字幕样式」区块调节（1.0.87）：变量默认值=播放器默认字幕样式，
   关闭自定义时行为与旧版完全一致。 */
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__lyrics-inner {
  width: 100%;
  text-align: var(--km-sub-align, center);
}
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__lyric-line {
  color: var(--km-sub-color, #fff) !important;
  font-size: var(--km-sub-size, inherit) !important;
  font-weight: var(--km-sub-weight, inherit) !important;
  line-height: var(--km-sub-lineheight, inherit) !important;
  text-shadow: var(--km-sub-shadow, 0 1px 2px rgba(0,0,0,.98), 0 0 5px rgba(0,0,0,.92), 0 0 10px rgba(0,0,0,.55)) !important;
  -webkit-text-stroke: var(--km-sub-stroke, .2px rgba(0,0,0,.65));
}
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__lyric-line.is-current {
  color: var(--km-sub-color, #fff) !important;
  text-shadow: var(--km-sub-shadow, 0 1px 2px #000, 0 0 6px rgba(0,0,0,.98), 0 0 12px rgba(0,0,0,.65)) !important;
  -webkit-text-stroke: var(--km-sub-stroke, .25px rgba(0,0,0,.75));
}
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__lyric-line.is-current::before {
  display: none !important;
}
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__lyric-note,
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__lyric-hint {
  color: var(--km-sub-color, #fff) !important;
  text-shadow: var(--km-sub-shadow, 0 1px 2px #000, 0 0 6px rgba(0,0,0,.95)) !important;
}
#kanso-music.km-clean-screen.km-controls-visible.is-open .kanso-music__card-head,
#kanso-music.km-clean-screen.km-controls-visible.is-open .kanso-music__controls,
#kanso-music.km-clean-screen.km-controls-visible.is-open .kanso-music__progress,
#kanso-music.km-clean-screen.km-controls-visible.is-open .kanso-music__volume,
#kanso-music.km-clean-screen.km-controls-visible.is-open .kanso-music__footer {
  transition: opacity .2s ease, visibility .2s ease;
}
/* 白天模式：保持模板原有文字色（浅色背景上不强制白色） */
/* 夜间模式：清屏下白字 + 深色投影 */
html.theme-dark #kanso-music.km-clean-screen.is-open .kanso-music__card-title,
html.theme-dark #kanso-music.km-clean-screen.is-open .kanso-music__card-artist,
html.theme-dark #kanso-music.km-clean-screen.is-open .kanso-music__time,
html.theme-dark #kanso-music.km-clean-screen.is-open .kanso-music__close,
html.theme-dark #kanso-music.km-clean-screen.is-open .kanso-music__vol-btn {
  color: #fff !important;
  text-shadow: 0 1px 4px rgba(0,0,0,.9);
}
/* 白天模式：进度/音量/导航用浅色玻璃，与各模板协调（不再出现黑块） */
#kanso-music.km-clean-screen.is-open:not(html.theme-dark) .kanso-music__progress,
#kanso-music.km-clean-screen.is-open:not(html.theme-dark) .kanso-music__volume,
#kanso-music.km-clean-screen.is-open:not(html.theme-dark) .kanso-music__footer {
  background: rgba(255,255,255,.5);
  border-color: rgba(120,170,145,.35);
  border-radius: 14px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
/* 夜间模式：保留深色底，保证白字对比度 */
html.theme-dark #kanso-music.km-clean-screen.is-open .kanso-music__progress,
html.theme-dark #kanso-music.km-clean-screen.is-open .kanso-music__volume,
html.theme-dark #kanso-music.km-clean-screen.is-open .kanso-music__footer {
  background: rgba(0,0,0,.28);
  border-color: rgba(255,255,255,.28);
  border-radius: 14px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
#kanso-music.km-clean-screen.is-open .kanso-music__lyrics { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  #kanso-music.km-clean-screen.is-open .kanso-music__lyrics,
  #kanso-music.km-clean-screen.is-open .kanso-music__lyric-line { transition: none !important; }
}

/* ==========================================================================
   1.0.89：展开卡片固定尺寸（桌面端）
   --------------------------------------------------------------------------
   原卡片高度随内容（歌词加载/有无歌词/列表开合）自动变化，歌词未加载或
   关闭歌词时可能塌成接近正方形。现桌面端展开后固定高度、歌词区弹性填充，
   播放器大小不再随内容跳动；播放列表打开时仍允许自然增高。
   ========================================================================== */
@media (min-width: 768px) {
  /* 歌词开启时固定卡片高度；关闭歌词时保持内容自适应，不出现大块空白 */
  #kanso-music.kanso-music.km-lyric-on .kanso-music__card {
    height: min(480px, calc(100vh - 120px));
  }
  #kanso-music.kanso-music--tmpl-poetic.km-lyric-on .kanso-music__card {
    height: min(560px, calc(100vh - 150px));
  }
  /* 未打开播放列表：歌词区弹性填充卡片剩余高度（不再受 150px 上限约束） */
  #kanso-music.kanso-music.km-lyric-on:not(.is-list-open) .kanso-music__lyrics {
    flex: 1 1 auto;
    min-height: 96px;
    max-height: none;
  }
  /* 打开播放列表：卡片高度恢复自适应，歌词区回到固定上限，避免列表挤压歌词 */
  #kanso-music.is-list-open .kanso-music__card {
    height: auto;
  }
  #kanso-music.is-list-open .kanso-music__lyrics {
    flex: none;
    max-height: 150px;
  }
  /* 清屏几何锁开启时打开播放列表：释放锁定高度，让列表自然展开不被裁切；
     关闭列表后 is-list-open 移除，锁定的宽高自动重新生效。
     1.0.92：释放后高度仍以视口为上限（手机端 top 接近屏幕底部时，
     避免列表把卡片底部长出屏幕）。 */
  #kanso-music.km-clean-geometry-locked.is-list-open .kanso-music__card {
    height: auto !important;
    min-height: auto !important;
    max-height: calc(100vh - var(--km-lock-top, 0px) - 8px) !important;
  }
}

/* ==========================================================================
   1.0.89：播放器默认样式字幕（展开播放器内小歌词）自定义
   --------------------------------------------------------------------------
   仅在后台开启「播放器默认样式字幕」后生效（JS 注入 km-ply-custom 类）；
   变量默认值 = 播放器原有内置字幕样式，关闭时模板配色 / 深色模式适配完全不变。
   ========================================================================== */
#kanso-music.km-ply-custom:not(.km-clean-screen) .kanso-music__lyrics-inner {
  text-align: var(--km-ply-align, left);
}
#kanso-music.km-ply-custom .kanso-music__lyric-line {
  color: var(--km-ply-color, #7a807a) !important;
  font-size: var(--km-ply-size, 13px) !important;
  font-weight: var(--km-ply-weight, 600) !important;
  line-height: var(--km-ply-lineheight, 1.6) !important;
  text-shadow: var(--km-ply-shadow, none);
  -webkit-text-stroke: var(--km-ply-stroke, 0);
}
#kanso-music.km-ply-custom .kanso-music__lyric-line.is-current {
  font-size: calc(var(--km-ply-size, 13px) + 2px) !important;
}
#kanso-music.km-ply-custom .kanso-music__lyric-hint,
#kanso-music.km-ply-custom .kanso-music__lyric-note {
  color: var(--km-ply-color, #7a807a) !important;
  text-shadow: var(--km-ply-shadow, none);
}

/* 字符级逐进度显色使用裁切前景层，不再用 background-clip 渐变绘制文字。 */
/* 1.0.96：清屏模式恢复旧版纯净画面，底部导航栏不常驻。
   根节点 pointerdown 监听仍保留，点击可见的播放器区域即可短暂唤出卡片控件。 */
#kanso-music.km-clean-screen.is-open .kanso-music__bar {
  display: none !important;
}

/* 当前行使用其本色作为未唱文字颜色；读过部分仅切换到主题填充色。 */
#kanso-music .kanso-music__lyric-line.is-current {
  --km-lyric-source-color: var(--kanso-clean-muted, rgba(0, 0, 0, .55));
  --km-lyric-accent-color: var(--kanso-music-lyric-read, var(--kanso-music-accent, #2f7d66));
  --km-lyric-fill-color: var(--km-lyric-accent-color);
  color: var(--km-lyric-source-color) !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  text-shadow: none !important;
  -webkit-text-stroke: 0 !important;
}
/* 清屏字幕设置器的高优先级规则会给整行重新加阴影和描边；动态歌词统一清除。 */
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__lyric-line,
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__full-lyrics .kanso-music__lyric-line {
  text-shadow: none !important;
  -webkit-text-stroke: 0 !important;
}
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__lyric-line.is-current,
#kanso-music.km-clean-screen.is-open:not(.km-controls-visible):not(.is-list-open) .kanso-music__full-lyrics .kanso-music__lyric-line.is-current {
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  text-shadow: none !important;
  -webkit-text-stroke: 0 !important;
}
#kanso-music.kanso-music--tmpl-landscape .kanso-music__lyric-line.is-current,
#kanso-music.kanso-music--tmpl-landscape .kanso-music__full-lyrics .kanso-music__lyric-line.is-current {
  --km-lyric-source-color: #5d8575;
  color: var(--km-lyric-source-color) !important;
}
#kanso-music.kanso-music--tmpl-night .kanso-music__lyric-line.is-current,
#kanso-music.kanso-music--tmpl-night .kanso-music__full-lyrics .kanso-music__lyric-line.is-current {
  --km-lyric-source-color: #7fa99b;
  color: var(--km-lyric-source-color) !important;
}
#kanso-music.kanso-music--tmpl-poetic .kanso-music__lyric-line.is-current,
#kanso-music.kanso-music--tmpl-poetic .kanso-music__full-lyrics .kanso-music__lyric-line.is-current {
  --km-lyric-source-color: #7c9a8c;
  color: var(--km-lyric-source-color) !important;
}
html.theme-dark #kanso-music.kanso-music--tmpl-poetic .kanso-music__lyric-line.is-current,
html.theme-dark #kanso-music.kanso-music--tmpl-poetic .kanso-music__full-lyrics .kanso-music__lyric-line.is-current {
  --km-lyric-source-color: #86a396;
  color: var(--km-lyric-source-color) !important;
}
#kanso-music.km-ply-custom:not(.km-clean-screen) .kanso-music__lyric-line.is-current {
  color: var(--km-ply-color, #111) !important;
  --km-lyric-source-color: var(--km-ply-color, #111);
  --km-lyric-accent-color: var(--km-ply-read, var(--kanso-music-accent, #2f7d66));
  --km-lyric-fill-color: var(--km-lyric-accent-color);
}
#kanso-music.km-clean-screen .kanso-music__lyric-line.is-current {
  --km-lyric-source-color: var(--km-sub-color, #fff);
  --km-lyric-accent-color: var(--km-sub-current, var(--kanso-music-accent, #2f7d66));
  --km-lyric-fill-color: var(--km-lyric-accent-color);
}
#kanso-music .kanso-music__lyric-line.is-current .kanso-music__lyric-char {
  position: relative;
  display: inline-block;
  vertical-align: baseline;
}
#kanso-music .kanso-music__lyric-line.is-current .kanso-music__lyric-char[data-km-fill="active"]::after,
#kanso-music .kanso-music__lyric-line.is-current .kanso-music__lyric-char[data-km-fill="done"]::after {
  content: attr(data-char);
  position: absolute;
  inset: 0;
  overflow: hidden;
  color: var(--km-lyric-fill-color);
  white-space: pre;
  line-height: inherit;
  font: inherit;
  pointer-events: none;
}
#kanso-music .kanso-music__lyric-line.is-current .kanso-music__lyric-char[data-km-fill="active"]::after {
  clip-path: inset(0 calc(100% - var(--kanso-char-progress, 0%)) 0 0);
}
#kanso-music .kanso-music__lyric-line.is-current .kanso-music__lyric-char[data-km-fill="done"]::after {
  clip-path: inset(0);
}

/* 桌面全屏歌词覆盖在播放器卡片上时，卡片中的同一句歌词会透过半透明全屏层，
   形成上下两层且字宽不同的错速观感；全屏状态只显示全屏歌词副本。 */
@media (min-width: 768px) {
	#kanso-music.is-full .kanso-music__card {
		visibility: hidden !important;
		pointer-events: none !important;
	}
}

