/* The app's glowing orbs (signed-out redesign: calmer, no purple, no dot grid; DESIGN.md 3) behind the signed-out marketing pages (Home/_orbs.html in block page_backdrop:
 * the layer is fixed and pointer-events: none). Theme-aware; the slow drift stops with reduced motion. */
.hm-orbs { position: absolute; inset: 0; overflow: hidden; }
.hm-orb { position: absolute; border-radius: 50%; filter: blur(80px); opacity: .55; will-change: transform; }
.hm-orb--a { width: 46vmax; height: 46vmax; top: -18vmax; inset-inline-end: -12vmax; background: radial-gradient(circle, rgba(0, 217, 255, .55), rgba(0, 217, 255, 0) 68%); animation: hm-drift-a 28s ease-in-out infinite alternate; }
.hm-orb--b { width: 38vmax; height: 38vmax; top: 30vh; inset-inline-start: -16vmax; background: radial-gradient(circle, rgba(33, 230, 193, .42), rgba(33, 230, 193, 0) 68%); animation: hm-drift-b 34s ease-in-out infinite alternate; }
.hm-orb--c { width: 30vmax; height: 30vmax; bottom: -12vmax; inset-inline-end: 8vw; background: radial-gradient(circle, rgba(0, 150, 220, .32), rgba(0, 150, 220, 0) 68%); animation: hm-drift-c 40s ease-in-out infinite alternate; }
.hm-orb--d { width: 22vmax; height: 22vmax; top: 8vh; inset-inline-start: 34vw; background: radial-gradient(circle, rgba(0, 140, 255, .3), rgba(0, 140, 255, 0) 70%); animation: hm-drift-b 46s ease-in-out infinite alternate-reverse; }
.hm-orbs__grid { display: none; position: absolute; inset: 0; opacity: .5;
  background-image: radial-gradient(rgba(160, 214, 255, .16) 1px, transparent 1.4px); background-size: 28px 28px;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, .35) 45%, transparent 85%); mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, .35) 45%, transparent 85%); }
:root[data-theme="light"] .hm-orb { opacity: .35; filter: blur(90px); }
:root[data-theme="light"] .hm-orb--a { background: radial-gradient(circle, rgba(0, 190, 240, .45), rgba(0, 190, 240, 0) 68%); }
:root[data-theme="light"] .hm-orb--b { background: radial-gradient(circle, rgba(20, 200, 170, .32), rgba(20, 200, 170, 0) 68%); }
:root[data-theme="light"] .hm-orb--c { background: radial-gradient(circle, rgba(0, 150, 220, .22), rgba(0, 150, 220, 0) 68%); }
:root[data-theme="light"] .hm-orbs__grid { background-image: radial-gradient(rgba(24, 60, 92, .14) 1px, transparent 1.4px); }
@keyframes hm-drift-a { from { transform: translate3d(0, 0, 0) scale(1); } to { transform: translate3d(-6vw, 8vh, 0) scale(1.12); } }
@keyframes hm-drift-b { from { transform: translate3d(0, 0, 0) scale(1); } to { transform: translate3d(7vw, -6vh, 0) scale(.9); } }
@keyframes hm-drift-c { from { transform: translate3d(0, 0, 0) scale(.95); } to { transform: translate3d(-5vw, -9vh, 0) scale(1.1); } }
@media (prefers-reduced-motion: reduce) { .hm-orb { animation: none; } }
