/* HTML Validator / Code Reveal — optional visual prototype.
   No external dependencies. Invisible until hovering over empty desktop page areas. */
#hv-code-reveal {
  --cr-x: -500px;
  --cr-y: -500px;
  position: fixed;
  inset: 0;
  z-index: 7;
  pointer-events: none;
  opacity: 0;
  transition: opacity 180ms ease;
  overflow: hidden;
  contain: strict;
}
#hv-code-reveal.cr-active { opacity: 1; }
#hv-code-reveal::before,
#hv-code-reveal::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
/* Light is subtle and never produces an orange stripe or flash. */
#hv-code-reveal::before {
  background: radial-gradient(circle 190px at var(--cr-x) var(--cr-y),
    rgba(26, 110, 164, .115) 0%, rgba(22, 91, 145, .053) 55%, transparent 100%);
}
/* Repeatable SVG symbols are revealed only close to the pointer. */
#hv-code-reveal::after {
  background: url('../images/code-reveal-pattern.svg') repeat 0 0 / 560px 380px;
  opacity: .52;
  -webkit-mask-image: radial-gradient(circle 172px at var(--cr-x) var(--cr-y),
    #000 0%, rgba(0,0,0,.77) 35%, transparent 100%);
  mask-image: radial-gradient(circle 172px at var(--cr-x) var(--cr-y),
    #000 0%, rgba(0,0,0,.77) 35%, transparent 100%);
}
@media (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) {
  #hv-code-reveal { display: none !important; }
}
