#notice {
    position: absolute;
    top: 20px;
    left: 50%;
    width: fit-content;
    transform: translateX(-50%);
    background-color: green;
    padding: 10px;
    z-index: 9990;
}

#notice>button {
    margin-left: 10px;
    border: 2px solid black;
    width: 40px;
    background-color: limegreen;
}

#notice>button:hover {
    filter: brightness(1.2);
}

img {
    image-rendering: optimizeSpeed;
    image-rendering: -moz-crisp-edges;
    image-rendering: -o-crisp-edges;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: pixelated;
    image-rendering: optimize-contrast;
    -ms-interpolation-mode: nearest-neighbor;
}

#pfp {
    width: 64px;
    /* border-radius: 64px; */
    position: absolute;
    top: 10px;
    right: 10px;
    border: 4px inset #9c6a3d;
}

body {
    margin: 0;
    background-color: #0091F8;
    min-height: 100vh;
}

.hidden {
    display: none;
}

.loader {
    --color-1: #fff;
    --size: 1.3px;

    width: calc(48 * var(--size));
    height: calc(48 * var(--size));
    border-radius: 50%;
    border-top: calc(3 * var(--size)) solid var(--color-1);
    border-right: calc(3 * var(--size)) solid transparent;
    box-sizing: border-box;
    animation: rotation 1s linear infinite;
    display: block;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);

}

@keyframes rotation {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}


#loading {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    min-height: 100vh;
    z-index: 9998;
    background-color: #0091F8;
    pointer-events: none;
    overflow: hidden;
}

#background {
    z-index: -2;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 50vh;
    background-image: url("/assets/graphics/sky-top-f75e356d.png"), linear-gradient(180deg, rgba(0, 145, 248, 1) 1%, rgba(138, 218, 255, 1) 76%, rgba(255, 255, 255, 1) 100%);
    background-repeat: repeat-x;
    background-position: top, bottom;
    background-size: 67vh, 100vh;
}

@font-face {
    font-family: inknut-antiqua;
    src: url("/assets/InknutAntiqua/InknutAntiqua-Regular-99f7e23b.ttf");

    /* from: https://gomakethings.com/better-font-loading-with-the-font-displayswap-property/

    basically, without this, firefox (not chrome i think), will wait for the font to load before rendering the text,
    rather than using the fallback font, which leaves big empty blocks for a second or so on first load.
    */
    font-display: swap;
}

@font-face {
    font-family: inknut-antiqua;
    src: url("/assets/InknutAntiqua/InknutAntiqua-Bold-5098f7d9.ttf");
    font-weight: bold;
    font-display: swap;
}

* {
    font-family: inknut-antiqua;
    line-height: 36px;
    /* font-family: Verdana, Geneva, Tahoma, sans-serif; */
}

.fade-out {
    display: none !important;
}

.fade-in {
    display: unset !important;
}

form input[type=text],
form input[type=url],
form input[type=date],
form button,
form select {
    width: calc(100% - 10px);
    background-color: #9c6a3d;
    border: 2px solid #583d26;
}

form button {
    width: calc(100% - 40px);
    margin: 0 auto;
    margin-top: 10px;
    display: block;
    color: black;
}

form button[disabled] {
    cursor: default;
    filter: brightness(0.7) contrast(0.7);
    pointer-events: none;
}

form button:hover:not([disabled]) {
    filter: saturate(1.1) brightness(1.1);
}

#openable-map {
    background-color: #6e4c30;
    border: 5px solid #9c6a3d;
    background-color: #1a185f;
    border: 5px solid #288ce5;
    width: min(800px, calc(100vw - 38px));
    height: 492px;
    position: absolute;
    z-index: 6;
    left: calc(50% - min(800px, calc(100vw - 38px)) / 2);
    top: calc(50% - 492px / 2);
}

#openable-map-holder {
    display: block;
    opacity: 0;
    pointer-events: none;
}

.openable-map-holder-open {
    opacity: 1 !important;
    pointer-events: all !important;
}


