* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

body {
  line-height: 1.6;
}

ul {
  list-style: none;
}

/* change border colour to suit your needs */

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #CCC;
  margin: 1em 0;
  padding: 0;
}

input,
select {
  vertical-align: middle;
}

@font-face {
  font-family: '/fonts/Roboto-Regular';
  src: url("/fonts/Roboto-Regular.eot?#iefix") format("embedded-opentype"), url("/fonts/Roboto-Regular.woff") format("woff"), url("/fonts/Roboto-Regular.ttf") format("truetype"), url("/fonts/Roboto-Regular.svg#Roboto-Regular") format("svg");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: "rfdw";
  src: url("/fonts/rfdw.eot");
  src: url("/fonts/rfdw.eot?#iefix") format("embedded-opentype"), url("/fonts/rfdw.ttf") format("truetype"), url("/fonts/rfdw.svg#rfdw") format("svg"), url("/fonts/rfdw.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}

[data-icon]:before {
  font-family: "rfdw";
  content: attr(data-icon);
  font-style: normal;
  font-weight: normal;
  speak: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
}

[class^="icon-"]:before,
[class*=" icon-"]:before {
  font-family: "rfdw";
  font-style: normal;
  font-weight: normal;
  speak: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
}

.icon-labs:before {
  content: "l";
}

.icon-css3:before {
  content: "3";
}

.icon-brush:before {
  content: "b";
}

.icon-html5:before {
  content: "5";
}

.icon-cv:before {
  content: "c";
}

.icon-pencil:before {
  content: "p";
}

.icon-facebook:before {
  content: "f";
}

.icon-google-plus:before {
  content: "g";
}

.icon-twitter:before {
  content: "t";
}

.icon-home:before {
  content: "o";
}

.icon-skype:before {
  content: "s";
}

.icon-menu:before {
  content: "m";
}

.icon-certificate:before {
  content: "a";
}

.icon-palmares:before {
  content: "d";
}

.icon-divers:before {
  content: "e";
}

.icon-trophee:before {
  content: "h";
}

.icon-github:before {
  content: "i";
}

.icon-linux:before {
  content: "j";
}

.icon-apple:before {
  content: "k";
}

.icon-eye:before {
  content: "n";
}

.icon-link:before {
  content: "q";
}

.icon-app:before {
  content: "r";
}

/* Common button styles */

.button {
  max-width: 314px;
  display: block;
  margin: 0 auto;
  padding: 1em 2em;
  border: none;
  color: inherit;
  vertical-align: middle;
  position: relative;
  -webkit-backface-visibility: hidden;
  -moz-osx-font-smoothing: grayscale;
}

.button:focus {
  outline: none;
}

.button > span {
  vertical-align: middle;
}

/* Typography and Roundedness */

.button--text-upper {
  letter-spacing: 2px;
  text-transform: uppercase;
}

.button--text-thin {
  font-weight: 300;
}

.button--text-medium {
  font-weight: 500;
}

.button--text-thick {
  font-weight: 600;
}

.button--round-s {
  border-radius: 5px;
}

.button--round-m {
  border-radius: 15px;
}

.button--round-l {
  border-radius: 40px;
}

/* Borders */

.button--border-thin {
  border: 1px solid;
}

.button--border-medium {
  border: 2px solid;
}

.button--border-thick {
  border: 3px solid;
}

/* Wayra */

.button--wayra {
  overflow: hidden;
  -webkit-transition: border-color 0.3s, color 0.3s;
  transition: border-color 0.3s, color 0.3s;
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
  transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
}

.button--wayra::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 150%;
  height: 100%;
  background: transparent #37474f;
  z-index: -1;
  -webkit-transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0);
  transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0);
  -webkit-transition: -webkit-transform 0.3s, opacity 0.3s, background-color 0.3s;
  -webkit-transition: opacity 0.3s, background-color 0.3s, -webkit-transform 0.3s;
  transition: opacity 0.3s, background-color 0.3s, -webkit-transform 0.3s;
  transition: transform 0.3s, opacity 0.3s, background-color 0.3s;
  transition: transform 0.3s, opacity 0.3s, background-color 0.3s, -webkit-transform 0.3s;
}

.button--wayra:hover {
  color: #fff;
  border-color: #3f51b5;
}

