diff --git a/Vermine 2047/layout_vermine.html b/Vermine 2047/layout_vermine.html
new file mode 100644
index 0000000000..9d364e61d6
--- /dev/null
+++ b/Vermine 2047/layout_vermine.html
@@ -0,0 +1,945 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Caractéristiques
+
+
+
+
Physiques
+
+
+
+
+
+
+
+
+
+
+
Manuelles
+
+
+
+
+
+
+
+
+
+
+
Mentales
+
+
+
+
+
+
+
+
+
+
+
Sociales
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Compétences
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Blessures
+
+
+
Légères
+
+
Lourdes
+
+
Fatales
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Vermine 2047/preview_vermine.jpg b/Vermine 2047/preview_vermine.jpg
new file mode 100644
index 0000000000..dec07f9113
Binary files /dev/null and b/Vermine 2047/preview_vermine.jpg differ
diff --git a/Vermine 2047/sheet.json b/Vermine 2047/sheet.json
new file mode 100644
index 0000000000..e35c936c33
--- /dev/null
+++ b/Vermine 2047/sheet.json
@@ -0,0 +1,8 @@
+{
+ "html": "layout_vermine.html",
+ "css": "style_vermine.css",
+ "authors": "BlackyB",
+ "roll20userid": "888572",
+ "preview": "preview_vermine.jpg",
+ "instructions": "Vermine 2047 is a reboot of a French RPG called 'Vermine'."
+}
diff --git a/Vermine 2047/style_vermine.css b/Vermine 2047/style_vermine.css
new file mode 100644
index 0000000000..d27c855832
--- /dev/null
+++ b/Vermine 2047/style_vermine.css
@@ -0,0 +1,436 @@
+.charsheet div, .charsheet section, .charsheet label{
+ box-sizing: border-box;
+}
+
+.charsheet h1, .charsheet h2, .charsheet h3, .charsheet p, .charsheet input{
+ text-transform: uppercase;
+ letter-spacing: 0.3rem;
+ padding: 0;
+ margin: 0;
+}
+
+.charsheet h1{
+ font-size: 3.5rem;
+ padding: 20px;
+}
+
+.charsheet h2{
+ font-size: 3rem;
+ padding: 20px
+ color: #869386;
+}
+
+.charsheet h3{
+ font-size: 2.50rem;
+ padding: 20px;
+ color: #42493e;
+}
+
+.charsheet p{
+ font-size: 1.5rem;
+ padding: 10px;
+}
+
+.charsheet input{
+ z-index: 10;
+ background-color: transparent;
+ font-size: 2rem;
+}
+
+div.sheet-tab-content { display: none; }
+
+input.sheet-tab1:checked ~ div.sheet-tab1,
+input.sheet-tab2:checked ~ div.sheet-tab2{ display: block; }
+
+input.sheet-tab {
+ width: 150px;
+ height: 30px;
+ position: relative;
+ top: 5px;
+ left: 6px;
+ margin: -1.5px;
+ cursor: pointer;
+ z-index: 1;
+ opacity: 0;
+}
+
+input.sheet-tab + span::before {
+ content: attr(title);
+ text-align: center;
+ display: inline-block;
+ border-bottom: 1px solid #000;
+ background: #fff;
+ background: linear-gradient(to top, #c8c8c8, #fff, #c8c8c8);
+ width: 150px;
+ height: 30px;
+ font-size: 18px;
+ position: relative;
+ top: 4px;
+ left: -142px;
+}
+
+input.sheet-tab:checked + span::before {
+ background: #afb798;
+ border-bottom-color: transparent;
+}
+
+input.sheet-tab:not(:first-child) + span::before { border-left: none; }
+
+input.sheet-tab2 + span::before {
+ background: #fee;
+ background: linear-gradient(to top, #c8c8c8, #fff, #c8c8c8);
+ left: -300px;
+}
+input.sheet-tab2{
+ left: -150px;
+}
+
+input.sheet-tab2:checked + span::before {
+ background: #afb798;
+}
+
+div.sheet-tab-content {
+ border: 1px solid #a8a8a8;
+ border-top-color: #000;
+ margin: 2px 0 0 5px;
+}
+
+.sheet-big-Text{
+ font-size: 1.5rem;
+}
+
+
+.sheet-wrapper{
+ min-width: 900px;
+ padding: 100px 10px;
+ background-color: #afb798;
+ text-transform: uppercase;
+ font-family: "Candal";
+}
+
+.sheet-flex-row{
+ display: flex;
+ flex-direction: row;
+}
+
+.sheet-flex-col{
+ display: flex;
+ flex-direction: column;
+}
+
+.sheet-wrap{
+ flex-wrap: wrap;
+}
+
+.sheet-center{
+ justify-content: center;
+ align-items: center;
+}
+
+.sheet-start{
+ justify-content: flex-start;
+}
+
+.sheet-end{
+ justify-content: flex-end;
+}
+.sheet-around{
+ justify-content: space-around;
+}
+
+.sheet-between{
+ justify-content: space-between;
+}
+
+.sheet-align-baseline{
+ align-items: baseline;
+}
+
+.sheet-txt-center{
+ text-align: center;
+}
+
+.sheet-txt-right{
+ text-align: right;
+}
+
+.sheet-m-auto{
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.sheet-mx-20{
+ margin: 0 20px;
+}
+
+.sheet-my-10{
+ margin: 10px 0;
+}
+
+.sheet-mt-20{
+ margin-top: 20px;
+}
+
+.sheet-mt-50{
+ margin-top: 50px;
+}
+
+.sheet-p-20{
+ padding: 0 30px;
+}
+
+.sheet-pr-10{
+ padding-right: 10px;
+}
+
+.sheet-spacer{
+ padding: 25px 0;
+}
+
+.sheet-w-10{
+ width: 10%;
+}
+
+.sheet-w-20{
+ width: 20%;
+}
+
+.sheet-w-25{
+ width: 25%;
+}
+
+.sheet-w-33{
+ width: 33%;
+}
+
+.sheet-w-40{
+ width: 40%;
+}
+
+.sheet-w-50{
+ width: 50%;
+}
+
+.sheet-w-60{
+ width: 60%;
+}
+
+.sheet-w-66{
+ width: 66%;
+}
+
+.sheet-w-80{
+ width: 80%;
+}
+
+.sheet-w-90{
+ width: 90%;
+ margin-right: auto;
+ margin-left: auto;
+}
+
+.sheet-w-100{
+ width: 100%;
+}
+
+.sheet-no-border{
+ border: none;
+}
+
+.sheet-short-input{
+ width: 30px !important;
+}
+
+.sheet-spec-input{
+ border-top: none;
+ border-right: none;
+ border-left: none;
+ margin: 5px;
+ height: 3rem !important;
+}
+
+.sheet-liner{
+ margin: 30px 0;
+ height: 5px;
+ width: 90%;
+ margin-right: auto;
+ margin-left: auto;
+ background-color: black;
+}
+
+.sheet-rotate-90{
+ transform: rotate(90deg);
+}
+
+.sheet-rotate-neg90{
+ transform: rotate(-90deg);
+}
+
+.charsheet input::-webkit-outer-spin-button,
+.charsheet input::-webkit-inner-spin-button {
+ /* display: none; <- Crashes Chrome on hover */
+ -webkit-appearance: none;
+ margin: 0; /* <-- Apparently some margin are still there even though it's hidden */
+}
+
+.charsheet input[type=number] {
+ -moz-appearance:textfield; /* Firefox */
+}
+
+.sheet-hexagon {
+ position: relative;
+ width: 60px;
+ height: 34.64px;
+ background-color: #d6dad7;
+ margin: 17.32px 0;
+}
+
+.sheet-hexagon input{
+ border-bottom: 2px solid black;
+ text-align: center;
+}
+
+.sheet-hexagon:before,
+.sheet-hexagon:after {
+ content: "";
+ position: absolute;
+ width: 0;
+ border-left: 30px solid transparent;
+ border-right: 30px solid transparent;
+}
+
+.sheet-hexagon:before {
+ bottom: 100%;
+ border-bottom: 17.32px solid #d6dad7;
+}
+
+.sheet-hexagon:after {
+ top: 100%;
+ width: 0;
+ border-top: 17.32px solid #d6dad7;
+}
+
+.sheet-small-hexagon {
+ position: relative;
+ width: 45px;
+ height: 25.98px;
+ background-color: #d6dad7;
+ margin: 12.99px 0;
+}
+
+.sheet-small-hexagon p{
+ font-size: 1rem;
+ padding: 0;
+}
+
+.sheet-small-hexagon:before,
+.sheet-small-hexagon:after {
+ content: "";
+ position: absolute;
+ width: 0;
+ border-left: 22.5px solid transparent;
+ border-right: 22.5px solid transparent;
+}
+
+.sheet-small-hexagon:before {
+ bottom: 100%;
+ border-bottom: 12.99px solid #d6dad7;
+}
+
+.sheet-small-hexagon:after {
+ top: 100%;
+ width: 0;
+ border-top: 12.99px solid #d6dad7;
+}
+
+.charsheet:focus{
+ outline:none;
+}
+
+.charsheet .sheet-radio{
+ padding: 0;
+ margin: 0 2.5px;
+ -webkit-appearance:button;
+ -moz-appearance:button;
+ appearance:button;
+ border:4px solid #ccc;
+ border-top-color:#bbb;
+ border-left-color:#bbb;
+ background:#fff;
+ width:15px !important;
+ height:15px !important;
+ border-radius:50%;
+}
+
+.charsheet .sheet-radio-empty{
+ padding: 0;
+ margin: 0 2.5px;
+ -webkit-appearance:button;
+ -moz-appearance:button;
+ appearance:button;
+ border:4px solid #ccc;
+ border-top-color:#bbb;
+ border-left-color:#bbb;
+ background:#ccc;
+ width:15px !important;
+ height:15px !important;
+ border-radius:50%;
+}
+
+.sheet-radio:checked{
+ border:3px solid black;
+}
+
+.sheet-radio-1:checked{
+}
+.sheet-radio-2:checked{
+ background:#ccc;
+}
+.sheet-radio-3:checked{
+ background: #7f7f7f;
+}
+.sheet-radio-4:checked{
+ background: #444444;
+}
+
+.sheet-radio-Health-Small:checked{
+ background: #EA0000;
+}
+.sheet-radio-Health-Serious:checked{
+ background: #B50000;
+}
+.sheet-radio-Health-Fatal:checked{
+ background: #6B0000;
+}
+
+.sheet-hexa-top-right{
+ margin-top: 36px;
+ margin-left: -5.5px;
+}
+.sheet-hexa-bottom-left{
+ margin-top: 58.5px;
+ margin-left: -84.5px;
+}
+.sheet-hexa-bottom-right{
+ margin-top:81.5px;
+ margin-left: -5.35px;
+}
+.sheet-symetric{
+ transform: scaleX(-1);
+}
+.sheet-reposition{
+ margin-top: -3px;
+ z-index: 10;
+}
+
+.sheet-reset-position{
+ transform: scaleY(1) scaleX(-1) rotate(90deg);
+ margin-top: -3px;
+}
+
+.sheet-resume-box{
+ border: none;
+ text-align: center;
+ width: 20px !important;
+ margin: 10px;
+}