#map-backdrop {
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    background-color: #000000b0;
    position: absolute;
    z-index: 5;
    left: 0;
    top: 0;
}

#minimap {
    cursor: pointer;
    max-width: 600px;
    width: 100%;
    height: 64px;
    background-color: #6e4c30;
    outline: 5px solid #9c6a3d;
    border-radius: 20px;
    position: absolute;
    bottom: 10px;
    left: calc(50% - min(50%, 300px));
    overflow: hidden;
    background-image: url("/assets/graphics/dot-7cb921df.png");
}

#ship-icon {
    width: 95px;
    position: absolute;
    top: -5px;
    background-color: #6e4c30;
}

#treasure-icon {
    width: 95px;
    position: absolute;
    top: -5px;
    right: 0;
    background-color: #6e4c30;
}

#minimap-text {
    line-height: 64px;
    background-color: #6e4c30;
    margin: 0 auto;
    display: block;
    width: fit-content;
}

.page {
    background-color: #6e4c30;
    border: 5px solid #9c6a3d;
    padding: 10px;
    width: fit-content;
    color: white;
}

@keyframes fade-in-screen {
    0% {
        opacity: 0;
        filter: brightness(0);
        pointer-events: none;
    }

    50% {
        opacity: 1;
        filter: brightness(0);
    }

    99% {
        filter: brightness(1);
    }

    100% {
        pointer-events: none;
    }
}

#prize-got {
    position: absolute;
    width: 240px;
    aspect-ratio: 1;
    animation: prize-get 1.2s;
    animation-fill-mode: forwards;
    animation-timing-function: ease-in;
    pointer-events: none;
}

.light li {
    line-height: 26px;
}

@keyframes prize-get {
    0% {
        right: calc(50% - 240px / 2);
        bottom: calc(50% - 240px / 2);
        opacity: 0;
    }

    20% {
        opacity: 1;
    }

    25% {
        right: calc(50% - 240px / 2);
        bottom: calc(50% - 240px / 2);
    }

    70% {
        opacity: 1;
    }

    100% {
        right: 0;
        bottom: 0;
        opacity: 0;
    }
}

#prize-got>img {
    width: 100%;
    height: 100%;
    filter: drop-shadow(4px 4px 5px black) drop-shadow(0 0 50px #f9c700);
}

@keyframes merchant-fade {
    0% {
        opacity: 0;
    }

    80% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

.selected-trade {
    filter: saturate(1.1) brightness(1.4) contrast(0.96);
}

.merchant-trade {
    border: 5px solid #10121C;
    padding: 10px;
    margin-bottom: 15px;
    background-color: #5e3f26;
    cursor: pointer;
}

.merchant-trade-unavailable {
    cursor: default;
    filter: brightness(0.5) contrast(0.9) grayscale(0.5);
}

.merchant-item {
    border: 5px solid #9c6a3d;
    display: inline-block;
    min-width: 210px;
}

.merchant-item>p {
    text-align: center;
    margin: 0;
}

.merchant-arrow {
    transform: translateY(-25px);
    margin: 0 20px;
}

.merchant-item>img {
    width: 120px;
    aspect-ratio: 1;
    margin-left: 50%;
    transform: translateX(-50%);
}

#merchant-container {
    --w: min(100vw, 1150px);
    --h: min(100vh, 700px);
    width: var(--w);
    height: var(--h);
    animation: merchant-fade 2s linear;
    background-color: #6e4c30;
    outline: 5px solid #9c6a3d;
    position: absolute;
    top: calc(50% - var(--h) / 2);
    left: max(0px, calc(50% - var(--w) / 2));
    color: white;
}

#merchant-items {
    width: calc(100% - 15px);
    height: calc(100% - 80px);
    margin: 0 auto;
    background-color: #5e3f26;
    overflow-y: scroll;
}

#confirm-merchant {
    position: absolute;
    right: 0;
    bottom: 0;
    background-color: #399739;
    border: 2px solid #78e56c;
    color: white;
    padding: 2px 15px;
    width: fit-content;
}

