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

* {
  margin: 0;
}

body {
  line-height: 1.5;
}

input, button, textarea, select {
  font: inherit;
}

p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}

#root, #__next {
  isolation: isolate;
}

@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 300;
  font-display: block;
  src: url("/static/fonts/CormorantGaramond-Light.woff2") format("woff2");
}
@font-face {
  font-family: "Cormorant Garamond";
  font-style: italic;
  font-weight: 300;
  font-display: block;
  src: url("/static/fonts/CormorantGaramond-LightItalic.woff2") format("woff2");
}
@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("/static/fonts/CormorantGaramond-Regular.woff2") format("woff2");
}
@font-face {
  font-family: "Cormorant Garamond";
  font-style: italic;
  font-weight: 400;
  font-display: block;
  src: url("/static/fonts/CormorantGaramond-Italic.woff2") format("woff2");
}
@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("/static/fonts/CormorantGaramond-SemiBold.woff2") format("woff2");
}
@font-face {
  font-family: "Cormorant Garamond";
  font-style: italic;
  font-weight: 600;
  font-display: block;
  src: url("/static/fonts/CormorantGaramond-SemiBoldItalic.woff2") format("woff2");
}
/* overall type family & size */
body {
  font-family: "Cormorant Garamond";
  font-weight: 400;
  font-size: 1.25rem;
  line-height: 1.5;
  background-color: var(--main-bg-color);
  color: var(--main-text-color);
}

/*
   basic rich text styles
   note we are relying on semantic markup rather than
   explicit bold/italic, in part because <i> is being
   (ab)used to generate inline icons
*/
em, em em em {
  font-style: italic;
}

em em {
  font-style: normal;
}

strong {
  font-weight: 600;
}

/* hyperlinks */
a, a:visited {
  font-weight: 600;
  color: var(--link-text-unvisited);
  text-decoration: none;
}

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

a:hover, a:active {
  background-color: var(--link-bg-hover);
  color: var(--link-text-hover);
  border-bottom: 1px solid var(--link-underline-hover);
}

/* enhanced typography options */
.dimmed {
  color: var(--dimmed-text-color);
}

.light {
  font-weight: 300;
}

.footnote {
  /* will end up not applying to footnote block links due to more specific selector below */
  font-size: 1rem;
  vertical-align: super;
}

/* headings */
h1, .block-heading {
  font-size: 2.5rem;
  font-weight: 600;
  line-height: 1.25;
  margin-top: 1.5rem;
  margin-bottom: 0.84375rem;
}

h2 {
  font-size: 1.5rem;
  line-height: 1.25;
  font-weight: 300;
  margin-top: 1.5rem;
  margin-bottom: 0.84375rem;
}

h3 {
  font-size: 1.25rem;
  line-height: 1.25;
  font-weight: 600;
  margin-top: 1.25rem;
  margin-bottom: 0.5rem;
}

h4 {
  font-size: 1.25rem;
  line-height: 1.25;
  font-weight: 300;
  margin-top: 1.25rem;
  margin-bottom: 0.5rem;
}

/* a tag block--probably doesn't belong here */
.page_tag {
  display: inline-block;
  font-size: 1rem;
  line-height: 1;
  background-color: var(--tag-bg-color);
  color: var(--tag-text-color);
  border-radius: 0.25rem;
  padding: 0.1rem 0.25rem;
}
.page_tag a, .page_tag a:visited {
  color: var(--tag-text-color);
}
.page_tag a:hover, .page_tag a:active {
  background-color: transparent;
  color: var(--tag-text-color);
}

/* body styles */
p + p, img.richtext-image.right + p {
  text-indent: 2em;
}

blockquote {
  margin: 0.5rem 1.5rem;
  padding: 0.5rem 1.5rem;
  border-radius: 0.5em;
  border-left: 4px solid var(--blockquote-edge-color);
  background-color: var(--blockquote-bg-color);
}

