.frame { position: absolute; width: 100%; height: 100%; border-width: 8px; border-image: url("/background/frame.png") 22 fill / auto space; width: 720px; height: 960px; } .background_asset { position: absolute; left: 22px; right: 22px; background-size: cover; } .air { background: rgb(0, 0, 0); background: linear-gradient( 180deg, rgba(0, 0, 0, 1) 0%, rgba(28, 28, 51, 1) 17%, rgba(255, 0, 0, 1) 43%, rgba(0, 0, 0, 1) 45% ); top: 22px; bottom: 22px; animation: thunder_hue 12s linear infinite; } .clouds_large { top: 250px; height: 150px; background-image: url("/background/clouds_large.png"); animation: scrollBackground 80s linear infinite, thunder 4s linear infinite; } .clouds_small { top: 270px; height: 82px; background-image: url("/background/clouds_small.png"); animation: scrollBackground 20s linear infinite, thunder 12s linear infinite; } .tower { background-image: url("/background/tower.png"); width: 218px; height: 240px; top: 150px; animation: thunder_hue_hard 12s linear infinite; transition: all 0.1s cubic-bezier(0.265, 1.4, 0.68, 1.65); transform-origin: bottom center; &:hover { cursor: pointer; transform: scale(1.05, 1.1); transform-origin: bottom center; &::after { text-shadow: #0f0 1px 1px 10px; animation: excited 0.5s infinite linear; } } &:active { transform: scale(1.1, 1.22); } &.cooldown { transition: all 1s cubic-bezier(0.265, 1.4, 0.68, 1.65); transform: scale(1.1, 1.22); &::after { content: "RAID IN PROGRESS"; color: var(--hover-color); top: calc(50% - 15px); left: 0; right: 0; font-size: 0.9rem; text-align: center; animation: excited 0.5s infinite linear; text-shadow: #000 1px 1px 1px; } } } .tower::after { position: absolute; content: "RAID\A(collect to wallet)"; text-align: center; white-space: pre; word-wrap: break-word; left: 50px; top: 22px; } .mountains { background-image: url("/background/mountains.png"); height: 181px; top: 285px; animation: thunder_hue 12s linear infinite; pointer-events: none; } .village { background-image: url("/background/village.png"); height: 540px; bottom: 22px; } .bonfire { background-image: url("/background/bonfire.png"); bottom: 100px; left: 184px; width: 175px; height: 193px; transform-origin: bottom center; animation: bonfire 12s linear infinite, bonfire_skew 5s infinite linear; } .musicButton { position: absolute; top: 30px; left: 30px; background-color: rgba(0, 0, 0, 0.5); color: white; border: none; padding: 10px; border-radius: 5px; cursor: pointer; z-index: 1000; } @keyframes scrollBackground { 0% { background-position: 0 0; } 100% { background-position: 2000% 0; } } @keyframes thunder { 1% { filter: saturate(1); transform: scale(1, 1); } 5% { filter: saturate(4); transform: scale(1, 1.05); } 10% { filter: saturate(1); transform: scale(1, 1); } } @keyframes thunder_hue { 1% { filter: saturate(1); } 5% { filter: saturate(130%); } 10% { filter: saturate(1); } } @keyframes thunder_hue_hard { 1% { filter: saturate(1); } 5% { filter: saturate(3); } 10% { filter: saturate(1); } } @keyframes bonfire { 5% { filter: saturate(3); } 10% { filter: saturate(1); } 15% { filter: saturate(3); } 25% { filter: saturate(1); } 35% { filter: saturate(5); } 50% { filter: saturate(1); } 55% { filter: saturate(3); } 85% { filter: saturate(1); } 90% { filter: saturate(2); } 100% { filter: saturate(1); } } @keyframes bonfire_skew { 0%, 100% { transform: scale(1, 1) skew(0deg, 0deg); } 10% { transform: scale(1.01, 1.01) skew(0.5deg, -0.5deg); } 20% { transform: scale(1.02, 1.02) skew(1deg, -1deg); } 30% { transform: scale(1, 1.03) skew(0deg, 0deg); } 40% { transform: scale(1.01, 1.04) skew(0.5deg, -1.5deg); } 50% { transform: scale(1, 1.03) skew(0.5deg, -0.5deg); } 60% { transform: scale(1.01, 1.04) skew(0deg, 0deg); } 70% { transform: scale(1.02, 1.01) skew(1deg, -1deg); } 80% { transform: scale(1, 1.02) skew(-0.5deg, 0.5deg); } 90% { transform: scale(1.02, 1.03) skew(0deg, -1deg); } } .excited { animation: excited 0.5s infinite linear; } @keyframes excited { 0%, 100% { transform: scale(1, 1) skew(0deg, 0deg); } 10% { transform: scale(1.2, 1.2) skew(0.5deg, -0.5deg); } 90% { transform: scale(1.02, 1.03) skew(0deg, -1deg); } }