/* halo-crest — layout, sizes, motion only (colours live in the template) */

.halo-crest__glow {
    width: 60rem;
    height: 36rem;
    transform: translate(-50%, -30%);
    filter: blur(100px);
}

.halo-crest__haze {
    width: 70rem;
    height: 22rem;
    transform: translate(-50%, 55%);
    filter: blur(110px);
}

.halo-crest__title {
    letter-spacing: -0.03em;
    text-wrap: balance;
}

.halo-crest__eyebrow {
    letter-spacing: 0.18em;
}

/* --- arc + bubbles --- */

.halo-crest__orbit {
    left: 50%;
    bottom: 6.5rem;
    width: 32.5rem;
    height: 32.5rem;
    transform: translateX(-50%);
}

.halo-crest__stage {
    height: 13rem;
}

/* mobile: keep only the lower half of the ring so it never crosses the copy */
.halo-crest__ring {
    clip-path: inset(50% 0 0 0);
}

.halo-crest__slot {
    width: 3.5rem;
    height: 3.5rem;
    transform: translate(-50%, -50%);
    left: 50%;
    top: 100%;
}

/* positions on a radius of 55.5% of the orbit box (fixed angles, pre-computed) */
.halo-crest__slot--1  { left: 8.76%;   top: 87.14%; }
.halo-crest__slot--2  { left: 18.17%;  top: 95.46%; }
.halo-crest__slot--3  { left: 30.11%;  top: 101.81%; }
.halo-crest__slot--4  { left: 44.20%;  top: 105.20%; }
.halo-crest__slot--5  { left: 60.59%;  top: 104.48%; }
.halo-crest__slot--6  { left: 75.20%;  top: 99.45%; }
.halo-crest__slot--7  { left: 87.14%;  top: 91.24%; }
.halo-crest__slot--8  { left: 96.01%;  top: 81.04%; }
.halo-crest__slot--9  { left: 0.12%;   top: 74.33%; }
.halo-crest__slot--10 { left: 102.15%; top: 68.98%; }

.halo-crest__slot--9,
.halo-crest__slot--10 {
    display: none;
}

.halo-crest__glyph {
    font-size: 1.25rem;
    line-height: 1;
}

.halo-crest__bubble {
    animation: halo-crest-bob 6s ease-in-out infinite;
    will-change: transform;
}

.halo-crest__bubble--1  { animation-delay: 0s; }
.halo-crest__bubble--2  { animation-delay: -1.2s; }
.halo-crest__bubble--3  { animation-delay: -2.4s; }
.halo-crest__bubble--4  { animation-delay: -3.6s; }
.halo-crest__bubble--5  { animation-delay: -4.8s; }
.halo-crest__bubble--6  { animation-delay: -0.6s; }
.halo-crest__bubble--7  { animation-delay: -1.8s; }
.halo-crest__bubble--8  { animation-delay: -3s; }
.halo-crest__bubble--9  { animation-delay: -4.2s; }
.halo-crest__bubble--10 { animation-delay: -5.4s; }

@keyframes halo-crest-bob {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-0.6rem); }
}

@media (min-width: 768px) {
    .halo-crest__orbit {
        bottom: 8rem;
        width: 62rem;
        height: 62rem;
    }

    .halo-crest__stage {
        height: 20rem;
    }

    .halo-crest__ring {
        clip-path: none;
    }

    .halo-crest__slot {
        width: 4.75rem;
        height: 4.75rem;
    }

    .halo-crest__slot--9,
    .halo-crest__slot--10 {
        display: block;
    }

    .halo-crest__glyph {
        font-size: 1.6rem;
    }
}