.block-footnote dl {
  column-count: 2;
  column-gap: 4rem;
  /*
  	display: flex;
  	flex-direction: row;
  	flex-wrap: wrap;
  	justify-content: flex-start;
  	gap: 0 4rem;
  */
  font-size: 1rem;
  line-height: 1.25;
  margin-top: 1rem;
}
.block-footnote dl .footnote-item {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-content: stretch;
  gap: 0 0.5rem;
}
.block-footnote dl .footnote-item dt {
  flex-basis: 2rem;
  width: 2rem;
  text-align: right;
  flex-grow: 0;
  flex-shrink: 0;
  font-size: 0.75rem;
  line-height: 1;
}
.block-footnote dl .footnote-item dd {
  flex-grow: 1;
  flex-basis: auto;
}

/* inline-block elements */
img.richtext-image.full-width {
  display: block;
  width: 100%;
  height: auto;
  border: 2px solid var(--image-border-color);
}

img.richtext-image.left,
img.richtext-image.right {
  display: inline-block;
  width: 50%;
  height: auto;
  border: 2px solid var(--image-border-color);
}

img.richtext-image.left {
  float: left;
  margin: 1rem 1rem 1rem 0;
}

img.richtext-image.right {
  float: right;
  margin: 1rem 0 1rem 1rem;
}

/* dark theme for artwork pages--probably doesn't belong here */
.artwork-full {
  background-color: var(--alt-main-bg-color);
  color: var(--alt-main-text-color);
}
.artwork-full a {
  color: var(--alt-link-text-unvisited);
}
.artwork-full a:hover, .artwork-full a:active {
  color: var(--alt-link-text-hover);
  background-color: var(--alt-link-bg-hover);
  border-bottom: 1px solid var(--alt-link-underline-hover);
}
.artwork-full .page_tag {
  background-color: var(--alt-tag-bg-color);
  color: var(--alt-tag-text-color);
}
.artwork-full .page_tag a {
  color: var(--alt-tag-text-color);
}
.artwork-full .page_tag a:hover, .artwork-full .page_tag a:active {
  background-color: transparent;
  color: var(--alt-tag-text-color);
}

/* variations for different typography settings */
/* design-specific */
.artwork-full, .article-full, .article-full .article-header .summary, .form-full, .list-full, footer, header, .block-hero .hero-container .container, article {
  display: grid;
  grid-template-columns: [leftside] 1fr [leftwide] 1fr [leftmargin] min(40%, 25rem) [center] min(40%, 25rem) [rightmargin] 1fr [rightwide] 1fr [rightside];
  width: 100%;
}

.artwork-full .artwork-header h1, .artwork-full .artwork-header h2, .artwork-full .article-subheader, .article-full .article-header .summary .page_title, .article-full .article-header .summary .page_subtitle, .article-full .article-subheader, .list-full .list-header, footer .container, header .container, .hero-content > div, article > div, article > form {
  grid-column: leftmargin/rightmargin;
}

.block-wider:has(.wide-width) {
  grid-column: leftwide/rightwide;
}

.artwork-full .artwork-header, .artwork-full article, .article-full .article-header, .article-full article, .form-full article, .list-full article, .block-hero, .block-wider:has(.nearly-full-width), .block-wider:has(.full-width) {
  grid-column: leftside/rightside;
}

.grid-container, footer, header, article {
  width: 100%;
  display: grid;
}

.container, .biglist, .hero-container {
  width: 100%;
  display: block;
}

.fill-parent, .jumbo-link, .hero {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
}

.hero-container {
  position: relative;
}

