/* Generated from supplied Mahroo reference; run tools/import-hotspot-reference.cjs. */
/* MAHROO Hotspots — shared visual system. No dependencies.
   The button stays 44×44 px; --dot-size controls the visible mark only. */
.ubd-hs-surface {
  --dot-size:12px; --wave-size:36px; --period:3.8s;
  --intensity:.45; --hotspot:#fff; --on-hotspot:#29272a;
  --halo-rgb:255,255,255; --stroke:1px;
}
.ubd-hs-marker {
  width:44px;height:44px;padding:0;border:0;position:absolute;
  display:grid;place-items:center;background:transparent;color:var(--hotspot,#fff);
  cursor:pointer;isolation:isolate;transform:translate(-50%,-50%);
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;
  font:inherit;outline:none;z-index:2;
}
.ubd-hs-marker::after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;transition:box-shadow .18s}
.ubd-hs-marker:is(:focus-visible,.is-keyboard-focused)::after{outline:2px solid #fff;outline-offset:3px;box-shadow:0 0 0 6px #27232c}
.ubd-hs-marker .h-core{position:relative;z-index:3;display:grid;place-items:center;width:var(--dot-size);height:var(--dot-size);background:currentColor;border-radius:50%;box-shadow:0 1px 5px #0003,inset 0 0 0 1px #0000000c;transition:transform .22s,box-shadow .22s,background .22s;pointer-events:none}
.ubd-hs-marker .h-effect{position:absolute;left:50%;top:50%;width:var(--wave-size);height:var(--wave-size);margin-left:calc(var(--wave-size) / -2);margin-top:calc(var(--wave-size) / -2);border-radius:50%;pointer-events:none;opacity:0;z-index:1}
.ubd-hs-marker .h-effect::before,.ubd-hs-marker .h-effect::after{content:"";position:absolute}
.ubd-hs-marker .h-icon{position:absolute;width:42%;height:42%;color:var(--on-hotspot);transition:transform .28s;display:none}
.ubd-hs-marker .h-icon::before,.ubd-hs-marker .h-icon::after{content:"";position:absolute;background:currentColor;border-radius:2px;left:50%;top:50%;transform:translate(-50%,-50%)}
.ubd-hs-marker .h-icon::before{width:100%;height:1.5px}.ubd-hs-marker .h-icon::after{width:1.5px;height:100%}
.ubd-hs-marker .h-number{font:600 calc(var(--dot-size)*.40)/1 Arial,sans-serif;color:var(--on-hotspot);display:none}
.ubd-hs-marker .h-label{position:absolute;z-index:5;right:calc(50% + 23px);top:50%;max-width:180px;width:max-content;padding:7px 10px;border:1px solid #ffffff45;border-radius:8px;background:#27252ee8;color:#fff;box-shadow:0 6px 22px #0002;white-space:nowrap;pointer-events:none;font-size:11px;font-weight:500;line-height:1.7;opacity:0;transform:translate(5px,-50%);transition:opacity .18s,transform .18s;direction:rtl}
.ubd-hs-marker:hover,.ubd-hs-marker:is(:focus-visible,.is-keyboard-focused),.ubd-hs-marker.is-open{z-index:12}
.ubd-hs-marker:hover .h-core,.ubd-hs-marker:is(:focus-visible,.is-keyboard-focused) .h-core{transform:scale(1.12)}
.ubd-hs-marker:hover .h-label,.ubd-hs-marker:is(:focus-visible,.is-keyboard-focused) .h-label{opacity:1;transform:translate(0,-50%)}
.ubd-hs-marker.is-open .h-label{opacity:0}
.ubd-hs-marker.is-open .h-core{box-shadow:0 0 0 5px #ffffff30,0 2px 10px #0003}
.ubd-hs-marker.is-open .h-icon{transform:rotate(45deg)}
.ubd-hs-marker.is-open .h-effect{animation-play-state:paused}
.ubd-hs-marker[data-label-side="right"] .h-label{right:auto;left:calc(50% + 23px)}

/* 01 — Pearl: a still, small pearl with a quiet breathing hairline. */
.ubd-hs-marker[data-style="pearl"] .h-effect.e1{border:1px solid currentColor;opacity:.42;animation:ubd-marker-hs-breathe var(--period) ease-in-out infinite;animation-delay:var(--delay,0s);box-shadow:0 0 1px #0002}
.ubd-hs-marker[data-style="pearl"] .h-core{box-shadow:0 1px 5px #0003,0 0 0 4px #ffffff18}
/* 02 — Fine ripple: a single hairline; its long resting phase avoids noise. */
.ubd-hs-marker[data-style="ripple"] .h-effect.e1{border:1px solid currentColor;animation:ubd-marker-hs-ripple var(--period) cubic-bezier(.2,.65,.35,1) infinite;animation-delay:var(--delay,0s)}
/* 03 — Glass plus: translucent solid, with a tiny plus that becomes a close. */
.ubd-hs-marker[data-style="glass"] .h-core{background:rgba(var(--halo-rgb),.22);border:1px solid rgba(var(--halo-rgb),.8);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:inset 0 1px 2px #ffffff65,0 2px 10px #0002}
.ubd-hs-marker[data-style="glass"] .h-icon{display:block;color:currentColor}
.ubd-hs-marker[data-style="glass"] .h-effect.e1{border:1px solid currentColor;animation:ubd-marker-hs-quiet var(--period) ease-in-out infinite;animation-delay:var(--delay,0s)}
/* 04 — Velvet: a soft translucent field, not a hard expanding disc. */
.ubd-hs-marker[data-style="velvet"] .h-effect.e1{background:radial-gradient(circle,rgba(var(--halo-rgb),.5),rgba(var(--halo-rgb),.18) 40%,rgba(var(--halo-rgb),0) 73%);animation:ubd-marker-hs-velvet var(--period) ease-in-out infinite;animation-delay:var(--delay,0s)}
/* 05 — Twin echo: two independently phased, thin, outward strokes. */
.ubd-hs-marker[data-style="echo"] .h-effect{border:1px solid currentColor;animation:ubd-marker-hs-echo var(--period) ease-out infinite;animation-delay:var(--delay,0s)}
.ubd-hs-marker[data-style="echo"] .h-effect.e2{animation-delay:calc(var(--delay,0s) - var(--period)*.22)}
/* 06 — Orbit: one little satellite, no outward wave. */
.ubd-hs-marker[data-style="orbit"] .h-effect.e1{border:1px solid rgba(var(--halo-rgb),.26);opacity:1;animation:ubd-marker-hs-rotate calc(var(--period)*1.3) linear infinite;animation-delay:var(--delay,0s)}
.ubd-hs-marker[data-style="orbit"] .h-effect.e1::after{width:4px;height:4px;border-radius:50%;background:currentColor;top:-2.5px;left:calc(50% - 2px);box-shadow:0 0 5px rgba(var(--halo-rgb),.35)}
/* 07 — Precision: four tiny crosshair strokes, kept away from the center. */
.ubd-hs-marker[data-style="precision"] .h-effect.e1{border-radius:0;opacity:.72;animation:ubd-marker-hs-precision var(--period) ease-in-out infinite;animation-delay:var(--delay,0s);background:linear-gradient(currentColor,currentColor) center top/1px 6px no-repeat,linear-gradient(currentColor,currentColor) center bottom/1px 6px no-repeat,linear-gradient(currentColor,currentColor) left center/6px 1px no-repeat,linear-gradient(currentColor,currentColor) right center/6px 1px no-repeat}
/* 08 — Radar: low-opacity rotating arc, contained in a small ring. */
.ubd-hs-marker[data-style="radar"] .h-effect.e1{opacity:1;border:1px solid rgba(var(--halo-rgb),.23);background:conic-gradient(from 0deg,rgba(var(--halo-rgb),0) 0deg 205deg,rgba(var(--halo-rgb),.02) 235deg,rgba(var(--halo-rgb),var(--intensity)) 360deg);animation:ubd-marker-hs-rotate calc(var(--period)*1.2) linear infinite;animation-delay:var(--delay,0s)}
/* 09 — Number: clear mapping between scene and product list. */
.ubd-hs-marker[data-style="number"] .h-number{display:block}
.ubd-hs-marker[data-style="number"] .h-effect.e1{border:1px solid currentColor;animation:ubd-marker-hs-quiet var(--period) ease-in-out infinite;animation-delay:var(--delay,0s)}
/* 10 — Micro plus: intentionally still; motion only on interaction. */
.ubd-hs-marker[data-style="plus"] .h-core{background:transparent;box-shadow:none;filter:drop-shadow(0 1px 2px #0007)}
.ubd-hs-marker[data-style="plus"] .h-icon{display:block;color:currentColor;width:70%;height:70%}
.ubd-hs-marker[data-style="plus"] .h-effect.e1{width:calc(var(--dot-size) + 12px);height:calc(var(--dot-size) + 12px);margin-left:calc((var(--dot-size) + 12px)/-2);margin-top:calc((var(--dot-size) + 12px)/-2);border:1px solid currentColor;opacity:0;transition:opacity .2s,transform .2s;transform:scale(.8)}
.ubd-hs-marker[data-style="plus"]:is(:hover,:is(:focus-visible,.is-keyboard-focused),.is-open) .h-effect.e1{opacity:.45;transform:scale(1)}
/* 11 — Diamond: a subtle geometric frame around the small core. */
.ubd-hs-marker[data-style="diamond"] .h-effect.e1{border:1px solid currentColor;border-radius:4px;opacity:.6;animation:ubd-marker-hs-diamond var(--period) ease-in-out infinite;animation-delay:var(--delay,0s)}
/* 12 — Short pin: a six-pixel stem anchors the visible center. */
.ubd-hs-marker[data-style="pin"] .h-core{animation:ubd-marker-hs-pin var(--period) ease-in-out infinite;animation-delay:var(--delay,0s)}
.ubd-hs-marker[data-style="pin"] .h-core::after{content:"";position:absolute;width:1px;height:7px;background:currentColor;top:calc(100% - 1px);left:calc(50% - .5px)}
.ubd-hs-marker[data-style="pin"] .h-effect.e1{width:9px;height:3px;margin-left:-4.5px;margin-top:calc(var(--dot-size)/2 + 7px);opacity:.24;background:#28262d;filter:blur(1px)}
/* 13 — Capsule: stays small until hover/focus or selection. */
.ubd-hs-marker[data-style="capsule"] .h-core{box-shadow:0 0 0 5px rgba(var(--halo-rgb),.18),0 1px 5px #0003}
.ubd-hs-marker[data-style="capsule"] .h-label{right:calc(50% - var(--dot-size)/2 - 9px);padding-right:calc(var(--dot-size) + 20px);border-radius:30px;background:rgba(var(--halo-rgb),.92);color:var(--on-hotspot);border:0;z-index:2;box-shadow:0 3px 16px #0002;transform:translate(0,-50%) scaleX(.8);transform-origin:right center}
.ubd-hs-marker[data-style="capsule"]:is(:hover,:is(:focus-visible,.is-keyboard-focused)) .h-label{transform:translate(0,-50%) scaleX(1)}
.ubd-hs-marker[data-style="capsule"]:is(:hover,:is(:focus-visible,.is-keyboard-focused)) .h-core{background:var(--on-hotspot);box-shadow:none;transform:scale(.7)}
/* 14 — Magnetic: the visual follows the pointer; the hit area never moves. */
.ubd-hs-marker[data-style="magnetic"] .h-effect.e1{border:1px solid currentColor;opacity:var(--intensity);transform:translate(var(--mx,0px),var(--my,0px));transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.ubd-hs-marker[data-style="magnetic"] .h-core{transform:translate(calc(var(--mx,0px)*.5),calc(var(--my,0px)*.5))}
/* 15 — Segments: light dotted orbit with a long, unhurried rotation. */
.ubd-hs-marker[data-style="segments"] .h-effect.e1{border:1px dashed currentColor;opacity:var(--intensity);animation:ubd-marker-hs-rotate calc(var(--period)*3) linear infinite;animation-delay:var(--delay,0s)}
/* 16 — Leader: product names appear on a short editorial connector. */
.ubd-hs-marker[data-style="leader"] .h-effect.e1{width:22px;height:1px;background:currentColor;border-radius:0;margin:0;top:50%;left:calc(50% + var(--dot-size)/2 + 4px);opacity:.8;transform:rotate(-35deg);transform-origin:left center;animation:ubd-marker-hs-leader var(--period) ease-in-out infinite;animation-delay:var(--delay,0s)}
.ubd-hs-marker[data-style="leader"] .h-label{left:calc(50% + var(--dot-size)/2 + 25px);right:auto;top:calc(50% - 12px);background:transparent;border:0;box-shadow:none;padding:0 0 4px;border-bottom:1px solid currentColor;border-radius:0;color:currentColor;filter:drop-shadow(0 1px 2px #0008);font-size:10px}

@keyframes ubd-marker-hs-breathe{0%,100%{transform:scale(.80);opacity:calc(var(--intensity)*.55)}50%{transform:scale(1);opacity:var(--intensity)}}
@keyframes ubd-marker-hs-ripple{0%,12%{transform:scale(.42);opacity:0}16%{opacity:var(--intensity)}65%{transform:scale(1);opacity:0}100%{transform:scale(1);opacity:0}}
@keyframes ubd-marker-hs-quiet{0%,30%,100%{transform:scale(.9);opacity:0}55%{opacity:calc(var(--intensity)*.7)}80%{transform:scale(1.13);opacity:0}}
@keyframes ubd-marker-hs-velvet{0%,100%{transform:scale(.65);opacity:calc(var(--intensity)*.65)}50%{transform:scale(1.18);opacity:var(--intensity)}}
@keyframes ubd-marker-hs-echo{0%{transform:scale(.4);opacity:0}8%{opacity:var(--intensity)}61%,100%{transform:scale(1);opacity:0}}
@keyframes ubd-marker-hs-rotate{to{transform:rotate(360deg)}}
@keyframes ubd-marker-hs-precision{0%,100%{transform:scale(.9);opacity:calc(var(--intensity)*.85)}50%{transform:scale(1);opacity:var(--intensity)}}
@keyframes ubd-marker-hs-diamond{0%,100%{transform:rotate(45deg) scale(.78);opacity:calc(var(--intensity)*.75)}50%{transform:rotate(45deg) scale(.92);opacity:var(--intensity)}}
@keyframes ubd-marker-hs-pin{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes ubd-marker-hs-leader{0%,100%{opacity:calc(var(--intensity)*.8)}50%{opacity:1}}
.motion-paused .ubd-hs-marker *,.page-suspended .ubd-hs-marker *,.offscreen .ubd-hs-marker *{animation-play-state:paused!important}
.editing .ubd-hs-marker{touch-action:none;cursor:grab}
.editing .ubd-hs-marker:active{cursor:grabbing}
.editing .ubd-hs-marker.is-selected::after{border:1px dashed #fff;box-shadow:0 0 0 1px #29232e70}
.editing .ubd-hs-marker .h-label{display:none}
.show-targets .ubd-hs-marker::after{border:1px dashed #8cd5c5;background:#8cd5c518;border-radius:8px}
@media(prefers-reduced-motion:reduce){
  .ubd-hs-marker *{animation:none!important;transition:none!important}
  .ubd-hs-marker .h-effect{opacity:0!important}
  .ubd-hs-marker[data-style="pearl"] .h-effect.e1,.ubd-hs-marker[data-style="orbit"] .h-effect.e1,.ubd-hs-marker[data-style="precision"] .h-effect.e1,.ubd-hs-marker[data-style="magnetic"] .h-effect.e1,.ubd-hs-marker[data-style="segments"] .h-effect.e1{opacity:.35!important}
  .ubd-hs-marker[data-style="diamond"] .h-effect.e1{opacity:.35!important;transform:rotate(45deg) scale(.8)}
}

/* V2: motion layers are separate from the original effects. */
.ubd-hs-v2-motion{position:absolute;inset:0;pointer-events:none;z-index:1}
.ubd-hs-v2-ring{position:absolute;left:50%;top:50%;width:var(--wave-size);height:var(--wave-size);margin:calc(var(--wave-size)/-2);border:1px solid currentColor;border-radius:50%;display:none;--weight:1;--phase:0;--squash:1;--angle:0deg;--extent:1;opacity:calc(var(--intensity)*var(--weight));animation-duration:var(--period);animation-delay:calc(var(--delay,0s) - var(--period)*var(--phase));animation-iteration-count:infinite;animation-timing-function:linear}
.ubd-hs-v2-ring.r2{--phase:.333;--weight:.72}.ubd-hs-v2-ring.r3{--phase:.666;--weight:.45}.ubd-hs-v2-ring.r4{--phase:.75;--weight:.32}
@keyframes ubd-marker-v2-ripple{0%{transform:rotate(var(--angle)) scale(.12) scaleY(var(--squash));opacity:0}12%{opacity:calc(var(--intensity)*var(--weight))}95%,100%{transform:rotate(var(--angle)) scale(var(--extent)) scaleY(var(--squash));opacity:0}}
@keyframes ubd-marker-v2-pair{0%{transform:scale(.15);opacity:0}8%{opacity:calc(var(--intensity)*var(--weight))}65%,100%{transform:scale(1);opacity:0}}
@keyframes ubd-marker-v2-tide{0%,100%{transform:scale(calc(var(--extent)*.82));opacity:calc(var(--intensity)*var(--weight)*.45)}50%{transform:scale(var(--extent));opacity:calc(var(--intensity)*var(--weight))}}
@keyframes ubd-marker-v2-orbit{from{transform:rotate(var(--angle)) scaleY(var(--squash)) rotate(0deg)}to{transform:rotate(var(--angle)) scaleY(var(--squash)) rotate(360deg)}}
.ubd-hs-marker[data-style="wave-train"] .ubd-hs-v2-ring,.ubd-hs-marker[data-style="ripple-four"] .ubd-hs-v2-ring,.ubd-hs-marker[data-style="triple-tide"] .ubd-hs-v2-ring,.ubd-hs-marker[data-style="twin-pulse"] .ubd-hs-v2-ring,.ubd-hs-marker[data-style="silk-halo"] .ubd-hs-v2-ring,.ubd-hs-marker[data-style="ellipse-wave"] .ubd-hs-v2-ring,.ubd-hs-marker[data-style="alternate-wave"] .ubd-hs-v2-ring,.ubd-hs-marker[data-style="broken-wave"] .ubd-hs-v2-ring{animation-name:ubd-marker-v2-ripple}
.ubd-hs-marker[data-style="wave-train"] .ubd-hs-v2-ring:where(:not(.r4)),.ubd-hs-marker[data-style="ripple-four"] .ubd-hs-v2-ring:where(:not(.r4)),.ubd-hs-marker[data-style="triple-tide"] .ubd-hs-v2-ring:where(:not(.r4)),.ubd-hs-marker[data-style="twin-pulse"] .ubd-hs-v2-ring:where(:not(.r4)),.ubd-hs-marker[data-style="silk-halo"] .ubd-hs-v2-ring:where(:not(.r4)),.ubd-hs-marker[data-style="ellipse-wave"] .ubd-hs-v2-ring:where(:not(.r4)),.ubd-hs-marker[data-style="alternate-wave"] .ubd-hs-v2-ring:where(:not(.r4)),.ubd-hs-marker[data-style="broken-wave"] .ubd-hs-v2-ring:where(:not(.r4)){display:block}
.ubd-hs-marker[data-style="ripple-four"] .ubd-hs-v2-ring{display:block}
.ubd-hs-marker[data-style="ripple-four"] .r1{--phase:0}
.ubd-hs-marker[data-style="ripple-four"] .r2{--phase:0.25}
.ubd-hs-marker[data-style="ripple-four"] .r3{--phase:0.5}
.ubd-hs-marker[data-style="ripple-four"] .r4{--phase:0.75}
.ubd-hs-marker[data-style="triple-tide"] .ubd-hs-v2-ring,.ubd-hs-marker[data-style="silk-halo"] .ubd-hs-v2-ring{animation-name:ubd-marker-v2-tide;animation-timing-function:ease-in-out}
.ubd-hs-marker[data-style="triple-tide"] .r2{--extent:.7;--phase:0}
.ubd-hs-marker[data-style="triple-tide"] .r3{--extent:.43;--phase:0}
.ubd-hs-marker[data-style="twin-pulse"] .ubd-hs-v2-ring{animation-name:ubd-marker-v2-pair}
.ubd-hs-marker[data-style="twin-pulse"] .r2{--phase:.16}
.ubd-hs-marker[data-style="twin-pulse"] .ubd-hs-v2-ring.r3{display:none}
.ubd-hs-marker[data-style="silk-halo"] .ubd-hs-v2-ring{border:0;background:radial-gradient(circle,transparent 25%,rgba(var(--halo-rgb),.3) 48%,transparent 72%);filter:blur(1px)}
.ubd-hs-marker[data-style="silk-halo"] .r2{--extent:.76}
.ubd-hs-marker[data-style="silk-halo"] .r3{--extent:.5}
.ubd-hs-marker[data-style="ellipse-wave"] .ubd-hs-v2-ring,.ubd-hs-marker[data-style="alternate-wave"] .ubd-hs-v2-ring{--squash:.56;--angle:-35deg}
.ubd-hs-marker[data-style="alternate-wave"] .r2{--angle:55deg;--phase:.5}
.ubd-hs-marker[data-style="alternate-wave"] .ubd-hs-v2-ring.r3{display:none}
.ubd-hs-marker[data-style="broken-wave"] .ubd-hs-v2-ring{border-left-color:transparent;border-right-color:transparent;--angle:35deg}
.ubd-hs-marker[data-style="satellite-orbit"] .r1,.ubd-hs-marker[data-style="counter-orbit"] .r1,.ubd-hs-marker[data-style="dashed-orbit"] .r1,.ubd-hs-marker[data-style="arc-spinner"] .r1,.ubd-hs-marker[data-style="dual-arc"] .r1,.ubd-hs-marker[data-style="radar-ripple"] .r1,.ubd-hs-marker[data-style="orbit-ripple"] .r1,.ubd-hs-marker[data-style="petal-orbit"] .r1{display:block;animation-name:ubd-marker-v2-orbit}
.ubd-hs-marker[data-style="satellite-orbit"] .r1,.ubd-hs-marker[data-style="counter-orbit"] .r1,.ubd-hs-marker[data-style="orbit-ripple"] .r1,.ubd-hs-marker[data-style="petal-orbit"] .r1{border-color:rgba(var(--halo-rgb),.35)}
.ubd-hs-marker[data-style="satellite-orbit"] .r1::after,.ubd-hs-marker[data-style="counter-orbit"] .r1::after,.ubd-hs-marker[data-style="orbit-ripple"] .r1::after,.ubd-hs-marker[data-style="petal-orbit"] .r1::after{content:"";position:absolute;top:-2px;left:calc(50% - 1.5px);width:3px;height:3px;background:currentColor;border-radius:50%}
.ubd-hs-marker[data-style="counter-orbit"] .r2,.ubd-hs-marker[data-style="petal-orbit"] .r2,.ubd-hs-marker[data-style="dual-arc"] .r2,.ubd-hs-marker[data-style="dashed-orbit"] .r2{display:block;width:calc(var(--wave-size)*.7);height:calc(var(--wave-size)*.7);margin:calc(var(--wave-size)*-.35);animation-name:ubd-marker-v2-orbit;animation-direction:reverse}
.ubd-hs-marker[data-style="counter-orbit"] .r2::after,.ubd-hs-marker[data-style="petal-orbit"] .r2::after{content:"";position:absolute;bottom:-2px;left:calc(50% - 1.5px);width:3px;height:3px;background:currentColor;border-radius:50%}
.ubd-hs-marker[data-style="dashed-orbit"] .r1{border-style:dashed}
.ubd-hs-marker[data-style="dashed-orbit"] .r2{border-style:dotted}
.ubd-hs-marker[data-style="arc-spinner"] .r1{border:0;background:conic-gradient(transparent 20%,currentColor);mask:radial-gradient(farthest-side,transparent calc(100% - 1.5px),#000 calc(100% - 1px));-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 1.5px),#000 calc(100% - 1px))}
.ubd-hs-marker[data-style="dual-arc"] .ubd-hs-v2-ring{border-left-color:transparent;border-bottom-color:transparent}
.ubd-hs-marker[data-style="radar-ripple"] .r1{border-color:rgba(var(--halo-rgb),.25);background:conic-gradient(transparent 50%,rgba(var(--halo-rgb),.6))}
.ubd-hs-marker[data-style="radar-ripple"] :is(.r2,.r3){display:block;animation-name:ubd-marker-v2-ripple}
.ubd-hs-marker[data-style="orbit-ripple"] :is(.r2,.r3){display:block;animation-name:ubd-marker-v2-ripple}
.ubd-hs-marker[data-style="petal-orbit"] .ubd-hs-v2-ring{--squash:.48;--angle:40deg}
.ubd-hs-marker[data-style="petal-orbit"] .r2{--angle:-40deg;width:var(--wave-size);height:var(--wave-size);margin:calc(var(--wave-size)/-2)}
.ubd-hs-marker[data-style="echo-burst"] .ubd-hs-v2-ring:where(:not(.r4)),.ubd-hs-marker[data-style="echo-cluster"] .ubd-hs-v2-ring:where(:not(.r4)),.ubd-hs-marker[data-style="echo-return"] .ubd-hs-v2-ring:where(:not(.r4)),.ubd-hs-marker[data-style="echo-alternate"] .ubd-hs-v2-ring:where(:not(.r4)),.ubd-hs-marker[data-style="echo-offset"] .ubd-hs-v2-ring:where(:not(.r4)),.ubd-hs-marker[data-style="echo-arc"] .ubd-hs-v2-ring:where(:not(.r4)),.ubd-hs-marker[data-style="echo-orbit"] .ubd-hs-v2-ring:where(:not(.r4)),.ubd-hs-marker[data-style="echo-luxe"] .ubd-hs-v2-ring:where(:not(.r4)){display:block}
.ubd-hs-marker[data-style="echo-burst"] .ubd-hs-v2-ring{animation-name:ubd-marker-v2-echo-burst;animation-timing-function:cubic-bezier(.18,.7,.3,1)}
.ubd-hs-marker[data-style="echo-burst"] .r2{--phase:.12}
.ubd-hs-marker[data-style="echo-burst"] .r3{--phase:.24}
.ubd-hs-marker[data-style="echo-cluster"] .ubd-hs-v2-ring{animation-name:ubd-marker-v2-echo-cluster;animation-timing-function:ease-out}
.ubd-hs-marker[data-style="echo-cluster"] .r2{--phase:.08}
.ubd-hs-marker[data-style="echo-cluster"] .r3{--phase:.16}
.ubd-hs-marker[data-style="echo-return"] .r1{animation-name:ubd-marker-v2-echo-out}
.ubd-hs-marker[data-style="echo-return"] .r2{animation-name:ubd-marker-v2-echo-in;--phase:.38}
.ubd-hs-marker[data-style="echo-return"] .ubd-hs-v2-ring.r3{display:none}
.ubd-hs-marker[data-style="echo-alternate"] .ubd-hs-v2-ring{animation-name:ubd-marker-v2-echo-burst;--squash:.52}
.ubd-hs-marker[data-style="echo-alternate"] .r2{--angle:90deg;--phase:.33}
.ubd-hs-marker[data-style="echo-alternate"] .r3{--phase:.66}
.ubd-hs-marker[data-style="echo-offset"] .ubd-hs-v2-ring{animation-name:ubd-marker-v2-echo-offset}
.ubd-hs-marker[data-style="echo-offset"] .r2{--phase:.25;--shift:-5px}
.ubd-hs-marker[data-style="echo-offset"] .r3{--phase:.5;--shift:5px}
.ubd-hs-marker[data-style="echo-arc"] .ubd-hs-v2-ring{animation-name:ubd-marker-v2-echo-arc;border-left-color:transparent;border-bottom-color:transparent}
.ubd-hs-marker[data-style="echo-arc"] .r2{--phase:.28;animation-direction:reverse}
.ubd-hs-marker[data-style="echo-arc"] .r3{--phase:.56}
.ubd-hs-marker[data-style="echo-orbit"] .ubd-hs-v2-ring{animation-name:ubd-marker-v2-echo-orbit;border-color:rgba(var(--halo-rgb),.28)}
.ubd-hs-marker[data-style="echo-orbit"] .ubd-hs-v2-ring::after{content:"";position:absolute;top:-2px;left:calc(50% - 1.5px);width:3px;height:3px;background:currentColor;border-radius:50%}
.ubd-hs-marker[data-style="echo-orbit"] .r2{--phase:.3}
.ubd-hs-marker[data-style="echo-orbit"] .r3{--phase:.6}
.ubd-hs-marker[data-style="echo-luxe"] .ubd-hs-v2-ring{animation-name:ubd-marker-v2-echo-burst;border:0;background:radial-gradient(circle,transparent 24%,rgba(var(--halo-rgb),.32) 45%,rgba(var(--halo-rgb),.08) 56%,transparent 72%);filter:blur(1px)}
.ubd-hs-marker[data-style="echo-luxe"] .r2{--phase:.24;--weight:.58}
.ubd-hs-marker[data-style="echo-luxe"] .r3{--phase:.48;--weight:.35}
@keyframes ubd-marker-v2-echo-burst{0%{transform:rotate(var(--angle)) scale(.2) scaleY(var(--squash));opacity:0}5%{opacity:calc(var(--intensity)*var(--weight))}48%{transform:rotate(var(--angle)) scale(1) scaleY(var(--squash));opacity:0}100%{transform:rotate(var(--angle)) scale(1) scaleY(var(--squash));opacity:0}}
@keyframes ubd-marker-v2-echo-cluster{0%{transform:scale(.18);opacity:0}4%{opacity:calc(var(--intensity)*var(--weight))}32%{transform:scale(1);opacity:0}100%{transform:scale(1);opacity:0}}
@keyframes ubd-marker-v2-echo-out{0%{transform:scale(.2);opacity:0}8%{opacity:var(--intensity)}55%,100%{transform:scale(1);opacity:0}}
@keyframes ubd-marker-v2-echo-in{0%,22%{transform:scale(1);opacity:0}30%{opacity:calc(var(--intensity)*.65)}72%,100%{transform:scale(.25);opacity:0}}
@keyframes ubd-marker-v2-echo-offset{0%{transform:translate(0,0) scale(.2);opacity:0}8%{opacity:calc(var(--intensity)*var(--weight))}60%,100%{transform:translate(var(--shift,4px),calc(var(--shift,4px)*-.45)) scale(1);opacity:0}}
@keyframes ubd-marker-v2-echo-arc{0%{transform:rotate(0deg) scale(.2);opacity:0}8%{opacity:calc(var(--intensity)*var(--weight))}60%,100%{transform:rotate(135deg) scale(1);opacity:0}}
@keyframes ubd-marker-v2-echo-orbit{0%{transform:rotate(0deg) scale(.2);opacity:0}8%{opacity:calc(var(--intensity)*var(--weight))}62%,100%{transform:rotate(300deg) scale(1);opacity:0}}

.ubd-hs-marker:where([data-core]:not([data-core="auto"])) .h-core{background:transparent;border:0;box-shadow:none;border-radius:50%;animation:none;transform:none;filter:drop-shadow(0 1px 2px #0004)}
.ubd-hs-marker:where([data-core]:not([data-core="auto"])) .h-core::before,.ubd-hs-marker:where([data-core]:not([data-core="auto"])) .h-core::after{content:"";position:absolute;inset:auto;background:transparent;border:0;box-shadow:none;width:auto;height:auto}
.ubd-hs-marker:where([data-core]:not([data-core="auto"])) .h-icon,.ubd-hs-marker:where([data-core]:not([data-core="auto"])) .h-number{display:none}
.ubd-hs-marker[data-core="dot"] .h-core{background:currentColor}
.ubd-hs-marker:is([data-core="hollow"],[data-core="ringdot"],[data-core="double"],[data-core="target"],[data-core="satellite"]) .h-core{border:1px solid currentColor}
.ubd-hs-marker[data-core="ringdot"] .h-core::before{width:3px;height:3px;background:currentColor;border-radius:50%}
.ubd-hs-marker[data-core="double"] .h-core::before{inset:3px;border:1px solid currentColor;border-radius:50%}
.ubd-hs-marker[data-core="target"] .h-core::before,.ubd-hs-marker[data-core="plus"] .h-core::before{width:calc(100% + 4px);height:1px;background:currentColor}
.ubd-hs-marker[data-core="target"] .h-core::after,.ubd-hs-marker[data-core="plus"] .h-core::after{height:calc(100% + 4px);width:1px;background:currentColor}
.ubd-hs-marker[data-core="diamond"] .h-core{border:1px solid currentColor;border-radius:2px;transform:rotate(45deg) scale(.8)}
.ubd-hs-marker[data-core="segments"] .h-core{border:1.5px dashed currentColor}
.ubd-hs-marker[data-core="disc"] .h-core{border:1px solid currentColor;background:rgba(var(--halo-rgb),.25);box-shadow:inset 0 0 0 2px rgba(var(--halo-rgb),.12)}
.ubd-hs-marker[data-core="satellite"] .h-core{animation:ubd-marker-hs-rotate var(--period) linear infinite}
.ubd-hs-marker[data-core="satellite"] .h-core::after{width:3px;height:3px;top:-2px;left:calc(50% - 1.5px);background:currentColor;border-radius:50%}
.ubd-hs-marker.is-open *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.ubd-hs-marker .ubd-hs-v2-ring{animation:none!important}}
