* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    height: 100svh;
    overflow: hidden;
    background-color: #59FAFF;
    display: flex;
    flex-direction: column;
    align-items: center;
}

header {
    padding: 24px;
}

.logo {
    height: 20px;
    width: auto;
}

main {
    --offset-vertical: 2vh;
    --offset-horizontal: 20px;
    position: fixed;
    top: calc(50svh - var(--offset-vertical));
    left: calc(50svw + var(--offset-horizontal));
    transform: translate(-50%, -50%);
}

.scene {
    position: relative;
}

.port-art {
    image-rendering: pixelated;
    image-rendering: crisp-edges;
    width: 120px;
    height: auto;
}

.boat {
    --boat-x: 82px;
    --boat-y: 64px;
    --bob-distance: 1px;
    position: absolute;
    left: var(--boat-x);
    top: var(--boat-y);
    image-rendering: pixelated;
    image-rendering: crisp-edges;
    width: 32px;
    height: auto;
    animation: bob 1s steps(1) infinite;
}

@keyframes bob {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(var(--bob-distance)); }
}
