/* Password b0.85 — shared layout and component styles; palettes load separately. */

/* Design tokens */

:root {
  --pw-font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;
  --pw-font-mono: "SFMono-Regular", "SF Mono", "Cascadia Code", "JetBrains Mono", "Noto Sans Mono CJK SC", Consolas, monospace;
  --pw-radius-sm: 6px;
  --pw-radius-md: 10px;
  --pw-radius-lg: 14px;
  --pw-shadow-soft: 0 1px 2px rgb(25 30 35 / 0.04);
  --pw-shadow-float: 0 8px 28px rgb(25 30 35 / 0.08);
  --pw-transition: 150ms ease;
}

body.quarto-light,
.quarto-light body {
  --pw-bg: #ffffff;
  --pw-surface: #ffffff;
  --pw-surface-soft: #f8f9fa;
  --pw-surface-hover: #f1f3f5;
  --pw-text: #292b2f;
  --pw-text-soft: #666862;
  --pw-text-faint: #87847d;
  --pw-primary: #40566a;
  --pw-primary-hover: #2f4354;
  --pw-primary-soft: #e7edf1;
  --pw-accent: #b58242;
  --pw-accent-hover: #94682f;
  --pw-accent-soft: rgb(181 130 66 / 0.13);
  --pw-border: #dee2e6;
  --pw-border-strong: #cfd4da;
  --pw-code-bg: #f3f4f6;
  --pw-code-text: #7346a8;
  --pw-table-head: #f3f4f6;
  --pw-table-stripe: #fafbfc;
  --pw-table-hover: #f5f6f7;
  --pw-note-bg: #edf3f6;
  --pw-note-border: #718fa2;
  --pw-tip-bg: #eef5ef;
  --pw-tip-border: #6f9475;
  --pw-warning-bg: #fbf2e6;
  --pw-warning-border: #b87b37;
  --pw-important-bg: #f8ece9;
  --pw-important-border: #a85f52;
  --pw-caution-bg: #f7e9e9;
  --pw-caution-border: #a84d4d;
  --pw-heading-3: #62574d;
}

/* Base document styles */
html { scroll-behavior: smooth; }

body {
  background: var(--pw-bg);
  color: var(--pw-text);
  font-family: var(--pw-font-sans);
  letter-spacing: 0.006em;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

#quarto-content { background: var(--pw-surface); }
main.content { padding-top: 2.25rem; padding-bottom: 4rem; }
main.content > :first-child { margin-top: 0; }
p, li, dd, td, th { color: var(--pw-text); }
strong { font-weight: 650; }
hr { border-color: var(--pw-border); opacity: 1; margin: 2.25rem 0; }
::selection { background: var(--pw-accent-soft); color: var(--pw-text); }

a {
  color: var(--pw-primary);
  text-decoration-color: color-mix(in srgb, var(--pw-primary) 38%, transparent);
  text-underline-offset: 0.16em;
  text-decoration-thickness: 0.075em;
  transition: color var(--pw-transition), text-decoration-color var(--pw-transition);
}

a:hover, a:focus-visible { color: var(--pw-accent-hover); text-decoration-color: currentColor; }
main.content a:not(.anchorjs-link):not(.nav-link):not(.btn) { font-weight: 520; }

.quarto-title-block { margin-bottom: 2.2rem; }
.quarto-title .subtitle, .description {
  color: var(--pw-text-soft);
  font-size: 1.04rem;
  line-height: 1.65;
  max-width: 52rem;
}

main.content h2 {
  position: relative;
  color: var(--pw-text);
  line-height: 1.35;
  letter-spacing: -0.012em;
  margin-top: 3.25rem;
  margin-bottom: 1.15rem;
  padding: 0 0 0.58rem 0.9rem;
  border-bottom: 1px solid var(--pw-border);
}
main.content h2::before {
  content: "";
  position: absolute;
  top: 0.18em;
  bottom: 0.72em;
  border-radius: 999px;
}
main.content h3 {
  color: var(--pw-primary);
  line-height: 1.45;
  margin-bottom: 0.75rem;
}
main.content h4 {
  color: var(--pw-text);
  font-size: 1.02rem;
  font-weight: 680;
  margin-top: 1.7rem;
  margin-bottom: 0.55rem;
}
h1 .anchorjs-link, h2 .anchorjs-link, h3 .anchorjs-link, h4 .anchorjs-link {
  color: var(--pw-text-faint) !important;
  opacity: 0;
  transition: opacity var(--pw-transition);
}
h1:hover .anchorjs-link, h2:hover .anchorjs-link, h3:hover .anchorjs-link, h4:hover .anchorjs-link { opacity: 0.65; }

.navbar-brand { letter-spacing: 0.01em; }
.navbar .nav-link, .navbar .dropdown-toggle, .navbar .quarto-navbar-tools .quarto-navigation-tool {
  font-weight: 540;
}
.navbar .nav-link:hover, .navbar .nav-link:focus, .navbar .dropdown-toggle:hover { color: #fff !important; }
.navbar .dropdown-menu {
  border: 1px solid var(--pw-border);
  border-radius: var(--pw-radius-md);
  box-shadow: var(--pw-shadow-float);
  padding: 0.45rem;
}
.navbar .dropdown-item { color: var(--pw-text); border-radius: var(--pw-radius-sm); padding: 0.52rem 0.75rem; }
.navbar .dropdown-item:hover, .navbar .dropdown-item:focus, .navbar .dropdown-item.active {
  color: var(--pw-primary-hover);
  background: var(--pw-primary-soft);
}

#quarto-sidebar { background: var(--pw-surface-soft); border-right: 1px solid var(--pw-border); }
.sidebar { color: var(--pw-text-soft); }
.sidebar-navigation { padding-top: 1.25rem; }
.sidebar-section { margin-bottom: 0.5rem; }
.sidebar-item .sidebar-link {
  color: var(--pw-text-soft);
}
.sidebar-item .sidebar-link.active {
  color: var(--pw-primary-hover);
  background: var(--pw-surface-hover);
  border-left-color: var(--pw-accent);
  font-weight: 670;
}
.sidebar-item-toggle { color: var(--pw-text-faint); }

#quarto-margin-sidebar { color: var(--pw-text-soft); }
#TOC { border-left: 1px solid var(--pw-border); padding-left: 0.8rem; }
#TOC .nav-link {
  color: var(--pw-text-soft);
  line-height: 1.45;
  border-left: 2px solid transparent;
  margin-left: -0.86rem;
  padding: 0.28rem 0 0.28rem 0.72rem;
}
#TOC .nav-link:hover { color: var(--pw-primary); }
#TOC .nav-link.active { color: var(--pw-primary-hover); border-left-color: var(--pw-accent); font-weight: 650; }
.sidebar nav[role="doc-toc"] > h2, .sidebar nav[role="doc-toc"] > .h2 {
  color: var(--pw-text);
  font-size: 0.92rem;
  font-weight: 700;
  margin-bottom: 0.65rem;
}

.table, main.content table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--pw-text);
  width: 100%;
  margin: 1.35rem 0 1.8rem;
  color: var(--pw-text);
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--pw-border);
  border-radius: var(--pw-radius-md);
  overflow: hidden;
  box-shadow: var(--pw-shadow-soft);
}
.table > thead, main.content table > thead { background: var(--pw-table-head); }
.table > thead > tr > th, main.content table > thead > tr > th {
  color: var(--pw-text);
  font-weight: 690;
  letter-spacing: 0.01em;
  border-bottom: 1px solid var(--pw-border-strong);
  padding: 0.72rem 0.78rem;
  vertical-align: bottom;
}
.table > tbody > tr > td, main.content table > tbody > tr > td {
  padding: 0.67rem 0.78rem;
  border-bottom: 1px solid var(--pw-border);
  vertical-align: top;
}
.table > tbody > tr:last-child > td, main.content table > tbody > tr:last-child > td { border-bottom: 0; }
.table > tbody > tr:nth-child(even), main.content table > tbody > tr:nth-child(even) { background: var(--pw-table-stripe); }
.table > tbody > tr:hover, main.content table > tbody > tr:hover { background: var(--pw-table-hover); }
.quarto-table-container, .table-responsive {
  border-radius: var(--pw-radius-md);
  scrollbar-color: var(--pw-border-strong) transparent;
}

code { font-family: var(--pw-font-mono); }
:not(pre) > code {
  color: var(--pw-code-text);
  background: var(--pw-code-bg);
  border: 1px solid color-mix(in srgb, var(--pw-border) 72%, transparent);
  border-radius: 4px;
  padding: 0.12em 0.32em;
  font-size: 0.9em;
  font-weight: 520;
}
div.sourceCode, pre { border: 1px solid var(--pw-border); border-radius: var(--pw-radius-md); box-shadow: var(--pw-shadow-soft); }
pre { background: var(--pw-code-bg); padding: 1rem 1.05rem; }
pre code { color: var(--pw-text); font-size: 0.9rem; line-height: 1.65; }
.code-copy-button { color: var(--pw-text-soft); border-radius: var(--pw-radius-sm); }
.code-copy-button:hover { color: var(--pw-primary); background: var(--pw-surface-hover); }

.callout .callout-header, .callout .callout-title-container { font-size: 0.95rem; font-weight: 700; }
.callout .callout-body-container { font-size: 0.95rem; line-height: 1.72; }
.callout .callout-body-container > :last-child { margin-bottom: 0; }

main.content details {
  background: var(--pw-surface-soft);
  border: 1px solid var(--pw-border);
  border-radius: var(--pw-radius-md);
  margin: 0.8rem 0;
  padding: 0;
  overflow: clip;
  transition: border-color var(--pw-transition), background-color var(--pw-transition);
}
main.content details:hover { border-color: var(--pw-border-strong); }
main.content details[open] { background: var(--pw-surface); border-color: color-mix(in srgb, var(--pw-accent) 58%, var(--pw-border)); }
main.content details > summary {
  color: var(--pw-primary);
  cursor: pointer;
  list-style: none;
  font-weight: 680;
  padding: 0.72rem 0.9rem;
  user-select: none;
}
main.content details > summary::-webkit-details-marker { display: none; }
main.content details > summary::before {
  content: "▸";
  display: inline-block;
  color: var(--pw-accent);
  margin-right: 0.52rem;
  transform-origin: center;
  transition: transform var(--pw-transition);
}
main.content details[open] > summary::before { transform: rotate(90deg); }
main.content details > :not(summary) { margin-left: 0.95rem; margin-right: 0.95rem; }
main.content details > :last-child { margin-bottom: 0.9rem; }

main.content ul, main.content ol { padding-left: 1.5rem; }
main.content li { margin-bottom: 0.26rem; }
main.content li::marker { color: var(--pw-accent); }
blockquote {
  color: var(--pw-text-soft);
  background: var(--pw-surface-soft);
  border-left: 4px solid var(--pw-accent);
  border-radius: 0 var(--pw-radius-sm) var(--pw-radius-sm) 0;
  margin: 1.35rem 0;
  padding: 0.8rem 1rem;
}
blockquote > :last-child { margin-bottom: 0; }

main.content img { border-radius: var(--pw-radius-sm); }
main.content figure { margin: 1.6rem 0 2rem; }
main.content figcaption { color: var(--pw-text-faint); font-size: 0.86rem; line-height: 1.55; margin-top: 0.5rem; }

.quarto-page-breadcrumbs { color: var(--pw-text-faint); font-size: 0.88rem; margin-bottom: 1.1rem; }
.quarto-page-breadcrumbs a { color: var(--pw-text-soft); }
.nav-page { border-top: 1px solid var(--pw-border); margin-top: 3.5rem; padding-top: 1.35rem; }
.nav-page .nav-page-text { color: var(--pw-text-soft); }
.nav-page a:hover .nav-page-text { color: var(--pw-primary); }
#quarto-back-to-top {
  color: var(--pw-text-soft);
  background: var(--pw-surface);
  border: 1px solid var(--pw-border);
  border-radius: var(--pw-radius-sm);
  box-shadow: var(--pw-shadow-float);
}
#quarto-back-to-top:hover { color: var(--pw-primary); border-color: var(--pw-border-strong); }
.nav-footer { color: var(--pw-text-faint); background: var(--pw-surface-soft); border-top: 1px solid var(--pw-border); font-size: 0.85rem; }
.nav-footer a { color: var(--pw-text-soft); }

.aa-DetachedFormContainer, .aa-Panel, .aa-DetachedContainer { background: var(--pw-surface); color: var(--pw-text); }
.aa-Input { border-color: var(--pw-border) !important; }
@media (min-width: 992px) {
  main.content { max-width: 58rem; }
}

@media (max-width: 1199.98px) {
  main.content { padding-left: 1rem; padding-right: 1rem; }
}

@media (max-width: 767.98px) {
  body { font-size: 0.97rem; line-height: 1.72; }
  main.content { padding-top: 1.35rem; padding-bottom: 3rem; }
  .quarto-title h1, h1.title { font-size: 1.8rem; }
  main.content h2 { font-size: 1.35rem; margin-top: 2.55rem; }
  main.content h3 { font-size: 1.08rem; margin-top: 1.85rem; }
  .table > thead > tr > th, main.content table > thead > tr > th,
  .table > tbody > tr > td, main.content table > tbody > tr > td { padding: 0.58rem 0.64rem; }
  .callout .callout-body-container { font-size: 0.93rem; }
}

/* Mobile secondary navigation */
@media (max-width: 1099.98px) {
  #quarto-header .quarto-secondary-nav {
    background: var(--pw-surface-soft);
    border-bottom: 1px solid var(--pw-border);
    box-shadow: none;
  }

  #quarto-header .quarto-secondary-nav > .container-fluid {
    min-height: 3rem;
    align-items: center;
    gap: 0.55rem;
    padding: 0.35rem 0.85rem;
  }

  #quarto-header .quarto-secondary-nav .quarto-page-breadcrumbs {
    min-width: 0;
    margin: 0 !important;
    color: var(--pw-text-faint);
    font-size: 0.82rem;
    line-height: 1.3;
  }

  #quarto-header .quarto-secondary-nav .breadcrumb {
    min-width: 0;
    margin: 0;
    flex-wrap: nowrap;
    overflow: hidden;
  }

  #quarto-header .quarto-secondary-nav .breadcrumb-item {
    min-width: 0;
    white-space: nowrap;
  }

  #quarto-header .quarto-secondary-nav .breadcrumb-item:last-child {
    overflow: hidden;
    text-overflow: ellipsis;
  }

  #quarto-header .quarto-secondary-nav .quarto-btn-toggle {
    flex: 0 0 2.25rem;
    width: 2.25rem;
    height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: var(--pw-primary);
    background: var(--pw-surface);
    border: 1px solid var(--pw-border);
    border-radius: var(--pw-radius-sm);
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* =========================================================
   Visual refinements
   ========================================================= */

/* Page title */

.quarto-title h1,
h1.title {
  color: #292b2f !important;
  font-weight: 720;
  letter-spacing: -0.035em;
  text-shadow: none;
}

.quarto-title .subtitle,
.quarto-title-block .description {
  font-weight: 420;
}

/* Left navigation items */

.sidebar-item .sidebar-link {
  position: relative;

  /* 与侧栏左右边缘保持距离 */
  margin: 0.12rem 0.72rem 0.12rem 0.92rem;

  /* 文字不再紧贴选中标记 */
  padding:
    0.48rem
    0.82rem
    0.48rem
    1rem;

  border: 1px solid transparent;
  border-left: 1px solid transparent;
  border-radius: 11px;

  overflow: visible;

  transition:
    color 150ms ease,
    background-color 150ms ease,
    border-color 150ms ease,
    box-shadow 150ms ease,
    transform 150ms ease;
}

/* 原来的 border-left 改为独立标记，避免贴着文字 */
.sidebar-item .sidebar-link::before {
  content: "";

  position: absolute;
  left: -0.58rem;
  top: 0.53rem;
  bottom: 0.53rem;

  width: 3px;
  border-radius: 999px;

  background: transparent;

  transition:
    background-color 150ms ease,
    box-shadow 150ms ease;
}

.sidebar-item .sidebar-link:hover {
  color: var(--pw-primary-hover);

  background:
    linear-gradient(
      135deg,
      rgb(255 255 255 / 0.36),
      rgb(255 255 255 / 0.14)
    );

  border-color: rgb(255 255 255 / 0.28);
}

/* ---------------------------------------------------------
   5. 左侧选中项：半透明玻璃卡片
   --------------------------------------------------------- */

