/*!
 * Start Bootstrap - Grayscale Bootstrap Theme (http://startbootstrap.com)
 * Code licensed under the Apache License v2.0.
 * For details, see http://www.apache.org/licenses/LICENSE-2.0.
 */

/* ==========================================================================
   Bootstrap Replacement
   ========================================================================== */

/* Normalize */
*, *:before, *:after { box-sizing: border-box; }
body { margin: 0; }
a { text-decoration: none; }
img { max-width: 100%; height: auto; vertical-align: middle; }

/* Layout */
.container { width: 100%; max-width: 1170px; padding: 0 15px; margin: 0 auto; }
.row { display: flex; flex-wrap: wrap; margin: 0 -15px; }
[class*="col-"] { padding: 0 15px; width: 100%; }
@media (min-width: 768px) { .col-sm-6 { width: 50%; } }
@media (min-width: 992px) { .col-md-8 { width: 66.6667%; } .col-md-offset-2 { margin-left: 16.6667%; } }
@media (min-width: 1200px) { .col-lg-8 { width: 66.6667%; } .col-lg-offset-2 { margin-left: 16.6667%; } }

/* Utilities */
.text-center { text-align: center; }
.hidden { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.list-inline { padding-left: 0; list-style: none; }
.list-inline > li { display: inline-block; padding: 0 5px; }

/* Fixed navbar */
.navbar-fixed-top { position: fixed; top: 0; left: 0; right: 0; max-width: 1200px; margin: 0 auto; z-index: 1030; }
.navbar > .container { display: flex; align-items: center; flex-wrap: wrap; }
.navbar-header { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 50px; }
.navbar-toggle { background: transparent; border: 1px solid rgba(255,255,255,.4); border-radius: 4px; padding: 4px 8px; cursor: pointer; color: #fff; }
/* renderTemplate wraps the collapse in an anonymous div — target it to push nav right */
.navbar > .container > div:not(.navbar-header) { width: 100%; }
.navbar-collapse { display: none; width: 100%; }
.navbar-collapse.in { display: block; }
.nav { padding: 0; margin: 0; list-style: none; }
@media (min-width: 768px) {
    .navbar-header { width: auto; }
    .navbar-toggle { display: none; }
    .navbar > .container > div:not(.navbar-header) { flex: 1; display: flex; justify-content: flex-end; width: auto; }
    .navbar-collapse { display: flex !important; align-items: center; width: auto; }
    .nav { display: flex; }
}

/* Buttons */
.btn { display: inline-block; padding: 6px 12px; font-size: 14px; font-weight: 400; line-height: 1.43; text-align: center; white-space: nowrap; cursor: pointer; border: 1px solid transparent; border-radius: 4px; }
.btn-lg { padding: 10px 16px; font-size: 18px; border-radius: 6px; }
.close { float: right; font-size: 21px; font-weight: 700; line-height: 1; color: #000; opacity: .2; background: transparent; border: 0; cursor: pointer; padding: 0; }
.close:hover, .close:focus { opacity: .5; }

/* Modals */
body.modal-open { overflow: hidden; }
.modal { display: none; position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1050; overflow-x: hidden; overflow-y: auto; outline: 0; }
.modal.in { display: block; }
.modal-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1040; background: rgba(0,0,0,.5); }
.modal-dialog { position: relative; width: auto; margin: 10px; }
.modal-content { position: relative; background: #fff; border: 1px solid rgba(0,0,0,.2); border-radius: 6px; box-shadow: 0 3px 9px rgba(0,0,0,.5); }
.modal-header { padding: 15px; border-bottom: 1px solid #e5e5e5; }
.modal-header::after { content: ''; display: table; clear: both; }
.modal-title { margin: 0; line-height: 1.43; }
.modal-body { position: relative; padding: 15px; }
.modal-footer { padding: 15px; text-align: right; border-top: 1px solid #e5e5e5; }
@media (min-width: 768px) {
    .modal-dialog { width: 600px; margin: 30px auto; }
    .modal-lg { width: 900px; }
}

/* About: contain floats so the container doesn't collapse */
.about-section > .container:first-child { overflow: hidden; }

/* Experience: flex container so col-sm-6 buttons lay out side by side */
.experience { display: flex; flex-wrap: wrap; justify-content: center; }
.experience .skills { width: 100%; text-align: center; }

/* ==========================================================================
   Base / Reset
   ========================================================================== */

html {
    width: 100%;
    height: 100%;
    background-color: #F0F1F5;
}

body {
    max-width: 1200px;
    margin: 0 auto;
    height: 100%;
    font-family: Lora, "Helvetica Neue", Helvetica, Arial, sans-serif;
    color: #8C96AD;
    background-color: #F0F1F5;
    min-width: 300px;
    -webkit-tap-highlight-color: rgba(255, 255, 255, .2);
}

.profile-img {
    width: 320px;
    border-radius: 5%;
}

h1, h2, h3, h4, h5, h6 {
    color: #2B303B;
    margin: 0 0 35px;
    text-transform: uppercase;
    font-family: Montserrat, "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 700;
    letter-spacing: 1px;
}

h3 {
    color: inherit;
}

li {
    color: #2B303B;
}

p {
    color: #2B303B;
    margin: 0 0 25px;
    font-size: 18px;
    line-height: 1.5;
}

@media(min-width:767px) {
    p {
        margin: 0 0 35px;
        font-size: 20px;
        line-height: 1.6;
    }
}

a {
    color: #11505d;
    -webkit-transition: all .2s ease-in-out;
    -moz-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out;
}

a:hover, a:focus {
    color: #11505d;
}

.content-section a {
    background-color: rgb(250, 250, 210);
    text-decoration: underline;
}

::selection {
    text-shadow: none;
    background: rgba(255, 255, 255, .2);
}

::-moz-selection {
    text-shadow: none;
    background: rgba(255, 255, 255, .2);
}

img::selection {
    background: 0 0;
}

img::-moz-selection {
    background: 0 0;
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.clean-button {
    background: none;
    color: inherit;
    border: none;
    padding: 0;
    font: inherit;
    cursor: pointer;
    outline: inherit;
}

.clean-button:hover, .clean-button:focus {
    -webkit-text-stroke: .5px white;
    color: black;
}

.btn {
    text-transform: uppercase;
    font-family: Montserrat, "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 400;
    -webkit-transition: all .3s ease-in-out;
    -moz-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out;
}

.btn-default {
    border: 1px solid #219ab3;
    color: #219ab3;
    background-color: transparent;
}

.btn-default:hover, .btn-default:focus {
    border: 1px solid #219ab3;
    outline: 0;
    color: #000;
    background-color: #219ab3;
}

.btn-circle {
    width: 70px;
    height: 70px;
    margin-top: 15px;
    padding: 0;
    border: 2px solid #fff;
    border-radius: 35px;
    font-size: 40px;
    color: #fff;
    background: 0 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
    -webkit-transition: background .3s ease-in-out;
    -moz-transition: background .3s ease-in-out;
    transition: background .3s ease-in-out;
}

.btn-circle:hover, .btn-circle:focus {
    outline: 0;
    color: #fff;
    background: rgba(255, 255, 255, .5);
}

.btn-circle i.animated {
    -webkit-transition-property: -webkit-transform;
    -webkit-transition-duration: 1s;
    -moz-transition-property: -moz-transform;
    -moz-transition-duration: 1s;
}

.btn-circle:hover i.animated {
    -webkit-animation-name: pulse;
    -moz-animation-name: pulse;
    -webkit-animation-duration: 1.5s;
    -moz-animation-duration: 1.5s;
    -webkit-animation-iteration-count: infinite;
    -moz-animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear;
    -moz-animation-timing-function: linear;
}

@-webkit-keyframes pulse {
    0% {
        -webkit-transform: scale(1);
        transform: scale(1);
    }
    50% {
        -webkit-transform: scale(1.2);
        transform: scale(1.2);
    }
    100% {
        -webkit-transform: scale(1);
        transform: scale(1);
    }
}

@-moz-keyframes pulse {
    0% {
        -moz-transform: scale(1);
        transform: scale(1);
    }
    50% {
        -moz-transform: scale(1.2);
        transform: scale(1.2);
    }
    100% {
        -moz-transform: scale(1);
        transform: scale(1);
    }
}

/* ==========================================================================
   Navigation
   ========================================================================== */

.navbar-custom {
    margin-bottom: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .3);
    text-transform: uppercase;
    font-family: Montserrat, "Helvetica Neue", Helvetica, Arial, sans-serif;
    background-color: #000;
}

.navbar-custom .navbar-brand {
    font-weight: 700;
}

.navbar-custom .navbar-brand:focus {
    outline: 0;
}

.navbar-custom .navbar-brand .navbar-toggle {
    padding: 4px 6px;
    font-size: 16px;
    color: #fff;
}

.navbar-custom .navbar-brand .navbar-toggle:focus,
.navbar-custom .navbar-brand .navbar-toggle:active {
    outline: 0;
}

.navbar-custom a {
    color: #fff;
}

.navbar-custom .nav li.active {
    outline: none;
    background-color: rgba(255, 255, 255, .3);
}

.navbar-custom .nav li a {
    display: block;
    padding: 8px 15px;
    letter-spacing: 2px;
    -webkit-transition: background .3s ease-in-out;
    -moz-transition: background .3s ease-in-out;
    transition: background .3s ease-in-out;
}

.navbar-custom .nav li a:hover,
.navbar-custom .nav li a:focus,
.navbar-custom .nav li a.active {
    outline: 0;
    background-color: rgba(255, 255, 255, .3);
}

@media(min-width:767px) {
    .navbar {
        padding: 20px 0;
        border-bottom: 0;
        letter-spacing: 1px;
        background: 0 0;
        -webkit-transition: background .5s ease-in-out, padding .5s ease-in-out;
        -moz-transition: background .5s ease-in-out, padding .5s ease-in-out;
        transition: background .5s ease-in-out, padding .5s ease-in-out;
    }
    .top-nav-collapse {
        padding: 0;
        background-color: #000;
    }
    .navbar-custom.top-nav-collapse {
        border-bottom: 1px solid rgba(255, 255, 255, .3);
    }
}

/* ==========================================================================
   Intro / Header
   ========================================================================== */

.intro {
    display: table;
    width: 100%;
    padding: 50px 0;
    text-align: center;
    color: #fff;
    background-image: url("../img/background.jpg");
    background-color: #000;
    background-repeat: repeat-y;
    background-position: top center;
    background-attachment: scroll;
    background-size: cover;
}

.intro .intro-body {
    display: table-cell;
    vertical-align: middle;
    padding-top: 50px;
}

.intro p {
    color: #fff;
}

.brand-heading img {
    width: 100%;
}

.intro .intro-body .brand-heading {
    font-size: 40px;
}

.intro .intro-body .intro-text {
    font-size: 18px;
}

.sword-down {
    width: 42px;
    margin: 0;
}

@media(min-width:767px) {
    .intro {
        height: 100%;
        padding: 0;
    }
    .intro .intro-body {
        padding-bottom: 40px;
    }
    .intro .intro-body .brand-heading {
        font-size: 100px;
    }
    .intro .intro-body .intro-text {
        font-size: 25px;
    }
}

/* ==========================================================================
   About Section / Player Stats
   ========================================================================== */

.player-img {
    float: left;
    line-height: 66px;
    text-align: left;
}

.player-stats {
    margin-top: 2%;
    margin-left: 8%;
    float: left;
    line-height: 66px;
    text-align: left;
    margin-bottom: 100px;
}

.player-stats img {
    max-width: 52px;
    width: 12%;
}

.player-stats p {
    font-family: Montserrat, "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 22px;
    margin-bottom: 10px;
}

.player-stats progress {
    width: 72%;
    padding-top: 6px;
}

progress[value] {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 20px;
}

progress[value]::-webkit-progress-bar {
    background-color: #eee;
    border-radius: 2px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset;
}

progress[value]::-webkit-progress-value {
    background-image:
        -webkit-linear-gradient(-45deg, transparent 100%, rgba(0, 0, 0, .1) 100%, rgba(0, 0, 0, .1) 66%, transparent 66%),
        -webkit-linear-gradient(top, rgba(255, 255, 255, .25), rgba(0, 0, 0, .25)),
        -webkit-linear-gradient(left, #ffae00, #2bff00);
    border-radius: 2px;
    background-size: 35px 20px, 100% 100%, 100% 100%;
}

.about {
    border-top: solid 1px gray;
    padding-top: 4%;
}

@media(max-width:767px) {
    .ascii-portrait {
        font-size: 10px;
        padding: 6px 4px;
    }
    .player-img {
        float: none;
        text-align: center;
        margin-bottom: 20px;
    }
}

@media(min-width:767px) {
    .player-stats {
        margin-top: 0;
    }
}

@media(min-width:1000px) {
    .player-img {
        padding-left: 20%;
    }
}

/* ==========================================================================
   Content Sections
   ========================================================================== */

.content-section {
    padding-top: 100px;
}

.container h2 {
    color: #fff;
}

.content-section h2 {
    color: #2B303B;
}

@media(max-width:767px) {
    .content-section {
        padding-top: 50px;
    }
}

@media(min-width:767px) {
    .content-section {
        padding-top: 100px;
    }
}

/* ==========================================================================
   Portfolio / Download Section
   ========================================================================== */

.download-section {
    width: 100%;
    padding: 40px 0;
    color: #fff;
    background-image: url("../img/starry-sky.jpg");
    background-color: #003366;
    background-repeat: repeat-y;
    background-position: top center;
    background-attachment: scroll;
    background-size: cover;
}

.download-section .container {
    padding: 0;
}

.download-section h2 {
    color: #fff;
}

.mod-image {
    width: 100%;
    cursor: pointer;
    margin-bottom: 14px;
    border: solid 1px lightblue;
    border-radius: 6px;
    padding: 3px;
}

.mod-link {
    width: 65%;
    margin-left: -10px;
}

.close {
    font-size: 36px;
}

.mod-link-container {
    cursor: pointer;
    width: 49%;
    position: relative;
    display: inline-block;
}

.mod-link-container div {
    pointer-events: none;
    width: 100%;
    text-align: center;
    top: 100%;
    font-family: 'Press Start 2P', Montserrat, "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 18px;
    font-weight: 400;
    left: 0;
}

.mod-link-container:after {
    content: "";
    display: table;
    clear: both;
}

.mod-link-container:focus,
.mod-link-container:hover,
[data-toggle="modal"]:focus,
[data-toggle="modal"]:hover {
    -webkit-text-stroke: .5px white;
    color: black;
    transform: translateY(-.3em);
    transition-duration: 0.2s;
}

@media(min-width:767px) {
    .mod-link-container {
        width: 25%;
    }
    .mod-link-container div {
        top: 70%;
        position: absolute;
        font-weight: bold;
        line-height: 1.2;
        text-transform: uppercase;
    }
    .mobile-img {
        width: 48%;
        vertical-align: middle;
    }
    .download-section {
        padding: 100px 0;
    }
    .game-box {
        min-height: 400px;
        padding: 0;
        width: 100%;
        margin: 0;
    }
}

@media(min-width:1000px) {
    .mod-link-container div {
        font-size: 22px;
    }
}

/* Space Invaders game */
#ship, #ship-bound {
    float: left;
    clear: both;
}

#ship-bound {
    width: 100%;
}

#ship {
    z-index: 1000;
    margin-left: 48%;
}

.bullet {
    width: 15px;
    height: 15px;
    background-color: white;
    position: relative;
}

@media(max-width:767px) {
    #ship-bound {
        display: none;
    }
}

/* ==========================================================================
   Work History / Resume Section
   ========================================================================== */

.resume-section {
    width: 100%;
    padding: 50px 0;
    color: #fff;
    background: url("../img/water-texture.jpg");
    background-color: #003366;
    background-repeat: repeat-y;
    background-position: top center;
    background-attachment: scroll;
    background-size: cover;
}

.resume-section h2 {
    color: #fff;
}

.resume-section .clean-button {
    overflow: hidden;
}

.experience img {
    cursor: pointer;
}

.school-icon {
    width: 200px;
}

.work-icon {
    height: 200px;
}

.skills-icon {
    width: 75px;
}

.experience .clean-button {
    overflow: visible;
    margin-bottom: 40px;
    transition: transform 0.2s ease;
}

.experience .clean-button:hover,
.experience .clean-button:focus {
    -webkit-text-stroke: 0;
    color: inherit;
    transform: scale(1.05) translateY(-4px);
}

.experience h3 {
    margin: 0;
    transition: text-shadow 0.2s ease, text-decoration 0.2s ease;
}

.experience .clean-button:hover h3,
.experience .clean-button:focus h3 {
    text-shadow: 0 0 8px rgba(255, 255, 255, 0.8), 0 0 16px rgba(255, 255, 255, 0.4);
    text-decoration: underline;
    text-underline-offset: 4px;
}

[data-target="#skills-modal"] {
    display: block;
}

/* ==========================================================================
   Skills Modal
   ========================================================================== */

.skills-modal {
    border-style: solid;
    border-width: 30px 20px;
    -moz-border-image: url(../img/blue-border.png) 30 38 28 45 stretch;
    -webkit-border-image: url(../img/blue-border.png) 30 38 28 45 stretch;
    -o-border-image: url(../img/blue-border.png) 30 38 28 45 stretch;
    border-image: url(../img/blue-border.png) 30 38 28 45 fill stretch;
    padding: 2%;
    background-color: #EDF0F5;
    margin-top: 2%;
    text-align: center;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
}

.skills-modal div {
    display: inline-block;
    width: 49%;
    padding-bottom: 20px;
    text-align: center;
}

.skills-modal h3 {
    font-size: 18px;
}

@media(min-width:410px) {
    .skills-modal div {
        width: 20%;
        min-width: 145px;
    }
}

/* ==========================================================================
   Modals
   ========================================================================== */

.modal-body-text {
    padding: 10px;
    margin-top: 8px;
    text-align: center;
    font-family: Montserrat, "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.modal-body h3 {
    margin-bottom: 10px;
}

.modal-body ul {
    margin-bottom: 40px;
}

.modal-body > h4 {
    margin-bottom: 4px;
}

li.modal-text {
    font-size: 20px;
    line-height: 32px;
}

.modal-text {
    list-style: inside;
}

.left-text {
    text-align: left;
}

/* ==========================================================================
   Social Buttons
   ========================================================================== */

ul.banner-social-buttons {
    margin-top: 0;
}

.banner-social-buttons span {
    color: #2B303B;
}

@media(max-width:1199px) {
    ul.banner-social-buttons {
        margin-top: 15px;
    }
}

@media(max-width:767px) {
    ul.banner-social-buttons li {
        display: block;
        margin-bottom: 20px;
        padding: 0;
    }
    ul.banner-social-buttons li:last-child {
        margin-bottom: 0;
    }
}

/* ==========================================================================
   Footer
   ========================================================================== */

footer {
    padding: 50px 0;
}

footer p {
    margin: 0;
}

/* ==========================================================================
   FOUC Prevention — must be last rule
   ========================================================================== */

body {
    display: block;
}
