@charset "UTF-8";
/* Museum design system: local fonts, bitmap exhibits, CSS ornament. */
:root {
    --ink:#17212b;
    --pine:#142c26;
    --paper:#f8f5ed;
    --cream:#ede7da;
    --gold:#c8ab70;
    --muted:#4f5b60;
    --line:#d7d0be;
    --red:#853f33;
    --serif:"Yu Mincho","Hiragino Mincho ProN",serif;
    --sans:Meiryo,"Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif;
    --shadow:none;
}

* {
    box-sizing:border-box;
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:125px;
}

body {
    margin:0;
    color:var(--ink);
    background:var(--paper);
    font-family:var(--sans);
    line-height:1.85;
    -webkit-font-smoothing:antialiased;
}

a {
    color:inherit;
    text-underline-offset:5px;
    text-decoration-thickness:1px;
    cursor:pointer;
}

a:hover {
    color:var(--red);
}

button,summary,select,option,input:is([type=checkbox],[type=radio],[type=submit],[type=button]),label:has(input:is([type=checkbox],[type=radio])),[role=button] {
    cursor:pointer;
}

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

a,button,summary {
    transition:color .2s,background-color .2s,border-color .2s,transform .2s;
}

button:disabled {
    cursor:not-allowed;
}

:focus-visible {
    outline:3px solid #a76628;
    outline-offset:5px;
}

[hidden] {
    display:none!important;
}

img {
    max-width:100%;
    height:auto;
    display:block;
}

h1,h2,h3,p,figure {
    margin:0;
}

h1,h2,h3 {
    font-family:var(--serif);
    font-weight:600;
    line-height:1.5;
    overflow-wrap:anywhere;
    text-wrap:balance;
}

h2 {
    font-size:clamp(26px,3vw,38px);
}

.wrap {
    width:min(1180px,calc(100% - 80px));
    margin-inline:auto;
}

.skip-link {
    position:fixed;
    top:-100px;
    left:20px;
    background:var(--paper);
    z-index:100;
    padding:14px 24px;
}

.skip-link:focus {
    top:10px;
}

.overline {
    display:block;
    font:12px/1.6 var(--serif);
    letter-spacing:.1em;
    color:#806239;
    margin-bottom:17px;
}

.overline.light {
    color:#d6bd89;
}

.text-link {
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-size:12px;
    font-weight:600;
    text-decoration:none;
    border-bottom:1px solid #aa9470;
    padding:5px 0;
    line-height:1.6;
}

.text-link:hover {
    border-color:var(--red);
}

.button {
    display:inline-flex;
    justify-content:space-between;
    align-items:center;
    gap:32px;
    min-height:54px;
    padding:15px 26px;
    border:1px solid transparent;
    text-decoration:none;
    font-size:13px;
    font-weight:600;
    letter-spacing:.06em;
    box-shadow:4px 4px 0 #9f875321;
}

.button.gold {
    background:var(--gold);
    color:var(--pine);
}

.button.dark {
    background:var(--pine);
    color:var(--paper);
}

.button:hover {
    background:#ac8c50;
    color:#fff;
    transform:translateY(-2px);
}

/* Entrance and engraved navigation. */
.site-header {
    position:sticky;
    top:0;
    background:var(--paper);
    border-top:3px solid var(--pine);
    border-bottom:1px solid var(--line);
    z-index:30;
}

.header-inner {
    max-width:1440px;
    margin:auto;
    padding:22px 44px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}

.brand {
    display:flex;
    align-items:center;
    gap:19px;
    text-decoration:none;
    flex-shrink:0;
}

.brand-seal {
    display:grid;
    place-items:center;
    width:35px;
    height:43px;
    border:1px solid #9f8452;
    outline:1px solid #c8b68e;
    outline-offset:4px;
    font:16px/1.1 var(--serif);
    color:#8c713f;
    position:relative;
}

.brand-seal:after {
    content:"";
    position:absolute;
    inset:3px;
    border:1px solid #b39b702e;
}

.brand-name {
    display:block;
    font-family:var(--serif);
    font-size:23px;
    letter-spacing:.16em;
    line-height:1.4;
}

.brand-sub {
    display:block;
    font:10px/1.5 var(--serif);
    letter-spacing:.16em;
    color:var(--muted);
    margin-top:7px;
}

.desktop-nav {
    display:flex;
    align-items:center;
    gap:28px;
    font-size:12px;
}

.desktop-nav a {
    position:relative;
    text-decoration:none;
    padding:10px 0;
}

.desktop-nav a:after {
    content:"";
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    height:2px;
    background:var(--gold);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .2s;
}

.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after {
    transform:scaleX(1);
}

.nav-search {
    border-left:1px solid var(--line);
    padding-left:25px!important;
}

.nav-search span {
    margin-left:12px;
}

.mobile-menu {
    display:none;
}

/* Framed collection and reading rooms. */
.section {
    padding-block:76px;
}

.section.compact {
    padding-top:30px;
}

.section-head {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:25px;
    margin-bottom:22px;
    position:relative;
}

.section-head:before {
    content:"";
    position:absolute;
    left:-17px;
    top:4px;
    bottom:4px;
    width:3px;
    background:var(--gold);
}

.section-head .overline {
    margin-bottom:10px;
}

.section-intro {
    font-size:14px;
    color:var(--muted);
    max-width:780px;
    margin-bottom:32px;
}

.section-note {
    font-size:12px;
    color:var(--muted);
}

.card-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:32px;
}

.creature-card {
    background:transparent;
    border:0;
    border-bottom:1px solid var(--line);
    position:relative;
    height:100%;
    box-shadow:var(--shadow);
    transition:box-shadow .25s,border-color .25s;
}

.creature-card:before { display:none; }

.card-image-link {
    display:block;
    position:relative;
    aspect-ratio:16/9;
    overflow:hidden;
    background:var(--pine);
}

.card-image-link img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s ease;
}

.card-label {
    position:absolute;
    bottom:16px;
    left:18px;
    background:var(--paper);
    border-left:2px solid var(--gold);
    padding:6px 12px;
    color:var(--ink);
    font-size:11px;
}

.card-body {
    padding:23px 0 26px;
}

.card-body .overline {
    font-size:11px;
    margin-bottom:9px;
}

.card-body h3 {
    font-size:28px;
    margin-bottom:15px;
}

.card-body h3 a {
    display:flex;
    justify-content:space-between;
    gap:12px;
    text-decoration:none;
}

.card-body h3 a:after {
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
}

.card-body h3 span {
    display:grid;
    place-items:center;
    border:1px solid var(--line);
    border-radius:0;
    width:32px;
    height:32px;
    flex-shrink:0;
    font:16px var(--sans);
    color:#8b724b;
    transition:background .2s,transform .2s;
}

.card-body p {
    font-size:14px;
    color:var(--muted);
    line-height:1.95;
}

.card-meta {
    border-top:1px solid var(--line);
    margin-top:24px;
    padding-top:16px;
    display:flex;
    justify-content:space-between;
    gap:12px;
    font-size:11px;
    color:var(--muted);
}

.creature-card:focus-within {
    outline:3px solid #a76628;
    outline-offset:4px;
}

.regional-highlights {
    padding-top:8px;
}

/* Regional folios use source-specific notes, rather than identical image overlays. */
.room-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:32px;
    margin-bottom:38px;
}
.reading-room {
    min-width:0;
    text-decoration:none;
    color:var(--ink);
    display:flex;
    flex-direction:column;
    border-top:3px solid var(--regional-ink,var(--ink));
}
.room-plate { position:relative; margin-top:14px; overflow:hidden; }
.room-plate img { width:100%; aspect-ratio:16/10; object-fit:cover; transition:transform .4s; }
.room-image-note { display:block; font-size:10px; color:var(--muted); padding-top:6px; }
.room-copy { padding:22px 0 0; flex:1; display:flex; flex-direction:column; }
.room-copy .overline { color:var(--regional-ink,var(--ink)); margin-bottom:10px; font-size:11px; }
.room-copy h3 { font-size:29px; margin-bottom:12px; }
.room-copy p { font-size:13px; line-height:1.95; color:var(--muted); margin-bottom:20px; }
.room-copy .room-theme { font:17px/1.8 var(--serif); color:var(--ink); margin-bottom:14px; }
.room-link { display:flex; justify-content:space-between; gap:8px; border-top:1px solid var(--line); padding-top:14px; margin-top:auto; font-size:12px; }
.reading-room:hover { color:var(--regional-ink,var(--red)); }
.region-section {
    background:var(--cream);
    border-block:1px solid var(--line);
}

