/* SPDX-License-Identifier: CC0-1.0 */
.katex {
 font-size: 1.15em !important;
}

/* noto-serif-latin-wght-normal */
@font-face {
	font-family: 'Noto Serif Variable';
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url('https://cdn.jsdelivr.net/fontsource/fonts/noto-serif:vf@latest/latin-wght-normal.woff2') format('woff2-variations');
	unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root {
	/* Unused in current layout (kept for potential spacing experiments). */
	/* --content-gap: 15px; */
	--radius: 5px;
	--color-surface-soft: rgba(0, 100, 100, 0.04);
	--color-hover-soft: rgba(0, 100, 255, 0.04);
	--color-hover-strong: rgba(0, 100, 255, 0.1);
	--color-taxon: #444;
	--color-sidebar-link: var(--color-text-base);
	--color-sidebar-link-hover: rgba(0, 0, 0, 0.06);
	--color-sidebar-divider: var(--color-rule);
	--color-highlight-bg: rgba(255, 255, 140, 0.3);
	--color-highlight-bg-hover: rgba(255, 255, 140, 0.6);
	--color-highlight-border: #ccc;
	--color-highlight-border-hover: #aaa;
	--color-meta-muted: gray;
	--color-edit-muted: #b4b4b4;
	--color-tooltip-bg: black;
	--color-tooltip-fg: #fff;
	--color-text-base: #150a3b;
	--color-text-inverse: white;
	--color-logo: #270895;
	--color-page-bg: white;
	--color-mark-bg: #ffff97;
	--color-rule: gainsboro;
	--color-error-bg: red;
	--color-info-bg: #bbb;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1.2;
  margin-bottom: .5em;
}

h5,
h6,
p {
  margin-top: 0;
}

h1,
h2,
h3,
h4 {
  margin-top: .5em;
}

pre,
img,
.katex-display,
section,
center {
  overflow-y: hidden;
}

pre {
	border-radius: var(--radius);
	background-color: var(--color-surface-soft);
	padding: .5em;
	font-size: 11pt;
	margin-top: 0em;
	overflow-x: auto;
	white-space: pre-wrap;
	white-space: -moz-pre-wrap;
	white-space: -pre-wrap;
	white-space: -o-pre-wrap;
	word-wrap: break-word;
}

code {
	border-radius: var(--radius);
	background-color: var(--color-surface-soft);
	padding: 0.2em;
	font-size: 0.9em;
}

body {
	font-family: "Noto Serif Variable", "Noto Serif", "Times New Roman", serif;
	font-size: 12pt;
	line-height: 1.55;
	color: var(--color-text-base);
	background-color: var(--color-page-bg);
	margin: 0 auto;
	min-width: 410px;
	max-width: 1080px;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	transition: ease all .2s;
}

@media screen and (min-width: 1080px) {
	body {
		padding: 0 2rem;
	}
}

math {
	font-size: 1.12em;
}

/* mrow:hover {
	background-color: var(--color-hover-soft);
} */

.logo {
	font-family: inherit;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
}

.logo a {
	color: var(--color-logo);
	text-decoration: none;
}

.logo .logo-full {
	display: inline;
}

.logo .logo-short {
	display: none;
}

.site-layout {
	display: grid;
	grid-template-columns: max-content 1px minmax(0, 1fr);
	grid-template-areas:
		"sidebar-meta divider main-top-meta"
		"sidebar-top divider main-top"
		"sidebar-top divider main-secondary-meta"
		"sidebar-bottom divider main-bottom";
	column-gap: 2rem;
	row-gap: 0;
	align-items: start;
	flex: 0 0 auto;
}

@media screen and (min-width: 1080px) {
	.site-layout {
		padding-top: 2rem;
	}
}

/* max width of the left column */
.site-main-top,
.site-main-top-meta,
.site-main-secondary-meta,
.site-main-bottom {
	max-width: 64rem;
}

.site-sidebar-top {
	grid-area: sidebar-top;
	text-align: right;
}

.site-main-top {
	grid-area: main-top;
}

.site-main-top-meta {
	grid-area: main-top-meta;
}

.site-main-secondary-meta {
	grid-area: main-secondary-meta;
	margin-bottom: 1rem;
}


.site-main-top-meta > .title-meta-row,
.site-main-secondary-meta > .title-meta-row {
	display: flex;
	flex-wrap: nowrap;
	align-items: baseline;
	gap: 0.6rem;
}

.site-main-top-meta {
	margin-bottom: 0.75rem;
}

.site-main-top-meta > .title-meta-row > .metadata,
.site-main-secondary-meta > .title-meta-row > .metadata {
	margin: 0;
}

.site-main-top-meta > .title-meta-row > .tree-slug {
	display: inline;
	font-size: 1.1rem;
	line-height: 1.2;
}

@media only screen and (min-width: 901px) {
	.site-sidebar-top {
		align-self: start;
	}
}

.site-divider {
	grid-area: divider;
	background-color: var(--color-sidebar-divider);
	align-self: stretch;
}

.site-sidebar-bottom {
	grid-area: sidebar-bottom;
	text-align: right;
	padding-right: 0.25rem;
}

@media only screen and (min-width: 1080px) {
	.site-sidebar-bottom {
		padding-bottom: 2rem;
	}
}

.site-main-bottom {
	grid-area: main-bottom;
}

.site-footer {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: 0;
	margin-top: 1.5rem;
	border-top: 1px solid var(--color-rule);
	font-size: 0.9rem;
	color: var(--color-meta-muted);
}
/*
.site-footer-meta {
  list-style: none;
  margin: 1em 0;
  padding: 0;
}
.site-footer-meta > li {
  display: inline-block;
}
.site-footer-meta > li + li {
	margin-left: .75em;
}
.site-footer-meta > li + li::before {
  content: "·";
  margin-right: .75em;
} */

.site-footer a {
	color: inherit;
	margin: 1em 0;
}

.site-sidebar-bottom #navigation ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-sidebar-bottom #navigation li + li {
	margin-top: 0.35rem;
}

