/* FreeSerif Fonts */
@font-face {
    font-family: FreeSerif;
    font-display: swap;
    src: url("FreeSerif.woff2") format("woff2");
    font-feature-settings: "afrc";
}
@font-face {
    font-family: FreeSerif;
    font-weight: bold;
    font-display: swap;
    src: url("FreeSerifBold.woff2") format("woff2");
    font-feature-settings: "afrc";
}
@font-face {
    font-family: FreeSerif;
    font-style: italic;
    font-display: swap;
    src: url("FreeSerifItalic.woff2") format("woff2");
    font-feature-settings: "afrc";
}
@font-face {
    font-family: FT88-Gothique;
    src: url("FT88-Gothique.woff2") format("woff2");
}
    

/* Global variables. */
:root {
    /* Set fonts */
    --mono-font: FreeMono, monospace;
    --serif-font: FreeSerif, serif;
    --standard-border-radius: 5px;

    /* Ef Eagle (light) theme */
    --bg-main: #f1ecd0;
    --fg-main: #231a1f;
    --bg-dim: #e4dbc0;
    --fg-dim: #685f53;
    --bg-alt: #cec8ae;
    --fg-alt: #524874;
    --bg-active: #aea88e;
    --bg-inactive: #e7e0ca;
    --border: #7f785f;
    --link: #775228;
    --link-alt: #304f60;
    --bg-hover: #c0cbd7;
    --fg-intense: #000000;
    --bg-region: #ddc5af;
    --accent-0: #882000;
}

/* Ef Owl (dark) theme */
@media (prefers-color-scheme: dark) {
    :root {
	color-scheme: dark;
	--bg-main: #292c2f;
	--fg-main: #d0d0d0;
	--bg-dim: #373b3d;
	--fg-dim: #857f8f;
	--bg-alt: #40474b;
	--fg-alt: #aab9af;
	--bg-active: #60676b;
	--bg-inactive: #333539;
	--border: #4f5f66;
	--link: #99bfd0;
	--link-alt: #cf9f90;
	--bg-hover: #8f7a7f;
	--fg-intense: #ffffff;
	--bg-region: #404f66;
	--accent-0: #7ac0b9;
    }
    /* Add a bit of transparency so light media isn't so glaring in dark mode */
    img,
    video {
	opacity: 0.8;
    }
}

::selection {
    background-color: var(--bg-region);
}

