:root {
  color-scheme: light;
  --bg: #ffffff;
  --paper: #ffffff;
  --fg: #000000;
  --fg-strong: #000000;
  --mono: "Courier New", Courier, monospace;
  --serif: "Times New Roman", Times, serif;
  --sans: Arial, Helvetica, sans-serif;
  --glow: rgba(76, 153, 76, 0.55);
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--serif);
  font-size: 19px;
  line-height: 1.55;
  overflow-x: hidden;
}
img { max-width: 100%; }
a { color: var(--fg); text-decoration: underline; }
a:visited { color: var(--fg); }
a:hover, a:focus-visible { background: #000000; color: #ffffff; box-shadow: 0 2px 10px var(--glow); }
a:focus-visible, main:focus-visible, button:focus-visible, select:focus-visible { outline: 2px dotted var(--fg-strong); outline-offset: 2px; }
.skip { position: absolute; left: 16px; top: -100px; padding: 6px 10px; background: #ffffff; color: var(--fg-strong); border: 2px solid #000000; }
.skip:focus { top: 8px; }
.masthead, main, footer { width: min(760px, calc(100% - 32px)); margin: 0 auto; }
.masthead { padding: 20px 0 12px; text-align: center; }
.project {
  display: block;
  font-family: var(--sans);
  font-size: 34px;
  font-weight: bold;
  letter-spacing: 1px;
  text-decoration: none;
  color: var(--fg-strong);
  text-shadow: 0 3px 14px var(--glow);
}
.project:visited { color: var(--fg-strong); }
.project:hover, .project:focus-visible { background: none; color: var(--fg-strong); box-shadow: none; text-decoration: none; }
.live-status { margin: 10px 0 0; font-family: var(--mono); font-size: 14px; font-weight: bold; letter-spacing: 0.03em; text-transform: uppercase; }
hr { border: 0; border-top: 2px solid #000000; margin: 0; }
h1:empty, #introduction:empty { display: none; }
h1 { margin: 18px 0 12px; font-family: var(--sans); font-size: 17px; font-weight: bold; letter-spacing: 0.04em; text-transform: uppercase; text-align: center; }
#introduction:not(:empty) { max-width: 620px; margin: 0 auto 16px; font-size: 16px; text-align: center; }
.view-nav, .tree-nav {
  display: block;
  text-align: center;
  padding: 10px 0;
  font-family: var(--sans);
  font-size: 15px;
  font-weight: bold;
}
.view-nav a, .tree-nav a { text-decoration: underline; text-transform: uppercase; letter-spacing: 0.03em; display: inline-block; padding: 4px 2px; }
.view-nav a:not(:first-child)::before, .tree-nav a:not(:first-child)::before { content: " | "; text-decoration: none; color: var(--fg); background: none; }
.view-nav a[aria-current=page], .tree-nav a[aria-current=page] { text-decoration-style: double; }
.view-nav a[aria-current=page]:visited, .tree-nav a[aria-current=page]:visited { color: var(--fg-strong); }
.view-nav a[aria-current=page]:hover, .tree-nav a[aria-current=page]:hover,
.view-nav a[aria-current=page]:focus-visible, .tree-nav a[aria-current=page]:focus-visible { background: #000000; color: #ffffff; box-shadow: 0 2px 10px var(--glow); }
.archive-summary { font-size: 15px; margin: 16px 0 0; text-align: center; font-family: var(--sans); }
.archive-link {
  display: inline-block;
  margin-top: 16px;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.load-more {
  display: block;
  margin: 24px auto;
  padding: 10px 18px;
  font: inherit;
  font-family: var(--sans);
  font-size: 15px;
  font-weight: bold;
  color: var(--fg-strong);
  background: #ffffff;
  border: 2px solid #000000;
  cursor: pointer;
}
.load-more:hover, .load-more:focus-visible { background: #000000; color: #ffffff; box-shadow: 0 2px 10px var(--glow); }
.load-more:active { background: #ffffff; color: #000000; }
.load-more:disabled { color: #000000; background: #ffffff; opacity: 1; cursor: default; border-style: dashed; }
#archive-refresh { display: none !important; }
#connection { margin: 18px 0 0; font-size: 15px; min-height: 20px; text-align: center; font-family: var(--sans); }
#archive-message { font-size: 14px; text-align: center; font-family: var(--sans); }
.tree {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  gap: 24px;
  margin: 26px 0;
  padding: 16px;
  background: var(--paper);
  border: 2px solid #000000;
  box-shadow: 0 4px 16px var(--glow);
  overflow-wrap: anywhere;
}
.tree-photo {
  display: block;
  width: 100%;
  max-width: 150px;
  height: auto;
  aspect-ratio: 203 / 360;
  object-fit: cover;
  border: 3px solid #000000;
  padding: 2px;
  background: #ffffff;
  margin: 0 auto 12px;
}
.tree-number {
  margin: 0 0 10px;
  display: inline-block;
  font-family: var(--mono);
  font-size: 13px;
  font-weight: bold;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #ffffff;
  background: #000000;
  padding: 3px 8px;
}
.tree h2 { margin: 0; font-family: var(--sans); font-size: 23px; font-weight: bold; color: var(--fg-strong); line-height: 1.25; }
.species { font-size: 16px; margin: 10px 0 0; }
.latin, .source { font-size: 13px; overflow-wrap: anywhere; }
.latin { font-style: italic; margin-top: 2px; }
.source { margin-top: 18px; font-family: var(--mono); }
.publication-time { margin: 0 0 14px; font-family: var(--mono); font-size: 13px; text-transform: uppercase; }
.publication-model { margin: -6px 0 20px; font-family: var(--mono); font-size: 12px; overflow-wrap: anywhere; }
.poem {
  font-family: var(--serif);
  font-size: 23px;
  line-height: 1.55;
  margin: 0 0 20px;
  padding: 12px 14px;
  color: var(--fg-strong);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  background: #ffffff;
}
.review { font-size: 15px; padding: 10px 12px; border: 1px solid #000000; background: #ffffff; }
.review.concerns { border-width: 3px; border-style: double; }
.review.unavailable, .review.not_recorded { border-style: dashed; }
.review-title { font-family: var(--sans); font-size: 14px; text-transform: uppercase; margin: 0; font-weight: bold; }
.review-note { margin: 10px 0 16px; max-width: 580px; }
.issues { list-style: decimal; padding-left: 22px; margin-bottom: 0; }
.issues li + li { margin-top: 18px; }
.issues blockquote { margin: 0 0 6px; font-style: italic; font-weight: bold; color: var(--fg-strong); white-space: pre-wrap; overflow-wrap: anywhere; }
.issues p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.evidence { margin: 18px 0 0; font-size: 15px; }
.evidence summary {
  display: inline-block;
  cursor: pointer;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: bold;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--fg-strong);
  background: #ffffff;
  border: 2px solid #000000;
  padding: 5px 10px;
}
.evidence summary:hover, .evidence summary:focus-visible { background: #000000; color: #ffffff; box-shadow: 0 2px 10px var(--glow); }
.evidence[open] summary { background: #000000; color: #ffffff; }
.evidence ul { list-style: square; margin: 12px 0 0; padding-left: 22px; display: grid; gap: 10px; }
.evidence li { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; }
.evidence-category { flex: 0 0 auto; font-family: var(--mono); font-size: 12px; font-weight: bold; text-transform: uppercase; color: var(--fg-strong); }
.evidence-statement { flex: 1 1 240px; }
.empty { font-style: italic; font-size: 18px; }
.permalink { display: inline-block; margin-top: 22px; font-family: var(--sans); font-size: 14px; font-weight: bold; letter-spacing: 0.03em; text-transform: uppercase; }
footer { padding: 18px 0 32px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; font-size: 14px; margin-top: 12px; font-family: var(--sans); }
.credit { margin: 0; }
.exhibition-info { margin: 0; max-width: 560px; font-size: 13px; }
.footer-link { font-size: 13px; font-weight: bold; }
#synchronization { margin: 0; font-family: var(--mono); font-size: 13px; }
@media (prefers-reduced-motion: no-preference) {
  .live-status[data-live="true"] { animation: blink 1.4s steps(1) infinite; }
}
@keyframes blink { 50% { opacity: 0.35; } }
@media (max-width: 660px) {
  .masthead, main, footer { width: calc(100% - 24px); }
  .project { font-size: 27px; }
  .tree { grid-template-columns: 1fr; gap: 16px; margin: 20px 0; padding: 14px; box-shadow: 0 3px 12px var(--glow); }
  .identity { text-align: center; }
  .tree h2 { font-size: 21px; }
  .poem { font-size: 20px; padding: 10px; }
}
@media (max-width: 420px) {
  body { font-size: 18px; }
  .project { font-size: 23px; letter-spacing: 0.5px; }
  h1 { font-size: 15px; }
  .view-nav, .tree-nav { font-size: 14px; }
  .tree { padding: 12px; gap: 14px; }
  .tree h2 { font-size: 19px; }
  .poem { font-size: 18px; }
  .review, .evidence, .archive-summary, #connection { font-size: 14px; }
}
@media print {
  .tree-nav, .view-nav, .permalink, .archive-link, .footer-link, #connection, .live-status, .skip, .load-more { display: none; }
  .tree { break-inside: avoid; box-shadow: none; }
}