.hero {
  z-index: -1;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.jumbo-link {
  z-index: 2;
}
.jumbo-link a {
  display: block;
  width: 100%;
  height: 100%;
}
.jumbo-link a:hover, .jumbo-link a:active {
  background-color: transparent;
  border-bottom: none;
}

html, body {
  display: flex;
  height: 100%;
  flex-direction: column;
}

body > * {
  flex-shrink: 0;
}

footer {
  flex-grow: 1;
}

.unwrapped-richtext > p {
  display: inline;
}

article {
  margin-top: 2rem;
  margin-bottom: 2rem;
}
.author-mark {
  width: 3rem;
  margin-top: 2rem;
  border-top: 1px solid var(--author-mark-edge-color);
}
.author-mark .author-quilljade {
  display: block;
  margin-top: 0.25rem;
  width: 1.25em;
  height: 1.25em;
  background: url("/static/img/quill-black.png") center center no-repeat;
  background-size: contain;
}
.author-mark .author-lunajade {
  display: block;
  margin-top: 0.25rem;
  width: 1.25em;
  height: 1.25em;
  background: url("/static/img/luna-black.png") center center no-repeat;
  background-size: contain;
}
.author-mark.variant-dark {
  border-top: 1px solid var(--alt-author-mark-edge-color);
}
.author-mark.variant-dark .author-quilljade {
  background: url("/static/img/quill-white.png") center center no-repeat;
  background-size: contain;
}
.author-mark.variant-dark .author-lunajade {
  background: url("/static/img/luna-white.png") center center no-repeat;
  background-size: contain;
}

.image-wrapper, .block-image {
  border: 2px solid var(--image-border-color);
  padding: 1px;
}
.image-wrapper img, .block-image img {
  display: block;
}

.paging .fa {
  font-size: 0.85rem;
}

/* design-specific */
.block-hero {
  position: relative;
}

div + .block-hero .comfy {
  margin-top: 2rem;
}

.block-hero:has(+ div) .comfy {
  margin-bottom: 2rem;
}

.hero-video {
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero-video video {
  width: 100%;
  object-fit: fill;
}

.hero-container.hero-tiny {
  height: 10rem;
}

.hero-container.hero-small {
  height: 20rem;
}

.hero-container.hero-medium {
  height: 40rem;
}

.hero-container.hero-large {
  height: 60rem;
}

.hero-container.hero-oversized {
  height: 80rem;
}

.block-hero .hero-container .container {
  display: grid;
}

.block-hero .hero-valign-top {
  display: flex;
  align-items: flex-start;
}
.block-hero .hero-valign-upper {
  display: flex;
  align-items: center;
}
.block-hero .hero-valign-upper .hero-content {
  margin-bottom: 5em;
}
.block-hero .hero-valign-center {
  display: flex;
  align-items: center;
}
.block-hero .hero-valign-lower {
  display: flex;
  align-items: center;
}
.block-hero .hero-valign-lower .hero-content {
  margin-top: 5em;
}
.block-hero .hero-valign-bottom {
  display: flex;
  align-items: flex-end;
}
.block-hero .hero-valign-bottom .hero-content {
  margin-top: 5em;
}

.block-hero .hero-parallax {
  perspective: 2px;
  overflow-x: hidden;
  overflow-y: auto;
  position: absolute;
  width: 100%;
  height: 100%;
}
.block-hero .hero-parallax .hero {
  /* abs pos & edge position set by .fill-parent which .hero extends */
  transform-style: preserve-3d;
  transform: translateZ(-2px) scale(3);
}

.block-video {
  border: 2px solid var(--image-border-color);
  padding: 1px;
}
.block-video video {
  display: block;
  width: 100%;
}

.block-image img {
  width: 100%;
  height: auto;
}

.block-halign .content-halign-center > div {
  text-align: center;
}

.block-two_column .column-grid {
  display: grid;
  column-gap: 2rem;
  width: 100%;
}
.block-two_column .column-grid.columns_33_67 {
  grid-template-columns: [leftside] 1fr [center] 2fr [rightside];
}
.block-two_column .column-grid.columns_40_60 {
  grid-template-columns: [leftside] 2fr [center] 3fr [rightside];
}
.block-two_column .column-grid.columns_50_50 {
  grid-template-columns: [leftside] 1fr [center] 1fr [rightside];
}
.block-two_column .column-grid.columns_60_40 {
  grid-template-columns: [leftside] 3fr [center] 2fr [rightside];
}
.block-two_column .column-grid.columns_67_33 {
  grid-template-columns: [leftside] 2fr [center] 1fr [rightside];
}
.block-two_column .column-grid .column-left {
  grid-column-start: leftside;
  grid-column-end: center;
}
.block-two_column .column-grid .column-right {
  grid-column-start: center;
  grid-column-end: rightside;
}

.block-three_column {
  display: grid;
  grid-template-columns: [leftside] 1fr [leftgutter] 1fr [rightgutter] 1fr [rightside];
  column-gap: 2rem;
  width: 100%;
}
.block-three_column .column-left {
  grid-column-start: leftside;
  grid-column-end: leftgutter;
}
.block-three_column .column-middle {
  grid-column-start: leftgutter;
  grid-column-end: rightgutter;
}
.block-three_column .column-right {
  grid-column-start: rightgutter;
  grid-column-end: rightside;
}

.block-wider:has(.nearly-full-width) {
  padding: 0 2rem;
}

/* design-specific */
/* design-specific */
footer, header {
  background-color: var(--nav-bg-color);
  color: var(--nav-text-color);
}
footer a, header a {
  color: var(--nav-link-text-unvisited);
  text-decoration: none;
}
footer a:visited, header a:visited {
  color: var(--nav-link-text-visited);
}
footer a:hover, header a:hover, footer a:active, header a:active {
  background-color: var(--nav-link-bg-hover);
  color: var(--nav-link-text-hover);
  border-bottom: 1px solid var(--nav-link-underline-hover);
}
footer .dimmed, header .dimmed {
  color: var(--nav-dimmed-text-color);
}

header {
  /* all header links, including socials */
}
header .container {
  height: 2rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 1rem;
}
header .container #social {
  flex-grow: 1;
  text-align: right;
}
header a, header a:visited, header a:hover, header a:active {
  font-weight: 400;
  color: var(--header-bar-link-text);
  background-color: transparent;
  text-decoration: none;
  border: none;
}
header #site-logo img {
  height: 1.25em;
  display: block;
}

