html {
  box-sizing: border-box; }

*, *:before, *:after {
  box-sizing: inherit; }

body, .Article_Changes, .Article_Comments, .Article_Header, .ArticleLink, .Article_ToC, .StackExchangeLink_List {
  font-family: Open Sans, Arial, sans-serif;
  font-size: 12pt; }

body {
  margin: 0; }

.Layout {
  display: block;
  margin: 0 auto;
  padding: 0;
  min-height: 100vh;
  justify-content: center;
  display: flex;
  flex-direction: column; }

@media print {
  .Layout {
    display: block;
    /* else the content is cut off after 1st page */ } }
.Layout_Head {
  display: block;
  width: 100%;
  padding: 0 1em;
  color: #666;
  line-height: 1;
  border-bottom: 1pt solid #AAA; }

.Layout_Head_Inner {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap; }

.Layout_Center {
  display: block;
  width: 100%;
  padding: 0 1em;
  flex-grow: 1;
  padding: 1em; }

.Layout_Footer {
  display: block;
  width: 100%;
  padding: 0 1em;
  color: #666;
  border-top: solid 1pt #BBB;
  font-size: 0.8em;
  padding: 1em; }

.Layout_Unpad, .Layout_Head_Inner {
  margin-left: -1em;
  margin-right: -1em; }

@media (min-width: 42em) {
  .Layout {
    padding: 0 1em;
    max-width: 45em; }

  body {
    background: #EEE;
    background-image: radial-gradient(ellipse 130vw 130vh at 50vw 30vh, #f5d9bc, #eee0f5 80vw, #f3f0f5 160vw);
    background-position: 0 0;
    background-attachment: scroll;
    background-repeat: no-repeat; }

  .Layout_Center {
    background: #FFF;
    border-radius: 2pt;
    box-shadow: 0 0 2pt -1pt #000; }

  .Layout_Head, .Layout_Footer {
    border: none;
    padding: 1em; } }
.Layout_Logo {
  display: block;
  padding: 1em 1em;
  margin: 0;
  text-decoration: none;
  color: inherit;
  flex-shrink: 0;
  flex-grow: 1;
  flex-basis: auto;
  align-items: center; }
  .Layout_Logo:hover, .Layout_Logo:active, .Layout_Logo:focus {
    color: #333; }
  .Layout_Logo h1 {
    font-weight: inherit;
    margin: 0; }

.Layout_Nav {
  display: block;
  flex-shrink: 1;
  flex-grow: 0;
  flex-basis: auto;
  max-width: 100%; }

/*  Some blocks use text shadows for effects,
 *  but that makes the text illegible inside selections.
 *  Therefore, we need to override selections.
 *  Unfortunately, that is rather buggy in Firefox.
 */
::-moz-selection {
  color: #EEE;
  background: #3DAEE9;
  text-shadow: none; }

::selection {
  color: #EEE;
  background: #3DAEE9;
  text-shadow: none; }

.Article, .Article_Abstract {
  font-family: Merriweather, Georgia, serif;
  line-height: 1.5; }

.Article blockquote {
  background-color: #fbf0d0;
  background-image: radial-gradient(at 50% 0%, #fffbf0, transparent);
  padding: 0 2em;
  margin: 1em 0;
  border: solid 1pt #d5c490;
  border-radius: 2pt; }
.Article img {
  height: auto;
  width: auto;
  max-width: 100%; }
.Article figure {
  overflow: hidden;
  margin: 1em 0; }
  .Article figure > img {
    margin: 0 auto;
    border-radius: 3pt;
    border: solid 1pt;
    color: gray;
    box-sizing: border-box;
    display: block;
    max-height: 90vh; }
  .Article figure > figcaption {
    display: block;
    margin: 0 1em; }
.Article a.footnoteRef {
  text-decoration: none; }
  .Article a.footnoteRef > sup::before {
    content: "["; }
  .Article a.footnoteRef > sup::after {
    content: "]"; }
.Article .citation a {
  text-decoration: none; }
.Article a:not(.no-external-link)[href^="http://"]:not([href^="http://lukasatkinson.de/"])::after, .Article a:not(.no-external-link)[href^="https://"]:not([href^="https://lukasatkinson.de/"])::after, .Article a:not(.no-external-link)[href^="//"]:not([href^="//lukasatkinson.de/"])::after {
  font-family: "FontAwesome";
  display: inline-block;
  content: "\00a0\f08e";
  /* nbsp + fa-external-link */
  font-size: smaller;
  vertical-align: super;
  line-height: 1;
  font-weight: normal;
  text-indent: 0; }
@media print {
  .Article a:not(.no-external-link) {
    text-decoration: none; }
    .Article a:not(.no-external-link)[href]:not([href^="#"])::after {
      font-family: inherit;
      font-weight: normal;
      font-size: inherit;
      opacity: 0.8;
      display: inline;
      content: " (" attr(href) ")";
      vertical-align: inherit; } }
.Article .references > div:target {
  background: rgba(255, 255, 0, 0.5); }
.Article .references p {
  font-size: 0.9em;
  margin: 0;
  padding-left: 1.5em;
  text-indent: -1.5em; }

.ArticleLink {
  margin: 1em 0; }
  .ArticleLink code {
    background: transparent; }

.Article_Changes {
  display: block;
  margin: 1em 0;
  padding: 1em;
  border: solid 1pt #AAA;
  border-radius: 2pt; }
  @media print {
    .Article_Changes a[href]:not([href^="#"])::after {
      display: none; } }

.Article_Comments {
  display: block;
  margin: 1em 0;
  padding: 1em;
  border: solid 1pt #AAA;
  border-radius: 2pt; }
  @media print {
    .Article_Comments a[href]:not([href^="#"])::after {
      display: none; } }
  .Article_Comments_Response {
    margin: 1em 0;
    border-left: solid 0.33em #AAA;
    padding-left: 0.67em; }
  .Article_Comments_Author {
    font-weight: bold; }
  .Article_Comments_NoResponse {
    font-style: italic; }
  .Article_Comments_LR {
    display: flex;
    flex-direction: row;
    position: relative;
    margin: 1em calc(-1em - 1pt); }
  .Article_Comments_LR_Item, .Article_Comments_LR_Sep {
    border: 1pt solid #AAA; }
  .Article_Comments_LR_Item {
    display: flex;
    flex-direction: column;
    flex: 1 0 0;
    text-decoration: none;
    border-width: 1pt;
    border-left-color: transparent;
    border-right-color: transparent;
    text-align: center;
    padding: 0.5em 3em;
    min-height: 7em;
    justify-content: space-between;
    transition: background-color 0.1s; }
    .Article_Comments_LR_Item:first-child {
      border-color: #AAA;
      padding-left: 0.5em; }
    .Article_Comments_LR_Item:last-child {
      border-right-color: #AAA;
      padding-right: 0.5em; }
    .Article_Comments_LR_Item:hover, .Article_Comments_LR_Item:focus {
      box-shadow: rgba(43, 43, 43, 0.5) 2pt 2pt 6pt;
      border-color: #AAA;
      background-color: #d9f2f2; }
  .Article_Comments_LR_Sep {
    width: 4em;
    height: 4em;
    border-radius: 2em;
    z-index: 1;
    position: absolute;
    top: calc(50% - 2em);
    left: calc(50% - 2em);
    display: flex;
    justify-content: center;
    align-items: center;
    background: white;
    text-transform: uppercase;
    letter-spacing: 1pt;
    box-shadow: rgba(43, 43, 43, 0.5) 2pt 2pt 6pt; }

.Article_Header, .ArticleLink {
  display: block;
  margin: 1em 0;
  padding: 1em;
  border: solid 1pt #AAA;
  border-radius: 2pt;
  line-height: 1.2;
  padding-top: 3em;
  text-align: center;
  margin-top: 0;
  margin-bottom: 1em; }
  @media print {
    .Article_Header a[href]:not([href^="#"])::after, .ArticleLink a[href]:not([href^="#"])::after {
      display: none; } }

.Article_Date, .Article_Authors, .Article_ReadingTime, .Article_Tags > li {
  opacity: 0.7; }
  .Article_Date:hover, .Article_Authors:hover, .Article_ReadingTime:hover, .Article_Tags > li:hover, .Article_Date:focus, .Article_Authors:focus, .Article_ReadingTime:focus, .Article_Tags > li:focus, .Article_Date:active, .Article_Authors:active, .Article_ReadingTime:active, .Article_Tags > li:active {
    opacity: 1; }

.Article_Date {
  text-decoration: none;
  color: inherit;
  flex: 0 0 auto; }
  .Article_Date:hover, .Article_Date:focus, .Article_Date:active {
    text-decoration: underline; }

.Article_Title {
  display: block;
  text-decoration: none;
  color: blue; }
  .Article_Title:visited {
    color: inherit; }
  .Article_Title > h1 {
    margin: 0;
    font-weight: normal;
    font-size: 200%; }
  .Article_Title > h2 {
    margin: 0;
    font-weight: normal;
    font-size: 150%; }

.Article_Abstract {
  margin: 2em auto 1em auto;
  padding: 0;
  max-width: 27em;
  text-align: left; }
  .Article_Abstract a {
    color: blue; }
    .Article_Abstract a:visited {
      color: inherit; }

.Article_ReadingPrompt {
  display: block;
  text-align: center;
  margin: 1em;
  color: blue;
  text-decoration: none; }
  .Article_ReadingPrompt:visited {
    color: inherit; }

.Article_ReadingTime {
  margin: 1em 0 0.5em 0; }

.Article_Meta {
  display: block;
  text-align: left;
  display: flex;
  flex-direction: row;
  align-items: baseline;
  justify-items: space-between;
  max-width: 27em;
  position: relative;
  margin: 0 auto; }
  .Article_Meta::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: black;
    box-shadow: 1px 1px 1px #EEE; }

.Article_Tags {
  margin: 0.5em 0;
  margin-right: 1em;
  padding: 0;
  list-style: none; }
  .Article_Tags > li {
    margin: 0;
    margin-left: 1em;
    padding: 0;
    display: inline-block; }

.Article_Tag {
  display: inline-block;
  color: inherit;
  text-decoration: none; }

.Article_ToC {
  position: sticky;
  top: 4em; }

#Article_ToC_Toggle {
  position: absolute;
  clip: rect(0, 0, 0, 0); }

.Article_ToC_Container {
  display: flex;
  flex-direction: column;
  position: absolute;
  top: -3.5em;
  right: -0.5em;
  width: 3rem;
  height: 3rem;
  border-radius: 1.5rem;
  border: solid 1pt transparent;
  overflow: hidden;
  background: white;
  max-height: 90vh;
  max-width: 90vw;
  transition: width           ease-in-out 0.2s, height          ease-in-out 0.2s, border-radius   ease-in-out 0.1s 0.1s, background-color ease-in-out 0.2s, border-color    ease-in-out 0.2s;
  box-shadow: 0 0 2pt black;
  background-color: #fcf283; }

#Article_ToC_Toggle:checked + .Article_ToC_Container {
  width: 20rem;
  height: 28.2rem;
  border-radius: 2pt;
  background-color: #fbf5da;
  border-color: rgba(0, 0, 0, 0.7); }
  #Article_ToC_Toggle:checked + .Article_ToC_Container .Article_ToC_Header, #Article_ToC_Toggle:checked + .Article_ToC_Container .Article_ToC_Content {
    visibility: visible; }

.Article_ToC_Header, .Article_ToC_Content {
  visibility: hidden;
  width: 20rem;
  max-width: 90vw;
  height: auto;
  padding: 0.75rem; }

.Article_ToC_Header {
  font-weight: normal;
  font-size: 1.5rem;
  line-height: 1;
  margin: 0;
  margin-right: 3rem;
  border-bottom: solid 1pt #AAA;
  background-color: inherit; }

.Article_ToC_Button {
  position: absolute;
  top: 0;
  right: 0;
  font-size: 1.5rem;
  cursor: pointer;
  background-color: inherit;
  width: 3rem;
  height: 3rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center; }

.Article_ToC_Content {
  flex: 1;
  overflow-y: auto;
  mask: linear-gradient(to top, transparent, black 3em) alpha; }
  .Article_ToC_Content > :last-child {
    margin-bottom: 2em; }
  .Article_ToC_Content ul {
    padding: 0;
    margin: 0;
    list-style: none; }
  .Article_ToC_Content li > ul {
    padding-left: 1.5em; }
  .Article_ToC_Content a {
    text-decoration: none;
    color: inherit;
    line-height: 1;
    display: block;
    padding: 0.5em;
    padding-left: 3pt;
    border-left: solid 3pt transparent; }
    .Article_ToC_Content a:hover, .Article_ToC_Content a:active {
      border-left-color: #75b3f0;
      background-color: #d1e6fa; }

.StackExchangeLink {
  margin: 1em 0; }
  .StackExchangeLink a {
    text-decoration: none;
    color: blue; }
    .StackExchangeLink a:hover, .StackExchangeLink a:focus, .StackExchangeLink a:active {
      text-decoration: underline; }
    .StackExchangeLink a:visited {
      color: inherit; }
  .StackExchangeLink .StackExchangeLink_Title {
    display: block; }
    .StackExchangeLink .StackExchangeLink_Title h3 {
      margin: 0;
      font-size: 1.2;
      font-weight: normal; }
  .StackExchangeLink .StackExchangeLink_Excerpt {
    margin: 0.5em 1em; }
  .StackExchangeLink .StackExchangeLink_Meta {
    opacity: 0.7;
    margin: 0 1em; }
  .StackExchangeLink .StackExchangeLink_MetaItem:not(:first-child, :last-child) {
    margin: 0 0.5em; }

.StackExchangeLink_List {
  display: block;
  margin: 1em 0;
  padding: 1em;
  border: solid 1pt #AAA;
  border-radius: 2pt; }
  @media print {
    .StackExchangeLink_List a[href]:not([href^="#"])::after {
      display: none; } }
  .StackExchangeLink_List .StackExchangeLink_ListHeader {
    font-weight: normal;
    font-size: 1.3;
    text-align: center; }

.Tabstrip {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: stretch;
  white-space: nowrap; }
  .Tabstrip-scrollable {
    overflow-y: auto; }
  .Tabstrip-samesize > .Tabstrip_Item {
    flex: 0 1; }

.Tabstrip_Item {
  margin: 0;
  padding: 0;
  white-space: normal;
  display: inline-block; }

.Tabstrip-IconLink {
  display: inline-block;
  display: flex;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
  line-height: 1.5;
  text-align: center;
  margin: 0;
  padding: 0.5em 1em; }
  .Tabstrip-IconLink:hover, .Tabstrip-IconLink:active, .Tabstrip-IconLink:focus {
    color: #333; }

.Tabstrip-IconLink_Item {
  margin: 2pt; }

.Threading {
  display: flex;
  margin: 0;
  margin-top: -1em;
  margin-left: -1em;
  padding: 0;
  list-style: none;
  font-family: Open Sans, Arial, sans-serif;
  flex-direction: row;
  flex-wrap: wrap; }
  .Threading .Threading_Part {
    margin: 0;
    margin-left: 1em;
    margin-top: 1em;
    padding: 1em;
    flex: 1 1 15em;
    background-color: #f7f76e;
    background-image: radial-gradient(at 50% 0%, #ffff99, transparent);
    border: solid 1pt #c3c32c;
    border-radius: 2pt;
    display: flex;
    flex-direction: column;
    align-items: center; }
  .Threading .Threading_Part_Label {
    display: block;
    text-align: center; }
  .Threading .Threading_Part_Link {
    display: block;
    text-decoration: none;
    color: blue; }
    .Threading .Threading_Part_Link:visited {
      color: inherit; }
    .Threading .Threading_Part_Link:hover, .Threading .Threading_Part_Link:focus {
      text-decoration: underline; }
  .Threading .Threading_Part_Title {
    display: block;
    font-size: 1.2em;
    font-style: normal; }

code {
  background-color: #fdf8e7;
  padding: 1pt; }

pre {
  background-color: #fdf8e7;
  max-width: 100vw;
  max-height: 90vh;
  overflow-x: auto;
  overflow-y: auto;
  line-height: 1.2;
  border: 0 solid #bcb18f;
  border-width: 1pt 0;
  margin: -0.5em -1em;
  padding: 0 1em; }
  pre > :first-child {
    display: block;
    margin-top: 0.5em; }
  pre > :last-child {
    display: block;
    margin-bottom: 0.5em; }

pre code {
  padding: 0;
  background-color: transparent; }

.sourceCode .kw {
  color: #268BD2;
  font-weight: bold; }

.sourceCode .dt {
  color: #268BD2; }

.sourceCode .dv, .sourceCode .bn, .sourceCode .fl {
  color: #D33682; }

.sourceCode .ch {
  color: #DC322F; }

.sourceCode .st {
  color: #2AA198; }

.sourceCode .co {
  color: #93A1A1; }

.sourceCode .ot {
  color: #A57800; }

.sourceCode .al {
  color: #CB4B16;
  font-weight: bold; }

.sourceCode .fu {
  color: #268BD2; }

.sourceCode .er {
  color: #D30102;
  font-weight: bold; }
