@charset "UTF-8";

/***************************************
 * Fonts
 **************************************/

/* Source Serif Pro.
* Copyright 2014 - 2023 Adobe (http://www.adobe.com/), with Reserved Font Name ‘Source’. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries.
*
* This Font Software is licensed under the SIL Open Font License, Version 1.1.
*
* This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
*
*
* -----------------------------------------------------------
* SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
* -----------------------------------------------------------
*
* PREAMBLE
* The goals of the Open Font License (OFL) are to stimulate worldwide
* development of collaborative font projects, to support the font creation
* efforts of academic and linguistic communities, and to provide a free and
* open framework in which fonts may be shared and improved in partnership
* with others.
*
* The OFL allows the licensed fonts to be used, studied, modified and
* redistributed freely as long as they are not sold by themselves. The
* fonts, including any derivative works, can be bundled, embedded,
* redistributed and/or sold with any software provided that any reserved
* names are not used by derivative works. The fonts and derivatives,
* however, cannot be released under any other type of license. The
* requirement for fonts to remain under this license does not apply
* to any document created using the fonts or their derivatives.
*
* DEFINITIONS
* "Font Software" refers to the set of files released by the Copyright
* Holder(s) under this license and clearly marked as such. This may
* include source files, build scripts and documentation.
*
* "Reserved Font Name" refers to any names specified as such after the
* copyright statement(s).
*
* "Original Version" refers to the collection of Font Software components as
* distributed by the Copyright Holder(s).
*
* "Modified Version" refers to any derivative made by adding to, deleting,
* or substituting -- in part or in whole -- any of the components of the
* Original Version, by changing formats or by porting the Font Software to a
* new environment.
*
* "Author" refers to any designer, engineer, programmer, technical
* writer or other person who contributed to the Font Software.
*
* PERMISSION & CONDITIONS
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of the Font Software, to use, study, copy, merge, embed, modify,
* redistribute, and sell modified and unmodified copies of the Font
* Software, subject to the following conditions:
*
* 1) Neither the Font Software nor any of its individual components,
* in Original or Modified Versions, may be sold by itself.
*
* 2) Original or Modified Versions of the Font Software may be bundled,
* redistributed and/or sold with any software, provided that each copy
* contains the above copyright notice and this license. These can be
* included either as stand-alone text files, human-readable headers or
* in the appropriate machine-readable metadata fields within text or
* binary files as long as those fields can be easily viewed by the user.
*
* 3) No Modified Version of the Font Software may use the Reserved Font
* Name(s) unless explicit written permission is granted by the corresponding
* Copyright Holder. This restriction only applies to the primary font name as
* presented to the users.
*
* 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
* Software shall not be used to promote, endorse or advertise any
* Modified Version, except to acknowledge the contribution(s) of the
* Copyright Holder(s) and the Author(s) or with their explicit written
* permission.
*
* 5) The Font Software, modified or unmodified, in part or in whole,
* must be distributed entirely under this license, and must not be
* distributed under any other license. The requirement for fonts to
* remain under this license does not apply to any document created
* using the Font Software.
*
* TERMINATION
* This license becomes null and void if any of the above conditions are
* not met.
*
* DISCLAIMER
* THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
* OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
* DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
* OTHER DEALINGS IN THE FONT SOFTWARE.
*/

@font-face {
    font-family: SourceSerif;
    font-display: swap;
    src: url("/data/fonts/sourceserif-regular.woff2");
}

@font-face {
    font-family: SourceSerif;
    font-style: italic;
    font-display: swap;
    src: url("/data/fonts/sourceserif-italic.woff2");
}

@font-face {
    font-family: SourceSerif;
    font-weight: bold;
    font-display: swap;
    src: url("/data/fonts/sourceserif-bold.woff2");
}

@font-face {
    font-family: SourceSerif;
    font-variant: small-caps;
    font-display: swap;
    src: url("/data/fonts/sourceserif-smallcaps.woff2");
}

@font-face {
    font-family: SourceSerif;
    font-weight: bold;
    font-style: italic;
    src: url("/data/fonts/sourceserif-bolditalic.woff2");
}

