@font-face {
  font-family: "Marker";
  src: url("../fonts/markerfelt.ttc");
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;

  cursor: default;
}

body {
  overflow: hidden;

  font-family: "Marker", sans-serif;

  background: rgb(230, 230, 230);

  height: 100%;
}

/* =========================
   PAS DE CURSEUR TEXTE
========================= */

p,
span,
div,
h1,
h2,
h3,
.noteItem,
.dialogueBubble {
  cursor: default;
}

.clue,
.clickZone,
.enterZone,
.characterZone,
.backButton,
.notebookButton {
  cursor: pointer;
}

/* =========================
   NEIGE
========================= */

#snow {
  position: fixed;
  inset: 0;

  width: 100%;
  height: 100%;
  color: white;
  opacity: 100%;
  pointer-events: none;

  z-index: 6;
}

/* =========================
   INTRO
========================= */

.introDialogue {
  position: fixed;

  inset: 0;

  display: flex;

  justify-content: center;
  align-items: center;

  z-index: 200;
}

.introDialogue.hide {
  display: none;
}

.introBox {
  width: 42vw;

  background: #2f2f2f;

  padding: 32px;

  border-radius: 24px;
}

.introLine {
  font-size: 1.8rem;

  line-height: 1.6;

  text-align: center;

  color: white;
}

.crimeHover {
  position: absolute;
  z-index: 120;
}
.crimeBubble {
  position: absolute;

  bottom: 105%;
  left: 50%;

  transform: translateX(-50%);

  background: #2f2f2f;

  color: white;

  padding: 14px 18px;

  border-radius: 18px;

  width: 320px;

  font-size: 1.2rem;

  text-align: center;

  opacity: 0;

  pointer-events: none;

  transition: opacity 0.2s ease;
}

.crimeHover:hover .crimeBubble {
  opacity: 1;
}

.blood {
  left: 900px;
  top: 350px;

  width: 400px;
  height: 250px;
}

.letter {
  left: 650px;
  top: 420px;

  width: 120px;
  height: 80px;

  transform: translateX(-50%);
}

/* .blood,
.letter {
  border: 2px solid red;
  background: rgba(255, 0, 0, 0.2);
} */

/* =========================
   CARNET
========================= */

.notebookButton {
  position: fixed;

  top: 20px;
  right: 20px;

  z-index: 500;

  background: #2f2f2f;

  color: white;

  padding: 14px 24px;

  border-radius: 18px;

  font-size: 1rem;

  font-family: "Marker", sans-serif;
}

.notebookPanel {
  position: fixed;

  top: 0;
  right: -360px;

  width: 340px;
  height: 100vh;

  background: #2f2f2f;

  transition: right 0.35s ease;

  z-index: 400;
}

.notebookPanel.open {
  right: 0;
}

.notebookContent {
  padding: 40px 30px;

  height: 100vh;

  overflow-y: auto;
}

.notebookContent h2 {
  color: white;

  font-size: 2rem;

  margin-bottom: 30px;
}

.notesList {
  display: flex;

  flex-direction: column;

  gap: 24px;
}

.noteItem {
  color: white;

  line-height: 1.6;

  font-size: 1.1rem;
}
.notebookContent::-webkit-scrollbar {
  width: 6px;
}

.notebookContent::-webkit-scrollbar-track {
  background: transparent;
}

.notebookContent::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.25);

  border-radius: 20px;
}

.notebookButton,
.backButton {
  display: none;
}
/* =========================
   MESSAGE PORTE BLOQUÉE
========================= */

.lockedMessage {
  position: fixed;

  left: 50%;
  top: 8%;

  transform: translateX(-50%);

  background: #2f2f2f;

  color: white;

  padding: 18px 28px;

  border-radius: 22px;

  font-size: 1.2rem;

  z-index: 999;
}

/* =========================
   COULOIR
========================= */

.corridor {
  position: relative;

  height: 100vh;

  display: flex;

  align-items: flex-end;

  overflow-x: auto;
  overflow-y: hidden;

  touch-action: pan-x;

  z-index: 9;
}

.door {
  position: relative;

  flex-shrink: 0;

  margin-left: -7vw;
}

.door:first-child {
  margin-left: 0;
}