.button--wayra.button--inverted:hover {
  color: #3f51b5;
  border-color: #fff;
}

.button--wayra:hover::before {
  opacity: 1;
  background-color: #3f51b5;
  -webkit-transform: rotate3d(0, 0, 1, 0deg);
  transform: rotate3d(0, 0, 1, 0deg);
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
  transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
}

.button--wayra.button--inverted:hover::before {
  background-color: #fff;
}

* {
  font-family: "Roboto",'Helvetica';
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Roboto",'Helvetica';
}

h1,
h2 {
  line-height: 1.1;
}

h3,
h4 {
  line-height: 1.3;
}

h1 {
  font-size: 2.250em;
  letter-spacing: -2px;
}

h2 {
  font-size: 24px;
  letter-spacing: -1px;
  color: #3D4351;
}

h3 {
  font-size: 16px;
}

h4 {
  font-size: 14px;
}

h5 {
  font-size: 12px;
}

main {
  top: 76px;
  color: #34495E;
}

header {
  background-color: #0d2840;
}

header h1,
header h2 {
  margin: 0 auto;
  width: 200px;
}

header h1 {
  padding-top: 30px;
}

header h1 a {
  color: #FFF;
  text-decoration: none;
}

#JeSuisCharlie {
  padding: 10px 0;
  text-align: center;
  background-color: #000;
}

#JeSuisCharlie-ribbon {
  width: 202px;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  position: fixed;
  background-color: black;
  text-align: center;
  top: 26px;
  left: -49px;
  padding: 10px;
  font-weight: 800;
  border: 1px solid #FFF;
  z-index: 1;
}

#JeSuisCharlie a,
#JeSuisCharlie-ribbon a {
  color: #FFF;
}

footer#footer {
  background-color: #0d2840;
  color: #FFF;
  text-align: center;
}

.copyright_message {
  padding-top: 25px;
  padding-bottom: 25px;
}

.icon {
  width: 26px;
  display: inline-block;
}

.html {
  color: #f12e2e;
}

.css {
  color: #4f7ddf;
}

/** VARIABLES **/

/** MIXINS **/

/** EXTENDS **/

.col-1,
.col-m-1,
.col-2,
.col-m-2,
.col-3,
.col-m-3,
.col-4,
.col-m-4,
.col-5,
.col-m-5,
.col-6,
.col-m-6,
.col-7,
.col-m-7,
.col-8,
.col-m-8,
.col-9,
.col-m-9,
.col-10,
.col-m-10,
.col-11,
.col-m-11,
.col-12,
.col-m-12 {
  float: left;
  position: relative;
  min-height: 1px;
  padding: 10px;
}

.row:before,
.row:after {
  content: "";
  display: table;
}

.row:after {
  clear: both;
}

.row {
  zoom: 1;
  /* For IE 6/7 (trigger hasLayout) */
}

/** CLASS **/

/** GRID **/

.col-1 {
  width: 8.33333333%;
}

.col-2 {
  width: 16.66666667%;
}

.col-3 {
  width: 25%;
}

.col-4 {
  width: 33.33333333%;
}

.col-5 {
  width: 41.66666667%;
}

.col-6 {
  width: 50%;
}

.col-7 {
  width: 58.33333333%;
}

.col-8 {
  width: 66.66666667%;
}

.col-9 {
  width: 75%;
}

.col-10 {
  width: 83.33333333%;
}

.col-11 {
  width: 91.66666667%;
}

.col-12 {
  width: 100%;
}

.col-center {
  margin: 0 auto;
  float: none;
}

@media only screen and (min-width: 620px) and (max-width: 768px) {
  .col-tablet-1 {
    width: 8.33333333%;
  }

  .col-tablet-2 {
    width: 16.66666667%;
  }

  .col-tablet-3 {
    width: 25%;
  }

  .col-tablet-4 {
    width: 33.33333333%;
  }

  .col-tablet-5 {
    width: 41.66666667%;
  }

  .col-tablet-6 {
    width: 50%;
  }

  .col-tablet-7 {
    width: 58.33333333%;
  }

  .col-tablet-8 {
    width: 66.66666667%;
  }

  .col-tablet-9 {
    width: 75%;
  }

  .col-tablet-10 {
    width: 83.33333333%;
  }

  .col-tablet-11 {
    width: 91.66666667%;
  }

  .col-tablet-12 {
    width: 100%;
  }

  .col-tablet-center {
    margin: 0 auto;
    float: none;
  }
}

