.soto {
    grid-area: soto;
    background-color: orange;
    font-family: MonsterPumpkin, serif;
}

a.project#soto {
    background-color: orange;
    font-family: MonsterPumpkin, serif;
    display: grid;
    position: relative;
    align-items: center;
    border-color: orange;
    color: orange;
    background-color: rgb(40, 40, 40);

    & >span {
        text-align: center;
        user-select: none;
        font-size: 10cqw;
        width: 80%;
        margin: 4cqw auto;
        line-height: 0.9;
    }
}
a.project#soto > span {
    grid-row: 1;
    grid-column: 1;
}

/* Scalable spider mask and image so they resize with the parent */
div#sotospidermask {
    position: absolute;
    top: 0%;
    left: 82%;
    width: 16%;               /* relative to the parent width */
    aspect-ratio: 1 / 2;     /* preserves the 96x192 proportion */
    pointer-events: none;
    clip-path: inset(15.1% 0 0 0);
    transform: translateY(-15%);
}

img#sotospider {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transform: translateY(-60%);   /* initial hanging offset (relative) */
    transform-origin: 50% 0%;
    transition: transform 0.4s ease;
}

img#sotospider.spiderdrop1 {
    transform: translateY(-20%);  /* drop distance scales with element */
}
img#sotospider.spiderdrop2 {
    transform: translateY(-21%);
}

@media only screen and (min-width: 1400px) {
    a.project#soto {
        line-height: 0.75;
    }
}