#confirm-merchant:hover {
    filter: saturate(1.1) brightness(1.1);
}

#island-found {
    z-index: 4;
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background-color: black;
    animation: fade-in-screen 2s;
    animation-play-state: paused;
}

.island-found-center {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 100vw;
}

#island-found-chest {
    position: absolute;
    top: 0;
    width: calc(100% * 250 / 1917);
    left: calc(52% - 100% * 250 / 1917);
    top: 39%;
    background: url("/assets/graphics/treasure_chest-b46cc844.png") no-repeat center center fixed;
    aspect-ratio: 1;
    background-size: cover;
    cursor: pointer;
    border: none;
    animation-name: shake;
    animation-timing-function: steps(1, end);
    animation-duration: 2s;
    animation-iteration-count: infinite;
}

@keyframes shake {
    0% {
        transform: translate(0px, 0px);
    }

    89% {
        transform: translate(0px, 0px);
    }

    90% {
        transform: translate(-4px, -3px);
    }

    95% {
        transform: translate(3px, 5px);
    }

    99% {
        transform: translate(-6px, 6px);
    }

    100% {
        transform: translate(0px, 0px);
    }
}

#island-found-chest:hover {
    background: url("/assets/graphics/treasure_chest_open-1672e8b3.png") no-repeat center center fixed;
    background-size: cover;
    animation-play-state: paused;
}

.island-found-image {
    width: 100%;
    pointer-events: none;
    user-drag: none;
    -webkit-user-drag: none;
    user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
}

#treasure-select-container {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    width: 100%;
    top: 50%;
    pointer-events: none;
    transform: translateY(-50%);
}

#treasure-select {
    transition: 0.5s;
    opacity: 0.0;
    background-color: #6e4c30;
    border: 5px solid #9c6a3d;
    padding: 10px;
    width: fit-content;
}

#treasure-select-container:has(.treasure-select-fade) {
    pointer-events: unset !important;
}

.treasure-select-fade {
    opacity: 1.0 !important;
}

.confirm-btn {
    width: 100%;
    background-color: #9c6a3d;
    border: 2px solid #583d26;
    margin-top: 10px;
}

.confirm-btn[disabled] {
    cursor: default;
    filter: brightness(0.7) contrast(0.7);
    pointer-events: none;
}

.confirm-btn:hover:not([disabled]) {
    filter: saturate(1.1) brightness(1.1);
}

.treasure-select-btn {
    cursor: pointer;
    background-color: #4d3533;
    border: 5px solid #10121C;
}

.treasure-select-btn:hover {
    scale: 1.1;
}

.treasure-select-btn>img {
    width: 200px;
    display: block;
}

#price-form {
    display: none;
}

.selected-price {
    border: 5px solid #fff;
    filter: brightness(1.3);
}

#cargo-button {
    background: none;
    border: none;
    position: absolute;
    bottom: 0;
    right: 0;
}

#cargo-button>img {
    width: 180px;
}

#cargo {
    display: none;
    margin: 0 auto;
    max-width: 915px;
    width: 100%;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

#cargo-header>span {
    padding: 5px 20px;
    color: white;
    font-size: 24px;
}

#cargo-header>button {
    background-color: #6e4c30;
    border: none;
    border-left: 5px solid #9c6a3d;
    font-size: 19px;
}

#cargo-header>button:hover {
    background-color: #7a5537;
}

#cargo-header {
    background-color: #6e4c30;
    border: 5px solid #9c6a3d;
    width: fit-content;
    border-bottom: none;
}

#cargo-body {
    background-color: #6e4c30;
    border: 5px solid #9c6a3d;
    padding: 20px;
    display: flex;
    flex-wrap: wrap;
}

#cargo-slots {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background-color: black;
    padding: 2.5px;
}

.cargo-slot {
    width: 120px;
    height: 120px;
    border: none;
    background-color: #563921;
    margin: 2.5px;
    user-drag: none;
    -webkit-user-drag: none;
    user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
}

