{"id":1686,"date":"2025-08-27T14:29:40","date_gmt":"2025-08-27T12:29:40","guid":{"rendered":"https:\/\/loboguard.com\/home\/"},"modified":"2026-10-20T08:44:26","modified_gmt":"2026-10-20T06:44:26","slug":"loboguard-dr","status":"publish","type":"page","link":"https:\/\/loboguard.com\/fr\/","title":{"rendered":"Home LoboGuard-DR"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1686\" class=\"elementor elementor-1686 elementor-189\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-35223913 e-flex e-con-boxed e-con e-parent\" data-id=\"35223913\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-b9659ad e-con-full e-flex e-con e-child\" data-id=\"b9659ad\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-77fd4de4 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"77fd4de4\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">LOBOGUARD<br>R\u00c9CUP\u00c9RATION APR\u00c8S SINISTRE PROXMOX<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4c212b9c elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"4c212b9c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;_animation_delay&quot;:70}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Fini les nuits blanches \u00e0 surveiller votre infrastructure. LoboGuard-DR r\u00e9plique vos donn\u00e9es entre deux clusters avec une efficacit\u00e9 redoutable. Si un cluster tombe en panne, l&rsquo;ensemble de votre infrastructure reste op\u00e9rationnelle. Votre Proxmox, vos donn\u00e9es, votre d\u00e9cision.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-411313e e-con-full e-flex e-con e-child\" data-id=\"411313e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-715240d elementor-invisible elementor-widget elementor-widget-image\" data-id=\"715240d\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1917\" height=\"990\" src=\"https:\/\/loboguard.com\/wp-content\/uploads\/2026\/02\/monitoring.png\" class=\"attachment-full size-full wp-image-2305\" alt=\"loboguard-dr monitoring\" srcset=\"https:\/\/loboguard.com\/wp-content\/uploads\/2026\/02\/monitoring.png 1917w, https:\/\/loboguard.com\/wp-content\/uploads\/2026\/02\/monitoring-300x155.png 300w, https:\/\/loboguard.com\/wp-content\/uploads\/2026\/02\/monitoring-1024x529.png 1024w, https:\/\/loboguard.com\/wp-content\/uploads\/2026\/02\/monitoring-768x397.png 768w, https:\/\/loboguard.com\/wp-content\/uploads\/2026\/02\/monitoring-1536x793.png 1536w, https:\/\/loboguard.com\/wp-content\/uploads\/2026\/02\/monitoring-600x310.png 600w\" sizes=\"(max-width: 1917px) 100vw, 1917px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-aa557f8 e-con-full e-flex e-con e-parent\" data-id=\"aa557f8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f4eb91f elementor-widget elementor-widget-html\" data-id=\"f4eb91f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"lgdr-about\" aria-labelledby=\"lgdr-about-title\" data-scene=\"mirror\">\r\n  <style>\r\n    .lgdr-about {\r\n      --lgdr-heading: var(--e-global-color-primary, #14C2A3);\r\n      --lgdr-text: var(--e-global-color-text, #B9B9BF);\r\n      --lgdr-accent: var(--e-global-color-primary, #14C2A3);\r\n      --lgdr-off: var(--e-global-color-72b2dc9, #565660);\r\n      --lgdr-bg: var(--e-global-color-ad9a0db, #141A31);\r\n      --lgdr-card-bg: var(--e-global-color-secondary, #0C1226);\r\n      --lgdr-card-border: var(--e-global-color-34cc923, #FFFFFF33);\r\n      --lgdr-font-heading: var(--e-global-typography-primary-font-family, \"Chakra Petch\"), sans-serif;\r\n      --lgdr-font-text: var(--e-global-typography-text-font-family, \"IBM Plex Mono\"), monospace;\r\n\r\n      --mx: 0;\r\n      --my: 0;\r\n      --lgdr-grid: color-mix(in srgb, var(--e-global-color-primary, #14C2A3) 30%, transparent);\r\n\r\n      position: relative;\r\n      overflow: clip;\r\n      isolation: isolate;\r\n      box-sizing: border-box;\r\n      width: 100%;\r\n      padding: clamp(2rem, 6vw, 5rem) clamp(1rem, 4vw, 2rem);\r\n      background: var(--lgdr-bg);\r\n      font-family: var(--lgdr-font-text);\r\n      color: var(--lgdr-text);\r\n    }\r\n    .lgdr-about *, .lgdr-about *::before, .lgdr-about *::after { box-sizing: border-box; }\r\n\r\n    .lgdr-about .lgdr-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }\r\n    .lgdr-about .lgdr-glow {\r\n      position: absolute; inset: 0;\r\n      background:\r\n        radial-gradient(70% 45% at 50% 100%, color-mix(in srgb, var(--lgdr-accent) 24%, transparent), transparent 70%),\r\n        radial-gradient(50% 35% at 50% 0%, color-mix(in srgb, var(--lgdr-accent) 10%, transparent), transparent 70%);\r\n    }\r\n    .lgdr-about .lgdr-floorwrap {\r\n      position: absolute; left: 0; right: 0; bottom: 0;\r\n      height: 60%;\r\n      perspective: 420px;\r\n      perspective-origin: 50% 0%;\r\n      -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 55%);\r\n      mask-image: linear-gradient(to bottom, transparent 0%, #000 55%);\r\n    }\r\n    .lgdr-about .lgdr-floor {\r\n      position: absolute; left: -60%; right: -60%; bottom: 0;\r\n      height: 200%;\r\n      transform-origin: 50% 100%;\r\n      transform: rotateX(70deg) translateX(calc(var(--mx) * -40px));\r\n      transition: transform .3s ease-out;\r\n      background-image:\r\n        linear-gradient(var(--lgdr-grid) 1px, transparent 1px),\r\n        linear-gradient(90deg, var(--lgdr-grid) 1px, transparent 1px);\r\n      background-size: 64px 64px;\r\n      animation: lgdr-grid 3s linear infinite;\r\n    }\r\n    .lgdr-about .lgdr-layer { position: absolute; inset: 0; transition: transform .25s ease-out; }\r\n    .lgdr-about .lgdr-far  { transform: translate3d(calc(var(--mx) * -14px), calc(var(--my) * -10px), 0); }\r\n    .lgdr-about .lgdr-near { transform: translate3d(calc(var(--mx) * -38px), calc(var(--my) * -28px), 0); }\r\n    .lgdr-about .lgdr-layer i {\r\n      position: absolute;\r\n      width: var(--s); height: var(--s);\r\n      border: 2px solid color-mix(in srgb, var(--lgdr-accent) 45%, transparent);\r\n      animation: lgdr-float var(--d) ease-in-out infinite alternate;\r\n    }\r\n    .lgdr-about .lgdr-layer i:nth-child(3n) { background: color-mix(in srgb, var(--lgdr-accent) 22%, transparent); }\r\n    .lgdr-about .lgdr-layer i:nth-child(4n) { border-radius: 50%; }\r\n    @keyframes lgdr-grid { to { background-position: 0 64px; } }\r\n    @keyframes lgdr-float { from { transform: translate3d(0, 0, 0) rotate(0deg); } to { transform: translate3d(0, -22px, 0) rotate(60deg); } }\r\n\r\n    .lgdr-about .lgdr-inner { position: relative; z-index: 1; max-width: 1200px; margin: 0 auto; }\r\n\r\n    .lgdr-about .lgdr-head { max-width: 75ch; margin: 0 auto clamp(1.5rem, 4vw, 2.5rem); text-align: center; }\r\n    .lgdr-about .lgdr-title {\r\n      margin: 0 0 1rem;\r\n      font-family: var(--lgdr-font-heading);\r\n      font-size: clamp(1.9rem, 4.5vw, 3rem);\r\n      font-weight: 700;\r\n      text-transform: uppercase;\r\n      line-height: 1.15;\r\n      color: var(--lgdr-heading);\r\n    }\r\n    .lgdr-about .lgdr-intro {\r\n      margin: 0;\r\n      font-family: var(--lgdr-font-text);\r\n      font-size: clamp(1rem, 2vw, 1.125rem);\r\n      font-weight: 400;\r\n      line-height: 1.6;\r\n      color: var(--lgdr-text);\r\n    }\r\n\r\n    .lgdr-about .lgdr-stage { max-width: 900px; margin: 0 auto clamp(1.5rem, 4vw, 2.5rem); text-align: center; perspective: 1100px; }\r\n    .lgdr-about .lgdr-diagram {\r\n      display: block; width: 100%; height: auto; overflow: visible;\r\n      transform-origin: 50% 70%;\r\n      transform: rotateX(calc(18deg + var(--my) * -5deg)) rotateY(calc(var(--mx) * 8deg));\r\n      transition: transform .25s ease-out;\r\n      filter: drop-shadow(0 28px 24px rgba(0, 0, 0, .45));\r\n    }\r\n    .lgdr-about .lgdr-caption {\r\n      min-height: 3.2em;\r\n      margin: .5rem 0 0;\r\n      font-family: var(--lgdr-font-text);\r\n      font-size: clamp(.8rem, 1.6vw, .95rem);\r\n      line-height: 1.6;\r\n      color: var(--lgdr-text);\r\n    }\r\n    .lgdr-about .lgdr-caption::before {\r\n      content: \"\";\r\n      display: inline-block;\r\n      width: .55em; height: .55em;\r\n      margin-right: .6em;\r\n      background: var(--lgdr-accent);\r\n    }\r\n\r\n    .lgdr-about .box { fill: var(--lgdr-card-bg); stroke: var(--lgdr-card-border); stroke-width: 1.5; transition: stroke .4s ease; }\r\n    .lgdr-about .clname { fill: var(--lgdr-heading); font-family: var(--lgdr-font-heading); font-size: 34px; font-weight: 700; }\r\n    .lgdr-about .cl-b .clname { text-anchor: end; }\r\n    .lgdr-about .cl { transition: opacity .5s ease; }\r\n    .lgdr-about .led { fill: var(--lgdr-accent); transition: fill .4s ease; }\r\n\r\n    .lgdr-about .vm {\r\n      fill: transparent;\r\n      stroke: var(--lgdr-accent);\r\n      stroke-width: 2;\r\n      stroke-dasharray: 5 4;\r\n      vector-effect: non-scaling-stroke;\r\n      transition: fill .4s ease, stroke-dasharray .4s ease;\r\n    }\r\n    .lgdr-about .pad { fill: var(--lgdr-card-bg); stroke: var(--lgdr-accent); stroke-width: 2; vector-effect: non-scaling-stroke; }\r\n\r\n    .lgdr-about .tr { fill: none; stroke: var(--lgdr-card-border); stroke-width: 2; vector-effect: non-scaling-stroke; }\r\n    .lgdr-about .flow {\r\n      fill: none;\r\n      stroke: var(--lgdr-accent);\r\n      stroke-width: 5;\r\n      stroke-linecap: round;\r\n      stroke-dasharray: 0.1 16;\r\n      vector-effect: non-scaling-stroke;\r\n      opacity: 0;\r\n      transition: opacity .4s ease;\r\n      filter: drop-shadow(0 0 3px var(--lgdr-accent));\r\n    }\r\n\r\n    .lgdr-about .shield { opacity: 0; transform-box: fill-box; transform-origin: center; transform: scale(.6); transition: opacity .4s ease, transform .4s ease; }\r\n    .lgdr-about .shield path, .lgdr-about .shield rect { fill: var(--lgdr-card-bg); stroke: var(--lgdr-accent); stroke-width: 2.5; stroke-linejoin: round; }\r\n    .lgdr-about .shield .lockarc { fill: none; }\r\n\r\n    .lgdr-about .ecg { opacity: 0; transition: opacity .4s ease; }\r\n    .lgdr-about .ecg path { fill: none; stroke: var(--lgdr-accent); stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; stroke-dasharray: 30 70; vector-effect: non-scaling-stroke; }\r\n\r\n    .lgdr-about[data-scene=\"mirror\"] .f1, .lgdr-about[data-scene=\"mirror\"] .f2, .lgdr-about[data-scene=\"mirror\"] .f3 { opacity: 1; animation: lgdr-flow 1s linear infinite; }\r\n    .lgdr-about[data-scene=\"mirror\"] .a1, .lgdr-about[data-scene=\"mirror\"] .a2, .lgdr-about[data-scene=\"mirror\"] .a3 { fill: var(--lgdr-accent); stroke-dasharray: none; }\r\n\r\n    .lgdr-about[data-scene=\"planned\"] .f2 { opacity: 1; animation: lgdr-flow .5s linear infinite; }\r\n    .lgdr-about[data-scene=\"planned\"] .a1, .lgdr-about[data-scene=\"planned\"] .a3, .lgdr-about[data-scene=\"planned\"] .b2 { fill: var(--lgdr-accent); stroke-dasharray: none; }\r\n\r\n    .lgdr-about[data-scene=\"emergency\"] .cl-a { opacity: .35; }\r\n    .lgdr-about[data-scene=\"emergency\"] .cl-a .box { stroke-dasharray: 8 6; }\r\n    .lgdr-about[data-scene=\"emergency\"] .led-a { fill: var(--lgdr-off); }\r\n    .lgdr-about[data-scene=\"emergency\"] .b1, .lgdr-about[data-scene=\"emergency\"] .b2, .lgdr-about[data-scene=\"emergency\"] .b3 { fill: var(--lgdr-accent); stroke-dasharray: none; }\r\n    .lgdr-about[data-scene=\"emergency\"] .led-b { animation: lgdr-blink .8s ease-in-out infinite; }\r\n\r\n    .lgdr-about[data-scene=\"splitbrain\"] .f1 { opacity: 1; animation: lgdr-flow 1s linear infinite; }\r\n    .lgdr-about[data-scene=\"splitbrain\"] .f3 { opacity: 1; animation: lgdr-flow 1s linear infinite reverse; }\r\n    .lgdr-about[data-scene=\"splitbrain\"] .a1, .lgdr-about[data-scene=\"splitbrain\"] .a2, .lgdr-about[data-scene=\"splitbrain\"] .a3,\r\n    .lgdr-about[data-scene=\"splitbrain\"] .b1, .lgdr-about[data-scene=\"splitbrain\"] .b2, .lgdr-about[data-scene=\"splitbrain\"] .b3 { fill: var(--lgdr-accent); stroke-dasharray: none; }\r\n    .lgdr-about[data-scene=\"splitbrain\"] .shield { opacity: 1; transform: scale(1); }\r\n\r\n    .lgdr-about[data-scene=\"monitoring\"] .f1, .lgdr-about[data-scene=\"monitoring\"] .f2, .lgdr-about[data-scene=\"monitoring\"] .f3 { opacity: .45; animation: lgdr-flow 2s linear infinite; }\r\n    .lgdr-about[data-scene=\"monitoring\"] .a1, .lgdr-about[data-scene=\"monitoring\"] .a2, .lgdr-about[data-scene=\"monitoring\"] .a3 { fill: var(--lgdr-accent); stroke-dasharray: none; }\r\n    .lgdr-about[data-scene=\"monitoring\"] .led { animation: lgdr-blink 1.2s ease-in-out infinite; }\r\n    .lgdr-about[data-scene=\"monitoring\"] .ecg { opacity: 1; }\r\n    .lgdr-about[data-scene=\"monitoring\"] .ecg path { animation: lgdr-ecg 2s linear infinite; }\r\n\r\n    .lgdr-about[data-scene=\"bidirectional\"] .f1 { opacity: 1; animation: lgdr-flow 1s linear infinite; }\r\n    .lgdr-about[data-scene=\"bidirectional\"] .f3 { opacity: 1; animation: lgdr-flow 1s linear infinite reverse; }\r\n    .lgdr-about[data-scene=\"bidirectional\"] .a1, .lgdr-about[data-scene=\"bidirectional\"] .a2, .lgdr-about[data-scene=\"bidirectional\"] .b3 { fill: var(--lgdr-accent); stroke-dasharray: none; }\r\n\r\n    @keyframes lgdr-flow { to { stroke-dashoffset: -16.1; } }\r\n    @keyframes lgdr-blink { 50% { opacity: .25; } }\r\n    @keyframes lgdr-ecg { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }\r\n\r\n    .lgdr-about .lgdr-grid {\r\n      display: grid;\r\n      grid-template-columns: 1fr;\r\n      gap: clamp(1rem, 2.5vw, 1.75rem);\r\n      margin: 0;\r\n      padding: 0;\r\n      list-style: none;\r\n    }\r\n    @media (min-width: 640px) { .lgdr-about .lgdr-grid { grid-template-columns: repeat(2, 1fr); } }\r\n    @media (min-width: 1000px) { .lgdr-about .lgdr-grid { grid-template-columns: repeat(3, 1fr); } }\r\n\r\n    @media (max-width: 999px) {\r\n      .lgdr-about .lgdr-stage {\r\n        position: sticky;\r\n        top: var(--lgdr-sticky-top, 0px);\r\n        z-index: 2;\r\n        padding: .5rem 0;\r\n        background: var(--lgdr-bg);\r\n      }\r\n      .lgdr-about .lgdr-diagram { max-height: 30vh; max-height: 30svh; }\r\n      .lgdr-about .lgdr-caption { min-height: 3.2em; }\r\n    }\r\n\r\n    .lgdr-about .lgdr-card { min-width: 0; display: flex; perspective: 900px; cursor: pointer; }\r\n    .lgdr-about .lgdr-face {\r\n      position: relative;\r\n      flex: 1 1 auto;\r\n      min-width: 0;\r\n      padding: clamp(1.1rem, 2.5vw, 1.75rem);\r\n      background: var(--lgdr-card-bg);\r\n      border: 1px solid var(--lgdr-card-border);\r\n      text-align: center;\r\n      transform-style: preserve-3d;\r\n      transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));\r\n      transition: transform .2s ease-out, border-color .3s ease, box-shadow .3s ease;\r\n    }\r\n    .lgdr-about .lgdr-face::after {\r\n      content: \"\";\r\n      position: absolute; inset: 0;\r\n      background: radial-gradient(circle at var(--gx, 50%) var(--gy, 50%), rgba(255, 255, 255, .12), transparent 55%);\r\n      opacity: 0;\r\n      transition: opacity .3s ease;\r\n      pointer-events: none;\r\n    }\r\n    .lgdr-about .lgdr-card.is-tilting .lgdr-face::after { opacity: 1; }\r\n    .lgdr-about .lgdr-card.is-active .lgdr-face { border-color: var(--lgdr-accent); box-shadow: 0 0 0 1px var(--lgdr-accent), 0 18px 40px -14px color-mix(in srgb, var(--lgdr-accent) 55%, transparent); }\r\n    .lgdr-about .lgdr-card:focus-visible { outline: none; }\r\n    .lgdr-about .lgdr-card:focus-visible .lgdr-face { outline: 2px solid var(--lgdr-accent); outline-offset: 3px; }\r\n    .lgdr-about .lgdr-card h3 {\r\n      transform: translateZ(28px);\r\n      margin: 0 0 .6rem;\r\n      font-family: var(--lgdr-font-heading);\r\n      font-size: clamp(1.05rem, 2.2vw, 1.4rem);\r\n      font-weight: 700;\r\n      text-transform: uppercase;\r\n      line-height: 1.25;\r\n      color: var(--lgdr-heading);\r\n    }\r\n    .lgdr-about .lgdr-card p {\r\n      transform: translateZ(12px);\r\n      margin: 0;\r\n      font-family: var(--lgdr-font-text);\r\n      font-weight: 400;\r\n      text-transform: none;\r\n      line-height: 1.6;\r\n      color: var(--lgdr-text);\r\n      overflow-wrap: anywhere;\r\n    }\r\n\r\n    @media (prefers-reduced-motion: no-preference) {\r\n      .lgdr-about.lgdr-anim .lgdr-card {\r\n        opacity: 0;\r\n        transform: scale(.92);\r\n        transition: opacity .5s ease, transform .5s ease;\r\n      }\r\n      .lgdr-about.lgdr-anim .lgdr-card.is-visible { opacity: 1; transform: none; }\r\n    }\r\n    @media (prefers-reduced-motion: reduce) {\r\n      .lgdr-about .flow, .lgdr-about .ecg path, .lgdr-about .led, .lgdr-about .lgdr-floor, .lgdr-about .lgdr-layer i { animation: none !important; }\r\n    }\r\n  <\/style>\r\n\r\n  <div class=\"lgdr-bg\" aria-hidden=\"true\">\r\n    <div class=\"lgdr-glow\"><\/div>\r\n    <div class=\"lgdr-floorwrap\"><div class=\"lgdr-floor\"><\/div><\/div>\r\n    <div class=\"lgdr-layer lgdr-far\"><i style=\"left:6%;top:12%;--s:16px;--d:7s\"><\/i><i style=\"left:22%;top:62%;--s:24px;--d:9s\"><\/i><i style=\"left:48%;top:8%;--s:12px;--d:6s\"><\/i><i style=\"left:74%;top:70%;--s:20px;--d:8s\"><\/i><i style=\"left:92%;top:24%;--s:14px;--d:10s\"><\/i><\/div>\r\n    <div class=\"lgdr-layer lgdr-near\"><i style=\"left:12%;top:38%;--s:30px;--d:8s\"><\/i><i style=\"left:34%;top:80%;--s:14px;--d:6s\"><\/i><i style=\"left:63%;top:30%;--s:26px;--d:9s\"><\/i><i style=\"left:86%;top:52%;--s:34px;--d:7s\"><\/i><i style=\"left:56%;top:86%;--s:12px;--d:11s\"><\/i><\/div>\r\n  <\/div>\r\n\r\n  <div class=\"lgdr-inner\">\r\n    <header class=\"lgdr-head\">\r\n      <h2 class=\"lgdr-title\" id=\"lgdr-about-title\">Qu\u2019est-ce que LoboGuard-DR<\/h2>\r\n      <p class=\"lgdr-intro\">LoboGuard-DR est une solution de reprise apr\u00e8s sinistre s\u00e9curis\u00e9e, avanc\u00e9e et auto-h\u00e9berg\u00e9e pour les infrastructures Proxmox avec stockage Ceph. Elle automatise la r\u00e9plication RBD entre deux clusters et orchestre le basculement pour prot\u00e9ger contre la perte de donn\u00e9es et les sc\u00e9narios de split-brain.<\/p>\r\n    <\/header>\r\n\r\n    <div class=\"lgdr-stage\">\r\n      <svg class=\"lgdr-diagram\" viewBox=\"0 0 1000 300\" aria-hidden=\"true\" focusable=\"false\">\r\n        <g class=\"cl cl-a\">\r\n          <rect class=\"box\" x=\"30\" y=\"30\" width=\"270\" height=\"240\"\/>\r\n          <text class=\"clname\" x=\"60\" y=\"76\">A<\/text>\r\n          <circle class=\"led led-a\" cx=\"268\" cy=\"62\" r=\"6\"\/>\r\n          <rect class=\"vm a1\" x=\"70\" y=\"100\" width=\"32\" height=\"32\"\/>\r\n          <rect class=\"vm a2\" x=\"70\" y=\"150\" width=\"32\" height=\"32\"\/>\r\n          <rect class=\"vm a3\" x=\"70\" y=\"200\" width=\"32\" height=\"32\"\/>\r\n        <\/g>\r\n        <g class=\"cl cl-b\">\r\n          <rect class=\"box\" x=\"700\" y=\"30\" width=\"270\" height=\"240\"\/>\r\n          <text class=\"clname\" x=\"940\" y=\"76\">B<\/text>\r\n          <circle class=\"led led-b\" cx=\"732\" cy=\"62\" r=\"6\"\/>\r\n          <rect class=\"vm b1\" x=\"898\" y=\"100\" width=\"32\" height=\"32\"\/>\r\n          <rect class=\"vm b2\" x=\"898\" y=\"150\" width=\"32\" height=\"32\"\/>\r\n          <rect class=\"vm b3\" x=\"898\" y=\"200\" width=\"32\" height=\"32\"\/>\r\n        <\/g>\r\n        <g>\r\n          <path class=\"tr\" d=\"M102 116 H390 L420 146 H580 L610 116 H898\"\/>\r\n          <path class=\"tr\" d=\"M102 166 H898\"\/>\r\n          <path class=\"tr\" d=\"M102 216 H390 L420 186 H580 L610 216 H898\"\/>\r\n          <path class=\"flow f1\" d=\"M102 116 H390 L420 146 H580 L610 116 H898\"\/>\r\n          <path class=\"flow f2\" d=\"M102 166 H898\"\/>\r\n          <path class=\"flow f3\" d=\"M102 216 H390 L420 186 H580 L610 216 H898\"\/>\r\n          <circle class=\"pad\" cx=\"300\" cy=\"116\" r=\"5\"\/>\r\n          <circle class=\"pad\" cx=\"300\" cy=\"166\" r=\"5\"\/>\r\n          <circle class=\"pad\" cx=\"300\" cy=\"216\" r=\"5\"\/>\r\n          <circle class=\"pad\" cx=\"700\" cy=\"116\" r=\"5\"\/>\r\n          <circle class=\"pad\" cx=\"700\" cy=\"166\" r=\"5\"\/>\r\n          <circle class=\"pad\" cx=\"700\" cy=\"216\" r=\"5\"\/>\r\n        <\/g>\r\n        <g class=\"ecg\">\r\n          <path pathLength=\"100\" d=\"M400 70 H460 L474 44 L490 98 L506 56 L516 70 H600\"\/>\r\n        <\/g>\r\n        <g class=\"shield\">\r\n          <path d=\"M500 132 L532 145 V173 C532 192 516 203 500 209 C484 203 468 192 468 173 V145 Z\"\/>\r\n          <rect x=\"489\" y=\"168\" width=\"22\" height=\"18\"\/>\r\n          <path class=\"lockarc\" d=\"M493 168 V162 A7 7 0 0 1 507 162 V168\"\/>\r\n        <\/g>\r\n      <\/svg>\r\n      <p class=\"lgdr-caption\" aria-live=\"polite\"><\/p>\r\n    <\/div>\r\n\r\n    <ul class=\"lgdr-grid\">\r\n      <li class=\"lgdr-card\" tabindex=\"0\" data-scene=\"mirror\" data-caption=\"R\u00e9plication des images RBD du cluster A vers le cluster B\">\r\n        <div class=\"lgdr-face\">\r\n        <h3>Mirroring RBD<\/h3>\r\n        <p>Deux modes de r\u00e9plication : Journal pour une r\u00e9plication asynchrone quasi temps r\u00e9el, et Snapshot pour des copies p\u00e9riodiques planifi\u00e9es. Activez ou d\u00e9sactivez le mirroring par VM en un seul clic.<\/p>\r\n        <\/div>\r\n      <\/li>\r\n      <li class=\"lgdr-card\" tabindex=\"0\" data-scene=\"planned\" data-caption=\"Basculement planifi\u00e9 : arr\u00eat, synchro, r\u00e9trogradation, promotion, d\u00e9marrage\">\r\n        <div class=\"lgdr-face\">\r\n        <h3>Basculement et retour planifi\u00e9s<\/h3>\r\n        <p>Migrez des VM entre clusters sans perte de donn\u00e9es. Le syst\u00e8me g\u00e8re automatiquement l\u2019arr\u00eat, la synchronisation, la r\u00e9trogradation, la promotion et le d\u00e9marrage. Toutes les op\u00e9rations sont lanc\u00e9es manuellement, car les d\u00e9cisions de DR sont trop critiques pour \u00eatre automatis\u00e9es.<\/p>\r\n        <\/div>\r\n      <\/li>\r\n      <li class=\"lgdr-card\" tabindex=\"0\" data-scene=\"emergency\" data-caption=\"Cluster A hors service : VM promues et d\u00e9marr\u00e9es sur le cluster B\">\r\n        <div class=\"lgdr-face\">\r\n        <h3>Basculement d\u2019urgence<\/h3>\r\n        <p>Lorsqu\u2019un cluster tombe de mani\u00e8re inattendue, promouvez et d\u00e9marrez toutes les VM concern\u00e9es sur le cluster survivant en un seul clic. Aucune connexion au cluster d\u00e9faillant n\u2019est n\u00e9cessaire.<\/p>\r\n        <\/div>\r\n      <\/li>\r\n      <li class=\"lgdr-card\" tabindex=\"0\" data-scene=\"splitbrain\" data-caption=\"Double primaire bloqu\u00e9 avant qu\u2019il ne se produise\">\r\n        <div class=\"lgdr-face\">\r\n        <h3>Protection contre le split-brain<\/h3>\r\n        <p>Une protection multicouche par hookscripts emp\u00eache les VM de d\u00e9marrer sur le mauvais cluster. D\u00e9tection automatique et r\u00e9solution en un clic des situations de double primaire.<\/p>\r\n        <\/div>\r\n      <\/li>\r\n      <li class=\"lgdr-card\" tabindex=\"0\" data-scene=\"monitoring\" data-caption=\"\u00c9tat de la r\u00e9plication et sant\u00e9 Ceph actualis\u00e9s toutes les 30 secondes\">\r\n        <div class=\"lgdr-face\">\r\n        <h3>Supervision et alertes<\/h3>\r\n        <p>Tableau de bord avec l\u2019\u00e9tat de la r\u00e9plication, le suivi du retard, l\u2019utilisation du stockage et la sant\u00e9 Ceph des deux clusters. Les donn\u00e9es sont actualis\u00e9es toutes les 30 secondes. Alertes configurables avec des seuils personnalisables.<\/p>\r\n        <\/div>\r\n      <\/li>\r\n      <li class=\"lgdr-card\" tabindex=\"0\" data-scene=\"bidirectional\" data-caption=\"R\u00e9plication et basculement dans les deux sens entre clusters\">\r\n        <div class=\"lgdr-face\">\r\n        <h3>Bidirectionnel<\/h3>\r\n        <p>Le basculement fonctionne dans les deux sens entre les clusters. Prend en charge plusieurs pools Ceph simultan\u00e9ment et r\u00e9partit les d\u00e9mons rbd-mirror sur tous les n\u0153uds pour la haute disponibilit\u00e9 et l\u2019\u00e9quilibrage de charge.<\/p>\r\n        <\/div>\r\n      <\/li>\r\n    <\/ul>\r\n  <\/div>\r\n\r\n  <script nowprocket>\r\n    (function () {\r\n      var s = document.currentScript;\r\n      var root = s && s.closest ? s.closest('.lgdr-about') : null;\r\n      if (!root) {\r\n        var all = document.querySelectorAll('.lgdr-about');\r\n        for (var n = 0; n < all.length; n++) { if (!all[n].__lgdrInit) { root = all[n]; break; } }\r\n      }\r\n      if (!root || root.__lgdrInit) return;\r\n      root.__lgdrInit = true;\r\n\r\n      var cards = Array.prototype.slice.call(root.querySelectorAll('.lgdr-card'));\r\n      var caption = root.querySelector('.lgdr-caption');\r\n      var reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n      var current = 0, timer = null, resume = null, visible = false;\r\n\r\n      function show(i) {\r\n        current = i;\r\n        root.setAttribute('data-scene', cards[i].getAttribute('data-scene'));\r\n        caption.textContent = cards[i].getAttribute('data-caption');\r\n        cards.forEach(function (c, k) {\r\n          c.classList.toggle('is-active', k === i);\r\n          if (k === i) { c.setAttribute('aria-current', 'true'); } else { c.removeAttribute('aria-current'); }\r\n        });\r\n      }\r\n      function stop() { clearInterval(timer); timer = null; clearTimeout(resume); }\r\n      function start() {\r\n        if (reduce || timer || !visible) return;\r\n        timer = setInterval(function () { show((current + 1) % cards.length); }, 4500);\r\n      }\r\n      function pauseThenResume(ms) { stop(); resume = setTimeout(start, ms); }\r\n\r\n      show(0);\r\n\r\n      var fine = window.matchMedia('(hover: hover) and (pointer: fine)').matches;\r\n      if (fine && !reduce) {\r\n        var raf = null;\r\n        root.addEventListener('pointermove', function (e) {\r\n          if (raf) return;\r\n          raf = requestAnimationFrame(function () {\r\n            raf = null;\r\n            var r = root.getBoundingClientRect();\r\n            root.style.setProperty('--mx', (((e.clientX - r.left) \/ r.width) * 2 - 1).toFixed(3));\r\n            root.style.setProperty('--my', (((e.clientY - r.top) \/ r.height) * 2 - 1).toFixed(3));\r\n          });\r\n        });\r\n        root.addEventListener('pointerleave', function () {\r\n          root.style.setProperty('--mx', 0);\r\n          root.style.setProperty('--my', 0);\r\n        });\r\n        cards.forEach(function (c) {\r\n          var face = c.querySelector('.lgdr-face');\r\n          c.addEventListener('pointermove', function (e) {\r\n            var r = face.getBoundingClientRect();\r\n            var x = (e.clientX - r.left) \/ r.width, y = (e.clientY - r.top) \/ r.height;\r\n            face.style.setProperty('--ry', ((x - 0.5) * 14).toFixed(2) + 'deg');\r\n            face.style.setProperty('--rx', ((0.5 - y) * 14).toFixed(2) + 'deg');\r\n            face.style.setProperty('--gx', (x * 100).toFixed(1) + '%');\r\n            face.style.setProperty('--gy', (y * 100).toFixed(1) + '%');\r\n            c.classList.add('is-tilting');\r\n          });\r\n          c.addEventListener('pointerleave', function () {\r\n            face.style.setProperty('--rx', '0deg');\r\n            face.style.setProperty('--ry', '0deg');\r\n            c.classList.remove('is-tilting');\r\n          });\r\n        });\r\n      }\r\n\r\n      cards.forEach(function (c, i) {\r\n        c.addEventListener('mouseenter', function () { stop(); show(i); });\r\n        c.addEventListener('mouseleave', function () { pauseThenResume(2500); });\r\n        c.addEventListener('focus', function () { stop(); show(i); });\r\n        c.addEventListener('blur', function () { pauseThenResume(2500); });\r\n        c.addEventListener('click', function () { show(i); pauseThenResume(9000); });\r\n      });\r\n\r\n      if ('IntersectionObserver' in window) {\r\n        new IntersectionObserver(function (entries) {\r\n          visible = entries[0].isIntersecting;\r\n          if (visible) { start(); } else { stop(); }\r\n        }, { threshold: 0 }).observe(root);\r\n      } else { visible = true; start(); }\r\n\r\n      if (!('IntersectionObserver' in window) || reduce) return;\r\n\r\n      var vh = window.innerHeight;\r\n      cards.forEach(function (c) { if (c.getBoundingClientRect().top < vh) c.classList.add('is-visible'); });\r\n      root.classList.add('lgdr-anim');\r\n\r\n      var io = new IntersectionObserver(function (entries) {\r\n        entries.forEach(function (e) {\r\n          if (e.isIntersecting) {\r\n            var i = cards.indexOf(e.target) % 3;\r\n            e.target.style.transitionDelay = (i * 80) + 'ms';\r\n            e.target.classList.add('is-visible');\r\n            (function (t) { setTimeout(function () { t.style.transitionDelay = ''; }, 800); })(e.target);\r\n            io.unobserve(e.target);\r\n          }\r\n        });\r\n      }, { threshold: 0.15 });\r\n      cards.forEach(function (c) { if (!c.classList.contains('is-visible')) io.observe(c); });\r\n    })();\r\n  <\/script>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d15fc9e e-flex e-con-boxed e-con e-parent\" data-id=\"d15fc9e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ec0879b elementor-widget elementor-widget-html\" data-id=\"ec0879b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n    .lg-dr-cta-section {\r\n        border-radius: 20px;\r\n        padding: 60px;\r\n        text-align: center;\r\n        position: relative;\r\n        overflow: hidden;\r\n        border: 1px solid var(--e-global-color-primary);\r\n        background: linear-gradient(135deg, var(--e-global-color-ffb3e68) 0%, var(--e-global-color-c502742) 100%);\r\n    }\r\n\r\n    .lg-dr-cta-section::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: -50%;\r\n        left: -50%;\r\n        width: 200%;\r\n        height: 200%;\r\n        background: radial-gradient(circle, rgba(20, 194, 163, 0.1) 0%, transparent 70%);\r\n        animation: lg-dr-rotate 20s linear infinite;\r\n    }\r\n\r\n    @keyframes lg-dr-rotate {\r\n        from { transform: rotate(0deg); }\r\n        to { transform: rotate(360deg); }\r\n    }\r\n\r\n    .lg-dr-cta-section h2 {\r\n        text-transform: uppercase;\r\n        color: var(--e-global-color-accent);\r\n        margin-bottom: 20px;\r\n        position: relative;\r\n        z-index: 1;\r\n    }\r\n\r\n    .lg-dr-cta-section p {\r\n        text-transform: uppercase;\r\n        color: var(--e-global-color-text);\r\n        margin-bottom: 40px;\r\n        position: relative;\r\n        z-index: 1;\r\n    }\r\n\r\n    .lg-dr-btn {\r\n        padding: 20px 50px;\r\n        text-transform: uppercase;\r\n        border: none;\r\n        cursor: pointer;\r\n        transition: all 0.3s ease;\r\n        text-decoration: none;\r\n        display: inline-block;\r\n        border-radius: 10px;\r\n        position: relative;\r\n        z-index: 1;\r\n        background: linear-gradient(135deg, var(--e-global-color-primary) 0%, #0fa589 100%);\r\n        color: var(--e-global-color-secondary);\r\n        box-shadow: 0 10px 30px rgba(20, 194, 163, 0.5);\r\n    }\r\n\r\n    .lg-dr-btn:hover {\r\n        transform: translateY(-5px);\r\n        box-shadow: 0 15px 40px rgba(20, 194, 163, 0.7);\r\n    }\r\n\r\n    @media (max-width: 768px) {\r\n        .lg-dr-cta-section {\r\n            padding: 40px 30px;\r\n        }\r\n\r\n        .lg-dr-btn {\r\n            display: block;\r\n            margin: 10px 0;\r\n        }\r\n    }\r\n<\/style>\r\n\r\n<div class=\"lg-dr-cta-section\">\r\n    <h2>Pr\u00eat \u00e0 simplifier la reprise apr\u00e8s sinistre pour Proxmox ?<\/h2>\r\n    <p>\r\n        Rejoignez les entreprises et fournisseurs de services qui utilisent d\u00e9j\u00e0 LoboGuard-DR<br>\r\n        pour g\u00e9rer la reprise apr\u00e8s sinistre simplement et en toute confiance \u2014 vous gardez le contr\u00f4le, en d\u00e9cidant quand et comment l'activer.\r\n    <\/p>\r\n    <a href=\"https:\/\/loboguard.com\/fr\/contact\/\" class=\"lg-dr-btn\">Contactez-nous maintenant<\/a>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-643afb9 e-con-full e-flex e-con e-parent\" data-id=\"643afb9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c2ec304 elementor-widget elementor-widget-html\" data-id=\"c2ec304\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"lgdr-setup\" aria-labelledby=\"lgdr-setup-title\">\r\n  <style>\r\n    .lgdr-setup {\r\n      --lgdr-heading: var(--e-global-color-primary, #14C2A3);\r\n      --lgdr-text: var(--e-global-color-text, #B9B9BF);\r\n      --lgdr-accent: var(--e-global-color-primary, #14C2A3);\r\n      --lgdr-bg: var(--e-global-color-ad9a0db, #141A31);\r\n      --lgdr-card-bg: var(--e-global-color-secondary, #0C1226);\r\n      --lgdr-card-border: var(--e-global-color-34cc923, #FFFFFF33);\r\n      --lgdr-font-heading: var(--e-global-typography-primary-font-family, \"Chakra Petch\"), sans-serif;\r\n      --lgdr-font-text: var(--e-global-typography-text-font-family, \"IBM Plex Mono\"), monospace;\r\n\r\n      --lgdr-dim: var(--e-global-color-34cc923, #FFFFFF33);\r\n      --lgdr-grid: color-mix(in srgb, var(--e-global-color-primary, #14C2A3) 30%, transparent);\r\n      --mx: 0;\r\n      --my: 0;\r\n      --cut: clamp(16px, 3vw, 32px);\r\n\r\n      position: relative;\r\n      clip-path: polygon(var(--cut) 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, var(--cut) 100%, 0 calc(100% - var(--cut)), 0 var(--cut));\r\n      overflow: clip;\r\n      isolation: isolate;\r\n      box-sizing: border-box;\r\n      width: 100%;\r\n      padding: clamp(2rem, 6vw, 5rem) clamp(1rem, 4vw, 2rem);\r\n      background: var(--lgdr-bg);\r\n      font-family: var(--lgdr-font-text);\r\n      color: var(--lgdr-text);\r\n    }\r\n    .lgdr-setup *, .lgdr-setup *::before, .lgdr-setup *::after { box-sizing: border-box; }\r\n\r\n    .lgdr-setup::before {\r\n      content: \"\";\r\n      position: absolute; inset: 0; z-index: 0;\r\n      background: linear-gradient(135deg, var(--lgdr-accent), var(--lgdr-dim) 28%, var(--lgdr-dim) 72%, var(--lgdr-accent));\r\n      clip-path: polygon(var(--cut) 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, var(--cut) 100%, 0 calc(100% - var(--cut)), 0 var(--cut));\r\n    }\r\n    .lgdr-setup .lgdr-bg {\r\n      position: absolute; inset: 1px; z-index: 0;\r\n      overflow: hidden; pointer-events: none;\r\n      background: var(--lgdr-bg);\r\n      clip-path: polygon(calc(var(--cut) - 1px) 0, calc(100% - var(--cut) + 1px) 0, 100% calc(var(--cut) - 1px), 100% calc(100% - var(--cut) + 1px), calc(100% - var(--cut) + 1px) 100%, calc(var(--cut) - 1px) 100%, 0 calc(100% - var(--cut) + 1px), 0 calc(var(--cut) - 1px));\r\n    }\r\n    .lgdr-setup .lgdr-glow {\r\n      position: absolute; inset: 0;\r\n      background:\r\n        radial-gradient(circle, color-mix(in srgb, var(--lgdr-accent) 20%, transparent) 1.2px, transparent 1.8px) 0 0 \/ 30px 30px,\r\n        radial-gradient(45% 60% at 0% 50%, color-mix(in srgb, var(--lgdr-accent) 20%, transparent), transparent 70%),\r\n        radial-gradient(45% 60% at 100% 50%, color-mix(in srgb, var(--lgdr-accent) 20%, transparent), transparent 70%),\r\n        radial-gradient(60% 40% at 50% 100%, color-mix(in srgb, var(--lgdr-accent) 16%, transparent), transparent 70%);\r\n      animation: lgdr-breathe 9s ease-in-out infinite alternate;\r\n    }\r\n    .lgdr-setup .lgdr-art {\r\n      display: none;\r\n      position: absolute; top: 0; bottom: 0;\r\n      width: min(38%, 430px);\r\n      height: 100%;\r\n    }\r\n    .lgdr-setup .lgdr-art-l { left: 0; }\r\n    .lgdr-setup .lgdr-art-r { right: 0; transform: scaleX(-1); }\r\n    @media (min-width: 700px) { .lgdr-setup .lgdr-art { display: block; } }\r\n    @keyframes lgdr-breathe { from { opacity: .7; } to { opacity: 1; } }\r\n    .lgdr-setup .lgdr-t { fill: none; stroke: var(--lgdr-accent); stroke-opacity: .38; stroke-width: 1.6; stroke-linejoin: round; vector-effect: non-scaling-stroke; }\r\n    .lgdr-setup .lgdr-pd { fill: var(--lgdr-bg); stroke: var(--lgdr-accent); stroke-opacity: .7; stroke-width: 1.6; }\r\n    .lgdr-setup .lgdr-pulse { fill: var(--lgdr-accent); }\r\n    .lgdr-setup .lgdr-halo { fill: var(--lgdr-accent); fill-opacity: .25; }\r\n    .lgdr-setup .lgdr-vignette {\r\n      position: absolute; inset: 0;\r\n      background: radial-gradient(ellipse at 50% 50%, transparent 45%, rgba(0, 0, 0, .4) 100%);\r\n    }\r\n    .lgdr-setup .lgdr-frame { position: absolute; inset: 0; }\r\n    .lgdr-setup .lgdr-frame i { position: absolute; width: 8px; height: 8px; background: var(--lgdr-accent); box-shadow: 0 0 10px var(--lgdr-accent); }\r\n    .lgdr-setup .lgdr-frame .c1 { left: calc(var(--cut) \/ 2 - 5px); top: calc(var(--cut) \/ 2 - 5px); }\r\n    .lgdr-setup .lgdr-frame .c2 { right: calc(var(--cut) \/ 2 - 5px); top: calc(var(--cut) \/ 2 - 5px); }\r\n    .lgdr-setup .lgdr-frame .c3 { left: calc(var(--cut) \/ 2 - 5px); bottom: calc(var(--cut) \/ 2 - 5px); }\r\n    .lgdr-setup .lgdr-frame .c4 { right: calc(var(--cut) \/ 2 - 5px); bottom: calc(var(--cut) \/ 2 - 5px); }\r\n    .lgdr-setup .lgdr-frame b {\r\n      position: absolute;\r\n      display: none;\r\n      width: 44px; height: 2px;\r\n      background: var(--lgdr-accent);\r\n      animation: lgdr-port 3.2s ease-in-out infinite alternate;\r\n    }\r\n    .lgdr-setup .lgdr-frame b::after {\r\n      content: \"\";\r\n      position: absolute; top: 50%;\r\n      width: 10px; height: 10px;\r\n      border: 2px solid var(--lgdr-accent);\r\n      border-radius: 50%;\r\n      background: var(--lgdr-bg);\r\n      transform: translateY(-50%);\r\n    }\r\n    .lgdr-setup .lgdr-frame .l { left: 0; }\r\n    .lgdr-setup .lgdr-frame .l::after { right: -5px; }\r\n    .lgdr-setup .lgdr-frame .r { right: 0; }\r\n    .lgdr-setup .lgdr-frame .r::after { left: -5px; }\r\n    .lgdr-setup .lgdr-frame .p1 { top: 26%; }\r\n    .lgdr-setup .lgdr-frame .p2 { top: 48%; animation-delay: -1s; }\r\n    .lgdr-setup .lgdr-frame .p3 { top: 70%; animation-delay: -2s; }\r\n    @media (min-width: 700px) { .lgdr-setup .lgdr-frame b { display: block; } }\r\n    @keyframes lgdr-port { from { opacity: .35; } to { opacity: 1; } }\r\n\r\n    .lgdr-setup .lgdr-inner { position: relative; z-index: 1; max-width: 1200px; margin: 0 auto; }\r\n    .lgdr-setup .lgdr-head { max-width: 70ch; margin: 0 auto clamp(2rem, 5vw, 3.5rem); text-align: center; }\r\n    .lgdr-setup .lgdr-title {\r\n      margin: 0 0 1rem;\r\n      font-family: var(--lgdr-font-heading);\r\n      font-size: clamp(1.9rem, 4.5vw, 3rem);\r\n      font-weight: 700;\r\n      text-transform: uppercase;\r\n      line-height: 1.15;\r\n      color: var(--lgdr-heading);\r\n    }\r\n    .lgdr-setup .lgdr-intro { font-family: var(--lgdr-font-text); margin: 0; font-size: clamp(1rem, 2vw, 1.125rem); font-weight: 400; line-height: 1.6; color: var(--lgdr-text); }\r\n\r\n    .lgdr-setup .lgdr-steps {\r\n      display: flex;\r\n      flex-direction: column;\r\n      gap: clamp(1rem, 2.5vw, 1.75rem);\r\n      margin: 0;\r\n      padding: 0;\r\n      list-style: none;\r\n    }\r\n    .lgdr-setup .lgdr-step { display: flex; align-items: center; position: relative; }\r\n\r\n    .lgdr-setup .lgdr-card { flex: 1 1 auto; min-width: 0; display: flex; perspective: 900px; }\r\n    .lgdr-setup .lgdr-face {\r\n      position: relative;\r\n      flex: 1 1 auto;\r\n      min-width: 0;\r\n      padding: clamp(1.1rem, 2.5vw, 1.75rem);\r\n      background: var(--lgdr-card-bg);\r\n      border: 1px solid var(--lgdr-card-border);\r\n      transform-style: preserve-3d;\r\n      transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));\r\n      transition: transform .2s ease-out, border-color .5s ease, box-shadow .5s ease;\r\n    }\r\n    .lgdr-setup .lgdr-face::after {\r\n      content: \"\";\r\n      position: absolute; inset: 0;\r\n      background: radial-gradient(circle at var(--gx, 50%) var(--gy, 50%), rgba(255, 255, 255, .12), transparent 55%);\r\n      opacity: 0;\r\n      transition: opacity .3s ease;\r\n      pointer-events: none;\r\n    }\r\n    .lgdr-setup .lgdr-card.is-tilting .lgdr-face::after { opacity: 1; }\r\n    .lgdr-setup .lgdr-step.is-lit .lgdr-face {\r\n      border-color: var(--lgdr-accent);\r\n      box-shadow: 0 0 0 1px var(--lgdr-accent), 0 18px 40px -14px color-mix(in srgb, var(--lgdr-accent) 55%, transparent);\r\n    }\r\n    .lgdr-setup .lgdr-card h3 {\r\n      transform: translateZ(28px);\r\n      margin: 0 0 .6rem;\r\n      font-family: var(--lgdr-font-heading);\r\n      font-size: clamp(1.05rem, 2.2vw, 1.4rem);\r\n      font-weight: 700;\r\n      text-transform: uppercase;\r\n      line-height: 1.25;\r\n      color: var(--lgdr-heading);\r\n    }\r\n    .lgdr-setup .lgdr-card p { transform: translateZ(12px); margin: 0; font-family: var(--lgdr-font-text); font-weight: 400; text-transform: none; line-height: 1.6; color: var(--lgdr-text); overflow-wrap: anywhere; }\r\n\r\n    .lgdr-setup .lgdr-line { display: none; }\r\n\r\n    @media (min-width: 900px) {\r\n      .lgdr-setup {\r\n        --lgdr-trace: 2px;\r\n        --lgdr-branch: clamp(3rem, 7vw, 6rem);\r\n        --lgdr-pad: 14px;\r\n        --lgdr-gap: clamp(1.5rem, 3vw, 2.5rem);\r\n        --lgdr-top: 1.5rem;\r\n      }\r\n      .lgdr-setup .lgdr-steps { gap: var(--lgdr-gap); padding: var(--lgdr-top) 0 0; }\r\n\r\n      .lgdr-setup .lgdr-step { width: 50%; }\r\n      .lgdr-setup .lgdr-step:nth-child(even) { margin-left: auto; flex-direction: row-reverse; }\r\n\r\n      .lgdr-setup .lgdr-step:nth-child(-n+5)::after {\r\n        content: \"\";\r\n        position: absolute;\r\n        top: calc(var(--lgdr-gap) * -1);\r\n        bottom: calc(var(--lgdr-gap) * -1);\r\n        width: var(--lgdr-trace);\r\n        background: var(--c);\r\n        transform: translateX(-50%);\r\n      }\r\n      .lgdr-setup .lgdr-step:nth-child(1)::after { top: calc(var(--lgdr-top) * -1); }\r\n      .lgdr-setup .lgdr-step:nth-child(odd)::after  { left: 100%; }\r\n      .lgdr-setup .lgdr-step:nth-child(even)::after { left: 0; }\r\n\r\n      .lgdr-setup .lgdr-step:first-child::before {\r\n        content: \"\";\r\n        position: absolute;\r\n        left: 100%;\r\n        top: calc(var(--lgdr-top) * -1);\r\n        width: 12px; height: 12px;\r\n        transform: translate(-50%, -50%);\r\n        border: var(--lgdr-trace) solid var(--c);\r\n        border-radius: 50%;\r\n      }\r\n\r\n      .lgdr-setup .lgdr-line {\r\n        display: block;\r\n        position: relative;\r\n        flex: 0 0 var(--lgdr-branch);\r\n        height: var(--lgdr-trace);\r\n        background: var(--c);\r\n      }\r\n      .lgdr-setup .lgdr-line::after {\r\n        content: \"\";\r\n        position: absolute;\r\n        top: 50%;\r\n        width: var(--lgdr-pad); height: var(--lgdr-pad);\r\n        background: var(--c);\r\n      }\r\n      .lgdr-setup .lgdr-step:nth-child(odd)  .lgdr-line::after { right: 0; transform: translate(50%, -50%); }\r\n      .lgdr-setup .lgdr-step:nth-child(even) .lgdr-line::after { left: 0;  transform: translate(-50%, -50%); }\r\n\r\n      .lgdr-setup .lgdr-line::before {\r\n        content: \"\";\r\n        position: absolute;\r\n        top: 50%;\r\n        width: 10px; height: 10px;\r\n        border: var(--lgdr-trace) solid var(--c);\r\n        border-radius: 50%;\r\n        transform: translateY(-50%);\r\n      }\r\n      .lgdr-setup .lgdr-step:nth-child(odd)  .lgdr-line::before { left: -5px; }\r\n      .lgdr-setup .lgdr-step:nth-child(even) .lgdr-line::before { right: -5px; }\r\n\r\n      .lgdr-setup .lgdr-step:nth-child(6) {\r\n        width: min(100%, 38rem);\r\n        margin: 0 auto;\r\n        flex-direction: column-reverse;\r\n        align-items: center;\r\n      }\r\n      .lgdr-setup .lgdr-step:nth-child(6) .lgdr-card { width: 100%; text-align: center; }\r\n      .lgdr-setup .lgdr-step:nth-child(6) .lgdr-line {\r\n        flex: 0 0 var(--lgdr-branch);\r\n        width: var(--lgdr-trace);\r\n        height: auto;\r\n      }\r\n      .lgdr-setup .lgdr-step:nth-child(6) .lgdr-line::after {\r\n        top: 0; left: 50%; right: auto;\r\n        transform: translate(-50%, -50%);\r\n      }\r\n      .lgdr-setup .lgdr-step:nth-child(6) .lgdr-line::before {\r\n        top: auto; bottom: -5px; left: 50%; right: auto;\r\n        transform: translateX(-50%);\r\n      }\r\n    }\r\n\r\n    .lgdr-setup .lgdr-step { --c: var(--lgdr-dim); --glow: none; }\r\n    .lgdr-setup .lgdr-step.is-lit, .lgdr-setup .lgdr-step:hover { --c: var(--lgdr-accent); }\r\n    .lgdr-setup .lgdr-step.is-lit { --glow: 0 0 10px var(--lgdr-accent); }\r\n    .lgdr-setup.is-complete .lgdr-step { --glow: 0 0 16px var(--lgdr-accent); }\r\n    .lgdr-setup .lgdr-step::after, .lgdr-setup .lgdr-step::before,\r\n    .lgdr-setup .lgdr-line, .lgdr-setup .lgdr-line::after, .lgdr-setup .lgdr-line::before {\r\n      box-shadow: var(--glow);\r\n      transition: background .5s ease, border-color .5s ease, box-shadow .5s ease;\r\n    }\r\n\r\n    .lgdr-setup .lgdr-status {\r\n      margin: clamp(1.5rem, 4vw, 2.5rem) 0 0;\r\n      text-align: center;\r\n      font-family: var(--lgdr-font-text);\r\n      font-size: clamp(.8rem, 1.6vw, .95rem);\r\n      line-height: 1.6;\r\n      color: var(--lgdr-text);\r\n      opacity: 0;\r\n      transform: translateY(8px);\r\n      transition: opacity .6s ease, transform .6s ease;\r\n    }\r\n    .lgdr-setup .lgdr-status::before {\r\n      content: \"\";\r\n      display: inline-block;\r\n      width: .55em; height: .55em;\r\n      margin-right: .6em;\r\n      background: var(--lgdr-accent);\r\n    }\r\n    .lgdr-setup.is-complete .lgdr-status { opacity: 1; transform: none; }\r\n\r\n    .lgdr-setup .lgdr-sheet { display: none; position: absolute; inset: 0; z-index: 5; perspective: 900px; }\r\n    .lgdr-setup.lgdr-cover .lgdr-sheet { display: block; }\r\n    .lgdr-setup.is-charging .lgdr-sheet { will-change: transform; }\r\n    .lgdr-setup .lgdr-wedge { position: absolute; inset: 0; overflow: hidden; backface-visibility: hidden; }\r\n    .lgdr-setup.is-charging .lgdr-wedge { will-change: transform, opacity; }\r\n    .lgdr-setup .lgdr-wedge:nth-child(odd)  { --rx3: 65deg;  --ry3: -35deg; }\r\n    .lgdr-setup .lgdr-wedge:nth-child(even) { --rx3: -55deg; --ry3: 45deg; }\r\n    .lgdr-setup .lgdr-leaf {\r\n      position: absolute; inset: 0;\r\n      display: grid; place-items: center;\r\n      background:\r\n        radial-gradient(circle, color-mix(in srgb, var(--lgdr-accent) 22%, transparent) 1.2px, transparent 1.8px) 0 0 \/ 30px 30px,\r\n        linear-gradient(135deg, var(--lgdr-card-bg), color-mix(in srgb, var(--lgdr-card-bg) 82%, var(--lgdr-accent)));\r\n    }\r\n    .lgdr-setup .lgdr-leaf span, .lgdr-setup .lgdr-ghost span {\r\n      padding: 0 1rem;\r\n      font-family: var(--lgdr-font-heading);\r\n      font-size: clamp(1.4rem, 6vw, 3.5rem);\r\n      font-weight: 700;\r\n      letter-spacing: .12em;\r\n      text-align: center;\r\n      text-transform: uppercase;\r\n      color: color-mix(in srgb, var(--lgdr-accent) 70%, transparent);\r\n    }\r\n    .lgdr-setup .lgdr-heat, .lgdr-setup .lgdr-dim, .lgdr-setup .lgdr-ghost {\r\n      position: absolute; inset: 0; opacity: 0; pointer-events: none;\r\n    }\r\n    .lgdr-setup .lgdr-heat {\r\n      background: radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--lgdr-accent) 55%, #fff) 0%, color-mix(in srgb, var(--lgdr-accent) 35%, transparent) 35%, transparent 75%);\r\n    }\r\n    .lgdr-setup .lgdr-dim { background: #000; }\r\n    .lgdr-setup .lgdr-ghost { display: grid; place-items: center; }\r\n    .lgdr-setup .lgdr-ghost span { color: #fff; text-shadow: 0 0 14px var(--lgdr-accent), 0 0 34px var(--lgdr-accent); }\r\n    .lgdr-setup .lgdr-crack {\r\n      position: absolute; left: 50%; top: 50%;\r\n      width: var(--len, 0px); height: 2px; margin-top: -1px;\r\n      border-radius: 2px;\r\n      background: #fff;\r\n      box-shadow: 0 0 6px 1px var(--lgdr-accent), 0 0 14px 2px var(--lgdr-accent);\r\n      transform-origin: 0 50%;\r\n      transform: rotate(var(--a, 0deg)) scaleX(0);\r\n      opacity: 0;\r\n      pointer-events: none;\r\n    }\r\n    .lgdr-setup .lgdr-core {\r\n      position: absolute; left: 50%; top: 50%;\r\n      width: 70%; aspect-ratio: 1; max-width: 90vmin;\r\n      margin: 0; transform: translate(-50%, -50%);\r\n      background: radial-gradient(circle, color-mix(in srgb, var(--lgdr-accent) 40%, transparent), transparent 62%);\r\n      pointer-events: none;\r\n      animation: lgdr-core 3s ease-in-out infinite alternate;\r\n    }\r\n    .lgdr-setup .lgdr-whiteout {\r\n      position: absolute; inset: 0; opacity: 0; pointer-events: none;\r\n      background: radial-gradient(circle at 50% 50%, #fff 0%, color-mix(in srgb, var(--lgdr-accent) 45%, #fff) 30%, color-mix(in srgb, var(--lgdr-accent) 55%, transparent) 70%, color-mix(in srgb, var(--lgdr-accent) 25%, transparent) 100%);\r\n    }\r\n    .lgdr-setup .lgdr-flash, .lgdr-setup .lgdr-ring, .lgdr-setup .lgdr-sparks i {\r\n      position: absolute; left: 50%; top: 50%; opacity: 0; pointer-events: none;\r\n    }\r\n    .lgdr-setup .lgdr-flash {\r\n      width: 80vmin; height: 80vmin; margin: -40vmin 0 0 -40vmin;\r\n      background: radial-gradient(circle, rgba(255, 255, 255, 1) 0%, color-mix(in srgb, var(--lgdr-accent) 80%, transparent) 22%, transparent 62%);\r\n    }\r\n    .lgdr-setup .lgdr-ring {\r\n      width: 30vmin; height: 30vmin; margin: -15vmin 0 0 -15vmin;\r\n      border: 4px solid var(--lgdr-accent); border-radius: 50%;\r\n      box-shadow: 0 0 22px var(--lgdr-accent), inset 0 0 22px var(--lgdr-accent);\r\n    }\r\n    .lgdr-setup .lgdr-ring.r2 { border-width: 2px; }\r\n    .lgdr-setup .lgdr-ring.r3 { border-width: 1px; border-color: #fff; }\r\n    .lgdr-setup .lgdr-sparks i {\r\n      width: var(--s); height: var(--s); margin: calc(var(--s) \/ -2) 0 0 calc(var(--s) \/ -2);\r\n      background: #fff; box-shadow: 0 0 8px 2px var(--lgdr-accent);\r\n    }\r\n\r\n    .lgdr-setup.is-charging .lgdr-sheet { animation: lgdr-rumble 1.5s linear; }\r\n    .lgdr-setup.is-charging .lgdr-core { animation: lgdr-charge 1.5s cubic-bezier(.6, 0, .9, .5) forwards; }\r\n    .lgdr-setup.is-charging .lgdr-heat { animation: lgdr-heat 1.5s ease-in forwards; }\r\n    .lgdr-setup.is-charging .lgdr-crack { animation: lgdr-crack 1.1s cubic-bezier(.5, 0, .9, .4) var(--d, 0s) forwards; }\r\n    .lgdr-setup.is-charging .lgdr-ghost { animation: lgdr-glitch 1.5s steps(1) forwards; }\r\n    .lgdr-setup.is-implode .lgdr-core {\r\n      background: radial-gradient(circle, #fff, color-mix(in srgb, var(--lgdr-accent) 80%, #fff) 18%, transparent 60%);\r\n      animation: lgdr-implode .22s ease-in forwards;\r\n    }\r\n    .lgdr-setup.is-implode .lgdr-heat { animation: lgdr-cool .22s ease-in forwards; }\r\n    .lgdr-setup.is-implode .lgdr-dim { animation: lgdr-darken .22s ease-in forwards; }\r\n    .lgdr-setup.is-boom .lgdr-sheet { animation: lgdr-shake .9s cubic-bezier(.3, .7, .4, 1); }\r\n    .lgdr-setup.is-boom .lgdr-core,\r\n    .lgdr-setup.is-boom .lgdr-heat,\r\n    .lgdr-setup.is-boom .lgdr-dim,\r\n    .lgdr-setup.is-boom .lgdr-ghost,\r\n    .lgdr-setup.is-boom .lgdr-crack { animation: none; opacity: 0; }\r\n    .lgdr-setup.is-boom .lgdr-wedge { animation: lgdr-blast 1.8s cubic-bezier(.08, .85, .25, 1) forwards; }\r\n    .lgdr-setup.is-boom .lgdr-whiteout { animation: lgdr-whiteout 1s ease-out forwards; }\r\n    .lgdr-setup.is-boom .lgdr-flash { animation: lgdr-flash .9s ease-out forwards; }\r\n    .lgdr-setup.is-boom .lgdr-ring { animation: lgdr-ring 1.3s ease-out forwards; }\r\n    .lgdr-setup.is-boom .lgdr-ring.r2 { animation-delay: .12s; }\r\n    .lgdr-setup.is-boom .lgdr-ring.r3 { animation-delay: .26s; animation-duration: 1.5s; }\r\n    .lgdr-setup.is-boom .lgdr-sparks i { animation: lgdr-spark var(--t, 1.2s) cubic-bezier(.1, .8, .3, 1) var(--dl, 0s) forwards; }\r\n\r\n    @keyframes lgdr-core { from { opacity: .35; transform: translate(-50%, -50%) scale(.9); } to { opacity: .65; transform: translate(-50%, -50%) scale(1.05); } }\r\n    @keyframes lgdr-charge { from { opacity: .5; transform: translate(-50%, -50%) scale(.9); } to { opacity: 1; transform: translate(-50%, -50%) scale(1.8); } }\r\n    @keyframes lgdr-implode { from { opacity: 1; transform: translate(-50%, -50%) scale(1.6); } to { opacity: 1; transform: translate(-50%, -50%) scale(.04); } }\r\n    @keyframes lgdr-heat { from { opacity: 0; } to { opacity: .75; } }\r\n    @keyframes lgdr-cool { from { opacity: .75; } to { opacity: 0; } }\r\n    @keyframes lgdr-darken { from { opacity: 0; } to { opacity: .55; } }\r\n    @keyframes lgdr-crack {\r\n      0% { opacity: 0; transform: rotate(var(--a, 0deg)) scaleX(0); }\r\n      10% { opacity: 1; }\r\n      100% { opacity: 1; transform: rotate(var(--a, 0deg)) scaleX(1); }\r\n    }\r\n    @keyframes lgdr-glitch {\r\n      0%, 30% { opacity: 0; transform: translate3d(0, 0, 0); }\r\n      34% { opacity: .9; transform: translate3d(-4px, 0, 0); }\r\n      40% { opacity: 0; transform: translate3d(0, 0, 0); }\r\n      52% { opacity: .8; transform: translate3d(3px, 0, 0) skewX(-8deg); }\r\n      58% { opacity: .2; transform: translate3d(0, 0, 0); }\r\n      70% { opacity: 1; transform: translate3d(-2px, 0, 0); }\r\n      78% { opacity: .35; transform: translate3d(0, 0, 0); }\r\n      86%, 100% { opacity: 1; transform: translate3d(0, 0, 0); }\r\n    }\r\n    @keyframes lgdr-rumble {\r\n      0% { transform: translate3d(0, 0, 0); } 10% { transform: translate3d(-1px, 1px, 0); } 20% { transform: translate3d(1px, -1px, 0); }\r\n      30% { transform: translate3d(-2px, 1px, 0); } 40% { transform: translate3d(2px, -1px, 0); } 50% { transform: translate3d(-3px, 2px, 0); }\r\n      60% { transform: translate3d(3px, -2px, 0); } 70% { transform: translate3d(-4px, 2px, 0); } 80% { transform: translate3d(4px, -3px, 0); }\r\n      90% { transform: translate3d(-6px, 3px, 0); } 95% { transform: translate3d(6px, -4px, 0); } 100% { transform: translate3d(0, 0, 0); }\r\n    }\r\n    @keyframes lgdr-shake {\r\n      0% { transform: translate3d(0, 0, 0); } 8% { transform: translate3d(-12px, 6px, 0); } 16% { transform: translate3d(10px, -8px, 0); }\r\n      26% { transform: translate3d(-8px, 6px, 0); } 38% { transform: translate3d(6px, -4px, 0); } 52% { transform: translate3d(-4px, 3px, 0); }\r\n      68% { transform: translate3d(2px, -2px, 0); } 84% { transform: translate3d(-1px, 1px, 0); } 100% { transform: translate3d(0, 0, 0); }\r\n    }\r\n    @keyframes lgdr-blast {\r\n      0% { transform: translate3d(0, 0, 0) rotateZ(0deg) rotateX(0deg) rotateY(0deg) scale(1); opacity: 1; }\r\n      60% { opacity: .9; }\r\n      100% {\r\n        transform: translate3d(calc(var(--tx) * 1.7), calc(var(--ty) * 1.7), 0) rotateZ(calc(var(--rot) * 2.5)) rotateX(var(--rx3)) rotateY(var(--ry3)) scale(.7);\r\n        opacity: 0;\r\n      }\r\n    }\r\n    @keyframes lgdr-whiteout { 0% { opacity: 0; } 6% { opacity: 1; } 100% { opacity: 0; } }\r\n    @keyframes lgdr-flash { from { opacity: 1; transform: scale(.1); } to { opacity: 0; transform: scale(3); } }\r\n    @keyframes lgdr-ring { from { opacity: 1; transform: scale(.1); } to { opacity: 0; transform: scale(4.5); } }\r\n    @keyframes lgdr-spark { from { opacity: 1; transform: translate3d(0, 0, 0); } to { opacity: 0; transform: translate3d(var(--dx), var(--dy), 0); } }\r\n\r\n    @media (prefers-reduced-motion: no-preference) {\r\n      .lgdr-setup.lgdr-anim .lgdr-card {\r\n        opacity: 0; transform: translateX(-24px);\r\n        transition: opacity .7s ease var(--lgdr-delay, 0ms), transform .7s cubic-bezier(.2, .9, .3, 1.15) var(--lgdr-delay, 0ms);\r\n      }\r\n      .lgdr-setup.lgdr-anim .lgdr-step:nth-child(even) .lgdr-card { transform: translateX(24px); }\r\n      .lgdr-setup.lgdr-anim .lgdr-step:nth-child(6) .lgdr-card { transform: translateY(24px); }\r\n      .lgdr-setup.lgdr-anim .lgdr-step.is-visible .lgdr-card { opacity: 1; transform: none; }\r\n    }\r\n    @media (prefers-reduced-motion: reduce) {\r\n      .lgdr-setup .lgdr-frame b, .lgdr-setup .lgdr-glow { animation: none !important; }\r\n      .lgdr-setup .lgdr-step::after, .lgdr-setup .lgdr-step::before, .lgdr-setup .lgdr-line,\r\n      .lgdr-setup .lgdr-line::after, .lgdr-setup .lgdr-line::before, .lgdr-setup .lgdr-face, .lgdr-setup .lgdr-status { transition: none; }\r\n    }\r\n  <\/style>\r\n\r\n  <div class=\"lgdr-bg\" aria-hidden=\"true\">\r\n    <div class=\"lgdr-glow\"><\/div>\r\n    <svg class=\"lgdr-art lgdr-art-l\" viewBox=\"0 0 360 800\" preserveAspectRatio=\"xMinYMid slice\" focusable=\"false\">\r\n          <path class=\"lgdr-t\" d=\"M0 110 L110 110 L150 150 L260 150 L300 190\"\/>\r\n          <path class=\"lgdr-t\" d=\"M0 230 L70 230 L110 270 L200 270 L230 300 L230 420\"\/>\r\n          <path class=\"lgdr-t\" d=\"M0 360 L120 360 L160 400 L300 400\"\/>\r\n          <path class=\"lgdr-t\" d=\"M0 520 L90 520 L130 560 L210 560 L250 600 L250 700\"\/>\r\n          <path class=\"lgdr-t\" d=\"M0 650 L180 650 L220 690 L330 690\"\/>\r\n          <path class=\"lgdr-t\" d=\"M0 740 L60 740 L100 780 L180 780\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"300\" cy=\"190\" r=\"4\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"230\" cy=\"420\" r=\"4\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"300\" cy=\"400\" r=\"4\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"250\" cy=\"700\" r=\"4\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"330\" cy=\"690\" r=\"4\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"180\" cy=\"780\" r=\"4\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"110\" cy=\"110\" r=\"3\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"120\" cy=\"360\" r=\"3\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"180\" cy=\"650\" r=\"3\"\/>\r\n          <circle class=\"lgdr-halo\" r=\"9\"><animateMotion dur=\"6s\" begin=\"0s\" repeatCount=\"indefinite\" path=\"M0 110 L110 110 L150 150 L260 150 L300 190\"\/><\/circle>\r\n          <circle class=\"lgdr-pulse\" r=\"3\"><animateMotion dur=\"6s\" begin=\"0s\" repeatCount=\"indefinite\" path=\"M0 110 L110 110 L150 150 L260 150 L300 190\"\/><\/circle>\r\n          <circle class=\"lgdr-halo\" r=\"9\"><animateMotion dur=\"8s\" begin=\"-3s\" repeatCount=\"indefinite\" path=\"M0 360 L120 360 L160 400 L300 400\"\/><\/circle>\r\n          <circle class=\"lgdr-pulse\" r=\"3\"><animateMotion dur=\"8s\" begin=\"-3s\" repeatCount=\"indefinite\" path=\"M0 360 L120 360 L160 400 L300 400\"\/><\/circle>\r\n          <circle class=\"lgdr-halo\" r=\"9\"><animateMotion dur=\"7s\" begin=\"-1s\" repeatCount=\"indefinite\" path=\"M0 650 L180 650 L220 690 L330 690\"\/><\/circle>\r\n          <circle class=\"lgdr-pulse\" r=\"3\"><animateMotion dur=\"7s\" begin=\"-1s\" repeatCount=\"indefinite\" path=\"M0 650 L180 650 L220 690 L330 690\"\/><\/circle>\r\n          <circle class=\"lgdr-halo\" r=\"9\"><animateMotion dur=\"9s\" begin=\"-5s\" repeatCount=\"indefinite\" path=\"M0 230 L70 230 L110 270 L200 270 L230 300 L230 420\"\/><\/circle>\r\n          <circle class=\"lgdr-pulse\" r=\"3\"><animateMotion dur=\"9s\" begin=\"-5s\" repeatCount=\"indefinite\" path=\"M0 230 L70 230 L110 270 L200 270 L230 300 L230 420\"\/><\/circle>\r\n    <\/svg>\r\n    <svg class=\"lgdr-art lgdr-art-r\" viewBox=\"0 0 360 800\" preserveAspectRatio=\"xMinYMid slice\" focusable=\"false\">\r\n          <path class=\"lgdr-t\" d=\"M0 110 L110 110 L150 150 L260 150 L300 190\"\/>\r\n          <path class=\"lgdr-t\" d=\"M0 230 L70 230 L110 270 L200 270 L230 300 L230 420\"\/>\r\n          <path class=\"lgdr-t\" d=\"M0 360 L120 360 L160 400 L300 400\"\/>\r\n          <path class=\"lgdr-t\" d=\"M0 520 L90 520 L130 560 L210 560 L250 600 L250 700\"\/>\r\n          <path class=\"lgdr-t\" d=\"M0 650 L180 650 L220 690 L330 690\"\/>\r\n          <path class=\"lgdr-t\" d=\"M0 740 L60 740 L100 780 L180 780\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"300\" cy=\"190\" r=\"4\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"230\" cy=\"420\" r=\"4\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"300\" cy=\"400\" r=\"4\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"250\" cy=\"700\" r=\"4\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"330\" cy=\"690\" r=\"4\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"180\" cy=\"780\" r=\"4\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"110\" cy=\"110\" r=\"3\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"120\" cy=\"360\" r=\"3\"\/>\r\n          <circle class=\"lgdr-pd\" cx=\"180\" cy=\"650\" r=\"3\"\/>\r\n          <circle class=\"lgdr-halo\" r=\"9\"><animateMotion dur=\"6s\" begin=\"0s\" repeatCount=\"indefinite\" path=\"M0 110 L110 110 L150 150 L260 150 L300 190\"\/><\/circle>\r\n          <circle class=\"lgdr-pulse\" r=\"3\"><animateMotion dur=\"6s\" begin=\"0s\" repeatCount=\"indefinite\" path=\"M0 110 L110 110 L150 150 L260 150 L300 190\"\/><\/circle>\r\n          <circle class=\"lgdr-halo\" r=\"9\"><animateMotion dur=\"8s\" begin=\"-3s\" repeatCount=\"indefinite\" path=\"M0 360 L120 360 L160 400 L300 400\"\/><\/circle>\r\n          <circle class=\"lgdr-pulse\" r=\"3\"><animateMotion dur=\"8s\" begin=\"-3s\" repeatCount=\"indefinite\" path=\"M0 360 L120 360 L160 400 L300 400\"\/><\/circle>\r\n          <circle class=\"lgdr-halo\" r=\"9\"><animateMotion dur=\"7s\" begin=\"-1s\" repeatCount=\"indefinite\" path=\"M0 650 L180 650 L220 690 L330 690\"\/><\/circle>\r\n          <circle class=\"lgdr-pulse\" r=\"3\"><animateMotion dur=\"7s\" begin=\"-1s\" repeatCount=\"indefinite\" path=\"M0 650 L180 650 L220 690 L330 690\"\/><\/circle>\r\n          <circle class=\"lgdr-halo\" r=\"9\"><animateMotion dur=\"9s\" begin=\"-5s\" repeatCount=\"indefinite\" path=\"M0 230 L70 230 L110 270 L200 270 L230 300 L230 420\"\/><\/circle>\r\n          <circle class=\"lgdr-pulse\" r=\"3\"><animateMotion dur=\"9s\" begin=\"-5s\" repeatCount=\"indefinite\" path=\"M0 230 L70 230 L110 270 L200 270 L230 300 L230 420\"\/><\/circle>\r\n    <\/svg>\r\n    <div class=\"lgdr-vignette\"><\/div>\r\n    <div class=\"lgdr-frame\">\r\n      <i class=\"c1\"><\/i><i class=\"c2\"><\/i><i class=\"c3\"><\/i><i class=\"c4\"><\/i>\r\n      <b class=\"l p2\"><\/b>\r\n      <b class=\"r p2\"><\/b>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"lgdr-inner\">\r\n  <header class=\"lgdr-head\">\r\n    <h2 class=\"lgdr-title\" id=\"lgdr-setup-title\">De quoi ai-je besoin ?<\/h2>\r\n    <p class=\"lgdr-intro\">Pour mettre en place LoboGuard-DR, il vous faut une licence valide, le serveur install\u00e9 sur n\u2019importe quelle machine et un acc\u00e8s de LoboGuard-DR \u00e0 l\u2019API de vos clusters Proxmox.<\/p>\r\n  <\/header>\r\n\r\n  <ol class=\"lgdr-steps\">\r\n    <li class=\"lgdr-step\">\r\n      <div class=\"lgdr-card\">\r\n        <div class=\"lgdr-face\">\r\n        <h3>1. D\u00e9ployez le serveur o\u00f9 vous voulez<\/h3>\r\n        <p>D\u00e9ployez LoboGuard-DR sur n\u2019importe quelle machine disponible, d\u2019une machine virtuelle \u00e0 un serveur d\u00e9di\u00e9. Il vous suffit de Docker et d\u2019une connectivit\u00e9 r\u00e9seau vers vos clusters Proxmox.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"lgdr-line\" aria-hidden=\"true\"><\/span>\r\n    <\/li>\r\n    <li class=\"lgdr-step\">\r\n      <div class=\"lgdr-card\">\r\n        <div class=\"lgdr-face\">\r\n        <h3>2. Acc\u00e9dez au serveur<\/h3>\r\n        <p>Par d\u00e9faut, LoboGuard-DR est accessible via https:\/\/iploboguarddr:9443 ou via le port externe d\u00e9fini au lancement de Docker.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"lgdr-line\" aria-hidden=\"true\"><\/span>\r\n    <\/li>\r\n    <li class=\"lgdr-step\">\r\n      <div class=\"lgdr-card\">\r\n        <div class=\"lgdr-face\">\r\n        <h3>3. Changez le mot de passe<\/h3>\r\n        <p>Lors de votre premi\u00e8re connexion, vous devrez obligatoirement changer votre mot de passe.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"lgdr-line\" aria-hidden=\"true\"><\/span>\r\n    <\/li>\r\n    <li class=\"lgdr-step\">\r\n      <div class=\"lgdr-card\">\r\n        <div class=\"lgdr-face\">\r\n        <h3>4. Lancez l\u2019assistant<\/h3>\r\n        <p>Lancez l\u2019assistant de configuration intelligent, qui vous guide \u00e9tape par \u00e9tape.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"lgdr-line\" aria-hidden=\"true\"><\/span>\r\n    <\/li>\r\n    <li class=\"lgdr-step\">\r\n      <div class=\"lgdr-card\">\r\n        <div class=\"lgdr-face\">\r\n        <h3>5. Activez les mirrors<\/h3>\r\n        <p>Dans la section mirror, vous verrez les machines des pools indiqu\u00e9s dans l\u2019assistant. Prot\u00e9gez vos machines.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"lgdr-line\" aria-hidden=\"true\"><\/span>\r\n    <\/li>\r\n    <li class=\"lgdr-step\">\r\n      <div class=\"lgdr-card\">\r\n        <div class=\"lgdr-face\">\r\n        <h3>6. Lancez la supervision<\/h3>\r\n        <p>Dans la section supervision, vous verrez l\u2019\u00e9tat de vos r\u00e9plications. V\u00e9rifiez les param\u00e8tres pour les ajuster \u00e0 votre convenance.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"lgdr-line\" aria-hidden=\"true\"><\/span>\r\n    <\/li>\r\n  <\/ol>\r\n  <p class=\"lgdr-status\" aria-live=\"polite\">Circuit ferm\u00e9. LoboGuard-DR prot\u00e8ge vos clusters.<\/p>\r\n  <\/div>\r\n\r\n  <div class=\"lgdr-sheet\" aria-hidden=\"true\">\r\n    <div class=\"lgdr-wedge\" style=\"--tx:-25.2vmin;--ty:-33.6vmin;--rot:-12deg\"><div class=\"lgdr-leaf\" style=\"clip-path:polygon(50% 50%, 0% 0%, 25% 0%)\"><span>LoboGuard-DR<\/span><\/div><\/div>\r\n    <div class=\"lgdr-wedge\" style=\"--tx:-12.6vmin;--ty:-50.4vmin;--rot:19deg\"><div class=\"lgdr-leaf\" style=\"clip-path:polygon(50% 50%, 25% 0%, 50% 0%)\"><span>LoboGuard-DR<\/span><\/div><\/div>\r\n    <div class=\"lgdr-wedge\" style=\"--tx:15.0vmin;--ty:-60.1vmin;--rot:-26deg\"><div class=\"lgdr-leaf\" style=\"clip-path:polygon(50% 50%, 50% 0%, 75% 0%)\"><span>LoboGuard-DR<\/span><\/div><\/div>\r\n    <div class=\"lgdr-wedge\" style=\"--tx:25.2vmin;--ty:-33.6vmin;--rot:33deg\"><div class=\"lgdr-leaf\" style=\"clip-path:polygon(50% 50%, 75% 0%, 100% 0%)\"><span>LoboGuard-DR<\/span><\/div><\/div>\r\n    <div class=\"lgdr-wedge\" style=\"--tx:43.2vmin;--ty:-28.9vmin;--rot:-12deg\"><div class=\"lgdr-leaf\" style=\"clip-path:polygon(50% 50%, 100% 0%, 100% 33%)\"><span>LoboGuard-DR<\/span><\/div><\/div>\r\n    <div class=\"lgdr-wedge\" style=\"--tx:62.0vmin;--ty:-0.6vmin;--rot:19deg\"><div class=\"lgdr-leaf\" style=\"clip-path:polygon(50% 50%, 100% 33%, 100% 66%)\"><span>LoboGuard-DR<\/span><\/div><\/div>\r\n    <div class=\"lgdr-wedge\" style=\"--tx:35.1vmin;--ty:23.1vmin;--rot:-26deg\"><div class=\"lgdr-leaf\" style=\"clip-path:polygon(50% 50%, 100% 66%, 100% 100%)\"><span>LoboGuard-DR<\/span><\/div><\/div>\r\n    <div class=\"lgdr-wedge\" style=\"--tx:31.2vmin;--ty:41.6vmin;--rot:33deg\"><div class=\"lgdr-leaf\" style=\"clip-path:polygon(50% 50%, 100% 100%, 75% 100%)\"><span>LoboGuard-DR<\/span><\/div><\/div>\r\n    <div class=\"lgdr-wedge\" style=\"--tx:15.0vmin;--ty:60.1vmin;--rot:-12deg\"><div class=\"lgdr-leaf\" style=\"clip-path:polygon(50% 50%, 75% 100%, 50% 100%)\"><span>LoboGuard-DR<\/span><\/div><\/div>\r\n    <div class=\"lgdr-wedge\" style=\"--tx:-10.2vmin;--ty:40.7vmin;--rot:19deg\"><div class=\"lgdr-leaf\" style=\"clip-path:polygon(50% 50%, 50% 100%, 25% 100%)\"><span>LoboGuard-DR<\/span><\/div><\/div>\r\n    <div class=\"lgdr-wedge\" style=\"--tx:-31.2vmin;--ty:41.6vmin;--rot:-26deg\"><div class=\"lgdr-leaf\" style=\"clip-path:polygon(50% 50%, 25% 100%, 0% 100%)\"><span>LoboGuard-DR<\/span><\/div><\/div>\r\n    <div class=\"lgdr-wedge\" style=\"--tx:-51.7vmin;--ty:34.2vmin;--rot:33deg\"><div class=\"lgdr-leaf\" style=\"clip-path:polygon(50% 50%, 0% 100%, 0% 66%)\"><span>LoboGuard-DR<\/span><\/div><\/div>\r\n    <div class=\"lgdr-wedge\" style=\"--tx:-42.0vmin;--ty:-0.4vmin;--rot:-12deg\"><div class=\"lgdr-leaf\" style=\"clip-path:polygon(50% 50%, 0% 66%, 0% 33%)\"><span>LoboGuard-DR<\/span><\/div><\/div>\r\n    <div class=\"lgdr-wedge\" style=\"--tx:-43.2vmin;--ty:-28.9vmin;--rot:19deg\"><div class=\"lgdr-leaf\" style=\"clip-path:polygon(50% 50%, 0% 33%, 0% 0%)\"><span>LoboGuard-DR<\/span><\/div><\/div>\r\n    <div class=\"lgdr-heat\"><\/div>\r\n    <div class=\"lgdr-dim\"><\/div>\r\n    <div class=\"lgdr-cracks\"><\/div>\r\n    <div class=\"lgdr-ghost\"><span>LoboGuard-DR<\/span><\/div>\r\n    <div class=\"lgdr-core\"><\/div>\r\n    <div class=\"lgdr-whiteout\"><\/div>\r\n    <div class=\"lgdr-flash\"><\/div>\r\n    <div class=\"lgdr-ring\"><\/div>\r\n    <div class=\"lgdr-ring r2\"><\/div>\r\n    <div class=\"lgdr-ring r3\"><\/div>\r\n    <div class=\"lgdr-sparks\"><\/div>\r\n  <\/div>\r\n\r\n  <script nowprocket>\r\n    (function () {\r\n      var s = document.currentScript;\r\n      var root = s && s.closest ? s.closest('.lgdr-setup') : null;\r\n      if (!root) {\r\n        var all = document.querySelectorAll('.lgdr-setup');\r\n        for (var n = 0; n < all.length; n++) { if (!all[n].__lgdrInit) { root = all[n]; break; } }\r\n      }\r\n      if (!root || root.__lgdrInit) return;\r\n      root.__lgdrInit = true;\r\n\r\n      var steps = Array.prototype.slice.call(root.querySelectorAll('.lgdr-step'));\r\n      var reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n      var fine = window.matchMedia('(hover: hover) and (pointer: fine)').matches;\r\n      var ticking = false;\r\n      if (reduce) Array.prototype.forEach.call(root.querySelectorAll('.lgdr-art'), function (a) { if (a.pauseAnimations) a.pauseAnimations(); });\r\n\r\n      function update() {\r\n        ticking = false;\r\n        var line = window.innerHeight * 0.65;\r\n        steps.forEach(function (li) {\r\n          var r = li.getBoundingClientRect();\r\n          li.classList.toggle('is-lit', r.top + r.height \/ 2 < line);\r\n        });\r\n        root.classList.toggle('is-complete', steps[steps.length - 1].classList.contains('is-lit'));\r\n      }\r\n      function request() { if (!ticking) { ticking = true; requestAnimationFrame(update); } }\r\n      window.addEventListener('scroll', request, { passive: true });\r\n      window.addEventListener('resize', request);\r\n      update();\r\n\r\n      if (fine && !reduce) {\r\n        steps.forEach(function (li) {\r\n          var card = li.querySelector('.lgdr-card');\r\n          var face = li.querySelector('.lgdr-face');\r\n          card.addEventListener('pointermove', function (e) {\r\n            var r = face.getBoundingClientRect();\r\n            var x = (e.clientX - r.left) \/ r.width, y = (e.clientY - r.top) \/ r.height;\r\n            face.style.setProperty('--ry', ((x - 0.5) * 14).toFixed(2) + 'deg');\r\n            face.style.setProperty('--rx', ((0.5 - y) * 14).toFixed(2) + 'deg');\r\n            face.style.setProperty('--gx', (x * 100).toFixed(1) + '%');\r\n            face.style.setProperty('--gy', (y * 100).toFixed(1) + '%');\r\n            card.classList.add('is-tilting');\r\n          });\r\n          card.addEventListener('pointerleave', function () {\r\n            face.style.setProperty('--rx', '0deg');\r\n            face.style.setProperty('--ry', '0deg');\r\n            card.classList.remove('is-tilting');\r\n          });\r\n        });\r\n      }\r\n\r\n      function revealCards() {\r\n        var io = new IntersectionObserver(function (entries) {\r\n          var k = 0;\r\n          entries.forEach(function (e) {\r\n            if (e.isIntersecting) {\r\n              e.target.style.setProperty('--lgdr-delay', (k++ * 140) + 'ms');\r\n              e.target.classList.add('is-visible');\r\n              io.unobserve(e.target);\r\n            }\r\n          });\r\n        }, { threshold: 0.15 });\r\n        steps.forEach(function (st) { io.observe(st); });\r\n      }\r\n\r\n      if (!('IntersectionObserver' in window) || reduce) return;\r\n\r\n      if (root.getBoundingClientRect().top < window.innerHeight * 0.6) return;\r\n\r\n      root.classList.add('lgdr-anim');\r\n      root.classList.add('lgdr-cover');\r\n\r\n      var sheet = root.querySelector('.lgdr-sheet');\r\n      var wedges = Array.prototype.slice.call(root.querySelectorAll('.lgdr-wedge'));\r\n      var corners = [];\r\n      wedges.forEach(function (w) {\r\n        var leaf = w.firstElementChild;\r\n        var pts = (leaf.getAttribute('style').match(\/-?[\\d.]+%\\s+-?[\\d.]+%\/g) || []).map(function (p) {\r\n          var v = p.split(\/\\s+\/);\r\n          return [parseFloat(v[0]), parseFloat(v[1])];\r\n        });\r\n        if (pts.length < 3) return;\r\n        corners.push(pts[1]);\r\n        var xs = pts.map(function (p) { return p[0]; }), ys = pts.map(function (p) { return p[1]; });\r\n        var x0 = Math.min.apply(null, xs), x1 = Math.max.apply(null, xs);\r\n        var y0 = Math.min.apply(null, ys), y1 = Math.max.apply(null, ys);\r\n        var bw = Math.max(x1 - x0, 1), bh = Math.max(y1 - y0, 1);\r\n        w.style.inset = 'auto';\r\n        w.style.left = x0 + '%';\r\n        w.style.top = y0 + '%';\r\n        w.style.width = bw + '%';\r\n        w.style.height = bh + '%';\r\n        leaf.style.inset = 'auto';\r\n        leaf.style.left = (-x0 \/ bw * 100) + '%';\r\n        leaf.style.top = (-y0 \/ bh * 100) + '%';\r\n        leaf.style.width = (100 \/ bw * 100) + '%';\r\n        leaf.style.height = (100 \/ bh * 100) + '%';\r\n      });\r\n\r\n      var crackBox = root.querySelector('.lgdr-cracks');\r\n      var cracks = corners.map(function (c, i) {\r\n        var el = document.createElement('i');\r\n        el.className = 'lgdr-crack';\r\n        el.style.setProperty('--d', [0, 0.2, 0.38][i % 3] + 's');\r\n        crackBox.appendChild(el);\r\n        return el;\r\n      });\r\n      function layoutCracks() {\r\n        var W = sheet.offsetWidth, H = sheet.offsetHeight;\r\n        cracks.forEach(function (el, i) {\r\n          var dx = (corners[i][0] - 50) \/ 100 * W, dy = (corners[i][1] - 50) \/ 100 * H;\r\n          el.style.setProperty('--len', Math.hypot(dx, dy).toFixed(1) + 'px');\r\n          el.style.setProperty('--a', (Math.atan2(dy, dx) * 180 \/ Math.PI).toFixed(2) + 'deg');\r\n        });\r\n      }\r\n\r\n      var sparks = root.querySelector('.lgdr-sparks');\r\n      for (var i = 0; i < 36; i++) {\r\n        var a = Math.random() * Math.PI * 2, d = 22 + Math.random() * 48;\r\n        var el = document.createElement('i');\r\n        el.style.cssText = '--dx:' + (Math.cos(a) * d).toFixed(1) + 'vmin;--dy:' + (Math.sin(a) * d).toFixed(1) + 'vmin;--s:' +\r\n          (2 + Math.round(Math.random() * 6)) + 'px;--t:' + (0.9 + Math.random() * 0.9).toFixed(2) + 's;--dl:' + (Math.random() * 0.15).toFixed(2) + 's';\r\n        sparks.appendChild(el);\r\n      }\r\n\r\n      var done = false;\r\n      function cleanup() {\r\n        if (done) return;\r\n        done = true;\r\n        root.classList.remove('lgdr-cover', 'is-charging', 'is-implode', 'is-boom');\r\n      }\r\n\r\n      var watcher = new IntersectionObserver(function (entries) {\r\n        if (!entries[0].isIntersecting) return;\r\n        watcher.disconnect();\r\n        setTimeout(function () {\r\n          layoutCracks();\r\n          requestAnimationFrame(function () { root.classList.add('is-charging'); });\r\n          setTimeout(function () {\r\n            root.classList.add('is-implode');\r\n            setTimeout(function () {\r\n              root.classList.add('is-boom');\r\n              setTimeout(revealCards, 700);\r\n              setTimeout(cleanup, 2400);\r\n            }, 220);\r\n          }, 1500);\r\n        }, 250);\r\n      }, { rootMargin: '0px 0px -40% 0px', threshold: 0 });\r\n      watcher.observe(root);\r\n\r\n      sheet.addEventListener('animationend', function (e) {\r\n        if (e.animationName === 'lgdr-blast') cleanup();\r\n      });\r\n    })();\r\n  <\/script>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-29f7fa22 e-flex e-con-boxed e-con e-parent\" data-id=\"29f7fa22\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-159a66a9 e-con-full e-flex e-con e-child\" data-id=\"159a66a9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-54c92bb2 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"54c92bb2\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">PARTENAIRES<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-71f65487 e-flex e-con-boxed e-con e-parent\" data-id=\"71f65487\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6dd665f4 elementor-invisible elementor-widget elementor-widget-image-carousel\" data-id=\"6dd665f4\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;slides_to_show&quot;:&quot;5&quot;,&quot;navigation&quot;:&quot;none&quot;,&quot;slides_to_show_tablet&quot;:&quot;4&quot;,&quot;slides_to_show_mobile&quot;:&quot;2&quot;,&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;_animation_delay&quot;:280,&quot;lazyload&quot;:&quot;yes&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;speed&quot;:500}\" data-widget_type=\"image-carousel.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-image-carousel-wrapper swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Image Carousel\" dir=\"ltr\">\n\t\t\t<div class=\"elementor-image-carousel swiper-wrapper\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 sur 6\"><figure class=\"swiper-slide-inner\"><img class=\"swiper-slide-image swiper-lazy\" data-src=\"https:\/\/loboguard.com\/wp-content\/uploads\/2025\/11\/logo-proxmox-2.svg\" alt=\"Proxmox\" \/><div class=\"swiper-lazy-preloader\"><\/div><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 sur 6\"><figure class=\"swiper-slide-inner\"><img class=\"swiper-slide-image swiper-lazy\" data-src=\"https:\/\/loboguard.com\/wp-content\/uploads\/2025\/11\/logo-fujitsu-2.svg\" alt=\"Fujitsu\" \/><div class=\"swiper-lazy-preloader\"><\/div><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"3 sur 6\"><figure class=\"swiper-slide-inner\"><img class=\"swiper-slide-image swiper-lazy\" data-src=\"https:\/\/loboguard.com\/wp-content\/uploads\/2025\/11\/logo-ovh-vertical-2.svg\" alt=\"OVHcloud\" \/><div class=\"swiper-lazy-preloader\"><\/div><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"4 sur 6\"><figure class=\"swiper-slide-inner\"><img class=\"swiper-slide-image swiper-lazy\" data-src=\"https:\/\/loboguard.com\/wp-content\/uploads\/2025\/11\/logo-virtual-cable-vertical-2.svg\" alt=\"VirtualCable\" \/><div class=\"swiper-lazy-preloader\"><\/div><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"5 sur 6\"><figure class=\"swiper-slide-inner\"><img class=\"swiper-slide-image swiper-lazy\" data-src=\"https:\/\/loboguard.com\/wp-content\/uploads\/2025\/11\/logo-ucm-2.svg\" alt=\"Universidad Complutense de Madrid\" \/><div class=\"swiper-lazy-preloader\"><\/div><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"6 sur 6\"><figure class=\"swiper-slide-inner\"><img class=\"swiper-slide-image swiper-lazy\" data-src=\"https:\/\/loboguard.com\/wp-content\/uploads\/2026\/05\/Velorcios-scaled.png\" alt=\"Velorcios\" \/><div class=\"swiper-lazy-preloader\"><\/div><\/figure><\/div>\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-160e8eca e-flex e-con-boxed e-con e-parent\" data-id=\"160e8eca\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-3fb1c307 e-con-full e-flex e-con e-child\" data-id=\"3fb1c307\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-57b67ad2 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"57b67ad2\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">BLOG<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-13515079 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"13515079\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;_animation_delay&quot;:70}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Derni\u00e8res nouvelles<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4ee44657 e-flex e-con-boxed e-con e-parent\" data-id=\"4ee44657\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-3413a16c e-con-full e-flex e-con e-child\" data-id=\"3413a16c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c0cc9d0 elementor-widget elementor-widget-shortcode\" data-id=\"c0cc9d0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div class=\"feedzy-914bee3c1118afbbb833ea4d58b28963 feedzy-rss\"><ul><li  style=\"padding: 15px 0 25px\" class=\"rss_item\"><span class=\"title\"><a href=\"https:\/\/tech.lobobrothers.com\/en\/smart-honeypot-that-returns-attacks-to-the-attacker\/\" target=\"_blank\" rel=\" noopener\">Smart Honeypot that Returns Attacks to the Attacker<\/a><\/span><div class=\"rss_content\" style=\"\"><small>par <a href=\"\/\/tech.lobobrothers.com\" target=\"_blank\" title=\"tech.lobobrothers.com\">admin<\/a> le 26 juillet 2025 \u00e0 17h20 <\/small><p>The Attacker\u2019s Infinite Loop In this guide, I will teach you how to deploy a honeypot that not only simulates [&hellip;]<\/p><\/div><\/li><li  style=\"padding: 15px 0 25px\" class=\"rss_item\"><span class=\"title\"><a href=\"https:\/\/tech.lobobrothers.com\/en\/send-all-traffic-through-the-tor-network\/\" target=\"_blank\" rel=\" noopener\">Send all traffic through the Tor network<\/a><\/span><div class=\"rss_content\" style=\"\"><small>par <a href=\"\/\/tech.lobobrothers.com\" target=\"_blank\" title=\"tech.lobobrothers.com\">TL<\/a> le 3 juillet 2025 \u00e0 17h41 <\/small><p>Torifying Traffic Let\u2019s create a short guide on how to route all your machine\u2019s traffic through the Tor network. [&hellip;]<\/p><\/div><\/li><li  style=\"padding: 15px 0 25px\" class=\"rss_item\"><span class=\"title\"><a href=\"https:\/\/tech.lobobrothers.com\/en\/har2locust\/\" target=\"_blank\" rel=\" noopener\">Har2locust<\/a><\/span><div class=\"rss_content\" style=\"\"><small>par <a href=\"\/\/tech.lobobrothers.com\" target=\"_blank\" title=\"tech.lobobrothers.com\">TL<\/a> le 26 avril 2025 \u00e0 11h30 <\/small><p>Creating a Locust file with Har2Locust As promised, if you have followed the locust.io post: load testing made easy, I [&hellip;]<\/p><\/div><\/li><li  style=\"padding: 15px 0 25px\" class=\"rss_item\"><span class=\"title\"><a href=\"https:\/\/tech.lobobrothers.com\/en\/locust-io-load-testing-made-easy\/\" target=\"_blank\" rel=\" noopener\">Locust.io: Load Testing Made Easy<\/a><\/span><div class=\"rss_content\" style=\"\"><small>par <a href=\"\/\/tech.lobobrothers.com\" target=\"_blank\" title=\"tech.lobobrothers.com\">TL<\/a> le 17 avril 2025 \u00e0 10h31 <\/small><p>What is Locust.io and why should you care? Imagine you\u2019ve just launched your website or app. Everything looks great, [&hellip;]<\/p><\/div><\/li><\/ul> <\/div><style type=\"text\/css\" media=\"all\">.feedzy-rss .rss_item .rss_image{float:left;position:relative;border:none;text-decoration:none;max-width:100%}.feedzy-rss .rss_item .rss_image span{display:inline-block;position:absolute;width:100%;height:100%;background-position:50%;background-size:cover}.feedzy-rss .rss_item .rss_image{margin:.3em 1em 0 0;content-visibility:auto}.feedzy-rss ul{list-style:none}.feedzy-rss ul li{display:inline-block}<\/style><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>LOBOGUARDR\u00c9CUP\u00c9RATION APR\u00c8S SINISTRE PROXMOX Fini les nuits blanches \u00e0 surveiller votre infrastructure. LoboGuard-DR r\u00e9plique vos donn\u00e9es entre deux clusters avec une efficacit\u00e9 redoutable. Si un cluster tombe en panne, l&rsquo;ensemble de votre infrastructure reste op\u00e9rationnelle. Votre Proxmox, vos donn\u00e9es, votre d\u00e9cision. Qu\u2019est-ce que LoboGuard-DR LoboGuard-DR est une solution de reprise apr\u00e8s sinistre s\u00e9curis\u00e9e, avanc\u00e9e et [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1686","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Home LoboGuard-DR - LoboGuard<\/title>\n<meta name=\"description\" content=\"LoboGuard-DR , reprise apr\u00e8s sinistre auto-h\u00e9berg\u00e9e pour Proxmox et Ceph. R\u00e9plication RBD automatis\u00e9e, basculement en un clic et protection anti split-brain.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/loboguard.com\/fr\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Home LoboGuard-DR - LoboGuard\" \/>\n<meta property=\"og:description\" content=\"LoboGuard-DR , reprise apr\u00e8s sinistre auto-h\u00e9berg\u00e9e pour Proxmox et Ceph. R\u00e9plication RBD automatis\u00e9e, basculement en un clic et protection anti split-brain.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/loboguard.com\/fr\/\" \/>\n<meta property=\"og:site_name\" content=\"LoboGuard\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-20T06:44:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/loboguard.com\/wp-content\/uploads\/2026\/02\/monitoring.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1917\" \/>\n\t<meta property=\"og:image:height\" content=\"990\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@LoboBrothers\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/\",\"url\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/\",\"name\":\"Home LoboGuard-DR - LoboGuard\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/loboguard.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/monitoring.png\",\"datePublished\":\"2025-08-27T12:29:40+00:00\",\"dateModified\":\"2026-10-20T06:44:26+00:00\",\"description\":\"LoboGuard-DR , reprise apr\u00e8s sinistre auto-h\u00e9berg\u00e9e pour Proxmox et Ceph. R\u00e9plication RBD automatis\u00e9e, basculement en un clic et protection anti split-brain.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/loboguard.com\\\/fr\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/#primaryimage\",\"url\":\"https:\\\/\\\/loboguard.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/monitoring.png\",\"contentUrl\":\"https:\\\/\\\/loboguard.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/monitoring.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Home LoboGuard-DR\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/\",\"name\":\"LoboGuard\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/#organization\",\"name\":\"Lobo Brothers Technology\",\"alternateName\":\"LoboGuard\",\"url\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/loboguard.com\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/cropped-loboguard.png\",\"contentUrl\":\"https:\\\/\\\/loboguard.com\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/cropped-loboguard.png\",\"width\":512,\"height\":512,\"caption\":\"Lobo Brothers Technology\"},\"image\":{\"@id\":\"https:\\\/\\\/loboguard.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/LoboBrothers\",\"https:\\\/\\\/es.linkedin.com\\\/company\\\/lobobrothers\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Home LoboGuard-DR - LoboGuard","description":"LoboGuard-DR , reprise apr\u00e8s sinistre auto-h\u00e9berg\u00e9e pour Proxmox et Ceph. R\u00e9plication RBD automatis\u00e9e, basculement en un clic et protection anti split-brain.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/loboguard.com\/fr\/","og_locale":"fr_FR","og_type":"article","og_title":"Home LoboGuard-DR - LoboGuard","og_description":"LoboGuard-DR , reprise apr\u00e8s sinistre auto-h\u00e9berg\u00e9e pour Proxmox et Ceph. R\u00e9plication RBD automatis\u00e9e, basculement en un clic et protection anti split-brain.","og_url":"https:\/\/loboguard.com\/fr\/","og_site_name":"LoboGuard","article_modified_time":"2026-10-20T06:44:26+00:00","og_image":[{"width":1917,"height":990,"url":"https:\/\/loboguard.com\/wp-content\/uploads\/2026\/02\/monitoring.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_site":"@LoboBrothers","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/loboguard.com\/fr\/","url":"https:\/\/loboguard.com\/fr\/","name":"Home LoboGuard-DR - LoboGuard","isPartOf":{"@id":"https:\/\/loboguard.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/loboguard.com\/fr\/#primaryimage"},"image":{"@id":"https:\/\/loboguard.com\/fr\/#primaryimage"},"thumbnailUrl":"https:\/\/loboguard.com\/wp-content\/uploads\/2026\/02\/monitoring.png","datePublished":"2025-08-27T12:29:40+00:00","dateModified":"2026-10-20T06:44:26+00:00","description":"LoboGuard-DR , reprise apr\u00e8s sinistre auto-h\u00e9berg\u00e9e pour Proxmox et Ceph. R\u00e9plication RBD automatis\u00e9e, basculement en un clic et protection anti split-brain.","breadcrumb":{"@id":"https:\/\/loboguard.com\/fr\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/loboguard.com\/fr\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/loboguard.com\/fr\/#primaryimage","url":"https:\/\/loboguard.com\/wp-content\/uploads\/2026\/02\/monitoring.png","contentUrl":"https:\/\/loboguard.com\/wp-content\/uploads\/2026\/02\/monitoring.png"},{"@type":"BreadcrumbList","@id":"https:\/\/loboguard.com\/fr\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/loboguard.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Home LoboGuard-DR"}]},{"@type":"WebSite","@id":"https:\/\/loboguard.com\/fr\/#website","url":"https:\/\/loboguard.com\/fr\/","name":"LoboGuard","description":"","publisher":{"@id":"https:\/\/loboguard.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/loboguard.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/loboguard.com\/fr\/#organization","name":"Lobo Brothers Technology","alternateName":"LoboGuard","url":"https:\/\/loboguard.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/loboguard.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/loboguard.com\/wp-content\/uploads\/2025\/08\/cropped-loboguard.png","contentUrl":"https:\/\/loboguard.com\/wp-content\/uploads\/2025\/08\/cropped-loboguard.png","width":512,"height":512,"caption":"Lobo Brothers Technology"},"image":{"@id":"https:\/\/loboguard.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/LoboBrothers","https:\/\/es.linkedin.com\/company\/lobobrothers"]}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/loboguard.com\/fr\/wp-json\/wp\/v2\/pages\/1686","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/loboguard.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/loboguard.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/loboguard.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/loboguard.com\/fr\/wp-json\/wp\/v2\/comments?post=1686"}],"version-history":[{"count":41,"href":"https:\/\/loboguard.com\/fr\/wp-json\/wp\/v2\/pages\/1686\/revisions"}],"predecessor-version":[{"id":4150,"href":"https:\/\/loboguard.com\/fr\/wp-json\/wp\/v2\/pages\/1686\/revisions\/4150"}],"wp:attachment":[{"href":"https:\/\/loboguard.com\/fr\/wp-json\/wp\/v2\/media?parent=1686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}