body {
    font-size: 1.15rem;
    background: #f7f7f7;
}

.main.container {
    margin-top: 7em;
}

.main.menu {
    min-height: 4rem;
}

.vertically.centered {
    display: flex;
    align-items: center;
}

.full.height.main.container {
    height: calc(100vh - 7em);
}

.full.height {
    height: 100vh;
}

p, li, td, th {
    font-size: 1.25rem;
    line-height: 1.9;
}

p, li, article .hidden-section {
    text-align: justify;
}

p, article .hidden-section {
    margin: 0 0 2em;
}

article .hider.closed {
    margin-bottom: 35px;
}

p + ul, p + ol {
    margin-top: -1em;
    margin-bottom: 2em;
}

li + li {
    margin-top: 1em;
}

.toc li + li {
    margin-top: initial;
}

ol ul, ol ol, ul ol, ul ul {
    margin-top: 1em;
}

.toc ol ul, .toc ol ol, .toc ul ol, .toc ul ul {
    margin-top: initial;
}

article figure {
    margin-top: 35px!important;
    margin-bottom: 35px!important;
}

article figure img, article .carousel .item img {
    max-height: 400px;
    height: auto !important;
    width: auto !important;
}

article figure.ui.grid {
    margin-left: 0;
    margin-right: 0;
}

@media screen and (min-width: 768px) {
    article figure[data-items-per-row="2"] img {
        max-width: calc(100% / 2 - .25rem) !important;
    }

    article figure[data-items-per-row="3"] img {
        max-width: calc(100% / 3 - .25rem * 2) !important;
    }

    article figure[data-items-per-row="4"] img {
        max-width: calc(100% / 4 - .25rem * 3) !important;
    }

    article figure[data-items-per-row="5"] img {
        max-width: calc(100% / 5 - .25rem * 4) !important;
    }

    article figure .images.row a:first-child img {
        margin-left: 0;
    }

    article figure .images.row a:last-child img {
        margin-right: 0;
    }
}