.selected-slot {
    background-color: #745033 !important;
}

.cargo-slot:hover {
    background-color: #49321e;
}

#cargo-slot-dragging-container {
    position: absolute;
    left: 0;
    top: 0;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    pointer-events: none;
}

#cargo-slot-dragging {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 55;
    width: 120px;
    transform: translate(-50%, -50%);
}

.cargo-slot>img {
    width: 100%;
    user-drag: none;
    -webkit-user-drag: none;
    user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    pointer-events: none;
}

#cargo-info {
    width: 100%;
    background-color: #6e4c30;
    border: 5px solid #9c6a3d;
    margin-left: 27px;
    min-width: 220px;
    max-width: 310px;
}

#cargo-info-contents {
    display: block;
    width: fit-content;
    margin: auto auto;
}

#cargo-info-text {
    text-align: center;
    width: 100%;
    display: inline-block;
    font-size: 26px;
}

#cargo-info-img {
    width: 290px;
}

#new-voyage-div {
    display: none;
    width: 100%;
    max-width: 400px;
    position: absolute;
    right: 20px;
    z-index: 1;
    top: 50%;
    transform: translateY(-50%);
    max-height: 90%;
    overflow: auto;
}

#new-voyage-back {
    background: none;
    border: none;
    display: none;
    position: absolute;
}

#confirmation-container,
#ship-pii-container {
    position: absolute;
    z-index: 15;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-color: #000000b0;
}

.two-button {
    display: flex;
}

.two-button>button {
    margin-right: 5px;
}

#ship-pii-container {
    overflow: unset !important;
}

#confirmation-box {
    background-color: #6e4c30;
    border: 5px solid #9c6a3d;
    padding: 10px;
    width: fit-content;
    min-width: 400px;
    height: fit-content;
    margin: 50vh auto;
    color: white;
    transform: translateY(-50%);
}

#delete-voyage-button {
    color: #f60000;
    border: none;
    background: none;
    width: fit-content;
    height: fit-content;
    cursor: pointer;
    margin: 0 auto;
    text-decoration: underline;
}

#new-voyage-back>img {
    width: 80px;
}

#new-voyage-back:hover,
#cargo-button:hover {
    filter: saturate(1.2) brightness(1.2)
}

.surround-border {
    filter: drop-shadow(2px 2px 0px #583d26) drop-shadow(-2px 2px 0px #583d26) drop-shadow(2px -2px 0px #583d26) drop-shadow(-2px -2px 0px #583d26);
}

#new-voyage-buttons {
    width: fit-content;
    margin: 0 auto;
    margin-top: 90px;
}

.voyage-btn {
    margin-bottom: 20px;
    margin-left: 50%;
    transform: translateX(-50%);
    text-wrap: nowrap;
    font-size: 36px;
    padding: 6px 100px;
    background-color: #9c6a3d;
    border: none;
    --angle: 45%;
    clip-path: polygon(calc(50% - var(--angle)) 0%, calc(50% + var(--angle)) 0%, 100% 50%, calc(50% + var(--angle)) 100%, calc(50% - var(--angle)) 100%, 0% 50%);
    text-shadow: 0px 1px 0px black;
    display: block;
    width: fit-content;
    cursor: pointer;
    text-decoration: none;
    color: black;
    user-drag: none;
    -webkit-user-drag: none;
    user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
}

.small-voyage-btn {
    font-size: 22px;
    padding: 6px 35px;
    --angle: 40%;
}

.voyage-btn[disabled] {
    cursor: default;
    filter: brightness(0.7) contrast(0.7);
    pointer-events: none;
}

.voyage-btn:hover:not([disabled]) {
    filter: brightness(0.8);
}

#edit-voyage {
    border: none;
    background: none;
    width: fit-content;
    display: block;
    text-decoration: underline;
    cursor: pointer;
    margin: 0 auto;
}