@font-face {
    font-family: SourceSerifCaption;
    font-display: swap;
    src: url("/data/fonts/sourceserif-caption-regular.woff2");
}

@font-face {
    font-family: SourceSerifCaption;
    font-display: swap;
    font-weight: bold;
    src: url("/data/fonts/sourceserif-caption-bold.woff2");
}

@font-face {
    font-family: SourceSerifCaption;
    font-display: swap;
    font-style: italic;
    src: url("/data/fonts/sourceserif-caption-italic.woff2");
}

@font-face {
    font-family: SourceSerifCaption;
    font-display: swap;
    font-style: italic;
    font-weight: bold;
    src: url("/data/fonts/sourceserif-caption-bolditalic.woff2");
}

/* Luxi Mono font. This font is licensed under the Bigelow & Holmes - Luxi License v1.00:
 * https://www.fontsquirrel.com/license/Luxi-Mono
 *
 * Luxi fonts copyright (c) 2001 by Bigelow & Holmes Inc. Luxi font
 * instruction code copyright (c) 2001 by URW++ GmbH. All Rights
 * Reserved. Luxi is a registered trademark of Bigelow & Holmes Inc.
 *
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of these Fonts and associated documentation files
 * (the “Font Software”), to deal in the Font Software, including
 * without limitation the rights to use, copy, merge, publish,
 * distribute, sublicense, and/or sell copies of the Font Software,
 * and to permit persons to whom the Font Software is furnished to do
 * so, subject to the following conditions:
 *
 * The above copyright and trademark notices and this permission
 * notice shall be included in all copies of one or more of the Font
 * Software.
 *
 * The Font Software may not be modified, altered, or added to, and in
 * particular the designs of glyphs or characters in the Fonts may not
 * be modified nor may additional glyphs or characters be added to the
 * Fonts. This License becomes null and void when the Fonts or Font
 * Software have been modified.
 *
 * THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY
 * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN
 * NO EVENT SHALL BIGELOW & HOLMES INC. OR URW++ GMBH. BE LIABLE FOR
 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL,
 * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN
 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE
 * USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN
 * THE FONT SOFTWARE.
 *
 * Except as contained in this notice, the names of Bigelow & Holmes
 * Inc. and URW++ GmbH. shall not be used in advertising or otherwise
 * to promote the sale, use or other dealings in this Font Software
 * without prior written authorization from Bigelow & Holmes Inc. and
 * URW++ GmbH.
 *
 * For further information, contact:
 *
 * info@urwpp.de or design@bigelowandholmes.com */

@font-face {
    font-family: LMono;
    font-display: swap;
    src: url("/data/luximono-regular.woff");
}

@font-face {
    font-family: LMono;
    font-style: italic;
    font-display: swap;
    src: url("/data/luximono-italic.woff");
}

@font-face {
    font-family: LMono;
    font-weight: bold;
    font-display: swap;
    src: url("/data/luximono-bold.woff");
}

@font-face {
    font-family: LMono;
    font-style: italic;
    font-weight: bold;
    font-display: swap;
    src: url("/data/luximono-bolditalic.woff");
}

/***************************************
 * Main elements
 **************************************/

html {
    margin: 0;
    padding: 0;

    font-family: SourceSerif, serif;
    font-size: 20px;

    background-color: #FEFEFE;
}

body {
    text-align: justify;
    hyphens: auto;
    color: #000000;
}

header {
    border-bottom: 2px solid #000000;
    height: 43px;
    max-width: 1166px;
    margin: 0px auto;
}

header p {
    font-size: 1.75rem;
    font-variant: small-caps;
    margin: 0px;
    padding: 0px;
}

header p a#logolink {
    color: #000000;
    text-decoration: none;
}

header p a#logolink:hover {
    color: #FEFEFE;
    background-color: #000000;
}

footer {
    border-top: 2px solid #000000;
    margin: 4px auto;
    max-width: 1166px;
}

footer p {
    margin: 4px 0px;
}

#fleft {
    float: left;
}

#fright {
    float: right;
}

main {
    max-width: 700px;
    margin: 0px auto;
}

main#frontpage {
    max-width: 1166px;
}

