.overlay {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgb(0,0,0);
    background-color: rgba(0,0,0,0.4);
    transition: opacity 600ms;
    z-index: 10;
}

.overlay .cancel {
    position: absolute;
    width: 100%;
    height: 100%;
    cursor: default;
}

.hide {
    visibility: hidden;
    opacity: 0;
}
.hide:target {
    visibility: visible;
    opacity: 1;
}

.show {
    visibility: visible;
    opacity: 1;
}
.show:target {
    visibility: hidden;
    opacity: 0;
}

.modal {
    position: relative;
    margin: auto;
    padding: 0;
    width: 650px;
    transform: translateY(-50%);
    padding: 10px;
    top: 50%;
    background-color: #f7f7f7;
    border: solid 1px #888888;
    box-shadow: 5px 5px 20px #555555;
}

.modal .close {
    position: relative;
}

.close {
    color: gray;
    float: right;
    font-size: 28px;
    margin-top: -8px;
    font-weight: bold;
}

.close:hover,
.close:focus {
    color: silver;
    text-decoration: none;
    cursor: pointer;
    opacity: 1;
}
