html.theme-reveal::view-transition {
  pointer-events: none;
}
html.theme-reveal::view-transition-group(root),
html.theme-reveal::view-transition-old(root),
html.theme-reveal::view-transition-new(root) {
  animation: none;
  mix-blend-mode: normal;
}
html.theme-reveal::view-transition-new(root) {
  animation: material-reveal 600ms cubic-bezier(.25,.74,.28,1) both;
}
@keyframes material-reveal {
  from { clip-path: circle(0 at var(--reveal-x) var(--reveal-y)); }
  to { clip-path: circle(var(--reveal-radius) at var(--reveal-x) var(--reveal-y)); }
}
.theme-wave {
  position: fixed;
  z-index: 2147483646;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  --wave-tint: #ffe4ae;
}
html[data-theme="obsidian"] .theme-wave { --wave-tint: #90caff; }
html[data-theme="spectrum"] .theme-wave { --wave-tint: #db9dff; }
.theme-wave::after {
  content: "";
  position: absolute;
  left: var(--wave-x);
  top: var(--wave-y);
  width: var(--wave-size);
  height: var(--wave-size);
  background: radial-gradient(closest-side, transparent 60%, var(--wave-tint) 92%, transparent);
  animation: theme-light-wave 580ms cubic-bezier(.18,.65,.24,1) both;
}
@keyframes theme-light-wave {
  from { transform: translate(-50%, -50%) scale(.03); opacity: .5; }
  to { transform: translate(-50%, -50%) scale(1.15); opacity: 0; }
}
@media (prefers-reduced-motion: reduce), (forced-colors: active) {
  html.theme-reveal::view-transition-new(root) { animation: none; }
  .theme-wave { display: none; }
}