#voyage-info {
    width: 268px;
    position: absolute;
    top: 0;
    left: 0;
    aspect-ratio: 133/167;
    background: url("/assets/graphics/parchment-cbcaf777.png");
    background-size: cover;

    image-rendering: optimizeSpeed;
    image-rendering: -moz-crisp-edges;
    image-rendering: -o-crisp-edges;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: pixelated;
    image-rendering: optimize-contrast;
    -ms-interpolation-mode: nearest-neighbor;
}

#voyage-info>img {
    width: 100%;
    width: 245px;
}

#voyage-info-contents {
    padding-top: 52px;
    padding-left: 27px;
    width: calc(100% - 70px);
}

#voyage-info-contents,
#voyage-info-contents>* {
    line-height: 29px;
    font-size: 14px;
}

#voyage-info-contents>a {
    font-size: 12px;
    color: black;
}

.guide-difficulty {
    font-weight: lighter;
    font-size: 11px !important;
    line-height: 15px;
    margin: 0;
}

.lightish {
    font-weight: lighter;
    font-size: 14px !important;
    line-height: 14px;
}

.light {
    font-weight: lighter;
    font-size: 11px !important;
    line-height: 15px;
}

#hackatime-panel {
    position: absolute;
    top: 380px;
    left: 0;
}

#hackatime-panel>a {
    color: white;
}

#devpanel {
    position: absolute;
    top: 480px;
    left: 0;
}

#image-link-showcase {
    width: 100%;
    min-height: 70px;
    max-height: 291px;
    text-align: center;
    background-color: #6e4c30;
    border: 2px solid #9c6a3d;
    display: inline-block;
    cursor: pointer;
    position: relative;
}

#image-link-showcase::after {
    /* basically draw the ::after pseudo element as a block that covers
    the entire normal element, so we can display this custom error page.
    technique from: https://bitsofco.de/styling-broken-images/ */
    content: "Project screenshot. Click to edit!";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 70px;
    padding-top: 17px;
    font-style: italic;
    font-size: 14px;
    background-color: #6e4c30;
}

#image-link-showcase::before {
    font: inherit;
    display: block !important;
    font-style: italic;
    margin-top: 17px;
    font-size: 14px;
}

#ship-container {
    position: absolute;
    bottom: 10px;
    left: 10px;
}

#ship-button {
    background-color: #399739;
    border: 2px solid #78e56c;
    margin-top: 10px;
    color: white;
    min-width: 150px;
    text-align: center;
}

#ship-button:hover {
    filter: saturate(1.1) brightness(1.1);
}

.devlogin {
    position: absolute;
    background-color: #6e4c30;
    border: 5px solid #9c6a3d;
    color: white;
    float: right;
    padding: 10px;
    top: 70px;
    right: 10px;
    z-index: 990;
}

.bottom {
    margin-left: auto;
    margin-right: auto;
    margin-top: 40px;
    width: fit-content;
}

.channel-link {
    font-weight: bold;
    color: white;
    text-decoration: none;
}

.channel-link:hover {
    text-decoration: underline;
}

.sign-in {
    position: absolute;
    top: 10px;
    right: 10px;
}

.linkbutton {
    background-color: #6e4c30;
    padding: 5px 15px;
    border-radius: 10px;
    color: white;
    border: 5px solid #9c6a3d;
    text-decoration: none;
}

.linkbutton:hover {
    background-color: #583d26;
    border: 5px solid #8f6037;
}


.card-holder {
    display: flex;
    justify-content: space-evenly;
    flex-wrap: wrap;
}

.card-holder>img {
    width: 325px;
}

.card-holder>img:hover {
    scale: 1.2;
}

pre {
    font-family: Courier New;
}

h1,
h2 {
    text-align: center;
    margin: 0;
}

#hackclub-flag {
    position: absolute;
    top: 0;
    left: 10px;
    z-index: 10;
    filter: hue-rotate(255deg) saturate(1.5);
}

#hackclub-flag:hover {
    filter: hue-rotate(215deg) saturate(1.5);
    scale: 1.2;
    left: 20px;
}

