/* Container */
.modal {

    /* Overlay page content */
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.5);
    z-index: 10000;

    /* Transition opacity on open */
    -webkit-transition: opacity 500ms ease-in;
    -moz-transition: opacity 500ms ease-in;
    transition: opacity 500ms ease-in;

    /* Hide for now */
    opacity: 0;
    pointer-events: none;
}

/* Show modal */
.modal:target {
    opacity: 1;
    pointer-events: auto;
    /* at time of writing (Feb 2012), pointer-events not supported by Opera or IE */
}

/* Content */
.modal > div {
    width: 70%;
    max-width: 600px;
    background: #fff;
    position: relative;
    margin: 5% auto;

    /* Default minimise animation */
    -webkit-animation: minimise 500ms linear;
    -moz-animation: minimise 500ms linear;

    /* Prettify */
    padding: 30px;
    border-radius: 7px;
    box-shadow: 0 3px 20px rgba(0,0,0,0.9);
    background: #fff;
}

/* Override animation on modal open */
.modal:target > div {
    -webkit-animation-name: bounce;
    -moz-animation-name: bounce;
}

@-webkit-keyframes bounce {
    0% {
        -webkit-transform: scale3d(0.1,0.1,1);
        box-shadow: 0 3px 20px rgba(0,0,0,0.9);
    }
    55% {
        -webkit-transform: scale3d(1.08,1.08,1);
        box-shadow: 0 10px 20px rgba(0,0,0,0);
    }
    75% {
        -webkit-transform: scale3d(0.95,0.95,1);
        box-shadow: 0 0 20px rgba(0,0,0,0.9);
    }
    100% {
        -webkit-transform: scale3d(1,1,1);
        box-shadow: 0 3px 20px rgba(0,0,0,0.9);
    }
}

@-webkit-keyframes minimise {
    0% {
        -webkit-transform: scale3d(1,1,1);
    }
    100% {
        -webkit-transform: scale3d(0.1,0.1,1);
    }
}

@-moz-keyframes bounce {
    0% {
        -moz-transform: scale3d(0.1,0.1,1);
        box-shadow: 0 3px 20px rgba(0,0,0,0.9);
    }
    55% {
        -moz-transform: scale3d(1.08,1.08,1);
        box-shadow: 0 10px 20px rgba(0,0,0,0);
    }
    75% {
        -moz-transform: scale3d(0.95,0.95,1);
        box-shadow: 0 0 20px rgba(0,0,0,0.9);
    }
    100% {
        -moz-transform: scale3d(1,1,1);
        box-shadow: 0 3px 20px rgba(0,0,0,0.9);
    }
}

@-moz-keyframes minimise {
    0% {
        -moz-transform: scale3d(1,1,1);
    }
    100% {
        -moz-transform: scale3d(0.1,0.1,1);
    }
}

/* Modal close link */
.modal a[href="#close"] {
    position: absolute;
    right: 0;
    top: 0;
    color: transparent;
}

/* Reset native styles */
.modal a[href="#close"]:focus {
    outline: none;
}

/* Create close button */
.modal a[href="#close"]:after {
    content: 'X';
    display: block;

    /* Position */
    position: absolute;
    right: -10px;
    top: -10px;
    width: 1.5em;
    height: 1.5em;
    line-height: 20px;

    /* Style */
    text-decoration: none;
    text-shadow: none;
    text-align: center;
    font-weight: bold;
    background: #000;
    color: #fff;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0,0,0,0.5);
}

.modal a[href="#close"]:focus:after,
.modal a[href="#close"]:hover:after {
    -webkit-transform: scale(1.1,1.1);
    -moz-transform: scale(1.1,1.1);
}

.modal a[href="#close"]:focus:after {
    outline: 1px solid #000;
}