@charset "UTF-8";
/**
 * codemotion.css — CodeMotion 覆盖层（VISCSS 可选模块，配合 codemotion.js）
 * 命名空间：.cm-*；强调色 --cm-accent，缺省回退到 --accent-cyan / --accent-primary。
 * 静止态不可见，只有 Web Animations 播放时出现；覆盖层固定在视口并裁剪，不影响页面尺寸与点击。
 */
.cm-layer {
	position: fixed;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	z-index: 1070;
}
.cm-layer > * {
	position: absolute;
	opacity: 0;
	will-change: transform, opacity;
}
.cm-scan,
.cm-press {
	height: 1px;
	transform-origin: 0 50%;
	background: linear-gradient(90deg, color-mix(in srgb, var(--cm-accent, var(--accent-cyan, var(--accent-primary, #a1d7df))) 25%, transparent), var(--cm-accent, var(--accent-cyan, var(--accent-primary, #a1d7df))));
}
.cm-head {
	width: 0.3125rem;
	height: 0.3125rem;
	margin: -0.15625rem 0 0 -0.15625rem;
	border-radius: 50%;
	background: color-mix(in srgb, var(--cm-accent, var(--accent-cyan, var(--accent-primary, #a1d7df))) 35%, var(--text-primary, #eceff1));
	box-shadow: 0 0 0.5rem 0.125rem color-mix(in srgb, var(--cm-accent, var(--accent-cyan, var(--accent-primary, #a1d7df))) 55%, transparent);
}
.cm-crop { border: 0 solid var(--cm-accent, var(--accent-cyan, var(--accent-primary, #a1d7df))); }
.cm-crop[data-corner="tl"] { border-top-width: 1px; border-left-width: 1px; }
.cm-crop[data-corner="tr"] { border-top-width: 1px; border-right-width: 1px; }
.cm-crop[data-corner="bl"] { border-bottom-width: 1px; border-left-width: 1px; }
.cm-crop[data-corner="br"] { border-bottom-width: 1px; border-right-width: 1px; }
@media (prefers-reduced-motion: reduce) {
	.cm-layer { display: none; }
}

