/*
 * Biakobaye signature orb
 * Canonical public orb component. Display contexts may override only
 * --bia-orb-size and outer placement values. The orb body and atmospheric
 * halo remain proportional at every size.
 */

.bia-signature-orb.bia-orb--nav {
  --bia-orb-size: 2rem;
  --bia-orb-glow-mult: 1.18;
  --bia-orb-speed-mult: 1.25;
  width: var(--bia-orb-size) !important;
  height: var(--bia-orb-size) !important;
  background: transparent !important;
}

/* Defensive compatibility for any stale #bia-orb public markup. Current
 * headers use data-bia-header-orb and therefore never enter the chat-orb path. */
:root #bia-orb.bia-signature-orb.bia-orb--nav[data-bia-orb='nav'],
:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] {
  position: relative !important;
  z-index: 1 !important;
  pointer-events: none !important;
  -webkit-box-shadow:
    inset -3px -4px 5px rgba(0, 0, 0, 0.55),
    inset 2px 3px 4px rgba(255, 255, 255, 0.32),
    inset 0 1px 1px rgba(255, 255, 255, 0.55),
    inset 0 -1px 1px rgba(0, 0, 0, 0.4) !important;
  box-shadow:
    inset -3px -4px 5px rgba(0, 0, 0, 0.55),
    inset 2px 3px 4px rgba(255, 255, 255, 0.32),
    inset 0 1px 1px rgba(255, 255, 255, 0.55),
    inset 0 -1px 1px rgba(0, 0, 0, 0.4) !important;
}

/* Brand lock: public pages still carry historical page-scoped orb recipes in
 * their legacy stylesheets. The signature component must win that cascade so
 * every surface renders the accepted master rather than recoloring it. */
:root body[data-bia-page] .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] {
  background: transparent !important;
}

:root body[data-bia-page] .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-inner {
  background:
    radial-gradient(circle at 40% 40%, rgba(22, 226, 255, 0.3) 0%, rgba(22, 226, 255, 0) 45%),
    radial-gradient(circle at 60% 60%, rgba(255, 107, 213, 0.22) 0%, rgba(255, 107, 213, 0) 48%) !important;
  opacity: 0.95 !important;
}

:root body[data-bia-page] .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-core {
  background:
    radial-gradient(circle, rgba(22, 226, 255, 0.78) 0%, rgba(22, 226, 255, 0.18) 26%, rgba(5, 7, 20, 0) 62%),
    radial-gradient(circle at 60% 60%, rgba(255, 107, 213, 0.5) 0%, rgba(255, 107, 213, 0.08) 34%, rgba(255, 107, 213, 0) 68%) !important;
  filter: brightness(1) saturate(1.02) !important;
  opacity: 0.95 !important;
}

:root body[data-bia-page] .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-focus-dot,
:root body[data-bia-page] .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-ring,
:root body[data-bia-page] .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-rim {
  display: none !important;
}

:root body[data-bia-page] .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-focus-dot {
  inset: 46% auto auto 41% !important;
  width: 18% !important;
  height: 18% !important;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.9), rgba(22, 226, 255, 0.55) 40%, rgba(22, 226, 255, 0) 70%) !important;
  filter: blur(0.2px) !important;
  opacity: 0.85 !important;
}

:root body[data-bia-page] .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-ring {
  inset: 10% !important;
  width: 100% !important;
  height: 100% !important;
  background: radial-gradient(circle, rgba(93, 169, 255, 0.14) 0%, rgba(93, 169, 255, 0) 55%) !important;
  filter: blur(6px) !important;
  opacity: 0.45 !important;
}

:root body[data-bia-page] .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-surface {
  inset: 10% !important;
  background:
    radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0) 36%),
    radial-gradient(circle at 65% 65%, rgba(22, 226, 255, 0.06) 0%, rgba(22, 226, 255, 0) 40%) !important;
  filter: blur(2px) !important;
}