header nav {
    position: relative;
    top: 13px;
    right: 0px;
    float: right;
}

header nav ul {
    padding: 0px;
    margin: 0px;
    list-style-type: none;
}

header nav ul li {
    display: inline-block;
    margin: 0px;
    padding: 0px;
}

header nav ul li a {
    padding: 4px 8px;
    color: #000000;
    text-decoration: none;
}

header nav ul li a#active,
header nav ul li a:hover {
    background-color: #000000;
    color: #FEFEFE;
}

.clear {
    clear: both;
}

::selection {
    background-color: #000000;
    color: #FEFEFE;
}

/***************************************
 * Text elements
 **************************************/

h1, h2, h3, h4, h5, h6 {
    font-family: SourceSerifCaption;
}

h1 {
    text-align: center;
    font-size: 1.75rem;
    margin-bottom: 0px;
}

h2, h3, h4, h5, h6 {
    font-size: 1.25rem;
    font-weight: bold;
    text-align: left;
}

a {
    color: #000000;
}

a:hover {
    color: #FEFEFE;
    background-color: #000000;
}

ul {
    list-style-type: " – ";
}

ul ul {
    list-style-type: circle;
}

main ul li, main ol li {
    margin: 0.75em 0px;
}

pre {
    white-space: pre-wrap;
}

pre, code {
    font-family: "Luxi Mono", LMono, monospace;
    font-size: 17px;
    hyphens: none;
    text-align: left;

    color: #2a41ff;
}

blockquote {
    border-left: 2px solid #000000;
    padding-left: 8px;
    font-style: italic;
}

blockquote i {
  font-style: normal;
}

figure, table {
    width: max-content;
    max-width: 600px;
    margin: 1em auto;
    overflow: auto;
}

figure a:hover {
    background-color: initial;
}

figure a img { /* Not on A itself, there might be links namely in the caption */
  cursor: zoom-in;
}

figure img, figure object {
    display: block;
    max-width: 100%;    /* Shrink too-large images to <figure>'s width */
    margin-left: auto;  /* Centre images with uneven aspect ratio */
    margin-right: auto; /* Centre images with uneven aspect ratio */
}

.figure-number {
    font-weight: bold;
}

figcaption {
    text-align: center;
    padding-top: 8px;
}

caption {
    text-align: center;
    font-weight: bold;
}

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

.post-trailing-categories {
    text-align: right;
}

/***************************************
 * Front page
 **************************************/

.frontpage-panel {
    width: 47%;
    min-height: 350px;
    border: 1px solid #bbbbbb;
    background-color: #f8f8f8;
    margin: 8px;
    padding: 8px;
    text-align: left;
}

.frontpage-panel-left {
    float: left;
}

.frontpage-panel-right {
    float: right;
}

.frontpage-panel h2 {
    text-align: center;
}

.frontpage-panel-large {
    float: none;
    width: initial;
    margin-bottom: 16px;
}

.frontpage-panel-large p {
    font-style: italic;
    text-align: center;
}



/***************************************
 * Blog overview page
 **************************************/

.blogpost {
  border-top: 1px solid black;
}

.blogpost h2 a {
  text-decoration: none;
}

/* Erase border from first h2 on page */
.blogpost:first-child {
  border-top: none;
}

.blogpost h2 {
    margin-bottom: 0px;
}

.postinfo {
    margin-top: 0px;
    font-size: 0.8rem;
}

p#blognav {
    text-align: center;
    font-style: italic;
    margin-top: 0px;
}

/***************************************
 * Number headings
 **************************************/

body {
    /* The counter must be created in body, not in h1, otherwise it
     * would fall out of scope at the end of </header> */
    counter-reset: h2counter;
}
.outline-2 h2 {
    counter-increment: h2counter;
    counter-reset: h3counter;
}
.outline-2 h2::before {
    content: counter(h2counter, upper-roman) ". ";
}
.outline-3 h3 {
    counter-increment: h3counter;
    counter-reset: h4counter;
}
.outline-3 h3::before {
    content: counter(h3counter) ". "
}
.outline-4 h4 {
    counter-increment: h4counter;
    counter-reset: h5counter;
}
.outline-4 h4::before {
    content: counter(h4counter, lower-alpha) ") ";
}
.outline-5 h5 {
    counter-increment: h5counter;
}
.outline-5 h5::before {
    content: counter(h5counter, lower-greek) ") ";
}

