.pack {
    padding: 1rem 1rem 2rem;
    overflow: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    position: absolute;
    top: 0;
    z-index: 2;
    height:calc(100vh - 3rem);height:calc(100svh - 3rem);
    width: calc(100% - 2rem)
}

@supports (max-height: 99dvh) {
    .pack {
        height:calc(100dvh - 3rem)
    }
}

.pack:before {
    content: "";
    width: 100%;
    margin-top: -1rem;
    height:100vh;height:100svh;
    position: absolute;
    background-color: #1c1c1e;
    background-image: url(../styles/iconsbg.webp);
    z-index: -1;
    background-size: 100%
}

.pack__image {
    height:calc(100vh - 40%);height:calc(100svh - 40%)
}

@supports (max-height: 99dvh) {
    .pack__image {
        height:calc(100dvh - 40%)
    }
}

.pack__gum-image {
    width: 60%;
    margin: 0 auto
}

.pack__gum-image-wrapper {
    height: fit-content;
    display: flex;
    flex-direction: column;
    justify-content: center
}

.pack__gum-icon {
    width: 14px
}

.pack__gum-title {
    margin-top: 1rem;
    font-size: 24px;
    font-weight: 800;
    line-height: 29px;
    letter-spacing: -.5px;
    text-align: center;
    max-width: 80%;
    display: flex;
    flex-direction: column
}

.pack__booster-description {
    font-size: 17px;
    font-weight: 400;
    line-height: 22px;
    color: #ffffffb2;
    margin-top: 1rem
}

.pack__buttons {
    padding: 1em;
    display: flex;
    gap: 16px;
    justify-content: center
}

.pack__button {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    padding: 10px 6px;
    gap: 10px;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 42px;
    background-color: transparent;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    line-height: 16px
}

.pack__button--cap {
    min-width: 5rem
}

.pack__button--link {
    color: #ffcd00;
    text-decoration: underline;
    padding: 0 .75rem;
    gap: .4rem
}

.pack__button--link img {
    border-radius: 50%;
    width: 22px
}

.pack__button--gum {
    padding: 6px 20px
}

.pack__button--active {
    border: 1px solid #FFFFFF
}

.pack__buy {
    margin-bottom: 1rem;
    width: 100%
}

.pack__buy img {
    height: 1rem;
    margin-left: .25rem
}

.pack__balance {
    font-size: 15px;
    font-weight: 400;
    line-height: 18px;
    text-align: center
}

.pack__quantity-button {
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    color: #fff;
    background: #ffffff1a;
    height: 56px;
    min-width: 56px;
    font-size: 17px;
    font-weight: 600;
    line-height: 22px
}

.pack__open {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    height:100vh;height:100svh;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #1c1c1e;
    background-image: url("icons/bg-1e2648cde3a8d386882d84b82107ff05.webp");
    background-size: 100%;
    z-index: 1000
}

.pack__open-title {
    font-size: 24px;
    font-weight: 800;
    line-height: 29px;
    letter-spacing: -.5px;
    text-align: center;
    margin-bottom: 1rem
}

.pack__open-button {
    position: relative
}

.pack__open-top-wrapper {
    z-index: 11
}

.pack__open-top-wrapper.opened {
    z-index: -1
}

.pack__open-top {
    width: 284px;
    height: 75px
}

@keyframes packOpenTop {
    0% {
        transform: translateY(30px);
        opacity: 0
    }

    to {
        transform: translateY(0);
        opacity: 1
    }
}

:is(.pack__open-top-wrapper,.pack__open-bottom-parts).animate {
    transform-origin: right bottom;
    animation: packOpenTop 1s forwards
}

.pack__open-bottom-parts {
    position: relative;
    z-index: 10;
    width: 284px;
    height: 457px
}

.pack__open-bottom-parts img {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0
}

.pack__open-bottom-bg {
    opacity: 0;
    z-index: -1
}

.pack__open-bottom-bg.opening {
    transition: transform .8s,opacity .8s;
    opacity: 1;
    transform: translate(4%,329%) rotate(1.22deg) scale(1.7)
}

.pack__open-bottom.opening {
    transition: transform .8s;
    transform: translate(-15%,131%) rotate(9.07deg) scale(1.8)
}

.pack__open-title.opening {
    animation: fadeOut 1s forwards
}

.pack__open-cap-wrapper {
    position: absolute;
    top: 100%;
    transition: transform 1.5s;
    -webkit-transition: -webkit-transform 1.5s;
    transform: translate(0);
    width: 200px;
    height: 200px;
    perspective: 1000px
}

.pack__open-cap-wrapper img {
    width: 200px
}

.pack__open-bottom-parts.opened {
    z-index: -1
}

.pack__open-cap1 {
    z-index: 3
}

.pack__open-cap2 {
    transition-delay: .8s;
    z-index: 4
}

.pack__open-cap3 {
    z-index: 3;
    transition: transform 1.5s 1.2s;
    transform: translate(0)
}

.pack__open-cap1.move {
    transform:translate(26%,-95vh);transform:translate(26%,-95svh)
}

.pack__open-cap2.move {
    transform:translate(-30%,-75vh) rotate(-40deg);transform:translate(-30%,-75svh) rotate(-40deg)
}

.pack__open-cap3.move {
    transform:translate(40%,-52vh) rotate(14.88deg);transform:translate(40%,-52svh) rotate(14.88deg)
}

@supports (max-height: 99dvh) {
    .pack__open-cap1.move {
        transform:translate(26%,-95dvh)
    }

    .pack__open-cap2.move {
        transform: translate(-30%,-75dvh) rotate(-40deg)
    }

    .pack__open-cap3.move {
        transform: translate(40%,-52dvh) rotate(14.88deg)
    }
}

.pack__open-cap {
    position: absolute;
    top: 0;
    left: 0;
    backface-visibility: hidden;
    transition: transform 1s;
    transform: translate(0)
}

.pack__open-cap-wrapper .front {
    transform: rotateY(0)
}

.pack__open-cap-wrapper .back,.pack__open-cap-wrapper.flip .front {
    transform: rotateY(180deg)
}

.pack__open-cap-wrapper.flip .back {
    transform: rotateY(0)
}

.pack__open-cap-wrapper:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    transition: opacity .5s 1s;
    opacity: 0;
    filter: blur(15.45px);
    will-change: transform;
    z-index: -1
}

.pack__open-cap-wrapper.flip:after {
    opacity: 1
}


.pack__open-cap-epic:after {
    background: #872fff
}

.pack__open-cap-legend:after {
    background: #f6cc1f
}

.pack__open-cap-pending {
    position: absolute!important;
    width: 100%;
    height: 100%;
    top: 38%;
    left: 40%;
    transform: scale(1.3)
}

@keyframes openFingerMove {
    0%,to {
        transform: rotate(158.64deg) translate(45.73px,-53.01px) scale(1.2)
    }

    50% {
        transform: rotate(148.64deg) translate(76.73px,-40.01px) scale(1)
    }
}

.pack__open-cap-finger {
    position: absolute;
    width: 89px!important;
    right: 0;
    top: 0;
    pointer-events: none;
    animation: openFingerMove 1.5s infinite ease-in-out
}

.pack__caps {
    display: flex;
    flex-direction: column;
    height:100vh;height:100svh;
    z-index: 1000;
    position: absolute;
    top: 0;
    background-color: #1c1c1e;
    background-image: url("icons/bg-1e2648cde3a8d386882d84b82107ff05.webp");
    background-size: 100%
}

@keyframes changeOpacity {
    0% {
        opacity: 0
    }
}

.pack__caps-list {
    animation: changeOpacity .4s forwards;
    opacity: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 13px;
    padding: 1rem 1rem 0;
    overflow-x: hidden
}

.pack__caps-buttons {
    margin-top: auto;
    display: flex;
    gap: .5rem;
    padding: 1rem;
    width: calc(100% - 2rem);
    height: calc(var(--bottom-button-height) - 2rem);
    align-items: start
}

.cap-image {
    max-width: 200px
}

.cap__element {
    position: relative;
    border-radius: 16px;
    font-family: Inter,sans-serif;
    width: 100%
}

.cap__element-wrapper {
    position: relative;
    border-radius: 24px;
    background-size: 100%
}

.cap__element--medium {
    background: #7878781a;
    padding: 1rem;
    overflow: hidden;
    z-index: 0;
    display: flex;
    flex-direction: column
}

.cap__element--medium.cap__element--rare:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("icons/bg-cap-rare-033a0d1053010d5c64fdf37f6ec5823a.png");
    filter: blur(35.4px);
    transform: rotate(-176.24deg);
    z-index: -1;
    mix-blend-mode: normal
}

.cap__element--medium.cap__element--rare:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("icons/bg-cap-rare-033a0d1053010d5c64fdf37f6ec5823a.png");
    transform: rotate(176deg);
    mix-blend-mode: normal;
    filter: blur(35.4px);
    z-index: -1
}

.cap__element--bg {
    background-size: 100%;
    will-change: transform
}

.cap__element--bg.cap__element--rare:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 120%;
    height: 120%;
    background-image: url("icons/bg-cap-rare-033a0d1053010d5c64fdf37f6ec5823a.png");
    filter: blur(35.4px);
    transform: rotate(-176.24deg);
    mix-blend-mode: normal
}

.cap__element--bg.cap__element--rare:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("icons/bg-cap-rare-033a0d1053010d5c64fdf37f6ec5823a.png");
    transform: rotate(176deg);
    mix-blend-mode: normal;
    filter: blur(35.4px);
    z-index: -1
}

.cap__element--large {
    padding: 1.8rem 0;
    width: 100%;
    overflow: hidden
}

.cap__element-wrapper:has(.cap__element--large) {
    background-color: #7878781a;
    width: 100%
}

.cap__element--large.cap__element--rare:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 99%;
    height: 99%;
    background-image: url("icons/bg-cap-rare-033a0d1053010d5c64fdf37f6ec5823a.png");
    transform: matrix(-1,-.06,.08,-1,0,0) rotate(176deg);
    mix-blend-mode: normal;
    filter: blur(35.4px)
}

.cap__element--large.cap__element--rare:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 99%;
    height: 99%;
    background-image: url("icons/bg-cap-rare-033a0d1053010d5c64fdf37f6ec5823a.png");
    transform: matrix(-1,-.06,.08,-1,0,0) rotate(176deg);
    mix-blend-mode: normal;
    filter: blur(35.4px);
    z-index: -1
}

.cap__element--medium.cap__element--epic:before {
    content: "";
    position: absolute;
    top: 0;
    left: 14%;
    width: 100%;
    height: 100%;
    background-image: url("icons/bg-cap-epic-4d9b5122147e9aa0fa4a6b2305c3518c.png");
    filter: blur(62.6px);
    z-index: -1;
    will-change: transform;
    mix-blend-mode: normal;
    background-repeat: no-repeat
}

.cap__element--bg.cap__element--epic:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("icons/bg-cap-epic-4d9b5122147e9aa0fa4a6b2305c3518c.png");
    filter: blur(62.6px);
    mix-blend-mode: normal;
    background-repeat: no-repeat;
    will-change: transform
}

.cap__element--large.cap__element--epic:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 94%;
    height: 100%;
    background-image: url("icons/bg-cap-epic-4d9b5122147e9aa0fa4a6b2305c3518c.png");
    background-size: 100% 100%;
    filter: blur(31.3px);
    mix-blend-mode: normal;
    background-repeat: no-repeat
}

.cap__element--bg.cap__element--medium.cap__element--legend:before,.cap__element--bg.cap__element--small.cap__element--legend:before {
    content: "";
    position: absolute;
    top: -35%;
    left: -33%;
    width: 170%;
    height: 170%;
    background-image: url(../styles/icons/star.svg);
    background-repeat: no-repeat;
    background-size: 100%
}

.cap__element--medium.cap__element--legend {
    background: linear-gradient(13deg,#8c421d,#fbe67b 46.27%,#fcfbe7 63.89%,#f7d14e 81.96%,#d4a041)
}

.cap__element--large.cap__element--legend {
    background: linear-gradient(13deg,#8c421d,#fbe67b 46.27%,#d1d0bf 63.89%,#d0a91c 81.96%,#d4a041)
}

.cap__img-wrapper {
    border-radius: 100%;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative
}

.cap__element--bg.cap__element--medium.cap__element--legend .cap__img-wrapper,.cap__element--bg.cap__element--small.cap__element--legend .cap__img-wrapper {
    filter: drop-shadow(0px 0px 29.9px #FF9936) drop-shadow(6px 4px 59.8px #FFB017)
}

.cap__element--large.cap__element--diamond:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: var(--cap-bg-url);
    -webkit-mask-image: none;
    mask-image: none;
    filter: none;
    mix-blend-mode: initial;
    background-size: 100%
}

.cap__element--medium.cap__element--diamond:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: var(--cap-bg-url);
    background-repeat: no-repeat;
    background-size: 100%
}

.cap__removed {
    filter: grayscale(0%);
    position: absolute;
    background-image: url("icons/cross-e4a38787c63dca098dab2ca71c2ed086.png");
    left: 50%;
    transform: translate(-50%,-50%);
    background-size: 100%;
    width: 13%;
    height: 12%;
    top: 42%;
    z-index: 2;
    background-repeat: no-repeat
}

.cap__img {
    border-radius: 50%;
    aspect-ratio: 1 / 1
}

.cap__element--pending .cap__img-wrapper:after {
    content: "";
    border-radius: 50%;
    position: absolute;
    width: 100%;
    height: 100%;
    background: linear-gradient(0deg,#0003,#0003),url(5.png)
}

.cap__element--medium .cap__img-wrapper {
    margin-bottom: 12px;
    padding: 1px
}

.cap__element--large .cap__img-wrapper {
    width: 75%;
    padding: 0px;
    margin: 0 auto
}

.cap__element--medium .cap__img {
    width: 100%
}

.cap__element--small .cap__img {
    width: calc(100% - 0px)
}

.cap__element--diamond.cap__element--small .cap__img-wrapper,.cap__element--common.cap__element--small .cap__img-wrapper {
    padding: 0
}

.cap__element--diamond.cap__element--small .cap__img,.cap__element--common.cap__element--small .cap__img,.cap__element--large .cap__img {
    width: 100%
}

.cap__element--epic .cap__img-wrapper {
    background: linear-gradient(191.78deg,#ffc046 -52.96%,#ff4740 -13.62%,#6f06ff 85.09%)
}

.cap__element--small.cap__element--legend .cap__img-wrapper {
    background: linear-gradient(174.32deg,#eec51f 8.39%,#dc8f3d 34.89%,#ff9936 66.51%,#f6cc1f 93.87%)
}

.cap__collection {
    font-size: 13px;
    font-weight: 700;
    line-height: 16px;
    letter-spacing: -.08px;
    text-align: left;
    color: #fff;
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    gap: 4px
}

.cap__element--medium .cap__power {
    font-size: 13px;
    text-align: left;
    color: #ffffffbf;
    font-weight: 400;
    line-height: 16px;
    letter-spacing: -.08px;
    display: flex;
    align-items: center;
    gap: 3px
}

.cap__power-green :is(span,img) {
    filter: brightness(0) saturate(100%) invert(72%) sepia(33%) saturate(6667%) hue-rotate(70deg) brightness(94%) contrast(88%)
}

.cap__power-red :is(span,img) {
    filter: brightness(0) saturate(100%) invert(54%) sepia(98%) saturate(4090%) hue-rotate(335deg) brightness(99%) contrast(103%)
}

.cap__element--medium .cap__grade {
    font-size: 13px;
    text-align: left;
    color: #ffffffbf;
    font-weight: 400;
    line-height: 16px;
    letter-spacing: -.08px
}

.cap__element--pve-medium .cap__grade,.cap__element--small .cap__grade {
    font-size: 13px;
    font-weight: 600;
    line-height: 16px;
    position: absolute;
    bottom: 0;
    color: #fff;
    padding: 6px 8px;
    border-radius: 78.67px;
    left: 50%;
    transform: translate(-50%);
    min-width: 2.3rem;
    text-align: center
}

.cap__element--large .cap__grade {
    font-size: 20px;
    font-weight: 600;
    line-height: 24px;
    position: absolute;
    bottom: 1rem;
    color: #fff;
    padding: 12px 32px;
    border-radius: 78.67px;
    left: 50%;
    transform: translate(-50%);
    max-width: 100px
}

.cap__element--large.cap__element--common .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(5.35px);
    background: #9993
}

.cap__element--pve-medium.cap__element--common .cap__grade,.cap__element--small.cap__element--common .cap__grade {
    background-color: #9993;
    background-image: url("icons/bg-common-fc06407d3bd5b96f955ea7894b9a9366.png");
    background-blend-mode: color;
    background-position: center
}


.cap__element--pve-medium.cap__element--epic .cap__grade,.cap__element--small.cap__element--epic .cap__grade,.cap__element--large.cap__element--epic .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: linear-gradient(360deg,#6811c4,#b526a4)
}

.cap__element--pve-medium.cap__element--legend .cap__grade,.cap__element--small.cap__element--legend .cap__grade,.cap__element--large.cap__element--legend .cap__grade {
    background: linear-gradient(174.32deg,#eec51f 8.39%,#dc8f3d 34.89%,#ff9936 66.51%,#f6cc1f 93.87%)
}

.cap__element--pve-medium.cap__element--diamond .cap__grade,.cap__element--small.cap__element--diamond .cap__grade,.cap__element--large.cap__element--diamond .cap__grade {
    background: linear-gradient(180deg,#5380ff 34.38%,#9b95ff)
}

.cap__element--selected {
    box-shadow: 0 0 12px #fff
}

.cap__element--small.cap__element--selected {
    border-radius: 50%;
    box-shadow: none
}

.cap__img-wrapper {
    transition: transform .2s,box-shadow .3s
}

.cap__health {
    display: flex;
    gap: 4px;
    font-size: 13px;
    font-weight: 600;
    line-height: 16px;
    color: #fff
}

.cap__health-title {
    font-weight: 400;
    color: #ffffffbf
}

.cap__health-icon {
    width: 16px
}

.cap__element-number {
    z-index: 10;
    position: absolute;
    font-size: 7px;
    font-weight: 400;
    line-height: 13px;
    text-align: left;
    transform: rotate(120deg);
    width: 130%;
    fill: #fff9
}

.cap__element--legend .cap__element-number {
    fill: #8c431e
}

.cap__element--diamond .cap__element-number {
    fill: #fff
}

.cap__number,.cap__grade,.cap__faction-wrapper {
    opacity: 1;
    transition: opacity 1s;
    z-index: 5
}

.cap__element--removed .cap__img-wrapper {
    filter: grayscale(100%)!important
}

.cap__grade-name {
    font-size: 13px;
    line-height: 16px;
    letter-spacing: -.08px;
    text-align: left
}

.cap__number {
    position: absolute;
    top: 10%;
    left: 15%;
    padding: 10px;
    border-radius: 50%;
    font-family: Protest Riot,sans-serif;
    font-size: 11px;
    font-weight: 400;
    line-height: 10px;
    text-align: left;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #fff3
}

.cap__collection-counter {
    position: absolute;
    top: 2%;
    right: 4%;
    padding: 10px;
    border-radius: 50%;
    font-family: Protest Riot,sans-serif;
    font-size: 11px;
    font-weight: 400;
    line-height: 10px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000c
}

.cap__element--small .cap__number,.cap__element--medium .cap__number {
    transform: translateZ(0);
    backface-visibility: hidden;
    background-color: transparent;
    background-image: url("icons/bg-number-3dbb0f65bbf650a3b164c448a165fc08.png");
    background-size: 100%;
    background-repeat: no-repeat;
    width: 16px;
    height: 16px;
    aspect-ratio: 1 / 1
}

.cap__element--small .cap__number {
    top: 3%;
    left: 3%;
    padding: 6px;
    aspect-ratio: 1 / 1;
    display: flex;
    justify-content: center;
    align-items: center
}

.cap__element--large .cap__number {
    top: 1rem;
    left: 1rem;
    font-size: 28.8px;
    font-weight: 400;
    line-height: 35.45px;
    text-align: left;
    background: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none
}

.cap__nft {
    position: absolute;
    background-image: url("icons/nft-1d7db9e86ef7b5b3c07e4290ff865da6.png");
    height: 40px;
    background-repeat: no-repeat;
    background-size: 100%
}

.cap__element--pve-medium .cap__faction {
    height: 14px
}

.cap__faction-wrapper {
    position: absolute;
    height: 29%;
    aspect-ratio: 1/1;
    border-radius: 50%;
    top: 4px;
    left: 70%;
    background-image: url("icons/bg-number-3dbb0f65bbf650a3b164c448a165fc08.png");
    background-size: 100%;
    display: flex;
    align-items: center;
    justify-content: center
}

.cap__element--pve-small .cap__faction {
    height: 70%
}

.cap__element--medium.cap__element--new {
    border: 2px solid #33BD1C
}

.cap__element--medium.cap__element--removed {
    border: 2px solid #FF4740
}

.cap__new {
    position: absolute;
    background-size: 100%;
    padding: 6px 10px;
    border-radius: 24px;
    background: #33bd1c;
    font-size: 11px;
    font-weight: 600;
    line-height: 13.31px;
    letter-spacing: .07px;
    text-align: center;
    color: #fff;
    top: 34%;
    right: 36%
}

.cap__element--small .cap__new {
    top: 35%;
    right: 24%
}

.cap__element--medium .cap__nft {
    width: 40px;
    top: 48%;
    left: 68%
}

.cap__element--small .cap__nft {
    width: 27%;
    top: 4px;
    left: 64%
}

.cap__element--large .cap__nft {
    width: 89px;
    height: 27%;
    top: 9%;
    left: 64%
}

.cap__pending {
    position: absolute;
    z-index: 1;
    top: 17%;
    left: calc(50% - 37px)
}

.cap__element--small .cap__pending {
    top: 7%;
    left: 18.3%
}

.cap__element--large .cap__pending {
    position: absolute;
    top: 35%;
    left: 41%;
    z-index: 1
}

.cap__selected-number {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: absolute;
    width: 45px;
    height: 45px;
    right: -3%;
    top: -5%;
    background: #fff;
    color: #1a1a1a;
    border-radius: 114px;
    font-size: 17px;
    font-weight: 700;
    line-height: 57px
}

.battle-preference__cap--selected .cap__element--small .cap__number {
    background: #fff;
    color: #1f1e1e
}

.battle-preference__cap--selected .cap__img {
    outline: #FFFFFF solid 2px
}

.cap__element--loading.cap__element--medium {
    background: #7878781a;
    background-size: 200% 100%;
    width: calc(100% - 2rem)
}

.game-caps-list__preferences-cap .cap__number {
    font-size: 8px;
    width: 10px;
    height: 10px;
    padding: 4px;
    background: #fff;
    color: #1f1e1e
}

.game-caps-list__preferences-cap--any .cap__number {
    display: none
}

.cap__element--loading .cap__img,.cap__element--loading .cap__number,.cap__element--loading .cap__collection,.cap__element--loading .cap__grade,.cap__element--loading .cap__health,.cap__element--loading .cap__power {
    background: linear-gradient(90deg,#5c5c5c,#3d3d3d,#575757);
    animation: skeleton-loading 1.5s ease-in-out infinite;
    background-size: 200% 100%
}

.cap__element--loading.cap__element--medium .cap__number,.cap__element--loading.cap__element--small .cap__number {
    opacity: 1;
    aspect-ratio: 1 / 1;
    z-index: 1
}

.cap__element--loading.cap__element--large .cap__number {
    display: none
}

.cap__element--loading.cap__element--medium .cap__collection {
    width: min(80%,150px);
    height: 16px;
    border-radius: 4px;
    margin-bottom: 6px
}

.cap__element--loading.cap__element--medium .cap__power {
    width: min(80%,100px);
    height: 14px;
    border-radius: 4px
}

.lds-spinner {
    color: #d9d9d9;
    display: inline-block;
    position: relative
}

.lds-spinner div {
    transform-origin: 40px 40px;
    animation: lds-spinner .7s linear infinite
}

.lds-spinner div:after {
    content: " ";
    display: block;
    position: absolute;
    top: 10px;
    left: 37px;
    width: 6px;
    height: 18px;
    border-radius: 20%;
    background: #fff
}

.lds-spinner div:nth-child(1) {
    transform: rotate(0);
    animation-delay: -.7s
}

.lds-spinner div:nth-child(2) {
    transform: rotate(45deg);
    animation-delay: -.6s
}

.lds-spinner div:nth-child(3) {
    transform: rotate(90deg);
    animation-delay: -.5s
}

.lds-spinner div:nth-child(4) {
    transform: rotate(135deg);
    animation-delay: -.4s
}

.lds-spinner div:nth-child(5) {
    transform: rotate(180deg);
    animation-delay: -.3s
}

.lds-spinner div:nth-child(6) {
    transform: rotate(225deg);
    animation-delay: -.2s
}

.lds-spinner div:nth-child(7) {
    transform: rotate(270deg);
    animation-delay: -.1s
}

.lds-spinner div:nth-child(8) {
    transform: rotate(315deg);
    animation-delay: 0s
}

@keyframes lds-spinner {
    0% {
        opacity: 1
    }

    to {
        opacity: 0
    }
}

#book-container {
    position: relative;
    display: flex;
    -webkit-user-select: none;
    user-select: none;
    margin-right: 284px
}

img {
    -webkit-user-select: none;
    user-select: none;
    pointer-events: none
}

.page {
    cursor: pointer;
    width: 50%;
    height: 100%;
    position: absolute;
    font-size: 12px;
    transform-origin: 0% 0%;
    touch-action: none
}

.page .title {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column
}

.page .number {
    font-size: 11px
}

.page h1 {
    font-size: 20px;
    color: #ffffffe6;
    margin: 60px auto 0;
    line-height: 2.5;
    text-align: center;
    text-transform: uppercase
}

.page .right {
    text-align: right
}

.page h3,.page h4 {
    margin: 0;
    padding: 0
}

.page:first-child {
    left: 0
}

.page .img {
    display: flex;
    justify-content: center;
    align-items: center
}

.page .img img {
    max-width: 90%;
    margin: 20px auto
}

.shadow {
    position: absolute;
    background-image: linear-gradient(to right,#0000004d,#b8b8b800);
    width: 60px;
    height: 100%;
    z-index: 2;
    transform-origin: 0 0
}

.copy {
    width: 600px;
    text-align: center
}

@keyframes bookFingerMove {
    0% {
        transform: rotate(167.2deg) translate(-35.27px,-20.01px)
    }

    50% {
        transform: rotate(153.31deg) translate(-10.27px,-29.01px)
    }

    to {
        transform: rotate(167.2deg) translate(-35.27px,-20.01px)
    }
}

.book-finger {
    position: absolute;
    width: 89px;
    background-size: 100%;
    z-index: 2;
    right: 0;
    top: 0;
    pointer-events: none;
    animation: bookFingerMove 1.5s infinite
}

.button {
    border-radius: 30px;
    color: #fff
}

.button-size-large {
    padding: 15px 15px;
    font-size: 17px;
    font-weight: 600;
    line-height: 22px
}

.button-size-small {
    padding: 10px 21px;
    font-size: 13px;
    font-weight: 600;
    line-height: 16px
}

.button-full {
    width: 100%;
    padding-left: 0;
    padding-right: 0
}

.button-half {
    width: 44%;
    padding-left: 0;
    padding-right: 0
}

.button-type-primary {
    background-color: #ff4740;
    border: 2px solid #FF4740;
    color: #fff
}

.button-type-secondary {
    background-color: transparent;
    border: 2px solid #FF4740
}

.button-color-red {
    color: #fff
}

.button-color-transparent {
    background-color: #ffffff1a !important;
}

.button-color-green {
    border-color: #33bd1c;
    background-color: #33bd1c
}

.button-color-gray {
    background-color: transparent;
    border: 2px solid #FFFFFF66
}

.button-color-common {
    border-color: #ff4740;
    background-color: #ff4740
}



.button-color-epic {
    background: linear-gradient(360deg,#6c13c4,#b427a5) padding-box,linear-gradient(0deg,#6c13c4,#b427a5) border-box;
    border-color: transparent
}

.button-color-legend {
    background: linear-gradient(174.32deg,#eec51f 8.39%,#dc8f3d 34.89%,#ff9936 66.51%,#f6cc1f 93.87%) padding-box,linear-gradient(174.32deg,#eec51f 8.39%,#dc8f3d 34.89%,#ff9936 66.51%,#f6cc1f 93.87%) border-box;
    border-color: transparent
}

.button-color-diamond {
    background: linear-gradient(190.77deg,#5481ff 7.6%,#9a95ff 91.68%) padding-box,linear-gradient(190.77deg,#5481ff 7.6%,#9a95ff 91.68%) border-box;
    border-color: transparent
}

.button-color-blue {
    border-color: #0098e6;
    background-color: #0098e6
}

.button-color-yellow {
    border-color: #ffcd00;
    background-color: #ffcd00;
    color: #1c1c1e
}

.button-color-claim {
    border-width: 0;
    border-image-source: linear-gradient(346.43deg,#FF4740 38.78%,#F6CC1F 111.43%);
    background: linear-gradient(346.43deg,#ff4740 38.78%,#f6cc1f 111.43%)
}

.button-color-update {
    border-width: 0;
    border-image-source: linear-gradient(190.77deg,#5481FF 7.6%,#9A95FF 91.68%);
    background: linear-gradient(190.77deg,#5481ff 7.6%,#9a95ff 91.68%)
}

.button-color-transparent {
    background-color: transparent;
    border: 1px solid rgba(255,255,255,.4);
    color: #fff
}

.button-type-nonactive {
    border: 2px solid transparent;
    color: #c8c8c9;
    background: #ffffff1a
}

.button-loading {
    display: inline-block;
    position: relative;
    width: 60px;
    height: .6rem
}

.button-loading div {
    position: absolute;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: #fff;
    animation-timing-function: cubic-bezier(0,1,1,0)
}

.button-loading div:nth-child(1) {
    animation: button-loading1 .6s infinite
}

.button-loading div:nth-child(2) {
    animation: button-loading2 .6s infinite
}

.button-loading div:nth-child(3) {
    left: 24px;
    animation: button-loading2 .6s infinite
}

.button-loading div:nth-child(4) {
    left: 48px;
    animation: button-loading3 .6s infinite
}

@keyframes button-loading1 {
    0% {
        transform: scale(0)
    }

    to {
        transform: scale(1)
    }
}

@keyframes button-loading3 {
    0% {
        transform: scale(1)
    }

    to {
        transform: scale(0)
    }
}

@keyframes button-loading2 {
    0% {
        transform: translate(0)
    }

    to {
        transform: translate(24px)
    }
}

.button-size-small .button-loading {
    width: 30px
}

.button-size-small .button-loading div {
    width: 8px;
    height: 8px
}

.button-size-small .button-loading div:nth-child(2) {
    animation: button-loading4 .6s infinite
}

.button-size-small .button-loading div:nth-child(3) {
    left: 12px;
    animation: button-loading4 .6s infinite
}

.button-size-small .button-loading div:nth-child(4) {
    left: 24px
}

@keyframes button-loading4 {
    0% {
        transform: translate(0)
    }

    to {
        transform: translate(12px)
    }
}

.loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-weight: 700;
    font-size: 24px;
    line-height: 20px;
    color: #fff;
    position: absolute;
    width: 100%;
    height:100vh;height:100svh
}

@supports (max-height: 99dvh) {
    .loading {
        height:100dvh
    }
}

.loading-logo-wrapper {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    justify-content: center;
    height: calc(100dvh - (1.5rem + 24px + 1.5rem + 36px + 1.5rem + 36px + 1.5rem + 52px + 1rem) - var(--navbar-height));
    aspect-ratio: 1/1;
    max-width: min(90vw,var(--screen-width))
}

@supports (max-height: 99dvh) {
    .loading-logo-wrapper {
        top:50dvh
    }
}

.loading-logo {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 80%
}

.loading__text {
    position: absolute;
    bottom:20vh;bottom:20svh
}

@media (max-height: 655px),(max-width: 375px) {
    .loading {
        font-size:17px;
        font-weight: 700;
        line-height: 20px;
        text-align: center
    }

    .loading-logo-wrapper {
        top: calc(50% - .7rem);
        height: calc(100dvh - (1rem + 24px + 1rem + 36px + 1rem + 36px + 1rem + 52px) - var(--navbar-height))
    }

    .loading__text {
        bottom:10vh;bottom:10svh
    }
}

.nav {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    margin: 1rem;
    border-radius: 56px;
    background: #ffffff1a
}

.nav img {
    width: 50px;
    height: 50px
}

.nav__item {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin: 8px 0;
    gap: 6px;
    color: #c8c8c9;
    font-size: 13px;
    font-weight: 500;
    line-height: 15px
}

.nav__item:not(:last-child) {
    border-right: 1px solid #D9D9D926
}

.nav__item--active {
    color: #fff
}

.select {
    display: flex
}

.select__block {
    position: absolute;
    bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding-bottom: 2rem;
    transition: transform .5s;
    transform: translateY(100%)
}

.select__block.visible {
    transform: translateY(0)
}

.select__block.closing {
    transform: translateY(100%)
}

.select__options {
    border-radius: 16px;
    background: #2b2b2b;
    width: calc(100% - 2rem)
}

.select__option:not(:last-child) {
    border-bottom: 1px solid #FFFFFF1A
}

.select__option {
    font-size: 17px;
    font-weight: 400;
    line-height: 22px;
    padding: 1rem;
    cursor: pointer;
}

.select__cancel {
    margin-top: .5rem;
    font-size: 15px;
    font-weight: 600;
    line-height: 18px;
    text-align: center;
    padding: 1rem;
    background: #2b2b2b;
    border-radius: 46px;
    width: calc(100% - 4rem);
    cursor: pointer;
}

.upgrade {
    display: flex;
    flex-direction: column;
    height:100vh;height:100svh;
    width: calc(100% - 2rem);
    padding: 1rem;
    background: #000;
    top: 0;
    z-index: 10;
    position: absolute;
    overflow: auto
}

.upgrade__caps {
    display: grid;
    grid-template-columns: 1fr 18px 1fr;
    gap: 10px;
    padding: 1rem;
    margin-bottom: 1.25rem;
    overflow: hidden;
    align-items: center;
    background: #2f2f2fb3;
    border-radius: 24px;
    flex-shrink: 0;
    position: relative
}

.upgrade__power {
    margin-top: 10px;
    position: relative;
    font-size: 13px;
    font-weight: 500;
    line-height: 15.73px;
    letter-spacing: -.08px;
    color: #fffc;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    gap: 4px
}

.upgrade__title {
    font-size: 17px;
    font-weight: 600;
    line-height: 20.57px;
    text-align: left
}

.upgrade__resources {
    padding-top: 1rem;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px
}

.upgrade__resources-cap {
    height: 100%;
    position: relative;
    z-index: 1
}

.upgrade__resources-cap:before {
    content: "";
    position: absolute;
    width: 100%;
    border-radius: 47% 47% 16px 16px;
    height: 100%;
    background: #2b2428;
    z-index: -1;
    left: 0;
    top: 0
}

.upgrade__resources-cap__plus {
    position: absolute;
    top: 20%;
    left: 50%;
    transform: translate(-50%);
    color: #fff;
    z-index: 1;
    background: #ff4740;
    border-radius: 50%;
    width: 36%
}

.upgrade__resources-cap__description {
    font-size: 11px;
    font-weight: 400;
    line-height: 14px;
    text-align: left;
    padding: .5rem .5rem 1rem
}

.upgrade__resources-cap__number {
    color: #fff6
}

.upgrade__empty-slot {
    filter: grayscale(100%) brightness(50%)
}

.upgrade-no-resources {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    height:100vh;height:100svh;
    gap: 6px;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
    background-color: #1c1c1e;
    background-image: url("icons/bg-1e2648cde3a8d386882d84b82107ff05.webp");
    background-size: 100%
}

.upgrade-no-resources__image {
    width: 72px
}

.upgrade-no-resources__text {
    max-width: 250px;
    margin-bottom: 1rem;
    text-align: center
}

.upgrade__caps-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 13px;
    overflow-x: hidden;
    height:calc(100vh - 2rem);height:calc(100svh - 2rem);
    width: calc(100% - 2rem);
    padding: 1rem;
    grid-auto-rows: min-content;
    z-index: 21;
    position: absolute;
    top: 0;
    left: 0;
    background-color: #1c1c1e;
    background-image: url("icons/bg-1e2648cde3a8d386882d84b82107ff05.webp");
    background-size: 100%
}

@supports (max-height: 99dvh) {
    .upgrade__caps-list {
        height:calc(100dvh - 2rem)
    }
}

.upgrade__score {
    margin-bottom: 12px;
    display: flex;
    align-items: end;
    justify-content: center;
    color: #fffc;
    font-size: 15px;
    font-weight: 400;
    line-height: 18.15px
}

.upgrade__score-num {
    color: #fff;
    font-weight: 600;
    margin-left: .25rem
}

.upgrade__gem {
    height: 24px;
    margin-left: 4px
}

.upgrade__button {
    margin-top: auto;
    padding-top: 1rem;
    padding-bottom: 1rem;
    margin-bottom: 3rem
}

.upgrade__button-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 58px
}

.upgrade__caps:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    aspect-ratio: 172 / 211;
    background-image: var(--cap-bg-url);
    background-size: 100%;
    background-repeat: no-repeat
}

.upgrade__cap {
    z-index: 1
}

.cap__info-wrapper {
    height:100vh;height:100svh;
    /* Тот же тёмный фон, что у списка фишек: на светлом bg-main текст не читается. */
    background-color: #1c1c1e;
    background-image: url("icons/bg-1e2648cde3a8d386882d84b82107ff05.webp");
    background-size: 100% 100%;
    position: absolute;
    top: 0;
    z-index: 10;
    overflow: auto;
    width: 100%
}

@supports (max-height: 99dvh) {
    .cap__info-wrapper {
        height:100dvh
    }
}

.cap__info {
    overflow: auto;
    padding: 1rem;
    text-align: left;
    display: flex;
    flex-direction: column;
    height:calc(100vh - var(--navbar-height) - 2rem);height:calc(100svh - var(--navbar-height) - 2rem);
    width: calc(100% - 2rem)
}

@supports (max-height: 99dvh) {
    .cap__info {
        height:calc(100dvh - var(--navbar-height) - 2rem)
    }
}

.cap__info-text-wrapper {
    height: 100%;
    margin-top: 1rem
}

.cap__info-title {
    margin-bottom: .5rem;
    font-size: 20px;
    font-weight: 700;
    line-height: 24.62px;
    letter-spacing: -.01em
}

.cap__info-text {
    font-size: 17px;
    font-weight: 400;
    line-height: 22px;
    color: #ffffff80;
    word-wrap: break-word
}

.cap__info-text--title {
    color: #fff
}

.cap__info-nft {
    padding: .75rem 1rem;
    background: #ffffff1a;
    border-radius: 15px;
    margin-top: .5rem;
    display: flex;
    gap: 10px;
    align-items: center
}

.cap__info-nft img {
    height: 28px
}

.cap__info-nft-address {
    font-size: 15px;
    font-weight: 700;
    line-height: 18.15px;
    text-align: left;
    color: #fff;
    flex: 1;
    text-decoration: underline
}

.cap__info-upgraded {
    font-size: 24px;
    font-weight: 800;
    line-height: 28.8px;
    letter-spacing: -.5px;
    text-align: left;
    color: #ffcd00;
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: center;
    padding: 22px 0;
    background: #ffffff1a;
    border-radius: 24px
}

.cap__info-upgraded img {
    height: 47px
}

.cap__info-button {
    min-height: calc(var(--bottom-button-height) - 1rem);
    padding: 1rem;
    width: calc(100% - 2rem)
}

.debug-button {
    line-height: 12px;
    width: 50px;
    height: 30px;
    font-size: 8pt;
    margin-right: 2px;
    position: absolute;
    top: 80%;
    left: 0
}

.play-button {
    padding: 1em
}

.home {
    display: flex;
    flex-direction: column;
    align-items: center;
    height:calc(100vh - var(--navbar-height));height:calc(100svh - var(--navbar-height));
    overflow-y: auto
}

@supports (max-height: 99dvh) {
    .home {
        height:calc(100dvh - var(--navbar-height))
    }
}

.home__leaderboard {
    grid-area: second;
    display: flex;
    gap: 6px;
    width: calc(100% - 3rem);
    margin-top: 1.5rem
}

.home__profile-buttons {
    display: flex;
    gap: .5rem;
    margin-top: 1.5rem
}

.home__profile {
    font-size: 13px;
    font-weight: 600;
    line-height: 16px;
    text-align: left;
    color: #fff;
    display: flex;
    align-items: center;
    padding: 8px 16px;
    background: #ffffff1a;
    border-radius: 41px;
    gap: 6px;
    white-space: nowrap;
    min-width: 70px;
}

.home__profile img {
    height: 24px
}

.home__title {
    color: #fff;
    font-size: 30px;
    font-weight: 800;
    line-height: 38px;
    text-align: center;
    text-transform: uppercase;
    margin-top: 1.5rem;
    position: relative
}

/* Надпись и пак — одна группа по центру: пак стоит наклейкой за текстом, а не у края экрана. */
.home__title--pack {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .9rem
}

.home__notcoin {
    position: absolute;
    left: -4rem;
    height: 50px;
    display: flex;
    flex-direction: column;
    align-items: center
}

.home__pack-claim {
    position: absolute;
    right: -.25rem;
    bottom: -.25rem;
    font-size: 9px;
    font-weight: 800;
    line-height: 11px;
    background: #fff;
    border-radius: 9.29px;
    padding: 2px 4px;
}

.home__notcoin img {
    height: 100%
}

.pvp-start {
    margin-top: 2rem;
    display: flex;
    justify-content: center;
    align-items: center;
    height:calc(100vh - 2rem);height:calc(100svh - 2rem); /* контейнер = вся видимая высота окна */
    overflow: hidden;           /* не даём лезть наружу */
}

.home__cap-image {
    transition: transform .5s, opacity .5s;
    transform: rotate(-45deg) scale(.9);
    opacity: 0;

    max-height: 100%;   /* ограничиваем высотой контейнера */
    max-width: 100%;    /* ограничиваем шириной контейнера */
    width: auto;        /* сохраняем пропорции */
    height: auto;       /* пусть сама подбирает высоту */
    object-fit: contain;
}

.home__cap-image.visible {
    transform: rotate(0) scale(1);
    opacity: 1
}

.home__bottom {
    height: 52px;
    display: flex;
    gap: .5rem;
    position: relative;
    margin-top: 2rem;
    margin-bottom: 1.5rem
}

.home__bottom img {
    height: 100%
}

.home__vhs {
    position: absolute;
    height: 80px;
    left: -7rem;
    top: -1.1rem;
}

.home__album {
    position: absolute;
    height: 80px;
    left: 8.5rem;
    top: -0.7rem;
}

.home__pack {
    position: relative;
    flex: none;
    height: 50px;
    transform: rotate(10deg);
}

.home__pack img {
    height: 50px
}

.home__pack--down {
    right: -6rem;
    top: -4rem
}

.home__pack-count {
    position: absolute;
    right: -.25rem;
    top: -.25rem;
    font-size: 11px;
    font-weight: 700;
    line-height: 14px;
    text-align: center;
    color: #1f1e1e;
    border-radius: 50%;
    background: #fff;
    width: 1.25rem;
    height: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: Protest Riot,sans-serif
}

.home__tickets {
    position: absolute;
    right: -4rem
}

.home__tickets img {
    height: 50px;
    margin-top: -.5rem
}

.home__tickets-count {
    font-size: 9px;
    font-weight: 800;
    line-height: 11px;
    background: #fff;
    border-radius: 9.29px;
    padding: 2px 4px;
    margin-top: -1rem;
    position: relative
}

.home__invite {
    position: absolute;
    height: 52px;
    aspect-ratio: 1/1;
    right: -3.6rem;
    border-radius: 50%;
    background-color: #ffffff1a
}

.home__invite img {
    margin-top: 6px;
    height: 60%
}

.home-energy {
    display: flex;
    font-size: 13px;
    font-weight: 400;
    line-height: 16px;
    text-align: center;
    color: #ffffff80;
    padding-right: 14px;
    padding-left: 10px
}

.home-energy__block {
    width: 60%
}

.home-energy__num {
    font-weight: 600;
    color: #fff
}

.home-energy__num-low {
    color: #ff4740
}

.home-info-gum__description {
    color: #ffffffb2;
    font-size: 17px;
    font-weight: 400;
    line-height: 22px;
    max-width: 300px;
    text-wrap: wrap;
    margin: 0 auto 1rem
}

.home-energy__progress {
    width: 100%;
    height: 4px;
    background: #ffffff1a;
    border-radius: 4px;
    margin-bottom: 2px
}

.home-energy__progress-bar {
    height: 100%;
    border-radius: 4px;
    background: linear-gradient(90deg,#f6cc1f,#bcc81e 14%,#33bd1c 58.5%)
}

.home-energy__progress-bar--low {
    background: #ff4740
}

.energy-info__energy {
    background: #ffffff1a;
    padding: 18px 46px 18px 15px;
    border-radius: 75.85px;
    width: 120px;
    margin: 0 auto 1rem
}

.energy-info__energy .home-energy {
    height: 46px;
    font-size: 26px
}

.energy-info__energy .home-energy__progress {
    height: 8px
}

.energy-info__energy .home-energy__block {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .75rem;
    width: 100px
}

.energy-info__title {
    font-size: 24px;
    font-weight: 800;
    line-height: 28px;
    margin-bottom: 1rem;
    text-transform: uppercase
}

.energy-info__button {
    margin-left: auto;
    margin-right: auto;
    width: 150px
}

.energy-info__timer {
    font-size: 11px;
    font-weight: 600;
    line-height: 13px;
    position: absolute;
    top: 1rem;
    right: 1rem;
    box-sizing: border-box;
    background: #ffcd00;
    color: #1f1e1e;
    border-radius: 6px;
    width: 60px;
    height: 20px;
    display: flex;
    padding-left: 6px;
    padding-top: 4px
}

.play-bottom-sheet {
    display: flex;
    flex-direction: column;
    padding: 1rem;
    gap: 10px;
    margin-top: .5rem
}

.play-bottom-sheet__block {
    display: flex;
    gap: .5rem
}

.play-bottom-sheet__button {
    padding: 24px 16px;
    border-radius: 1rem;
    background: #ffffff1a;
    display: flex;
    flex-direction: column;
    flex: 1
}

.play-bottom-sheet__button:disabled {
    opacity: .5;
    filter: grayscale(100%)
}

.play-bottom-sheet__button:disabled .play-bottom-sheet__fee {
    background: #6d6363
}

.play-bottom-sheet__fee:has(.button-loading) {
    position: relative
}

.play-bottom-sheet__fee:has(.button-loading)>* {
    opacity: 0
}

.play-bottom-sheet__fee .button-loading {
    opacity: 1;
    left: 50%;
    top: 45%;
    transform: translate(-50%) translateY(-50%) scale(.8);
    position: absolute
}

.play-bottom-sheet__title {
    display: flex;
    font-size: 17px;
    font-weight: 600;
    line-height: 22px;
    gap: 10px;
    align-items: center;
    color: #fff;
    width: 100%
}

.play-bottom-sheet__image {
    width: 28px;
    height: 28px
}

.play-bottom-sheet__description {
    font-size: 15px;
    font-weight: 400;
    line-height: 18px;
    color: #fffc;
    text-align: left;
    margin-top: 12px
}

.play-bottom-sheet__fee {
    display: flex;
    margin-left: auto;
    font-size: 15px;
    font-weight: 600;
    line-height: 18px;
    text-align: right;
    background: #33bd1c;
    border-radius: 20px;
    padding: 6px 8px
}

.play-bottom-sheet__fee span {
    display: flex
}

.play-bottom-sheet__fee img {
    height: 16px
}

.play-bottom-sheet__energy {
    font-size: 15px;
    font-weight: 600;
    line-height: 18px
}

.play-bottom-sheet__energy span {
    font-size: 11px;
    font-weight: 600;
    line-height: 13px;
    color: #ffcd00
}

.play-bottom-sheet__home-energy {
    font-size: 13px;
    font-weight: 600;
    line-height: 16px;
    text-align: left;
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 6px 12px;
    background: #ffffff1a;
    border-radius: 41px;
    gap: .25rem;
    margin-left: auto;
    color: #ffffff80
}

.play-bottom-sheet__home-energy img {
    height: 20px
}

.notcoin-info {
    display: flex;
    flex-direction: column
}

.notcoin-info__title {
    font-size: 24px;
    font-weight: 800;
    line-height: 29px;
    letter-spacing: -.5px;
    text-align: center;
    color: #fff
}

.notcoin-info__description {
    font-size: 17px;
    font-weight: 400;
    line-height: 22px;
    text-align: center;
    color: #ffffffb2;
    margin-top: 1rem
}

.notcoin-info__blocks {
    display: flex;
    gap: .5rem;
    margin-top: 1rem;
    margin-bottom: 1rem;
    flex-direction: column
}

.notcoin-info__block {
    background: #ffffff1a;
    padding: 18px 16px;
    column-gap: 10px;
    border-radius: 16px;
    display: grid;
    grid-template-columns: 28px 1fr auto;
    grid-template-areas: "img league button" "img bonus button";
    flex: 1;
    text-align: start
}

.notcoin-info__block-img {
    grid-area: img;
    width: 100%
}

.notcoin-info__block-league {
    grid-area: league;
    font-size: 15px;
    font-weight: 600;
    line-height: 18px;
    color: #fff
}

.notcoin-info__block-bonus {
    grid-area: bonus;
    font-size: 15px;
    font-weight: 700;
    line-height: 18px;
    color: #ffcd00
}

.notcoin-info__block-button {
    grid-area: button;
    width: 74px;
    padding: 0
}

@media (max-height: 655px),(max-width: 375px) {
    .home__title {
        font-size:20px;
        line-height: 24px
    }

    .home__title,.home__leaderboard,.home__profile-buttons {
        margin-top: 1rem
    }

    .home__bottom {
        margin-bottom: 0
    }
}

.bottom-sheet__wrapper {
    position: fixed;
    z-index: 100;
    left: 50%;
    top: 0;
    width: min(100%,var(--screen-width));
    height:100vh;height:100svh;
    background-color: #0006;
    opacity: 0;
    transition: opacity .3s;
    transform: translateY(100%) translate(-50%)
}

@supports (max-height: 99dvh) {
    .bottom-sheet__wrapper {
        height:100dvh
    }
}

.bottom-sheet__wrapper.visible {
    opacity: 1;
    transform: translateY(0) translate(-50%)
}

.bottom-sheet__wrapper.closing {
    opacity: 0
}

.bottom-sheet__block {
    position: absolute;
    bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(5.35px);
    border-radius: 24px 24px 0 0;
    width: 100%;
    background-color: #1c1c1e;
    background-image: url("icons/bg-1e2648cde3a8d386882d84b82107ff05.webp");
    background-size: 100%;
    background-position:100% 100vh;background-position:100% 100svh;
    padding-bottom: 2rem;
    transition: transform .5s;
    transform: translateY(100%);
    overflow-y: auto;
    max-height:calc(100vh - 2rem);max-height:calc(100svh - 2rem);
    touch-action: pan-y
}

@supports (max-height: 99dvh) {
    .bottom-sheet__block {
        max-height:calc(100dvh - 2rem)
    }
}

.bottom-sheet__block.visible {
    transform: translateY(0)
}

.bottom-sheet__block.closing {
    transform: translateY(100%)
}

body:has(.bottom-sheet__block) {
    overflow: hidden
}

.bottom-sheet__divider {
    margin: 1rem 0 0;
    width: 30px;
    left: 135px;
    top: 443px;
    border-radius: 3px;
    border-bottom: 4px solid #FFFFFF4D
}

.bottom-sheet__hide {
    position: absolute;
    right: .5rem;
    top: .4rem;
    font-size: 15px;
    font-weight: 400;
    line-height: 18px;
    color: #fff9;
    padding: .5rem
}

.tasks {
    padding-top: 1rem;
    overflow-x: auto;
    display: flex;
    height:calc(100vh - var(--navbar-height) - 1rem);height:calc(100svh - var(--navbar-height) - 1rem);
    align-items: flex-start;
    user-select: none;
    -webkit-user-select: none
}

@supports (max-height: 99dvh) {
    .tasks {
        height:calc(100dvh - var(--navbar-height) - 1rem)
    }
}

.tasks .swiper-slide {
    width: 80%;
    height:calc(100vh - var(--navbar-height) - 1rem);height:calc(100svh - var(--navbar-height) - 1rem);
    padding-left: 1rem
}

.swiper-slide:last-child {
    padding-right: 1rem;
    width: 88%
}

.tasks__item {
    overflow-y: auto;
    background: #ffffff1a;
    border-radius: 16px;
    max-height:calc(100vh - var(--navbar-height) - 1rem);max-height:calc(100svh - var(--navbar-height) - 1rem)
}

@supports (max-height: 99dvh) {
    .tasks__item {
        max-height:calc(100dvh - var(--navbar-height) - 1rem)
    }
}

.tasks__mission {
    padding: 1.25rem 1rem 0
}

.tasks__title {
    font-size: 24px;
    font-weight: 800;
    line-height: 28px;
    letter-spacing: -.5px;
    text-align: left;
    margin-bottom: 1.5rem;
    display: flex;
    justify-content: space-between
}

.tasks__title-first {
    display: flex;
    gap: 6px;
    align-items: center;
    z-index: -10
}

.tasks__countdown {
    padding: 4px 6px;
    border-radius: 6px;
    color: #1f1e1e;
    background: #ffcd00;
    font-size: 11px;
    font-weight: 600;
    line-height: 13px
}

.tasks__button-claim {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    padding: 6px;
    height: 32px;
    border-radius: 42px;
    position: absolute;
    top: -2.5rem;
    z-index: 10;
    opacity: 0;
    transform: scale(.8);
    transition: opacity .5s,transform .5s;
    white-space: nowrap
}

.tasks__button-claim:after {
    content: "";
    clip-path: path("M8.36603 11.5C7.98112 12.1667 7.01888 12.1667 6.63398 11.5L1.00481 1.75C0.61991 1.08333 1.10104 0.249999 1.87084 0.249999L13.1292 0.25C13.899 0.25 14.3801 1.08333 13.9952 1.75L8.36603 11.5Z");
    width: 16px;
    height: 10px;
    position: absolute;
    bottom: -9px;
    background-color: #ffffff26;
    background-color: #33bd1c
}

.tasks__button-claim--gray {
    background: #5f5f5f;
    border-color: #5f5f5f;
    z-index: -10
}

.tasks__button-claim--gray:after {
    background-color: #5f5f5f
}

.tasks__button-claim--last {
    right: 0;
    justify-content: end;
    transform: scale(.8)
}

@keyframes claimAnimate {
    0% {
        opacity: 0;
        transform: scale(.8)
    }

    to {
        opacity: 1;
        transform: scale(1)
    }
}

.tasks__button-claim--animate {
    opacity: 1;
    transform: scale(1)
}

.tasks-mission-progress-bar {
    margin-bottom: 32px
}

.tasks-mission-progress-bar__progress {
    border-radius: 64px 0 0 64px;
    background: #fff3;
    width: calc(100% - 1.6rem);
    height: 12px;
    position: relative
}

.tasks-mission-progress-bar__progress:not(.tasks-mission-progress-bar__fill):before {
    content: "";
    position: absolute;
    right: -20px;
    top: 0;
    background: #fff3;
    width: 20px;
    height: 100%;
    border-radius: 0 64px 64px 0
}

.tasks-mission-progress-bar__dot {
    position: absolute;
    top: 4px;
    margin-left: 4px;
    width: 4px
}

.tasks-mission-progress-bar__prize {
    height: 26px;
    filter: grayscale(0%);
    transition: filter .5s
}

.tasks-mission-progress-bar__prize-wrapper {
    position: absolute;
    top: -8px;
    border-radius: 50%;
    width: 30px;
    aspect-ratio: 1/1;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-left: -8px;
    background: transparent
}

.tasks-mission-progress-bar__prize-bg {
    position: absolute;
    border-radius: 50%;
    width: 100%;
    height: 100%;
    opacity: 0;
    transform: scale(.8);
    transition: opacity .5s,transform .5s
}

.tasks-mission-progress-bar__prize-bg--available {
    opacity: 1;
    transform: scale(1);
    background: #33bd1c;
    box-shadow: 0 4px 4px #00000026
}

.tasks-mission-progress-bar__prize--gray {
    filter: grayscale(100%)
}

.tasks-mission-progress-bar__prize--color {
    filter: none;
    animation: prizeAnimate 1s ease-in-out 3
}

.tasks-mission-progress-bar__fill {
    background: #33bd1c;
    transition: width .5s ease-in-out;
    border-radius: 64px
}

.tasks-mission-progress-bar__num {
    position: absolute;
    font-size: 11px;
    font-weight: 400;
    line-height: 14px;
    margin-top: 5px;
    color: #ffffff80;
    transition: left .5s ease-in-out
}

.tasks-mission-progress-bar__num--not-first {
    margin-left: -8px
}

.tasks-element {
    display: grid;
    border-top: 1px solid #FFFFFF1A;
    padding: 1rem;
    grid-template-areas: "first button" "progress button";
    align-items: start;
    grid-template-columns: auto min-content;
    grid-column-gap: 14px
}

.tasks-element__first {
    grid-area: first;
    display: flex;
    gap: 8px;
    align-items: center
}

.tasks-element__title {
    font-size: 15px;
    font-weight: 600;
    line-height: 18px;
    text-align: left
}

.tasks-element__title--completed {
    color: #dad4d5
}

.tasks-element__achievement {
    font-size: 13px;
    font-weight: 600;
    line-height: 16px;
    text-align: center;
    background: #ffffff1a;
    border-radius: 22px;
    padding: 4px 5px 4px 4px;
    color: #fffc
}

.tasks-element__link {
    text-decoration: underline;
    cursor: pointer
}

.tasks-element__progress {
    grid-area: progress;
    margin-top: 6px
}

.tasks-element__button {
    grid-area: button;
    width: 72px;
    padding: 8px 0
}

.tasks-element__button:has(img) {
    padding: 5px 0
}

.tasks-element__button img {
    height: 20px
}

.task-element-progress-bar {
    display: flex;
    gap: 6px;
    align-items: center
}

.task-element-progress-bar__progress {
    border-radius: 64px;
    background: #fff3;
    width: calc(100% - 1rem);
    height: 4px;
    position: relative
}

.tasks-mission-progress-bar__progress--fill {
    background: #33bd1c
}

.task-element-progress-bar__num {
    font-size: 11px;
    font-weight: 600;
    line-height: 13px;
    letter-spacing: .07px;
    text-align: left;
    text-wrap: nowrap;
    color: #fff9;
    white-space: nowrap
}

.idle {
    padding: 1rem;
    overflow: auto;
    display: flex;
    flex-direction: column
}

.idle__header {
    display: flex;
    justify-content: center;
    align-items: baseline;
    margin-bottom: 1rem;
    font-size: 24px;
    font-weight: 800;
    line-height: 29px;
    text-align: left
}

.idle__time {
    background: #ffcd00;
    padding: 0 19px;
    width: 84px;
    border-radius: 8px 8px 0 0
}

.idle-stopwatch {
    font-size: 13px;
    font-weight: 600;
    line-height: 22px;
    text-align: left;
    color: #342a37
}

.idle-stopwatch--finish {
    color: #d23731
}

.idle__block {
    position: relative;
    border: 1px solid #FFCD00;
    border-radius: 0 16px 16px;
    overflow: hidden;
    padding: 20px;
    margin-bottom: 30px;
    min-height: 170px;
    box-sizing: border-box
}

.idle__block-level {
    position: absolute;
    font-size: 15px;
    font-weight: 700;
    line-height: 22px;
    text-align: center;
    background: #ffcd00;
    border-radius: 0 0 0 20px;
    width: min-content;
    white-space: nowrap;
    padding: 8px 9px;
    color: #2e2e2e;
    top: 0;
    right: 0
}

.idle__block-title {
    font-size: 17px;
    font-weight: 700;
    line-height: 22px;
    text-align: left;
    color: #ffcd00;
    display: flex;
    gap: 8px;
    margin-bottom: 8px
}

.idle__block-title img {
    height: 24px
}

.idle__block-description {
    font-size: 15px;
    font-weight: 400;
    line-height: 18px;
    text-align: left;
    margin-bottom: 12px
}

.idle__block-bottom {
    border-top: 1px solid #FFFFFF1A;
    padding-top: 12px;
    display: flex;
    gap: 12px
}

.idle__block-bottom-button {
    display: flex;
    justify-content: center;
    gap: 4px;
    padding: 8px;
    width: 50%
}

.idle__block-bottom-button img {
    height: 16px
}

.idle__block-bottom-button span {
    background: -webkit-linear-gradient(90deg,#FFCD00 20%,#FFFFEF 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent
}

.idle__block-bottom-description {
    display: flex;
    flex-direction: column;
    align-items: start;
    font-size: 13px;
    font-weight: 400;
    line-height: 16px;
    text-align: left;
    color: #ffffffb2;
    gap: 4px
}

.idle__block-bottom-description img {
    height: 12px
}

.idle__extra {
    margin-bottom: 40px
}

.idle__extra-title {
    font-size: 17px;
    font-weight: 600;
    line-height: 22px;
    margin-bottom: 1rem
}

.idle__extra-description {
    font-size: 11px;
    font-weight: 400;
    line-height: 13px;
    text-align: center;
    color: #ffffffb2
}

.idle-mission-progress-bar {
    margin-bottom: 48px
}

.idle-mission-progress-bar__progress {
    border-radius: 64px 0 0 64px;
    background: #fff3;
    width: calc(100% - 1.6rem);
    height: 26px;
    position: relative
}

.idle-mission-progress-bar__progress:not(.idle-mission-progress-bar__fill):before {
    content: "";
    position: absolute;
    right: -20px;
    top: 0;
    background: #fff3;
    width: 20px;
    height: 100%;
    border-radius: 0 64px 64px 0
}

.idle-mission-progress-bar__dot {
    position: absolute;
    top: 4px;
    margin-left: 4px;
    height: 16px;
    border: 1px solid #FFFFFF66;
    border-radius: 26px
}

.idle-mission-progress-bar__dot:after {
    content: attr(data-percent);
    position: absolute;
    top: 250%;
    left: 50%;
    padding: 2px 6px;
    transform: translate(-50%,-50%);
    background: #ffffff1a;
    border-radius: 27px;
    font-size: 13px;
    font-weight: 600;
    line-height: 16px
}

.idle-mission-progress-bar__prize {
    height: 26px;
    filter: grayscale(0%);
    transition: filter .5s
}

.idle-mission-progress-bar__prize-wrapper {
    position: absolute;
    top: -6px;
    border-radius: 50%;
    width: 40px;
    aspect-ratio: 1/1;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-left: -10px;
    background: #9b727b;
    box-shadow: 0 0 3.4px #00000040
}

.idle-mission-progress-bar__prize-bg {
    position: absolute;
    border-radius: 50%;
    width: 100%;
    height: 100%;
    opacity: 0;
    transform: scale(.8);
    transition: opacity .5s,transform .5s
}

.idle-mission-progress-bar__prize-bg--available {
    opacity: 1;
    transform: scale(1);
    background: #33bd1c;
    box-shadow: 0 4px 4px #00000026
}

.idle-mission-progress-bar__prize--gray {
    filter: grayscale(100%)
}

@keyframes prizeAnimate {
    0%,to {
        transform: scale(1)
    }

    50% {
        transform: scale(1.2)
    }
}

.idle-mission-progress-bar__prize--color {
    filter: none;
    animation: prizeAnimate 1s ease-in-out 3
}

.idle-mission-progress-bar__button-claim {
    display: flex;
    flex-direction: row;
    padding: 6px;
    height: 32px;
    border-radius: 42px;
    position: absolute;
    top: -2.5rem;
    z-index: 10;
    opacity: 0;
    transform: scale(.8) translate(-15%);
    transition: opacity .5s,transform .5s;
    white-space: nowrap
}

.idle-mission-progress-bar__button-claim:after {
    content: "";
    clip-path: path("M8.36603 11.5C7.98112 12.1667 7.01888 12.1667 6.63398 11.5L1.00481 1.75C0.61991 1.08333 1.10104 0.249999 1.87084 0.249999L13.1292 0.25C13.899 0.25 14.3801 1.08333 13.9952 1.75L8.36603 11.5Z");
    width: 16px;
    height: 10px;
    position: absolute;
    bottom: -9px;
    right: 20%;
    background-color: #ffffff26;
    background-color: #33bd1c
}

.idle-mission-progress-bar__button-claim--animate {
    opacity: 1;
    transform: scale(1) translate(-15%)
}

.idle-mission-progress-bar__button-claim--gray {
    background: #5f5f5f;
    border-color: #5f5f5f
}

.idle-mission-progress-bar__fill {
    background: #33bd1c;
    transition: width .5s ease-in-out;
    border-radius: 64px
}

.idle-mission-progress-bar__num {
    position: absolute;
    font-size: 11px;
    font-weight: 400;
    line-height: 14px;
    margin-top: 5px;
    color: #ffffff80;
    transition: left .5s ease-in-out
}

.idle-mission-progress-bar__num--not-first {
    margin-left: -8px
}

.idle__balance {
    font-size: 15px;
    font-weight: 400;
    line-height: 18px;
    text-align: center;
    color: #ffffffb2
}

.idle__balance span {
    font-size: 17px;
    font-weight: 600;
    line-height: 22px;
    color: #fff
}

.idle__claim {
    margin-top: 1rem
}

.shop {
    padding-top: 1rem;
    display: flex;
    flex-direction: column;
    overflow: auto;
    gap: 16px;
    height:calc(100vh - var(--navbar-height) - 1rem);height:calc(100svh - var(--navbar-height) - 1rem)
}

@supports (max-height: 99dvh) {
    .shop {
        height:calc(100dvh - var(--navbar-height) - 1rem)
    }
}

.shop__gum-image {
    width: 100%
}

.packs {
    display: grid;
    gap: 16px;
    flex-wrap: wrap;
    grid-template-columns: 1fr 1fr
}

.packs__item {
    background-color: #ffffff1a;
    border-radius: 16px;
    padding: 1rem;
    position: relative;
    display: flex;
    flex-direction: column
}

.packs__image {
    height:18vh;height:18svh;
    width: 100%;
    object-fit: contain;
    align-self: center;
    position: relative
}

.pack__balance {
    font-size: 15px;
    font-weight: 600;
    line-height: 18px;
    display: flex;
    gap: 4px;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem
}

.pack__balance-text {
    font-weight: 400;
    color: #fffc
}

.pack__balance-icon {
    height: 24px
}

.packs__best-deal,.packs__discount {
    position: absolute;
    left: 40%;
    top: 60%;
    width: max(60%,90px)
}

.packs__sold-out {
    position: absolute;
    left: 0;
    top: 50%;
    width: max(100%,90px)
}

.packs__type {
    font-size: 15px;
    font-weight: 600;
    line-height: 18px;
    letter-spacing: -.24px;
    color: #fff;
    text-align: left;
    margin-bottom: 3px;
    margin-top: 12px;
    flex: 1;
    display: flex;
    align-items: end;
    gap: .25rem
}

.packs__type-gum-icon {
    height: 20px
}

.packs__amount {
    font-size: 13px;
    text-align: left;
    font-weight: 600;
    line-height: 16px;
    display: flex;
    align-items: center;
    color: #ffcd00;
    background: -webkit-linear-gradient(90deg,#FFCD00 20%,#FFFFEF 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent
}

.packs__amount img {
    height: 1rem;
    margin-left: .25rem
}

.packs__ticket-image {
    margin-bottom: -1px
}

.shop__title {
    font-size: 24px;
    font-weight: 700;
    line-height: 20px;
    letter-spacing: -.5px;
    text-align: left;
    margin-bottom: 16px;
    display: flex
}

.shop__description {
    font-size: 15px;
    font-weight: 400;
    line-height: 18px;
    color: #ffffffb2;
    text-align: left;
    margin-bottom: 1rem
}

.shop__group {
    margin: 0 1rem 20px
}

.shop__modes-filter {
    display: flex;
    gap: 6px;
    min-height: 36px;
    padding: 0 1rem;
    overflow-x: auto
}

.purchase-boosters-info__boosters {
    display: flex;
    gap: 16px;
    justify-content: center
}

.purchase-boosters-info__description {
    color: #ffffffb2;
    font-size: 17px;
    font-weight: 400;
    line-height: 22px;
    text-wrap: balance;
    margin: 1rem auto
}

.purchase-boosters-info__item {
    display: flex;
    position: relative
}

.purchase-boosters-info__img {
    width: 80px
}

.purchase-boosters-info__number {
    width: 30px;
    aspect-ratio: 1/1;
    border-radius: 50%;
    font-size: 12px;
    font-weight: 400;
    line-height: 14px;
    color: #181619;
    background: #fff;
    font-family: Protest Riot,sans-serif;
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center
}

.profile__wrapper {
    height:calc(100vh - var(--navbar-height) - 1rem);height:calc(100svh - var(--navbar-height) - 1rem)
}

@supports (max-height: 99dvh) {
    .profile__wrapper {
        height:calc(100dvh - var(--navbar-height) - 1rem - 55px)
    }
}

.profile {
    padding: 1rem 1rem 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
    overflow: auto;
    height: 100%;
    margin-top: 65px;
}

.profile__wallet {
    display: flex;
    padding: 20px 16px;
    background: #ffffff1a;
    border-radius: 15px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 40px
}

.profile__wallet img {
    width: 36px
}

.profile__wallet-text {
    flex: 1;
    display: flex;
    justify-content: start;
    font-weight: 700;
    font-size: 15px;
    line-height: 18px;
    color: #fff
}

.profile__wallet-button {
    width: 10px
}

.profile__caps {
    position: absolute;
    padding: 1rem 1rem;
}

.profile__caps-filter {
    display: flex;
    gap: 10px
}

.profile__caps-filters-item {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    padding: 10px 18px;
    color: #fff;
    background-color: #ffffff1a;
    border-radius: 52px;
    font-style: normal;
    font-weight: 500;
    font-size: 13px;
    line-height: 123.08%
}

.profile__caps-filters-item-refresh {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    padding: 10px 10px 10px 11px;
    color: #fff;
    background-color: #ffffff1a;
    border-radius: 50%
}

.profile__caps-filters-item--active {
    background-color: #ff4740
}

.profile__caps-non-exist {
    filter: grayscale(100%)
}

.profile__caps-non-exist.notcoin .cap__img-wrapper {
    box-shadow: inset 0 2px 2px #ffffff82;
    background: #2f2f2f;
    margin: 4px 1px;
    padding: 0
}

.profile__caps-non-exist.notcoin .cap__img {
    filter: grayscale(100%) blur(3px)
}

.profile__caps-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 13px;
    padding-bottom: 1rem;
    width: 100%;
    overflow-x: hidden;
    overflow-y: auto
}

.profile__caps-group {
    width: 100%
}

.profile__collection {
    display: flex;
    flex-direction: column;
    gap: 16px;
    animation: fadeIn .5s;
    width: 100%
}

.profile__collection-faction {
    height: 18px;
    margin-left: .25rem
}

.profile__collection-title {
    font-size: 17px;
    font-weight: 700;
    line-height: 20px;
    letter-spacing: -.5px;
    text-align: left;
    margin-bottom: 10px;
    display: flex
}

.profile__collection-title__name {
    margin-left: .3rem
}

.profile__collection-title-left {
    font-size: 13px;
    font-weight: 500;
    line-height: 16px;
    text-align: right;
    margin-left: auto;
    color: #fffc;
    text-transform: uppercase
}

.profile__collection-caps {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 8px
}

/* Коллекции сворачиваются: шапка — кнопка, рамка показывает, собрана ли коллекция целиком. */
.profile__collection-item {
    border: 2px solid #ff5a5a8c;
    border-radius: 18px;
    padding: 10px 10px 10px;
    background: #ffffff08;
    transition: border-color .2s
}

.profile__collection-item--complete {
    border-color: #3ddc84;
    box-shadow: 0 0 14px #3ddc8440
}

/* Переключатель «Развернуть все» прижат к правому краю ряда вкладок. */
.profile__caps--wide {
    left: 0;
    right: 0
}

.profile__caps--wide .profile__caps-filter {
    align-items: center
}

.profile__caps--wide .profile__caps-filters-item {
    padding: 10px 14px;
    white-space: nowrap
}

/* Компактный: подпись в две строки, чтобы ряд помещался на узком телефоне. */
.profile__collections-toggle-all {
    flex: none;
    margin-left: auto;
    gap: 8px;
    padding: 6px 12px 6px 6px
}

.profile__collections-toggle-all .home__adult-track {
    flex: none;
    width: 34px;
    height: 20px;
    border-radius: 10px
}

.profile__collections-toggle-all .home__adult-knob {
    width: 16px;
    height: 16px
}

.profile__collections-toggle-all.home__adult-switch--on .home__adult-knob {
    transform: translateX(14px)
}

.profile__collections-toggle-all-label {
    font-size: 13px;
    line-height: 16px
}

/* Крутость собранной коллекции — плашка цвета крутости. */
.profile__collection-title__coolness {
    margin-left: .4rem;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 13px;
    line-height: 16px;
    color: #fff;
    align-self: center
}

.profile__collection-head {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent
}

/* Долгое нажатие на свёрнутую коллекцию — перетаскивание: без выделения текста и меню. */
.profile__collection-head {
    -webkit-user-select: none;
    user-select: none;
    -webkit-touch-callout: none
}

.profile__collection-item--dragging {
    position: relative;
    z-index: 5;
    background: #1d2a30f2;
    box-shadow: 0 14px 34px #000a;
    transition: box-shadow .2s
}

.profile__collection-item--dragging .profile__collection-head {
    cursor: grabbing
}

.profile__collection-head .profile__collection-title {
    margin-bottom: 8px
}

.profile__collection-progress {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    font-weight: 600;
    line-height: 16px;
    padding: 0 .3rem
}

.profile__collection-progress-text {
    white-space: nowrap;
    color: #ff8a8a
}

.profile__collection-item--complete .profile__collection-progress-text {
    color: #3ddc84
}

.profile__collection-progress-bar {
    flex: 1;
    height: 6px;
    border-radius: 3px;
    background: #ffffff1f;
    overflow: hidden
}

.profile__collection-progress-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: #ff6b6b
}

.profile__collection-item--complete .profile__collection-progress-bar > span {
    background: #3ddc84
}

.profile__collection-chevron {
    width: 9px;
    height: 9px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-3px) rotate(45deg);
    transition: transform .25s;
    flex: none
}

.profile__collection-item--open .profile__collection-chevron {
    transform: translateY(2px) rotate(-135deg)
}

/* Свёрнутая коллекция убрана из раскладки целиком: в больших коллекциях (SF — 152 фишки) со свечением
   анимация высоты на телефоне перерисовывала все фишки каждый кадр и дёргалась. Теперь коллекция
   раскрывается сразу, а плавно проявляются только первые ряды — это считает видеокарта. */
.profile__collection-body {
    display: none
}

.profile__collection-item--open .profile__collection-body {
    display: block
}

.profile__collection-item--open .profile__collection-caps {
    padding-top: 12px
}

@keyframes pc-collection-cap-in {
    from {
        opacity: 0;
        transform: translateY(-10px)
    }
}

.profile__collection-item--animate .profile__collection-caps > :nth-child(-n+12) {
    animation: pc-collection-cap-in .25s ease-out backwards
}

.profile__collection-item--animate .profile__collection-caps > :nth-child(n+4) { animation-delay: .04s }
.profile__collection-item--animate .profile__collection-caps > :nth-child(n+7) { animation-delay: .08s }
.profile__collection-item--animate .profile__collection-caps > :nth-child(n+10) { animation-delay: .12s }

/* Плашка крутости сплошного цвета — размытие фона под ней не видно, а на сотне фишек оно дорогое. */
.profile__collection .cap__grade {
    -webkit-backdrop-filter: none;
    backdrop-filter: none
}

@media (prefers-reduced-motion: reduce) {
    .profile__collection-item--animate .profile__collection-caps > *,
    .profile__collection-chevron {
        animation: none;
        transition: none
    }
}

.profile__group-caps {
    display: flex;
    margin-bottom: 12px;
    justify-content: space-between
}

.profile__group-caps-title {
    font-size: 17px;
    font-weight: 600;
    line-height: 22px;
    height: 22px
}

.profile__group-caps-title--skeleton {
    background: linear-gradient(90deg,#5c5c5c,#3d3d3d,#575757);
    animation: skeleton-loading 1.5s ease-in-out infinite;
    background-size: 200% 100%;
    width: 200px;
    border-radius: 4px
}

.profile__select {
    font-size: 15px;
    font-weight: 400;
    line-height: 18px;
    text-align: right;
    display: flex;
    gap: 4px;
    align-items: center;
    color: #fefefe99;
    position: absolute;
    top: 0;
    right: 0;
    cursor: pointer;
}

.game {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height:100vh;height:100svh
}

.game__caps-list-wrapper {
    position: relative;
    overflow: auto;
    height: 100%;
    width: 100%
}

.game__caps-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 13px;
    padding: 1rem;
    height: 100%;
    width: calc(100% - 2rem);
    grid-auto-rows: min-content;
    overflow-x: hidden
}

.game__my-caps-list {
    padding-left: 12px;
    max-width: 100%;
    min-width: 0;
    flex-shrink: 0;
    overflow-x: auto;
    display: flex;
    flex-wrap: nowrap
}

.game__my-caps-list-cap {
    width: 90px;
    min-width: 90px
}

.game__button {
    padding: 1rem 1rem 0;
    width: calc(100% - 2rem);
    min-height: calc(var(--bottom-button-height) - 1rem)
}

.game__waiting {
    display: flex;
    flex-direction: column;
    padding: 1rem 0;
    height:calc(100vh - 1rem);height:calc(100svh - 1rem)
}

@supports (max-height: 99dvh) {
    .game__waiting {
        height:calc(100dvh - 1rem)
    }
}

.game__waiting-first {
    display: flex;
    flex-direction: column;
    padding: 0 1rem;
    margin-bottom: .5rem
}

.game__waiting-title {
    font-size: 24px;
    font-weight: 800;
    line-height: 28.8px;
    text-align: left;
    margin-bottom: 10px
}

.game__waiting-bid {
    font-size: 15px;
    font-weight: 400;
    line-height: 18.15px;
    letter-spacing: -.23px;
    text-align: left;
    color: #a59ea0
}

.game__waiting-bid .game__caps-list {
    padding-top: 0
}

.game__title--yellow {
    color: #ffcd00
}

.game__waiting-buttons {
    display: flex;
    gap: .5rem;
    min-height: calc(var(--bottom-button-height) - 2rem);
    align-items: start;
    width: calc(100% - 2rem);
    padding: 1rem;
    z-index: 10
}

.game__setting-bid-title {
    font-size: 24px;
    font-weight: 800;
    line-height: 28.8px;
    text-align: left;
    padding: 0 1rem .5rem
}

.game__ready {
    background-image: url(../styles/icons/bg-waiting.png);
    background-size: 100%
}

.game__results {
    animation: fadeIn .5s
}

.game__results .game__caps-list {
    height: auto;
    margin-bottom: 1rem
}

.game__results-first {
    height:calc(100vh - var(--bottom-button-height));height:calc(100svh - var(--bottom-button-height));
    overflow: auto
}

@supports (max-height: 99dvh) {
    .game__results-first {
        height:calc(100dvh - var(--bottom-button-height))
    }
}

.game__list-bids {
    height:calc(100vh - var(--navbar-height));height:calc(100svh - var(--navbar-height));
    overflow: auto
}

@supports (max-height: 99dvh) {
    .game__list-bids {
        height:calc(100dvh - var(--navbar-height))
    }
}

.game__results-title {
    font-size: 24px;
    font-weight: 800;
    line-height: 28.8px;
    letter-spacing: -.5px;
    text-align: left;
    padding: 1rem 1rem 0;
    margin-bottom: .75rem
}

.game__results-subtitle {
    font-size: 15px;
    font-weight: 400;
    line-height: 18.15px;
    text-align: left;
    color: #fefefe99;
    margin-top: .5rem;
    padding: 0 1rem .5rem
}

.game__results-user {
    font-size: 15px;
    font-weight: 400;
    line-height: 18.15px;
    letter-spacing: -.23px;
    text-align: left;
    margin: 0 1rem .5rem;
    color: #fefefe99
}

.game__results-user--2 {
    margin-top: 1.25rem
}

.game__results-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 0 1rem;
    margin-top: 1rem
}

.game__results-list-title {
    font-size: 15px;
    font-weight: 400;
    line-height: 18.15px;
    text-align: left;
    color: #fefefe99
}

.game__progress {
    position: relative;
    height:100vh;height:100svh;
    overflow: hidden
}

@supports (max-height: 99dvh) {
    .game__progress {
        height:100dvh
    }
}

@keyframes title {
    0% {
        transform: translate(0)
    }

    75% {
        transform: translate(0);
        opacity: 1
    }

    to {
        transform: translateY(5rem);
        opacity: 0
    }
}

.game__progress-title {
    margin-top: 20%;
    font-size: 30px;
    font-weight: 800;
    line-height: 36px;
    letter-spacing: -1px;
    animation: title 1.5s forwards ease-in 1.5s
}

.game__progress-title--color {
    color: #ffcd00
}

@keyframes cap1 {
    0%,to {
        right: 200%
    }

    20%,75% {
        right: 40%
    }
}

@keyframes cap2 {
    0%,to {
        left: 200%
    }

    20%,75% {
        left: 40%
    }
}

@keyframes explosion {
    0%,20%,75%,to {
        transform: scale(0) translate(-50%,-50%);
        opacity: 0
    }

    21%,60% {
        transform: scale(1) translate(-50%,-50%);
        opacity: 1
    }
}

@keyframes explosion-bg {
    0%,20%,to {
        opacity: 0
    }

    21%,75% {
        opacity: 1
    }
}

.game__progress-cap-1 {
    position: absolute;
    width: 50%;
    transform: rotate(15.59deg);
    top: 43%;
    right: 100%;
    animation: cap1 3s forwards ease-in
}

.game__progress-cap-2 {
    position: absolute;
    width: 50%;
    transform: rotate(-25.28deg);
    top: 27%;
    left: 200%;
    animation: cap2 3s forwards ease-in
}

.game__progress-explosion {
    position: absolute;
    top: 45%;
    transform: scale(0) translate(-50%,-50%);
    width: 500px;
    left: 50%;
    transform-origin: left top;
    animation: explosion 3s forwards ease-in
}

.game__progress-explosion-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height:100vh;height:100svh;
    filter: blur(62px);
    transform: scaleY(-1);
    animation: explosion-bg 3s forwards linear
}

.game__no-bids {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 60%
}

.game-caps-list {
    background: #ffffff1a;
    border-radius: 16px;
    padding-bottom: 12px;
    min-height: 133px
}

.game-caps-list__first {
    text-align: left;
    padding: 12px 12px 6px;
    display: flex;
    min-width: 0;
    gap: 4px;
    height: 19px
}

.game-caps-list__title {
    font-size: 15px;
    font-weight: 600;
    line-height: 18.15px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin: auto 0
}

.game-caps-list__private {
    font-weight: 700;
    background: #ffcd00;
    border-radius: 21px;
    color: #1f1e1e;
    font-size: 12px;
    line-height: 13.31px;
    padding: 0 7px;
    display: flex;
    align-items: center
}

.game-caps-list__created {
    font-size: 11px;
    font-weight: 400;
    color: #fff9;
    display: flex;
    align-items: center;
    flex: 1
}

.game-caps-list__caps {
    padding-left: 12px;
    overflow-x: auto;
    display: flex;
    flex-wrap: nowrap;
    gap: 4px
}

.game-caps-list__text {
    align-self: end;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 500;
    line-height: 15.73px;
    text-align: left;
    color: #ffffffb2
}

.game-caps-list__cap {
    width: 90px;
    min-width: 90px
}

.game-caps-list--skeleton .cap__element {
    width: 90px
}

.game-caps-list--skeleton .game-caps-list__title {
    width: 100%;
    height: 16px;
    border-radius: 4px;
    animation: skeleton-loading 1.5s ease-in-out infinite;
    background: linear-gradient(90deg,#5c5c5c,#3d3d3d,#575757);
    background-size: 200% 100%
}

.battle-game-bid__filter {
    align-self: start;
    margin: 1rem
}

.battle-game-bid__caps {
    display: flex;
    padding: 0 1rem
}

.battle-game-bid__select {
    right: 1rem;
    top: 0
}

.battle-game-bid__caps-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 13px;
    padding: 1rem;
    width: calc(100% - 2rem);
    grid-auto-rows: min-content
}

.battle-game-bid__button {
    width: calc(100% - 2rem)
}

.battle-game-bid__collection {
    overflow: auto;
    padding: 0 1rem;
    width: auto
}

.battle-game-bid__collection-caps {
    height:calc(100vh - var(--navbar-height) - 1.5rem);height:calc(100svh - var(--navbar-height) - 1.5rem);
    background-image: none;
    background-color: inherit
}

@supports (max-height: 99dvh) {
    .battle-game-bid__collection-caps {
        height:calc(100dvh - var(--navbar-height) - 1.5rem)
    }
}

.caps-vs-list__titles > * {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.caps-vs-list__titles {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 13px;
    padding: 0 1rem;
    width: calc(100% - 2rem);
    grid-auto-rows: min-content;
    align-items: start;
    text-align: start;
    color: #fefefe99
}

.caps-vs-list__title {
    color: #fefefe
}

.caps-vs-list__caps {
    display: flex;
    flex-direction: column;
    padding: .5rem 0;
    gap: 1rem
}

.caps-vs-list__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 13px;
    padding: 0 1rem;
    width: calc(100% - 2rem);
    grid-auto-rows: min-content;
    overflow-x: hidden;
    position: relative
}

.caps-vs-list__image {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 10%
}

.game-caps-list__preferences {
    display: flex;
    padding-left: 12px;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 4px
}

.game-caps-list__preferences-title {
    font-size: 13px;
    padding-left: 12px;
    font-weight: 600;
    line-height: 16px;
    text-align: left;
    color: #fff9;
    margin-bottom: .5rem;
    margin-top: .25rem
}

.game-caps-list__preferences-cap {
    width: 50px;
    min-width: 50px
}

.game-caps-list__preferences-any {
    background: #fff;
    color: #1f1e1e;
    font-size: 11px;
    font-weight: 600;
    text-align: center;
    border-radius: 33px;
    position: relative;
    margin: -1.3rem .3rem 0
}

@media (max-width: 373px) {
    .game-caps-list__cap {
        width:70px;
        min-width: 70px
    }

    .game-caps-list--skeleton .cap__element {
        width: 70px
    }
}

.battle {
    margin: 1rem 1rem 0;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 16px;
    height:calc(100vh - var(--navbar-height) - 1rem);height:calc(100svh - var(--navbar-height) - 1rem);
    width: calc(100% - 2rem)
}

@supports (max-height: 99dvh) {
    .battle {
        height:calc(100dvh - var(--navbar-height) - 1rem)
    }
}

.battle__game-block {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%
}

.battle-empty {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height:80vh;height:80svh
}

.battle-empty__image {
    width: 72px;
    margin-bottom: 6px
}

.battle-empty__description {
    font-size: 15px;
    font-weight: 600;
    line-height: 18.15px;
    letter-spacing: -.24px;
    text-align: center;
    color: #ffffffe5;
    margin-bottom: 20px
}

.battle-games__cap {
    filter: grayscale(100%);
    opacity: 50%
}

.battle-games__cap--plus {
    background-color: #ff4740
}

.battle-games__cap--plus-skeleton {
    filter: brightness(70%);
    background: #3d3d3d
}

.battle-games__cap--game {
    filter: grayscale(100%);
    opacity: 50%
}

.battle__game-caps {
    position: relative
}

.battle__game {
    position: absolute;
    top: 0;
    z-index: 10;
    height:100vh;height:100svh;
    width: 100%;
    background-color: #1c1c1e;
    background-image: url("icons/bg-1e2648cde3a8d386882d84b82107ff05.webp");
    background-size: 100%
}

.battle__button {
    margin-top: 1rem
}

/* Обёртка группы фишек (заголовок + сетка) для «Показать ещё» — на раскладку не влияет. */
.profile__group {
    display: contents
}

.battle__load-more {
    display: block;
    flex-shrink: 0;
    text-align: center;
    margin-bottom: 1rem
}

.battle__load-more[aria-busy="true"] {
    opacity: .5;
    pointer-events: none
}

.battle__caps-filters-item-settings {
    margin-left: auto;
    margin-right: .5rem
}

.battle__filters {
    margin-top: .5rem
}

.battle__filters-button {
    background: #d9d9d91a;
    border-radius: 50%;
    aspect-ratio: 1/1;
    width: 32px
}

.battle-filters {
    box-sizing: border-box;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 100;
    height:100vh;height:100svh;
    display: flex;
    flex-direction: column;
    padding: 1rem 1rem 2rem;
    background-color: #1c1c1e;
    background-image: url("icons/bg-1e2648cde3a8d386882d84b82107ff05.webp");
    background-size: 100%;
    background-position:100% 100vh;background-position:100% 100svh;
    text-align: start;
    overflow-y: auto
}

.battle-filters__filter {
    margin-bottom: 1.5rem
}

.battle-filters__title {
    font-size: 17px;
    font-weight: 600;
    line-height: 22px;
    color: #fefefe;
    margin-bottom: .75rem
}

.battle-filters__items {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem
}

.battle-filters__item {
    font-size: 13px;
    font-weight: 500;
    line-height: 16px;
    padding: .5rem 1rem;
    border-radius: 42px;
    background: #ffffff1a;
    color: #fff;
    border: 1px solid transparent
}

.battle-filters__item-cap {
    font-size: 13px;
    font-weight: 500;
    line-height: 16px;
    padding: .5rem 1rem;
    border-radius: 42px;
    background: #ffffff1a;
    color: #fff
}

.battle-filters__item--common {
    background: linear-gradient(360deg,#ffffff63,#ffffff21 130.36%)
}

.battle-filters__item--epic {
    background: linear-gradient(360deg,#6811c4,#b526a4)
}

.battle-filters__item--legend {
    background: linear-gradient(174.32deg,#eec51f 8.39%,#dc8f3d 34.89%,#ff9936 66.51%,#f6cc1f 93.87%)
}

.battle-filters__item--diamond {
    background: linear-gradient(180deg,#527fff 50%,#9d95ff)
}

.battle-filters__item--active {
    border: 1px solid #FFFFFF
}

.battle-filters__button {
    margin-top: auto
}

.battle-preference {
    box-sizing: border-box;
    position: absolute;
    top: 0;
    left: 0;
    /* Ширина экрана: без неё блок растягивается под ряд фишек ставки и вылезает вправо. */
    width: 100%;
    z-index: 100;
    height:100vh;height:100svh;
    display: flex;
    flex-direction: column;
    padding: 1rem;
    background-color: #1c1c1e;
    background-image: url("icons/bg-1e2648cde3a8d386882d84b82107ff05.webp");
    background-size: 100%;
    background-position:100% 100vh;background-position:100% 100svh;
    text-align: start;
    overflow-y: auto
}

.battle-preference__title {
    font-size: 24px;
    font-weight: 800;
    line-height: 29px;
    margin-bottom: 24px
}

.battle-preference__item--active {
    background: #fff;
    color: #1f1e1e
}

.battle-preference__caps {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 8px
}

.battle-preference__choose-number {
    padding: 1rem 1rem 0
}

.battle-preference__button-wrapper {
    margin-top: auto;
    min-height: calc(var(--bottom-button-height) - 2rem)
}

.battle-preference__choose-number-button {
    margin-top: 2rem
}

.battle-preference__any-caps {
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    font-size: 13px;
    font-weight: 600;
    line-height: 16px;
    text-align: center;
    background: #ffffff1a;
    color: #fff
}

.battle-preference__any-caps--selected {
    color: #1f1e1e;
    background: #fff
}

@font-face {
    font-family: swiper-icons;
    src: url(data:application/font-woff;charset=utf-8;base64,\ d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA);
    font-weight: 400;
    font-style: normal
}

:root {
    --swiper-theme-color: #007aff
}

:host {
    position: relative;
    display: block;
    margin-left: auto;
    margin-right: auto;
    z-index: 1
}

.swiper {
    margin-left: auto;
    margin-right: auto;
    position: relative;
    overflow: hidden;
    list-style: none;
    padding: 0;
    z-index: 1;
    display: block
}

.swiper-vertical>.swiper-wrapper {
    flex-direction: column
}

.swiper-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: flex;
    transition-property: transform;
    transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
    box-sizing: content-box
}

.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper {
    transform: translateZ(0)
}

.swiper-horizontal {
    touch-action: pan-y
}

.swiper-vertical {
    touch-action: pan-x
}

.swiper-slide {
    flex-shrink: 0;
    width: 100%;
    height: 100%;
    position: relative;
    transition-property: transform;
    display: block
}

.swiper-slide-invisible-blank {
    visibility: hidden
}

.swiper-autoheight,.swiper-autoheight .swiper-slide {
    height: auto
}

.swiper-autoheight .swiper-wrapper {
    align-items: flex-start;
    transition-property: transform,height
}

.swiper-backface-hidden .swiper-slide {
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden
}

.swiper-3d.swiper-css-mode .swiper-wrapper {
    perspective: 1200px
}

.swiper-3d .swiper-wrapper {
    transform-style: preserve-3d
}

.swiper-3d {
    perspective: 1200px
}

.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow {
    transform-style: preserve-3d
}

.swiper-css-mode>.swiper-wrapper {
    overflow: auto;
    scrollbar-width: none;
    -ms-overflow-style: none
}

.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar {
    display: none
}

.swiper-css-mode>.swiper-wrapper>.swiper-slide {
    scroll-snap-align: start start
}

.swiper-css-mode.swiper-horizontal>.swiper-wrapper {
    scroll-snap-type: x mandatory
}

.swiper-css-mode.swiper-vertical>.swiper-wrapper {
    scroll-snap-type: y mandatory
}

.swiper-css-mode.swiper-free-mode>.swiper-wrapper {
    scroll-snap-type: none
}

.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide {
    scroll-snap-align: none
}

.swiper-css-mode.swiper-centered>.swiper-wrapper:before {
    content: "";
    flex-shrink: 0;
    order: 9999
}

.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide {
    scroll-snap-align: center center;
    scroll-snap-stop:always}

.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child {
    margin-inline-start:var(--swiper-centered-offset-before)}

.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper: before {
    height:100%;
    min-height: 1px;
    width: var(--swiper-centered-offset-after)
}

.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child {
    margin-block-start:var(--swiper-centered-offset-before)}

.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper: before {
    width:100%;
    min-width: 1px;
    height: var(--swiper-centered-offset-after)
}

.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10
}

.swiper-3d .swiper-slide-shadow {
    background: #00000026
}

.swiper-3d .swiper-slide-shadow-left {
    background-image: linear-gradient(to left,#00000080,#0000)
}

.swiper-3d .swiper-slide-shadow-right {
    background-image: linear-gradient(to right,#00000080,#0000)
}

.swiper-3d .swiper-slide-shadow-top {
    background-image: linear-gradient(to top,#00000080,#0000)
}

.swiper-3d .swiper-slide-shadow-bottom {
    background-image: linear-gradient(to bottom,#00000080,#0000)
}

.swiper-lazy-preloader {
    width: 42px;
    height: 42px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin-left: -21px;
    margin-top: -21px;
    z-index: 10;
    transform-origin: 50%;
    box-sizing: border-box;
    border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
    border-radius: 50%;
    border-top-color: transparent
}

.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader {
    animation: swiper-preloader-spin 1s infinite linear
}

.swiper-lazy-preloader-white {
    --swiper-preloader-color: #fff
}

.swiper-lazy-preloader-black {
    --swiper-preloader-color: #000
}

@keyframes swiper-preloader-spin {
    0% {
        transform: rotate(0)
    }

    to {
        transform: rotate(360deg)
    }
}

.pve__title {
    padding: 1rem 1rem .5rem;
    font-size: 24px;
    font-weight: 800;
    line-height: 28px;
    letter-spacing: -.5px;
    text-align: left;
    color: #fff;
    width: calc(100% - 100px);
    white-space: pre-line
}

.pve__cassette {
    position: absolute;
    right: 3%;
    top: 4%;
    z-index: 10;
    width: 50px
}

.pve__cassette img {
    width: 100%
}

.pve__levels {
    padding: .5rem 1rem 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
    overflow: auto;
    height:calc(100vh - 90px);height:calc(100svh - 90px);
    overflow-anchor: auto;
    position: relative
}

@supports (max-height: 99dvh) {
    .pve__levels {
        height:calc(100dvh - 90px)
    }
}

.pve__levels--skeleton {
    width: calc(100% - 2rem);
    flex-direction: column-reverse
}

.pve__levels--skeleton .pve-caps-block:last-child {
    margin-bottom: 0
}

.pve-level__wrapper {
    display: flex;
    flex-direction: column;
    overflow: auto;
    height:100vh;height:100svh;
    position: absolute;
    top: 0;
    left: 0;
    background-color: #1c1c1e;
    background-image: url("icons/bg-1e2648cde3a8d386882d84b82107ff05.webp");
    background-size: 100%;
    z-index: 10;
    width: 100%
}

.pve-level__select-cap-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #1c1c1e;
    background-image: url("icons/bg-1e2648cde3a8d386882d84b82107ff05.webp");
    background-size: 100%;
    z-index: 10
}

.pve-level__title {
    font-size: 15px;
    font-weight: 400;
    line-height: 18px;
    color: #fefefe99;
    margin-top: 17px
}

.pve-level__gems {
    font-size: 15px;
    font-weight: 600;
    line-height: 18px;
    color: #fff;
    display: inline-flex;
    align-items: center;
    margin-left: 4px
}

.pve-level__bottom {
    display: flex;
    flex-direction: column;
    align-items: center;
    border-top-left-radius: 32px;
    border-top-right-radius: 32px;
    background: #ffffff0d;
    flex: 1;
    margin-top: 3rem;
    padding-bottom: calc(var(--bottom-button-height) - 3rem)
}

.pve-level__battle {
    background: #8d5d62;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: -40px
}

.pve-level__battle img {
    width: 43px;
    aspect-ratio: 1 / 1
}

.pve-level__bottom-title {
    font-size: 24px;
    font-weight: 800;
    line-height: 28.8px;
    text-align: center;
    color: #fff;
    margin-top: 16px
}

.pve-level__button {
    width: calc(100% - 2rem)
}

.pve__levels--skeleton .pve-caps-block:first-child,.pve-caps-block:last-child {
    margin-bottom: 3rem
}

.pve-caps-block__title {
    font-size: 15px;
    font-weight: 600;
    line-height: 18px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin: auto 0
}

.pve-caps-block__lock {
    height: 16px;
    margin-left: 8px;
    margin-bottom: -2px
}

.pve-caps-block__gem {
    height: 16px;
    margin-left: 4px
}

.pve-caps-block__game-caps {
    background: #ffffff1a;
    border-radius: 16px;
    -moz-outline-radius: 1em;
    padding-bottom: 12px;
    min-height: 137px
}

.pve-caps-block__game-caps--active {
    position: relative;
    box-shadow: 0 0 0 2px #ff4740;
    overflow: hidden
}

.pve-caps-block__game-caps--active:before {
    content: "";
    position: absolute;
    left: 10%;
    top: 20%;
    width: 80%;
    height: 70%;
    background: #ff4740d6;
    filter: blur(69.35px);
    z-index: -1
}

.pve-caps-block__game-caps--locked {
    filter: grayscale(100%)
}

.pve-caps-block__first {
    text-align: left;
    padding: 14px 12px 6px;
    display: flex;
    min-width: 0;
    gap: 4px;
    height: 20px;
    justify-content: space-between;
    align-items: center;
    opacity: .5
}

.pve-caps-block__first--active {
    opacity: 1
}

.pve-caps-block__gems {
    display: flex;
    padding: 4px 8px;
    background: #ffffff1a;
    border-radius: 20px;
    color: #ffffffb2;
    font-size: 15px;
    font-weight: 600;
    line-height: 18.15px;
    text-align: center
}

.pve-caps-block__caps {
    padding-left: 12px;
    overflow-x: auto;
    display: flex;
    flex-wrap: nowrap;
    gap: 4px;
    position: relative
}

.pve-caps-block__cap--gray {
    filter: grayscale(100%);
    opacity: .5
}

.pve-caps-block__completed {
    position: absolute;
    height: 93%
}

.pve-level-caps-list {
    margin-top: 1rem;
    padding: 0 1rem 1rem;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px
}

.pve-level-caps-list__description {
    font-size: 11px;
    font-weight: 400;
    line-height: 14px;
    text-align: left;
    padding: .5rem .5rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 4px
}

.pve-level-caps-list__icon {
    width: 16px;
    height: 16px;
    margin-right: 4px
}

.pve-level-caps-list__item {
    display: flex;
    align-items: center;
    font-size: 13px;
    font-weight: 600;
    line-height: 16px;
    text-align: left
}

.pve-level-caps-list__item--buffed {
    color: #33bd1c
}

.pve-level-caps-list__cap {
    filter: grayscale(100%) brightness(40%)
}

.pve-battle__explosion {
    position: absolute;
    z-index: -1;
    width: calc(100% / 3)
}

.pve-battle {
    background-image: url("icons/bg-vsx-479ffee53e205927f81a1cf08f1da456.png");
    background-repeat: no-repeat;
    background-position: 50%;
    background-size: 50%;
    height:100vh;height:100svh;
    display: flex;
    flex-direction: column
}

@supports (max-height: 99dvh) {
    .pve-battle {
        height:100dvh
    }
}

.pve-battle__center {
    flex: 1;
    display: flex;
    align-items: end;
    justify-content: center;
    gap: .5rem
}

.pve-battle__button {
    padding: 1rem 1rem 0;
    width: calc(100% - 2rem);
    min-height: calc(var(--bottom-button-height) - 1rem)
}

.pve-battle__caps-list {
    padding: 1rem;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
    z-index: 1
}

.pve-battle__cap-wrapper {
    height: 100%;
    position: relative
}

.pve-battle__cap-wrapper:before {
    content: "";
    position: absolute;
    width: 100%;
    border-radius: 41% 41% 16px 16px;
    height: calc(100% - 10px);
    background: #2b2428;
    z-index: -1;
    left: 0;
    top: 10px
}

.pve-battle__result {
    background: #202123;
    margin:17vh 1.5rem;margin:17svh 1.5rem;
    -webkit-backdrop-filter: blur(13px);
    backdrop-filter: blur(13px);
    border-radius: 24px;
    width: calc(100% - 7rem);
    padding: 3rem 2rem;
    transition: transform .5s;
    transform: scale(.9)
}

.pve-battle__result.visible {
    transform: scale(1)
}

.pve-battle__result-wrapper {
    position: absolute;
    background: #000000b3;
    height:100vh;height:100svh;
    width: 100%;
    z-index: 200;
    transition: opacity .3s;
    opacity: 0;
    top: 0;
    transform: translateY(100%)
}

.pve-battle__result-wrapper.visible {
    opacity: 1;
    transform: translateY(0)
}

.pve-battle__result-wrapper.closing {
    opacity: 0
}

.pve-battle__result-title {
    font-size: 30px;
    font-weight: 800;
    line-height: 36px;
    letter-spacing: -1px;
    text-align: center;
    color: #ffcd00;
    margin-bottom: 24px
}

.pve-battle__result-gems {
    display: flex;
    justify-content: center;
    position: relative;
    margin-bottom: 10px
}

.pve-battle__result-gems:before {
    content: "";
    position: absolute;
    height: 80%;
    background: #ffcd00;
    filter: blur(28.3px);
    z-index: -1
}

.pve-battle__result-gems--3:before {
    width: 150px
}

.pve-battle__result-gem {
    width: 200px
}

.pve-battle__result-gems--1 {
    margin-bottom: 2rem
}

.pve-battle__result-gems--1 .pve-battle__result-gem {
    width: 100px
}

.pve-battle__result-gems--1:before {
    width: 110px
}

.pve-battle__result-gems-image {
    width: 60%
}

.pve-battle__result-reward {
    font-size: 24px;
    font-weight: 600;
    line-height: 29px;
    letter-spacing: -1px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 8px
}

.pve-battle__result-reward-gem {
    height: 36px;
    margin-left: 6px
}

.pve-battle__result-total {
    font-size: 17px;
    font-weight: 400;
    line-height: 22px;
    color: #ffffffb2;
    margin-bottom: 32px
}

.pve-battle__result-buttons {
    display: flex;
    gap: .5rem
}

.pve-battle__health-tooltip {
    position: absolute;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    padding: 12px;
    background-color: #757575;
    border-radius: 10px;
    font-style: normal;
    font-weight: 600;
    font-size: 15px;
    line-height: 18px;
    color: #fff;
    z-index: 5
}

.pve-battle__health-tooltip:after {
    content: "";
    clip-path: path("M10.5982 7.86621C9.44348 9.86621 6.55674 9.86621 5.40203 7.86621L0.860573 0.0001688L15.1396 0.0001688L10.5982 7.86621Z");
    width: 16px;
    height: 10px;
    position: absolute;
    bottom: -9px;
    background-color: #757575
}

.pve-battle__health-tooltip--armageddon:after,.pve-battle__health-tooltip--armageddon {
    background: #ff4740
}

.pve-battle__health-tooltip--rampage:after,.pve-battle__health-tooltip--rampage {
    background: #ffcd00
}

.pve-battle__health-tooltip--ultimate:after,.pve-battle__health-tooltip--ultimate {
    background: #19d3fd
}

.pve-caps-block--skeleton .game-caps-list__title {
    width: 200px;
    height: 16px;
    border-radius: 4px;
    animation: skeleton-loading 1.5s ease-in-out infinite;
    background: linear-gradient(90deg,#5c5c5c,#3d3d3d,#575757);
    background-size: 200% 100%
}

.pve-caps-block--skeleton .game-caps-list__first {
    justify-content: space-between
}

.pve-caps-block--skeleton .pve-caps-block__gems {
    width: 70px;
    height: 16px;
    border-radius: 4px;
    animation: skeleton-loading 1.5s ease-in-out infinite;
    background: linear-gradient(90deg,#5c5c5c,#3d3d3d,#575757);
    background-size: 200% 100%
}

.pve-caps-block--skeleton .cap__img {
    width: 100%
}

.pve-factions-block {
    background: #483739;
    padding: 10px 22px;
    display: flex;
    gap: 4px;
    border-radius: 24px;
    justify-content: center;
    align-items: center
}

.pve-factions-block__images {
    display: flex
}

.pve-factions-block__img {
    height: 14px
}

.pve-factions-block__img:nth-child(2),.pve-factions-block__img:nth-child(3) {
    margin-left: -4px
}

.pve-factions-block__title {
    font-size: 13px;
    font-weight: 600;
    line-height: 16px;
    display: flex;
    gap: 4px
}

.pve-factions-block__title span {
    color: #33bd1c
}

.pve-factions-bottom-sheet {
    width: calc(100% - 2rem);
    margin-top: 2rem
}

.pve-factions-bottom-sheet__circle {
    position: relative;
    margin-bottom: 2rem;
    padding-top: 3rem;
    max-width:54vh;max-width:54svh;
    margin-left: auto;
    margin-right: auto
}

.pve-factions-bottom-sheet__arrows {
    width: 96%;
    margin-bottom: 4%
}

.pve-factions-bottom-sheet__battle {
    position: absolute;
    top: 33%;
    left: 50%;
    transform: translate(-50%)
}

.pve-factions-bottom-sheet__battle-image {
    width: 40%
}

.pve-factions-bottom-sheet__battle-title {
    font-size: 17px;
    font-weight: 600;
    line-height: 22px
}

.pve-factions-bottom-sheet__title {
    font-size: 24px;
    font-weight: 600;
    line-height: 22px;
    text-align: left;
    margin-bottom: 20px
}

.pve-factions-bottom-sheet__description {
    font-size: 15px;
    font-weight: 400;
    line-height: 18px;
    margin-bottom: 10px;
    text-align: left;
    color: #ffffffb2
}

.pve-factions-bottom-sheet__domination {
    position: absolute;
    font-size: 13px;
    font-weight: 600;
    line-height: 16px;
    text-align: center;
    border-radius: 50%;
    background-color: #69595b;
    width: 50px;
    aspect-ratio: 1/1;
    display: flex;
    justify-content: center;
    align-items: center
}

.pve-factions-bottom-sheet__domination--1 {
    top: 30%;
    left: 2%
}

.pve-factions-bottom-sheet__domination--1:after {
    content: "";
    clip-path: path("M14.6699 17.7402C14.3525 18.3622 13.5115 18.4756 13.0406 17.9599L0.929208 4.6944C0.385207 4.09857 0.734469 3.13696 1.53405 3.02912L21.8098 0.29454C22.6094 0.186701 23.201 1.02142 22.8342 1.74009L14.6699 17.7402Z");
    width: 28px;
    height: 22px;
    position: absolute;
    bottom: 87%;
    left: 40%;
    transform: rotate(209deg);
    background-color: #69595b
}

.pve-factions-bottom-sheet__domination--2 {
    top: 30%;
    right: 2%
}

.pve-factions-bottom-sheet__domination--2:after {
    content: "";
    clip-path: path("M14.6699 17.7402C14.3525 18.3622 13.5115 18.4756 13.0406 17.9599L0.929208 4.6944C0.385207 4.09857 0.734469 3.13696 1.53405 3.02912L21.8098 0.29454C22.6094 0.186701 23.201 1.02142 22.8342 1.74009L14.6699 17.7402Z");
    width: 28px;
    height: 22px;
    position: absolute;
    bottom: -28%;
    left: 35%;
    transform: rotate(358deg);
    background-color: #69595b
}

.pve-factions-bottom-sheet__domination--3 {
    bottom: 0;
    left: 50%;
    transform: translate(-50%)
}

.pve-factions-bottom-sheet__domination--3:after {
    content: "";
    clip-path: path("M14.6699 17.7402C14.3525 18.3622 13.5115 18.4756 13.0406 17.9599L0.929208 4.6944C0.385207 4.09857 0.734469 3.13696 1.53405 3.02912L21.8098 0.29454C22.6094 0.186701 23.201 1.02142 22.8342 1.74009L14.6699 17.7402Z");
    width: 28px;
    height: 22px;
    position: absolute;
    bottom: 39%;
    left: -39%;
    transform: rotate(108deg);
    background-color: #69595b
}

.pve-factions-bottom-sheet__faction-wrapper {
    position: absolute;
    width: 30%;
    aspect-ratio: 1/1;
    background-color: #69595b;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center
}

.pve-factions-bottom-sheet__faction-wrapper--1 {
    bottom: 10%
}

.pve-factions-bottom-sheet__faction-wrapper--2 {
    top: 0;
    left: 50%;
    transform: translate(-50%)
}

.pve-factions-bottom-sheet__faction-wrapper--3 {
    bottom: 10%;
    right: 0
}

.pve-factions-bottom-sheet__faction-img {
    width: 60%
}

.pve-boosters-block {
    background: #483739;
    padding: 8px 22px;
    display: flex;
    gap: 4px;
    border-radius: 24px;
    justify-content: center;
    align-items: center
}

.pve-boosters-block__img {
    height: 20px
}

.pve-boosters-bottom-sheet__title {
    font-size: 24px;
    font-weight: 800;
    line-height: 29px;
    color: #fff;
    margin-top: 1rem
}

.pve-boosters-bottom-sheet__bonus-list {
    padding: 1rem;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
    z-index: 1;
    width: calc(100% - 2rem)
}

.pve-boosters-bottom-sheet__name {
    font-size: 13px;
    font-weight: 600;
    line-height: 16px;
    margin: 1rem .5rem
}

.pve-boosters-bottom-sheet__description {
    font-size: 15px;
    font-weight: 400;
    line-height: 18px;
    text-align: center;
    color: #ffffffb2;
    margin: 1rem .5rem
}

.pve-boosters-bottom-sheet__bonus-wrapper-image {
    border-radius: 50%;
    background: #ffffff1a;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    aspect-ratio: 1 / 1;
    position: relative;
    overflow: hidden
}

.pve-boosters-bottom-sheet__number {
    font-family: Protest Riot,sans-serif;
    font-size: 12px;
    font-weight: 400;
    line-height: 14px;
    background: #fff;
    color: #181619;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center
}

.pve-boosters-bottom-sheet__img {
    width: 25%;
    aspect-ratio: 1/1;
    position: absolute;
    top: 0;
    right: 0
}

.pve-boosters-bottom-sheet__bonus-image {
    width: 60%;
    margin-top: 30%
}

@media (max-height: 620px) {
    .pve__levels {
        gap:12px
    }

    .pve-caps-block__game-caps {
        min-height: 115px
    }

    .pve__levels--skeleton .pve-caps-block:first-child,.pve-caps-block:last-child {
        margin-bottom: 3.4rem
    }

    .pve-level__title {
        margin-top: .25rem
    }

    .pve-level-caps-list__description {
        padding: .25rem .5rem .5rem
    }

    .pve-level-caps-list__item {
        font-size: 11px
    }

    .pve-level__battle {
        width: 40px;
        height: 40px;
        margin-top: -20px
    }

    .pve-level__battle img {
        width: 20px
    }

    .pve-level__bottom {
        margin-top: .5rem
    }

    .pve-level__bottom-title {
        font-size: 17px;
        margin-top: 0;
        font-weight: 600
    }

    .pve-level-caps-list {
        margin-top: .5rem
    }

    .pve-battle__result {
        width: calc(100% - 2rem);
        padding: 2rem 1rem;
        margin: 0
    }
}

.leaderboard {
    height:calc(100vh - var(--navbar-height) - 1rem);height:calc(100svh - var(--navbar-height) - 1rem);
    padding-top: 1rem;
    overflow: auto
}

@supports (max-height: 99dvh) {
    .leaderboard {
        height:calc(100dvh - var(--navbar-height) - 1rem)
    }
}

.leaderboard__league-first {
    margin: 20px 0
}

.leaderboard__league-selector {
    position: relative;
    width: 205px;
    margin: 0 auto 1rem
}

.leaderboard__league-image {
    width: 100px;
    margin: 0 auto
}

.leaderboard__league-image img {
    position: relative;
    width: 100%
}

.leaderboard__league-image:before {
    content: "";
    position: absolute;
    width: 100px;
    height: 102px;
    left: calc(50% - 49.5px);
    top: 1rem;
    filter: blur(24.6567px);
    background: #dadadaab;
    z-index: 0
}

.leaderboard__league-image--silver:before {
    background: #dadadaab
}

.leaderboard__league-next,.leaderboard__league-prev {
    position: absolute;
    border-radius: 50%;
    padding: 8px 12px;
    background: #ffffff1a;
    top: 40%
}

.leaderboard__league-prev {
    left: 0
}

.leaderboard__league-next {
    right: 0
}

.leaderboard__league-title {
    font-size: 17px;
    font-weight: 600;
    line-height: 22px;
    margin-bottom: 4px
}

.leaderboard__league-subtitle {
    font-size: 15px;
    font-weight: 400;
    line-height: 18px;
    color: #fffc
}

.leaderboard-info__title {
    font-size: 24px;
    font-weight: 800;
    line-height: 29px;
    letter-spacing: -1px;
    text-align: center
}

.leaderboard__profile {
    border-radius: 16px;
    background: #ffffff1a;
    margin: 0 1rem 12px;
    padding: 1rem;
    display: grid;
    grid-template-columns: 48px 1fr;
    grid-template-rows: 22px 24px;
    grid-template-areas: "avatar first" "avatar second";
    column-gap: 12px
}

.leaderboard__profile-avatar {
    grid-area: avatar
}

.leaderboard__profile-avatar img {
    width: 100%
}

.leaderboard__profile-first {
    grid-area: first;
    display: flex;
    justify-content: space-between;
    align-items: start;
    font-size: 15px;
    font-weight: 600;
    line-height: 18px
}

.leaderboard__profile-place {
    color: #ffcd00
}

.leaderboard__profile-second {
    grid-area: second;
    display: flex;
    gap: 6px
}

.leaderboard__profile--empty {
    width: calc(100% - 2rem);
    color: #fff
}

.leaderboard__profile-first--empty {
    align-self: end
}

.leaderboard__profile-second-empty {
    font-size: 15px;
    font-weight: 400;
    line-height: 18px;
    text-align: left;
    color: #fffc;
    margin-top: 6px
}

.leaderboard__profile-goblet {
    width: 24px;
    height: 24px
}

.leaderboard__profile-stats {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 3px
}

.leaderboard__profile-stats-first {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    color: #fff;
}

.leaderboard__profile-score {
    font-size: 13px;
    font-weight: 600;
    line-height: 16px
}

.leaderboard__profile-league {
    font-size: 11px;
    font-weight: 400;
    line-height: 13px;
    color: #e9e6ddbd
}

.leaderboard-progress {
    height: 4px;
    border-radius: 87px;
    background: #ffffff1a
}

.leaderboard-progress-bar {
    height: 100%;
    border-radius: 87px;
    background: #e9e6ddb2
}

.leaderboard__league {
    margin: 0 1rem
}

.leaderboard__league-stat {
    display: flex;
    justify-content: space-between;
    margin: 0 1rem 12px
}

.leaderboard__league-stat-filters {
    display: flex;
    gap: 8px
}

.leaderboard__league-stat-filter {
    border-radius: 52px;
    background: #ffffff26;
    color: #fffc;
    padding: 10px 24px;
    font-size: 13px;
    font-weight: 500;
    line-height: 16px
}

.leaderboard__league-stat-filter--active {
    background: #ff4740;
    color: #fff
}

.leaderboard__league-stat-info {
    font-size: 15px;
    font-weight: 400;
    line-height: 18px;
    color: #fefefe99;
    display: flex;
    gap: 4px;
    align-self: center
}

.leaderboard__table {
    border-radius: 16px;
    background: #ffffff1a;
    margin: 0 1rem
}

.leaderboard__row {
    display: grid;
    grid-template-columns: 48px 1fr min-content;
    grid-template-rows: 24px 17px;
    grid-template-areas: "avatar username place" "avatar score place";
    column-gap: 12px;
    row-gap: 6px;
    padding: 1rem;
    color: #fff;
    width: 100%;
    box-sizing: border-box
}

.leaderboard__row:not(:last-child) {
    border-bottom: 1px solid #FFFFFF1A
}

.leaderboard__league-avatar {
    grid-area: avatar;
    width: 100%
}

.leaderboard__league-avatar--squad {
    border-radius: 50%
}

.leaderboard__profile-first,.leaderboard__profile-username,.leaderboard__league-username {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.leaderboard__league-username {
    grid-area: username;
    font-size: 15px;
    font-weight: 600;
    line-height: 18px;
    text-align: left;
    align-self: center
}

.leaderboard__league-score {
    grid-area: score;
    font-size: 15px;
    font-weight: 400;
    line-height: 18px;
    color: #fffc;
    text-align: left;
    display: flex
}

.leaderboard__league-score img {
    width: 16px;
    height: 16px;
    margin-right: 4px
}

.leaderboard__league-place {
    grid-area: place;
    font-size: 15px;
    font-weight: 600;
    line-height: 18px;
    align-self: center;
    display: flex;
    flex-wrap: nowrap;
    align-items: center
}

.leaderboard__league-place--me {
    color: #ffcd00
}

.leaderboard__league-badge {
    color: #1f1e1e;
    background: #ffcd00;
    border-radius: 38px;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 600;
    line-height: 13px;
    margin-right: 6px;
    white-space: nowrap
}

.leaderboard-info__image {
    height: 38px;
    margin-bottom: 1rem
}

.leaderboard-squad {
    position: absolute;
    top: 0;
    height:100vh;height:100svh;
    width: 100%;
    background-color: #1c1c1e;
    background-image: url("icons/bg-1e2648cde3a8d386882d84b82107ff05.webp");
    background-size: 100%;
    padding: 1rem 0;
    overflow: auto
}

@supports (max-height: 99dvh) {
    .leaderboard-squad {
        height:100dvh
    }
}

.leaderboard-squad__profile {
    border-radius: 16px;
    background: #ffffff1a;
    margin: 0 1rem 12px;
    padding: 1rem;
    display: grid;
    grid-template-columns: 48px 1fr;
    grid-template-rows: 22px 24px;
    grid-template-areas: "avatar first" "avatar second" "button button";
    column-gap: 12px
}

.leaderboard-squad__goblet {
    width: 18px;
    height: 18px;
    margin-right: 4px
}

.leaderboard-squad__second {
    font-size: 15px;
    font-weight: 400;
    line-height: 18px;
    text-align: left;
    color: #fffc;
    align-self: end
}

.leaderboard-squad__buttons {
    grid-area: button;
    display: flex;
    gap: 1rem
}

.leaderboard-squad__button {
    margin-top: 12px;
    width: 100%
}

.leaderboard-squad__title {
    font-size: 17px;
    font-weight: 600;
    line-height: 22px;
    text-align: left;
    margin: 1rem 1rem 12px
}

.leaderboard__league-score--loading,.leaderboard__progress-bar--loading,.leaderboard__profile-score--loading,.leaderboard__profile-username--loading,.leaderboard__league-avatar--squad--loading,.leaderboard__league-subtitle--loading,.leaderboard__league-title--loading {
    background: linear-gradient(90deg,#5c5c5c,#3d3d3d,#575757);
    animation: skeleton-loading 1.5s ease-in-out infinite;
    background-size: 200% 100%
}

.leaderboard__league-title--loading {
    height: 22px;
    width: 35%;
    border-radius: 4px;
    margin-left: auto;
    margin-right: auto
}

.leaderboard__league-subtitle--loading {
    height: 18px;
    width: 60%;
    border-radius: 4px;
    margin-left: auto;
    margin-right: auto
}

.leaderboard__league-avatar--squad--loading {
    height: 100%;
    border-radius: 50%
}

.leaderboard__profile-username--loading {
    height: 18px;
    width: 50%;
    border-radius: 4px
}

.leaderboard__profile-score--loading {
    height: 16px;
    width: 30%;
    border-radius: 4px
}

.leaderboard__progress-bar--loading {
    height: 4px;
    border-radius: 87px
}

.leaderboard__league-score--loading {
    height: 16px;
    width: 20%;
    border-radius: 4px
}

.leaderboard__league-image--loading {
    filter: opacity(.3) grayscale(1)
}

.leaderboard-squad__table {
    margin-bottom: 4rem
}

.leaderboard-squad__more-button {
    margin: 1rem;
    width: calc(100% - 2rem)
}

.login {
    display: flex;
    gap: 2rem;
    align-items: center;
    justify-content: center;
    height:100vh;height:100svh;
    flex-direction: column
}

.login-button {
    position: absolute;
    left: 50%;
    transform: translate(-50%);
    bottom: 25%
}

.madness-bonus-select__title {
    font-size: 17px;
    font-weight: 600;
    line-height: 22px;
    color: #fff
}

.madness-bonus-select__wrapper {
    position: relative
}

.pve-battle__bonus-list {
    padding: 1rem;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
    z-index: 1
}

.madness-bonus-select__cap-wrapper:before,.madness-bonus-select__wrapper:before {
    content: "";
    position: absolute;
    width: 100%;
    border-radius: 99px 99px 16px 16px;
    height: 100%;
    background: #ffffff1a;
    z-index: -1;
    left: 0;
    top: 0
}

.madness-bonus-select__cap-wrapper .pve-level-caps-list__description {
    padding-left: 0
}

.madness-bonus-select__cap-wrapper .pve-level-caps-list__item {
    align-self: center
}

.madness-bonus-select__cap-wrapper .pve-level-caps-list__item:nth-child(2) {
    align-self: center;
    color: #ffffffb2
}

.madness-bonus-select__cap-wrapper--select {
    outline: 2px solid #33BD1C;
    border-radius: 100px 100px 16px 16px
}

.madness-bonus-select__bonus-wrapper-image {
    border-radius: 50%;
    background: #ffffff1a;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    aspect-ratio: 1 / 1
}

.madness-bonus-select__bonus-image {
    height: 70%
}

.madness-bonus-select__description {
    font-size: 13px;
    font-weight: 600;
    line-height: 16px;
    margin-top: 8px
}

.madness-bonus-select__description-first {
    color: #fff;
    margin-bottom: 4px
}

.madness-bonus-select__description-second {
    color: #ffffffb2
}

.madness-battle__title {
    font-size: 15px;
    font-weight: 600;
    line-height: 18px;
    color: #fff;
    display: flex;
    gap: 6px;
    justify-content: center;
    margin-top: 6px
}

.madness-battle__title--round {
    color: #ffcd00
}

.madness-battle__title--gum {
    height: 18px
}

.onboarding {
    background: url(/bg-onboarding.jpg) no-repeat center center;
    background-size: 100% 100%;
    height: 100%;
    width: 100%;
    --ease-one: cubic-bezier(.34, 1.56, .64, 1);
    --duration-one: .5s
}

@supports (transition-timing-function: linear(0,.1,1)) {
    .onboarding {
        --ease-one: linear( 0, .2178 2.1%, 1.1144 8.49%, 1.2959 10.7%, 1.3463 11.81%, 1.3505 12.94%, 1.3526, 1.3643 14.48%, 1.2151 16.2%, 1.0317 21.81%, .941 24.01%, .8912 25.91%, .8694 27.84%, .8698 29.21%, .8824 30.71%, 1.0122 38.33%, 1.0357, 1.046 42.71%, 1.0416 45.7%, .9961 53.26%, .9839 57.54%, .9853 60.71%, 1.0012 68.14%, 1.0056 72.24%, .9981 86.66%, 1 );
        --duration-one: 1.5s
    }
}

.onboarding * {
    box-sizing: border-box
}

.onboarding__title {
    font-size: 30px;
    font-weight: 800;
    line-height: 36px;
    padding: 3rem 2rem 0;
    text-wrap: balance
}

.onboarding__title--yellow {
    color: #ffcd00
}

.onboarding__footer {
    display: flex;
    position: absolute;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 0 2rem;
    bottom: 4rem;
    width: 100%;
    z-index: 10;
    transition: opacity .5s .3s ease-in-out
}

.onboarding__footer--finish {
    justify-content: end
}

.onboarding__step-counters {
    display: flex;
    justify-content: center;
    gap: .5rem
}

.onboarding__step-counter {
    border-radius: 50%;
    height: 10px;
    width: 10px;
    background: #fff6
}

.onboarding__step-counter--active {
    background: #ffcd00
}

.onboarding__step {
    position: absolute;
    opacity: 1;
    transition: opacity .5s .3s ease-in-out
}

.onboarding__step--hide {
    opacity: 0
}

.onboarding__button-finish {
    justify-self: flex-end;
    align-self: end;
    justify-content: end;
    flex-grow: 0;
    opacity: 0;
    transition: flex-grow .5s .3s ease-in-out,opacity .5s .1s ease-in-out
}

.onboarding__button-finish--show {
    flex-grow: 1;
    opacity: 1
}

.onboarding-step-pack {
    display: flex;
    align-items: center;
    flex-direction: column;
    width: 100%
}

.onboarding-step-pack__pack {
    margin-top: 15%;
    height:calc(100vh - 200px);height:calc(100svh - 200px)
}

.onboarding-step-pack__top {
    transform-origin: bottom left;
    transition-duration: var(--duration-one);
    transition-timing-function: var(--ease-one);
    height: 10%
}

.onboarding-step-pack__top.open {
    transform: rotate(-10deg) translateY(20px)
}

.onboarding-step-pack__pack-bottom-parts {
    margin-top: -8px;
    position: relative;
    z-index: 10
}

.onboarding-step-pack__pack-bottom {
    transition-timing-function: var(--ease-one);
    transition-duration: var(--duration-one);
    width: 100%;
    position: absolute;
    top: 0;
    left: 0
}

.onboarding-step-pack__pack-bottom.open {
    transform: translateY(20px)
}

.onboarding-step-pack__cap {
    position: absolute;
    transition-timing-function: var(--ease-one);
    transition-duration: var(--duration-one);
    width: 70%!important;
    left: 15%!important
}

.onboarding-step-pack__cap1.open {
    transform: translate(-30%,-80%)
}

.onboarding-step-pack__cap2.open {
    transform: translate(30%,-60%)
}

.onboarding-step-pack__cap3.open {
    transform: translate(-30%,-40%)
}

.onboarding-step-caps__progress {
    position: absolute;
    top: 0;
    width: 100%;
    margin-top: 5%
}

.onboarding-step-caps__progress>img {
    animation: none
}

.onboarding-step-caps__cap-1,.onboarding-step-caps__cap-2 {
    transition-delay: .7s;
    transition-property: left,right;
    transition-duration: .4s
}

.onboarding-step-caps__cap-1 {
    right: 200%
}

.onboarding-step-caps__cap-2 {
    left: 200%
}

.onboarding-step-caps__progress>.game__progress-cap-1 {
    right: 40%
}

.onboarding-step-caps__progress>.game__progress-cap-2 {
    left: 40%
}

.onboarding-step-caps__explosion {
    transition-property: transform,opacity;
    transition-delay: 1s;
    transition-duration: .4s;
    transform: scale(0) translate(-50%,-50%);
    opacity: 0
}

.onboarding-step-caps__progress>.game__progress-explosion {
    transform: scale(1) translate(-50%,-50%);
    opacity: 1
}

.onboarding-step-gum {
    position: absolute;
    height: 100%;
    z-index: 1
}

.onboarding-step-gum--transition {
    transition: opacity .5s .3s ease-in-out
}

.onboarding-step-gum__shop {
    width: 100%;
    margin: 8% 0;
    padding:5vh 3rem;padding:5svh 3rem
}

.onboarding-step-gum__gum {
    width: 50%;
    transition: transform .5s .3s ease-in-out;
    z-index: 2;
    position: relative
}

.onboarding-step-gum__gum1 {
    transform:translate(40%) translateY(-15vh);transform:translate(40%) translateY(-15svh)
}

.onboarding-step-gum__gum2 {
    transform:translate(-35%) translateY(-12vh) rotate(10deg);transform:translate(-35%) translateY(-12svh) rotate(10deg)
}

.onboarding-step-gum__gum1.down {
    transform:translate(40%) translateY(-12vh);transform:translate(40%) translateY(-12svh)
}

.onboarding-step-gum__gum2.down {
    transform:translate(-35%) translateY(-8vh) rotate(10deg);transform:translate(-35%) translateY(-8svh) rotate(10deg)
}

.onboarding-step-gum__gum1.next {
    transform:translate(20%) translateY(-10vh) scale(.9) rotate(-10deg);transform:translate(20%) translateY(-10svh) scale(.9) rotate(-10deg)
}

.onboarding-step-gum__gum2.next {
    transform:translate(-9%) translateY(max(-60vh,-270%)) scale(.8) rotate(40deg);transform:translate(-9%) translateY(max(-60svh,-270%)) scale(.8) rotate(40deg)
}

.onboarding-step-upgrade__img {
    width: 100%;
    padding: 10% 3rem;
    position: absolute;
    left: 0;
    top:30vh;top:30svh
}

.onboarding-step-finish__caps {
    position: relative;
    margin-top: 2rem;
    width: 100%;
    height:105vh;height:105svh;
    display: flex;
    justify-content: space-between;
    align-items: center;
    overflow: hidden;
    transition: transform .5s .3s ease-in-out,opacity .5s .3s ease-in-out;
    transform: translateY(50px)
}

.onboarding-step-finish__caps.move {
    transform: translateY(0)
}

.onboarding-step-finish__cap {
    position: absolute;
    width: 13rem;
    aspect-ratio: 1/1;
    object-fit: contain;
    transition: transform .5s .3s ease-in-out
}

.onboarding-step-finish__cap-1 {
    top: 10%;
    left: 10%
}

.onboarding-step-finish__caps.move .onboarding-step-finish__cap-1 {
    transform: translateY(-5px)
}

.onboarding-step-finish__cap-2 {
    top: 33%;
    left: -5%
}

.onboarding-step-finish__caps.move .onboarding-step-finish__cap-2 {
    transform: translateY(-6px)
}

.onboarding-step-finish__cap-3 {
    top: 36%;
    left: 40%
}

.onboarding-step-finish__caps.move .onboarding-step-finish__cap-3 {
    transform: translateY(-8px)
}

.onboarding-step-finish__cap-4 {
    top: 10%;
    left: 40%
}

.onboarding-step-finish__caps.move .onboarding-step-finish__cap-4 {
    transform: translateY(-2px)
}

.onboarding-step-finish__caps.move .onboarding-step-finish__cap-4 {
    transform: translateY(-8px)
}

.onboarding-step-finish__cap-5 {
    top: 25%;
    left: 25%
}

.onboarding-step-finish__cap-6 {
    top: 2%;
    left: 65%
}

.onboarding-step-finish__caps.move .onboarding-step-finish__cap-6 {
    transform: translateY(-10px)
}

.onboarding-step-finish__cap-7 {
    top: 23%;
    left: 63%
}

.onboarding-step-finish__cap-8 {
    top: 60%;
    left: 35%
}

.onboarding-step-finish__cap-9 {
    top: 45%;
    left: 20%
}

.onboarding-step-finish__cap-10 {
    top: 55%;
    left: -5%
}

.onboarding-step-finish__cap-11 {
    top: 55%;
    left: 65%
}

.onboarding-step-finish__cap-12 {
    top: 40%;
    left: 65%
}

:root {
    font-family: Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;
    line-height: 1.5;
    font-weight: 400;
    color-scheme: light dark;
    font-synthesis: none;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    scroll-behavior: smooth;
    --bottom-button-height: 104px;
    --navbar-height: 110px;
    --cap-bg-url: none;
    --screen-width: 35rem
}

* {
    -webkit-tap-highlight-color: transparent;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    scrollbar-width: none
}

#root {
    max-width: var(--screen-width);
    text-align: center;
    width: 100%;
    position: relative;
    margin: 0 auto;
    background-color: #1c1c1e;
    background-image: url("icons/bg-1e2648cde3a8d386882d84b82107ff05.webp");
    background-size: 100% 100%
}

#root.main {
    background-image: url("icons/bg-main-b31e4da2097e6ed2ea32effd0d6b3de0.webp");
}

#root:has(.login) {
    background: unset
}

#root:has(.cap__element--large),#root:has(.upgrade) {
    background: #000
}

a {
    font-weight: 500;
    color: #646cff;
    text-decoration: inherit
}

body {
    margin: 0;
    display: flex;
    min-width: 320px;
    min-height:100vh;min-height:100svh;
    background-color: #171216;
    background-image: url("icons/bg-app-ebbf00210380c1b92516dd0581b25e16.webp");
    background-size: cover;
    background-position-x: 50%;
    background-repeat: no-repeat;
    font-family: Inter,sans-serif;
    font-size: 1rem;
    overflow: hidden
}

@supports (max-height: 99dvh) {
    .body {
        min-height:100dvh
    }
}

::-webkit-scrollbar {
    display: none
}

body {
    height:100vh;height:100svh;
    overflow: hidden;
    touch-action: none!important
}

h1 {
    font-size: 3.2em;
    line-height: 1.1
}

button {
    border: none;
    padding: 0;
    background-color: transparent;
    font-family: Inter,sans-serif;
    color: #000
}

button:active,button:focus,button:hover {
    outline: none
}

.skeleton-wrapper {
    position: relative;
    height: 100%;
    width: 100%;
    cursor: pointer;
}

a .cap__element {
    cursor: pointer;
}

.skeleton {
    position: absolute;
    z-index: 1
}

@media (prefers-color-scheme: light) {
    :root {
        color:#fff
    }
}

@keyframes fadeIn {
    0% {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

@keyframes fadeOut {
    0% {
        opacity: 1
    }

    to {
        opacity: 0
    }
}

.fade--long {
    transition: opacity .7s ease-in-out
}

.fade-in {
    opacity: 0;
    transition: opacity .5s ease-in-out
}

.fade-in.visible {
    opacity: 1
}

.fade-out {
    opacity: 1;
    transition: opacity .5s ease-in-out
}

.fade-out.visible {
    opacity: 0
}

@keyframes skeleton-loading {
    to {
        background-position-x: -200%
    }
}

.jw-modal {
    display: none;
    position: fixed;
    left: 50%;
    transform: translate(-50%);
    bottom: 20px;
    z-index: 10000;
    background-color: #0000;
    margin: 0 auto;
    width: calc(min(var(--screen-width),100vw) - 2rem)
}

.jw-modal.open {
    display: block
}

.jw-modal-body {
    display: flex;
    padding: 28px 20px;
    width: 100%;
    gap: 12px;
    border-radius: 16px;
    margin-left: auto;
    background-color: #2c2a2c;
    color: #ffffffe5;
    border: 1px solid #FFFFFF24;
    align-items: center
}

.jw-modal-body .icon {
    font-size: 24px
}

.jw-modal-body .text {
    text-align: left
}

.jw-modal-confirm-body {
    display: flex;
    padding: 20px 16px;
    gap: 12px;
    border-radius: 16px;
    margin-left: auto;
    background-color: #2c2a2c;
    color: #ffffffe5;
    border: 1px solid #FFFFFF24;
    align-items: center
}

.jw-modal-confirm-body .text {
    font-size: 15px;
    font-weight: 400;
    line-height: 19px;
    text-align: left;
    color: #fffc
}

.jw-modal-button {
    padding: 10px 24px;
    gap: 10px;
    border-radius: 42px;
    background: #ff4740;
    color: #fff
}

body.jw-modal-open {
    overflow: hidden
}

.modal__title {
    font-size: 24px;
    font-weight: 600;
    line-height: 29px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 1rem
}

.modal__button {
    text-transform: uppercase
}

.back-button {
    position: absolute;
    top: 10px;
    left: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 2.5rem;
    height: 2.5rem;
    background: #ffffff1a;
    color: #fff;
    border-radius: 50%;
    box-shadow: 0 0 .5rem #00000040;
    transition: background .3s;
    z-index: 20000
}

.pack__open-cap-rare-0:after {
    background: #97b1ff;
}

.cap__element--rare-0 .cap__img-wrapper {
    background: #97b1ff;
}

.cap__element--pve-medium.cap__element--rare-0 .cap__grade,.cap__element--small.cap__element--rare-0 .cap__grade,.cap__element--large.cap__element--rare-0 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #97b1ff;
}

.button-color-rare-0 {
    border-color: #97b1ff;
    background-color: #97b1ff
}

.battle-filters__item--rare-0 {
    background: #97b1ff;
}

.pack__open-cap-rare-1:after {
    background: #97b1ff;
}

.cap__element--rare-1 .cap__img-wrapper {
    background: #97b1ff;
}

.cap__element--pve-medium.cap__element--rare-1 .cap__grade,.cap__element--small.cap__element--rare-1 .cap__grade,.cap__element--large.cap__element--rare-1 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #97b1ff;
}

.button-color-rare-1 {
    border-color: #97b1ff;
    background-color: #97b1ff
}

.battle-filters__item--rare-1 {
    background: #97b1ff;
}

.pack__open-cap-rare-2:after {
    background: #97b1ff;
}

.cap__element--rare-2 .cap__img-wrapper {
    background: #97b1ff;
}

.cap__element--pve-medium.cap__element--rare-2 .cap__grade,.cap__element--small.cap__element--rare-2 .cap__grade,.cap__element--large.cap__element--rare-2 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #97b1ff;
}

.button-color-rare-2 {
    border-color: #97b1ff;
    background-color: #97b1ff
}

.battle-filters__item--rare-2 {
    background: #97b1ff;
}

.pack__open-cap-rare-3:after {
    background: #97b1ff;
}

.cap__element--rare-3 .cap__img-wrapper {
    background: #97b1ff;
}

.cap__element--pve-medium.cap__element--rare-3 .cap__grade,.cap__element--small.cap__element--rare-3 .cap__grade,.cap__element--large.cap__element--rare-3 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #97b1ff;
}

.button-color-rare-3 {
    border-color: #97b1ff;
    background-color: #97b1ff
}

.battle-filters__item--rare-3 {
    background: #97b1ff;
}

.pack__open-cap-rare-4:after {
    background: #97b1ff;
    box-shadow: #97b1ff 0px 0px 20px 5px;
}

.cap__element--rare-4 .cap__img-wrapper {
    background: #97b1ff;
    box-shadow: #97b1ff 0px 0px 10px 1px;
}

.cap__element--pve-medium.cap__element--rare-4 .cap__grade,.cap__element--small.cap__element--rare-4 .cap__grade,.cap__element--large.cap__element--rare-4 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #97b1ff;
}

.button-color-rare-4 {
    border-color: #97b1ff;
    background-color: #97b1ff
}

.battle-filters__item--rare-4 {
    background: #97b1ff;
    box-shadow: #97b1ff 0px 0px 20px 5px;
}

.pack__open-cap-rare-5:after {
    background: #97b1ff;
    box-shadow: #97b1ff 0px 0px 20px 5px;
}

.cap__element--rare-5 .cap__img-wrapper {
    background: #97b1ff;
    box-shadow: #97b1ff 0px 0px 12px 1px;
}

.cap__element--pve-medium.cap__element--rare-5 .cap__grade,.cap__element--small.cap__element--rare-5 .cap__grade,.cap__element--large.cap__element--rare-5 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #97b1ff;
}

.button-color-rare-5 {
    border-color: #97b1ff;
    background-color: #97b1ff
}

.battle-filters__item--rare-5 {
    background: #97b1ff;
    box-shadow: #97b1ff 0px 0px 20px 5px;
}

.pack__open-cap-rare-6:after {
    background: #97b1ff;
    box-shadow: #97b1ff 0px 0px 20px 5px;
}

.cap__element--rare-6 .cap__img-wrapper {
    background: #97b1ff;
    box-shadow: #97b1ff 0px 0px 15px 2px;
}

.cap__element--pve-medium.cap__element--rare-6 .cap__grade,.cap__element--small.cap__element--rare-6 .cap__grade,.cap__element--large.cap__element--rare-6 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #97b1ff;
}

.button-color-rare-6 {
    border-color: #97b1ff;
    background-color: #97b1ff
}

.battle-filters__item--rare-6 {
    background: #97b1ff;
    box-shadow: #97b1ff 0px 0px 20px 5px;
}

.pack__open-cap-rare-7:after {
    background: #97b1ff;
    box-shadow: #97b1ff 0px 0px 20px 5px;
}

.cap__element--rare-7 .cap__img-wrapper {
    background: #97b1ff;
    box-shadow: #97b1ff 0px 0px 18px 3px;
}

.cap__element--pve-medium.cap__element--rare-7 .cap__grade,.cap__element--small.cap__element--rare-7 .cap__grade,.cap__element--large.cap__element--rare-7 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #97b1ff;
}

.button-color-rare-7 {
    border-color: #97b1ff;
    background-color: #97b1ff
}

.battle-filters__item--rare-7 {
    background: #97b1ff;
    box-shadow: #97b1ff 0px 0px 20px 5px;
}

.pack__open-cap-rare-8:after {
    background: #97b1ff;
    box-shadow: #97b1ff 0px 0px 20px 5px;
}

.cap__element--rare-8 .cap__img-wrapper {
    background: #97b1ff;
    box-shadow: #97b1ff 0px 0px 20px 4px;
}

.cap__element--pve-medium.cap__element--rare-8 .cap__grade,.cap__element--small.cap__element--rare-8 .cap__grade,.cap__element--large.cap__element--rare-8 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #97b1ff;
}

.button-color-rare-8 {
    border-color: #97b1ff;
    background-color: #97b1ff
}

.battle-filters__item--rare-8 {
    background: #97b1ff;
    box-shadow: #97b1ff 0px 0px 20px 5px;
}

.pack__open-cap-rare-9:after {
    background: #7e9fff;
    box-shadow: #7e9fff 0px 0px 20px 5px;
}

.cap__element--rare-9 .cap__img-wrapper {
    background: #7e9fff;
    box-shadow: #7e9fff 0px 0px 20px 5px;
}

.cap__element--pve-medium.cap__element--rare-9 .cap__grade,.cap__element--small.cap__element--rare-9 .cap__grade,.cap__element--large.cap__element--rare-9 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #7e9fff;
}

.button-color-rare-9 {
    border-color: #7e9fff;
    background-color: #7e9fff
}

.battle-filters__item--rare-9 {
    background: #7e9fff;
    box-shadow: #7e9fff 0px 0px 20px 5px;
}

.pack__open-cap-rare-10:after {
    background: #4a79ff;
    box-shadow: #4a79ff 0px 0px 20px 5px;
}

.cap__element--rare-10 .cap__img-wrapper {
    background: #4a79ff;;
    box-shadow: #4a79ff 0px 0px 20px 6px;
}

.cap__element--pve-medium.cap__element--rare-10 .cap__grade,.cap__element--small.cap__element--rare-10 .cap__grade,.cap__element--large.cap__element--rare-10 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #4a79ff;
}

.button-color-rare-10 {
    border-color: #4a79ff;
    background-color: #4a79ff
}

.battle-filters__item--rare-10 {
    background: #4a79ff;
    box-shadow: #4a79ff 0px 0px 20px 5px;
}

.pack__open-cap-rare-11:after {
    background: #3a6dff;
    box-shadow: #3a6dff 0px 0px 20px 5px;
}

.cap__element--rare-11 .cap__img-wrapper {
    background: #3a6dff;
    box-shadow: #3a6dff 0px 0px 20px 7px;
}

.cap__element--pve-medium.cap__element--rare-11 .cap__grade,.cap__element--small.cap__element--rare-11 .cap__grade,.cap__element--large.cap__element--rare-11 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #3a6dff;
}

.button-color-rare-11 {
    border-color: #3a6dff;
    background-color: #3a6dff
}

.battle-filters__item--rare-11 {
    background: #3a6dff;
    box-shadow: #3a6dff 0px 0px 20px 5px;
}

.pack__open-cap-rare-12:after {
    background: #2f65ff;
    box-shadow: #2f65ff 0px 0px 20px 5px;
}

.cap__element--rare-12 .cap__img-wrapper {
    background: #2f65ff;
    box-shadow: #2f65ff 0px 0px 20px 8px;
}

.cap__element--pve-medium.cap__element--rare-12 .cap__grade,.cap__element--small.cap__element--rare-12 .cap__grade,.cap__element--large.cap__element--rare-12 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #2f65ff;
}

.button-color-rare-12 {
    border-color: #2f65ff;
    background-color: #2f65ff
}

.battle-filters__item--rare-12 {
    background: #2f65ff;
    box-shadow: #2f65ff 0px 0px 20px 5px;
}

.pack__open-cap-rare-13:after {
    background: #215bff;
    box-shadow: #215bff 0px 0px 20px 5px;
}

.cap__element--rare-13 .cap__img-wrapper {
    background: #215bff;
    box-shadow: #215bff 0px 0px 20px 9px;
}

.cap__element--pve-medium.cap__element--rare-13 .cap__grade,.cap__element--small.cap__element--rare-13 .cap__grade,.cap__element--large.cap__element--rare-13 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #215bff;
}

.button-color-rare-13 {
    border-color: #215bff;
    background-color: #215bff
}

.battle-filters__item--rare-13 {
    background: #215bff;
    box-shadow: #215bff 0px 0px 20px 5px;
}

.pack__open-cap-rare-14:after {
    background: #114fff;
    box-shadow: #114fff 0px 0px 20px 5px;
}

.cap__element--rare-14 .cap__img-wrapper {
    background: #114fff;
    box-shadow: #114fff 0px 0px 20px 10px;
}

.cap__element--pve-medium.cap__element--rare-14 .cap__grade,.cap__element--small.cap__element--rare-14 .cap__grade,.cap__element--large.cap__element--rare-14 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #114fff;
}

.button-color-rare-14 {
    border-color: #114fff;
    background-color: #114fff
}

.battle-filters__item--rare-14 {
    background: #114fff;
    box-shadow: #114fff 0px 0px 20px 5px;
}

.pack__open-cap-rare-15:after {
    background: #0042ff;
    box-shadow: #0042ff 0px 0px 20px 5px;
}

.cap__element--rare-15 .cap__img-wrapper {
    background: #0042ff;
    box-shadow: #0042ff 0px 0px 20px 15px;
}

.cap__element--pve-medium.cap__element--rare-15 .cap__grade,.cap__element--small.cap__element--rare-15 .cap__grade,.cap__element--large.cap__element--rare-15 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #0042ff;
}

.button-color-rare-15 {
    border-color: #0042ff;
    background-color: #0042ff
}

.battle-filters__item--rare-15 {
    background: #0042ff;
    box-shadow: #0042ff 0px 0px 20px 5px;
}

.pack__open-cap-rare-16:after {
    background: #fa6565;
    box-shadow: #fa6565 0px 0px 20px 5px;
}

.cap__element--rare-16 .cap__img-wrapper {
    background: #fa6565;
    box-shadow: #fa6565 0px 0px 20px 5px;
}

.cap__element--pve-medium.cap__element--rare-16 .cap__grade,.cap__element--small.cap__element--rare-16 .cap__grade,.cap__element--large.cap__element--rare-16 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #fa6565;
}

.button-color-rare-16 {
    border-color: #fa6565;
    background-color: #fa6565
}

.battle-filters__item--rare-16 {
    background: #fa6565;
    box-shadow: #fa6565 0px 0px 20px 5px;
}

.pack__open-cap-rare-17:after {
    background: #fd5a5a;
    box-shadow: #fd5a5a 0px 0px 20px 5px;
}

.cap__element--rare-17 .cap__img-wrapper {
    background: #fd5a5a;
    box-shadow: #fd5a5a 0px 0px 20px 5px;
}

.cap__element--pve-medium.cap__element--rare-17 .cap__grade,.cap__element--small.cap__element--rare-17 .cap__grade,.cap__element--large.cap__element--rare-17 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #fd5a5a;
}

.button-color-rare-17 {
    border-color: #fd5a5a;
    background-color: #fd5a5a
}

.battle-filters__item--rare-17 {
    background: #fd5a5a;
    box-shadow: #fd5a5a 0px 0px 20px 5px;
}

.pack__open-cap-rare-18:after {
    background: #fc4545;
    box-shadow: #fc4545 0px 0px 20px 5px;
}

.cap__element--rare-18 .cap__img-wrapper {
    background: #fc4545;
    box-shadow: #fc4545 0px 0px 20px 5px;
}

.cap__element--pve-medium.cap__element--rare-18 .cap__grade,.cap__element--small.cap__element--rare-18 .cap__grade,.cap__element--large.cap__element--rare-18 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #fc4545;
}

.button-color-rare-18 {
    border-color: #fc4545;
    background-color: #fc4545
}

.battle-filters__item--rare-18 {
    background: #fc4545;
    box-shadow: #fc4545 0px 0px 20px 5px;
}

.pack__open-cap-rare-19:after {
    background: #6d02ff;
    box-shadow: #6d02ff 0px 0px 20px 5px;
}

.cap__element--rare-19 .cap__img-wrapper {
    background: #6d02ff;
    box-shadow: #6d02ff 0px 0px 20px 10px;
}

.cap__element--pve-medium.cap__element--rare-19 .cap__grade,.cap__element--small.cap__element--rare-19 .cap__grade,.cap__element--large.cap__element--rare-19 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #6d02ff;
}

.button-color-rare-19 {
    border-color: #6d02ff;
    background-color: #6d02ff
}

.battle-filters__item--rare-19 {
    background: #6d02ff;
    box-shadow: #6d02ff 0px 0px 20px 5px;
}

.pack__open-cap-rare-20:after {
    background: #ff3434;
    box-shadow: #ff3434 0px 0px 20px 5px;
}

.cap__element--rare-20 .cap__img-wrapper {
    background: #ff3434;
    box-shadow: #ff3434 0px 0px 20px 15px;
}

.cap__element--pve-medium.cap__element--rare-20 .cap__grade,.cap__element--small.cap__element--rare-20 .cap__grade,.cap__element--large.cap__element--rare-20 .cap__grade {
    -webkit-backdrop-filter: blur(5.35px);
    backdrop-filter: blur(10px);
    background: #ff3434;
}

.button-color-rare-20 {
    border-color: #ff3434;
    background-color: #ff3434
}

.battle-filters__item--rare-20 {
    background: #ff3434;
    box-shadow: #ff3434 0px 0px 20px 5px;
}

/* ---- Play CAPS: игровые экраны ---- */

.battle-filters[hidden] {
    display: none;
}

.jw-modal[data-toast] {
    cursor: pointer;
}

.game-caps-list__preferences-any:only-child {
    padding: 0 .5rem;
}

.cap-select__empty {
    color: #ffffffb3;
    padding: 2rem 1rem;
    line-height: 1.4;
}

.button[disabled],
.button.button-type-nonactive {
    opacity: .5;
    pointer-events: none;
}

.game__results-score {
    color: #ffffffb3;
    margin-bottom: 1rem;
}

form.inline-form {
    display: contents;
}


.battle > .profile__caps {
    position: static;
    padding: 0;
}

.cap-select__opponent {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .5rem;
    margin: 2.5rem 0 1rem;
    padding: 0 1rem;
    color: #fff;
    text-align: left;
}

.cap-select__opponent .game__my-caps-list {
    margin: 0;
}

/* ---- Play CAPS: анимации ---- */

/* Плавный переход между страницами (Chrome, Safari 18+). */
@view-transition {
    navigation: auto;
}

::view-transition-old(root),
::view-transition-new(root) {
    animation-duration: .22s;
}

@keyframes pc-rise {
    from {
        opacity: 0;
        transform: translateY(14px) scale(.98);
    }
}

/* backwards, а не both: после анимации элемент возвращается к собственным transform из вёрстки. */
.pc-rise {
    animation: pc-rise .45s cubic-bezier(.2, .7, .2, 1) backwards;
    animation-delay: calc(var(--pc-i, 0) * 45ms);
}

.pc-hidden {
    visibility: hidden;
}

@keyframes pc-pop {
    0% { opacity: 0; scale: .2; }
    60% { opacity: 1; scale: 1.25; }
    100% { scale: 1; }
}

.pc-pop {
    animation: pc-pop .45s cubic-bezier(.2, .9, .3, 1.4) both;
}

@keyframes pc-hit {
    0%, 100% { translate: 0 0; }
    20% { translate: -6px 2px; }
    40% { translate: 5px -2px; }
    60% { translate: -3px 1px; }
    80% { translate: 2px 0; }
}

.pc-hit {
    animation: pc-hit .4s ease-out;
}

/* Бой на странице результатов. */
.caps-vs-list__row {
    transition: opacity .35s, filter .35s, transform .35s;
}

.pc-duel--waiting {
    opacity: .25;
    filter: grayscale(.8);
}

.pc-duel--active {
    transform: scale(1.03);
}

.pc-duel--active .caps-vs-list__image {
    animation: pc-vs-pulse .5s ease-in-out infinite alternate;
}

@keyframes pc-vs-pulse {
    to { scale: 1.25; }
}

.pc-pending {
    opacity: 0 !important;
    pointer-events: none;
}

[data-battle-summary] {
    transition: opacity .5s;
}

.pc-skip {
    position: fixed;
    right: 1rem;
    bottom: 1.5rem;
    z-index: 300;
    padding: 8px 16px;
    border-radius: 42px;
    background: #ffffff26;
    color: #fff;
    font-weight: 600;
    cursor: pointer;
    backdrop-filter: blur(6px);
}

.pc-confetti {
    position: fixed;
    inset: 0;
    width: 100vw;
    height:100vh;height:100svh;
    pointer-events: none;
    z-index: 10001;
}

/* Тосты выезжают снизу и уезжают обратно. */
@keyframes pc-toast-in {
    from { opacity: 0; transform: translate(-50%, -24px); }
}

.jw-modal.open[data-toast] {
    animation: pc-toast-in .3s cubic-bezier(.2, .7, .2, 1);
}

.jw-modal.pc-toast--leaving {
    transition: opacity .3s, transform .3s;
    opacity: 0;
    transform: translate(-50%, -24px);
}

/* Тосты игры — сверху экрана, не закрывают нижнее меню и кнопки.
   box-sizing: в исходной вёрстке тело тоста с width: 100% и отступами вылезало за правый край. */
#root .jw-modal[data-toast] {
    top: max(12px, env(safe-area-inset-top));
    bottom: auto;
    width: calc(min(var(--screen-width), 100vw) - 2rem);
    z-index: 20001;
}

#root .jw-modal[data-toast] .jw-modal-body {
    box-sizing: border-box;
    padding: 14px 16px;
    box-shadow: 0 10px 30px #000a;
    backdrop-filter: blur(8px);
    background-color: #2c2a2cf2;
}

#root .jw-modal[data-toast] .text {
    font-weight: 600;
    line-height: 1.3;
}

/* Кнопка, по которой отправлен запрос. */
@keyframes pc-loading {
    to { opacity: .55; }
}

.pc-button--loading {
    animation: pc-loading .5s ease-in-out infinite alternate;
    pointer-events: none;
}

/* Числа, которые изменились с прошлого визита. */
.pc-count--up {
    color: #2ecc71;
    transition: color .6s;
}

.pc-count--down {
    color: #ff4740;
    transition: color .6s;
}

[data-count] {
    font-variant-numeric: tabular-nums;
}

/* Выбор крышек — отклик на нажатие и «выпрыгивающий» номер. */
[data-cap-id] {
    cursor: pointer;
    transition: transform .15s;
}

[data-cap-id]:active {
    transform: scale(.95);
}

[data-cap-id] .cap__selected-number {
    animation: pc-pop .3s cubic-bezier(.2, .9, .3, 1.4) both;
}

/* Пак на главной покачивается, если есть что открыть. */
@keyframes pc-wiggle {
    0%, 80%, 100% { rotate: 0deg; }
    85% { rotate: -10deg; }
    90% { rotate: 8deg; }
    95% { rotate: -4deg; }
}

.home__pack--has > img {
    animation: pc-wiggle 3s ease-in-out infinite;
}

/* Рюкзак заполнен — кнопка зовёт забрать. */
@keyframes pc-glow {
    to { box-shadow: 0 0 24px #2ecc71; }
}

.idle--full [data-idle-claim]:not([disabled]) {
    animation: pc-glow .9s ease-in-out infinite alternate;
}

/* Круг PvP на главной: при наведении логотип бьётся об пол и рассыпается стопкой фишек. */
.pvp-start__circle {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    max-width: 100%;
    aspect-ratio: 484 / 481;
}

.pvp-start__circle .home__cap-image {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.pvp-start__circle .home__cap-image {
    transition: transform .5s, opacity .5s, filter .35s;
}

.pvp-start__label {
    position: absolute;
    z-index: 5;
    left: 50%;
    bottom: 8%;
    transform: translate(-50%, 20px);
    padding: 6px 18px;
    border-radius: 42px;
    background: #ff4740;
    color: #fff;
    font-weight: 800;
    font-size: 18px;
    letter-spacing: .5px;
    text-transform: uppercase;
    white-space: nowrap;
    box-shadow: 0 6px 16px #0008;
    opacity: 0;
    transition: transform .35s cubic-bezier(.2, .7, .2, 1) .35s, opacity .25s .35s;
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    .pc-rise, .pc-pop, .pc-hit, .home__pack--has img, .pc-button--loading {
        animation: none;
    }
}

/* Переключатель языка на главной. */
.home {
    position: relative;
}

.home__lang {
    position: absolute;
    top: 1.35rem;
    right: 1rem;
    display: flex;
    padding: 3px;
    gap: 2px;
    border-radius: 42px;
    background: #ffffff1a;
    backdrop-filter: blur(6px);
    z-index: 5;
}

.home__lang-option {
    padding: 6px 10px;
    border-radius: 42px;
    color: #ffffffb3;
    font-size: 12px;
    font-weight: 700;
    transition: background .25s, color .25s;
}

.home__lang-option--active {
    background: #ff4740;
    color: #fff;
}

.home__lang:hover .home__lang-option:not(.home__lang-option--active) {
    color: #fff;
}

.home:has(.home__lang) .home__leaderboard {
    align-self: flex-start;
    margin-left: 1rem;
    width: calc(100% - 8.5rem);
}

/* ---- Пакетик с фишками (как настоящий, из 90-х) ---- */

.play-pack {
    --pack-w: min(240px, 62vw);
    position: relative;
    width: var(--pack-w);
    aspect-ratio: 240 / 370;
    display: flex;
    flex-direction: column;
    filter: drop-shadow(0 22px 30px #000c);
    transform: rotate(-1.5deg);
}

/* Серебристые гофрированные края. */
.play-pack__crimp {
    position: relative;
    height: 9%;
    flex: none;
    background:
        linear-gradient(180deg, #ffffff99 0%, #ffffff00 35%, #00000033 70%, #ffffff55 100%),
        repeating-linear-gradient(90deg, #f6f8fa 0 2px, #8d969e 2px 4px, #d9dee2 4px 6px, #aeb6bd 6px 8px);
    box-shadow: inset 0 0 0 1px #ffffff40;
}

.play-pack__crimp--top {
    border-radius: 6px 6px 0 0;
    clip-path: polygon(0 12%, 6% 0, 14% 10%, 25% 2%, 38% 9%, 52% 0, 66% 8%, 78% 1%, 90% 10%, 100% 3%, 100% 100%, 0 100%);
    z-index: 3;
}

.play-pack__crimp--bottom {
    border-radius: 0 0 6px 6px;
    clip-path: polygon(0 0, 100% 0, 100% 92%, 88% 100%, 74% 90%, 60% 100%, 45% 91%, 30% 100%, 16% 92%, 0 100%);
}

/* Фольга: от чёрного к зелёному, с бликами и мятыми складками. */
.play-pack__body {
    position: relative;
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    background:
        radial-gradient(ellipse 60% 35% at 50% 40%, #d7ff4a55 0%, #d7ff4a00 70%),
        linear-gradient(180deg, #121212 0%, #1a1f1a 30%, #24402a 50%, #0e6e3b 75%, #12904d 100%);
    clip-path: polygon(0 0, 100% 0, 99% 25%, 100% 50%, 99.2% 78%, 100% 100%, 0 100%, .8% 70%, 0 45%, 1% 20%);
}

.play-pack__sheen {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(115deg, #ffffff00 20%, #ffffff30 28%, #ffffff00 34%),
        linear-gradient(100deg, #ffffff00 55%, #ffffff1f 60%, #ffffff00 66%),
        repeating-linear-gradient(170deg, #ffffff00 0 22px, #ffffff0d 22px 24px, #ffffff00 24px 60px),
        radial-gradient(ellipse 30% 12% at 20% 75%, #ffffff26, #ffffff00),
        radial-gradient(ellipse 25% 10% at 80% 15%, #ffffff33, #ffffff00);
    mix-blend-mode: screen;
}

.play-pack__burst {
    position: absolute;
    left: 50%;
    top: 42%;
    width: 150%;
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
    background: repeating-conic-gradient(from 0deg, #e8ff5c80 0deg 7deg, #e8ff5c00 7deg 18deg);
    -webkit-mask: radial-gradient(circle, #000 8%, #0000 55%);
    mask: radial-gradient(circle, #000 8%, #0000 55%);
}


.play-pack__title {
    position: relative;
    margin-top: 2%;
    font-family: 'Arial Black', Impact, sans-serif;
    font-weight: 900;
    font-size: calc(var(--pack-w) * .15);
    line-height: 1;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #ff3b1f;
    -webkit-text-stroke: 1.5px #fff;
    paint-order: stroke fill;
    text-shadow: 0 3px 0 #7a1d18, 0 6px 10px #000a;
}

/* Перевёрнутый треугольник с фишками, оранжевая и бирюзовая рамки. */
.play-pack__triangle {
    position: relative;
    width: 68%;
    aspect-ratio: 1 / .86;
    margin-top: 3%;
    padding: 5px;
    background: #2ec4b6;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.play-pack__triangle-inner {
    position: relative;
    width: 100%;
    height: 100%;
    background: linear-gradient(#ff7a1a, #ff4d1a);
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    padding: 5px;
    box-sizing: border-box;
}

.play-pack__triangle-inner::before {
    content: "";
    position: absolute;
    inset: 6px;
    background: radial-gradient(circle at 50% 30%, #3d2f1a, #120d08);
    clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.play-pack__art {
    position: absolute;
    width: 42%;
    border-radius: 50%;
    box-shadow: 0 4px 10px #000c;
}

.play-pack__art--1 {
    left: 10%;
    top: 6%;
    rotate: -12deg;
}

.play-pack__art--2 {
    left: 29%;
    top: 26%;
    width: 46%;
    z-index: 1;
}

.play-pack__art--3 {
    right: 10%;
    top: 6%;
    rotate: 12deg;
}

/* Круглая наклейка, как фирменный значок производителя. */
.play-pack__badge {
    position: absolute;
    right: 8%;
    bottom: 9%;
    width: 22%;
    aspect-ratio: 1;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle at 35% 30%, #ffd27a, #ff8a1a 55%, #c45200);
    color: #5a1d00;
    font-weight: 900;
    font-size: calc(var(--pack-w) * .075);
    box-shadow: inset 0 -3px 0 #0003, 0 3px 6px #0008;
    border: 2px solid #fff6;
}

/* Экран пака. */
.pack-stage {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    height:100vh;height:100svh;
    overflow: hidden;
    color: #fff;
}

@supports (height: 100dvh) {
    .pack-stage {
        height: 100dvh;
    }
}

.pack-stage__title {
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -.5px;
    color: #fff;
    background: none;
    border: 0;
    cursor: pointer;
    transition: opacity .4s;
}

.pack-stage__count {
    color: #ffffffb3;
    transition: opacity .4s;
}

.pack-stage__pack {
    position: relative;
    z-index: 2;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
    transition: transform .9s cubic-bezier(.5, 0, .75, 0), opacity .9s;
}

/* Наведение: пакет приподнимается и наклоняется к курсору, по фольге скользит блик.
   Переходы заданы в обычном состоянии, чтобы пакет так же плавно возвращался назад. */
.pack-hover {
    perspective: 900px;
    cursor: pointer;
}

.pack-hover .play-pack {
    transition: transform .35s cubic-bezier(.2, .7, .2, 1);
}

.pack-hover:hover .play-pack {
    transform:
        translateY(-8px)
        rotateX(calc((.5 - var(--py, .5)) * 14deg))
        rotateY(calc((var(--px, .5) - .5) * 18deg));
}

/* Пока курсор двигается, наклон следует за ним без задержки. */
.pack-hover.is-tracking .play-pack {
    transition: transform .08s linear;
}

.play-pack__glare {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    background:
        radial-gradient(circle at calc(var(--px, .5) * 100%) calc(var(--py, .3) * 100%), #ffffff59 0%, #ffffff1f 22%, #ffffff00 48%),
        linear-gradient(calc(100deg + (var(--px, .5) - .5) * 40deg), #ffffff00 38%, #ffffff26 49%, #ffffff00 60%);
    mix-blend-mode: screen;
    transition: opacity .35s;
}

.pack-hover:hover .play-pack__glare {
    opacity: 1;
}

@keyframes pack-shake {
    0%, 100% { transform: rotate(-1.5deg); }
    20% { transform: rotate(-5deg) translateX(-4px); }
    40% { transform: rotate(3deg) translateX(4px); }
    60% { transform: rotate(-4deg) translateX(-3px); }
    80% { transform: rotate(2deg) translateX(2px); }
}

.play-pack--shake {
    animation: pack-shake .45s ease-in-out;
}

/* Открытие: верхняя полоска отрывается, фишки вылезают из пакета. */
.pack-stage .play-pack__crimp--top {
    transform-origin: 0 100%;
    transition: transform .8s cubic-bezier(.2, .7, .3, 1), opacity .8s;
}

/* Полоску сначала тянут, она надрывается с одного края и отлетает. */
@keyframes pack-rip {
    0% { transform: none; opacity: 1; }
    25% { transform: translateY(-3px) rotate(-3deg); }
    45% { transform: translate(4%, -10%) rotate(6deg); opacity: 1; }
    100% { transform: translate(45%, -170%) rotate(32deg); opacity: 0; }
}

@keyframes pack-jolt {
    0%, 100% { translate: 0 0; }
    30% { translate: 0 -4px; }
    50% { translate: 0 6px; }
    70% { translate: 0 -2px; }
}

.pack-stage.is-torn .play-pack__crimp--top {
    animation: pack-rip 1s cubic-bezier(.3, .6, .3, 1) forwards;
}

.pack-stage.is-torn .play-pack {
    animation: pack-jolt .45s ease-out .3s;
}

/* После отрыва у пакета рваный верх. */
.pack-stage.is-torn .play-pack__body {
    clip-path: polygon(0 3%, 5% 0, 9% 2.5%, 15% .5%, 21% 3%, 28% .8%, 34% 2.8%, 41% .4%, 48% 2.6%, 55% .6%, 62% 3%, 69% .5%, 76% 2.7%, 83% .3%, 90% 2.9%, 95% .8%, 100% 2.5%, 99.2% 78%, 100% 100%, 0 100%, .8% 70%, 0 45%);
}

.pack-stage.is-gone .pack-stage__pack {
    transform:translateY(75vh) rotate(10deg);transform:translateY(75svh) rotate(10deg);
    opacity: 0;
}

.pack-stage.is-torn .pack-stage__title,
.pack-stage.is-torn .pack-stage__count {
    opacity: 0;
}

/* Фишка из пака: лежит внутри (за пакетом), поднимается над ним, разлетается и переворачивается. */
.pack-cap {
    --x: 0px;
    --y: 0px;
    --r: 0deg;
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 1;
    width: min(130px, 30vw);
    aspect-ratio: 1;
    perspective: 800px;
    transform: translate(-50%, -30%) scale(.85);
    transition: transform .7s cubic-bezier(.2, .8, .3, 1.15);
    transition-delay: calc(var(--i) * .15s);
}

.pack-stage.is-rising .pack-cap {
    transform:translate(calc(-50% + var(--x) * .3), calc(-50% - min(250px, 34vh))) rotate(calc(var(--r) * 1.5)) scale(.9);transform:translate(calc(-50% + var(--x) * .3), calc(-50% - min(250px, 34svh))) rotate(calc(var(--r) * 1.5)) scale(.9);
}

.pack-stage.is-spread .pack-cap {
    z-index: 4;
    transform: translate(calc(-50% + var(--x)), calc(-50% + var(--y))) rotate(var(--r)) scale(1);
}

.pack-cap:nth-of-type(1) { --x: max(-125px, -31vw); --y: -10px; --r: -10deg; }
.pack-cap:nth-of-type(2) { --x: 0px; --y: -70px; --r: 0deg; }
.pack-cap:nth-of-type(3) { --x: min(125px, 31vw); --y: -10px; --r: 10deg; }

.pack-cap__face {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    backface-visibility: hidden;
    transition: transform .7s;
}

.pack-cap__face--back {
    transform: rotateY(180deg);
}

.pack-cap.flip .pack-cap__face--front {
    transform: rotateY(180deg);
}

.pack-cap.flip .pack-cap__face--back {
    transform: rotateY(0);
}

/* Свечение по крутости: цвета берутся из .pack__open-cap-rare-N::after. */
.pack-cap::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    filter: blur(16px);
    opacity: 0;
    z-index: -1;
    transition: opacity .5s .4s;
}

.pack-cap.flip::after {
    opacity: 1;
}

.pack-cap__grade {
    position: absolute;
    left: 50%;
    bottom: -14px;
    translate: -50% 0;
    padding: 3px 10px;
    border-radius: 42px;
    background: #000c;
    color: #fff;
    font-weight: 800;
    font-size: 14px;
    opacity: 0;
    scale: .3;
    transition: opacity .3s .6s, scale .3s cubic-bezier(.2, .9, .3, 1.5) .6s;
}

.pack-cap.flip .pack-cap__grade {
    opacity: 1;
    scale: 1;
}

.pack-stage__next {
    position: absolute;
    bottom: 2.5rem;
    z-index: 5;
    /* «Смотреть фишки» и «Открыть ещё» — друг под другом. */
    display: flex;
    flex-direction: column;
    gap: .6rem;
    width: min(340px, calc(100% - 2rem));
    opacity: 0;
    pointer-events: none;
    transition: opacity .5s;
}

.pack-stage.is-done .pack-stage__next {
    opacity: 1;
    pointer-events: auto;
}

@media (prefers-reduced-motion: reduce) {
    .pack-cap, .pack-stage__pack, .pack-stage .play-pack__crimp--top {
        transition: none;
    }

    .pack-stage .play-pack__crimp--top, .pack-stage .play-pack {
        animation-duration: 1ms !important;
    }
}

.shop__modes-filter .profile__caps-filters-item {
    gap: 5px;
}

/* Задания: в исходной вёрстке карточку оборачивал слайдер со своим контекстом наложения.
   Без него заголовок с z-index: -10 уходил под фон страницы. */
.tasks__item {
    position: relative;
    z-index: 0;
    flex: 0 0 calc(100% - 2rem);
    margin: 0 1rem;
}

/* Курсор-«рука» на всём, что нажимается. */
#root :is(a[href], button:not([disabled]), label, summary, [data-sheet-open], .select__option, .select__cancel, .bottom-sheet__hide) {
    cursor: pointer;
}

#root button[disabled] {
    cursor: not-allowed;
}

/* Пакетик в магазине и на главной — тот же компонент, только меньше. */
.packs__item .play-pack {
    --pack-w: min(86px, 20vw);
    margin: 6px auto 10px;
    filter: drop-shadow(0 8px 10px #000a);
}

.packs__item .play-pack__crimp {
    height: 8%;
}

.packs__item .play-pack__title {
    -webkit-text-stroke-width: 1px;
}

.packs__item[disabled] .play-pack {
    filter: grayscale(.6) brightness(.8);
}

.packs__stack {
    position: relative;
    display: flex;
    justify-content: center;
    /* Задние пакеты стоят с отрицательным z-index: без своего слоя они уходят под фон страницы,
       как только у родителя заканчивается анимация появления. */
    isolation: isolate;
}

.packs__stack .play-pack:nth-child(n + 2) {
    position: absolute;
    top: 0;
}

.packs__stack .play-pack:nth-child(2) {
    translate: calc(var(--pack-w) * .12) 4px;
    rotate: 6deg;
    z-index: -1;
}

.packs__stack .play-pack:nth-child(3) {
    translate: calc(var(--pack-w) * -.12) 4px;
    rotate: -6deg;
    z-index: -2;
}

.home__pack .play-pack {
    --pack-w: 32px;
    filter: drop-shadow(0 3px 4px #000a);
}

.home__pack .play-pack__badge,
.home__pack .play-pack__glare {
    display: none;
}

.home__pack .play-pack__title {
    margin-top: 18%;
    -webkit-text-stroke-width: .5px;
    text-shadow: none;
}

.home__pack .play-pack__triangle {
    padding: 1px;
}

.home__pack .play-pack__triangle-inner {
    padding: 1px;
}

.home__pack--has .play-pack {
    animation: pc-wiggle 3s ease-in-out infinite;
}

.home__pack .play-pack img {
    height: auto;
}

/* Пока скрипт боя не решил, проигрывать бой или сразу показать итог, результаты скрыты.
   Если скрипт не загрузился, через 3 секунды всё покажется само. */
@keyframes pc-reveal {
    to { opacity: 1; }
}

.js .pc-battle-wait {
    opacity: 0;
    animation: pc-reveal .3s 3s forwards;
}

/* Кнопка «назад» на полноэкранных экранах. */
.pc-back {
    position: fixed;
    top: 12px;
    left: max(12px, calc(50% - var(--screen-width) / 2 + 12px));
    backdrop-filter: blur(6px);
}

.pc-back:hover {
    background: #ffffff33;
}

/* Заголовки рядом с кнопкой «назад» не должны под неё залезать. */
.game__results:has(.pc-back) :is(.game__results-title, .game__results-first > .game__results-title),
.game__results:has(.pc-back) .game__list-bids > .game__results-title,
.pve__wrapper .pve__title {
    padding-left: 4.25rem;
    min-height: 2.5rem;
    /* Обычный текст, а не flex: иначе «Ставка от», ник и остаток фразы встают колонками
       и длинный ник выдавливает заголовок за экран. */
    display: block;
    padding-top: calc(1rem + .3rem);
    overflow-wrap: anywhere;
}

/* ---- Свечение фишек по крутости ----
   Исходное свечение (до 35px) рассчитано на крупные фишки и обрезалось в списках с прокруткой.
   Цвет и сила вынесены в переменные; маленькие и средние фишки светятся компактнее. */

.cap__element--rare-4, .pack__open-cap-rare-4 { --rare: #97b1ff; --glow: 0.28; }
.cap__element--rare-5, .pack__open-cap-rare-5 { --rare: #97b1ff; --glow: 0.33; }
.cap__element--rare-6, .pack__open-cap-rare-6 { --rare: #97b1ff; --glow: 0.44; }
.cap__element--rare-7, .pack__open-cap-rare-7 { --rare: #97b1ff; --glow: 0.55; }
.cap__element--rare-8, .pack__open-cap-rare-8 { --rare: #97b1ff; --glow: 0.63; }
.cap__element--rare-9, .pack__open-cap-rare-9 { --rare: #7e9fff; --glow: 0.67; }
.cap__element--rare-10, .pack__open-cap-rare-10 { --rare: #4a79ff; --glow: 0.7; }
.cap__element--rare-11, .pack__open-cap-rare-11 { --rare: #3a6dff; --glow: 0.73; }
.cap__element--rare-12, .pack__open-cap-rare-12 { --rare: #2f65ff; --glow: 0.77; }
.cap__element--rare-13, .pack__open-cap-rare-13 { --rare: #215bff; --glow: 0.8; }
.cap__element--rare-14, .pack__open-cap-rare-14 { --rare: #114fff; --glow: 0.83; }
.cap__element--rare-15, .pack__open-cap-rare-15 { --rare: #0042ff; --glow: 1; }
.cap__element--rare-16, .pack__open-cap-rare-16 { --rare: #fa6565; --glow: 0.67; }
.cap__element--rare-17, .pack__open-cap-rare-17 { --rare: #fd5a5a; --glow: 0.67; }
.cap__element--rare-18, .pack__open-cap-rare-18 { --rare: #fc4545; --glow: 0.67; }
.cap__element--rare-19, .pack__open-cap-rare-19 { --rare: #6d02ff; --glow: 0.83; }
.cap__element--rare-20, .pack__open-cap-rare-20 { --rare: #ff3434; --glow: 1; }

/* Свечение крутости — одно на все фишки игры: цвет и сила (--rare, --glow) от крутости, размер — доля
   диаметра фишки (--cap-d), так что на большой и маленькой фишке оно выглядит одинаково. +0…+3 — без свечения. */
.cap__element--small, .cap__element--pve-small { --cap-d: 64px; }
.cap__element--medium { --cap-d: 140px; }

[class*="cap__element--rare-"] .cap__img-wrapper {
    /* Два слоя: плотный ореол у края и мягкое широкое свечение; маленьким фишкам — не меньше 3–8px. */
    --cap-glow:
        0 0 max(3px, calc(var(--cap-d, 64px) * (.04 + .06 * var(--glow, 0)))) max(calc(2px * var(--glow, 0)), calc(var(--cap-d, 64px) * .035 * var(--glow, 0))) var(--rare, transparent),
        0 0 max(calc(8px * var(--glow, 0)), calc(var(--cap-d, 64px) * .22 * var(--glow, 0))) calc(var(--cap-d, 64px) * .03 * var(--glow, 0)) var(--rare, transparent);
}

.cap__element--large { --cap-d: 270px; }
.cap__element--pve-medium { --cap-d: 110px; }

/* Перекрывает старые свечения по уровням (.cap__element--rare-N .cap__img-wrapper). */
.cap__element[class*="cap__element--rare-"] .cap__img-wrapper {
    box-shadow: var(--cap-glow);
}

/* Горизонтальные ленты фишек прокручиваются и обрезают всё за краем — даём свечению место. */
.game__my-caps-list,
.game-caps-list__caps,
.pve-caps-block__caps {
    padding: 12px;
    margin-block: -8px;
}

.caps-vs-list__row {
    padding-block: 12px;
}

.profile__caps-list,
.pack__caps-list {
    padding-inline: 14px;
    box-sizing: border-box;
}


/* 10 паков — широкая стопка из пяти пакетиков и золотая плашка с количеством. */
.packs__stack--many .play-pack:nth-child(2) { translate: calc(var(--pack-w) * .16) 3px; rotate: 7deg; }
.packs__stack--many .play-pack:nth-child(3) { translate: calc(var(--pack-w) * -.16) 3px; rotate: -7deg; }
.packs__stack--many .play-pack:nth-child(4) { translate: calc(var(--pack-w) * .3) 9px; rotate: 14deg; z-index: -3; }
.packs__stack--many .play-pack:nth-child(5) { translate: calc(var(--pack-w) * -.3) 9px; rotate: -14deg; z-index: -4; }

.packs__amount-badge {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 3;
    padding: 3px 9px;
    border-radius: 42px;
    background: linear-gradient(180deg, #ffe58a, #f2a516);
    color: #4a2a00;
    font-weight: 900;
    font-size: 14px;
    box-shadow: 0 3px 8px #0008;
}

/* Карточки паков в одну строку, чтобы 1, 3 и 10 паков было легко сравнить.
   Элементы сетки — формы, поэтому кнопка-карточка растягивается на всю ячейку. */
.packs {
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.packs > form {
    display: flex;
}

.packs > form > .packs__item {
    width: 100%;
    padding: 10px 8px 12px;
    align-items: center;
    text-align: center;
}

.packs__stack {
    width: 100%;
    padding-top: 6px;
}

/* Кнопка PvP на главной занимает только оставшееся место, а не высоту всего окна. */
.home .pvp-start {
    flex: 1 1 0;
    min-height: 0;
    height: auto;
    margin-top: 1rem;
    width: 100%;
}

.home .pvp-start__circle {
    height: min(100%, 360px);
}

/* ---- Вход в игру ---- */

.auth {
    position: relative;
    min-height:100vh;min-height:100svh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    padding: 4rem 1rem 2rem;
    box-sizing: border-box;
    overflow-x: hidden;
    overflow-y: auto;
    height:100vh;height:100svh;
    color: #fff;
}

@supports (height: 100dvh) {
    .auth {
        min-height: 100dvh;
        height: 100dvh;
    }
}

.auth__lang {
    top: 1rem;
}

.auth__sky {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

@keyframes auth-fall {
    from { transform:translateY(-15vh) rotate(0deg);transform:translateY(-15svh) rotate(0deg); }
    to { transform:translateY(115vh) rotate(360deg);transform:translateY(115svh) rotate(360deg); }
}

.auth__cap {
    position: absolute;
    top: 0;
    left: var(--x);
    width: var(--s);
    border-radius: 50%;
    opacity: .35;
    filter: blur(.3px) drop-shadow(0 6px 8px #0008);
    animation: auth-fall var(--d) linear var(--delay) infinite;
}

.auth__hero {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

@keyframes auth-logo-in {
    0% { opacity: 0; transform: scale(.4) rotate(-30deg); }
    70% { opacity: 1; transform: scale(1.08) rotate(4deg); }
    100% { transform: scale(1) rotate(0); }
}

@keyframes auth-logo-float {
    50% { translate: 0 -8px; }
}

.auth__logo {
    width: min(200px, 48vw);
    filter: drop-shadow(0 14px 24px #000a);
    animation: auth-logo-in .8s cubic-bezier(.2, .8, .3, 1.2) both, auth-logo-float 4s ease-in-out .8s infinite;
}

.auth__title {
    margin: 1rem 0 .4rem;
    font-size: 30px;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -.5px;
    text-transform: uppercase;
    text-shadow: 0 4px 0 #ff4740, 0 8px 18px #000a;
    animation: pc-rise .6s cubic-bezier(.2, .7, .2, 1) .25s backwards;
}

.auth__subtitle {
    margin: 0;
    max-width: 22rem;
    color: #ffffffb3;
    line-height: 1.4;
    animation: pc-rise .6s cubic-bezier(.2, .7, .2, 1) .35s backwards;
}

.auth__card {
    position: relative;
    width: 100%;
    max-width: 24rem;
    padding: 1.25rem;
    box-sizing: border-box;
    border-radius: 24px;
    background: #1c1c1ee6;
    border: 1px solid #ffffff1f;
    box-shadow: 0 20px 50px #000b;
    backdrop-filter: blur(10px);
    text-align: left;
    animation: pc-rise .6s cubic-bezier(.2, .7, .2, 1) .45s backwards;
}

.auth__form {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.auth__label {
    font-weight: 700;
    font-size: 15px;
}

.auth__field {
    display: flex;
    align-items: center;
    gap: .4rem;
    padding: 0 1rem;
    border-radius: 14px;
    background: #ffffff12;
    border: 2px solid #ffffff1f;
    transition: border-color .2s, background .2s, box-shadow .2s;
}

.auth__field:focus-within {
    border-color: #ff4740;
    background: #ffffff1a;
    box-shadow: 0 0 0 4px #ff474033;
}

.auth__at {
    color: #ffffff80;
    font-weight: 700;
    font-size: 18px;
}

.auth__input {
    flex: 1;
    min-width: 0;
    padding: 14px 0;
    border: 0;
    outline: none;
    background: transparent;
    color: #fff;
    font: inherit;
    font-size: 18px;
    font-weight: 600;
}

.auth__input::placeholder {
    color: #ffffff4d;
}

.auth__hint {
    color: #ffffff80;
    font-size: 12px;
    margin-bottom: .5rem;
}

.auth__play {
    font-size: 20px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .5px;
    box-shadow: 0 8px 20px #ff474066;
}

.auth__gift {
    text-align: center;
    color: #ffe14d;
    font-size: 13px;
    font-weight: 600;
    margin-top: .25rem;
}

.auth__restore {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #ffffff1a;
}

.auth__restore summary {
    color: #ffffffb3;
    font-size: 14px;
    text-align: center;
    list-style: none;
    margin-bottom: .75rem;
}

.auth__restore summary::-webkit-details-marker {
    display: none;
}

.auth__restore summary:hover {
    color: #fff;
}

.auth__restore[open] summary {
    color: #fff;
}

/* Код игрока в профиле рейтинга. */
.player-code {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: -.25rem 1rem 1rem;
    padding: .6rem .9rem;
    border-radius: 14px;
    background: #ffffff12;
    color: #ffffffb3;
    font-size: 13px;
}

.player-code__value {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: ui-monospace, monospace;
    color: #fff;
}

.player-code__copy {
    padding: 6px 12px;
    border-radius: 42px;
    background: #ff4740;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}

/* Рюкзак: полоса заполнения. */
.idle-bar {
    --idle-bar-h: 26px;
    position: relative;
    height: var(--idle-bar-h);
    margin-bottom: 1.5rem;
    border-radius: 999px;
    background: #ffffff1f;
    box-shadow: inset 0 2px 4px #0000004d;
    overflow: hidden;
}

.idle-bar__fill {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(180deg, #5fe04a, #2ea81a);
    box-shadow: inset 0 -3px 0 #00000026, inset 0 2px 0 #ffffff4d;
    transition: width .5s ease-in-out;
}

.idle-bar__percent {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 13px;
    font-weight: 700;
    text-shadow: 0 1px 2px #00000080;
}

.idle--full .idle-bar__fill {
    background: linear-gradient(180deg, #ffe066, #f0a500);
}

/* Открытие пака: свечение фишки зависит от крутости, как и в коллекции (+0…+3 не светятся). */
.pack-cap::after {
    background: var(--rare, transparent);
    box-shadow: none;
    transform: scale(calc(.85 + var(--glow, 0) * .35));
}

.pack-cap.flip::after {
    opacity: var(--glow, 0);
}

/* Прокрутка колесом: вложенные списки фишек (сетки внутри .profile и т.п.) от свечения
   и увеличения при наведении переполняются на пару пикселей и становятся «прокручиваемыми».
   С глобальным overscroll-behavior: contain они забирали колесо себе, и страница стояла.
   Внутри игры прокрутка передаётся дальше, основному списку. */
#root * {
    overscroll-behavior: auto;
}

.profile__caps-list {
    overflow-y: visible;
    overflow-x: visible;
}

.caps-empty {
    padding: 3rem 1rem;
    text-align: center;
    color: #ffffffb2;
}

/* Варианты сортировки — ссылки: выглядят как строки списка, выбранный отмечен. */
a.select__option {
    display: block;
    color: #fff;
    text-decoration: none;
    text-align: center;
}

a.select__option:hover {
    background: #ffffff0d;
}

.select__option--active, a.select__option--active {
    color: #ffd84d;
    font-weight: 600;
}

/* Ставка: правило честной игры — та же крутость, что у фишек игры. */
.cap-select__rule {
    margin: .25rem 0 .75rem;
    padding: .6rem .9rem;
    border-radius: 12px;
    background: #ffd84d1a;
    color: #ffd84d;
    font-size: 13px;
    line-height: 17px;
    text-align: center;
}

/* Ежедневно: карточки (награда дня и задания) одна под другой, страница прокручивается вниз. */
.tasks {
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
    overflow-x: hidden;
    overflow-y: auto;
}

/* Отступ под последней карточкой — внутри прокрутки, высоту страницы он не меняет
   (иначе нижнее меню здесь стоит выше, чем на остальных страницах). */
.tasks .tasks__item:last-child {
    margin-bottom: 1rem;
}

.tasks .tasks__item {
    flex: 0 0 auto;
    max-height: none;
    overflow: visible;
}

/* Открытие пака: свечение заметно с +1 и растёт с каждой ступенью крутости
   (цвет — как в коллекции: голубой, синий, красный, на +19 фиолетовый, на +20 красный). +0 не светится. */
.pack__open-cap-rare-1 { --lvl: 1; --rare: #97b1ff; }
.pack__open-cap-rare-2 { --lvl: 2; --rare: #97b1ff; }
.pack__open-cap-rare-3 { --lvl: 3; --rare: #97b1ff; }
.pack__open-cap-rare-4 { --lvl: 4; }
.pack__open-cap-rare-5 { --lvl: 5; }
.pack__open-cap-rare-6 { --lvl: 6; }
.pack__open-cap-rare-7 { --lvl: 7; }
.pack__open-cap-rare-8 { --lvl: 8; }
.pack__open-cap-rare-9 { --lvl: 9; }
.pack__open-cap-rare-10 { --lvl: 10; }
.pack__open-cap-rare-11 { --lvl: 11; }
.pack__open-cap-rare-12 { --lvl: 12; }
.pack__open-cap-rare-13 { --lvl: 13; }
.pack__open-cap-rare-14 { --lvl: 14; }
.pack__open-cap-rare-15 { --lvl: 15; }
.pack__open-cap-rare-16 { --lvl: 16; }
.pack__open-cap-rare-17 { --lvl: 17; }
.pack__open-cap-rare-18 { --lvl: 18; }
.pack__open-cap-rare-19 { --lvl: 19; }
.pack__open-cap-rare-20 { --lvl: 20; }



.pack-cap.flip::after {
    opacity: min(1, calc(var(--lvl, 0) * .12 + .2 * min(1, var(--lvl, 0))));
}

.pack-cap.flip .pack-cap__face--back {
    box-shadow: none;
}

/* Круг PvP: ссылка растянута на всё свободное место, но нажимается и подсвечивается
   только сам круг. Мечи и надпись, выходящие за круг, кликов не ловят. */
.pvp-start {
    pointer-events: none;
}

.pvp-start__circle {
    pointer-events: auto;
    border-radius: 50%;
    cursor: pointer;
}

.pvp-start__circle > * {
    pointer-events: none;
}

/* ---- Аренда вещей друзьям ---- */

.rent {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding: 1rem 1rem 1.25rem;
    text-align: center;
}

.rent__header {
    font-size: 24px;
    font-weight: 800;
    line-height: 29px;
}

.rent__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .25rem;
}

.rent__item-picture {
    position: relative;
    width: 128px;
    height: 128px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: radial-gradient(circle, #ffffff26, #ffffff00 70%);
}

.rent__item-image {
    width: 112px;
    height: 112px;
    filter: drop-shadow(0 6px 10px #00000066);
    transition: transform .3s, opacity .3s, filter .3s;
}

.rent--rented .rent__item-image {
    opacity: .35;
    filter: grayscale(.8) drop-shadow(0 6px 10px #00000066);
    transform: scale(.9);
}

.rent--returned .rent__item-image {
    animation: rent-bounce 1.2s ease-in-out infinite;
}

@keyframes rent-bounce {
    0%, 100% { transform: translateY(0) rotate(0); }
    50% { transform: translateY(-6px) rotate(-3deg); }
}

.rent__away {
    position: absolute;
    bottom: 10px;
    padding: 2px 10px;
    border-radius: 999px;
    background: #ffd84d;
    color: #2a1b00;
    font-size: 12px;
    font-weight: 700;
}

.rent__item-level {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #ffffff99;
}

.rent__item-name {
    font-size: 20px;
    font-weight: 800;
}

.rent__item-terms,
.rent__upgrade-terms {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    font-size: 14px;
    color: #ffffffcc;
}

.rent__item-terms img,
.rent__balance img,
.rent__upgrade-button img,
.packs__amount img {
    width: 18px;
    height: 18px;
    vertical-align: -3px;
    margin-right: .25rem;
}

.rent__status {
    font-size: 15px;
    line-height: 20px;
    color: #ffffffcc;
}

.rent__status--returned {
    color: #fff;
    font-weight: 600;
}

.rent__timer {
    font-size: 28px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: #ffd84d;
}

.rent__bar {
    margin-bottom: 0;
}

.rent__main {
    width: 100%;
}

.rent__main--collect:not([disabled]) {
    animation: pc-glow .9s ease-in-out infinite alternate;
}

.rent__upgrade {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .75rem;
    padding: .75rem;
    border-radius: 16px;
    background: #ffffff12;
    text-align: left;
}

.rent__upgrade-image {
    width: 48px;
    height: 48px;
}

.rent__upgrade-title {
    font-size: 15px;
    font-weight: 700;
}

.rent__upgrade-terms {
    justify-content: flex-start;
    font-size: 13px;
}

.rent__upgrade-details {
    display: contents;
}

.rent__upgrade-details summary {
    list-style: none;
    cursor: pointer;
    white-space: nowrap;
}

.rent__upgrade-details summary::-webkit-details-marker {
    display: none;
}

.rent__upgrade-contact {
    grid-column: 1 / -1;
    padding: .75rem;
    border-radius: 12px;
    background: #ffd84d1f;
    color: #ffd84d;
    font-size: 13px;
    line-height: 18px;
    animation: pc-fade-in .25s ease-out;
}

@keyframes pc-fade-in {
    from { opacity: 0; transform: translateY(-4px); }
}

.rent__shop-hint a {
    font-size: 13px;
    color: #9fd0ff;
    text-decoration: none;
}

/* Кнопка вещи на главной. */
.home__rent {
    display: inline-block;
}

.home__rent img {
    height: 80px;
    width: 80px;
    filter: drop-shadow(0 4px 6px #00000080);
    transition: transform .2s;
}

.home__rent:hover img {
    transform: scale(1.06) rotate(-3deg);
}

.home__rent--rented img {
    opacity: .45;
    filter: grayscale(.8);
}

.home__rent--returned img {
    animation: rent-bounce 1.2s ease-in-out infinite;
}

.home__rent-badge {
    position: absolute;
    left: 50%;
    bottom: -6px;
    transform: translateX(-50%);
    padding: 1px 8px;
    border-radius: 999px;
    background: #33bd1c;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
    box-shadow: 0 2px 4px #00000066;
}

.home__rent-badge:empty {
    display: none;
}

.home__rent--home .home__rent-badge {
    background: #ffd84d;
    color: #2a1b00;
}

/* Барахолка. */
.fleamarket {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 0 1rem 1rem;
    padding: .75rem 1rem;
    border-radius: 16px;
    background: linear-gradient(135deg, #3f9b3a40, #7a4a2440);
}

.fleamarket__image {
    width: 64px;
    height: 64px;
    flex: none;
}

.fleamarket__title {
    font-size: 20px;
    font-weight: 800;
}

.fleamarket__subtitle {
    font-size: 13px;
    color: #ffffffb2;
}

/* Подсказка о платной прокачке раскрывается по «Прокачать». */
.rent__upgrade-contact {
    display: none;
    text-align: left;
}

.rent__upgrade-toggle:checked ~ .rent__upgrade-contact {
    display: block;
}

.rent__upgrade-button {
    cursor: pointer;
    white-space: nowrap;
}

.rent__upgrade--max {
    display: block;
    text-align: center;
    font-weight: 700;
}

/* PvE: список уровней занимает место до нижнего меню (раньше считался от всей высоты окна
   и выталкивал меню за край экрана). */
.pve__wrapper {
    display: flex;
    flex-direction: column;
    height:calc(100vh - var(--navbar-height));height:calc(100svh - var(--navbar-height));
}

@supports (max-height: 99dvh) {
    .pve__wrapper {
        height: calc(100dvh - var(--navbar-height));
    }
}

.pve__wrapper .skeleton-wrapper {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.pve__wrapper .pve__levels {
    flex: 1 1 0;
    min-height: 0;
    height: auto;
    padding-bottom: 1rem;
}

/* Фильтр PvP: панель на всю ширину и высоту игры, а не узкой колонкой сбоку. */
.battle-filters {
    inset: 0;
    width: 100%;
    height: 100%;
    min-height:100vh;min-height:100svh;
}

.battle-filters .battle-filters__button {
    margin-top: auto;
}

/* Картинки вещей бывают разных пропорций (исходная VHS — PNG), вписываем без искажений. */
.home__rent img {
    width: auto;
    max-width: 96px;
    object-fit: contain;
}

.rent__item-image,
.rent__upgrade-image {
    object-fit: contain;
}

/* «Нет подходящих фишек» в сетке выбора занимает всю ширину, а не одну колонку. */
.cap-select__empty {
    grid-column: 1 / -1;
    justify-self: stretch;
    text-align: center;
    padding: .5rem 1rem 1.5rem;
}

/* Итог PvE: карточка по центру экрана, кнопки друг под другом на всю ширину. */
.pve-battle__result-wrapper.visible {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    box-sizing: border-box;
}

.pve-battle__result-wrapper .pve-battle__result {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: .75rem;
    width: 100%;
    max-width: 420px;
    margin: 0;
    padding: 2.5rem 1.5rem 1.5rem;
    box-sizing: border-box;
    transform: none;
}

.pve-battle__result-wrapper .pve-battle__result-title,
.pve-battle__result-wrapper .pve-battle__result-reward,
.pve-battle__result-wrapper .pve-battle__result-total {
    margin-bottom: 0;
}

.pve-battle__result-wrapper .pve-battle__result-total {
    margin-bottom: .75rem;
}

.pve-battle__result-wrapper .button {
    width: 100%;
    margin: 0;
    box-sizing: border-box;
    justify-content: center;
}

.pve-battle__result-wrapper .button-color-transparent {
    border: 1px solid #ffffff40;
    color: #ffffffcc;
}

/* ---- Доска почёта ---- */

.ladder {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem 1rem 0;
    height:calc(100vh - var(--navbar-height) - 1rem);height:calc(100svh - var(--navbar-height) - 1rem);
    box-sizing: content-box;
    overflow-y: auto;
    text-align: left;
}

@supports (max-height: 99dvh) {
    .ladder {
        height: calc(100dvh - var(--navbar-height) - 1rem);
    }
}

.ladder__header {
    text-align: center;
}

.ladder__title {
    font-size: 28px;
    font-weight: 900;
    letter-spacing: -.5px;
    color: #ffd84d;
    text-shadow: 3px 3px 0 #e8463c;
}

.ladder__subtitle {
    font-size: 14px;
    color: #ffffffb2;
}

.ladder__avatar {
    width: 40px;
    height: 40px;
    object-fit: contain;
    filter: drop-shadow(0 2px 3px #00000080);
}

.ladder__avatar--big {
    width: 56px;
    height: 56px;
}

.ladder__score {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.ladder__score img {
    width: 18px;
    height: 18px;
}

.ladder__medal {
    width: 32px;
    height: 32px;
}

.ladder__me {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .75rem 1rem;
    border-radius: 16px;
    background: linear-gradient(135deg, #ffffff26, #ffffff0d);
    border: 1px solid #ffffff26;
}

.ladder__me-info {
    flex: 1;
    min-width: 0;
}

.ladder__me-name {
    font-size: 18px;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ladder__me-place {
    display: flex;
    align-items: center;
    gap: .25rem;
    font-size: 24px;
    font-weight: 900;
    color: #ffd84d;
}

.ladder__list {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding-bottom: 1rem;
}

/* Пьедестал для тройки лидеров. */
.ladder__podium {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: end;
    gap: .5rem;
    margin: .5rem 0 .75rem;
    text-align: center;
}

.ladder__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .25rem;
    min-width: 0;
}

.ladder__step-avatar {
    position: relative;
}

.ladder__step-avatar .ladder__avatar {
    width: 56px;
    height: 56px;
}

.ladder__step--1 .ladder__step-avatar .ladder__avatar {
    width: 72px;
    height: 72px;
}

.ladder__step-avatar .ladder__medal {
    position: absolute;
    right: -12px;
    bottom: -6px;
}

.ladder__step-name {
    max-width: 100%;
    font-size: 13px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ladder__step .ladder__score {
    font-size: 13px;
}

.ladder__step-block {
    width: 100%;
    display: grid;
    place-items: center;
    border-radius: 12px 12px 4px 4px;
    font-size: 26px;
    font-weight: 900;
    color: #ffffffcc;
}

.ladder__step--1 .ladder__step-block { height: 72px; background: linear-gradient(#ffd84d66, #ffd84d1a); }
.ladder__step--2 .ladder__step-block { height: 52px; background: linear-gradient(#d0d6dd55, #d0d6dd14); }
.ladder__step--3 .ladder__step-block { height: 38px; background: linear-gradient(#f0b27a55, #f0b27a14); }

.ladder__step--me .ladder__step-name {
    color: #ffd84d;
}

.ladder__row {
    display: grid;
    grid-template-columns: 2.25rem 40px 1fr auto;
    align-items: center;
    gap: .75rem;
    padding: .5rem .75rem;
    border-radius: 14px;
    background: #ffffff0f;
}

.ladder__row--me {
    background: #ffd84d26;
    outline: 1px solid #ffd84d66;
}

.ladder__row-place {
    text-align: center;
    font-weight: 800;
    color: #ffffffb2;
}

.ladder__row-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
}

.ladder__empty {
    padding: 2rem 1rem;
    text-align: center;
    color: #ffffffb2;
}

/* ---- Судьба фишки после победы в PvP: +1, без изменений, порвалась ---- */

.cap-fate {
    position: absolute;
    inset: 0;
    z-index: 6;
    pointer-events: none;
}

.cap-fate__badge {
    position: absolute;
    top: 6px;
    left: 50%;
    transform: translateX(-50%);
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    white-space: nowrap;
    box-shadow: 0 3px 8px #00000080;
}

.cap-fate--upgrade .cap-fate__badge {
    background: linear-gradient(180deg, #5fe04a, #2ea81a);
    color: #fff;
}

.cap-fate--upgrade .cap-fate__badge::before {
    content: "▲ ";
}

.cap-fate--stay .cap-fate__badge {
    background: #4a4f57;
    color: #e6e8eb;
}

.cap-fate--break .cap-fate__badge {
    background: linear-gradient(180deg, #ff5a4d, #c2261b);
    color: #fff;
}

/* Порванная фишка: картинка разорвана на две половинки с рваным краем, края — светлый картон. */
.cap-tear {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
}

/* В щели между половинками — темнота, а не подложка фишки. */
.cap-tear::before {
    content: "";
    position: absolute;
    inset: 2%;
    border-radius: 50%;
    background: radial-gradient(#05090b, #121c21);
    box-shadow: inset 0 0 8px #000;
}

.cap-tear__half {
    position: absolute;
    inset: 0;
    filter: drop-shadow(0 0 1.5px #f3ead7) drop-shadow(0 2px 3px #000000b3);
}

.cap-tear__piece {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    filter: grayscale(.6) brightness(.75);
}

.cap-tear__half--left .cap-tear__piece {
    clip-path: polygon(0 0, 52% 0, 47% 9%, 54% 17%, 46% 26%, 55% 35%, 48% 44%, 53% 52%, 45% 61%, 54% 70%, 47% 79%, 52% 88%, 46% 100%, 0 100%);
}

.cap-tear__half--right .cap-tear__piece {
    clip-path: polygon(52% 0, 100% 0, 100% 100%, 46% 100%, 52% 88%, 47% 79%, 54% 70%, 45% 61%, 53% 52%, 48% 44%, 55% 35%, 46% 26%, 54% 17%, 47% 9%);
}

.cap-tear__half--left {
    transform: translate(-5%, 2%) rotate(-6deg);
    transform-origin: 30% 100%;
}

.cap-tear__half--right {
    transform: translate(5%, -1%) rotate(5deg);
    transform-origin: 70% 100%;
}

.cap__element-wrapper:has(.cap-fate--break):not(.fate-hidden) .cap__img {
    opacity: 0;
}

.cap__element-wrapper:has(.cap-fate--break):not(.fate-hidden) .cap__element {
    box-shadow: none;
}

/* Пока бой проигрывается, судьба спрятана. */
.fate-hidden .cap-fate,
.fate-hidden .cap-tear {
    display: none;
}

/* Анимации раскрытия судьбы. */
.fate-reveal .cap-fate__badge {
    animation: fate-badge .45s cubic-bezier(.2, 1.6, .4, 1) both;
}

@keyframes fate-badge {
    from { transform: translate(-50%, 10px) scale(.4); opacity: 0; }
}

.fate-upgrade-anim .cap__element {
    animation: fate-level-up .9s ease-out;
}

@keyframes fate-level-up {
    0% { transform: scale(1); filter: brightness(1); }
    30% { transform: scale(1.08); filter: brightness(1.8) drop-shadow(0 0 18px #ffe066); }
    100% { transform: scale(1); filter: brightness(1); }
}

.fate-upgrade-anim .cap__img-wrapper::after {
    content: "";
    position: absolute;
    inset: -10%;
    border-radius: 50%;
    border: 4px solid #ffe066;
    animation: fate-ring .8s ease-out forwards;
    pointer-events: none;
}

@keyframes fate-ring {
    from { transform: scale(.7); opacity: 1; }
    to { transform: scale(1.45); opacity: 0; }
}

.fate-stay-anim .cap__element {
    animation: fate-wobble .5s ease-in-out;
}

@keyframes fate-wobble {
    25% { transform: rotate(-3deg); }
    75% { transform: rotate(3deg); }
}

/* Фишку тянут в стороны: она дрожит и вытягивается… */
.fate-break-strain .cap__element {
    animation: fate-strain .55s ease-in;
}

@keyframes fate-strain {
    0% { transform: scale(1); }
    20% { transform: scaleX(1.03) translateX(-2px) rotate(-1deg); }
    40% { transform: scaleX(1.05) translateX(2px) rotate(1deg); }
    60% { transform: scaleX(1.07) translateX(-2px) rotate(-1.5deg); }
    80% { transform: scaleX(1.09) translateX(2px) rotate(1.5deg); }
    100% { transform: scaleX(1.1); }
}

/* …и рвётся: половинки отлетают друг от друга с рывком. */
.fate-break-tearing .cap-tear__half {
    animation: fate-tear-left .7s cubic-bezier(.2, 1.4, .4, 1) both;
}

.fate-break-tearing .cap-tear__half--right {
    animation-name: fate-tear-right;
}

@keyframes fate-tear-left {
    from { transform: none; }
}

@keyframes fate-tear-right {
    from { transform: none; }
}

.fate-break-tearing .cap__element {
    animation: fate-tear-jolt .35s ease-out;
}

@keyframes fate-tear-jolt {
    0% { transform: scaleX(1.1); }
    40% { transform: scaleX(.96) translateY(2px); }
    100% { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .fate-reveal .cap-fate__badge,
    .fate-upgrade-anim .cap__element,
    .fate-stay-anim .cap__element,
    .fate-break-strain .cap__element,
    .fate-break-tearing .cap__element,
    .fate-break-tearing .cap-tear__half {
        animation: none;
    }
}

/* Шансы фишки при победе в PvP. */
.cap-chances {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
}

.cap-chances__item {
    padding: 1px 8px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
}

.cap-chances__item--upgrade { background: #33bd1c33; color: #6fe35a; }
.cap-chances__item--stay { background: #ffffff1a; color: #e6e8eb; }
.cap-chances__item--break { background: #ff5a4d33; color: #ff8a80; }

/* Шапка барахолки: заголовок и подпись выровнены по левому краю рядом с иконкой. */
.fleamarket__text {
    flex: 1;
    min-width: 0;
    text-align: left;
}

.cap-chances__item--max { background: #ff343440; color: #ffc2c2; }

/* Выигранная фишка: зелёная галочка на месте, где у проигранной красный крестик. */
.cap__won {
    position: absolute;
    left: 50%;
    top: 42%;
    z-index: 2;
    width: 15%;
    height: 15%;
    transform: translate(-50%, -50%);
    background: url("icons/check-e6d8ac2785401939278855773f2acc3b.svg") center / contain no-repeat;
    filter: drop-shadow(0 2px 3px #00000099);
}

/* Бой: фишку бьют об пол — она подлетает, крутится вокруг своих осей и падает с отскоком. */
.caps-vs-list__row .cap__element {
    perspective: 700px;
}

.pc-flip {
    animation: pc-flip .9s cubic-bezier(.3, .1, .3, 1) var(--flip-delay, 0ms) both;
    transform-style: preserve-3d;
    backface-visibility: visible;
}

@keyframes pc-flip {
    0% {
        transform: translateY(0) rotateX(0) rotateY(0) scale(1);
    }
    12% {
        transform: translateY(6%) rotateX(0) rotateY(0) scale(1.04, .9);
    }
    45% {
        transform: translateY(-38%) rotateX(calc(var(--flip-turns, 2) * 180deg)) rotateY(var(--flip-tilt, 0deg)) scale(1.08);
    }
    80% {
        transform: translateY(0) rotateX(var(--flip-end, 720deg)) rotateY(0) scale(1);
    }
    88% {
        transform: translateY(0) rotateX(var(--flip-end, 720deg)) scale(1.06, .92);
    }
    94% {
        transform: translateY(-4%) rotateX(var(--flip-end, 720deg)) scale(.98, 1.03);
    }
    100% {
        transform: translateY(0) rotateX(var(--flip-end, 720deg)) scale(1);
    }
}

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

/* Оборот фишки во время подлёта — логотип игры. Лицевая сторона и оборот видны каждая со своей стороны. */
.pc-cap-back {
    display: none;
}

.pc-flip > * {
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.pc-flip > .pc-cap-back {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    transform: rotateX(180deg);
}

/* Проигравшая фишка лежит рубашкой вверх (без 3D: серый фильтр проигравшей сплющил бы оборот). */
.pc-face-down > :not(.pc-cap-back) {
    visibility: hidden;
}

.pc-face-down > .pc-cap-back {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}

.cap__element--removed .cap__img-wrapper.pc-face-down {
    filter: none !important;
}

/* Переворот обратно: рубашка сжимается в ребро… */
.pc-unflip-out {
    animation: pc-unflip-out .26s ease-in forwards;
}

@keyframes pc-unflip-out {
    to { transform: scaleX(0) scaleY(1.06); filter: brightness(1.8); }
}

/* …и лицо раскрывается с отскоком, вспышкой и кольцом света. */
.pc-unflip-in {
    animation: pc-unflip-in .7s cubic-bezier(.2, .9, .3, 1.3) both;
}

@keyframes pc-unflip-in {
    0% { transform: scaleX(0) scaleY(1.06); box-shadow: 0 0 0 0 #fff0; }
    35% { transform: scaleX(1.12) scaleY(.94); box-shadow: 0 0 22px 8px #ffffffcc, 0 0 0 0 #ffd84a; }
    60% { transform: scale(.97); box-shadow: 0 0 10px 2px #ffffff66, 0 0 0 10px #ffd84a00; }
    100% { transform: scale(1); box-shadow: 0 0 0 0 #fff0, 0 0 0 16px #ffd84a00; }
}

@media (prefers-reduced-motion: reduce) {
    .pc-unflip-out, .pc-unflip-in {
        animation: none;
    }
}

/* ---- Уведомления-ссылки: стопка вверху экрана, на любой странице игры ---- */

.pc-notices {
    position: fixed;
    top: max(12px, env(safe-area-inset-top));
    left: 50%;
    z-index: 20002;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    width: calc(min(var(--screen-width), 100vw) - 2rem);
    transform: translateX(-50%);
    pointer-events: none;
}

.pc-notice {
    position: relative;
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: 12px 40px 12px 14px;
    border-radius: 16px;
    border: 1px solid #ffffff24;
    background: #2c2a2cf2;
    backdrop-filter: blur(8px);
    box-shadow: 0 10px 30px #000a;
    color: #fff;
    text-align: left;
    text-decoration: none;
    pointer-events: auto;
    animation: pc-notice-in .35s cubic-bezier(.2, 1.2, .4, 1);
    transition: opacity .3s, transform .3s;
}

.pc-notice:hover {
    border-color: #ffd84d80;
}

.pc-notice--accepted { border-left: 4px solid #33bd1c; }
.pc-notice--bets { border-left: 4px solid #ffd84d; }
.pc-notice--rejected { border-left: 4px solid #ff5a4d; }
.pc-notice--rent { border-left: 4px solid #9fd0ff; }

.pc-notice__icon {
    font-size: 22px;
}

.pc-notice__text {
    flex: 1;
    font-weight: 600;
    line-height: 1.3;
}

.pc-notice__arrow {
    color: #ffd84d;
    font-weight: 800;
}

.pc-notice__close {
    position: absolute;
    top: 4px;
    right: 6px;
    padding: 2px 6px;
    border: 0;
    background: none;
    color: #ffffff80;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
}

.pc-notice--leaving {
    opacity: 0;
    transform: translateY(-16px);
}

@keyframes pc-notice-in {
    from { opacity: 0; transform: translateY(-20px) scale(.96); }
}

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

/* Остаток паков на барахолке. */
.shop__left {
    margin: -.5rem 0 1rem;
    padding: 0 1rem;
    text-align: left;
    font-size: 14px;
    color: #ffd84d;
}

.shop__left--none {
    color: #ff8a80;
}

/* Низ главной: счётчик фишек всегда по центру, кассета и альбом — на одинаковом расстоянии
   от его краёв, сколько бы цифр ни было в числе. */
.home__bottom .home__vhs {
    left: auto;
    right: calc(100% + 1.25rem);
}

.home__bottom .home__album {
    left: calc(100% + 1.25rem);
}

.home__bottom .home__profile > span {
    font-variant-numeric: tabular-nums;
}

/* ---- «Бита»: стол, стопка, бита, лотки, шкала удара ---- */

.bita {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    /* body не прокручивается, поэтому Бита — сама себе область прокрутки: низ всегда можно докрутить. */
    height:100vh;height:100svh;
    overflow-y: auto;
    overscroll-behavior: contain;
    touch-action: pan-y;
    padding: 1rem 1rem calc(1.5rem + env(safe-area-inset-bottom));
    box-sizing: border-box;
}

/* iOS-браузеры (Safari 26, Яндекс, Chrome) кладут свою нижнюю панель поверх страницы — оставляем под неё место. */
@supports (-webkit-touch-callout: none) {
    .bita {
        padding-bottom: calc(6rem + env(safe-area-inset-bottom));
    }
}

.bita__header {
    padding-left: 3.25rem;
    min-height: 2.5rem;
    text-align: left;
}

.bita__title {
    font-size: 26px;
    font-weight: 900;
    color: #ffd84d;
    text-shadow: 3px 3px 0 #e8463c;
}

.bita__subtitle {
    font-size: 14px;
    color: #ffffffb2;
}

.bita-tray {
    padding: .5rem .75rem;
    border-radius: 16px;
    background: #ffffff0f;
    text-align: left;
}

.bita-tray--player {
    background: #33bd1c1f;
}

.bita-tray__label {
    font-size: 13px;
    font-weight: 700;
    color: #ffffffcc;
}

.bita-tray__label span {
    display: inline-block;
    min-width: 1.5em;
    margin-left: .25rem;
    padding: 0 6px;
    border-radius: 999px;
    background: #ffffff26;
    text-align: center;
}

.bita-tray__caps {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-height: 44px;
    margin-top: .35rem;
}

.bita-tray__cap {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    box-shadow: 0 2px 4px #00000080;
}

.bita-tray__cap--prize {
    outline: 2px solid #ffd84d;
    outline-offset: 1px;
}

/* Стол со стопкой. */
.bita__table {
    position: relative;
    flex: 1;
    min-height: 240px;
    display: grid;
    place-items: center;
    border-radius: 24px;
    background: radial-gradient(ellipse at center, #3b2a1a 0%, #2a1d12 60%, #1c140c 100%);
    box-shadow: inset 0 6px 18px #000a;
    overflow: hidden;
}

.bita__pile {
    position: relative;
    width: 120px;
    height: 120px;
}

.bita-cap {
    position: absolute;
    inset: 0;
    perspective: 700px;
    transform: translate(var(--dx), calc(var(--dy) - var(--i) * 3px)) rotate(var(--rot));
    z-index: calc(10 + var(--i));
}

.bita-cap__inner {
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    transform: rotateX(180deg);
}

.bita-cap__face {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    box-shadow: 0 3px 6px #000a;
}

.bita-cap__face--back {
    transform: rotateX(180deg);
}

.bita__pile.is-hit .bita-cap {
    animation: bita-jolt .35s ease-out;
}

@keyframes bita-jolt {
    40% { transform: translate(var(--dx), calc(var(--dy) - var(--i) * 3px + 4px)) rotate(var(--rot)) scale(1.03, .94); }
}

/* Перевернулась: подлёт, кручение, приземление лицом вверх. */
.bita-cap.is-flipping {
    z-index: 100;
}

.bita-cap.is-flipping .bita-cap__inner {
    animation: bita-flip .8s cubic-bezier(.3, .1, .3, 1) forwards;
}

@keyframes bita-flip {
    0% { transform: translateY(0) rotateX(180deg) scale(1); }
    45% { transform: translateY(-90px) rotateX(540deg) rotateY(25deg) scale(1.12); }
    85% { transform: translateY(0) rotateX(720deg) scale(1); }
    93% { transform: translateY(-6px) rotateX(720deg) scale(1.02); }
    100% { transform: translateY(0) rotateX(720deg) scale(1); }
}

/* Бита падает на стопку. */
.bita__slammer {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 200;
    width: 110px;
    height: 110px;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, -260%) scale(1.2);
    filter: drop-shadow(0 12px 12px #000c);
}

.bita__slammer.is-slamming {
    animation: bita-slam .5s cubic-bezier(.6, 0, .9, .4) forwards;
}

@keyframes bita-slam {
    0% { opacity: 1; transform: translate(-50%, -260%) scale(1.25) rotate(-25deg); }
    70% { opacity: 1; transform: translate(-50%, -55%) scale(1) rotate(0); }
    80% { opacity: 1; transform: translate(-50%, -48%) scale(1.04, .9); }
    100% { opacity: 0; transform: translate(-50%, -140%) scale(1.1) rotate(10deg); }
}

.bita__accuracy {
    position: absolute;
    top: .75rem;
    right: .75rem;
    /* «Точно в центр! Рука дрогнула: 87%» — на узком столе переносится, а не вылезает за край. */
    max-width: calc(100% - 1.5rem);
    padding: 2px 10px;
    border-radius: 12px;
    text-align: right;
    background: #0008;
    font-size: 13px;
    font-weight: 700;
    color: #ffd84d;
}

.bita__accuracy:empty {
    display: none;
}

/* Шкала удара. */
.bita__controls {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.bita__status {
    min-height: 1.4em;
    font-weight: 700;
}

.bita-meter {
    position: relative;
    height: 28px;
    border-radius: 999px;
    background: linear-gradient(90deg, #e8463c 0%, #ffd84d 30%, #33bd1c 46%, #33bd1c 54%, #ffd84d 70%, #e8463c 100%);
    box-shadow: inset 0 2px 6px #0008;
    cursor: pointer;
}

.bita-meter__zone {
    position: absolute;
    top: -3px;
    bottom: -3px;
    left: 46%;
    width: 8%;
    border: 2px solid #fff;
    border-radius: 6px;
    box-shadow: 0 0 10px #ffffff80;
}

.bita-meter__marker {
    position: absolute;
    top: -8px;
    bottom: -8px;
    left: 0;
    width: 6px;
    margin-left: -3px;
    border-radius: 3px;
    background: #fff;
    box-shadow: 0 0 0 2px #2a1b3d, 0 2px 6px #000a;
}

.bita-meter.is-stopped .bita-meter__marker {
    background: #ffd84d;
}

.bita__hit {
    width: 100%;
}

/* Итог партии. */
.bita-result {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding: 1.25rem;
    border-radius: 20px;
    background: #202123;
    text-align: center;
}

.bita-result__title {
    font-size: 28px;
    font-weight: 900;
    color: #ffcd00;
}

.bita-result__text {
    color: #ffffffcc;
}

.bita-result__caps {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}

.bita-result__buttons {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.cap-select__rule--intro {
    text-align: left;
    color: #ffffffd9;
    background: #ffffff14;
}

@media (prefers-reduced-motion: reduce) {
    .bita-cap.is-flipping .bita-cap__inner { animation-duration: .01s; }
    .bita__slammer.is-slamming { animation-duration: .01s; }
}

/* Бита — чёрная фишка: на тёмной кнопке и столе её выделяет светлый ободок. */
.home__bita-icon {
    border-radius: 50%;
    box-shadow: 0 0 0 1.5px #ffffff59;
}

.bita__slammer {
    border-radius: 50%;
    box-shadow: 0 0 0 2px #ffffff40;
}

/* «Бита»: лобби, остаток партий, итог с наградой. */
.bita--lobby {
    align-items: stretch;
    text-align: center;
}

.bita-lobby__slammer {
    width: 160px;
    height: 160px;
    margin: .5rem auto;
    border-radius: 50%;
    box-shadow: 0 0 0 2px #ffffff40, 0 12px 24px #000a;
}

.bita-lobby__rules {
    padding: 1rem;
    border-radius: 16px;
    background: #ffffff14;
    text-align: left;
    line-height: 1.45;
    color: #ffffffd9;
}

.bita-lobby__left {
    font-weight: 700;
    color: #ffd84d;
}

.bita-lobby__left--none {
    color: #ff8a80;
}

.bita-result__reward {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    font-size: 22px;
    font-weight: 800;
    color: #6fe35a;
}

.bita-result__reward img {
    width: 28px;
    height: 28px;
}

.bita-tray__cap--bot {
    filter: saturate(.85);
}

.home__bita-left {
    padding: 0 6px;
    border-radius: 999px;
    background: #33bd1c;
    font-size: 11px;
}

.home__bita-left--none {
    background: #ffffff33;
}

/* «Бита» на 30 фишек: стопка плотнее, фишки в лотках меньше. */
.bita-cap {
    transform: translate(var(--dx), calc(var(--dy) - var(--i) * 1.2px)) rotate(var(--rot));
}

@keyframes bita-jolt {
    40% { transform: translate(var(--dx), calc(var(--dy) - var(--i) * 1.2px + 4px)) rotate(var(--rot)) scale(1.03, .94); }
}

.bita-tray__caps {
    gap: 4px;
}

.bita-tray__cap {
    width: 30px;
    height: 30px;
}

.bita-result__bonus {
    padding: .5rem .75rem;
    border-radius: 12px;
    background: #ffd84d26;
    color: #ffd84d;
    font-weight: 700;
}

/* Партия окончена: пустой стол не нужен — итог и кнопки сразу видны на экране. */
.bita--finished .bita__table {
    display: none;
}

/* Telegram: пока проверяем вход, форму не показываем — знакомого игрока сразу перекинет в игру. */
.auth--telegram .auth__card {
    visibility: hidden;
}

/* ---- Обучение новичка: пузырь подсказки и подсветка нужной кнопки ---- */

.tutorial {
    position: fixed;
    z-index: 90;
    left: 50%;
    bottom: calc(var(--navbar-height) + .25rem + env(safe-area-inset-bottom));
    transform: translateX(-50%);
    width: min(calc(100% - 2rem), calc(var(--screen-width) - 2rem));
    box-sizing: border-box;
    padding: .85rem 1rem 1rem;
    border-radius: 20px;
    background: #fff8d6;
    color: #2a1d12;
    text-align: left;
    box-shadow: 0 10px 30px #000a, 0 0 0 3px #ffd84d;
    animation: tutorial-in .45s cubic-bezier(.2, .9, .3, 1.3) both;
}

.tutorial--top {
    bottom: auto;
    /* Ниже кнопки «Назад» в левом верхнем углу. */
    top: calc(4.25rem + env(safe-area-inset-top));
}

.tutorial__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .35rem;
}

.tutorial__step {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #e8463c;
}

.tutorial__skip {
    border: 0;
    background: none;
    padding: .25rem 0;
    font: inherit;
    font-size: 12px;
    color: #2a1d1299;
    text-decoration: underline;
    cursor: pointer;
}

.tutorial__text {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
}

.tutorial__next {
    margin-top: .75rem;
    width: 100%;
}

@keyframes tutorial-in {
    from { opacity: 0; transform: translate(-50%, 1.5rem) scale(.96); }
    to { opacity: 1; transform: translate(-50%, 0) scale(1); }
}

.tutorial-spot {
    /* Позиционирование не трогаем: часть целей (кассета, пак) стоит абсолютно. */
    z-index: 3;
    border-radius: 18px;
    animation: tutorial-pulse 1.4s ease-out infinite;
}

.tutorial-spot--round {
    animation: none;
}

.tutorial-spot--round .pvp-start__circle {
    animation: tutorial-pulse 1.4s ease-out infinite;
}

@keyframes tutorial-pulse {
    0% { box-shadow: 0 0 0 0 #ffd84dcc; }
    70% { box-shadow: 0 0 0 14px #ffd84d00; }
    100% { box-shadow: 0 0 0 0 #ffd84d00; }
}

@media (prefers-reduced-motion: reduce) {
    .tutorial,
    .tutorial-spot,
    .tutorial-spot--round .pvp-start__circle {
        animation: none;
    }

    .tutorial-spot {
        box-shadow: 0 0 0 4px #ffd84d;
    }
}

/* «Бита»: тренировочная партия новичка. */
.bita__training {
    display: inline-block;
    margin-top: .3rem;
    padding: 2px 10px;
    border-radius: 999px;
    background: #33bd1c33;
    color: #8ff07a;
    font-size: 12px;
    font-weight: 700;
}

/* Сортировка фишек: обычный элемент строки, а не абсолют поверх списка — длинные подписи не наезжают на фишки. */
.sort-toggle {
    display: inline-flex;
    flex: none;
    align-items: center;
    gap: 4px;
    margin-left: auto;
    padding: 4px 0;
    border: 0;
    background: none;
    color: #fefefe99;
    font: inherit;
    font-size: 14px;
    line-height: 18px;
    white-space: nowrap;
    cursor: pointer;
}

.sort-toggle img {
    width: 18px;
    height: 18px;
}

.sort-row {
    display: flex;
    margin-bottom: 4px;
}

/* Шапка экранов выбора фишек: заголовок слева, сортировка справа. */
.pick-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem .75rem;
    align-self: stretch;
    margin: 1rem 1rem .25rem;
}

.pick-head__title {
    flex: 1 1 auto;
    margin: 0;
    color: #fff;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.2;
    text-align: left;
}

/* «Бита»: цу-е-фа перед партией — кто бьёт первым. Рука бота сверху (к игроку), рука игрока снизу. */
.bita-rps {
    position: absolute;
    inset: 0;
    /* Выше стопки: у фишек z-index 10 + номер в стопке. */
    z-index: 100;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    padding: .75rem 1rem;
    background: radial-gradient(ellipse at center, #2a1d12ee 0%, #1c140cf2 75%);
    border-radius: inherit;
    animation: bita-rps-in .3s ease-out both;
}

.bita-rps.is-leaving {
    animation: bita-rps-out .35s ease-in both;
}

.bita-rps__side {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .15rem;
    transition: transform .3s, opacity .3s, filter .3s;
}

.bita-rps__side--bot {
    flex-direction: column-reverse;
}

.bita-rps__hand {
    display: block;
    font-size: 56px;
    line-height: 1;
    filter: drop-shadow(0 4px 6px #000a);
}

.bita-rps__side--bot .bita-rps__hand {
    transform: rotate(180deg);
}

.bita-rps__name {
    font-size: 12px;
    font-weight: 700;
    color: #ffffffb3;
}

.bita-rps__call {
    min-height: 1.6em;
    font-size: 22px;
    font-weight: 900;
    color: #ffd84d;
    text-shadow: 2px 2px 0 #e8463c;
    text-align: center;
}

.bita-rps.is-shaking .bita-rps__side--player .bita-rps__hand {
    animation: bita-rps-shake-up .4s ease-in-out;
}

.bita-rps.is-shaking .bita-rps__side--bot .bita-rps__hand {
    animation: bita-rps-shake-down .4s ease-in-out;
}

.bita-rps.is-shown .bita-rps__hand {
    animation: bita-rps-pop .25s ease-out;
}

.bita-rps__side.is-winner {
    transform: scale(1.18);
}

.bita-rps__side.is-winner .bita-rps__hand {
    filter: drop-shadow(0 0 14px #ffd84d) drop-shadow(0 4px 6px #000a);
}

.bita-rps__side.is-loser {
    opacity: .45;
    filter: grayscale(.7);
}

.bita-rps.is-draw .bita-rps__call {
    color: #fff;
}

@keyframes bita-rps-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes bita-rps-out { to { opacity: 0; transform: scale(.96); } }
@keyframes bita-rps-shake-up {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-22px) rotate(-8deg); }
}
@keyframes bita-rps-shake-down {
    0%, 100% { transform: rotate(180deg) translateY(0); }
    50% { transform: rotate(180deg) translateY(-22px) rotate(-8deg); }
}
@keyframes bita-rps-pop {
    from { scale: .6; }
    to { scale: 1; }
}


/* Скидка на пакет паков: зелёный «взрыв», процент считается из цены (шаблон барахолки). */
span.packs__discount {
    display: grid;
    place-items: center;
    aspect-ratio: 131 / 113;
    height: auto;
    background: #2fb41f;
    clip-path: polygon(100.0% 50.0%, 90.6% 55.0%, 98.0% 62.1%, 87.3% 64.6%, 92.1% 73.2%, 81.0% 73.1%, 82.7% 82.5%, 72.2% 79.7%, 70.8% 89.1%, 61.6% 83.8%, 57.1% 92.6%, 50.0% 85.3%, 42.9% 92.6%, 38.4% 83.8%, 29.2% 89.1%, 27.8% 79.7%, 17.3% 82.5%, 19.0% 73.1%, 7.9% 73.2%, 12.7% 64.6%, 2.0% 62.1%, 9.4% 55.0%, 0.0% 50.0%, 9.4% 45.0%, 2.0% 37.9%, 12.7% 35.4%, 7.9% 26.8%, 19.0% 26.9%, 17.3% 17.5%, 27.8% 20.3%, 29.2% 10.9%, 38.4% 16.2%, 42.9% 7.4%, 50.0% 14.7%, 57.1% 7.4%, 61.6% 16.2%, 70.8% 10.9%, 72.2% 20.3%, 82.7% 17.5%, 81.0% 26.9%, 92.1% 26.8%, 87.3% 35.4%, 98.0% 37.9%, 90.6% 45.0%);
    filter: drop-shadow(0 2px 3px #0008);
    color: #fff;
    font-size: clamp(16px, 5vw, 22px);
    font-weight: 900;
    font-style: italic;
    letter-spacing: -.02em;
    text-shadow: 0 1px 0 #1d7a12;
}

/* Свои фишки одного номера коллекции. */
.variant {
    box-sizing: border-box;
    width: 100%;
    padding: 56px 16px 24px;
    /* Во весь экран над нижней панелью, как список фишек: иначе панель «подпрыгивает» под короткий список. */
    height: calc(100vh - var(--navbar-height));
    height: calc(100svh - var(--navbar-height));
    overflow-y: auto;
}

@supports (max-height: 99dvh) {
    .variant {
        height: calc(100dvh - var(--navbar-height));
    }
}

.variant .profile__caps-list {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.variant__header {
    margin-bottom: 16px;
    text-align: center;
}

.variant__title {
    font-size: 22px;
    font-weight: 800;
    color: #fff;
}

.variant__subtitle {
    margin-top: 4px;
    color: #ffffffb2;
}

/* Страница ошибки в стиле игры. */
.error-page {
    box-sizing: border-box;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 24px 16px calc(24px + env(safe-area-inset-bottom));
    text-align: center;
    color: #fff;
}

.error-page__cap {
    position: relative;
    width: 150px;
    height: 150px;
    margin-bottom: 20px;
    animation: error-cap-wobble 3s ease-in-out infinite;
}

.error-page__cap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: grayscale(.7) brightness(.7) drop-shadow(0 8px 20px #000);
}

.error-page__code {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 40px;
    font-weight: 900;
    color: #fff;
    text-shadow: 0 3px 0 #ff4a3d, 0 6px 14px #000;
}

@keyframes error-cap-wobble {
    0%, 100% { transform: rotate(-6deg); }
    50% { transform: rotate(6deg) translateY(-6px); }
}

.error-page__title {
    font-size: 26px;
    font-weight: 900;
}

.error-page__text {
    max-width: 320px;
    margin-top: 8px;
    color: #ffffffb2;
    line-height: 1.4;
}

.error-page__buttons {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
    max-width: 360px;
    margin-top: 28px;
}

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

/* Вызов друга: кнопка на своей игре и плашка у того, кто пришёл по ссылке. */
.challenge-share {
    margin: 16px 0 8px;
}

.challenge-banner {
    margin: 0 16px 14px;
    padding: 12px 14px;
    border-radius: 16px;
    background: linear-gradient(135deg, #ff4a3d33, #6d02ff33);
    border: 1px solid #ff4a3d66;
    text-align: center;
    color: #fff;
}

.challenge-banner__title {
    font-size: 18px;
    font-weight: 800;
}

.challenge-banner__text {
    margin-top: 4px;
    font-size: 14px;
    color: #ffffffcc;
}

/* Выбор пака, если у игрока паки нескольких коллекций. */
.pack-stage__choice {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    padding: 0 16px;
}

/* Safari (WebKit): картинка фишки внутри прокручиваемого альбома/списка иногда загружается, но не
   перерисовывается — остаётся пустой цветной круг. Свой слой для картинки (как у серых «нет в наличии»,
   у которых есть filter) заставляет её отрисоваться. */
.profile__collection-caps .cap__img,
.profile__caps-list .cap__img {
    transform: translateZ(0);
}

/* ---- Пакет City People: зелёный, как оборот её фишек; кремовые буквы с засечками, окошко-круг ---- */
.play-pack--collection2 .play-pack__body {
    background:
        radial-gradient(circle at 30% 20%, #ffffff14 0 1px, #0000 1.5px) 0 0 / 7px 7px,
        radial-gradient(circle at 70% 60%, #00000018 0 1px, #0000 1.5px) 0 0 / 9px 9px,
        radial-gradient(ellipse 70% 45% at 50% 38%, #4fd06a 0%, #2aa743 55%, #17802e 100%);
}

.play-pack--collection2 .play-pack__burst {
    background: repeating-conic-gradient(from 0deg, #ffffff26 0deg 6deg, #ffffff00 6deg 18deg);
}

.play-pack__arc {
    position: relative;
    width: 84%;
    margin-top: 8%;
    overflow: visible;
}

.play-pack__arc text {
    font-family: Copperplate, 'Copperplate Gothic Bold', 'Rockwell', Georgia, serif;
    font-weight: 700;
    font-size: 24px;
    letter-spacing: 1.5px;
    fill: #efe9d6;
    paint-order: stroke;
    stroke: #0d5a1f;
    stroke-width: 2px;
}

.play-pack__series {
    position: relative;
    margin-top: -17%;
    letter-spacing: 1px;
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 700;
    font-size: calc(var(--pack-w) * .07);
    color: #efe9d6;
    text-shadow: 0 1px 0 #0d5a1f;
}


/* Окошко — круг с кремовой рамкой вместо треугольника. */
.play-pack--collection2 .play-pack__triangle {
    width: 52%;
    aspect-ratio: 1;
    flex: none;
    margin-top: 3%;
    padding: 4px;
    background: #efe9d6;
    clip-path: circle(50%);
    box-shadow: 0 6px 14px #0008;
}

.play-pack--collection2 .play-pack__triangle-inner {
    background: #1d6fd1;
    clip-path: circle(50%);
    padding: 4px;
}

.play-pack--collection2 .play-pack__triangle-inner::before {
    clip-path: circle(50%);
    background: radial-gradient(circle at 50% 40%, #2c6b3a, #0d2a16);
}

.play-pack--collection2 .play-pack__art--1 { left: 6%; top: 12%; }
.play-pack--collection2 .play-pack__art--2 { left: 27%; top: 30%; }
.play-pack--collection2 .play-pack__art--3 { right: 6%; top: 12%; }

.play-pack--collection2 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #7fb6ff, #1d6fd1 60%, #0d3f86);
    color: #fff;
}

/* Маленькие пакетики (главная): дуга и Series не помещаются — остаётся зелёный пакет с окошком. */
.home__pack .play-pack__arc,
.home__pack .play-pack__series {
    display: none;
}

/* ---- Пакеты коллекций 3–9: у каждой свой фон (как оборот её фишек), шрифт названия, узор по краям и
   форма окошка (--win-shape задаёт её сразу для рамки, подложки и фона окошка). ---- */
.play-pack--themed .play-pack__body {
    --win-shape: circle(50%);
}

.play-pack--themed .play-pack__triangle,
.play-pack--themed .play-pack__triangle-inner,
.play-pack--themed .play-pack__triangle-inner::before {
    clip-path: var(--win-shape);
}

.play-pack--themed .play-pack__triangle {
    width: 60%;
    aspect-ratio: 1;
    margin-top: 2%;
    filter: drop-shadow(0 6px 10px #0008);
}


.play-pack--themed .play-pack__title {
    margin-top: 1%;
    max-width: 92%;
    text-align: center;
    white-space: nowrap;
    font-size: calc(var(--pack-w) * .13);
    line-height: .95;
}

.play-pack__tagline {
    position: relative;
    margin-top: 1%;
    font-size: calc(var(--pack-w) * .055);
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #fff;
}

.play-pack__decor {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.play-pack--themed .play-pack__art--1 { left: 5%; top: 16%; }
.play-pack--themed .play-pack__art--2 { left: 27%; top: 30%; }
.play-pack--themed .play-pack__art--3 { right: 5%; top: 16%; }

/* Masks: красный, как края фишек, с синими зигзагами; резное жёлтое название, окошко-ромб в золотой рамке. */
.play-pack--collection3 .play-pack__body {
    --win-shape: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
    background:
        radial-gradient(ellipse 60% 40% at 50% 50%, #ffb34733 0%, #0000 70%),
        linear-gradient(180deg, #2a0705 0%, #a3160c 30%, #e2321a 60%, #8c1209 100%);
}

.play-pack--collection3 .play-pack__burst {
    background: repeating-conic-gradient(from 0deg, #ffc94a33 0deg 10deg, #0000 10deg 30deg);
}

.play-pack--collection3 .play-pack__decor {
    background:
        linear-gradient(135deg, #2448c8 25%, #0000 25%) -6px 0 / 12px 12px repeat-y,
        linear-gradient(225deg, #2448c8 25%, #0000 25%) -6px 0 / 12px 12px repeat-y,
        linear-gradient(45deg, #2448c8 25%, #0000 25%) right -6px top 0 / 12px 12px repeat-y,
        linear-gradient(315deg, #2448c8 25%, #0000 25%) right -6px top 0 / 12px 12px repeat-y;
}

.play-pack--collection3 .play-pack__title {
    font-family: Papyrus, 'Herculanum', 'Copperplate', Georgia, serif;
    font-size: calc(var(--pack-w) * .17);
    letter-spacing: 3px;
    color: #ffd23a;
    -webkit-text-stroke: 1.5px #3b0a04;
    text-shadow: 0 3px 0 #3b0a04, 0 6px 10px #000a;
}

.play-pack__star {
    position: absolute;
    z-index: 2;
    left: 3%;
    top: 36%;
    width: 30%;
    aspect-ratio: 1.15;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffe01a;
    color: #c41a0c;
    font-family: 'Arial Black', 'Roboto', sans-serif;
    font-weight: 900;
    font-size: calc(var(--pack-w) * .06);
    text-transform: uppercase;
    transform: rotate(-14deg);
    filter: drop-shadow(0 3px 4px #0008);
}

.play-pack--collection3 .play-pack__tagline {
    font-family: Georgia, serif;
    font-style: italic;
    text-transform: none;
    color: #ffe9a8;
}

.play-pack--collection3 .play-pack__triangle {
    width: 66%;
    background: linear-gradient(135deg, #ffe48a, #c98a12 50%, #ffe48a);
}

.play-pack--collection3 .play-pack__triangle-inner {
    background: #2448c8;
}

.play-pack--collection3 .play-pack__triangle-inner::before {
    background: radial-gradient(circle, #4a1208, #160402);
}

.play-pack--collection3 .play-pack__art--1 { left: 10%; top: 26%; width: 36%; }
.play-pack--collection3 .play-pack__art--2 { left: 28%; top: 30%; width: 44%; }
.play-pack--collection3 .play-pack__art--3 { right: 10%; top: 26%; width: 36%; }

.play-pack--collection3 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #7d9bff, #2448c8 60%, #0f2275);
    color: #fff;
}

/* Blondies: лососево-розовая обёртка, жёлтая волна волос, коричневое рукописное название в жёлтой обводке. */
.play-pack--collection4 .play-pack__body {
    --win-shape: polygon(50.0% 23.9%, 50.1% 22.7%, 50.8% 19.4%, 52.7% 14.6%, 56.1% 9.2%, 61.0% 4.4%, 67.3% 1.1%, 74.4% 0.0%, 81.7% 1.5%, 88.5% 5.4%, 94.0% 11.5%, 97.6% 19.0%, 98.8% 27.4%, 97.6% 36.0%, 94.0% 44.5%, 88.5% 52.6%, 81.7% 60.2%, 74.4% 67.5%, 67.3% 74.4%, 61.0% 81.0%, 56.1% 87.1%, 52.7% 92.3%, 50.8% 96.4%, 50.1% 99.1%, 50.0% 100.0%, 49.9% 99.1%, 49.2% 96.4%, 47.3% 92.3%, 43.9% 87.1%, 39.0% 81.0%, 32.7% 74.4%, 25.6% 67.5%, 18.3% 60.2%, 11.5% 52.6%, 6.0% 44.5%, 2.4% 36.0%, 1.2% 27.4%, 2.4% 19.0%, 6.0% 11.5%, 11.5% 5.4%, 18.3% 1.5%, 25.6% 0.0%, 32.7% 1.1%, 39.0% 4.4%, 43.9% 9.2%, 47.3% 14.6%, 49.2% 19.4%, 49.9% 22.7%);
    background:
        radial-gradient(ellipse 80% 50% at 50% 45%, #f7a08c 0%, #ec8070 55%, #c95a52 100%);
}

.play-pack--collection4 .play-pack__burst {
    background: repeating-conic-gradient(from 0deg, #ffffff14 0deg 6deg, #0000 6deg 18deg);
}

.play-pack--collection4 .play-pack__decor { display: none; }

.play-pack__bl {
    width: 100%;
    height: calc(var(--pack-w) * .42);
    margin-top: 1%;
}

/* Волна светлых волос над названием. */
.bl__hair {
    position: absolute;
    left: 10%;
    top: 4%;
    width: 44%;
    height: 62%;
    border-radius: 60% 40% 70% 30% / 60% 50% 50% 40%;
    background: linear-gradient(160deg, #fff6b0, #ffd21f 55%, #f0b000);
    transform: rotate(-18deg);
    box-shadow: inset -4px -6px 0 #e8a40066;
}

.bl__name {
    position: absolute;
    left: 0;
    right: 0;
    top: 44%;
    font-family: 'Brush Script MT', 'Segoe Script', 'Lucida Handwriting', cursive;
    font-style: italic;
    font-weight: 700;
    text-transform: none;
    font-size: calc(var(--pack-w) * .2);
    line-height: 1;
    color: #5a1a10;
    -webkit-text-stroke: 3px #ffd21f;
    paint-order: stroke fill;
    text-shadow: 0 3px 0 #7a2a10;
    transform: rotate(-6deg);
}

.bl__burst {
    position: absolute;
    right: 3%;
    top: -2%;
    width: 33%;
    aspect-ratio: 1.15;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #ffe01a;
    color: #8a1a2a;
    font-family: 'Arial Black', 'Roboto', sans-serif;
    font-size: calc(var(--pack-w) * .055);
    line-height: .9;
    transform: rotate(10deg);
}

.bl__burst small {
    width: 58%;
    margin-top: 2px;
    font-family: Arial, 'Roboto', sans-serif;
    font-weight: 700;
    font-size: calc(var(--pack-w) * .03);
    line-height: 1;
    white-space: normal;
    text-transform: none;
}

.play-pack--collection4 .play-pack__triangle {
    width: 66%;
    aspect-ratio: 1 / .92;
    background: #ffd21f;
    padding: 3px;
}

.play-pack--collection4 .play-pack__triangle-inner {
    background: #5a1a10;
    padding: 2px;
}

.play-pack--collection4 .play-pack__triangle-inner::before {
    inset: 2px;
    background: radial-gradient(circle at 50% 40%, #a8483e, #4a140c);
}

.play-pack--collection4 .play-pack__art--1 { left: 8%; top: 10%; width: 38%; }
.play-pack--collection4 .play-pack__art--2 { left: 29%; top: 30%; width: 42%; }
.play-pack--collection4 .play-pack__art--3 { right: 8%; top: 10%; width: 38%; }

.play-pack--collection4 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #fff6a0, #ffd21f 55%, #c48a00);
    color: #5a1a10;
}

/* Hot Summer: голубая обёртка, оранжевое HOT с солнцем вместо O, SUMMER сверху вниз. */
.play-pack--collection5 .play-pack__body {
    --win-shape: polygon(50.0% 0.0%, 60.4% 11.4%, 75.0% 6.7%, 78.3% 21.7%, 93.3% 25.0%, 88.6% 39.6%, 100.0% 50.0%, 88.6% 60.4%, 93.3% 75.0%, 78.3% 78.3%, 75.0% 93.3%, 60.4% 88.6%, 50.0% 100.0%, 39.6% 88.6%, 25.0% 93.3%, 21.7% 78.3%, 6.7% 75.0%, 11.4% 60.4%, 0.0% 50.0%, 11.4% 39.6%, 6.7% 25.0%, 21.7% 21.7%, 25.0% 6.7%, 39.6% 11.4%);
    background:
        linear-gradient(160deg, #ffffff18 0 12%, #0000 12% 40%, #ffffff10 40% 44%, #0000 44%),
        radial-gradient(ellipse 80% 50% at 50% 45%, #6ccdf5 0%, #3fb0e8 55%, #1e86c8 100%);
}

.play-pack--collection5 .play-pack__burst {
    background: radial-gradient(circle, #ffffff20, #0000 60%);
}

.play-pack--collection5 .play-pack__decor { display: none; }

.play-pack__hs {
    width: 100%;
    height: calc(var(--pack-w) * .42);
    margin-top: 1%;
    font-family: 'Arial Black', 'Roboto', sans-serif;
    font-weight: 900;
}

.hs__hot, .hs__summer {
    position: absolute;
    font-style: italic;
    color: #f26a10;
    -webkit-text-stroke: 2px #3a1a00;
    paint-order: stroke fill;
    text-shadow: 2px 3px 0 #3a1a00;
    line-height: 1;
    white-space: nowrap;
}

.hs__hot {
    left: 4%;
    top: 4%;
    display: flex;
    align-items: center;
    font-size: calc(var(--pack-w) * .15);
    transform: rotate(-6deg);
}

.hs__hot small {
    margin-right: 3px;
    align-self: flex-end;
    color: #ffe01a;
    -webkit-text-stroke-width: 1.5px;
    font-size: calc(var(--pack-w) * .07);
}

/* Солнце с лучами и лицом вместо буквы O. */
.hs__sun {
    position: relative;
    width: calc(var(--pack-w) * .15);
    aspect-ratio: 1;
    margin: 0 1px;
    background: #ffe01a;
    clip-path: polygon(50% 0, 58% 14%, 75% 7%, 74% 25%, 93% 25%, 85% 42%, 100% 50%, 85% 58%, 93% 75%, 74% 75%, 75% 93%, 58% 86%, 50% 100%, 42% 86%, 25% 93%, 26% 75%, 7% 75%, 15% 58%, 0 50%, 15% 42%, 7% 25%, 26% 25%, 25% 7%, 42% 14%);
}

.hs__sun i {
    position: absolute;
    inset: 14%;
    border-radius: 50%;
    background:
        radial-gradient(circle at 40% 42%, #3a1a00 0 5%, #0000 6%),
        radial-gradient(circle at 60% 42%, #3a1a00 0 5%, #0000 6%),
        linear-gradient(#3a1a00, #3a1a00) 50% 66% / 34% 5% no-repeat,
        radial-gradient(circle, #ffe01a 0 58%, #f26a10 60% 74%, #ffe01a 76%);
}

.hs__summer {
    left: 4%;
    top: 44%;
    font-size: calc(var(--pack-w) * .13);
    transform: rotate(-4deg);
}

.hs__burst {
    position: absolute;
    right: 2%;
    top: 22%;
    width: 33%;
    aspect-ratio: 1.15;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #ffe01a;
    color: #f26a10;
    font-size: calc(var(--pack-w) * .055);
    line-height: .9;
    transform: rotate(-6deg);
}

.hs__burst small {
    width: 58%;
    margin-top: 2px;
    font-family: Arial, 'Roboto', sans-serif;
    font-weight: 700;
    font-size: calc(var(--pack-w) * .03);
    line-height: 1;
    white-space: normal;
    text-transform: none;
    color: #f26a10;
}

.play-pack--collection5 .play-pack__triangle {
    width: 64%;
    background: #ffb000;
    padding: 3px;
}

.play-pack--collection5 .play-pack__triangle-inner {
    background: #5a2a00;
    padding: 2px;
}

.play-pack--collection5 .play-pack__triangle-inner::before {
    inset: 2px;
    background: radial-gradient(circle at 50% 40%, #3fb0e8, #0b4a80);
}

.play-pack--collection5 .play-pack__art--1 { left: 13%; top: 20%; width: 36%; }
.play-pack--collection5 .play-pack__art--2 { left: 29%; top: 32%; width: 42%; }
.play-pack--collection5 .play-pack__art--3 { right: 13%; top: 20%; width: 36%; }

.play-pack--collection5 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #fff6a0, #ffd21f 55%, #c48a00);
    color: #5a2a00;
}

/* ---- Коллекции 4–9 — по настоящим обёрткам жвачки 90-х (без чужих логотипов). ---- */
.play-pack__lika, .play-pack__pw, .play-pack__sb, .play-pack__tr, .play-pack__bl, .play-pack__hs {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    -webkit-text-stroke: 0;
    text-shadow: none;
    letter-spacing: 0;
    white-space: normal;
}

/* Звезда-взрыв для наклеек CAPS. */
.play-pack--themed :is(.pw__burst, .sb__burst, .tr__burst, .hs__burst, .bl__burst, .play-pack__star) {
    clip-path: polygon(50% 0, 59% 18%, 79% 7%, 76% 28%, 98% 26%, 84% 43%, 100% 56%, 79% 63%, 88% 83%, 67% 78%, 60% 100%, 47% 83%, 30% 97%, 28% 76%, 6% 80%, 17% 61%, 0 47%, 19% 38%, 8% 19%, 30% 22%, 35% 2%);
}

/* Lika: красные края с потёртыми полосками, чёрная лента посередине. */
.play-pack--collection6 .play-pack__body {
    --win-shape: inset(0 round 50% 50% 6% 6% / 36% 36% 4% 4%);
    background:
        repeating-linear-gradient(90deg, #0000 0 3px, #ffffff14 3px 4px, #0000 4px 9px) 0 0 / 12% 100% no-repeat,
        repeating-linear-gradient(90deg, #0000 0 3px, #ffffff14 3px 4px, #0000 4px 9px) 100% 0 / 12% 100% no-repeat,
        linear-gradient(90deg, #d9160f 0 12%, #8a0a06 12% 13%, #0a0a0a 13% 87%, #8a0a06 87% 88%, #d9160f 88%);
}

.play-pack--collection6 .play-pack__burst {
    background: radial-gradient(circle, #ffd21f1a, #0000 60%);
}

.play-pack--collection6 .play-pack__decor { display: none; }

.play-pack__lika {
    width: 74%;
    margin-top: 8%;
    font-family: 'Arial Black', Impact, sans-serif;
}

.lika__name {
    margin-top: 1%;
    font-family: 'Times New Roman', Georgia, serif;
    font-weight: 900;
    font-size: calc(var(--pack-w) * .17);
    line-height: .95;
    text-align: center;
    white-space: normal;
    background: linear-gradient(180deg, #fff6a0, #ffd21f 45%, #e8a400);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 2px 0 #5a3a00);
}

.play-pack--collection6 .play-pack__triangle {
    width: 52%;
    aspect-ratio: 1 / 1.05;
    margin-top: 3%;
    background: linear-gradient(180deg, #ffe066, #e8a400);
    padding: 3px;
}

.play-pack--collection6 .play-pack__triangle-inner {
    background: #d9160f;
    padding: 3px;
}

.play-pack--collection6 .play-pack__triangle-inner::before {
    inset: 3px;
    background: radial-gradient(circle at 50% 40%, #2a2a2a, #050505);
}

.play-pack--collection6 .play-pack__art--1 { left: 6%; top: 34%; width: 40%; }
.play-pack--collection6 .play-pack__art--2 { left: 24%; top: 50%; width: 52%; }
.play-pack--collection6 .play-pack__art--3 { right: 6%; top: 34%; width: 40%; }

.play-pack--collection6 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #fff6a0, #ffd21f 55%, #c48a00);
    color: #8a0a06;
}

/* Play Woman: красная обёртка, белое название с рамкой на чёрной плашке. */
.play-pack--collection7 .play-pack__body {
    --win-shape: ellipse(50% 50%);
    background:
        radial-gradient(ellipse 80% 50% at 50% 45%, #ff3b2a 0%, #e0160c 50%, #a80c06 100%);
}

.play-pack--collection7 .play-pack__burst {
    background: repeating-conic-gradient(from 0deg, #ffffff12 0deg 6deg, #0000 6deg 18deg);
}

.play-pack--collection7 .play-pack__decor {
    background:
        repeating-linear-gradient(90deg, #ffffff30 0 1px, #0000 1px 4px) 2% 0 / 4% 100% no-repeat,
        repeating-linear-gradient(90deg, #ffffff30 0 1px, #0000 1px 4px) 98% 0 / 4% 100% no-repeat;
}

.play-pack__pw {
    width: 100%;
    height: calc(var(--pack-w) * .36);
    margin-top: 2%;
}

.pw__burst {
    position: absolute;
    left: 8%;
    top: 0;
    width: 40%;
    aspect-ratio: 1.15;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #ffe01a;
    color: #e0160c;
    font-family: 'Arial Black', Impact, sans-serif;
    font-size: calc(var(--pack-w) * .06);
    line-height: .9;
    transform: rotate(-14deg);
}

.pw__burst small {
    width: 58%;
    margin-top: 2px;
    font-family: Arial, 'Roboto', sans-serif;
    font-weight: 700;
    font-size: calc(var(--pack-w) * .034);
    line-height: 1;
    white-space: normal;
    color: #7a0804;
    text-transform: none;
}


.pw__name {
    position: absolute;
    left: 6%;
    right: 6%;
    bottom: 0;
    padding: 2% 0;
    background: #111;
    color: #fff;
    font-family: 'Times New Roman', Georgia, serif;
    font-weight: 900;
    font-size: calc(var(--pack-w) * .1);
    line-height: 1.05;
    white-space: nowrap;
    box-shadow: inset 0 0 0 2px #111, inset 0 0 0 3px #fff;
}

.play-pack--collection7 .play-pack__triangle {
    width: 54%;
    aspect-ratio: 1 / 1.12;
    background: #111;
    padding: 3px;
}

.play-pack--collection7 .play-pack__triangle-inner {
    background: #fff;
    padding: 2px;
}

.play-pack--collection7 .play-pack__triangle-inner::before {
    inset: 2px;
    background: radial-gradient(circle at 50% 40%, #7a0804, #2a0200);
}

.play-pack--collection7 .play-pack__art--1 { left: 6%; top: 18%; width: 42%; }
.play-pack--collection7 .play-pack__art--2 { left: 24%; top: 38%; width: 52%; }
.play-pack--collection7 .play-pack__art--3 { right: 6%; top: 18%; width: 42%; }

.play-pack--collection7 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #fff6a0, #ffe01a 55%, #c4a000);
    color: #a80c06;
}

/* Super Beach: косые красные и зелёные полосы. */
.play-pack--collection8 .play-pack__body {
    --win-shape: polygon(100.0% 50.0%, 98.4% 54.2%, 94.6% 57.9%, 91.1% 61.0%, 89.7% 64.4%, 90.5% 68.9%, 91.6% 74.0%, 90.9% 78.6%, 87.6% 81.5%, 82.5% 82.5%, 77.6% 82.9%, 74.1% 84.5%, 72.0% 88.1%, 70.0% 92.9%, 67.0% 96.8%, 62.8% 97.8%, 58.1% 96.0%, 53.8% 93.3%, 50.0% 92.0%, 46.2% 93.3%, 41.9% 96.0%, 37.2% 97.8%, 33.0% 96.8%, 30.0% 92.9%, 28.0% 88.1%, 25.9% 84.5%, 22.4% 82.9%, 17.5% 82.5%, 12.4% 81.5%, 9.1% 78.6%, 8.4% 74.0%, 9.5% 68.9%, 10.3% 64.4%, 8.9% 61.0%, 5.4% 57.9%, 1.6% 54.2%, 0.0% 50.0%, 1.6% 45.8%, 5.4% 42.1%, 8.9% 39.0%, 10.3% 35.6%, 9.5% 31.1%, 8.4% 26.0%, 9.1% 21.4%, 12.4% 18.5%, 17.5% 17.5%, 22.4% 17.1%, 25.9% 15.5%, 28.0% 11.9%, 30.0% 7.1%, 33.0% 3.2%, 37.2% 2.2%, 41.9% 4.0%, 46.2% 6.7%, 50.0% 8.0%, 53.8% 6.7%, 58.1% 4.0%, 62.8% 2.2%, 67.0% 3.2%, 70.0% 7.1%, 72.0% 11.9%, 74.1% 15.5%, 77.6% 17.1%, 82.5% 17.5%, 87.6% 18.5%, 90.9% 21.4%, 91.6% 26.0%, 90.5% 31.1%, 89.7% 35.6%, 91.1% 39.0%, 94.6% 42.1%, 98.4% 45.8%);
    background:
        repeating-linear-gradient(-12deg, #e0160c 0 18%, #b01008 18% 19%, #1f8a2e 19% 37%, #13661f 37% 38%);
}

.play-pack--collection8 .play-pack__burst {
    background: repeating-conic-gradient(from 0deg, #ffffff10 0deg 6deg, #0000 6deg 18deg);
}

.play-pack--collection8 .play-pack__decor { display: none; }

.play-pack__sb {
    width: 100%;
    height: calc(var(--pack-w) * .4);
    margin-top: 2%;
}

.sb__burst {
    position: absolute;
    left: 6%;
    top: 4%;
    width: 36%;
    aspect-ratio: 1.15;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #ffe01a;
    color: #e0160c;
    font-family: 'Arial Black', Impact, sans-serif;
    font-size: calc(var(--pack-w) * .055);
    line-height: .9;
    transform: rotate(-20deg);
}

.sb__name {
    position: absolute;
    right: 6%;
    top: 0;
    font-family: 'Arial Black', Impact, sans-serif;
    font-style: italic;
    font-size: calc(var(--pack-w) * .1);
    line-height: .88;
    text-align: right;
    color: #ffe01a;
    -webkit-text-stroke: 1.5px #0b4a14;
    paint-order: stroke fill;
    text-shadow: 0 3px 0 #0b4a14;
    transform: rotate(-8deg);
}

.sb__name small {
    display: block;
    font-size: calc(var(--pack-w) * .05);
    color: #fff;
}

.sb__name b {
    font-size: calc(var(--pack-w) * .13);
}

.play-pack--collection8 .play-pack__triangle {
    width: 64%;
    background: #ffe01a;
    padding: 3px;
}

.play-pack--collection8 .play-pack__triangle-inner {
    background: #0b4a14;
    padding: 2px;
}

.play-pack--collection8 .play-pack__triangle-inner::before {
    inset: 2px;
    background: radial-gradient(circle at 50% 40%, #2aa845, #0b4a14);
}

.play-pack--collection8 .play-pack__art--1 { left: 11%; top: 19%; width: 38%; }
.play-pack--collection8 .play-pack__art--2 { left: 28%; top: 32%; width: 44%; }
.play-pack--collection8 .play-pack__art--3 { right: 11%; top: 19%; width: 38%; }

.play-pack--collection8 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #fff6a0, #ffe01a 55%, #c4a000);
    color: #0b4a14;
}

/* Tropical: синяя мятая фольга. */
.play-pack--collection9 .play-pack__body {
    --win-shape: inset(0 round 50% 50% 50% 50% / 60% 60% 40% 40%);
    background:
        linear-gradient(160deg, #ffffff1a 0 10%, #0000 10% 30%, #ffffff12 30% 34%, #0000 34% 60%, #ffffff14 60% 62%, #0000 62%),
        linear-gradient(20deg, #0000 0 40%, #ffffff10 40% 44%, #0000 44% 80%, #ffffff12 80% 83%, #0000 83%),
        radial-gradient(ellipse 80% 50% at 50% 45%, #3f7fe8 0%, #1f55c8 55%, #12348a 100%);
}

.play-pack--collection9 .play-pack__burst {
    background: radial-gradient(circle, #ffffff1a, #0000 60%);
}

.play-pack--collection9 .play-pack__decor { display: none; }

.play-pack__tr {
    width: 100%;
    height: calc(var(--pack-w) * .4);
    margin-top: 1%;
}

.tr__name {
    /* Узкие высокие буквы, как на обёртке: Impact есть не везде — жирный шрифт, сжатый по ширине. */
    font-family: 'Arial Black', 'Roboto', sans-serif;
    font-weight: 900;
    font-size: calc(var(--pack-w) * .17);
    line-height: 1;
    letter-spacing: 0;
    color: #ffe01a;
    -webkit-text-stroke: 2px #0a1f5c;
    paint-order: stroke fill;
    text-shadow: 0 3px 0 #0a1f5c;
    transform: scale(.72, 1.2);
    white-space: nowrap;
}

.tr__girls {
    position: absolute;
    right: 10%;
    top: 34%;
    font-family: 'Brush Script MT', 'Segoe Script', cursive;
    font-style: italic;
    font-size: calc(var(--pack-w) * .09);
    color: #ffffffc0;
    text-transform: none;
}

.tr__burst {
    position: absolute;
    left: 4%;
    top: 40%;
    width: 38%;
    aspect-ratio: 1.15;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #ffe01a;
    color: #e0160c;
    font-family: 'Arial Black', Impact, sans-serif;
    font-size: calc(var(--pack-w) * .055);
    line-height: .9;
    transform: rotate(-6deg);
}

.tr__burst small, .sb__burst small {
    width: 58%;
    margin-top: 2px;
    font-family: Arial, 'Roboto', sans-serif;
    font-weight: 700;
    font-size: calc(var(--pack-w) * .034);
    line-height: 1;
    white-space: normal;
    text-transform: none;
    color: #0a1f5c;
}


.play-pack--collection9 .play-pack__triangle {
    width: 58%;
    aspect-ratio: 1 / 1.1;
    margin-top: 0;
    background: #ffe01a;
    padding: 3px;
}

.play-pack--collection9 .play-pack__triangle-inner {
    background: #0a1f5c;
    padding: 2px;
}

.play-pack--collection9 .play-pack__triangle-inner::before {
    inset: 2px;
    background: radial-gradient(circle at 50% 40%, #3f7fe8, #0a1f5c);
}

.play-pack--collection9 .play-pack__art--1 { left: 6%; top: 18%; width: 40%; }
.play-pack--collection9 .play-pack__art--2 { left: 26%; top: 34%; width: 48%; }
.play-pack--collection9 .play-pack__art--3 { right: 6%; top: 18%; width: 40%; }

.play-pack--collection9 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #fff6a0, #ffe01a 55%, #c4a000);
    color: #12348a;
}

/* Маленькие пакетики: мелкие надписи обёрток 6–9 не читаются — оставляем название и наклейки. */
:is(.home__pack, .packs__item) :is(.pw__burst small, .tr__burst small, .sb__burst small, .tr__girls, .sb__name small, .hs__burst small, .bl__burst small) {
    display: none;
}

/* Маленькие пакетики: подписи и узор по краям не помещаются. */
.home__pack .play-pack__tagline,
.home__pack .play-pack__decor,
.packs__item .play-pack__tagline {
    display: none;
}

.packs__item .play-pack--themed .play-pack__decor {
    transform: scale(.5);
    transform-origin: 50% 50%;
    inset: -50%;
}

/* Mortal Kombat 3: красная драконья чешуя, как на коробке dunkin; золотое MK3,
   круглое окошко в оранжевом кольце, наклейка — жёлтая звезда. */
.play-pack--collection10 .play-pack__body {
    /* Окошко — драконий глаз: линза с острыми концами. */
    --win-shape: polygon(0.0% 50.0%, 2.5% 42.3%, 5.0% 37.3%, 7.5% 33.2%, 10.0% 29.6%, 12.5% 26.3%, 15.0% 23.4%, 17.5% 20.9%, 20.0% 18.5%, 22.5% 16.4%, 25.0% 14.5%, 27.5% 12.9%, 30.0% 11.4%, 32.5% 10.1%, 35.0% 9.0%, 37.5% 8.1%, 40.0% 7.3%, 42.5% 6.7%, 45.0% 6.3%, 47.5% 6.1%, 50.0% 6.0%, 52.5% 6.1%, 55.0% 6.3%, 57.5% 6.7%, 60.0% 7.3%, 62.5% 8.1%, 65.0% 9.0%, 67.5% 10.1%, 70.0% 11.4%, 72.5% 12.9%, 75.0% 14.5%, 77.5% 16.4%, 80.0% 18.5%, 82.5% 20.9%, 85.0% 23.4%, 87.5% 26.3%, 90.0% 29.6%, 92.5% 33.2%, 95.0% 37.3%, 97.5% 42.3%, 100.0% 50.0%, 97.5% 57.7%, 95.0% 62.7%, 92.5% 66.8%, 90.0% 70.4%, 87.5% 73.7%, 85.0% 76.6%, 82.5% 79.1%, 80.0% 81.5%, 77.5% 83.6%, 75.0% 85.5%, 72.5% 87.1%, 70.0% 88.6%, 67.5% 89.9%, 65.0% 91.0%, 62.5% 91.9%, 60.0% 92.7%, 57.5% 93.3%, 55.0% 93.7%, 52.5% 93.9%, 50.0% 94.0%, 47.5% 93.9%, 45.0% 93.7%, 42.5% 93.3%, 40.0% 92.7%, 37.5% 91.9%, 35.0% 91.0%, 32.5% 89.9%, 30.0% 88.6%, 27.5% 87.1%, 25.0% 85.5%, 22.5% 83.6%, 20.0% 81.5%, 17.5% 79.1%, 15.0% 76.6%, 12.5% 73.7%, 10.0% 70.4%, 7.5% 66.8%, 5.0% 62.7%, 2.5% 57.7%);
    background:
        radial-gradient(ellipse 60% 40% at 50% 52%, #ff6a0040 0%, #0000 70%),
        radial-gradient(circle at 50% 100%, #0000 3.5px, #3a0204 4px 5px, #0000 5.5px) 0 0 / 10px 7px,
        radial-gradient(circle at 50% 100%, #0000 3.5px, #3a0204 4px 5px, #0000 5.5px) 5px 3.5px / 10px 7px,
        radial-gradient(circle at 50% 30%, #e0281c 0 2.5px, #0000 4px) 0 0 / 10px 7px,
        radial-gradient(circle at 50% 30%, #e0281c 0 2.5px, #0000 4px) 5px 3.5px / 10px 7px,
        linear-gradient(180deg, #5a0508 0%, #9c0d10 45%, #6e0609 100%);
}

.play-pack--collection10 .play-pack__burst {
    background: repeating-conic-gradient(from 0deg, #ffb30022 0deg 6deg, #0000 6deg 18deg);
}


.play-pack--themed .play-pack__mk {
    display: flex;
    align-items: center;
    gap: 2%;
    margin-top: 2%;
    font-family: Impact, 'Arial Narrow', 'Arial Black', sans-serif;
    font-weight: 900;
    font-size: calc(var(--pack-w) * .2);
    letter-spacing: 2px;
    white-space: nowrap;
    color: #ffc21a;
    -webkit-text-stroke: 0;
    /* Заливка букв прозрачная (градиент), поэтому тень — фильтром, а не text-shadow: иначе она просвечивает. */
    text-shadow: none;
    filter: drop-shadow(0 1px 0 #3a0a00) drop-shadow(0 3px 4px #000c);
}

.play-pack--themed .play-pack__mk span {
    background: linear-gradient(180deg, #fff2a0 0%, #ffc21a 45%, #e06a00 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.play-pack--collection10 .play-pack__tagline {
    font-size: calc(var(--pack-w) * .045);
    letter-spacing: 2px;
    color: #ffd46b;
}

.play-pack--collection10 .play-pack__decor {
    background:
        linear-gradient(90deg, #000a, #0000 7%, #0000 93%, #000a);
}

.play-pack--collection10 .play-pack__triangle {
    width: 76%;
    margin-top: 3%;
    background: linear-gradient(135deg, #ffd27a, #e05a00 50%, #ffd27a);
    padding: 4px;
}

.play-pack--collection10 .play-pack__triangle-inner {
    background: #1a0202;
    padding: 2px;
}


.play-pack--collection10 .play-pack__triangle-inner::before {
    inset: 3px;
    background: radial-gradient(circle at 50% 40%, #ff7a1a, #7a1000 55%, #1a0202);
}

/* Жёлтая звезда-наклейка, как «1 КЭП бесплатно» на коробке. */
.play-pack--collection10 .play-pack__badge {
    right: 4%;
    bottom: 6%;
    width: 26%;
    border: 0;
    border-radius: 0;
    background: #ffe81a;
    color: #d01010;
    font-family: Impact, 'Arial Black', sans-serif;
    font-weight: 400;
    box-shadow: none;
    clip-path: polygon(50% 0, 59% 18%, 79% 9%, 76% 30%, 97% 33%, 82% 50%, 97% 67%, 76% 70%, 79% 91%, 59% 82%, 50% 100%, 41% 82%, 21% 91%, 24% 70%, 3% 67%, 18% 50%, 3% 33%, 24% 30%, 21% 9%, 41% 18%);
    filter: drop-shadow(0 2px 3px #0008);
}

/* Название и окошко — одной группой по центру пакета: сверху и снизу поровну свободного места. */
.play-pack__body > :is(.play-pack__title, .play-pack__arc) {
    margin-top: auto;
}

.play-pack__body > .play-pack__triangle {
    margin-bottom: auto;
}

/* Живой список (ставки на твою игру) обновился — короткая подсветка. */
.pc-live-updated {
    animation: pc-live-updated 1.2s ease-out;
}

@keyframes pc-live-updated {
    0% { filter: brightness(1.35); }
    100% { filter: none; }
}

/* ---- Круг PvP: логотип бьётся об пол и рассыпается ----
   Логотип подлетает (крупнее, тень дальше), падает и сплющивается от удара; из-под него
   разлетаются фишки — оказывается, это была стопка. Кольцо удара, снизу выезжает «PvP». */
.pvp-start__circle .home__cap-image {
    position: relative;
    z-index: 2;
}

.pvp-start__circle {
    perspective: 900px;
}

/* Фишки стопки: того же размера, что логотип, ровно под ним — в покое не видны. */
.pvp-start__scatter {
    position: absolute;
    z-index: 1;
    left: 50%;
    top: 50%;
    width: 100%;
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
    transform-style: preserve-3d;
    /* Без opacity: она «сплющивает» 3D-переворот, и рубашка видна зеркально вместо картинки. */
    visibility: hidden;
    pointer-events: none;
    /* Куда съезжает фишка после удара и переворачивается ли она лицом. */
    --angle: 45deg;
    --dist: 26%;
    --spin: 30deg;
    --turn: 180deg;
    /* Пол дальше, чем стопка была в руке: после удара всё меньше. */
    --far: .68;
}

.pvp-start__side {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.pvp-start__side--face {
    inset: 4%;
    width: 92%;
    height: 92%;
    border-radius: 50%;
    object-fit: cover;
    transform: rotateY(180deg);
    box-shadow: 0 4px 8px #0008;
}

.pvp-start__ring {
    position: absolute;
    z-index: 1;
    left: 50%;
    top: 50%;
    width: 60%;
    aspect-ratio: 1;
    border-radius: 50%;
    /* Облачко пыли от удара, а не яркое кольцо. */
    border: 3px solid #ffffff77;
    box-shadow: 0 0 22px 6px #ffffff33, inset 0 0 16px #ffffff33;
    filter: blur(1px);
    opacity: 0;
    transform: translate(-50%, -50%) scale(.6);
    pointer-events: none;
}

.pvp-start:is(:hover, :focus-visible, .pvp-start--slam) .home__cap-image {
    animation: pvp-logo-slam 1.6s linear forwards;
}

.pvp-start:is(:hover, :focus-visible, .pvp-start--slam) .pvp-start__scatter {
    animation:
        /* both: до своего старта фишка уже уменьшена, как логотип после удара, — иначе на миг видна крупная фишка под ним. */
        pvp-scatter .95s cubic-bezier(.2, .75, .35, 1) calc(.5s + var(--n) * 25ms) both,
        pvp-show 0s linear .5s forwards;
}

.pvp-start:is(:hover, :focus-visible, .pvp-start--slam) .pvp-start__ring {
    animation: pvp-ring .55s ease-out .5s forwards;
    width: 42%;
}

.pvp-start:is(:hover, :focus-visible, .pvp-start--slam) .pvp-start__circle {
    animation: pvp-shake .22s linear .5s;
}

.pvp-start:is(:hover, :focus-visible, .pvp-start--slam) .pvp-start__label {
    opacity: 1;
    transform: translate(-50%, 0);
}

@keyframes pvp-logo-slam {
    /* Подъём: к верхней точке замедляется, тень уходит дальше и размывается. */
    0% { transform: translate(0, 0) scale(1) rotate(0); filter: drop-shadow(0 6px 8px #0008); animation-timing-function: cubic-bezier(.2, .7, .4, 1); }
    16.5% { transform: translate(0, -6%) scale(1.14) rotate(-2deg); filter: drop-shadow(0 40px 30px #0005); }
    /* Зависла — и падает с ускорением. */
    21.3% { transform: translate(0, -6.5%) scale(1.15) rotate(-2deg); filter: drop-shadow(0 42px 32px #0005); animation-timing-function: cubic-bezier(.55, 0, 1, .45); }
    /* Удар о пол: фишки твёрдые — не сплющиваются, а коротко отскакивают. */
    31.6% { transform: translate(0, 0) scale(.68) rotate(0); filter: drop-shadow(0 2px 2px #000e) brightness(1.15); animation-timing-function: ease-out; }
    34.4% { transform: translate(-1%, -1%) scale(.7) rotate(-2deg); filter: drop-shadow(0 6px 5px #000b); animation-timing-function: ease-in; }
    37.1% { transform: translate(-1.5%, 0) scale(.68) rotate(-3deg); filter: drop-shadow(0 3px 3px #000d); animation-timing-function: cubic-bezier(.2, .8, .3, 1); }
    /* Съезжает со стопки… */
    56% { transform: translate(-11%, 7%) scale(.68) rotate(-14deg); filter: drop-shadow(0 4px 5px #000c); animation-timing-function: ease-in-out; }
    /* …и оседает: из-под неё разъезжаются фишки, она покачивается и проседает, колебания затухают. */
    63% { transform: translate(-12%, 7.6%) scale(.675) rotate(-11.5deg); animation-timing-function: ease-in-out; }
    70% { transform: translate(-12.6%, 8.6%) scale(.672) rotate(-15.8deg); animation-timing-function: ease-in-out; }
    78% { transform: translate(-13%, 8.1%) scale(.671) rotate(-13.4deg); animation-timing-function: ease-in-out; }
    86% { transform: translate(-13.3%, 8.6%) scale(.67) rotate(-14.9deg); animation-timing-function: ease-in-out; }
    93% { transform: translate(-13.4%, 8.4%) scale(.67) rotate(-14.3deg); animation-timing-function: ease-out; }
    100% { transform: translate(-13.4%, 8.5%) scale(.67) rotate(-14.6deg); filter: drop-shadow(0 3px 4px #000d); }
}

/* Фишка вылетает из-под логотипа по дуге и кувыркается (scaleX через -1 — видно ребро и оборот). */
@keyframes pvp-scatter {
    0% { transform: translate(-50%, -50%) scale(var(--far)) rotateY(0); }
    /* Выбита из стопки: подскакивает (крупнее), на лету переворачивается. */
    28% { transform: translate(-50%, -50%) rotate(var(--angle)) translateX(calc(var(--dist) * .55)) rotate(calc(-1 * var(--angle))) scale(calc(var(--far) * 1.1)) rotate(calc(var(--spin) * .5)) rotateY(calc(var(--turn) * .55)); }
    /* Падает обратно и скользит, замедляясь. */
    52% { transform: translate(-50%, -50%) rotate(var(--angle)) translateX(calc(var(--dist) * .86)) rotate(calc(-1 * var(--angle))) scale(var(--far)) rotate(calc(var(--spin) * .85)) rotateY(var(--turn)); }
    58% { transform: translate(-50%, -50%) rotate(var(--angle)) translateX(calc(var(--dist) * .9)) rotate(calc(-1 * var(--angle))) scale(calc(var(--far) * 1.015)) rotate(calc(var(--spin) * .88)) rotateY(var(--turn)); }
    100% { transform: translate(-50%, -50%) rotate(var(--angle)) translateX(var(--dist)) rotate(calc(-1 * var(--angle))) scale(var(--far)) rotate(var(--spin)) rotateY(var(--turn)); }
}

/* Нижние фишки появляются только в момент удара — до этого из-под поднятой верхней ничего не видно. */
@keyframes pvp-show {
    to { visibility: visible; }
}

/* Удар о пол встряхивает круг. */
@keyframes pvp-shake {
    0%, 100% { translate: 0 0; }
    20% { translate: 0 3px; }
    45% { translate: -2px -1px; }
    70% { translate: 1px 1px; }
}

@keyframes pvp-ring {
    0% { opacity: .9; transform: translate(-50%, -50%) scale(.6); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(1.9); border-width: 1px; }
}

@media (prefers-reduced-motion: reduce) {
    .pvp-start__scatter, .pvp-start__ring, .pvp-start .home__cap-image, .pvp-start__circle {
        animation: none !important;
    }
}

/* «Награды» на главной: есть что забрать — кнопка мягко пульсирует. */
.home__rewards--ready {
    animation: pc-rewards-pulse 1.6s ease-in-out infinite;
}

@keyframes pc-rewards-pulse {
    0%, 100% { box-shadow: 0 0 0 0 #33bd1c00; }
    50% { box-shadow: 0 0 0 4px #33bd1c55, 0 0 14px #33bd1c88; }
}

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

/* POG (Pineapple Orange Guava): голубой фон с граффити-пятнами, как на постере; толстые буквы POG,
   окошко — жёлтое солнце в оранжевом кольце, по бокам пальмовые листья. */
.play-pack--collection11 .play-pack__body {
    --win-shape: circle(50%);
    background:
        radial-gradient(ellipse 30% 18% at 12% 30%, #c86fc9 0 60%, #0000 62%),
        radial-gradient(ellipse 26% 14% at 88% 22%, #6fcf5a 0 60%, #0000 62%),
        radial-gradient(ellipse 34% 16% at 85% 88%, #c86fc9 0 60%, #0000 62%),
        radial-gradient(ellipse 22% 12% at 15% 84%, #f29a3a 0 60%, #0000 62%),
        repeating-linear-gradient(115deg, #0000 0 18px, #ffffff14 18px 22px),
        linear-gradient(180deg, #9fdcf2 0%, #7cc7ea 55%, #5fb2e0 100%);
}

.play-pack--collection11 .play-pack__burst {
    background: repeating-conic-gradient(from 0deg, #fff36a55 0deg 7deg, #fff36a00 7deg 18deg);
}

/* Пальмовые листья веером из-за солнца-окошка, как на постере. */
.play-pack--collection11 .play-pack__decor {
    inset: auto;
    left: 50%;
    top: 67%;
    width: 104%;
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
    background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20200%20200%22%3E%3Cpath%20d%3D%22M100%20100%20Q66.9%2062.4%2017.7%2052.5%20Q50.9%2090.1%20100%20100Z%22%20fill%3D%22%232f9e2f%22%20stroke%3D%22%23123d12%22%20stroke-width%3D%222.5%22/%3E%3Cpath%20d%3D%22M100%20100%20L17.7%2052.5%22%20stroke%3D%22%23123d12%22%20stroke-width%3D%221.5%22%20stroke-dasharray%3D%224%203%22/%3E%3Cpath%20d%3D%22M100%20100%20Q93.4%2047.9%2057.7%209.4%20Q64.4%2061.4%20100%20100Z%22%20fill%3D%22%2343b83a%22%20stroke%3D%22%23123d12%22%20stroke-width%3D%222.5%22/%3E%3Cpath%20d%3D%22M100%20100%20L57.7%209.4%22%20stroke%3D%22%23123d12%22%20stroke-width%3D%221.5%22%20stroke-dasharray%3D%224%203%22/%3E%3Cpath%20d%3D%22M100%20100%20Q135.6%2061.4%20142.3%209.4%20Q106.6%2047.9%20100%20100Z%22%20fill%3D%22%232f9e2f%22%20stroke%3D%22%23123d12%22%20stroke-width%3D%222.5%22/%3E%3Cpath%20d%3D%22M100%20100%20L142.3%209.4%22%20stroke%3D%22%23123d12%22%20stroke-width%3D%221.5%22%20stroke-dasharray%3D%224%203%22/%3E%3Cpath%20d%3D%22M100%20100%20Q149.1%2090.1%20182.3%2052.5%20Q133.1%2062.4%20100%20100Z%22%20fill%3D%22%2343b83a%22%20stroke%3D%22%23123d12%22%20stroke-width%3D%222.5%22/%3E%3Cpath%20d%3D%22M100%20100%20L182.3%2052.5%22%20stroke%3D%22%23123d12%22%20stroke-width%3D%221.5%22%20stroke-dasharray%3D%224%203%22/%3E%3Cpath%20d%3D%22M100%20100%20Q59.1%2080.4%2015.3%2092.6%20Q56.3%20112.2%20100%20100Z%22%20fill%3D%22%2343b83a%22%20stroke%3D%22%23123d12%22%20stroke-width%3D%222.5%22/%3E%3Cpath%20d%3D%22M100%20100%20L15.3%2092.6%22%20stroke%3D%22%23123d12%22%20stroke-width%3D%221.5%22%20stroke-dasharray%3D%224%203%22/%3E%3Cpath%20d%3D%22M100%20100%20Q143.7%20112.2%20184.7%2092.6%20Q140.9%2080.4%20100%20100Z%22%20fill%3D%22%232f9e2f%22%20stroke%3D%22%23123d12%22%20stroke-width%3D%222.5%22/%3E%3Cpath%20d%3D%22M100%20100%20L184.7%2092.6%22%20stroke%3D%22%23123d12%22%20stroke-width%3D%221.5%22%20stroke-dasharray%3D%224%203%22/%3E%3Cpath%20d%3D%22M100%20100%20Q57.4%20106.1%2030.7%20140.0%20Q73.4%20133.9%20100%20100Z%22%20fill%3D%22%232f9e2f%22%20stroke%3D%22%23123d12%22%20stroke-width%3D%222.5%22/%3E%3Cpath%20d%3D%22M100%20100%20L30.7%20140.0%22%20stroke%3D%22%23123d12%22%20stroke-width%3D%221.5%22%20stroke-dasharray%3D%224%203%22/%3E%3Cpath%20d%3D%22M100%20100%20Q126.6%20133.9%20169.3%20140.0%20Q142.6%20106.1%20100%20100Z%22%20fill%3D%22%2343b83a%22%20stroke%3D%22%23123d12%22%20stroke-width%3D%222.5%22/%3E%3Cpath%20d%3D%22M100%20100%20L169.3%20140.0%22%20stroke%3D%22%23123d12%22%20stroke-width%3D%221.5%22%20stroke-dasharray%3D%224%203%22/%3E%3C/svg%3E") center / contain no-repeat;
    filter: drop-shadow(0 3px 3px #0005);
}

.play-pack--collection11 .play-pack__title {
    font-family: 'Arial Black', Impact, sans-serif;
    /* Полное название в три строки: Pineapple / Orange / Guava. */
    white-space: normal;
    word-spacing: 100vw;
    font-size: calc(var(--pack-w) * .085);
    line-height: 1.02;
    letter-spacing: 1px;
    color: #3fae3a;
    -webkit-text-stroke: 2px #1a1a1a;
    paint-order: stroke fill;
    text-shadow: 2px 2px 0 #fffbe0, 3px 3px 0 #1a1a1a;
    transform: rotate(-5deg);
}

.play-pack--collection11 .play-pack__tagline {
    font-size: calc(var(--pack-w) * .04);
    letter-spacing: 1px;
    position: relative;
    z-index: 1;
    padding: 1px 6px;
    border-radius: 6px;
    background: #fffbe0;
    color: #1a1a1a;
}

.play-pack--collection11 .play-pack__triangle {
    width: 62%;
    background: #f05a1e;
    padding: 5px;
}

.play-pack--collection11 .play-pack__triangle-inner {
    background: #ffe81a;
    padding: 5px;
}

.play-pack--collection11 .play-pack__triangle-inner::before {
    inset: 8px;
    background: radial-gradient(circle at 50% 45%, #fff69a, #ffd400 60%, #f0a000);
}

.play-pack--collection11 .play-pack__art--1 { left: 10%; top: 18%; width: 38%; }
.play-pack--collection11 .play-pack__art--2 { left: 28%; top: 34%; width: 44%; }
.play-pack--collection11 .play-pack__art--3 { right: 10%; top: 18%; width: 38%; }

.play-pack--collection11 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #ffb27a, #f05a1e 60%, #9a2e00);
    color: #fff;
}

/* Редкая удача в паке City People: вещь стала копчёным палтусом. */
.pack-stage__halibut {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .6rem .9rem;
    border-radius: 16px;
    background: linear-gradient(135deg, #ffd84a, #ff9a1a);
    color: #3a1a00;
    font-weight: 800;
    text-align: left;
    box-shadow: 0 0 24px #ffd84a99;
    animation: pc-halibut-pop .7s cubic-bezier(.2, 1.6, .4, 1) both, pc-rewards-pulse 1.6s ease-in-out .7s infinite;
}

.pack-stage__halibut img {
    width: 56px;
    height: auto;
    flex: none;
}

@keyframes pc-halibut-pop {
    from { transform: scale(.4); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

/* Pineapple Orange Guava 2 (Série n°2): бордовая фольга с зелёно-золотыми полосами, как французский пакет;
   серые буквы с белой обводкой, жёлто-зелёное «Série n°» и большая зелёная «2», оранжевая плашка. */
.play-pack--collection12 .play-pack__body {
    --win-shape: circle(50%);
    background:
        repeating-linear-gradient(118deg, #0000 0 22px, #6f8f2a99 22px 30px, #0000 30px 46px, #c9a64a66 46px 50px),
        radial-gradient(ellipse 70% 40% at 50% 45%, #9a3a3a 0%, #5a1a22 60%, #3a0e16 100%);
}

.play-pack--collection12 .play-pack__burst {
    background: repeating-conic-gradient(from 0deg, #ffd27a22 0deg 6deg, #0000 6deg 18deg);
}

.play-pack--collection12 .play-pack__decor {
    background: linear-gradient(100deg, #ffffff00 30%, #ffffff22 45%, #ffffff00 55%);
}

.play-pack--themed .play-pack__pog2 {
    display: flex;
    flex-direction: column;
    align-items: center;
    white-space: normal;
    word-spacing: 100vw;
    font-family: 'Arial Black', Impact, sans-serif;
    font-size: calc(var(--pack-w) * .075);
    line-height: 1.02;
    letter-spacing: 1px;
    color: #5d6670;
    -webkit-text-stroke: 1.5px #fff;
    paint-order: stroke fill;
    text-shadow: 2px 2px 0 #111;
    transform: rotate(-4deg);
}

.play-pack--themed .play-pack__pog2 span {
    margin-top: 2%;
    word-spacing: normal;
    white-space: nowrap;
    font-style: italic;
    font-size: calc(var(--pack-w) * .1);
    text-transform: none;
    color: #d6e83a;
    -webkit-text-stroke: 1.5px #2a3a08;
}

.play-pack--themed .play-pack__pog2 b {
    font-size: 1.6em;
    color: #3fbf3a;
    -webkit-text-stroke: 2px #0d3a0a;
}

.play-pack--collection12 .play-pack__tagline {
    position: relative;
    z-index: 1;
    margin-top: 2%;
    padding: 1px 8px;
    border-radius: 4px;
    background: #f29a1a;
    color: #4a1a00;
    font-size: calc(var(--pack-w) * .038);
    transform: rotate(-4deg);
}

.play-pack--collection12 .play-pack__triangle {
    width: 56%;
    background: #f29a1a;
    padding: 4px;
}

.play-pack--collection12 .play-pack__triangle-inner {
    background: #7a1f5a;
    padding: 4px;
}

.play-pack--collection12 .play-pack__triangle-inner::before {
    inset: 6px;
    background: radial-gradient(circle at 50% 40%, #a8406a, #3a0e16);
}

.play-pack--collection12 .play-pack__art--1 { left: 8%; top: 18%; width: 40%; }
.play-pack--collection12 .play-pack__art--2 { left: 27%; top: 34%; width: 46%; }
.play-pack--collection12 .play-pack__art--3 { right: 8%; top: 18%; width: 40%; }

.play-pack--collection12 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #ffd27a, #f29a1a 60%, #8a4a00);
    color: #3a0e16;
}

/* Pineapple Orange Guava 3 (Tour du Monde, Série n°3): жёлто-оранжевый закат с силуэтами небоскрёбов,
   оранжевое «Tour du Monde» с чёрной обводкой, бирюзовое «Série n°» и красная «3». */
.play-pack--collection13 .play-pack__body {
    --win-shape: circle(50%);
    background:
        linear-gradient(0deg, #0000 0 70%, #0000 70%),
        repeating-linear-gradient(90deg, #c2581f55 0 10px, #0000 10px 16px, #c2581f33 16px 22px, #0000 22px 34px) 0 0 / 100% 30% no-repeat,
        radial-gradient(ellipse 80% 50% at 60% 40%, #fff3a0 0%, #ffd23a 40%, #ff9a1a 75%, #e8601a 100%);
}

.play-pack--collection13 .play-pack__burst {
    background: repeating-conic-gradient(from 0deg, #ffffff40 0deg 6deg, #fff0 6deg 18deg);
}

.play-pack--collection13 .play-pack__decor {
    background: linear-gradient(170deg, #0000 60%, #c2581f22 61%);
}

.play-pack--themed .play-pack__pog3 {
    display: flex;
    flex-direction: column;
    align-items: center;
    white-space: nowrap;
    font-family: 'Arial Black', Impact, sans-serif;
    font-size: calc(var(--pack-w) * .11);
    line-height: .95;
    letter-spacing: 1px;
    color: #ff7a1a;
    -webkit-text-stroke: 2px #1a1a1a;
    paint-order: stroke fill;
    text-shadow: 2px 2px 0 #1a1a1a;
    transform: rotate(-5deg);
}

.play-pack--themed .play-pack__pog3 span {
    margin-top: 3%;
    font-style: italic;
    font-size: calc(var(--pack-w) * .075);
    text-transform: none;
    color: #2bb5b0;
    -webkit-text-stroke: 1.5px #0d3a38;
}

.play-pack--themed .play-pack__pog3 b {
    font-size: 1.7em;
    color: #e8241a;
    -webkit-text-stroke: 2px #3a0a00;
}

.play-pack--collection13 .play-pack__tagline {
    position: relative;
    z-index: 1;
    margin-top: 2%;
    padding: 1px 8px;
    border-radius: 4px;
    background: #e8241a;
    color: #fff;
    font-size: calc(var(--pack-w) * .038);
    transform: rotate(-4deg);
}

.play-pack--collection13 .play-pack__triangle {
    width: 56%;
    background: #1a1a1a;
    padding: 4px;
}

.play-pack--collection13 .play-pack__triangle-inner {
    background: #2bb5b0;
    padding: 4px;
}

.play-pack--collection13 .play-pack__triangle-inner::before {
    inset: 6px;
    background: radial-gradient(circle at 50% 40%, #ffe27a, #e8601a);
}

.play-pack--collection13 .play-pack__art--1 { left: 8%; top: 18%; width: 40%; }
.play-pack--collection13 .play-pack__art--2 { left: 27%; top: 34%; width: 46%; }
.play-pack--collection13 .play-pack__art--3 { right: 8%; top: 18%; width: 40%; }

.play-pack--collection13 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #ff8a7a, #e8241a 60%, #7a0a00);
    color: #fff;
}

/* Monsters: ночное фиолетовое небо с голографическими искрами, как фоны фишек; кости по краям;
   кислотно-зелёное «MONSTERS» с потёками слизи; окошко в форме гроба. */
.play-pack--collection14 .play-pack__body {
    --win-shape: polygon(30% 0, 70% 0, 92% 22%, 78% 100%, 22% 100%, 8% 22%);
    background:
        radial-gradient(circle at 20% 30%, #7af0ff66 0 1px, #0000 2px) 0 0 / 11px 13px,
        radial-gradient(circle at 70% 60%, #ff7ae066 0 1px, #0000 2px) 0 0 / 15px 9px,
        radial-gradient(ellipse 70% 45% at 50% 45%, #5a2a8a 0%, #2a1050 60%, #12061f 100%);
}

.play-pack--collection14 .play-pack__burst {
    background: repeating-conic-gradient(from 0deg, #7cff3a22 0deg 6deg, #0000 6deg 18deg);
}

/* Кости по бокам. */
.play-pack--collection14 .play-pack__decor {
    background:
        radial-gradient(circle at 50% 50%, #f2ecd8 0 3px, #0000 3.5px) -2px 0 / 12px 30px repeat-y,
        linear-gradient(#f2ecd8, #f2ecd8) 2px 0 / 3px 30px repeat-y,
        radial-gradient(circle at 50% 50%, #f2ecd8 0 3px, #0000 3.5px) right -2px top 15px / 12px 30px repeat-y,
        linear-gradient(#f2ecd8, #f2ecd8) right 2px top 15px / 3px 30px repeat-y;
    opacity: .85;
}

.play-pack--themed .play-pack__monsters {
    position: relative;
    font-family: 'Arial Black', Impact, sans-serif;
    font-size: calc(var(--pack-w) * .15);
    letter-spacing: 1px;
    color: #8cff3a;
    -webkit-text-stroke: 2px #12300a;
    paint-order: stroke fill;
    text-shadow: 0 0 10px #8cff3a99, 2px 3px 0 #12300a;
    transform: rotate(-3deg);
}

/* Потёки слизи под буквами. */
.play-pack--themed .play-pack__monsters::after {
    content: '';
    position: absolute;
    left: 8%;
    right: 8%;
    top: 78%;
    height: .55em;
    background:
        radial-gradient(ellipse 4% 90% at 12% 0, #8cff3a 60%, #0000 62%),
        radial-gradient(ellipse 3% 60% at 34% 0, #8cff3a 60%, #0000 62%),
        radial-gradient(ellipse 5% 100% at 58% 0, #8cff3a 60%, #0000 62%),
        radial-gradient(ellipse 3% 70% at 83% 0, #8cff3a 60%, #0000 62%);
    filter: drop-shadow(1px 1px 0 #12300a);
}

.play-pack--collection14 .play-pack__tagline {
    margin-top: 6%;
    color: #ff7ae0;
    font-style: italic;
    letter-spacing: 2px;
    text-shadow: 0 0 6px #ff7ae0aa;
}

.play-pack--collection14 .play-pack__triangle {
    width: 56%;
    aspect-ratio: 1 / 1.15;
    background: #8a4a1f;
    padding: 4px;
}

.play-pack--collection14 .play-pack__triangle-inner {
    background: #2a1408;
    padding: 3px;
}

.play-pack--collection14 .play-pack__triangle-inner::before {
    inset: 5px;
    background: radial-gradient(circle at 50% 40%, #3a6a1a, #0a1a05);
}

.play-pack--collection14 .play-pack__art--1 { left: 6%; top: 14%; width: 42%; }
.play-pack--collection14 .play-pack__art--2 { left: 24%; top: 34%; width: 52%; }
.play-pack--collection14 .play-pack__art--3 { right: 6%; top: 14%; width: 42%; }

.play-pack--collection14 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #c8ff8a, #8cff3a 55%, #2a6a0a);
    color: #12300a;
}

/* Classic: жёлтый фон в красно-белую клетку (суп на фишке №13), красная кайма как у фишек;
   комиксное «CLASSIC» с чёрной обводкой; окошко — красный круг. */
.play-pack--collection15 .play-pack__body {
    --win-shape: circle(50%);
    background:
        radial-gradient(ellipse 70% 40% at 50% 50%, #fff36a 0%, #ffd400 55%, #f2b600 100%);
}

.play-pack--collection15 .play-pack__burst {
    background: repeating-conic-gradient(from 0deg, #ff3b1f30 0deg 8deg, #0000 8deg 20deg);
}

/* Красно-белая клетка внизу и сверху. */
.play-pack--collection15 .play-pack__decor {
    background:
        conic-gradient(#e8241a 25%, #fff 0 50%, #e8241a 0 75%, #fff 0) 0 0 / 22px 22px;
    -webkit-mask: linear-gradient(#000 0 9%, #0000 9% 88%, #000 88%);
    mask: linear-gradient(#000 0 9%, #0000 9% 88%, #000 88%);
}

.play-pack--themed .play-pack__classic {
    margin-top: 12%;
    font-family: 'Arial Black', Impact, sans-serif;
    font-style: italic;
    font-size: calc(var(--pack-w) * .16);
    letter-spacing: 1px;
    color: #e8241a;
    -webkit-text-stroke: 2px #111;
    paint-order: stroke fill;
    text-shadow: 3px 3px 0 #111;
    transform: rotate(-6deg);
}

.play-pack--collection15 .play-pack__tagline {
    color: #111;
    font-size: calc(var(--pack-w) * .042);
}

.play-pack--collection15 .play-pack__triangle {
    width: 58%;
    background: #111;
    padding: 4px;
}

.play-pack--collection15 .play-pack__triangle-inner {
    background: #e8241a;
    padding: 5px;
}

.play-pack--collection15 .play-pack__triangle-inner::before {
    inset: 7px;
    background: radial-gradient(circle at 50% 40%, #6fd0ff, #1a8ad6);
}

.play-pack--collection15 .play-pack__art--1 { left: 8%; top: 18%; width: 40%; }
.play-pack--collection15 .play-pack__art--2 { left: 27%; top: 34%; width: 46%; }
.play-pack--collection15 .play-pack__art--3 { right: 8%; top: 18%; width: 40%; }

.play-pack--collection15 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #ff8a7a, #e8241a 60%, #7a0a00);
    color: #fff;
    border-color: #111;
}

/* Anime: малиновая обёртка жвачки 90-х в потёртостях; синее «ANIME» в жёлтой звезде-взрыве;
   жёлтая курсивная подпись; окошко — золотая медаль. */
.play-pack--collection16 .play-pack__body {
    --win-shape: circle(50%);
    background:
        radial-gradient(ellipse 30% 8% at 30% 20%, #ffffff22 0 60%, #0000 62%),
        radial-gradient(ellipse 20% 6% at 75% 80%, #ffffff1a 0 60%, #0000 62%),
        linear-gradient(170deg, #e8247a 0%, #d0156a 50%, #b80d5a 100%);
}

.play-pack--collection16 .play-pack__burst {
    background: repeating-conic-gradient(from 0deg, #ffffff22 0deg 5deg, #0000 5deg 15deg);
}

.play-pack--collection16 .play-pack__decor {
    background: repeating-linear-gradient(80deg, #0000 0 30px, #ffffff0d 30px 32px);
}

.play-pack--themed .play-pack__anime {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 9% 14%;
    margin-top: 4%;
    background: #ffe81a;
    clip-path: polygon(50% 0, 58% 14%, 74% 4%, 74% 22%, 94% 18%, 84% 34%, 100% 44%, 84% 54%, 96% 70%, 76% 70%, 78% 90%, 60% 80%, 50% 100%, 40% 80%, 22% 90%, 24% 70%, 4% 70%, 16% 54%, 0 44%, 16% 34%, 6% 18%, 26% 22%, 26% 4%, 42% 14%);
    font-family: 'Arial Black', Impact, sans-serif;
    font-style: italic;
    color: #3a7ae0;
    -webkit-text-stroke: 1.5px #0d2a6a;
    paint-order: stroke fill;
    text-shadow: none;
    filter: drop-shadow(0 3px 3px #0006);
}

.play-pack--themed .play-pack__anime span {
    font-size: calc(var(--pack-w) * .13);
    line-height: 1;
}

.play-pack--themed .play-pack__anime small {
    margin-top: 2%;
    font-size: calc(var(--pack-w) * .045);
    letter-spacing: 0;
    color: #e8241a;
    -webkit-text-stroke: 0;
}

.play-pack--collection16 .play-pack__tagline {
    margin-top: 2%;
    font-style: italic;
    font-size: calc(var(--pack-w) * .042);
    color: #ffe81a;
    text-shadow: 0 1px 0 #6a0030;
}

.play-pack--collection16 .play-pack__triangle {
    width: 54%;
    margin-top: 2%;
    background: linear-gradient(135deg, #fff1a0, #d99a1a 45%, #fff1a0 70%, #a8700a);
    padding: 5px;
}

.play-pack--collection16 .play-pack__triangle-inner {
    background: #8a5a0a;
    padding: 2px;
}

.play-pack--collection16 .play-pack__triangle-inner::before {
    inset: 3px;
    background: radial-gradient(circle at 40% 35%, #ffe27a, #d99a1a 60%, #8a5a0a);
}

.play-pack--collection16 .play-pack__art--1 { left: 8%; top: 18%; width: 40%; }
.play-pack--collection16 .play-pack__art--2 { left: 27%; top: 34%; width: 46%; }
.play-pack--collection16 .play-pack__art--3 { right: 8%; top: 18%; width: 40%; }

.play-pack--collection16 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #fff36a, #ffd400 55%, #b88a00);
    color: #d0156a;
}

.home__pack .play-pack__anime small,
.packs__item .play-pack__anime small {
    display: none;
}

/* Circus of Freaks: как коробка «Летающих кэпсов» — фиолетово-синее небо с белым росчерком и искрами;
   синие буквы на жёлтом овале с розовой зубчатой каймой; подпись — в красном взрыве;
   окошко в радужной полосатой рамке, как кромка фишек. */
.play-pack--collection17 .play-pack__body {
    --win-shape: circle(50%);
    background:
        radial-gradient(circle at 18% 30%, #fff 0 1.5px, #0000 2.5px),
        radial-gradient(circle at 82% 22%, #fff 0 1.5px, #0000 2.5px),
        radial-gradient(circle at 88% 62%, #fff 0 1px, #0000 2px),
        radial-gradient(circle at 12% 72%, #fff 0 1px, #0000 2px),
        linear-gradient(115deg, #0000 38%, #ffffff40 46%, #ffffffa0 50%, #ffffff40 54%, #0000 62%),
        linear-gradient(170deg, #5a4ad8 0%, #3a2aa8 45%, #24186e 100%);
}

.play-pack--collection17 .play-pack__burst {
    background: radial-gradient(circle at 50% 70%, #6ab0ff40, #0000 55%);
}

.play-pack--collection17 .play-pack__decor {
    background:
        radial-gradient(circle at 70% 40%, #fff 0 1px, #0000 2px),
        radial-gradient(circle at 30% 88%, #fff 0 1px, #0000 2px);
}

.play-pack--themed .play-pack__freaks {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 86%;
    padding: 6% 0 7%;
    margin-top: 5%;
    border-radius: 50%;
    background:
        radial-gradient(circle at 30% 30%, #fffbd0 0 1px, #0000 2px) 0 0 / 7px 7px,
        radial-gradient(ellipse, #fff36a, #ffd400 70%, #e8b400);
    box-shadow: 0 0 0 4px #ff5aa8, 0 0 0 6px #b0206a, 0 4px 8px 6px #0006;
    font-family: 'Arial Black', Impact, sans-serif;
    color: #1a2a9a;
    -webkit-text-stroke: 1px #0a1050;
    paint-order: stroke fill;
    text-shadow: none;
    transform: rotate(-6deg);
}

.play-pack--themed .play-pack__freaks span {
    font-size: calc(var(--pack-w) * .12);
    line-height: 1;
    letter-spacing: -.02em;
}

.play-pack--themed .play-pack__freaks small {
    font-size: calc(var(--pack-w) * .07);
    line-height: 1.05;
}

.play-pack--collection17 .play-pack__tagline {
    margin-top: 5%;
    padding: 3% 9%;
    background: #e8241a;
    clip-path: polygon(0 20%, 8% 0, 20% 18%, 34% 2%, 50% 16%, 66% 0, 80% 18%, 94% 2%, 100% 30%, 94% 56%, 100% 82%, 86% 74%, 74% 100%, 60% 82%, 46% 100%, 32% 80%, 18% 98%, 10% 76%, 0 86%, 6% 54%);
    font-style: italic;
    font-size: calc(var(--pack-w) * .045);
    color: #ffe81a;
    text-shadow: 0 1px 0 #6a0000;
}

.play-pack--collection17 .play-pack__triangle {
    width: 54%;
    margin-top: 3%;
    background: repeating-conic-gradient(#e8241a 0 6deg, #ffd400 6deg 12deg, #1fae5a 12deg 18deg, #2a6ae0 18deg 24deg, #8a2ad0 24deg 30deg);
    padding: 6px;
}

.play-pack--collection17 .play-pack__triangle-inner {
    background: #12104a;
    padding: 2px;
}

.play-pack--collection17 .play-pack__triangle-inner::before {
    inset: 3px;
    background: radial-gradient(circle at 40% 35%, #7a6aff, #2a1a8a 70%);
}

.play-pack--collection17 .play-pack__art--1 { left: 8%; top: 18%; width: 40%; }
.play-pack--collection17 .play-pack__art--2 { left: 27%; top: 34%; width: 46%; }
.play-pack--collection17 .play-pack__art--3 { right: 8%; top: 18%; width: 40%; }

.play-pack--collection17 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #ff8a7a, #e8241a 60%, #7a0a00);
    color: #ffe81a;
}

/* Переключатель «Скрыть коллекции 18+» на главной — отдельной строкой по центру под кнопками. */
.home__adult {
    align-self: center;
    margin-top: .5rem;
    z-index: 5;
}

.home__adult-switch {
    /* Высота как у кнопок «Бита» и «Награды»: 8px + 24px (как их иконки) + 8px. */
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px 8px 8px;
    border: 0;
    border-radius: 41px;
    background: #ffffff1a;
    color: #ffffffb3;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 16px;
    white-space: nowrap;
    cursor: pointer;
}

.home__adult-track {
    position: relative;
    width: 40px;
    height: 24px;
    border-radius: 12px;
    background: #ffffff33;
    transition: background .25s;
}

.home__adult-knob {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    transition: transform .25s;
}

.home__adult-switch--on {
    color: #fff;
}

.home__adult-switch--on .home__adult-track {
    background: #ff4740;
}

.home__adult-switch--on .home__adult-knob {
    transform: translateX(16px);
}

/* Street Fighter: зелёная фольга с бликами; огненное «SF» (жёлтый → оранжевый → красный)
   с тёмно-красной обводкой, ступенькой; красная курсивная подпись; окошко в золотисто-зелёной рамке. */
.play-pack--collection18 .play-pack__body {
    /* Окошко — хадукен: шар энергии с закрученными вокруг потоками (форма — widgets/_pack_shapes.svg.twig). */
    --win-shape: url(#pack-fireball);
    background:
        linear-gradient(115deg, #0000 20%, #ffffff55 30%, #0000 40%, #0000 62%, #ffffff3a 70%, #0000 78%),
        radial-gradient(ellipse 70% 50% at 30% 30%, #d8ff7a, #0000 70%),
        linear-gradient(170deg, #9ad83a 0%, #5aa81a 40%, #3a7a0a 75%, #7ac22a 100%);
}

.play-pack--collection18 .play-pack__burst {
    background: repeating-linear-gradient(100deg, #ffffff14 0 2px, #0000 2px 9px);
}

.play-pack--collection18 .play-pack__decor {
    background: repeating-linear-gradient(80deg, #0000 0 22px, #ffffff12 22px 24px);
}

.play-pack--themed .play-pack__sf {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 6%;
    font-family: Impact, 'Arial Black', sans-serif;
    font-style: italic;
    text-transform: uppercase;
    line-height: .92;
    letter-spacing: .01em;
    color: #ffb000;
    background: linear-gradient(180deg, #fff27a 0%, #ffc21a 35%, #ff6a00 70%, #d81a00 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: 1px #5a0000;
    text-shadow: none;
    filter: drop-shadow(2px 2px 0 #5a0000) drop-shadow(0 3px 3px #0006);
    transform: rotate(-4deg);
}

.play-pack--themed .play-pack__sf span {
    font-size: calc(var(--pack-w) * .3);
    padding-right: .08em;
}

.play-pack--collection18 .play-pack__tagline {
    margin-top: 3%;
    font-style: italic;
    font-size: calc(var(--pack-w) * .045);
    color: #e8241a;
    text-shadow: 0 1px 0 #ffffff80;
}

.play-pack--collection18 .play-pack__triangle {
    width: 76%;
    margin-top: 3%;
    background: #1a5fd0;
    padding: 2px;
}

/* Хадукен: белое ядро шара, голубое свечение, языки пламени темнеют к хвосту. */
.play-pack--collection18 .play-pack__triangle-inner {
    padding: 0;
    background:
        radial-gradient(circle at 50% 50%, #ffffff 0 14%, #d8f6ff 24%, #6fd4ff 36%, #1e9be8 50%, #8fe4ff 62%, #3ab0f0 80%, #1a6fd0 100%);
}

.play-pack--collection18 .play-pack__triangle-inner::before {
    display: none;
}

.play-pack--collection18 .play-pack__art--1 { left: 22%; top: 26%; width: 28%; }
.play-pack--collection18 .play-pack__art--2 { left: 34%; top: 38%; width: 32%; }
.play-pack--collection18 .play-pack__art--3 { right: 22%; top: 26%; width: 28%; }

.play-pack--collection18 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #ff8a7a, #e8241a 60%, #7a0a00);
    color: #fff27a;
}

/* «Открыть все» на экране пака — под пакетом. */
.pack-stage__all {
    position: relative;
    z-index: 3;
    width: min(340px, calc(100% - 2rem));
}

/* Пока идёт «Открыть все», вместо кнопок «Открыть ещё / все» — только «Остановить». */
.pack-stage__more {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.pack-stage__more--auto {
    display: none;
}

/* «Прокачать в PvP» / «Мои PvP-игры» на странице фишки: ссылка — блок во всю ширину, с отступами для текста. */
.cap__info-button .button {
    display: block;
    box-sizing: border-box;
    padding-left: 16px;
    padding-right: 16px;
    text-align: center;
}

/* Gold: мятая синяя фольга со звёздочками; объёмное золотое «GOLD» с тёмной обводкой;
   подпись лимонными буквами; окошко — золотая монета с ободком. */
.play-pack--collection19 .play-pack__body {
    --win-shape: circle(50%);
    background:
        radial-gradient(circle at 12% 18%, #fff 0 1.5px, #0000 2.5px),
        radial-gradient(circle at 86% 26%, #fff 0 1.5px, #0000 2.5px),
        radial-gradient(circle at 78% 70%, #fff 0 1px, #0000 2px),
        radial-gradient(circle at 20% 82%, #fff 0 1px, #0000 2px),
        linear-gradient(120deg, #0000 25%, #ffffff40 34%, #0000 44%, #0000 60%, #ffffff2e 68%, #0000 76%),
        linear-gradient(160deg, #2a6ad8 0%, #1440a0 45%, #0a2670 100%);
}

.play-pack--collection19 .play-pack__burst {
    background:
        conic-gradient(from 0deg at 30% 40%, #ffffff12, #0000 20%, #ffffff0c 40%, #0000 60%, #ffffff10 80%, #0000),
        radial-gradient(circle at 50% 50%, #6ab0ff2a, #0000 60%);
}

.play-pack--collection19 .play-pack__decor {
    background:
        radial-gradient(circle at 40% 12%, #fff 0 1px, #0000 2px),
        radial-gradient(circle at 62% 90%, #fff 0 1px, #0000 2px),
        radial-gradient(circle at 92% 48%, #fff 0 1.5px, #0000 2.5px),
        radial-gradient(circle at 6% 50%, #fff 0 1.5px, #0000 2.5px);
}

.play-pack--themed .play-pack__gold {
    margin-top: 6%;
    font-family: 'Arial Black', Impact, sans-serif;
    font-size: calc(var(--pack-w) * .2);
    line-height: 1;
    letter-spacing: .02em;
    text-transform: uppercase;
    background: linear-gradient(180deg, #fff6b0 0%, #ffd23a 30%, #d99a1a 55%, #fff1a0 70%, #a8700a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: 1.5px #5a3a00;
    text-shadow: none;
    filter: drop-shadow(2px 3px 0 #3a2400) drop-shadow(0 4px 4px #0008);
    transform: rotate(-3deg);
}

.play-pack--collection19 .play-pack__tagline {
    margin-top: 2%;
    font-size: calc(var(--pack-w) * .04);
    color: #d8ff3a;
    text-shadow: 0 1px 0 #0a2670;
}

.play-pack--collection19 .play-pack__triangle {
    width: 56%;
    margin-top: 3%;
    background: radial-gradient(circle at 35% 30%, #fff6b0, #d9a21a 45%, #8a5a0a 80%, #d9a21a);
    padding: 6px;
}

.play-pack--collection19 .play-pack__triangle-inner {
    background: #5a3a00;
    padding: 2px;
}

.play-pack--collection19 .play-pack__triangle-inner::before {
    inset: 3px;
    background: radial-gradient(circle at 40% 35%, #c8823a, #6a3a10 70%);
}

.play-pack--collection19 .play-pack__art--1 { left: 8%; top: 18%; width: 40%; }
.play-pack--collection19 .play-pack__art--2 { left: 27%; top: 34%; width: 46%; }
.play-pack--collection19 .play-pack__art--3 { right: 8%; top: 18%; width: 40%; }

.play-pack--collection19 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #fff6b0, #ffd23a 55%, #a8700a);
    color: #0a2670;
}

/* Скруглённый торец фишки, как у настоящей картонной: по краю круга блик сверху слева, тень снизу справа
   и тонкая светлая полоска картона снизу. В списках — кольцо поверх картинки (дёшево для длинных списков),
   у переворачивающихся в 3D картинок — SVG-фильтр #cap-edge из game/layout (переворачивается вместе с ними). */
.cap__img-wrapper::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: 50%;
    pointer-events: none;
    background: linear-gradient(135deg, #ffffffd0 0%, #ffffff40 28%, #0000 48%, #0000 55%, #00000040 75%, #000000b0 100%);
    /* Толщина торца растёт вместе с фишкой: 4.5% радиуса, но не тоньше 3px (на маленьких фишках). */
    -webkit-mask: radial-gradient(closest-side, #0000 calc(100% - max(3px, 4.5%)), #000 calc(100% - max(.5px, .8%)));
    mask: radial-gradient(closest-side, #0000 calc(100% - max(3px, 4.5%)), #000 calc(100% - max(.5px, .8%)));
}

.cap__img-wrapper::after {
    /* Полоска картона по нижнему краю. */
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    border-radius: 50%;
    pointer-events: none;
    box-shadow: 0 3px 5px #0006;
}

/* За край фишки выходит только свечение крутости. Цветная подложка под картинкой выглядывала из-под неё:
   круг на скане фишки чуть меньше картинки и бывает смещён. */
.cap__element[class*="cap__element--rare-"] .cap__img-wrapper {
    background: none;
}

.cap__element--medium .cap__img-wrapper {
    padding: 0;
}

/* Проигранная фишка — серая и без свечения: посеревшее свечение выглядело как выглядывающая подложка. */
.cap__element--removed .cap__img-wrapper {
    filter: none !important;
    box-shadow: none !important;
}

.cap__element--removed .cap__img,
.cap__element--removed .cap-tear__piece {
    filter: grayscale(100%);
}

.pack-cap__face--back,
.bita-cap__face--front,
.pvp-start__side--face,
.play-pack__art {
    filter: url(#cap-edge);
}

.auth__cap {
    filter: url(#cap-edge) blur(.3px) drop-shadow(0 6px 8px #0008);
}

/* Кольцо при прокачке в PvP — своё, без полоски картона и со своим размером. */
.fate-upgrade-anim .cap__element .cap__img-wrapper::after {
    inset: -10%;
    box-shadow: none;
}

/* «✕ Удалить» — отклонить ставку в списке ставок своей игры: текстом, как слово «Открыта», только красным.
   Нажимается не только по буквам: невидимые поля вокруг дают пальцу место (поля съедены отрицательным отступом). */
.game-caps-list__reject-form {
    margin-left: auto;
    align-self: end;
}

.game-caps-list__reject {
    display: block;
    margin: -14px -12px -14px 0;
    padding: 14px 12px 14px 16px;
    border: 0;
    background: none;
    color: #ff6b64;
    font: inherit;
    font-size: 13px;
    font-weight: 500;
    line-height: 15.73px;
    white-space: nowrap;
    cursor: pointer;
}

.game-caps-list__reject-x {
    margin-right: 4px;
}

.game-caps-list__reject:active {
    opacity: .6;
}

/* Фишки ставки — чуть ниже шапки с ником (раньше почти касались её). */
.game-caps-list__caps {
    margin-top: 6px;
}

/* RTP игры PvP: 100% против игроков, 90% против бота (бот выигрывает чуть чаще). */
.pvp-rtp {
    align-self: end;
    padding: 1px 7px;
    border-radius: 10px;
    background: #2fd06a26;
    color: #6be59a;
    font-size: 11px;
    font-weight: 700;
    line-height: 15px;
    white-space: nowrap;
}

.pvp-rtp--bot {
    background: #ffb02e26;
    color: #ffc35c;
}

.cap-select__opponent-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    align-self: stretch;
}

.cap-select__opponent-head .pvp-rtp {
    flex-shrink: 0;
}

.game-caps-list__first .pvp-rtp {
    align-self: center;
    flex-shrink: 0;
}

/* Выбранные номера под кнопкой «Выбрать номера» на экране создания игры. */
.battle-preference__picked {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
    margin-bottom: .5rem;
}

.battle-preference__picked[hidden] {
    display: none;
}

.battle-preference__picked-cap {
    min-width: 0;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
}

/* Переключатель «Ставки от ботов» в лобби PvP — тот же, что «Скрыть коллекции 18+» на главной. */
.pvp-bot-bets {
    align-self: flex-start;
}

/* The Mask: оранжевая середина, жёлтые края с мелким текстом, зелёное MASK неровными буквами. */
.play-pack--collection20 .play-pack__body {
    /* Окошко — клякса с потёками и брызгами (форма — widgets/_pack_shapes.svg.twig). */
    --win-shape: url(#pack-splat);
    background:
        repeating-linear-gradient(0deg, #0000 0 3px, #8a5a0040 3px 4px) 0 0 / 11% 100% no-repeat,
        repeating-linear-gradient(0deg, #0000 0 3px, #8a5a0040 3px 4px) 100% 0 / 11% 100% no-repeat,
        linear-gradient(90deg, #ffd21f 0 11%, #ff7a1a 11% 89%, #ffd21f 89%);
}

.play-pack--collection20 .play-pack__burst {
    background: radial-gradient(circle, #ffffff1f, #0000 60%);
}

.play-pack--collection20 .play-pack__decor { display: none; }

.play-pack__tm {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 4%;
    -webkit-text-stroke: 0;
    text-shadow: none;
    letter-spacing: 0;
    white-space: nowrap;
    font-family: 'Arial Black', 'Roboto', sans-serif;
    font-weight: 900;
}

.tm__the {
    align-self: flex-start;
    margin-left: 22%;
    font-size: calc(var(--pack-w) * .05);
    line-height: 1;
    color: #ffd21f;
    -webkit-text-stroke: 1px #1a1a1a;
    paint-order: stroke fill;
}

.tm__mask {
    display: flex;
    align-items: flex-end;
    font-size: calc(var(--pack-w) * .22);
    line-height: .9;
    color: #2fbf2a;
    -webkit-text-stroke: 2px #111;
    paint-order: stroke fill;
    text-shadow: 3px 3px 0 #6b2a00;
}

/* Неровные, «пляшущие» буквы, как на обёртке. */
.tm__mask i { font-style: normal; display: inline-block; }
.tm__mask i:nth-child(1) { transform: scale(1, 1.15) rotate(-6deg); }
.tm__mask i:nth-child(2) { transform: scale(.9, 1) translateY(4%); }
.tm__mask i:nth-child(3) { transform: scale(.95, 1.1) rotate(5deg); }
.tm__mask i:nth-child(4) { transform: scale(1, 1.2) rotate(-4deg); }

.tm__caps {
    margin-top: 4%;
    font-size: calc(var(--pack-w) * .085);
    line-height: 1;
    color: #ffd21f;
    -webkit-text-stroke: 1.5px #3a1a00;
    paint-order: stroke fill;
    text-shadow: 2px 2px 0 #3a1a00;
}

.play-pack--collection20 .play-pack__triangle {
    width: 78%;
    margin-top: 2%;
    background: #1f5a12;
    padding: 2px;
}

/* Зелёная слизь с бликами, как клякса на картинке. */
.play-pack--collection20 .play-pack__triangle-inner {
    background:
        radial-gradient(circle at 30% 25%, #ffffffaa 0 2%, #0000 3%),
        radial-gradient(circle at 72% 30%, #ffffff88 0 1.5%, #0000 2.5%),
        radial-gradient(circle at 50% 50%, #b4ec4a, #8fd43a 60%, #6cb42a);
    padding: 0;
}

.play-pack--collection20 .play-pack__triangle-inner::before {
    display: none;
}

.play-pack--collection20 .play-pack__art--1 { left: 22%; top: 24%; width: 30%; }
.play-pack--collection20 .play-pack__art--2 { left: 33%; top: 36%; width: 34%; }
.play-pack--collection20 .play-pack__art--3 { right: 22%; top: 24%; width: 30%; }

.play-pack--collection20 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #8dff7a, #2fbf2a 55%, #136b10);
    color: #111;
}

.home__pack .tm__the, .packs__item .tm__the { display: none; }

/* Mowgli: как оборот фишек — оранжевый фон с волокнами картона, MOWGLI на коричневой кляксе, коричневое CAPS. */
.play-pack--collection21 .play-pack__body {
    --win-shape: url(#pack-leaf);
    background:
        repeating-linear-gradient(8deg, #0000 0 5px, #a8400010 5px 6px),
        radial-gradient(ellipse 80% 55% at 50% 45%, #ff8a3a 0%, #f06a1a 60%, #c44a08 100%);
}

.play-pack--collection21 .play-pack__burst {
    background: radial-gradient(circle, #ffffff1a, #0000 60%);
}

.play-pack--collection21 .play-pack__decor { display: none; }

.play-pack__mw {
    position: relative;
    width: 100%;
    margin-top: 6%;
    display: flex;
    flex-direction: column;
    align-items: center;
    -webkit-text-stroke: 0;
    text-shadow: none;
    letter-spacing: 0;
    font-family: 'Arial Black', 'Roboto', sans-serif;
    font-weight: 900;
}

/* Коричневая клякса-пятно под названием. */
.mw__name {
    position: relative;
    padding: 3% 8%;
    font-size: calc(var(--pack-w) * .145);
    line-height: 1;
    color: #f06a1a;
    -webkit-text-stroke: 2.5px #fff;
    paint-order: stroke fill;
    background:
        radial-gradient(circle at 8% 40%, #7a2e10 0 9%, #0000 10%),
        radial-gradient(circle at 92% 55%, #7a2e10 0 10%, #0000 11%),
        radial-gradient(circle at 30% 12%, #7a2e10 0 8%, #0000 9%),
        radial-gradient(circle at 70% 90%, #7a2e10 0 8%, #0000 9%),
        radial-gradient(ellipse 46% 42% at 50% 50%, #7a2e10 96%, #0000 100%);
    transform: rotate(-5deg);
}

.mw__caps {
    margin-top: 2%;
    font-size: calc(var(--pack-w) * .11);
    line-height: 1;
    color: #7a2e10;
    transform: rotate(-5deg);
}

.play-pack--collection21 .play-pack__triangle {
    width: 70%;
    margin-top: 3%;
    background: #fff;
    padding: 3px;
}

.play-pack--collection21 .play-pack__triangle-inner {
    background: #7a2e10;
    padding: 2px;
}

.play-pack--collection21 .play-pack__triangle-inner::before {
    inset: 2px;
    background: radial-gradient(circle at 50% 40%, #b6ef6a, #3fae3a 75%);
}

.play-pack--collection21 .play-pack__art--1 { left: 16%; top: 22%; width: 34%; }
.play-pack--collection21 .play-pack__art--2 { left: 30%; top: 38%; width: 40%; }
.play-pack--collection21 .play-pack__art--3 { right: 14%; top: 18%; width: 34%; }

.play-pack--collection21 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #a8502a, #7a2e10 60%, #4a1a06);
    color: #fff;
}

/* Dalmatians: голубое небо с облаками, разноцветное DALMATIANS CAPS, окошко — косточка в чёрных пятнах. */
.play-pack--collection22 .play-pack__body {
    --win-shape: url(#pack-bone);
    background:
        radial-gradient(ellipse 30% 9% at 22% 14%, #ffffffcc 60%, #0000 62%),
        radial-gradient(ellipse 26% 8% at 80% 30%, #ffffffaa 60%, #0000 62%),
        radial-gradient(ellipse 34% 9% at 30% 88%, #ffffffaa 60%, #0000 62%),
        linear-gradient(180deg, #8ed0f5 0%, #5ab0ea 55%, #3a90d8 100%);
}

.play-pack--collection22 .play-pack__burst {
    background: radial-gradient(circle, #ffffff26, #0000 60%);
}

.play-pack--collection22 .play-pack__decor { display: none; }

.play-pack__dm {
    position: relative;
    width: 100%;
    margin-top: 6%;
    display: flex;
    flex-direction: column;
    align-items: center;
    -webkit-text-stroke: 0;
    text-shadow: none;
    letter-spacing: 0;
    font-family: 'Arial Black', 'Roboto', sans-serif;
    font-weight: 900;
}

.dm__name, .dm__caps {
    display: flex;
    line-height: 1;
}

.dm__name i, .dm__caps i {
    font-style: normal;
    -webkit-text-stroke: 3px #fff;
    paint-order: stroke fill;
    filter: drop-shadow(1px 2px 0 #0a3a6a);
}

.dm__name { font-size: calc(var(--pack-w) * .125); transform: rotate(-3deg); }
.dm__caps { margin-top: 2%; font-size: calc(var(--pack-w) * .16); }
.dm__name i:nth-child(odd), .dm__caps i:nth-child(odd) { transform: translateY(-6%) rotate(-4deg); }
.dm__name i:nth-child(even), .dm__caps i:nth-child(even) { transform: translateY(4%) rotate(3deg); }

.play-pack--collection22 .play-pack__triangle {
    width: 78%;
    aspect-ratio: 1;
    margin-top: 3%;
    background: #111;
    padding: 3px;
}

/* Белая лапа, на подушечке — чёрные пятнышки далматинца. */
.play-pack--collection22 .play-pack__triangle-inner {
    padding: 0;
    background:
        radial-gradient(circle at 30% 52%, #111 0 2.5%, #0000 3%),
        radial-gradient(circle at 72% 46%, #111 0 3%, #0000 3.5%),
        radial-gradient(circle at 12% 76%, #111 0 3%, #0000 3.5%),
        radial-gradient(circle at 80% 88%, #111 0 3%, #0000 3.5%),
        radial-gradient(circle at 24% 90%, #111 0 2.5%, #0000 3%),
        #fff;
}

.play-pack--collection22 .play-pack__triangle-inner::before { display: none; }

.play-pack--collection22 .play-pack__art--1 { left: 16%; top: 48%; width: 32%; }
.play-pack--collection22 .play-pack__art--2 { left: 32%; top: 58%; width: 36%; }
.play-pack--collection22 .play-pack__art--3 { right: 16%; top: 48%; width: 32%; }

.play-pack--collection22 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #fff, #e8e8e8 55%, #9a9a9a);
    color: #111;
}

/* Aladdin: тёмно-синее небо в белых и золотых звёздочках, золотое Aladdin, окошко — волшебная лампа. */
.play-pack--collection23 .play-pack__body {
    --win-shape: url(#pack-lamp);
    background:
        radial-gradient(circle at 18% 12%, #fff 0 .8%, #0000 1.2%),
        radial-gradient(circle at 82% 8%, #ffd21f 0 1%, #0000 1.4%),
        radial-gradient(circle at 90% 40%, #fff 0 .7%, #0000 1.1%),
        radial-gradient(circle at 8% 52%, #ffd21f 0 .9%, #0000 1.3%),
        radial-gradient(circle at 70% 92%, #fff 0 .8%, #0000 1.2%),
        radial-gradient(circle at 24% 88%, #ffd21f 0 1%, #0000 1.4%),
        radial-gradient(circle at 50% 30%, #fff 0 .6%, #0000 1%),
        radial-gradient(ellipse 80% 55% at 50% 45%, #2a4cc8 0%, #1a2f9a 60%, #0e1a5c 100%);
}

.play-pack--collection23 .play-pack__burst {
    background: repeating-conic-gradient(from 0deg, #ffd21f14 0deg 4deg, #0000 4deg 16deg);
}

.play-pack--collection23 .play-pack__decor { display: none; }

.play-pack__al {
    position: relative;
    width: 100%;
    margin-top: 4%;
    display: flex;
    flex-direction: column;
    align-items: center;
    -webkit-text-stroke: 0;
    text-shadow: none;
    letter-spacing: 0;
}

.al__name {
    font-family: 'Brush Script MT', 'Segoe Script', 'Lucida Handwriting', cursive;
    font-style: italic;
    font-weight: 700;
    text-transform: none;
    font-size: calc(var(--pack-w) * .2);
    line-height: 1;
    color: #ffd21f;
    -webkit-text-stroke: 3px #fff;
    paint-order: stroke fill;
    filter: drop-shadow(0 0 0 #111) drop-shadow(1px 1px 0 #111);
    transform: rotate(-6deg);
}

.al__sub {
    margin-top: 1%;
    font-family: 'Arial Black', 'Roboto', sans-serif;
    font-weight: 900;
    font-size: calc(var(--pack-w) * .055);
    line-height: 1;
    color: #1a2f9a;
    -webkit-text-stroke: 2.5px #fff;
    paint-order: stroke fill;
    transform: rotate(-6deg);
    white-space: nowrap;
}

.play-pack--collection23 .play-pack__triangle {
    width: 86%;
    aspect-ratio: 1.15;
    margin-top: 2%;
    background: linear-gradient(135deg, #fff3a0, #e8a400 50%, #fff3a0);
    padding: 3px;
}

/* Золотая лампа. */
.play-pack--collection23 .play-pack__triangle-inner {
    padding: 0;
    background: radial-gradient(ellipse at 40% 45%, #fff3a0, #ffc21f 40%, #c47a00 90%);
}

.play-pack--collection23 .play-pack__triangle-inner::before { display: none; }

.play-pack--collection23 .play-pack__art--1 { left: 20%; top: 40%; width: 26%; }
.play-pack--collection23 .play-pack__art--2 { left: 35%; top: 52%; width: 28%; }
.play-pack--collection23 .play-pack__art--3 { left: 50%; top: 40%; width: 26%; }

.play-pack--collection23 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #fff3a0, #ffd21f 55%, #c47a00);
    color: #1a2f9a;
}

.home__pack .al__sub, .packs__item .al__sub { display: none; }

/* Открытие пака: за край фишки выходит только свечение крутости — то же, что в списках (см. --cap-glow). */
.pack-cap { --cap-d: min(130px, 30vw); }

.pack-cap.pack-cap::after {
    /* Картинка фишки чуть меньше своей рамки (обрезанная кромка) — свечение идёт от края картинки. */
    inset: 5%;
    background: none;
    filter: none;
    box-shadow:
        0 0 calc(var(--cap-d) * (.04 + .06 * var(--glow, 0))) calc(var(--cap-d) * (.035 * var(--glow, 0) + .05 * min(1, var(--glow, 0) * 10))) var(--rare, transparent),
        0 0 calc(var(--cap-d) * .22 * var(--glow, 0)) calc(var(--cap-d) * (.03 * var(--glow, 0) + .05 * min(1, var(--glow, 0) * 10))) var(--rare, transparent);
}

/* Страница коллекций: «маленькие» фишки там крупные (три в ряд) — свечение по их настоящему размеру. */
.profile__collection .cap__element--small { --cap-d: 120px; }

/* Крутость под фишкой при открытии пака — плашка цвета крутости, как у фишек на других страницах. */
.pack-cap .pack-cap__grade {
    background: var(--rare, #97b1ff);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    box-shadow: 0 2px 6px #0006;
}

/* Pinocchio: белая бумага в голубую клетку с красным, жёлтым и зелёным мазками, окошко — голова с длинным носом. */
.play-pack--collection24 .play-pack__body {
    --win-shape: url(#pack-nose);
    background:
        radial-gradient(ellipse 30% 8% at 82% 8%, #e8241a 96%, #0000 100%),
        radial-gradient(ellipse 10% 26% at 6% 64%, #2a9a35 96%, #0000 100%),
        radial-gradient(ellipse 26% 7% at 26% 94%, #f0c21a 96%, #0000 100%),
        radial-gradient(ellipse 9% 20% at 95% 82%, #e8241a 96%, #0000 100%),
        linear-gradient(#8ac4e855 1px, #0000 1px) 0 0 / 11px 11px,
        linear-gradient(90deg, #8ac4e855 1px, #0000 1px) 0 0 / 11px 11px,
        #fbfaf4;
}

.play-pack--collection24 .play-pack__burst { display: none; }
.play-pack--collection24 .play-pack__decor { display: none; }

.play-pack__pn {
    position: relative;
    margin-top: 9%;
    -webkit-text-stroke: 0;
    text-shadow: none;
    letter-spacing: 0;
}

/* Объёмные серые буквы в тёмной обводке с коричневой тенью, как на коробке. */
.pn__name {
    display: block;
    font-family: 'Arial Black', 'Roboto', sans-serif;
    font-weight: 900;
    text-transform: none;
    font-size: calc(var(--pack-w) * .155);
    line-height: 1;
    background: linear-gradient(180deg, #e8e8e8, #8a8a8a 60%, #5a5a5a);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: 1.5px #222;
    filter: drop-shadow(2px 3px 0 #7a3a10);
    transform: rotate(-4deg);
}

.play-pack--collection24 .play-pack__triangle {
    width: 82%;
    aspect-ratio: 1.05;
    margin-top: 5%;
    background: #6b3a14;
    padding: 3px;
}

/* Сцена кукольного театра: красный ламбрекен с фестонами, занавес в складку по бокам, тёмно-синий задник, деревянные подмостки. */
.play-pack--collection24 .play-pack__triangle-inner {
    padding: 0;
    background:
        radial-gradient(circle at 12% 24%, #c8160e 0 8%, #0000 8.5%),
        radial-gradient(circle at 31% 24%, #c8160e 0 8%, #0000 8.5%),
        radial-gradient(circle at 50% 24%, #c8160e 0 8%, #0000 8.5%),
        radial-gradient(circle at 69% 24%, #c8160e 0 8%, #0000 8.5%),
        radial-gradient(circle at 88% 24%, #c8160e 0 8%, #0000 8.5%),
        linear-gradient(180deg, #e8b030 0 3%, #c8160e 3% 24%, #0000 24%),
        linear-gradient(180deg, #0000 88%, #a8642a 88% 90%, #d8944a 90%),
        repeating-linear-gradient(90deg, #a00c06 0 3px, #e8241a 3px 7px) left 0 top 0 / 20% 88% no-repeat,
        repeating-linear-gradient(90deg, #a00c06 0 3px, #e8241a 3px 7px) right 0 top 0 / 20% 88% no-repeat,
        radial-gradient(ellipse at 50% 55%, #2a4a9a, #12224a 80%);
}

.play-pack--collection24 .play-pack__triangle-inner::before { display: none; }

.play-pack--collection24 .play-pack__art--1 { left: 17%; top: 38%; width: 32%; }
.play-pack--collection24 .play-pack__art--2 { left: 32%; top: 52%; width: 36%; }
.play-pack--collection24 .play-pack__art--3 { right: 17%; top: 38%; width: 32%; }

.play-pack--collection24 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #ff8a7a, #e8241a 60%, #7a0a00);
    color: #fff;
}

/* Batman: синяя мятая фольга, жёлтая полная луна справа вверху, узкое жёлтое BATMAN, окошко — летучая мышь с эмблемы. */
.play-pack--collection25 .play-pack__body {
    --win-shape: url(#pack-bat);
    background:
        radial-gradient(circle at 82% 22%, #fff6a8 0 9%, #f4e04a 13%, #f4e04a00 14%),
        radial-gradient(circle at 82% 22%, #f4e04a44, #0000 24%),
        conic-gradient(from 20deg at 30% 40%, #ffffff12, #0000 12%, #ffffff18 25%, #0000 40%, #ffffff10 58%, #0000 75%, #ffffff14 90%, #0000),
        conic-gradient(from 80deg at 70% 75%, #0000, #ffffff14 15%, #0000 30%, #00000022 50%, #0000 65%, #ffffff10 80%, #0000),
        radial-gradient(ellipse 90% 60% at 40% 45%, #2e8ec8 0%, #1a5a9a 45%, #0c2a5a 100%);
}

.play-pack--collection25 .play-pack__burst {
    background: radial-gradient(circle, #9ad8ff22, #0000 60%);
}

.play-pack--collection25 .play-pack__decor { display: none; }

.play-pack__bt {
    position: relative;
    width: 100%;
    margin-top: 8%;
    display: flex;
    justify-content: center;
    -webkit-text-stroke: 0;
    text-shadow: none;
    letter-spacing: 0;
}

/* Узкие высокие жёлтые буквы в тёмно-синей обводке, как BATMAN внизу пакета. */
.bt__name {
    font-family: 'Arial Black', 'Roboto', sans-serif;
    font-weight: 900;
    font-size: calc(var(--pack-w) * .2);
    line-height: 1;
    color: #ffe24a;
    -webkit-text-stroke: 2px #061833;
    paint-order: stroke fill;
    text-shadow: 0 3px 0 #061833;
    transform: scale(.68, 1.25);
    white-space: nowrap;
}

.play-pack--collection25 .play-pack__triangle {
    width: 96%;
    aspect-ratio: 1.6;
    margin-top: 6%;
    background: #ffe24a;
    padding: 3px;
}

/* Внутри мыши — ночное небо. */
.play-pack--collection25 .play-pack__triangle-inner {
    padding: 0;
    background: radial-gradient(ellipse at 50% 40%, #24406a, #0a1428 80%);
}

.play-pack--collection25 .play-pack__triangle-inner::before { display: none; }

.play-pack--collection25 .play-pack__art--1 { left: 12%; top: 14%; width: 30%; }
.play-pack--collection25 .play-pack__art--2 { left: 32%; top: 30%; width: 36%; }
.play-pack--collection25 .play-pack__art--3 { right: 12%; top: 14%; width: 30%; }

.play-pack--collection25 .play-pack__badge {
    background: radial-gradient(circle at 35% 30%, #fff3a0, #ffd21a 55%, #b88a00);
    color: #061833;
}

/* ---- Публичный каталог коллекций (для поисковиков) ---- */

.catalog {
    height:100vh;height:100svh;
    overflow-y: auto;
    color: #fff;
    text-align: left;
    padding: 1rem 1rem calc(2rem + env(safe-area-inset-bottom));
    box-sizing: border-box;
}

body:has(.catalog) #root {
    background: #1c1c1e;
}

#root:has(.nav) .catalog {
    padding-bottom: calc(var(--navbar-height) + 1rem);
}

.catalog__header {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 48px;
}

.catalog__logo img {
    display: block;
    width: 64px;
    height: auto;
}

.catalog__lang {
    top: 50%;
    right: 0;
    translate: 0 -50%;
}

.catalog__crumbs {
    margin-top: 1rem;
    font-size: 13px;
    color: #ffffff80;
}

.catalog__crumbs a {
    color: #ffffffb3;
}

.catalog__title {
    margin: 1rem 0 .5rem;
    font-size: 26px;
    font-weight: 900;
    line-height: 1.15;
    text-transform: uppercase;
    text-shadow: 0 3px 0 #ff4740, 0 8px 18px #000a;
}

.catalog__subtitle {
    margin: 2rem 0 .75rem;
    font-size: 18px;
    font-weight: 800;
}

.catalog__intro {
    margin: 0 0 1.25rem;
    color: #ffffffb3;
    line-height: 1.45;
    font-size: 15px;
}

.catalog__collections, .catalog__caps, .catalog__links {
    list-style: none;
    margin: 0;
    padding: 0;
}

.catalog__collections {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.catalog__collection {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
    padding: .75rem;
    box-sizing: border-box;
    border-radius: 18px;
    background: #ffffff0f;
    border: 1px solid #ffffff1a;
    color: #fff;
    text-align: center;
}

.catalog__collection img {
    width: 80%;
    height: auto;
    border-radius: 50%;
    filter: drop-shadow(0 6px 10px #000a);
}

.catalog__collection-name {
    margin-top: .5rem;
    font-weight: 800;
    line-height: 1.2;
}

.catalog__collection-count {
    font-size: 13px;
    color: #ffffff80;
}

.catalog__caps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem .5rem;
}

.catalog__cap {
    margin: 0;
    text-align: center;
}

.catalog__cap img {
    width: 100%;
    height: auto;
    border-radius: 50%;
    filter: drop-shadow(0 4px 8px #0009);
}

.catalog__cap figcaption {
    font-size: 12px;
    color: #ffffff80;
}

.catalog__links {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.catalog__links a {
    display: block;
    padding: .4rem .75rem;
    border-radius: 42px;
    background: #ffffff14;
    color: #ffffffcc;
    font-size: 14px;
}

.catalog__cta {
    margin: 2rem auto 0;
    max-width: 24rem;
}

.auth__catalog {
    position: relative;
    color: #ffffffb3;
    font-size: 14px;
    text-decoration: underline;
    text-underline-offset: 3px;
}
