/* Explicit opt-in on public surfaces; decorative layers never receive pointer events. */
[data-vein-scene] { position: relative; isolation: isolate; }
.sn-vein-layer { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: -1; }
.sn-vein-layer .sn-veins { display: block; width: 100%; height: 100%; fill: none; stroke: #79abe1; stroke-linecap: round; stroke-linejoin: round; }
.sn-veins path { fill: none; vector-effect: non-scaling-stroke; }
.sn-motion-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 8px 10px; border: 0; border-radius: 4px; background: transparent; color: #858c94; font: inherit; font-size: 11px; cursor: pointer; }
.sn-motion-toggle svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.sn-motion-toggle:hover { color: #bdc9d7; }
.sn-motion-toggle:focus-visible { outline: 2px solid #91b9e8; outline-offset: 3px; }
.sn-motion-toggle[hidden] { display: none !important; }
.sn-motion-toggle[aria-pressed=true] svg { opacity: .5; }
[data-vein-button] { position: relative; overflow: hidden; isolation: isolate; }
[data-vein-button] > span { position: relative; z-index: 1; }
[data-vein-button] .sn-button-veins { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; fill: none; stroke: #7eafe6; stroke-width: .8; opacity: .27; animation: sn-button-breathe 12s ease-in-out infinite; }
.sn-button-veins path:last-child { opacity: .48; }
@keyframes sn-button-breathe {
  0%, 100% { opacity: .20; transform: translateY(1px); }
  50% { opacity: .43; transform: translateY(-1px); }
}
[data-veins-paused] .sn-button-veins { animation-play-state: paused; }
.auth-page .auth-beams { display: none; }
.auth-page .auth-shell[data-vein-scene] { z-index: 0; }
.auth-page .sn-motion-toggle { position: absolute; bottom: 4px; left: 50%; transform: translateX(-50%); white-space: nowrap; }
.vein-guide-page main { isolation: isolate; }
.vein-guide-page main > .sn-vein-layer { height: min(1600px, 100%); }
.vein-guide-page .pub-wrap { position: relative; }
.vein-guide-page .pub-page-head { position: relative; }
.vein-guide-page .sn-motion-toggle { margin-top: 12px; }
html[data-theme=light] .sn-vein-layer { opacity: .68; }
@media (max-width: 640px) {
  .vein-guide-page .sn-vein-layer { opacity: .55; }
  .auth-page .sn-vein-layer { opacity: .72; }
  .sn-motion-toggle { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  [data-vein-button] .sn-button-veins { animation: none; opacity: .25; }
}
