.abs-orbit {
--orbit-bottom: 1.5rem; margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
width: 100%;
max-width: 32rem;
}
.abs-orbit__stage {
position: relative;
width: 100%;
aspect-ratio: 1 / .68;
overflow-x: clip; } .abs-orbit__core {
position: absolute;
top: calc((100% - var(--orbit-bottom)) / 2);
left: 50%;
z-index: 2;
width: 44%;
color: var(--abs-ink);
transform: translate(-50%, -50%);
}
.abs-orbit__heart-svg { display: block; width: 100%; height: auto; }
.abs-orbit__path { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; display: none; }
.abs-orbit__path--back { z-index: 1; }
.abs-orbit__path--front { z-index: 3; }
.abs-orbit__back { fill: none; stroke: var(--abs-ink); stroke-width: 1; opacity: .2; }
.abs-orbit__front { fill: none; stroke: var(--abs-gold); stroke-width: 1; opacity: .7; }
.abs-orbit.is-orbiting .abs-orbit__path { display: block; }
.abs-orbit .abs-orbit__words {
position: absolute;
left: 0;
right: 0;
bottom: 0;
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: .25rem 1.25rem;
margin: 0;
padding: 0;
list-style: none;
}
.abs-orbit .abs-orbit__word {
margin: 0;
font-family: inherit;
font-size: .9375rem;
letter-spacing: .02em;
line-height: 1.2;
white-space: nowrap;
color: var(--abs-ink); text-shadow: 0 0 .15em var(--abs-paper), 0 0 .3em var(--abs-paper), 0 0 .6em var(--abs-paper), 0 0 .9em var(--abs-paper);
}
.abs-orbit.is-orbiting .abs-orbit__words { inset: 0; display: block; }
.abs-orbit.is-orbiting .abs-orbit__word { position: absolute; top: 0; left: 0; will-change: transform, opacity; }
.abs-orbit .abs-orbit__caption { margin: 0; font-size: .875rem; color: var(--abs-ink-dim); text-align: center; }
.abs-orbit__sr {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip-path: inset(50%);
white-space: nowrap;
}
@media (max-width: 600px) {
.abs-orbit .abs-orbit__word { font-size: .8125rem; }
.abs-orbit__core { width: 40%; }
.abs-orbit { --orbit-bottom: 2.75rem; } .abs-orbit__stage { aspect-ratio: 1 / .72; }
} @media (min-width: 880px) {
.entry-content .abs-ab-open .abs-cols { align-items: start; }
.entry-content .abs-ab-open .abs-cols > :first-child { padding-top: clamp(1rem, 3vw, 3rem); }
}