body.quarto-light .sidebar-item .sidebar-link.active,
.quarto-light body .sidebar-item .sidebar-link.active {
  color: var(--pw-primary-hover);

  background:
    linear-gradient(
      135deg,
      rgb(255 255 255 / 0.76),
      rgb(241 243 245 / 0.64)
    );

  border-color: rgb(181 130 66 / 0.22);

  box-shadow:
    inset 0 1px 0 rgb(255 255 255 / 0.78),
    inset 0 -1px 0 rgb(181 130 66 / 0.06),
    0 5px 16px rgb(54 47 38 / 0.07);

  -webkit-backdrop-filter: blur(14px) saturate(135%);
  backdrop-filter: blur(14px) saturate(135%);

  font-weight: 680;
}

.sidebar-item .sidebar-link.active::before {
  background: var(--pw-accent);

  box-shadow:
    0 0 0 1px rgb(255 255 255 / 0.24),
    0 1px 5px rgb(181 130 66 / 0.26);
}

/* ---------------------------------------------------------
   6. 左侧分类标题稍微降低存在感
   --------------------------------------------------------- */

.sidebar-section .sidebar-section-item {
  color: var(--pw-text-soft);
  font-size: 0.89rem;
  font-weight: 680;
}

.sidebar-section .sidebar-section-item:hover {
  color: var(--pw-text);
}

/* ---------------------------------------------------------
   8. H2 再克制一点
   --------------------------------------------------------- */

main.content h2 {
  font-size: 1.46rem;
  font-weight: 700;

  padding-left: 1rem;

  border-bottom-color:
    color-mix(
      in srgb,
      var(--pw-border) 78%,
      transparent
    );
}

main.content h2::before {
  left: 0.08rem;
  width: 3px;

  background:
    linear-gradient(
      to bottom,
      var(--pw-accent),
      color-mix(in srgb, var(--pw-accent) 40%, transparent)
    );
}

/* =========================================================
   Layout tokens and compact typography
   ========================================================= */

:root {
  --pw-navbar-height: 4rem;
  --pw-header-height: var(--pw-navbar-height);

  --pw-left-panel-width: 220px;
  --pw-right-panel-width: 190px;

  --pw-body-width-normal: 960px;
  --pw-body-width-one-panel: 1060px;
  --pw-body-width-no-panels: 1180px;

  --pw-layout-gap: 1rem;
  --pw-layout-speed: 240ms;
}

/* ---------------------------------------------------------
   1. 全站缩放感：约等于浏览器 90%—93%
   --------------------------------------------------------- */

body {
  font-size: 0.93rem;
  line-height: 1.72;
}

p {
  margin-bottom: 0.88rem;
}

.quarto-title h1,
h1.title {
  font-size: clamp(1.85rem, 2.25vw, 2.3rem);
}

.quarto-title .subtitle,
.description {
  font-size: 0.98rem;
}

main.content h2 {
  font-size: 1.36rem;
  margin-top: 2.8rem;
}

main.content h3 {
  margin-top: 1.9rem;
}

.sidebar-item .sidebar-link {
  font-size: 0.9rem;
}

#TOC .nav-link {
  font-size: 0.82rem;
}

/* ---------------------------------------------------------
   2. 顶部栏改为浅色表面
   --------------------------------------------------------- */

.navbar {
  min-height: var(--pw-navbar-height);

  background: rgb(255 255 255 / 0.91) !important;
  color: var(--pw-text) !important;

  border-bottom: 1px solid var(--pw-border);
  box-shadow:
    0 1px 0 rgb(28 31 34 / 0.03),
    0 5px 20px rgb(28 31 34 / 0.035);

  -webkit-backdrop-filter: blur(20px) saturate(135%);
  backdrop-filter: blur(20px) saturate(135%);
}

.navbar-brand {
  color: var(--pw-text) !important;
  font-size: 1rem;
  font-weight: 680;
}

.navbar .nav-link,
.navbar .dropdown-toggle,
.navbar .quarto-navbar-tools .quarto-navigation-tool {
  color: var(--pw-text-soft) !important;
}

.navbar .nav-link:hover,
.navbar .nav-link:focus,
.navbar .dropdown-toggle:hover {
  color: var(--pw-text) !important;
}

.navbar .nav-link.active {
  color: var(--pw-text) !important;

  background: var(--pw-surface-soft);

  border-radius: 9px;

  text-decoration: none;
}

.navbar .dropdown-menu {
  background: rgb(255 255 255 / 0.96);

  -webkit-backdrop-filter: blur(22px) saturate(135%);
  backdrop-filter: blur(22px) saturate(135%);
}

/* ---------------------------------------------------------
   3. 右上角图标全部统一
   --------------------------------------------------------- */

.quarto-navbar-tools {
  display: flex;
  align-items: center;
  gap: 0.22rem;
}

.quarto-navbar-tools .quarto-navigation-tool,
#quarto-search .aa-DetachedSearchButton,
.quarto-search-button {
  display: inline-grid !important;
  place-items: center;

  width: 2.25rem !important;
  height: 2.25rem !important;

  min-width: 2.25rem !important;
  min-height: 2.25rem !important;

  padding: 0 !important;
  margin: 0 !important;

  border: 1px solid transparent !important;
  border-radius: 10px !important;

  color: var(--pw-text-soft) !important;
  background: transparent !important;

  transition:
    color 150ms ease,
    background-color 150ms ease,
    border-color 150ms ease;
}

.quarto-navbar-tools .quarto-navigation-tool:hover,
#quarto-search .aa-DetachedSearchButton:hover,
.quarto-search-button:hover {
  color: var(--pw-text) !important;
  background: var(--pw-surface-soft) !important;
  border-color: var(--pw-border) !important;
}

.quarto-color-scheme-toggle .bi::before {
  width: 1.12rem !important;
  height: 1.12rem !important;

  background-size: 1.12rem 1.12rem !important;
}

#quarto-search svg,
.aa-DetachedSearchButtonIcon {
  width: 1.12rem !important;
  height: 1.12rem !important;
}

/* 原生 reader-mode 不再使用 */
.quarto-reader-toggle {
  display: none !important;
}

/* The current desktop layout is defined in the fixed-panel section below. */

@media (min-width: 1100px) {
  #quarto-sidebar-glass {
    display: none !important;
  }
}

/* ---------------------------------------------------------
   5. 侧栏内部工具条
   --------------------------------------------------------- */

.pw-panel-toolbar {
  position: sticky;
  top: 0;
  z-index: 20;

  display: flex;
  align-items: center;
  justify-content: space-between;

  min-height: 3rem;

  padding: 0.48rem 0.65rem;

  color: var(--pw-text-soft);

  background: inherit;

  border-bottom: 1px solid var(--pw-border);

  -webkit-backdrop-filter: blur(18px) saturate(125%);
  backdrop-filter: blur(18px) saturate(125%);
}

.pw-panel-toolbar-title {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.pw-panel-toggle,
.pw-edge-toggle {
  display: inline-grid;
  place-items: center;

  width: 2rem;
  height: 2rem;

  padding: 0;

  color: var(--pw-text-soft);
  background: rgb(255 255 255 / 0.42);

  border: 1px solid var(--pw-border);
  border-radius: 9px;

  box-shadow:
    inset 0 1px 0 rgb(255 255 255 / 0.5),
    0 2px 8px rgb(30 32 35 / 0.035);

  cursor: pointer;

  transition:
    color 150ms ease,
    background-color 150ms ease,
    border-color 150ms ease,
    transform 150ms ease;
}

.pw-panel-toggle:hover,
.pw-edge-toggle:hover {
  color: var(--pw-text);

  background: var(--pw-surface-hover);
  border-color: var(--pw-border-strong);
}

.pw-panel-toggle:active,
.pw-edge-toggle:active {
  transform: scale(0.94);
}

.pw-panel-toggle-icon {
  font-size: 1.15rem;
  line-height: 1;
}

/* ---------------------------------------------------------
   6. 侧栏收起后的边缘展开按钮
   --------------------------------------------------------- */

.pw-edge-toggle {
  display: none;

  position: fixed;
  top: calc(var(--pw-navbar-height) + 0.7rem);
  z-index: 1040;

  width: 2.15rem;
  height: 2.35rem;

  background: rgb(255 255 255 / 0.9);

  -webkit-backdrop-filter: blur(18px) saturate(130%);
  backdrop-filter: blur(18px) saturate(130%);

  box-shadow:
    0 5px 18px rgb(27 29 32 / 0.09);
}

@media (min-width: 1100px) {
  body.pw-left-collapsed .pw-edge-toggle-left {
    display: inline-grid;
  }

  body.pw-right-collapsed .pw-edge-toggle-right {
    display: inline-grid;
  }
}

/* ---------------------------------------------------------
   7. 左右侧栏背景始终保持一致
   --------------------------------------------------------- */

#quarto-sidebar .sidebar-navigation,
#quarto-sidebar .sidebar-menu-container,
#quarto-margin-sidebar nav[role="doc-toc"],
#TOC {
  background: transparent !important;
}

.pw-hide-default-toc-title {
  display: none !important;
}

/* ---------------------------------------------------------
   8. 剧情线路逻辑图缩小并居中
   --------------------------------------------------------- */

main.content img[src*="route-map-b085"] {
  display: block;
  width: min(86%, 880px);
  max-width: 880px;
  margin-left: auto;
  margin-right: auto;
  cursor: zoom-in;
}

/* ---------------------------------------------------------
   9. 小屏幕交还 Quarto 原生导航
   --------------------------------------------------------- */

@media (max-width: 1099.98px) {
  .pw-panel-toolbar,
  .pw-edge-toggle {
    display: none !important;
  }

  #quarto-content {
    display: grid;
  }

  #quarto-sidebar,
  #quarto-margin-sidebar {
    background: var(--pw-surface) !important;
  }
}

/* =========================================================
   Navbar tools and sidebar hierarchy
   ========================================================= */

/* ---------------------------------------------------------
   1. 顶部导航中的工具区与搜索
   --------------------------------------------------------- */

.navbar .container-fluid {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
}

.navbar .navbar-collapse {
  min-width: 0;
}

#quarto-search {
  display: flex !important;
  align-items: center;
  justify-content: center;

  visibility: visible !important;
  opacity: 1 !important;
}

/* 搜索按钮统一尺寸 */
#quarto-search .aa-DetachedSearchButton,
.navbar .quarto-search-button {
  display: inline-grid !important;
  place-items: center;

  width: 2.2rem !important;
  height: 2.2rem !important;
  min-width: 2.2rem !important;
  min-height: 2.2rem !important;

  padding: 0 !important;
  margin: 0 !important;

  color: var(--pw-text-soft) !important;
  background: transparent !important;

  border: 1px solid transparent !important;
  border-radius: 9px !important;
}

#quarto-search .aa-DetachedSearchButton:hover,
.navbar .quarto-search-button:hover {
  color: var(--pw-text) !important;
  background: var(--pw-surface-soft) !important;
  border-color: var(--pw-border) !important;
}

#quarto-search svg,
.aa-DetachedSearchButtonIcon {
  width: 1.1rem !important;
  height: 1.1rem !important;
}

/* ---------------------------------------------------------
   3. 左侧栏减少屏幕边缘留白
   --------------------------------------------------------- */

#quarto-sidebar .pw-panel-toolbar {
  padding-left: 0.45rem;
  padding-right: 0.45rem;
}

#quarto-sidebar .sidebar-navigation {
  padding-left: 0.15rem;
  padding-right: 0.15rem;
}

/* 普通导航项目 */
.sidebar-item .sidebar-link {
  margin-left: 0.3rem;
  margin-right: 0.38rem;

  padding-left: 0.72rem;
  padding-right: 0.55rem;

  min-width: 0;
}

/* 所有导航文字只显示一行 */
.sidebar-item .sidebar-link,
.sidebar-item .sidebar-link .menu-text,
.sidebar-section .sidebar-section-item,
.sidebar-section .sidebar-section-item .menu-text {
  white-space: nowrap !important;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 当前项左侧标记同步靠近 */
.sidebar-item .sidebar-link::before {
  left: -0.28rem;
}

/* ---------------------------------------------------------
   4. 一级分类标题更明确
   --------------------------------------------------------- */

.sidebar-section {
  margin-top: 0.65rem;
  margin-bottom: 0.45rem;
}

.sidebar-section .sidebar-section-item {
  color: var(--pw-text) !important;

  font-size: 0.86rem;
  font-weight: 760;
  letter-spacing: 0.025em;

  padding: 0.56rem 0.58rem 0.38rem;

  border-top: 1px solid
    color-mix(in srgb, var(--pw-border) 64%, transparent);
}

/* 第一个分类不需要顶部线 */
.sidebar-navigation
  > .sidebar-section:first-child
  .sidebar-section-item {
  border-top: 0;
}

.sidebar-section .sidebar-section-item:hover {
  color: var(--pw-primary-hover) !important;
}

/* 分类箭头更加清晰 */
.sidebar-section .sidebar-item-toggle,
.sidebar-section .bi-chevron-right,
.sidebar-section .bi-chevron-down {
  color: var(--pw-text-faint);
  flex: 0 0 auto;
}

/* 二级页面略微缩小，形成清楚层次 */
.sidebar-section .sidebar-item .sidebar-link {
  font-size: 0.88rem;
  font-weight: 480;
}

/* 当前页面仍然突出 */
.sidebar-section .sidebar-item .sidebar-link.active {
  font-weight: 690;
}

/* ---------------------------------------------------------
   5. 右侧目录紧凑化，避免形成大块空白
   --------------------------------------------------------- */

#quarto-margin-sidebar .pw-panel-toolbar {
  min-height: 2.7rem;

  padding: 0.38rem 0 0.38rem 0.1rem;

  border-bottom-color:
    color-mix(in srgb, var(--pw-border) 65%, transparent);
}

#quarto-margin-sidebar .pw-panel-toolbar-title {
  color: var(--pw-text);
  font-size: 0.76rem;
  font-weight: 740;
}

#quarto-margin-sidebar #TOC {
  border-left: 0;
  padding:
    0.55rem
    0
    1rem
    0 !important;
}

#quarto-margin-sidebar #TOC .nav-link {
  margin: 0 !important;

  padding:
    0.26rem
    0.1rem
    0.26rem
    0.68rem;

  white-space: normal;
  overflow-wrap: anywhere;

  font-size: 0.8rem;
  line-height: 1.38;
}

/* ---------------------------------------------------------
   6. 收起后的按钮更贴近屏幕边缘
   --------------------------------------------------------- */

.pw-edge-toggle-left {
  left: 0.25rem;
}

.pw-edge-toggle-right {
  right: 0.25rem;
}

/* =========================================================
   Fixed desktop panels and collapsible layout
   ========================================================= */

@media (min-width: 1100px) {
  header#quarto-header.headroom.headroom--unpinned {
    transform: translateY(0);
  }

  /* 不再让 #quarto-content 自己组成三列 */
  body.pw-custom-layout-ready #quarto-content {
    display: flow-root !important;

    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;

    padding-left:
      calc(var(--pw-left-panel-width) + 1rem) !important;

    padding-right:
      calc(var(--pw-right-panel-width) + 1rem) !important;

    transition:
      padding-left var(--pw-layout-speed) ease,
      padding-right var(--pw-layout-speed) ease;
  }

  /* 左栏收起后，立即释放左边空间 */
  body.pw-left-collapsed #quarto-content {
    padding-left: 1rem !important;
  }

  /* 右栏收起后，立即释放右边空间 */
  body.pw-right-collapsed #quarto-content {
    padding-right: 1rem !important;
  }

  /* 正文始终在剩余可用区域内居中 */
  body.pw-custom-layout-ready main.content {
    display: block !important;

    width: min(100%, 960px) !important;
    max-width: 960px !important;

    margin-left: auto !important;
    margin-right: auto !important;

    padding-left: 1rem !important;
    padding-right: 1rem !important;

    transition:
      width var(--pw-layout-speed) ease,
      max-width var(--pw-layout-speed) ease;
  }

  body.pw-left-collapsed main.content,
  body.pw-right-collapsed main.content {
    width: min(100%, 1060px) !important;
    max-width: 1060px !important;
  }

  body.pw-left-collapsed.pw-right-collapsed main.content {
    width: min(100%, 1180px) !important;
    max-width: 1180px !important;
  }

  /* 左侧导航固定贴住窗口左边 */
  body.pw-custom-layout-ready #quarto-sidebar {
    position: fixed !important;

    bottom: 0 !important;
    left: 0 !important;
    right: auto !important;

    width: var(--pw-left-panel-width) !important;
    max-width: var(--pw-left-panel-width) !important;
    height: auto !important;

    margin: 0 !important;

    z-index: 1020;

    overflow-y: auto;
    overflow-x: hidden;

    transform: translateX(0);

    transition:
      transform var(--pw-layout-speed) ease,
      opacity var(--pw-layout-speed) ease,
      visibility var(--pw-layout-speed) step-start;
  }

  /* 右侧目录固定贴住窗口右边 */
  body.pw-custom-layout-ready #quarto-margin-sidebar {
    position: fixed !important;

    top: var(--pw-navbar-height) !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;

    width: var(--pw-right-panel-width) !important;
    max-width: var(--pw-right-panel-width) !important;
    height: auto !important;

    margin: 0 !important;
    padding: 0 0.55rem 1.5rem 0.65rem !important;

    z-index: 1015;

    overflow-y: auto;
    overflow-x: hidden;

    border-left: 1px solid
      color-mix(in srgb, var(--pw-border) 70%, transparent);

    background: rgb(255 255 255 / 0.92) !important;

    -webkit-backdrop-filter: blur(16px) saturate(115%);
    backdrop-filter: blur(16px) saturate(115%);

    transform: translateX(0);

    transition:
      transform var(--pw-layout-speed) ease,
      opacity var(--pw-layout-speed) ease,
      visibility var(--pw-layout-speed) step-start;
  }

  body.pw-right-collapsed #quarto-margin-sidebar {
    transform: translateX(100%);

    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

