@charset "UTF-8";
/*------------------------------------*\
  #MODULES
\*------------------------------------*/
/*------------------------------------*\
  #COLORS
\*------------------------------------*/
/*------------------------------------*\
  #BREAKPOINTS
\*------------------------------------*/
/*------------------------------------*\
  #FONTS
\*------------------------------------*/
.ts-title, .title, .loader .loading_text {
  font-family: "Ferrite";
  font-weight: 700; }

.ts-subtitle, .subtitle,
.main h2, .ts-btn, .interface {
  font-family: "Ferrite"; }

.ts-body, figcaption,
.main p,
.cover-infos, .ts-small, .ts-label, body {
  font-family: "JB Mono", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; }

/*------------------------------------*\
    #TYPESIZE/SCALE
\*------------------------------------*/
.ts-small, .ts-label, figcaption {
  font-size: 0.778em;
  line-height: 1.4; }

.ts-body, figcaption,
.main p,
.cover-infos, .ts-btn, .interface {
  font-size: 1em;
  line-height: 1.4; }

.ts-subtitle, .subtitle,
.main h2 {
  font-size: 1.222em;
  line-height: 0.8em; }

.ts-title, .title, .loader .loading_text {
  font-size: 4em;
  line-height: 0.8em; }

/*------------------------------------*\
  #SPACING
\*------------------------------------*/
/*------------------------------------*\
  #BORDERS WIDTH
\*------------------------------------*/
/*------------------------------------*\
  reset
\*------------------------------------*/
*, *:before, *:after {
  box-sizing: border-box; }

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

table {
  border-collapse: collapse;
  border-spacing: 0; }

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle; }

q, blockquote {
  quotes: none; }

q:before, q:after, blockquote:before, blockquote:after {
  content: "";
  content: none; }

a img {
  border: none; }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
  display: block; }

button, input {
  line-height: normal; }

button, input, select, textarea {
  font-size: 100%;
  margin: 0;
  vertical-align: baseline;
  *vertical-align: middle; }

button, input[type="button"], input[type="reset"], input[type="submit"] {
  cursor: pointer;
  *overflow: visible; }

button::-moz-focus-inner, input::-moz-focus-inner {
  border: 0;
  padding: 0; }

textarea {
  overflow: auto;
  vertical-align: top;
  resize: vertical; }

/* font declaration */
@font-face {
  font-family: "Ferrite";
  font-weight: 700;
  src: url("./fonts/ferritecoredx-display.woff") format("woff"), url("./fonts/ferritecoredx-display.woff2") format("woff2"); }

@font-face {
  font-family: "Ferrite";
  font-weight: 500;
  src: url("./fonts/ferritecoredx-medium.woff") format("woff"), url("./fonts/ferritecoredx-medium.woff2") format("woff2"); }

@font-face {
  font-family: "Ferrite";
  font-weight: 400;
  src: url("./fonts/ferritecoredx-regular.woff") format("woff"), url("./fonts/ferritecoredx-regular.woff2") format("woff2"); }

@font-face {
  font-family: "JB Mono";
  font-weight: 400;
  src: url("./fonts/JetBrainsMono-Light.woff") format("woff"), url("./fonts/JetBrainsMono-Light.woff2") format("woff2"); }

@font-face {
  font-family: "JB Mono";
  font-weight: 500;
  src: url("./fonts/JetBrainsMono-Bold.woff") format("woff"), url("./fonts/JetBrainsMono-Bold.woff2") format("woff2"); }

/*------------------------------------*\
  mixins
\*------------------------------------*/
/*------------------------------------*\
  text-styles
\*------------------------------------*/
.ts-title, .title, .loader .loading_text {
  color: #FF0000;
  line-height: 0.8em; }

