/* ==========================================================================
   [2026-10-17 16:05 修] 换昼夜 / 换档的过渡（js/modes.js commit()）
   用 View Transitions：字、墙、灯在同一个回调里一次性换成新状态，浏览器拿「旧整页」和「新整页」两张图；
   新图从滑杆上被点的图形处（--vt-x / --vt-y，由 JS 写）以一个硬边的圆扩开到盖满整屏（--vt-r）。
   为什么是硬边的圆而不是交叉淡变：淡到一半时，字和墙都会趋向同一个中灰（夜 → 昼 尤其明显），对比度跌到 1 左右；
   硬边的圆让每个像素要么是旧画面、要么是新画面，字永远和它自己的墙在一起。
   --vt-dur 默认 .42s（自查时会临时调长做逐帧截图）。不支持 View Transitions 的浏览器：modes.js 直接同一帧换。
   ========================================================================== */
::view-transition-old(root),
::view-transition-new(root) { animation: none; mix-blend-mode: normal; }
::view-transition-new(root) { animation: plik-theme-reveal var(--vt-dur, .42s) cubic-bezier(.33, .7, .25, 1) both; }
@keyframes plik-theme-reveal {
  from { clip-path: circle(0px at var(--vt-x, calc(100% - 60px)) var(--vt-y, 50px)); }
  to   { clip-path: circle(var(--vt-r, 150vmax) at var(--vt-x, calc(100% - 60px)) var(--vt-y, 50px)); }
}
@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
}