.region-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    border-top:1px solid #c7bfad;
    border-left:1px solid #c7bfad;
}

.region-tile {
    display:flex;
    flex-direction:column;
    gap:14px;
    min-height:175px;
    padding:25px;
    border-right:1px solid #c7bfad;
    border-bottom:1px solid #c7bfad;
    text-decoration:none;
    background:#fffcf66b;
    position:relative;
    overflow:hidden;
}

.region-number {
    font:13px Georgia,serif;
    color:#957a4e;
    letter-spacing:.1em;
}

.region-tile h3 {
    font-size:18px;
}

.region-state {
    margin-top:auto;
    display:flex;
    justify-content:space-between;
    font-size:11px;
    color:var(--muted);
    gap:10px;
}

.region-tile:not(.pending):after {
    content:"";
    position:absolute;
    right:-24px;
    top:-24px;
    width:85px;
    height:85px;
    border-radius:50%;
    border:1px solid #b6a27b40;
    pointer-events:none;
}

.region-tile:not(.pending):hover {
    color:var(--paper);
    background:var(--pine);
}

.region-tile:not(.pending):hover .region-state {
    color:#ddd6be;
}

.region-tile.pending {
    background:transparent;
    color:#777d71;
}

.pending .region-number {
    color:#8c8576;
}

.feature-banner {
    display:grid;
    grid-template-columns:1fr 1fr;
    background:#eee7d8;
    border:1px solid var(--line);
    text-decoration:none;
    overflow:hidden;
    position:relative;
}

.feature-images {
    display:grid;
    grid-template-columns:1fr 1fr;
    min-height:310px;
    overflow:hidden;
}

.feature-images img {
    height:100%;
    width:100%;
    object-fit:cover;
    transition:transform .5s;
}

.feature-copy {
    padding:42px;
}

.feature-copy h3 {
    font-size:28px;
    margin-bottom:16px;
}

.feature-copy p {
    font-size:14px;
    color:var(--muted);
    margin-bottom:25px;
}

.feature-banner:hover {
    background:#e5dbc7;
    color:var(--ink);
}

.manifesto {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px 60px;
    padding:62px 0 85px;
    border-top:1px solid var(--line);
}

.manifesto>.overline {
    grid-column:1/-1;
    margin:0;
}

.manifesto h2 {
    font-size:37px;
}

.manifesto p {
    font-size:14px;
    color:var(--muted);
    margin-bottom:18px;
}

/* Editorial headings and region guides. */
.utility-bar {
    padding-top:25px;
    margin-bottom:0!important;
}

.breadcrumbs {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    font-size:11px;
    color:var(--muted);
    margin-bottom:32px;
}

.breadcrumbs a {
    text-decoration:none;
    border-bottom:1px solid #b5aa91;
}

.page-heading {
    position:relative;
    padding:44px 70px 42px 0;
    border-bottom:1px solid var(--line);
    margin-bottom:20px;
}

.page-heading:after {
    content:"";
    position:absolute;
    right:3px;
    top:48px;
    width:50px;
    height:50px;
    border:1px solid #b7a077;
    outline:1px solid #dacba9;
    outline-offset:6px;
    transform:rotate(45deg);
    pointer-events:none;
}

.page-heading h1 {
    font-size:clamp(32px,4vw,49px);
    margin-bottom:20px;
    letter-spacing:.04em;
}

.page-heading p {
    max-width:830px;
    color:var(--muted);
    font-size:15px;
    line-height:2;
}

.editor-note {
    background:var(--cream);
    border-left:3px solid var(--gold);
    padding:30px 35px;
    margin-top:40px;
    max-width:840px;
}

.editor-note h2 {
    font-size:24px;
    margin-bottom:15px;
}

.editor-note p {
    font-size:14px;
    color:var(--muted);
}

.region-guide {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:50px;
    padding:30px 0 50px;
    border-bottom:1px solid var(--line);
}

.region-guide-intro h2 {
    font-size:30px;
    margin:12px 0 24px;
}

.region-guide-intro p {
    font-size:14px;
    line-height:2.1;
    margin-bottom:18px;
}

.reading-paths {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:17px;
}

.reading-paths>a {
    display:flex;
    flex-direction:column;
    padding:25px;
    background:#fffaf0;
    border:1px solid var(--line);
    text-decoration:none;
    position:relative;
    box-shadow:var(--shadow);
}

.reading-paths .overline {
    border-bottom:1px solid var(--line);
    padding-bottom:15px;
    font-size:22px;
    letter-spacing:.06em;
    color:#a3854b;
}

.reading-paths h3 {
    font-size:20px;
    margin-bottom:13px;
}

.reading-paths p {
    font-size:13px;
    margin-bottom:18px;
    color:var(--muted);
}

.reading-paths .text-link {
    margin-top:auto;
    align-self:flex-start;
    font-size:12px;
}

.reading-paths>a:hover {
    border-color:#a28754;
    background:var(--cream);
    color:var(--ink);
}

/* Article: title plate, index and evidence. */
.article-heading {
    padding:32px 0 35px;
    position:relative;
}

.article-heading>.overline {
    margin-bottom:12px;
}

.article-heading h1 {
    font-size:clamp(42px,5.4vw,70px);
    letter-spacing:.08em;
    padding-left:22px;
    border-left:4px solid var(--gold);
}

.article-deck {
    font:20px/1.9 var(--serif);
    max-width:980px;
    margin-top:22px;
}

.article-meta {
    display:flex;
    flex-wrap:wrap;
    gap:12px 28px;
    font-size:11px;
    color:var(--muted);
    margin-top:24px;
}

.article-meta>span {
    color:#6a5839;
    background:var(--cream);
    padding:2px 10px;
}

.reading-toolbar {
    display:flex;
    align-items:center;
    gap:14px 26px;
    flex-wrap:wrap;
    padding:17px 0;
    border-block:1px solid var(--line);
    margin-bottom:26px;
    font-size:12px;
}

.reading-label {
    font:12px Georgia,var(--sans);
    color:var(--muted);
    margin-right:auto;
}

.reading-toolbar a {
    text-decoration:none;
    border-bottom:1px solid #c7b78e;
    padding-block:3px;
}

.reading-toolbar button {
    font-size:11px;
    padding:8px 12px;
    background:transparent;
    border:1px solid var(--line);
    color:var(--ink);
}

.reading-toolbar button:hover {
    background:var(--cream);
}

.copy-status {
    font-size:11px;
    color:var(--muted);
}

.copy-status:empty {
    display:none;
}

.article-hero>img {
    width:100%;
    aspect-ratio:16/9;
    object-fit:cover;
    border:7px solid #fffaf0;
    outline:1px solid var(--line);
}

.article-hero figcaption,.comparison-gallery figcaption {
    font-size:12px;
    line-height:1.95;
    color:var(--muted);
    padding:18px 0;
    border-bottom:1px solid var(--line);
}

.badge {
    display:inline-block;
    padding:3px 9px;
    border:1px solid #bda77b;
    margin-right:10px;
    font-size:10px;
    color:#7b6035;
    background:#f5eddd;
}

.comparison-gallery {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:25px;
}

.comparison-gallery img {
    width:100%;
    aspect-ratio:16/9;
    object-fit:cover;
    border:5px solid #fffaf0;
    outline:1px solid var(--line);
}

.article-layout {
    display:grid;
    grid-template-columns:240px minmax(0,780px);
    gap:55px;
    justify-content:space-between;
    padding-block:55px;
}

.article-body {
    min-width:0;
}

.article-aside .article-toc {
    position:sticky;
    top:115px;
    background:var(--cream);
    border:1px solid var(--line);
    border-top:3px solid var(--gold);
}

.article-toc>summary {
    padding:22px;
    font-family:var(--serif);
    font-size:17px;
    list-style:none;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:4px;
}

