body {
    font-family: "Jolly Lodger", system-ui;
    font-weight: 400;
    font-style: normal;
    background: radial-gradient(circle at center, rgb(128, 183, 255) 0%, rgb(46, 123, 255) 100%);
    display: flex; 
    flex-direction: column;
    justify-content: center; 
    align-items: center;
    margin: 0;
    height: 92vh;
    align-items: center;
}

h1 {
    font-size: 75px;
    text-align: center;
    color: #000000;
    margin-top: 10vh;
}

h2 {
    font-size: 50px;
    text-align: center;
    color: #000000;
}

.australia {
    position: relative;
    width: 800px;
    height: 600px;
    margin: 0 auto;
    scale: .9;
    align-items: center;
}

.western_australia {
    position: absolute;
    top: 27px;
    left: 17px;
    width: 324px;
    height: 479px;
    filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.5));
    transition: transform 0.3s ease, fill 0.3s ease;
}

.western_australia_label {
    position: absolute;
    top: 40%;
    left: 60%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    font-size: 60px;
    opacity: 0%;
    transition: opacity 0.3s ease;
}

.button.hover .western_australia_label {
    opacity: 100%; 
}

.western_australia svg path:hover {
    fill: #e9da69;
}

.northern_territory {
    position: absolute;
    top: -80px;
    left: 257px;
    width: 313px; 
    height: 430px;
    filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.5));
    transition: transform 0.3s ease, fill 0.3s ease;
}

.northern_territory_label {
    position: absolute;
    top: 50%;
    left: 54%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    font-size: 45px;
    opacity: 0%;
    transition: opacity 0.3s ease;
}

.button.hover .northern_territory_label {
    opacity: 100%; 
}

.northern_territory svg path:hover {
    fill: #f1956e;
}

.queensland {
    position: absolute;
    top: -68px;
    left: 444px;
    width: 390px; 
    height: 485px;
    filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.5));
    transition: transform 0.3s ease, fill 0.3s ease;
}

.queensland_label {
    position: absolute;
    top: 50%;
    left: 42%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    font-size: 50px;
    opacity: 0%;
    transition: opacity 0.3s ease;
}

.button.hover .queensland_label {
    opacity: 100%; 
}

.queensland svg path:hover {
    fill: #89cc85;
}

.victoria {
    position: absolute;
    top: 453px;
    left: 528px;
    width: 169px;
    height: 134px;
    filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.5));
    transition: transform 0.3s ease, fill 0.3s ease;
}

.victoria_label {
    position: absolute;
    top: 28%;
    left: 45%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    font-size: 35px;
    opacity: 0%;
    transition: opacity 0.3s ease;
}

.button.hover .victoria_label {
    opacity: 100%; 
}

.victoria svg path:hover {
    fill: #c0a0c9;
}

.south_australia {
    position: absolute;
    top: 241px;
    left: 279px;
    width: 325px; 
    height: 353px;
    filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.5));
    transition: transform 0.3s ease, fill 0.3s ease;
    text-align: center;
}

.south_australia_label {
    position: absolute;
    top: 20%;
    left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    font-size: 40px;
    opacity: 0%;
    transition: opacity 0.3s ease;
}

.button.hover .south_australia_label {
    opacity: 100%; 
}

.south_australia svg path:hover {
    fill: #66bcd5;
}

.tasmania {
    position: absolute;
    top: 550px;
    left: 540px;
    width: 182px; 
    height: 176px;
    filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.5));
    transition: transform 0.3s ease, fill 0.3s ease;
}

.tasmania_label {
    position: absolute;
    top: 24%;
    left: 42%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    font-size: 30px;
    opacity: 0%;
    transition: opacity 0.3s ease;
}

.button.hover {
    z-index: 999;
}

.button.hover .tasmania_label {
    opacity: 100%; 
}

.tasmania svg path:hover {
    fill: #6694c5;
}

.new_south_wales {
    position: absolute;
    top: 346px;
    left: 494px;
    width: 295px;
    height: 209px;
    filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.5));
    transition: transform 0.3s ease, fill 0.3s ease;
}

.new_south_wales_label {
    position: absolute;
    top: 20%;
    left: 55%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    font-size: 40px;
    opacity: 0%;
    transition: opacity 0.3s ease;
}

svg path {
    fill: #D99830;
    stroke: #000000;
    stroke-width: 2px;
    transition: all 0.3s ease;
    transform-origin: center;
}

.button.hover .new_south_wales_label {
    opacity: 100%; 
}

