:root{
  --primary:#2D75B1;
  --text:#333;
  --background:#FFF;
  --readable-width:50rem;
  --readable-column-padding:initial;
  --indented-column-padding:initial;
  --indented-inline-padding:initial;
}

@media (max-width: 50rem){
  :root{
    --readable-column-padding:0.5rem;
    --indented-column-padding:1.5rem;
    --indented-inline-padding:0;
  }
}

@media (prefers-color-scheme: dark) {
  :root{
    --primary:#62b8ff;
    --text:#FFF;
    --background:#333;
  }
}

@media (prefers-reduced-motion: no-preference){
  html{
    scroll-behavior: smooth;
  }
}

body{
  font-family: Helvetica, sans-serif;
  color: var(--text);
  background-color: var(--background);
  padding: 0;
  margin: 0;
  overflow-x: hidden;
}

h1,h2,h3,h4,h5,h6{
  overflow-x: hidden;
  overflow-y: hidden;
}

h1{
  font-size:4rem;
  padding-block-end: 20vh;
  line-height: 4rem;
}

h2{
  margin-block-start:4rem;
  font-size:2rem;
  border-block-end: 3px solid;
  line-height: 2rem;
  position: sticky;
  top:0;
  background-color:var(--background) ;
}

h2 a{
  text-decoration: none;
}

article, header, footer, aside{
  line-height: 1.5rem;
  margin-inline-start: auto;
  margin-inline-end: auto;
  width: var(--readable-width);
  max-width: 100svw;
}

p{
  margin-inline-start: var(--readable-column-padding);
  margin-inline-end: var(--readable-column-padding);
  padding-inline-end: var(--readable-column-padding);
}

iframe{
  width:100%;
}

.centered{
  margin-inline-start:auto;
  margin-inline-end:auto;
}

a{
  color: var(--primary);
}

a:hover{
  background-color: var(--primary);
  color: var(--background);
}

a:visited{
  color: var(--text);
}

a:visited:hover{
  background-color: var(--text);;  
  color: var(--background);
}

a.section-anchor-link{
  display: inline-block;
  font-weight: normal;
  font-size: 1.5rem;
  height: 100%;
}

table{
  margin-block-end: 2rem;
  padding: 0;
}

td{
  border-block-end: 1px solid;
  vertical-align: bottom;
}

blockquote, figure{
  margin-inline-start: var(--indented-column-padding);
  margin-inline-end: var(--indented-column-padding);
}

blockquote p{
  padding:0;
  margin:0;
}