@media screen and (max-width: 767px) {
    article figure:not(.carousel) img {
        display: block !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

article figure.no-max-height img {
    max-height: none;
}

article figure .images.row:not(:first-child), article figure .images.row:not(:first-child):not(.last) {
    padding-top: 0 !important;
}

article figure .images.row:first-child:not(.last), article figure .images.row:not(:first-child):not(.last) {
    padding-bottom: 0 !important;
}

article figure .caption.row {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

article .publication-metadata {
    color: #a9a9a9;
    text-align: center;
    margin-top: 3em;
    margin-bottom: 2em;
}

article .rating-widget {
    text-align: center;
    margin-bottom: 2em;
}

article .share {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 2em;
}

article .share .share-button + .share-button {
    margin-left: 3px;
}

article .share .share-button > iframe, article .share .share-button > div {
    display: block!important;
}

article .highlight {
    font-variant: small-caps;
    text-align: center;
    font-size: 1.5em;
    color: #ff4906;
    margin: 1.25em 5% 1.75em 5%;
}

article .highlight .tweet-this {
    position: absolute;
    bottom: -1em;
    right: 0;
    left: 0;

    font-variant: initial;
    font-size: 1rem;
}

article .highlight .tweet-this .icon {
    font-size: 1.5rem;
    line-height: 1;
    vertical-align: bottom;
}

article .footnote, article .footnote li, article .footnote p {
    font-size: 1rem;
}

pre {
    white-space: pre-wrap;
    word-wrap: break-word;
    font-size: 1rem;
    margin: 0 0 2em;
}

blockquote {
    border: none;
    position: relative;
    padding: 1em 30px;
    quotes: "\201C" "\201D" "\2018" "\2019";
}

blockquote:before {
    display: block;
    content: open-quote;
    font-size: 80px;
    position: absolute;
    left: -5px;
    top: 0;
    color: #7a7a7a;
    line-height: 1;
}

blockquote:after {
    display: block;
    content: close-quote;
    font-size: 80px;
    position: absolute;
    right: -5px;
    bottom: -40px;
    color: #7a7a7a;
    line-height: 1;
}

blockquote cite {
    display: block;
    margin-top: 10px;
}

blockquote cite:before {
    content: '—';
    margin-right: 5px;
}

.carousel-caption, article figure figcaption {
    font-size: 1.25rem;
    text-align: center;
    font-style: italic;
}

.carousel-caption {
    margin-top: 1rem;
}

.ui.menu button {
    border-radius: 0;
}

article figure iframe, article figure video {
    display: block;
    margin: 0 auto;
}

article figure.youtube, article figure.embed {
    position: relative;
    padding-bottom: 56.25%;
    padding-top: 30px;
    height: 0;
    overflow: hidden;
}

article figure.youtube iframe, article figure.embed iframe,
article figure.youtube object, article figure.embed object,
article figure.youtube embed, article figure.embed embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding: 0;
    margin: 0;
    height: 100%;
}

article table {
    margin: 2em 0 !important;
}

article .overflow.scroll {
    overflow-x: scroll;
    margin: 2em 0;
}

article .overflow.scroll table {
    margin: 0 !important;
}

.text-center {
    text-align: center;
}

article .cc-license img {
    display: block;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 5px;
}

.amazon-disclaimer {
    text-align: center;
    margin-top: 2em;
    font-style: italic;
}

/*article .share {*/
    /*display: table;*/
    /*margin-left: auto;*/
    /*margin-right: auto;*/
    /*margin-top: 10px;*/
/*}*/

.m-b-xs {
    margin-bottom: 5px !important;
}

.m-b-sm {
    margin-bottom: 10px !important;
}

.m-b {
    margin-bottom: 15px !important;
}

.m-b-lg {
    margin-bottom: 30px !important;
}

.m-b-xl {
    margin-bottom: 50px !important;
}

.m-t-xs {
    margin-top: 5px !important;
}

.m-t-sm {
    margin-top: 10px !important;
}

.m-t {
    margin-top: 15px !important;
}

.m-t-lg {
    margin-top: 30px !important;
}

.m-t-xl {
    margin-top: 50px !important;
}

.n-m-r {
    margin-right: 0!important;
}

.latex {
    font-family: Times, "Times New Roman", serif;
    letter-spacing: 1px;
    font-size: 1em;
}

.latex sup {
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: .75em;
    vertical-align: -0.3em;
    margin-left: -0.47em;
    margin-right: -0.25em;
}

.latex sub {
    text-transform: uppercase;
    margin-left: -0.1667em;
    margin-right: -0.15em;
    vertical-align: .05em;
    font-size: 1em;
}

.carousel .slick-prev:before, .carousel .slick-next:before {
    color: black !important;
}

.slick-prev {
    left: 15px;
}

.slick-next {
    right: 15px;
}

.slick-lightbox .slick-prev {
    z-index: 1000;
}

.slick-lightbox .slick-next {
    z-index: 1000;
}

/* FIXME TEMPORARY */
.carousel-control, .carousel-indicators {
    display: none;
    visibility: hidden;
}

h2[id], h3[id], h4[id], h5[id], h6[id] {
    padding-top: calc(2rem - .14285714em + 40px);
    margin-top: calc(-1.25rem + .14285714em - 40px);
}

article .toctitle {
    line-height: 1.28571429em;
    font-size: 1.71428571rem;
    font-weight: 700;
}

h2, h3, h4, h5, h6, article .toctitle {
    margin: calc(2rem - .14285714em) 0 1rem 0;
}

.headerlink {
    margin-left: 10px;
    opacity: 0;
}

h2:hover .headerlink,
h3:hover .headerlink,
h4:hover .headerlink,
h5:hover .headerlink,
h6:hover .headerlink {
    opacity: .4;
}

h2 .headerlink:hover,
h3 .headerlink:hover,
h4 .headerlink:hover,
h5 .headerlink:hover,
h6 .headerlink:hover {
    opacity: 1;
}

button .sub {
    font-style: italic;
    font-weight: normal;
}

.main.menu button .sub {
    display: block;
    margin-top: 1px;
}

#post-subscription-form .grecaptcha-badge {
    float: left;
    margin-left: 3px;
}

footer {
    margin-top: 30px !important;
}

#notifications {
    padding-top: 0;
    padding-bottom: 0;
}

