/*------------------------------*/
/* Styles générés par main.less */
/*------------------------------*/
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
html,
body {
  border: 0;
  font-family: "Helvetica-Neue", "Helvetica", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  margin: 0;
  padding: 0;
}
div,
span,
object,
iframe,
img,
table,
caption,
thead,
tbody,
tfoot,
tr,
tr,
td,
article,
aside,
canvas,
details,
figure,
hgroup,
menu,
nav,
footer,
header,
section,
summary,
mark,
audio,
video {
  border: 0;
  margin: 0;
  padding: 0;
}
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
address,
cit,
code,
del,
dfn,
em,
ins,
q,
samp,
small,
strong,
sub,
sup,
b,
i,
hr,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
legend,
label {
  border: 0;
  vertical-align: baseline;
  margin: 0;
  padding: 0;
}
article,
aside,
canvas,
figure,
figure img,
figcaption,
hgroup,
footer,
header,
nav,
section,
audio,
video {
  display: block;
}
table {
  border-collapse: separate;
  border-spacing: 0;
}
table caption,
table th,
table td {
  text-align: left;
  vertical-align: middle;
}
a img {
  border: 0;
}
/* MARGIN & PADDING HELPERS */
.no-margin {
  margin: 0 !important;
}
.no-padding {
  padding: 0 !important;
}
.margin-auto {
  margin-left: auto !important;
  margin-right: auto !important;
}
.margin-10 {
  margin: 10px !important;
}
.margin-top-10 {
  margin-top: 10px !important;
}
.margin-bottom-10 {
  margin-bottom: 10px !important;
}
.margin-left-10 {
  margin-left: 10px !important;
}
.margin-right-10 {
  margin-right: 10px !important;
}
.margin-15 {
  margin: 15px !important;
}
.margin-top-15 {
  margin-top: 15px !important;
}
.margin-bottom-15 {
  margin-bottom: 15px !important;
}
.margin-left-15 {
  margin-left: 15px !important;
}
.margin-right-15 {
  margin-right: 15px !important;
}
.margin-20 {
  margin: 20px !important;
}
.margin-top-20 {
  margin-top: 20px !important;
}
.margin-bottom-20 {
  margin-bottom: 20px !important;
}
.margin-left-20 {
  margin-left: 20px !important;
}
.margin-right-20 {
  margin-right: 20px !important;
}
.padding-5 {
  padding: 5px !important;
}
.padding-top-5 {
  padding-top: 5px !important;
}
.padding-bottom-5 {
  padding-bottom: 5px !important;
}
.padding-left-5 {
  padding-left: 5px !important;
}
.padding-right-5 {
  padding-right: 5px !important;
}
.padding-10 {
  padding: 10px !important;
}
.padding-top-10 {
  padding-top: 10px !important;
}
.padding-bottom-10 {
  padding-bottom: 10px !important;
}
.padding-left-10 {
  padding-left: 10px !important;
}
.padding-right-10 {
  padding-right: 10px !important;
}
.padding-20 {
  padding: 20px !important;
}
.padding-left-20 {
  padding-left: 20px !important;
}
.padding-right-20 {
  padding-right: 20px !important;
}
.padding-top-20 {
  padding-top: 20px !important;
}
.padding-bottom-20 {
  padding-bottom: 20px !important;
}
.margin-left-20 {
  margin-left: 20px !important;
}
.margin-right-20 {
  margin-right: 20px !important;
}
/* TEXT HELPERS */
.text-nowrap {
  white-space: nowrap;
}
.word-wrap {
  width: 100%;
  word-wrap: break-word;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.text-left {
  text-align: left;
}
.text-ellipsis {
  display: block;
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.font-xl {
  font-size: 1.2em !important;
}
.font-xxl {
  font-size: 1.6em !important;
}
.font-xxxl {
  font-size: 2em !important;
}
.font-m {
  font-size: 1em !important;
}
.font-xs {
  font-size: .8em !important;
}
.font-xxs {
  font-size: .6em !important;
}
.font-xxxs {
  font-size: .4em !important;
}
.weight-400,
.text-regular {
  font-weight: 400;
}
.weight-500,
.text-medium {
  font-weight: 500;
}
.weight-700,
.text-semibold {
  font-weight: 700;
}
.weight-800,
.text-bold {
  font-weight: 800;
}
.uppercase {
  text-transform: uppercase;
}
.lowercase {
  text-transform: lowercase;
}
.initialcase {
  text-transform: initial;
}
.underline {
  text-decoration: underline;
}
/* LAYOUT HELPERS */
.flex,
[class*="flex-"] {
  display: flex;
}
.flex[class*="-start"],
[class*="flex-"][class*="-start"],
.flex[class*="-justify_start"],
[class*="flex-"][class*="-justify_start"] {
  justify-content: flex-start !important;
}
.flex[class*="-end"],
[class*="flex-"][class*="-end"],
.flex[class*="-justify_end"],
[class*="flex-"][class*="-justify_end"] {
  justify-content: flex-end !important;
}
.flex[class*="-center"],
[class*="flex-"][class*="-center"],
.flex[class*="-justify_center"],
[class*="flex-"][class*="-justify_center"] {
  justify-content: center !important;
}
.flex[class*="-space"],
[class*="flex-"][class*="-space"],
.flex[class*="-justify_space"],
[class*="flex-"][class*="-justify_space"] {
  justify-content: space-between !important;
}
.flex[class*="-evenly"],
[class*="flex-"][class*="-evenly"],
.flex[class*="-justify_evenly"],
[class*="flex-"][class*="-justify_evenly"] {
  justify-content: space-evenly !important;
}
.flex[class*="-justify_stretch"],
[class*="flex-"][class*="-justify_stretch"] {
  justify-content: stretch !important;
}
.flex[class*="-justify_stretch"] > *,
[class*="flex-"][class*="-justify_stretch"] > * {
  flex-grow: 1;
}
.flex[class*="-align_start"],
[class*="flex-"][class*="-align_start"] {
  align-items: flex-start !important;
}
.flex[class*="-align_end"],
[class*="flex-"][class*="-align_end"] {
  align-items: flex-end !important;
}
.flex[class*="-middle"],
[class*="flex-"][class*="-middle"],
.flex[class*="-align_center"],
[class*="flex-"][class*="-align_center"] {
  align-items: center !important;
}
.flex[class*="-wrap"],
[class*="flex-"][class*="-wrap"] {
  flex-wrap: wrap !important;
}
.flex[class*="-nowrap"],
[class*="flex-"][class*="-nowrap"] {
  flex-wrap: nowrap !important;
}
.flex[class*="-column"],
[class*="flex-"][class*="-column"] {
  flex-direction: column !important;
}
.flex[class*="-full"],
[class*="flex-"][class*="-full"] {
  width: 100%;
}
.flex[class*="-gap"],
[class*="flex-"][class*="-gap"] {
  gap: 10px;
}
.flex[class*="-gap-2"],
[class*="flex-"][class*="-gap-2"] {
  gap: 2px;
}
.flex[class*="-gap-5"],
[class*="flex-"][class*="-gap-5"] {
  gap: 5px;
}
.flex[class*="-gap-10"],
[class*="flex-"][class*="-gap-10"] {
  gap: 10px;
}
.flex[class*="-gap-15"],
[class*="flex-"][class*="-gap-15"] {
  gap: 15px;
}
.flex[class*="-gap-20"],
[class*="flex-"][class*="-gap-20"] {
  gap: 20px;
}
.flex[class*="-col_2"] > *,
[class*="flex-"][class*="-col_2"] > * {
  flex-basis: 50%;
}
.flexsize[class*="-20"],
[class*="flexsize-"][class*="-20"] {
  flex: 20%;
}
.flexsize[class*="-50"],
[class*="flexsize-"][class*="-50"] {
  flex: 0 1 50%;
}
.flexsize[class*="-100"],
[class*="flexsize-"][class*="-100"] {
  flex: 100%;
}
.block {
  display: block;
}
.min-height[class*="-100"],
[class*="min-height-"][class*="-100"] {
  min-height: 100%;
}
.position[class*="-relative"],
[class*="position-"][class*="-relative"] {
  position: relative;
}
.position[class*="-sticky"],
[class*="position-"][class*="-sticky"] {
  position: sticky;
  z-index: 1;
  top: 0;
}
.position[class*="-absolute"],
[class*="position-"][class*="-absolute"] {
  position: absolute;
  z-index: 1;
}
.position[class*="-fixed"],
[class*="position-"][class*="-fixed"] {
  position: fixed;
  z-index: 1;
}
.position[class*="-z-0"],
[class*="position-"][class*="-z-0"] {
  z-index: 0;
}
.position[class*="-z-1"],
[class*="position-"][class*="-z-1"] {
  z-index: 1;
}
.position[class*="-z-2"],
[class*="position-"][class*="-z-2"] {
  z-index: 2;
}
.position[class*="-z-3"],
[class*="position-"][class*="-z-3"] {
  z-index: 3;
}
.position[class*="-z-4"],
[class*="position-"][class*="-z-4"] {
  z-index: 4;
}
.position[class*="-z-5"],
[class*="position-"][class*="-z-5"] {
  z-index: 5;
}
.position[class*="-z-6"],
[class*="position-"][class*="-z-6"] {
  z-index: 6;
}
.position[class*="-z-7"],
[class*="position-"][class*="-z-7"] {
  z-index: 7;
}
.position[class*="-z-8"],
[class*="position-"][class*="-z-8"] {
  z-index: 8;
}
.position[class*="-z-9"],
[class*="position-"][class*="-z-9"] {
  z-index: 9;
}
.position[class*="-z-10"],
[class*="position-"][class*="-z-10"] {
  z-index: 10;
}
.position[class*="-z-9999"],
[class*="position-"][class*="-z-9999"] {
  z-index: 9999;
}
.position[class*="-bottom"],
[class*="position-"][class*="-bottom"] {
  bottom: 0;
}
.position[class*="-top"],
[class*="position-"][class*="-top"] {
  top: 0;
}
.position[class*="-left"],
[class*="position-"][class*="-left"] {
  left: 0;
}
.position[class*="-right"],
[class*="position-"][class*="-right"] {
  right: 0;
}
/* DISPLAY HELPERS */
.clickable {
  cursor: pointer;
}
.grabbable {
  cursor: grab !important;
}
.hidden {
  display: none !important;
}
.invisible {
  visibility: hidden !important;
}
.no-scroll,
.no-overflow {
  overflow: hidden !important;
}
.no-select {
  user-select: none;
}
.no-event {
  pointer-events: none;
}
.scroll-x {
  overflow-x: scroll;
}
.scroll-y {
  overflow-y: scroll;
}
.disabled {
  pointer-events: none;
  opacity: 0.5;
}
.cover {
  object-fit: cover;
  min-height: 100%;
}
.scrollbar {
  padding-right: 5px;
}
.scrollbar::-webkit-scrollbar {
  height: 4px;
  width: 4px;
  opacity: .5;
}
.scrollbar::-webkit-scrollbar:hover {
  opacity: 1;
}
.scrollbar::-webkit-scrollbar-button {
  display: none;
}
.scrollbar::-webkit-scrollbar-thumb {
  background: ;
}
.scrollbar::-webkit-scrollbar-track {
  background: ;
}
/* RESPONSIVE HELPERS */
@media screen and (max-width: 1024px) {
  .hidden-mobile {
    position: fixed;
    z-index: -999;
    right: 0;
    bottom: 0;
    width: 0;
    height: 0;
    visibility: hidden;
  }
}
@font-face {
  font-family: 'Noto Sans';
  src: url('../fonts/NotoSans-Bold.woff2') format('woff2'), url('../fonts/NotoSans-Bold.woff') format('woff');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Noto Sans';
  src: url('../fonts/NotoSans-Medium.woff2') format('woff2'), url('../fonts/NotoSans-Medium.woff') format('woff');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Source Code Pro';
  src: url('../fonts/SourceCodePro-Black.woff2') format('woff2'), url('../fonts/SourceCodePro-Black.woff') format('woff');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Source Code Pro';
  src: url('../fonts/SourceCodePro-BlackItalic.woff2') format('woff2'), url('../fonts/SourceCodePro-BlackItalic.woff') format('woff');
  font-weight: 900;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Source Code Pro';
  src: url('../fonts/SourceCodePro-Bold.woff2') format('woff2'), url('../fonts/SourceCodePro-Bold.woff') format('woff');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Source Code Pro';
  src: url('../fonts/SourceCodePro-BoldItalic.woff2') format('woff2'), url('../fonts/SourceCodePro-BoldItalic.woff') format('woff');
  font-weight: 800;
  font-style: italic;
  font-display: swap;
}
html,
body {
  height: 100%;
}
body {
  background-color: #130E27;
  color: #FFF;
  font-family: 'Noto Sans';
  font-size: 16px;
}
h2 {
  font-family: 'Source Code Pro';
  font-weight: 900;
  font-style: italic;
  font-size: 30px;
  margin-bottom: 30px;
}
h2::before {
  content: "_";
}
h3 {
  font-family: 'Source Code Pro';
  font-weight: 900;
  font-style: italic;
  font-size: 22px;
}
h3::before {
  content: "_";
}
p {
  line-height: 1.6;
  text-align: justify;
}
strong {
  font-weight: 800;
  background: #363892;
  border-radius: 5px;
  padding: 0 5px;
}
p + p,
p + ul,
ul + p {
  margin-top: 20px;
}
ul {
  list-style: inside;
  list-style-image: url(../img/angle-right.svg);
}
li + li {
  margin-top: 10px;
}
section {
  width: 100%;
  min-height: 100vh;
  padding: 70px;
  max-width: 1200px;
  margin: auto;
}
.btn {
  cursor: pointer;
  user-select: none;
  outline: none !important;
  -webkit-tap-highlight-color: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  border-radius: 10px;
  border: none;
  color: #FFF;
  text-transform: uppercase;
  text-decoration: none;
}
.btn#localisation-trigger {
  background: #F7901E;
}
.btn.techno-link {
  background: #363892;
}
.btn#contact-validate {
  background: #363892;
  font-size: 20px;
}
.btn#contact-validate span {
  font-size: 20px;
}
.btn i {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 50px;
  width: 50px;
  height: 50px;
}
.btn span {
  font-family: Source Code Pro;
  text-align: left;
  font-size: 16px;
  line-height: 1;
  white-space: nowrap;
}
.btn span:first-child {
  padding-left: 20px;
}
.btn span:last-child {
  padding-right: 20px;
}
#app {
  position: relative;
  z-index: 1;
}
#accueil {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  min-height: 100vh;
  padding: 0 70px;
}
#accueil #logo {
  display: block;
  width: 300px;
  margin: 0 auto;
}
#accueil .text {
  width: 90%;
  max-width: 600px;
  margin: 50px auto 0;
}
#accueil .icons {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 50px;
  height: 260px;
  margin: 0;
  overflow: hidden;
}
#accueil .icons.animate::before {
  transform: scale(1);
  transition: transform 0.3s cubic-bezier(0.27, 0.6, 0.3, 1);
}
#accueil .icons.animate .icon-concept {
  transform: translateY(70px);
  transition: transform 0.8s cubic-bezier(0.27, 0.6, 0.3, 1) 0.3s;
}
#accueil .icons.animate .icon-browser {
  transform: translateY(30px);
  transition: transform 0.8s cubic-bezier(0.27, 0.6, 0.3, 1) 0.4s;
}
#accueil .icons.animate .icon-interface {
  transform: translateY(85px);
  transition: transform 0.8s cubic-bezier(0.27, 0.6, 0.3, 1) 0.5s;
}
#accueil .icons::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  display: block;
  border-bottom: 2px solid #FFF;
  transform: scaleX(0);
}
#accueil .icons .icon-concept {
  transform: translateY(100%);
  width: 220px;
}
#accueil .icons .icon-browser {
  transform: translateY(100%);
  width: 300px;
}
#accueil .icons .icon-interface {
  transform: translateY(100%);
  width: 270px;
}
#developpement {
  display: flex;
  gap: 20px;
  justify-content: center;
}
#developpement .text {
  top: 0;
  flex: 100%;
  padding: 30px;
}
#developpement .stack {
  position: relative;
  flex: 100%;
  align-self: flex-start;
  display: flex;
  flex-direction: column;
  gap: 30px;
  background: #FFF;
  border-radius: 50px;
  padding: 30px;
}
#developpement .stack::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: 75px;
  top: 80px;
  bottom: 80px;
  width: 8px;
  background-color: #363892;
}
#developpement .stack .stack-layer {
  cursor: pointer;
  user-select: none;
  border: none;
  outline: none !important;
  -webkit-tap-highlight-color: transparent;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  border-radius: 50px;
  overflow: hidden;
}
#developpement .stack .stack-layer[active="true"]::before {
  width: 100%;
  height: 100%;
}
#developpement .stack .stack-layer[active="true"] .stack-text {
  color: #FFF;
}
#developpement .stack .stack-layer[active="true"] .stack-text h3 {
  margin-bottom: 20px;
}
#developpement .stack .stack-layer[active="true"] .stack-text p {
  max-height: 200px;
  text-align: left;
}
#developpement .stack .stack-layer[active="true"] .stack-text p strong {
  background: #130e27;
}
#developpement .stack .stack-layer:hover::before {
  width: 100%;
}
#developpement .stack .stack-layer:hover .stack-text {
  color: #FFF;
  transition: color .1s linear;
}
#developpement .stack .stack-layer::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 0;
  display: block;
  width: 100px;
  height: 100px;
  border-radius: 50px;
  background: #363892;
  transform-origin: left top;
  transition: width 0.3s ease-out;
}
#developpement .stack .stack-layer .stack-icon {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 100px;
  width: 100px;
  height: 100px;
  background: #363892;
  border-radius: 50px;
}
#developpement .stack .stack-layer .stack-icon img {
  max-width: 50%;
  max-height: 50%;
}
#developpement .stack .stack-layer .stack-text {
  position: relative;
  padding: 30px 20px;
  color: #130e27;
  transition: color .1s linear .2s;
}
#developpement .stack .stack-layer .stack-text p {
  max-height: 0px;
  overflow: hidden;
  transition: max-height 0.2s ease;
}
#developpement .stack .stack-layer .stack-text p strong {
  background: none;
}
#a-propos {
  display: flex;
  gap: 40px;
  justify-content: center;
  align-items: flex-start;
}
#a-propos .icon {
  flex: 0 0 210px;
  width: 210px;
}
#a-propos .text {
  margin-top: 50px;
  padding: 50px;
  border: 2px solid #FFF;
  border-radius: 50px;
}
#a-propos .text p {
  text-indent: 40px;
}
#projets {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
#projets h2 {
  padding-left: 50px;
}
#projets h3 {
  margin-bottom: 20px;
}
#projets strong {
  background: #EBEBF4;
}
#projets .btn {
  display: inline-flex;
  background: #363892;
}
#projets .slider {
  display: flex;
  background: #FFF;
  border-radius: 50px;
  padding: 10px;
}
#projets .slider .slider-nav {
  cursor: pointer;
  user-select: none;
  border: none;
  outline: none !important;
  -webkit-tap-highlight-color: transparent;
  flex: 0 0 130px;
  color: #363892;
  background: #EBEBF4;
  border-radius: 40px;
  font-size: 80px;
}
#projets .slider .slider-nav:hover {
  color: #FFF;
  background: #363892;
}
#projets .slider .slider-content {
  position: relative;
  width: 100%;
  transition: height .1s ease .1s;
}
#projets .slider .slider-item {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 0;
  display: flex;
  width: 100%;
  opacity: 0;
  transition: transform .1s ease, opacity .1s linear;
}
#projets .slider .slider-item[active="true"] {
  position: relative;
  z-index: 1;
  opacity: 1;
  transition: transform .2s ease .2s, opacity .2s linear .2s;
}
#projets .slider .slider-item[active="true"] .icon::before {
  transform: scale(1);
}
#projets .slider .slider-item:nth-child(1) .icon::before {
  background: #F7DF95;
}
#projets .slider .slider-item:nth-child(1) .icon img {
  transform: translate(20px, -20px);
}
#projets .slider .slider-item:nth-child(2) .icon::before {
  background: #F287C6;
}
#projets .slider .slider-item:nth-child(2) .icon img {
  max-width: 160px;
  transform: translate(11px, -11px);
}
#projets .slider .slider-item:nth-child(3) .icon::before {
  background: #D6E69F;
}
#projets .slider .slider-item:nth-child(3) .icon img {
  transform: translate(10px, -20px);
}
#projets .slider .slider-item .icon {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 300px;
}
#projets .slider .slider-item .icon::before {
  content: "";
  position: absolute;
  z-index: 0;
  display: block;
  width: 200px;
  height: 200px;
  border-radius: 100px;
  transform: scale(0);
  transition: transform 0.2s ease-out 0.3s;
}
#projets .slider .slider-item .icon img {
  position: relative;
  z-index: 1;
  max-width: 200px;
  max-height: 200px;
}
#projets .slider .slider-item .text {
  padding: 40px 40px 40px 0;
  color: #130E27;
}
#projets .slider .slider-item .text h3 {
  font-size: 26px;
}
#technologies .techno-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  row-gap: 30px;
}
#technologies .techno {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
  border-radius: 20px;
  border: 2px solid #FFF;
  padding: 30px 10px 10px 10px;
  transition: background 0.2s linear, box-shadow 0.2s linear;
}
#technologies .techno:hover {
  z-index: 2;
  background: #FFF;
  color: #130e27;
  box-shadow: 0 3px 50px rgba(113, 198, 161, 0.6);
}
#technologies .techno:hover strong {
  background: #EBEBF4;
}
#technologies .techno img {
  width: 90px;
  margin: auto;
}
#technologies .techno h3 {
  text-align: center;
  font-size: 30px;
}
#technologies .techno h3::before {
  display: none;
}
#technologies .techno p {
  padding: 0 10px;
}
#localisation {
  position: relative;
  max-width: 100%;
  padding: 0;
  display: flex;
  align-items: center;
}
#localisation iframe {
  position: relative;
  z-index: 0;
  width: 100%;
  height: 80vh;
}
#localisation strong {
  background: #EBEBF4;
}
#localisation .localisation-overlay {
  position: absolute;
  z-index: 1;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 80vh;
}
#localisation .localisation-overlay::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  z-index: 0;
  background: #363892;
  opacity: 0.5;
}
#localisation .localisation-overlay[active="false"]::before {
  opacity: 0;
  transition: opacity .3s linear;
}
#localisation .localisation-overlay[active="false"] .text {
  opacity: 0;
  transition: opacity .3s linear;
}
#localisation .localisation-overlay .text {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 30px;
  align-items: center;
  max-width: 600px;
  padding: 50px;
  margin: 30px;
  text-align: center;
  background: #FFF;
  border-radius: 50px;
  color: #130e27;
  box-shadow: 0 3px 50px rgba(0, 0, 0, 0.6);
}
#contact {
  max-width: 600px;
}
#contact form {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 30px;
  min-height: 70vh;
}
#contact label {
  display: block;
  margin-left: 10px;
  font-family: Source Code Pro;
}
#contact input {
  display: block;
  width: 100%;
  padding: 0 10px;
  background: none;
  border: 2px solid #FFF;
  border-radius: 10px;
  font-size: 18px;
  height: 50px;
  color: #FFF;
  transition: background 0.2s linear, box-shadow 0.2s linear;
}
#contact input:focus {
  color: #130e27;
  background: #FFF;
  box-shadow: 0 3px 50px rgba(230, 16, 142, 0.6);
}
#contact textarea {
  display: block;
  width: 100%;
  padding: 10px;
  background: none;
  border: 2px solid #FFF;
  border-radius: 10px;
  font-size: 18px;
  color: #FFF;
  transition: background 0.2s linear, box-shadow 0.2s linear;
}
#contact textarea:focus {
  color: #130e27;
  background: #FFF;
  box-shadow: 0 3px 50px rgba(230, 16, 142, 0.6);
}
#contact .form-validate {
  display: flex;
  justify-content: center;
}
#contact .form-field .error {
  color: red;
}
#contact .form-feedback {
  color: #FFF;
}
#contact .form-feedback .title {
  font-size: 20px;
  text-align: center;
}
#contact .form-feedback .msg {
  text-align: center;
}
#contact footer {
  position: absolute;
  left: 0;
  width: 100%;
  padding: 30px 20px 90px;
  opacity: 0.5;
}
#contact footer p {
  margin: 0;
}
#logo-lt {
  position: fixed;
  z-index: 10;
  left: 20px;
  top: 20px;
  display: block;
  transform: translateY(-100%);
  opacity: 0;
  transition: transform .1s ease, opacity .1s linear;
}
#logo-lt[active="true"] {
  transform: translateY(0);
  opacity: 1;
}
#logo-lt img {
  display: block;
  width: 120px;
}
#contact-link {
  cursor: pointer;
  user-select: none;
  border: none;
  outline: none !important;
  -webkit-tap-highlight-color: transparent;
  position: fixed;
  z-index: 10;
  right: 0;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 70px;
  height: 70px;
  text-decoration: none;
  color: #FFF;
}
#contact-link i {
  font-size: 30px;
}
#menu-trigger {
  cursor: pointer;
  user-select: none;
  border: none;
  outline: none !important;
  -webkit-tap-highlight-color: transparent;
  position: fixed;
  z-index: 10;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 70px;
  height: 70px;
  transition: transform 0.3s ease-out, color 0.2s;
}
#menu-trigger[active="true"] {
  color: #130e27;
  transform: rotate(180deg);
}
#menu-trigger[active="true"] i::before {
  content: "\f00d";
}
#menu-trigger i {
  font-size: 30px;
}
nav {
  position: fixed;
  z-index: 9;
  left: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 70px;
  padding-right: 100px;
  background: #FFF;
  transform: translateY(100%);
  transition: transform .1s linear .1s;
}
nav[active="true"] {
  transform: translateY(0);
}
nav[active="true"] a {
  opacity: 1;
  transition: opacity .1s linear .2s, background .1s linear;
}
nav a {
  cursor: pointer;
  user-select: none;
  border: none;
  outline: none !important;
  -webkit-tap-highlight-color: transparent;
  display: flex;
  align-items: center;
  height: 70px;
  padding: 0 20px;
  font-family: Source Code Pro;
  text-decoration: none;
  color: #130e27;
  opacity: 0;
  white-space: nowrap;
  transition: opacity .1s linear, background .1s linear;
}
nav a::after {
  content: "_";
}
nav a:hover {
  background: #71C6A1;
}
#bg-lights {
  position: fixed;
  z-index: 0;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