:root body[data-bia-page] .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-flares {
  inset: -22% !important;
  background:
    radial-gradient(circle, rgba(22, 226, 255, 0.12) 0%, rgba(22, 226, 255, 0) 48%),
    radial-gradient(circle at 30% 70%, rgba(255, 107, 213, 0.1) 0%, rgba(255, 107, 213, 0) 46%),
    linear-gradient(rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0)) !important;
}

/* Keep the anti-strobe glass shell at the approved display proportions.
 * 18px / 176px = 10.227%; the blur follows the same size relationship. */
:root #bia-orb.bia-signature-orb.bia-orb--nav[data-bia-orb='nav']::after,
:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav']::after {
  inset: calc(var(--bia-orb-size) * -0.10227) !important;
  z-index: 6 !important;
  filter: blur(clamp(0.4px, calc(var(--bia-orb-size) * 0.01136), 2px)) !important;
  opacity: 0.18 !important;
  mix-blend-mode: normal !important;
  transform: none !important;
  animation: none !important;
}

/* One halo recipe for the 32px header orb and the approved display orb.
 * The display's 282.875px envelope around a 176px orb is a 1.607 ratio. */
.bia-signature-orb-halo {
  --bia-orb-size: 2rem;
  --bia-orb-stage-scale: 0.1818181818;
  position: relative;
  isolation: isolate;
  display: grid;
  width: var(--bia-orb-size);
  height: var(--bia-orb-size);
  place-items: center;
  flex: 0 0 auto;
  border-radius: 50%;
  box-shadow: none !important;
}

.bia-signature-orb-halo--display {
  --bia-orb-size: clamp(7.5rem, 17vw, 11rem);
  --bia-orb-stage-scale: 1;
}

/* Render one 176px master object in every context. Header use scales the
 * completed object to 32px instead of recalculating pixel filters at 32px. */
.bia-signature-orb-stage {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  display: grid;
  width: 11rem;
  height: 11rem;
  margin: -5.5rem 0 0 -5.5rem;
  place-items: center;
  flex: 0 0 auto;
  transform: scale(var(--bia-orb-stage-scale));
  transform-origin: 50% 50%;
}

.bia-signature-orb-stage > .bia-signature-orb.bia-orb--nav {
  --bia-orb-size: 11rem;
}

.bia-signature-orb-halo::after {
  position: absolute;
  z-index: 0;
  inset: -30.35%;
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 18%, rgba(255, 80, 200, 0.62) 0%, rgba(255, 107, 213, 0.24) 34%, transparent 68%),
    radial-gradient(circle at 50% 82%, rgba(22, 226, 255, 0.68) 0%, rgba(22, 200, 240, 0.26) 36%, transparent 70%),
    radial-gradient(circle at 8% 50%, rgba(140, 90, 240, 0.42) 0%, rgba(140, 90, 240, 0.14) 40%, transparent 72%),
    radial-gradient(circle at 92% 50%, rgba(140, 90, 240, 0.42) 0%, rgba(140, 90, 240, 0.14) 40%, transparent 72%);
  content: "";
  filter: blur(clamp(5px, calc(var(--bia-orb-size) * 0.1591), 28px));
  opacity: 0.96;
  pointer-events: none;
  animation: bia-signature-liquid-halo 16.8s ease-in-out infinite;
}

