.free-rewards {
    width: min(calc(100% - (var(--section-padding-x) * 2)), var(--container));
    max-width: none;
    margin: var(--section-spacing) auto 0;
    padding: 0;
    position: relative;
    box-sizing: border-box;

    --fr-text: var(--text);
    --fr-muted: rgba(220, 229, 248, .76);
    --fr-soft: rgba(220, 229, 248, .54);

    --fr-blue: var(--primary);
    --fr-blue-rgb: var(--primary-rgb);

    --fr-purple: var(--purple, #8d6cff);
    --fr-purple-rgb: var(--purple-rgb, 141, 108, 255);

    --fr-pink: var(--instagram, #ff4d84);
    --fr-pink-rgb: var(--instagram-rgb, 255, 77, 132);

    --fr-gold: var(--accent);
    --fr-gold-rgb: var(--accent-rgb);

    --fr-discord: #6979ff;
    --fr-discord-rgb: 105, 121, 255;
}

.free-rewards,
.free-rewards *,
.free-rewards *::before,
.free-rewards *::after {
    box-sizing: border-box;
}

.free-rewards::before {
    content: "";
    position: absolute;
    top: 20%;
    left: -120px;
    width: 420px;
    height: 420px;
    z-index: -2;
    pointer-events: none;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(var(--fr-gold-rgb), .11), transparent 68%);
    filter: blur(72px);
    opacity: .78;
}

.free-rewards::after {
    content: "";
    position: absolute;
    right: -120px;
    bottom: -14%;
    width: 460px;
    height: 330px;
    z-index: -2;
    pointer-events: none;
    border-radius: 999px;
    background:
        radial-gradient(circle at 64% 44%, rgba(var(--fr-purple-rgb), .13), transparent 66%),
        radial-gradient(circle at 22% 62%, rgba(var(--fr-pink-rgb), .075), transparent 56%);
    filter: blur(74px);
    opacity: .82;
}

.free-rewards__top {
    position: relative;
    z-index: 3;
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 520px);
    align-items: end;
    gap: 34px;
    margin-bottom: 30px;
}

.free-rewards__top::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -16px;
    height: 1px;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(var(--fr-gold-rgb), .40), rgba(var(--fr-pink-rgb), .18), transparent 72%);
}

.free-rewards__heading {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 15px;
}

.free-rewards__heading-icon {
    position: relative;
    width: 56px;
    height: 56px;
    flex: 0 0 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--fr-gold);
}

.free-rewards__heading-icon::before {
    content: "";
    position: absolute;
    inset: 6px;
    z-index: -2;
    border-radius: 17px;
    background: rgba(var(--fr-gold-rgb), .30);
    filter: blur(15px);
    opacity: .92;
    transition:
        transform var(--transition),
        opacity var(--transition);
}

.free-rewards__heading-icon::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: 17px;
    background:
        radial-gradient(circle at 34% 18%, rgba(255, 255, 255, .22), transparent 36%),
        linear-gradient(135deg, rgba(var(--fr-gold-rgb), .24), rgba(var(--fr-pink-rgb), .13) 58%, rgba(var(--fr-blue-rgb), .16)),
        rgba(255, 255, 255, .035);
    border: 1px solid rgba(var(--fr-gold-rgb), .22);
    box-shadow:
        0 16px 34px rgba(0, 0, 0, .28),
        0 0 26px rgba(var(--fr-gold-rgb), .14),
        inset 0 1px 0 rgba(255, 255, 255, .20);
}

.free-rewards__heading:hover .free-rewards__heading-icon::before {
    transform: scale(1.16);
    opacity: 1;
}

.free-rewards__heading-icon svg {
    position: relative;
    z-index: 1;
    width: 30px;
    height: 30px;
    filter:
        drop-shadow(0 7px 12px rgba(0, 0, 0, .30))
        drop-shadow(0 0 12px rgba(var(--fr-gold-rgb), .28));
}

.free-rewards__heading-copy {
    min-width: 0;
}

.free-rewards__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 8px;
    color: #ffd166;
    font-family: var(--font-tech);
    font-size: 11px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    white-space: nowrap;
}

