.ct3d-scroll {
    position: relative;
    width: 100%;
    max-width: var(--ct3d-max-width, 1920px);
    aspect-ratio: 16 / 9;
    margin: 0 auto;
    padding: 0;
    overflow: hidden;
    border-radius: var(--ct3d-radius, 0);
    background: #0b0b0b;
}

.ct3d-scroll__stage {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: #0b0b0b;
}

.ct3d-scroll__canvas,
.ct3d-scroll__fallback {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ct3d-scroll__loader {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    pointer-events: none;
    transition: opacity 300ms ease;
}

.ct3d-scroll__loader span {
    width: 34px;
    height: 34px;
    border: 2px solid rgba(255, 255, 255, 0.28);
    border-top-color: #fff;
    border-radius: 50%;
    animation: ct3d-spin 800ms linear infinite;
}

.ct3d-scroll.is-ready .ct3d-scroll__loader {
    opacity: 0;
}

@keyframes ct3d-spin {
    to { transform: rotate(360deg); }
}
