@charset "UTF-8";
/* -*- coding: utf-8 -*- */
/* style.sass -> style.css (September 27, 2019)
 *
 * (c) Olivier Pirson
 * http://www.opimedia.be/
 */
/*************
 * Constants *
 ************ */
/* Sizes */
/*********
 * Reset *
 ******** */
body,
div,
dl, dt, dd,
figure,
footer, header,
h1, h2, h3, h4, h5, h6,
ol, ul, li,
main,
p,
section,
span {
  margin: 0;
  padding: 0;
}

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

footer,
header,
main,
section {
  display: block;
}

ol,
ul {
  padding-left: 2.8em;
}

dd {
  margin-left: 2.8em;
}

/*********
 * Links *
 ******** */
a,
a[href] {
  outline: none;
  text-decoration: none;
}

a[href] {
  color: #2070b0;
}
a[href]:visited {
  color: #104060;
}
a[href]:focus, a[href]:hover {
  color: #2070f0;
  text-decoration: underline;
}
a[href]:active {
  color: #002030;
}
a[href]:focus.no-decoration, a[href]:hover.no-decoration {
  text-decoration: none;
}

a[href*="#"]:after,
a[href$="pdf"]:after,
a[href^="http://"]:before,
a[href^="https://"]:before,
a[href^="mailto:"]:before,
a.https:before {
  background-position: left bottom;
  background-repeat: no-repeat;
  content: "";
  display: inline-block;
  height: 10px;
  opacity: 0.5;
  vertical-align: text-bottom;
  width: 12px;
}

a[href*="#"]:after {
  background-image: url(../img/anchor-link--10x10-t.png);
  background-position: right bottom;
  opacity: 0.4;
}

a[href$="pdf"]:after {
  background-image: url(../img/PDF--22x24-t.png);
  background-position: right center;
  height: 24px;
  opacity: 0.7;
  vertical-align: middle;
  width: 26px;
}

a[href^="http://"]:before {
  background-image: url(../img/external-link--10x10-t.png);
}

a[href^="https://"]:before,
a.https:before {
  background-image: url(../img/external-link-https--8x10-t.png);
  width: 10px;
}

a[href*="#"]:focus:after,
a[href*="#"]:hover:after,
a[href$="pdf"]:focus:after,
a[href$="pdf"]:hover:after,
a[href^="http://"]:focus:before,
a[href^="http://"]:hover:before,
a[href^="https://"]:focus:before,
a[href^="https://"]:hover:before,
a[href^="mailto:"]:focus:before,
a[href^="mailto:"]:hover:before,
a.https:focus:before,
a.https:hover:before {
  opacity: 1;
}

a[href^="mailto:"] {
  color: #007000;
}
a[href^="mailto:"]:before {
  content: "✉";
  margin-right: 0.2ex;
}
a[href^="mailto:"]:visited {
  color: #004000;
}
a[href^="mailto:"]:focus, a[href^="mailto:"]:hover {
  color: #00a000;
  text-decoration: underline;
}
a[href^="mailto:"]:active {
  color: #003000;
}

a.no-prefix:before,
.no-prefix a:before {
  content: none;
}

a.no-suffix:after,
.no-suffix a:after {
  content: none;
}

a.Bitbucket-logo-pre-a {
  background-image: url(../img/Bitbucket.png);
  background-position: left center;
  background-repeat: no-repeat;
  display: inline-block;
  height: 20px;
  line-height: 20px;
  padding-left: 24px;
  vertical-align: middle;
}

/***********
 * General *
 ********** */
blockquote,
cite {
  font-style: italic;
  margin: 0;
  padding: 0;
}
blockquote > blockquote,
blockquote > cite,
cite > blockquote,
cite > cite {
  font-style: normal;
}
blockquote em,
blockquote i, blockquote.reverse,
cite em,
cite i,
cite.reverse {
  font-style: normal;
}
blockquote em > blockquote,
blockquote em > cite,
blockquote em > em,
blockquote em > i,
blockquote i > blockquote,
blockquote i > cite,
blockquote i > em,
blockquote i > i, blockquote.reverse > blockquote,
blockquote.reverse > cite,
blockquote.reverse > em,
blockquote.reverse > i,
cite em > blockquote,
cite em > cite,
cite em > em,
cite em > i,
cite i > blockquote,
cite i > cite,
cite i > em,
cite i > i,
cite.reverse > blockquote,
cite.reverse > cite,
cite.reverse > em,
cite.reverse > i {
  font-style: italic;
}