#notifications div:last-child {
    margin-bottom: 14px;
}

@media only screen and (max-width: 991px) {
    .computer:not(.tablet).only {
        visibility: hidden !important;
        display: none !important;
    }
}

@media only screen and (max-width: 768px) {
    .tablet.only {
        visibility: hidden !important;
        display: none !important;
    }

    .main.container {
        margin-top: 6em;
    }

    #post-subscription-form .grecaptcha-badge {
        margin-bottom: 2em;
    }
}

@media only screen and (min-width: 992px) {
    .tablet:not(.computer).only {
        visibility: hidden !important;
        display: none !important;
    }
}

@media only screen and (min-width: 1050px) {
    .overflow {
        position: relative;
        left: -25%;
        right: 25%;
        width: 150%;
        max-width: 100vw;
    }
}

@media only screen and (min-width: 769px) {
    .mobile:not(.tablet):not(.computer).only {
        visibility: hidden !important;
        display: none !important;
    }
}

@media only screen and (max-width: 991px) and (min-width: 768px) {
    .ui.items > .item > .image:not(.ui) {
        width: initial !important;
    }
}

.dark.mode.toggle {
    position: fixed;
    top: 70px;
    right: 10px;
}

@media only screen and (max-width: 1050px) {
    .dark.mode.toggle {
        position: absolute;
    }

    #notifications {
        margin-top: 20px;
    }
}

body.dark {
    background: #2b2b2b;
    color: white;
}

body.dark .ui.toggle.checkbox input:checked ~ label {
    color: white!important;
}

body.dark .ui.basic.button {
    background: #565656;
    color: #ffffff99;
}

body.dark .ui.items > .item > .content > a.header {
    color: rgba(255, 255, 255, .85);
}

body.dark .ui.items > .item .meta {
    color: rgba(255, 255, 255, .6);
}

body.dark .ui.items > .item > .content > .description {
    color: rgba(255, 255, 255, .87);
}

body.dark .ui.pagination.menu {
    border: none;
    box-shadow: none;
}

body.dark .ui.pagination.menu .item {
    background: #565656;
    color: rgba(255, 255, 255, .87);
}

body.dark .ui.pagination.menu .active.item {
    background: #717171;
}

body.dark .ui.segment:not(.basic) {
    background: #4c4c4c;
}

body.dark .ui.table {
    background: #333;
    color: rgba(255, 255, 255, .87);
}

body.dark .ui.table thead th {
    background: #2b2b2b;
    color: rgba(255, 255, 255, .87);
}

body.dark .ui.table {
    border: none;
}

body.dark .ui.striped.table tbody tr:nth-child(2n), body.dark .ui.inverted.striped.table > tr:nth-child(2n) {
    background: #ffffff0d;
    color: rgba(255, 255, 255, .87);
}

body.dark .ui.celled.table tr td, body.dark .ui.celled.table th {
    border-color: rgba(255, 255, 255, .1) !important;
}

body.dark .ui.form .field > label {
    color: rgba(255, 255, 255, 0.87);
}

body.dark .ui.form input, body.dark .ui.form textarea {
    color: rgba(255, 255, 255, 0.87);
    background: #7b7b7b;
}

body.dark .ui.form textarea {
    background: #7b7b7b;
}

body.dark .ui.input, body.dark .ui.form textarea {
    color: rgba(255, 255, 255, 0.87);
}

body.dark .ui.input:focus, body.dark .ui.form textarea:focus {
    color: rgba(255, 255, 255, 0.80);
    background: #7b7b7b;
}

body.dark .ui.form input:focus, body.dark .ui.form textarea:focus {
    color: rgba(255, 255, 255, 0.80);
    background: #7b7b7b;
}

body.dark .ui.basic.button {
    background: #757575!important;
    color: white!important;
}

body.dark .ui.button:not(.primary):not(.green) {
    background: #757575 !important;
    color: white !important;
}

body.dark .carousel .slick-prev:before, body.dark .carousel .slick-next:before {
    color: white !important;
}