@media (min-width: 1024px) {
    .halo-crest__orbit {
        bottom: 9rem;
        width: min(87.5rem, 97vw);
        height: min(87.5rem, 97vw);
    }

    .halo-crest__stage {
        height: 24rem;
    }

    .halo-crest__slot {
        width: 6rem;
        height: 6rem;
    }

    .halo-crest__glyph {
        font-size: 2rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .halo-crest__bubble {
        animation: none;
    }
}

.content-disclaimer-logo__mark {
    width: 5rem;
    height: 5rem;
}

.content-disclaimer-logo__mark--small {
    width: 3rem;
    height: 3rem;
}

.content-disclaimer-logo__mark--large {
    width: 6rem;
    height: 6rem;
}

.content-disclaimer-logo__mark svg {
    display: block;
    width: 100%;
    height: 100%;
}

.content-disclaimer-ticker__rail {
    animation: content-disclaimer-drift 9s ease-in-out infinite alternate;
}

.content-disclaimer-orb--large {
    width: 12rem;
    height: 12rem;
    animation: content-disclaimer-float 8s ease-in-out infinite;
}

.content-disclaimer-orb--small {
    width: 7rem;
    height: 7rem;
    animation: content-disclaimer-float 7s ease-in-out infinite reverse;
}

.content-disclaimer-corner {
    width: 4rem;
    height: 4rem;
    pointer-events: none;
}

.content-disclaimer-orbit__ring {
    animation: content-disclaimer-spin 14s linear infinite;
}

.content-disclaimer-rail__accent {
    width: 100%;
    height: 0.75rem;
    flex-shrink: 0;
    animation: content-disclaimer-grow 5s ease-in-out infinite alternate;
}

.content-disclaimer-pattern {
    pointer-events: none;
}

.content-disclaimer-pulse {
    width: 0.75rem;
    height: 0.75rem;
    animation: content-disclaimer-pulse 1.8s ease-in-out infinite;
}

@media (min-width: 768px) {
    .content-disclaimer-rail__accent {
        width: 0.75rem;
        height: auto;
    }
}

@keyframes content-disclaimer-drift {
    from { transform: translateX(-1rem); }
    to { transform: translateX(1rem); }
}

@keyframes content-disclaimer-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(0.75rem); }
}

@keyframes content-disclaimer-spin {
    from { transform: rotate(0deg) scale(1); }
    to { transform: rotate(360deg) scale(1.04); }
}

@keyframes content-disclaimer-grow {
    from { transform: scaleX(0.75); }
    to { transform: scaleX(1); }
}

@keyframes content-disclaimer-pulse {
    0%, 100% { transform: scale(1); opacity: 0.65; }
    50% { transform: scale(1.35); opacity: 1; }
}

/* glossary zig — reserved for layout-only hooks; motion lives in Tailwind on @sem('row'). */

.content-trio-showcase__image {
    display: block;
    width: 100%;
    height: 10rem;
    object-fit: cover;
}

.content-trio-showcase__image--tall {
    height: 14rem;
}

.content-trio-showcase__image--short {
    height: 8rem;
}

.content-trio-showcase__card-lift {
    transition: transform 180ms ease;
}

.content-trio-showcase__card-lift:hover {
    transform: translateY(-0.25rem);
}

.content-trio-showcase__float {
    animation: content-trio-showcase-float 7s ease-in-out infinite;
}

.content-trio-showcase__rail {
    width: 100%;
    height: 0.25rem;
}

.content-trio-showcase__thumb {
    width: 7rem;
    height: 5rem;
}

.content-trio-showcase__badge {
    width: 2.5rem;
    height: 2.5rem;
}

@media (min-width: 768px) {
    .content-trio-showcase__rail {
        width: 0.25rem;
        height: auto;
    }
}

@keyframes content-trio-showcase-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(0.5rem); }
}

.content-trio-showcase__dot {
    width: 0.5rem;
    height: 0.5rem;
}

.content-trio-showcase__float {
    width: 6rem;
    height: 6rem;
}

@media (min-width: 768px) {
    .content-trio-showcase__offset {
        margin-top: 2.5rem;
    }
}