/* =========================================================
   左侧导航一级分类标题
   攻略 / 收集 / 底层机制 / 版本档案 / 其他
   ========================================================= */

#quarto-sidebar
.sidebar-item-section
> .sidebar-item-container
> .sidebar-item-text,

#quarto-sidebar
.sidebar-item-section
> .sidebar-item-container
> a.sidebar-link,

#quarto-sidebar
.sidebar-section
> .sidebar-section-item {
  color: var(--pw-text) !important;

  font-size: 0.9rem !important;
  font-weight: 700 !important;

  letter-spacing: 0.025em;
}

/* 一级标题与下方子项目拉开距离 */
#quarto-sidebar .sidebar-item-section {
  margin-top: 0.75rem;
  margin-bottom: 0.32rem;
}

/* 一级标题悬停 */
#quarto-sidebar
.sidebar-item-section
> .sidebar-item-container:hover
> .sidebar-item-text,

#quarto-sidebar
.sidebar-item-section
> .sidebar-item-container:hover
> a.sidebar-link {
  color: var(--pw-primary-hover) !important;
}

/* 二级页面保持普通字重 */
#quarto-sidebar
.sidebar-item-section
.sidebar-item:not(.sidebar-item-section)
.sidebar-link {
  font-weight: 480 !important;
}

/* 当前二级页面仍然加粗 */
#quarto-sidebar
.sidebar-item-section
.sidebar-item:not(.sidebar-item-section)
.sidebar-link.active {
  font-weight: 690 !important;
}

/* =========================================================
   稳定的 Quarto 搜索入口
   ========================================================= */

.navbar .quarto-navbar-tools {
  display: flex !important;
  align-items: center;
  gap: 0.22rem;

  margin-left: auto !important;
  flex: 0 0 auto;

  visibility: visible !important;
  opacity: 1 !important;
}

.pw-search-launcher {
  display: inline-grid;
  place-items: center;

  width: 2.2rem;
  height: 2.2rem;
  min-width: 2.2rem;

  padding: 0;
  margin: 0;

  color: var(--pw-text-soft);
  background: transparent;

  border: 1px solid transparent;
  border-radius: 9px;

  cursor: pointer;

  transition:
    color 150ms ease,
    background-color 150ms ease,
    border-color 150ms ease;
}

.pw-search-launcher:hover {
  color: var(--pw-text);
  background: var(--pw-surface-soft);
  border-color: var(--pw-border);
}

.pw-search-launcher svg {
  width: 1.12rem;
  height: 1.12rem;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/*
  Quarto 原生搜索节点继续留在页面中负责搜索功能，
  但不再需要显示它自身的按钮。
*/
#quarto-search {
  position: absolute !important;

  width: 1px !important;
  height: 1px !important;

  overflow: hidden !important;

  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;

  white-space: nowrap !important;
}

/* =========================================================
   左侧导航覆盖完整视口高度
   ========================================================= */

@media (min-width: 1100px) {
  body.pw-custom-layout-ready #quarto-sidebar {
    top: var(--pw-navbar-height) !important;
    bottom: auto !important;

    height:
      calc(100dvh - var(--pw-navbar-height)) !important;

    min-height:
      calc(100dvh - var(--pw-navbar-height)) !important;

    max-height:
      calc(100dvh - var(--pw-navbar-height)) !important;

    background: rgb(248 249 250 / 0.96) !important;

    border-right: 1px solid var(--pw-border) !important;

    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  #quarto-sidebar .sidebar-menu-container,
  #quarto-sidebar .sidebar-navigation {
    min-height: 100%;

    background: transparent !important;
  }

  body.pw-left-collapsed #quarto-sidebar {
    transform: translateX(-100%);

    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

/* =========================================================
   密码提示 details：统一内部留白
   ========================================================= */

main.content details {
  padding:
    0
    1rem
    0.9rem;

  background: var(--pw-surface);

  border: 1px solid
    color-mix(
      in srgb,
      var(--pw-accent) 58%,
      var(--pw-border)
    );

  border-radius: 10px;
}

main.content details > summary {
  margin:
    0
    -1rem
    0.75rem;

  padding:
    0.72rem
    1rem;

  background:
    color-mix(
      in srgb,
      var(--pw-accent) 5%,
      var(--pw-surface)
    );

  border-bottom: 1px solid
    color-mix(
      in srgb,
      var(--pw-accent) 22%,
      var(--pw-border)
    );
}

/*
  取消旧规则对子元素的额外 margin，
  统一由 details 自身的 padding 控制。
*/
main.content details > :not(summary) {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

main.content details:not([open]) {
  padding-bottom: 0;
}

main.content details:not([open]) > summary {
  margin-bottom: 0;

  border-bottom: 0;
}

main.content details[open] > :last-child {
  margin-bottom: 0;
}

/* =========================================================
   Callouts: neutral body and semantic accents
   ========================================================= */

.callout {
  --pw-callout-color: #74828d;
  --pw-callout-tint: rgb(116 130 141 / 0.07);

  background: var(--pw-surface) !important;

  border:
    1px solid
    color-mix(
      in srgb,
      var(--pw-callout-color) 27%,
      var(--pw-border)
    ) !important;

  border-left:
    3px solid
    var(--pw-callout-color) !important;

  border-radius: 10px;

  margin: 1.45rem 0;

  box-shadow:
    0 1px 2px rgb(31 34 37 / 0.025);

  overflow: hidden;
}

.callout .callout-header {
  min-height: 2.7rem;

  padding:
    0.58rem
    0.78rem !important;

  color: var(--pw-text) !important;
  background: var(--pw-callout-tint) !important;

  border-bottom:
    1px solid
    color-mix(
      in srgb,
      var(--pw-callout-color) 15%,
      var(--pw-border)
    ) !important;
}

.callout .callout-title-container {
  color: var(--pw-text) !important;

  font-size: 0.91rem;
  font-weight: 700;
  letter-spacing: 0.005em;
}

.callout .callout-icon-container {
  color: var(--pw-callout-color) !important;
}

.callout .callout-body {
  background: var(--pw-surface) !important;
}

.callout .callout-body-container {
  padding:
    0.85rem
    0.85rem
    0.9rem !important;

  color: var(--pw-text);

  font-size: 0.92rem;
  line-height: 1.7;
}

/* 蓝灰：普通说明 */
.callout-note {
  --pw-callout-color: #6f8797;
  --pw-callout-tint: rgb(111 135 151 / 0.07);
}

/* 鼠尾草绿：建议 */
.callout-tip {
  --pw-callout-color: #708774;
  --pw-callout-tint: rgb(112 135 116 / 0.07);
}

/* 灰金：警告 */
.callout-warning {
  --pw-callout-color: #9a774b;
  --pw-callout-tint: rgb(154 119 75 / 0.075);
}

/* 灰玫瑰：重要 */
.callout-important {
  --pw-callout-color: #906b74;
  --pw-callout-tint: rgb(144 107 116 / 0.07);
}

/* 灰砖红：谨慎 */
.callout-caution {
  --pw-callout-color: #8e625f;
  --pw-callout-tint: rgb(142 98 95 / 0.07);
}

/* =========================================================
   左侧一级分类标题加粗
   ========================================================= */

#quarto-sidebar
.sidebar-item-section
> .sidebar-item-container
.sidebar-item-text,

#quarto-sidebar
.sidebar-item-section
> .sidebar-item-container
.menu-text,

#quarto-sidebar
.sidebar-section
> .sidebar-section-item {
  color: var(--pw-text) !important;

  font-weight: 700 !important;

  letter-spacing: 0.015em;
}

/* 下属页面恢复普通字重 */
#quarto-sidebar
.sidebar-item-section
.sidebar-item
.sidebar-link {
  font-weight: 470 !important;
}

/* 当前页面保持明显加粗 */
#quarto-sidebar
.sidebar-item-section
.sidebar-item
.sidebar-link.active {
  font-weight: 680 !important;
}

/* =========================================================
   Typography, media, and table refinements
   ========================================================= */

/* ---------------------------------------------------------
   1. 左侧一级分类标题和展开箭头垂直居中
   --------------------------------------------------------- */

/*
  一级分类的容器统一为 flex。
  文字占据剩余空间，箭头固定在右侧中央。
*/
#quarto-sidebar
.sidebar-item-section
> .sidebar-item-container {
  display: flex !important;
  align-items: center !important;

  min-height: 2.5rem;
}

/* 一级标题链接 */
#quarto-sidebar
.sidebar-item-section
> .sidebar-item-container
> .sidebar-link {
  display: flex !important;
  align-items: center !important;

  flex: 1 1 auto;
  min-width: 0;

  line-height: 1.35 !important;
}

/* 展开／收起按钮 */
#quarto-sidebar
.sidebar-item-section
> .sidebar-item-container
> .sidebar-item-toggle {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  align-self: center !important;

  flex: 0 0 1.8rem;

  width: 1.8rem;
  height: 1.8rem;

  margin: 0 0.18rem 0 0 !important;
  padding: 0 !important;

  line-height: 1 !important;
}

/* Quarto 使用的图标本身也归零偏移 */
#quarto-sidebar
.sidebar-item-section
> .sidebar-item-container
> .sidebar-item-toggle
svg,

#quarto-sidebar
.sidebar-item-section
> .sidebar-item-container
> .sidebar-item-toggle
.bi {
  display: block;

  width: 0.85rem;
  height: 0.85rem;

  margin: 0 !important;

  vertical-align: middle;

  transform-origin: center;
}

/* 防止旧规则造成箭头向上偏移 */
#quarto-sidebar .sidebar-item-toggle {
  top: auto !important;
  bottom: auto !important;

  transform: none;
}

/* ---------------------------------------------------------
   2. 图片说明居中
   --------------------------------------------------------- */

main.content figure {
  text-align: center;
}

main.content figcaption,
main.content .figure-caption,
main.content .quarto-figure-center > figcaption {
  display: block;

  width: 100%;

  margin-top: 0.65rem;

  color: var(--pw-text-faint);

  font-size: 0.84rem;
  line-height: 1.5;

  text-align: center !important;
}

/*
  某些 Quarto 图片没有生成标准 figure，
  而是图片后紧跟 .figure-caption。
*/
main.content img + .figure-caption {
  text-align: center !important;
}

/* ---------------------------------------------------------
   3. 三级标题改成暖灰棕
   --------------------------------------------------------- */

main.content h3 {
  color: var(--pw-heading-3) !important;

  font-size: 1.08rem;
  font-weight: 690;

  letter-spacing: -0.004em;
}

/* 四级标题继续接近正文色，避免层级混乱 */
main.content h4 {
  color: var(--pw-text) !important;
}

/* ---------------------------------------------------------
   4. 页面大标题、副标题和正文之间增加层次
   --------------------------------------------------------- */

.quarto-title-block {
  margin-bottom: 2.65rem !important;
}

.quarto-title {
  margin-bottom: 0 !important;
}

.quarto-title h1,
h1.title {
  margin-top: 0;
  margin-bottom: 0.72rem !important;

  line-height: 1.18;
}

/* 副标题和标题保持关联 */
.quarto-title .subtitle,
.quarto-title-block .description {
  margin-top: 0 !important;
  margin-bottom: 0 !important;

  color: var(--pw-text-soft);

  line-height: 1.55;
}

/*
  面包屑与大标题之间略增加距离，
  避免所有内容挤在页面顶部。
*/
.quarto-page-breadcrumbs {
  margin-bottom: 1.45rem !important;
}

/* 标题区后面的第一段不需要额外上边距 */
.quarto-title-block + p,
.quarto-title-block + section > p:first-child {
  margin-top: 0;
}

/* ---------------------------------------------------------
   5. 奖牌导图进一步缩小并居中
   --------------------------------------------------------- */

main.content img[src*="medal-map-b085"] {
  display: block;

  width: min(70%, 740px) !important;
  max-width: 740px !important;
  height: auto;

  margin-left: auto !important;
  margin-right: auto !important;

  cursor: zoom-in;
}

/* 屏幕较窄时避免图片过小 */
@media (max-width: 900px) {
  main.content img[src*="medal-map-b085"] {
    width: min(90%, 740px) !important;
  }
}

/* 手机端恢复充分利用宽度 */
@media (max-width: 600px) {
  main.content img[src*="medal-map-b085"] {
    width: 100% !important;
  }
}

/* ---------------------------------------------------------
   6. 表格按内容决定宽度，而非强制撑满正文
   --------------------------------------------------------- */

.quarto-table-container,
.table-responsive {
  width: 100%;
  max-width: 100%;

  overflow-x: auto;

  scrollbar-width: thin;
}

/*
  宽表格只在自己的容器中横向滚动。
  页面与标签页祖先保持可收缩，避免固有宽度泄漏到 document。
*/
main.content,
main.content .panel-tabset,
main.content .tab-content,
main.content .tab-pane {
  min-width: 0;
}

