@charset "UTF-8";

/* ==========================================
** FONTS AND COLORS
** Color names from color-name.com
** ========================================== */

:root {
  color-scheme: light dark;
  --header-bg-color: light-dark(#242124, #242124); /* Raisin Black */
  --header-fg-color: light-dark(#D3AB74, #D3AB74); /* Golden Bear Gold */
  --header-border-color: light-dark(#CCCCCC, #CCCCCC);

  --nav-link-color: light-dark(#FFFFFF, #FFFFFF);

  --body-bg-color: light-dark(#FFFFFF, #363436);
  --main-bg-color: transparent;
  --link-color: light-dark(#0072CF, #06C9FF);
  --active-link-color: light-dark(#FDBA2E, #FDBA2E);
  --title-color: transparent;
  --heading-1-color: light-dark(#435454, #E8E8D4);
  --main-fg-color: light-dark(#3333333, #F8F8E4);
  --meta-bg-color: light-dark(#1C57A5, #677D6A);
  --meta-fg-color: #FFFFFF;     /* White */
  --footer-bg-color: light-dark(#CCCCCC, #19191E);
  --footer-fg-color: light-dark(#334444, #F8F8E4);
  --footer-border-color: light-dark(#242124, #CCC);

  --body-font: 'Noto Sans', sans-serif;
  --body-font-weight: 400;
  --body-font-bold-weight: 700;

  --captions-font: 'Noto Sans', sans-serif;
  --captions-font-weight: 400;
  --captions-font-bold-weight: 700;

  --footer-font: 'Encode Sans Expanded', sans-serif;
  --footer-font-weight: 400;

  --headings-font: 'Noto Sans', sans-serif;
  --headings-font-weight: 700;

  --meta-font: 'Encode Sans Expanded', sans-serif;
  --meta-font-weight: 400;

  --nav-font: 'Encode Sans Expanded', sans-serif;
  --nav-font-pri-weight: 300;
}

/* ==========================================
** HTML
** ========================================== */

html {
  font-size: 13pt;
}

/* ==========================================
** BODY
** ========================================== */

body {
  font-family: sans-serif;
  font-family: var(--body-font);
  font-weight: var(--body-font-weight);
  font-style: normal;
  color: var(--main-fg-color);
  background-color: var(--body-bg-color);
  margin: 0 0 auto 0;
  padding: 0;
  height: 100%;
  overflow-wrap: break-word;
  font-variant-numeric: lining-nums;
  -moz-font-feature-settings: "lnum";
  -webkit-font-feature-settings: "lnum";
  font-feature-settings: "lnum";
}

/* ==========================================
** HYPERLINKS
** ========================================== */

a {
  text-decoration: none;
  border: none;
}

a:link, a:visited { color: var(--link-color); }
a:hover, a:active { color: var(--active-link-color); }

/*
div.network-links {
  a:link, a:visited { color: var(--network-link-color); }
  a:hover, a:active { color: var(--network-active-link-color); }
}
*/

/* =============================================================
** HEADER
** ============================================================= */

header {
  background-color: var(--header-bg-color);
  border-bottom: 4px solid var(--header-border-color);
  color: var(--header-fg-color);
  display: block;
  text-align: center;
  /*
  align-items: center;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: space-between;
  */
  margin: 0;
  padding: 0 calc((90% - 750px) / 2);
}

span.mx-aai { /* for header logo */
  display: inline-block;
  content: ' ';
  padding: 0;
  background-color: currentColor;
  background-size: contain;
  background-repeat: no-repeat;
}

/* =============================================================
** NAVIGATION
** ============================================================= */

nav {
  display: block;
  /* flex-direction: row;
  justify-content: flex-end;
  flex-wrap: wrap;
  align-items: baseline; */
  text-align: center;
  margin: 0;
  border: none;
  padding: 0;
  font-family: sans-serif;
  font-family: var(--nav-font);
  font-weight: var(--nav-font-pri-weight);

  & a:link, & a:visited { color: var(--nav-link-color); }
  & a:hover, & a:active { color: var(--active-link-color); }

  & ul {
    padding: 0;
    list-style-type: none;
    margin: 0;
  }

  & li {
    display: inline-block;
    padding: 0.25em 0.4em;
  }

  & li.active ::before {
    content: '»';
    display: inline-block;
    margin-right: 0.25em;
  }
  & li.active ::after {
    content: '«';
    display: inline-block;
    margin-left: 0.25em;
  }
}

/* ==========================================
** MAIN
** ========================================== */

main {
  background-color: var(--main-bg-color);
  border-radius: 0 0 0.5em 0.5em;
  border: none;
  box-sizing: border-box;
  color: var(--main-fg-color);
  display: block;
  margin: 0 auto;
  padding: 0;
  text-align: left;
  width: 750px;

  p, li {
    line-height: 150%;
    margin: 0 0 1em;
  }

  strong, b { font-weight: var(--body-font-bold-weight); }

  li:not(:is(:last-child)) { margin-bottom: 0; } /* scrunch list items together */
  li.footnote { font-size: 80%; }

  sup {
    vertical-align: top;
    font-size: 0.6em;
    position: relative;
    top: -0.5em;
  }

  blockquote {
    border-left-color: var(--nav-bg-color);
    border-left-style: solid;
    border-left-width: 0.3em;
    padding: 0 0 0 1em;
  }
  blockquote > p { margin: 0; }

  pre {
    overflow: scroll;
    background-color: #040720;
    color: #FFF0DB;
    border-radius: 0.5em;
    padding: 0.5em;
  }

  img {
    display: block;
    height: auto;
    width: auto;
    max-width: 100%;
    border-radius: 0.75em;
    margin-left: auto;
    margin-right: auto;

    &.profile {
      max-width: 20vw;
      width: 10em;
      border-radius: 50%;
      border-width: 0.5em;
      border-color: var(--profile-image-border-color);
      border-style: solid;
      margin-bottom: 0.5em;
    }
  } /* img */

  figure {
    text-align: center;
  }
  
  figcaption {
    text-align: center;
    font-style: italic;
  }

  img.small {
    max-width: 200px;
    display: inline-block;
  }

  p:has(img.small) { text-align: center; }
  
  video {
    display: block;
    height: auto;
    width: auto;
    max-width: 100%;
    max-height: 20em;
    border-radius: 0.75em;
    margin-left: auto;
    margin-right: auto;
  }

  div.landing-page-grid {
    display: grid;
    grid-template-columns: 210px auto;
    grid-template-rows: auto;
    column-gap: 10px;
    row-gap: 10px;
    margin-top: 1em;
  }

  div.landing-page-post-cover {
    grid-column-start: 1;
    grid-column-end: 2;
    width: 210px;
    height: 140px;
    background-size: cover;
    background-position: center;
    padding: 0;
  }

  div.landing-page-post-card {
    grid-column-start: 2;
    grid-column-end: 3;
    padding: 0;
  }

  p.post-title {
    font-size: 1.1em;
    line-height: 120%;
    font-weight: var(--body-font-bold-weight);
    margin: 0;
  }

  p.post-date {
    font-family: var(--meta-font);
    font-weight: var(--meta-font-weight);
    margin: 0;
  }

  p.post-summary {
    margin: 0;
  }

} /* main */

/* =============================================================
** FOOTER
** ============================================================= */

footer {
  background-color: var(--footer-bg-color);
  border-top: 4px solid var(--footer-border-color);
  color: var(--footer-fg-color);
  display: block;
  font-family: var(--footer-font);
  font-size: 0.8em;
  font-weight: var(--footer-font-weight);
  margin: 50px 0 0 0;
  padding: 20px;
  text-align: center;
}

span.masked-logo {
  display: inline-block;
  content: ' ';
  padding: 0;
  background-color: currentColor;
  mask-repeat: no-repeat;
  width: 160px;
  height: 60px;
}

/* =============================================================
** GLOBAL STYLES
** ============================================================= */

img.inline {
  display: inline-block;
  height: 1em;
  width: auto;
  border-radius: 0;
  vertical-align: middle;
  margin-block-start: calc(1ex - 1cap);
}

img.button88x31 {
  display: inline;
  max-width: 88px;
  max-height: 31px;
  width: 88px;
  height: 31px;
  border-radius: 0;
}

div.summary {
  font-family: var(--meta-font);
  font-weight: var(--meta-font-weight);
  font-size: 80%;
  width: 80%;
  line-height: 150%;
  text-align: center;
  margin: 0 auto 2em; /* override; assumed only to follow page title */
  text-wrap: balance;
}

/* If the summary is blank... */
div[data-summary="{summary}"] {
  display: none;
}

/* =============================================================
** METADATA AND TAGS
** ============================================================= */

div.post-meta {
  text-align: left;
  margin-top: 2em;
  padding-top: 0.5em;
}

aside {
  font-family: sans-serif;
  font-family: var(--meta-font);
  font-weight: var(--meta-font-weight);
  display: block;
  font-size: 85%;
  color: var(--main-fg-color);
  line-height: 200%;
}

aside.post-info {
  margin-top: 1em;
}

aside.post-tags {
  text-align: right;
  min-height: 1.5em;
  line-height: 100%;
}

aside i {
  padding-right: 0.5em;
  padding-left: 0.5em;
}

.tag {
  background-color: var(--meta-bg-color);
  border-radius: .5em;
  color: var(--meta-fg-color) !important;
  display: inline-block;
  font-family: var(--meta-font);
  font-weight: var(--meta-font-weight);
  margin: 0.2em;
  padding: .3em .4em;
  text-decoration: none !important;
}

a.tag-mini {
  background-color: light-dark(#FEC, #430);
  margin: 0.1em;
  padding: 0.05em 0.5em;
}

div.caption {
  font-family: var(--captions-font);
  font-weight: var(--captions-font-weight);
  text-align: center;
  line-height: 150%;
  font-size: 0.9em;
  text-wrap: balance;
  b {
    font-weight: var(--captions-font-bold-weight);
  }
}

/* =============================================================
** HEADINGS (H1, H2, ETC.)
** ============================================================= */
h1, h2, h3, h4, h5 {
  font-family: var(--headings-font);
  font-weight: var(--headings-font-weight);
  font-style: normal;
}

h2, h3, h4, h5 {
  color: var(--main-fg-color);
  margin-top: 0.5em !important;
}

h1 {
  font-size: 1.5em;
  text-align: center;
  text-wrap: balance;
  color: var(--heading-1-color);
  margin-top: 1.5em !important;
}

h2 { font-size: 1.25em; }
h3 { font-size: 1.1em; }


/* =============================================================
** TABLES
** ============================================================= */

main table {
  font-family: var(--captions-font);
  font-weight: var(--captions-font-weight);
  border-collapse: collapse;
  margin: 0 auto 1em auto;
  b { font-weight: var(--captions-font-bold-weight); }
}
main td, main th { padding: 0.4em; /* font-size: 0.8em; */ }
main td:first-of-type, main th:first-of-type { padding-left: 0; }
main td:last-of-type, main th:last-of-type { padding-right: 0; }
main td { border-top: 1px solid #CCC; }
table.archive-post-list tr:nth-of-type(2) { counter-reset: row-num; }
table.archive-post-list tr { counter-increment: row-num; }
table.archive-post-list td:first-child::before { content: counter(row-num); }
table.archive-post-list tr td:nth-of-type(1) { text-align: right; }
table.archive-post-list tr td:nth-of-type(2) { white-space: nowrap; }
table.archive-post-list tr th:nth-of-type(1) { text-align: right; }

td img { display: inline-block; }

/* =============================================================
** LANDING PAGE / PAGINATION
** ============================================================= */

div.pagination {
  margin: 1em auto;
  text-align: center;
  span.previous-page { margin-right: 0.25em; }
  span.next-page { margin-left: 0.25em; }
}

/* =============================================================
** RECENT POSTS
** ============================================================= */

div.recents-container {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    align-content: flex-start;
    gap: 10px;
}

div.recents-container > div:nth-child(1) {
    width: 100%;
    img { aspect-ratio: 3/2; max-height: 300px; }
}

div.recents-container > div:nth-child(n+2) {
  font-size: 80%;
  flex: 1 1 30%;
  padding: 0;
}

div.recents-container img {
    width: 100%;
    object-fit: cover;
    display: inline-block;
    aspect-ratio: 3/1;
}

div.recent-post {
    padding: 0;
    margin-bottom: 1em;
    h2 {
        margin: 0.5em 0 0.5em 0;
    }
    p {
        margin: 0;
    }
    p.recent-post-date {
        font-size: 80%;
        font-family: var(--meta-font);
        font-weight: var(--meta-font-weight);
    }
}



/* =============================================================
** LISTS WITH MASK-IMAGE MARKERS (mx-ul, mx-li) -- legacy?
** need to check to see if these are still used.
** ============================================================= */

ul.mx-ul {
  text-align: left;
  padding-left: 0;
  text-indent: -2em;
  margin-left: 2em;
  list-style-type: none;
  line-height: 175%;
}

ul.mx-ul li {
  margin-bottom: 0.5em;
}

ul.mx-ul li::before {
  display: inline-block;
  width: 1.2em;
  height: 1.2em;
  margin-right: 0.8em;
  overflow: visible;
  position: relative;
}

ul.mx-ul li.mx-li::before {
  content: ' ';
  padding: 0;
  font-size: 1em;
  text-indent: 0;
  /* vertical-align: -0.2em; */
  vertical-align: middle;
  margin-block-start: calc(1ex - 1cap);
  background-color: currentColor;
  mask-repeat: no-repeat;
}

/* =============================================================
** CONTENT RATINGS - 5 STARS
** ============================================================= */

.star-rating {
  --f: 1; /* num full stars */
  --h: 0; /* num half stars */
  display: inline-block;
  background-image: url("https://cdn.mihobu.lol/sprites/65429788c3386.png");
  width: 4em;
  height: 0.8em;
  background-size: 4em 8em;
  background-position-y: calc( (-0.8em * (var(--f) - 1)) - (4.8em * var(--h)) );
}

/* =============================================================
** PROGRESS BAR (FOR BOOKS, MOSTLY)
** ============================================================= */

.progress-bar-container {
  display: inline-block;
  width: 60px;
  height: 10px;
  border-radius: 4px;
  border: 1px solid hsl(208,14%,60%);
  /* overflow: hidden; */
  position: relative;
  margin-right: 0.3rem;
  background: linear-gradient(
    90deg,
    Orange 0%, Orange var(--pct),
    var(--main-bg-color) var(--pct), var(--main-bg-color) 100%
  );
}

[data-tooltip]::before {
    /* needed - do not touch */
    content: attr(data-tooltip);
    position: absolute;
    opacity: 0;

    /* customizable */
    transition: all 0.15s ease;
    padding: 0.5rem;
    color: SaddleBrown;
    border-radius: 5px;
    box-shadow: 2px 2px 1px silver;
    font-size: 0.75rem;
    white-space: nowrap;
    line-height: 1;
    text-indent: 0;
}

[data-tooltip]:hover::before {
    /* needed - do not touch */
    opacity: 1;

    /* customizable */
    background: Gold;
    margin-top: 0px;
    margin-left: 0px;
}

[data-tooltip]:not([data-tooltip-persistent])::before {
    pointer-events: none;
}

/* =============================================================
** COLOR SWATCHES
** Usage: <span class="color-swatch" style="--c:#CC0000">#CC0000</span>
** ============================================================= */

span.color-swatch { font-family: monospace; }
span.color-swatch::after {
  width: 1.2em;
  height: 1.2em;
  padding: 0;
  margin-left: 0.25em;
  background-color: var(--c);
  border-radius: 50%;
  content: "";
  display: inline-block;
  vertical-align: -0.1em;
}

/* =============================================================
** PRIDE MONTH
** ============================================================= */

div.top-round-rainbow {
  width: 100%;
  height: 5px;
  background: white;
  background-image: repeating-linear-gradient(to right,
    #E50000    0%, #E50000  9.5%,
    #FF8D00  9.5%, #FF8D00 18.5%,
    #FFEE00 18.5%, #FFEE00 27.5%,
    #028121 27.5%, #028121 36.5%,
    #004CFF 36.5%, #004CFF 45.5%,
    #760088 45.5%, #760088 54.5%,
    #FFFFFF 54.5%, #FFFFFF 63.5%,
    #FFAFC7 63.5%, #FFAFC7 72.5%,
    #73D7EE 72.5%, #73D7EE 81.5%,
    #613915 81.5%, #613915 90.5%,
    #000000 90.5%, #000000 100%);
}

/* =============================================================
** SMALLER SCREENS
** ============================================================= */

@media (max-width: 800px) {
  body { font-size: 10pt; }
  header { padding: 0 5%; }
  main { width: 95vw; }
}

}