.free-rewards__eyebrow span {
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 50%;
    background: var(--fr-gold);
    box-shadow:
        0 0 10px rgba(var(--fr-gold-rgb), .92),
        0 0 22px rgba(var(--fr-gold-rgb), .28);
    animation: freeRewardsDot 1.8s ease-in-out infinite;
}

.free-rewards__title {
    margin: 0;
    color: var(--fr-text);
    font-family: var(--font-heading) !important;
    font-size: 18px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: -.02em;
    text-shadow:
        0 14px 38px rgba(0, 0, 0, .30),
        0 0 20px rgba(var(--fr-gold-rgb), .10);
}

.free-rewards__subtitle {
    max-width: 520px;
    margin: 0 0 4px;
    color: var(--fr-muted);
    font-family: var(--font-ui);
    font-size: 15px;
    line-height: 1.68;
    font-weight: 500;
    text-align: right;
}

.free-rewards__list {
    position: relative;
    z-index: 2;
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.free-rewards__item {
    --fr-accent-rgb: var(--fr-pink-rgb);
    --fr-accent: var(--fr-pink);

    position: relative;
    isolation: isolate;
    width: 100%;
    min-width: 0;
    min-height: 510px;
    overflow: hidden;
    display: grid;
    grid-template-rows: auto minmax(220px, 1fr) auto;
    padding: 22px;
    border-radius: var(--radius-section);
    background:
        radial-gradient(circle at 10% 12%, rgba(var(--fr-accent-rgb), .15), transparent 28%),
        radial-gradient(circle at 90% 86%, rgba(var(--fr-blue-rgb), .10), transparent 32%),
        linear-gradient(135deg, rgba(8, 14, 28, .76), rgba(5, 10, 22, .60)),
        rgba(6, 11, 22, .38);
    border: 1px solid rgba(170, 188, 255, .13);
    backdrop-filter: blur(18px) saturate(1.12);
    -webkit-backdrop-filter: blur(18px) saturate(1.12);
    box-shadow:
        0 28px 90px rgba(0, 0, 0, .34),
        0 0 0 1px rgba(255, 255, 255, .022),
        inset 0 1px 0 rgba(255, 255, 255, .06);
    transition:
        transform var(--transition),
        border-color var(--transition),
        box-shadow var(--transition),
        background var(--transition);
}

.free-rewards__item--instagram {
    --fr-accent-rgb: var(--fr-pink-rgb);
    --fr-accent: var(--fr-pink);
}

.free-rewards__item--discord {
    --fr-accent-rgb: var(--fr-discord-rgb);
    --fr-accent: var(--fr-discord);
}

.free-rewards__item::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -6;
    pointer-events: none;
    background:
        linear-gradient(rgba(170, 188, 255, .040) 1px, transparent 1px),
        linear-gradient(90deg, rgba(170, 188, 255, .040) 1px, transparent 1px);
    background-size: 56px 56px;
    opacity: .14;
    mask-image: linear-gradient(180deg, black 0%, black 52%, transparent 90%);
    -webkit-mask-image: linear-gradient(180deg, black 0%, black 52%, transparent 90%);
    animation: freeRewardsGridMove 20s linear infinite;
}