.doorImg {
  height: 100vh;

  display: block;
}
.corridorLight {
  position: absolute;

  top: -10px;

  width: 300px; /* à ajuster */

  height: auto;

  pointer-events: none;

  z-index: 10;
}
.light1 {
  left: 0px;
  top: -10px;
}

.light2 {
  left: 1200px;
  top: -10px;
}

.light3 {
  left: 2500px;
  top: -10px;
}

.light4 {
  left: 3800px;
  top: -10px;
}

.light5 {
  left: 5000px;
  top: -10px;
}

.light6 {
  left: 6300px;
  top: -10px;
}

.light7 {
  left: 7600px;
  top: -10px;
}

.light8 {
  left: 8900px;
  top: -10px;
}

.light9 {
  left: 11000px;
  top: -10px;
}
.light10 {
  left: 12000px;
  top: -10px;
}
/* =========================
   ZONE POIGNÉE
========================= */

.clickZone {
  position: absolute;

  top: 18%;

  left: 36%;

  width: 28%;

  height: 42%;

  z-index: 20;

  cursor: pointer;
}

/* =========================
   ZONE ENTRÉE
========================= */
.enterZone {
  position: absolute;

  left: 22%;

  top: 0;

  width: 56%;

  height: 100%;

  display: none;

  z-index: 9999;

  cursor: pointer;
}
/* =========================
   CABINE
========================= */

.cabinScene {
  position: fixed;
  inset: 0;

  display: none;

  justify-content: flex-start;
  align-items: center;

  overflow-x: auto;
  overflow-y: hidden;

  touch-action: pan-x; /* bloque le déplacement vertical tactile */

  z-index: 6;
}

.cabinScene.active {
  display: flex;
}

/* ciel */

.cabinScene::before {
  content: "";

  position: fixed;

  inset: 0;

  /* background: linear-gradient(
    to bottom,
    rgba(132, 142, 151, 0.182) 0%,
    rgba(73, 107, 148, 0.829) 70%,
    rgba(220, 222, 225, 0.224) 100%
  ); */

  z-index: -50;
}
.cabinWrapper {
  position: relative;

  width: 1600px;
  min-width: 1600px;

  height: 100vh;

  flex-shrink: 0;
}
.cabinImage {
  position: absolute;

  left: 0;
  top: -120px;

  width: 1600px;
  height: auto;

  max-width: none;

  object-fit: unset;

  overflow-x: auto;
  overflow-y: hidden; /* IMPORTANT */
  z-index: 2;
}

/* =========================
   EXPRESSIONS
========================= */
.expression {
  position: absolute;

  left: 0;
  top: 0;

  width: 1600px;
  height: auto;

  display: block;

  z-index: 2;
}

/* =========================
   PERSONNAGES
========================= */

.characterZone {
  position: absolute;

  width: 26%;
  height: 72%;

  bottom: 10%;

  z-index: 14;
}

.zone1 {
  left: 14%;
  /* border: 3px solid red !important;
  background: rgba(255, 0, 0, 0.25) !important; */
}

.zone2 {
  right: 14%;
  /* border: 3px solid blue !important;
  background: rgba(0, 0, 255, 0.25) !important; */
}

/* personnage solo */

.characterZone.solo {
  left: auto;

  right: 14%;
}

/* =========================
   CLICK DIALOGUE
========================= */

.dialogueClickZone {
  position: absolute;

  inset: 0;

  z-index: 15;

  display: none;
}

/* =========================
   BULLES
========================= */

.dialogueContainer {
  position: absolute;

  inset: 0;

  z-index: 40;

  pointer-events: none;
}

.dialogueBubble {
  position: absolute;

  max-width: 36vw;

  padding: 22px 28px;

  border-radius: 32px;

  font-size: 1.45rem;

  line-height: 1.6;

  display: block;

  pointer-events: auto;

  font-family: "Marker", sans-serif;
}

/* =========================
   POIROT
========================= */

.dialogueBubble.poirot {
  left: 50%;

  transform: translateX(-50%);

  background: #2f2f2f;

  color: white;

  border-bottom-left-radius: 10px;

  text-align: center;
}

/* =========================
   SUSPECTS
========================= */

.dialogueBubble.character {
  left: 50%;
  transform: translateX(-50%);
  right: auto;

  background: #6a3e2d;

  color: white;

  border-bottom-right-radius: 10px;
}

