* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
    outline: 0px solid blue;
}

body {
    background-color: rgb(250, 250, 250);
    display: flex;
    flex-direction: column;
    align-items: center;
    font-family: Arial, Helvetica, sans-serif;
    color: rgb(80,80,80);
    padding: 3rem 2rem;
    margin:auto;
}

.header {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    align-items: center;
    text-align: center;
}

.photo-block {
    flex:none;
}

.introduction-block {
    flex:auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.buttons-block {
    flex: none;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
}

.headshot {
    width: 5.5rem;
    border-radius: 50%;
    border: 2px solid rgb(255,255,255);
}

h1{
    padding-bottom: 0.1rem;
    font-size: 2rem;
}

.button-front {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: rgb(64, 84, 170);
}

#linkedin-icon {
    width: 50%;
}

#email-icon {
    width: 70%;
}

.gallery {
    display: flex;
    flex-direction: column;
    justify-items: center;
}

.tile {
    background-color: rgb(255,255,255);
    padding: 2rem;
    width: 22rem;
    height: 22rem;
    display: flex;
    flex-direction: column;
    box-shadow: 0px 0px 15px -5px rgb(0,0,0,0.2);
}

.slot + .slot {
    margin-top: 2rem;
}

.spacer, .shelf, .lip, .lip-top, .shelf-shadow {
    visibility: hidden;
}

.illustration {
    width:100%;
    margin-top: auto;
}

h2 {
    color: rgb(196, 196, 196);
    font-size: 1.6rem;
    padding: 3rem;
    text-align: center;
}

h3 {
    font-size: 1.6rem;
    padding-bottom: 0.5rem;
}

p {
    line-height: 1.2rem;;
}

a {
    text-decoration: none;
    color: rgb(80,80,80);
}

.tile:hover {
    box-shadow: 0px 0px 15px -5px rgb(0,0,0,0.4);
}

@media only screen and (min-width: 1270px) {

    body {
        padding: 3rem;
        max-width: 1500px;
    }

    .header {
        flex-direction: row;
        gap: 1rem;
        width: 100%;
        text-align: left;
    }

    .gallery {
        position:relative;
        margin-top: max(2rem, calc(30vh - 9rem));
        display: flex;
        flex-direction: row;
        justify-items: center;
        gap: 3rem;
        align-items: end;
    }

    h2 {
        padding: 0 0 3rem 2rem;
        text-align: left;
    }

    .spacer {
        visibility: visible;
        width: 2rem;
    }
    
    .shelf{
        visibility: visible;
        position: absolute;
        z-index: -1;
        left: -9rem;
        bottom: -0.5rem;
        width: 96rem;
        border-bottom: 5rem solid rgb(175, 142, 119);
        border-left: 8rem solid transparent;
        border-right: 8rem solid transparent;
    }
    
    .lip-top{
        visibility: visible;
        position: absolute;
        z-index: 1;
        left: -9rem;
        bottom: 1.5rem;
        width: 96rem;
        border-bottom: 0.6rem solid rgb(214, 186, 166);
        border-left: 1.2rem solid transparent;
        border-right: 1.2rem solid transparent;
    }
    
    .lip{
        visibility: visible;
        position: absolute;
        z-index: 1;
        left: -9rem;
        bottom: -0.5rem;
        width: 96rem;
        border-bottom: 2rem solid rgb(175, 142, 119);
    }
    
    .shelf-shadow{
        visibility: visible;
        position: absolute;
        z-index: -2;
        left: -7rem;
        bottom: -0.5rem;
        width: 92rem;
        height: 0rem;
        background-color: transparent;
        box-shadow: 0px 0px 30px 5px rgb(0,0,0,1);
    }

    .tile:hover {
        box-shadow: 0px 0px 15px -5px rgb(0,0,0,0.2);
    }
    
    .tile:hover {
        transform-origin: 0 100%;
        transform: rotate(-1.5deg);
        transition: 60ms cubic-bezier(0.075, 0.82, 0.165, 1);
    }
    
    .tile {
        height: 24rem;
        padding-bottom: 3.5rem;
        transition: 600ms cubic-bezier(0.075, 0.82, 0.165, 1);
    }
}