.site-sidebar-bottom #navigation hr {
	margin: 2rem 0 1.8rem;
}

@media screen and (min-width: 1080px) {
	.site-sidebar-bottom #navigation .small-screen-only {
		display: none;
	}
}

@media screen and (max-width: 1080px) {
	.site-sidebar-bottom #navigation .small-screen-only ~ * {
		display: none;
	}
}

.site-sidebar-bottom #navigation {
	font-size: 1.3em;
}
.site-sidebar-bottom #navigation a {
	color: var(--color-sidebar-link);
	text-decoration-line: underline;
	text-decoration-style: dotted;
	text-underline-offset: 0.12em;
}

.site-sidebar-bottom #navigation a:hover {
	background-color: var(--color-sidebar-link-hover);
}

#about-me {
	display: flex;
	flex-direction: row;
	align-items: stretch;
}
#about-me-image {
	flex: 0 0 35%;
	max-width: 35%;
	margin-right: 1.5rem;
	object-fit: cover;
}
#about-me-text {
	flex: 1 1 0;
	min-width: 0;
}

@media only screen and (max-width: 1080px) {
	.logo .logo-full {
		display: none;
	}

	.logo .logo-short {
		display: inline;
	}

	.site-layout {
		grid-template-columns: max-content 1fr;
		grid-template-areas:
			"sidebar-top sidebar-bottom"
			"main-top-meta main-top-meta"
			"main-top main-top"
			"main-secondary-meta main-secondary-meta"
			"main-bottom main-bottom";
		column-gap: 0;
		row-gap: 0;
	}

	.site-divider {
		display: none;
	}

	.site-sidebar-top,
	.site-sidebar-bottom {
		display: flex;
		align-items: center;
		text-align: left;
		padding-block: 0.9rem;
		border-bottom: 1px solid var(--color-sidebar-divider);
		align-self: stretch;
	}

	.site-sidebar-top {
		margin-bottom: 0;
	}

	.site-sidebar-bottom {
		justify-content: center;
		padding-left: 0;
	}

	.site-sidebar-bottom #navigation {
		display: flex;
		justify-content: center;
		width: 100%;
	}

	.site-sidebar-bottom #navigation * {
		text-align: center;
	}

	.site-sidebar-bottom #navigation ol {
		display: flex;
		flex-wrap: wrap;
		gap: 0.2rem 2rem;
		justify-content: center;
		width: 100%;
	}

	.site-sidebar-bottom #navigation li + li {
		margin-top: 0;
	}

	.site-sidebar-bottom #navigation li:has(hr) {
		display: none;
	}

	.site-main-top-meta {
		padding-top: 0.9rem;
	}

	.site-main-top-meta > .title-meta-row,
	.site-main-secondary-meta > .title-meta-row {
		margin-top: 1rem;
	}

	.site-layout > * {
		padding-left: 2rem;
		padding-right: 2rem;
	}
	.site-footer > :first-child {
		margin-left: 2rem;
	}
	.site-footer > :last-child {
		margin-right: 2rem;
	}

	#about-me {
		flex-direction: column-reverse;
	}
	#about-me-image {
		display: block;
		width: 45%;
		max-height: 450px;
		margin: 1rem auto;
	}
}