.new_south_wales svg path:hover {
    fill: #f9c466;
}

.overlay {
    display: none;
    grid-template-columns: auto auto;
    grid-template-rows: auto;
    width: 100vw;
    height: 100vh;
    position: fixed;
    z-index: 1000;
    top: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.5);
    justify-content: center;
}

.overlay_content {
    columns: 1/2;
    display: flex;
    flex-direction: row;
    width: fit-content;
    justify-content: center;
    align-items: center;
    scale: .9;
}

.surfboard {
    display: block;
    scale: 1;
    filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.5));
}

.text {
    position: absolute;
    text-align: center;
    word-wrap: break-word;
    overflow-wrap: break-word;
    white-space: normal;
    margin: auto;
    padding-top: 100px;
    max-width: 70%;
    line-height: 35px;
}

.subtitle {
    margin-bottom: -2vh;
}

.count {
    columns: 2/3;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: white;
    filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.5));
}

.total {
    font-size: 350px;
    margin: 0;
    margin-bottom: -90px;
}

.attacks {
    font-size: 100px;
    margin: 0;
    margin-bottom: -90px;
}

.territory_count {
    font-size: 70px;
    margin-bottom: -30px;
}

.since {
    font-size: 35px;
}

p {
    font-size: 35px;
}

.button svg path:hover {
    transform: scale(1.05);
}

.latest_attack {
    font-size: 60px;
    line-height: 50px;
    padding-top: 70px;
}

.khai_1 {
    width: 90px;    
    position: absolute;
    animation: khai_1 7s linear infinite;
    cursor: pointer;
}

@keyframes khai_1 {
    0% {
        transform: translate(600px, 300px) rotate(0deg);
    }
    25% {
        transform: translate(475px, 200px) rotate(90deg);
    }
    50% {
        transform: translate(350px, -200px) rotate(180deg);
    }
    75% {
        transform: translate(700px, 0px) rotate(270deg);
    }
    100% {
        transform: translate(600px, 300px) rotate(360deg);
    }
}

.khai_2 {
    width: 90px;    
    position: absolute;
    transform: scaleX(-1);
    animation: khai_2 8s linear infinite;
    cursor: pointer;
}

@keyframes khai_2 {
    0% {
        transform: translate(-600px, -300px) rotate(-50deg);
    }
    25% {
        transform: translate(-500px, 0px) rotate(-90deg);
    }
    50% {
        transform: translate(-600px, 400px) rotate(-75deg);
    }
    75% {
        transform: translate(-700px, 0px) rotate(90deg);
    }
    100% {
        transform: translate(-600px, -300px) rotate(-50deg);
    }
}

@media screen {
    @media (max-width: 768px) {
        h1 {
            font-size: 50px;
            margin-bottom: 70vh;
        }

        h2 {
            font-size: 40px;
        }

        .australia {
            scale: .45;
            transform-origin: center;
            margin: auto;
            position: fixed;
        }

        .text {
            max-width: 65%;
        }

        .overlay {
            grid-template-columns: auto;
            grid-template-rows: 65vh 20vh;
        }

        .overlay_content {
            scale: 0.6;
            justify-content: center;
            margin-left: auto;
            margin-right: auto;
        }

        .total {
            font-size: 300px;
            margin-bottom: -70px;
        }

        .count {
            scale: 0.6;
            transform-origin: center center;
            margin-top: 10vh;
        }

        .khai_1 {
            width: 60px;    
            position: absolute;
            animation: khai_1 6s linear infinite;
        }
        
        @keyframes khai_1 {
            0% {
                transform: translate(-60px, 175px) rotate(0deg);
            }
            25% {
                transform: translate(-150px, 250px) rotate(-90deg);
            }
            50% {
                transform: translate(0, 300px) rotate(-180deg);
            }
            75% {
                transform: translate(150px, 260px) rotate(-270deg);
            }
            100% {
                transform: translate(-60px, 175px) rotate(-360deg);
            }
        }
        
        .khai_2 {
            width: 60px;    
            position: absolute;
            transform: scaleX(-1);
            animation: khai_2 7s linear infinite;
        }
        
        @keyframes khai_2 {
            0% {
                transform: translate(0, -220px) rotate(0deg);
            }
            25% {
                transform: translate(-200px, -250px) rotate(90deg);
            }
            50% {
                transform: translate(0, -300px) rotate(180deg);
            }
            75% {
                transform: translate(150px, -250px) rotate(270deg);
            }
            100% {
                transform: translate(0, -220px) rotate(360deg);
            }
        }
    }
}