#hackclub-flag>img {
    width: 175px;
}

#scroll-indicator {
    position: absolute;
    top: calc(100vh - 35px);
    width: 95px;
    left: calc(50% - 95px / 2.0)
}

#logo {
    pointer-events: none;
    margin-left: auto;
    margin-right: auto;
    display: block;
    width: 705px;
    max-width: 100%;
    padding-top: 20px;
}

@media (max-width: 1205px) {
    #logo {
        padding-top: 105px;
    }
}

.info-hover {
    position: relative;
}

.info-hover {
    text-decoration: underline;
}

.info-hover>span {
    text-decoration: none;
    display: none;
    position: absolute;
    z-index: 77;
    top: 0;
    left: 5px;
    background-color: #252525;
    border: 2px solid #fff;
    /* color: black; */
    padding: 5px;
    width: 220px;
    font-size: 14px;
}

.info-hover:hover>span {
    display: block;
}

#map-holder {
    scrollbar-color: rgb(19, 0, 128) rgba(0, 0, 0, 0.247);
    overflow-x: auto;
    margin-left: auto;
    margin-right: auto;
    width: 800px;
    max-width: 100%;
    padding-bottom: 20px;
    margin-bottom: 20px;

    /* calc the factor the image will be scaled at. used to calc the positions of points of interest.
    the margin is 38, and not 20, since on chrome, 100vw doesnt include the scrollbars. this is to compensate for that. */
    --w_factor: calc(min(100vw - 38px, 800px) / 800);
}

.map-marker {
    position: relative;
    width: 0;
    height: 0;
}


.spread {
    transform: translate(calc(90px / 2 - 50%), calc(60px / 2 - 50% - 9px));
    width: 218px;
    height: 120px;
    position: relative;
    filter: drop-shadow(0px 0px 16px white) drop-shadow(0px 0px 8px #0ccfc6) drop-shadow(0px 0px 4px #382eaf);
}

.spread>img {
    filter: drop-shadow(1px 1px 0 black) drop-shadow(-1px -1px 0 black);
    width: 85px;
    position: absolute;
    top: 0;
    transform: translateY(5px);
    image-rendering: unset !important;
}

.spread>img:hover {
    scale: 1.2;
    z-index: 3 !important;
}

.spread3>img:nth-child(1) {
    left: calc(50% - 85px / 2);
    z-index: 1;
    transform: translateY(0);
}

.spread3>img:nth-child(2) {
    left: 0;
    rotate: -8deg;
}

.spread3>img:nth-child(3) {
    right: 0;
    rotate: 8deg;
}

.spread4 {
    width: 220px;
    transform: translate(calc(90px / 2 - 50% + 36px), calc(60px / 2 - 50% - -15px));
}

.spread4>img:nth-child(1) {
    left: calc(50% - 85px / 2 + 30px);
    z-index: 2;
    transform: translateY(0);
    rotate: 3deg;
}

.spread4>img:nth-child(2) {
    left: calc(50% - 110px / 2 - 7px);
    z-index: 1;
    transform: translateY(0);
    rotate: -3deg;
}

.spread4>img:nth-child(3) {
    left: 0;
    rotate: -8deg;
}

.spread4>img:nth-child(3):hover {
    left: -10px;
}

.spread4>img:nth-child(4) {
    right: 0;
    rotate: 8deg;
}



.map-marker>div:hover>div {
    display: block;
}

#map-marker-3>div>div {
    margin-left: -138px;
    transform: translateY(-100px);
}

#map-marker-1>div>div {
    transform: translateY(-75px);
}

#map-marker-1 {
    left: calc(var(--w_factor) * 244);
    top: calc(var(--w_factor) * 46);
}

#map-marker-2 {
    left: calc(var(--w_factor) * 467);
    top: calc(var(--w_factor) * 321);
}

#map-marker-3 {
    left: calc(var(--w_factor) * 618);
    top: calc(var(--w_factor) * 131);
}