.article-toc summary::-webkit-details-marker {
    display:none;
}

.article-toc summary .overline {
    flex-basis:100%;
    margin-bottom:9px;
    font-size:10px;
}

.article-toc summary>span:last-child {
    margin-left:auto;
    font-family:var(--sans);
}

.article-toc:not([open]) summary>span:last-child {
    font-size:0;
}

.article-toc:not([open]) summary>span:last-child:after {
    content:"＋";
    font-size:17px;
}

.article-aside nav {
    display:flex;
    flex-direction:column;
    gap:0;
    padding:0 18px 18px;
    max-height:calc(100vh - 250px);
    overflow-y:auto;
    scrollbar-width:thin;
}

.article-aside nav>.overline {
    display:none;
}

.article-aside a {
    font-size:12px;
    color:var(--muted);
    line-height:1.75;
    text-decoration:none;
    border-top:1px solid #d6cebd;
    padding:10px 8px;
}

.article-aside a:hover,.article-aside a[aria-current] {
    color:var(--ink);
    background:#fdf8eb;
    border-left:2px solid #a08148;
    padding-left:6px;
}

.overview {
    background:#fffaf0;
    border:1px solid var(--line);
    padding:34px;
    position:relative;
    box-shadow:var(--shadow);
}

.overview:before {
    content:"";
    position:absolute;
    top:-1px;
    left:-1px;
    width:50px;
    height:4px;
    background:var(--gold);
}

.overview h2 {
    font-size:26px;
    margin-bottom:18px;
}

.overview .lead {
    font:19px/2 var(--serif);
}

.facts {
    margin:27px 0 0;
    border-top:1px solid #c8b994;
}

.facts>div {
    display:grid;
    grid-template-columns:140px 1fr;
    gap:20px;
    padding:16px 0;
    border-bottom:1px solid var(--line);
    font-size:13px;
}

.facts dt {
    font-weight:600;
    color:#776447;
}

.facts dd {
    margin:0;
}

.article-section {
    padding:46px 0;
    border-bottom:1px solid var(--line);
    scroll-margin-top:120px;
}

.section-counter {
    display:inline-flex;
    align-items:center;
    gap:13px;
    font:16px Georgia,serif;
    color:#927344;
    margin-bottom:16px;
}

.section-counter:after {
    content:"";
    width:42px;
    height:1px;
    background:#b6a27d;
}

.article-section h2 {
    font-size:28px;
    margin-bottom:25px;
}

.article-body p {
    font-size:15px;
    line-height:2.15;
    margin-bottom:20px;
}

.article-body p:last-child {
    margin-bottom:0;
}

.source-links {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px 12px;
    padding-top:14px;
    font-size:11px;
    color:var(--muted);
}

.source-links a {
    border:1px solid var(--line);
    background:#f2ebdc;
    padding:5px 10px;
    color:#785b30;
    text-decoration:none;
}

.source-links a:hover {
    border-color:#97794a;
    background:#e8ddc5;
}

.article-body .editorial-label {
    font-size:12px;
    color:var(--muted);
}

.limits-box {
    position:relative;
    background:var(--pine);
    color:var(--paper);
    padding:36px;
    margin-top:42px;
    border-left:4px solid var(--gold);
}

.limits-box .overline {
    color:#d4b77e;
}

.limits-box h2 {
    font-size:26px;
    margin-bottom:24px;
}

.limits-box ul {
    margin:0;
    padding-left:20px;
    display:grid;
    gap:15px;
    font-size:14px;
    color:#d8decd;
    line-height:2;
}

.image-notes {
    border:1px solid var(--line);
    margin-top:14px;
    background:#fffaf0;
    box-shadow:var(--shadow);
}

.image-notes summary {
    font-size:14px;
    line-height:1.9;
    padding:20px 23px;
}

.image-notes[open] summary {
    border-bottom:1px solid var(--line);
    margin-bottom:22px;
    background:var(--cream);
}

.image-notes>p,.image-notes>a {
    margin-left:23px;
    margin-right:23px;
    font-size:13px;
}

.image-notes>a {
    display:inline-block;
    margin-bottom:22px;
}

.references ol {
    list-style:none;
    counter-reset:source;
    margin:28px 0 0;
    padding:0;
    display:grid;
    gap:18px;
}

.references li {
    counter-increment:source;
    position:relative;
    padding:25px 25px 25px 60px;
    border:1px solid var(--line);
    background:#fffaf0;
    font-size:14px;
    scroll-margin-top:120px;
}

.references li:before {
    content:counter(source,decimal-leading-zero);
    position:absolute;
    top:26px;
    left:20px;
    font:19px Georgia,serif;
    color:#927344;
}

.references li>a {
    font-weight:600;
    color:#6f5129;
    overflow-wrap:anywhere;
}

.references li p {
    font-size:13px;
    color:var(--muted);
    margin-top:14px;
    line-height:2;
}

.correction {
    background:#e9e3d554;
    padding:28px;
    margin-top:34px;
    border-left:2px solid var(--gold);
}

.correction h2 {
    font-size:23px;
}

.related-reason {
    font-size:13px;
    color:var(--muted);
    padding:18px 16px;
    border-left:2px solid var(--gold);
    margin-top:14px;
    background:#eee7d8;
}

.table-hint {
    font-size:12px;
    color:var(--muted);
    margin-top:25px;
    display:flex;
    align-items:center;
    gap:8px;
}

.table-hint:before {
    content:"↔";
    color:#947543;
    font-size:19px;
}

.table-scroll {
    overflow-x:auto;
    border:1px solid var(--line);
    margin:10px 0 22px;
    scrollbar-color:#aa9160 #e9e3d5;
    scrollbar-width:thin;
    position:relative;
    overscroll-behavior-x:contain;
}

table {
    border-collapse:separate;
    border-spacing:0;
    width:100%;
    min-width:560px;
    font-size:13px;
    line-height:1.9;
}

caption {
    padding:17px 20px;
    text-align:left;
    font-weight:600;
    background:var(--cream);
    border-bottom:1px solid var(--line);
}

th,td {
    padding:17px 19px;
    text-align:left;
    vertical-align:top;
    border-bottom:1px solid var(--line);
    border-right:1px solid #ded8c866;
}

thead th {
    background:var(--pine);
    color:var(--paper);
    font-weight:500;
}

thead th:first-child {
    position:sticky;
    left:0;
    z-index:2;
}

tbody th {
    background:#eee7d8;
    min-width:100px;
    font-weight:600;
    position:sticky;
    left:0;
    z-index:1;
    border-right:1px solid #c7bfae;
}

tbody td {
    min-width:150px;
    background:#fffcf6;
}

tbody tr:nth-child(even) td {
    background:#f4f0e6;
}

tbody tr:hover td {
    background:#ece4d3;
}

.preview-notice {
    font-size:13px;
    background:#eee0bc;
    border:1px solid #d0b379;
    padding:13px 19px;
    margin-bottom:25px;
}

/* Policy panels, form guidance and search controls. */
.prose {
    max-width:840px;
    padding:35px 0 80px;
}

.prose h2 {
    font-size:26px;
    margin:38px 0 18px;
}

.prose h2:first-child {
    margin-top:0;
}

.prose p,.prose li {
    font-size:15px;
    line-height:2.1;
    margin-bottom:20px;
}

.prose ul {
    padding-left:22px;
}

.policy-navigation {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:0;
    margin-top:28px;
    border-block:1px solid var(--line);
}

.policy-navigation a {
    display:flex;
    justify-content:space-between;
    gap:10px;
    padding:18px 20px;
    font-size:12px;
    text-decoration:none;
    border-right:1px solid var(--line);
}

.policy-navigation a:last-child {
    border:0;
}

.policy-navigation a[aria-current] {
    background:var(--pine);
    color:var(--paper);
}

.policy-navigation a:hover {
    background:var(--cream);
    color:var(--ink);
}

.policy-prose {
    counter-reset:policy;
    max-width:900px;
}

.policy-section {
    counter-increment:policy;
    padding:30px 35px 10px 80px;
    margin:0 0 22px;
    border:0;
    border-top:1px solid var(--line);
    background:transparent;
    position:relative;
    box-shadow:var(--shadow);
}