/* design-specific */
footer {
  font-size: 0.9rem;
  line-height: 1.25;
  padding-top: 1em;
}
footer ul {
  padding: 0;
}
footer ul li {
  list-style: none;
}
footer .container {
  margin: 0 auto 2rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
}
footer .container > div {
  padding: 0 2rem;
  border-right: 1px solid var(--footer-separator-color);
}
footer .container > div:last-child {
  border-right: none;
}

form div:has(textarea) {
  width: 100%;
  border: 2px solid var(--formfield-border-color-normal);
  padding: 0.5rem 0.5rem 0.5rem 0.5rem;
  margin-bottom: 1rem;
}
form div:has(textarea) label {
  display: block;
  font-size: 1rem;
  line-height: 1rem;
  color: var(--formfield-label-text-color);
}
form div:has(textarea) textarea {
  width: 100%;
  display: block;
  border: none;
  color: var(--formfield-input-text-color);
}
form div:has(textarea) textarea:focus {
  border: none;
  outline: none;
}
form div:focus-within {
  border: 2px solid var(--formfield-border-color-focus);
}
form button {
  width: 10rem;
  background-color: var(--formbutton-bg-color);
  color: var(--formbutton-text-color);
  font-weight: 600;
  border-top: 2px solid var(--formbutton-border1-color);
  border-left: 2px solid var(--formbutton-border1-color);
  border-right: 2px solid var(--formbutton-border2-color);
  border-bottom: 2px solid var(--formbutton-border2-color);
}

/* design-specific */
.list-full article {
  margin-top: 1rem;
}
.list-full article :nth-child(1 of .tinylist) {
  margin-top: 2rem;
}

/* design-specific */
.form-full article {
  margin-top: 0;
  margin-bottom: 0;
}
.form-full article form {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

/* design-specific */
/* BIG LIST */
/* right-handed default */
.biglist {
  position: relative;
  height: 20rem;
  background-color: transparent;
}
.biglist .summary {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 20rem;
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5) 30%, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, 0));
  color: var(--summary-text-color);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-end; /* variant-right */
  padding: 1rem 0;
  /* pull out of flex and reposition */
}
.biglist .summary > * {
  width: 35%;
  text-align: right; /* variant-right */
  padding-right: 2rem; /* variant-right */
}
.biglist .summary .details {
  display: block;
  position: absolute;
  /* left: 2rem; */
  bottom: 1rem;
  align-self: flex-start;
  text-align: left;
  text-shadow: 0px 0px 6px rgb(0, 0, 0);
  font-weight: 600;
}
.biglist .summary .details .details-inside {
  display: flex;
  flex-direction: row-reverse;
  gap: 1rem;
}
.biglist h1, .biglist h2 {
  margin: 0;
}

