html, body, .banner {
    width: 100vw;
    height: 100vh;
    margin: 0;
    padding: 0;
    background-color: #000;
    font-size: 10px;
}

.banner {
    font-family: 'EB Garamond', serif;
    font-weight: 400;
    color: #fff;
    overflow: hidden;
    cursor: pointer;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-text-size-adjust: none;
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}

.banner, .banner *, .banner:after, .banner:before {
    box-sizing: border-box;
}

.wrap {
    width: 74%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
}

.box {
    position: absolute;
    display: inline-block;
    width: 50%;
    height: 50%;
    background-size: cover;
    background-position: 50% 25%;
    background-repeat: no-repeat;
    border-color: #484848;
    border-style: none;
    border-width: 1px;
    top: 0;
    left: 0;
    overflow: hidden
}

.box:nth-child(1),
.box:nth-child(3),
.box:nth-child(4) {
    border-right-style: solid;
}

.box:nth-child(1),
.box:nth-child(3) {
    border-left-style: solid;
}

.box:nth-child(1),
.box:nth-child(2) {
    border-bottom-style: solid;
}

.box:nth-child(2) {
    left: 50%;
}

.box:nth-child(3),
.box:nth-child(4),
.box:nth-child(5) {
    top: 50%;
    width: 33.33%;
    width: calc(100% / 3);
}

.box:nth-child(4) {
    left: 33.33%;
    left: calc(100% / 3);
}

.box:nth-child(5) {
    left: 66.66%;
    left: calc((100% / 3) * 2);
}

.box:before {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    content: "";
}

.box:after {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0;
    background: #000;
    transition: all .4s ease-out;
    content: "";
}

.box:nth-child(1) .box-bg {
    background-image: url("image-ss.jpg");
    background-position: 50% 40%;
}

.box:nth-child(2) .box-bg {
    background-image: url("image-or.jpg");
    background-position: 35% 10%;
}

.box:nth-child(3) .box-bg {
    background-image: url("image-es.jpg");
    background-position: 70% 50%;
}

.box:nth-child(4) .box-bg {
    background-image: url("image-ff.jpg");
    background-position: 54% 50%;
}

.box:nth-child(5) .box-bg {
    background-image: url("image-eg.jpg");
    background-position: 60% 50%;
}

.box-bg {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    transition: opacity .4s ease, transform .4s ease;
    -webkit-transform-origin: center 75%;
    transform-origin: center 75%;
}

.edge-tint {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: linear-gradient(45deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,1) 100%);
    opacity: .5
}

.badge {
    z-index: 999;
    width: 8.5em;
    height: auto;
    position: absolute;
    top: 2.7em;
    right: 2.7em;
/*
    -ms-transform: rotate(-50deg);
    -webkit-transform: rotate(-50deg);
    transform: rotate(-50deg);
    transition: all .6s cubic-bezier(.33, .1, .5, 1.37), opacity .6s ease;
*/
}

.box:nth-child(1) .badge,
.box:nth-child(2) .badge {
    width: 9.5em;
    top: 3em;
    right: 3em
}

.logo {
    width: 13em;
    height: auto;
    position: absolute;
    margin-top: 3em;
    right: 50%;
    -ms-transform: translateX(50%);
    -webkit-transform: translateX(50%);
    transform: translateX(50%);
}

.side {
    position: absolute;
    left: 0;
    width: 26%;
    height: 100%;
}

.copy {
    width: 100%;
    font-size: 2.2em;
    line-height: 1.1;
    text-align: center;
    position: relative;
    top: 52%;
    color: #fff;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    padding: 0 5%;
}

.hero {
    font-size: 1.8em;
    text-transform: uppercase;
    font-weight: 500
}

.button,
.box-btn {
    font-family: 'Roboto', sans-serif;
    font-weight: 400
}

.button {
    background-color: transparent;
    white-space: nowrap;
    cursor: pointer;
    line-height: normal;
    position: relative;
    text-decoration: none;
    text-align: center;
    display: table;
    margin: 2.25em auto 0 auto;
    padding: .9em 2em;
    font-size: .65em;
    transition: border 150ms ease-out, color 150ms ease-out;
    border: 1px solid #b8b8b8;
    border-radius: 2em;
}

.button:hover, .button:focus {
    border: 1px solid #fff;
}

.box-btn {
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    line-height: normal;
    position: relative;
    text-decoration: none;
    padding: .9em 2em;
    font-size: .45em;
    transition: border 150ms ease-out, color 150ms ease-out;
    border-radius: 2em;
    margin-top: 1.4em;
    color: #000;
    background-color: #f5bf00
}

.box-copy {
    text-align: center;
    width: 100%;
    text-transform: uppercase;
    pointer-events: none;
    position: absolute;
    z-index: 999;
    font-size: 2.8em;
    line-height: 1;
    font-weight: 500;

    opacity: 0;
    padding: 2em 1em;

    left: 0;
    bottom: -7%;
    transition: opacity .3s ease .05s, bottom .3s ease .05s
}

.box-exit {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 999
}

.box-exit-hide {
    display: none !important
}

.imp-img {
    position: absolute;
    bottom: 0;
    left: 0;
    opacity: 0;
}

.box {
    opacity: 0
}

.reveal {
    transition: opacity 1s ease;
    opacity: 1 !important
}