/* =========================
   bulle des supects
========================= */

.dialogueBubble.Hector_MacQueen {
  background: #4f4aa3;
}

/* Jaune flashy */
.dialogueBubble.Masterman {
  background: #ffe600;
  color: black;
}

/* Beige beaucoup plus clair */
.dialogueBubble.Antonio_Foscarelli {
  background: #f2d8b5;
  color: black;
}

/* Turquoise */
.dialogueBubble.Princess_Dragomiroff {
  background: #63d5d0;
  color: black;
}

/* Orange carotte */
.dialogueBubble.Hildegarde {
  background: #ff7f2a;
}

/* Violet clair */
.dialogueBubble.Mrs_Hubbard {
  background: #d7c2ff;
  color: black;
}

/* Jaune */
.dialogueBubble.Greta_Ohlsson {
  background: #9b7a9e;
  color: white;
}

.dialogueBubble.Mary_Debenham {
  background: #c9a227;
  color: white;
}

.dialogueBubble.Count_Andrenyi {
  background: #6a4a2d;
}

/* Rouge saumon */
.dialogueBubble.Countess_Andrenyi {
  background: #e28f7d;
  color: black;
}

/* Blond / vert */
.dialogueBubble.Colonel_Arbuthnot {
  background: #b8c76a;
  color: black;
}

/* Orange rosé */
.dialogueBubble.Cyrus_Hardman {
  background: #e08b73;
  color: black;
}

/* =========================
   INDICES
========================= */

.clue {
  color: inherit;

  text-decoration: underline;
}

/* =========================
   RETOUR
========================= */

.backButton {
  position: fixed;

  top: 20px;
  left: 20px;

  z-index: 60;

  background: #2f2f2f;

  color: white;

  border: none;

  padding: 14px 22px;

  border-radius: 18px;

  font-size: 1rem;

  font-family: "Marker", sans-serif;
}

/* =========================
   SCROLLBAR
========================= */

::-webkit-scrollbar {
  display: none;
}

/* =========================
   NUMÉROS PORTES
========================= */
.doorNumber {
  position: absolute;

  top: -0.5%;

  left: 50%;

  transform: translateX(-50%);

  color: #d8b186;

  font-size: 2.4rem;

  z-index: 25;

  pointer-events: none;
}
/* =========================
   SOL
========================= */

.corridor::after {
  content: "";

  position: fixed;

  bottom: 0;
  left: 0;

  width: 100%;
  height: 4vh;

  background: #d8b186;

  z-index: 0;
}

/* =========================
   BOUTON FINAL
========================= */

.finalButton {
  position: absolute;

  left: 50%;
  top: 50%;

  transform: translate(-50%, -50%);

  background: #2f2f2f;

  color: white;

  padding: 22px 34px;

  border-radius: 22px;

  font-size: 1.4rem;

  display: none;

  z-index: 100;

  cursor: pointer;
}
/* =========================
   HOVER SUSPECTS
========================= */

/* bulles */

.culpritBubble {
  position: absolute;

  bottom: 105%;

  left: 50%;

  transform: translateX(-50%);

  background: #2f2f2f;

  color: white;

  padding: 14px 18px;

  border-radius: 18px;

  font-size: 1.2rem;

  text-align: center;

  width: 320px;

  white-space: normal;

  opacity: 0;

  pointer-events: none;

  transition: opacity 0.2s ease;
}

/* Bulles à gauche */

.leftBubble .culpritBubble {
  left: 0;

  transform: none;
}

/* Bulles à droite */

.rightBubble .culpritBubble {
  left: auto;

  right: 0;

  transform: none;
}

.suspectHover {
  position: absolute;

  z-index: 120;

  display: none;
  /* border: 3px solid red !important; */
}

.suspectHover:hover .culpritBubble {
  opacity: 1;
}

/* =========================
   POSITIONS
========================= */

/* Princess Dragomiroff */
.dragomiroff {
  left: 20px;
  top: 590px; /* était 650 */
  width: 150px;
  height: 170px;
}

/* Greta */
.greta {
  left: 90px;
  top: 530px;
  width: 170px;
  height: 180px;
}

/* Hector */
.hector {
  left: 190px;
  top: 390px;
  width: 190px;
  height: 190px;
}