main.content .table-responsive {
  display: block;

  width: 100%;
  max-width: 100%;
  min-width: 0;

  overflow-x: auto !important;
  overflow-y: hidden;

  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

main.content .table-responsive > table {
  width: 100% !important;
  min-width: var(--pw-table-min-width, 100%) !important;
  max-width: none !important;
}

.table-scroll-compact {
  --pw-table-min-width: 36rem;
}

.table-scroll-medium {
  --pw-table-min-width: 46rem;
}

.table-scroll-large {
  --pw-table-min-width: 52rem;
}

.table-scroll-wide {
  --pw-table-min-width: 60rem;
}

main.content .changes-at-a-glance-table {
  --pw-table-min-width: 44rem;
}

main.content .changes-at-a-glance-table > table {
  table-layout: fixed;
}

main.content .changes-at-a-glance-table col:first-child {
  width: 22% !important;
}

main.content .changes-at-a-glance-table col:last-child {
  width: 78% !important;
}

/*
  fit-content 会让短表格按内容收缩；
  max-width: 100% 保证长表格仍在正文范围内换行。
*/
main.content table,
main.content .table {
  width: fit-content !important;
  min-width: min(100%, 34rem);
  max-width: 100% !important;

  table-layout: auto !important;

  margin-left: 0 !important;
  margin-right: auto !important;
}

/* 表头和单元格不再平均分配宽度 */
main.content table th,
main.content table td {
  width: auto !important;
}

/*
  代码变量通常不应该被拆成两三行。
  只约束代码本身，不强制整个单元格不换行。
*/
main.content table td code,
main.content table th code {
  white-space: nowrap;
}

/*
  很短的数字列可以自然收缩。
  :has() 在当前 Edge / Chrome / Safari 均可用。
*/
main.content table th:has(> code),
main.content table td:has(> code) {
  white-space: nowrap;
}

/* 长文本列仍然允许正常换行 */
main.content table td {
  overflow-wrap: break-word;
  word-break: normal;
}

/*
  表格只有少量短内容时，避免显得过分扁平。
  仍保留最低阅读宽度。
*/
main.content table:has(> thead > tr > :nth-child(2):last-child) {
  min-width: min(100%, 28rem);
}

main.content table:has(> thead > tr > :nth-child(3):last-child) {
  min-width: min(100%, 36rem);
}

/* =========================================================
   Search overlay base
   ========================================================= */

/* 背景遮罩 */
.aa-DetachedOverlay {
  background: rgb(33 37 41 / 0.32) !important;

  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
}

/* 整个搜索窗口 */
.aa-DetachedContainer {
  width: min(64rem, calc(100vw - 2rem)) !important;
  max-width: 64rem !important;

  margin: 1rem auto !important;

  color: var(--pw-text) !important;
  background: rgb(255 255 255 / 0.97) !important;

  border: 1px solid var(--pw-border) !important;
  border-radius: 16px !important;

  box-shadow:
    0 24px 70px rgb(30 27 23 / 0.18),
    inset 0 1px 0 rgb(255 255 255 / 0.8);

  overflow: hidden;
}

/* 搜索框所在的顶部 */
.aa-DetachedFormContainer {
  padding: 0.75rem !important;

  background: var(--pw-surface-soft) !important;

  border-bottom: 1px solid var(--pw-border) !important;
}

/* 输入框外框 */
.aa-Form {
  min-height: 3.15rem;

  background: var(--pw-surface) !important;

  border: 1px solid var(--pw-border-strong) !important;
  border-radius: 12px !important;

  box-shadow: none !important;

  transition:
    border-color 150ms ease,
    box-shadow 150ms ease;
}

.aa-Form:focus-within {
  border-color: var(--pw-accent) !important;

  box-shadow:
    0 0 0 3px
    color-mix(
      in srgb,
      var(--pw-accent) 16%,
      transparent
    ) !important;
}

/* 输入文字 */
.aa-Input {
  color: var(--pw-text) !important;
  background: transparent !important;

  font-family: var(--pw-font-sans) !important;
  font-size: 1rem !important;
}

/* 搜索图标和清除按钮 */
.aa-SubmitIcon,
.aa-ClearIcon {
  color: var(--pw-text-faint) !important;
}

/* 取消按钮 */
.aa-DetachedCancelButton {
  color: var(--pw-text-soft) !important;
  background: transparent !important;

  border: 0 !important;
  border-radius: 9px !important;

  font-family: var(--pw-font-sans) !important;
  font-size: 0.9rem !important;
  font-weight: 620 !important;

  padding: 0.55rem 0.7rem !important;
}

.aa-DetachedCancelButton:hover {
  color: var(--pw-text) !important;
  background: var(--pw-surface-hover) !important;
}

/* 结果区域 */
.aa-Panel {
  color: var(--pw-text) !important;
  background: var(--pw-surface) !important;

  padding:
    0.4rem
    0.55rem
    1rem !important;
}

/* 匹配文档数量 */
.aa-SourceHeader {
  color: var(--pw-text-faint) !important;
  background: var(--pw-surface-soft) !important;

  border-bottom: 1px solid var(--pw-border) !important;

  font-size: 0.82rem !important;
  font-weight: 620 !important;

  padding:
    0.45rem
    0.75rem !important;
}

/* 单个结果 */
.aa-Item {
  color: var(--pw-text) !important;
  background: transparent !important;

  border: 1px solid transparent !important;
  border-radius: 11px !important;

  margin: 0.24rem 0 !important;
  padding: 0.76rem 0.85rem !important;

  transition:
    background-color 120ms ease,
    border-color 120ms ease;
}

/* 结果标题 */
.aa-ItemContentTitle,
.search-result-title {
  color: var(--pw-text) !important;

  font-size: 0.98rem !important;
  font-weight: 700 !important;
}

/* 面包屑 */
.aa-ItemContentDescription,
.search-result-context {
  color: var(--pw-text-faint) !important;

  font-size: 0.8rem !important;
}

/* 结果摘要 */
.search-result-text,
.aa-ItemContentBody {
  color: var(--pw-text-soft) !important;

  font-size: 0.88rem !important;
  line-height: 1.55 !important;
}

/* 结果之间的分隔 */
.aa-List {
  padding: 0.15rem 0 !important;
}

/* 手机 */
@media (max-width: 700px) {
  .aa-DetachedContainer {
    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;

    border-radius: 0 !important;
  }
}

/* =========================================================
   角色标签页
   ========================================================= */

.character-tabs {
  margin:
    1.4rem
    0
    2.3rem;
}

/* 顶部角色栏 */
.character-tabs > .nav-tabs {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr));

  width: 100%;

  margin: 0 !important;
  padding: 0 !important;

  background: var(--pw-surface-soft);

  border: 1px solid var(--pw-border) !important;
  border-bottom: 0 !important;
  border-radius:
    12px
    12px
    0
    0;

  overflow: hidden;
}

/* 每个角色 */
.character-tabs > .nav-tabs .nav-item {
  min-width: 0;
  margin: 0 !important;
}

/* 按钮 */
.character-tabs > .nav-tabs .nav-link {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  min-height: 3rem;

  margin: 0 !important;
  padding:
    0.68rem
    0.35rem !important;

  color: var(--pw-text-soft) !important;
  background: transparent !important;

  border: 0 !important;
  border-right: 1px solid var(--pw-border) !important;
  border-radius: 0 !important;

  font-size: 0.9rem;
  font-weight: 620;
  text-align: center;

  transition:
    color 140ms ease,
    background-color 140ms ease,
    box-shadow 140ms ease;
}

.character-tabs > .nav-tabs .nav-item:last-child .nav-link {
  border-right: 0 !important;
}

/* 悬停 */
.character-tabs > .nav-tabs .nav-link:hover {
  color: var(--pw-text) !important;
  background:
    color-mix(
      in srgb,
      var(--pw-accent) 6%,
      var(--pw-surface)
    ) !important;
}

/* 当前角色 */
.character-tabs > .nav-tabs .nav-link.active {
  color: var(--pw-text) !important;
  background: var(--pw-surface) !important;

  font-weight: 720;

  box-shadow:
    inset 0 -3px 0 var(--pw-accent),
    inset 0 1px 0 rgb(255 255 255 / 0.65);
}

/* 内容区域 */
.character-tabs > .tab-content {
  min-height: 15rem;

  padding:
    1.35rem
    1.25rem
    1.45rem;

  background: var(--pw-surface);

  border: 1px solid var(--pw-border);
  border-radius:
    0
    0
    12px
    12px;

  box-shadow:
    0 1px 2px rgb(30 27 23 / 0.025);
}

/* 标签内容中的第一个元素无需额外上距 */
.character-tabs > .tab-content .tab-pane > :first-child {
  margin-top: 0 !important;
}

/* 标签内容中的最后一个元素 */
.character-tabs > .tab-content .tab-pane > :last-child {
  margin-bottom: 0 !important;
}

/* 标签页内表格不要贴着面板边缘 */
.character-tabs > .tab-content table {
  margin-top: 0.55rem;
  margin-bottom: 0.6rem;
}

/* 窄屏幕横向滑动角色标签 */
@media (max-width: 760px) {
  .character-tabs > .nav-tabs {
    display: flex !important;

    overflow-x: auto;
    overflow-y: hidden;

    scrollbar-width: thin;
  }

  .character-tabs > .nav-tabs .nav-item {
    flex:
      0
      0
      7rem;
  }

  .character-tabs > .tab-content {
    min-height: 0;

    padding:
      1.05rem
      0.85rem
      1.15rem;
  }
}

/* =========================================================
   指定内容表格的桌面列宽
   ========================================================= */

@media (min-width: 760px) {
  main.content .affection-threshold-tabs table,
  main.content .compendium-cast-table table,
  main.content .b085-change-overview-table table,
  main.content .additional-scenes-table table,
  main.content .legacy-password-overview-table table,
  main.content .gallery-coordinate-table table {
    width: 100% !important;
    table-layout: fixed !important;
  }

  main.content .affection-threshold-tabs col:nth-child(1),
  main.content .affection-threshold-tabs th:nth-child(1),
  main.content .affection-threshold-tabs td:nth-child(1) {
    width: 10% !important;
    text-align: right;
    white-space: nowrap;
  }

  main.content .affection-threshold-tabs col:nth-child(2),
  main.content .affection-threshold-tabs th:nth-child(2),
  main.content .affection-threshold-tabs td:nth-child(2) {
    width: 90% !important;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
  }

  main.content .compendium-cast-table col:nth-child(1),
  main.content .compendium-cast-table th:nth-child(1),
  main.content .compendium-cast-table td:nth-child(1) {
    width: 8% !important;
    text-align: right;
    white-space: nowrap;
  }

  main.content .compendium-cast-table col:nth-child(2),
  main.content .compendium-cast-table th:nth-child(2),
  main.content .compendium-cast-table td:nth-child(2) {
    width: 16% !important;
  }

  main.content .compendium-cast-table col:nth-child(3),
  main.content .compendium-cast-table th:nth-child(3),
  main.content .compendium-cast-table td:nth-child(3) {
    width: 28% !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  main.content .compendium-cast-table td:nth-child(3) code {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  main.content .compendium-cast-table col:nth-child(4),
  main.content .compendium-cast-table th:nth-child(4),
  main.content .compendium-cast-table td:nth-child(4) {
    width: 48% !important;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
  }

  main.content .b085-change-overview-table col:nth-child(1),
  main.content .b085-change-overview-table th:nth-child(1),
  main.content .b085-change-overview-table td:nth-child(1) {
    width: 18% !important;
    text-align: left;
    white-space: nowrap;
  }

  main.content .b085-change-overview-table col:nth-child(2),
  main.content .b085-change-overview-table th:nth-child(2),
  main.content .b085-change-overview-table td:nth-child(2) {
    width: 82% !important;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
  }

  main.content .additional-scenes-table col:nth-child(1),
  main.content .additional-scenes-table th:nth-child(1),
  main.content .additional-scenes-table td:nth-child(1) {
    width: 8% !important;
    text-align: right;
    white-space: nowrap;
  }

  main.content .additional-scenes-table col:nth-child(2),
  main.content .additional-scenes-table th:nth-child(2),
  main.content .additional-scenes-table td:nth-child(2) {
    width: 22% !important;
  }

  main.content .additional-scenes-table col:nth-child(3),
  main.content .additional-scenes-table th:nth-child(3),
  main.content .additional-scenes-table td:nth-child(3) {
    width: 25% !important;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  main.content .additional-scenes-table td:nth-child(3) code,
  main.content .additional-scenes-table td:nth-child(4) code {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  main.content .additional-scenes-table col:nth-child(4),
  main.content .additional-scenes-table th:nth-child(4),
  main.content .additional-scenes-table td:nth-child(4) {
    width: 45% !important;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
  }

  main.content .legacy-password-overview-table col:nth-child(1),
  main.content .legacy-password-overview-table th:nth-child(1),
  main.content .legacy-password-overview-table td:nth-child(1) {
    width: 12% !important;
    text-align: left;
    white-space: nowrap;
  }

  main.content .legacy-password-overview-table col:nth-child(2),
  main.content .legacy-password-overview-table th:nth-child(2),
  main.content .legacy-password-overview-table td:nth-child(2) {
    width: 40% !important;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
  }

  main.content .legacy-password-overview-table col:nth-child(3),
  main.content .legacy-password-overview-table th:nth-child(3),
  main.content .legacy-password-overview-table td:nth-child(3) {
    width: 48% !important;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
  }

  main.content .gallery-coordinate-table col:nth-child(1),
  main.content .gallery-coordinate-table th:nth-child(1),
  main.content .gallery-coordinate-table td:nth-child(1) {
    width: 7% !important;
    text-align: right;
    white-space: nowrap;
  }

  main.content .gallery-coordinate-table col:nth-child(n + 2),
  main.content .gallery-coordinate-table th:nth-child(n + 2),
  main.content .gallery-coordinate-table td:nth-child(n + 2) {
    width: 23.25% !important;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  main.content .gallery-coordinate-table td:nth-child(n + 2) code {
    white-space: normal;
    overflow-wrap: anywhere;
    text-overflow: clip;
  }
}

main.content img.path-diagram-simple {
  display: block;
  width: 100%;
  max-width: 760px;
  height: auto;
  margin-inline: auto;
}

main.content img.path-diagram-detailed {
  display: block;
  width: 100%;
  max-width: 1180px;
  height: auto;
  margin-inline: auto;
}

/* =========================================================
   Search overlay compact sizing
   ========================================================= */

.aa-DetachedContainer {
  width: min(52rem, calc(100vw - 2.5rem)) !important;
  max-width: 52rem !important;
  max-height: calc(100dvh - 3rem) !important;

  margin: 1.5rem auto !important;

  border-radius: 14px !important;

  font-size: 0.88rem !important;
}

/* 顶部搜索区域 */
.aa-DetachedFormContainer {
  padding: 0.58rem 0.65rem !important;
}

/* 搜索输入框 */
.aa-Form {
  min-height: 2.7rem !important;
  border-radius: 10px !important;
}

.aa-Input {
  height: 2.65rem !important;

  font-size: 0.9rem !important;
  line-height: 1.4 !important;
}

.aa-InputWrapperPrefix,
.aa-InputWrapperSuffix {
  height: 2.65rem !important;
}

/* 搜索和清除图标 */
.aa-SubmitIcon,
.aa-ClearIcon {
  width: 1rem !important;
  height: 1rem !important;
}

/* 取消保持横排 */
.aa-DetachedCancelButton {
  min-width: 3.2rem !important;

  padding: 0.42rem 0.55rem !important;

  font-size: 0.82rem !important;
  line-height: 1.2 !important;

  white-space: nowrap !important;
  writing-mode: horizontal-tb !important;
  word-break: keep-all !important;
}

/* 匹配数量 */
.aa-SourceHeader {
  padding: 0.36rem 0.62rem !important;

  font-size: 0.76rem !important;
}

/* 结果列表 */
.aa-Panel {
  padding: 0.3rem 0.45rem 0.75rem !important;
}

.aa-Item {
  margin: 0.16rem 0 !important;
  padding: 0.56rem 0.68rem !important;

  border-radius: 9px !important;
}

/* 文档标题 */
.aa-ItemContentTitle,
.search-result-title {
  font-size: 0.88rem !important;
  line-height: 1.35 !important;
}

/* 面包屑 */
.aa-ItemContentDescription,
.search-result-context {
  margin-top: 0.12rem !important;

  font-size: 0.72rem !important;
  line-height: 1.35 !important;
}

/* 摘要 */
.search-result-text,
.aa-ItemContentBody {
  margin-top: 0.28rem !important;

  font-size: 0.8rem !important;
  line-height: 1.43 !important;
}

/* “更多匹配结果” */
.search-result-more {
  padding: 0.48rem 0.68rem !important;

  font-size: 0.78rem !important;
}

/* =========================================================
   面包屑和页面标题统一左边界
   ========================================================= */

main.content > .quarto-page-breadcrumbs,
main.content > #title-block-header,
main.content > .quarto-title-block {
  width: 100% !important;

  margin-left: 0 !important;
  margin-right: 0 !important;

  padding-left: 0 !important;
  padding-right: 0 !important;

  justify-self: stretch !important;
}

.quarto-page-breadcrumbs,
.quarto-page-breadcrumbs .breadcrumb,
.quarto-page-breadcrumbs ol {
  margin-left: 0 !important;
  padding-left: 0 !important;

  transform: none !important;
}

#title-block-header,
#title-block-header .quarto-title-block,
#title-block-header .quarto-title {
  margin-left: 0 !important;
  padding-left: 0 !important;
}

/* Color schemes are configured in pw-color-schemes.css. */

/* =========================================================
   Search overlay selected states and text selection
   ========================================================= */

/* 键盘或鼠标当前选中的搜索结果 */
.aa-Item[aria-selected="true"],
.search-result-item[aria-selected="true"],
.search-result-section[aria-selected="true"],
.aa-Item[aria-selected="true"] .search-result-item,
.aa-Item[aria-selected="true"] .search-result-section,
.search-result-item.active,
.search-result-item:hover {
  color: var(--pw-text) !important;

  background:
    color-mix(
      in srgb,
      var(--pw-accent) 11%,
      var(--pw-surface)
    ) !important;

  border-color:
    color-mix(
      in srgb,
      var(--pw-accent) 30%,
      var(--pw-border)
    ) !important;

  box-shadow: none !important;
}

/* 阻止内部块继续使用默认蓝色 */
.aa-Item[aria-selected="true"] *,
.search-result-item[aria-selected="true"] *,
.search-result-section[aria-selected="true"] *,
.search-result-item.active * {
  color: inherit !important;
  background-color: transparent !important;
}

/* 标题保持较深 */
.aa-Item[aria-selected="true"] .aa-ItemContentTitle,
.aa-Item[aria-selected="true"] .search-result-title,
.search-result-item[aria-selected="true"] .search-result-title {
  color: var(--pw-text) !important;
}

/* 摘要稍弱，但不能变成蓝色 */
.aa-Item[aria-selected="true"] .search-result-text,
.aa-Item[aria-selected="true"] .aa-ItemContentBody,
.search-result-item[aria-selected="true"] .search-result-text {
  color: var(--pw-text-soft) !important;
}

/* 搜索关键词高亮 */
.aa-Item mark,
.search-result-item mark,
.search-result-text mark {
  color: var(--pw-text) !important;

  background:
    color-mix(
      in srgb,
      var(--pw-accent) 22%,
      transparent
    ) !important;

  border-radius: 3px;
  padding: 0 0.08em;
}

/*
  用户真正拖动鼠标选择文字时，
  也使用暖金色，而不是浏览器默认蓝色。
*/
.aa-DetachedContainer ::selection {
  color: var(--pw-text);
  background:
    color-mix(
      in srgb,
      var(--pw-accent) 30%,
      transparent
    );
}

/* =========================================================
   十二枚奖牌详细索引：定点列宽
   ========================================================= */

.table-medal-index {
  width: 100%;
  max-width: 100%;

  overflow-x: auto;

  border-radius: var(--pw-radius-md);
}

/*
  使用 fixed，让列宽严格服从下方比例，
  不再由长代码自动抢走大量空间。
*/
.table-medal-index table {
  width: 100% !important;
  min-width: 58rem !important;
  max-width: none !important;

  table-layout: fixed !important;

  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* 同时覆盖 Quarto 可能生成的 colgroup */
.table-medal-index col:nth-child(1) {
  width: 14% !important;
}

.table-medal-index col:nth-child(2) {
  width: 15% !important;
}

.table-medal-index col:nth-child(3) {
  width: 39% !important;
}

.table-medal-index col:nth-child(4) {
  width: 32% !important;
}

/* 奖牌名称 */
.table-medal-index th:nth-child(1),
.table-medal-index td:nth-child(1) {
  width: 14% !important;

  white-space: normal !important;
  overflow-wrap: break-word;
}

/* 必需路线 */
.table-medal-index th:nth-child(2),
.table-medal-index td:nth-child(2) {
  width: 15% !important;

  white-space: normal !important;
}

/* 玩家侧剧情位置：获得最多空间 */
.table-medal-index th:nth-child(3),
.table-medal-index td:nth-child(3) {
  width: 39% !important;

  white-space: normal !important;
  overflow-wrap: break-word;
}

/* 实际写入节点 */
.table-medal-index th:nth-child(4),
.table-medal-index td:nth-child(4) {
  width: 32% !important;

  white-space: normal !important;
  overflow-wrap: break-word;
}

/*
  单个代码标签不从中间断开，
  但多个代码标签之间仍可自然换行。
*/
.table-medal-index td:nth-child(4) code {
  display: inline-block;

  max-width: 100%;

  white-space: nowrap;
}

/* 桌面端稍微缩小该表字号，提高信息密度 */
@media (min-width: 900px) {
  .table-medal-index table {
    font-size: 0.91rem;
  }

  .table-medal-index th,
  .table-medal-index td {
    padding:
      0.66rem
      0.7rem !important;
  }
}

/* =========================================================
   Gallery CG 定位器
   ========================================================= */

#gallery-locator-root {
  margin: 2rem 0 2.5rem;
}

.gallery-locator {
  container: gallery-locator / inline-size;
  min-width: 0;
  padding: 1.25rem;

  color: var(--pw-text);
  background: var(--pw-surface-soft);

  border: 1px solid var(--pw-border);
  border-radius: 12px;
}

.gallery-locator-header {
  margin-bottom: 1.15rem;
}

.gallery-locator-header h2 {
  margin: 0 0 0.45rem !important;
  padding: 0 !important;

  font-size: 1.35rem !important;

  border: 0 !important;
}

.gallery-locator-header h2::before {
  content: none !important;
}

.gallery-locator-header p {
  margin: 0.25rem 0;
  color: var(--pw-text-soft);
}

.gallery-locator .gallery-locator-count {
  color: var(--pw-accent-hover);
  font-size: 0.9rem;
  font-weight: 680;
}

#gallery-locator-root .gallery-locator-section {
  min-width: 0;
  margin: 0;
  padding: 1.1rem 1rem 1rem;

  background: var(--pw-surface);

  border: 1px solid var(--pw-border);
  border-radius: 10px;
}

#gallery-locator-root .gallery-locator-section + .gallery-locator-section {
  margin-top: 0.85rem;
}

#gallery-locator-root .gallery-locator-section legend {
  float: left;
  width: 100%;
  margin: 0 0 0.8rem;
  padding: 0;

  color: var(--pw-text);
  background: transparent;

  font-size: 0.94rem;
  font-weight: 700;
  line-height: 1.45;
}

#gallery-locator-root .gallery-locator-section legend + * {
  clear: both;
}