.biglist.variant-right .details {
  left: 2rem;
}
.biglist.variant-right .details .details-inside {
  flex-direction: row;
}

/* left-handed variant */
.biglist.variant-left .summary {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5) 30%, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, 0));
  align-items: flex-start;
}
.biglist.variant-left .summary > * {
  width: 35%;
  text-align: left;
  padding-right: 0;
  padding-left: 2rem;
}
.biglist.variant-left .summary .details {
  right: 2rem;
  align-self: flex-start;
  text-align: right;
}

/* design-specific */
/* TINY LIST */
.tinylist {
  margin-bottom: 1rem;
  position: relative;
  display: flex; /* flex-row: row nowrap (implied) */
  justify-content: flex-start;
  align-items: flex-start;
  gap: 1rem;
}
.tinylist .article-image {
  flex-grow: 0;
}
.tinylist .summary {
  flex-grow: 1; /* applies to parent flex-box */
  height: 3.75rem;
  overflow: hidden;
}
.tinylist h2 {
  font-style: italic;
}
.tinylist h1, .tinylist h2 {
  display: inline !important;
  margin: 0;
  font-size: 1.25rem;
}
.tinylist .short_date::before {
  content: "(";
}
.tinylist .short_date::after {
  content: ")";
}
/* design-specific */
/* FULL PAGE */
.article-full .article-header {
  position: relative;
  background-color: transparent;
}
.article-full .article-header .container {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 40rem;
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.67), rgba(0, 0, 0, 0.67) 2em, rgba(0, 0, 0, 0) 6rem);
  color: #ffffff;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  padding: 1rem 0;
}
.article-full .article-header h1, .article-full .article-header h2 {
  margin: 0;
}
.article-full .article-subheader {
  margin-top: 0.25rem;
}
.article-full .article-subheader .details {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
}
.article-full .article-subheader .details > * {
  flex-grow: 1;
}
.article-full .article-subheader .details .page_author {
  text-align: right;
}
/* design-specific */
/* FULL PAGE */
.artwork-full .artwork-header {
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  padding: 1.25rem 0;
}
.artwork-full .artwork-header .artwork-image {
  border: 1px solid #444444;
  background-color: #222222;
  padding: 0.75rem;
  max-width: 90vh;
}
.artwork-full .artwork-header .artwork-image img {
  display: block;
  width: auto;
  height: 100%;
  max-width: calc(90vh - 1.5rem);
  max-height: calc(100vh - 18rem);
  object-fit: contain;
  overflow: hidden;
}
.artwork-full .artwork-header h1, .artwork-full .artwork-header h2 {
  text-align: center;
  margin-top: 0.5rem;
}
.artwork-full .article-subheader {
  margin-top: 0.5rem;
}
.artwork-full .article-subheader .details {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
}
/* design-specific */
/* FULL PAGE */
.blank-full article {
  margin-top: 0;
  margin-bottom: 0;
}

/* design-specific */
/* design-specific */
/*
	general content page tag hierarchy is:

	body.template-article
		// top navigation bar
		header (grid defined here)
			div.container (navbar styles generally override here)
				// site name
				div.social

		// page-specific content
		div.article-full (grid defined here for non-content header/subheader)
			// hero portion
			div.article-header (page types override here if using article header)
				div.hero
				div.container (hero overlay, header text)
			// non-hero portion
			div.article-subheader
				div.details+ (data, author, tags) (page types override here if using article subheader)
			article (grid defined here for content blocks)
				div.block-* (block types override here)

		// footer bar
		footer (grid defined here)
			div.container (navbar styles generally override here)
				div.footer-left
					ul
						li
				div.footer-right
					ul
						li

	general big list page tag hierarchy is:

	body.template-homepage
		// top navigation same as content page

		div.biglist.*-large.variant-*
			div.biglist-header.*-header
				div.hero
				div.summary
				div.jumbo-link

		// footer same as content page

	general tiny list page tag hierarchy is:

	body.template-list
		// top navigation same as content page

		div.list-full.*-large.variant-*
			div.list-header
				h1.page_title

			article
				div.block-* (block types override here)
				div.*-tiny
				div.paging

		// footer same as content page

*/

/*# sourceMappingURL=theme.css.map */