.policy-section:before {
    content:counter(policy,decimal-leading-zero);
    position:absolute;
    top:30px;
    left:24px;
    font:27px Georgia,serif;
    color:#a28552;
}

.policy-section h2 {
    font-size:25px;
    margin:0 0 20px;
}

.search-form {
    display:grid;
    grid-template-columns:2fr 1fr 1fr auto;
    gap:18px;
    align-items:end;
    background:var(--cream);
    border:1px solid var(--line);
    border-top:3px solid var(--gold);
    padding:29px;
    box-shadow:var(--shadow);
}

.field {
    display:flex;
    flex-direction:column;
    gap:10px;
    font-size:13px;
    min-width:0;
}

.field>span:first-child {
    font-weight:600;
}

.field small {
    font-size:11px;
    font-weight:400;
    color:var(--muted);
    margin-left:8px;
}

input,select,textarea {
    border:1px solid #bfb7a5;
    background:#fffdf7;
    color:var(--ink);
    padding:13px 15px;
    min-width:0;
    width:100%;
    border-radius:0;
    font-size:16px;
    line-height:1.7;
    transition:border-color .2s,box-shadow .2s;
}

input:hover,select:hover,textarea:hover {
    border-color:#988563;
}

input:focus,select:focus,textarea:focus {
    border-color:#8f7445;
    box-shadow:inset 0 0 0 1px #8f7445;
}

textarea {
    resize:vertical;
}

.search-suggestions {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    margin-top:20px;
    font-size:12px;
}

.search-word-help {
    margin:14px 0 0;
    font-size:12px;
    line-height:1.8;
    color:var(--muted);
}

.active-search-filters {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    margin:0 0 24px;
    font-size:12px;
}
.active-search-filters>span { color:var(--muted); }
.active-search-filters a {
    display:inline-flex;
    align-items:center;
    gap:12px;
    max-width:100%;
    min-height:44px;
    padding:10px 14px;
    border:1px solid var(--line);
    background:var(--paper);
    text-decoration:none;
}
.active-search-filters a>span:first-child { min-width:0; overflow-wrap:anywhere; }
.active-search-filters a>span:last-child { flex-shrink:0; color:var(--red); }
.active-search-filters a:hover { border-color:var(--ink); background:var(--cream); }

.search-suggestions>span {
    color:var(--muted);
    margin-right:7px;
}

.search-suggestions>a {
    border:1px solid var(--line);
    padding:7px 13px;
    border-radius:24px;
    text-decoration:none;
    background:#fffaf0;
}

.search-suggestions>a:hover {
    background:var(--pine);
    color:var(--paper);
}

.search-suggestions .reset-filter {
    margin-left:auto;
    background:transparent;
}

.result-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin:45px 0 28px;
    padding-bottom:16px;
    border-bottom:1px solid var(--line);
}

.result-heading h2 {
    font-size:26px;
}

.result-heading>span {
    background:var(--pine);
    color:var(--paper);
    font-size:12px;
    padding:6px 15px;
    flex-shrink:0;
}

.empty-state {
    padding:45px;
    border:1px solid var(--line);
    background:#fffaf0;
    border-left:4px solid var(--gold);
}

.empty-state h3 {
    font-size:25px;
    margin-bottom:20px;
}

.empty-state p {
    font-size:14px;
    line-height:2;
    color:var(--muted);
    max-width:680px;
    margin-bottom:25px;
}

.pagination {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:25px;
    padding-top:38px;
    font-size:13px;
}

.pagination a {
    padding:12px 20px;
    border:1px solid var(--line);
    text-decoration:none;
    background:#fffaf0;
}

.pagination a:hover {
    background:var(--pine);
    color:var(--paper);
}

.contact-layout {
    display:grid;
    grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
    gap:60px;
    padding-block:30px 80px;
    align-items:start;
}

.contact-help {
    padding:32px;
    background:var(--pine);
    color:var(--paper);
    border-top:3px solid var(--gold);
    position:sticky;
    top:115px;
}

.contact-help>.overline {
    color:#d5b578;
}

.contact-help h2 {
    font-size:28px;
    line-height:1.8;
    margin-bottom:22px;
}

.contact-help p {
    color:#cad5c4;
    font-size:13px;
    line-height:2;
    margin-bottom:26px;
}

.contact-help ol {
    counter-reset:contact;
    list-style:none;
    padding:0;
    margin:0 0 28px;
    display:grid;
    gap:22px;
}

.contact-help li {
    counter-increment:contact;
    padding-left:38px;
    position:relative;
}

.contact-help li:before {
    content:counter(contact,decimal-leading-zero);
    position:absolute;
    top:0;
    left:0;
    color:var(--gold);
    font:18px Georgia,serif;
}

.contact-help strong {
    display:block;
    font:17px var(--serif);
    margin-bottom:9px;
}

.contact-help li span {
    font-size:12px;
    color:#cad5c4;
    display:block;
}

.contact-help a {
    color:#e0c18a;
}

.contact-panel.prose {
    padding:0;
    max-width:none;
    width:100%;
}

.contact-form {
    display:grid;
    gap:26px;
    padding:30px;
    background:#fffaf0;
    border:1px solid var(--line);
}

.contact-form .button {
    justify-self:start;
}

.check-field {
    display:flex;
    align-items:flex-start;
    gap:13px;
    padding:12px 0;
    font-size:13px;
    cursor:pointer;
}

.check-field input {
    width:19px;
    height:19px;
    flex-shrink:0;
    margin:4px 0 0;
    accent-color:var(--pine);
}

.input-help,.character-count {
    font-size:11px;
    font-weight:400;
    color:var(--muted);
}

.character-count {
    text-align:right;
}

.form-note {
    font-size:12px!important;
    line-height:1.9!important;
    color:var(--muted);
    padding:17px;
    background:var(--cream);
    border-left:2px solid var(--gold);
}

.form-errors {
    padding:22px 26px;
    border-left:3px solid var(--red);
    background:#f0e0d7;
    margin-bottom:25px;
    font-size:13px;
}

.form-errors h2 {
    font-size:19px;
    margin:0 0 12px;
}

.form-errors ul {
    margin:0;
}

.success-state {
    padding:35px;
    background:#e8eddf;
    border:1px solid #bdc8ae;
    border-top:4px solid var(--pine);
}

.success-state h2 {
    font-size:26px;
    margin-bottom:22px;
}

.honeypot {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip-path:inset(50%);
}

.error-page {
    padding:80px 0 100px;
    text-align:center;
    max-width:850px;
    position:relative;
}

.error-page .error-code {
    font:100px Georgia,serif;
    color:#aa9161;
    letter-spacing:.06em;
    border:1px solid var(--line);
    width:max-content;
    margin:0 auto 35px;
    padding:16px 35px;
    outline:1px solid #e4dac4;
    outline-offset:7px;
}

.error-page h1 {
    font-size:33px;
    margin-bottom:24px;
}

.error-page p {
    font-size:15px;
    margin-bottom:30px;
}

/* Exit and reading controls. */
.site-footer {
    background:var(--pine);
    color:#d8dccd;
    padding:65px 0 27px;
    border-top:5px solid var(--gold);
    position:relative;
}

.site-footer:before {
    content:"";
    position:absolute;
    top:9px;
    left:0;
    right:0;
    border-top:1px solid #c8ab7030;
}

.footer-grid {
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    gap:40px;
}

.footer-title {
    font:26px var(--serif);
    letter-spacing:.14em;
    margin-bottom:22px;
}

.footer-grid p {
    font-size:13px;
    color:#b5c2b0;
    margin-bottom:20px;
}

.footer-grid small {
    font:10px Georgia,serif;
    letter-spacing:.16em;
    color:#c2a56c;
}

.footer-grid nav {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
    font-size:12px;
}

.footer-grid nav>.overline {
    color:#c6a873;
    margin-bottom:8px;
}

.footer-grid nav a {
    text-decoration:none;
    padding:6px 0;
    border-bottom:1px solid transparent;
}

.footer-grid a:hover {
    color:var(--gold);
    border-color:var(--gold);
}

