@import url(/css/fonts.css);
@import url(/css/audio-player.css);

html {
  line-height: 1.2;
  color: #282016;
  background-color: #edf7fc;
  font-size: 18px;
  --stripe-width: 72px;
  --padding-base: 20px;
  --para-space: 16px;
}
*::selection {
  background-color: #8bcffea3;
}
header {
  grid-area: header;
  padding: var(--padding-base);
  font-size: 20px;
  font-weight: 500;
}
header :nth-child(1) {
  font-weight: 600;
}
sup, sub {
  line-height: 0;
}
body {
  margin: 0;
  padding: 0;
  min-height: 100vh;
  display: grid;
  grid-template-areas:
    "header image"
    "main image"
    "footer footer";
  grid-template-rows: auto 1fr auto;
  grid-template-columns: 1fr auto;
  background: linear-gradient(#aee0fe, #edf7fc);
}
body.bg-solid {
  background: transparent;
}
a {
  color: inherit;
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: calc(var(--para-space) / 2);
}
p, ul, ol {
  margin-top: 0;
  margin-bottom: var(--para-space);
}
h1 {
  font-size: 28px;
}
h2 {
  font-size: 24px;
}
h3 {
  font-size: 20px;
}
main {
  flex-grow: 1;
  position: relative;
  grid-area: main;
}
body:not(.fullwidth) main {
  padding: 0 var(--padding-base) var(--padding-base) var(--padding-base);
  max-width: 58ch;
}
main a {
  font-weight: 600;
}
body.justify-p main p {
  text-align: justify;
}
ul.song-list {
  display: flex;
  gap: 10px;
  font-size: 17px;
  flex-direction: column;
  margin: 0;
  padding: 0;
  font-variant-numeric: oldstyle-nums;
  -moz-font-feature-settings: "onum";
  -webkit-font-feature-settings: "onum";
  font-feature-settings: "onum";
}
ul.song-list > li {
  display: flex;
  flex-direction: column;
}
ul.song-list a {
  font-style: italic;
  font-size: 20px;
}
ul.song-list > li > :nth-child(2) {
  font-size: 15px;
}
.instrumentation {
  font-size: 16px;
  color: #282016dd;
}
dl {
  font-size: 15px;
  display: grid;
  grid-gap: 0 10px;
  grid-template-columns: max-content auto;
  font-variant-numeric: oldstyle-nums;
  margin-block-start: 0;
  margin-block-end: 0;
  margin: 15px 0 15px 10px;
}
dt {
  margin: 0;
  padding: 0;
  font-weight: 800;
}
dd {
  margin: 0;
  padding: 0;
}
.song-subtitle-info {
  display: flex;
  flex-direction: column;
  margin-bottom: var(--para-space);
  font-variant-numeric: oldstyle-nums;
  -moz-font-feature-settings: "onum";
  -webkit-font-feature-settings: "onum";
  font-feature-settings: "onum";
}
.after-image {
  content: url(/img/moon.webp);
  grid-area: image;
  margin-right: var(--padding-base);
  padding: 0 1px;
  background-color: #edf7fc;
  border: 2px solid #8bcffe;
  border-top: none;
  border-bottom: none;
  width: var(--stripe-width);
  height: 100%;
  object-fit: cover;
  user-select: none;
}
.above-fold {
  height: 96vh;
  display: flex;
  padding: 0 var(--padding-base);
  align-items: center;
  position: relative;
  gap: 25px;
  overflow: hidden;
}
:is(header, main) a:not(:hover) {
  color: #323a42cc;
}
article {
  margin-bottom: calc(var(--para-space) * 1.5);
}
article time {
  display: flex;
  text-wrap: nowrap;
  align-items: baseline;
  font-size: 17px;
  font-weight: bold;
  margin-bottom: 0.5em;
  font-variant-numeric: oldstyle-nums;
}
article time::after {
  content: "";
  width: 100%;
  display: inline-block;
  border-bottom: 1px solid #323a4255;
  margin-left: 12px;
}
.quick-links {
  display: flex;
  flex-direction: column;
  align-items: start;
  gap: 4px;
  padding-right: 1.25em;
}
.quick-links a {
  font-weight: normal;
  position: relative;
}
.quick-links.inline::before {
  content: "";
  height: 1px;
  width: 128px;
  background-color: #323a4255;
  margin-bottom: 0.5em;
}
a.quick-link {
  position: relative;
}
.quick-links a:hover::after, a.quick-link:hover::after {
  content: " →";
  text-decoration: none;
  position: absolute;
  left: calc(100% + 0.5ch);
}
.above-fold .alex-image {
  max-height: 100%;
  max-width: 100%;
  content: url(/img/Alex_Seefeldt_v.webp);
  padding: 1px;
  background-color: #edf7fc;
  border: 2px solid #8bcffe;
}
.above-fold .name {
  font-family: var(--header-fonts);
  text-align: right;
  font-size: 36px;
  font-weight: bold;
}
.above-fold .summary {
  padding: 0 calc(0.8 * var(--padding-base));
  margin: 0;
  align-self: stretch;
  font-size: 17px;
  display: none;
}
.above-fold .quick-links {
  font-size: 24px;
}
footer {
  position: relative;
  background-color: #e7e1da;
  --padding-left: 2em;
  padding: 1em 1em 1em var(--padding-left, 1em);
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 16px;
  border-top: 2px solid #d9d3cc;
  overflow: hidden;
  grid-area: footer;
}
footer::before {
  content: "";
  position: relative;
  top: -1em;
  left: calc(-1 * var(--padding-left));
  height: var(--stripe-width);
  width: calc(100% + 1em + var(--padding-left));
  background-position: bottom;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: url(/img/foliage.webp);
  margin-bottom: -6px;
  border-top: 1px solid #fef8f1;
}
footer .link-block {
  font-size: 15px;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(max-content, 102px);
  column-gap: 2rem;
  row-gap: 6px;
}
footer .link-group {
  display: flex;
  flex-direction: column;
  align-items: start;
  gap: 1px;
  opacity: 0.85;
}
footer .copyright {
  margin-top: 0.5rem;
  opacity: 0.75;
  font-size: 0.8em;
}
.flex-column {
  display: flex;
  flex-direction: column;
}
.movements {
  list-style: upper-roman;
  font-style: italic;
  padding-inline-start: 32px;
}
.movements ::marker {
  font-weight: bold;
  font-style: normal;
}
.movements .citation {
  font-style: normal;
  font-size: 16px;
  font-variant-numeric: oldstyle-nums;
}
.text-citation {
  font-weight: bold;
  font-size: 16px;
  margin-bottom: calc(var(--para-space) / 2);
  font-variant-numeric: oldstyle-nums;
}
.text-citation b {
  font-weight: normal;
}
.italic {
  font-style: italic;
}
.italic i {
  font-style: normal;
}
.verse::before {
  font-style: normal;
  content: "\2123.";
}
@media only screen and (max-width: 660px) {
  .above-fold {
    flex-direction: column;
    height: auto;
    padding: calc(1.2 * var(--padding-base)) 0;
    gap: var(--padding-base);
  }
  .above-fold .alex-image {
    content: url(/img/Alex_Seefeldt_h.webp);
  }
  .above-fold .quick-links {
    font-size: 20px;
    flex-direction: row;
    line-height: 1;
    gap: 4px var(--padding-base);
    padding: 0 calc(0.8 * var(--padding-base));
    flex-wrap: wrap;
  }
  .above-fold .quick-links a:hover::after {
    display: none;
  }
  .above-fold .quick-links a {
    font-weight: bold;
  }
  .above-fold .quick-links a::after {
    font-weight: normal;
  }
  .above-fold .quick-links a .mobile-only {
    font-size: 17px;
    font-weight: normal;
  }
  footer {
    --padding-left: 1em;
  }
  .above-fold .summary {
    display: initial;
  }
}
@media only screen and (max-width: 400px) {
  main.justify-p p {
    text-align: initial;
  }
  .above-fold .alex-image {
    content: url(/img/Alex_Seefeldt_s.webp);
  }
  .after-image {
    display: none;
  }
}
