/* --------------------------------------------------- */
/* GOOGLE FONTS */
/* --------------------------------------------------- */

/* Lato-300 - latin-ext_latin */
@font-face {
    font-family: 'Lato';
    font-style: normal;
    font-weight: 300;
    src: local(''),
        url('../../vendors/webfonts/gfonts/lato-v17-latin-ext_latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
        url('../../vendors/webfonts/gfonts/lato-v17-latin-ext_latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}

/* Lato-300-italic - latin-ext_latin */
@font-face {
    font-family: 'Lato';
    font-style: italic;
    font-weight: 300;
    src: local(''),
        url('../../vendors/webfonts/gfonts/lato-v17-latin-ext_latin-300italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
        url('../../vendors/webfonts/gfonts/lato-v17-latin-ext_latin-300italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}

/* Lato-400 - latin-ext_latin */
@font-face {
    font-family: 'Lato';
    font-style: normal;
    font-weight: 400;
    src: local(''),
        url('../../vendors/webfonts/gfonts/lato-v17-latin-ext_latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
        url('../../vendors/webfonts/gfonts/lato-v17-latin-ext_latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}

/* --------------------------------------------------- */
/* BASIC SETUP */
/* --------------------------------------------------- */

* {
    margin: 0;
    padding: 0;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

*:focus {
    outline: none;
}

html,
body {
    background-color: #fff;
    color: #555;
    font-family: 'Lato', 'Arial', sans-serif;
    font-weight: 300;
    font-size: 20px;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
}

/* --------------------------------------------------- */
/* REUSABLE COMPONENTS */
/* --------------------------------------------------- */

.row {
    max-width: 1140px;
    margin: 0 auto;
}

section {
    padding: 80px 0;
}

.box {
    padding: 1%;
}

/* --------------------------------------------------- */
/* HEADINGS */
/* --------------------------------------------------- */

h1,
h2,
h3 {
    font-weight: 300;
    text-transform: uppercase;
}

h1 {
    margin-top: 0;    
    margin-bottom: 20px;
    color: #fff;
    font-size: 240%;
    word-spacing: 4px;
    letter-spacing: 1px;
}

h2 {
    font-size: 180%;    
    word-spacing: 2px;
    text-align: center;
    margin-bottom: 30px;
    letter-spacing: 1px;
}

/* Blue underline to appear after all <h2> section headings */
h2::after {
    display: block;
    height: 2px;
    background-color: #1f75fe;
    content: " ";
    width: 100px;
    margin: 0 auto;
    margin-top: 30px;
}

h3 {
    font-size: 110%;    
    margin-bottom: 15px;
}

/* --------------------------------------------------- */
/* PARAGRAPHS */
/* --------------------------------------------------- */

.box p {
    font-size: 90%;
    line-height: 145%;
}

/* --------------------------------------------------- */
/* LINKS */
/* --------------------------------------------------- */

a:link,
a:visited {
    color: #1f75fe;
    text-decoration: none;
    padding-bottom: 1px;
    border-bottom: 1px solid #1f75fe;
    -webkit-transition: border-bottom 0.2s, color 0.2s;
    -o-transition: border-bottom 0.2s, color 0.2s;
    transition: border-bottom 0.2s, color 0.2s;
}

a:hover,
a:active {
    color: #555;
    border-bottom: 1px solid transparent;
}

/* --------------------------------------------------- */
/* BUTTONS */
/* --------------------------------------------------- */

.btn:link,
.btn:visited,
input[type=submit] {
    display: inline-block;
    padding: 10px 30px;
    font-weight: 300;
    text-decoration: none;
    border-radius: 200px;
    -webkit-transition: background-color 0.2s, border 0.2s, color 0.2s;
    -o-transition: background-color 0.2s, border 0.2s, color 0.2s;
    transition: background-color 0.2s, border 0.2s, color 0.2s;
}

.btn-full:link,
.btn-full:visited,
input[type=submit] {
    background-color: #1f75fe;
    border: 1px solid #1f75fe;
    color: #fff;
    margin-right: 15px;
}

.btn-ghost:link,
.btn-ghost:visited {
    border: 1px solid #fff;
    color: #fff;
}

.btn-ghost-panel:link,
.btn-ghost-panel:visited {
    border: 1px solid #1f75fe;
    color: #1f75fe;
}

.btn:hover,
.btn:active,
input[type=submit]:hover,
input[type=submit]:active {
    background-color: #014dc7;
}

.btn-full:hover,
.btn-full:active {
    border: 1px solid #014dc7;
}

.btn-ghost:hover,
.btn-ghost-panel:hover,
.btn-ghost:active,
.btn-ghost-panel:active {
    border: 1px solid #014dc7;
    color: #fff;
}

.btn-ghost-panel:hover,
.btn-ghost-panel:active {
    opacity: 1;
}

/* --------------------------------------------------- */
/* HEADER */
/* --------------------------------------------------- */

header {
    background-image: -o-linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), url(../images/hero-background.jpg);
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.7)), to(rgba(0, 0, 0, 0.7))), url(../images/hero-background.jpg);
    background-image: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), url(../images/hero-background.jpg);
    background-size: cover;
    background-position: center;
    height: 100vh;
    background-attachment: fixed;
}

.hero-text-box {
    position: absolute;
    width: 1140px;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}

/* Compact version of hero text is only displayed in landscape */
/* Hidden by default, displayed through media queries */
.compact-hero-text {
    display: none;
}

.logo {
    height: 100px;
    width: auto;
    float: left;
    margin-top: 20px;
}

.logo-black {
    display: none;
    height: 50px;
    width: auto;
    float: left;
    margin: 5px 0;
}

/* --------------------------------------------------- */
/* MAIN NAVIGATION */
/* --------------------------------------------------- */

.main-nav {
    float: right;
    list-style: none;
    margin-top: 55px;
}

.main-nav li {
    display: inline-block;
    margin-left: 40px;
    word-spacing: 0.2em;
}

/* Set up coloured underline for navigation links using bottom border */
/* Transparent (hidden) by default until hovered over */
.main-nav li a:link,
.main-nav li a:visited {
    padding: 8px 0;
    color: #fff;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 90%;
    border-bottom: 2px solid transparent;
    -webkit-transition: border-bottom 0.2s;
    -o-transition: border-bottom 0.2s;
    transition: border-bottom 0.2s;
}

/* Show the coloured underline (bottom border) on hover */
.main-nav li a:hover,
.main-nav li a:active {
    border-bottom: 2px solid #1f75fe;
}

/* --------------------------------------------------- */
/* STICKY NAVIGATION */
/* --------------------------------------------------- */

/* Set up mobile navigation icon. Not displayed by default */
/* Displayed through media queries when screen size reduces */
.mobile-nav-icon {
    float: right;
    margin-top: 30px;
    cursor: pointer;
    display: none;
}

.mobile-nav-icon i {
    font-size: 300%;
    color: #fff;
}

.sticky {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: rgba(255, 255, 255, 0.98);
    -webkit-box-shadow: 0 2px 2px #e0e0e0;
    box-shadow: 0 2px 2px #e0e0e0;
    z-index: 9999;
}

.sticky .main-nav {
    margin-top: 18px;
}

.sticky .main-nav li a:link,
.sticky .main-nav li a:visited {
    padding: 16px 0;
    color: #555;
}

/* Sticky navigation bar logo not displayed by default */
/* Appears along with sticky nav bar as user scrolls down */
.sticky .logo {
    display: none;
}

.sticky .logo-black {
    display: block;
}

/* --------------------------------------------------- */
/* PROJECTS SECTION */
/* --------------------------------------------------- */

.section-projects {
    background-image: -webkit-gradient(linear,left top, left bottom,from(rgba(244, 244, 244, 0.85)),to(rgba(244, 244, 244, 0.85))), url(../images/projects-background.jpg);
    background-image: linear-gradient(rgba(244, 244, 244, 0.85),rgba(244, 244, 244, 0.85)), url(../images/projects-background.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}

.section-projects .long-copy {
    margin-bottom: 30px;
}

/* Flexbox to arrange the project boxes and wrap automatically */
/* for responsive layout */
.projects-flex-container {
    margin-top: 20px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    min-height: 125px;
    -ms-flex-pack: distribute;
    justify-content: space-around;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

/* Individual project boxes within the Flexbox container */
.project-box {
    background-color: rgb(230, 230, 230);
    border: 2px dashed transparent;
    -webkit-transition: border 0.2s;
    -o-transition: border 0.2s;
    transition: border 0.2s;
    border-radius: 10px;
    -webkit-box-shadow: 3px 3px 10px rgb(184, 184, 184);
    box-shadow: 3px 3px 10px rgb(184, 184, 184);
    width: 40%;
    min-width: 320px;
    height: auto;
    margin: 20px 20px;
    cursor: pointer;
}

/* Highlight project boxes with a border when hovering */
.project-box:hover {
    border: 2px dashed #1f75fe;
}

.project-box a:link,
.project-box a:visited,
.project-box a:hover,
.project-box a:active {
    text-decoration: none;
    border: none;
}

.project-box img {
    width: 100%;
    height: auto;
    margin-bottom: 15px;
}

.project-box h3 {
    margin-left: 10px;
    margin-top: 10px;
}

.project-box h4 {
    margin: 0 10px 15px 10px;
    text-transform: none;
    font-size: 95%;
    font-style: italic;
}

/* --------------------------------------------------- */
/* ABOUT ME */
/* --------------------------------------------------- */

.section-about {
    background-image: -o-linear-gradient(rgba(0, 0, 0, 0.8),rgba(0, 0, 0, 0.8)), url(../images/about-background.jpg);
    background-image: -webkit-gradient(linear,left top, left bottom,from(rgba(0, 0, 0, 0.8)),to(rgba(0, 0, 0, 0.8))), url(../images/about-background.jpg);
    background-image: linear-gradient(rgba(0, 0, 0, 0.8),rgba(0, 0, 0, 0.8)), url(../images/about-background.jpg);
    background-size: cover;
    color: #fff;
    background-attachment: fixed;
}

.box img {
    width: 100%;
    height: auto;
    margin-right: 15px;
    border-radius: 15px;
    -webkit-box-shadow: 3px 3px 7px rgb(221, 221, 221);
    box-shadow: 3px 3px 7px rgb(221, 221, 221);
    float: right;
}

.about-box h3 {
    letter-spacing: 3px;
}

.about-box .about-point:first-of-type {
    margin-top: 50px;
}

.about-point {
    margin-bottom: 30px;
}

.about-box .about-point:last-of-type {
    margin-bottom: 10px;
}

.about-point div:first-of-type {
    float: left;
    width: 55px;
    height: 55px;
    text-align: center;
    padding: 5px;
    font-size: 200%;
    margin-right: 25px;
}

.about-text {
    overflow: hidden;
    font-size: 120%;
}

.about-text p {
    padding-top: 15px;
}

.about-text ul {
    margin-left: 40px;
    list-style-type: circle;
}

.about-text ul li {
    padding: 2px 0;
}

/* --------------------------------------------------- */
/* SKILLS */
/* --------------------------------------------------- */

.section-skills {
    background-image: -webkit-gradient(linear,left top, left bottom,from(rgba(244, 244, 244, 0.95)),to(rgba(244, 244, 244, 0.95))), url(../images/skills-background.jpg);
    background-image: linear-gradient(rgba(244, 244, 244, 0.95),rgba(244, 244, 244, 0.95)), url(../images/skills-background.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}

/* Flexboxes to arrange the skills and contact icons */
.skills-contact-flex-container {
    margin: 10px auto 0 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 80%;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

/* Flexbox logo items within the container */
.logo-flex-item {
    text-align: center;
    margin: 0 30px;
}

.logo-flex-item h3 {
    margin-top: 7px;
    font-size: 90%;
}

/* Font Awesome used for scalable logos */
.logo-flex-item i {
    font-size: 300%;
}

.skills-contact-flex-container a:link,
.skills-contact-flex-container a:visited {
    text-decoration: none;
    color: #555;
    border: none;
    -webkit-transition: color 0.2s;
    -o-transition: color 0.2s;
    transition: color 0.2s;
}

.skills-contact-flex-container a:hover {
    color: #1f75fe;
}

.certifications div {
    width: 50%;
    height: auto;
    margin: 40px auto 0 auto;
    text-align: center;
}

.certifications img {
    max-width: 100%;
    height: auto;
}

.certifications a {
    text-decoration: none;
    border: none;
}

/* --------------------------------------------------- */
/* CONTACT FORM */
/* --------------------------------------------------- */

.contact-form {
    width: 60%;
    margin: 40px auto 0 auto;
}

/* Form submit success/error banner */
/* Hidden by default until form submission */
.js--form-success,
.js--form-error,
.js--form-invalid {
    width: 60%;
    margin: 15px auto;
    border-radius: 3px;
    text-align: center;
    font-weight: 400;
    display: none;
}

.js--form-success {
    background-color: rgba(57, 193, 108, 0.5);
}

.js--form-error,
.js--form-invalid {
    background-color: rgba(255, 204, 204, 0.8);
}

.js--form-success p,
.js--form-error p,
.js--form-invalid p {
    margin: 7px 0;
}


.form-icon {
    float: right;
    font-size: 125%;
    margin: 7px 15px 0 15px;
    cursor: pointer;
}

input[type=text],
input[type=email],
textarea {
    width: 100%;
    padding: 7px;
    border-radius: 3px;
    border: 1px solid #ccc;
}

textarea {
    height: 150px;
}

/* --------------------------------------------------- */
/* FOOTER */
/* --------------------------------------------------- */

footer {
    background-color: #333;
    color: rgb(187, 187, 187);
    padding: 15px;
    font-size: 80%;
}

footer .copyright {
    float: left;
}

footer .wireframe {
    float: right;
}

footer a:link,
footer a:visited {
    color: #fff;
    text-decoration: none;
    padding-bottom: 1px;
    border-bottom: 1px solid #1f75fe;
    -webkit-transition: border-bottom 0.2s, color 0.2s;
    -o-transition: border-bottom 0.2s, color 0.2s;
    transition: border-bottom 0.2s, color 0.2s;
}

footer a:hover,
footer a:active {
    color: #1f75fe;
    border-bottom: 1px solid transparent;
}

/* --------------------------------------------------- */
/* SLIDE-OUT PANEL */
/* OPENS WHEN A PROJECT IS SELECTED */
/* --------------------------------------------------- */
#panel {
    width: 40%;
    height: 100vh;
    top: 0;
    left: 0;
    position: fixed;
    padding-top: 30px;
    background-color: rgb(230, 230, 230);
    -webkit-box-shadow: 3px 3px 3px rgb(184, 184, 184);
    box-shadow: 3px 3px 3px rgb(184, 184, 184);;
    overflow: auto;
    opacity: 0.95;
    -webkit-transition: transform 0.25s cubic-bezier(1,.42,.3,.81);
    -webkit-transition: -webkit-transform 0.25s cubic-bezier(1,.42,.3,.81);
    transition: -webkit-transform 0.25s cubic-bezier(1,.42,.3,.81);
    -o-transition: transform 0.25s cubic-bezier(1,.42,.3,.81);
    transition: transform 0.25s cubic-bezier(1,.42,.3,.81);
    transition: transform 0.25s cubic-bezier(1,.42,.3,.81), -webkit-transform 0.25s cubic-bezier(1,.42,.3,.81);
    z-index: 10000;
}

.panel-closed {
    -webkit-transform: translate3d(-105%, 0, 0);
    transform: translate3d(-105%, 0, 0);
}

.panel-open {
    -webkit-transform: translate3d(0%, 0, 0);
    transform: translate3d(0%, 0, 0);
}

#panel-header {
    float: right;
    font-size: 200%;
    margin: 0 20px 0 0;
    cursor: pointer;
}

.panel-content div {
    display: none;
    width: 75%;
    margin: 0 auto;
}

.panel-content h2 {
    font-size: 130%;
}

.panel-content ul {
    font-size: 105%;
    color: rgb(48, 48, 48);
}

.panel-content li {
    margin-bottom: 15px;
}

.panel-content .panel-buttons {
    width: 90%;
    margin-top: 50px;
    margin-bottom: 20px;
    text-align: center;
}

/* --------------------------------------------------- */
/* ANIMATIONS */
/* SCROLL TO WAYPOINTS, SLIDE DIVS, BOUNCE LOGOS */
/* --------------------------------------------------- */

.js--wp-1,
.js--wp-2a,
.js--wp-2b,
.js--wp-4 {
    opacity: 0;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
}

.js--wp-3 {
    -webkit-animation-duration: 1.3s;
    animation-duration: 1.3s;
}

.js--wp-1.animate__animated,
.js--wp-2a.animate__animated,
.js--wp-2b.animate__animated,
.js--wp-4.animate__animated {
    opacity: 1;
}

.js--form-success,
.js--form-error,
.js--form-invalid {
    -webkit-animation-duration: 1.3s;
    animation-duration: 1.3s;
}

.standard-hero-text,
.compact-hero-text {
	-webkit-animation-duration: 1.3s;
	animation-duration: 1.3s;
}

/* --------------------------------------------------- */
/* PRELOADER */
/* DISPLAYED WHILE SITE IS LOADING */
/* --------------------------------------------------- */

.preload-noscroll {
    overflow: hidden;
}

#preloader {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    height: 100%;
    width: 100%;
    background-color: #4e4e4e;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10001;
}

.cube-grid {
    width: 80px;
    height: 80px;
    margin: 100px auto;
}

.cube-grid .cube {
    width: 33%;
    height: 33%;
    background-color: #F4F4F4;
    float: left;
    -webkit-animation: cubeGridScaleDelay 1.3s infinite ease-in-out;
    animation: cubeGridScaleDelay 1.3s infinite ease-in-out; 
}
.cube-grid .cube1 {
    -webkit-animation-delay: 0.2s;
    animation-delay: 0.2s;
}

.cube-grid .cube2 {
    -webkit-animation-delay: 0.3s;
    animation-delay: 0.3s;
}

.cube-grid .cube3 {
    -webkit-animation-delay: 0.4s;
    animation-delay: 0.4s;
}

.cube-grid .cube4 {
    -webkit-animation-delay: 0.1s;
    animation-delay: 0.1s;
}

.cube-grid .cube5 {
    -webkit-animation-delay: 0.2s;
    animation-delay: 0.2s;
}

.cube-grid .cube6 {
    -webkit-animation-delay: 0.3s;
    animation-delay: 0.3s;
}

.cube-grid .cube7 {
    -webkit-animation-delay: 0s;
    animation-delay: 0s;
}

.cube-grid .cube8 {
    -webkit-animation-delay: 0.1s;
    animation-delay: 0.1s;
}

.cube-grid .cube9 {
    -webkit-animation-delay: 0.2s;
    animation-delay: 0.2s;
}

@-webkit-keyframes cubeGridScaleDelay {
    0%, 70%, 100% {
        -webkit-transform: scale3D(1, 1, 1);
        transform: scale3D(1, 1, 1);
    }
    35% {
        -webkit-transform: scale3D(0, 0, 1);
        transform: scale3D(0, 0, 1); 
    }
}

@keyframes cubeGridScaleDelay {
    0%, 70%, 100% {
        -webkit-transform: scale3D(1, 1, 1);
        transform: scale3D(1, 1, 1);
    }
    35% {
        -webkit-transform: scale3D(0, 0, 1);
        transform: scale3D(0, 0, 1);
    } 
}

/* --------------------------------------------------- */
/* MEDIA QUERIES */
/* --------------------------------------------------- */
/* MAKE THE SITE RESPONSIVE THROUGH */
/* A SERIES OF BREAKPOINTS */
/* --------------------------------------------------- */

/* Devices that don't support hover */
/* Revert all elements with a hover style back to original state */
/* to avoid hover effect getting 'stuck on' when touched */
@media (hover: none) {
    .main-nav li a:link,
    .main-nav li a:visited,
    .main-nav li a:active {
        border-bottom: none;
    }

    .btn-full:link,
    .btn-full:visited,
    .btn-full:active {
        background-color: #1f75fe;
        border: 1px solid #1f75fe;
        color: #fff;
    }

    .btn-ghost:link,
    .btn-ghost:visited,
    .btn-ghost:active {
        background-color: transparent;
        border: 1px solid #fff;
        color: #fff;
    }

    .btn-ghost-panel:link,
    .btn-ghost-panel:visited,
    .btn-ghost-panel:active {
        background-color: transparent;
        border: 1px solid #1f75fe;
        color: #1f75fe;
    }

    .skills-contact-flex-container a:link,
    .skills-contact-flex-container a:visited,
    .skills-contact-flex-container a:active {
        border: none;
        color: #555;
    }
}

/* Devices in landscape */
@media only screen 
  and (max-device-width: 950px)
  and (orientation: landscape) {
    /* Move the hero text box down to cater for reduced height in landscape */
    .hero-text-box {
        -webkit-transform: translate(-50%, -20%);
        -ms-transform: translate(-50%, -20%);
        transform: translate(-50%, -20%);
    }

    /* Hide the standard hero text in landscape */
    .standard-hero-text {
        display: none;
    }

    /* Show the more compact version of the hero text in landscape. */
    .compact-hero-text {
        display: block;
        font-size: 160%;
    }
}

/* Large tablet to 1200px (widths smaller than the 1140px row) */
@media only screen and (max-width: 1200px) {
    .hero-text-box {
        width: 100%;
        padding: 0 2%;
    }
    
    .row {
        padding: 0 2%;
    }

    /* Increase the width of the slide-out project information panel */
    #panel {
        width: 60%;
    }
}

/* Small tablet to large tablet - from 768px to 1023px */
@media only screen and (max-width: 1023px) {

    body {
        font-size: 18px;
    }

    section {
        padding: 60px 0;
    }
    
    .long-copy {
        width: 80%;
        margin-left: 10%;
    }

    /* Increase width of contact form */
    .contact-form,
    .form-success,
    .form-error {
        width: 80%;
    }

    .form-icon {
        margin: 7px 0 0 15px;
    }
}

/* Small phones to small tablets - 481px to 767px */
@media only screen and (max-width: 767px) {
    body {
        font-size: 16px;
    }
    
    section {
        padding: 30px 0;
    }
    
    .row,
    .hero-text-box {
        padding: 0 4%;
    }

    .col {
        width: 100%;
        margin: 0 0 4% 0;
    }

    /* Hide the main navigation bar */
    /* Will be shown again (after reformatting for smaller screens) */
    /* when the user clicks/touches the mobile navigation icon */
    .main-nav {
        display: none;
    }

    /* Display the mobile navigation icon instead of the main navigation bar */
    .mobile-nav-icon {
        display: inline-block;
    }

    .mobile-nav-icon i {
        font-size: 170%;
    }
    
    /* Reformat the navigation bar for smaller screens - move it to the left */
    .main-nav {
        float: left;
        margin-top: 35px;
        margin-left: 25px;
    }
    
    /* Reformat the navigation bar list items for smaller screens - */
    /* Stack them vertically, like a dropdown */
    /* (menu remains hidden until user clicks/touches the mobile nav icon to open it) */
    .main-nav li {
        display: block;
    }
    
    .main-nav li a:link,
    .main-nav li a:visited {
        display: block;
        border: 0;
        padding: 10px 0;
        font-size: 100%;
    }
    
    .sticky .main-nav {
        margin-top: 10px;
    }

    .sticky .main-nav li a:link,
    .sticky .main-nav li a:visited {
        padding: 10px 0;
    }

    .sticky .mobile-nav-icon {
        margin-top: 15px;
    }

    .sticky .mobile-nav-icon i {
        color: #555;
        font-size: 170%;
    }

    h1 {
        font-size: 180%;
    }

    h2 {
        font-size: 150%;
    }
    
    .long-copy {
        width: 100%;
        margin-left: 0%;
    }

    .profile {
        text-align: center;
    }

    /* Reduce whitespace above project boxes for smaller screens */
    .project-box:first-child {
        margin-top: 3px;
    }

    .section-about .long-copy {
        width: 100%;
        text-align: center;
        margin-top: 15px;
    }

    /* --------------------------------------------------- */
    /* SLIDE-OUT PANEL */
    /* OPENS WHEN A PROJECT IS SELECTED */
    /* --------------------------------------------------- */

    /* Increase the width of the slide-out project information panel */
    #panel {
        width: 95%;
    }

    /* Give some extra space around the slide-out panel's close button */
    #panel-header {
        margin-left: 15px;
    }

    /* Reformat the slide-out-panel's buttons section */
    .panel-content .panel-buttons {
        width: 50%;
        margin-top: 30px;
    }

    /* Stack the slide-out-panel's buttons vertically and centre them */
    .panel-content .panel-buttons a {
        display: block;
        margin: 0 auto 15px auto;
    }

    /* Remove the background image in 'Projects' section */
    .section-projects {
        background: none;
        background-color: #f4f4f4;
    }

    /* Reduce the size of the profile picture as the screen size reduces */
    .section-about img {
        float: none;
        position: relative;
        left: 5px;
        width: 35%;
        height: auto;
    }

    /* Reduce spacing in 'About Me' text area */
    .about-box h3 {
        padding-top: 15px;
        text-align: center;
    }

    .about-box .about-point:first-of-type {
        margin-top: 30px;
    }
    
    .about-point {
        margin-bottom: 25px;
    }

    .about-text {
        font-size: 110%;
    }

    .about-text p {
        padding-top: 10px;
    }

    .about-text ul {
        margin-left: 30px;
    }

    /* Stack footer items vertically when screen size is too small */
    /* to show them floated left/right on the same line */
    footer .copyright,
    footer .wireframe {
        float: none;
    }

    /* Give some space between vertically stacked footer items */
    footer .wireframe {
        margin-top: 10px;
    }
}

/* Small phones - from 0 to 480px */
@media only screen and (max-width: 480px) {
    section {
        padding: 25px 0;
    }

    .profile {
        text-align: center;
    }

    /* Reduce whitespace above project boxes for smaller screens */
    .project-box:first-child {
        margin-top: 3px;
    }
    
    .section-about .long-copy {
        width: 100%;
        text-align: center;
        margin-top: 15px;
    }

    /* Reduce the size of the profile picture as the screen size reduces */
    .section-about img {
        float: none;
        position: relative;
        left: 5px;
        width: 35%;
        height: auto;
    }

    /* Increase width of contact form */
    .contact-form,
    .form-success,
    .form-error {
        width: 95%;
    }

    .form-icon {
        margin: 7px 0 0 15px;
    }

    /* Stack footer items vertically when screen size is too small */
    /* to show them floated left/right on the same line */
    footer .copyright,
    footer .wireframe {
        float: none;
    }

    /* Give some space between vertically stacked footer items */
    footer .wireframe {
        margin-top: 10px;
    }
}

/* Disable unsupported fixed background image attachment on iOS */
@supports (-webkit-touch-callout: none) {
    header,
    .section-about {
        background-attachment: scroll;
    }
}