/* The generated artwork stays intact. These accents follow its existing geometry. */
.open-boundary{--boundary-pulse:#c0deff;--boundary-warm:#ebbd9b}
.open-boundary .boundary-visual{position:relative;width:calc(100% + 70px);height:440px;margin-left:-35px;animation:boundary-float 10s ease-in-out infinite;transform-origin:50% 65%;pointer-events:none}
.open-boundary .boundary-visual .boundary-image{width:100%;height:100%;margin:0;animation:none;object-fit:contain}
.open-boundary .boundary-motion{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:visible}
.open-boundary .boundary-packet{stroke:var(--boundary-pulse);stroke-width:5;stroke-dasharray:8 992;filter:drop-shadow(0 0 7px var(--boundary-pulse));animation:boundary-transmit 5.8s linear infinite}
.open-boundary .boundary-packet--second{animation-delay:-2.1s;animation-duration:6.6s;stroke-width:4}
.open-boundary .boundary-packet--warm{stroke:var(--boundary-warm);filter:drop-shadow(0 0 7px var(--boundary-warm));animation-delay:-3.7s;animation-duration:7.2s}
.open-boundary .boundary-packet--fourth{animation-delay:-.8s;animation-duration:6.1s;stroke-width:4}
.open-boundary .boundary-perimeter{stroke:var(--boundary-pulse);stroke-width:3;stroke-linecap:round;stroke-dasharray:18 982;filter:drop-shadow(0 0 6px var(--boundary-pulse));animation:boundary-orbit 12s linear infinite}
.open-boundary .boundary-check{stroke:var(--boundary-warm);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 9px var(--boundary-warm));animation:boundary-verify 7s ease-in-out infinite}
.open-boundary[data-motion-paused] .boundary-visual,.open-boundary[data-motion-paused] .boundary-motion path{animation-play-state:paused}
@keyframes boundary-transmit{0%{stroke-dashoffset:0;opacity:0}8%,82%{opacity:.85}100%{stroke-dashoffset:-1000;opacity:0}}
@keyframes boundary-orbit{0%{stroke-dashoffset:0;opacity:0}8%,87%{opacity:.55}100%{stroke-dashoffset:-1000;opacity:0}}
@keyframes boundary-verify{0%,30%,70%,100%{opacity:0}48%,52%{opacity:.7}}
@keyframes boundary-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(max-width:1100px){.open-boundary .boundary-visual{height:390px}}
@media(max-width:850px){.open-boundary .boundary-visual{height:340px}}
@media(max-width:600px){.open-boundary .boundary-visual{width:calc(100% + 20px);height:auto;aspect-ratio:3/2;max-height:310px;margin-left:-10px}.open-boundary .boundary-visual .boundary-image{height:100%;max-height:none}}
@media(prefers-reduced-motion:reduce){.open-boundary .boundary-visual{animation:none}.open-boundary .boundary-motion{display:none}}
