.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;
    background-image: url("icons/bg-main-b31e4da2097e6ed2ea32effd0d6b3de0.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;
    /* Надпись и пак — одна группа по центру: пак стоит наклейкой за текстом, а не у края экрана. */
    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-down
}

@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__leaderboard {
    margin-left: .3rem;
    font-size: 13px
}

.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__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;
    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 {
    display: grid;
    grid-template-columns: 1fr 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
}

.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;
    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: #ff3434;
    box-shadow: #ff3434 0px 0px 20px 5px;
}

.cap__element--rare-19 .cap__img-wrapper {
    background: #ff3434;
    box-shadow: #ff3434 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: #ff3434;
}

.button-color-rare-19 {
    border-color: #ff3434;
    background-color: #ff3434
}

.battle-filters__item--rare-19 {
    background: #ff3434;
    box-shadow: #ff3434 0px 0px 20px 5px;
}

.pack__open-cap-rare-20:after {
    background: #6d02ff;
    box-shadow: #6d02ff 0px 0px 20px 5px;
}

.cap__element--rare-20 .cap__img-wrapper {
    background: #6d02ff;
    box-shadow: #6d02ff 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: #6d02ff;
}

.button-color-rare-20 {
    border-color: #6d02ff;
    background-color: #6d02ff
}

.battle-filters__item--rare-20 {
    background: #6d02ff;
    box-shadow: #6d02ff 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__sword {
    position: absolute;
    left: 50%;
    top: 50%;
    height: 78%;
    width: auto;
    opacity: 0;
    transform: translate(-50%, -50%) rotate(0deg) scale(.6);
    transition: transform .45s cubic-bezier(.3, 1.6, .5, 1), opacity .2s;
    filter: drop-shadow(0 6px 10px #000a);
    pointer-events: none;
}

.pvp-start__clash {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 34%;
    transform: translate(-50%, -50%) scale(0) rotate(-30deg);
    opacity: 0;
    transition: transform .3s cubic-bezier(.3, 1.8, .5, 1) .3s, opacity .2s .3s;
    pointer-events: none;
}

.pvp-start__label {
    position: absolute;
    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) .15s, opacity .25s .15s;
    pointer-events: none;
}

.pvp-start:is(:hover, :focus-visible, .pvp-start--crossed) .home__cap-image {
    filter: brightness(.6) saturate(.8);
    transform: scale(.94);
}

.pvp-start:is(:hover, :focus-visible, .pvp-start--crossed) .pvp-start__sword {
    opacity: 1;
}

.pvp-start:is(:hover, :focus-visible, .pvp-start--crossed) .pvp-start__sword--left {
    transform: translate(-50%, -50%) rotate(-45deg) scale(1);
}

.pvp-start:is(:hover, :focus-visible, .pvp-start--crossed) .pvp-start__sword--right {
    transform: translate(-50%, -50%) rotate(45deg) scale(1);
}

.pvp-start:is(:hover, :focus-visible, .pvp-start--crossed) .pvp-start__clash {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1) rotate(0deg);
}

.pvp-start:is(:hover, :focus-visible, .pvp-start--crossed) .pvp-start__label {
    opacity: 1;
    transform: translate(-50%, 0);
}

@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__logo {
    position: relative;
    width: 40%;
    margin-top: 5%;
    filter: drop-shadow(0 4px 6px #000a);
}

.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;
    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;
}

.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__logo,
.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;
    display: flex;
    align-items: center;
}

/* ---- Свечение фишек по потёртости ----
   Исходное свечение (до 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: #ff3434; --glow: 0.83; }
.cap__element--rare-20, .pack__open-cap-rare-20 { --rare: #6d02ff; --glow: 1; }

:is(.cap__element--small, .cap__element--pve-small)[class*="cap__element--rare-"] .cap__img-wrapper {
    box-shadow: 0 0 calc(3px + 7px * var(--glow, 0)) calc(2px * var(--glow, 0)) var(--rare, transparent);
}

.cap__element--medium[class*="cap__element--rare-"] .cap__img-wrapper {
    box-shadow: 0 0 calc(5px + 11px * var(--glow, 0)) calc(4px * var(--glow, 0)) var(--rare, transparent);
}

/* Горизонтальные ленты фишек прокручиваются и обрезают всё за краем — даём свечению место. */
.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 и растёт с каждой ступенью потёртости
   (цвет — как в коллекции: голубой, синий, красный, фиолетовый). +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::after {
    inset: -6%;
    transform: scale(calc(.95 + var(--lvl, 0) * .025));
}

.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: 0 0 0 calc(min(1, var(--lvl, 0)) * 3px) var(--rare, transparent);
}

/* Круг 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-fate__cracks {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    z-index: 3;
    fill: none;
    stroke: #fff;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
    filter: drop-shadow(0 0 2px #000);
}

.cap__element-wrapper:has(.cap-fate--break):not(.fate-hidden) .cap__img {
    filter: grayscale(1) brightness(.55);
    opacity: .7;
}

.cap__element-wrapper:has(.cap-fate--break):not(.fate-hidden) .cap__element {
    box-shadow: none;
}

/* Пока бой проигрывается, судьба спрятана. */
.fate-hidden .cap-fate,
.fate-hidden .cap-fate__cracks {
    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-shake .cap__element {
    animation: fate-shake .45s linear;
}

@keyframes fate-shake {
    0%, 100% { transform: translate(0); }
    20% { transform: translate(-4px, 1px) rotate(-2deg); }
    40% { transform: translate(4px, -1px) rotate(2deg); }
    60% { transform: translate(-3px, 0) rotate(-1deg); }
    80% { transform: translate(3px, 1px) rotate(1deg); }
}

.fate-break-cracking .cap-fate__cracks path {
    stroke-dasharray: 120;
    animation: fate-crack .5s ease-out both;
}

.fate-break-cracking .cap-fate__cracks path:nth-child(n+2) {
    animation-delay: .15s;
}

@keyframes fate-crack {
    from { stroke-dashoffset: 120; }
    to { stroke-dashoffset: 0; }
}

/* Осколки: кусочки картинки фишки разлетаются в стороны. */
.fate-shard {
    position: absolute;
    inset: 0;
    z-index: 4;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    animation: fate-shard .9s cubic-bezier(.25, .6, .4, 1) forwards;
    pointer-events: none;
}

@keyframes fate-shard {
    to {
        transform: translate(var(--dx), var(--dy)) rotate(var(--rot));
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fate-reveal .cap-fate__badge,
    .fate-upgrade-anim .cap__element,
    .fate-stay-anim .cap__element,
    .fate-break-shake .cap__element,
    .fate-break-cracking .cap-fate__cracks path {
        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: #6d02ff40; color: #d9b8ff; }

/* Выигранная фишка: зелёная галочка на месте, где у проигранной красный крестик. */
.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(calc(var(--flip-turns, 2) * 360deg)) rotateY(0) scale(1);
    }
    88% {
        transform: translateY(0) rotateX(calc(var(--flip-turns, 2) * 360deg)) scale(1.06, .92);
    }
    94% {
        transform: translateY(-4%) rotateX(calc(var(--flip-turns, 2) * 360deg)) scale(.98, 1.03);
    }
    100% {
        transform: translateY(0) rotateX(calc(var(--flip-turns, 2) * 360deg)) 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);
}

/* ---- Уведомления-ссылки: стопка вверху экрана, на любой странице игры ---- */

.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;
    min-height:100vh;min-height:100svh;
    padding: 1rem 1rem 1.5rem;
    box-sizing: border-box;
}

.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;
    padding: 2px 10px;
    border-radius: 999px;
    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;
}