body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  line-height: 1.42857;
}

cite.oral-quotes:after {
  content: " »";
}
cite.oral-quotes:before {
  content: "« ";
}
cite.quotes:after {
  content: close-quote;
}
cite.quotes:before {
  content: open-quote;
}

figure {
  margin: 1ex;
  text-align: center;
}
figure > figcaption {
  font-size: smaller;
}

img {
  border: 0;
  vertical-align: middle;
}

input {
  vertical-align: middle;
}

mark {
  background-color: transparent;
  color: inherit;
  font-style: italic;
  font-weight: bold;
}

span.warning {
  background-image: url(../img/Red-warning-8-icon--32x32.png);
  background-repeat: no-repeat;
  display: inline-block;
  height: 32px;
  width: 32px;
}
span[title] {
  border-bottom: 1px dotted gray;
}

table tr {
  vertical-align: top;
}

ol > li,
ul > li {
  margin-top: 1ex;
}
ol > li:first-child,
ul > li:first-child {
  margin-top: 0;
}

.border-canonical {
  border: 1px solid blue;
  padding: 0 0.5ex;
}

.color-isolated-point {
  color: red;
}

.color-not-compatible {
  color: red;
}

.color-not-disjoint {
  color: orange;
}

.color-other-segment {
  color: #d0d0d0;
}

.filename {
  font-family: monospace;
}

.URL {
  font-family: monospace;
}

.font-variant-normal {
  font-variant: normal;
}

.hidden {
  visibility: hidden;
}

.inline {
  display: inline;
}

.margin-left-m {
  margin-left: 1em;
}

.margin-left-2m {
  margin-left: 2em;
}

.small-caps,
.surname {
  font-variant: small-caps;
}

.smallskip {
  margin-top: 1ex;
}

.medskip {
  margin-top: 2ex;
}

.bigskip {
  margin-top: 3ex;
}

.bigbigskip {
  margin-top: 6ex;
}

/**********
 * Header *
 ********* */
body > header {
  cursor: pointer;
  min-width: 400px;
  position: relative;
  text-align: center;
}
body > header:hover {
  cursor: auto;
}
body > header:hover > section.page-title {
  top: -2em;
}
body > header > section > div > h1 {
  font-style: italic;
  font-size: xx-large;
  padding: 0.5ex 0;
}
body > header > section > div > h1 > span {
  background-color: black;
  color: white;
  padding: 1ex;
}
body > header > section.page-title {
  background-color: white;
  box-shadow: 0 5px 5px gray;
  padding: 2em 0;
  position: absolute;
  left: 0;
  top: -50em;
  transition: top 0.5s;
  width: 100%;
  z-index: 1001;
}
body > header > section.page-title > div {
  margin-top: 2em;
}
body > header > section.page-title > div > h1 {
  border-bottom: 1px solid black;
  border-top: 1px solid black;
  margin-top: 0.5ex;
}
body > header > section.short-title {
  background-color: #f0f0f0;
}
body > header > section.short-title > div.title {
  box-shadow: 0 5px 5px gray;
}
body > header > section.short-title > div.title > h1 {
  align-items: center;
  display: flex;
  justify-content: space-between;
  padding: 0;
}
body > header > section.short-title > div.title > h1 > span {
  align-self: flex-end;
}

/********
 * Main *
 ******* */
