/* v38: local memory library only; the museum header and other rooms stay intact. */
body[data-room="archive"] .museum-frame { display:none; }
body[data-room="archive"] #entity-guide-v37 { position:absolute; width:100px; right:24px; top:calc(var(--museum-head,112px) + 16px); bottom:auto; }
body[data-room="archive"] #entity-guide-v37 .character-speech { display:none; }
body[data-room="archive"] #entity-guide-v37 .character-toggle { width:100px; min-height:44px; }
body[data-room="archive"] #entity-guide-v37 .character-toggle img,
body[data-room="archive"] #entity-guide-v37 .character-toggle:before { display:none; }
body[data-room="archive"] #entity-guide-v37 .character-name { display:flex; align-items:center; min-height:44px; border-radius:3px; background:#fbf8ef; color:#254e3f; box-shadow:none; font-size:13px; }
body[data-room="archive"] #entity-guide-v37 .guide-bubble { top:56px; bottom:auto; width:min(365px,calc(100vw - 40px)); max-height:min(610px,calc(100svh - var(--museum-head,112px) - 92px)); }
body[data-room="archive"] #entity-guide-v37 .guide-bubble:after { top:-9px; bottom:auto; border-right:0; border-bottom:0; border-left:1px solid #ad8d58; border-top:1px solid #ad8d58; }
#archive,
#archive-contribution-dialog {
  --memory-paper: #f6f1e5;
  --memory-ink: #25362d;
  --memory-body-ink: #435044;
  --memory-jade: #254e3f;
  --memory-gold: #b69a67;
  --memory-line: #d8ccb3;
  --memory-song: 'Songti SC', 'Noto Serif CJK SC', SimSun, serif;
  --memory-fang: 'FangSong', 'STFangsong', 'Songti SC', serif;
  color: var(--memory-ink);
  font-family: var(--memory-song);
}
#archive.room.archive-room {
  display: block !important;
  height: auto !important;
  min-height: calc(100svh - var(--museum-head, 100px));
  margin-top: var(--museum-head, 100px);
  padding: 0;
  border: 0;
  background: var(--memory-paper);
  overflow: visible;
  isolation: isolate;
}
#archive.room.archive-room[hidden] { display: none !important; }
#archive.room.archive-room::before { content: none; background: none; }
#archive [hidden],
#archive-contribution-dialog [hidden] { display: none !important; }
#archive .memory-layout-v38 { max-width: 1160px; margin: auto; padding: 36px 24px 48px; }
#archive a,
#archive-contribution-dialog a { color: inherit; text-decoration: none; }
#archive button,
#archive-contribution-dialog button,
#archive-contribution-dialog input,
#archive-contribution-dialog select,
#archive-contribution-dialog textarea { font: inherit; }
#archive button,
#archive a,
#archive summary,
#archive-contribution-dialog button,
#archive-contribution-dialog input,
#archive-contribution-dialog select,
#archive-contribution-dialog textarea { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
#archive button,
#archive summary,
#archive-contribution-dialog button { cursor: pointer; }
#archive :is(a, button, summary):focus-visible,
#archive-contribution-dialog :is(a, button, input, select, textarea):focus-visible { outline: 2px solid #947436; outline-offset: 4px; }
#archive h1[tabindex="-1"]:focus,
#archive #topic-reading[tabindex="-1"]:focus { outline: none; }
#archive button:disabled,
#archive-contribution-dialog button:disabled { cursor: wait; opacity: .7; }
#archive h1 { font: 700 clamp(32px, 3.3vw, 44px)/1.35 var(--memory-song); letter-spacing: .025em; margin: 0; color: #203a2e; }
#archive h2 { font: 700 23px/1.55 var(--memory-song); margin: 0; color: var(--memory-ink); }
#archive h3 { font: 700 19px/1.65 var(--memory-song); margin: 0; color: var(--memory-ink); }
#archive .memory-eyebrow,
#archive-contribution-dialog .memory-eyebrow { font: 12px/1.7 var(--memory-song); letter-spacing: .12em; color: #857047; margin: 0 0 9px; }
#archive .memory-preview-notice { font: 11px/1.6 var(--memory-song); color: #867456; margin: 0 0 28px; }
#archive .memory-directory-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding-bottom: 28px; margin-bottom: 25px; border-bottom: 1px solid var(--memory-line); }
#archive .memory-directory-heading > div { min-width: 0; }
#archive .memory-directory-heading p:not(.memory-eyebrow) { font: 17px/1.8 var(--memory-fang); margin: 14px 0 0; color: var(--memory-body-ink); }
#archive .memory-quiet-action,
#archive .memory-primary-action,
#archive-contribution-dialog .memory-quiet-action,
#archive-contribution-dialog .memory-primary-action {
  display: inline-flex; align-items: center; justify-content: center; gap: 14px;
  min-height: 44px; padding: 10px 16px; border: 1px solid #aa9466; border-radius: 3px;
  background: transparent; color: var(--memory-jade); font: 14px/1.6 var(--memory-song); white-space: nowrap;
}
#archive .memory-quiet-action:hover,
#archive-contribution-dialog .memory-quiet-action:hover { background: #ece4d3; }
#archive .memory-primary-action,
#archive-contribution-dialog .memory-primary-action { background: var(--memory-jade); color: #fff5dc; border-color: var(--memory-jade); }
#archive .memory-primary-action:hover,
#archive-contribution-dialog .memory-primary-action:hover { background: #34634d; }
#archive .memory-topic-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
#archive .memory-topic-choice {
  position: relative; display: grid; grid-template-columns: 43px minmax(0, 1fr) 22px;
  gap: 18px; align-items: start; min-width: 0; min-height: 164px; padding: 25px 25px 23px;
  background: #fbf8ef; border: 1px solid var(--memory-line); border-radius: 3px;
  transition: border-color .18s ease, background .18s ease;
}
#archive .memory-topic-choice:hover { border-color: #9d8654; background: #f0ebdf; }
#archive .memory-topic-index { color: #8b7447; font: 20px/1.5 Georgia, serif; padding-top: 4px; }
#archive .memory-topic-choice h2 { font-size: 24px; letter-spacing: .035em; }
#archive .memory-topic-choice p { font: 16px/1.8 var(--memory-fang); color: var(--memory-body-ink); margin: 8px 0 12px; }
#archive .memory-topic-choice small { font: 11px/1.6 var(--memory-song); color: #857557; }
#archive .memory-topic-choice .memory-arrow { font-size: 22px; color: #67826c; padding-top: 5px; }
#archive .memory-contribution { border-top: 1px solid var(--memory-line); padding-top: 25px; margin-top: 36px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
#archive .memory-contribution h2 { font-size: 20px; }
#archive .memory-contribution p { font: 15px/1.9 var(--memory-fang); color: #53604f; max-width: 39em; margin: 6px 0 0; }
#archive .memory-contribution-actions { display: flex; gap: 10px; flex-shrink: 0; }
#archive .memory-review-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 24px; font: 11px/1.8 var(--memory-song); color: #8a795b; margin-top: 25px; }
#archive .memory-review-foot p { margin: 0; }
#archive .memory-back { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: 19px; color: var(--memory-jade); font: 14px/1.7 var(--memory-song); }
#archive .memory-reading-header { border-bottom: 1px solid var(--memory-line); padding-bottom: 23px; margin-bottom: 27px; }
#archive .memory-takeaway { font: 20px/1.9 var(--memory-fang); color: #354b3d; border-left: 3px solid #55765b; padding-left: 19px; margin: 20px 0 14px; max-width: 45em; }
#archive .memory-reading-count { font: 12px/1.7 var(--memory-song); color: #897554; margin: 0; }
#archive .memory-topic-facts { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 25px 35px; padding-bottom: 27px; margin-bottom: 27px; border-bottom: 1px solid var(--memory-line); }
#archive .memory-topic-facts section:first-child { grid-column: 1/-1; }
#archive .memory-fact-number { color: #977c4f; font: 12px Georgia, serif; display: inline-block; margin-right: 10px; }
#archive .memory-topic-facts p { font: 17px/1.9 var(--memory-fang); color: var(--memory-body-ink); margin: 10px 0 0; max-width: 60em; }
#archive .memory-collection-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; margin: 0 0 16px; }
#archive .memory-collection-heading p { font: 12px/1.8 var(--memory-song); color: #8a795b; margin: 0; }
#archive .memory-material-group { margin: 0 0 24px; }
#archive .memory-group-label { font: 700 16px/1.6 var(--memory-song); margin: 0 0 3px; color: #56634e; }
#archive .memory-source-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--memory-line); }
#archive .memory-source-row > div { min-width: 0; }
#archive .memory-source-publisher { font: 11px/1.8 var(--memory-song); color: #8a795b; margin: 0 0 4px; }
#archive .memory-source-row h4 { font: 700 18px/1.65 var(--memory-song); color: var(--memory-ink); margin: 0; overflow-wrap: anywhere; }
#archive .memory-source-row p { font: 16px/1.8 var(--memory-fang); color: var(--memory-body-ink); margin: 6px 0 0; overflow-wrap: anywhere; }
#archive .memory-source-row p.memory-source-publisher { font: 11px/1.8 var(--memory-song); color: #8a795b; margin: 0 0 4px; }
#archive .memory-source-links { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; justify-content: center; }
#archive .memory-source-links a { min-height: 44px; padding: 10px 14px; border: 1px solid #b7aa8b; border-radius: 3px; color: var(--memory-jade); font: 13px/1.7 var(--memory-song); white-space: nowrap; }
#archive .memory-source-links a:hover { background: #e8e1d1; }
#archive .memory-source-note { grid-column: 1/-1; font: 12px/1.8 var(--memory-song); color: #897554; margin-top: 7px; }
#archive .memory-source-note > summary,
#archive .memory-more-sources > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; list-style: none; }
#archive .memory-source-note > summary::-webkit-details-marker,
#archive .memory-more-sources > summary::-webkit-details-marker { display: none; }
#archive .memory-source-note > summary::before,
#archive .memory-more-sources > summary::before { content: '＋'; margin-right: 9px; }
#archive .memory-source-note[open] > summary::before,
#archive .memory-more-sources[open] > summary::before { content: '－'; }
#archive .memory-source-note p { font-size: 13px; margin: 0; max-width: 55em; }
#archive .memory-more-sources { margin-top: 8px; }
#archive .memory-more-sources > summary { font: 14px var(--memory-song); color: var(--memory-jade); }
#archive #catalog-loading,
#archive #catalog-error { color: var(--memory-body-ink); font: 17px/1.8 var(--memory-fang); }
#archive-contribution-dialog {
  width: min(610px, calc(100vw - 32px)); max-height: calc(100svh - 40px); padding: 25px 28px;
  border: 1px solid #b09b6c; border-radius: 7px; background: #faf5e8;
  box-shadow: 0 20px 80px #0c211d33; overflow: auto;
}
#archive-contribution-dialog::backdrop { background: #122b2788; backdrop-filter: blur(3px); }
#archive-contribution-dialog .memory-dialog-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 25px; }
#archive-contribution-dialog .memory-dialog-head > div { min-width: 0; }
#archive-contribution-dialog .memory-dialog-head h2 { font: 700 27px/1.55 var(--memory-song); color: var(--memory-ink); margin: 0; }
#archive-contribution-dialog .memory-icon-button { width: 44px; height: 44px; flex-shrink: 0; border: 1px solid #b7a986; border-radius: 50%; background: transparent; color: var(--memory-jade); font: 28px var(--memory-song); }
#archive-contribution-dialog .memory-draft-notice { background: #eee7d5; padding: 10px 13px; font: 12px/1.7 var(--memory-song); color: #7a6541; }
#archive-contribution-dialog form label { display: block; font: 14px/1.6 var(--memory-song); margin-top: 16px; }
#archive-contribution-dialog form input,
#archive-contribution-dialog form select,
#archive-contribution-dialog form textarea { width: 100%; min-height: 44px; border: 1px solid #b4a384; background: #fffaf0; border-radius: 3px; padding: 10px 12px; margin-top: 7px; color: var(--memory-ink); font: 15px/1.6 var(--memory-song); }
#archive-contribution-dialog form textarea { resize: vertical; }
#archive-contribution-dialog .memory-field-help { font: 12px/1.8 var(--memory-song); color: #82704c; margin: 11px 0; }
#archive-contribution-dialog .memory-form-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 22px; }
#archive-contribution-dialog #archive-draft-status { font: 13px/1.8 var(--memory-song); color: var(--memory-jade); margin: 14px 0 0; }
@media (max-width: 900px) {
  #archive .memory-contribution { align-items: flex-start; }
  #archive .memory-contribution-actions { flex-direction: column; }
  #archive .memory-topic-choice { padding: 22px 20px; gap: 12px; grid-template-columns: 30px minmax(0, 1fr) 18px; }
  #archive .memory-topic-choice h2 { font-size: 22px; }
}
@media (max-width: 600px) {
  #archive .memory-layout-v38 { padding: 24px 20px 40px; }
  #archive .memory-preview-notice { margin-bottom: 21px; }
  #archive .memory-directory-heading { display: block; padding-bottom: 22px; margin-bottom: 20px; }
  #archive .memory-directory-heading h1 { font-size: 32px; }
  #archive .memory-directory-heading .memory-quiet-action { margin-top: 19px; }
  #archive .memory-directory-heading p:not(.memory-eyebrow) { font-size: 16px; }
  #archive .memory-topic-choices { grid-template-columns: 1fr; gap: 13px; }
  #archive .memory-topic-choice { min-height: 135px; padding: 19px 17px; }
  #archive .memory-topic-choice h2 { font-size: 23px; }
  #archive .memory-topic-choice p { font-size: 16px; margin-bottom: 7px; }
  #archive .memory-contribution { display: block; margin-top: 26px; }
  #archive .memory-contribution-actions { flex-direction: row; flex-wrap: wrap; margin-top: 16px; }
  #archive .memory-contribution-actions button { flex: 1; }
  #archive .memory-topic-facts { display: block; }
  #archive .memory-topic-facts section + section { margin-top: 23px; }
  #archive .memory-topic-facts h2 { font-size: 21px; }
  #archive .memory-takeaway { font-size: 18px; padding-left: 14px; }
  #archive .memory-collection-heading { display: block; }
  #archive .memory-collection-heading p { margin-top: 5px; }
  #archive .memory-source-row { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  #archive .memory-source-links { flex-direction: row; flex-wrap: wrap; }
  #archive .memory-source-links a { white-space: normal; }
  #archive .memory-review-foot { display: block; }
  #archive .memory-review-foot p + p { margin-top: 4px; }
  #archive .memory-topic-choice,
  #archive .memory-source-row { overflow-wrap: anywhere; }
  #archive-contribution-dialog { padding: 21px 19px; }
  #archive-contribution-dialog .memory-dialog-head h2 { font-size: 24px; }
  #archive-contribution-dialog .memory-form-actions { justify-content: stretch; }
  #archive-contribution-dialog .memory-form-actions button { flex: 1; white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
  #archive .memory-topic-choice { transition: none; }
  #archive,
  #archive *,
  #archive-contribution-dialog,
  #archive-contribution-dialog * { scroll-behavior: auto !important; }
}
