diff --git a/_scripts/main.js b/_scripts/main.js index 84115ee..de4a168 100644 --- a/_scripts/main.js +++ b/_scripts/main.js @@ -2,7 +2,7 @@ $(function() { const d = new Date(); const hours = d.getHours(); - const nighttime = (hours >= 19) || (hours <= 7); // 7pm <= hours <= 7am + const nighttime = (hours >= 19) || (hours <= 7); // between 7pm and 7am const body = document.querySelector('body'); const toggle = document.getElementById('toggle'); const input = document.getElementById('switch'); diff --git a/_scss/partials/_employment-status.scss b/_scss/partials/_employment-status.scss index 9a62656..1cec151 100644 --- a/_scss/partials/_employment-status.scss +++ b/_scss/partials/_employment-status.scss @@ -8,16 +8,16 @@ // background-color: $yellow; &__light { - width: 20px; - height: 20px; + width: 30px; + height: 30px; display: flex; justify-content: center; align-items: center; &__ring { position: absolute; - width: 18px; - height: 18px; + width: 25px; + height: 25px; animation: pulsate 2s ease-out; animation-iteration-count: infinite; opacity: .0; @@ -41,8 +41,8 @@ &__led { position: absolute; - width: 10px; - height: 10px; + width: 13px; + height: 13px; background: $green; border-radius: 100%; } diff --git a/build/scripts.js b/build/scripts.js index 3a9fd29..791a6d4 100644 --- a/build/scripts.js +++ b/build/scripts.js @@ -12,7 +12,7 @@ module.exports = gulp => { useEslintrc: true })) .pipe(eslint.format()) - .pipe(uglify()) + // .pipe(uglify()) .pipe(gulp.dest(destPath)) .pipe(gulp.dest('js')); }); diff --git a/css/main.css b/css/main.css index dd92fc0..d4c3788 100755 --- a/css/main.css +++ b/css/main.css @@ -1 +1 @@ -@font-face{font-family:Apercu;src:url(../fonts/apercu/Apercu-Light.eot);src:url(../fonts/apercu/Apercu-Light.eot?#iefix) format("embedded-opentype"),url(../fonts/apercu/Apercu-Light.woff2) format("woff2"),url(../fonts/apercu/Apercu-Light.woff) format("woff"),url(../fonts/apercu/Apercu-Light.ttf) format("truetype"),url(../fonts/apercu/Apercu-Light.svg#Apercu-Light) format("svg");font-weight:300;font-style:normal}@font-face{font-family:Apercu;src:url(../fonts/apercu/Apercu-LightItalic.eot);src:url(../fonts/apercu/Apercu-LightItalic.eot?#iefix) format("embedded-opentype"),url(../fonts/apercu/Apercu-LightItalic.woff2) format("woff2"),url(../fonts/apercu/Apercu-LightItalic.woff) format("woff"),url(../fonts/apercu/Apercu-LightItalic.ttf) format("truetype"),url(../fonts/apercu/Apercu-LightItalic.svg#Apercu-LightItalic) format("svg");font-weight:300;font-style:italic}@font-face{font-family:Apercu;src:url(../fonts/apercu/Apercu-Regular.eot);src:url(../fonts/apercu/Apercu-Regular.eot?#iefix) format("embedded-opentype"),url(../fonts/apercu/Apercu-Regular.woff2) format("woff2"),url(../fonts/apercu/Apercu-Regular.woff) format("woff"),url(../fonts/apercu/Apercu-Regular.ttf) format("truetype"),url(../fonts/apercu/Apercu-Regular.svg#Apercu-Regular) format("svg");font-weight:400;font-style:normal}@font-face{font-family:Apercu;src:url(../fonts/apercu/Apercu-Italic.eot);src:url(../fonts/apercu/Apercu-Italic.eot?#iefix) format("embedded-opentype"),url(../fonts/apercu/Apercu-Italic.woff2) format("woff2"),url(../fonts/apercu/Apercu-Italic.woff) format("woff"),url(../fonts/apercu/Apercu-Italic.ttf) format("truetype"),url(../fonts/apercu/Apercu-Italic.svg#Apercu-Italic) format("svg");font-weight:400;font-style:italic}@font-face{font-family:Apercu;src:url(../fonts/apercu/Apercu-Medium.eot);src:url(../fonts/apercu/Apercu-Medium.eot?#iefix) format("embedded-opentype"),url(../fonts/apercu/Apercu-Medium.woff2) format("woff2"),url(../fonts/apercu/Apercu-Medium.woff) format("woff"),url(../fonts/apercu/Apercu-Medium.ttf) format("truetype"),url(../fonts/apercu/Apercu-Medium.svg#Apercu-Medium) format("svg");font-weight:500;font-style:normal}@font-face{font-family:Apercu;src:url(../fonts/apercu/Apercu-MediumItalic.eot);src:url(../fonts/apercu/Apercu-MediumItalic.eot?#iefix) format("embedded-opentype"),url(../fonts/apercu/Apercu-MediumItalic.woff2) format("woff2"),url(../fonts/apercu/Apercu-MediumItalic.woff) format("woff"),url(../fonts/apercu/Apercu-MediumItalic.ttf) format("truetype"),url(../fonts/apercu/Apercu-MediumItalic.svg#Apercu-MediumItalic) format("svg");font-weight:500;font-style:italic}@font-face{font-family:Apercu;src:url(../fonts/apercu/Apercu-Bold.eot);src:url(../fonts/apercu/Apercu-Bold.eot?#iefix) format("embedded-opentype"),url(../fonts/apercu/Apercu-Bold.woff2) format("woff2"),url(../fonts/apercu/Apercu-Bold.woff) format("woff"),url(../fonts/apercu/Apercu-Bold.ttf) format("truetype"),url(../fonts/apercu/Apercu-Bold.svg#Apercu-Bold) format("svg");font-weight:700;font-style:normal}@font-face{font-family:Apercu;src:url(../fonts/apercu/Apercu-BoldItalic.eot);src:url(../fonts/apercu/Apercu-BoldItalic.eot?#iefix) format("embedded-opentype"),url(../fonts/apercu/Apercu-BoldItalic.woff2) format("woff2"),url(../fonts/apercu/Apercu-BoldItalic.woff) format("woff"),url(../fonts/apercu/Apercu-BoldItalic.ttf) format("truetype"),url(../fonts/apercu/Apercu-BoldItalic.svg#Apercu-BoldItalic) format("svg");font-weight:700;font-style:italic}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-moz-selection{background:#fff10d}::selection{background:#fff10d}body,html{margin:0;padding:0;background-color:#fff;color:#444452;font-family:Apercu,Source Sans Pro,Helvetica,Arial,sans-serif;line-height:1.5}body a,html a{text-decoration:none;font-weight:700;color:#36363c;-webkit-transition:all .25s ease-in-out;transition:all .25s ease-in-out}body ul,html ul{list-style:none;padding:0}body strong,html strong{font-weight:700;color:#36363c}body.night,html.night{background-color:#131417;color:#afafbf}body.night ::-moz-selection,html.night ::-moz-selection{color:#36363c;background:#fff10d}body.night ::selection,html.night ::selection{color:#36363c;background:#fff10d}body.night .switch-wrapper .sun,html.night .switch-wrapper .sun{background:url(../img/switch/sun-white.svg) no-repeat center;background-size:100%}body.night .switch-wrapper .moon,html.night .switch-wrapper .moon{background:url(../img/switch/moon-white.svg) no-repeat center;background-size:100%}body.night .experience .job__time,body.night .footer__copyright,body.night .intro,body.night .skills .skillz__category__label,body.night .status,body.night a,body.night strong,html.night .experience .job__time,html.night .footer__copyright,html.night .intro,html.night .skills .skillz__category__label,html.night .status,html.night a,html.night strong{color:#e7e7e7}body.night .section__content .underline-link:after,html.night .section__content .underline-link:after{background:#e7e7e7}body .emoji,html .emoji{display:inline-block;vertical-align:text-top;background-size:contain;background-repeat:no-repeat;background-position:center}body .section,html .section{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:100px 170px}@media screen and (max-width:1280px){body .section,html .section{padding:100px}}@media screen and (max-width:1024px){body .section,html .section{padding:50px}}@media screen and (max-width:768px){body .section,html .section{display:block}}@media screen and (max-width:480px){body .section,html .section{padding:50px 35px}}body .section__title,html .section__title{-ms-flex-negative:0;flex-shrink:0;width:200px;margin-right:70px;color:#007bff;text-transform:uppercase;text-align:right;font-weight:700;letter-spacing:2px}@media screen and (max-width:1024px){body .section__title,html .section__title{margin-right:50px}}@media screen and (max-width:850px){body .section__title,html .section__title{width:150px}}@media screen and (max-width:768px){body .section__title,html .section__title{text-align:left;width:auto}}body .section__content,html .section__content{font-weight:300;font-size:1rem;width:100%;max-width:650px}@media screen and (max-width:768px){body .section__content,html .section__content{padding-top:30px;padding-left:50px}}@media screen and (max-width:480px){body .section__content,html .section__content{padding-left:30px}}body .section__content p,html .section__content p{margin-top:0;margin-bottom:25px}body .section__content .underline-link,html .section__content .underline-link{position:relative;display:inline-block}body .section__content .underline-link:after,html .section__content .underline-link:after{position:absolute;top:100%;left:0;width:100%;height:1px;background:#36363c;content:'';opacity:0;-webkit-transition:height .3s,opacity .3s,-webkit-transform .3s;transition:height .3s,opacity .3s,-webkit-transform .3s;transition:height .3s,opacity .3s,transform .3s;transition:height .3s,opacity .3s,transform .3s,-webkit-transform .3s;-webkit-transform:translateY(-5px);transform:translateY(-5px)}body .section__content .underline-link:focus:after,body .section__content .underline-link:hover:after,html .section__content .underline-link:focus:after,html .section__content .underline-link:hover:after{height:2px;border-radius:3px;opacity:1;-webkit-transform:translateY(-2px);transform:translateY(-2px)}body .arrow-link,html .arrow-link{font-weight:700;display:inline-block;-webkit-transition:all .15s ease-in-out;transition:all .15s ease-in-out;background-color:transparent;white-space:nowrap}body .arrow-link:after,html .arrow-link:after{position:relative;bottom:2px;margin-left:15px;content:"";background:url(../img/arrow.png) no-repeat center;background-size:100%;width:15px;height:15px;display:inline-block;vertical-align:middle;-webkit-transition:all .15s ease-in-out}body .arrow-link:hover:after,html .arrow-link:hover:after{-webkit-transform:translateX(7px);transform:translateX(7px)}body .small,html .small{font-family:Inconsolata,monospace;font-size:.85rem;display:inline-block;margin-top:15px}body .small:after,html .small:after{display:none}body #top-button,html #top-button{background:0 0;border:none;outline:0;width:40px;position:fixed;bottom:25px;right:10px;cursor:pointer;-webkit-transition:all .25s ease;transition:all .25s ease;display:none}@media screen and (max-width:1024px){body #top-button,html #top-button{bottom:20px;right:7px;width:35px}}@media screen and (max-width:480px){body #top-button,html #top-button{bottom:15px;right:3px}}body #top-button:focus,body #top-button:hover,html #top-button:focus,html #top-button:hover{-webkit-transform:translateY(-10px);transform:translateY(-10px)}body #top-button img,html #top-button img{width:100%}.waypoint{opacity:0;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0);-webkit-transition:opacity .6s cubic-bezier(.694,0,.335,1),-webkit-transform .6s cubic-bezier(.694,0,.335,1);transition:opacity .6s cubic-bezier(.694,0,.335,1),-webkit-transform .6s cubic-bezier(.694,0,.335,1);transition:opacity .6s cubic-bezier(.694,0,.335,1),transform .6s cubic-bezier(.694,0,.335,1);transition:opacity .6s cubic-bezier(.694,0,.335,1),transform .6s cubic-bezier(.694,0,.335,1),-webkit-transform .6s cubic-bezier(.694,0,.335,1)}.in-view{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}.switch-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;top:20px;right:30px}@media screen and (max-width:480px){.switch-wrapper{top:10px;right:20px}}.switch-wrapper .moon,.switch-wrapper .sun{width:17px;height:17px}.switch-wrapper .sun{background:url(../img/switch/sun.svg) no-repeat center;background-size:100%}.switch-wrapper .moon{background:url(../img/switch/moon.svg) no-repeat center;background-size:100%}.switch-wrapper .toggle-wrapper{margin:10px}.switch-wrapper .toggle-wrapper #switch{height:0;width:0;visibility:hidden;position:absolute}.switch-wrapper .toggle-wrapper #switch:checked+label{background:#bada55}.switch-wrapper .toggle-wrapper #switch:checked+label:after{left:calc(100% - 3px);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.switch-wrapper .toggle-wrapper label{cursor:pointer;text-indent:-9999px;width:45px;height:25px;background:grey;display:block;border-radius:100px;position:relative}.switch-wrapper .toggle-wrapper label:after{content:'';position:absolute;top:3px;left:3px;width:19px;height:19px;background:#fff;border-radius:100%;-webkit-transition:.25s;transition:.25s}.intro{padding:120px 100px;height:100vh;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:distribute;justify-content:space-around;max-width:1440px;margin:0 auto}@media screen and (max-width:630px){.intro{padding:120px 70px}}@media screen and (max-width:550px){.intro{padding:120px 50px}}@media screen and (max-width:480px){.intro{padding:70px 50px}}.intro__hello,.intro__tagline{font-size:2.5rem}@media screen and (max-width:1024px){.intro__hello,.intro__tagline{font-size:2.25rem}}@media screen and (max-width:768px){.intro__hello,.intro__tagline{font-size:2rem}}@media screen and (max-width:550px){.intro__hello,.intro__tagline{font-size:1.75rem}}@media screen and (max-width:360px){.intro__hello,.intro__tagline{font-size:1.5rem}}@media screen and (max-width:330px){.intro__hello,.intro__tagline{font-size:1.4rem}}.intro__hello .emoji,.intro__tagline .emoji{width:40px;height:40px}@media screen and (max-width:1024px){.intro__hello .emoji,.intro__tagline .emoji{width:35px;height:35px}}@media screen and (max-width:768px){.intro__hello .emoji,.intro__tagline .emoji{width:30px;height:30px}}@media screen and (max-width:360px){.intro__hello .emoji,.intro__tagline .emoji{width:25px;height:25px}}.intro__hello{font-weight:300}.intro__hello .wave-hand{background-image:url(../img/emojis/wave.png);margin-left:10px;cursor:pointer}.intro__hello .wave-hand.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.intro__hello .wave-hand.wave{-webkit-animation-name:wave;animation-name:wave}@-webkit-keyframes wave{from{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-20%,0,0) rotate3d(0,0,1,-10deg);transform:translate3d(-20%,0,0) rotate3d(0,0,1,-10deg)}30%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,7deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,7deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-10deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-10deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,5deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,5deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-2deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-2deg)}to{-webkit-transform:none;transform:none}}@keyframes wave{from{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-20%,0,0) rotate3d(0,0,1,-10deg);transform:translate3d(-20%,0,0) rotate3d(0,0,1,-10deg)}30%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,7deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,7deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-10deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-10deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,5deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,5deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-2deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-2deg)}to{-webkit-transform:none;transform:none}}.intro__tagline{font-weight:300;max-width:700px}.intro__tagline .name{font-weight:700}.intro__tagline .technologist{background-image:url(../img/emojis/technologist.png)}.intro__contact{font-size:1.25rem;font-weight:400}@media screen and (max-width:550px){.intro__contact{font-size:1rem}}.intro__contact .emoji.pointer{background-image:url(../img/emojis/pointright.png);width:30px;height:30px;margin:0 5px;vertical-align:text-bottom}@media screen and (max-width:550px){.intro__contact .emoji.pointer{width:25px;height:25px}}.intro__contact .highlight-link{font-weight:400;text-decoration:none;display:inline-block;padding:2px 3px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;text-decoration:none;-webkit-box-shadow:inset 0 -3px 0 #007bff;box-shadow:inset 0 -3px 0 #007bff}.intro__contact .highlight-link:hover{-webkit-box-shadow:inset 0 -33px 0 0 #007bff;box-shadow:inset 0 -33px 0 0 #007bff;color:#fff}.skills .skillz{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}@media screen and (max-width:630px){.skills .skillz{-ms-flex-wrap:wrap;flex-wrap:wrap}}@media screen and (max-width:630px){.skills .skillz__category{width:47%;margin-right:5px;margin-bottom:25px}}.skills .skillz__category__label{font-weight:700;color:#36363c;text-transform:uppercase}.skills .skillz__category__item{margin:3px 0;font-size:.9rem}.experience .jobs{margin-bottom:100px}.experience .job{margin-bottom:25px}.experience .job .time-place{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}@media screen and (max-width:480px){.experience .job .time-place{display:block}}.experience .job__company{font-weight:700}.experience .job__time{font-size:.9rem;font-family:Inconsolata,monospace}@media screen and (max-width:480px){.experience .job__time{font-size:.8rem}}.experience .arrow-link{font-size:1.25rem}.experience .arrow-link:after{width:20px;height:20px}.status{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:1.1rem;font-family:Inconsolata,monospace;margin-top:70px;color:#131417}.status__light{width:20px;height:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.status__light__ring{position:absolute;width:18px;height:18px;-webkit-animation:pulsate 2s ease-out;animation:pulsate 2s ease-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;opacity:0;border:3px solid #bada55;border-radius:30px}@-webkit-keyframes pulsate{0%{-webkit-transform:scale(.1,.1);transform:scale(.1,.1);opacity:0}50%{opacity:1}100%{-webkit-transform:scale(1.2,1.2);transform:scale(1.2,1.2);opacity:0}}@keyframes pulsate{0%{-webkit-transform:scale(.1,.1);transform:scale(.1,.1);opacity:0}50%{opacity:1}100%{-webkit-transform:scale(1.2,1.2);transform:scale(1.2,1.2);opacity:0}}.status__light__led{position:absolute;width:10px;height:10px;background:#bada55;border-radius:100%}.status__message{margin-left:15px}.featured-projects a:after{display:none}.featured-projects .project{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:100px;margin-left:-5%;width:125%}@media screen and (max-width:1280px){.featured-projects .project{width:115%}}@media screen and (max-width:1024px){.featured-projects .project{width:105%}}@media screen and (max-width:768px){.featured-projects .project{width:100%;display:block;margin-bottom:70px}}.featured-projects .project.screentime{margin-bottom:70px}.featured-projects .project:last-of-type{margin-bottom:0}.featured-projects .project__pic{max-width:700px;overflow:visible;margin:0}.featured-projects .project__pic a{display:block}.featured-projects .project__pic.phones a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.featured-projects .project__pic.phones .phone{margin:0 -7%}.featured-projects .project__pic.phones .phone:first-of-type{margin-left:-5%}.featured-projects .project__pic img{width:100%;max-width:100%;vertical-align:bottom}.featured-projects .project__caption{width:125px;-ms-flex-negative:0;flex-shrink:0;margin-left:30px}@media screen and (max-width:768px){.featured-projects .project__caption{width:100%;margin-top:25px;margin-left:0}}.featured-projects .project__name{margin-bottom:10px}.featured-projects .project__name a{font-weight:700}.featured-projects .project p{font-size:.85rem;line-height:1.3}.other-projects .project{max-width:600px;margin-bottom:50px}.other-projects .project__name{margin-bottom:10px}.other-projects .project p{font-size:.9rem;margin-bottom:20px}.other-projects .project__used__item{display:inline-block;margin:3px 3px 3px 0;font-family:Inconsolata,monospace;font-size:.75rem;font-weight:700;padding:2px 7px;border-radius:3px;color:#007bff;border:1px solid #007bff;background:0 0}.other-projects .project__used__item:first-of-type{margin-left:0}.footer{padding:50px 80px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}@media screen and (max-width:1024px){.footer{padding:50px}}@media screen and (max-width:630px){.footer{display:block}}@media screen and (max-width:480px){.footer{padding:50px 30px}}.footer__copyright{font-weight:700;width:200px}@media screen and (max-width:630px){.footer__copyright{width:auto;text-align:center;margin-bottom:25px}}@media screen and (max-width:630px){.footer__copyright .bottom,.footer__copyright .top{display:inline-block}}@media screen and (max-width:480px){.footer__copyright .bottom,.footer__copyright .top{display:block}}.footer__copyright .emoji{width:20px;height:20px;margin:0 3px;vertical-align:text-bottom}@media screen and (max-width:630px){.footer__links{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}}.footer__links a{position:relative;display:inline-block;color:#007bff!important;text-transform:uppercase;font-weight:700;margin:0 15px;outline:0}@media screen and (max-width:1024px){.footer__links a{margin:0 10px}}.footer__links a:after{position:absolute;top:100%;left:0;width:100%;height:1px;background:#007bff;content:'';opacity:0;-webkit-transition:height .3s,opacity .3s,-webkit-transform .3s;transition:height .3s,opacity .3s,-webkit-transform .3s;transition:height .3s,opacity .3s,transform .3s;transition:height .3s,opacity .3s,transform .3s,-webkit-transform .3s;-webkit-transform:translateY(-5px);transform:translateY(-5px)}@media screen and (max-width:850px){.footer__links a:after{display:none}}.footer__links a:focus:after,.footer__links a:hover:after{height:2px;border-radius:3px;opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.footer__links a .text{font-size:.9rem;display:inline;letter-spacing:1px}@media screen and (max-width:850px){.footer__links a .text{display:none}}.footer__links img{display:none;width:22px}@media screen and (max-width:850px){.footer__links img{display:inline-block}}.not-found{width:100%;height:100vh;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;text-align:center;padding:0 20px}.not-found .name{position:absolute;top:25px;left:30px;font-weight:700;color:#007bff;font-size:1.5rem}@media screen and (max-width:480px){.not-found .name{top:20px;left:25px;font-size:1.25rem}}.not-found h1{font-size:4rem;margin:10px 0}.not-found h2{font-size:1.5rem}@media screen and (max-width:480px){.not-found h2{font-size:1.25rem}}@media screen and (max-width:360px){.not-found h2{font-size:1.1rem}}.not-found a{font-weight:700;color:#007bff!important;position:relative;display:inline-block}.not-found a:after{position:absolute;top:100%;left:0;width:100%;height:3px;background:#007bff;content:'';opacity:0;-webkit-transition:height .3s,opacity .3s,-webkit-transform .3s;transition:height .3s,opacity .3s,-webkit-transform .3s;transition:height .3s,opacity .3s,transform .3s;transition:height .3s,opacity .3s,transform .3s,-webkit-transform .3s;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.not-found a:focus:after,.not-found a:hover:after{height:3px;opacity:1;-webkit-transform:translateY(-5px);transform:translateY(-5px)} \ No newline at end of file +@font-face{font-family:Apercu;src:url(../fonts/apercu/Apercu-Light.eot);src:url(../fonts/apercu/Apercu-Light.eot?#iefix) format("embedded-opentype"),url(../fonts/apercu/Apercu-Light.woff2) format("woff2"),url(../fonts/apercu/Apercu-Light.woff) format("woff"),url(../fonts/apercu/Apercu-Light.ttf) format("truetype"),url(../fonts/apercu/Apercu-Light.svg#Apercu-Light) format("svg");font-weight:300;font-style:normal}@font-face{font-family:Apercu;src:url(../fonts/apercu/Apercu-LightItalic.eot);src:url(../fonts/apercu/Apercu-LightItalic.eot?#iefix) format("embedded-opentype"),url(../fonts/apercu/Apercu-LightItalic.woff2) format("woff2"),url(../fonts/apercu/Apercu-LightItalic.woff) format("woff"),url(../fonts/apercu/Apercu-LightItalic.ttf) format("truetype"),url(../fonts/apercu/Apercu-LightItalic.svg#Apercu-LightItalic) format("svg");font-weight:300;font-style:italic}@font-face{font-family:Apercu;src:url(../fonts/apercu/Apercu-Regular.eot);src:url(../fonts/apercu/Apercu-Regular.eot?#iefix) format("embedded-opentype"),url(../fonts/apercu/Apercu-Regular.woff2) format("woff2"),url(../fonts/apercu/Apercu-Regular.woff) format("woff"),url(../fonts/apercu/Apercu-Regular.ttf) format("truetype"),url(../fonts/apercu/Apercu-Regular.svg#Apercu-Regular) format("svg");font-weight:400;font-style:normal}@font-face{font-family:Apercu;src:url(../fonts/apercu/Apercu-Italic.eot);src:url(../fonts/apercu/Apercu-Italic.eot?#iefix) format("embedded-opentype"),url(../fonts/apercu/Apercu-Italic.woff2) format("woff2"),url(../fonts/apercu/Apercu-Italic.woff) format("woff"),url(../fonts/apercu/Apercu-Italic.ttf) format("truetype"),url(../fonts/apercu/Apercu-Italic.svg#Apercu-Italic) format("svg");font-weight:400;font-style:italic}@font-face{font-family:Apercu;src:url(../fonts/apercu/Apercu-Medium.eot);src:url(../fonts/apercu/Apercu-Medium.eot?#iefix) format("embedded-opentype"),url(../fonts/apercu/Apercu-Medium.woff2) format("woff2"),url(../fonts/apercu/Apercu-Medium.woff) format("woff"),url(../fonts/apercu/Apercu-Medium.ttf) format("truetype"),url(../fonts/apercu/Apercu-Medium.svg#Apercu-Medium) format("svg");font-weight:500;font-style:normal}@font-face{font-family:Apercu;src:url(../fonts/apercu/Apercu-MediumItalic.eot);src:url(../fonts/apercu/Apercu-MediumItalic.eot?#iefix) format("embedded-opentype"),url(../fonts/apercu/Apercu-MediumItalic.woff2) format("woff2"),url(../fonts/apercu/Apercu-MediumItalic.woff) format("woff"),url(../fonts/apercu/Apercu-MediumItalic.ttf) format("truetype"),url(../fonts/apercu/Apercu-MediumItalic.svg#Apercu-MediumItalic) format("svg");font-weight:500;font-style:italic}@font-face{font-family:Apercu;src:url(../fonts/apercu/Apercu-Bold.eot);src:url(../fonts/apercu/Apercu-Bold.eot?#iefix) format("embedded-opentype"),url(../fonts/apercu/Apercu-Bold.woff2) format("woff2"),url(../fonts/apercu/Apercu-Bold.woff) format("woff"),url(../fonts/apercu/Apercu-Bold.ttf) format("truetype"),url(../fonts/apercu/Apercu-Bold.svg#Apercu-Bold) format("svg");font-weight:700;font-style:normal}@font-face{font-family:Apercu;src:url(../fonts/apercu/Apercu-BoldItalic.eot);src:url(../fonts/apercu/Apercu-BoldItalic.eot?#iefix) format("embedded-opentype"),url(../fonts/apercu/Apercu-BoldItalic.woff2) format("woff2"),url(../fonts/apercu/Apercu-BoldItalic.woff) format("woff"),url(../fonts/apercu/Apercu-BoldItalic.ttf) format("truetype"),url(../fonts/apercu/Apercu-BoldItalic.svg#Apercu-BoldItalic) format("svg");font-weight:700;font-style:italic}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-moz-selection{background:#fff10d}::selection{background:#fff10d}body,html{margin:0;padding:0;background-color:#fff;color:#444452;font-family:Apercu,Source Sans Pro,Helvetica,Arial,sans-serif;line-height:1.5}body a,html a{text-decoration:none;font-weight:700;color:#36363c;-webkit-transition:all .25s ease-in-out;transition:all .25s ease-in-out}body ul,html ul{list-style:none;padding:0}body strong,html strong{font-weight:700;color:#36363c}body.night,html.night{background-color:#131417;color:#afafbf}body.night ::-moz-selection,html.night ::-moz-selection{color:#36363c;background:#fff10d}body.night ::selection,html.night ::selection{color:#36363c;background:#fff10d}body.night .switch-wrapper .sun,html.night .switch-wrapper .sun{background:url(../img/switch/sun-white.svg) no-repeat center;background-size:100%}body.night .switch-wrapper .moon,html.night .switch-wrapper .moon{background:url(../img/switch/moon-white.svg) no-repeat center;background-size:100%}body.night .experience .job__time,body.night .footer__copyright,body.night .intro,body.night .skills .skillz__category__label,body.night .status,body.night a,body.night strong,html.night .experience .job__time,html.night .footer__copyright,html.night .intro,html.night .skills .skillz__category__label,html.night .status,html.night a,html.night strong{color:#e7e7e7}body.night .section__content .underline-link:after,html.night .section__content .underline-link:after{background:#e7e7e7}body .emoji,html .emoji{display:inline-block;vertical-align:text-top;background-size:contain;background-repeat:no-repeat;background-position:center}body .section,html .section{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:100px 170px}@media screen and (max-width:1280px){body .section,html .section{padding:100px}}@media screen and (max-width:1024px){body .section,html .section{padding:50px}}@media screen and (max-width:768px){body .section,html .section{display:block}}@media screen and (max-width:480px){body .section,html .section{padding:50px 35px}}body .section__title,html .section__title{-ms-flex-negative:0;flex-shrink:0;width:200px;margin-right:70px;color:#007bff;text-transform:uppercase;text-align:right;font-weight:700;letter-spacing:2px}@media screen and (max-width:1024px){body .section__title,html .section__title{margin-right:50px}}@media screen and (max-width:850px){body .section__title,html .section__title{width:150px}}@media screen and (max-width:768px){body .section__title,html .section__title{text-align:left;width:auto}}body .section__content,html .section__content{font-weight:300;font-size:1rem;width:100%;max-width:650px}@media screen and (max-width:768px){body .section__content,html .section__content{padding-top:30px;padding-left:50px}}@media screen and (max-width:480px){body .section__content,html .section__content{padding-left:30px}}body .section__content p,html .section__content p{margin-top:0;margin-bottom:25px}body .section__content .underline-link,html .section__content .underline-link{position:relative;display:inline-block}body .section__content .underline-link:after,html .section__content .underline-link:after{position:absolute;top:100%;left:0;width:100%;height:1px;background:#36363c;content:'';opacity:0;-webkit-transition:height .3s,opacity .3s,-webkit-transform .3s;transition:height .3s,opacity .3s,-webkit-transform .3s;transition:height .3s,opacity .3s,transform .3s;transition:height .3s,opacity .3s,transform .3s,-webkit-transform .3s;-webkit-transform:translateY(-5px);transform:translateY(-5px)}body .section__content .underline-link:focus:after,body .section__content .underline-link:hover:after,html .section__content .underline-link:focus:after,html .section__content .underline-link:hover:after{height:2px;border-radius:3px;opacity:1;-webkit-transform:translateY(-2px);transform:translateY(-2px)}body .arrow-link,html .arrow-link{font-weight:700;display:inline-block;-webkit-transition:all .15s ease-in-out;transition:all .15s ease-in-out;background-color:transparent;white-space:nowrap}body .arrow-link:after,html .arrow-link:after{position:relative;bottom:2px;margin-left:15px;content:"";background:url(../img/arrow.png) no-repeat center;background-size:100%;width:15px;height:15px;display:inline-block;vertical-align:middle;-webkit-transition:all .15s ease-in-out}body .arrow-link:hover:after,html .arrow-link:hover:after{-webkit-transform:translateX(7px);transform:translateX(7px)}body .small,html .small{font-family:Inconsolata,monospace;font-size:.85rem;display:inline-block;margin-top:15px}body .small:after,html .small:after{display:none}body #top-button,html #top-button{background:0 0;border:none;outline:0;width:40px;position:fixed;bottom:25px;right:10px;cursor:pointer;-webkit-transition:all .25s ease;transition:all .25s ease;display:none}@media screen and (max-width:1024px){body #top-button,html #top-button{bottom:20px;right:7px;width:35px}}@media screen and (max-width:480px){body #top-button,html #top-button{bottom:15px;right:3px}}body #top-button:focus,body #top-button:hover,html #top-button:focus,html #top-button:hover{-webkit-transform:translateY(-10px);transform:translateY(-10px)}body #top-button img,html #top-button img{width:100%}.waypoint{opacity:0;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0);-webkit-transition:opacity .6s cubic-bezier(.694,0,.335,1),-webkit-transform .6s cubic-bezier(.694,0,.335,1);transition:opacity .6s cubic-bezier(.694,0,.335,1),-webkit-transform .6s cubic-bezier(.694,0,.335,1);transition:opacity .6s cubic-bezier(.694,0,.335,1),transform .6s cubic-bezier(.694,0,.335,1);transition:opacity .6s cubic-bezier(.694,0,.335,1),transform .6s cubic-bezier(.694,0,.335,1),-webkit-transform .6s cubic-bezier(.694,0,.335,1)}.in-view{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}.switch-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;top:20px;right:30px}@media screen and (max-width:480px){.switch-wrapper{top:10px;right:20px}}.switch-wrapper .moon,.switch-wrapper .sun{width:17px;height:17px}.switch-wrapper .sun{background:url(../img/switch/sun.svg) no-repeat center;background-size:100%}.switch-wrapper .moon{background:url(../img/switch/moon.svg) no-repeat center;background-size:100%}.switch-wrapper .toggle-wrapper{margin:10px}.switch-wrapper .toggle-wrapper #switch{height:0;width:0;visibility:hidden;position:absolute}.switch-wrapper .toggle-wrapper #switch:checked+label{background:#bada55}.switch-wrapper .toggle-wrapper #switch:checked+label:after{left:calc(100% - 3px);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.switch-wrapper .toggle-wrapper label{cursor:pointer;text-indent:-9999px;width:45px;height:25px;background:grey;display:block;border-radius:100px;position:relative}.switch-wrapper .toggle-wrapper label:after{content:'';position:absolute;top:3px;left:3px;width:19px;height:19px;background:#fff;border-radius:100%;-webkit-transition:.25s;transition:.25s}.intro{padding:120px 100px;height:100vh;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:distribute;justify-content:space-around;max-width:1440px;margin:0 auto}@media screen and (max-width:630px){.intro{padding:120px 70px}}@media screen and (max-width:550px){.intro{padding:120px 50px}}@media screen and (max-width:480px){.intro{padding:70px 50px}}.intro__hello,.intro__tagline{font-size:2.5rem}@media screen and (max-width:1024px){.intro__hello,.intro__tagline{font-size:2.25rem}}@media screen and (max-width:768px){.intro__hello,.intro__tagline{font-size:2rem}}@media screen and (max-width:550px){.intro__hello,.intro__tagline{font-size:1.75rem}}@media screen and (max-width:360px){.intro__hello,.intro__tagline{font-size:1.5rem}}@media screen and (max-width:330px){.intro__hello,.intro__tagline{font-size:1.4rem}}.intro__hello .emoji,.intro__tagline .emoji{width:40px;height:40px}@media screen and (max-width:1024px){.intro__hello .emoji,.intro__tagline .emoji{width:35px;height:35px}}@media screen and (max-width:768px){.intro__hello .emoji,.intro__tagline .emoji{width:30px;height:30px}}@media screen and (max-width:360px){.intro__hello .emoji,.intro__tagline .emoji{width:25px;height:25px}}.intro__hello{font-weight:300}.intro__hello .wave-hand{background-image:url(../img/emojis/wave.png);margin-left:10px;cursor:pointer}.intro__hello .wave-hand.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.intro__hello .wave-hand.wave{-webkit-animation-name:wave;animation-name:wave}@-webkit-keyframes wave{from{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-20%,0,0) rotate3d(0,0,1,-10deg);transform:translate3d(-20%,0,0) rotate3d(0,0,1,-10deg)}30%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,7deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,7deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-10deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-10deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,5deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,5deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-2deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-2deg)}to{-webkit-transform:none;transform:none}}@keyframes wave{from{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-20%,0,0) rotate3d(0,0,1,-10deg);transform:translate3d(-20%,0,0) rotate3d(0,0,1,-10deg)}30%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,7deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,7deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-10deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-10deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,5deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,5deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-2deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-2deg)}to{-webkit-transform:none;transform:none}}.intro__tagline{font-weight:300;max-width:700px}.intro__tagline .name{font-weight:700}.intro__tagline .technologist{background-image:url(../img/emojis/technologist.png)}.intro__contact{font-size:1.25rem;font-weight:400}@media screen and (max-width:550px){.intro__contact{font-size:1rem}}.intro__contact .emoji.pointer{background-image:url(../img/emojis/pointright.png);width:30px;height:30px;margin:0 5px;vertical-align:text-bottom}@media screen and (max-width:550px){.intro__contact .emoji.pointer{width:25px;height:25px}}.intro__contact .highlight-link{font-weight:400;text-decoration:none;display:inline-block;padding:2px 3px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;text-decoration:none;-webkit-box-shadow:inset 0 -3px 0 #007bff;box-shadow:inset 0 -3px 0 #007bff}.intro__contact .highlight-link:hover{-webkit-box-shadow:inset 0 -33px 0 0 #007bff;box-shadow:inset 0 -33px 0 0 #007bff;color:#fff}.skills .skillz{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}@media screen and (max-width:630px){.skills .skillz{-ms-flex-wrap:wrap;flex-wrap:wrap}}@media screen and (max-width:630px){.skills .skillz__category{width:47%;margin-right:5px;margin-bottom:25px}}.skills .skillz__category__label{font-weight:700;color:#36363c;text-transform:uppercase}.skills .skillz__category__item{margin:3px 0;font-size:.9rem}.experience .jobs{margin-bottom:100px}.experience .job{margin-bottom:25px}.experience .job .time-place{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}@media screen and (max-width:480px){.experience .job .time-place{display:block}}.experience .job__company{font-weight:700}.experience .job__time{font-size:.9rem;font-family:Inconsolata,monospace}@media screen and (max-width:480px){.experience .job__time{font-size:.8rem}}.experience .arrow-link{font-size:1.25rem}.experience .arrow-link:after{width:20px;height:20px}.status{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:1.1rem;font-family:Inconsolata,monospace;margin-top:70px;color:#131417}.status__light{width:30px;height:30px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.status__light__ring{position:absolute;width:25px;height:25px;-webkit-animation:pulsate 2s ease-out;animation:pulsate 2s ease-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;opacity:0;border:3px solid #bada55;border-radius:30px}@-webkit-keyframes pulsate{0%{-webkit-transform:scale(.1,.1);transform:scale(.1,.1);opacity:0}50%{opacity:1}100%{-webkit-transform:scale(1.2,1.2);transform:scale(1.2,1.2);opacity:0}}@keyframes pulsate{0%{-webkit-transform:scale(.1,.1);transform:scale(.1,.1);opacity:0}50%{opacity:1}100%{-webkit-transform:scale(1.2,1.2);transform:scale(1.2,1.2);opacity:0}}.status__light__led{position:absolute;width:13px;height:13px;background:#bada55;border-radius:100%}.status__message{margin-left:15px}.featured-projects a:after{display:none}.featured-projects .project{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:100px;margin-left:-5%;width:125%}@media screen and (max-width:1280px){.featured-projects .project{width:115%}}@media screen and (max-width:1024px){.featured-projects .project{width:105%}}@media screen and (max-width:768px){.featured-projects .project{width:100%;display:block;margin-bottom:70px}}.featured-projects .project.screentime{margin-bottom:70px}.featured-projects .project:last-of-type{margin-bottom:0}.featured-projects .project__pic{max-width:700px;overflow:visible;margin:0}.featured-projects .project__pic a{display:block}.featured-projects .project__pic.phones a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.featured-projects .project__pic.phones .phone{margin:0 -7%}.featured-projects .project__pic.phones .phone:first-of-type{margin-left:-5%}.featured-projects .project__pic img{width:100%;max-width:100%;vertical-align:bottom}.featured-projects .project__caption{width:125px;-ms-flex-negative:0;flex-shrink:0;margin-left:30px}@media screen and (max-width:768px){.featured-projects .project__caption{width:100%;margin-top:25px;margin-left:0}}.featured-projects .project__name{margin-bottom:10px}.featured-projects .project__name a{font-weight:700}.featured-projects .project p{font-size:.85rem;line-height:1.3}.other-projects .project{max-width:600px;margin-bottom:50px}.other-projects .project__name{margin-bottom:10px}.other-projects .project p{font-size:.9rem;margin-bottom:20px}.other-projects .project__used__item{display:inline-block;margin:3px 3px 3px 0;font-family:Inconsolata,monospace;font-size:.75rem;font-weight:700;padding:2px 7px;border-radius:3px;color:#007bff;border:1px solid #007bff;background:0 0}.other-projects .project__used__item:first-of-type{margin-left:0}.footer{padding:50px 80px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}@media screen and (max-width:1024px){.footer{padding:50px}}@media screen and (max-width:630px){.footer{display:block}}@media screen and (max-width:480px){.footer{padding:50px 30px}}.footer__copyright{font-weight:700;width:200px}@media screen and (max-width:630px){.footer__copyright{width:auto;text-align:center;margin-bottom:25px}}@media screen and (max-width:630px){.footer__copyright .bottom,.footer__copyright .top{display:inline-block}}@media screen and (max-width:480px){.footer__copyright .bottom,.footer__copyright .top{display:block}}.footer__copyright .emoji{width:20px;height:20px;margin:0 3px;vertical-align:text-bottom}@media screen and (max-width:630px){.footer__links{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}}.footer__links a{position:relative;display:inline-block;color:#007bff!important;text-transform:uppercase;font-weight:700;margin:0 15px;outline:0}@media screen and (max-width:1024px){.footer__links a{margin:0 10px}}.footer__links a:after{position:absolute;top:100%;left:0;width:100%;height:1px;background:#007bff;content:'';opacity:0;-webkit-transition:height .3s,opacity .3s,-webkit-transform .3s;transition:height .3s,opacity .3s,-webkit-transform .3s;transition:height .3s,opacity .3s,transform .3s;transition:height .3s,opacity .3s,transform .3s,-webkit-transform .3s;-webkit-transform:translateY(-5px);transform:translateY(-5px)}@media screen and (max-width:850px){.footer__links a:after{display:none}}.footer__links a:focus:after,.footer__links a:hover:after{height:2px;border-radius:3px;opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.footer__links a .text{font-size:.9rem;display:inline;letter-spacing:1px}@media screen and (max-width:850px){.footer__links a .text{display:none}}.footer__links img{display:none;width:22px}@media screen and (max-width:850px){.footer__links img{display:inline-block}}.not-found{width:100%;height:100vh;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;text-align:center;padding:0 20px}.not-found .name{position:absolute;top:25px;left:30px;font-weight:700;color:#007bff;font-size:1.5rem}@media screen and (max-width:480px){.not-found .name{top:20px;left:25px;font-size:1.25rem}}.not-found h1{font-size:4rem;margin:10px 0}.not-found h2{font-size:1.5rem}@media screen and (max-width:480px){.not-found h2{font-size:1.25rem}}@media screen and (max-width:360px){.not-found h2{font-size:1.1rem}}.not-found a{font-weight:700;color:#007bff!important;position:relative;display:inline-block}.not-found a:after{position:absolute;top:100%;left:0;width:100%;height:3px;background:#007bff;content:'';opacity:0;-webkit-transition:height .3s,opacity .3s,-webkit-transform .3s;transition:height .3s,opacity .3s,-webkit-transform .3s;transition:height .3s,opacity .3s,transform .3s;transition:height .3s,opacity .3s,transform .3s,-webkit-transform .3s;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.not-found a:focus:after,.not-found a:hover:after{height:3px;opacity:1;-webkit-transform:translateY(-5px);transform:translateY(-5px)} \ No newline at end of file diff --git a/js/main.js b/js/main.js index 74e477a..84115ee 100644 --- a/js/main.js +++ b/js/main.js @@ -1 +1,77 @@ -$(function(){function e(){l.classList.add("wave"),setTimeout(function(){l.classList.remove("wave")},2e3)}const t=new Date,o=t.getHours(),n=o>=19||o<=7,c=document.querySelector("body"),s=document.getElementById("toggle"),i=document.getElementById("switch");n&&(i.checked=!0,c.classList.add("night")),s.addEventListener("click",function(){const e=i.checked;e?c.classList.remove("night"):c.classList.add("night")});const r=document.querySelector(".intro").offsetHeight,a=document.getElementById("top-button"),d=$("#top-button");window.addEventListener("scroll",function(){window.scrollY>r?d.fadeIn():d.fadeOut()},!1),a.addEventListener("click",function(){$("html, body").animate({scrollTop:0},500)});const l=document.querySelector(".emoji.wave-hand");setTimeout(function(){e()},1e3),l.addEventListener("mouseover",function(){l.classList.add("wave")}),l.addEventListener("mouseout",function(){l.classList.remove("wave")}),window.sr=ScrollReveal({reset:!1,duration:600,easing:"cubic-bezier(.694,0,.335,1)",scale:1,viewFactor:.3}),sr.reveal(".background"),sr.reveal(".skills"),sr.reveal(".experience",{viewFactor:.2}),sr.reveal(".featured-projects",{viewFactor:.1}),sr.reveal(".other-projects",{viewFactor:.05})}); \ No newline at end of file +$(function() { + + const d = new Date(); + const hours = d.getHours(); + const nighttime = (hours >= 19) || (hours <= 7); // 7pm <= hours <= 7am + const body = document.querySelector('body'); + const toggle = document.getElementById('toggle'); + const input = document.getElementById('switch'); + + if (nighttime) { + input.checked = true; + body.classList.add('night'); + } + + toggle.addEventListener('click', function() { + const isChecked = input.checked; + if (isChecked) { + body.classList.remove('night'); + } else { + body.classList.add('night'); + } + }); + + + const introHeight = document.querySelector('.intro').offsetHeight; + const topButton = document.getElementById('top-button'); + const $topButton = $('#top-button'); + + window.addEventListener('scroll', function() { + if (window.scrollY > introHeight) { + $topButton.fadeIn(); + } else { + $topButton.fadeOut(); + } + }, false); + + topButton.addEventListener('click', function() { + $('html, body').animate({scrollTop: 0}, 500); + }); + + + + const hand = document.querySelector('.emoji.wave-hand'); + + function waveOnLoad() { + hand.classList.add('wave'); + setTimeout(function() { + hand.classList.remove('wave'); + }, 2000); + } + + setTimeout(function() { waveOnLoad(); }, 1000); + + hand.addEventListener('mouseover', function() { + hand.classList.add('wave'); + }); + + hand.addEventListener('mouseout', function() { + hand.classList.remove('wave'); + }); + + + window.sr = ScrollReveal({ + reset: false, + duration: 600, + easing: 'cubic-bezier(.694,0,.335,1)', + scale: 1, + viewFactor: 0.3 + }); + + sr.reveal('.background'); + sr.reveal('.skills'); + sr.reveal('.experience', {viewFactor: 0.2}); + sr.reveal('.featured-projects', {viewFactor: 0.1}); + sr.reveal('.other-projects', {viewFactor: 0.05}); + +}); diff --git a/package-lock.json b/package-lock.json index 468e34a..ca657c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -501,9 +501,9 @@ } }, "browser-sync": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.20.0.tgz", - "integrity": "sha512-PjF3EHLzgax11AuKfTzgx4wUe7ksT2VSWxdq5FssvytxGSdIqJWvV3unM0+lnI0BxGt/8sGLZEIlgx7Dn2S0LQ==", + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.21.0.tgz", + "integrity": "sha1-kc3jqEUvIvNV6+cXyhs8Hb+coJY=", "dev": true, "requires": { "browser-sync-ui": "1.0.1", @@ -514,6 +514,8 @@ "easy-extender": "2.3.2", "eazy-logger": "3.0.2", "emitter-steward": "1.0.0", + "etag": "1.8.1", + "fresh": "0.5.2", "fs-extra": "3.0.1", "http-proxy": "1.15.2", "immutable": "3.8.1", @@ -2865,9 +2867,9 @@ } }, "fresh": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", - "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, "fs-exists-sync": { @@ -7993,6 +7995,12 @@ } } }, + "fresh": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", + "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", + "dev": true + }, "http-errors": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", diff --git a/package.json b/package.json index e86a72b..37f4f2f 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "author": "Brittany Chiang", "license": "ISC", "devDependencies": { - "browser-sync": "^2.20.0", + "browser-sync": "^2.21.0", "eslint-config-starry": "7.0.0", "eslint-plugin-starry": "5.0.0", "gulp": "3.9.1", diff --git a/resume.pdf b/resume.pdf index bfdd5c2..ec94f02 100644 Binary files a/resume.pdf and b/resume.pdf differ