main {
  border-right: 1px solid #f0f0f0;
  display: inline-block;
}
main > section {
  margin: 2em 2em 4em;
  max-width: 1000px;
}
main > section .conjecture,
main > section .lemma,
main > section .theorem {
  border-left: 1px solid silver;
  padding: 1ex;
}
main > section .conjecture > h4,
main > section .lemma > h4,
main > section .theorem > h4 {
  font-style: italic;
}
main > section .conjecture > h4:after,
main > section .lemma > h4:after,
main > section .theorem > h4:after {
  content: ".";
}
main > section .conjecture > h4.inline,
main > section .lemma > h4.inline,
main > section .theorem > h4.inline {
  margin-right: 1em;
}
main > section .proof div.qed:after {
  content: "□";
  display: flex;
  justify-content: flex-end;
}
main > section > header {
  margin-bottom: 1ex;
  padding-top: 3px;
}
main > section > header > h2 {
  border-bottom: 1px solid silver;
  border-top: 1px solid silver;
  display: inline;
  padding-left: 1.4em;
  padding-right: 1.4em;
}
main > section > header > h2 > a {
  display: none;
  margin-left: 1ex;
  margin-right: 1ex;
  position: absolute;
}
main > section > header > h2 > a[href*="#"]:after {
  background-image: none;
}
main > section > header > h2:hover > a {
  display: inline;
  text-decoration: none !important;
}
main > section > header > h2 > span:first-child {
  margin-left: -1em;
  margin-right: 1em;
}
main > section > header + section > header {
  margin-top: 1em;
}
main > section img[id$="-example"] {
  cursor: pointer;
}
main > section p {
  text-align: justify;
}
main > section p + p {
  margin-top: 1ex;
}
main > section > section > header {
  margin: 3em 0 1ex;
  padding-top: 3px;
}
main > section > section > header > h3 {
  border-bottom: 1px dotted silver;
  border-top: 1px dotted silver;
  display: inline;
  margin-left: 1em;
  padding-left: 1.4em;
  padding-right: 1.4em;
}
main > section > section > header > h3 > a {
  display: none;
  margin-left: 1ex;
  margin-right: 1ex;
  position: absolute;
}
main > section > section > header > h3 > a[href*="#"]:after {
  background-image: none;
}
main > section > section > header > h3:hover > a {
  display: inline;
  text-decoration: none !important;
}
main > section > section > header > h3 > span:first-child {
  margin-left: -1em;
  margin-right: 1em;
}
main > section > ul.references {
  padding-left: 1em;
}
main > section > ul.references > li.article > span.title {
  display: block;
  font-style: italic;
  font-weight: bold;
}
main > section > ul.references > li.ref {
  list-style-type: none;
  position: relative;
}
main > section > ul.references > li.ref:before {
  content: "[2]";
  left: -1.5em;
  position: absolute;
}
main > section > ul.references > li.ref:first-child:before {
  content: "[1]";
}
main > section > ul.references > li.ref:last-child:before {
  content: "[3]";
}

/************
 * Specific *
 *********** */
div.controls-container {
  margin: 0.5ex 0 1ex;
}
div.controls-container > div {
  align-items: center;
  display: flex;
  justify-content: space-between;
}
div.controls-container > div > ul {
  list-style-type: none;
  padding: 0;
}
div.controls-container > div > ul > li {
  margin: 0;
}

div.list-container > div {
  display: inline;
}
div.list-container > div.controls-list-container > ul {
  display: inline;
  list-style-type: none;
  padding: 0;
}
div.list-container > div.controls-list-container > ul > li {
  display: inline;
  margin: 0 1ex;
}
div.list-container > div.controls-list-container > ul > li:last-child {
  margin-right: 0;
}
div.list-container > div.controls-list-container > ul > li.sep {
  border-left: 1px solid black;
}
div.list-container > div.controls-list-container > ul > li > button {
  padding: 0;
}