#bg-lights .light {
  position: absolute;
  width: 80vw;
  min-width: 600px;
  opacity: 0.7;
  animation: ;
}
#bg-lights #light-1 {
  transform: translate(-50%, -50%);
  animation: loop-1 infinite 190s both, light-opacity infinite 30s both, light-scale infinite 40s both 12s;
}
#bg-lights #light-2 {
  left: 100%;
  transform: translate(-50%, -50%);
  animation: loop-2 infinite 120s both, light-opacity infinite 50s both, light-scale infinite 60s both;
}
#bg-lights #light-3 {
  left: 100%;
  top: 100%;
  transform: translate(-50%, -50%);
  animation: loop-3 infinite 80s both, light-opacity infinite 60s both, light-scale infinite 80s both 30s;
}
#bg-lights #light-4 {
  top: 100%;
  transform: translate(-50%, -50%);
  animation: loop-4 infinite 160s both, light-opacity infinite 40s both, light-scale infinite 70s both;
}
@keyframes light-opacity {
  0%,
  100% {
    opacity: 0.6;
  }
  50% {
    opacity: 0.4;
  }
}
@keyframes light-scale {
  0%,
  100% {
    transform: translate(-50%, -50%) scale(1);
  }
  50% {
    transform: translate(-50%, -50%) scale(0.5);
  }
}
@keyframes loop-1 {
  0%,
  100% {
    left: -10%;
    top: -20%;
  }
  25% {
    left: 110%;
    top: -20%;
  }
  50% {
    left: 110%;
    top: 110%;
  }
  75% {
    left: 10%;
    top: 110%;
  }
}
@keyframes loop-2 {
  0%,
  100% {
    left: 110%;
    top: 110%;
  }
  25% {
    left: 10%;
    top: 100%;
  }
  50% {
    left: -10%;
    top: -20%;
  }
  75% {
    left: 110%;
    top: -20%;
  }
}
@keyframes loop-3 {
  0%,
  100% {
    left: 80%;
    top: 120%;
  }
  25% {
    left: 110%;
    top: 10%;
  }
  50% {
    left: -10%;
    top: 10%;
  }
  75% {
    left: -10%;
    top: 90%;
  }
}
@keyframes loop-4 {
  0%,
  100% {
    left: 0;
    top: 120%;
  }
  25% {
    left: 110%;
    top: 90%;
  }
  50% {
    left: 120%;
    top: 10%;
  }
  75% {
    left: 20%;
    top: -10%;
  }
}
@media screen and (max-width: 1024px) {
  #logo-lt {
    top: 10px;
    left: 10px;
    height: 70px;
    padding: 0 30px 0 20px;
    border-radius: 35px;
    background: #130e27;
  }
  #logo-lt img {
    margin-top: 12px;
  }
  #contact-link {
    top: 10px;
    right: 10px;
    background: #130e27;
    border-radius: 35px;
  }
  #menu-trigger {
    bottom: 10px;
    right: 10px;
    background: #130e27;
    border-radius: 35px;
  }
  #menu-trigger[active="true"] {
    color: #FFF;
  }
  #technologies .techno-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  #accueil .icons .icon-concept {
    width: 210px;
  }
  #accueil .icons .icon-browser {
    width: 290px;
  }
  #accueil .icons .icon-interface {
    width: 260px;
  }
  nav {
    flex-direction: column;
    padding: 0;
    height: auto;
  }
}
@media screen and (max-width: 768px) {
  #accueil .icons {
    gap: 20px;
  }
  #accueil .icons .icon-concept {
    width: 130px;
  }
  #accueil .icons .icon-browser {
    width: 240px;
  }
  #accueil .icons .icon-interface {
    width: 160px;
  }
  #developpement {
    display: block;
  }
  #developpement .stack .stack-layer,
  #developpement .stack .stack-layer[active="true"] {
    flex-direction: column;
    gap: 20px;
  }
  #developpement .stack .stack-layer::before,
  #developpement .stack .stack-layer[active="true"]::before {
    display: none;
  }
  #developpement .stack .stack-layer .stack-text,
  #developpement .stack .stack-layer[active="true"] .stack-text {
    color: #130e27;
  }
  #developpement .stack .stack-layer .stack-text h3,
  #developpement .stack .stack-layer[active="true"] .stack-text h3 {
    text-align: center;
    margin-bottom: 20px;
  }
  #developpement .stack .stack-layer .stack-text p,
  #developpement .stack .stack-layer[active="true"] .stack-text p {
    max-height: 200px;
  }
  #developpement .stack .stack-layer .stack-text p strong,
  #developpement .stack .stack-layer[active="true"] .stack-text p strong {
    background: #EBEBF4;
  }
  #a-propos {
    display: block;
  }
  #a-propos .icon {
    margin: auto;
  }
  #projets .slider {
    padding-top: 20px;
  }
  #projets .slider .slider-nav {
    display: none;
  }
  #projets .slider .slider-item {
    position: relative;
    z-index: 1;
    display: block;
    padding: 20px;
    opacity: 1;
  }
  #projets .slider .slider-item .icon::before {
    transform: scale(1);
  }
  #projets .slider .slider-item .icon img {
    width: 200px;
    height: 200px;
  }
  #projets .slider .slider-item .text {
    padding: 0;
  }
}
@media screen and (max-width: 576px) {
  h2 {
    text-align: center;
  }
  section {
    padding: 100px 20px;
  }
  #accueil {
    padding: 0 20px;
  }
  #accueil .icons .icon-concept,
  #accueil .icons .icon-interface {
    display: none;
  }
  #accueil .icons .icon-browser {
    width: 330px;
  }
  #developpement .text {
    padding: 30px 0;
  }
  #developpement .stack {
    padding: 20px 10px;
  }
  #developpement .stack::before {
    display: none;
  }
  #developpement .stack .stack-layer .stack-text {
    padding: 0 20px;
  }
  #projets .slider .slider-item {
    padding: 20px 10px;
  }
  #technologies .techno-grid {
    grid-template-columns: repeat(1, 1fr);
  }
  #a-propos .text {
    padding: 30px 20px;
  }
  #projets h2 {
    padding: 0;
  }
}