.gallery-locator-controls {
  display: grid;
  grid-template-columns: auto minmax(8rem, 1.2fr) auto minmax(4rem, 0.55fr) auto minmax(4rem, 0.55fr) auto;
  gap: 0.55rem;
  align-items: center;
}

.gallery-locator label {
  margin: 0;
  color: var(--pw-text-soft);
  font-size: 0.88rem;
  font-weight: 650;
}

.gallery-locator select,
.gallery-locator input,
.gallery-locator button {
  min-width: 0;
  min-height: 2.55rem;
  font: inherit;
  border-radius: 8px;
}

.gallery-locator select,
.gallery-locator input {
  width: 100%;
  padding: 0.48rem 0.68rem;

  color: var(--pw-text);
  background: var(--pw-surface);

  border: 1px solid var(--pw-border-strong);
}

.gallery-locator select:focus,
.gallery-locator input:focus {
  border-color: var(--pw-accent);
  outline: 0;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pw-accent) 18%, transparent);
}

.gallery-locator button {
  padding: 0.48rem 0.9rem;

  color: var(--pw-text);
  background: var(--pw-accent-soft);

  border: 1px solid color-mix(in srgb, var(--pw-accent) 55%, var(--pw-border));

  font-weight: 680;
  cursor: pointer;

  transition:
    background-color var(--pw-transition),
    border-color var(--pw-transition),
    box-shadow var(--pw-transition);
}

.gallery-locator button:hover {
  background: color-mix(in srgb, var(--pw-accent) 16%, var(--pw-surface));
  border-color: var(--pw-accent);
}

.gallery-locator button:focus-visible {
  border-color: var(--pw-accent-hover);
  outline: 0;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pw-accent) 20%, transparent);
}

.gallery-locator-search > label {
  display: block;
  margin-bottom: 0.4rem;
}

.gallery-locator-search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.55rem;
}

#gallery-locator-root .gallery-search-results {
  display: grid;
  gap: 0.42rem;

  max-height: 22rem;
  margin-top: 0.75rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}

#gallery-locator-root .gallery-search-results:empty {
  display: none;
}

#gallery-locator-root .gallery-locator-result {
  display: grid;
  grid-template-columns: minmax(8rem, 0.7fr) minmax(12rem, 1.3fr);
  gap: 0.25rem 0.75rem;
  align-items: start;

  min-height: 0;
  padding: 0.58rem 0.7rem;

  color: var(--pw-text);
  background: var(--pw-surface);

  border-color: var(--pw-border);

  text-align: left;
}

#gallery-locator-root .gallery-locator-result:hover {
  background: color-mix(in srgb, var(--pw-accent) 9%, var(--pw-surface));
}

#gallery-locator-root .gallery-locator-result strong {
  color: var(--pw-primary-hover);
  overflow-wrap: anywhere;
}

#gallery-locator-root .gallery-locator-result span {
  color: var(--pw-text-soft);
  font-size: 0.84rem;
  overflow-wrap: anywhere;
}

#gallery-locator-root .gallery-result-trigger,
#gallery-locator-root .gallery-result-match,
#gallery-locator-root .gallery-result-context {
  grid-column: 1 / -1;
}

#gallery-locator-root .gallery-result-match {
  color: var(--pw-text-faint);
  font-size: 0.79rem;
}

#gallery-locator-root .gallery-result-trigger {
  color: var(--pw-text);
}

#gallery-locator-root .gallery-result-context {
  display: -webkit-box;
  overflow: hidden;

  line-height: 1.48;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

#gallery-locator-root .gallery-location-output:empty,
#gallery-locator-root .gallery-location-status:empty,
#gallery-locator-root .gallery-location-detail:empty,
#gallery-locator-root .gallery-search-status:empty,
#gallery-locator-root .gallery-search-detail:empty {
  display: none;
}

#gallery-locator-root .gallery-detail-card {
  margin-top: 0.9rem;
  padding: 1rem;

  background: var(--pw-surface);

  border: 1px solid var(--pw-border);
  border-radius: 10px;
  box-shadow: var(--pw-shadow-soft);
}

#gallery-locator-root .gallery-detail-card h3 {
  margin: 0 0 0.8rem;
  padding: 0;

  color: var(--pw-primary-hover);
  font-size: 1.08rem;
  line-height: 1.4;

  border: 0;
}

#gallery-locator-root .gallery-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem 1rem;

  margin: 0;
}

#gallery-locator-root .gallery-detail-grid > div:nth-child(3),
#gallery-locator-root .gallery-detail-context {
  grid-column: 1 / -1;
}

#gallery-locator-root .gallery-detail-grid dt {
  margin: 0 0 0.18rem;

  color: var(--pw-text-soft);
  font-size: 0.8rem;
  font-weight: 680;
  letter-spacing: 0.02em;
}

#gallery-locator-root .gallery-detail-grid dd {
  margin: 0;

  color: var(--pw-text);
  font-size: 0.92rem;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

#gallery-locator-root .gallery-detail-context dd {
  white-space: normal;
}

#gallery-locator-root .gallery-location-status,
#gallery-locator-root .gallery-search-status,
.gallery-locator-status {
  min-height: 1.5rem;
  margin-top: 0.9rem;
  padding: 0.7rem 0.8rem;

  color: var(--pw-text-soft);
  background: color-mix(in srgb, var(--pw-accent) 6%, var(--pw-surface));

  border-left: 3px solid var(--pw-accent);
  border-radius: 6px;

  font-size: 0.9rem;
  white-space: pre-line;
}

.gallery-locator-error .gallery-locator-status {
  color: var(--pw-caution-border);
  background: var(--pw-caution-bg);
  border-left-color: var(--pw-caution-border);
}

.gallery-grid {
  contain: inline-size;
  max-width: 100%;
  overflow-x: auto;
  scroll-margin-block: 7rem;
}

.gallery-grid td.gallery-cell-match {
  background: color-mix(in srgb, var(--pw-accent) 12%, var(--pw-surface)) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--pw-accent) 70%, transparent);
}

.gallery-grid td.gallery-cell-target,
.gallery-grid td.gallery-cell-target.gallery-cell-match {
  position: relative;
  z-index: 1;

  background: color-mix(in srgb, var(--pw-accent) 20%, var(--pw-surface)) !important;
  box-shadow:
    inset 0 0 0 2px var(--pw-accent-hover),
    0 0 0 3px color-mix(in srgb, var(--pw-accent) 16%, transparent);
}

.gallery-grid td.gallery-cell-target:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--pw-accent) 48%, transparent);
  outline-offset: 2px;
}

@media (max-width: 760px) {
  .gallery-locator {
    padding: 0.9rem;
  }
}

@container gallery-locator (max-width: 42rem) {
  .gallery-locator-controls {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .gallery-locator-controls button {
    grid-column: 1 / -1;
    width: 100%;
  }

  .gallery-locator-search-row {
    grid-template-columns: 1fr;
  }

  .gallery-locator-search-row button {
    width: 100%;
  }

  #gallery-locator-root .gallery-locator-result {
    grid-template-columns: 1fr;
    gap: 0.18rem;
  }

  #gallery-locator-root .gallery-result-trigger,
  #gallery-locator-root .gallery-result-match,
  #gallery-locator-root .gallery-result-context {
    grid-column: auto;
  }

  #gallery-locator-root .gallery-detail-grid {
    grid-template-columns: 1fr;
  }

  #gallery-locator-root .gallery-detail-grid > div:nth-child(3),
  #gallery-locator-root .gallery-detail-context {
    grid-column: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gallery-locator *,
  .gallery-cell-match,
  .gallery-cell-target {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

/* =========================================================
   Gallery 完整触发索引（仅限本页折叠索引）
   ========================================================= */

/* Keep the expanded Gallery index control within reach on every screen size. */
#gallery-trigger-index {
  overflow: hidden;
}

#gallery-trigger-index.gallery-index-open {
  overflow: visible;
}

#gallery-trigger-index > .callout-collapse {
  border-radius: 0 0 9px 7px;
  overflow: hidden;
}

#gallery-trigger-index > .callout-header {
  width: 100%;
  border: 0;
  border-radius: 8px 8px 0 0;
  text-align: left;
  align-items: center;
  gap: .5rem;
  cursor: pointer;
  font: inherit;
}

#gallery-trigger-index.gallery-index-open > .callout-header {
  position: sticky;
  top: var(--gallery-index-top, var(--pw-navbar-height));
  z-index: 20;
  box-shadow: 0 2px 5px rgb(0 0 0 / .12);
}

/* Mask the enclosing straight edges behind the rounded sticky control. */
#gallery-trigger-index.gallery-index-open > .callout-header {
  isolation: isolate;
  border-radius: 8px 8px 0 0;
  background: transparent !important;
  box-shadow: none;
}

#gallery-trigger-index.gallery-index-open > .callout-header::before,
#gallery-trigger-index.gallery-index-open > .callout-header::after {
  content: "";
  position: absolute;
  inset: 0 -1px 0 -3px;
  pointer-events: none;
}

#gallery-trigger-index.gallery-index-open > .callout-header::before {
  z-index: -2;
  background: var(--pw-bg);
}

#gallery-trigger-index.gallery-index-open > .callout-header::after {
  z-index: -1;
  border: 1px solid var(--pw-border);
  border-left: 3px solid var(--pw-callout-color);
  border-radius: inherit;
  background: color-mix(in srgb, var(--pw-callout-color) 9%, var(--pw-surface));
}

#gallery-trigger-index > .callout-header:focus-visible {
  outline: 2px solid var(--pw-accent);
  outline-offset: 2px;
}

#gallery-trigger-index > .callout-header .callout-title-container {
  min-width: 0;
}

#gallery-trigger-index > .callout-header .callout-btn-toggle {
  display: none !important;
}

#gallery-trigger-index .gallery-index-action {
  flex: 0 0 auto;
  color: var(--pw-primary);
  font-size: .85rem;
  font-weight: 650;
}

@media (max-width: 759.98px) {
  #gallery-trigger-index > .callout-header {
    min-height: 44px;
    padding: .45rem .6rem !important;
  }
  #gallery-trigger-index > .callout-header .callout-title-container {
    font-size: .9rem;
  }
}

#gallery-trigger-index .gallery-trigger-group {
  min-width: 0;
  max-width: 100%;
}

#gallery-trigger-index .gallery-trigger-group .gallery-trigger-table-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

#gallery-trigger-index .gallery-trigger-group table {
  display: table;
  table-layout: fixed !important;

  width: 100% !important;
  min-width: 68rem;
  max-width: none !important;
}

#gallery-trigger-index .gallery-trigger-group col:nth-child(2),
#gallery-trigger-index .gallery-trigger-group th:nth-child(2),
#gallery-trigger-index .gallery-trigger-group td:nth-child(2) {
  display: none;
}

#gallery-trigger-index .gallery-trigger-group col:nth-child(1),
#gallery-trigger-index .gallery-trigger-group th:nth-child(1),
#gallery-trigger-index .gallery-trigger-group td:nth-child(1) {
  width: 18% !important;
}

#gallery-trigger-index .gallery-trigger-group col:nth-child(3),
#gallery-trigger-index .gallery-trigger-group th:nth-child(3),
#gallery-trigger-index .gallery-trigger-group td:nth-child(3) {
  width: 29% !important;
}

