:root { --ink:#302c22; --faint:#776f59; --paper:#eee5cf; --red:#88412e; --olive:#414b36; }
* { box-sizing:border-box; }
body { margin:0; padding:32px 4vw; background:#242b25 radial-gradient(ellipse at top,#485043,transparent 75%); color:var(--ink); font-family:Georgia,'Times New Roman',serif; }
button,input,select { font:inherit; }
button { cursor:pointer; }
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid #a57636; outline-offset:3px; }
.journal { max-width:1500px; margin:auto; background:var(--paper); box-shadow:0 15px 65px #0007; background-image:repeating-linear-gradient(0deg,#8b714405 0px,#8b714405 1px,transparent 1px,transparent 4px),radial-gradient(ellipse at 4% 0%,#b3935333,transparent 50%); border:1px solid #bfb293; }
header { text-align:center; padding:25px 45px 24px; }
.eyebrow { font:650 10px/1.6 system-ui,sans-serif; letter-spacing:2px; }
header .eyebrow { display:flex; justify-content:space-between; border-bottom:1px solid #a99d80; padding-bottom:15px; }
h1 { font-size:clamp(27px,3.8vw,53px); letter-spacing:1px; line-height:1.07; margin:25px 0 12px; }
h1 em { font-size:.69em; font-style:normal; letter-spacing:4px; }
.subtitle { font-style:italic; font-size:19px; margin:10px; }
.motto { color:var(--faint); font-size:12px; font-style:italic; margin-top:18px; }
nav { display:flex; border-top:1px solid #a99d80; border-bottom:1px solid #a99d80; padding:0 34px; }
nav button { padding:16px 10px; background:none; border:0; color:var(--red); font-size:14px; }
nav button.active { box-shadow:inset 0 -3px var(--red); }
#count { border:1px solid #b1a58a; padding:1px 6px; margin-left:6px; font-size:11px; }
main { display:block; }
h2 { font-size:28px; font-weight:normal; margin:8px 0 15px; }
label { display:block; font:10px system-ui,sans-serif; text-transform:uppercase; letter-spacing:1px; color:var(--faint); }
select,input { width:100%; margin-top:7px; padding:9px 7px; border:1px solid #b1a58a; background:#f7efdc80; color:var(--ink); border-radius:0; font:13px Georgia,serif; }
.primary { border:1px solid var(--olive); background:var(--olive); color:#f5ecd6; text-transform:uppercase; letter-spacing:1px; font:11px system-ui,sans-serif; padding:16px 17px; }
#library { padding:32px 38px; min-height:500px; }
.library-heading { display:flex; justify-content:space-between; align-items:center; }
.library-heading p { font-style:italic; color:var(--faint); }
#filters { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:18px; margin:20px 0 30px; }
.empty-archive { text-align:center; padding:48px 20px 64px; margin-top:25px; border:1px solid #b8ab8c; background:radial-gradient(ellipse,#f7efdb88,transparent); }
.archive-mark { border:1px solid #a99d80; outline:1px solid #b8ab8c; outline-offset:5px; border-radius:50%; width:54px; height:54px; margin:0 auto 32px; line-height:54px; color:var(--red); font-size:28px; }
.empty-archive h2 { margin:16px 0; font-size:clamp(24px,3vw,34px); }
.empty-archive p { line-height:1.8; color:var(--faint); font-style:italic; }
.awaiting { margin-top:30px; font:10px system-ui; letter-spacing:2px; text-transform:uppercase; color:var(--red); }
.specimen-row { display:flex; border-top:1px solid #b8ab8c; padding:22px 0; }
.open-specimen { background:none; border:0; text-align:left; flex:1; color:var(--ink); }
.open-specimen strong { display:block; font:26px Georgia; margin:8px 0; }
.open-specimen small { color:var(--faint); }
.empty { text-align:center; padding:70px 10px; color:var(--faint); font-style:italic; }
article { padding:32px 6%; max-width:1250px; margin:auto; }
.back-link { display:block; background:none; border:0; padding:0 0 28px; color:var(--faint); font-style:italic; }
.entry-top { display:flex; justify-content:space-between; align-items:center; }
.stamp { color:var(--red); border:1px solid var(--red); padding:5px 9px; transform:rotate(3deg); font:10px system-ui; letter-spacing:2px; }
.creature-name { font-size:clamp(32px,4vw,52px); margin:18px 0 8px; }
.latin { font-style:italic; color:var(--faint); font-size:17px; }
.artwork-plate { margin:30px 0; padding:22px 0; border-top:1px solid #bbae8d; border-bottom:1px solid #bbae8d; background:radial-gradient(ellipse,#f7efdb88,transparent); }
.artwork-plate img { display:block; width:100%; height:auto; object-fit:contain; }
.artwork-plate > .eyebrow { display:block; text-align:center; margin-bottom:18px; color:var(--faint); }
.artwork-plate figcaption { text-align:center; font:italic 13px/1.7 Georgia,serif; padding:18px 15px 0; color:var(--faint); }
.artwork-plate figcaption:empty { display:none; }
.artwork-pending { min-height:100px; padding:12px; display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--faint); text-align:center; }
.artwork-pending p { font-style:italic; }
.facts { display:grid; grid-template-columns:repeat(3,1fr); gap:20px 25px; margin:26px 0 36px; }
.facts dt { font:9px system-ui; letter-spacing:1.2px; color:var(--faint); text-transform:uppercase; }
.facts dd { margin:6px 0 0; font-size:15px; }
.sections { columns:2; column-gap:40px; }
.section { break-inside:avoid; margin-bottom:26px; }
.section h3 { font:11px system-ui; letter-spacing:1.4px; text-transform:uppercase; margin:0 0 10px; }
.section p { font-size:16px; line-height:1.85; margin:0; white-space:pre-wrap; }
.section.abnormal { border-left:2px solid var(--red); padding-left:16px; }
.minwood { padding:23px 27px; background:#d9ca9e55; border:1px solid #b6a77e; }
.minwood p { font-style:italic; }
.entry-actions { display:flex; gap:16px; flex-wrap:wrap; margin:30px 0; }
.delete { border:1px solid #ad8a72; color:var(--red); background:none; padding:8px 12px; }
footer { display:flex; justify-content:space-between; padding:22px 30px; border-top:1px solid #aa9c7d; font:9px system-ui; letter-spacing:1px; color:var(--faint); }
#notice { position:fixed; bottom:25px; left:50%; transform:translateX(-50%); background:var(--olive); color:var(--paper); padding:13px 25px; box-shadow:0 3px 12px #0005; display:none; max-width:90vw; }
[hidden] { display:none!important; }
/* Long authored entries retain their supplied order and a book-like reading measure. */
.entry-introduction { max-width:62ch; margin:28px auto; font-size:17px; line-height:1.8; }
.entry-introduction p { margin:0 0 1em; white-space:pre-wrap; }
.entry-introduction p:first-child { font-style:italic; font-size:21px; color:var(--faint); }
.entry-contents { max-width:76ch; margin:30px auto 46px; padding:18px 0; border-top:3px double #b8ab8c; border-bottom:1px solid #b8ab8c; scroll-margin-top:24px; }
.entry-contents summary { cursor:pointer; font-style:italic; }
.entry-contents ol { columns:2; column-gap:38px; padding-left:28px; margin:22px 0 4px; }
.entry-contents li { break-inside:avoid; margin:0 0 8px; padding-left:4px; font:11px/1.7 system-ui; }
.entry-contents li::marker { color:var(--red); font-family:Georgia,serif; }
.entry-contents a { display:inline-block; padding:5px 0; }
.entry-contents a { color:var(--ink); text-underline-offset:3px; }
.authored-sections { columns:1; max-width:76ch; margin:0 auto; }
.authored-sections .section { padding:28px 0 0 42px; margin:0 0 48px; border-top:1px solid #b8ab8c; border-left:1px solid #b8ab8c66; scroll-margin-top:25px; display:flow-root; }
.authored-sections .section h3 { margin:0 0 24px; line-height:1.7; font-size:13px; }
.authored-sections .section p { margin:0 0 .85em; }
.section-heading { position:relative; }
.observation-index { position:absolute; right:calc(100% + 13px); top:3px; font:11px/1.7 Georgia,serif; color:var(--faint); }
.observation-body { max-width:62ch; }
.authored-sections .abnormal { border-left:2px solid #88412e88; }
.contents-return { display:block; clear:both; width:fit-content; margin-top:24px; padding:8px 0; font-size:12px; font-style:italic; color:var(--faint); text-decoration:none; border-top:1px solid #b8ab8c77; }
.contents-return:hover { color:var(--ink); text-decoration:underline; }
.field-note { margin:26px 0 28px 24px; padding:16px 24px; border-left:2px solid #a08c60; background:linear-gradient(90deg,#d9ca9e33,transparent); }
.field-note p { font-style:italic; }
.field-note .note-attribution { font-size:13px; text-align:right; color:var(--faint); margin:14px 0 0; }
.field-note.soulful-note { margin:30px 0; padding:24px 28px; border-top:1px solid #b8ab8c77; border-bottom:1px solid #b8ab8c77; border-left:0; background:none; }
.field-note.soulful-note p:first-child { font-size:22px; line-height:1.6; }
.authored-sections h4 { margin:28px 0 20px; font:12px/1.7 system-ui; letter-spacing:1.4px; }
.authored-sections .journal-encounter { border-top:3px double #a99d80; border-left:1px solid #88412e66; }
.journal-encounter .observation-body > p:first-child { font-style:italic; color:var(--faint); padding-bottom:20px; border-bottom:1px solid #b8ab8c77; }
.journal-encounter .observation-body { font-family:Palatino,'Palatino Linotype',Georgia,serif; }
.authored-sections .journal-folklore { border-top:3px double #b8ab8c; }
.journal-folklore h4 { text-align:center; font-family:Georgia,serif; font-size:17px; font-variant:small-caps; line-height:1.7; padding:16px 0; border-bottom:1px solid #b8ab8c77; }
.authored-sections .journal-conclusion { margin-top:60px; padding:34px 0 0 42px; border:0; border-top:3px double #a99d80; background:none; }
.journal-conclusion .observation-index { display:none; }
.journal-conclusion .section-heading h3 { font:italic 21px/1.6 Georgia,serif; text-transform:none; letter-spacing:.3px; margin-bottom:32px; }
.journal-conclusion .observation-body > p { font-style:normal; }
.journal-conclusion .observation-body > p:last-child { margin-top:30px; font-style:italic; text-align:right; }
/* Approved future figures: full-width plates or floated margin studies.
   No empty inline figures are inserted before artwork is supplied. */
.journal-illustration { margin:28px 0; padding:16px 0; border-block:1px solid #b8ab8c; break-inside:avoid; }
.journal-illustration img { display:block; width:100%; height:auto; object-fit:contain; }
.journal-illustration figcaption { margin-top:12px; font:italic 13px/1.7 Georgia,serif; color:var(--faint); }
.journal-illustration.illustration-beside { float:right; width:42%; margin:8px 0 20px 24px; }
.fiction-disclaimer { margin:0; padding:16px 20px 24px; color:var(--faint); text-align:center; font:14px/1.6 Georgia,serif; }
@media(max-width:600px) { .entry-contents ol { columns:1; } .authored-sections .section { padding-left:24px; } .observation-index { right:calc(100% + 7px); font-size:9px; } .field-note { margin:22px 0; padding:14px 16px; } .field-note.soulful-note { padding:22px 12px; } .authored-sections .journal-conclusion { padding-left:0; } .journal-illustration.illustration-beside { float:none; width:100%; margin:24px 0; } }
@media(max-width:900px) { body { padding:12px; } .sections { columns:1; } .facts { grid-template-columns:repeat(2,1fr); } header .eyebrow span { display:none; } #filters { grid-template-columns:1fr 1fr; } .library-heading { display:block; } }
@media(max-width:600px) { body { padding:0; } header { padding:20px; } article,#library { padding:25px 20px; } nav { padding:0 10px; } footer span:nth-child(2) { display:none; } h1 em { letter-spacing:1px; } .stamp { letter-spacing:0; } .artwork-plate img { height:auto; } .artwork-pending { min-height:90px; } .empty-archive { padding:40px 15px; } }

/* Baleena's final handwritten entry; other specimens retain the shared style. */
.authored-sections .baleena-notes .section-heading h3 { margin-bottom:18px; }
.baleena-notes .observation-body {
  font-family:'Segoe Print','Bradley Hand','Chalkboard SE','Comic Sans MS',cursive;
  font-size:18px;
  line-height:1.65;
  max-width:58ch;
}
.authored-sections .baleena-notes .observation-body > p { margin:0 0 .45em; }
.baleena-notes .observation-body > p:first-child { font-weight:600; }
.authored-sections .baleena-notes .observation-body > p:last-child {
  margin-top:16px;
  font-size:1.1em;
  font-style:normal;
  text-align:right;
}
@media(max-width:600px) {
  .baleena-notes .observation-body { font-size:17px; line-height:1.65; }
}

/* Insomnis uses the established handwritten personal-notes treatment. */
.authored-sections .insomnis-notes .section-heading h3 { margin-bottom:18px; }
.insomnis-notes .observation-body {
  font-family:'Segoe Print','Bradley Hand','Chalkboard SE','Comic Sans MS',cursive;
  font-size:18px;
  line-height:1.65;
  max-width:58ch;
}
.authored-sections .insomnis-notes .observation-body > p { margin:0 0 .45em; }
.insomnis-notes .observation-body > p:first-child { font-weight:600; }
.authored-sections .insomnis-notes .observation-body > p:last-child {
  margin-top:16px;
  font-size:1.1em;
  font-style:normal;
  text-align:right;
}
@media(max-width:600px) {
  .insomnis-notes .observation-body { font-size:17px; line-height:1.65; }
}

/* Blanket's firsthand observations accompany their descriptive topics. */
.blanket-observation { font-family:'Segoe Print','Bradley Hand','Chalkboard SE','Comic Sans MS',cursive; font-size:18px; line-height:1.65; font-weight:400; }
.blanket-observation p { font-weight:400; font-style:normal; }
@media(max-width:600px) { .blanket-observation { margin-left:0; font-size:17px; } }