/* Masterman */
.masterman {
  left: 250px; /* décale à droite */
  top: 300px; /* remonte */
  width: 170px;
  height: 180px;
}

/* Colonel Arbuthnot */
.arbuthnot {
  left: 930px;
  top: 180px;
  width: 210px;
  height: 190px;
}

/* Antonio Foscarelli */
.foscarelli {
  left: 390px; /* avant 360 */
  top: 250px;
  width: 200px;
  height: 190px;
}
/* Count Andrenyi */
.andrenyi {
  left: 590px;
  top: 150px;
  width: 220px;
  height: 180px;
}

/* Countess Andrenyi */
.countess {
  left: 770px;
  top: 150px;
  width: 220px;
  height: 180px;
}
/* Cyrus Hardman */
.hardman {
  left: 1100px;
  top: 300px;
  width: 210px;
  height: 180px;
}

/* Mrs Hubbard */
.hubbard {
  left: 1400px; /* décale à droite */
  top: 560px; /* descend */
  width: 180px;
  height: 190px;
}

/* Mary Debenham */
.mary {
  left: 1300px; /* décale à droite */
  top: 530px;
  width: 180px;
  height: 190px;
}

/* Hildegarde */
.hildegarde {
  left: 1200px;
  top: 400px; /* remonte */
  width: 180px;
  height: 190px;
}

.dragomiroff .culpritBubble,
.greta .culpritBubble {
  left: 100px;
  transform: none;
}

.mary .culpritBubble,
.hubbard .culpritBubble,
.hildegarde .culpritBubble {
  right: 20px;
  left: auto;
  transform: none;
}

.finalReveal {
  position: fixed;

  left: 50%;
  top: 50%;

  transform: translate(-50%, -50%);

  background: #2f2f2f;

  color: white;

  padding: 40px;

  border-radius: 24px;

  text-align: center;

  font-size: 1.8rem;

  line-height: 1.6;

  width: 60vw;

  max-width: 900px;

  opacity: 0;

  pointer-events: none;

  transition: opacity 0.6s ease;

  z-index: 300;
}

.finalReveal.show {
  opacity: 1;
}

/* Responsiv */

@media (max-width: 900px) {
  .dialogueBubble {
    font-size: 1.2rem;
  }

  .culpritBubble {
    font-size: 1rem;
    width: 260px;
  }

  .introLine {
    font-size: 1.3rem;
  }

  .dialogueBubble {
    font-size: 1.2rem;
  }

  .culpritBubble {
    font-size: 1rem;
    width: 260px;
  }

  .notebookContent h2 {
    font-size: 1.6rem;
  }

  .noteItem {
    font-size: 1rem;
  }

  .notebookPanel {
    width: 300px;
  }

  .finalReveal {
    font-size: 1.3rem;
  }
}
@media (max-width: 900px) {
  .dialogueBubble {
    bottom: 12% !important;
  }
}

@media (max-width: 900px) {
  .andrenyi .culpritBubble,
  .countess .culpritBubble {
    bottom: 60%;
  }
}
/* plante */
.corridorPlant {
  position: absolute;

  height: 380px;
  width: auto;

  pointer-events: none;
  z-index: 2;
}
.plant1 {
  left: 20vw;
  bottom: 0;
}
.plant2 {
  left: 100vw;
  bottom: 0;
}

.plant3 {
  left: 140vw;
  bottom: 0;
}
.plant4 {
  left: 160vw;
  bottom: 0;
}
.plant5 {
  left: 230vw;
  bottom: 0;
}

.plant6 {
  left: 260vw;
  bottom: 0;
}

.plant7 {
  left: 350vw;
  bottom: 0;
}
.plant8 {
  left: 420vw;
  bottom: 0;
}
.plant9 {
  left: 480vw;
  bottom: 0;
}

.plant10 {
  left: 500vw;
  bottom: 0;
}

.plant11 {
  left: 570vw;
  bottom: 0;
}

.plant12 {
  left: 590vw;
  bottom: 0;
}
.plant13 {
  left: 680vw;
  bottom: 0;
}

.plant14 {
  left: 760vw;
  bottom: 0;
}

.plant15 {
  left: 810vw;
  bottom: 0;
}
@media (max-width: 1200px) {
  .corridorPlant {
    display: none;
  }
}