@media only screen and (max-width: 550px) {
	.site-sidebar-bottom #navigation ol {
		gap: 0.2rem 1rem;
	}
	.site-layout > * {
		padding-left: 1rem;
		padding-right: 1rem;
	}
	.site-footer > :first-child {
		margin-left: 1rem;
	}
	.site-footer > :last-child {
		margin-right: 1rem;
	}
}

/*
details>summary>header {
	display: inline;
}
*/

.site-main-bottom .tree-header {
	margin-bottom: 0 .5em;
}

.heading-link {
	box-shadow: none;
}

.site-main-top > .tree-header-main > .tree-heading-main {
	font-size: 2rem;
	margin-top: 0;
}

/* .site-main-top > .tree-header-main > .tree-heading-main > .tree-taxon {
	display: none;
} */

.site-main-top > .tree-header-main > .tree-heading-main > .tree-title-main {
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.2;
}

.site-main-top > .tree-header-main > .tree-heading-main > .meta-item-slug {
	display: block;
	margin-top: 0.4rem;
	font-size: 1.1rem;
	line-height: 1.2;
}

.site-main-top > .tree-header-main > .tree-heading-main > .meta-item-slug > .slug,
.site-main-top > .tree-header-main > .tree-heading-main > .meta-item-slug > .edit-button {
	display: inline;
	font-size: 1.1rem;
	font-weight: 500;
}

.block {
	margin-bottom: .35rem;
}

.block > .tree-header > .tree-heading {
	font-size: 1.1rem;
	margin-top: 0.25rem;
	margin-bottom: 0.5rem;
}

/* Obsolete after tree.xsl switched tree rendering from <details><summary> to
 * <section><header> (the collapsible wrapper was removed). Keep commented for
 * reference while the non-details selectors below are now authoritative. */
/*
.block.hide-metadata>details>summary>header>.metadata {
	display: none;
}
*/

.block .metadata {
	margin-bottom: .35rem;
}

.block a.tree-title {
	text-decoration: none;
}

.block.hide-metadata > header > .metadata,
.block.hide-metadata > header > .metadata .meta-item-date,
.block.hide-metadata > header > .metadata .meta-item-date + *::before {
	display: none;
}
.block.hide-metadata[data-taxon="paper"] > header > .metadata,
.block.hide-metadata[data-taxon="preprint"] > header > .metadata,
.block.hide-metadata[data-taxon="talk"] > header > .metadata {
	display: block;
	margin-bottom: .5em;
}

/* .block.hide-metadata[data-taxon="paper"] > header > .tree-heading > .tree-taxon .taxon-number,
.block.hide-metadata[data-taxon="preprint"] > header > .tree-heading > .tree-taxon .taxon-number,
.block.hide-metadata[data-taxon="talk"] > header > .tree-heading > .tree-taxon .taxon-number
{
	display: none;
} */


/*
article>section>details>summary>header>h1>.taxon {
	display: block;
	font-size: .9em;
	color: var(--color-taxon-muted);
	padding-bottom: 5pt;
}
*/

/*
section section[data-taxon="Reference"]>details>summary>header>h1>.taxon,
section section[data-taxon="Person"]>details>summary>header>h1>.taxon {
	display: none;
}
*/