.ts-subtitle, .subtitle,
.main h2 {
  background: #FF0000;
  color: #201919; }

.ts-label {
  text-transform: uppercase;
  letter-spacing: .1em; }

.ts-btn, .interface {
  font-weight: 500; }

.ts-link, a,
a:link,
a:visited,
a:focus,
a:hover,
a:active {
  color: #FF0000;
  text-decoration: none;
  border-bottom: 1px solid #FF0000; }
  .ts-link:hover,
  a:hover {
    color: #FF0000;
    text-decoration: none; }

/*------------------------------------*\
  medias
\*------------------------------------*/
img, video, object {
  max-width: 100%;
  height: auto; }

img {
  display: block; }

img.image-lazy {
  width: 100%; }
  img.image-lazy:not(.lazyloaded) {
    opacity: 0;
    transition: opacity 1s ease-in-out; }
  img.image-lazy.lazyloaded {
    opacity: 1;
    transition: opacity 1s ease-in-out; }

figcaption {
  margin-top: 0.556rem; }

.embed-container {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  max-width: 100%; }

.embed-container iframe,
.embed-container object,
.embed-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

/*------------------------------------*\
  misc
\*------------------------------------*/
.hidden {
  display: none !important; }

@media (max-width: 767px) {
  .hidden-small {
    display: none !important; } }

@media (min-width: 768px) {
  .hidden-large {
    display: none !important; } }

.nav__list {
  list-style: none; }

.clear::after {
  display: block;
  content: "";
  clear: both; }

/*------------------------------------*\
  global styles
\*------------------------------------*/
.wrapper {
  min-height: 100vh;
  display: flex;
  flex-direction: column; }
  .wrapper .footer {
    margin-top: auto; }

.classic .content, .header {
  width: 100%;
  max-width: 1920px;
  margin-left: auto;
  margin-right: auto; }

.index,
.detail {
  padding-top: 2.222rem;
  padding-bottom: 2.222rem;
  border-bottom: 1px solid #CCCCCC; }

/* typographic styles */
.main b {
  font-weight: 500; }

.main h2 {
  font-weight: 400;
  line-height: 1.3;
  font-size: 2.3rem;
  padding-top: 50px;
  padding-bottom: 40px; }

.main p {
  line-height: 1.5em; }

.intro,
.ending {
  font-style: italic; }

@media screen {
  .classic section {
    background-color: #201919; }
  .three section {
    background-color: rgba(32, 25, 25, 0.8); } }

@media screen and (max-width: 1249px) {
  body {
    overflow-x: hidden; }
  .cover-infos {
    font-size: 0.8rem; }
  .subtitle {
    font-size: 1em; }
  .main h2 {
    font-size: 1.6em; } }

@media screen and (min-width: 1250px) {
  body {
    font-size: 18px; }
  .content {
    position: relative; }
  .main h2 {
    background: linear-gradient(90deg, #FF0000 40%, transparent 70%);
    background-repeat: no-repeat; }
  .main p {
    display: block;
    font-size: 1em;
    text-indent: 100px;
    line-height: 1.5em; }
  .main p:first-of-type {
    text-indent: 0; }
  .main figure {
    text-align: center; }
  .main figure figcaption {
    display: block;
    background: #201919; } }

@media screen {
  .main {
    box-sizing: border-box;
    margin: 0 auto;
    width: 100%;
    overflow: hidden;
    padding-bottom: 100vh; }
  .subtitle {
    padding: 0.6em 20px; }
  .main section {
    padding-top: 50px;
    padding-bottom: 100px; }
  .main figure {
    width: 100%;
    margin: calc(20px * 2) auto;
    text-align: center; }
  .main figure figcaption {
    margin-top: 0.4rem; }
  .main figure img {
    max-height: 400px;
    max-width: 100%; }
  .ending {
    margin-top: 1.4rem; } }

@media screen and (max-width: 1249px) {
  .main figure {
    max-width: 60ch; }
  .main figure img {
    margin: 0 auto; }
  .main figure figcaption {
    padding: 0 20px; }
  .main p {
    padding: 0 20px;
    max-width: 70ch;
    margin: 0 auto;
    margin-top: 1.2rem; }
  .main h2 {
    padding: 50px 20px 40px; }
  .main section {
    padding-top: 1.2rem;
    padding-bottom: 3.6rem; } }

@media screen and (min-width: 1250px) {
  .content {
    position: relative;
    margin: 0 auto; }
  .main h2 {
    padding: 50px 50% 40px calc(5% + 20px);
    margin-left: calc(0px - 20px); }
  .main p {
    display: block;
    box-sizing: border-box;
    padding-left: 10%;
    padding-right: 5%; }
  .main figure {
    display: block;
    position: absolute;
    right: 10%;
    transform: translateY(-100%);
    box-sizing: border-box;
    max-width: 30%;
    width: auto; }
  .main .fig--alt {
    transform: translateY(0); }
  .main figure img {
    object-fit: contain;
    object-position: left; }
  .main figure figcaption {
    box-sizing: border-box;
    position: absolute;
    right: 0;
    width: 100%;
    margin: 0 0 auto auto;
    padding: 0.6rem; }
  section {
    max-width: calc(80ch + 15%); }
  section:first-of-type p:first-child {
    padding-top: 3vw; } }

.header {
  text-align: right;
  background: linear-gradient(transparent, var(--bg-color) 60%, var(--bg-color) 80%, transparent);
  background: linear-gradient(transparent 25%, rgba(32, 25, 25, 0.7) 50%, #201919 80%);
  background-size: 100% 66%;
  background-repeat: no-repeat;
  background-position: bottom;
  position: relative;
  box-sizing: border-box;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  text-align: right;
  padding-bottom: 10vh;
  margin: 0 auto; }

.three .header {
  background-image: linear-gradient(transparent 25%, rgba(32, 25, 25, 0.6) 50%, rgba(32, 25, 25, 0.8) 80%); }

.subtitle {
  margin-top: 1.2rem; }

.cover-infos {
  margin: 1.2rem 0 0 0;
  /* text-align: left; */ }

@media screen and (max-width: 1249px) {
  .header {
    overflow-x: hidden;
    height: 100vh;
    /* min-height:100vh; */
    background-color: rgba(32, 25, 25, 0);
    /* padding:75vh 0 0 0; */
    background-image: linear-gradient(rgba(32, 25, 25, 0), rgba(32, 25, 25, 0.9) 60%, #201919 90%);
    padding-bottom: 5vh; }
  .three .header {
    background-image: linear-gradient(rgba(32, 25, 25, 0), rgba(32, 25, 25, 0.6) 60%, rgba(32, 25, 25, 0.8) 90%); }
  .title {
    font-size: 16vw; }
  .cover-infos {
    margin-left: 20px; } }

@media screen and (min-width: 1249px) {
  .title {
    font-size: 10rem;
    padding-left: 10%; }
  .header::after {
    content: '';
    position: absolute;
    bottom: -200px;
    height: 200px;
    width: 100%;
    background: linear-gradient(#201919 50%, transparent);
    background-repeat: no-repeat; }
  .three .header::after {
    display: none; }
  .subtitle {
    background: linear-gradient(-90deg, #FF0000 40%, transparent 70%);
    padding: auto calc(10% + 20px);
    padding-right: 20px; }
  .cover-infos {
    margin-right: 20px; } }

@keyframes bgAnim {
  0% {
    background-position-y: 30%; }
  100% {
    background-position-y: 100%; } }

@keyframes flicker {
  0% {
    opacity: 30%;
    border-radius: 100%; }
  50% {
    border-radius: 40%; }
  100% {
    opacity: 100%;
    border-radius: 100%; } }

@keyframes zoomIn {
  0% {
    width: 12%;
    height: 12%; }
  50% {
    border-radius: 0%; }
  75% {
    border-radius: 50%; }
  100% {
    width: 8%;
    height: 8%;
    border-radius: 0%; } }

@keyframes flicker2 {
  0% {
    box-shadow: #FF0000 0 0 10vw;
    border-color: #CCCCCC;
    background: transparent;
    transform: scale(1); }
  33% {
    background: transparent; }
  100% {
    box-shadow: #00FFFF 0 0 0px;
    border-color: #00FFFF;
    background: #201919;
    transform: scale(2); } }

@keyframes bgRadialAnim {
  0% {
    background-size: 80%; }
  100% {
    background-size: 100%; } }

@keyframes bgMove {
  0% {
    left: 15%; }
  100% {
    left: 40%; } }

@keyframes bgMoveAlt {
  0% {
    left: 30%; }
  100% {
    left: 50%; } }

@keyframes move {
  0% {
    left: 20%;
    transform: scaleX(1); }
  100% {
    left: 80%;
    transform: scaleX(2); } }

@keyframes move2 {
  0% {
    top: 40%;
    left: -20%; }
  100% {
    top: 120%;
    left: 80%; } }

@keyframes move3 {
  0% {
    top: -50%;
    left: -50%; }
  100% {
    top: 80%;
    left: 150%; } }

@keyframes move4 {
  0% {
    top: 30%;
    left: 70%; }
  40% {
    top: 80%;
    left: 40%; }
  60% {
    top: 60%;
    left: 20%; }
  100% {
    top: 10%;
    left: 60%; } }

@keyframes scale {
  0% {
    transform: scale(0.95) translate(-50%, -50%); }
  100% {
    transform: scale(1.1) translate(-50%, -50%); } }

.classic .illustration {
  position: fixed !important; }

.illustration {
  z-index: -1;
  overflow: hidden;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100%;
  max-height: 100vh;
  background: var(--bg-color); }

.illustration .i {
  position: absolute;
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 1px;
  border: 3px solid white;
  transform: scale(1);
  transition: all 12s ease-in-out; }

.illustration--1 .i {
  width: 1px;
  height: 1px;
  border: 1px solid white;
  animation: move3 120s infinite linear;
  transform: translate(-50%, -50%); }
  .illustration--1 .i::after, .illustration--1 .i::before {
    content: '';
    width: 1px;
    height: 1px;
    position: absolute;
    transform: translate(-20vw, -30vh); }

.illustration--1 .i:nth-child(3n+1) {
  animation: move4 60s infinite linear alternate-reverse;
  transform: translate(-10vw, -10vh); }

.illustration--1 .i:nth-child(5n) {
  width: 20px;
  height: 20px; }

.illustration--1 .i:nth-child(2n+5) {
  animation: move2 40s infinite alternate-reverse; }

.illustration--1 .i:nth-child(7n+1) {
  transform: translate(10vw, -5vh);
  background: white; }

.illustration--1 .i:nth-child(4n+1) {
  transform: translate(-10vw, -10vh);
  animation-direction: alternate-reverse; }

.illustration--1 .i:nth-child(8n+1) {
  transform: translate(10vw, 0vh);
  animation-duration: 10s; }

.illustration--1 .i:nth-child(12n) {
  animation: move 30s infinite ease-in-out alternate-reverse; }

.illustration--1 .i:nth-child(6n+1) {
  width: 20%;
  border: 2px solid white;
  animation: move 20s infinite ease-in-out alternate; }

.illustration--1 .i:nth-child(13n) {
  animation-duration: 10s; }

.illustration--1 .i::after {
  /* bottom:-150%;
    left: 50%; */ }

.illustration--1 .i.round {
  height: 30vh;
  width: 30vh;
  border-radius: 50%;
  mix-blend-mode: exclusion;
  background-color: white;
  animation: scale 6s infinite alternate ease-in-out; }

.illustration--1 .i.round:first-child {
  top: 80% !important;
  left: 85% !important;
  border: 4px solid white;
  background-color: #201919; }

.illustration--1 .i.round:last-child {
  top: 20% !important;
  left: 15% !important;
  animation: scale 6s infinite alternate-reverse ease-in-out; }

.illustration--2 .i {
  opacity: 0.5;
  border: none;
  width: 12%;
  height: 12%;
  top: 40%;
  left: 70%;
  border: 10px solid #cccccc;
  mix-blend-mode: exclusion;
  animation: zoomIn linear 20s infinite alternate;
  border-radius: 0%;
  transform: translate(-50%, -50%);
  animation-delay: 1s; }

.illustration--2 .i1 {
  transform: translate(-50%, -50%) scale(0.05);
  animation-delay: 1s; }

.illustration--2 .i2 {
  transform: translate(-50%, -50%) scale(0.1);
  animation-delay: 2s; }

.illustration--2 .i3 {
  transform: translate(-50%, -50%) scale(0.2);
  animation-delay: 3s; }

.illustration--2 .i4 {
  transform: translate(-50%, -50%) scale(0.3);
  animation-delay: 4s; }

.illustration--2 .i5 {
  transform: translate(-50%, -50%) scale(0.4);
  animation-delay: 5s; }

.illustration--2 .i6 {
  transform: translate(-50%, -50%) scale(0.6);
  animation-delay: 6s; }

.illustration--2 .i7 {
  transform: translate(-50%, -50%) scale(0.8);
  animation-delay: 7s; }

.illustration--2 .i8 {
  transform: translate(-50%, -50%) scale(1.2);
  animation-delay: 8s; }

.illustration--2 .i9 {
  transform: translate(-50%, -50%) scale(1.6);
  animation-delay: 9s; }

.illustration--2 .i10 {
  transform: translate(-50%, -50%) scale(2.4);
  animation-delay: 10s; }

.illustration--2 .i11 {
  transform: translate(-50%, -50%) scale(3.2);
  animation-delay: 11s; }

.illustration--2 .i12 {
  transform: translate(-50%, -50%) scale(4.8);
  animation-delay: 12s; }

.illustration--2 .i13 {
  transform: translate(-50%, -50%) scale(6.4);
  animation-delay: 13s; }

.illustration--2 .i14 {
  transform: translate(-50%, -50%) scale(9.6);
  animation-delay: 14s; }

.illustration--2 .i15 {
  transform: translate(-50%, -50%) scale(12.8);
  animation-delay: 15s; }

.illustration--2 .i0 {
  transform: translate(-50%, -50%) scale(19.2);
  animation-delay: 16s; }

.illustration--3 .i {
  width: 20%;
  height: 2%;
  /* mix-blend-mode: exclusion; */
  /* border-radius: 50%; */
  /* border-radius: 20%; */
  transform: translate(-50%, -50%);
  border: 0px solid transparent; }

.illustration--3 .i0 {
  top: none;
  bottom: 2%;
  width: 15%;
  height: 25%;
  right: 0%;
  border: 0;
  background: #CCCCCC;
  animation: flicker infinite linear 0.45s alternate;
  border-radius: 50%;
  /* background:radial-gradient(#CCCCCC 50%,transparent 60%);
    animation: bgAnim linear infinite alternate 0.5s; */
  /* background-size: 2% 2%; */ }

.illustration--3 .i1 {
  top: none;
  bottom: -10%;
  height: 40%;
  width: 15%;
  right: -2%;
  border: 0;
  background: #CCCCCC;
  animation: flicker infinite ease-in-out 0.6s alternate;
  border-radius: 50%;
  /* background-size: 2% 2%; */ }

.illustration--3 .i2 {
  top: none;
  bottom: -5%;
  height: 25%;
  width: 20%;
  right: 0%;
  border: 0;
  background: #CCCCCC;
  animation: flicker infinite ease-in-out 0.4s alternate;
  border-radius: 50%;
  /* background-size: 2% 2%; */ }

.illustration--3 .i3 {
  top: none;
  bottom: 0%;
  height: 15%;
  width: 25%;
  right: -5%;
  border: 0;
  background: #CCCCCC;
  animation: flicker infinite linear 0.5s alternate;
  border-radius: 50%;
  /* background-size: 2% 2%; */ }

.illustration--3 .i4 {
  top: 10%;
  bottom: none;
  height: 24%;
  width: 8%;
  background: #FF0000;
  border: none;
  border-radius: 50%;
  right: 5%;
  transform: rotate(-80deg); }

.illustration--3 .i5 {
  top: 52%;
  bottom: none;
  height: 18%;
  width: 7%;
  border: none;
  background: linear-gradient(90deg, #333333 0%, #CCCCCC 20%, #CCCCCC 60%, #333333 110%);
  border-radius: 30%;
  right: 29%;
  transform: rotate(-90deg) skewX(10deg); }

.illustration--3 .i6 {
  top: 48%;
  bottom: none;
  height: 14%;
  width: 5%;
  border: none;
  background: linear-gradient(-90deg, #CCCCCC 60%, #333333 100%);
  border-radius: 50%;
  right: 34%;
  transform: skew(30deg); }

.illustration--3 .i8 {
  top: 46%;
  bottom: none;
  height: 11%;
  width: 2.7%;
  border: none;
  background: linear-gradient(#CCCCCC 50%, #333333 90%);
  border-radius: 40%;
  right: 38%;
  transform: rotate(40deg);
  /* transform:skew(-35deg); */ }

.illustration--3 .i7 {
  top: 40%;
  bottom: none;
  left: none;
  height: 80%;
  width: 70%;
  /* background: var(--alt-color);*/
  border: none;
  background: radial-gradient(#333333, transparent, #333333, transparent);
  animation: bgRadialAnim 2s linear infinite alternate;
  border-radius: 40%;
  right: -20%;
  z-index: -1; }

.illustration--3 .i9 {
  top: 40%;
  bottom: none;
  left: none;
  height: 100%;
  width: 100%;
  /* background: var(--alt-color);*/
  border: none;
  background: radial-gradient(#333333, transparent, #333333, transparent);
  animation: bgRadialAnim 2s linear infinite alternate;
  border-radius: 40%;
  right: -20%;
  z-index: -1; }

.illustration--3 .i10 {
  top: 50%;
  bottom: none;
  left: none;
  height: 100%;
  width: 100%;
  border: none;
  background: radial-gradient(transparent, #201919 110%);
  background-size: 10px 10px;
  right: -50%;
  z-index: 3; }

.illustration--3 .i11 {
  top: 62%;
  bottom: none;
  left: none;
  height: 20%;
  width: 1.3%;
  right: 33%;
  border: none;
  border-radius: 50%;
  background: linear-gradient(-90deg, #CCCCCC, transparent 80%);
  z-index: 0;
  transform: rotate(-10deg); }

.illustration--3 .i12 {
  top: 65%;
  bottom: none;
  left: none;
  height: 6%;
  width: 1.2%;
  right: 37%;
  border: none;
  border-radius: 50%;
  background: linear-gradient(transparent, #CCCCCC);
  z-index: 0;
  transform: rotate(40deg); }

.illustration--3 .i13 {
  top: 69.5%;
  bottom: none;
  left: none;
  height: 6%;
  width: 1.2%;
  right: 37%;
  border: none;
  border-radius: 50%;
  background: linear-gradient(90deg, transparent, #CCCCCC);
  z-index: 0;
  transform: rotate(-40deg); }

.illustration--3 .i14 {
  top: 45%;
  bottom: none;
  left: none;
  height: 32%;
  width: 16%;
  right: 14%;
  border: none;
  background: radial-gradient(black 10%, transparent 70%);
  z-index: 0;
  /* transform:rotate(-40deg); */ }

.illustration--3 .i15 {
  top: 50%;
  right: -50%;
  /* left:5%; */
  height: 100%;
  width: 100%;
  border: none;
  background: linear-gradient(90deg, #FF0000, transparent 70%);
  animation: bgMove 5s ease-in-out infinite alternate;
  z-index: 0;
  /* transform:rotate(-40deg); */ }

@media screen and (max-width: 1249px) {
  .illustration--3 .i0 {
    width: 30%;
    right: -10%;
    bottom: 0%; }
  .illustration--3 .i1 {
    width: 30%;
    right: -5%; }
  .illustration--3 .i2 {
    width: 40%;
    right: -5%; }
  .illustration--3 .i3 {
    width: 60%;
    right: -20%; }
  .illustration--3 .i4 {
    width: 25%;
    height: 20%;
    right: 15%;
    top: 5%; }
  .illustration--3 .i5 {
    width: 25%;
    height: 20%;
    right: 48%;
    z-index: 2; }
  .illustration--3 .i6 {
    top: 65%;
    height: 18%;
    width: 4%;
    right: 67%;
    transform: skew(15deg);
    z-index: 2; }
  .illustration--3 .i7 {
    top: 40%;
    right: 0%; }
  .illustration--3 .i8 {
    top: 61%;
    right: 80%;
    z-index: 2; }
  .illustration--3 .i9 {
    top: 40%;
    bottom: none;
    left: none;
    height: 100%;
    width: 100%;
    /* background: var(--alt-color);*/
    border: none;
    background: radial-gradient(#333333, transparent, #333333, transparent);
    animation: bgRadialAnim 2s linear infinite alternate;
    border-radius: 40%;
    right: -20%;
    z-index: -1; }
  .illustration--3 .i10 {
    top: 50%;
    bottom: none;
    left: none;
    height: 100%;
    width: 100%;
    border: none;
    background: radial-gradient(transparent, #201919 110%);
    background-size: 10px 10px;
    right: -50%;
    z-index: 3; }
  .illustration--3 .i11 {
    top: 70%;
    bottom: none;
    left: none;
    height: 10%;
    width: 4%;
    right: 80%;
    border: none;
    border-radius: 50%;
    background: linear-gradient(-90deg, #CCCCCC, transparent 80%);
    z-index: 1;
    transform: rotate(-30deg); }
  .illustration--3 .i12 {
    top: 50%;
    bottom: none;
    left: none;
    height: 6%;
    width: 10%;
    right: 82%;
    z-index: 2;
    transform: rotate(30deg); }
  .illustration--3 .i13 {
    top: 46%;
    height: 15%;
    width: 15%;
    right: 72%;
    z-index: 2;
    transform: rotate(-30deg); }
  .illustration--3 .i14 {
    top: 45%;
    bottom: none;
    left: none;
    height: 25%;
    width: 42%;
    right: 14%;
    border: none;
    z-index: 2;
    /* transform:rotate(-40deg); */ }
  .illustration--3 .i15 {
    top: 50%;
    right: -50%;
    /* left:5%; */
    height: 110%;
    width: 100%;
    border: none;
    background: linear-gradient(90deg, #FF0000, transparent 70%);
    z-index: 0;
    animation: bgMoveAlt 10s ease-in-out infinite alternate;
    /* transform:rotate(-40deg); */ } }

/* .i:nth-child(n){

} */
.illustration--4 .i {
  width: 30%;
  background-color: #201919;
  height: 70%;
  border-width: 5px; }

.illustration--4 .i0,
.illustration--4 .i1,
.illustration--4 .i2,
.illustration--4 .i3 {
  width: 3px;
  height: 3px;
  background: #cccccc; }

.illustration--4 .i0 {
  animation: move3 100s alternate infinite; }

.illustration--4 .i1 {
  animation: move 10s alternate infinite; }

.illustration--4 .i2 {
  top: 10%;
  left: 20%;
  animation: move2 10s alternate infinite; }

.illustration--4 .i3 {
  animation: move4 100s alternate infinite; }

.illustration--4 .i3 {
  left: 50%;
  top: 20%; }

.illustration--4 .i4 {
  width: 7%;
  height: 30%;
  top: 88%;
  left: 45%; }

.illustration--4 .i5,
.illustration--4 .i6,
.illustration--4 .i7,
.illustration--4 .i8,
.illustration--4 .i9,
.illustration--4 .i10,
.illustration--4 .i11,
.illustration--4 .i12,
.illustration--4 .i13,
.illustration--4 .i14,
.illustration--4 .i15 {
  animation: flicker2 25s infinite ease-in-out alternate; }

.illustration--4 .i5 {
  width: 7%;
  height: 30%;
  top: 88%;
  left: 45%; }

.illustration--4 .i6 {
  width: 7%;
  height: 30%;
  top: 34%;
  left: 45%; }

.illustration--4 .i7 {
  width: 10%;
  height: 25%;
  top: 41%;
  left: 40%; }

.illustration--4 .i8 {
  width: 13%;
  height: 40%;
  top: 35%;
  left: 65%;
  animation-duration: 18s;
  animation-delay: 10s; }

.illustration--4 .i9 {
  width: 13%;
  height: 50%;
  top: 20%;
  left: 28%;
  animation-duration: 26s;
  animation-delay: 8s; }

.illustration--4 .i10 {
  width: 20%;
  height: 80%;
  top: 10%;
  left: 70%;
  animation-duration: 19s;
  animation-delay: 12s; }

.illustration--4 .i11 {
  width: 13%;
  height: 30%;
  top: 45%;
  left: 25%;
  animation-duration: 24s;
  animation-delay: 5s; }

.illustration--4 .i12 {
  width: 10%;
  height: 20%;
  top: 45%;
  left: 51%;
  animation-duration: 24s;
  animation-delay: 13s; }

.illustration--4 .i13 {
  width: 22%;
  height: 60%;
  top: 30%;
  left: 10%;
  animation-duration: 31s;
  animation-delay: 7s; }

.illustration--4 .i14 {
  width: 40%;
  height: 90%;
  top: 20%;
  left: 80%;
  animation-duration: 14s;
  animation-delay: 3s; }

.illustration--4 .i15 {
  height: 90%;
  top: 23%;
  left: -10%;
  animation-duration: 20s;
  animation-delay: 5s; }

#scene-container {
  background: #201919;
  position: fixed;
  display: none;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  pointer-events: none; }

#scene, #scene-content {
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh; }

.three {
  max-height: 100vh; }

.three .interface .actions .btn--three {
  display: none; }

.three #main {
  display: none; }

.three #scene-container {
  display: block; }

.three .book {
  width: 100vw;
  max-height: 100vh;
  overflow: hidden; }

.classic {
  background: #201919; }

.classic #scene-container {
  display: none !important; }

.classic .interface .actions .btn--classic {
  display: none !important; }

.classic .interface .actions .btn--back {
  display: none !important; }

.classic .interface .actions .btn--read {
  display: none !important; }

.classic .actions {
  opacity: 0.2; }

.interface {
  position: fixed;
  display: flex;
  align-items: center;
  flex-direction: column;
  pointer-events: none;
  z-index: 50;
  height: 100%;
  width: 100%;
  max-height: 100vh;
  top: 0;
  color: #FF0000; }
  .interface .actions {
    opacity: 0.3;
    transition: opacity .5s ease-in;
    display: flex;
    justify-content: space-around;
    box-sizing: border-box;
    padding: 10px 10px 20px;
    position: absolute;
    right: 2%;
    bottom: 20px;
    text-align: right; }
    .interface .actions:hover {
      opacity: 1;
      transition-timing-function: ease-out; }
    .interface .actions .btn {
      border: 3px solid red;
      margin-top: -3px;
      box-sizing: border-box;
      pointer-events: all;
      cursor: pointer;
      display: block;
      padding: 0.6em 1.2em;
      background: black; }
      .interface .actions .btn:hover {
        background: #FF0000;
        color: black; }
      .interface .actions .btn.btn--menu {
        display: none; }

@media screen and (max-width: 799px) {
  .interface .actions {
    opacity: 1;
    justify-content: flex-end;
    box-sizing: border-box;
    flex-direction: column-reverse;
    left: 50%;
    bottom: 20px;
    width: calc(45%);
    transform: translate(-50%, 0%);
    padding: 0;
    overflow: hidden;
    padding-left: 3px;
    padding-top: 3px; }
    .interface .actions.menu--open .menu {
      transform: translateY(0%);
      transition-timing-function: ease-in; }
    .interface .actions.menu--open .btn--menu {
      background: #FF0000 !important;
      color: #201919 !important; }
    .interface .actions .menu {
      z-index: -1;
      width: calc(100%);
      height: auto;
      transition: all 0.3s;
      transform: translateY(100%);
      transition-timing-function: ease-out; }
    .interface .actions .btn {
      background: black;
      flex: 1;
      text-align: center;
      font-size: 1rem;
      user-select: none;
      margin-left: -3px; }
      .interface .actions .btn:hover {
        color: #FF0000;
        background: black; }
      .interface .actions .btn.btn--menu {
        display: block; } }

.loader {
  display: none;
  opacity: 0;
  position: absolute;
  z-index: 100;
  width: 100%;
  height: 100%;
  background: black;
  pointer-events: none;
  font-weight: 400;
  animation: loader 5s;
  animation-iteration-count: 1; }
  .loader .loader-ctn {
    text-align: center;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%); }
  .loader .loading_text {
    line-height: 1.1em;
    font-size: 3rem;
    text-transform: uppercase;
    box-sizing: border-box;
    border: 0.16em solid red;
    padding: 20px 40px 30px;
    margin-bottom: 1.2rem;
    animation: loading 0.5s alternate infinite ease-in-out; }

@media screen and (max-width: 799px) {
  .loader .loading_text {
    font-size: 2.5rem; } }

@keyframes loading {
  0% {
    background: #ff0000;
    color: black;
    border-color: black; }
  33% {
    background: #ff0000;
    color: black;
    border-color: black; }
  66% {
    background: black;
    color: #ff0000;
    border-color: #ff0000; }
  100% {
    background: black;
    color: #ff0000;
    border-color: #ff0000; } }

@keyframes loader {
  0% {
    display: block;
    opacity: 1; }
  99% {
    opacity: 1; }
  100% {
    opacity: 0;
    display: none; } }

@keyframes loading2 {
  0% {
    background: #AA0000; }
  100% {
    background: #440000; } }

/*------------------------------------*\
  #BASE-STYLES
\*------------------------------------*/
html {
  font-size: 18px; }
  @media (max-width: 767px) {
    html {
      font-size: 16px; } }

body {
  /* mobile viewport bug fix */
  color: #CCCCCC; }
  body ::-moz-selection {
    background-color: rgba(255, 0, 0, 0.6);
    color: #CCCCCC; }
  body ::selection {
    background-color: rgba(255, 0, 0, 0.6);
    color: #CCCCCC; }

@media screen {
  body {
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    background: black;
    width: 100%;
    overflow-x: hidden;
    max-width: 100vw;
    padding-bottom: 100vh; } }

/*------------------------------------*\
  print style
\*------------------------------------*/
@media print {
  html {
    font-size: 12px; }
  /**** variable qui nous permet de connaitre la hauteur de lâ€™empagement, la â€œpage areaâ€  */
  /**** utilise les propriÃ©tÃ©s personnalisÃ©es CSS gÃ©nÃ©rÃ©es par paged.js  */
  .pagedjs_page {
    --pagedjs-pagearea-height: calc(var(--pagedjs-height) - var(--pagedjs-margin-top) - var(--pagedjs-margin-bottom) ); }
  @page {
    /**** Format du document imprimé : A5  */
    size: 148mm 210mm;
    margin: 0;
    /**** Marges hautes (blanc de tete) et basses (blanc de pied) pour toutes les pages  */ }
  @page text {
    margin-bottom: 2cm;
    margin-top: 1.5cm; }
  @page text:left {
    /**** Pages de gauche & petit fond = 30px / grand fond = 90px  */
    margin-right: 1.5cm;
    margin-left: 2cm; }
  @page text:right {
    /**** Pages de gauche & petit fond = 30px / grand fond = 90px  */
    margin-right: 2cm;
    margin-left: 1.5cm; }
  @page half-title {
    margin-bottom: 2cm !important;
    margin-top: 1.5cm !important;
    :right {
      margin-right: 2cm;
      margin-left: 1.5cm; }
    :left {
      margin-right: 1.5cm;
      margin-left: 2cm; } }
  /**** établir des marges provoque la création de 'margin-boxes'  */
  .pagedjs_pagebox > * {
    /**** Décommenter la ligne ci-dessous pour les visualiser */ }
  body {
    font-family: Georgia, Times, Times New Roman, serif;
    font-size: 12pt;
    line-height: 14pt;
    color: #000000; }
  .half-title {
    break-before: right;
    padding: 0;
    page: half-title;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: var(--pagedjs-pagearea-height); }
    .half-title header h2 {
      font-weight: 500;
      padding: 0;
      margin: 0;
      background: none;
      color: #201919;
      font-size: 24pt;
      line-height: 28pt;
      margin: 0;
      font-weight: 400;
      margin-bottom: 14pt; }
    .half-title p {
      text-indent: 0 !important; }
  .colophon {
    font-size: 8pt;
    line-height: 1.2em;
    max-width: 50ch; }
    .colophon a {
      display: inline;
      word-break: break-all;
      border: none; }
    .colophon p {
      display: inline; }
    .colophon:last-child {
      margin-bottom: 0; }
  .main section {
    padding: 0; }
  .main .text:not(.half-title) h2 {
    break-before: page;
    padding: 0;
    margin: 0;
    background: none;
    margin-top: -0.2em;
    margin-bottom: 14pt; }
  .main .text h2 {
    font-size: 24pt;
    line-height: 1.2em; }
  .main section:not(.half-title).first {
    padding-top: 50%;
    break-before: right; }
  .main section:not(.half-title) h2 {
    string-set: chaptertitle content(text); }
  .main p {
    text-indent: 1.5cm;
    letter-spacing: -0.03em;
    padding: 0;
    margin: 0; }
  .main .illustration {
    position: static;
    break-before: left;
    width: 100%;
    height: 100%; }
  .main .intertitre {
    width: 100%;
    height: 100%;
    margin: 0; }
    .main .intertitre img {
      top: 0;
      left: 0;
      width: 151mm;
      height: 216mm;
      object-fit: contain;
      object-position: top;
      z-index: 2;
      padding: 0;
      margin: 0; }
    .main .intertitre h2 {
      position: absolute;
      background: none;
      font-size: 50pt;
      line-height: 1em;
      color: white;
      font-weight: 500;
      padding: 0;
      margin: 0;
      margin-top: 50%;
      margin-left: 1cm; }
  .intertitre--left {
    page: intertitre-left;
    break-before: left; }
  .intertitre--right {
    page: intertitre-right;
    break-before: right; }
  @page intertitre-left {
    :left {
      margin: -3mm !important; } }
  @page intertitre-right {
    :right {
      margin: -3mm !important; } }
  .text {
    page: text;
    /**** affecte Ã  la <section class="text">  le gabarit de page text */
    padding: 0;
    font-size: 14px; }
  #booktitle {
    display: none;
    /**** un paragraphe, id="booktitle", permet de dÃ©finir un titre courant */
    /**** lâ€™utilisation de position: running(identifiant), donne la possibilitÃ© dâ€™utiliser â€œidentifiantâ€ dans une margin-box */
    position: running(booktitle); }
  .pagedjs_margin-content {
    white-space: nowrap;
    /**** permet au contenu des margin-box de rester sur une seule ligne */
    font-size: .85em;
    font-family: "JB Mono", sans-serif; }
  @page text:left {
    @bottom-left {
      content: counter(page); }
    /* running header (book title)  */
    @bottom-right {
      content: element(booktitle); } }
  @page text:right {
    @bottom-right {
      content: counter(page); }
    /* running header (book title)  */
    @bottom-left {
      content: string(chaptertitle); } }
  .cover-1 {
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    background: #201919;
    background: linear-gradient(#201919, #FF0000 200%);
    padding: 0 !important;
    height: var(--pagedjs-pagearea-height); }
    .cover-1 .title {
      max-width: 75%;
      font-size: 93pt;
      line-height: 0.9em;
      margin-top: 2.5cm;
      padding-left: 1cm; }
    .cover-1 .cover-details {
      padding-bottom: 2cm;
      font-size: 16pt; }
    .cover-1 .subtitle {
      text-indent: 0;
      text-align: left;
      padding-left: 1cm;
      padding-top: 0.3em;
      padding-bottom: 0.3em;
      background: red; }
    .cover-1 .author {
      color: red;
      text-indent: 0;
      margin-top: 0.5cm;
      padding-left: 1cm;
      background: none;
      display: block; }
  @page couv {
    background: #201919;
    background: linear-gradient(#201919, #FF0000 200%);
    margin: 3cm; }
  .cover-4 {
    padding: 0 !important;
    height: var(--pagedjs-pagearea-height);
    break-before: left;
    page: couv;
    position: relative; }
    .cover-4 .qrcode {
      display: block;
      margin: auto;
      width: 100%;
      position: absolute;
      bottom: 0;
      text-align: center;
      border: none;
      color: white;
      font-family: "JB Mono", sans-serif;
      padding: 0.5cm 0; }
      .cover-4 .qrcode img {
        width: 50%;
        margin: auto; }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    page-break-after: avoid; }
  .header,
  .footer,
  .section.print {
    display: none !important; }
  body {
    background: #fff !important;
    color: #000; } }