.bia-signature-orb-halo > .bia-signature-orb-stage,
.bia-signature-orb-stage > .bia-signature-orb {
  z-index: 1 !important;
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'].bia-orb-shell::before {
  background:
    radial-gradient(circle at 42% 23%, rgba(176, 20, 132, 0.96) 0%, rgba(205, 30, 153, 0.68) 13%, rgba(188, 28, 143, 0.3) 34%, transparent 62%),
    radial-gradient(circle at 50% 70%, rgba(38, 242, 226, 1) 0%, rgba(28, 221, 216, 0.92) 18%, rgba(20, 190, 196, 0.5) 43%, rgba(14, 147, 171, 0.16) 66%, transparent 84%),
    radial-gradient(circle at 5% 50%, rgba(124, 108, 255, 0.64) 0%, rgba(116, 98, 241, 0.3) 38%, transparent 76%),
    radial-gradient(circle at 95% 48%, rgba(124, 108, 255, 0.58) 0%, rgba(116, 98, 241, 0.26) 38%, transparent 76%),
    radial-gradient(circle at 48% 34%, rgba(255, 255, 255, 0.34) 0%, rgba(255, 255, 255, 0.12) 18%, transparent 46%) !important;
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-vol {
  inset: -14% !important;
  background:
    radial-gradient(circle at 50% 28%, rgba(194, 38, 148, 0.5), transparent 60%),
    radial-gradient(circle at 50% 72%, rgba(0, 70, 160, 0.78), transparent 60%),
    radial-gradient(circle at 10% 50%, rgba(50, 12, 175, 0.68), transparent 55%),
    radial-gradient(circle at 90% 50%, rgba(50, 12, 175, 0.68), transparent 55%),
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.1), transparent 55%) !important;
  filter: blur(clamp(1.3px, calc(var(--bia-orb-size) * 0.045), 8px)) saturate(1.42) !important;
  mix-blend-mode: screen !important;
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-inner {
  inset: -10% !important;
  filter: blur(clamp(1px, calc(var(--bia-orb-size) * 0.034), 6px)) saturate(1.3) !important;
  mix-blend-mode: screen !important;
  transform-origin: 50% 50%;
  animation: bia-signature-current 24s cubic-bezier(0.36, 0.02, 0.24, 1) infinite alternate-reverse !important;
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-caustic,
:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-refraction {
  inset: 4% !important;
  border-radius: 50%;
  mix-blend-mode: screen !important;
  transform-origin: 50% 50%;
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-rim {
  background:
    radial-gradient(ellipse 7% 26% at 17% 30%, rgba(234, 253, 255, 0.42) 0%, rgba(199, 244, 250, 0.18) 46%, transparent 100%),
    radial-gradient(circle at 50% 125%, transparent 60%, rgba(9, 14, 26, 0.65) 95%) !important;
  filter: blur(clamp(0.2px, calc(var(--bia-orb-size) * 0.005), 0.9px));
  opacity: 0.76;
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-caustic {
  background: conic-gradient(from 208deg, transparent 0deg 254deg, rgba(255, 255, 255, 0.015) 257deg, rgba(219, 250, 255, 0.48) 261deg, rgba(255, 255, 255, 0.72) 264deg, rgba(99, 233, 255, 0.18) 267deg, transparent 274deg 360deg) !important;
  filter: blur(clamp(0.35px, calc(var(--bia-orb-size) * 0.01), 1.8px)) !important;
  -webkit-mask-image: radial-gradient(ellipse at center, transparent 0 59%, #000 63% 65%, transparent 69%);
  mask-image: radial-gradient(ellipse at center, transparent 0 59%, #000 63% 65%, transparent 69%);
  animation: bia-signature-caustic 19.4s cubic-bezier(0.42, 0.02, 0.25, 1) infinite !important;
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-refraction {
  background: conic-gradient(from 24deg, transparent 0deg 252deg, rgba(255, 107, 213, 0.02) 256deg, rgba(255, 164, 229, 0.48) 262deg, rgba(255, 244, 252, 0.72) 266deg, rgba(255, 107, 213, 0.18) 270deg, transparent 276deg 360deg) !important;
  filter: blur(clamp(0.4px, calc(var(--bia-orb-size) * 0.0114), 2px)) !important;
  -webkit-mask-image: radial-gradient(ellipse at center, transparent 0 58%, #000 63% 66%, transparent 72%);
  mask-image: radial-gradient(ellipse at center, transparent 0 58%, #000 63% 66%, transparent 72%);
  animation: bia-signature-refraction 22.6s cubic-bezier(0.38, 0.02, 0.22, 1) -7.3s infinite !important;
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-spark-back,
:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-spark-front,
:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-spark-ccw {
  width: calc(var(--bia-orb-size) * 0.085) !important;
  height: calc(var(--bia-orb-size) * 0.085) !important;
  filter: blur(clamp(0.2px, calc(var(--bia-orb-size) * 0.0045), 0.8px));
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-spark-back {
  animation: bia-signature-orbit-back 13.125s linear infinite, bia-mini-pulse 3.8s ease-in-out infinite !important;
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-spark-front {
  animation: bia-signature-orbit-front 11s linear infinite, bia-mini-pulse 3.2s ease-in-out infinite !important;
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-spark-ccw {
  background: radial-gradient(circle, #d46cff 0%, rgba(166, 76, 255, 0.94) 28%, rgba(124, 108, 255, 0.54) 58%, rgba(124, 108, 255, 0) 100%) !important;
  opacity: 0.76 !important;
  animation: bia-signature-orbit-ccw 12s linear infinite, bia-signature-purple-pulse 4.1s ease-in-out infinite !important;
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-streaks {
  inset: -2% !important;
  overflow: hidden;
  border-radius: 50%;
  background: none !important;
  mix-blend-mode: normal !important;
  clip-path: circle(50% at 50% 50%);
  filter: none !important;
  -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.16) 0%, rgba(0, 0, 0, 0.26) 44%, rgba(0, 0, 0, 0.82) 54%, #000 68%, #000 100%) !important;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.16) 0%, rgba(0, 0, 0, 0.26) 44%, rgba(0, 0, 0, 0.82) 54%, #000 68%, #000 100%) !important;
  opacity: 0.98 !important;
  transform: rotate(-24deg) scaleY(0.66);
  transform-origin: 50% 50%;
  animation: none !important;
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-streaks::before,
:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-streaks::after {
  position: absolute;
  width: 96%;
  height: 96%;
  border-radius: 50%;
  content: "";
  opacity: 1;
  transform-origin: 50% 50%;
  will-change: transform, opacity;
  -webkit-mask-image: radial-gradient(circle at center, transparent 0 64%, rgba(0, 0, 0, 0.3) 68%, #000 72% 84%, rgba(0, 0, 0, 0.26) 88%, transparent 92%);
  mask-image: radial-gradient(circle at center, transparent 0 64%, rgba(0, 0, 0, 0.3) 68%, #000 72% 84%, rgba(0, 0, 0, 0.26) 88%, transparent 92%);
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-streaks::before {
  top: 2%;
  left: 2%;
  background: conic-gradient(from 16deg, transparent 0deg 168deg, rgba(144, 232, 228, 0.03) 190deg, rgba(144, 232, 228, 0.1) 222deg, rgba(144, 232, 228, 0.26) 266deg, rgba(144, 232, 228, 0.46) 302deg, rgba(218, 247, 244, 0.14) 316deg, rgba(144, 232, 228, 0.64) 329deg, rgba(144, 232, 228, 0.16) 342deg, transparent 352deg 360deg);
  filter: blur(clamp(0.35px, calc(var(--bia-orb-size) * 0.0114), 2px)) saturate(0.92) brightness(0.98) drop-shadow(0 0 clamp(1px, calc(var(--bia-orb-size) * 0.023), 4px) rgba(144, 232, 228, 0.18));
  opacity: 0.76;
  animation: bia-signature-comet-cyan 14s linear infinite;
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-streaks::after {
  top: 2%;
  left: 2%;
  background: conic-gradient(from 196deg, transparent 0deg 168deg, rgba(144, 232, 228, 0.02) 190deg, rgba(144, 232, 228, 0.08) 222deg, rgba(144, 232, 228, 0.22) 266deg, rgba(144, 232, 228, 0.38) 302deg, rgba(218, 247, 244, 0.12) 316deg, rgba(144, 232, 228, 0.54) 329deg, rgba(144, 232, 228, 0.12) 342deg, transparent 352deg 360deg);
  filter: blur(clamp(0.4px, calc(var(--bia-orb-size) * 0.0125), 2.2px)) saturate(0.88) brightness(0.94) drop-shadow(0 0 clamp(1px, calc(var(--bia-orb-size) * 0.023), 4px) rgba(144, 232, 228, 0.14));
  opacity: 0.68;
  animation: bia-signature-comet-teal 14s linear -7s infinite;
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-orb-flares {
  filter: blur(clamp(2px, calc(var(--bia-orb-size) * 0.068), 12px));
}

:root .bia-signature-orb.bia-orb--nav[data-bia-orb='nav'] > .bia-ring {
  border-width: clamp(1px, calc(var(--bia-orb-size) * 0.011), 2px);
  box-shadow: 0 0 clamp(4px, calc(var(--bia-orb-size) * 0.114), 20px) rgba(22, 226, 255, 0.24);
}

@keyframes bia-signature-current {
  0% { transform: translate3d(4%, -2%, 0) rotate(12deg) scale(1.02, 1.08); }
  48% { transform: translate3d(-3%, 3%, 0) rotate(-6deg) scale(1.09, 0.97); }
  100% { transform: translate3d(2%, 1%, 0) rotate(-20deg) scale(0.98, 1.06); }
}

@keyframes bia-signature-liquid-halo {
  0%, 100% { transform: scale(0.96, 1.02); opacity: 0.78; }
  38% { transform: scale(1.06, 0.98); opacity: 0.98; }
  72% { transform: scale(1.01, 1.08); opacity: 0.86; }
}

@keyframes bia-signature-caustic {
  0% { transform: rotate(-22deg) scale(0.92, 1.05); opacity: 0.22; }
  48% { transform: rotate(150deg) scale(1.06, 0.94); opacity: 0.72; }
  100% { transform: rotate(338deg) scale(0.92, 1.05); opacity: 0.22; }
}

@keyframes bia-signature-refraction {
  0% { transform: rotate(190deg) scale(1.04, 0.94); opacity: 0.14; }
  52% { transform: rotate(370deg) scale(0.94, 1.08); opacity: 0.66; }
  100% { transform: rotate(550deg) scale(1.04, 0.94); opacity: 0.14; }
}

@keyframes bia-signature-purple-pulse {
  0%, 100% { filter: blur(clamp(0.2px, calc(var(--bia-orb-size) * 0.005), 0.9px)) brightness(0.72) saturate(1.12); }
  50% { filter: blur(clamp(0.15px, calc(var(--bia-orb-size) * 0.0031), 0.55px)) brightness(0.9) saturate(1.22); }
}

@keyframes bia-signature-comet-cyan {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes bia-signature-comet-teal {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes bia-signature-orbit-back {
  0% { transform: translate(-50%, -50%) rotate(0deg) translateX(calc(var(--bia-orb-size) * 0.39)); opacity: 0; }
  14% { opacity: 0.9; }
  86% { opacity: 0.62; }
  100% { transform: translate(-50%, -50%) rotate(360deg) translateX(calc(var(--bia-orb-size) * 0.39)); opacity: 0; }
}

@keyframes bia-signature-orbit-front {
  0% { transform: translate(-50%, -50%) rotate(120deg) translateX(calc(var(--bia-orb-size) * 0.34)); opacity: 0.35; }
  48% { opacity: 1; }
  100% { transform: translate(-50%, -50%) rotate(480deg) translateX(calc(var(--bia-orb-size) * 0.34)); opacity: 0.35; }
}

@keyframes bia-signature-orbit-ccw {
  0% { transform: translate(-50%, -50%) rotate(300deg) translateX(calc(var(--bia-orb-size) * 0.29)); opacity: 0.45; }
  52% { opacity: 0.92; }
  100% { transform: translate(-50%, -50%) rotate(-60deg) translateX(calc(var(--bia-orb-size) * 0.29)); opacity: 0.45; }
}

@media (prefers-reduced-motion: reduce) {
  .bia-signature-orb,
  .bia-signature-orb > span,
  .bia-signature-orb > .bia-orb-streaks::before,
  .bia-signature-orb > .bia-orb-streaks::after {
    animation: none !important;
  }
}