.free-rewards__item::after {
    content: "";
    position: absolute;
    inset: 1px;
    z-index: -5;
    pointer-events: none;
    border-radius: calc(var(--radius-section) - 1px);
    background:
        linear-gradient(90deg, rgba(var(--fr-accent-rgb), .34), transparent 18%, transparent 82%, rgba(var(--fr-blue-rgb), .20)),
        linear-gradient(180deg, rgba(255, 255, 255, .075), transparent 44%, rgba(255, 255, 255, .026));
    -webkit-mask:
        linear-gradient(#000 0 0) top / 100% 1px no-repeat,
        linear-gradient(#000 0 0) bottom / 100% 1px no-repeat,
        linear-gradient(#000 0 0) left / 1px 100% no-repeat,
        linear-gradient(#000 0 0) right / 1px 100% no-repeat;
    mask:
        linear-gradient(#000 0 0) top / 100% 1px no-repeat,
        linear-gradient(#000 0 0) bottom / 100% 1px no-repeat,
        linear-gradient(#000 0 0) left / 1px 100% no-repeat,
        linear-gradient(#000 0 0) right / 1px 100% no-repeat;
    opacity: .88;
}

.free-rewards__item:hover {
    transform: translateY(-4px);
    border-color: rgba(var(--fr-accent-rgb), .20);
    box-shadow:
        0 34px 100px rgba(0, 0, 0, .42),
        0 0 30px rgba(var(--fr-accent-rgb), .08),
        inset 0 1px 0 rgba(255, 255, 255, .07);
}

.free-rewards__item-glow,
.free-rewards__item-grid {
    position: absolute;
    pointer-events: none;
}

.free-rewards__item-glow {
    z-index: -7;
    border-radius: 999px;
    filter: blur(76px);
}

.free-rewards__item-glow--one {
    width: 300px;
    height: 300px;
    top: -125px;
    left: -100px;
    background: rgba(var(--fr-accent-rgb), .22);
    animation: freeRewardsGlowLeft 9s ease-in-out infinite;
}

.free-rewards__item-glow--two {
    width: 390px;
    height: 390px;
    right: -165px;
    bottom: -180px;
    background: rgba(var(--fr-accent-rgb), .14);
    animation: freeRewardsGlowRight 11s ease-in-out infinite;
}

.free-rewards__item-grid {
    display: none;
}

.free-rewards__card-top {
    position: relative;
    z-index: 4;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 16px;
}

.free-rewards__platform-block {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.free-rewards__platform {
    position: relative;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 15px;
    color: var(--fr-accent);
    background:
        radial-gradient(circle at 35% 22%, rgba(255, 255, 255, .16), transparent 36%),
        rgba(255, 255, 255, .04);
}

.free-rewards__platform::before {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(135deg, rgba(var(--fr-accent-rgb), .50), rgba(255, 255, 255, .05));
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

.free-rewards__platform svg {
    position: relative;
    z-index: 1;
    width: 21px;
    height: 21px;
}

.free-rewards__label {
    min-width: 0;
    color: rgba(235, 240, 255, .82);
    font-family: var(--font-tech);
    font-size: 10px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.free-rewards__price {
    flex: 0 0 auto;
    min-height: 36px;
    padding: 0 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-pill);
    color: var(--fr-text);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .012)),
        rgba(5, 10, 22, .32);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .04),
        0 0 0 1px rgba(255, 255, 255, .055);
    font-family: var(--font-tech);
    font-size: 12px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    white-space: nowrap;
}

.free-rewards__visual {
    position: relative;
    z-index: 3;
    width: 100%;
    min-width: 0;
    min-height: 235px;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.free-rewards__visual::before {
    content: "";
    position: absolute;
    width: min(86%, 420px);
    height: 62%;
    border-radius: 999px;
    background:
        radial-gradient(circle at 48% 50%, rgba(var(--fr-accent-rgb), .20), transparent 55%),
        radial-gradient(circle at 66% 62%, rgba(var(--fr-blue-rgb), .09), transparent 58%);
    filter: blur(24px);
    opacity: .9;
    pointer-events: none;
}

.free-rewards__orb {
    position: absolute;
    border-radius: 999px;
    pointer-events: none;
}

.free-rewards__orb--one {
    width: min(76%, 390px);
    height: 124px;
    border: 1px solid rgba(var(--fr-accent-rgb), .15);
    transform: rotate(-8deg);
    box-shadow:
        0 0 0 18px rgba(255, 255, 255, .006),
        0 0 44px rgba(var(--fr-accent-rgb), .08);
    animation: freeRewardsOrbit 7s ease-in-out infinite;
}

.free-rewards__orb--two {
    width: min(62%, 320px);
    height: 96px;
    border: 1px dashed rgba(var(--fr-accent-rgb), .13);
    transform: rotate(-8deg);
    animation: freeRewardsOrbitReverse 8s ease-in-out infinite;
}

.free-rewards__spark {
    position: absolute;
    top: 24%;
    right: 25%;
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: var(--fr-accent);
    box-shadow: 0 0 16px rgba(var(--fr-accent-rgb), .85);
    animation: freeRewardsDot 2.2s ease-in-out infinite;
}

.free-rewards__image {
    position: relative;
    z-index: 3;
    width: min(80%, 360px);
    max-height: 205px;
    object-fit: contain;
    filter:
        drop-shadow(0 30px 38px rgba(0, 0, 0, .42))
        drop-shadow(0 0 24px rgba(var(--fr-accent-rgb), .14));
    transition:
        transform var(--transition-slow),
        filter var(--transition-slow);
}

.free-rewards__item:nth-child(odd) .free-rewards__image {
    transform: rotate(-7deg);
}

.free-rewards__item:nth-child(even) .free-rewards__image {
    transform: rotate(6deg);
}

.free-rewards__item:hover .free-rewards__image {
    filter:
        drop-shadow(0 36px 46px rgba(0, 0, 0, .48))
        drop-shadow(0 0 32px rgba(var(--fr-accent-rgb), .20));
}

.free-rewards__item:nth-child(odd):hover .free-rewards__image {
    transform: rotate(-4deg) translateY(-8px) scale(1.035);
}

.free-rewards__item:nth-child(even):hover .free-rewards__image {
    transform: rotate(3deg) translateY(-8px) scale(1.035);
}

.free-rewards__copy {
    position: relative;
    z-index: 4;
    min-width: 0;
    width: 100%;
}

.free-rewards__copy::before {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    margin-bottom: 18px;
    background: linear-gradient(90deg, rgba(var(--fr-accent-rgb), .32), rgba(255, 255, 255, .06), transparent);
}

.free-rewards__item-title {
    max-width: 100%;
    margin: 0;
    color: var(--fr-text);
    font-family: var(--font-display) !important;
    font-size: clamp(34px, 3vw, 48px);
    line-height: .92;
    font-weight: 800;
    letter-spacing: -.045em;
    text-transform: uppercase;
    text-shadow:
        0 18px 46px rgba(0, 0, 0, .34),
        0 0 24px rgba(var(--fr-accent-rgb), .10);
}

.free-rewards__item-title span,
.free-rewards__item-title strong {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.free-rewards__item-title strong {
    color: var(--fr-accent);
}

.free-rewards__description {
    max-width: 520px;
    margin: 14px 0 0;
    color: var(--fr-muted);
    font-family: var(--font-ui);
    font-size: 14.5px;
    line-height: 1.62;
    font-weight: 500;
}

.free-rewards__button {
    position: relative;
    overflow: hidden;
    width: 100%;
    min-height: 48px;
    margin-top: 22px;
    padding: 0 17px;
    border-radius: var(--radius-pill);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    color: #fff;
    text-decoration: none;
    background:
        radial-gradient(circle at 20% 10%, rgba(255, 255, 255, .16), transparent 28%),
        linear-gradient(135deg, var(--fr-blue) 0%, #786dff 58%, #9872ff 100%);
    box-shadow:
        0 16px 34px rgba(var(--fr-blue-rgb), .20),
        inset 0 1px 0 rgba(255, 255, 255, .14);
    transition:
        transform var(--transition),
        box-shadow var(--transition),
        filter var(--transition);
}

.free-rewards__button::before {
    content: "";
    position: absolute;
    top: -50%;
    bottom: -50%;
    left: -70%;
    width: 42%;
    background: linear-gradient(115deg, transparent, rgba(255, 255, 255, .22), transparent);
    transform: skewX(-18deg);
    transition: left .78s ease;
}

.free-rewards__button::after {
    content: "";
    position: absolute;
    left: 17px;
    right: 17px;
    bottom: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(var(--fr-accent-rgb), .78), transparent);
    opacity: .72;
}

.free-rewards__button:hover {
    transform: translateY(-3px);
    filter: brightness(1.045);
    box-shadow:
        0 20px 40px rgba(var(--fr-blue-rgb), .25),
        0 0 20px rgba(var(--fr-accent-rgb), .08),
        inset 0 1px 0 rgba(255, 255, 255, .18);
}

.free-rewards__button:hover::before {
    left: 125%;
}

.free-rewards__button span,
.free-rewards__button svg {
    position: relative;
    z-index: 1;
}

.free-rewards__button span {
    font-family: var(--font-tech);
    font-size: 11px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.free-rewards__button svg {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    transition: transform var(--transition);
}

.free-rewards__button:hover svg {
    transform: translateX(4px);
}

@keyframes freeRewardsGridMove {
    0% {
        background-position: center 0;
    }

    100% {
        background-position: center 56px;
    }
}

@keyframes freeRewardsGlowLeft {
    0%,
    100% {
        transform: translate3d(0, 0, 0) scale(1);
        opacity: .72;
    }

    50% {
        transform: translate3d(14px, 10px, 0) scale(1.06);
        opacity: .94;
    }
}

@keyframes freeRewardsGlowRight {
    0%,
    100% {
        transform: translate3d(0, 0, 0) scale(1);
        opacity: .68;
    }

    50% {
        transform: translate3d(-10px, -14px, 0) scale(1.08);
        opacity: .88;
    }
}

@keyframes freeRewardsOrbit {
    0%,
    100% {
        transform: rotate(-8deg) scale(1);
        opacity: .68;
    }

    50% {
        transform: rotate(-5deg) scale(1.035);
        opacity: .95;
    }
}

@keyframes freeRewardsOrbitReverse {
    0%,
    100% {
        transform: rotate(-8deg) scale(1);
        opacity: .50;
    }

    50% {
        transform: rotate(-12deg) scale(1.04);
        opacity: .82;
    }
}

@keyframes freeRewardsDot {
    0%,
    100% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.42);
        opacity: .52;
    }
}

@media (max-width: 1180px) {
    .free-rewards__top {
        grid-template-columns: 1fr;
        align-items: flex-start;
        gap: 14px;
    }

    .free-rewards__subtitle {
        max-width: 100%;
        text-align: left;
    }

    .free-rewards__item {
        min-height: 500px;
    }
}

@media (max-width: 980px) {
    .free-rewards__list {
        grid-template-columns: 1fr;
    }

    .free-rewards__item {
        min-height: auto;
    }

    .free-rewards__visual {
        min-height: 245px;
    }

    .free-rewards__image {
        width: min(80%, 380px);
        max-height: 215px;
    }
}

@media (max-width: 820px) {
    .free-rewards__heading {
        align-items: flex-start;
    }

    .free-rewards__heading-icon {
        width: 54px;
        height: 54px;
        flex-basis: 54px;
    }

    .free-rewards__heading-icon svg {
        width: 28px;
        height: 28px;
    }

    .free-rewards__title {
        font-size: 17px;
    }

    .free-rewards__item {
        border-radius: 22px;
    }

    .free-rewards__item::after {
        border-radius: 21px;
    }
}

@media (max-width: 520px) {
    .free-rewards__top {
        margin-bottom: 24px;
    }

    .free-rewards__heading {
        gap: 12px;
    }

    .free-rewards__heading-icon {
        width: 50px;
        height: 50px;
        flex-basis: 50px;
    }

    .free-rewards__heading-icon::after,
    .free-rewards__heading-icon::before {
        border-radius: 16px;
    }

    .free-rewards__heading-icon svg {
        width: 25px;
        height: 25px;
    }

    .free-rewards__eyebrow {
        font-size: 9px;
        letter-spacing: .11em;
        margin-bottom: 8px;
    }

    .free-rewards__title {
        font-size: 16px;
    }

    .free-rewards__subtitle {
        font-size: 13.5px;
    }

    .free-rewards__item {
        padding: 18px;
        border-radius: 20px;
        grid-template-rows: auto auto auto;
    }

    .free-rewards__item::after {
        border-radius: 19px;
    }

    .free-rewards__card-top {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }

    .free-rewards__price {
        width: 100%;
    }

    .free-rewards__visual {
        min-height: 210px;
    }

    .free-rewards__image {
        width: min(96%, 350px);
        max-height: 170px;
    }

    .free-rewards__item-title {
        font-size: clamp(28px, 10vw, 38px);
    }

    .free-rewards__description {
        font-size: 13.5px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .free-rewards *,
    .free-rewards *::before,
    .free-rewards *::after {
        animation: none !important;
        transition: none !important;
    }
}