/* Approved Field Guide, revision 2. Shared publication and editor-preview surface. */
:root {
  --paper:#f4efe2;
  --ink:#302d27;
  --muted:#686254;
  --rule:#8b827866;
  --indigo:#315774;
  --wu-line:var(--rule);
  --wu-ink:var(--ink);
  --wu-muted:var(--muted);
  --wu-accent:var(--indigo);
  color-scheme:light;
  font-synthesis:none;
  scroll-behavior:smooth;
}
* {
  box-sizing:border-box;
}
body.wu-theme {
  position:relative;
  margin:0;
  min-height:100vh;
  background:var(--paper) url('../images/hemp-pale.webp?v=9aa77d4deab447cef97512955a6ecc659bbbd293ecde8740b0df4be71062fb27') repeat;
  background-size:650px 60px;
  color:var(--ink);
  font:400 18px/1.8 'Special Elite','Courier New',monospace;
}
.wu-theme :is(h1,h2,h3,h4,h5,h6,p,a,li,dt,dd,th,td,caption,label,input,button,textarea,select,summary,code,pre,small,strong,span) {
  font-family:'Special Elite','Courier New',monospace;
  font-weight:400;
  font-synthesis:none;
}
[hidden] {
  display:none!important;
}
a {
  color:var(--indigo);
  text-underline-offset:.25em;
  text-decoration-thickness:1px;
}
a:hover,button:hover {
  color:#112e45;
}
:focus-visible {
  outline:2px solid var(--indigo);
  outline-offset:5px;
}
button,input,textarea,select {
  font:inherit;
  color:inherit;
}
button {
  cursor:pointer;
  background:none;
  border:0;
}
button:disabled {
  cursor:wait;
}
img {
  max-width:100%;
  height:auto;
}
summary {
  cursor:pointer;
  color:var(--indigo);
}
p {
  margin:0 0 1.2rem;
  overflow-wrap:break-word;
}
h1,h2,h3,h4,h5,h6 {
  line-height:1.3;
  overflow-wrap:anywhere;
}
h1 {
  font-size:clamp(2.2rem,4.1vw,3.45rem);
  letter-spacing:-.035em;
  margin:0 0 1.6rem;
}
h2 {
  font-size:1.9rem;
  margin:3.2rem 0 1.2rem;
}
h3 {
  font-size:1.55rem;
  margin:2rem 0 1rem;
}
h4,h5,h6 {
  font-size:1.23rem;
  margin:1.8rem 0 1rem;
}
[id] {
  scroll-margin-top:2rem;
}
ul,ol {
  padding-left:1.5rem;
}
li {
  margin:.35rem 0;
}
.article strong {
  color:#494434;
  text-decoration:underline;
  text-decoration-color:#77766355;
  text-underline-offset:.22em;
}
.article em {
  font-style:italic;
}
.skip-link {
  position:absolute;
  left:1rem;
  top:-6rem;
  z-index:30;
  background:var(--paper);
  padding:.6rem 1rem;
}
.skip-link:focus {
  top:.5rem;
}
/* A single stock sheet; marks sit in the margins without creating image backdrops. */
.site-header,.site-shell,.guide-search,.site-footer {
  position:relative;
  max-width:1380px;
  margin-inline:auto;
}
.site-header {
  display:flex;
  align-items:center;
  gap:2rem;
  padding:1rem 3.3rem;
  border-bottom:1px solid var(--rule);
  z-index:2;
}
.brand {
  display:block;
  width:256px;
  max-width:calc(100% - 6rem);
  text-decoration:none;
  flex-shrink:0;
}
.brand img {
  display:block;
  width:100%;
  height:auto;
}
.top-links {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:1.2rem;
  flex-wrap:wrap;
  margin-left:auto;
}
.top-links a,.top-links button {
  font-size:.85rem;
  line-height:1.5;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  text-decoration:none;
  padding:.25rem 0;
}
.top-links :is([aria-current=page],.is-active) {
  text-decoration:underline;
}
.top-links a:hover,.search-toggle:hover {
  text-decoration:underline;
}
.nav-toggle {
  display:none;
  min-height:44px;
  border:1px solid var(--rule);
  padding:.4rem .8rem;
}
.site-shell {
  display:grid;
  grid-template-columns:215px minmax(0,1fr);
  padding-inline:3.3rem;
}
.sidebar {
  min-width:0;
  padding:2.3rem 1.25rem 2rem 0;
  border-right:1px solid var(--rule);
  align-self:start;
  position:sticky;
  top:0;
  max-height:100dvh;
  overflow:auto;
  font-size:.9rem;
  line-height:1.55;
  scrollbar-width:thin;
}
.sidebar-label {
  font-size:.75rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:1.2rem;
  color:var(--muted);
}
.nav-tree,.nav-tree ul {
  list-style:none;
  padding:0;
  margin:0;
}
.nav-tree li {
  margin:0;
}
.nav-tree a {
  display:block;
  padding:.35rem .3rem;
  text-decoration:none;
  overflow-wrap:anywhere;
}
.nav-tree a:hover {
  text-decoration:underline;
}
.nav-tree a.is-active {
  border-left:2px solid var(--indigo);
  padding-left:.6rem;
}
.nav-group>span {
  display:block;
  font-size:.75rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
  margin:1rem 0 .4rem;
}
.nav-tree ul {
  margin-left:.4rem;
  padding-left:.4rem;
  border-left:1px solid var(--rule);
}
.nav-catalog {
  font-size:.82rem;
  margin-bottom:.8rem!important;
}
.nav-catalog ul {
  border:0;
}
.nav-current-catalog>summary,.nav-catalog-group>summary {
  padding:.4rem .15rem;
  overflow-wrap:anywhere;
}
.nav-catalog-overview {
  font-size:.8rem;
}
.content {
  min-width:0;
  width:100%;
  padding:2.5rem 0 3.5rem 2.6rem;
}
.article {
  min-width:0;
}
.breadcrumbs {
  display:flex;
  gap:.65rem;
  flex-wrap:wrap;
  font-size:.75rem;
  line-height:1.6;
  color:var(--muted);
  margin-bottom:2rem;
}
.breadcrumbs a {
  color:var(--muted);
}
.article>.wu-narrative> :is(p,ul,ol,blockquote),
.article>[data-wu-region=narrative]> :is(p,ul,ol,blockquote) {
  max-width:72ch;
}
.wu-narrative {
  display:flow-root;
}
.headerlink {
  margin-left:.45rem;
  text-decoration:none;
  opacity:.35;
  font-size:.65em;
}
.headerlink:hover,.headerlink:focus {
  opacity:1;
}
.page-turn {
  clear:both;
  display:flex;
  justify-content:space-between;
  gap:2rem;
  flex-wrap:wrap;
  border-top:1px solid var(--rule);
  padding-top:1.5rem;
  margin-top:3rem;
  font-size:.85rem;
}
.page-turn a:last-child {
  margin-left:auto;
}
.site-footer {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:1.5rem;
  flex-wrap:wrap;
  border-top:1px solid var(--rule);
  padding:1.2rem 3.3rem 1.7rem;
  font-size:.62rem;
  line-height:1.7;
  color:var(--muted);
}
.site-footer p {
  margin:0;
}
.clean-toggle {
  font-size:.62rem;
  padding:.25rem 0;
  text-decoration:underline;
  color:var(--muted);
}
.wu-topics {
  display:none;
}
/* Reading chapters retain their continuous authored flow. */
[data-wu-page=article] .site-shell {
  display:block;
}
[data-wu-page=article] .sidebar {
  display:none;
}
[data-wu-page=article] .content {
  max-width:900px;
  margin:auto;
  padding:3.5rem 0 4rem;
}
[data-wu-page=article] .article {
  max-width:76ch;
}
.article blockquote {
  clear:both;
  border-left:1px solid #79735a;
  margin:2rem 0;
  padding:.4rem 0 .4rem 1.35rem;
  max-width:68ch;
  color:var(--ink);
}
blockquote p:last-child {
  margin-bottom:0;
}
.article code {
  font-size:.93em;
  overflow-wrap:anywhere;
  color:var(--ink);
  background:transparent;
  padding:0;
}
.article pre {
  white-space:pre;
  overflow:auto;
  max-width:100%;
  padding:1rem;
  border-block:1px solid var(--rule);
  font-size:.87rem;
}
.wu-wide-media {
  margin:2rem 0;
}
.wu-wide-media iframe {
  width:100%;
  min-height:400px;
  border:0;
}
.wu-image {
  max-width:100%;
  margin:.5rem 0 1.2rem;
}
.wu-image img {
  display:block;
  width:100%;
  height:auto;
}
.wu-image--right {
  float:right;
  margin-left:1.5rem;
  shape-outside:inset(0);
}
.wu-image--left {
  float:left;
  clear:left;
  margin-right:1.5rem;
  shape-outside:inset(0);
}
.wu-image--full {
  clear:both;
  width:100%;
}
.wu-image--portrait:not(.wu-image--full) img {
  max-height:32rem;
  object-fit:contain;
  object-position:left top;
}
.process-menu-gallery {
  display:flex;
  float:left;
  gap:.65rem;
  width:min(44%,22rem);
  margin:.5rem 1.5rem 1.2rem 0;
}
.process-menu-gallery .wu-image {
  float:none;
  flex:1;
  min-width:0;
  width:calc(50% - .325rem)!important;
  margin:0;
}
.process-menu-gallery .wu-image img {
  max-height:32rem;
}
.image-pair {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  clear:both;
  margin:1.2rem 0;
}
.image-pair .wu-image {
  float:none;
  width:100%!important;
  margin:0;
}
.article :is(h3,h4):has(+ .wu-image) { clear:both; }
.wu-image__open {
  display:block;
  cursor:zoom-in;
}
.wu-image__open:focus-visible {
  outline:3px solid var(--ink);
  outline-offset:5px;
}
.worldbuilding-page .article h2,
.worldbuilding-page .article h3,
.worldbuilding-page .article h4 {
  clear:both;
}
.worldbuilding-page .article::after {
  content:"";
  display:block;
  clear:both;
}
.wu-lightbox-open {
  overflow:hidden;
}
.wu-lightbox {
  width:min(1400px,92vw);
  max-width:92vw;
  max-height:92vh;
  max-height:92dvh;
  box-sizing:border-box;
  margin:auto;
  padding:1rem;
  border:1px solid var(--rule);
  background:#191c1c;
  color:#f4f0e4;
}
.wu-lightbox[open] {
  display:flex;
  flex-direction:column;
  gap:.8rem;
}
.wu-lightbox::backdrop {
  background:rgba(10,12,13,.88);
}
.wu-lightbox__controls {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.wu-lightbox__controls a {
  color:inherit;
}
.wu-lightbox__close {
  font:inherit;
  color:inherit;
  background:transparent;
  border:1px solid currentColor;
  padding:.45rem .8rem;
  cursor:pointer;
}
.wu-lightbox figure {
  margin:0;
  min-height:0;
}
.wu-lightbox img {
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:calc(92vh - 10rem);
  max-height:calc(92dvh - 10rem);
  margin:auto;
  object-fit:contain;
}
.wu-lightbox figcaption {
  margin:.65rem 0 0;
  font-size:.85rem;
  line-height:1.5;
}
@media (max-width:900px) {
  .worldbuilding-page .wu-image--portrait {
    max-width:22rem;
    margin-inline:auto;
  }
  .worldbuilding-page .wu-image--strip {
    max-width:12rem;
  }
}
@media print {
  .wu-lightbox {
    display:none!important;
  }
}
.wu-image figcaption,.wu-video figcaption {
  font-size:.7rem;
  color:var(--muted);
  line-height:1.6;
  margin-top:.6rem;
}
.wu-video {
  clear:both;
  margin:1.5rem 0;
}
.wu-video>div {
  position:relative;
  aspect-ratio:16/9;
}
.wu-video iframe {
  position:absolute;
  width:100%;
  height:100%;
  border:0;
}
.hand,.wu-theme .hand * {
  font:400 1.5rem/1.3 Caveat,cursive;
  color:#676858;
  transform:rotate(-3deg);
}
[data-wu-page=home] .content {
  padding-block:2.5rem 3.5rem;
}
.hero {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:2rem;
  position:relative;
  margin:0 0 2rem;
}
.hero h1 {
  font-size:clamp(2.7rem,5vw,4.4rem);
  margin:1rem 0 1.4rem;
  max-width:10ch;
}
.hero .lead {
  font-size:1.15rem;
  line-height:1.8;
  max-width:72ch;
}
.eyebrow {
  font-size:.68rem;
  line-height:1.6;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--muted);
}
.wu-hero-media {
  width:100%;
  margin:1rem 0 1.8rem;
  shape-outside:inset(0);
}
.wu-hero-media__link {
  display:block;
  cursor:zoom-in;
  background:#252620;
  aspect-ratio:16/9;
}
.wu-hero-media img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.wu-hero-controls {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.3rem;
  margin:.4rem 0 0;
}
.wu-hero-controls button {
  color:var(--muted);
  font-size:.65rem;
  min-height:44px;
  padding:.3rem;
  text-decoration:underline;
  text-underline-offset:.25em;
}
.wu-hero-step {
  min-width:44px;
}
.hero-carousel-dialog img {
  object-fit:contain;
}
.hero-carousel-dialog__stage {
  position:relative;
  width:fit-content;
  width:min(100%,var(--hero-image-width,1400px),calc((92vh - 10rem) * var(--hero-image-ratio,1.777778)));
  width:min(100%,var(--hero-image-width,1400px),calc((92dvh - 10rem) * var(--hero-image-ratio,1.777778)));
  max-width:100%;
  margin-inline:auto;
}
.hero-carousel-dialog__stage img {
  width:100%;
  height:auto;
}
.hero-carousel-dialog__nav {
  position:absolute;
  top:50%;
  z-index:1;
  transform:translateY(-50%);
  min-width:44px;
  min-height:52px;
  padding:.25rem;
  border-radius:3px;
  background:#10141599;
  color:#fff;
  font-size:1rem;
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease;
}
.hero-carousel-dialog__previous {
  left:.5rem;
}
.hero-carousel-dialog__next {
  right:.5rem;
}
.hero-carousel-dialog__nav:hover {
  background:#101415cc;
  color:#fff;
}
.hero-carousel-dialog__stage:hover .hero-carousel-dialog__nav,
.hero-carousel-dialog__nav:focus-visible {
  opacity:1;
  pointer-events:auto;
}
.hero-carousel-dialog__stage:has(:focus-visible) .hero-carousel-dialog__nav {
  opacity:1;
  pointer-events:auto;
}
.hero-carousel-dialog__nav:focus-visible {
  outline:2px solid #fff;
  outline-offset:3px;
}
@media (hover:none) {
  .hero-carousel-dialog__nav {
    opacity:1;
    pointer-events:auto;
  }
}
.hero-actions {
  display:flex;
  gap:1.5rem;
  flex-wrap:wrap;
  align-items:center;
  margin-top:1.6rem;
}
.button {
  display:inline-block;
  border-block:1px solid var(--rule);
  color:var(--indigo);
  text-decoration:none;
  padding:.65rem .3rem;
  font-size:.85rem;
}
.button:hover {
  text-decoration:underline;
}
.button--quiet {
  border-color:transparent;
}
.wu-connect {
  display:flex;
  align-items:center;
  gap:1.2rem;
  flex-wrap:wrap;
  border-block:2px solid var(--indigo);
  background:#fff5;
  padding:1.4rem 1.5rem;
  margin:2rem 0;
  font-size:.95rem;
}
.wu-connect__details {
  flex:1 1 17rem;
  min-width:0;
}
.wu-connect h2 {
  font-size:1.2rem;
  margin:0 0 .4rem;
}
.wu-connect p {
  margin:0;
}
.wu-connect code {
  user-select:all;
  font-size:clamp(1.1rem,2.4vw,1.75rem);
  overflow-wrap:anywhere;
}
.wu-connect__actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.5rem .85rem;
}
.wu-connect .wu-copy {
  border:1px solid var(--rule);
  padding:.65rem .85rem;
  font-size:.8rem;
  text-decoration:none;
}
.wu-connect .button--connect {
  background:var(--indigo);
  border:1px solid var(--indigo);
  color:var(--paper);
  padding:.65rem .85rem;
  font-size:.8rem;
}
.wu-connect .wu-copy-status {
  flex-basis:100%;
}
.wu-copy,.command-copy {
  font-size:.7rem;
  text-decoration:underline;
  text-decoration-style:dotted;
  text-underline-offset:.3em;
  padding:.3rem 0;
  min-height:44px;
  color:var(--indigo);
}
.wu-copy-status,.command-copy-status {
  font-size:.68rem;
  color:var(--muted);
}
.feature-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0 2rem;
  margin:2rem 0 3rem;
}
.feature-card {
  display:block;
  border-top:1px solid var(--rule);
  padding:1.4rem 0;
  text-decoration:none;
  color:var(--ink);
}
.feature-card strong {
  font-size:1.3rem;
  line-height:1.4;
  display:block;
  margin-bottom:.6rem;
}
.feature-copy {
  font-size:.9rem;
  line-height:1.8;
  color:var(--muted);
}
.feature-copy p {
  margin:0;
}
.feature-card:hover strong {
  text-decoration:underline;
}
/* Catalogs are ruled reference entries on the same continuous paper. */
.catalog-index {
  border-block:1px solid var(--rule);
  padding:1.2rem 0;
  margin:2rem 0;
}
.catalog-index>strong {
  display:block;
  font-size:.8rem;
  margin-bottom:.7rem;
  color:var(--muted);
}
.catalog-index>div {
  display:flex;
  flex-wrap:wrap;
  gap:.35rem 1.2rem;
}
.catalog-index a {
  display:inline-flex;
  gap:.4rem;
  max-width:100%;
  font-size:.8rem;
  padding:.25rem 0;
  overflow-wrap:anywhere;
}
.catalog-index a span {
  color:var(--muted);
}
.catalog-entry {
  position:relative;
  display:flow-root;
  border-top:1px solid var(--rule);
  padding:2.3rem 0;
  margin:0;
  clear:both;
}
.catalog-entry:is(.catalog-entry--item,.catalog-entry--book,.catalog-entry--recipe,.catalog-entry--currency,.catalog-entry--service,.catalog-entry--inhabitant) {
  border-top:0;
}
.catalog-entry h3 {
  font-size:1.6rem;
  margin:0 0 1.3rem;
}
.catalog-entry p {
  font-size:.91rem;
  line-height:1.85;
  margin:0 0 .9rem;
}
.catalog-entry .wu-narrative {
  max-width:72ch;
}
.catalog-entry--compact .wu-narrative {
  max-width:64ch;
}
.catalog-entry--inhabitant .wu-narrative {
  max-width:none;
}
.catalog-entry:is(.catalog-entry--item,.catalog-entry--book,.catalog-entry--recipe,.catalog-entry--currency,.catalog-entry--service)>.wu-narrative {
  display:block;
}
.catalog-entry__icon {
  float:left;
  width:142.5px;
  height:142.5px;
  max-width:40%;
  object-fit:contain;
  margin:0 1.5rem 1.2rem 0;
  mix-blend-mode:darken;
}
.catalog-entry__icon--text {
  font-size:2.6rem;
  line-height:142.5px;
  text-align:center;
  color:var(--muted);
}
.record-field>strong:first-child {
  color:#64604f;
  text-decoration:none;
}
.record-facts {
  font-size:.89rem;
}
/* The entry contains the portrait float. Long fish observations regain their
   full measure below it instead of reserving an empty image column throughout. */