@media only screen and (max-width: 620px) {
  .col-phone-1 {
    width: 8.33333333%;
  }

  .col-phone-2 {
    width: 16.66666667%;
  }

  .col-phone-3 {
    width: 25%;
  }

  .col-phone-4 {
    width: 33.33333333%;
  }

  .col-phone-5 {
    width: 41.66666667%;
  }

  .col-phone-6 {
    width: 50%;
  }

  .col-phone-7 {
    width: 58.33333333%;
  }

  .col-phone-8 {
    width: 66.66666667%;
  }

  .col-phone-9 {
    width: 75%;
  }

  .col-phone-10 {
    width: 83.33333333%;
  }

  .col-phone-11 {
    width: 91.66666667%;
  }

  .col-phone-12 {
    width: 100%;
  }

  .col-phone-center {
    margin: 0 auto;
    float: none;
  }
}

/*------------------------------------*\
    NORME
\*------------------------------------*/

/**
 * Norme CSS :
 * Positioning
 * Box model
 * Typographic
 * Visual
 */

/*------------------------------------*\
    VARIABLE
\*------------------------------------*/

#toggle,
.toggle {
  display: none;
}

#nav {
  background-color: #0D2840;
}

.menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  display: -webkit-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.menu > li,
.menu > li > a {
  height: 100%;
}

.menu > li > a {
  display: block;
  text-decoration: none;
  -webkit-transition: all 0.25s linear;
  transition: all 0.25s linear;
  padding: 20px;
  color: #FFF;
}

.menu > li > a:hover,
.menu > li > a:focus {
  -webkit-box-shadow: inset 0px -4px #51C1F1;
          box-shadow: inset 0px -4px #51C1F1;
  color: #51C1F1;
}

/*------------------------------------*\
    MEDIA-QUERIES
\*------------------------------------*/

@media only screen and (max-width: 768px) {
  .menu {
    display: none;
    opacity: 0;
    position: relative;
    top: -33px;
  }

  .menu > li {
    display: block;
    width: 100%;
    margin: 0;
  }

  .menu > li > a {
    color: #000;
  }

  .toggle {
    display: block;
    position: relative;
    cursor: pointer;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -moz-user-select: none;
     -ms-user-select: none;
         user-select: none;
  }

  #toggle:checked + nav .menu {
    display: block;
    opacity: 1;
  }
}