#gallery-trigger-index .gallery-trigger-group col:nth-child(4),
#gallery-trigger-index .gallery-trigger-group th:nth-child(4),
#gallery-trigger-index .gallery-trigger-group td:nth-child(4) {
  width: 53% !important;
}

#gallery-trigger-index .gallery-trigger-group th,
#gallery-trigger-index .gallery-trigger-group td {
  height: auto;
  padding: 0.62rem 0.68rem !important;

  vertical-align: top;
  white-space: normal;
}

#gallery-trigger-index .gallery-trigger-group th:nth-child(1),
#gallery-trigger-index .gallery-trigger-group td:nth-child(1) {
  overflow-wrap: break-word;
  word-break: normal;
}

#gallery-trigger-index .gallery-trigger-group th:nth-child(4),
#gallery-trigger-index .gallery-trigger-group td:nth-child(4) {
  font-size: 0.9rem;
  line-height: 1.55;
}

#gallery-trigger-index .gallery-trigger-group code {
  display: inline-block;

  max-width: none;

  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
}

/* Gallery 页底部：不在画廊内的四条索引 */

#gallery-non-gallery-index.gallery-non-gallery-index {
  min-width: 0;
  max-width: 100%;
}

#gallery-non-gallery-index.gallery-non-gallery-index .gallery-non-gallery-table-scroll {
  contain: inline-size;

  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

#gallery-non-gallery-index.gallery-non-gallery-index table {
  display: table;
  table-layout: fixed !important;

  width: 100% !important;
  min-width: 68rem;
  max-width: none !important;
}

#gallery-non-gallery-index.gallery-non-gallery-index col:nth-child(2),
#gallery-non-gallery-index.gallery-non-gallery-index th:nth-child(2),
#gallery-non-gallery-index.gallery-non-gallery-index td:nth-child(2) {
  display: none;
}

#gallery-non-gallery-index.gallery-non-gallery-index col:nth-child(1),
#gallery-non-gallery-index.gallery-non-gallery-index th:nth-child(1),
#gallery-non-gallery-index.gallery-non-gallery-index td:nth-child(1) {
  width: 18% !important;
}

#gallery-non-gallery-index.gallery-non-gallery-index col:nth-child(3),
#gallery-non-gallery-index.gallery-non-gallery-index th:nth-child(3),
#gallery-non-gallery-index.gallery-non-gallery-index td:nth-child(3) {
  width: 31% !important;
}

#gallery-non-gallery-index.gallery-non-gallery-index col:nth-child(4),
#gallery-non-gallery-index.gallery-non-gallery-index th:nth-child(4),
#gallery-non-gallery-index.gallery-non-gallery-index td:nth-child(4) {
  width: 51% !important;
}

#gallery-non-gallery-index.gallery-non-gallery-index th,
#gallery-non-gallery-index.gallery-non-gallery-index td {
  height: auto;
  padding: 0.62rem 0.68rem !important;

  vertical-align: top;
  white-space: normal;
}

#gallery-non-gallery-index.gallery-non-gallery-index th:nth-child(1),
#gallery-non-gallery-index.gallery-non-gallery-index td:nth-child(1) {
  overflow-wrap: break-word;
  word-break: normal;
}

#gallery-non-gallery-index.gallery-non-gallery-index th:nth-child(4),
#gallery-non-gallery-index.gallery-non-gallery-index td:nth-child(4) {
  font-size: 0.9rem;
  line-height: 1.55;
}

#gallery-non-gallery-index.gallery-non-gallery-index code {
  display: inline-block;

  max-width: none;

  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
}

/* =========================================================
   Affection differences: wide threshold tables
   ========================================================= */

.affection-difference-table {
  width: 100%;
  max-width: 100%;
  min-width: 0;

  margin: 0.8rem 0 1.2rem;

  overflow-x: auto;
  overflow-y: hidden;

  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;

  scrollbar-width: thin;
  scrollbar-color: var(--pw-border-strong) transparent;
}

/*
  覆盖全局表格的 fit-content、max-width 和 auto layout。
  该表必须使用固定布局，列宽比例才能稳定生效。
*/
main.content .affection-difference-table table {
  width: 100% !important;
  min-width: 68rem !important;
  max-width: none !important;

  margin: 0 !important;

  table-layout: fixed !important;
}

/* 检定条件 */
main.content .affection-difference-table col:nth-child(1),
main.content .affection-difference-table th:nth-child(1),
main.content .affection-difference-table td:nth-child(1) {
  width: 15% !important;
}

/* 主要剧情节点 */
main.content .affection-difference-table col:nth-child(2),
main.content .affection-difference-table th:nth-child(2),
main.content .affection-difference-table td:nth-child(2) {
  width: 22% !important;
}

/* 附加条件 */
main.content .affection-difference-table col:nth-child(3),
main.content .affection-difference-table th:nth-child(3),
main.content .affection-difference-table td:nth-child(3) {
  width: 25% !important;
}

/* 实际文本或流程差异 */
main.content .affection-difference-table col:nth-child(4),
main.content .affection-difference-table th:nth-child(4),
main.content .affection-difference-table td:nth-child(4) {
  width: 38% !important;
}

/*
  允许单元格正常换行。
  否则全局 :has(> code) 规则可能使整个附加条件单元格不换行。
*/
main.content .affection-difference-table th,
main.content .affection-difference-table td {
  vertical-align: top;

  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
}

main.content .affection-difference-table td:nth-child(4) {
  font-size: 0.94rem;
  line-height: 1.62;
}

/*
  单个变量和条件代码标签保持完整，
  但同一单元格中的普通文字仍然可以换行。
*/
main.content .affection-difference-table code {
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
}

@media (max-width: 760px) {
  main.content .affection-difference-table table {
    min-width: 64rem !important;
  }
}

/* Medal narrative context table */
main.content .medal-context-table.table-responsive {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto !important;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

main.content .medal-context-table table {
  margin-bottom: 0;
}

main.content .medal-context-table th,
main.content .medal-context-table td {
  vertical-align: top;
}

main.content .medal-context-table th:nth-child(1),
main.content .medal-context-table td:nth-child(1) {
  white-space: nowrap;
}

main.content .medal-context-table th:nth-child(2),
main.content .medal-context-table td:nth-child(2) {
  white-space: normal !important;
  overflow-wrap: break-word;
  word-break: normal;
}

/* 手机与窄屏：保持宽表格，在表格内部横向滚动 */
@media (max-width: 759.98px) {
  main.content .medal-context-table table {
    width: 820px !important;
    min-width: 820px !important;
    table-layout: fixed !important;
  }

  main.content .medal-context-table col:nth-child(1),
  main.content .medal-context-table th:nth-child(1),
  main.content .medal-context-table td:nth-child(1) {
    width: 20% !important;
  }

  main.content .medal-context-table col:nth-child(2),
  main.content .medal-context-table th:nth-child(2),
  main.content .medal-context-table td:nth-child(2) {
    width: 80% !important;
  }
}

/* 平板与桌面：填满正文宽度，按 20% / 80% 排列 */
@media (min-width: 760px) {
  main.content .medal-context-table table {
    width: 100% !important;
    min-width: 0;
    table-layout: fixed !important;
  }

  main.content .medal-context-table col:nth-child(1),
  main.content .medal-context-table th:nth-child(1),
  main.content .medal-context-table td:nth-child(1) {
    width: 20% !important;
  }

  main.content .medal-context-table col:nth-child(2),
  main.content .medal-context-table th:nth-child(2),
  main.content .medal-context-table td:nth-child(2) {
    width: 80% !important;
  }
}

/* =========================================================
   English guide: semantic table sizing and dense data tables
   ========================================================= */

main.content .path-exception-comparison-table,
main.content .medal-route-plan-table,
main.content .additional-scenes-table,
main.content .compendium-lore-table,
main.content .password-result-table,
main.content .password-check-stages-table,
main.content .affection-d19-summary-table,
main.content .affection-shared-gains-table,
main.content .affection-point-table,
main.content .easter-vault-table,
main.content .easter-special-input-table,
main.content .easter-wrong-day-table {
  min-width: 0;
}

main.content .path-exception-comparison-table {
  --pw-table-min-width: 52rem;
}

main.content .medal-route-plan-table {
  --pw-table-min-width: 44rem;
}

main.content .additional-scenes-table {
  --pw-table-min-width: 42rem;
}

main.content .compendium-lore-table {
  --pw-table-min-width: 36rem;
  width: 100% !important;
  max-width: 56rem !important;
  margin-right: auto;
}

main.content .password-result-table {
  --pw-table-min-width: 34rem;
}

main.content .password-check-stages-table {
  --pw-table-min-width: 40rem;
}

main.content .affection-d19-summary-table {
  --pw-table-min-width: 54rem;
}

main.content .affection-shared-gains-table {
  --pw-table-min-width: 40rem;
}

main.content .affection-point-table {
  --pw-table-min-width: 50rem;
}

main.content .easter-vault-table {
  --pw-table-min-width: 38rem;
  width: min(100%, 62rem);
  margin-right: auto;
}

main.content .easter-special-input-table {
  --pw-table-min-width: 52rem;
}

main.content .easter-wrong-day-table {
  --pw-table-min-width: 38rem;
  margin-bottom: 1.25rem;
}

main.content .path-summary-table table,
main.content .path-exception-comparison-table table,
main.content .medal-route-plan-table table,
main.content .additional-scenes-table table,
main.content .compendium-lore-table table,
main.content .password-result-table table,
main.content .password-check-stages-table table,
main.content .affection-d19-summary-table table,
main.content .affection-shared-gains-table table,
main.content .affection-point-table table,
main.content .easter-vault-table table,
main.content .easter-special-input-table table,
main.content .easter-wrong-day-table table {
  width: 100% !important;
  max-width: none !important;
  margin-bottom: 0 !important;
  table-layout: fixed !important;
}

main.content .path-summary-table th,
main.content .path-summary-table td,
main.content .path-exception-comparison-table th,
main.content .path-exception-comparison-table td,
main.content .medal-route-plan-table th,
main.content .medal-route-plan-table td,
main.content .additional-scenes-table th,
main.content .additional-scenes-table td,
main.content .compendium-lore-table th,
main.content .compendium-lore-table td,
main.content .password-result-table th,
main.content .password-result-table td,
main.content .password-check-stages-table th,
main.content .password-check-stages-table td,
main.content .affection-d19-summary-table th,
main.content .affection-d19-summary-table td,
main.content .affection-shared-gains-table th,
main.content .affection-shared-gains-table td,
main.content .affection-point-table th,
main.content .affection-point-table td,
main.content .easter-vault-table th,
main.content .easter-vault-table td,
main.content .easter-special-input-table th,
main.content .easter-special-input-table td,
main.content .easter-wrong-day-table th,
main.content .easter-wrong-day-table td {
  vertical-align: top;
}

main.content .path-summary-table col:nth-child(1),
main.content .path-summary-table th:nth-child(1),
main.content .path-summary-table td:nth-child(1) {
  width: 7.5rem !important;
}

main.content .path-summary-table col:nth-child(2),
main.content .path-summary-table th:nth-child(2),
main.content .path-summary-table td:nth-child(2) {
  width: calc(100% - 7.5rem) !important;
}

main.content .path-exception-comparison-table col:nth-child(1),
main.content .path-exception-comparison-table th:nth-child(1),
main.content .path-exception-comparison-table td:nth-child(1) {
  width: 20% !important;
}

main.content .path-exception-comparison-table col:nth-child(2),
main.content .path-exception-comparison-table th:nth-child(2),
main.content .path-exception-comparison-table td:nth-child(2),
main.content .path-exception-comparison-table col:nth-child(3),
main.content .path-exception-comparison-table th:nth-child(3),
main.content .path-exception-comparison-table td:nth-child(3) {
  width: 40% !important;
}

main.content .path-exception-comparison-table td:nth-child(2),
main.content .path-exception-comparison-table td:nth-child(3) {
  white-space: normal !important;
  overflow-wrap: break-word;
  word-break: normal;
}

main.content .path-exception-comparison-table td code {
  white-space: nowrap;
}

main.content .medal-route-plan-table col:nth-child(1),
main.content .medal-route-plan-table th:nth-child(1),
main.content .medal-route-plan-table td:nth-child(1) {
  width: 12% !important;
}

main.content .medal-route-plan-table col:nth-child(2),
main.content .medal-route-plan-table th:nth-child(2),
main.content .medal-route-plan-table td:nth-child(2) {
  width: 24% !important;
}

main.content .medal-route-plan-table col:nth-child(3),
main.content .medal-route-plan-table th:nth-child(3),
main.content .medal-route-plan-table td:nth-child(3) {
  width: 31% !important;
}

main.content .medal-route-plan-table col:nth-child(4),
main.content .medal-route-plan-table th:nth-child(4),
main.content .medal-route-plan-table td:nth-child(4) {
  width: 33% !important;
}

main.content .additional-scenes-table col:nth-child(1),
main.content .additional-scenes-table th:nth-child(1),
main.content .additional-scenes-table td:nth-child(1),
main.content .compendium-lore-table col:nth-child(1),
main.content .compendium-lore-table th:nth-child(1),
main.content .compendium-lore-table td:nth-child(1) {
  width: 4.75rem !important;
}

main.content .additional-scenes-table col:nth-child(2),
main.content .additional-scenes-table th:nth-child(2),
main.content .additional-scenes-table td:nth-child(2) {
  width: 15.5rem !important;
}

main.content .additional-scenes-table col:nth-child(3),
main.content .additional-scenes-table th:nth-child(3),
main.content .additional-scenes-table td:nth-child(3) {
  width: calc(100% - 20.25rem) !important;
}

main.content .compendium-lore-table col:nth-child(2),
main.content .compendium-lore-table th:nth-child(2),
main.content .compendium-lore-table td:nth-child(2) {
  width: 10rem !important;
}

main.content .compendium-lore-table col:nth-child(3),
main.content .compendium-lore-table th:nth-child(3),
main.content .compendium-lore-table td:nth-child(3) {
  width: calc(100% - 14.75rem) !important;
}

main.content .password-result-table col:nth-child(1),
main.content .password-result-table th:nth-child(1),
main.content .password-result-table td:nth-child(1) {
  width: 58% !important;
}

main.content .password-result-table col:nth-child(2),
main.content .password-result-table th:nth-child(2),
main.content .password-result-table td:nth-child(2) {
  width: 42% !important;
}

main.content .password-check-stages-table col:nth-child(1),
main.content .password-check-stages-table th:nth-child(1),
main.content .password-check-stages-table td:nth-child(1) {
  width: 28% !important;
}

main.content .password-check-stages-table col:nth-child(2),
main.content .password-check-stages-table th:nth-child(2),
main.content .password-check-stages-table td:nth-child(2) {
  width: 4.75rem !important;
}

main.content .password-check-stages-table col:nth-child(3),
main.content .password-check-stages-table th:nth-child(3),
main.content .password-check-stages-table td:nth-child(3) {
  width: calc(72% - 4.75rem) !important;
}

main.content .affection-d19-summary-table col:nth-child(1),
main.content .affection-d19-summary-table th:nth-child(1),
main.content .affection-d19-summary-table td:nth-child(1) {
  width: 11% !important;
}

main.content .affection-d19-summary-table col:nth-child(2),
main.content .affection-d19-summary-table th:nth-child(2),
main.content .affection-d19-summary-table td:nth-child(2) {
  width: 17% !important;
}

main.content .affection-d19-summary-table col:nth-child(3),
main.content .affection-d19-summary-table th:nth-child(3),
main.content .affection-d19-summary-table td:nth-child(3) {
  width: 20% !important;
}

main.content .affection-d19-summary-table col:nth-child(4),
main.content .affection-d19-summary-table th:nth-child(4),
main.content .affection-d19-summary-table td:nth-child(4) {
  width: 30% !important;
}

main.content .affection-d19-summary-table col:nth-child(5),
main.content .affection-d19-summary-table th:nth-child(5),
main.content .affection-d19-summary-table td:nth-child(5) {
  width: 22% !important;
}

main.content .affection-shared-gains-table col:nth-child(1),
main.content .affection-shared-gains-table th:nth-child(1),
main.content .affection-shared-gains-table td:nth-child(1) {
  width: 45% !important;
}

main.content .affection-shared-gains-table col:nth-child(2),
main.content .affection-shared-gains-table th:nth-child(2),
main.content .affection-shared-gains-table td:nth-child(2) {
  width: 17% !important;
}

main.content .affection-shared-gains-table col:nth-child(3),
main.content .affection-shared-gains-table th:nth-child(3),
main.content .affection-shared-gains-table td:nth-child(3) {
  width: 38% !important;
}

main.content .affection-point-table col:nth-child(1),
main.content .affection-point-table th:nth-child(1),
main.content .affection-point-table td:nth-child(1),
main.content .affection-point-table col:nth-child(4),
main.content .affection-point-table th:nth-child(4),
main.content .affection-point-table td:nth-child(4) {
  width: 4.75rem !important;
}

main.content .affection-point-table col:nth-child(2),
main.content .affection-point-table th:nth-child(2),
main.content .affection-point-table td:nth-child(2) {
  width: 52% !important;
}

main.content .affection-point-table col:nth-child(3),
main.content .affection-point-table th:nth-child(3),
main.content .affection-point-table td:nth-child(3) {
  width: calc(48% - 9.5rem) !important;
}

main.content .affection-point-table th,
main.content .affection-point-table td {
  padding-top: 0.46rem;
  padding-bottom: 0.46rem;
  line-height: 1.48;
}

main.content .easter-vault-table col:nth-child(1),
main.content .easter-vault-table th:nth-child(1),
main.content .easter-vault-table td:nth-child(1) {
  width: 4.75rem !important;
}

main.content .easter-vault-table col:nth-child(2),
main.content .easter-vault-table th:nth-child(2),
main.content .easter-vault-table td:nth-child(2) {
  width: 14rem !important;
}

main.content .easter-vault-table col:nth-child(3),
main.content .easter-vault-table th:nth-child(3),
main.content .easter-vault-table td:nth-child(3) {
  width: calc(100% - 18.75rem) !important;
}

main.content .easter-special-input-table col:nth-child(1),
main.content .easter-special-input-table th:nth-child(1),
main.content .easter-special-input-table td:nth-child(1) {
  width: 16% !important;
}

main.content .easter-special-input-table col:nth-child(2),
main.content .easter-special-input-table th:nth-child(2),
main.content .easter-special-input-table td:nth-child(2) {
  width: 17% !important;
}

main.content .easter-special-input-table col:nth-child(3),
main.content .easter-special-input-table th:nth-child(3),
main.content .easter-special-input-table td:nth-child(3) {
  width: 30% !important;
}

main.content .easter-special-input-table col:nth-child(4),
main.content .easter-special-input-table th:nth-child(4),
main.content .easter-special-input-table td:nth-child(4) {
  width: 12% !important;
}

main.content .easter-special-input-table col:nth-child(5),
main.content .easter-special-input-table th:nth-child(5),
main.content .easter-special-input-table td:nth-child(5) {
  width: 25% !important;
}

main.content .easter-special-input-table th,
main.content .easter-special-input-table td {
  white-space: normal !important;
  overflow-wrap: break-word;
  word-break: normal;
}

main.content .easter-special-input-table code {
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
}

main.content .easter-wrong-day-table col:nth-child(1),
main.content .easter-wrong-day-table th:nth-child(1),
main.content .easter-wrong-day-table td:nth-child(1) {
  width: 7.5rem !important;
}

main.content .easter-wrong-day-table col:nth-child(2),
main.content .easter-wrong-day-table th:nth-child(2),
main.content .easter-wrong-day-table td:nth-child(2) {
  width: calc(100% - 7.5rem) !important;
}

/* Keep the Cast Files order and name columns compact on narrow screens. */
main.content .compendium-cast-table table {
  min-width: 46rem !important;
  table-layout: fixed !important;
}

main.content .compendium-cast-table col:nth-child(1),
main.content .compendium-cast-table th:nth-child(1),
main.content .compendium-cast-table td:nth-child(1) {
  width: 4.5rem !important;
  text-align: right;
  white-space: nowrap;
}

main.content .compendium-cast-table col:nth-child(2),
main.content .compendium-cast-table th:nth-child(2),
main.content .compendium-cast-table td:nth-child(2) {
  width: 11rem !important;
}

main.content .compendium-cast-table col:nth-child(3),
main.content .compendium-cast-table th:nth-child(3),
main.content .compendium-cast-table td:nth-child(3) {
  width: 12rem !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
}

main.content .compendium-cast-table col:nth-child(4),
main.content .compendium-cast-table th:nth-child(4),
main.content .compendium-cast-table td:nth-child(4) {
  width: calc(100% - 27.5rem) !important;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
}

main.content .compendium-cast-table td:nth-child(3) code {
  white-space: normal;
  overflow-wrap: anywhere;
}

/* Bilingual page switch in the existing navbar utility group. */
.pw-language-switch {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;

  min-width: 2.5rem;
  height: 2.2rem;
  padding: 0 0.42rem;
  margin: 0;

  color: var(--pw-text-soft) !important;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 9px;

  font-size: 0.76rem;
  font-weight: 720;
  line-height: 1;
  text-decoration: none !important;
  white-space: nowrap;
}

.pw-language-switch:hover,
.pw-language-switch:focus-visible {
  color: var(--pw-text) !important;
  background: var(--pw-surface-soft);
  border-color: var(--pw-border);
}

/* =========================================================
   English guide: warm paper shell
   ========================================================= */

body.quarto-light,
.quarto-light body {
  --pw-shell-surface: #f7f4ee;
  --pw-shell-surface-raised: #fffdf9;
  --pw-interactive-surface: #f1ede5;
  --pw-shell-hover: #ebe5da;
  --pw-shell-border: #ddd7cc;
}

.navbar {
  background: color-mix(
    in srgb,
    var(--pw-shell-surface-raised) 94%,
    transparent
  ) !important;
  border-bottom-color: var(--pw-shell-border);
}

.navbar .dropdown-menu,
.pw-edge-toggle {
  background: color-mix(
    in srgb,
    var(--pw-shell-surface-raised) 96%,
    transparent
  );
}

#quarto-sidebar,
#quarto-margin-sidebar,
#quarto-header .quarto-secondary-nav,
body.pw-custom-layout-ready #quarto-sidebar,
body.pw-custom-layout-ready #quarto-margin-sidebar {
  background: color-mix(
    in srgb,
    var(--pw-shell-surface) 96%,
    transparent
  ) !important;
}