#content {
    padding-top: 3rem;
    max-width: 600px;
    position: relative;
    margin: 5px auto;
    padding-left: 10px;
    padding-right: 10px;
}
#content a, #archive a {
    font-variant-caps: small-caps;
}
#text-table-of-contents a {
    font-variant-caps: normal;
    font-variant-numeric: normal;
}
#header {
    float: right;
    margin-left: 1rem;
    margin-bottom: 1rem
}
#tagsoup {
    margin-left: 1rem;
}
#monthsoup {
    margin-left: 1rem;
}
#postamble {
    position: relative;
    max-width: 600px;
    margin: auto;
}
#archive {
    margin-top: 2rem;
    font-size: 1rem;
}
#disqus_thread {
    margin-top: 1rem;
}
.taglist {
    margin-top: 0;
    font-size: 1rem;
}
.date {
    font-style: italic
}
.post-date {
    margin-top: 2rem;
    color: var(--fg-dim);
    font-variant-numeric: oldstyle-nums proportional-nums;
}
.article-meta {
    margin-left: 2.2rem;
    margin-right: 2.2rem;
    margin-bottom: 2.2rem
}
.archive-title {
    font-size: 1rem
}
.tags-title {
    font-size: 1.7rem;
    margin-top: 2rem;
    text-transform: uppercase
}
.article-title {
    font-size: 2rem
}
.article-content {
    margin-left: 2.2rem
}
.fineprint {
    text-align: center;
    font-size: .9rem;
    margin-top: .5rem
}
.footnum {
    font-weight: bold;
}
.footnotes {
    font-size: 0.875rem;
}
.footpara {
    display: inline;
}
.tag-low {
    font-size: .8rem;
    font-weight: 200
}
.tag-medium {
    font-size: 1.2rem;
    font-weight: 600
}
.tag-high {
    font-size: 1.8rem;
    font-weight: 800
}
.header{
    background-color: var(--bg-dim);
    border-bottom: 1px solid var(--border);
    text-align: center;
    padding: 0 0.5rem 2rem 0.5rem;
    margin: auto;  
}
.header h1 {
    font-size: 1.84rem;
    font-family: FT88-Gothique;
    font-weight: normal;
    padding-top: 1rem;
}
.header p {
  max-width: 40rem;
  margin: 1rem auto;
}
.header a, .header a:visited {
    color: var(--fg-dim);
    font-variant-caps: normal;
}
.header a:hover {
    color: var(--fg-intense);
}
.sitelinks, .sitelinks a {
    font-size: 12pt;
    line-height: 30px;
    color: #b48ead;
}
a.title {
    color: #b48ead;
}
a.title:hover {
    color: #b48ead;
}
a.identity {
    font-size: 20px;
    color: #b48ead;
}
a.identity:hover {
    color: #b48ead;
}
article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{
    display:block;
}
figcaption {
    text-align: center;
    font-size: 1.1rem;
    font-style: italic;
}
audio,canvas,video{
    display:inline-block;
    *display:inline;
    *zoom:1;
}
audio:not([controls]){display:none;}
html{
    font-size:100%;
    -webkit-text-size-adjust:100%;
    -ms-text-size-adjust:100%;
    background: var(--bg-main);
}
a:focus{
    outline:thin dotted;
    outline:5px auto -webkit-focus-ring-color;
    outline-offset:-2px;
}
a:hover,a:active{
    outline:0;
}
sub,sup{
    position:relative;
    font-size:75%;
    line-height:0;
    vertical-align:baseline;
}
sup{
    top:-0.5rem;
}
sub{
    bottom:-0.25rem;
}
img{
    max-width:100%;
    height:auto;
    border:0;
    -ms-interpolation-mode:bicubic;
}
button,input,select,textarea{
    margin:0;
    font-size:100%;
    vertical-align:middle;
}
button,input{
    *overflow:visible;
line-height:normal;
}
button::-moz-focus-inner,input::-moz-focus-inner{
    padding:0;
    border:0;
}
button,input[type="button"],input[type="reset"],input[type="submit"]{
    cursor:pointer;
    -webkit-appearance:button;
}
input[type="search"]{
    -webkit-appearance:textfield;
    -webkit-box-sizing:content-box;
    -moz-box-sizing:content-box;
    box-sizing:content-box;
}
input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{
    -webkit-appearance:none;
}
textarea{
    overflow:auto;
    vertical-align:top;
}
body{
    margin:0;
    font-family: var(--serif-font);
    font-size:0.813rem;
    line-height:1.125rem;
    color: var(--fg-main);
    overflow-x: hidden;
}
a{
    color:var(--link);
    text-decoration:none;  
}
a:visited {
    color: var(--link-alt);
}
a:hover {
    border-radius: 0.25rem;
    background-color: var(--bg-hover);
    color: var(--fg-intense);
}
p a {
    text-decoration-line: none;
}
p a:hover {
    transition: background-color 100ms linear;
    transition: text-decoration-color 100ms linear;
}
a.article-title{
    margin:0;
    font-weight:bold;
    color:#b48ead;
    text-rendering:optimizelegibility;
    font-size:30px;
    line-height:36px;
}
.row{
    margin-left:-20px;
    *zoom:1;
}.row:before,.row:after{display:table;content:"";}
.row:after{
    clear:both;
}
p{
    margin:12px 0 9px;
    font-size:1.25rem;
    line-height:1.65rem;
    -webkit-font-feature-settings: "onum" 1;
    -moz-font-feature-settings:    "onum";
    -ms-font-feature-settings:     "onum" 1;
    font-variant-numeric: oldstyle-nums proportional-nums;
}
p small{
    font-size:11px;
    color:#b48ead;
}
.lead{
    margin-bottom:18px;
    font-size:20px;
    font-weight:200;
    line-height:27px;
}
h1,h2,h3,h4,h5,h6{
    margin:0;
    font-weight:bold;
    color:var(--fg-main);
    text-rendering:optimizelegibility;
}
h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{
    font-weight:normal;
    color:#b48ead;
}
h1{
    font-size:2rem;
    line-height:2.25rem;
}
h1 small{
    font-size:18px;
}
h2{
    font-size:1.5rem;
    line-height:2.25rem;
}
h2 small{
    font-size:18px;
}
h3{
    line-height:1.69rem;
    font-size:1.125rem;
}
h3 small{
    font-size:14px;
}
h4,h5,h6{
    line-height:1.125rem;
}
h4{
    font-size:0.875rem;
}
h4 small{
    font-size:12px;
}
h5{
    font-size:0.75rem;
}
h6{
    font-size:0.688rem;
    color:var(--fg-alt);
    text-transform:uppercase;
}
.page-header{
    padding-bottom:17px;
    margin:18px 0;
    border-bottom:1px solid #b48ead;
}
.page-header h1{
    line-height:1;
}
ul,ol{
    padding:0;
    margin:0 0 9px 25px;
}
ul ul,ul ol,ol ol,ol ul{
    margin-bottom:0;
}
ul{
    list-style:disc;
}
ol{
    list-style:decimal;
}
li{
    font-size:1.25rem;
    line-height:1.6rem;
    font-variant-numeric: oldstyle-nums proportional-nums;
}
ul.unstyled{
    margin-left:0;
    list-style:none;
}
dl{
    margin-bottom:18px;
}
dt,dd{
    line-height:18px;
}
dt{
    font-weight:bold;
}
dd{
    margin-left:9px;
}
hr{
    margin:18px 0;
    border:0;
    border-top:1px solid #e5e5e5;
    border-bottom:1px solid #ffffff;
}
strong{
    font-weight:bold;
}
em{
    font-style:italic;
}
.muted{
    color:#999999;
}
abbr{
    font-size:90%;
    text-transform:uppercase;
    border-bottom:1px dotted #ddd;
    cursor:help;
}
blockquote{
    padding:0 0 0 15px;
    margin:0 0 18px;
    border-left:5px solid #eeeeee;
}
blockquote p{
    margin-bottom:0;
    font-size:16px;
    font-weight:300;
    line-height:22.5px;
}
blockquote small{
    display:block;
    line-height:18px;
    color:#999999;
}
blockquote small:before{
    content:'\2014 \00A0';
}
blockquote.pull-right{
    float:right;
    padding-left:0;
    padding-right:15px;
    border-left:0;
    border-right:5px solid #eeeeee;
}
blockquote.pull-right p,blockquote.pull-right small{
    text-align:right;
}
q:before,q:after,blockquote:before,blockquote:after{
    content:"";
}
address{
    display:block;
    margin-bottom:18px;
    line-height:18px;
    font-style:normal;
}
small{
    font-size:100%;
}
cite{
    font-style:normal;
}
code {
    background: #fcfcfc;
    color: #444;
    font-family: FreeMono, monospace;
    font-size: 15px;
    line-height: 18px;
    padding: 2px;
}
pre {
    background: #fcfcfc;
    color: #444;
    font-family: FreeMono, monospace;
    padding: 4px;
    padding-left: 6px;
    overflow: auto;
}
.code {
    color: #586e75;
}
.comment {
    color: #93a1a1;
    font-style: italic;
}
.symbol {
    color: #859900;
}
.string {
    color: #2aa198;
}
.paren1 {
    color: #aaaa00;
}
.paren2 {
    color: #888800;
}
.paren3 {
    color: #555500;
}
.underline {
    text-decoration: underline;
}

div.columns {
    column-count: 3;
}

div.columns .outline-3 {
    break-inside: avoid;
}

div.columns h2 {
    column-span: all;
}

div.columns h3 {
    text-align: left;
    font-size: medium;
}

div.columns p {
    font-size: small;
}

div.columns figcaption {
    display: table;
    margin-left: auto;
    margin-right: auto;
}

div.columns figure img {
    width: 100%;
}
