.dha{--dha-teal-a:#5BF7D8;--dha-teal-b:#14B392;--dha-violet-a:#B57BFF;--dha-violet-b:#7A2EF2;--dha-silver-a:#FFFFFF;--dha-silver-b:#B9BDCC;--dha-teal-glow:color-mix(in srgb,var(--dha-teal-b) 40%,transparent);--dha-violet-glow:color-mix(in srgb,var(--dha-violet-a) 45%,transparent);--dha-aura:color-mix(in srgb,var(--dha-violet-b) 20%,transparent);position:relative;aspect-ratio:320/190;margin:-6px -8px 2px}html[data-theme=light] .dha{--dha-silver-a:var(--fg-2);--dha-silver-b:var(--fg);--dha-violet-glow:color-mix(in srgb,var(--dha-violet-b) 22%,transparent);--dha-aura:color-mix(in srgb,var(--dha-violet-b) 10%,transparent)}.dha__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.dha__silver-a{stop-color:var(--dha-silver-a)}.dha__silver-b{stop-color:var(--dha-silver-b)}.dha__teal-a{stop-color:var(--dha-teal-a)}.dha__teal-b{stop-color:var(--dha-teal-b)}.dha__violet-a{stop-color:var(--dha-violet-a)}.dha__violet-b{stop-color:var(--dha-violet-b)}.dha__glow-a{stop-color:var(--dha-aura)}.dha__glow-b{stop-color:transparent}.dha__orbit{fill:none;stroke:var(--border-strong);stroke-width:1;stroke-dasharray:2 5;vector-effect:non-scaling-stroke}.dha__orbit--inner{stroke:var(--border);stroke-dasharray:none}.dha__link{stroke:var(--c);stroke-width:1.15;stroke-opacity:.42;stroke-linecap:round}.dha__pulse{stroke:var(--c);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:9 100;stroke-dashoffset:-100;opacity:0}.dha__disc{fill:var(--surface);stroke:var(--border-strong);stroke-width:1}.dha__halo{fill:none;stroke:var(--accent-hi);stroke-width:1.5;opacity:0}.dha__piece{transform-box:fill-box;transform-origin:center}.dha__piece--teal{filter:drop-shadow(0 0 40px var(--dha-teal-glow))}.dha__piece--violet{filter:drop-shadow(0 0 40px var(--dha-violet-glow))}.dha__node{line-height:0}.dha__label,.dha__node{position:absolute;transform:translate(-50%,-50%)}.dha__label{left:50%;top:88.5%;display:inline-flex;align-items:center;gap:6px;padding:var(--space-1) 10px;border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface);color:var(--fg);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.1em;line-height:var(--lh-tight);text-transform:uppercase;white-space:nowrap}.dha__label i{width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,var(--dha-teal-a),var(--dha-violet-b))}@media (prefers-reduced-motion:no-preference){.dha__orbit{animation:dha-fade .7s ease-out both}.dha__aura{animation:dha-fade .9s ease-out .5s both}.dha__node{animation:dha-node .56s cubic-bezier(.2,.8,.25,1.12) both;animation-delay:calc(60ms + var(--i) * 55ms)}.dha__link{stroke-dasharray:100;animation:dha-draw .46s cubic-bezier(.4,0,.2,1) both;animation-delay:calc(.36s + var(--i) * 45ms)}.dha__pulse{animation:dha-pulse .52s cubic-bezier(.5,0,.9,.6) both;animation-delay:calc(.98s + var(--i) * 28ms)}.dha__disc{transform-box:fill-box;transform-origin:center;animation:dha-pop .46s cubic-bezier(.2,.8,.25,1.15) .52s both}.dha__piece{animation:dha-piece .62s cubic-bezier(.16,.9,.3,1.08) both}.dha__piece--teal{--from:translate(0,-230px) rotate(-14deg);animation-delay:.64s}.dha__piece--silver{--from:translate(-200px,120px) rotate(-14deg);animation-delay:.72s}.dha__piece--violet{--from:translate(200px,120px) rotate(-14deg);animation-delay:.8s}.dha__halo{transform-box:fill-box;transform-origin:center;animation:dha-halo .76s ease-out 1.42s both}.dha__label{animation:dha-label .48s cubic-bezier(.2,.8,.25,1) 1.42s both}}@keyframes dha-fade{0%{opacity:0}}@keyframes dha-node{0%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.55)}}@keyframes dha-draw{0%{stroke-dashoffset:100;stroke-opacity:.9}}@keyframes dha-pulse{0%{opacity:0;stroke-dashoffset:9}15%{opacity:1}85%{opacity:1}to{opacity:0;stroke-dashoffset:-92}}@keyframes dha-pop{0%{opacity:0;transform:scale(.4)}}@keyframes dha-piece{0%{opacity:0;transform:var(--from)}}@keyframes dha-halo{0%{opacity:0;transform:scale(.9)}12%{opacity:.85}to{opacity:0;transform:scale(1.9)}}@keyframes dha-label{0%{opacity:0;transform:translate(-50%,calc(-50% + 6px))}}