#map-marker-4 {
    left: calc(var(--w_factor) * 1014);
    top: calc(var(--w_factor) * 289);
}

#map-marker-4>div>div {
    transform: translate(-65px, -140px);
}

#map-marker-5 {
    left: calc(var(--w_factor) * 1135);
    top: calc(var(--w_factor) * 86);
}

#map-marker-5>div {
    width: calc(var(--w_factor) * 195);
    height: calc(var(--w_factor) * 80);
}

#map-marker-5 p {
    margin: 0;
    color: white;
}

#map-marker-5:not(:hover)>div>div {
    display: none;
}

#map-marker-5>div>div {
    opacity: 1;
    width: 140px;
    height: 30px;
    display: block;
    margin: 0 auto;
    transform: translateY(calc(var(--w_factor) * 13));
    background-color: #6e4c30;
    outline: 5px solid #9c6a3d;
    padding: 2px;
}

#map {
    width: calc(1400 * var(--w_factor));
    display: block;
}

.center {
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
}

.centered {
    max-width: 995px;
    width: calc(100% - 10px);
    margin-left: auto;
    margin-right: auto;
}

.container {
    padding: 5px;
    color: white;
    background-color: #0b0059;
}

canvas {
    z-index: -1;
    margin: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100vh !important;
    filter: drop-shadow(0px 10px white);
}

.spacer {
    height: calc(100vh + 160px);
}

.ocean-gradient {
    position: absolute;
    /* let height be a bit higher than the spacer, to ensure no gap */
    height: calc(100vh + 190px);
    width: 100%;
    z-index: -3;
    background: linear-gradient(180deg, rgb(5, 130, 233) 00%, rgb(0, 114, 208) 80%, rgb(11, 0, 89) 96%);
}

.admin-body {
    background-color: #1c1c1c;
    color: white;
    margin: 25px;
}

.admin-body a {
    color: rgb(164, 131, 255);
}

.admin-body h1,
.admin-body h2 {
    margin: 20px 0;
}

.admin-body h2 {
    text-align: left;
}

/* .admin-voyage-list {} */

.admin-voyage-entry,
.admin-user-entry {
    display: inline-block;
    background-color: #161616;
    border: 3px solid #303030;
    padding: 10px;
    width: fit-content;
    color: white;
    min-width: 450px;
    position: relative;
    margin-right: 15px;
}

.prize-fulfilment {
    min-width: 550px !important;
}

/* .prize-fulfilment-submit {} */

.prize-fulfilment-submit input {
    font: inherit;
    background-color: #161616 !important;
    border: 3px solid #303030 !important;
    color: white;
}

.prize-fulfilment-submit input:focus {
    outline: none !important;
}

.a-awaiting {
    border-color: #fd901d;
}

.a-suspected {
    border-color: red;
}

/* .a-unshipped {} */

.a-shipped {
    border-color: #009132;
}

.admin-edit {
    padding: 15px;
    border: 3px solid #303030;
    background-color: #161616;
    display: block;
    margin: 0 auto;
    width: fit-content;
    min-width: 900px;
    margin-bottom: 30px;
}

.admin-edit input,
.admin-edit select {
    border: 3px solid #303030 !important;
    background-color: #161616 !important;
    color: white;
    width: 450px !important;
    float: right;
    height: 28px;
}

.admin-edit select {
    width: 460px !important;
    height: 36px;
}

.admin-edit label,
.admin-edit span,
.admin-edit a {
    float: left;
}

.admin-edit button {
    border: 3px solid #303030;
    background-color: #161616;
    color: white;
}

.admin-user-entry {
    min-width: 0;
}

.admin-user-entry>p {
    margin: 0;
}

.admin-user-entry>img {
    width: 100px;
    height: 100px;
    margin-bottom: 10px;
}

.admin-voyage-entry>p,
.admin-voyage-entry>pre {
    margin: 0;
}

.reviwer-button {
    width: 100%;
    margin-right: 15px;
}

.reviwer-button:hover {
    filter: brightness(1.6) saturate(1.6) !important;
}