footer>section {
  margin-bottom: 1em;
}

footer h2 {
  font-size: 14pt;
}

.metadata>address {
  display: inline;
}

.tree-taxon {
	color: var(--color-taxon);
	font-weight: bolder;
	display: inline-block;
}

.tree-taxon::after {
	content: ".";
	margin-right: .5ex;
}

.tree-taxon .taxon-name {
	display: inline-block;
}

.tree-taxon .taxon-number {
	display: inline;
}
.tree-taxon .taxon-name + .taxon-number {
	margin-left: .5ex;
}

/* capitalize taxons */
.tree-taxon .taxon-name::first-letter {
	text-transform: uppercase;
}

/* .block[data-taxon="mute-section"] > header > .tree-heading :not(.tree-slug), */
.block[data-taxon=""] > header > .tree-heading > :not(.tree-slug),
.block:not([data-taxon]) > header > .tree-heading > :not(.tree-slug) {
	font-size: 1.5em;
}
.block[data-taxon=""] > header > .tree-heading > .tree-taxon,
.block:not([data-taxon]) > header > .tree-heading > .tree-taxon {
	display: none;
}

footer > section > header > .tree-heading > :not(.tree-slug) {
	font-size: 1.15em !important;
}

/*
.link-list>section>details>summary>header h1 {
	font-size: 12pt;
}
*/


/*
article>section>details>summary>header>h1 {
	font-size: 1.5em;
}
*/

/*
details>summary {
	list-style-type: none;
}
*/

/*
details>summary::marker,
details>summary::-webkit-details-marker {
	display: none;
}
*/

/*
article>section>details>summary>header {
	display: block;
	margin-bottom: .5em;
}
*/

/*
section.block>details {
	margin-bottom: 0.4em;
}
*/


/*
section.block>details[open] {
	margin-bottom: 1em;
}
*/


/*
.link-list>section.block>details {
	margin-bottom: .25em;
}
*/

/*
nav#toc {
	margin-left: 0;
	margin-bottom: 1rem;
}

nav#toc > details > summary {
	cursor: pointer;
	font-size: 1.1em;
	font-weight: bolder;
	color: var(--color-taxon);
	margin-bottom: 0.15rem;
}

nav#toc > details > .block {
	padding-left: 0;
}

nav#toc > details > .block > ul.block {
	padding-left: 0;
	margin-left: 0;
}

nav#toc,
nav#toc a {
	color: var(--color-text-base);
}

nav#toc .link {
 box-shadow: none;
 text-decoration: none;
}

nav#toc a.bullet {
 opacity: 0.7;
 margin-left: 0.4em;
 margin-right: 0.3em;
 padding-left: 0.2em;
 padding-right: 0.2em;
 text-decoration: none;
}

nav#toc ul {
	list-style-type: none;
	padding-left: 0;
	margin-left: 0;
	padding-bottom: 0;
}

nav#toc li > ul {
	padding-left: 1.1rem;
	margin-top: 0;
	margin-bottom: 0;
	padding-bottom: 0;
}

nav#toc li {
	list-style-position: inside;
	margin: 0;
}

nav#toc > details > .block > ul.block {
	margin-top: 0.2rem;
}
*/

.block {
  border-radius: var(--radius)
}

/* .block:hover {
  background-color: rgba(0, 100, 255, 0.04);
} */

.block.highlighted {
  border-style: solid;
  border-width: 1pt;
}

.highlighted {
	background-color: var(--color-highlight-bg);
	border-color: var(--color-highlight-border);
}

.highlighted:hover {
	background-color: var(--color-highlight-bg-hover);
	border-color: var(--color-highlight-border-hover);
}

.slug,
.doi,
.orcid,
.edit-button {
	color: var(--color-meta-muted);
	font-weight: 200;
}

.tree-header .slug,
.edit-button {
	margin-left: .75ex;
}
/* capitalize refs
.link.local a {
  text-transform: capitalize;
} */

/* .link.local {
  display: inline-block;
}
.link.local::first-letter {
  text-transform: uppercase;
} */

ninja-keys::part(ninja-action) {
  white-space: nowrap;
}

body {
  hyphens: auto;
}

table {
  margin-bottom: 1em;
}