.catalog-entry--fish>.wu-narrative {
  display:block;
}
.back-to-browse {
  display:block;
  width:fit-content;
  margin-top:1.2rem;
  font-size:.66rem;
  line-height:1.8;
  color:var(--muted);
}
.catalog-entry--compact {
  padding-block:1.5rem;
}
.catalog-entry--compact h3 {
  font-size:1.35rem;
  margin-bottom:.8rem;
}
.catalog-entry--achievement .record-field--criterion {
  border-left:1px solid var(--rule);
  padding-left:1rem;
}
.published-command {
  display:none;
}
.wu-chat-command,.wu-chat-command:hover,.wu-chat-command:visited {
  color:inherit;
  cursor:help;
  text-decoration-line:underline;
  text-decoration-style:dashed;
  text-decoration-thickness:1px;
  text-underline-offset:.22em;
}
.wu-chat-command:focus-visible {
  outline:1px dashed var(--ink);
  outline-offset:3px;
}
.catalog-entry--command code {
  font-size:.95em;
}
.catalog-entry--command h3 {
  overflow-wrap:anywhere;
}
.command-copy {
  display:inline-block;
  margin-right:1rem;
}
.command-copy-feedback {
  font-size:.7rem;
  color:var(--muted);
}
.recipe-ledger {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:1rem 2rem;
  clear:both;
  margin-top:1.5rem;
}
.recipe-prerequisites,.recipe-ingredients,.recipe-conditions {
  min-width:0;
}
.recipe-conditions {
  grid-column:1/-1;
  border-top:1px solid var(--rule);
  padding-top:1rem;
}
.ingredient-ledger {
  list-style:none;
  padding:0;
  margin:.5rem 0 1rem;
  border-top:1px solid var(--rule);
  font-size:.87rem;
}
.ingredient-ledger li {
  padding:.5rem 0;
  border-bottom:1px solid var(--rule);
  margin:0;
}
.recipe-manuals {
  margin:1rem 0;
  font-size:.75rem;
}
.recipe-manuals>strong {
  display:block;
  font-size:.64rem;
  letter-spacing:.06em;
  color:var(--muted);
  margin-bottom:.6rem;
  text-decoration:none;
}
.recipe-manuals>div {
  display:flex;
  gap:.7rem;
  flex-wrap:wrap;
}
.recipe-manuals a {
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  font-size:.75rem;
  max-width:100%;
}
.recipe-manuals img {
  width:44px;
  height:44px;
  object-fit:contain;
  mix-blend-mode:darken;
}
.catalog-entry--recipe .recipe-manuals img {
  width:66px;
  height:66px;
  flex:none;
}
.wu-entry-layout {
  display:flow-root;
}
.wu-entry-story,.wu-entry-reference {
  display:block;
  min-width:0;
}
.wu-entry-reference {
  padding:0;
}
.wu-entry-reference p {
  font-size:.89rem;
  line-height:1.85;
}
.inhabitant-portrait {
  float:left;
  width:151.2px;
  max-width:21.84%;
  margin:0 1rem 1.1rem 0;
}
.inhabitant-portrait img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:3/4;
  object-fit:contain;
  mix-blend-mode:normal;
}
.book-bibliography {
  display:block;
}
.book-content.publication {
  clear:both;
  max-width:680px;
  margin:1.8rem auto 1rem;
  padding:1.8rem 1.5rem;
  border-block:1px solid var(--rule);
  background:#fff3;
}
.publication p {
  font-size:.94rem;
  line-height:1.95;
  margin-bottom:1.3rem;
}
.publication :is(h4,h5,h6) {
  font-size:1.3rem;
  margin-top:2rem;
}
.publication ul,.publication ol {
  font-size:.91rem;
}
.publication> :first-child {
  margin-top:0;
}
.publication-fold {
  margin-top:1.3rem;
}
.publication-fold>summary {
  padding:.6rem 0;
  font-size:.82rem;
}
.publication-fold[open]>summary {
  margin-bottom:1.5rem;
}
.wu-table-scroll {
  max-width:100%;
  overflow:auto;
  margin:1.5rem 0;
  scrollbar-width:thin;
  scrollbar-color:#8a8373 transparent;
}
.wu-table-scroll table {
  border-collapse:collapse;
  width:100%;
  min-width:620px;
  text-align:left;
  font-size:.78rem;
  line-height:1.8;
}
.wu-table-scroll caption {
  font-size:.72rem;
  text-align:left;
  color:var(--muted);
  margin-bottom:1rem;
}
.wu-table-scroll :is(th,td) {
  border-bottom:1px solid var(--rule);
  padding:.8rem .9rem;
  vertical-align:top;
}
.wu-table-scroll thead th {
  border-top:1px solid #7b7563;
  border-bottom:1px solid #7b7563;
  color:var(--muted);
  font-size:.7rem;
}
.wu-table-scroll :is(th,td):first-child {
  padding-left:0;
}
/* Compact reference catalogs retain complete, directly readable record rows. */
.wu-table-scroll .catalog-table {
  table-layout:fixed;
  font-size:.9rem;
  line-height:1.6;
}
.catalog-table caption {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
}
.catalog-table .catalog-entry {
  display:table-row;
  position:static;
  clear:none;
  border:0;
  padding:0;
  margin:0;
}
.catalog-table .location-identity {
  display:block;
}
.catalog-table .location-variant-heading {
  display:inline;
  margin:0;
  font:inherit;
  letter-spacing:normal;
}
.catalog-table .location-identity + .location-identity {
  margin-top:.25rem;
}
.catalog-table :is(th,td) {
  padding:.65rem .8rem;
  overflow-wrap:anywhere;
}
.catalog-table th[scope=row],
.catalog-table thead th:first-child {
  width:23%;
}
.catalog-table .catalog-table__name {
  margin:0;
  font-size:inherit;
  line-height:1.6;
  letter-spacing:normal;
}
.catalog-table .catalog-entry p {
  margin:0 0 .4rem;
  font-size:inherit;
  line-height:inherit;
}
.catalog-table .catalog-entry p:last-child {
  margin-bottom:0;
}
.catalog-table__narrative:empty {
  display:none;
}
.catalog-table__narrative:not(:empty) {
  margin-top:.45rem;
}
.catalog-table--automatic-skills :is(th,td):last-child {
  width:5.5rem;
  text-align:center;
}
.catalog-table--learned-skills :is(th,td):last-child {
  width:30%;
}
.catalog-table--encounter-locations :is(th,td):first-child { width:40%; }
.catalog-table--encounter-locations :is(th,td):last-child { width:60%; }
.catalog-table--achievements :is(th,td):last-child {
  width:24%;
}
.catalog-table__books,
.catalog-table__books>div {
  margin:0;
}
.catalog-table__books a {
  align-items:center;
  gap:.5rem;
  max-width:100%;
  font-size:inherit;
}
.catalog-table__books img {
  flex:0 0 36px;
  width:36px;
  height:36px;
  object-fit:contain;
}
.field-checklist {
  list-style:none;
  padding:0;
  counter-reset:steps;
}
.field-checklist li {
  counter-increment:steps;
  margin:1.2rem 0;
}
.field-checklist label {
  display:flex;
  gap:1rem;
  align-items:baseline;
}
.field-checklist label:before {
  content:counter(steps,decimal-leading-zero);
  font-size:.7rem;
  color:var(--muted);
}
.field-checklist input {
  flex:0 0 auto;
  accent-color:var(--indigo);
}
.field-warning {
  border-block:1px solid var(--rule);
  padding:1.5rem 0 .5rem;
  margin:2rem 0;
}
.field-warning>strong {
  display:block;
  color:#72583d;
  margin-bottom:1rem;
}
.article>.wu-narrative>ol>li {
  padding-left:.4rem;
  margin-bottom:1rem;
}
/* Explicit opt-in composition; shape polygons are derived during the build. */
.flow-demo {
  display:flow-root;
}
.flow-image {
  float:right;
  width:43%;
  max-width:365px;
  margin:0 0 1rem 1.1rem;
  shape-outside:inset(0);
}
.flow-image img {
  display:block;
  width:100%;
  height:auto;
}
.flow-alpha .flow-image,.wu-image--alpha {
  shape-margin:1.1rem;
  shape-image-threshold:.12;
}
.flow-caption {
  clear:both;
  font-size:.68rem;
  color:var(--muted);
  padding-top:.8rem;
}
.paper-marks {
  position:absolute;
  inset:0;
  pointer-events:none;
  user-select:none;
  overflow:hidden;
}
.ink-speck {
  position:absolute;
  right:13px;
  top:145px;
  font:85px/1 Splatter;
  color:#383952;
  opacity:.14;
  transform:rotate(21deg);
}
.ink-speck-small {
  position:absolute;
  left:19px;
  top:760px;
  font:28px/1 Splatter;
  color:#34375a;
  opacity:.22;
  transform:rotate(-18deg);
}
.handled-edge {
  position:absolute;
  right:-90px;
  bottom:15px;
  font:370px/1 Wear;
  color:#6c5845;
  opacity:.045;
  transform:rotate(19deg);
}
.record-field>p>strong:first-child {
  color:#64604f;
  text-decoration:none;
}
.ingredient-ledger>ul {
  list-style:none;
  margin:0;
  padding:0;
}
.catalog-entry--achievement .achievement-criterion {
  border-left:1px solid var(--rule);
  padding-left:1rem;
}
.command-copy>[role=status] {
  font-size:.68rem;
  color:var(--muted);
}
/* Search enhances canonical links; every chapter remains directly readable. */
.guide-search {
  padding:1.6rem 3.3rem;
  border-bottom:1px solid var(--rule);
}
.guide-search label {
  font-size:.85rem;
}
.search-line {
  display:flex;
  align-items:center;
  gap:1rem;
}
.search-line input {
  width:100%;
  min-width:0;
  background:transparent;
  border:0;
  border-bottom:1px solid var(--muted);
  border-radius:0;
  padding:.7rem 0;
}
.search-line button {
  font-size:.76rem;
  min-height:44px;
  color:var(--indigo);
}
.search-status {
  font-size:.7rem;
  color:var(--muted);
  margin:.8rem 0;
}
.search-results {
  list-style:none;
  padding:0;
  margin:0;
  max-height:55vh;
  overflow:auto;
}
.search-results li {
  border-top:1px solid var(--rule);
  padding:.7rem 0;
}
.search-results a {
  font-size:1rem;
}
.search-results p {
  font-size:.76rem;
  color:var(--muted);
  margin:.3rem 0 0;
}
@media(max-width:1150px) {
  .site-header {
    gap:1rem;
  }
  .top-links {
    gap:.85rem;
  }
  .site-shell {
    grid-template-columns:190px minmax(0,1fr);
  }
  .site-header,.site-shell,.guide-search,.site-footer {
    padding-inline:2rem;
  }
  .content {
    padding-left:2rem;
  }
  .inhabitant-portrait {
    width:119.7px;
  }
  .hero .lead {
    font-size:1rem;
  }
}
@media(max-width:900px) {
  .site-header {
    flex-wrap:wrap;
    align-items:center;
    padding-block:1rem;
  }
  .brand {
    width:224px;
  }
  .site-shell {
    display:block;
  }
  .sidebar {
    position:static;
    max-height:none;
    border:0;
    padding:1.5rem 0;
  }
  .content {
    padding:2rem 0;
  }
  .top-links {
    width:100%;
    justify-content:flex-start;
    gap:1rem;
    margin:0;
  }
  .top-links a,.top-links button {
    font-size:.9rem;
  }
  .wu-enhanced .nav-toggle {
    display:block;
    margin-left:auto;
  }
  .wu-enhanced .top-links {
    display:none;
  }
  .wu-enhanced .top-links.is-open {
    display:flex;
  }
  .wu-enhanced .sidebar {
    display:none;
  }
  .wu-enhanced .sidebar.is-open {
    display:block;
  }
  .wu-enhanced:is([data-wu-page=guide],[data-wu-page=home]) .wu-topics {
    display:block;
    border-bottom:1px solid var(--rule);
    padding:.8rem 0;
    color:var(--indigo);
    min-height:44px;
    font-size:.8rem;
  }
  .feature-grid {
    grid-template-columns:1fr 1fr;
  }
  .site-footer {
    font-size:.65rem;
  }
  .wu-hero-media {
    width:100%;
    margin-left:0;
  }
}
@media(max-width:700px) {
  .hero { grid-template-columns:minmax(0,1fr); gap:1rem; }
  body.wu-theme {
    font-size:17px;
  }
  .site-header,.site-shell,.guide-search,.site-footer {
    padding-inline:23px;
  }
  .site-header {
    gap:.6rem;
  }
  .brand {
    width:200px;
  }
  .breadcrumbs {
    font-size:.72rem;
    margin-bottom:1.6rem;
  }
  h1 {
    font-size:2.3rem;
  }
  h2 {
    font-size:1.7rem;
  }
  h3 {
    font-size:1.45rem;
  }
  .article p {
    line-height:1.85;
  }
  [data-wu-page=article] .content {
    padding:2.4rem 0;
  }
  [data-wu-page=home] .content {
    padding:2rem 0;
  }
  .hero h1 {
    font-size:2.7rem;
  }
  .wu-hero-media {
    float:none;
    width:100%;
    margin:0 0 2rem;
  }
  .hero .lead {
    font-size:1.05rem;
  }
  .hero-actions {
    gap:.7rem 1rem;
  }
  .button {
    font-size:.8rem;
  }
  .feature-grid {
    grid-template-columns:1fr;
  }
  .feature-card {
    padding:1.4rem 0;
  }
  .wu-connect {
    gap:.6rem 1rem;
  }
  .catalog-index a {
    min-height:44px;
    align-items:center;
  }
  .catalog-entry {
    padding:1.8rem 0;
  }
  .catalog-entry h3 {
    font-size:1.5rem;
  }
  .catalog-entry__icon {
    width:112.5px;
    height:112.5px;
    margin-right:1rem;
  }
  .catalog-entry p {
    font-size:.94rem;
  }
  .recipe-ledger {
    display:block;
  }
  .recipe-ingredients {
    margin-top:1.5rem;
  }
  .recipe-conditions {
    margin-top:1rem;
  }
  .inhabitant-portrait {
    max-width:15.96%;
    margin-right:.75rem;
  }
  .book-content.publication {
    padding:1.5rem .45rem;
  }
  .wu-image,.flow-image {
    float:none!important;
    shape-outside:none!important;
    width:100%!important;
    max-width:100%;
    margin:1rem 0 1.5rem;
  }
  .site-footer {
    display:block;
  }
  .site-footer p {
    margin-bottom:.6rem;
  }
  .search-line {
    gap:.6rem;
  }
  .search-line input {
    font-size:.9rem;
  }
  .search-line button {
    font-size:.7rem;
  }
  .page-turn {
    font-size:.8rem;
  }
}
@media(prefers-reduced-motion:reduce) {
  :root {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
  }
}
@media print {
  :root {
    color-scheme:light;
  }
  body.wu-theme {
    background:white;
    color:#222;
    font-size:11pt;
  }
  .site-header,.sidebar,.wu-topics,.breadcrumbs,.page-turn,.site-footer,.paper-marks,.guide-search,.back-to-browse,.wu-copy,.command-copy,.hero-actions,.skip-link {
    display:none!important;
  }
  .site-shell {
    display:block;
    padding:0;
    max-width:none;
  }
  .content,[data-wu-page=article] .content,[data-wu-page=home] .content {
    max-width:none;
    padding:0;
  }
  .catalog-entry {
    break-inside:auto;
  }
  .catalog-entry h3,.article h2,.article h3 {
    break-after:avoid;
  }
  .wu-table-scroll {
    overflow:visible;
  }
  .wu-table-scroll table {
    min-width:0;
  }
  .wu-entry-layout,.recipe-ledger {
    display:block;
  }
  .wu-entry-reference {
    border:0;
    padding:0;
  }
  .publication {
    max-width:none!important;
    background:none!important;
  }
  .publication-fold::details-content {
    content-visibility:visible;
    display:block;
  }
  .publication-fold>summary {
    display:none;
  }
  .flow-image,img {
    break-inside:avoid;
  }
  .tw-counter {
    display:none;
  }
  .wu-theme a {
    color:inherit;
  }
}

/* Paragraph-only facts share the illustration's reading flow. Full-width
   tables and the next topic end it, independently of editorial ownership. */
.article > [data-wu-region="narrative"] > h2,
.guide-mechanics > .wu-table-scroll { clear:both; }
.guide-mechanics { margin-block:1.25rem; }
.guide-mechanics caption { text-align:left; margin-block:.5rem; }
.guide-mechanics td { vertical-align:top; }
.legacy-target { font-size:.85em; }
[data-wu-legacy-destination],.legacy-compatibility > .legacy-target { display:none; }
:target > [data-wu-legacy-destination],
:target + [data-wu-legacy-destination],
.legacy-compatibility > .legacy-target:target { display:block; margin-block:.6rem; }
.legacy-target:target:has(> [data-wu-legacy-destination]) { display:block; }
.service-directory { clear:both; margin-top:2rem; }
@media (max-width:700px) {
  .process-menu-gallery {
    float:none;
    width:min(100%,22rem);
    margin:1rem 0;
  }
  .process-menu-gallery .wu-image { width:calc(50% - .325rem)!important; }
  .image-pair { grid-template-columns:minmax(0,1fr); }
}