div.matchings {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 1ex;
}
div.matchings div {
  align-self: center;
}
div.matchings div.matching {
  width: 422px;
}
div.matchings div.matching > .canvas-container {
  background-color: #f0f0f0;
  cursor: crosshair;
  height: 302px;
  overflow: hidden;
  position: relative;
}
div.matchings div.matching > .canvas-container > canvas {
  border: 1px solid gray;
  position: absolute;
  height: 300px;
  width: 420px;
}
div.matchings div.matching > .canvas-container.canonical > canvas {
  border-color: blue;
}
div.matchings div.matching > .infos-container {
  background-color: white;
  border: 1px solid gray;
  margin: 1ex 0;
  padding: 1ex;
  position: relative;
}
div.matchings div.matching > .infos-container > div > div {
  display: flex;
  justify-content: space-between;
}
div.matchings div.matching > .infos-container > div > div:first-child {
  margin-bottom: 1ex;
}
div.matchings div.matching > .infos-container > div > div > button {
  margin: -1ex 0;
}
div.matchings div.matching > .infos-container > div > div > span.canonical {
  border: 1px solid blue;
  padding: 0 2px;
}
div.matchings div.matching > .infos-container > div > div > span.not-canonical {
  border: 1px solid transparent;
  padding: 0 2px;
}
div.matchings div.matching > .infos-container > nav {
  position: absolute;
  right: 1ex;
  top: 3px;
}
div.matchings div.matching > .infos-container > nav > button {
  padding: 0;
}
div.matchings div.space {
  align-self: center;
  margin: 0 1ex;
  text-align: center;
  width: auto;
}
div.matchings div.space > div:first-child {
  margin-bottom: 3em;
}

.false {
  color: red;
  font-weight: bold;
}

.true {
  color: green;
}

.work-in-progress {
  color: red;
  font-size: larger;
}

#Contents {
  background-color: #f0f0f0;
  bottom: 0;
  box-shadow: -5px -5px 5px gray;
  margin: 0;
  opacity: 0.9;
  padding: 1em 1ex 0.5ex 1em;
  position: fixed;
  right: 0;
  -moz-user-select: none;
  -ms-user-select: none;
  -o-user-select: none;
  -webkit-user-select: none;
  user-select: none;
}
#Contents a[href*="#"] {
  color: black;
}
#Contents a[href*="#"]:after {
  background-image: none;
  width: 0;
}
#Contents > footer {
  border-top: 1px solid black;
  font-size: 80%;
  margin-top: 1ex;
  padding-top: 1ex;
  text-align: left;
}
#Contents > footer a[href^="http://"] {
  color: black;
}
#Contents > footer a[href^="http://"]:before {
  content: none;
}
#Contents > footer > h3 {
  font-size: 100%;
  font-style: italic;
}
#Contents > header > div {
  display: flex;
  justify-content: space-between;
}
#Contents > header > div > a {
  border-bottom: 1px solid transparent;
  border-top: 1px solid transparent;
  padding: 0 1ex;
}
#Contents > header > div > a:first-child {
  border-top-color: black;
}
#Contents > header > div > a:last-child {
  border-bottom-color: black;
}
#Contents > header > div > h2 {
  border-bottom: 1px solid silver;
  border-top: 1px solid silver;
  margin: 0 1ex;
  padding-left: 1.4em;
  padding-right: 1.4em;
}
#Contents > header > span {
  background-color: black;
  bottom: 0;
  color: white;
  cursor: pointer;
  font-size: x-large;
  font-weight: bold;
  padding: 1ex 0;
  position: absolute;
  right: 0;
  text-align: center;
  width: 2em;
}
#Contents > header > span#button-Contents-expand-collapse {
  right: 2.5em;
}
#Contents > nav ul {
  list-style-type: none;
  padding: 0;
}
#Contents > nav ul > li {
  white-space: nowrap;
}
#Contents > nav ul > li > span:first-child {
  margin-right: 1em;
}
#Contents > nav ul > li > ul {
  font-size: smaller;
  padding-left: 1em;
}
#Contents > nav ul > li > ul > li {
  margin: 0;
}
#Contents.collapse > nav > ul > li {
  margin: 0;
}
#Contents.collapse > nav > ul > li > ul {
  display: none;
}
#Contents.off > footer,
#Contents.off > header > div,
#Contents.off > nav {
  display: none;
}
#Contents.off > header > span {
  box-shadow: -5px -5px 5px gray;
}
#Contents.off > header > span#button-Contents-expand-collapse {
  display: none;
}

#global-infos-container > div {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin: 0 auto;
  text-align: center;
  width: 44em;
}
#global-infos-container > div:first-child {
  display: block;
  position: relative;
  text-align: left;
}
#global-infos-container > div:first-child > span {
  white-space: pre;
}
#global-infos-container > div:first-child > span:first-child {
  background-color: white;
  font-family: monospace;
  position: absolute;
  left: -10em;
}
#global-infos-container > div:first-child > span:last-child {
  position: absolute;
  right: 0;
}
#global-infos-container > div:last-child {
  border-bottom: 1px solid black;
  padding-bottom: 0.5ex;
}

