/* A slow, procedural ink wash behind the opaque authentication panels. */
body{isolation:isolate}
.ink-scene{display:none;position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;contain:strict}
body.login-mozi .ink-scene{display:block;opacity:var(--ink-opacity)}
.ink-field{width:100%;height:100%;overflow:visible;will-change:transform;animation:ink-float 48s ease-in-out infinite alternate}
/* Keep filtered SVG groups static; composite the complete wash as one layer. */
.ink-veins{stroke-width:1.8;opacity:.22}
body[data-ink="off"] .ink-scene{display:none}
body[data-ink="still"] .ink-field{animation-play-state:paused}
body.ink-page-hidden .ink-field{animation-play-state:paused}
@keyframes ink-float{from{transform:translate(-1%,-1%) scale(1.04)}to{transform:translate(1%,1%) scale(1.06)}}
@media(prefers-reduced-motion:reduce){.ink-field{animation:none!important;will-change:auto}}
@media(max-width:760px){.ink-scene{--ink-opacity:.35}.ink-veins{display:none}.ink-field{animation-duration:55s}}
