body {
    background: #f7f5ef;
}
.court-lines {
    background-image: repeating-linear-gradient(
        90deg,
        transparent,
        transparent 79px,
        rgba(247, 245, 239, 0.06) 79px,
        rgba(247, 245, 239, 0.06) 80px
    );
}
.score-card {
    background: #ffffff;
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease;
}
.score-card:hover {
    transform: translateY(-4px);
    border-color: rgba(11, 43, 38, 0.22);
}
.tag-dot::before {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: currentColor;
    margin-right: 8px;
}
details.faq-item summary::-webkit-details-marker {
    display: none;
}
/* Mobile products fill the track's content box, with side padding creating a subtle next-item peek. */
#store-mobile-track .store-mobile-slide {
    scroll-snap-align: center;
}
#store-mobile-track {
    padding-inline: 7.5%;
}
details.faq-item[open] .faq-chevron {
    transform: rotate(180deg);
}
html {
    scroll-padding-top: 64px;
}
@media (min-width: 640px) {
    html {
        scroll-padding-top: 80px;
    }
}
:focus-visible {
    outline: 3px solid #e4ff3e;
    outline-offset: 2px;
}
@keyframes floatSlow {
    0%,
    100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}
.float-slow {
    animation: floatSlow 6s ease-in-out infinite;
}
@keyframes hintPulse {
    0%,
    100% {
        opacity: 0;
        transform: translateY(4px);
    }
    35%,
    65% {
        opacity: 1;
        transform: translateY(0);
    }
}
.read-more-hint {
    animation: hintPulse 3.5s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
    .float-slow {
        animation: none;
    }
    .read-more-hint {
        animation: none;
        opacity: 1;
    }
    .reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
.reveal {
    opacity: 0;
    transform: translateY(16px);
    transition:
        opacity 0.6s ease,
        transform 0.6s ease;
}
.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.no-scrollbar {
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.no-scrollbar::-webkit-scrollbar {
    display: none;
}
/* mobile-only partner logo strip: seamless auto-scroll, non-interactive */
@keyframes partnerScrollMobile {
    from {
        transform: translate3d(0, 0, 0);
    }
    to {
        transform: translate3d(-50%, 0, 0);
    }
}
.partner-track-mobile {
    animation: partnerScrollMobile 16s linear infinite;
    backface-visibility: hidden;
    will-change: transform;
}
@media (prefers-reduced-motion: reduce) {
    .partner-track-mobile {
        animation: none;
    }
}
/* generated caution-tape stripe pattern, scales cleanly instead of a low-res image */
.strip-line-bg {
    background-image: repeating-linear-gradient(
        -45deg,
        #0b2b26 0,
        #0b2b26 18px,
        #e4ff3e 18px,
        #e4ff3e 36px
    );
    background-size: 51px 51px;
}
/* curriculum steps 5-10: flattened into the grid on all sizes, collapsible on mobile only */
.curriculum-more {
    display: contents;
}
@media (max-width: 639px) {
    header.fixed,
    .fixed.bottom-0 {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }
    header.fixed {
        background-color: #f7f5ef;
    }
    .fixed.bottom-0 {
        background-color: #0b2b26;
    }
    .curriculum-more.is-collapsed {
        display: none;
    }
    .collaboration-details.is-collapsed {
        display: none;
    }
    .package-more.is-collapsed {
        display: none;
    }
}
/* desktop image uses a mask; mobile uses its overlay gradient to avoid Safari repaint flicker */
.hero-photo {
    mask-image: linear-gradient(to bottom, transparent 0%, black 25%);
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 25%);
}
@media (min-width: 1024px) {
    .hero-photo {
        mask-image:
            linear-gradient(to right, transparent 0%, black 22%, black 100%),
            linear-gradient(to bottom, black 70%, transparent 100%);
        mask-composite: intersect;
        -webkit-mask-image:
            linear-gradient(to right, transparent 0%, black 22%, black 100%),
            linear-gradient(to bottom, black 60%, transparent 100%);
        -webkit-mask-composite: source-in;
    }
}
body {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
input,
textarea,
select {
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
}