.footer-bottom {
    display:flex;
    justify-content:space-between;
    gap:20px;
    border-top:1px solid #ffffff26;
    padding-top:25px;
    margin-top:44px;
    font-size:11px;
    color:#adb9a6;
}

.read-progress {
    position:fixed;
    top:0;
    left:0;
    height:3px;
    background:var(--gold);
    z-index:60;
    width:0;
    pointer-events:none;
}

.back-to-top {
    position:fixed;
    right:22px;
    bottom:155px;
    z-index:25;
    background:var(--paper);
    color:var(--pine);
    border:1px solid #aa9160;
    box-shadow:var(--shadow);
    width:48px;
    height:55px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    font-size:20px;
}

.back-to-top span {
    font:10px/1.5 var(--serif);
    letter-spacing:.08em;
}

.back-to-top:hover {
    background:var(--pine);
    color:var(--paper);
}

/* Motion never hides body content. */
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
    .creature-card:hover {
        border-color:#a99060;
        box-shadow:0 16px 34px #142c2614;
    }
    .creature-card:hover .card-image-link img,.reading-room:hover .room-plate img,.feature-banner:hover img {
        transform:scale(1.035);
    }
    .creature-card:hover h3 span {
        background:var(--pine);
        color:var(--paper);
        transform:rotate(10deg);
    }
}



