@charset "UTF-8";
/* Thème reveal.js aux couleurs du site (layout slides.html).
   Autonome : Bulma n'est pas chargé sur les slides. */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap");
@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&display=swap");
:root {
  --r-background-color: #ffffff;
  --r-main-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;
  --r-main-font-size: 30px;
  --r-main-color: #09090b;
  --r-heading-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;
  --r-heading-color: #09090b;
  --r-heading-font-weight: 700;
  --r-heading-letter-spacing: -0.02em;
  --r-heading-text-transform: none;
  --r-link-color: #ef2e31;
  --r-link-color-hover: #c81e21;
  --r-selection-background-color: #fcc7c8;
  --r-code-font: JetBrains Mono, ui-monospace, monospace;
}

body {
  background: #ffffff;
}

.reveal {
  font-family: var(--r-main-font);
  font-size: var(--r-main-font-size);
  color: var(--r-main-color);
  line-height: 1.45;
}
.reveal .slides {
  text-align: left;
}
.reveal {
  /* margin: 0 dans Reveal.initialize : la slide occupe tout le cadre 1280x720,
     les marges intérieures sont portées par les sections. */
}
.reveal .slides > section,
.reveal .slides > section > section {
  height: 100%;
  padding: 64px 96px 96px;
  box-sizing: border-box;
}
.reveal .slides > section.stack {
  padding: 0;
}
.reveal h1, .reveal h2, .reveal h3, .reveal h4 {
  font-family: var(--r-heading-font);
  font-weight: var(--r-heading-font-weight);
  letter-spacing: var(--r-heading-letter-spacing);
  color: var(--r-heading-color);
  line-height: 1.15;
  margin: 0 0 0.6em;
}
.reveal h1 {
  font-size: 2.4em;
}
.reveal h2 {
  font-size: 1.6em;
}
.reveal {
  /* ### juste sous le titre : phrase d'introduction */
}
.reveal h3 {
  font-size: 1.05em;
  font-weight: 600;
  color: #71717a;
  margin-top: -0.4em;
}
.reveal p {
  margin: 0 0 0.7em;
}
.reveal strong {
  font-weight: 700;
}
.reveal a {
  color: var(--r-link-color);
}
.reveal ul, .reveal ol {
  display: block;
  margin: 0 0 0.7em 1.2em;
}
.reveal li {
  margin: 0.35em 0;
}
.reveal {
  /* Listes numérotées façon sommaire du masque : 01, 02... en rouge */
}
.reveal ol {
  list-style: none;
  counter-reset: uls-item;
  margin-left: 0;
}
.reveal ol > li {
  counter-increment: uls-item;
  position: relative;
  padding-left: 2.2em;
}
.reveal ol > li::before {
  content: counter(uls-item, decimal-leading-zero);
  position: absolute;
  left: 0;
  color: #ef2e31;
  font-weight: 800;
}
.reveal ul li::marker {
  color: #ef2e31;
}
.reveal code {
  font-family: var(--r-code-font);
  font-size: 0.85em;
  background: #f4f4f5;
  padding: 0.1em 0.35em;
  border-radius: 4px;
}
.reveal pre {
  width: 100%;
  margin: 0.5em 0;
  font-size: 0.72em;
  box-shadow: none;
  border: 1px solid #e4e4e7;
  border-radius: 8px;
}
.reveal pre code {
  padding: 1em;
  max-height: 480px;
  background: #f4f4f5;
}
.reveal img {
  display: block;
  max-width: 100%;
  max-height: 440px;
  margin: 0 auto;
  border: 1px solid #e4e4e7;
  border-radius: 8px;
}
.reveal {
  /* Illustration à laisser respirer : le plafond de 440px ne laisse pas la place
     au titre, à la légende de crédit et aux liens dans les 560px utiles d'une
     slide. Poser {: .img-md} après l'image pour la ramener à 320px : collé à
     l'image, la classe va sur <img> ; à la ligne suivante, sur le <p> parent. */
}
.reveal .columns img {
  max-height: 400px;
}
.reveal img.img-md, .reveal .img-md img {
  max-height: 320px;
}
.reveal {
  /* Grille d'images (4 images dans .columns, ou 3 dans .columns.is-3) : 200px */
}
.reveal img.img-sm, .reveal .img-sm img {
  max-height: 200px;
}
.reveal {
  /* Logo de marque, sans cadre, posé en ligne : ![Logo](src){: .logo} */
}
.reveal img.logo {
  display: inline-block;
  max-height: 64px;
  margin: 0 0.6em;
  border: none;
  border-radius: 0;
  vertical-align: middle;
}
.reveal p:has(> img.logo) {
  text-align: center;
}
.reveal {
  /* Légende sous une image : paragraphe suivi de {: .caption} */
}
.reveal .caption {
  text-align: center;
  font-size: 0.75em;
  color: #71717a;
  margin-top: 0.5em;
}
.reveal .columns blockquote {
  font-size: 0.75em;
  margin-top: 0;
}
.reveal {
  /* Lien vers la page du site qui approfondit la slide :
     [Titre](/url/){: .doc-link}, en dernière ligne de la slide */
}
.reveal kbd {
  display: inline-block;
  padding: 0.05em 0.45em;
  border: 1px solid #e4e4e7;
  border-bottom-width: 3px;
  border-radius: 6px;
  background: #ffffff;
  font-family: var(--r-main-font);
  font-size: 0.8em;
  font-weight: 600;
  line-height: 1.3;
}
.reveal a.doc-link {
  display: inline-block;
  margin: 0.4em 0.4em 0 0;
  padding: 0.2em 0.8em;
  border: 1px solid #e4e4e7;
  border-radius: 999px;
  font-size: 0.6em;
  font-weight: 600;
  color: #09090b;
  text-decoration: none;
}
.reveal a.doc-link::before {
  content: "\f518";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  color: #ef2e31;
  margin-right: 0.5em;
}
.reveal a.doc-link:hover {
  border-color: #ef2e31;
  color: #ef2e31;
}
.reveal {
  /* Aperçu d'une page du site : <iframe class="page-preview" data-src="/url/">
     (data-src : reveal.js ne charge la page qu'à l'approche de la slide) */
}
.reveal .page-preview {
  display: block;
  width: 100%;
  height: 470px;
  border: 1px solid #e4e4e7;
  border-radius: 8px;
  background: #ffffff;
}
.reveal table {
  width: 100%;
  margin-bottom: 0.8em;
  border-collapse: collapse;
  font-size: 0.9em;
}
.reveal table th, .reveal table td {
  padding: 0.4em 0.8em;
  border-bottom: 1px solid #e4e4e7;
  text-align: left;
}
.reveal table th {
  font-weight: 700;
}
.reveal table {
  /* Tableau long (7 lignes et plus) : {: .table-dense} après le tableau */
}
.reveal table.table-dense {
  font-size: 0.72em;
}
.reveal table.table-dense th, .reveal table.table-dense td {
  padding: 0.3em 0.7em;
}
.reveal blockquote {
  margin: 0.5em 0;
  padding: 0.5em 1em;
  border-left: 4px solid #ef2e31;
  background: #f4f4f5;
  font-style: normal;
  width: auto;
  box-shadow: none;
}
.reveal .mermaid {
  display: flex;
  justify-content: center;
  margin: 0.5em 0;
  /* Mermaid fixe la taille du SVG en ligne : !important pour la plafonner */
}
.reveal .mermaid svg {
  max-height: 360px !important;
  max-width: 100%;
  height: auto;
}
.reveal {
  /* Cycle en V dessiné en SVG (deck séance 1) */
}
.reveal .v-model svg {
  display: block;
  width: 100%;
  max-height: 370px;
}
.reveal .v-model svg text {
  font-family: var(--r-main-font);
  font-size: 21px;
  font-weight: 600;
  fill: #09090b;
  text-anchor: middle;
  dominant-baseline: central;
}
.reveal .v-model svg .v-box {
  fill: #f4f4f5;
  stroke: #a1a1aa;
  stroke-width: 1.5;
}
.reveal .v-model svg .v-check {
  fill: #ffffff;
  stroke: #ef2e31;
  stroke-width: 2;
}
.reveal .v-model svg .v-make {
  fill: #ef2e31;
  stroke: #ef2e31;
}
.reveal .v-model svg .v-make + text {
  fill: #ffffff;
}
.reveal .v-model svg .v-flow {
  stroke: #71717a;
  stroke-width: 2.5;
}
.reveal .v-model svg .v-verify {
  stroke: #ef2e31;
  stroke-width: 2;
  stroke-dasharray: 7 6;
}
.reveal .v-model svg .v-label {
  font-size: 16px;
  font-weight: 500;
  fill: #ef2e31;
  dominant-baseline: auto;
}
.reveal .v-model svg marker path {
  fill: #71717a;
}
.reveal {
  /* Graphique Chart.js (include graphique.html) : hauteur fixe par défaut */
}
.reveal .graphique {
  margin: 0.4em 0;
}
.reveal .graphique .graphique-zone {
  position: relative;
  height: 360px;
}
.reveal .graphique figcaption {
  text-align: center;
  font-size: 0.55em;
  color: #71717a;
  margin-top: 0.3em;
}
.reveal .graphique .graphique-erreur {
  color: #ef2e31;
  font-size: 0.6em;
}
.reveal {
  /* Deux colonnes : <div class="columns" markdown="1"> ... </div> */
}
.reveal .columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5em;
  align-items: start;
}
.reveal .columns.is-3 {
  grid-template-columns: 1fr 1fr 1fr;
}
.reveal {
  /* Include message.html (styles Bulma absents ici) */
}
.reveal .message {
  margin: 0.6em 0;
  border-radius: 8px;
  background: #f4f4f5;
  border-left: 6px solid #71717a;
  font-size: 0.8em;
}
.reveal .message.is-info {
  border-left-color: #3b82f6;
}
.reveal .message.is-success {
  border-left-color: #22c55e;
}
.reveal .message.is-warning {
  border-left-color: #f59e0b;
}
.reveal .message.is-danger {
  border-left-color: #ef2e31;
}
.reveal .message .message-header {
  padding: 0.5em 0.9em 0;
  font-weight: 700;
}
.reveal .message .message-body {
  padding: 0.4em 0.9em 0.6em;
}
.reveal .message .message-body p:last-child {
  margin: 0;
}
.reveal {
  /* Code : fond clair (thème highlight.js github) */
}
.reveal pre code.hljs {
  background: #ffffff;
}
.reveal {
  /* Slides sur fond sombre (data-background-color sombre, ou class="has-dark-background") */
}
.reveal section.has-dark-background, .reveal section.has-dark-background h1, .reveal section.has-dark-background h2, .reveal section.has-dark-background h3, .reveal section.has-dark-background p, .reveal section.has-dark-background li, .reveal section.has-dark-background strong, .reveal section.has-dark-background .slide-kicker, .reveal section.has-dark-background .slide-subtitle, .reveal section.has-dark-background .slide-author, .reveal section.has-dark-background .caption {
  color: #ffffff;
}
.reveal section.has-dark-background ul li::marker {
  color: #ffffff;
}
.reveal section.has-dark-background a {
  color: #ffffff;
  text-decoration: underline;
}
.reveal {
  /* Slide de transition : gros titre à droite du trait en L */
}
.reveal .slide-section {
  display: flex !important;
  flex-direction: column;
  /* Le texte s'appuie sur le trait horizontal (y = 526px) et monte au-dessus */
  justify-content: flex-end;
  align-items: flex-start;
  padding: 0 120px 234px 206px !important;
}
.reveal .slide-section h2 {
  font-size: 2.8em;
  margin: 0 0 0.15em;
  position: relative;
}
.reveal .slide-section p {
  font-size: 1.1em;
  position: relative;
  margin: 0;
}
.reveal .slide-section .slide-section-logo {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 24px;
  height: 92px;
  max-height: none;
  border: none;
  border-radius: 0;
  margin: 0;
}
.reveal .slide-section {
  /* Comme dans le masque : texte noir sur le rouge par défaut */
}
.reveal .slide-section[data-uls-red] h2, .reveal .slide-section[data-uls-red] p {
  color: #09090b;
}
.reveal .slide-center {
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}
.reveal {
  /* Blocs de démonstration (Auto-Animate) */
}
.reveal .demo-flow {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  justify-content: center;
  align-items: center;
  margin-top: 1em;
}
.reveal .demo-box {
  padding: 0.6em 1em;
  border-radius: 12px;
  background: #f4f4f5;
  border: 2px solid #e4e4e7;
  font-weight: 600;
  font-size: 0.85em;
}
.reveal .demo-box.is-accent {
  background: #ef2e31;
  border-color: #ef2e31;
  color: #ffffff;
}
.reveal .demo-box.is-big {
  font-size: 2em;
  padding: 1em 1.6em;
}
.reveal .demo-arrow {
  color: #71717a;
  font-size: 0.9em;
}
.reveal {
  /* Slide d'activité : modalité, durée, matériel en pastilles sous le titre
     <p class="activity-meta"><span>…</span>…</p> */
}
.reveal .activity-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4em;
  margin: -0.2em 0 0.9em;
}
.reveal .activity-meta span {
  padding: 0.25em 0.8em;
  border-radius: 999px;
  background: #f4f4f5;
  font-size: 0.6em;
  font-weight: 600;
  color: #09090b;
}
.reveal .activity-meta span:first-child {
  background: #ef2e31;
  color: #ffffff;
}
.reveal .activity-meta span i {
  margin-right: 0.4em;
}
.reveal .activity-meta {
  /* Chrono (layout slides.html) : pastille ⏱ cliquable */
}
.reveal .activity-meta .activity-timer {
  cursor: pointer;
  user-select: none;
}
.reveal .activity-meta .activity-timer time {
  font-variant-numeric: tabular-nums;
}
.reveal .activity-meta .activity-timer.is-running {
  background: #09090b;
  color: #ffffff;
}
.reveal .activity-meta .activity-timer.is-paused {
  background: #09090b;
  color: #ffffff;
  opacity: 0.55;
}
.reveal .activity-meta .activity-timer.is-done {
  background: #ef2e31;
  color: #ffffff;
  animation: timer-done 1s ease-in-out infinite;
}
@keyframes timer-done {
  50% {
    transform: scale(1.12);
  }
}
.reveal .big-number {
  font-size: 5em;
  font-weight: 800;
  line-height: 1;
  /* la marge des <p> est en em : sans ça, 0.7 × 5em d'espace sous le chiffre */
  margin-bottom: 0.1em;
  color: #ef2e31;
  letter-spacing: -0.04em;
}
.reveal {
  /* ── Habillage inspiré du masque UniLaSalle ───────────────────────── */
  /* Grande flèche en filigrane (slide de fin), dans le repère 1280x720 */
}
.reveal .uls-watermark {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  color: #ffffff;
  opacity: 0.1;
  pointer-events: none;
}
.reveal {
  /* Trait en L terminé par une flèche (slides de transition) */
}
.reveal .uls-line {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  color: #09090b;
  pointer-events: none;
}
.reveal {
  /* Petite flèche à gauche du titre, centrée sur sa première ligne
     (padding-top 64px + demi-hauteur de ligne du h2 ≈ 91px) */
}
.reveal .uls-corner {
  position: absolute;
  top: 70px;
  left: 38px;
  width: 42px;
  height: 42px;
  color: #ef2e31;
}
.reveal {
  /* Bandeau bas : numéro à gauche, logo à droite */
}
.reveal .uls-band {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 48px;
  padding: 0 28px 0 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 1;
  color: #ffffff;
  font-size: 16px;
  font-weight: 600;
  /* Le fond déborde de la slide : le bandeau touche les bords de l'écran
     même quand la slide 16:9 ne remplit pas toute la fenêtre. */
}
.reveal .uls-band::before {
  content: "";
  position: absolute;
  top: 0;
  left: -2000px;
  right: -2000px;
  bottom: -2000px;
  z-index: -1;
  background: #ef2e31;
}
.reveal .uls-band img {
  height: 30px;
  max-height: none;
  border: none;
  border-radius: 0;
  margin: 0;
}
.reveal {
  /* Couverture : même composition que les transitions, trait en L blanc
     plus épais, texte calé en bas sur le trait (y = 546px) */
}
.reveal .uls-line-big {
  color: #ffffff;
}
.reveal .slide-title {
  display: flex !important;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  padding: 0 120px 220px 206px !important;
}
.reveal .slide-title h1 {
  font-size: 2.6em;
  margin: 0 0 0.25em;
  position: relative;
}
.reveal .slide-title p {
  position: relative;
  margin: 0 0 0.3em;
}
.reveal .slide-title p:last-of-type {
  margin-bottom: 0;
}
.reveal .slide-title {
  /* Titre noir comme dans le masque, sur-titre et sous-titre blancs,
     auteur noir : alternance qui fait écho au trait blanc */
}
.reveal .slide-title.has-dark-background h1, .reveal .slide-title.has-dark-background .slide-author {
  color: #09090b;
}
.reveal .slide-title-logo {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 24px;
  height: 92px !important;
  border: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
}
.reveal .slide-kicker {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.7em;
}
.reveal .slide-subtitle {
  font-size: 1.1em;
}
.reveal .slide-author {
  margin-top: 0.8em !important;
  font-size: 0.75em;
}
.reveal {
  /* Slide de fin : logo UniLaSalle « Demain commence ici » */
}
.reveal .slide-end {
  display: flex !important;
  align-items: center;
  justify-content: center;
}
.reveal .slide-end img:not(.uls-watermark) {
  position: relative;
  width: 62%;
  max-height: none;
  border: none;
  border-radius: 0;
}
.reveal .progress {
  color: #ef2e31;
  height: 4px;
}
.reveal {
  /* Flèches de navigation (controlsLayout: "edges") : rouges sur fond blanc,
     blanches quand la slide courante a un fond sombre ou rouge */
}
.reveal .controls {
  color: #ef2e31;
}
.reveal.has-dark-background .controls, .reveal.has-dark-background .progress {
  color: #ffffff;
}
.reveal {
  /* La flèche du bas tombe sur le bandeau rouge : toujours en blanc, avec
     une ombre légère pour rester visible quel que soit le fond */
}
.reveal .controls .navigate-down {
  color: #ffffff;
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.45));
}

.slides-back {
  position: fixed;
  top: 16px;
  right: 16px;
  z-index: 40;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #71717a;
  background: #ffffff;
  border: 1px solid #e4e4e7;
  text-decoration: none;
}
.slides-back:hover {
  color: #ef2e31;
  border-color: #ef2e31;
}

/* Export PDF (?print-pdf) : pas de bouton retour */
.print-pdf .slides-back {
  display: none;
}

/*# sourceMappingURL=slides.css.map */