/***************************************
 * Table of contents
 **************************************/

#table-of-contents {
    position: fixed;
    top: 90px; /* All elements above this element have a fixed height, so this can be set here confidently */
    left: calc( (((100% - 700px) / 2) - (25% - 48px)) / 2);
    /* left: 5px; */
    width: calc(25% - 48px);
    padding: 0px;
    text-align: left;
    overflow: hidden;
    border: 1px solid #bbbbbb;
    background-color: #f8f8f8;
}

#table-of-contents h2 {
    text-align: center;
}

#table-of-contents ul {
    margin: 0px;
}

#table-of-contents ul li {
    margin: initial;
}

#table-of-contents ul a {
    text-decoration: none;
    display: block;
    padding-right: 4px;
    margin-right: 4px;
}

#table-of-contents ul a:hover {
    background-color: #000000;
    border-right: 4px solid #bbbbbb;
    margin-right: 0px;
}

#table-of-contents > div > ul {
    list-style-type: upper-roman;
    margin: 1em;
}

#table-of-contents > div > ul > li > ul {
    list-style-type: decimal;
}

#table-of-contents > div > ul > li > ul > li > ul {
    list-style-type: lower-alpha;
}

#table-of-contents > div > ul > li > ul > li > ul > li > ul {
    list-style-type: lower-greek;
}

/***************************************
 * Inline elements
 **************************************/

.abstract {
    font-style: italic;
}

.name, .underline {
    font-variant: small-caps;
}

.leader {
    font-weight: bold;
}

.NOTE {
    border: 1px solid #bbbbbb;
    background-color: #f8f8f8;
    margin: 8px;
    padding: 8px;
}

.NOTE p:first-child {
    margin-top: 0px;
}

.NOTE p:last-child {
    margin-bottom: 0px;
}

h2.footnotes {
    display: none;
}

#footnotes {
    font-size: 0.75rem;
}

a.footref {
    font-weight: bold;
    text-decoration: none;
}

sup {
    line-height: 0px;
}

.footdef sup {
    float: left;
    font-weight: bold;
    margin-right: 0.25em;
    line-height: initial;
}

.footdef sup a.footnum {
    text-decoration: none;
}

#footnotes pre, #footnotes code, .sidenote code {
    font-size: 14px;
}

.sidenote {
    position: relative;
    left: 740px;
    font-size: 0.75rem;
    float: left;
    clear: left;
    width: 300px;
    margin-right: -300px;
    text-align: left;
}

.sidenotenum {
    font-weight: bold;
    font-variant-position: super;
}

.marginalno {
    display: block;
    position: relative;
    width: 22px;
    height: 0px;
    left: -1.5em;
    text-align: right;
}

.marginalno a {
    font-weight: bold;
    text-decoration: none;
}

/***************************************
 * Mobile layout
 **************************************/

@media(max-width: 1200px) {
    .frontpage-panel-left, .frontpage-panel-right {
        float: none;
        width: initial;
    }

    header {
        margin-bottom: 80px;
    }

    header nav {
        top: 56px;
        left: 0px;
        float: none;
        position: absolute;
        width: 100%;
        text-align: center;
    }

    header p {
        text-align: center;
        font-size: 1.25rem;
    }

    #table-of-contents {
        position: static;
        width: initial;
    }

    figure {
        max-width: 100%;
    }

    .sidenote, .marginalno {
        display: none;
    }
}

@media(min-width: 1200px) {
    #footnotes {
        display: none;
    }
}

/***************************************
 * Print layout
 **************************************/

@media print {
    html {
        font-size: 10pt;
    }

    main {
        columns: 2;
    }
    nav {
        display: none;
    }
    .sidenote {
        display: none;
    }
    .marginalno {
        display: inline;
        position: initial;
    }
    .marginalno::before {
        content: '[';
    }
    .marginalno::after {
        content: ']';
    }
}