.navbar .nav-link.active,
.sidebar-item .sidebar-link.active,
#quarto-sidebar .sidebar-item-section .sidebar-item:not(.sidebar-item-section) .sidebar-link.active {
  background: var(--pw-interactive-surface) !important;
  background-image: none !important;
}

.navbar .nav-link:hover,
.navbar .nav-link:focus,
.sidebar-item .sidebar-link:hover,
#quarto-sidebar .sidebar-section .sidebar-section-item:hover {
  background: var(--pw-shell-hover) !important;
}

.pw-panel-toggle,
.pw-edge-toggle {
  background-color: var(--pw-interactive-surface);
  border-color: var(--pw-shell-border);
}

.gallery-locator {
  background: var(--pw-shell-surface);
  border-color: var(--pw-shell-border);
}

#gallery-locator-root .gallery-locator-section {
  background: var(--pw-interactive-surface);
  border-color: var(--pw-shell-border);
}

#gallery-locator-root .gallery-locator-section legend {
  background: var(--pw-interactive-surface);
}

/* Desktop and iPad table-layout refinements for named guide tables only. */
@media (min-width: 760px) {
  main.content :is(.d17-path-table, .table-medal-index, .compendium-cast-table,
    .compendium-lore-table, .affection-shared-gains-table, .affection-point-table,
    .password-result-table, .password-check-stages-table, .d19-result-table,
    .gallery-registration-change-table, .d6-result-table, .trauma-warning-table,
    .oz-variable-table, .parser-boundary-table, .legacy-d11-choice-table,
    .easter-vault-table, .route-system-table, .compendium-summary-table,
    .oswin-state-table) {
    --pw-table-min-width: 0rem;
    overflow-x: visible !important;
  }

  main.content :is(.d17-path-table, .table-medal-index, .compendium-cast-table,
    .compendium-lore-table, .affection-shared-gains-table, .affection-point-table,
    .password-result-table, .password-check-stages-table, .d19-result-table,
    .gallery-registration-change-table, .d6-result-table, .trauma-warning-table,
    .oz-variable-table, .parser-boundary-table, .legacy-d11-choice-table,
    .easter-vault-table, .route-system-table, .compendium-summary-table,
    .oswin-state-table) .quarto-bootstrap-table {
    width: 100%;
    max-width: 100%;
    overflow-x: visible !important;
  }

  main.content :is(.d17-path-table, .table-medal-index, .compendium-cast-table,
    .affection-shared-gains-table, .affection-point-table,
    .password-check-stages-table) table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: fixed !important;
  }

  main.content :is(.password-result-table, .d19-result-table,
    .gallery-registration-change-table, .parser-boundary-table,
    .easter-vault-table, .route-system-table, .compendium-summary-table,
    .oswin-state-table) {
    width: min(100%, var(--pw-table-max-width)) !important;
    max-width: var(--pw-table-max-width) !important;
    margin-left: 0 !important;
    margin-right: auto !important;
  }

  main.content :is(.password-result-table, .d19-result-table,
    .gallery-registration-change-table, .parser-boundary-table,
    .easter-vault-table, .route-system-table, .compendium-summary-table,
    .oswin-state-table) table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: fixed !important;
  }

  main.content :is(.compendium-lore-table, .d6-result-table,
    .trauma-warning-table, .oz-variable-table, .legacy-d11-choice-table) {
    width: min(100%, var(--pw-table-max-width)) !important;
    max-width: min(100%, var(--pw-table-max-width)) !important;
    margin-left: 0 !important;
    margin-right: auto !important;
  }

  main.content :is(.compendium-lore-table, .d6-result-table,
    .trauma-warning-table, .oz-variable-table, .legacy-d11-choice-table) table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: auto !important;
  }

  main.content .d17-path-table :is(col, th, td):nth-child(1) { width: 16% !important; }
  main.content .d17-path-table :is(col, th, td):nth-child(2) { width: 22% !important; }
  main.content .d17-path-table :is(col, th, td):nth-child(3) { width: 62% !important; }

  main.content .table-medal-index table { min-width: 0 !important; }
  main.content .table-medal-index :is(col, th, td):nth-child(1) { width: 17% !important; }
  main.content .table-medal-index :is(col, th, td):nth-child(2) { width: 17% !important; }
  main.content .table-medal-index :is(col, th, td):nth-child(3) { width: 40% !important; }
  main.content .table-medal-index :is(col, th, td):nth-child(4) { width: 26% !important; }

  main.content .compendium-cast-table :is(col, th, td):nth-child(1) { width: 7% !important; }
  main.content .compendium-cast-table :is(col, th, td):nth-child(2) { width: 16% !important; }
  main.content .compendium-cast-table :is(col, th, td):nth-child(3) { width: 27% !important; }
  main.content .compendium-cast-table :is(col, th, td):nth-child(4) { width: 50% !important; }
  main.content .compendium-cast-table td:nth-child(3),
  main.content .compendium-cast-table td:nth-child(3) code {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
  }

  main.content .compendium-lore-table { --pw-table-max-width: 30rem; }
  main.content .compendium-lore-table :is(col, th, td):nth-child(1) { width: 4.75rem !important; }
  main.content .compendium-lore-table :is(col, th, td):nth-child(2) { width: 10rem !important; }
  main.content .compendium-lore-table :is(col, th, td):nth-child(3) { width: 15rem !important; }
  main.content .compendium-lore-table td:nth-child(3) code { white-space: nowrap; }

  main.content .affection-shared-gains-table :is(col, th, td):nth-child(1) { width: 32% !important; }
  main.content .affection-shared-gains-table :is(col, th, td):nth-child(2) { width: 16% !important; }
  main.content .affection-shared-gains-table :is(col, th, td):nth-child(3) { width: 52% !important; }

  main.content .affection-point-table :is(col, th, td):nth-child(1) { width: 7% !important; }
  main.content .affection-point-table :is(col, th, td):nth-child(2) { width: 29% !important; }
  main.content .affection-point-table :is(col, th, td):nth-child(3) { width: 56% !important; }
  main.content .affection-point-table :is(col, th, td):nth-child(4) { width: 8% !important; }
  main.content .affection-point-table :is(th, td):is(:nth-child(1), :nth-child(4)) { white-space: nowrap; }

  main.content .password-result-table { --pw-table-max-width: 60rem; }
  main.content .password-result-table :is(col, th, td):nth-child(1) { width: 45% !important; }
  main.content .password-result-table :is(col, th, td):nth-child(2) { width: 55% !important; }
  main.content .password-result-table td:nth-child(2) code { white-space: nowrap; }

  main.content .password-check-stages-table :is(col, th, td):nth-child(1) { width: 20% !important; }
  main.content .password-check-stages-table :is(col, th, td):nth-child(2) { width: 20% !important; text-align: left; }
  main.content .password-check-stages-table :is(col, th, td):nth-child(3) { width: 60% !important; }
  main.content .password-check-stages-table td:nth-child(2),
  main.content .password-check-stages-table td:nth-child(3) code { white-space: nowrap; }

  main.content .d19-result-table { --pw-table-max-width: 72rem; }
  main.content .d19-result-table :is(col, th, td):nth-child(1) { width: 10% !important; }
  main.content .d19-result-table :is(col, th, td):nth-child(2) { width: 90% !important; }

  main.content .gallery-registration-change-table { --pw-table-max-width: 70rem; }
  main.content .gallery-registration-change-table :is(col, th, td):nth-child(1) { width: calc(100% - 9rem) !important; }
  main.content .gallery-registration-change-table :is(col, th, td):nth-child(2) { width: 9rem !important; white-space: nowrap; }

  main.content .d6-result-table { --pw-table-max-width: 48rem; }
  main.content .d6-result-table :is(col, th, td):nth-child(1) { width: 8rem !important; }

  main.content .trauma-warning-table { --pw-table-max-width: 34rem; }
  main.content .trauma-warning-table :is(col, th, td):nth-child(1) { width: 14rem !important; }
  main.content .trauma-warning-table td:nth-child(1) code { white-space: nowrap; }

  main.content .oz-variable-table { --pw-table-max-width: 36rem; }
  main.content .oz-variable-table :is(col, th, td):nth-child(1) { width: 11rem !important; }
  main.content .oz-variable-table td:nth-child(1) code { white-space: nowrap; }

  main.content .parser-boundary-table { --pw-table-max-width: 72rem; }
  main.content .parser-boundary-table :is(col, th, td):nth-child(1) { width: 26% !important; }
  main.content .parser-boundary-table :is(col, th, td):nth-child(2) { width: 74% !important; }

  main.content .legacy-d11-choice-table { --pw-table-max-width: 34rem; }
  main.content .legacy-d11-choice-table :is(col, th, td):nth-child(1) { width: 45% !important; }
  main.content .legacy-d11-choice-table :is(col, th, td):nth-child(2) { width: 55% !important; }
  main.content .legacy-d11-choice-table td code { white-space: nowrap; }

  main.content .easter-vault-table { --pw-table-max-width: 72rem; }
  main.content .easter-vault-table :is(col, th, td):nth-child(1) { width: 8% !important; }
  main.content .easter-vault-table :is(col, th, td):nth-child(2) { width: 20% !important; }
  main.content .easter-vault-table :is(col, th, td):nth-child(3) { width: 72% !important; }

  main.content .route-system-table { --pw-table-max-width: 72rem; }
  main.content .route-system-table :is(col, th, td):nth-child(1) { width: 25% !important; }
  main.content .route-system-table :is(col, th, td):nth-child(2) { width: 75% !important; }

  main.content .compendium-summary-table { --pw-table-max-width: 72rem; }
  main.content .compendium-summary-table :is(col, th, td):nth-child(1) { width: 34% !important; }
  main.content .compendium-summary-table :is(col, th, td):nth-child(2) { width: 12% !important; }
  main.content .compendium-summary-table :is(col, th, td):nth-child(3) { width: 54% !important; }

  main.content .oswin-state-table { --pw-table-max-width: 66rem; }
  main.content .oswin-state-table :is(col, th, td):nth-child(1) { width: 24% !important; }
  main.content .oswin-state-table :is(col, th, td):nth-child(2) { width: 76% !important; }
}