@media(max-width:1100px) {
    .header-inner {
        padding:20px 30px;
    }
    .desktop-nav {
        gap:18px;
    }
    .nav-search {
        padding-left:18px!important;
    }
.region-grid {
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
.reading-room {
        min-height:360px;
    }
    .article-layout {
        grid-template-columns:200px minmax(0,1fr);
        gap:35px;
    }
    .search-form {
        grid-template-columns:2fr 1fr 1fr;
    }
    .search-form button {
        grid-column:1/-1;
        justify-self:start;
    }
    .contact-layout {
        gap:30px;
    }
    .contact-help {
        padding:27px;
    }
    .feature-copy {
        padding:30px;
    }
    .feature-copy h3 {
        font-size:24px;
    }
}

@media(max-width:900px) {
    .region-guide {
        grid-template-columns:1fr;
        gap:28px;
    }
    .contact-layout {
        grid-template-columns:1fr;
    }
    .contact-help {
        position:static;
    }
    .contact-help ol {
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:18px;
    }
    .contact-help h2 br {
        display:none;
    }
    .room-grid {
        gap:15px;
    }
.room-copy p {
        font-size:11px;
    }
}

@media(max-width:800px) {
    html {
        scroll-padding-top:105px;
    }
    .wrap {
        width:calc(100% - 40px);
    }
    .header-inner {
        padding:18px 22px;
        gap:16px;
    }
    .brand {
        gap:15px;
    }
    .brand-name {
        font-size:19px;
        letter-spacing:.1em;
    }
    .brand-sub {
        font-size:7px;
        letter-spacing:.1em;
    }
    .brand-seal {
        width:28px;
        height:33px;
        font-size:22px;
    }
    .desktop-nav {
        display:none;
    }
    .mobile-menu {
        display:block;
    }
    .mobile-menu summary {
        font-size:11px;
        list-style:none;
        display:flex;
        align-items:center;
        gap:12px;
        min-height:44px;
        padding-left:10px;
    }
    .mobile-menu summary::-webkit-details-marker {
        display:none;
    }
    .menu-symbol {
        position:relative;
        width:18px;
        height:12px;
        border-top:1px solid var(--ink);
        border-bottom:1px solid var(--ink);
    }
    .menu-symbol:before {
        content:"";
        position:absolute;
        top:5px;
        width:18px;
        height:1px;
        background:var(--ink);
    }
    .mobile-menu[open] .menu-symbol {
        transform:rotate(90deg);
    }
    .mobile-menu nav {
        position:absolute;
        left:0;
        right:0;
        top:100%;
        display:flex;
        flex-direction:column;
        background:var(--paper);
        border-block:1px solid var(--line);
        box-shadow:0 15px 25px #142c261a;
        padding:15px 25px 25px;
        gap:0;
        max-height:calc(100dvh - 90px);
        overflow:auto;
    }
    .mobile-menu nav a {
        font-size:14px;
        min-height:48px;
        display:flex;
        align-items:center;
        justify-content:space-between;
        padding:12px 0;
        border-bottom:1px solid var(--line);
        text-decoration:none;
    }
    .mobile-menu nav a[aria-current] {
        color:#896027;
    }
    .mobile-menu .nav-search {
        border-left:0;
        padding-left:0!important;
    }
.section {
        padding-block:52px;
    }
    .section-head {
        gap:14px;
    }
    .section-head:before {
        left:-10px;
        width:2px;
    }
    .section-head h2 {
        font-size:27px;
    }
    .section-head .overline {
        font-size:10px;
    }
    .section-head>.text-link {
        font-size:11px;
    }
    .section-note {
        display:none;
    }
    .section-intro {
        font-size:13px;
    }
    .regional-highlights {
        padding-top:5px;
    }
    .room-grid {
        grid-template-columns:1fr;
        gap:18px;
    }
.reading-room>img {
        object-position:center 45%;
    }
.room-copy h3 {
        font-size:27px;
    }
    .room-copy p {
        font-size:12px;
    }
.reading-room:after {
        background:linear-gradient(90deg,#10251feb,#10251f85 75%,#10251f20),linear-gradient(0deg,#10251fc9,transparent);
    }
    .region-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .region-tile {
        padding:20px;
        min-height:156px;
    }
    .region-tile h3 {
        font-size:16px;
    }
    .feature-banner {
        grid-template-columns:1fr;
    }
    .feature-images {
        min-height:0;
        aspect-ratio:2/1;
    }
    .feature-copy {
        padding:28px;
    }
    .manifesto {
        grid-template-columns:1fr;
        gap:22px;
        padding:45px 0 55px;
    }
    .manifesto h2 {
        font-size:31px;
    }
    .utility-bar {
        padding-top:20px;
        font-size:10px;
    }
    .page-heading {
        padding:34px 0 30px;
    }
    .page-heading:after {
        width:23px;
        height:23px;
        top:35px;
        right:10px;
        opacity:.4;
    }
    .page-heading>.overline {
        padding-right:55px;
    }
    .page-heading h1 {
        font-size:34px;
        margin-bottom:20px;
    }
    .page-heading p {
        font-size:14px;
    }
    .editor-note {
        padding:25px;
    }
    .editor-note h2 {
        font-size:23px;
    }
    .region-guide {
        padding:22px 0 35px;
    }
    .region-guide-intro h2 {
        font-size:26px;
    }
    .region-guide-intro p {
        font-size:14px;
    }
    .reading-paths {
        gap:15px;
    }
    .reading-paths>a {
        padding:23px;
    }
    .reading-paths h3 {
        font-size:20px;
    }
    .article-heading {
        padding:25px 0 30px;
    }
    .breadcrumbs {
        font-size:10px;
        gap:8px;
        margin-bottom:26px;
    }
    .article-heading h1 {
        font-size:43px;
        padding-left:16px;
        border-width:3px;
    }
    .article-deck {
        font-size:17px;
        margin-top:21px;
    }
    .article-meta {
        font-size:10px;
        gap:12px 18px;
    }
    .reading-toolbar {
        gap:13px 20px;
        font-size:11px;
        padding-block:16px;
        margin-bottom:22px;
    }
    .reading-label {
        flex-basis:100%;
        font-size:11px;
    }
    .reading-toolbar button {
        padding:7px 10px;
    }
    .article-hero>img {
        border-width:4px;
    }
    .article-hero figcaption,.comparison-gallery figcaption {
        font-size:11px;
        padding:15px 0;
    }
    .article-layout {
        grid-template-columns:1fr;
        gap:28px;
        padding-top:30px;
        padding-bottom:10px;
    }
    .article-aside .article-toc {
        position:static;
    }
    .article-toc>summary {
        padding:18px 21px;
        font-size:17px;
    }
    .article-aside nav {
        max-height:320px;
        padding:0 16px 15px;
    }
    .article-aside a {
        font-size:12px;
        padding-block:11px;
    }
    .overview {
        padding:26px;
    }
    .overview h2 {
        font-size:24px;
    }
    .overview .lead {
        font-size:18px;
    }
    .facts>div {
        grid-template-columns:100px 1fr;
        gap:14px;
        font-size:12px;
    }
    .article-body p {
        font-size:15px;
        line-height:2.1;
    }
    .article-section {
        padding-block:36px;
        scroll-margin-top:105px;
    }
    .article-section h2 {
        font-size:24px;
    }
    .limits-box {
        padding:28px;
    }
    .limits-box h2 {
        font-size:24px;
    }
    .limits-box ul {
        font-size:13px;
    }
    .references li {
        padding:22px 20px 22px 51px;
    }
    .references li:before {
        left:17px;
        top:23px;
        font-size:18px;
    }
    .references li p {
        font-size:12px;
    }
    .correction {
        padding:25px;
    }
    .correction h2 {
        font-size:22px;
    }
    .image-notes summary {
        padding:18px;
        font-size:13px;
    }
    .image-notes>p,.image-notes>a {
        margin-inline:18px;
        font-size:12px;
    }
    .policy-navigation {
        grid-template-columns:1fr 1fr;
        margin-top:20px;
    }
    .policy-navigation a {
        font-size:12px;
        padding:15px;
        border-bottom:1px solid var(--line);
    }
    .policy-navigation a:nth-child(2n) {
        border-right:0;
    }
    .policy-navigation a:nth-last-child(-n+2) {
        border-bottom:0;
    }
    .policy-prose {
        padding-top:28px;
    }
    .policy-section {
        padding:24px 22px 8px 55px;
    }
    .policy-section:before {
        top:26px;
        left:17px;
        font-size:22px;
    }
    .policy-section h2 {
        font-size:23px;
    }
    .prose p,.prose li {
        font-size:14px;
    }
    .search-form {
        grid-template-columns:1fr 1fr;
        padding:23px;
        gap:20px 15px;
    }
    .search-form .field:first-child {
        grid-column:1/-1;
    }
    .search-form button {
        width:100%;
    }
    .search-suggestions {
        font-size:11px;
    }
    .search-suggestions .reset-filter {
        margin-left:0;
    }
    .result-heading {
        margin-top:34px;
    }
    .result-heading h2 {
        font-size:22px;
    }
    .empty-state {
        padding:28px;
    }
    .empty-state h3 {
        font-size:23px;
    }
    .contact-layout {
        padding-top:20px;
        gap:28px;
    }
    .contact-help {
        padding:26px;
    }
    .contact-help h2 {
        font-size:25px;
    }
    .contact-help ol {
        grid-template-columns:1fr;
        gap:20px;
    }
    .contact-form {
        padding:25px 22px;
    }
    .contact-form .button {
        width:100%;
    }
    .contact-panel.prose {
        padding-bottom:0;
    }
    .error-page {
        padding:65px 0 75px;
    }
    .error-page h1 {
        font-size:27px;
    }
    .error-page .error-code {
        font-size:75px;
    }
    .error-page p {
        font-size:14px;
    }
    .site-footer {
        padding-top:45px;
    }
    .footer-grid {
        grid-template-columns:1fr 1fr;
        gap:30px 20px;
    }
    .footer-grid>div {
        grid-column:1/-1;
    }
    .footer-grid nav {
        font-size:12px;
        gap:5px;
    }
    .footer-grid nav a {
        padding:10px 0;
        min-height:44px;
    }
    .footer-grid nav>.overline {
        font-size:9px;
    }
    .footer-bottom {
        font-size:10px;
        gap:16px;
    }
    .back-to-top {
        right:12px;
        bottom:140px;
        width:43px;
        height:50px;
    }
    .desktop-only {
        display:none;
    }
}

@media(max-width:600px) {
    .card-grid {
        grid-template-columns:1fr;
        gap:27px;
    }
    .card-body {
        padding:25px;
    }
    .card-body h3 {
        font-size:27px;
    }
    .card-body p {
        font-size:14px;
    }
    .card-meta {
        font-size:11px;
    }
    .section-head h2 {
        font-size:25px;
    }
    .brand-name {
        font-size:18px;
    }
    .mobile-menu summary {
        font-size:10px;
        gap:9px;
    }
.region-tile {
        padding:18px;
    }
    .region-tile h3 {
        font-size:15px;
    }
    .region-state {
        font-size:10px;
    }
    .footer-bottom {
        flex-direction:column;
        gap:10px;
    }
    .article-heading h1 {
        font-size:40px;
    }
    .comparison-gallery {
        grid-template-columns:1fr;
        gap:18px;
    }
    .reading-paths {
        grid-template-columns:1fr;
    }
    .facts>div {
        grid-template-columns:1fr;
        gap:7px;
    }
    .facts dt {
        font-size:11px;
    }
    .facts dd {
        font-size:13px;
    }
    .contact-help h2 {
        font-size:24px;
    }
    .policy-section {
        padding-left:50px;
    }
    .page-heading h1 {
        font-size:32px;
    }
}

@media(max-width:360px) {
    .wrap {
        width:calc(100% - 32px);
    }
    .header-inner {
        padding-inline:18px;
    }
    .brand-name {
        font-size:16px;
    }
    .brand-sub {
        font-size:6px;
    }
    .brand {
        gap:12px;
    }
    .brand-seal {
        width:24px;
        height:29px;
    }
.section-head {
        align-items:flex-start;
    }
    .section-head>.text-link {
        max-width:95px;
    }
    .region-tile {
        padding:15px;
    }
.search-form {
        padding:20px 16px;
    }
    .policy-navigation a {
        font-size:11px;
    }
    .reading-toolbar {
        gap:12px;
    }
    .article-heading h1 {
        font-size:36px;
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }
    *,*:before,*:after {
        animation:none!important;
        transition:none!important;
    }
    .button:hover,.creature-card:hover img {
        transform:none;
    }
    .read-progress {
        display:none;
    }
}

/* Single-result exhibitions use the full available frame. */
@media(min-width:801px) {
    .card-grid:has(>.creature-card:only-child) {
        grid-template-columns:1fr;
        max-width:1000px;
    }
    .card-grid>.creature-card:only-child {
        display:grid;
        grid-template-columns:1.1fr 1fr;
    }
    .card-grid>.creature-card:only-child .card-image-link {
        aspect-ratio:auto;
        min-height:300px;
    }
    .card-grid>.creature-card:only-child .card-body {
        align-self:center;
    }
}





.contact-guide>summary {
    display:none;
}

@media(max-width:900px) {
    .contact-guide>summary {
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:20px;
        font:18px var(--serif);
        list-style:none;
        min-height:44px;
    }
    .contact-guide summary::-webkit-details-marker {
        display:none;
    }
    .contact-guide[open]>summary {
        margin-bottom:25px;
        border-bottom:1px solid #ffffff35;
        padding-bottom:20px;
    }
    .contact-guide[open]>summary>span:last-child {
        transform:rotate(45deg);
    }
}

/* Narrow screens keep reading and auto-ad space free of floating controls. */
@media(max-width:1280px) {
    .back-to-top {
        display:none!important;
    }
}

.footer-bottom>a {
    padding:4px 0;
    text-decoration:none;
    border-bottom:1px solid #9f8753;
}

/* Folio identity: a typeset cover, region ink and open editorial spreads. */
[data-region="norse-germanic"] { --regional-ink:#38545d; }
[data-region="greco-roman"] { --regional-ink:#8b4639; }
[data-region="japan"] { --regional-ink:#414b70; }
.brand-seal { display:flex; flex-direction:column; justify-content:center; text-align:center; color:var(--red); border-color:var(--red); outline:0; width:31px; height:45px; }
.brand-seal:after { border-color:#853f3330; }
.folio-cover { padding-top:28px; }
.folio-running { display:flex; justify-content:space-between; gap:20px; border-block:1px solid var(--ink); padding:10px 0; font:12px/1.7 var(--serif); letter-spacing:.1em; }
.folio-cover-grid { display:grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.35fr); gap:58px; padding:38px 0 52px; border-bottom:1px solid var(--ink); }
.folio-title { padding-top:18px; }
.folio-kicker { display:block; font:14px var(--serif); letter-spacing:.16em; margin-bottom:24px; }
.folio-title h1 { font-size:clamp(48px,5.6vw,80px); line-height:1.24; letter-spacing:.07em; font-weight:500; margin:0 0 30px; }
.folio-title h1 span { display:block; margin-top:10px; font-size:1.2em; letter-spacing:.18em; }
.folio-title>p { font-size:13px; line-height:2.15; }
.folio-open { display:flex; justify-content:space-between; gap:10px; padding:16px 0; border-block:1px solid var(--ink); text-decoration:none; font:14px/1.8 var(--serif); margin-top:28px; }
.folio-open span { color:var(--red); }
.folio-editor-note { border-left:2px solid var(--red); padding-left:18px; margin-top:38px; max-width:325px; }
.folio-editor-note>span { font:13px var(--serif); }
.folio-editor-note p { font-size:12px; color:var(--muted); margin:10px 0; }
.folio-editor-note a { font-size:12px; }
.folio-image { padding:8px; border:1px solid var(--line); background:#eee8da; }
.folio-image img { width:100%; aspect-ratio:6/5; object-fit:cover; object-position:60% center; }
.folio-frontispiece figcaption { padding-top:18px; }
.folio-plate-label { display:block; font-size:11px; color:var(--muted); margin-bottom:9px; }
.folio-frontispiece figcaption a { display:flex; flex-direction:column; gap:4px; text-decoration:none; }
.folio-frontispiece strong { font:30px/1.5 var(--serif); }
.folio-frontispiece figcaption a span { font:17px/1.8 var(--serif); }
.folio-frontispiece figcaption p { font-size:11px; color:var(--muted); margin-top:14px; line-height:1.9; }
.creature-card .card-label { border-color:var(--regional-ink,var(--ink)); }
.creature-card .card-meta { color:var(--regional-ink,var(--ink)); }
.article-heading { border-bottom:1px solid var(--regional-ink,var(--ink)); }
.article-heading h1 { border-left:0; padding-left:0; font-weight:500; }
.article-heading>.overline { color:var(--regional-ink,var(--ink)); }
.page-heading { border-bottom:1px solid var(--regional-ink,var(--line)); }
.region-guide { border-top:0; }
.policy-section { box-shadow:none; }
.limits-box { background:#ede8dc; color:var(--ink); border-left:3px solid var(--regional-ink,var(--red)); }
.limits-box .overline { color:var(--regional-ink,var(--red)); }
@media(min-width:901px) {
    .folio-collection .card-grid { gap:40px 44px; }
    .folio-collection .creature-card:first-child { grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:36px; padding-bottom:30px; }
    .folio-collection .creature-card:first-child .card-body { padding-top:8px; }
    .folio-collection .creature-card:first-child .card-body h3 { font-size:36px; }
    .folio-collection .creature-card:last-child { grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.45fr); gap:36px; padding-bottom:30px; }
    .folio-collection .creature-card:last-child .card-body { padding-top:8px; }
    .reading-room[data-region="greco-roman"] .room-plate { margin-top:42px; }
    .reading-room[data-region="japan"] .room-plate { margin-top:70px; }
}
@media(max-width:900px) {
    .folio-cover-grid { gap:26px; }
    .folio-title h1 { font-size:48px; }
    .folio-editor-note { margin-top:24px; }
    .room-grid { grid-template-columns:1fr; gap:35px; }
    .reading-room { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; }
    .room-copy { padding-top:18px; }
}
@media(max-width:800px) {
    .folio-cover-grid { grid-template-columns:1fr; gap:30px; padding:28px 0 32px; }
    .folio-title { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 24px; padding-top:0; }
    .folio-kicker { grid-column:1/-1; margin-bottom:18px; font-size:12px; }
    .folio-title h1 { grid-row:2/4; font-size:clamp(36px,7vw,62px); margin-bottom:0; }
    .folio-title>p { font-size:12px; align-self:center; }
    .folio-title>p br { display:none; }
    .folio-open { font-size:12px; padding:10px 0; margin-top:14px; align-self:end; }
    .folio-editor-note { display:none; }
    .folio-image img { aspect-ratio:16/10; }
    .folio-frontispiece figcaption a { gap:7px; }
    .folio-frontispiece strong { font-size:26px; }
}
@media(max-width:600px) {
    .folio-running { font-size:10px; letter-spacing:0; gap:10px; }
    .folio-cover { padding-top:18px; }
    .folio-cover-grid { gap:26px; }
    .folio-title { gap:0 16px; }
    .folio-frontispiece figcaption a span { font-size:15px; }
    .folio-frontispiece figcaption p br { display:none; }
    .reading-room { grid-template-columns:1fr; gap:0; }
    .room-plate img { aspect-ratio:16/9; }
    .room-copy h3 { font-size:27px; }
    .room-copy .room-theme { font-size:17px; }
    .brand-seal { font-size:14px; width:28px; height:39px; }
}
@media(prefers-reduced-motion:reduce) {
    .reading-room:hover .room-plate img { transform:none; }
}
/* A guide is a reading sequence; numbering stays tied to real entries. */
.page-heading:after { display:none; }
.page-heading { padding-right:0; }
.reading-paths { grid-template-columns:1fr; gap:0; align-content:start; }
.reading-paths>a { display:grid; grid-template-columns:32px minmax(0,1fr); gap:0 18px; padding:23px 0; border:0; border-top:1px solid var(--line); background:transparent; }
.reading-paths .overline { grid-row:1/4; border:0; padding:2px 0 0; font:18px/1.7 var(--serif); color:var(--regional-ink,var(--ink)); }
.reading-paths h3 { font-size:22px; margin-bottom:9px; }
.reading-paths p { margin-bottom:12px; }
.reading-paths .text-link { margin-top:0; }
.reading-paths>a:hover { background:transparent; color:var(--regional-ink,var(--ink)); border-color:var(--regional-ink,var(--ink)); }
.limits-box ul { color:var(--ink); }
.references li { border:0; border-top:1px solid var(--line); background:transparent; }
.overview:before { background:var(--regional-ink,var(--ink)); }
@media(max-width:600px) {
    .reading-paths>a { padding:20px 0; gap:0 12px; grid-template-columns:26px minmax(0,1fr); }
    .reading-paths h3 { font-size:20px; }
}
/* Scottish water stories: a source register with small plate studies. */
[data-region="celtic-british"] { --regional-ink:#52685d; }
.new-folio { border-bottom:1px solid var(--line); }
.folio-register { display:grid; grid-template-columns:1fr; gap:0; }
.folio-register>a { display:grid; grid-template-columns:36px 230px minmax(0,1fr); gap:25px; align-items:center; padding:23px 0; border-top:1px solid var(--line); text-decoration:none; }
.register-number { font:18px var(--serif); align-self:start; padding-top:7px; color:var(--muted); }
.folio-register img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.folio-register h3 { font-size:27px; margin-bottom:10px; }
.folio-register p { font-size:14px; color:var(--muted); max-width:680px; }
.folio-register div>span { display:block; margin-top:16px; font-size:12px; }
.folio-register>a:hover { color:var(--red); }
@media(max-width:700px) {
    .folio-register>a { grid-template-columns:24px 110px minmax(0,1fr); gap:12px; align-items:start; }
    .folio-register h3 { font-size:21px; }
    .folio-register p { font-size:12px; }
    .folio-register div>span { margin-top:12px; }
    .register-number { font-size:14px; }
}
@media(max-width:400px) {
    .folio-register>a { grid-template-columns:24px minmax(0,1fr); }
    .folio-register img { grid-column:2; }
    .folio-register>a>div { grid-column:2; }
}

/* Forest stories use the same source-led register, with their own regional ink. */
[data-region="slavic-eastern-europe"] { --regional-ink:#635a43; }
[data-region="middle-east"] { --regional-ink:#876341; }
[data-region="south-asia"] { --regional-ink:#71613d; }
[data-region="east-asia"] { --regional-ink:#876044; }

[data-region="southeast-asia"] { --regional-ink: #8b593e; }

[data-region="africa"] { --regional-ink: #94723b; }

[data-region="americas"] { --regional-ink: #597d78; }

[data-region="oceania"] { --regional-ink: #426c75; }
.article-inline-image { margin: 30px 0; }
.article-inline-image > img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border: 6px solid #fffaf0; outline: 1px solid var(--line); }
.article-inline-image figcaption { font-size: 12px; line-height: 1.95; color: var(--muted); padding: 16px 0; border-bottom: 1px solid var(--line); }

.search-scope {
    margin: 1.5rem 0;
    padding: 1rem 1.25rem;
    border-left: 3px solid var(--gold);
    background: var(--cream);
}
.search-scope strong { display: block; }
.search-scope p { margin: .35rem 0 0; font-size: .875rem; line-height: 1.8; }

/* Approved archive edition: the cover invites; reading pages stay clear. */
.archive-cover{position:relative;isolation:isolate;background:#182a30;color:#fff8ea;min-height:720px;overflow:hidden}
.archive-cover-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:56% 50%;z-index:-2}
.archive-cover:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,25,31,.93),rgba(11,25,31,.54) 44%,rgba(11,25,31,.06) 75%),linear-gradient(0deg,rgba(11,25,31,.65),transparent 45%);z-index:-1}
.archive-cover-content{padding-block:68px 36px}
.archive-kicker{font-size:14px;letter-spacing:.18em;color:#e4cda5;margin-bottom:20px}
.archive-cover h1{font-size:clamp(68px,7vw,98px);font-weight:600;letter-spacing:.08em;line-height:1.22;text-shadow:0 2px 18px #10202d}
.archive-cover-deck{font-size:19px;line-height:2.1;font-weight:600;margin:24px 0;color:#fffaf0;max-width:570px}
.archive-cover-open{display:inline-flex;gap:50px;align-items:center;min-height:54px;border:1px solid #dcc19b;padding:12px 24px;text-decoration:none;background:#182a30aa;font-size:16px}
.archive-cover-open:hover{color:#182a30;background:#efdbb7}
.archive-cover-note{margin-top:40px;max-width:500px;border-top:1px solid #8f9b9b;padding-top:16px;display:grid;gap:6px;font-size:14px;color:#f0e0c8}
.archive-cover-note a{width:fit-content;min-height:32px}
.archive-cover-note small{font-size:12px;color:#e0e4df;line-height:1.9}
.archive-introduction{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;padding-block:52px;border-bottom:1px solid var(--line);align-items:center}
.archive-introduction h2{font-size:38px;font-family:var(--serif);line-height:1.6}
.archive-introduction p{font-size:19px;line-height:1.95;margin-bottom:22px;max-width:620px}
.archive-introduction .text-link{margin:0 22px 10px 0}
.collection-heading{background:#182a30;color:#fff8ea;border-bottom:3px solid var(--gold);padding:44px 0 48px}
.collection-heading-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.2fr);gap:50px;align-items:center}
.collection-heading h1{font-size:clamp(32px,3.25vw,44px);line-height:1.55;letter-spacing:.03em;margin-bottom:18px;word-break:auto-phrase;text-wrap:pretty}
.collection-heading p{font-size:18px;line-height:1.95;color:#e6e9e5;margin-bottom:24px;word-break:auto-phrase;text-wrap:pretty}
.collection-heading .overline{color:#e6c99b;font-size:13px}
.collection-heading .text-link{color:#f5dfb5;font-size:16px}
.collection-entrance img{width:100%;aspect-ratio:16/9;object-fit:contain;border:1px solid #687579}
.collection-entrance figcaption{font-size:14px;line-height:1.8;display:flex;justify-content:space-between;gap:12px;padding-top:14px}
.collection-entrance figcaption>span{font-size:12px;color:#e0dfd4}
.collection-heading a:hover{color:white}
.reading-paths>a{grid-template-columns:120px 28px minmax(0,1fr);gap:0 18px}
.reading-paths .reading-path-image{grid-column:1;grid-row:1/5;width:120px;aspect-ratio:16/9;object-fit:contain;align-self:start}
.reading-paths .overline{grid-column:2;grid-row:1/5}
.reading-paths h3,.reading-paths p,.reading-paths .text-link{grid-column:3}
.card-image-link img,.room-plate img{object-fit:contain}
.card-body h3,.room-copy h3,.folio-register h3,.reading-paths h3{font-family:var(--sans);font-weight:700;letter-spacing:.02em}
.card-body p,.room-copy p,.folio-register p,.reading-paths p,.section-intro,.guide-intro p{font-size:16px;line-height:1.95;color:var(--ink)}
.card-body .overline,.room-copy .overline,.card-label,.card-meta,.room-link{font-size:13px}
.text-link{font-size:15px;min-height:36px}
.button{font-size:16px}
.room-image-note{font-size:12px}
.room-copy .room-theme{font-size:20px;color:var(--ink);font-weight:600}
.prose,.policy-prose{font-size:19px;line-height:1.95;color:var(--ink)}
.prose h2,.prose h3,.policy-prose h2,.policy-prose h3,.contact-help h2{font-family:var(--sans);font-weight:700}
.prose p,.policy-prose p,.policy-prose li{font-size:inherit;line-height:1.95;color:inherit}
.page-heading p,.editor-note p,.manifesto p,.region-guide-intro p,.error-page p{font-size:18px;line-height:1.95}
.desktop-nav a{font-size:13px;font-weight:600}
.field input,.field select,.field textarea{font-size:18px;color:var(--ink);background:#fffdf8}
.field>span{font-size:16px;font-weight:700}
.input-help,.character-count,.form-note,.check-field,.contact-help p,.contact-help li span{font-size:14px!important;line-height:1.9!important}
.contact-help p,.contact-help li span{color:#e7e9e3}
.contact-help strong{font:700 17px/1.8 var(--sans)}
.policy-navigation a{font-size:15px;min-height:48px}
@media(max-width:760px){
 .archive-cover{min-height:700px}
 .archive-cover-art{object-position:52% 50%}
 .archive-cover:before{background:linear-gradient(0deg,#10222beb,rgba(12,27,33,.82) 38%,rgba(12,27,33,.12) 76%)}
 .archive-cover-content{padding-block:245px 28px}
 .archive-kicker{font-size:12px;letter-spacing:.1em;margin-bottom:14px}
 .archive-cover h1{font-size:54px;line-height:1.25}
 .archive-cover-deck{font-size:16px;line-height:2;margin:18px 0}
 .archive-cover-note{margin-top:24px;font-size:13px}
 .archive-cover-note small{font-size:11px}
 .archive-introduction{grid-template-columns:1fr;gap:22px;padding-block:36px}
 .archive-introduction h2{font-size:30px}
 .archive-introduction p{font-size:18px}
 .collection-heading{padding:26px 0 30px}
 .collection-heading-grid{grid-template-columns:1fr;gap:28px}
 .collection-heading h1{font-size:34px}
 .collection-heading p{font-size:17px;margin-bottom:18px}
 .collection-entrance figcaption{font-size:13px}
 .reading-paths>a{grid-template-columns:28px minmax(0,1fr);gap:0 12px}
 .reading-paths .reading-path-image{grid-column:2;grid-row:auto;width:100%;max-width:420px;margin-bottom:18px}
 .reading-paths .overline{grid-column:1;grid-row:1/5}
 .reading-paths h3,.reading-paths p,.reading-paths .text-link{grid-column:2}
 .prose,.policy-prose{font-size:18px}
 .card-body h3,.room-copy h3{font-size:26px}
 .card-body p,.room-copy p,.folio-register p,.reading-paths p,.section-intro{font-size:16px}
 .folio-register>a{grid-template-columns:24px minmax(0,1fr)}
 .folio-register img,.folio-register>a>div{grid-column:2}
 .folio-register img{width:100%;max-width:640px}
 .folio-register h3{font-size:26px}
}

/* Return from a reference to the chapters that use it, without JavaScript. */
.source-uses{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid #b8b6a7}.source-uses>span{font-size:15px;line-height:1.8;color:#4b554e}.myth-edition .exhibit-references .source-uses a,.fenrir-edition .wolf-references .source-uses a{display:block;font-size:17px;line-height:1.8;padding:7px 0;max-width:100%;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.source-uses a:hover{text-decoration-thickness:2px}