.reviewer-price>img {
    width: 50px;
    image-rendering: unset !important;
}

.reviewer-textarea {
    border: 3px solid #303030;
    background-color: #161616;
    color: white;
    width: 100%;
    height: 32px;
    min-height: 32px;
    resize: vertical;
}

#admin-image-label-showcase {
    float: unset !important;
}

.admin-body #image-link-showcase {
    width: unset !important;
}

.reviewer-link-btn {
    border: 1px solid white;
    padding: 5px;
    color: white !important;
    background-color: inherit;
    margin-right: 15px;
    text-decoration: none;
}

.reviewer-link-btn:hover {
    filter: brightness(2.0);
    text-decoration: underline;
}

#ship-pii {
    padding: 10px;
    color: white;
    background-color: #6e4c30;
    outline: 5px solid #9c6a3d;
    position: absolute;
    width: 600px;
    z-index: 9980;
    left: calc(50% - 600px / 2);
    top: max(calc(50% - min(850px, 80%) / 2), 0px);

    overflow: scroll;
    height: 850px;
    max-height: 80%;
}

details>p,
details>div {
    margin: 0 25px;
    border-left: 2px solid white;
    padding-left: 20px;
}

.center-item {
    margin: 0 auto;
    display: block;
}

#docs-btn {
    background-color: #6e4c30;
    border: 5px solid #9c6a3d;
    position: absolute;
    top: 95px;
    right: 10px;
    padding: 5px 16px;
    font-size: 30px;
    color: #ffd3ab;
    text-decoration: none;
}

#docs-btn:hover {
    filter: brightness(1.2) saturate(1.1);
}

#onboarding-container {
    --x: 50%;
    --y: 50%;
    --w: 0px;
    --h: 0px;
    --o: -50%;
    --ox: 0px;
}

#onboarding-highlight {
    transition: 0.5s;
    position: absolute;
    z-index: 15;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-color: #000000b0;
    --shape: var(--x) var(--y), calc(var(--x) + var(--w)) var(--y), calc(var(--x) + var(--w)) calc(var(--y) + var(--h)), var(--x) calc(var(--y) + var(--h)), var(--x) var(--y);
    --s: -20px;
    clip-path: polygon(evenodd, var(--s) var(--s), calc(100% - var(--s)) var(--s), calc(100% - var(--s)) calc(100% - var(--s)), var(--s) calc(100% - var(--s)), var(--s) var(--s), var(--shape)) content-box;
}

#onboarding-text {
    transition: 0.5s;
    position: absolute;
    left: calc(var(--x) + var(--w));
    top: var(--y);
    z-index: 16;
    background-color: #6e4c30;
    border: 5px solid #9c6a3d;
    padding: 10px;
    color: white;
    transform: translate(calc(var(--o) + var(--ox)), var(--o));
    width: 300px;
}

#onboarding-text>p {
    margin: 0;
}

.onboarding-btn {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    color: white;
    cursor: pointer;
    display: block;
}

.onboarding-btn:hover {
    text-decoration: underline;
}

.docs-body {
    background-color: #1e1914;
    color: white;
    min-height: 1000px;
}

.docs-container {
    max-width: 800px;
    width: 100%;
    display: block;
    margin: 0 auto;
}

.docs-body a {
    color: #79a1ff;
}

q {
    white-space: preserve;
}

#ship-map-marker {
    position: relative;
    width: 0;
    height: 0;
}

#ship-map-marker>img {
    transform: translate(-50%, -50%);
    filter: drop-shadow(0px 0px 10px #ffff00b0) drop-shadow(0px 0px 5px white) drop-shadow(0px 0px 5px #ffffff7a);
}

#ship-map-marker>p {
    position: absolute;
    display: none;
    width: 140px;
    color: white;
    background-color: #6e4c30;
    outline: 5px solid #9c6a3d;
    text-align: center;
    top: -15px;
    transform: translate(-50%, -50%);
}

#ship-map-marker:hover>p {
    display: block;
}