@media (min-width: 760px) {
  main.content :is(.compendium-lore-table, .d6-result-table,
    .trauma-warning-table, .oz-variable-table, .legacy-d11-choice-table)
    .quarto-bootstrap-table {
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (min-width: 760px) and (max-width: 1199px) {
  main.content .table-medal-index :is(col, th, td):nth-child(1) { width: 23% !important; }
  main.content .table-medal-index :is(col, th, td):nth-child(2) { width: 24% !important; }
  main.content .table-medal-index :is(col, th, td):nth-child(3) { width: 31% !important; }
  main.content .table-medal-index :is(col, th, td):nth-child(4) { width: 22% !important; }
  main.content .table-medal-index :is(th, td):is(:nth-child(1), :nth-child(2)) {
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none;
  }

  main.content .compendium-cast-table :is(col, th, td):nth-child(1) { width: 9% !important; }
  main.content .compendium-cast-table :is(col, th, td):nth-child(2) { width: 18% !important; }
  main.content .compendium-cast-table :is(col, th, td):nth-child(3) { width: 47% !important; }
  main.content .compendium-cast-table :is(col, th, td):nth-child(4) { width: 26% !important; }
  main.content .compendium-cast-table :is(th, td):nth-child(1) {
    padding-left: 0.2rem !important;
    padding-right: 0.2rem !important;
  }
  main.content .compendium-cast-table :is(th, td):nth-child(3) {
    padding-left: 0.35rem !important;
    padding-right: 0.35rem !important;
  }
}

/* Desktop-only corrections from the final English table QA pass. */
@media (min-width: 1200px) {
  main.content .compendium-summary-table {
    --pw-desktop-table-width: 46rem;
    width: min(100%, var(--pw-desktop-table-width)) !important;
    max-width: var(--pw-desktop-table-width) !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    overflow-x: visible !important;
  }

  main.content .affection-point-table:is(
    .affection-tyson-table,
    .affection-dean-table,
    .affection-orlando-table,
    .affection-sal-table
  ) :is(col, th, td):nth-child(1) { width: 7% !important; }

  main.content .affection-point-table:is(
    .affection-tyson-table,
    .affection-dean-table,
    .affection-orlando-table,
    .affection-sal-table
  ) :is(col, th, td):nth-child(2) { width: 38% !important; }

  main.content .affection-point-table:is(
    .affection-tyson-table,
    .affection-dean-table,
    .affection-orlando-table,
    .affection-sal-table
  ) :is(col, th, td):nth-child(3) { width: 47% !important; }

  main.content .affection-point-table:is(
    .affection-tyson-table,
    .affection-dean-table,
    .affection-orlando-table,
    .affection-sal-table
  ) :is(col, th, td):nth-child(4) { width: 8% !important; }

}

@media (min-width: 760px) {
  main.content .affection-point-table:is(
    .affection-tyson-table,
    .affection-dean-table,
    .affection-orlando-table,
    .affection-sal-table
  ) td:nth-child(2),
  main.content .affection-point-table:is(
    .affection-tyson-table,
    .affection-dean-table,
    .affection-orlando-table,
    .affection-sal-table
  ) td:nth-child(2) code {
    min-width: 0;
    white-space: normal !important;
    overflow-wrap: break-word;
    word-break: normal;
  }
}

@media (min-width: 760px) {
  main.content .affection-point-table.affection-roswell-table > table > tbody > tr > td:nth-child(2) {
    min-width: 0;
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  main.content .affection-point-table.affection-roswell-table > table > tbody > tr > td:nth-child(2) code {
    white-space: nowrap !important;
    overflow-wrap: normal;
    word-break: normal;
  }
}

/* Phone-only finishing pass for the English guide. */
@media (max-width: 759.98px) {
  /* Disable only the primary navbar menu; keep the secondary sidebar toggle. */
  #quarto-header .navbar-toggler {
    display: none !important;
    pointer-events: none !important;
  }

  .character-tabs > .nav-tabs {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    overflow: hidden;
  }

  .character-tabs > .nav-tabs .nav-item {
    display: flex;
    min-width: 0;
  }

  .character-tabs > .nav-tabs .nav-link {
    height: 100%;
    border-right: 1px solid var(--pw-border) !important;
    border-bottom: 1px solid var(--pw-border) !important;
  }

  .character-tabs > .nav-tabs .nav-item:nth-child(even) .nav-link {
    border-right: 0 !important;
  }

  .character-tabs > .nav-tabs .nav-item:nth-last-child(-n + 2) .nav-link {
    border-bottom: 0 !important;
  }

  main.content .additional-scenes-table {
    --pw-table-min-width: 30rem;
  }

  main.content .additional-scenes-table :is(col, th, td):nth-child(1) {
    width: 3.25rem !important;
  }

  main.content .additional-scenes-table :is(col, th, td):nth-child(2) {
    width: 6.75rem !important;
    white-space: normal !important;
    overflow-wrap: normal;
    word-break: normal;
  }

  main.content .additional-scenes-table :is(col, th, td):nth-child(3) {
    width: calc(100% - 10rem) !important;
  }

  main.content .compendium-lore-table {
    --pw-table-min-width: 23.5rem;
  }

  main.content .compendium-lore-table :is(th, td) {
    padding-left: 0.38rem;
    padding-right: 0.38rem;
  }

  main.content .compendium-lore-table :is(col, th, td):nth-child(1) {
    width: 3.25rem !important;
  }

  main.content .compendium-lore-table :is(col, th, td):nth-child(2) {
    width: 6.25rem !important;
  }

  main.content .compendium-lore-table :is(col, th, td):nth-child(3) {
    width: calc(100% - 9.5rem) !important;
  }

  main.content .compendium-lore-table td:nth-child(3) code {
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
  }

  main.content .easter-vault-table {
    --pw-table-min-width: 23rem;
  }

  main.content .easter-vault-table :is(th, td) {
    padding-left: 0.4rem;
    padding-right: 0.4rem;
  }

  main.content .easter-vault-table :is(col, th, td):nth-child(1) {
    width: 15% !important;
  }

  main.content .easter-vault-table :is(col, th, td):nth-child(2) {
    width: 32% !important;
  }

  main.content .easter-vault-table :is(col, th, td):nth-child(3) {
    width: 53% !important;
    white-space: normal;
  }

  main.content .easter-vault-table td:nth-child(2) code {
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
  }
}

/* Reading rhythm and home entry points. Keep data-table sizing independent. */
main.content > p,
main.content section > p {
  max-width: 76ch;
  font-size: 1rem;
  line-height: 1.8;
}

main.content :is(h1, h2, h3, h4) {
  text-wrap: pretty;
}

/* A visible, consistent keyboard target for navigation and progressive hints. */
:is(a, button, summary, input, select):focus-visible {
  outline: 2px solid var(--pw-primary);
  outline-offset: 3px;
}
main.content details > summary:focus-visible {
  outline-offset: -4px;
}
main.content .anchorjs-link:focus-visible { opacity: 1; }

.pw-home .quarto-title-block {
  margin-bottom: 1.35rem !important;
}
.pw-home-shortcuts {
  margin-bottom: 1.5rem;
}
.pw-home-shortcuts > p {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}
.pw-home-shortcuts a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0.5rem 1rem;
  border: 1px solid var(--pw-border-strong);
  border-radius: var(--pw-radius-sm);
  background: var(--pw-surface-soft);
  text-decoration: none;
  font-weight: 650;
}
.pw-home-shortcuts a:first-child {
  background: var(--pw-primary);
  border-color: var(--pw-primary);
  color: white;
}
.pw-home-shortcuts a:hover { background: var(--pw-primary-soft); }
.pw-home-shortcuts a:first-child:hover { background: var(--pw-primary-hover); }

.pw-home-notices {
  display: grid;
  gap: 1rem;
  margin: 1.5rem 0;
}
.pw-home-notices > .callout { margin: 0; }

/* Existing headings and links retain their URLs and document hierarchy. */
.pw-entry-grid { gap: 1rem; }
.pw-entry-grid > .g-col-12 {
  position: relative;
  padding: 1.15rem 1.25rem;
  border: 1px solid var(--pw-border);
  border-radius: var(--pw-radius-md);
  background: var(--pw-surface);
  box-shadow: var(--pw-shadow-soft);
  transition: border-color var(--pw-transition), background var(--pw-transition);
}
main.content .pw-entry-grid h3 { margin: 0 0 0.6rem; }
main.content .pw-entry-grid h3 a:not(.anchorjs-link) {
  color: var(--pw-primary);
  text-decoration: none;
  font-weight: 650;
}
.pw-entry-grid h3 a:not(.anchorjs-link)::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--pw-radius-md);
}
.pw-entry-grid .anchorjs-link { display: none; }
.pw-entry-grid p { margin-bottom: 0; color: var(--pw-text-soft); }
.pw-entry-grid > .g-col-12:hover,
.pw-entry-grid > .g-col-12:focus-within {
  border-color: var(--pw-primary);
  background: var(--pw-surface-soft);
}

@media (min-width: 1100px) {
  .pw-home-notices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 759.98px) {
  .pw-home-shortcuts a { flex: 1 1 auto; justify-content: center; }
  .pw-entry-grid > .g-col-12 { padding: 1rem; }
  main.content h2 { margin-top: 2.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: 0s !important;
  }
}


/* The existing right TOC becomes a temporary phone drawer. */
.pw-mobile-toc-toggle,
.pw-mobile-toc-close,
.pw-mobile-toc-backdrop {
  display: none !important;
}

@media (max-width: 767.98px) {
  #quarto-header .quarto-secondary-nav > .container-fluid {
    gap: 0.3rem;
    padding-inline: 0.5rem;
  }

  #quarto-header .quarto-secondary-nav .quarto-page-breadcrumbs {
    flex: 1 1 auto;
  }

  #quarto-header .quarto-secondary-nav .breadcrumb-item {
    display: inline-flex;
    align-items: center;
    padding-right: 0;
  }

  #quarto-header .quarto-secondary-nav .breadcrumb-item:not(:last-child) {
    flex: 0 0 auto;
  }

  #quarto-header .quarto-secondary-nav .breadcrumb-item + .breadcrumb-item::before {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    float: none;
    padding: 0 0.42rem;
    line-height: inherit;
  }

  #quarto-header .quarto-secondary-nav .breadcrumb-item:last-child {
    flex: 1 1 auto;
  }

  #quarto-header .quarto-secondary-nav .breadcrumb-item:last-child > a {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .pw-mobile-toc-toggle:not([hidden]),
  #quarto-margin-sidebar .pw-mobile-toc-close {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 2.25rem;
    padding: 0.25rem 0.55rem;
    color: var(--pw-primary);
    background: var(--pw-surface);
    border: 1px solid var(--pw-border);
    border-radius: var(--pw-radius-sm);
    font-size: 0.76rem;
    font-weight: 650;
    white-space: nowrap;
    cursor: pointer;
  }

  .pw-mobile-toc-toggle:not([hidden]) {
    padding-inline: 0.4rem;
    font-size: 0.72rem;
  }

  #quarto-margin-sidebar .pw-mobile-toc-close {
    width: 2.25rem;
    padding: 0;
    font-size: 1.3rem;
  }

  .pw-mobile-toc-toggle:hover,
  #quarto-margin-sidebar .pw-mobile-toc-close:hover {
    color: var(--pw-primary-hover);
    background: var(--pw-surface-soft);
    border-color: var(--pw-border-strong);
  }

  body.pw-mobile-toc-enabled #quarto-margin-sidebar {
    display: none !important;
    position: fixed !important;
    top: var(--pw-header-height) !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    width: min(86vw, 320px) !important;
    max-width: none !important;
    height: calc(100dvh - var(--pw-header-height)) !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 0.75rem 1rem !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain;
    border-left: 1px solid var(--pw-border-strong);
    box-shadow: var(--pw-shadow-soft);
    z-index: 1055 !important;
  }

  body.pw-mobile-toc-open #quarto-margin-sidebar {
    display: block !important;
  }

  body.pw-mobile-toc-enabled #quarto-margin-sidebar .pw-panel-toolbar {
    display: flex !important;
  }

  body.pw-mobile-toc-enabled #quarto-margin-sidebar .pw-panel-toggle-right {
    display: none !important;
  }

  body.pw-mobile-toc-enabled #quarto-margin-sidebar #TOC {
    display: block !important;
    position: static !important;
    padding: 0.7rem 0 1rem !important;
  }

  body.pw-mobile-toc-enabled #quarto-margin-sidebar #TOC ul.collapse {
    display: block !important;
  }

  body.pw-mobile-toc-open .pw-mobile-toc-backdrop {
    display: block !important;
    position: fixed;
    top: var(--pw-header-height);
    right: 0;
    bottom: 0;
    left: 0;
    background: transparent;
    z-index: 1050;
  }

  body.pw-mobile-toc-enabled:has(#quarto-header.headroom--unpinned) #quarto-margin-sidebar,
  body.pw-mobile-toc-enabled:has(#quarto-header.headroom--unpinned) .pw-mobile-toc-backdrop {
    top: 0 !important;
  }

  body.pw-mobile-toc-enabled:has(#quarto-header.headroom--unpinned) #quarto-margin-sidebar {
    height: 100dvh !important;
  }
}

@media (max-width: 359.98px) {
  #quarto-header .quarto-secondary-nav > .container-fluid {
    gap: 0.15rem;
    padding-inline: 0.25rem;
  }

  #quarto-header .quarto-secondary-nav .quarto-page-breadcrumbs {
    font-size: 0.78rem;
  }

  .pw-mobile-toc-toggle:not([hidden]) {
    padding-inline: 0.25rem;
  }
}

/* Keep the visible tablet-width TOC collapsible and reclaim its grid space. */
@media (min-width: 768px) and (max-width: 1099.98px) {
  #quarto-margin-sidebar {
    position: sticky !important;
    top: calc(var(--pw-navbar-height) + 3rem) !important;
    align-self: start;
    padding: 0.35rem 0.65rem 0.5rem !important;
    border: 1px solid var(--pw-border-strong);
    border-radius: var(--pw-radius-md);
    box-shadow: var(--pw-shadow-soft);
    max-height: calc(100vh - var(--pw-navbar-height) - 4rem);
    overflow-y: auto;
  }

  #quarto-margin-sidebar #TOC {
    position: static !important;
  }

  #quarto-margin-sidebar .pw-panel-toolbar {
    display: flex !important;
  }

  body.pw-right-collapsed #quarto-margin-sidebar {
    display: none !important;
  }

  body.pw-right-collapsed main.content {
    grid-column: body-content-start / page-end;
    max-width: none;
  }

  body.pw-right-collapsed .pw-edge-toggle-right {
    display: inline-grid !important;
    top: calc(var(--pw-navbar-height) + 3.7rem);
  }
}

/* Follow the compact navigation when it slides out of view. */
@media (min-width: 768px) and (max-width: 1099.98px) {
  body:has(#quarto-header.headroom--unpinned) #quarto-margin-sidebar {
    top: 0 !important;
    max-height: calc(100vh - 1rem);
  }

  body.pw-right-collapsed:has(#quarto-header.headroom--unpinned) .pw-edge-toggle-right {
    top: 0.7rem;
  }
}

/* Make wrapped TOC entries and genuine heading levels easy to distinguish. */
#quarto-margin-sidebar #TOC li + li {
  margin-top: 0.4rem;
}

#quarto-margin-sidebar #TOC .nav-link {
  position: relative;
  padding: 0.38rem 0.4rem 0.38rem 1.15rem;
  border-radius: 6px;
  line-height: 1.4;
}

#quarto-margin-sidebar #TOC .nav-link::before {
  content: "";
  position: absolute;
  left: 0.45rem;
  top: calc(0.38rem + 0.7em - 2px);
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.65;
}

#quarto-margin-sidebar #TOC .nav-link.active {
  background: color-mix(in srgb, var(--pw-accent) 10%, transparent);
  border-left-color: var(--pw-accent);
}

#quarto-margin-sidebar #TOC ul ul {
  padding-left: 0.8rem;
  margin-top: 0.35rem;
}

#quarto-margin-sidebar #TOC ul ul .nav-link {
  font-size: 0.76rem;
  font-weight: 400;
}

#quarto-margin-sidebar #TOC ul ul .nav-link.active {
  font-weight: 650;
}

/* Avoid stacking list and panel spacing below the last TOC entry. */
#quarto-margin-sidebar #TOC > ul {
  margin-bottom: 0;
}
@media (min-width: 768px) and (max-width: 1099.98px) {
  #quarto-margin-sidebar #TOC {
    padding-bottom: 0.25rem !important;
  }
}
.navbar .quarto-navbar-tools .pw-theme-auto {
  font-size: 0.7rem;
  font-weight: 650;
  line-height: 1;
}