#Index > nav {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
}
#Index > nav > ul {
  list-style-position: inside;
  margin-left: 1em;
  padding: 0;
}
#Index > nav > ul > li {
  margin: 0;
  white-space: nowrap;
}
#Index > nav > ul > li > span:first-child {
  margin-right: 1em;
}
#Index > nav > ul:first-child {
  margin-left: 0;
}

#infos-list-matchings-container {
  margin-top: 2ex;
}

#list-matchings-container {
  align-items: center;
  flex-wrap: nowrap;
  justify-content: left;
  line-height: 120px;
  min-height: 120px;
  overflow-x: auto;
  overflow-y: hidden;
}
#list-matchings-container > div {
  height: 121px;
  margin-left: 6px;
}
#list-matchings-container > div.sep {
  background-color: black;
  width: 3px;
}
#list-matchings-container > div.zoom {
  border: 1px solid gray;
  width: 169px;
}
#list-matchings-container > div.zoom.canonical {
  border-color: blue;
}
#list-matchings-container > div.zoom > div.matching {
  transform: scale(0.4, 0.4);
  transform-origin: left top;
}
#list-matchings-container > div.zoom > div.matching > .canvas-container {
  cursor: auto;
}
#list-matchings-container > div.zoom > div.matching > .canvas-container > canvas {
  border: 0 none;
}
#list-matchings-container > div.zoom:first-child {
  margin-left: 0;
}
#list-matchings-container > div.zoom:first-child > div.matching > .canvas-container > canvas {
  border-left: 0 none;
}

#wait-container,
#warning-container {
  align-items: center;
  background-color: black;
  box-shadow: 5px 5px 5px gray;
  color: white;
  display: none;
  justify-content: center;
  padding: 1em;
  position: fixed;
  left: 2em;
  text-align: center;
  top: 5em;
  z-index: 10001;
}

#warning-container {
  background-color: orange;
}

/**************
 * Responsive *
 ************** */
@media screen and (max-width: 1040px) {
  main > section {
    margin-left: 2em;
    margin-right: 2em;
    max-width: none;
  }
}
@media screen and (max-width: 640px) {
  body > header > section > div > h1 {
    font-size: large;
  }

  main > section {
    margin-left: 1ex;
    margin-right: 1ex;
  }

  #Contents {
    font-size: smaller;
    padding: 1ex 1ex 0.5ex 1ex;
  }
  #Contents > header > span {
    padding: 0;
  }
  #Contents > nav > ul > li {
    margin: 0;
  }
}
/*********
 * Print *
 ********* */
@media print {
  a {
    color: black !important;
  }
  a:visited, a:focus, a:hover, a:active {
    color: black !important;
  }
  a:before, a:after {
    content: none !important;
  }

  body > header {
    page-break-after: always;
  }
  body > header > section.page-title {
    position: static;
    box-shadow: none;
  }
  body > header > section.short-title {
    display: none;
  }
  body > header > section > div {
    margin: 3em 0 6em;
  }
  body > main {
    border-right: 0 none;
    border-bottom: 1px solid black;
    display: block;
    padding-bottom: 2em;
  }
  body > main button,
  body > main .controls-container {
    display: none;
  }
  body > main > section {
    margin: 2em 1em 0;
  }
  body > main > section > section > div.list-container > div.controls-list-container {
    display: none;
  }

  .matchings {
    display: block;
  }

  #Contents {
    background-color: transparent;
    box-shadow: none;
    margin: 2em 1em 0;
    padding: 0 !important;
    position: static;
  }
  #Contents > header > div {
    display: inline-block !important;
  }
  #Contents > header > div > h2 {
    margin: 0;
  }
  #Contents > nav,
  #Contents > nav > ul > li > ul {
    display: block !important;
  }
  #Contents > footer,
  #Contents > header > div > a,
  #Contents > header > span {
    display: none;
  }

  span[title] {
    border-bottom: 0 none;
  }
}

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