table.macros {
  overflow-x: visible;
  overflow-y: visible;
  font-size: 0.9em;
}

table.macros td {
  padding-left: 5pt;
  padding-right: 15pt;
  vertical-align: baseline;
}

th {
  text-align: left;
}

th,
td {
  padding: 0 15px;
  vertical-align: top;
}

td.macro-name,
td.macro-body {
  white-space: nowrap;
}

td.macro-doc {
  font-size: .9em;
}

.enclosing.macro-scope>.enclosing {
  border-radius: 2px;
}

.enclosing.macro-scope>.enclosing:hover {
	background-color: var(--color-hover-strong);
}

[aria-label][role~="tooltip"]::after {
	font-family: "Noto Serif Variable";
}

.tooltip {
  position: relative;
}

.inline.tooltip {
  display: inline-block;
}

.display.tooltip {
  display: block;
}


/* The tooltip class is applied to the span element that is the tooltip */

.tooltip .tooltiptext {
  visibility: hidden;
  white-space: nowrap;
  min-width: fit-content;
	background-color: var(--color-tooltip-bg);
	color: var(--color-tooltip-fg);
  padding-left: 5px;
  padding-top: 5px;
  padding-right: 10px;
  border-radius: 6px;
  position: absolute;
  z-index: 1;
  top: 100%;
  left: 50%;
  margin-left: -60px;
  opacity: 0;
  transition: opacity 0.3s;
}

.tooltip .tooltiptext::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
}


/* Show the tooltip */

.tooltip:hover .tooltiptext {
  visibility: visible;
  opacity: 1;
}

.tooltiptext a {
	color: var(--color-text-inverse)
}

.macro-doc {
  font-style: italic;
}

.macro-name {
  white-space: nowrap;
}

.macro-is-private {
	color: var(--color-text-base);
}

blockquote {
	font-style: italic;
	padding-left: 1em;
	border-inline-start: 1px solid var(--color-text-base);
	margin: 1em auto;
	width: 80%;
}
blockquote > cite {
	font-style: normal;
}

a.slug:hover,
a.bullet:hover,
.edit-button:hover,
.link:hover {
	background-color: var(--color-sidebar-link-hover);
}

.link {
 cursor: pointer;
}

a {
	color: var(--color-text-base);
	text-decoration: underline;
	text-decoration-style: dotted;
}

.nowrap {
  white-space: nowrap;
}

.nocite {
  display: none
}

address {
  display: inline;
}


.metadata ul {
  padding-left: 0;
  display: inline;
}

.metadata li + li::before {
  content: " · ";
}

.metadata ul li {
  display: inline
}

.metadata li.meta-item-date {
	font-style: italic;
}

body[data-route="/matteo-capucci/"] .site-main-top-meta li.meta-item:has(address.author) {
	display: none;
}

ul.relation-list {
	margin-top: 0.4rem;
}

li.relation-item {
	margin-bottom: 0.25rem;
}

.relation-item-header {
	display: inline;
}

.relation-item-title {
	display: inline;
	font-size: 1rem;
	font-weight: 600;
	margin: 0;
}

img {
  object-fit: scale-down;
  max-width: 100%;
}

figure {
  text-align: center;
  margin: 1em 0;
}

figcaption {
  font-style: italic;
  padding-top: .3em;
}

mark {
	background-color: var(--color-mark-bg);
}

hr {
	margin-top: .5em;
	margin-bottom: .75em;
	background-color: var(--color-rule);
	border: 0 none;
	width: 100%;
	height: 1px;
}

ul, ol {
 padding-bottom: .5em;
 margin: 0;
}

ol {
 list-style-type: decimal;
}

ol li ol {
 list-style-type: lower-alpha;
}

ol li ol li ol {
 list-style-type: lower-roman;
}

.error, .info {
  border-radius: 4pt;
  padding-left: 3pt;
  padding-right: 3pt;
  padding-top: 1pt;
  padding-bottom: 2pt;
  font-weight: bold;
}

.error {
	background-color: var(--color-error-bg);
	color: var(--color-text-inverse);
}


.info {
	background-color: var(--color-info-bg);
	color: var(--color-text-inverse);
}