@media only screen and (max-width: 768px) {
  .menu {
    background: #FFF;
  }

  .menu,
  .menu > li,
  .menu > li > a {
    height: auto;
  }

  .menu > li > a {
    padding: 15px 15px;
  }

  .menu > li > a:hover,
  .menu > li > a:focus {
    background: #F2F2F2;
    -webkit-box-shadow: inset 5px 0px #51C1F1;
            box-shadow: inset 5px 0px #51C1F1;
    padding: 15px 15px 15px 25px;
  }

  .toggle:after {
    content: attr(data-open);
    display: block;
    margin: 33px 0;
    padding: 10px 50px;
    background: #51C1F1;
    text-align: center;
    font-size: 16px;
    color: #FFF;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
}

@media only screen and (max-width: 479px) {
  .toggle:after {
    text-align: center;
    width: 100%;
  }
}

.portfolio-cover {
  width: 100%;
  height: 400px;
  background: #CCC url("/images/desktop.jpg") repeat fixed center top/cover;
  position: relative;
  opacity: 0.9;
}

.portfolio-cover a {
  width: 100%;
  position: absolute;
  top: 40%;
  text-align: center;
  text-decoration: none;
  color: #FFF;
  opacity: 1;
}

.portfolio {
  padding: 3em 0 3em 0;
}

.portfolio h2 {
  margin-bottom: 20px;
  text-align: center;
}

.portfolio img {
  width: 100%;
  height: auto;
}

.portfolio-btn {
  width: 166px;
  margin: 0px auto;
  display: block;
  padding: 10px;
  border: 2px solid #3D4351;
}

.content {
  height: 290px;
  background-color: #FFF;
  color: #34495E;
  text-decoration: none;
}

.content:hover {
  text-decoration: underline;
}

.content > h3 {
  padding: 10px;
  text-align: center;
  background-color: #EAE6E6;
  border-radius: 0px 0px 0.25em 0.25em;
  height: 54px;
}

.content > .descr {
  margin-bottom: 20px;
  padding-left: 10px;
  padding-right: 10px;
}

.btn {
  float: right;
  padding: 10px 20px;
  text-decoration: none;
  cursor: pointer;
  color: #FFF;
  background: #252122;
}

.btn:hover {
  background: #353132;
}

.social {
  background-color: #5787a5;
  padding: 30px;
  text-align: center;
}

ul.icons li {
  display: inline-block;
  padding-left: 10px;
  padding-right: 10px;
}

ul.icons li a {
  font-size: 48px;
  color: #FFF;
}

li.facebook a:hover {
  color: #3b5998;
}

li.twitter a:hover {
  color: #00ACED;
}

li.google a:hover {
  color: #DD4B39;
}

li.github a:hover {
  color: #F3F3F3;
}

/** Specific CSS **/

@media only screen and (min-width: 621px) and (max-width: 1024px) {
  .content {
    height: 240px;
  }
}

@media only screen and (min-width: 321px) and (max-width: 620px) {
  .content {
    height: 223px;
  }

  .content > a {
    float: left;
  }
}

@media only screen and (max-width: 620px) {
  .intro .middle {
    -webkit-box-shadow: none;
            box-shadow: none;
  }

  .portfolio-cover {
    background-position: 14%;
  }
}

@media only screen and (max-width: 320px) {
  .content {
    height: 300px;
  }

  .content > h3 {
    margin-bottom: 10px;
  }

  .content > .descr {
    display: none;
  }
}

/** Variables **/

.cv_profil,
.cv_content {
  padding: 0;
}

.cv_profil,
.fiche,
.competence_title {
  text-align: center;
}

.cv_photo {
  background: url("/images/bg-title.gif") repeat scroll 0% 0% transparent;
  padding: 10px;
  width: 192px;
  margin: 100px auto 0 auto;
}

/** Title **/

.cv_bold {
  font-weight: 800;
}

.cv_title {
  padding: 10px 30px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  display: -webkit-flex;
  font-size: 38px;
  background: url("/images/bg-title.gif") repeat scroll 0% 0% transparent;
}

.cv_title2 {
  font-size: 24px;
}

.cv_name {
  font-size: 40px;
  margin-top: 10px;
}

.star-0 {
  background: url("/images/star0.svg");
}

.star-1 {
  background: url("/images/star1.svg");
}

.star-2 {
  background: url("/images/star2.svg");
}

.star-3 {
  background: url("/images/star3.svg");
}

.star-4 {
  background: url("/images/star4.svg");
}

.star-5 {
  background: url("/images/star5.svg");
}

.star-6 {
  background: url("/images/star6.svg");
}

.star-7 {
  background: url("/images/star7.svg");
}

.competence_title {
  display: block;
}

.cv_social {
  background: none repeat scroll 0% 0% #DBDBDB;
  margin-top: 40px;
  padding-top: 20px;
  padding-bottom: 20px;
}

.cv_content {
  border-left: 1px solid #CCC;
}

.experience,
.competence,
.prize,
.other {
  border-top: 1px solid #CCC;
}

.cv_date {
  float: right;
  font: 13px/20px Helvetica, Arial, sans-serif;
  padding: 4px;
  border-radius: 4px;
  color: #FFF;
  background-color: #F8CC55;
}

.cv_txt,
.cv_intitule,
.competence_intitule {
  margin-bottom: 10px;
}

.cv_row {
  margin: 30px;
}

.cv_descr {
  border-bottom: 1px solid #CCC;
  padding-bottom: 10px;
}

.experience .cv_row:last-child .cv_descr,
.certificate .cv_row:last-child .cv_descr {
  border: medium none;
}

.cv_link {
  font: bold 18px/20px "Helvetica Neue", Helvetica, sans-serif;
  color: #2197C8;
}

.cv_descr,
.competence_intitule {
  margin-top: 10px;
}

.competence_intitule {
  text-decoration: underline;
}

.competence_attr {
  display: inline-block;
  font-size: 14px;
  margin: 3px;
}

.fiche {
  border: 3px solid #F5F5F5;
  display: inline-table;
  padding: 10px;
  margin: 10px;
  width: 120px;
}

.trophee {
  font-size: 70px;
  color: #ECE41B;
}

@media only screen and (max-width: 640px) {
  .fiche {
    margin: 8px;
  }
}

@media only screen and (max-width: 360px) {
  .cv_row {
    margin: 10px;
    padding-bottom: 10px;
  }

  .competence_attr {
    margin: 0 22px;
  }
}

.timeline {
  background-color: #FFF;
}

.timeline img {
  height: auto;
}

.timeline_project {
  border-top: 1px solid #CCC;
  padding: 10px;
}

.timeline_descr {
  border-left: 1px solid #CCC;
}

.timeline_titleProject {
  font-size: 30px;
}

.timeline_detail {
  margin-top: 20px;
  margin-bottom: 10px;
}

.timeline_link {
  display: inherit;
  margin-top: 10px;
  margin-bottom: 14px;
  font: bold 18px/20px "Helvetica Neue",Helvetica,sans-serif;
  color: #2197C8;
}

.timeline_lang .attr {
  padding: 6px;
  border-radius: 4px;
  color: #FFF;
  background-color: #F8CC55;
  width: 90px;
  text-align: center;
  display: inline-block;
  margin: 4px 0px;
}

@media only screen and (max-width: 598px) {
  .timeline_descr {
    border: none;
  }
}

.labs {
    margin: 20px;
}
.labs-listing {
    display: grid;
    grid-gap: 20px;
    grid-template-rows: repeat(1, 1fr);
    grid-template-columns: repeat(3, 1fr);
}
.labs-listing li {
    text-align: center;
}
.labs-listing img {
    max-width: 100%;
}
/* .labs p {
  text-align: center;
  font-size: 72px;
  margin: 10px 0px;
} */

.labs h2 {
  color: #0D2840;
  text-align: center;
  padding-top: 10px;
  padding-bottom: 10px;
  margin-bottom: 10px;
  border-bottom: 2px solid #0D2840;
}

/* .grid {
  max-width: 69em;
  list-style: none;
  margin: 30px auto;
  padding: 0;
}

.grid li {
  padding: 19px;
  opacity: 0;
}

.grid li.shown,
.no-js .grid li,
.no-cssanimations .grid li {
  opacity: 1;
}

.grid li a,
.grid li img {
  outline: none;
  border: none;
  display: block;
  max-width: 100%;
} */

/* Effect 2: Move Up */

.effect-2 li.animate {
  -webkit-transform: translateY(200px);
  transform: translateY(200px);
  -webkit-animation: moveUp 0.65s ease forwards;
  animation: moveUp 0.65s ease forwards;
}

@-webkit-keyframes moveUp {
  0% {

  }

  100% {
    -webkit-transform: translateY(0);
    opacity: 1;
  }
}

@keyframes moveUp {
  0% {

  }

  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
  }
}

/* Effect 4: fall perspective */

.grid.effect-4 {
  -webkit-perspective: 1300px;
  perspective: 1300px;
}

.grid.effect-4 li.animate {
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
  -webkit-transform: translateZ(400px) translateY(300px) rotateX(-90deg);
  transform: translateZ(400px) translateY(300px) rotateX(-90deg);
  -webkit-animation: fallPerspective .8s ease-in-out forwards;
  animation: fallPerspective .8s ease-in-out forwards;
}

@-webkit-keyframes fallPerspective {
  0% {

  }

  100% {
    -webkit-transform: translateZ(0px) translateY(0px) rotateX(0deg);
    opacity: 1;
  }
}

@keyframes fallPerspective {
  0% {

  }

  100% {
    -webkit-transform: translateZ(0px) translateY(0px) rotateX(0deg);
    transform: translateZ(0px) translateY(0px) rotateX(0deg);
    opacity: 1;
  }
}

@media screen and (max-width: 900px) {
  .grid li {
    width: 50%;
  }
}

@media screen and (max-width: 400px) {
  .grid li {
    width: 100%;
  }
}

