/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;
@layer theme {
  :root, :host {
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
      "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
      "Courier New", monospace;
    --spacing: 0.25rem;
    --default-transition-duration: 150ms;
    --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
  }
}
@layer base {
  *, ::after, ::before, ::backdrop, ::file-selector-button {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
  }
  html, :host {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }
  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }
  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }
  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }
  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }
  b, strong {
    font-weight: bolder;
  }
  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }
  small {
    font-size: 80%;
  }
  sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }
  :-moz-focusring {
    outline: auto;
  }
  progress {
    vertical-align: baseline;
  }
  summary {
    display: list-item;
  }
  ol, ul, menu {
    list-style: none;
  }
  img, svg, video, canvas, audio, iframe, embed, object {
    display: block;
    vertical-align: middle;
  }
  img, video {
    max-width: 100%;
    height: auto;
  }
  button, input, select, optgroup, textarea, ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    border-radius: 0;
    background-color: transparent;
    opacity: 1;
  }
  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }
  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }
  ::file-selector-button {
    margin-inline-end: 4px;
  }
  ::placeholder {
    opacity: 1;
  }
  @supports (not (-webkit-appearance: -apple-pay-button))  or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentcolor;
      @supports (color: color-mix(in lab, red, red)) {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }
  textarea {
    resize: vertical;
  }
  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }
  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }
  :-moz-ui-invalid {
    box-shadow: none;
  }
  button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
    appearance: button;
  }
  ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
    height: auto;
  }
  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}
@layer utilities {
  .collapse {
    visibility: collapse;
  }
  .visible {
    visibility: visible;
  }
  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border-width: 0;
  }
  .absolute {
    position: absolute;
  }
  .fixed {
    position: fixed;
  }
  .relative {
    position: relative;
  }
  .static {
    position: static;
  }
  .start {
    inset-inline-start: var(--spacing);
  }
  .end {
    inset-inline-end: var(--spacing);
  }
  .isolate {
    isolation: isolate;
  }
  .container {
    width: 100%;
    @media (width >= 40rem) {
      max-width: 40rem;
    }
    @media (width >= 48rem) {
      max-width: 48rem;
    }
    @media (width >= 64rem) {
      max-width: 64rem;
    }
    @media (width >= 80rem) {
      max-width: 80rem;
    }
    @media (width >= 96rem) {
      max-width: 96rem;
    }
  }
  .block {
    display: block;
  }
  .contents {
    display: contents;
  }
  .flex {
    display: flex;
  }
  .grid {
    display: grid;
  }
  .hidden {
    display: none;
  }
  .hidden\! {
    display: none !important;
  }
  .inline {
    display: inline;
  }
  .inline-block {
    display: inline-block;
  }
  .table {
    display: table;
  }
  .shrink {
    flex-shrink: 1;
  }
  .transform {
    transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
  }
  .resize {
    resize: both;
  }
  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }
  .italic {
    font-style: italic;
  }
  .ordinal {
    --tw-ordinal: ordinal;
    font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
  }
  .underline {
    text-decoration-line: underline;
  }
  .outline {
    outline-style: var(--tw-outline-style);
    outline-width: 1px;
  }
  .filter {
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
  .transition {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .select-all {
    -webkit-user-select: all;
    user-select: all;
  }
}
.invite-create-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 10px;
}
.invite-create-controls label {
  display: grid;
  gap: 5px;
  font-size: 13px;
  color: #647094;
}
.invite-create-controls select {
  min-height: 38px;
  padding: 6px 10px;
  border: 1px solid #d5dcf0;
  border-radius: 8px;
  background: #fff;
  color: #3e528e;
}
.sponsor-entry {
  color: #56649a;
}
.sponsor-entry.sponsor-card, .sponsor-entry.sponsor-chapter {
  padding: 18px;
  border: 1px solid #dce1f4;
  border-radius: 14px;
  background: linear-gradient(120deg, #f7faff, #f3f0fb);
}
.sponsor-entry h3 {
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 600;
}
.sponsor-entry p {
  margin: 0 0 14px;
  font-size: 13px;
  line-height: 1.8;
}
.sponsor-entry .sponsor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 40px;
  padding: 7px 12px;
  border: 1px solid #d4d8f0;
  border-radius: 9px;
  color: #5965ad;
  background: #fff;
  font-size: 13px;
  line-height: 1.6;
  text-decoration: none;
  transition: background .15s;
}
.sponsor-entry .sponsor-button:hover {
  background: #eeeffb;
}
.sponsor-entry .sponsor-button:focus-visible {
  outline: 2px solid #6975bc;
  outline-offset: 3px;
}
.sponsor-button > span:first-child {
  color: #9b77ac;
  font-size: 20px;
  line-height: 1;
}
.sponsor-card .sponsor-button {
  width: 100%;
  box-sizing: border-box;
}
.sponsor-inline {
  margin: 8px 0 12px;
}
.sponsor-entry.sponsor-chapter {
  margin: 28px 0;
  text-align: center;
}
.forum-sponsor-mobile {
  display: none;
}
.novel-reader-page.night .sponsor-entry {
  color: #c5c8de;
  background: #252b3b;
  border-color: #444a63;
}
.novel-reader-page.night .sponsor-button {
  color: #d0d3f5;
  background: #30364b;
  border-color: #555d7b;
}
@media (max-width: 680px) {
  .forum-sponsor-mobile {
    display: block;
    padding: 8px 12px;
    border-bottom: 1px solid #e2e6f4;
    background: #f7f8fd;
  }
  .sponsor-strip .sponsor-button {
    display: flex;
    width: 100%;
    box-sizing: border-box;
    min-height: 36px;
    padding: 4px 10px;
  }
  .sponsor-entry.sponsor-chapter {
    padding: 16px 12px;
  }
}
:root {
  --ink: #201d29;
  --muted: #756e7d;
  --paper: #f4f0e8;
  --paper-deep: #ebe5da;
  --line: #dcd4c8;
  --night: #100d18;
  --night-soft: #1a1525;
  --violet: #7966d8;
  --violet-soft: #eeeafd;
  --gold: #c69a4b;
  --gold-soft: #f6edd8;
  --blue: #4c83a7;
  --green: #518a75;
  --rose: #a95e78;
}
.world-map-page {
  min-height: 100vh;
  background: #101a2b;
}
.world-map-experience {
  --map-gold: #f5d784;
  --map-ink: #26324a;
  position: relative;
  min-height: calc(100svh - 112px);
  overflow: hidden;
  isolation: isolate;
  background: radial-gradient(circle at 50% 15%,#a8d8d0 0,#425b70 45%,#172438 100%);
  color: #fff;
}
.world-map-experience.layer-underdark {
  background: radial-gradient(circle at 55% 30%,#315c68 0,#172b3d 46%,#090f1f 100%);
}
.world-map-atmosphere {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(180deg,rgba(4,16,29,.16),transparent 22%,transparent 78%,rgba(6,12,25,.46)),radial-gradient(circle at 50% 50%,transparent 52%,rgba(9,15,28,.36));
}
.world-map-titleplate {
  position: absolute;
  z-index: 8;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: min(520px,45vw);
  padding: 10px 46px 13px;
  text-align: center;
  color: #fff8e6;
  filter: drop-shadow(0 8px 12px rgba(12,20,35,.35));
  background: linear-gradient(180deg,rgba(105,132,184,.97),rgba(55,76,125,.97));
  border: 2px solid #b8caed;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.14);
  clip-path: polygon(7% 0,93% 0,100% 50%,92% 100%,8% 100%,0 50%);
}
.world-map-titleplate span {
  display: block;
  font-size: 11px;
  letter-spacing: .16em;
  color: #dce9ff;
}
.world-map-titleplate h1 {
  margin: 2px 0 0;
  font-family: Georgia,'Noto Serif SC',serif;
  font-size: clamp(22px,2.2vw,34px);
  letter-spacing: .08em;
  text-shadow: 0 2px 0 #2d416e;
}
.world-map-titleplate p {
  margin: 3px auto 0;
  max-width: 420px;
  font-size: 12px;
  color: #e5edff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.world-map-layer-switch {
  position: absolute;
  z-index: 9;
  top: 24px;
  left: 24px;
  display: flex;
  gap: 6px;
  padding: 5px;
  border: 1px solid rgba(225,235,255,.45);
  border-radius: 18px;
  background: rgba(17,30,52,.72);
  box-shadow: 0 8px 22px rgba(0,0,0,.18);
  backdrop-filter: blur(12px);
}
.world-map-layer-switch button,.world-map-filters button {
  border: 0;
  color: #d9e3f5;
  background: transparent;
  cursor: pointer;
  font-weight: 700;
}
.world-map-layer-switch button {
  padding: 9px 13px;
  border-radius: 13px;
}
.world-map-layer-switch button.active {
  color: #3d3429;
  background: linear-gradient(#ffe79d,#eebd61);
  box-shadow: 0 2px 8px rgba(249,207,112,.35);
}
.world-map-progress {
  position: absolute;
  z-index: 9;
  top: 22px;
  right: 24px;
  width: 190px;
  padding: 12px 14px;
  border: 1px solid rgba(225,235,255,.42);
  border-radius: 16px;
  background: rgba(17,30,52,.74);
  box-shadow: 0 8px 22px rgba(0,0,0,.18);
  backdrop-filter: blur(12px);
}
.world-map-progress div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12px;
}
.world-map-progress b {
  color: var(--map-gold);
  font-size: 16px;
}
.world-map-progress>i {
  display: block;
  height: 7px;
  margin: 7px 0 5px;
  overflow: hidden;
  border-radius: 10px;
  background: rgba(255,255,255,.13);
}
.world-map-progress>i em {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg,#d1a950,#fff0a9);
  box-shadow: 0 0 8px #ffe69b;
}
.world-map-progress small {
  color: #cbd7ea;
  font-size: 10px;
}
.world-map-filters {
  position: absolute;
  z-index: 9;
  left: 24px;
  top: 98px;
  display: flex;
  gap: 5px;
  padding: 5px;
  border-radius: 15px;
  background: rgba(17,30,52,.65);
  backdrop-filter: blur(10px);
}
.world-map-filters button {
  padding: 7px 11px;
  border-radius: 11px;
  font-size: 12px;
}
.world-map-filters button.active {
  color: #fff4cb;
  background: rgba(255,222,139,.2);
}
.world-map-viewport {
  position: absolute;
  z-index: 2;
  inset: 0;
  overflow: hidden;
  cursor: grab;
  touch-action: none;
  user-select: none;
}
.world-map-viewport:active {
  cursor: grabbing;
}
.world-map-canvas {
  position: absolute;
  inset: 0;
  transform-origin: 50% 50%;
  will-change: transform;
  transition: transform 80ms linear;
}
.world-map-canvas.is-focusing {
  transition: transform 360ms cubic-bezier(.2,.8,.2,1);
}
.world-map-canvas picture,.world-map-art {
  display: block;
  width: 100%;
  height: 100%;
}
.world-map-art {
  object-fit: cover;
  pointer-events: none;
  background: linear-gradient(145deg,#528e74 0 26%,#d8c98a 26% 49%,#92a8c2 49% 64%,#5d6984 64% 100%);
}
.layer-underdark .world-map-art {
  background: linear-gradient(160deg,#5b5b68,#335765 33%,#21454e 60%,#211e39);
}
.world-map-regions {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.world-map-regions polygon {
  vector-effect: non-scaling-stroke;
  stroke-width: .5;
  transition: fill .25s,stroke .25s;
}
.world-map-regions .unlocked {
  fill: rgba(255,235,161,.03);
  stroke: rgba(255,242,193,.23);
}
.world-map-regions .locked {
  fill: rgba(31,43,65,.5);
  stroke: rgba(166,181,205,.28);
  stroke-dasharray: 2 1.6;
}
.world-map-regions .selected {
  fill: rgba(255,221,120,.13);
  stroke: #ffe49b;
  stroke-width: 1.1;
  filter: drop-shadow(0 0 3px #e7bf68);
}
.world-map-region-label,.world-map-location {
  position: absolute;
  z-index: 3;
  transform: translate(-50%,-50%);
  border: 0;
  cursor: pointer;
  color: #fff;
  text-shadow: 0 2px 3px rgba(12,18,32,.9);
  background: transparent;
}
.world-map-region-label {
  padding: 8px 13px;
  border-radius: 14px;
  font-family: Georgia,'Noto Serif SC',serif;
  font-weight: 900;
  letter-spacing: .06em;
  background: rgba(28,39,61,.64);
  box-shadow: 0 3px 9px rgba(5,11,22,.22);
}
.world-map-region-label.locked {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  color: #bdc7d7;
  background: rgba(28,36,51,.58);
}
.world-map-region-label.locked>span {
  font-size: 22px;
}
.world-map-region-label small {
  font: 700 9px/1 system-ui,sans-serif;
  letter-spacing: .04em;
}
.world-map-location {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 76px;
}
.world-map-location i {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 2px solid #fff6cf;
  border-radius: 50% 50% 44% 44%;
  color: #54412a;
  font: normal 19px/1 Georgia,serif;
  background: linear-gradient(#fff4bb,#eeb95e);
  box-shadow: 0 4px 0 #8a6437,0 6px 12px rgba(15,21,32,.45);
}
.world-map-location b {
  margin-top: 7px;
  padding: 4px 8px;
  border-radius: 7px;
  font: 900 12px/1.2 'Noto Serif SC',serif;
  white-space: nowrap;
  background: rgba(24,33,50,.67);
}
.world-map-location small {
  margin-top: 3px;
  padding: 3px 7px;
  border-radius: 9px;
  font: 800 9px/1 system-ui,sans-serif;
  color: #3d3425;
  background: #ffe68a;
  text-shadow: none;
}
.world-map-location.current i::after {
  content: '';
  position: absolute;
  width: 49px;
  height: 49px;
  border: 2px solid #ffe799;
  border-radius: 50%;
  animation: map-pulse 1.8s ease-out infinite;
}
.world-map-location.selected i {
  outline: 3px solid rgba(255,232,153,.45);
  outline-offset: 4px;
}
@keyframes map-pulse {
  0% {
    transform: scale(.65);
    opacity: 1;
  }
  100% {
    transform: scale(1.45);
    opacity: 0;
  }
}
.world-map-zoom {
  position: absolute;
  z-index: 8;
  right: 24px;
  bottom: 24px;
  display: grid;
  grid-template-columns: 42px 42px;
  gap: 5px;
  padding: 5px;
  border-radius: 15px;
  background: rgba(16,29,49,.75);
  backdrop-filter: blur(10px);
}
.world-map-zoom button {
  height: 38px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 10px;
  color: #fff;
  font-size: 18px;
  background: rgba(255,255,255,.09);
  cursor: pointer;
}
.world-map-zoom button:last-child {
  grid-column: 1 / -1;
  font-size: 11px;
}
.world-map-details {
  position: absolute;
  z-index: 12;
  top: 118px;
  right: 24px;
  bottom: 88px;
  width: min(360px,calc(100vw - 48px));
  padding: 50px 30px 28px;
  color: #44392f;
  background: linear-gradient(rgba(255,252,235,.97),rgba(244,229,190,.97)),repeating-linear-gradient(0deg,transparent 0 25px,rgba(117,89,50,.04) 26px);
  border: 5px solid #ebd49c;
  outline: 2px solid #896d45;
  border-radius: 14px 14px 20px 20px;
  box-shadow: 0 18px 52px rgba(4,10,23,.45);
  animation: map-panel-in .22s ease-out;
}
.world-map-details::before {
  content: '';
  position: absolute;
  top: 15px;
  left: 22px;
  right: 22px;
  height: 1px;
  background: linear-gradient(90deg,transparent,#9e7e4f,transparent);
}
.world-map-details-close {
  position: absolute;
  top: 14px;
  right: 16px;
  width: 30px;
  height: 30px;
  border: 1px solid #b29463;
  border-radius: 50%;
  color: #5c4932;
  background: #fff7da;
  font-size: 21px;
  cursor: pointer;
}
.world-map-details-emblem {
  display: grid;
  place-items: center;
  width: 62px;
  height: 62px;
  margin: 0 auto 14px;
  border: 2px solid #9b7541;
  border-radius: 50%;
  color: #5e4527;
  font-size: 28px;
  background: #f6d98e;
  box-shadow: 0 4px 0 #b48a4b;
}
.world-map-details-emblem.locked {
  color: #e5e8ed;
  border-color: #68758b;
  background: #505d73;
  box-shadow: 0 4px 0 #303a4b;
}
.world-map-details-kicker {
  display: block;
  text-align: center;
  color: #967546;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .17em;
}
.world-map-details h2 {
  margin: 7px 0 16px;
  text-align: center;
  font: 900 27px/1.2 Georgia,'Noto Serif SC',serif;
}
.world-map-details p {
  margin: 0;
  font-size: 14px;
  line-height: 1.9;
}
.world-map-details-meta {
  display: flex;
  justify-content: space-between;
  margin-top: 20px;
  padding: 12px 0;
  border-top: 1px solid rgba(116,87,49,.23);
  border-bottom: 1px solid rgba(116,87,49,.23);
  font-size: 12px;
}
.world-map-chapter-link {
  display: flex;
  justify-content: space-between;
  margin-top: 18px;
  padding: 12px 14px;
  border-radius: 10px;
  color: #fffaf0;
  font-weight: 800;
  background: #675388;
}
.world-map-chapter-link:hover {
  background: #594578;
}
@keyframes map-panel-in {
  from {
    opacity: 0;
    transform: translateX(18px);
  }
}
.world-map-back {
  position: absolute;
  z-index: 9;
  left: 24px;
  bottom: 24px;
  padding: 11px 16px;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 14px;
  color: #fff;
  font-weight: 800;
  background: rgba(42,65,105,.8);
  backdrop-filter: blur(9px);
  box-shadow: 0 6px 17px rgba(0,0,0,.22);
}
.world-map-status {
  position: absolute;
  z-index: 10;
  left: 50%;
  bottom: 26px;
  transform: translateX(-50%);
  padding: 10px 16px;
  border-radius: 12px;
  color: #eef4ff;
  font-size: 12px;
  background: rgba(16,30,51,.82);
}
.world-map-status.error {
  display: flex;
  align-items: center;
  gap: 12px;
}
.world-map-status button {
  border: 0;
  border-radius: 8px;
  padding: 7px 10px;
  color: #3d3424;
  font-weight: 800;
  background: #ffe295;
  cursor: pointer;
}
.world-map-region-access {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
.world-map-region-access:focus-within {
  z-index: 20;
  left: 20px;
  bottom: 80px;
  width: auto;
  height: auto;
  padding: 8px;
  overflow: visible;
  clip-path: none;
  background: #fff;
}
.world-map-region-access button {
  display: block;
  margin: 3px;
}
@media (max-width: 900px) {
  .world-map-experience {
    min-height: calc(100svh - 116px);
  }
  .world-map-titleplate {
    top: 14px;
    width: min(410px,54vw);
  }
  .world-map-titleplate p {
    display: none;
  }
  .world-map-progress {
    top: 78px;
    right: 14px;
    width: 165px;
  }
  .world-map-layer-switch {
    top: 78px;
    left: 14px;
  }
  .world-map-filters {
    top: auto;
    left: 50%;
    bottom: 18px;
    transform: translateX(-50%);
  }
  .world-map-back {
    top: 18px;
    bottom: auto;
    left: 14px;
    padding: 9px 12px;
    font-size: 12px;
  }
  .world-map-zoom {
    right: 14px;
    bottom: 72px;
  }
}
@media (max-width: 680px) {
  .world-map-page .site-header,.world-map-page .signal-strip {
    display: none;
  }
  .world-map-page .mobile-site-nav {
    display: none;
  }
  .world-map-experience {
    min-height: 100svh;
  }
  .world-map-titleplate {
    top: 12px;
    width: 72vw;
    padding: 8px 28px 10px;
  }
  .world-map-titleplate span {
    font-size: 9px;
  }
  .world-map-titleplate h1 {
    font-size: 22px;
  }
  .world-map-layer-switch {
    top: 82px;
    left: 10px;
  }
  .world-map-layer-switch button {
    padding: 8px 10px;
    font-size: 11px;
  }
  .world-map-progress {
    top: 82px;
    right: 10px;
    width: 148px;
    padding: 9px 11px;
  }
  .world-map-progress>small {
    display: none;
  }
  .world-map-canvas {
    inset: 0 auto 0 50%;
    width: max(100vw,158svh);
    margin-left: min(-50vw,-79svh);
  }
  .world-map-location {
    min-width: 65px;
  }
  .world-map-location i {
    width: 32px;
    height: 32px;
    font-size: 16px;
  }
  .world-map-location b {
    font-size: 10px;
  }
  .world-map-region-label {
    font-size: 10px;
    padding: 6px 9px;
  }
  .world-map-details {
    position: fixed;
    top: auto;
    left: 8px;
    right: 8px;
    bottom: 8px;
    width: auto;
    max-height: 52svh;
    padding: 43px 24px 22px;
    overflow: auto;
    border-width: 4px;
    animation: map-sheet-in .25s ease-out;
  }
  .world-map-details-emblem {
    width: 50px;
    height: 50px;
    font-size: 23px;
  }
  .world-map-details h2 {
    margin-bottom: 10px;
    font-size: 23px;
  }
  .world-map-filters {
    bottom: 12px;
    width: max-content;
    max-width: calc(100vw - 112px);
    overflow: auto;
  }
  .world-map-filters button {
    padding: 7px 9px;
  }
  .world-map-back {
    top: 15px;
    left: 10px;
    width: 40px;
    height: 40px;
    overflow: hidden;
    white-space: nowrap;
    padding: 10px;
    border-radius: 50%;
    font-size: 0;
  }
  .world-map-back::first-letter {
    font-size: 18px;
  }
  .world-map-zoom {
    right: 10px;
    bottom: 64px;
    grid-template-columns: 36px 36px;
  }
  .world-map-zoom button {
    height: 34px;
  }
  .world-map-status {
    bottom: 60px;
    max-width: 72vw;
    text-align: center;
  }
  @keyframes map-sheet-in {
    from {
      opacity: 0;
      transform: translateY(24px);
    }
  }
}
@media (prefers-reduced-motion: reduce) {
  .world-map-canvas,.world-map-canvas.is-focusing,.world-map-regions polygon,.world-map-details {
    transition: none;
    animation: none;
  }
  .world-map-location.current i::after {
    animation: none;
    opacity: .55;
  }
}
.map-admin-panel {
  position: relative;
  padding-bottom: 92px;
}
.map-admin-panel .admin-panel-head>a {
  align-self: center;
  padding: 10px 14px;
  border-radius: 10px;
  color: #fff;
  font-weight: 800;
  background: #675388;
}
.map-admin-summary {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 12px;
  margin: 18px 0;
}
.map-admin-summary article {
  padding: 16px;
  border: 1px solid #e1ddeb;
  border-radius: 14px;
  background: #faf9fd;
}
.map-admin-summary span,.map-admin-summary b {
  display: block;
}
.map-admin-summary span {
  color: #746c82;
  font-size: 12px;
}
.map-admin-summary b {
  margin-top: 5px;
  color: #332a41;
  font-size: 20px;
}
.map-admin-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
  padding: 10px;
  border-radius: 13px;
  background: #f2eff8;
}
.map-admin-toolbar>div {
  display: flex;
  gap: 7px;
}
.map-admin-toolbar button {
  padding: 9px 13px;
  border: 1px solid #d8d0e7;
  border-radius: 10px;
  color: #5a4c70;
  background: #fff;
  cursor: pointer;
}
.map-admin-toolbar button.active {
  color: #fff;
  border-color: #675388;
  background: #675388;
}
.map-admin-toolbar>span {
  color: #746c82;
  font-size: 11px;
}
.map-admin-regions {
  display: grid;
  gap: 10px;
}
.map-admin-regions>article {
  overflow: hidden;
  border: 1px solid #ddd8e8;
  border-radius: 13px;
  background: #fff;
}
.map-admin-regions>article.unlocked {
  border-color: #c8b77e;
  box-shadow: inset 3px 0 #d6b75d;
}
.map-admin-region-row {
  display: grid;
  grid-template-columns: 36px minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 14px;
}
.map-admin-region-row>div>b,.map-admin-region-row>div>small {
  display: block;
}
.map-admin-region-row>div>small {
  margin-top: 3px;
  overflow: hidden;
  color: #7a7286;
  font-size: 11px;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.map-admin-expand {
  width: 32px;
  height: 32px;
  border: 1px solid #ddd6e7;
  border-radius: 9px;
  color: #5e4c75;
  background: #f8f6fb;
  cursor: pointer;
}
.map-admin-switch {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 86px;
  color: #6c6279;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}
.map-admin-switch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.map-admin-switch>span {
  position: relative;
  width: 35px;
  height: 20px;
  border-radius: 20px;
  background: #c9c3d0;
  transition: .18s;
}
.map-admin-switch>span::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,.25);
  transition: .18s;
}
.map-admin-switch input:checked+span {
  background: #6c568a;
}
.map-admin-switch input:checked+span::after {
  transform: translateX(15px);
}
.map-admin-locations {
  border-top: 1px solid #e7e2ee;
  background: #faf9fc;
}
.map-admin-locations>div {
  display: grid;
  grid-template-columns: 66px minmax(0,1fr) 110px 88px;
  align-items: center;
  gap: 10px;
  padding: 11px 14px 11px 62px;
  border-top: 1px solid #ebe7f0;
}
.map-admin-locations>div:first-child {
  border-top: 0;
}
.map-admin-locations>div>div>b,.map-admin-locations>div>div>small {
  display: block;
}
.map-admin-locations>div>div>small {
  color: #81788c;
  font-size: 11px;
}
.map-admin-kind {
  padding: 5px 7px;
  overflow: hidden;
  border-radius: 7px;
  color: #665676;
  font-size: 9px;
  font-weight: 900;
  text-align: center;
  text-transform: uppercase;
  background: #eae5f1;
}
.map-admin-current {
  color: #665b71;
  font-size: 11px;
}
.map-admin-current input {
  accent-color: #8b69b4;
}
.map-admin-actions {
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  padding: 16px 20px;
  border-top: 1px solid #ddd7e8;
  border-radius: 0 0 15px 15px;
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(10px);
}
.map-admin-actions button {
  padding: 10px 15px;
  border: 1px solid #d1c8de;
  border-radius: 9px;
  color: #5f5270;
  font-weight: 800;
  background: #fff;
  cursor: pointer;
}
.map-admin-actions button:last-child {
  color: #fff;
  border-color: #675388;
  background: #675388;
}
.map-admin-actions button:disabled {
  opacity: .48;
  cursor: not-allowed;
}
@media (max-width: 780px) {
  .map-admin-summary {
    grid-template-columns: 1fr;
  }
  .map-admin-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }
  .map-admin-region-row {
    grid-template-columns: 32px minmax(0,1fr);
  }
  .map-admin-region-row>.map-admin-switch {
    grid-column: 2;
  }
  .map-admin-locations>div {
    grid-template-columns: 56px minmax(0,1fr);
    padding-left: 16px;
  }
  .map-admin-current,.map-admin-locations>div>.map-admin-switch {
    grid-column: 2;
  }
}
.career-home-card {
  position: relative;
  overflow: hidden;
  color: #eef2ff;
  background: radial-gradient(circle at 92% 8%, rgba(154, 171, 255, .28), transparent 115px),
    linear-gradient(145deg, #26366f, #182450 72%);
  border-color: #334783;
  box-shadow: 0 10px 26px rgba(35, 50, 105, .2);
}
.career-home-card::after {
  content: "";
  position: absolute;
  right: -34px;
  bottom: -48px;
  width: 126px;
  height: 126px;
  border: 1px solid rgba(255, 255, 255, .09);
  border-radius: 50%;
  box-shadow: 0 0 0 18px rgba(255, 255, 255, .025), 0 0 0 38px rgba(255, 255, 255, .018);
  pointer-events: none;
}
.career-home-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.career-home-card-top span {
  padding: 3px 7px;
  color: #1f2d60;
  background: #f4ce78;
  border-radius: 4px;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .12em;
}
.career-home-card-top small {
  color: #aebbf0;
  font: 9px/1.2 Georgia, serif;
  letter-spacing: .09em;
}
.career-home-sigils {
  display: flex;
  align-items: center;
  margin: 17px 0 12px;
}
.career-home-sigils i {
  display: grid;
  width: 34px;
  height: 34px;
  margin-right: -6px;
  place-items: center;
  color: #f5d58e;
  background: #324784;
  border: 2px solid #202e61;
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(8, 15, 41, .18);
  font: 15px/1 Georgia, serif;
}
.career-home-sigils i:nth-child(2) {
  color: #cbd3ff;
  background: #435aa1;
}
.career-home-sigils i:nth-child(3) {
  color: #b9ecd9;
  background: #2f6470;
}
.career-home-sigils i:nth-child(4) {
  color: #e0c6ff;
  background: #55458b;
}
.career-home-card h3 {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #fff;
  font: 700 17px/1.55 Georgia, "STSong", serif;
}
.career-home-card > p {
  position: relative;
  z-index: 1;
  margin: 8px 0 15px;
  color: #b8c2e8;
  font-size: 12px;
  line-height: 1.7;
}
.career-home-card > button {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 42px;
  padding: 0 12px 0 14px;
  color: #263467;
  background: #fff7e5;
  border: 1px solid #f0d59d;
  border-radius: 7px;
  box-shadow: 0 5px 13px rgba(7, 14, 39, .17);
  cursor: pointer;
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.career-home-card > button:hover {
  background: #fff;
  box-shadow: 0 8px 18px rgba(7, 14, 39, .23);
  transform: translateY(-1px);
}
.career-home-card > button span {
  font-size: 13px;
  font-weight: 800;
}
.career-home-card > button small {
  color: #8a7447;
  font-size: 10px;
}
.career-quiz-backdrop {
  position: fixed;
  z-index: 300;
  inset: 0;
  display: grid;
  padding: 24px;
  place-items: center;
  background: rgba(17, 23, 48, .7);
  backdrop-filter: blur(8px);
  animation: career-backdrop-in .18s ease-out;
}
.career-quiz-dialog {
  width: min(780px, calc(100vw - 48px));
  max-height: min(820px, calc(100svh - 48px));
  overflow: hidden;
  color: #24315a;
  background: radial-gradient(circle at 92% 0, rgba(205, 216, 255, .48), transparent 260px),
    #f9faff;
  border: 1px solid #cfd8ef;
  border-radius: 16px;
  box-shadow: 0 30px 90px rgba(9, 16, 43, .38);
  animation: career-dialog-in .2s ease-out;
}
.career-quiz-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 70px;
  padding: 12px 18px 12px 24px;
  background: rgba(255, 255, 255, .76);
  border-bottom: 1px solid #dce3f3;
}
.career-quiz-header span, .career-quiz-header b {
  display: block;
}
.career-quiz-header span {
  color: #6575ad;
  font: 9px/1.2 Georgia, serif;
  letter-spacing: .15em;
}
.career-quiz-header b {
  margin-top: 5px;
  color: #9a7b3c;
  font-size: 11px;
  font-weight: 700;
}
.career-quiz-close {
  display: grid;
  width: 38px;
  height: 38px;
  padding: 0 0 3px;
  place-items: center;
  color: #697494;
  background: #f6f8fd;
  border: 1px solid #dbe1ee;
  border-radius: 50%;
  cursor: pointer;
  font-size: 25px;
  line-height: 1;
}
.career-quiz-close:hover {
  color: #344b9d;
  background: #eef2ff;
  border-color: #cbd6f1;
}
.career-question-stage, .career-result {
  max-height: calc(100svh - 119px);
  overflow-y: auto;
  padding: 28px 36px 30px;
}
.career-progress-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: end;
  gap: 20px;
}
.career-progress-row > div:first-child {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.career-progress-row span {
  color: #8792af;
  font: 9px/1.2 Georgia, serif;
  letter-spacing: .15em;
}
.career-progress-row b {
  color: #4e64bb;
  font: 700 13px/1 Georgia, serif;
}
.career-progress-track {
  height: 5px;
  overflow: hidden;
  background: #e3e8f4;
  border-radius: 999px;
}
.career-progress-track i {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #526bc8, #8292df);
  border-radius: inherit;
  transition: width .24s ease;
}
.career-question-copy {
  margin: 27px 0 22px;
}
.career-question-copy > span {
  display: inline-block;
  padding: 4px 8px;
  color: #986f25;
  background: #fff4dc;
  border: 1px solid #edd8ad;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .08em;
}
.career-question-copy h2 {
  max-width: 650px;
  margin: 11px 0 7px;
  color: #26396f;
  font: 700 24px/1.5 Georgia, "STSong", serif;
}
.career-question-copy p {
  margin: 0;
  color: #858da5;
  font-size: 12px;
}
.career-answer-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}
.career-answer-grid > button {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  min-height: 96px;
  padding: 13px 14px;
  text-align: left;
  color: #33416c;
  background: rgba(255, 255, 255, .88);
  border: 1px solid #d9e0ef;
  border-radius: 9px;
  box-shadow: 0 3px 10px rgba(72, 89, 145, .045);
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.career-answer-grid > button:hover, .career-answer-grid > button.selected {
  background: #f4f6ff;
  border-color: #8495d5;
  box-shadow: 0 6px 17px rgba(69, 89, 169, .11);
  transform: translateY(-1px);
}
.career-answer-grid > button > span {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  color: #5268be;
  background: #edf1ff;
  border: 1px solid #d4dcf6;
  border-radius: 6px;
  font: 700 12px/1 Georgia, serif;
}
.career-answer-grid > button b, .career-answer-grid > button small {
  display: block;
}
.career-answer-grid > button b {
  color: #314274;
  font-size: 13px;
  line-height: 1.45;
}
.career-answer-grid > button small {
  margin-top: 4px;
  color: #8189a0;
  font-size: 11px;
  line-height: 1.55;
}
.career-answer-grid > button > i {
  color: #9aa4c3;
  font-size: 22px;
  font-style: normal;
}
.career-question-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid #e3e7f1;
}
.career-question-footer button, .career-result-actions button {
  min-height: 38px;
  padding: 0 14px;
  color: #5b678b;
  background: #fff;
  border: 1px solid #d7deed;
  border-radius: 7px;
  cursor: pointer;
  font-size: 12px;
}
.career-question-footer button:disabled {
  cursor: default;
  opacity: .38;
}
.career-question-footer > span {
  color: #969db0;
  font-size: 10px;
  text-align: right;
}
.career-result {
  --career-accent: #526bc8;
  --career-soft: #eef2ff;
}
.career-result.tone-gold {
  --career-accent: #b7842d;
  --career-soft: #fff5df;
}
.career-result.tone-violet {
  --career-accent: #6953b5;
  --career-soft: #f0edff;
}
.career-result.tone-green {
  --career-accent: #34765f;
  --career-soft: #eaf7f1;
}
.career-result.tone-blue {
  --career-accent: #3f6d9d;
  --career-soft: #ebf4fb;
}
.career-result.tone-rose {
  --career-accent: #a95073;
  --career-soft: #fff0f5;
}
.career-result-kicker {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: #7f89a6;
  font-size: 10px;
  letter-spacing: .07em;
}
.career-result-kicker i {
  color: #9a82ad;
  font: normal 9px/1 Georgia, serif;
}
.career-result-hero {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  align-items: center;
  gap: 22px;
  margin-top: 18px;
  padding: 14px;
  background: linear-gradient(135deg, var(--career-soft), rgba(255, 255, 255, .72));
  border: 1px solid var(--career-accent);
  @supports (color: color-mix(in lab, red, red)) {
    border: 1px solid color-mix(in srgb, var(--career-accent) 24%, white);
  }
  border-radius: 12px;
}
.career-result-avatar {
  position: relative;
  width: 200px;
  height: 200px;
  overflow: hidden;
  background-color: #f8f5ee;
  background-image: url('/forum-assets/career-races.png');
  background-repeat: no-repeat;
  background-size: 400% 300%;
  border: 1px solid rgba(76, 90, 132, .14);
  border-radius: 9px;
  box-shadow: inset 0 0 30px rgba(79, 91, 125, .06);
  image-rendering: pixelated;
}
.career-result-career-icon {
  position: absolute;
  right: 8px;
  bottom: 8px;
  width: 64px;
  height: 64px;
  background-color: rgba(255, 255, 255, .9);
  background-image: url('/forum-assets/career-icons.png');
  background-repeat: no-repeat;
  background-size: 400% 300%;
  border: 2px solid #fff;
  border-radius: 9px;
  box-shadow: 0 5px 15px rgba(30, 39, 76, .2);
  image-rendering: pixelated;
}
.career-result-hero small {
  color: var(--career-accent);
  font: 9px/1 Georgia, serif;
  letter-spacing: .18em;
}
.career-result-hero h2 {
  margin: 5px 0 3px;
  color: var(--career-accent);
  font: 800 38px/1.2 Georgia, "STSong", serif;
  letter-spacing: .06em;
}
.career-result-hero h2 span {
  margin-right: .22em;
  color: #3c496d;
  font-size: .68em;
  font-weight: 700;
}
.career-result-hero strong {
  color: #4d5674;
  font: 650 14px/1.5 Georgia, "STSong", serif;
}
.career-result-description {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin: 12px 0;
}
.career-result-description p {
  margin: 0;
  padding: 13px 14px;
  color: #53607f;
  background: rgba(255, 255, 255, .68);
  border: 1px solid #e0e5f0;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.75;
}
.career-result-description b {
  display: block;
  margin-bottom: 4px;
  color: var(--career-accent);
  font-size: 9px;
  letter-spacing: .11em;
}
.career-result-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin: 0;
}
.career-result-details > div {
  min-height: 92px;
  padding: 13px;
  background: #fff;
  border: 1px solid #dee4f0;
  border-radius: 8px;
}
.career-result-details dt {
  margin-bottom: 7px;
  color: #929ab0;
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .12em;
}
.career-result-details dd {
  margin: 0;
  color: #3e4c74;
  font-size: 12px;
  line-height: 1.6;
}
.career-secondary-results {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin-top: 12px;
}
.career-secondary-result {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 12px 14px;
  background: #f6f7fb;
  border: 1px solid #e0e4ee;
  border-radius: 8px;
}
.career-secondary-result > span {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  color: #fff;
  background: #6374b7;
  border-radius: 7px;
  font: 18px/1 Georgia, serif;
}
.career-secondary-result > span.tone-gold {
  background: #b7842d;
}
.career-secondary-result > span.tone-violet {
  background: #6953b5;
}
.career-secondary-result > span.tone-green {
  background: #34765f;
}
.career-secondary-result > span.tone-blue {
  background: #3f6d9d;
}
.career-secondary-result > span.tone-rose {
  background: #a95073;
}
.career-secondary-result small, .career-secondary-result b {
  display: inline-block;
}
.career-secondary-result small {
  margin-right: 8px;
  color: #9299ad;
  font-size: 9px;
  letter-spacing: .08em;
}
.career-secondary-result b {
  color: #3f4d76;
  font-size: 13px;
}
.career-secondary-result p {
  margin: 2px 0 0;
  color: #7c849b;
  font-size: 11px;
}
.career-result-disclaimer {
  margin: 12px 2px 0;
  padding-left: 10px;
  color: #8d8491;
  border-left: 3px solid #dfd0b4;
  font-size: 10px;
  line-height: 1.7;
}
.career-result-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 17px;
  padding-top: 16px;
  border-top: 1px solid #e2e6ef;
}
.career-result-actions button:hover {
  background: #f4f6fc;
  border-color: #bfc9e1;
}
.career-result-actions .career-result-copy {
  color: #fff;
  background: #5268bf;
  border-color: #5268bf;
}
.career-result-actions .career-result-copy:hover {
  color: #fff;
  background: #4459ad;
  border-color: #4459ad;
}
.career-quiz-dialog button:focus-visible, .career-home-card > button:focus-visible {
  outline: 3px solid rgba(102, 126, 221, .32);
  outline-offset: 2px;
}
.toast {
  z-index: 360;
}
@keyframes career-backdrop-in {
  from {
    opacity: 0;
  }
}
@keyframes career-dialog-in {
  from {
    opacity: 0;
    transform: translateY(8px) scale(.985);
  }
}
@media (max-width: 680px) {
  .career-quiz-backdrop {
    padding: 0;
    place-items: stretch;
  }
  .career-quiz-dialog {
    width: 100%;
    max-height: 100svh;
    border: 0;
    border-radius: 0;
  }
  .career-quiz-header {
    min-height: 62px;
    padding: 10px 12px 10px 16px;
  }
  .career-quiz-header span {
    font-size: 8px;
    letter-spacing: .1em;
  }
  .career-quiz-close {
    width: 36px;
    height: 36px;
  }
  .career-question-stage, .career-result {
    max-height: calc(100svh - 62px);
    padding: 20px 16px 28px;
  }
  .career-progress-row {
    grid-template-columns: 1fr;
    gap: 9px;
  }
  .career-question-copy {
    margin: 21px 0 17px;
  }
  .career-question-copy h2 {
    margin-top: 9px;
    font-size: 20px;
    line-height: 1.48;
  }
  .career-question-copy p {
    font-size: 11px;
    line-height: 1.6;
  }
  .career-answer-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .career-answer-grid > button {
    min-height: 80px;
    padding: 10px 11px;
  }
  .career-question-footer {
    align-items: flex-start;
  }
  .career-question-footer > span {
    max-width: 190px;
    line-height: 1.5;
  }
  .career-result {
    padding-top: 18px;
  }
  .career-result-hero {
    grid-template-columns: 128px minmax(0, 1fr);
    gap: 13px;
    margin-top: 13px;
    padding: 10px;
  }
  .career-result-avatar {
    width: 128px;
    height: 128px;
  }
  .career-result-career-icon {
    right: 5px;
    bottom: 5px;
    width: 48px;
    height: 48px;
    border-radius: 7px;
  }
  .career-result-hero h2 {
    font-size: 27px;
  }
  .career-result-hero h2 span {
    display: block;
    margin: 0 0 2px;
    font-size: .62em;
  }
  .career-result-hero strong {
    font-size: 12px;
  }
  .career-result-description, .career-secondary-results {
    grid-template-columns: 1fr;
  }
  .career-result-details {
    grid-template-columns: 1fr;
  }
  .career-result-details > div {
    min-height: 0;
  }
  .career-result-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .career-result-actions .career-result-copy {
    grid-column: 1 / -1;
  }
  .career-result-actions button {
    min-height: 42px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .career-quiz-backdrop, .career-quiz-dialog {
    animation: none;
  }
  .career-answer-grid > button, .career-home-card > button, .career-progress-track i {
    transition: none;
  }
}
.novel-manage-grid {
  grid-template-columns: 190px minmax(0, 1fr);
}
.novel-editor-card, .novel-preview-card {
  grid-column: 2;
}
.novel-advanced-editor-layout {
  display: grid;
  grid-template-columns: 176px minmax(320px, 1fr) 286px;
  gap: 12px;
  align-items: start;
  margin-top: 16px;
}
.novel-module-toolbox, .novel-module-inspector {
  position: sticky;
  top: 12px;
  min-width: 0;
  color: #334064;
  background: #f8f9fd;
  border: 1px solid #d8dfef;
  border-radius: 10px;
}
.novel-module-toolbox.collapsed {
  width: 54px;
}
.novel-module-toolbox > header, .novel-module-inspector > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 52px;
  padding: 10px 12px;
  border-bottom: 1px solid #dfe5f1;
}
.novel-module-toolbox > header span, .novel-module-inspector > header span {
  display: block;
  color: #9aa4bc;
  font: 9px/1.2 Georgia, serif;
  letter-spacing: .15em;
}
.novel-module-toolbox > header b, .novel-module-inspector > header b {
  display: block;
  margin-top: 3px;
  font-size: 13px;
}
.novel-module-toolbox > header button, .novel-module-inspector > header button {
  width: 28px;
  height: 28px;
  color: #6675aa;
  background: #fff;
  border: 1px solid #d6ddef;
  border-radius: 6px;
  cursor: pointer;
}
.novel-module-toolbox > p {
  margin: 10px 12px 7px;
  color: #929bb0;
  font-size: 10px;
}
.novel-module-toolbox > div {
  display: grid;
  gap: 7px;
  padding: 0 9px 10px;
}
.novel-module-toolbox > div > button {
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  padding: 10px 8px;
  text-align: left;
  color: #39476f;
  background: #fff;
  border: 1px solid #dce3f1;
  border-radius: 8px;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.novel-module-toolbox > div > button:hover {
  transform: translateY(-1px);
  border-color: #94a5de;
  box-shadow: 0 5px 12px rgba(57, 73, 135, .1);
}
.novel-module-toolbox i {
  display: grid;
  flex: 0 0 28px;
  height: 28px;
  place-items: center;
  color: #fff;
  background: #596fc8;
  border-radius: 5px;
  font-style: normal;
}
.novel-module-toolbox button:nth-child(2) i {
  background: #b07855;
}
.novel-module-toolbox button:nth-child(3) i {
  background: #66768d;
}
.novel-module-toolbox button span {
  min-width: 0;
}
.novel-module-toolbox button b, .novel-module-toolbox button small {
  display: block;
}
.novel-module-toolbox button b {
  font-size: 12px;
}
.novel-module-toolbox button small {
  overflow: hidden;
  margin-top: 3px;
  color: #949db1;
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.novel-module-toolbox > footer {
  display: grid;
  gap: 5px;
  padding: 0 9px 10px;
}
.novel-module-toolbox > footer button {
  min-height: 36px;
  color: #a14f5c;
  background: #fff4f5;
  border: 1px solid #ebc9cf;
  border-radius: 7px;
  cursor: pointer;
}
.novel-module-toolbox > footer button:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.novel-module-toolbox > footer small {
  color: #929bb0;
  font-size: 9px;
  line-height: 1.5;
}
.novel-document-editor {
  min-width: 0;
  padding: 8px;
  background: #f2f4f9;
  border: 1px solid #d9e0ed;
  border-radius: 10px;
}
.novel-editor-block-wrap + .novel-editor-block-wrap {
  margin-top: 3px;
}
.novel-block-insertion {
  display: flex;
  justify-content: center;
  gap: 6px;
  height: 18px;
  opacity: 0;
  transition: opacity .15s ease;
}
.novel-block-insertion:hover, .novel-block-insertion.active {
  opacity: 1;
}
.novel-block-insertion button {
  z-index: 1;
  height: 22px;
  padding: 0 7px;
  color: #6071ac;
  background: #fff;
  border: 1px solid #cfd8ec;
  border-radius: 10px;
  cursor: pointer;
  font-size: 9px;
}
.novel-block-insertion.tail {
  height: 29px;
  padding-top: 5px;
}
.novel-editor-paragraph, .novel-editor-module-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid #dde3ef;
  border-radius: 8px;
}
.novel-editor-paragraph.selected, .novel-editor-module-card.selected {
  border-color: #7185cf;
  box-shadow: 0 0 0 2px rgba(92, 115, 198, .1);
}
.novel-editor-paragraph > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 31px;
  padding: 0 10px;
  color: #9aa3b7;
  background: #fafbfe;
  border-bottom: 1px solid #e7ebf3;
  font-size: 9px;
}
.novel-editor-paragraph > header button {
  color: #6375b5;
  background: transparent;
  border: 0;
  cursor: pointer;
  font-size: 10px;
}
.novel-editor-paragraph textarea {
  display: block;
  width: 100%;
  min-height: 112px;
  padding: 12px;
  color: #303b5b;
  background: #fff;
  border: 0;
  outline: 0;
  resize: vertical;
  font: 14px/1.9 "Microsoft YaHei", sans-serif;
}
.novel-editor-paragraph .novel-format-toolbar {
  margin: 0;
  padding: 6px 8px;
  border: 0;
  border-bottom: 1px solid #e7ebf3;
  border-radius: 0;
}
.novel-editor-module-card {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 78px;
  padding: 13px 14px 13px 20px;
  cursor: pointer;
}
.novel-editor-module-card::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 5px;
  background: #526bc9;
}
.novel-editor-module-card.type-letter::before {
  background: #aa7654;
}
.novel-editor-module-card.type-dialogue::before {
  background: #596979;
}
.novel-editor-module-card > div span, .novel-editor-module-card > div b {
  display: block;
}
.novel-editor-module-card > div span {
  color: #7f8cb0;
  font-size: 10px;
}
.novel-editor-module-card > div b {
  overflow-wrap: anywhere;
  margin-top: 7px;
  color: #303d61;
  font-size: 13px;
}
.novel-editor-module-card nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 4px;
}
.novel-editor-module-card nav button {
  padding: 5px 7px;
  color: #62719d;
  background: #f7f8fc;
  border: 1px solid #dce2ee;
  border-radius: 5px;
  cursor: pointer;
  font-size: 9px;
}
.novel-editor-module-card nav button.danger {
  color: #b05b67;
}
.novel-editor-module-card nav button:disabled {
  opacity: .35;
}
.novel-document-errors {
  margin-top: 12px;
  padding: 8px 11px;
  color: #9b4654;
  background: #fff2f4;
  border: 1px solid #efcfd5;
  border-radius: 7px;
  font-size: 11px;
}
.novel-document-errors p {
  margin: 3px 0;
}
.novel-module-inspector.empty {
  position: sticky;
  min-height: 118px;
  padding: 18px;
  color: #97a0b3;
  font-size: 11px;
  line-height: 1.65;
}
.novel-inspector-clear-format {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 12px 12px;
  padding: 10px;
  background: #fff7f7;
  border: 1px solid #ead1d5;
  border-radius: 7px;
}
.novel-inspector-clear-format button {
  min-height: 36px;
  padding: 0 12px;
  color: #a14f5c;
  background: #fff;
  border: 1px solid #deb8c0;
  border-radius: 6px;
  cursor: pointer;
}
.novel-inspector-clear-format small {
  color: #8c94a8;
  font-size: 9px;
  line-height: 1.5;
  text-align: right;
}
.novel-inspector-fields, .novel-dialogue-inspector {
  display: grid;
  gap: 11px;
  padding: 12px;
}
.novel-inspector-fields label, .novel-dialogue-inspector label {
  position: relative;
  display: grid;
  gap: 5px;
  color: #66718f;
  font-size: 10px;
}
.novel-inspector-fields input:not([type="radio"]), .novel-inspector-fields select, .novel-inspector-fields textarea, .novel-dialogue-inspector input, .novel-dialogue-inspector select, .novel-dialogue-inspector textarea {
  width: 100%;
  padding: 7px 8px;
  color: #34405f;
  background: #fff;
  border: 1px solid #d6ddeb;
  border-radius: 6px;
  outline: 0;
  font: 11px/1.5 inherit;
}
.novel-inspector-fields textarea {
  min-height: 78px;
  resize: vertical;
}
.novel-inspector-fields label small {
  position: absolute;
  right: 6px;
  bottom: 5px;
  color: #a1a9b9;
  font-size: 8px;
}
.novel-inspector-fields fieldset {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 8px;
  border: 1px solid #dce2ee;
  border-radius: 7px;
}
.novel-inspector-fields legend {
  color: #687493;
  font-size: 10px;
}
.novel-inspector-fields fieldset label {
  display: flex;
  flex-direction: row;
  align-items: center;
}
.novel-dialogue-inspector > section > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.novel-dialogue-inspector > section > header b, .novel-dialogue-inspector > section > header small {
  display: block;
}
.novel-dialogue-inspector > section > header small {
  color: #9aa4b9;
  font-size: 9px;
}
.novel-dialogue-inspector button {
  padding: 5px 7px;
  color: #5f70ad;
  background: #fff;
  border: 1px solid #d8dfed;
  border-radius: 5px;
  cursor: pointer;
  font-size: 9px;
}
.novel-dialogue-inspector button.danger {
  color: #a84e5d;
}
.novel-speaker-editor, .novel-dialogue-line-editor {
  display: grid;
  gap: 7px;
  margin-bottom: 8px;
  padding: 8px;
  background: #fff;
  border: 1px solid #dee4ef;
  border-radius: 7px;
}
.novel-dialogue-line-editor {
  grid-template-columns: 20px 1fr;
}
.novel-dialogue-line-editor > span {
  color: #9ba4b8;
  font-size: 10px;
}
.novel-dialogue-line-editor textarea, .novel-dialogue-line-editor > div {
  grid-column: 1 / -1;
}
.novel-dialogue-line-editor > div {
  display: flex;
  justify-content: flex-end;
  gap: 4px;
}
.novel-preview-card {
  grid-row: auto;
}
.novel-preview-card > .novel-content-blocks {
  overflow-y: auto;
  max-height: 720px;
  padding: 22px;
}
.novel-preview-card .novel-content-blocks > p {
  margin: 0 0 1.2em;
  color: #3d4661;
  font-size: 14px;
  line-height: 2;
  text-indent: 2em;
}
.novel-content-blocks > p {
  position: relative;
}
.novel-interactive-block {
  margin: 2.2rem auto;
  color: #283453;
  font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
  text-indent: 0;
}
.novel-danmaku-block {
  --danmaku-font-size: clamp(22px, 3vw, 34px);
  position: relative;
  overflow: hidden;
  padding: 18px 0 11px;
  background: transparent;
}
.novel-danmaku-track {
  position: relative;
  overflow: hidden;
  min-height: 58px;
  contain: paint;
}
.novel-danmaku-text {
  position: absolute;
  left: 100%;
  display: inline-block;
  min-width: max-content;
  padding: 6px 3px;
  color: #fff;
  opacity: 0;
  font-size: var(--danmaku-font-size);
  font-weight: 900;
  letter-spacing: .08em;
  text-shadow: 2px 2px 0 rgba(38, 45, 70, .75);
  -webkit-text-stroke: 1.4px #2d3657;
  paint-order: stroke fill;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  will-change: transform;
}
.novel-danmaku-block.tone-yellow .novel-danmaku-text {
  color: #ffe681;
  -webkit-text-stroke-color: #5e4a1f;
}
.novel-danmaku-block.tone-pink .novel-danmaku-text {
  color: #ffc5d9;
  -webkit-text-stroke-color: #66344c;
}
.novel-danmaku-block.size-small {
  --danmaku-font-size: clamp(16px, 2vw, 22px);
}
.novel-danmaku-block.size-large {
  --danmaku-font-size: clamp(30px, 4vw, 46px);
}
.novel-danmaku-block.is-static .novel-danmaku-track {
  display: flex;
  justify-content: center;
}
.novel-danmaku-block.is-static .novel-danmaku-text {
  position: static;
  opacity: 1;
  transform: none;
  will-change: auto;
}
.novel-danmaku-block.is-running .novel-danmaku-text {
  opacity: 1;
  animation: novel-danmaku-scroll 9s linear both;
}
.novel-danmaku-block.speed-slow.is-running .novel-danmaku-text {
  animation-duration: 13s;
}
.novel-danmaku-block.speed-fast.is-running .novel-danmaku-text {
  animation-duration: 6s;
}
.novel-danmaku-block.is-finished .novel-danmaku-text {
  left: 0;
  opacity: 1;
  transform: translate3d(-100%, 0, 0);
}
.novel-danmaku-controls {
  display: flex;
  justify-content: flex-end;
  gap: 5px;
  padding-top: 4px;
}
.novel-danmaku-controls button {
  padding: 4px 8px;
  color: #727e9d;
  background: transparent;
  border: 1px solid #cfd6e5;
  border-radius: 4px;
  cursor: pointer;
  font-size: 10px;
}
@keyframes novel-danmaku-scroll {
  from {
    left: 100%;
    transform: translate3d(0, 0, 0);
  }
  to {
    left: 0;
    transform: translate3d(-100%, 0, 0);
  }
}
.novel-letter-block {
  text-align: center;
}
.novel-letter-trigger {
  position: relative;
  min-height: 46px;
  padding: 0 23px;
  color: #5b4334;
  background: #f7efe3;
  border: 1px solid #b99676;
  border-radius: 3px;
  box-shadow: 4px 4px 0 #d8c2aa;
  cursor: pointer;
  font: 600 13px/1 Georgia, "STSong", serif;
  letter-spacing: .08em;
}
.novel-letter-trigger span {
  margin-right: 9px;
  color: #a26451;
}
.novel-letter-backdrop {
  position: fixed;
  z-index: 120;
  inset: 0;
  display: grid;
  padding: 20px;
  place-items: center;
  background: rgba(24, 18, 14, .8);
  backdrop-filter: blur(4px) sepia(.12);
  animation: novel-letter-backdrop-in .2s ease-out both;
}
.novel-letter-modal {
  position: relative;
  width: min(510px, 94vw, 69vh);
  aspect-ratio: 451 / 574;
  color: #312b27;
  filter: drop-shadow(0 22px 18px rgba(0, 0, 0, .5));
  transform-origin: center;
  will-change: opacity, transform;
  animation: novel-letter-pop .24s cubic-bezier(.2, .78, .28, 1) both;
}
.novel-letter-scroll-art {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  object-fit: contain;
}
.novel-letter-close {
  position: absolute;
  z-index: 3;
  top: 13%;
  right: 13%;
  display: grid;
  width: 34px;
  height: 34px;
  padding: 0;
  place-items: center;
  color: #ead8ba;
  background: radial-gradient(circle at 34% 28%, #93434a, #621d25 68%, #401319);
  border: 2px solid #9a664f;
  border-radius: 50%;
  box-shadow: 0 3px 0 #351216, 0 5px 10px rgba(39, 20, 18, .34);
  cursor: pointer;
  font: 20px/1 Georgia, serif;
}
.novel-letter-close:focus-visible {
  outline: 3px solid #f0e5d0;
  outline-offset: 3px;
}
.novel-letter-modal article {
  position: absolute;
  z-index: 1;
  inset: 14% 14% 15% 17%;
  overflow-y: auto;
  padding: 5% 4% 5%;
  scrollbar-color: rgba(71, 62, 54, .5) transparent;
  text-align: left;
  mask-image: linear-gradient(#000 94%, transparent);
}
.novel-letter-modal h2 {
  margin: 0 46px 19px 0;
  padding-bottom: 11px;
  color: #2f2925;
  border-bottom: 1px solid rgba(65, 57, 51, .25);
  font: 600 25px/1.35 Georgia, "STKaiti", "KaiTi", "STSong", serif;
}
.novel-letter-modal p {
  margin: 0;
  color: #3c3530;
  white-space: pre-wrap;
  font: 15px/2 Georgia, "STKaiti", "KaiTi", "STSong", serif;
  letter-spacing: .025em;
}
.novel-letter-signature {
  width: fit-content;
  max-width: 82%;
  margin: 28px 2px 0 auto;
  color: #55483d;
  background: transparent;
  border: 0;
  text-align: right;
  overflow-wrap: anywhere;
  font: 16px/1.5 "STKaiti", "KaiTi", "STSong", serif;
  letter-spacing: .08em;
  transform: rotate(-1.5deg);
}
@keyframes novel-letter-backdrop-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes novel-letter-pop {
  0% {
    opacity: 0;
    transform: translateY(10px) scale(.82);
  }
  70% {
    opacity: 1;
    transform: scale(1.02);
  }
  100% {
    opacity: 1;
    transform: none;
  }
}
.novel-dialogue-block {
  overflow: hidden;
  max-width: 760px;
  background: #f6f3ec;
  border: 2px solid #28324c;
  box-shadow: 7px 7px 0 #cbd1df;
}
.novel-dialogue-block > header {
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-height: 43px;
  padding: 10px 15px;
  color: #fff;
  background: #313b59;
  border-bottom: 2px solid #28324c;
}
.novel-dialogue-block > header span {
  font: 9px Georgia, serif;
  letter-spacing: .17em;
  opacity: .75;
}
.novel-dialogue-block > header b {
  font-size: 13px;
}
.novel-dialogue-viewport {
  overflow-y: auto;
  height: 322px;
  padding: 15px 18px 22px;
  scroll-behavior: smooth;
  cursor: pointer;
  outline: 0;
  overscroll-behavior: contain;
}
.novel-dialogue-viewport:focus-visible {
  box-shadow: inset 0 0 0 3px #8799dd;
}
.novel-dialogue-message {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-height: 88px;
  margin-bottom: 13px;
  animation: novel-panel-in .24s ease-out both;
}
.novel-dialogue-message.side-right {
  flex-direction: row-reverse;
}
.novel-dialogue-avatar {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  overflow: hidden;
  background: #dce4ee;
  border: 2px solid #28324c;
  border-radius: 4px;
  box-shadow: 3px 3px 0 #aeb9ca;
}
.novel-dialogue-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.novel-dialogue-avatar span {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  color: #52627a;
  font-weight: 700;
}
.novel-dialogue-bubble {
  position: relative;
  max-width: min(72%, 510px);
  padding: 9px 13px 11px;
  color: #30384e;
  background: #fff;
  border: 2px solid #28324c;
  box-shadow: 3px 3px 0 #c4cad5;
}
.novel-dialogue-bubble::before {
  content: "";
  position: absolute;
  top: 15px;
  left: -8px;
  width: 12px;
  height: 12px;
  background: #fff;
  border-bottom: 2px solid #28324c;
  border-left: 2px solid #28324c;
  transform: rotate(45deg);
}
.side-right .novel-dialogue-bubble::before {
  right: -8px;
  left: auto;
  border: 0;
  border-top: 2px solid #28324c;
  border-right: 2px solid #28324c;
}
.novel-dialogue-bubble small {
  display: block;
  margin-bottom: 3px;
  color: #73809d;
  font-size: 10px;
}
.novel-dialogue-bubble p {
  margin: 0;
  color: inherit;
  font-size: 13px;
  line-height: 1.65;
  text-align: left;
  text-indent: 0;
  letter-spacing: 0;
}
.novel-dialogue-controls {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  color: #77829b;
  background: #e8ebf1;
  border-top: 1px solid #c9d0dc;
  font-size: 9px;
  text-align: center;
}
.novel-dialogue-controls button {
  padding: 5px 7px;
  color: #465477;
  background: #fff;
  border: 1px solid #bfc8d8;
  border-radius: 3px;
  cursor: pointer;
  font-size: 9px;
}
.novel-dialogue-controls button:disabled {
  opacity: .4;
}
@keyframes novel-panel-in {
  from {
    opacity: 0;
    transform: translateY(9px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.novel-interactive-invalid {
  margin: 1.5rem 0;
  padding: 10px;
  color: #8b6670;
  background: #fff1f3;
  border: 1px dashed #dab8c0;
  font-size: 11px;
  text-align: center;
}
.novel-reader-page.night .novel-interactive-block {
  color: #d8deec;
}
.novel-reader-page.night .novel-dialogue-block {
  background: #252b39;
  border-color: #8490af;
  box-shadow: 7px 7px 0 #151925;
}
.novel-reader-page.night .novel-dialogue-bubble {
  color: #e2e5ed;
  background: #333b4e;
  border-color: #8994b2;
  box-shadow: 3px 3px 0 #171c28;
}
.novel-reader-page.night .novel-dialogue-bubble::before {
  background: #333b4e;
  border-color: #8994b2;
}
.novel-reader-page.night .novel-dialogue-controls {
  background: #1c2130;
  border-color: #41495d;
}
.novel-reader-page.night .novel-letter-trigger {
  color: #e2cfb9;
  background: #44382f;
  border-color: #8c745f;
  box-shadow: 4px 4px 0 #191a21;
}
@media (max-width: 1100px) {
  .novel-advanced-editor-layout {
    grid-template-columns: 150px minmax(280px, 1fr);
  }
  .novel-module-inspector {
    position: static;
    grid-column: 1 / -1;
  }
}
@media (max-width: 720px) {
  .novel-editor-card, .novel-preview-card {
    grid-column: 1;
  }
  .novel-advanced-editor-layout {
    display: flex;
    flex-direction: column;
  }
  .novel-module-toolbox {
    position: static;
    order: 2;
    width: 100%;
  }
  .novel-module-toolbox.collapsed {
    width: 100%;
  }
  .novel-module-toolbox > header button {
    transform: rotate(-90deg);
  }
  .novel-module-toolbox > div {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .novel-module-toolbox > div > button {
    display: grid;
    justify-items: center;
    padding: 9px 4px;
    text-align: center;
  }
  .novel-module-toolbox button small {
    display: none;
  }
  .novel-document-editor {
    order: 1;
    width: 100%;
  }
  .novel-module-inspector {
    order: 3;
    width: 100%;
  }
  .novel-editor-module-card {
    align-items: flex-start;
    flex-direction: column;
  }
  .novel-editor-module-card nav {
    width: 100%;
    justify-content: flex-start;
  }
  .novel-danmaku-text {
    font-size: var(--danmaku-font-size);
  }
  .novel-dialogue-block {
    margin-inline: -8px;
  }
  .novel-dialogue-viewport {
    height: 292px;
    padding-inline: 10px;
  }
  .novel-dialogue-avatar {
    flex-basis: 42px;
    width: 42px;
    height: 42px;
  }
  .novel-dialogue-bubble {
    max-width: 76%;
  }
  .novel-dialogue-controls {
    grid-template-columns: auto 1fr auto;
  }
  .novel-dialogue-controls span {
    font-size: 8px;
  }
  .novel-letter-backdrop {
    padding: 7px;
  }
  .novel-letter-modal {
    width: min(96vw, 67vh);
    animation-duration: .22s;
  }
  .novel-letter-modal article {
    padding-top: 5%;
  }
  .novel-letter-close {
    width: 31px;
    height: 31px;
  }
  .novel-letter-modal h2 {
    margin-right: 39px;
    font-size: 20px;
  }
  .novel-letter-modal p {
    font-size: 13px;
    line-height: 1.85;
  }
}
@media (prefers-reduced-motion: reduce) {
  .novel-danmaku-text, .novel-letter-backdrop, .novel-letter-modal, .novel-letter-modal article, .novel-letter-close, .novel-dialogue-message {
    animation: none !important;
    transition: none !important;
  }
  .novel-dialogue-viewport {
    scroll-behavior: auto;
  }
}
* {
  box-sizing: border-box;
}
html {
  background: var(--paper);
}
body {
  margin: 0;
  color: var(--ink);
  background: radial-gradient(circle at 12% 28%, rgba(121,102,216,.07), transparent 24rem),
    linear-gradient(180deg, var(--night) 0 394px, var(--paper) 394px 100%);
  font-family: "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
button {
  font: inherit;
}
.shell {
  width: min(1220px, calc(100% - 40px));
  margin-inline: auto;
}
.signal-strip {
  height: 31px;
  color: #bdb5ca;
  background: #0a0810;
  border-bottom: 1px solid rgba(255,255,255,.07);
  font-size: 12px;
  letter-spacing: .09em;
}
.signal-inner {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.signal-inner span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.signal-copy {
  color: #6f687a;
}
.live-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  background: #69cca1;
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(105,204,161,.12);
}
.site-header {
  height: 74px;
  color: #f8f4ef;
  background: rgba(16,13,24,.9);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.header-main {
  height: 100%;
  display: grid;
  grid-template-columns: 235px 1fr auto;
  align-items: center;
  gap: 28px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 0;
  color: inherit;
  background: none;
  border: 0;
  cursor: pointer;
  text-align: left;
}
.brand-mark {
  position: relative;
  display: block;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  overflow: hidden;
  color: transparent;
  background: linear-gradient(145deg, #e8d29d, #b8883d);
  border: 1px solid #f1dca9;
  transform: rotate(45deg);
}
.brand-mark::after {
  content: "漫";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #18131e;
  transform: rotate(-45deg);
  font-family: "STSong", "SimSun", serif;
  font-size: 19px;
  font-weight: 700;
  line-height: 1;
}
.brand strong, .brand small {
  display: block;
}
.brand strong {
  font-family: Georgia, "STSong", serif;
  font-size: 19px;
  letter-spacing: .14em;
}
.brand small {
  margin-top: 3px;
  color: #837b8c;
  font-size: 11px;
  letter-spacing: .13em;
}
nav {
  display: flex;
  align-self: stretch;
  align-items: center;
  gap: 5px;
}
nav button, nav a {
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 14px;
  color: #9e96a9;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 13px;
  text-decoration: none;
}
nav button:hover, nav button.active, nav a:hover, nav a.active {
  color: #fff;
}
nav button.active::after, nav a.active::after {
  content: "";
  position: absolute;
  right: 14px;
  bottom: -1px;
  left: 14px;
  height: 2px;
  background: var(--gold);
}
.header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.search-button {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 34px;
  padding: 0 8px 0 12px;
  color: #8e8798;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 7px;
  cursor: pointer;
}
.search-button span {
  color: #d0c9d7;
  font-size: 20px;
  line-height: 1;
  transform: rotate(-15deg);
}
.search-button b {
  font-size: 12px;
  font-weight: 400;
}
.search-button kbd {
  padding: 3px 5px;
  color: #6e6877;
  background: rgba(0,0,0,.18);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 4px;
  font-size: 12px;
}
.user-orb {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: #e4d7b5;
  background: #2b2439;
  border: 1px solid #504361;
  border-radius: 50%;
  cursor: pointer;
  font-family: Georgia, serif;
  text-decoration: none;
}
.user-orb:hover {
  color: #fff1cf;
  border-color: #78648b;
}
.hero {
  position: relative;
  height: 289px;
  overflow: hidden;
  color: white;
  background: linear-gradient(104deg, #171020 0%, #201731 54%, #15101e 100%);
  border-bottom: 1px solid #342944;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 71% 38%, rgba(123,98,191,.23), transparent 23rem), linear-gradient(90deg, transparent 48%, rgba(223,198,145,.05));
}
.hero-grid {
  position: absolute;
  inset: 0;
  opacity: .18;
  background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 46px 46px;
  mask-image: linear-gradient(90deg, transparent, black 35%, black 76%, transparent);
}
.hero-inner {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
}
.hero-copy {
  position: relative;
  z-index: 2;
  width: 58%;
  padding-top: 3px;
}
.eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #b2a9bc;
  font-size: 12px;
  letter-spacing: .12em;
}
.eyebrow span {
  padding: 5px 8px;
  color: #f1ddb2;
  background: rgba(198,154,75,.14);
  border: 1px solid rgba(198,154,75,.35);
}
.eyebrow i {
  width: 28px;
  height: 1px;
  background: #645c6c;
}
@font-face {
  font-family: 'SmileySans';
  src: url('/fonts/SmileySans-Oblique.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
.content-admin-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}
.content-admin-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid #e6e9f2;
  border-radius: 8px;
  flex-wrap: wrap;
}
.content-admin-title {
  min-width: 0;
}
.content-admin-title b {
  display: block;
  font-size: 14px;
  color: #2c3554;
}
.content-admin-title small {
  font-size: 12px;
  color: #929ab1;
}
.content-admin-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.content-admin-actions button {
  font-size: 12px;
  color: #4059b4;
  background: #eef2ff;
  border: 1px solid #cbd6f3;
  border-radius: 5px;
  padding: 4px 10px;
  cursor: pointer;
}
.content-admin-actions button:hover {
  background: #e0e8ff;
}
.content-admin-empty {
  margin-top: 14px;
  color: #929ab1;
  font-size: 13px;
  text-align: center;
  padding: 30px 0;
}
.hero h1 {
  margin: 16px 0 8px;
  font-family: 'SmileySans', "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;
  font-size: clamp(36px, 4.6vw, 57px);
  font-weight: 500;
  letter-spacing: .01em;
  line-height: 1.05;
}
.hero h1 em {
  color: #dac498;
  font-size: .55em;
  font-style: normal;
  letter-spacing: .28em;
}
.hero-copy > p {
  margin: 0;
  color: #aaa1b2;
  font-size: 13px;
  letter-spacing: .08em;
}
.hero-meta {
  display: flex;
  gap: 25px;
  margin-top: 24px;
  color: #777081;
  font-size: 12px;
}
.hero-meta span {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
}
.hero-meta b {
  color: #ddd6e3;
  font-family: Georgia, serif;
  font-size: 15px;
  font-weight: 400;
}
.issue-stage {
  position: absolute;
  top: 0;
  right: 0;
  width: 48%;
  height: 100%;
}
.issue-outline {
  position: absolute;
  width: 214px;
  height: 254px;
  border: 1px solid rgba(225,205,160,.25);
}
.issue-outline.back {
  top: 13px;
  right: 40px;
  transform: rotate(7deg);
  background: rgba(255,255,255,.018);
}
.issue-outline.front {
  top: 20px;
  right: 76px;
  display: flex;
  flex-direction: column;
  padding: 24px;
  transform: rotate(-3deg);
  background: linear-gradient(155deg, rgba(45,35,58,.86), rgba(21,16,29,.9));
  box-shadow: -18px 18px 42px rgba(0,0,0,.2);
}
.issue-outline.front::before, .issue-outline.front::after {
  content: "";
  position: absolute;
  right: 20px;
  left: 20px;
  height: 44px;
  border: 1px solid rgba(255,255,255,.08);
}
.issue-outline.front::before {
  top: 57px;
}
.issue-outline.front::after {
  top: 109px;
}
.issue-outline.front span {
  color: #8e8299;
  font-family: Georgia, serif;
  font-size: 11px;
  letter-spacing: .18em;
}
.issue-outline.front strong {
  position: relative;
  z-index: 2;
  margin-top: 39px;
  color: #d8c08d;
  font-family: Georgia, serif;
  font-size: 64px;
  font-weight: 400;
  line-height: 1;
}
.issue-outline.front small {
  position: relative;
  z-index: 2;
  margin-top: 9px;
  color: #b7afbb;
  font-size: 12px;
  letter-spacing: .12em;
}
.issue-outline.front i {
  width: 46px;
  height: 1px;
  margin-top: 18px;
  background: #76669b;
}
.issue-caption {
  position: absolute;
  right: 0;
  bottom: 21px;
  padding: 8px 12px;
  color: #c9c2ce;
  background: rgba(12,9,17,.62);
  border: 1px solid rgba(255,255,255,.09);
  backdrop-filter: blur(8px);
  font-size: 12px;
}
.breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 48px;
  color: #8c8491;
  font-size: 12px;
}
.breadcrumb i {
  color: #b7afb8;
  font-size: 17px;
  font-style: normal;
}
.breadcrumb b {
  color: #443e49;
}
.content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 278px;
  align-items: start;
  gap: 18px;
  padding-bottom: 50px;
}
.board-card, .side-card {
  background: rgba(253,251,246,.92);
  border: 1px solid var(--line);
  box-shadow: 0 5px 20px rgba(57,46,66,.04);
}
.board-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 101px;
  padding: 20px 23px;
  border-bottom: 1px solid var(--line);
}
.board-kicker {
  color: #9f937e;
  font-family: Georgia, serif;
  font-size: 12px;
  letter-spacing: .18em;
}
.board-head h2 {
  margin: 4px 0 3px;
  font-family: Georgia, "STSong", serif;
  font-size: 23px;
  font-weight: 600;
  letter-spacing: .08em;
}
.board-head p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}
.board-category-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 13px;
}
.board-category-nav button {
  padding: 4px 9px;
  color: #756a78;
  background: #f5f0e8;
  border: 1px solid #ddd3c7;
  border-radius: 3px;
  cursor: pointer;
  font-size: 12px;
}
.board-category-nav button:hover, .board-category-nav button.active {
  color: #fff;
  background: #6f5ac1;
  border-color: #6f5ac1;
}
.new-thread {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 35px;
  padding: 0 14px;
  color: #fff;
  background: #30263e;
  border: 1px solid #30263e;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
  box-shadow: 0 5px 12px rgba(48,38,62,.14);
}
.new-thread:hover {
  background: #473558;
}
.new-thread span {
  color: #d9c28f;
  font-size: 15px;
}
.board-tabs {
  display: flex;
  height: 43px;
  padding: 0 17px;
  align-items: stretch;
  gap: 3px;
  background: #efebe3;
  border-bottom: 1px solid var(--line);
}
.board-tabs button {
  position: relative;
  padding: 0 11px;
  color: #827a85;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.board-tabs button.active {
  color: #2b2530;
  font-weight: 700;
}
.board-tabs button.active::after {
  content: "";
  position: absolute;
  right: 10px;
  bottom: 0;
  left: 10px;
  height: 2px;
  background: var(--violet);
}
.tab-spacer {
  flex: 1;
}
.view-mode {
  display: flex;
  align-items: center;
  gap: 4px;
  color: #aaa2aa;
  font-size: 16px;
}
.view-mode button {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  padding: 0;
  color: #aaa2aa;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 4px;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
}
.view-mode button:hover {
  color: #6f5ac1;
  background: #f6f2ea;
}
.view-mode button.active {
  color: var(--violet);
  background: #fff;
  border-color: #ddd3c7;
  box-shadow: 0 1px 3px rgba(57,46,66,.08);
}
.thread-columns {
  display: grid;
  grid-template-columns: minmax(0,1fr) 110px 86px 116px;
  padding: 10px 19px 8px 73px;
  color: #a59ca3;
  background: #f9f6f0;
  border-bottom: 1px solid #e5ddd3;
  font-size: 12px;
  letter-spacing: .09em;
}
.thread-columns span:not(:first-child) {
  text-align: center;
}
.thread-row {
  display: grid;
  grid-template-columns: 54px minmax(0,1fr) 110px 86px 116px;
  align-items: center;
  width: 100%;
  min-height: 75px;
  padding: 0 19px 0 14px;
  color: inherit;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #e8e1d8;
  cursor: pointer;
  text-align: left;
  text-decoration: none;
}
.thread-row:focus-visible {
  outline: 2px solid var(--violet);
  outline-offset: -2px;
}
.thread-row:hover {
  background: #fbf8f1;
  box-shadow: inset 3px 0 var(--violet);
}
.thread-row-skeleton {
  cursor: default;
  opacity: .72;
}
.thread-row-skeleton:hover {
  background: transparent;
  box-shadow: none;
}
.thread-row-skeleton > i {
  width: 28px;
  height: 28px;
  background: #e8e1d8;
  border-radius: 50%;
  animation: forum-pulse 1.15s ease-in-out infinite alternate;
}
.thread-row-skeleton > div {
  display: grid;
  gap: 8px;
}
.thread-row-skeleton > div b, .thread-row-skeleton > div span, .thread-row-skeleton > em, .thread-row-skeleton > small {
  display: block;
  height: 9px;
  background: #e9e2d9;
  border-radius: 2px;
  animation: forum-pulse 1.15s ease-in-out infinite alternate;
}
.thread-row-skeleton > div b {
  width: 72%;
}
.thread-row-skeleton > div span {
  width: 42%;
}
.thread-row-skeleton > em {
  width: 68px;
}
.thread-row-skeleton > small {
  width: 78px;
}
.thread-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(238px, 1fr));
  gap: 13px;
  padding: 16px 19px 19px;
}
.thread-card {
  display: flex;
  flex-direction: column;
  gap: 9px;
  min-height: 168px;
  padding: 15px 16px 13px;
  color: inherit;
  background: #fdfaf3;
  border: 1px solid #e5ddd3;
  border-radius: 6px;
  text-decoration: none;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.thread-card:hover {
  border-color: #c9bce0;
  box-shadow: 0 6px 18px rgba(57,46,66,.09);
  transform: translateY(-2px);
}
.thread-card:focus-visible {
  outline: 2px solid var(--violet);
  outline-offset: 2px;
}
.thread-card-top {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  min-height: 20px;
}
.thread-card-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: #332d38;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
}
.thread-card-meta {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: auto;
}
.thread-card-meta > span:last-child {
  min-width: 0;
}
.thread-card-meta b {
  display: block;
  overflow: hidden;
  color: #5d5660;
  font-size: 12px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.thread-card-meta small {
  display: block;
  margin-top: 3px;
  color: #a0989f;
  font-size: 12px;
}
.thread-card-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  padding-top: 9px;
  border-top: 1px dashed #e5ddd3;
  color: #a0989f;
  font-size: 12px;
}
.thread-card-stats b {
  color: #4e4653;
  font-family: Georgia, serif;
  font-weight: 400;
}
.thread-card-skeleton {
  cursor: default;
  opacity: .72;
}
.thread-card-skeleton:hover {
  border-color: #e5ddd3;
  box-shadow: none;
  transform: none;
}
.thread-card-skeleton > i, .thread-card-skeleton > b, .thread-card-skeleton > span, .thread-card-skeleton > em {
  display: block;
  height: 10px;
  background: #e9e2d9;
  border-radius: 2px;
  animation: forum-pulse 1.15s ease-in-out infinite alternate;
}
.thread-card-skeleton > i {
  width: 30px;
  height: 30px;
  border-radius: 50%;
}
.thread-card-skeleton > b {
  width: 84%;
}
.thread-card-skeleton > span {
  width: 56%;
}
.thread-card-skeleton > em {
  width: 66px;
  margin-top: auto;
}
@keyframes forum-pulse {
  to {
    opacity: .42;
  }
}
.thread-icon {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  font-family: Georgia, serif;
}
.thread-icon.violet {
  color: #7b68cf;
  background: #eeeafd;
}
.thread-icon.gold {
  color: #ae803a;
  background: #f5ead2;
}
.thread-icon.blue {
  color: #4f829f;
  background: #e7f0f5;
}
.thread-icon.green {
  color: #47806b;
  background: #e6f0eb;
}
.thread-icon.rose {
  color: #a45771;
  background: #f6e7ec;
}
.thread-title-line {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 7px;
}
.thread-title-line strong {
  overflow: hidden;
  color: #332d38;
  font-size: 12px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.thread-main small, .thread-author small, .thread-count small, .thread-last small {
  display: block;
  margin-top: 5px;
  color: #9d949c;
  font-size: 12px;
}
.tag, .pin, .hot {
  flex: none;
  padding: 2px 5px;
  border: 1px solid;
  border-radius: 3px;
  font-size: 12px;
  font-weight: 400;
}
.pin {
  color: #9c6d2c;
  background: #f7ecd7;
  border-color: #e4cfa5;
}
.tag.violet {
  color: #6651bd;
  border-color: #c9c0eb;
}
.tag.gold {
  color: #a16c26;
  border-color: #dfc99e;
}
.tag.blue {
  color: #39738f;
  border-color: #b9d5e3;
}
.tag.green {
  color: #3b745e;
  border-color: #bed8cd;
}
.tag.rose {
  color: #96465f;
  border-color: #e0bdc8;
}
.hot {
  color: #fff;
  background: #a95e78;
  border-color: #a95e78;
  font-family: Georgia, serif;
  font-weight: 700;
  letter-spacing: .04em;
}
.thread-author, .thread-count, .thread-last {
  text-align: center;
}
.thread-author b, .thread-last b {
  display: block;
  overflow: hidden;
  color: #5d5660;
  font-size: 12px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.thread-count b {
  color: #4e4653;
  font-family: Georgia, serif;
  font-size: 12px;
  font-weight: 400;
}
.pagination {
  display: flex;
  align-items: center;
  gap: 5px;
  min-height: 66px;
  padding: 14px 19px;
}
.pagination button {
  min-width: 29px;
  height: 29px;
  padding: 0 8px;
  color: #6d6470;
  background: #f5f1e9;
  border: 1px solid #dcd4c8;
  border-radius: 3px;
  cursor: pointer;
  font-size: 12px;
}
.pagination button.current {
  color: white;
  background: #342940;
  border-color: #342940;
}
.pagination button.disabled {
  color: #c2bac0;
  cursor: not-allowed;
}
.pagination button.locked small {
  margin-left: 3px;
  color: #a99eaa;
  font-size: 11px;
}
.pagination > span {
  color: #a299a3;
}
.pagination em {
  margin-left: auto;
  color: #a0989f;
  font-size: 12px;
  font-style: normal;
}
.sidebar {
  display: grid;
  gap: 12px;
}
.side-card {
  padding: 18px;
}
.side-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 15px;
}
.side-title > span {
  font-family: Georgia, "STSong", serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
}
.side-title small {
  color: #a0979e;
  font-size: 12px;
  font-weight: 400;
}
.side-title small .live-dot {
  margin-right: 6px;
}
.serial-card {
  position: relative;
  overflow: hidden;
  color: #eee8f2;
  background: linear-gradient(145deg, #241b31, #17121f);
  border-color: #3a2e48;
}
.serial-card::after {
  content: attr(data-chapter);
  position: absolute;
  right: -9px;
  bottom: -26px;
  color: rgba(255,255,255,.025);
  font-family: Georgia, serif;
  font-size: 116px;
}
.serial-card .side-title small {
  color: #8c8292;
}
.chapter-number {
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.chapter-number small {
  color: #746b7d;
  font-size: 11px;
  letter-spacing: .15em;
}
.chapter-number strong {
  color: #dcc696;
  font-family: Georgia, serif;
  font-size: 39px;
  font-weight: 400;
}
.serial-card h3 {
  margin: 2px 0 6px;
  font-family: "STSong", serif;
  font-size: 16px;
}
.serial-card p {
  margin: 0;
  color: #8f8697;
  font-size: 12px;
}
.progress {
  height: 3px;
  margin-top: 18px;
  background: #3a3044;
}
.progress i {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, var(--violet), var(--gold));
}
.chapter-range {
  display: flex;
  justify-content: space-between;
  margin-top: 7px;
  color: #766e7e;
  font-family: Georgia, serif;
  font-size: 12px;
}
.chapter-range b {
  font-family: inherit;
  font-weight: 400;
}
.reader-stack {
  display: flex;
  align-items: center;
  margin-bottom: 12px;
}
.reader-stack span, .reader-stack b {
  display: grid;
  place-items: center;
  width: 33px;
  height: 33px;
  margin-right: -6px;
  border: 2px solid #fcfaf5;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 600;
}
.reader-stack span.violet {
  color: #6654b4;
  background: #ded7f5;
}
.reader-stack span.gold {
  color: #8a652c;
  background: #eee0bd;
}
.reader-stack span.blue {
  color: #376d89;
  background: #d7e7ef;
}
.reader-stack span.rose {
  color: #87465c;
  background: #efd6df;
}
.reader-stack span.green {
  color: #39705b;
  background: #d7e8e0;
}
.reader-stack b {
  margin-left: 8px;
  color: #8e858e;
  background: #f2eee7;
  font-size: 12px;
  font-weight: 400;
}
.reader-card p, .notice-card p {
  margin: 0;
  color: #776e78;
  font-size: 12px;
  line-height: 1.75;
}
.notice-card {
  background: #f7f1e5;
  border-color: #e1d5bf;
}
.system-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 13px;
}
.system-head img {
  width: 35px;
  height: 35px;
  image-rendering: pixelated;
  border: 1px solid #ded3c2;
  border-radius: 5px;
}
.system-head b, .system-head small {
  display: block;
}
.system-head b {
  color: #493e45;
  font-size: 12px;
}
.system-head small {
  margin-top: 3px;
  color: #a09089;
  font-size: 12px;
}
.notice-card button {
  display: flex;
  justify-content: space-between;
  width: 100%;
  margin-top: 12px;
  padding: 9px 0 0;
  color: #7e6848;
  background: none;
  border: 0;
  border-top: 1px solid #e5d9c5;
  cursor: pointer;
  font-size: 12px;
}
.notice-card button span {
  font-size: 13px;
}
.hot-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.hot-tags span {
  padding: 6px 8px;
  color: #6f6671;
  background: #f0ece5;
  border: 1px solid #e3dcd2;
  border-radius: 3px;
  font-size: 12px;
}
footer {
  color: #79717e;
  background: #0d0a12;
  border-top: 1px solid #241d2c;
}
.footer-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 92px;
  font-size: 12px;
}
.footer-inner div b, .footer-inner div span {
  display: block;
}
.footer-inner div b {
  color: #d3c5a6;
  font-family: Georgia, "STSong", serif;
  font-size: 14px;
  letter-spacing: .12em;
}
.footer-inner div span {
  margin-top: 5px;
  color: #665f6a;
}
.footer-inner > span {
  color: #4f4854;
  font-family: Georgia, serif;
  letter-spacing: .13em;
}
.toast {
  position: fixed;
  z-index: 20;
  right: 24px;
  bottom: 24px;
  display: flex;
  align-items: center;
  gap: 9px;
  max-width: min(380px, calc(100% - 40px));
  padding: 12px 16px;
  color: #eee8f2;
  background: rgba(25,19,34,.94);
  border: 1px solid #51435e;
  border-radius: 5px;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  backdrop-filter: blur(10px);
  font-size: 12px;
  animation: slide-in .2s ease-out;
}
.toast span {
  color: #d7bb80;
}
@keyframes slide-in {
  from {
    opacity: 0;
    transform: translateY(7px);
  }
}
.thread-page {
  min-height: 100vh;
  background: var(--paper);
}
.thread-page .brand {
  text-decoration: none;
}
.thread-hero {
  position: relative;
  height: 142px;
  overflow: hidden;
  color: #f6f1f7;
  background: linear-gradient(110deg, #171020, #22182e 58%, #17111f);
  border-bottom: 1px solid #392d45;
}
.thread-hero::after {
  content: "";
  position: absolute;
  top: -110px;
  right: 10%;
  width: 330px;
  height: 330px;
  border: 1px solid rgba(218,196,152,.12);
  border-radius: 50%;
  box-shadow: 0 0 0 34px rgba(121,102,216,.035), 0 0 0 68px rgba(121,102,216,.025);
}
.thread-hero-grid {
  position: absolute;
  inset: 0;
  opacity: .15;
  background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(90deg, transparent, black 22%, black 80%, transparent);
}
.thread-hero-inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
}
.thread-hero-kicker {
  color: #bba97f;
  font-size: 12px;
  letter-spacing: .16em;
}
.thread-hero h1 {
  margin: 8px 0 2px;
  font-family: Georgia, "STSong", serif;
  font-size: 28px;
  font-weight: 500;
  letter-spacing: .08em;
}
.thread-hero p {
  margin: 0;
  color: #978e9e;
  font-size: 13px;
}
.thread-hero-number {
  display: flex;
  align-items: baseline;
  gap: 13px;
  margin-right: 46px;
}
.thread-hero-number small {
  color: #7f7489;
  font-family: Georgia, serif;
  font-size: 12px;
  letter-spacing: .18em;
}
.thread-hero-number strong {
  color: #d8c08d;
  font-family: Georgia, serif;
  font-size: 62px;
  font-weight: 400;
}
.simple-thread-hero {
  height: 88px;
  background: #18111f;
}
.simple-thread-hero::after {
  display: none;
}
.simple-thread-hero .thread-hero-grid {
  opacity: .07;
}
.simple-thread-hero .thread-hero-inner {
  justify-content: flex-start;
}
.simple-thread-hero h1 {
  margin: 0;
  font-size: 27px;
  letter-spacing: .04em;
}
.simple-thread-hero h1 em {
  margin-left: 10px;
  color: #d4bd8c;
  font-size: .58em;
  font-style: normal;
  font-weight: 400;
  letter-spacing: .18em;
}
.thread-breadcrumb a {
  color: #8c8491;
  text-decoration: none;
}
.thread-breadcrumb a:hover {
  color: #514858;
}
.thread-title-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  min-height: 112px;
  padding: 20px 24px;
  background: #fdfbf6;
  border: 1px solid var(--line);
  box-shadow: 0 5px 20px rgba(57,46,66,.04);
}
.thread-heading-tags {
  display: flex;
  gap: 6px;
  margin-bottom: 8px;
}
.thread-heading h2 {
  margin: 0;
  font-family: Georgia, "STSong", serif;
  font-size: 21px;
  font-weight: 600;
  letter-spacing: .025em;
}
.thread-heading p {
  margin: 7px 0 0;
  color: #918890;
  font-size: 12px;
}
.thread-title-stats {
  display: flex;
  align-items: center;
  gap: 19px;
  padding-left: 28px;
  border-left: 1px solid #e1d9cf;
}
.thread-title-stats span {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  color: #9a9299;
  font-size: 12px;
}
.thread-title-stats b {
  color: #423947;
  font-family: Georgia, serif;
  font-size: 18px;
  font-weight: 400;
}
.thread-title-stats > button {
  height: 31px;
  padding: 0 10px;
  color: #756779;
  background: #f5f0e8;
  border: 1px solid #dcd3c8;
  border-radius: 3px;
  cursor: pointer;
}
.thread-title-stats > button.active {
  color: #8d6b2e;
  background: #f7ecd3;
  border-color: #ddc792;
}
.thread-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 62px;
}
.pagination.compact {
  min-height: 0;
  padding: 0;
}
.pagination.compact button {
  background: #faf7f0;
}
.pagination.compact button.current {
  background: #342940;
}
.pagination.compact .page-capacity {
  margin-left: 7px;
  color: #999099;
  font-size: 12px;
}
.thread-actions {
  display: flex;
  gap: 6px;
}
.thread-actions button {
  height: 31px;
  padding: 0 11px;
  color: #716875;
  background: #faf7f0;
  border: 1px solid #dcd4c8;
  border-radius: 3px;
  cursor: pointer;
  font-size: 12px;
}
.thread-actions .reply-primary, .reply-primary {
  color: #fff;
  background: #342940;
  border-color: #342940;
  box-shadow: 0 4px 11px rgba(52,41,64,.12);
}
.thread-layout {
  display: grid;
  grid-template-columns: minmax(0,1fr) 260px;
  align-items: start;
  gap: 16px;
  padding-bottom: 52px;
}
.post-list {
  display: grid;
  gap: 9px;
}
.post-sequence {
  display: contents;
}
.forum-post {
  display: grid;
  grid-template-columns: 146px minmax(0,1fr);
  min-height: 218px;
  background: #fdfbf6;
  border: 1px solid var(--line);
  box-shadow: 0 4px 16px rgba(57,46,66,.035);
  scroll-margin-top: 15px;
}
.forum-post.owner-post {
  border-top: 2px solid #a98449;
}
.post-user {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 23px 14px 17px;
  background: #f0ebe3;
  border-right: 1px solid #ddd5cb;
  text-align: center;
}
.profile-avatar {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  margin-bottom: 10px;
  border: 3px solid rgba(255,255,255,.7);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(55,43,62,.1);
  font-family: Georgia, "STSong", serif;
  font-size: 16px;
  font-weight: 700;
}
.profile-avatar.violet {
  color: #5e4aa9;
  background: #dcd4f4;
}
.profile-avatar.gold {
  color: #825e25;
  background: #ead9ae;
}
.profile-avatar.blue {
  color: #376b86;
  background: #d5e5ed;
}
.profile-avatar.rose {
  color: #89465d;
  background: #efd4de;
}
.profile-avatar.green {
  color: #376c58;
  background: #d5e6de;
}
.profile-avatar img, .large-reader-avatar img {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
}
.post-user > strong {
  max-width: 112px;
  overflow: hidden;
  color: #403844;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.user-rank {
  margin-top: 5px;
  color: #8e7b58;
  font-size: 12px;
}
.post-user dl {
  width: 100%;
  margin: 17px 0 0;
  padding-top: 10px;
  border-top: 1px solid #ddd4c8;
}
.post-user dl div {
  display: flex;
  justify-content: space-between;
  padding: 3px 1px;
  font-size: 12px;
}
.post-user dt {
  color: #a0969e;
}
.post-user dd {
  margin: 0;
  color: #665e68;
}
.post-body {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: 0 20px;
}
.post-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 40px;
  color: #9a919a;
  border-bottom: 1px solid #e7e0d7;
  font-size: 12px;
}
.post-meta div {
  display: flex;
  align-items: center;
  gap: 10px;
}
.post-meta b {
  padding: 3px 6px;
  color: #9c6e2f;
  background: #f6ebd6;
  border: 1px solid #e5cfa7;
  border-radius: 3px;
  font-size: 12px;
  font-weight: 400;
}
.post-meta a {
  color: #8e8492;
  font-family: Georgia, serif;
  font-size: 12px;
  text-decoration: none;
}
.post-content {
  flex: 1;
  padding: 21px 2px 24px;
  color: #423b46;
  font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
  font-size: 14px;
  line-height: 1.9;
}
.post-content p {
  margin: 0 0 14px;
}
.post-content p:last-child {
  margin-bottom: 0;
}
.post-content blockquote {
  margin: 0 0 16px;
  padding: 10px 13px;
  color: #766c77;
  background: #f1ede6;
  border-left: 3px solid #aa93ce;
  font-size: 14px;
  line-height: 1.65;
}
.post-content blockquote b, .post-content blockquote span {
  display: block;
}
.post-content blockquote b {
  margin-bottom: 4px;
  color: #685978;
  font-size: 14px;
}
.fanfic-notes {
  margin-bottom: 22px;
  padding: 14px 16px 4px;
  color: #756976;
  background: #f3eee7;
  border: 1px solid #e0d7cc;
  border-left: 3px solid #a95e78;
  font-size: 12px;
  line-height: 1.75;
}
.fanfic-notes p {
  margin-bottom: 9px;
}
.fanfic-divider {
  margin: 7px 0 24px;
  color: #b094a5;
  font-family: Georgia, serif;
  font-size: 15px;
  text-align: center;
}
.fanfic-copy {
  max-width: 720px;
  color: #3f3842;
  font-family: "STSong", "SimSun", "Microsoft YaHei", serif;
  font-size: 14px;
  line-height: 2.08;
}
.fanfic-copy p {
  margin-bottom: 15px;
}
.fanfic-copy .fanfic-tbc {
  margin-top: 25px;
  color: #8d7887;
  font-family: Georgia, serif;
  font-size: 14px;
  letter-spacing: .12em;
  text-align: right;
}
.chapter-preview-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 22px;
  max-width: 520px;
  min-height: 82px;
  margin: 18px 0;
  padding: 15px 18px;
  overflow: hidden;
  color: #eee9f1;
  background: linear-gradient(120deg, #241b30, #17121f);
  border: 1px solid #493a56;
}
.chapter-preview-card::after {
  content: "100";
  position: absolute;
  right: -6px;
  bottom: -26px;
  color: rgba(255,255,255,.035);
  font-family: Georgia, serif;
  font-size: 92px;
}
.chapter-preview-card div {
  display: flex;
  flex-direction: column;
  padding-right: 20px;
  border-right: 1px solid rgba(255,255,255,.11);
}
.chapter-preview-card small {
  color: #908497;
  font-size: 12px;
}
.chapter-preview-card strong {
  margin-top: 4px;
  color: #d7c08f;
  font-family: Georgia, "STSong", serif;
  font-size: 18px;
  font-weight: 500;
}
.chapter-preview-card > span {
  position: relative;
  z-index: 2;
  font-family: "STSong", serif;
  font-size: 15px;
}
.chapter-preview-card > i {
  position: absolute;
  top: 8px;
  right: 10px;
  color: #786e80;
  font-size: 11px;
  font-style: normal;
}
.prototype-note {
  padding: 9px 11px;
  color: #857b84;
  background: #f5f0e7;
  border: 1px dashed #d9cec0;
  font-size: 12px;
}
.panel-attachment {
  position: relative;
  display: grid;
  grid-template-columns: 1.15fr .85fr .75fr;
  gap: 5px;
  width: min(100%, 510px);
  height: 142px;
  margin-top: 15px;
  padding: 7px;
  background: #e8e2d9;
  border: 1px solid #d7cfc4;
}
.panel-attachment div {
  background: linear-gradient(145deg, #cfc7c2, #aaa1aa);
  border: 3px solid #f8f4ed;
}
.panel-attachment div:nth-child(2) {
  background: linear-gradient(30deg, #b9b0bb, #ded8d0);
}
.panel-attachment div:nth-child(3) {
  background: linear-gradient(160deg, #dad3cb, #958e98);
}
.panel-attachment span {
  position: absolute;
  right: 8px;
  bottom: 7px;
  padding: 4px 7px;
  color: #eee9f0;
  background: rgba(35,28,40,.72);
  font-size: 11px;
}
.edited-mark {
  margin-top: 18px;
  color: #aaa1a8;
  font-size: 12px;
}
.topic-timestamps {
  display: flex;
  justify-content: flex-end;
  gap: 13px;
  padding: 0 2px 8px;
  color: #9e969d;
  font-size: 12px;
}
.post-footer {
  display: flex;
  justify-content: flex-end;
  gap: 3px;
  min-height: 39px;
  padding-top: 7px;
  border-top: 1px solid #e7e0d7;
}
.post-footer button {
  height: 25px;
  padding: 0 8px;
  color: #8a808a;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.post-footer button:hover {
  color: #5e4e6c;
  background: #f2eee7;
}
.post-footer > span {
  display: grid;
  place-items: center;
  width: 25px;
  color: #aaa1aa;
}
.post-footer button.liked {
  color: #8b4461;
  font-weight: 700;
}
.post-more-wrap {
  position: relative;
}
.post-footer .post-more {
  width: 31px;
  padding: 0;
  font-size: 15px;
  letter-spacing: .08em;
}
.post-more-menu {
  position: absolute;
  right: 0;
  bottom: 30px;
  z-index: 10;
  min-width: 118px;
  padding: 5px;
  background: #fffdf9;
  border: 1px solid #d9d0c5;
  box-shadow: 0 8px 24px rgba(48,38,62,.13);
}
.post-more-menu button, .post-more-menu span {
  display: block;
  width: 100%;
  min-height: 31px;
  padding: 7px 9px;
  color: #776d78;
  text-align: left;
  white-space: nowrap;
}
.post-more-menu button.danger {
  color: #9f4054;
}
.post-more-menu button.danger:hover {
  color: #fff;
  background: #9f4054;
}
.top-replies-panel {
  overflow: hidden;
  background: #fdfbf6;
  border: 1px solid var(--line);
  border-top: 2px solid var(--violet);
  box-shadow: 0 4px 16px rgba(57,46,66,.035);
}
.top-replies-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px 13px;
  background: #f0ebe3;
  border-bottom: 1px solid #ddd5cb;
}
.top-replies-heading h3 {
  margin: 0;
  color: #403844;
  font-family: Georgia, "STSong", serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .04em;
}
.top-replies-heading p {
  margin: 4px 0 0;
  color: #918890;
  font-size: 12px;
}
.top-replies-heading > span {
  padding: 3px 6px;
  color: #9c6d2c;
  background: var(--gold-soft);
  border: 1px solid #e4cfa5;
  border-radius: 3px;
  font-family: Georgia, serif;
  font-size: 12px;
  letter-spacing: .13em;
}
.top-reply {
  display: grid;
  grid-template-columns: 44px minmax(0,1fr) auto;
  align-items: start;
  gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid #e7e0d7;
}
.top-reply:last-child {
  border-bottom: 0;
}
.mini-avatar {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 4px;
  font-family: Georgia, "STSong", serif;
  font-size: 12px;
}
.mini-avatar.violet {
  color: #5e4aa9;
  background: #dcd4f4;
}
.mini-avatar.gold {
  color: #825e25;
  background: #ead9ae;
}
.mini-avatar.blue {
  color: #376b86;
  background: #d5e5ed;
}
.mini-avatar.rose {
  color: #89465d;
  background: #efd4de;
}
.mini-avatar.green {
  color: #376c58;
  background: #d5e6de;
}
.top-reply-body {
  min-width: 0;
}
.top-reply-body > div {
  display: flex;
  align-items: center;
  gap: 9px;
}
.top-reply-body > div b {
  color: #403844;
  font-size: 12px;
  font-weight: 600;
}
.top-reply-body > div span {
  color: #9d949c;
  font-size: 12px;
}
.top-reply-body > div a {
  margin-left: auto;
  color: #8a808a;
  font-family: Georgia, serif;
  font-size: 12px;
  text-decoration: none;
}
.top-reply-body > div a:hover {
  color: #6651bd;
}
.top-reply-body p {
  margin: 8px 0 5px;
  color: #4e4652;
  font-size: 14px;
  line-height: 1.75;
}
.top-reply-body > button {
  padding: 0;
  color: #6a54a1;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.top-reply-body > button:hover {
  color: #4e3e5d;
}
.top-reply-votes {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  padding-top: 1px;
}
.top-reply-votes > b {
  color: #4f4554;
  font-family: Georgia, serif;
  font-size: 17px;
  font-weight: 500;
}
.top-reply-votes > span {
  color: #9d949c;
  font-size: 12px;
}
.top-reply-votes > button {
  height: 28px;
  margin-top: 7px;
  padding: 0 9px;
  color: #6651bd;
  background: var(--violet-soft);
  border: 1px solid #c9c0eb;
  border-radius: 3px;
  cursor: pointer;
  font-size: 12px;
}
.top-reply-votes > button:hover, .top-reply-votes > button.liked {
  color: #fff;
  background: #7966d8;
  border-color: #7966d8;
}
.all-replies-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  min-height: 52px;
  padding: 13px 5px 8px;
  border-bottom: 1px solid #d9d2c8;
}
.all-replies-heading > div {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.all-replies-heading h3 {
  margin: 0;
  color: #3f3943;
  font-size: 14px;
  font-weight: 500;
}
.all-replies-heading span, .all-replies-heading p {
  color: #9d959c;
  font-size: 12px;
}
.all-replies-heading p {
  margin: 0;
}
.load-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  height: 55px;
  color: #9d949c;
  background: #eee9e1;
  border: 1px dashed #d5ccc1;
  font-size: 12px;
}
.load-placeholder i {
  width: 42px;
  height: 1px;
  background: #c4b9c4;
}
.thread-bottom-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 62px;
}
.thread-bottom-bar > .reply-primary {
  height: 31px;
  padding: 0 14px;
  border: 1px solid #342940;
  border-radius: 3px;
  cursor: pointer;
  font-size: 12px;
}
.thread-sidebar {
  position: sticky;
  top: 12px;
  display: grid;
  gap: 11px;
}
.thread-sidebar .side-card {
  padding: 17px;
}
.thread-info-card dl {
  margin: 0;
}
.thread-info-card dl div {
  display: flex;
  justify-content: space-between;
  padding: 7px 0;
  border-bottom: 1px solid #ebe4db;
  font-size: 12px;
}
.thread-info-card dl div:last-child {
  border: 0;
}
.thread-info-card dt {
  color: #9a9199;
}
.thread-info-card dd {
  margin: 0;
  color: #4e4652;
}
.floor-jumps {
  display: grid;
  gap: 6px;
}
.floor-jumps button {
  height: 31px;
  color: #665c69;
  background: #f2eee7;
  border: 1px solid #e0d8cf;
  cursor: pointer;
  font-size: 12px;
  text-align: left;
  padding-left: 10px;
}
.floor-jumps button:hover {
  color: #4e3e5d;
  border-color: #bfaeca;
}
.related-card ol {
  margin: 0;
  padding: 0;
  list-style: none;
}
.related-card li {
  display: grid;
  grid-template-columns: 25px 1fr;
  gap: 7px;
  padding: 9px 0;
  border-bottom: 1px solid #eae3da;
}
.related-card li:last-child {
  border: 0;
}
.related-card li > span {
  color: #b29a6d;
  font-family: Georgia, serif;
  font-size: 12px;
}
.related-card li button {
  padding: 0;
  color: #59505c;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 12px;
  line-height: 1.55;
  text-align: left;
}
.related-card li button:hover {
  color: #6a54a1;
}
.thread-rule-card {
  color: #736a74;
  background: #f6f0e5;
  border-color: #e2d6c2;
}
.thread-rule-card b {
  color: #564a50;
  font-family: Georgia, "STSong", serif;
  font-size: 12px;
}
.thread-rule-card p {
  margin: 9px 0 13px;
  font-size: 12px;
  line-height: 1.7;
}
.thread-rule-card button {
  padding: 0;
  color: #95785b;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.floor-float {
  position: fixed;
  z-index: 15;
  right: 24px;
  bottom: 78px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}
.floor-float-trigger {
  display: flex;
  align-items: center;
  gap: 7px;
  height: 39px;
  padding: 0 13px;
  color: #eee8f2;
  background: #342940;
  border: 1px solid #594665;
  border-radius: 20px;
  box-shadow: 0 9px 24px rgba(32,24,38,.25);
  cursor: pointer;
  font-size: 12px;
}
.floor-float-trigger span {
  color: #d6bc87;
  font-family: Georgia, serif;
  font-size: 15px;
}
.floor-float.open .floor-float-trigger {
  background: #241b2e;
}
.floor-float-menu {
  width: 206px;
  padding: 13px;
  color: #5d5360;
  background: rgba(253,251,246,.97);
  border: 1px solid #d8cfc4;
  border-radius: 7px;
  box-shadow: 0 14px 36px rgba(35,27,40,.18);
  backdrop-filter: blur(10px);
}
.floor-float-menu > b {
  display: block;
  margin-bottom: 7px;
  color: #3e3543;
  font-family: Georgia, "STSong", serif;
  font-size: 12px;
}
.floor-float-menu > button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 32px;
  padding: 0 8px;
  color: #665c69;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #ebe4da;
  cursor: pointer;
  font-size: 12px;
}
.floor-float-menu > button:hover {
  color: #5a4369;
  background: #f3eee7;
}
.floor-float-menu > button span {
  color: #a08b66;
}
.floor-float-menu form {
  padding: 10px 8px 2px;
}
.floor-float-menu label {
  display: block;
  margin-bottom: 6px;
  color: #978e97;
  font-size: 12px;
}
.floor-float-menu form > div {
  display: grid;
  grid-template-columns: 1fr 44px;
  gap: 5px;
}
.floor-float-menu input {
  width: 100%;
  height: 28px;
  padding: 0 8px;
  color: #574e5a;
  background: #f2eee7;
  border: 1px solid #dcd4c9;
  outline: 0;
  font-size: 12px;
}
.floor-float-menu input:focus {
  border-color: #9f8bb2;
}
.floor-float-menu form button {
  color: #fff;
  background: #342940;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.account-page {
  min-height: 100vh;
  background: var(--paper);
}
.account-page .brand, .account-page .breadcrumb a {
  color: inherit;
  text-decoration: none;
}
.account-breadcrumb {
  color: #8c8491;
}
.account-header-actions {
  gap: 7px;
}
.auth-header-link, .auth-header-cta {
  display: grid;
  place-items: center;
  height: 32px;
  padding: 0 13px;
  border-radius: 3px;
  font-size: 12px;
  text-decoration: none;
}
.auth-header-link {
  color: #b6aebb;
  border: 1px solid rgba(255,255,255,.12);
}
.auth-header-link:hover, .auth-header-link.active {
  color: #fff;
  border-color: #6b597c;
}
.auth-header-cta {
  color: #201824;
  background: #d5bd8c;
  border: 1px solid #e4d09f;
  font-weight: 700;
}
.auth-header-cta:hover, .auth-header-cta.active {
  background: #e2c997;
}
.account-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 36px;
  padding: 0 10px 0 4px;
  color: #d9d1dc;
  background: #251e30;
  border: 1px solid #453851;
  border-radius: 18px;
  font-size: 12px;
  text-decoration: none;
}
.account-chip span {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  color: #5e4aa9;
  background: #dcd4f4;
  border-radius: 50%;
  font-family: Georgia, "STSong", serif;
  font-weight: 700;
}
.account-chip b {
  font-weight: 500;
}
.auth-layout {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  align-items: stretch;
  min-height: 612px;
  margin-bottom: 52px;
  background: #fdfbf6;
  border: 1px solid var(--line);
  box-shadow: 0 9px 28px rgba(46,37,54,.07);
}
.auth-intro {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  min-height: 612px;
  padding: 54px 50px;
  color: #eee9f0;
  background: linear-gradient(145deg, #17111f, #2b2038 68%, #1b1424);
}
.auth-intro::before {
  content: "";
  position: absolute;
  top: -130px;
  right: -130px;
  width: 330px;
  height: 330px;
  border: 1px solid rgba(216,192,141,.17);
  transform: rotate(45deg);
  box-shadow: 0 0 0 38px rgba(121,102,216,.04), 0 0 0 76px rgba(121,102,216,.025);
}
.auth-intro::after {
  content: "漫";
  position: absolute;
  right: 30px;
  bottom: -60px;
  color: rgba(255,255,255,.025);
  font-family: "STSong", serif;
  font-size: 220px;
  line-height: 1;
}
.auth-kicker {
  position: relative;
  z-index: 1;
  color: #c7ae7c;
  font-family: Georgia, serif;
  font-size: 12px;
  letter-spacing: .18em;
}
.auth-intro h1 {
  position: relative;
  z-index: 1;
  margin: 18px 0 15px;
  font-family: Georgia, "STSong", serif;
  font-size: clamp(34px, 4vw, 48px);
  font-weight: 500;
  letter-spacing: .04em;
  line-height: 1.24;
}
.auth-intro > p {
  position: relative;
  z-index: 1;
  max-width: 360px;
  margin: 0;
  color: #aaa1b1;
  font-size: 12px;
  line-height: 1.9;
}
.auth-intro-stats {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 28px;
  margin-top: 29px;
  color: #8f8596;
  font-size: 12px;
}
.auth-intro-stats span {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.auth-intro-stats b {
  color: #d8c18f;
  font-family: Georgia, serif;
  font-size: 18px;
  font-weight: 400;
}
.auth-ticket {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 5px 16px;
  margin-top: 48px;
  padding: 17px 18px;
  background: rgba(255,255,255,.045);
  border: 1px solid rgba(255,255,255,.1);
}
.auth-ticket span {
  color: #9d94a4;
  font-size: 12px;
}
.auth-ticket b {
  grid-row: span 2;
  align-self: center;
  color: #dac497;
  font-family: "STSong", serif;
  font-size: 15px;
  font-weight: 500;
}
.auth-ticket i {
  color: #6f6776;
  font-family: Georgia, serif;
  font-size: 11px;
  font-style: normal;
  letter-spacing: .15em;
}
.register-benefits {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 0;
  margin: 36px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(255,255,255,.1);
}
.register-benefits li {
  display: grid;
  grid-template-columns: 34px 1fr;
  align-items: center;
  min-height: 54px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.register-benefits b {
  color: #c4a873;
  font-family: Georgia, serif;
  font-size: 12px;
  font-weight: 400;
}
.register-benefits span {
  color: #aaa1b1;
  font-size: 12px;
}
.auth-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 38px clamp(38px, 5vw, 72px);
}
.auth-switch {
  display: flex;
  gap: 4px;
  align-self: flex-start;
  padding: 3px;
  background: #efebe3;
  border: 1px solid #ded6cc;
  border-radius: 4px;
}
.auth-switch a {
  min-width: 90px;
  padding: 8px 12px;
  color: #8d848d;
  border-radius: 3px;
  font-size: 12px;
  text-align: center;
  text-decoration: none;
}
.auth-switch a.active {
  color: #fff;
  background: #342940;
  box-shadow: 0 3px 8px rgba(52,41,64,.13);
}
.auth-heading {
  margin: 29px 0 25px;
}
.auth-heading > span {
  color: #a4844d;
  font-size: 12px;
  letter-spacing: .15em;
}
.auth-heading h2 {
  margin: 7px 0 6px;
  color: #352f3a;
  font-family: Georgia, "STSong", serif;
  font-size: 25px;
  font-weight: 600;
  letter-spacing: .05em;
}
.auth-heading p {
  margin: 0;
  color: #948b93;
  font-size: 12px;
}
.auth-form {
  display: grid;
  gap: 17px;
}
.auth-form label, .settings-section form > label, .form-pair label {
  display: grid;
  gap: 7px;
  color: #655d68;
  font-size: 12px;
}
.auth-form input:not([type="checkbox"]), .settings-section input, .settings-section textarea, .settings-section select {
  width: 100%;
  height: 42px;
  padding: 0 12px;
  color: #403844;
  background: #f8f5ee;
  border: 1px solid #dcd4c9;
  border-radius: 3px;
  outline: 0;
  font-size: 13px;
}
.auth-form input:focus, .settings-section input:focus, .settings-section textarea:focus, .settings-section select:focus {
  background: #fffdf9;
  border-color: #9f8bb2;
  box-shadow: 0 0 0 2px rgba(121,102,216,.08);
}
.password-field {
  position: relative;
}
.password-field input {
  padding-right: 55px !important;
}
.password-field button {
  position: absolute;
  top: 1px;
  right: 1px;
  height: 40px;
  padding: 0 11px;
  color: #8a7c91;
  background: transparent;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.auth-options {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: -2px;
  color: #888088;
  font-size: 12px;
}
.auth-options label, .agreement {
  display: flex !important;
  grid-template-columns: auto 1fr;
  align-items: flex-start;
  gap: 7px !important;
  cursor: pointer;
}
.auth-options input, .agreement input {
  width: 13px;
  height: 13px;
  margin: 0;
  accent-color: #7966d8;
}
.auth-options button {
  padding: 0;
  color: #796984;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.auth-submit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 43px;
  padding: 0 15px;
  color: #fff;
  background: #342940;
  border: 1px solid #342940;
  border-radius: 3px;
  cursor: pointer;
  font-size: 12px;
  box-shadow: 0 5px 13px rgba(52,41,64,.14);
}
.auth-submit:hover {
  background: #473558;
}
.auth-submit span {
  color: #d9c18f;
  font-size: 15px;
}
.auth-card-foot {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 23px;
  color: #999099;
  font-size: 12px;
}
.auth-card-foot a {
  color: #675173;
  text-decoration: none;
}
.auth-card-foot i {
  flex: 1;
  height: 1px;
  background: #e4ddd4;
}
.interface-note {
  margin: 18px 0 0;
  padding-top: 12px;
  color: #aaa1a8;
  border-top: 1px dashed #ded6cc;
  font-size: 12px;
  line-height: 1.6;
}
.form-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 13px;
}
.register-card {
  padding-block: 30px;
}
.register-card .auth-heading {
  margin-block: 22px 18px;
}
.register-form {
  gap: 14px;
}
.agreement {
  color: #867d86 !important;
  font-size: 12px !important;
  line-height: 1.6;
}
.account-layout {
  display: grid;
  grid-template-columns: 244px minmax(0,1fr);
  align-items: start;
  gap: 16px;
  padding-bottom: 52px;
}
.profile-rail {
  display: grid;
  gap: 9px;
}
.profile-card, .account-nav, .account-section, .account-welcome, .account-stats {
  background: #fdfbf6;
  border: 1px solid var(--line);
  box-shadow: 0 4px 16px rgba(57,46,66,.035);
}
.profile-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 25px 18px 18px;
  text-align: center;
}
.large-reader-avatar {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  color: #5e4aa9;
  background: #dcd4f4;
  border: 4px solid rgba(255,255,255,.8);
  border-radius: 50%;
  box-shadow: 0 3px 11px rgba(55,43,62,.12);
  font-family: Georgia, "STSong", serif;
  font-size: 23px;
  font-weight: 700;
}
.large-reader-avatar.small {
  width: 50px;
  height: 50px;
  border-width: 3px;
  font-size: 16px;
}
.reader-status {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 9px;
  color: #6d8378;
  font-size: 11px;
}
.reader-status i {
  width: 5px;
  height: 5px;
  background: #69b792;
  border-radius: 50%;
}
.profile-card h1 {
  margin: 8px 0 4px;
  color: #39323e;
  font-family: Georgia, "STSong", serif;
  font-size: 17px;
  font-weight: 600;
}
.profile-card > p {
  margin: 0;
  color: #9a9199;
  font-size: 12px;
}
.reader-level {
  width: 100%;
  margin-top: 19px;
  padding: 13px 0;
  border-block: 1px solid #e6dfd6;
  text-align: left;
}
.reader-level > span {
  display: flex;
  justify-content: space-between;
  color: #827986;
  font-size: 12px;
}
.reader-level > span b {
  color: #775fb9;
  font-family: Georgia, serif;
  font-size: 12px;
}
.reader-level > i {
  display: block;
  height: 4px;
  margin: 9px 0 6px;
  background: #e5dfd8;
}
.reader-level > i b {
  display: block;
  width: 68%;
  height: 100%;
  background: linear-gradient(90deg, var(--violet), #a88ec2);
}
.reader-level small {
  color: #aaa1a8;
  font-size: 11px;
}
.profile-card dl {
  width: 100%;
  margin: 11px 0 0;
}
.profile-card dl div {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  font-size: 12px;
}
.profile-card dt {
  color: #9d949c;
}
.profile-card dd {
  margin: 0;
  color: #5e5661;
}
.account-nav {
  display: grid;
  padding: 7px;
}
.account-nav button {
  position: relative;
  display: grid;
  grid-template-columns: 25px 1fr auto;
  align-items: center;
  width: 100%;
  height: 38px;
  padding: 0 9px;
  color: #7b727d;
  background: transparent;
  border: 0;
  cursor: pointer;
  font-size: 12px;
  text-align: left;
}
.account-nav button::after {
  display: none !important;
}
.account-nav button > span {
  color: #a397a5;
}
.account-nav button > b {
  color: #aaa0aa;
  font-family: Georgia, serif;
  font-size: 12px;
  font-weight: 400;
}
.account-nav button:hover {
  background: #f2eee7;
}
.account-nav button.active {
  color: #45394f;
  background: #eee8f1;
  font-weight: 700;
  box-shadow: inset 2px 0 var(--violet);
}
.account-nav button.active > span {
  color: var(--violet);
}
.account-logout {
  display: block;
  padding: 10px;
  color: #a07882;
  background: #f5eee8;
  border: 1px solid #e2d5ce;
  font-size: 12px;
  text-align: center;
  text-decoration: none;
}
.account-main {
  display: grid;
  gap: 12px;
}
.account-welcome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 126px;
  padding: 23px 25px;
  background: linear-gradient(112deg, #1d1627, #30223d);
  border-color: #3c3047;
  color: #f0ebf2;
}
.account-welcome span {
  color: #b59c6d;
  font-family: Georgia, serif;
  font-size: 12px;
  letter-spacing: .16em;
}
.account-welcome h2 {
  margin: 8px 0 5px;
  font-family: Georgia, "STSong", serif;
  font-size: 21px;
  font-weight: 500;
}
.account-welcome p {
  margin: 0;
  color: #968c9d;
  font-size: 12px;
}
.account-welcome > a {
  display: flex;
  align-items: center;
  gap: 14px;
  height: 34px;
  padding: 0 13px;
  color: #e5d8bb;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(255,255,255,.11);
  font-size: 12px;
  text-decoration: none;
}
.account-welcome > a b {
  color: #c6a870;
  font-size: 13px;
}
.account-stats {
  display: grid;
  grid-template-columns: repeat(4,1fr);
}
.account-stats article {
  min-height: 91px;
  padding: 16px 18px;
  border-right: 1px solid #e5ded5;
}
.account-stats article:last-child {
  border-right: 0;
}
.account-stats span, .account-stats small {
  display: block;
  color: #9d949c;
  font-size: 12px;
}
.account-stats b {
  display: block;
  margin: 7px 0 3px;
  color: #4a4050;
  font-family: Georgia, serif;
  font-size: 20px;
  font-weight: 400;
}
.account-stats small {
  color: #a99878;
  font-size: 11px;
}
.account-section {
  padding: 19px 21px;
}
.account-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 14px;
  border-bottom: 1px solid #e7e0d7;
}
.account-section-head h3 {
  margin: 0;
  color: #403844;
  font-family: Georgia, "STSong", serif;
  font-size: 14px;
}
.account-section-head p {
  margin: 4px 0 0;
  color: #9e959d;
  font-size: 12px;
}
.account-section-head button {
  color: #796984;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.activity-list article {
  display: grid;
  grid-template-columns: 33px minmax(0,1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 61px;
  border-bottom: 1px solid #eee7de;
}
.activity-list article:last-child {
  border-bottom: 0;
}
.activity-icon {
  display: grid;
  place-items: center;
  width: 29px;
  height: 29px;
  border-radius: 50%;
  font-size: 12px;
}
.activity-icon.tone-0 {
  color: #6651bd;
  background: #eeeafd;
}
.activity-icon.tone-1 {
  color: #9c6d2c;
  background: #f6edd8;
}
.activity-icon.tone-2 {
  color: #39738f;
  background: #e7f0f5;
}
.activity-list small, .activity-list a {
  display: block;
}
.activity-list small {
  margin-bottom: 4px;
  color: #a098a0;
  font-size: 11px;
}
.activity-list a {
  overflow: hidden;
  color: #514854;
  font-size: 12px;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.activity-list a:hover {
  color: #6651bd;
}
.activity-list time {
  color: #aaa1a8;
  font-family: Georgia, serif;
  font-size: 12px;
}
.reading-progress {
  padding: 18px 1px 2px;
}
.reading-progress > div {
  display: flex;
  justify-content: space-between;
  color: #5e5661;
  font-size: 12px;
}
.reading-progress > div b {
  color: #8b7655;
  font-size: 12px;
  font-weight: 400;
}
.reading-progress > i {
  display: block;
  height: 5px;
  margin: 12px 0 7px;
  background: #e4ded6;
}
.reading-progress > i b {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, var(--violet), var(--gold));
}
.reading-progress > small {
  display: flex;
  justify-content: space-between;
  color: #aaa1a8;
  font-size: 11px;
}
.account-list-panel {
  min-height: 385px;
}
.account-empty-note {
  margin: 18px 0 0;
  padding: 14px;
  color: #9d949c;
  background: #f4f0e8;
  border: 1px dashed #d9d0c5;
  font-size: 12px;
  text-align: center;
}
.settings-section form {
  display: grid;
  gap: 16px;
  padding-top: 19px;
}
.settings-avatar {
  display: flex;
  align-items: center;
  gap: 13px;
}
.settings-avatar button {
  height: 29px;
  padding: 0 10px;
  color: #6e6273;
  background: #f3efe8;
  border: 1px solid #ddd5cb;
  cursor: pointer;
  font-size: 12px;
}
.settings-section textarea {
  height: 76px;
  padding-top: 10px;
  resize: vertical;
}
.settings-section select {
  cursor: pointer;
}
.settings-submit {
  width: 130px;
  justify-content: center;
}
@media (max-width: 1050px) {
  .header-main {
    grid-template-columns: 215px 1fr auto;
    gap: 10px;
  }
  nav button, nav a {
    padding-inline: 8px;
    font-size: 12px;
  }
  .search-button b, .search-button kbd {
    display: none;
  }
  .content-grid {
    grid-template-columns: minmax(0, 1fr) 250px;
  }
  .thread-row {
    grid-template-columns: 50px minmax(0,1fr) 90px 70px 90px;
  }
  .thread-columns {
    grid-template-columns: minmax(0,1fr) 90px 70px 90px;
    padding-left: 66px;
  }
  .thread-layout {
    grid-template-columns: minmax(0,1fr) 232px;
  }
  .forum-post {
    grid-template-columns: 132px minmax(0,1fr);
  }
}
@media (max-width: 820px) {
  .signal-copy, .search-button {
    display: none;
  }
  .header-main > nav {
    display: flex;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .header-main > nav::-webkit-scrollbar {
    display: none;
  }
  .header-main {
    grid-template-columns: auto 1fr auto;
  }
  .hero-copy {
    width: 66%;
  }
  .issue-stage {
    opacity: .65;
    right: -24px;
  }
  .content-grid {
    grid-template-columns: 1fr;
  }
  .sidebar {
    grid-template-columns: repeat(2, 1fr);
  }
  .serial-card {
    grid-row: span 2;
  }
  .thread-columns {
    display: none;
  }
  .thread-row {
    grid-template-columns: 50px minmax(0,1fr) 72px;
    padding-right: 12px;
  }
  .thread-author {
    display: none;
  }
  .thread-count {
    display: none;
  }
  .thread-last {
    text-align: right;
  }
  .thread-layout {
    grid-template-columns: 1fr;
  }
  .thread-sidebar {
    position: static;
    grid-template-columns: repeat(2, 1fr);
  }
  .thread-title-stats {
    display: none;
  }
  .thread-hero-number {
    margin-right: 10px;
  }
  .auth-layout {
    grid-template-columns: 1fr;
  }
  .auth-intro {
    min-height: 330px;
    padding: 38px;
  }
  .auth-ticket {
    margin-top: 28px;
  }
  .register-benefits {
    max-width: 440px;
  }
  .account-layout {
    grid-template-columns: 1fr;
  }
  .profile-rail {
    grid-template-columns: 1fr;
  }
  .account-nav {
    grid-template-columns: repeat(4, 1fr);
  }
  .account-nav button {
    grid-template-columns: 24px 1fr;
  }
  .account-nav button > b {
    display: none;
  }
  .account-logout {
    justify-self: start;
    padding-inline: 18px;
  }
}
@media (max-width: 560px) {
  .shell {
    width: min(100% - 24px, 1220px);
  }
  .signal-inner span:last-child {
    display: none;
  }
  .site-header {
    height: 64px;
  }
  .brand strong {
    font-size: 17px;
  }
  .brand small {
    display: none;
  }
  .hero {
    height: 258px;
  }
  .hero-copy {
    width: 100%;
  }
  .hero h1 {
    font-size: 34px;
  }
  .hero h1 em {
    font-size: .48em;
  }
  .hero-meta {
    gap: 15px;
  }
  .issue-stage {
    opacity: .16;
    right: -120px;
    width: 80%;
  }
  .issue-caption {
    display: none;
  }
  .breadcrumb {
    height: 42px;
  }
  .board-head {
    padding: 17px;
  }
  .board-head p {
    max-width: 230px;
    line-height: 1.5;
  }
  .new-thread {
    width: 35px;
    padding: 0;
    justify-content: center;
    font-size: 0;
  }
  .new-thread span {
    font-size: 18px;
  }
  .board-tabs {
    overflow-x: auto;
    padding-inline: 8px;
  }
  .board-tabs button {
    flex: none;
  }
  .view-mode {
    display: flex;
    flex: none;
    padding-left: 6px;
  }
  .thread-row {
    min-height: 83px;
  }
  .thread-title-line {
    flex-wrap: wrap;
    gap: 5px;
  }
  .thread-title-line strong {
    flex-basis: 100%;
  }
  .thread-main small {
    overflow: hidden;
    max-width: 220px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .pagination em {
    display: none;
  }
  .sidebar {
    grid-template-columns: 1fr;
  }
  .serial-card {
    grid-row: auto;
  }
  .footer-inner {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 9px;
  }
  .footer-inner p {
    margin: 0;
  }
  .footer-inner > span {
    display: none;
  }
  .thread-hero {
    height: 125px;
  }
  .simple-thread-hero {
    height: 74px;
  }
  .thread-hero h1 {
    font-size: 23px;
  }
  .simple-thread-hero h1 {
    font-size: 22px;
  }
  .simple-thread-hero h1 em {
    display: block;
    margin: 5px 0 0;
    font-size: 12px;
  }
  .thread-hero-number {
    opacity: .35;
  }
  .thread-hero-number small {
    display: none;
  }
  .thread-hero-number strong {
    font-size: 52px;
  }
  .thread-title-card {
    min-height: 128px;
    padding: 16px;
  }
  .thread-heading h2 {
    font-size: 17px;
    line-height: 1.4;
  }
  .thread-toolbar {
    align-items: flex-end;
    gap: 10px;
  }
  .thread-toolbar .thread-actions button:not(.reply-primary) {
    display: none;
  }
  .forum-post {
    grid-template-columns: 1fr;
  }
  .post-user {
    flex-direction: row;
    align-items: center;
    gap: 10px;
    padding: 11px 13px;
    border-right: 0;
    border-bottom: 1px solid #ddd5cb;
    text-align: left;
  }
  .profile-avatar {
    width: 38px;
    height: 38px;
    margin: 0;
    font-size: 12px;
  }
  .post-user > strong {
    max-width: 130px;
  }
  .user-rank {
    margin: 0 0 0 auto;
  }
  .post-user dl {
    display: none;
  }
  .post-body {
    padding: 0 13px;
  }
  .post-content {
    padding: 17px 1px 20px;
    font-size: 14px;
  }
  .chapter-preview-card {
    gap: 13px;
    padding: 12px;
  }
  .chapter-preview-card > span {
    font-size: 13px;
  }
  .panel-attachment {
    height: 115px;
  }
  .thread-sidebar {
    grid-template-columns: 1fr;
  }
  .thread-bottom-bar .pagination button:nth-of-type(4), .thread-bottom-bar .pagination > span {
    display: none;
  }
  .topic-timestamps {
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
  }
  .top-reply {
    grid-template-columns: 44px minmax(0,1fr) auto;
    gap: 9px;
    padding: 13px 12px;
  }
  .mini-avatar {
    display: none;
  }
  .top-replies-heading {
    padding-inline: 13px;
  }
  .floor-float {
    right: 13px;
    bottom: 18px;
  }
  .floor-float-menu {
    width: min(206px, calc(100vw - 26px));
  }
  .account-header-actions {
    gap: 5px;
  }
  .auth-header-link, .auth-header-cta {
    height: 30px;
    padding-inline: 9px;
    font-size: 12px;
  }
  .account-chip b {
    display: none;
  }
  .account-chip {
    width: 36px;
    padding: 0 4px;
  }
  .account-breadcrumb {
    height: 40px;
  }
  .auth-layout {
    width: 100%;
    margin-bottom: 0;
    border-inline: 0;
  }
  .auth-intro {
    min-height: 265px;
    padding: 28px 24px;
  }
  .auth-intro h1 {
    margin-block: 13px 10px;
    font-size: 31px;
  }
  .auth-intro > p {
    max-width: 290px;
  }
  .auth-intro-stats {
    margin-top: 18px;
  }
  .auth-ticket {
    display: none;
  }
  .register-benefits {
    margin-top: 20px;
  }
  .register-benefits li {
    min-height: 42px;
  }
  .auth-card {
    padding: 28px 19px 34px;
  }
  .auth-switch {
    align-self: stretch;
  }
  .auth-switch a {
    flex: 1;
    min-width: 0;
  }
  .auth-heading {
    margin-block: 22px 19px;
  }
  .form-pair {
    grid-template-columns: 1fr;
  }
  .auth-card-foot {
    flex-wrap: wrap;
  }
  .auth-card-foot i {
    flex-basis: 100%;
    height: 0;
  }
  .account-layout {
    padding-bottom: 28px;
  }
  .profile-card {
    padding-top: 20px;
  }
  .account-nav {
    grid-template-columns: 1fr 1fr;
  }
  .account-logout {
    justify-self: stretch;
  }
  .account-welcome {
    align-items: flex-start;
    flex-direction: column;
    gap: 17px;
    padding: 20px;
  }
  .account-stats {
    grid-template-columns: 1fr 1fr;
  }
  .account-stats article:nth-child(2) {
    border-right: 0;
  }
  .account-stats article:nth-child(-n+2) {
    border-bottom: 1px solid #e5ded5;
  }
  .account-section {
    padding: 16px 14px;
  }
  .activity-list article {
    grid-template-columns: 30px minmax(0,1fr);
  }
  .activity-list time {
    display: none;
  }
  .reading-progress > div {
    gap: 10px;
  }
  .settings-submit {
    width: 100%;
  }
}
@media (min-width: 721px) {
  .novel-manage-grid {
    grid-template-columns: 190px minmax(0, 1fr);
  }
  .novel-editor-card, .novel-preview-card {
    grid-column: 2;
  }
}
.novel-preview-card > .novel-content-blocks {
  overflow-y: auto;
  max-height: 720px;
  padding: 22px;
}
.novel-preview-card .novel-content-blocks .novel-dialogue-message,
.novel-preview-card .novel-content-blocks .novel-letter-modal article {
  overflow: visible;
  max-height: none;
  padding: 0;
}
.novel-prose .novel-dialogue-bubble p,
.novel-preview-card .novel-content-blocks .novel-dialogue-bubble p {
  margin: 0;
  padding: 0;
  color: inherit;
  background: transparent;
  font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 13px;
  line-height: 1.65;
  text-align: left;
  text-indent: 0;
  letter-spacing: 0;
  cursor: inherit;
}
.novel-site-page {
  min-height: 100vh;
  color: #263158;
  background: linear-gradient(180deg, #eef2ff 0, #f8f9fd 420px, #f3f5fb 100%);
}
.novel-site-page .site-header {
  color: #263158;
  background: rgba(252,253,255,.94);
  border-color: #dce3f2;
  box-shadow: 0 5px 18px rgba(55,68,123,.06);
}
.novel-site-page .signal-strip {
  color: #677292;
  background: #e8edfb;
  border-color: #d8e0f1;
}
.novel-site-page .signal-copy {
  color: #8993ad;
}
.novel-site-page .brand small {
  color: #8993ad;
}
.novel-site-page nav button, .novel-site-page nav a {
  color: #586486;
}
.novel-site-page nav button:hover, .novel-site-page nav a:hover, .novel-site-page nav a.active {
  color: #4056ab;
}
.novel-site-page .account-chip, .novel-site-page .notification-chip, .novel-site-page .auth-header-link {
  color: #4f5d83;
  border-color: #d7deee;
}
.novel-site-page footer {
  color: #7e89a6;
  background: #e9edf7;
  border-color: #d8dfec;
}
.novel-kicker {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #6d7aba;
  font-family: Georgia, serif;
  font-size: 12px;
  letter-spacing: .13em;
}
.novel-icon {
  display: inline-block;
  flex: 0 0 auto;
  width: 1.15em;
  height: 1.15em;
  background: currentColor;
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
}
.novel-kicker svg {
  width: 17px;
  height: 17px;
}
.novel-shelf-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 218px;
  margin-top: 28px;
  padding: 40px 52px;
  overflow: hidden;
  background: radial-gradient(circle at 80% 40%, rgba(137,161,231,.22), transparent 17rem), linear-gradient(125deg, #fdfdff, #edf2ff);
  border: 1px solid #dce3f3;
  border-radius: 18px;
  box-shadow: 0 12px 32px rgba(49,63,119,.07);
}
.novel-shelf-hero > div > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #7b87bd;
  font-family: Georgia, serif;
  font-size: 12px;
  letter-spacing: .16em;
}
.novel-shelf-hero h1 {
  margin: 12px 0 7px;
  color: #25335f;
  font-family: Georgia, "STSong", serif;
  font-size: 38px;
  font-weight: 600;
  letter-spacing: .08em;
}
.novel-shelf-hero p {
  margin: 0;
  color: #7783a1;
  font-size: 14px;
}
.novel-shelf-hero > svg {
  width: 116px;
  height: 116px;
  color: #8292d5;
  opacity: .55;
}
.novel-shelf-shell {
  padding: 34px 0 68px;
}
.novel-section-title {
  display: flex;
  align-items: end;
  justify-content: space-between;
  margin-bottom: 15px;
}
.novel-section-title span {
  color: #a0aac1;
  font-family: Georgia, serif;
  font-size: 11px;
  letter-spacing: .16em;
}
.novel-section-title h2 {
  margin: 4px 0 0;
  color: #2b375e;
  font-family: Georgia, "STSong", serif;
  font-size: 22px;
}
.novel-section-title p {
  margin: 0;
  color: #929bb1;
  font-size: 12px;
}
.novel-shelf-card {
  display: grid;
  grid-template-columns: 156px minmax(0,1fr) 166px;
  gap: 30px;
  align-items: center;
  min-height: 248px;
  padding: 26px 30px;
  background: rgba(255,255,255,.92);
  border: 1px solid #dce3f1;
  border-radius: 14px;
  box-shadow: 0 8px 26px rgba(48,62,117,.06);
}
.novel-shelf-cover {
  display: block;
  width: 140px;
  height: 196px;
  padding: 5px;
  background: white;
  border: 1px solid #d8deeb;
  border-radius: 8px;
  box-shadow: 0 9px 22px rgba(36,48,89,.16);
  transform: rotate(-1deg);
}
.novel-shelf-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 4px;
}
.novel-shelf-copy h2 {
  margin: 9px 0 5px;
  font-family: Georgia, "STSong", serif;
  font-size: 27px;
  letter-spacing: .04em;
}
.novel-shelf-copy h2 a {
  color: #263158;
  text-decoration: none;
}
.novel-shelf-copy > p {
  margin: 0 0 22px;
  color: #7e89a2;
  font-size: 13px;
}
.novel-shelf-copy dl {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  margin: 0;
}
.novel-shelf-copy dl div {
  display: grid;
  gap: 5px;
}
.novel-shelf-copy dt {
  color: #a0a8ba;
  font-size: 11px;
}
.novel-shelf-copy dd {
  margin: 0;
  color: #536184;
  font-size: 13px;
  font-weight: 600;
}
.novel-progress-note {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 17px;
  color: #6b78a5;
  font-size: 12px;
}
.novel-progress-note svg {
  width: 16px;
  height: 16px;
}
.novel-shelf-actions {
  display: grid;
  gap: 9px;
}
.novel-shelf-actions a, .novel-detail-actions a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  height: 42px;
  border-radius: 7px;
  font-size: 13px;
  text-decoration: none;
}
.novel-shelf-actions a svg, .novel-detail-actions a svg {
  width: 17px;
  height: 17px;
}
.novel-shelf-actions .primary, .novel-detail-actions .primary {
  color: white;
  background: #5369c5;
  border: 1px solid #5369c5;
  box-shadow: 0 7px 18px rgba(83,105,197,.2);
}
.novel-shelf-actions .secondary, .novel-detail-actions .secondary {
  color: #56658e;
  background: #f6f8fd;
  border: 1px solid #d8e0ef;
}
.novel-breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 54px;
  color: #9aa4b9;
  font-size: 12px;
}
.novel-breadcrumb a {
  color: #7581a4;
  text-decoration: none;
}
.novel-breadcrumb b {
  color: #536181;
}
.novel-detail-hero {
  position: relative;
  display: grid;
  grid-template-columns: 220px minmax(0,1fr);
  grid-template-rows: repeat(4, auto);
  column-gap: 40px;
  min-height: 380px;
  padding: 42px 46px;
  background: radial-gradient(circle at 92% 14%, rgba(145,166,229,.22), transparent 21rem), rgba(255,255,255,.94);
  border: 1px solid #dce3f2;
  border-radius: 18px;
  box-shadow: 0 12px 34px rgba(48,61,116,.07);
}
.novel-detail-cover {
  position: relative;
  grid-column: 1;
  grid-row: 1 / -1;
  align-self: center;
  width: 208px;
  height: 294px;
  padding: 7px;
  background: white;
  border: 1px solid #d4dbea;
  border-radius: 10px;
  box-shadow: 0 16px 34px rgba(39,51,95,.2);
}
.novel-detail-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 5px;
}
.novel-detail-cover i {
  position: absolute;
  right: -18px;
  bottom: 26px;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  color: #d1a34d;
  background: #fffaf0;
  border: 1px solid #eadab8;
  border-radius: 50%;
}
.novel-detail-copy {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  min-width: 0;
}
.novel-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  color: #2f7d58;
  background: #eaf7f0;
  border: 1px solid #c4e6d3;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
}
.novel-status-badge i {
  width: 7px;
  height: 7px;
  background: #3fae77;
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(63,174,119,.18);
}
.novel-detail-copy h1 {
  margin: 12px 0 8px;
  color: #263158;
  font-family: Georgia, "STSong", serif;
  font-size: 37px;
  font-weight: 600;
  letter-spacing: .05em;
}
.novel-author {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  color: #7a86a5;
  font-size: 13px;
}
.novel-author svg {
  width: 19px;
  height: 19px;
  color: #7b8ac8;
}
.novel-detail-tags {
  grid-column: 2;
  grid-row: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 16px 0 14px;
}
.novel-detail-tags span {
  padding: 5px 10px;
  color: #6070a6;
  background: #f0f3fd;
  border: 1px solid #dae1f3;
  border-radius: 4px;
  font-size: 12px;
}
.novel-intro-wrap {
  grid-column: 2;
  grid-row: 3;
  max-width: 700px;
}
.novel-intro {
  margin: 0;
  color: #5f6983;
  font-size: 14px;
  line-height: 1.9;
  white-space: pre-line;
}
.novel-detail-actions {
  grid-column: 2;
  grid-row: 4;
  display: flex;
  gap: 10px;
  margin-top: 22px;
}
.novel-detail-actions a {
  min-width: 145px;
  padding: 0 17px;
}
.novel-statbar {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 14px;
}
.novel-stat-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-height: 96px;
  padding: 16px 12px;
  background: rgba(255,255,255,.94);
  border: 1px solid #dce3f2;
  border-radius: 14px;
  box-shadow: 0 7px 24px rgba(76,94,153,.075);
  text-align: center;
}
.novel-stat-card b {
  color: #2e4072;
  font-size: 18px;
  font-weight: 650;
  letter-spacing: .02em;
}
.novel-stat-card span {
  max-width: 100%;
  overflow: hidden;
  color: #7d88a6;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.novel-stat-card small {
  color: #a3aac0;
  font-size: 11px;
  letter-spacing: .08em;
}
.novel-detail-stats {
  position: absolute;
  top: 46px;
  right: 42px;
  display: grid;
  width: 175px;
  margin: 0;
  background: rgba(245,247,253,.82);
  border: 1px solid #e0e5f1;
  border-radius: 10px;
}
.novel-detail-stats > div {
  display: grid;
  grid-template-columns: 34px 1fr;
  align-items: center;
  gap: 8px;
  padding: 12px 13px;
  border-bottom: 1px solid #e2e7f1;
}
.novel-detail-stats > div:last-child {
  border: 0;
}
.novel-detail-stats dt {
  display: grid;
  place-items: center;
  color: #7d8bc4;
}
.novel-detail-stats dt svg {
  width: 20px;
  height: 20px;
}
.novel-detail-stats dd {
  margin: 0;
}
.novel-detail-stats dd b, .novel-detail-stats dd span {
  display: block;
}
.novel-detail-stats dd b {
  color: #3b486f;
  font-size: 13px;
}
.novel-detail-stats dd span {
  margin-top: 2px;
  color: #9aa3b7;
  font-size: 10px;
}
.novel-detail-grid {
  display: grid;
  grid-template-columns: minmax(0,1fr) 278px;
  gap: 18px;
  align-items: start;
  padding: 24px 0;
}
.novel-catalog-card, .novel-detail-aside > div, .novel-book-comments {
  background: rgba(255,255,255,.94);
  border: 1px solid #dce3f1;
  border-radius: 12px;
  box-shadow: 0 6px 22px rgba(48,61,116,.05);
}
.novel-catalog-card > header {
  display: grid;
  grid-template-columns: auto auto minmax(12px,1fr) auto;
  align-items: end;
  gap: 10px 12px;
  padding: 21px 24px 17px;
  border-bottom: 1px solid #e2e7f1;
}
.novel-catalog-card > header > div:first-child {
  grid-column: 1;
  grid-row: 1;
}
.novel-catalog-card > header span {
  color: #9aa6c0;
  font-family: Georgia, serif;
  font-size: 10px;
  letter-spacing: .15em;
}
.novel-catalog-card > header h2 {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 4px 0 0;
  color: #334166;
  font-family: Georgia, "STSong", serif;
  font-size: 20px;
}
.novel-catalog-card > header h2 svg {
  width: 21px;
}
.novel-catalog-controls {
  display: flex;
  grid-column: 4;
  grid-row: 1;
  align-items: center;
  gap: 9px;
  color: #9aa4b9;
  font-size: 11px;
}
.novel-catalog-controls > span {
  color: #9aa4b9 !important;
  font-family: inherit !important;
  font-size: 11px !important;
  letter-spacing: 0 !important;
}
.novel-catalog-controls button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 30px;
  padding: 0 10px;
  color: #5368bd;
  background: #f3f5fd;
  border: 1px solid #d6def2;
  border-radius: 6px;
  font: inherit;
  cursor: pointer;
}
.novel-catalog-controls button:hover {
  background: #e9edfb;
  border-color: #c3ceeb;
}
.novel-catalog-controls button svg {
  width: 13px;
  height: 13px;
}
.novel-chapter-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  max-height: 690px;
  overflow: auto;
  padding: 7px 18px 15px;
}
.novel-chapter-list a {
  display: grid;
  grid-template-columns: 38px minmax(0,1fr) auto 18px;
  align-items: center;
  gap: 8px;
  min-height: 50px;
  padding: 0 8px;
  color: #586481;
  border-bottom: 1px solid #edf0f6;
  text-decoration: none;
}
.novel-chapter-list a:hover {
  color: #455bb2;
  background: #f5f7fe;
}
.novel-chapter-list a > span {
  color: #a7afc0;
  font-family: Georgia, serif;
  font-size: 11px;
}
.novel-chapter-list a b {
  overflow: hidden;
  font-size: 13px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.novel-chapter-list a small {
  color: #a2aabd;
  font-size: 10px;
}
.novel-chapter-list a svg {
  width: 14px;
}
.novel-detail-aside {
  display: grid;
  gap: 12px;
}
.novel-detail-aside > div {
  padding: 20px;
}
.novel-detail-aside svg {
  width: 25px;
  height: 25px;
  color: #7889ce;
}
.novel-detail-aside h3 {
  margin: 10px 0 7px;
  color: #38466d;
  font-size: 14px;
}
.novel-detail-aside p {
  margin: 0;
  color: #7c869e;
  font-size: 12px;
  line-height: 1.75;
}
.novel-detail-aside a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 12px;
  color: #5167c0;
  font-size: 12px;
  text-decoration: none;
}
.novel-detail-aside a svg {
  width: 14px;
  height: 14px;
}
.novel-book-comments {
  margin-bottom: 64px;
  overflow: hidden;
}
.novel-comments {
  color: #344163;
  background: rgba(255,255,255,.94);
}
.novel-comments-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 74px;
  padding: 16px 22px;
  border-bottom: 1px solid #e2e7f1;
}
.novel-comments-heading > div {
  display: flex;
  align-items: center;
  gap: 11px;
}
.novel-comments-heading svg {
  width: 25px;
  height: 25px;
  color: #7182c9;
}
.novel-comments-heading b, .novel-comments-heading small {
  display: block;
}
.novel-comments-heading b {
  font-family: Georgia, "STSong", serif;
  font-size: 17px;
}
.novel-comments-heading small {
  margin-top: 4px;
  color: #9aa3b7;
  font-size: 11px;
}
.novel-comment-list {
  padding: 0 22px;
}
.novel-comment {
  position: relative;
  display: grid;
  grid-template-columns: 42px minmax(0,1fr) 28px;
  gap: 11px;
  padding: 16px 0;
  border-bottom: 1px solid #e8ecf4;
}
.novel-comment-avatar {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  overflow: hidden;
  color: #5467ba;
  background: #e8edff;
  border-radius: 50%;
  font-family: Georgia, serif;
  font-weight: 700;
}
.novel-comment-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.novel-comment header {
  display: flex;
  align-items: center;
  gap: 7px;
}
.novel-comment header b {
  color: #4b587a;
  font-size: 12px;
}
.novel-comment header span {
  color: #7181c1;
  font-family: Georgia, serif;
  font-size: 10px;
}
.novel-comment time {
  margin-left: auto;
  color: #a2aabc;
  font-size: 10px;
}
.novel-comment p {
  margin: 7px 0 0;
  color: #4f5a74;
  font-size: 13px;
  line-height: 1.75;
  white-space: pre-wrap;
}
.novel-comment-delete {
  align-self: start;
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  color: #a3aabd;
  background: transparent;
  border: 0;
  cursor: pointer;
}
.novel-comment-delete:hover {
  color: #a95771;
}
.novel-comment-delete svg {
  width: 15px;
  height: 15px;
}
.novel-comment-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 126px;
  color: #9ba4b6;
  text-align: left;
}
.novel-comment-empty svg {
  width: 30px;
  height: 30px;
  color: #b5bed1;
}
.novel-comment-empty p {
  font-size: 12px;
  line-height: 1.75;
}
.novel-comment-composer {
  margin: 10px 22px 22px;
  padding: 12px;
  background: #f6f8fd;
  border: 1px solid #dfe5f1;
  border-radius: 8px;
}
.novel-comment-composer textarea {
  width: 100%;
  min-height: 92px;
  resize: vertical;
  color: #3e4968;
  background: transparent;
  border: 0;
  outline: 0;
  font: inherit;
  font-size: 13px;
  line-height: 1.7;
}
.novel-comment-composer > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.novel-comment-composer span {
  color: #a1aabc;
  font-size: 10px;
}
.novel-comment-composer button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 13px;
  color: white;
  background: #5369c5;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
  font-size: 12px;
}
.novel-comment-composer button:disabled {
  opacity: .45;
  cursor: default;
}
.novel-comment-composer button svg {
  width: 14px;
  height: 14px;
}
.novel-comment-gate {
  margin: 10px 22px 22px;
  padding: 14px;
  color: #818ba2;
  background: #f6f8fd;
  border-radius: 7px;
  font-size: 12px;
  text-align: center;
}
.novel-comment-gate a {
  color: #5369c5;
}
.novel-comment-error {
  margin: -10px 22px 18px;
  color: #a6536d;
  font-size: 11px;
}
.novel-reader-page {
  --reader-size: 20px;
  min-height: 100vh;
  color: #2c3554;
  background: linear-gradient(180deg, #e9eefc, #f1f3f9 560px);
  transition: color .2s, background .2s;
}
.novel-reader-page .site-header {
  color: #263158;
  background: rgba(252,253,255,.95);
  border-color: #dce3f2;
}
.novel-reader-page .signal-strip {
  color: #687391;
  background: #e4eafa;
}
.novel-reader-page .signal-copy {
  color: #8a94ad;
}
.novel-reader-page .brand small {
  color: #8b95ae;
}
.novel-reader-page .site-header nav a, .novel-reader-page .site-header nav button {
  color: #5d6888;
}
.novel-reader-page .site-header nav a:hover, .novel-reader-page .site-header nav a.active {
  color: #455bb2;
}
.novel-mobile-reader-bar {
  display: none;
}
.novel-reader-shell {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  padding: 31px 0 70px;
}
.novel-reader-rail {
  position: fixed;
  top: 160px;
  left: max(20px, calc(50% - 610px - 82px));
  z-index: 10;
  display: grid;
  align-self: start;
  width: 67px;
  height: auto;
  gap: 8px;
}
.novel-reader-rail button, .novel-reader-rail a {
  display: grid;
  place-items: center;
  gap: 5px;
  width: 67px;
  height: 67px;
  padding: 8px;
  color: #657194;
  background: rgba(255,255,255,.9);
  border: 1px solid #dbe2f0;
  border-radius: 10px;
  box-shadow: 0 5px 16px rgba(44,57,105,.06);
  text-decoration: none;
  font-size: 10px;
}
.novel-reader-rail svg {
  width: 22px;
  height: 22px;
}
.novel-reader-rail button:hover, .novel-reader-rail a:hover {
  color: #455bb2;
  border-color: #bdc8e5;
}
.novel-reading-card {
  width: min(900px, 100%);
  margin: 0 auto;
  padding: 56px 72px 44px;
  background: #fdfdff;
  border: 1px solid #dbe2ef;
  box-shadow: 0 12px 36px rgba(43,55,102,.09);
}
.novel-chapter-heading {
  padding-bottom: 32px;
  border-bottom: 1px solid #e1e6ef;
}
.novel-chapter-heading > span {
  color: #8996c7;
  font-family: Georgia, serif;
  font-size: 11px;
  letter-spacing: .18em;
}
.novel-chapter-heading h1 {
  margin: 11px 0 12px;
  color: #263158;
  font-family: Georgia, "STSong", serif;
  font-size: 30px;
  font-weight: 600;
  letter-spacing: .04em;
}
.novel-chapter-heading > div {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #9aa3b7;
  font-size: 11px;
}
.novel-chapter-heading a {
  color: #6674a4;
  text-decoration: none;
}
.novel-chapter-heading i {
  width: 3px;
  height: 3px;
  background: #b9c1d0;
  border-radius: 50%;
}
.novel-prose {
  padding: 28px 0 18px;
}
.novel-prose p {
  position: relative;
  margin: 0 0 1.15em;
  color: inherit;
  font-family: "Noto Serif SC", "Source Han Serif SC", "STSong", "SimSun", serif;
  font-size: var(--reader-size);
  line-height: 2.05;
  text-align: justify;
  text-indent: 2em;
  letter-spacing: .045em;
}
.novel-prose p button {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  margin-left: 6px;
  padding: 1px 4px;
  color: #a6aebe;
  background: transparent;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  text-indent: 0;
  vertical-align: middle;
  opacity: .55;
}
.novel-prose p:hover button, .novel-prose p button.has-comments {
  color: #7181bf;
  background: #eef2fd;
  opacity: 1;
}
.novel-prose p button svg {
  width: 15px;
  height: 15px;
}
.novel-prose p button span {
  font-family: Georgia, serif;
  font-size: 10px;
}
.novel-chapter-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  height: 74px;
  margin-top: 24px;
  border-block: 1px solid #e1e6ef;
}
.novel-chapter-nav a, .novel-chapter-nav button {
  display: flex;
  align-items: center;
  gap: 7px;
  height: auto;
  padding: 0;
  color: #667293;
  background: transparent;
  border: 0;
  text-decoration: none;
  font-size: 12px;
}
.novel-chapter-nav a:last-child {
  justify-self: end;
}
.novel-chapter-nav button {
  justify-self: center;
  padding: 8px 12px;
  border: 1px solid #d8dfed;
  border-radius: 6px;
  cursor: pointer;
}
.novel-chapter-nav a span {
  max-width: 150px;
  overflow: hidden;
  color: #9ca4b5;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.novel-chapter-nav svg {
  width: 16px;
  height: 16px;
}
.novel-reading-card > .novel-comments {
  margin-top: 30px;
  border: 1px solid #dfe5f1;
  border-radius: 10px;
  overflow: hidden;
}
.novel-reading-loading {
  display: grid;
  min-height: 600px;
  place-items: center;
  color: #8993aa;
  font-family: Georgia, "STSong", serif;
}
.novel-mobile-bottom-bar {
  display: none;
}
.novel-panel-backdrop {
  position: fixed;
  z-index: 40;
  inset: 0;
  background: rgba(28,34,57,.28);
  backdrop-filter: blur(2px);
}
.novel-reader-panel {
  position: fixed;
  z-index: 50;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(440px, 92vw);
  overflow: hidden;
  color: #354164;
  background: #fafbff;
  box-shadow: -12px 0 38px rgba(33,44,88,.18);
  transform: translateX(105%);
  transition: transform .22s ease;
}
.novel-reader-panel.open {
  transform: translateX(0);
}
.novel-reader-panel > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 68px;
  padding: 0 22px;
  border-bottom: 1px solid #dfe5f1;
}
.novel-reader-panel > header div {
  display: flex;
  align-items: center;
  gap: 9px;
}
.novel-reader-panel > header svg {
  width: 21px;
  height: 21px;
  color: #7181c2;
}
.novel-reader-panel > header button {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: #77829d;
  background: #f1f4fb;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
}
.novel-reader-catalog {
  height: calc(100% - 68px);
  overflow: auto;
  padding: 12px 20px 30px;
}
.novel-reader-catalog > p {
  color: #99a2b6;
  font-size: 11px;
}
.novel-reader-catalog a {
  display: grid;
  grid-template-columns: 36px minmax(0,1fr) auto;
  gap: 9px;
  align-items: center;
  min-height: 52px;
  color: #697491;
  border-bottom: 1px solid #e8ecf4;
  text-decoration: none;
}
.novel-reader-catalog a.active {
  color: #4e65be;
  background: #f0f3fd;
  box-shadow: inset 3px 0 #6579d1;
}
.novel-reader-catalog a span {
  padding-left: 8px;
  color: #a4acbd;
  font-family: Georgia, serif;
  font-size: 10px;
}
.novel-reader-catalog a b {
  font-size: 13px;
  font-weight: 500;
}
.novel-reader-catalog a small {
  padding-right: 8px;
  color: #a1a9ba;
  font-size: 10px;
}
.novel-reader-settings {
  display: grid;
  gap: 18px;
  padding: 30px;
}
.novel-reader-settings label {
  display: flex;
  justify-content: space-between;
  color: #596684;
  font-size: 13px;
}
.novel-reader-settings input {
  width: 100%;
  accent-color: #6074cb;
}
.novel-reader-settings button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 42px;
  color: #53649a;
  background: #eef2fc;
  border: 1px solid #d9e0f0;
  border-radius: 8px;
  cursor: pointer;
}
.novel-reader-settings svg {
  width: 19px;
  height: 19px;
}
.novel-paragraph-discussion {
  height: calc(100% - 68px);
  overflow: auto;
}
.novel-paragraph-discussion blockquote {
  margin: 20px 22px 6px;
  padding: 14px 16px;
  color: #626d89;
  background: #f0f3fa;
  border-left: 3px solid #8190cf;
  font-family: "STSong", serif;
  font-size: 14px;
  line-height: 1.8;
}
.novel-comments.compact .novel-comment-composer {
  margin-inline: 16px;
}
.novel-reader-catalog, .novel-paragraph-discussion, .novel-reader-panel textarea {
  overscroll-behavior: contain;
}
.novel-comments.compact .novel-comments-heading {
  min-height: 60px;
}
.novel-panel-backdrop {
  touch-action: none;
}
.novel-reader-page.night {
  color: #c5ccdc;
  background: #171b29;
}
.novel-reader-page.night .novel-reading-card {
  background: #202534;
  border-color: #30384b;
  box-shadow: none;
}
.novel-reader-page.night .novel-chapter-heading, .novel-reader-page.night .novel-chapter-nav {
  border-color: #363d4e;
}
.novel-reader-page.night .novel-chapter-heading h1 {
  color: #e2e6ef;
}
.novel-reader-page.night .novel-prose p button.has-comments {
  color: #9eace1;
  background: #2f384f;
}
.novel-reader-page.night .novel-comments {
  color: #cad0de;
  background: #252b3b;
}
.novel-reader-page.night .novel-comments-heading, .novel-reader-page.night .novel-comment, .novel-reader-page.night .novel-comment-composer {
  border-color: #394155;
}
.novel-reader-page.night .novel-comment p {
  color: #c6ccda;
}
.novel-reader-page.night .novel-comment-composer {
  background: #202635;
}
.novel-not-found {
  display: grid;
  min-height: 100vh;
  place-content: center;
  text-align: center;
  background: #f3f5fb;
}
.novel-not-found h1 {
  color: #344268;
  font-family: Georgia, "STSong", serif;
}
.novel-not-found a {
  color: #5369c5;
}
@media (max-width: 1100px) {
  .novel-detail-copy {
    padding-right: 0;
  }
  .novel-detail-stats {
    position: static;
    grid-column: 1 / -1;
    grid-template-columns: repeat(3,1fr);
    width: auto;
  }
  .novel-detail-stats > div {
    border-bottom: 0;
    border-right: 1px solid #e2e7f1;
  }
  .novel-detail-stats > div:last-child {
    border: 0;
  }
  .novel-reader-rail {
    display: none;
  }
}
@media (max-width: 760px) {
  .novel-site-page .signal-strip {
    display: none;
  }
  .novel-site-page .site-header {
    height: 62px;
  }
  .novel-site-page .header-main {
    width: 100%;
    padding: 0 14px;
  }
  .novel-site-page .site-header nav {
    display: none;
  }
  .novel-shelf-hero {
    width: 100%;
    min-height: 170px;
    margin-top: 0;
    padding: 27px 22px;
    border-inline: 0;
    border-top: 0;
    border-radius: 0 0 18px 18px;
  }
  .novel-shelf-hero h1 {
    font-size: 29px;
  }
  .novel-shelf-hero p {
    max-width: 260px;
    line-height: 1.6;
  }
  .novel-shelf-hero > svg {
    width: 76px;
    height: 76px;
  }
  .novel-shelf-shell {
    width: 100%;
    padding: 25px 14px 52px;
  }
  .novel-section-title {
    padding: 0 4px;
  }
  .novel-shelf-card {
    grid-template-columns: 102px minmax(0,1fr);
    gap: 17px;
    padding: 18px;
  }
  .novel-shelf-cover {
    width: 100px;
    height: 142px;
  }
  .novel-shelf-copy h2 {
    margin-top: 6px;
    font-size: 21px;
  }
  .novel-shelf-copy > p {
    margin-bottom: 13px;
  }
  .novel-shelf-copy dl {
    gap: 9px 20px;
  }
  .novel-shelf-copy dl div:nth-child(3) {
    grid-column: 1 / -1;
  }
  .novel-shelf-actions {
    grid-column: 1 / -1;
    grid-template-columns: 1fr 1fr;
  }
  .novel-breadcrumb {
    height: 42px;
    padding: 0 15px;
  }
  .novel-detail-hero {
    width: 100%;
    grid-template-columns: 112px minmax(0,1fr);
    grid-template-rows: repeat(4, auto);
    column-gap: 17px;
    min-height: 0;
    padding: 24px 18px;
    border-inline: 0;
    border-radius: 0 0 18px 18px;
  }
  .novel-detail-cover {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: start;
    width: 110px;
    height: 156px;
    padding: 4px;
  }
  .novel-detail-cover i {
    right: -8px;
    bottom: 12px;
    width: 30px;
    height: 30px;
  }
  .novel-detail-copy {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
  }
  .novel-detail-copy h1 {
    margin-top: 6px;
    font-size: 24px;
  }
  .novel-status-badge {
    padding: 3px 9px;
    font-size: 11px;
  }
  .novel-author {
    font-size: 12px;
  }
  .novel-detail-tags {
    grid-column: 1 / -1;
    grid-row: 2;
    margin: 13px 0 8px;
  }
  .novel-detail-tags span {
    padding: 4px 8px;
    font-size: 11px;
  }
  .novel-intro-wrap {
    grid-column: 1 / -1;
    grid-row: 3;
  }
  .novel-intro {
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 13px;
  }
  .novel-detail-actions {
    grid-column: 1 / -1;
    grid-row: 4;
    margin-top: 14px;
  }
  .novel-detail-actions a {
    flex: 1;
    min-width: 0;
    padding: 0 8px;
  }
  .novel-statbar {
    gap: 8px;
    margin-top: 10px;
    padding-inline: 14px;
  }
  .novel-stat-card {
    min-height: 74px;
    padding: 12px 6px;
    border-radius: 10px;
  }
  .novel-stat-card b {
    font-size: 15px;
  }
  .novel-stat-card span {
    font-size: 11px;
  }
  .novel-stat-card small {
    font-size: 10px;
  }
  .novel-detail-grid {
    width: 100%;
    grid-template-columns: 1fr;
    padding: 14px 0;
  }
  .novel-catalog-card {
    border-inline: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .novel-catalog-card > header {
    padding-inline: 17px;
  }
  .novel-catalog-controls > span {
    display: none;
  }
  .novel-chapter-list {
    grid-template-columns: 1fr;
    max-height: none;
    padding-inline: 12px;
  }
  .novel-detail-aside {
    display: none;
  }
  .novel-book-comments {
    width: 100%;
    margin-bottom: 0;
    border-inline: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .novel-comment-list {
    padding-inline: 16px;
  }
  .novel-comment-composer, .novel-comment-gate {
    margin-inline: 16px;
  }
  .novel-reader-site-chrome {
    display: none;
  }
  .novel-reader-page {
    padding: 0 0 80px;
    background: #f1f3fa;
  }
  .novel-mobile-reader-bar {
    position: sticky;
    z-index: 20;
    top: 0;
    display: grid;
    grid-template-columns: 38px minmax(0,1fr) 38px;
    align-items: center;
    height: 54px;
    padding: 0 10px;
    color: #596584;
    background: rgba(246,248,253,.94);
    border-bottom: 1px solid #dfe5f0;
    backdrop-filter: blur(12px);
  }
  .novel-mobile-reader-bar a, .novel-mobile-reader-bar button {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    color: inherit;
    background: transparent;
    border: 0;
  }
  .novel-mobile-reader-bar span {
    overflow: hidden;
    font-size: 12px;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .novel-mobile-reader-bar svg {
    width: 22px;
    height: 22px;
  }
  .novel-reader-shell {
    width: 100%;
    padding: 0;
  }
  .novel-reading-card {
    width: 100%;
    min-height: calc(100vh - 54px);
    padding: 35px 23px 34px;
    border: 0;
    box-shadow: none;
  }
  .novel-chapter-heading {
    padding-bottom: 24px;
  }
  .novel-chapter-heading h1 {
    font-size: 25px;
    line-height: 1.45;
  }
  .novel-prose {
    padding-top: 25px;
  }
  .novel-prose p {
    margin-bottom: 1.12em;
    font-size: var(--reader-size);
    line-height: 2.05;
    text-indent: 2em;
    letter-spacing: .035em;
  }
  .novel-prose p button {
    opacity: .8;
  }
  .novel-chapter-nav {
    display: none;
  }
  .novel-reading-card > .novel-comments {
    margin-inline: -23px;
    border-inline: 0;
    border-radius: 0;
  }
  .novel-mobile-bottom-bar {
    position: fixed;
    z-index: 25;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: 1fr 58px 58px 58px 1fr;
    align-items: center;
    height: 70px;
    padding: 0 12px max(0px, env(safe-area-inset-bottom));
    color: #596584;
    background: rgba(249,250,253,.96);
    border-top: 1px solid #dbe1ed;
    backdrop-filter: blur(14px);
  }
  .novel-mobile-bottom-bar a, .novel-mobile-bottom-bar button {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    height: 56px;
    padding: 0;
    color: inherit;
    background: transparent;
    border: 0;
    text-decoration: none;
    font-size: 10px;
  }
  .novel-mobile-bottom-bar a:first-child {
    align-items: flex-start;
  }
  .novel-mobile-bottom-bar a:last-child {
    align-items: flex-end;
  }
  .novel-mobile-bottom-bar svg {
    width: 21px;
    height: 21px;
  }
  .novel-reader-panel {
    top: auto;
    width: 100%;
    height: min(74vh, 700px);
    border-radius: 18px 18px 0 0;
    transform: translateY(105%);
  }
  .novel-reader-panel.open {
    transform: translateY(0);
  }
  .novel-reader-catalog {
    height: calc(100% - 68px);
  }
  .novel-reader-page.night .novel-mobile-reader-bar, .novel-reader-page.night .novel-mobile-bottom-bar {
    color: #c4cada;
    background: rgba(31,36,50,.96);
    border-color: #363d4d;
  }
}
@media (max-width: 420px) {
  .novel-site-page .brand small, .novel-site-page .account-chip b {
    display: none;
  }
  .novel-site-page .header-actions {
    gap: 5px;
  }
  .novel-shelf-hero > svg {
    display: none;
  }
  .novel-shelf-card {
    grid-template-columns: 90px minmax(0,1fr);
    padding: 15px;
  }
  .novel-shelf-cover {
    width: 88px;
    height: 126px;
  }
  .novel-shelf-copy dl div:nth-child(2) {
    display: none;
  }
  .novel-progress-note {
    grid-column: 1 / -1;
  }
  .novel-detail-hero {
    grid-template-columns: 98px minmax(0,1fr);
  }
  .novel-detail-cover {
    width: 96px;
    height: 137px;
  }
  .novel-detail-copy h1 {
    font-size: 21px;
  }
  .novel-kicker {
    font-size: 9px;
  }
  .novel-detail-tags, .novel-intro, .novel-detail-actions {
    grid-column: 1 / -1;
  }
  .novel-detail-tags span {
    padding: 4px 7px;
    font-size: 10px;
  }
  .novel-reading-card {
    padding-inline: 19px;
  }
  .novel-reading-card > .novel-comments {
    margin-inline: -19px;
  }
  .novel-prose p {
    text-align: left;
  }
}
.new-thread {
  text-decoration: none;
}
.side-link-button {
  display: flex;
  justify-content: space-between;
  width: 100%;
  margin-top: 12px;
  padding: 9px 0 0;
  color: #7e6848;
  border-top: 1px solid #e5d9c5;
  font-size: 12px;
  text-decoration: none;
}
.side-link-button span {
  font-size: 13px;
}
.notification-chip {
  position: relative;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: #cfc5d6;
  background: #241d2d;
  border: 1px solid #44374f;
  border-radius: 50%;
  font-size: 12px;
  text-decoration: none;
}
.notification-chip b {
  position: absolute;
  top: -4px;
  right: -4px;
  display: grid;
  place-items: center;
  width: 16px;
  height: 16px;
  color: #fff;
  background: #a95e78;
  border: 2px solid #17121e;
  border-radius: 50%;
  font-family: Georgia, serif;
  font-size: 11px;
}
.notification-chip.active {
  color: #f1dca9;
  border-color: #8f7449;
}
.account-nav > a {
  position: relative;
  display: grid;
  grid-template-columns: 25px 1fr auto;
  align-items: center;
  width: 100%;
  height: 38px;
  padding: 0 9px;
  color: #7b727d;
  font-size: 12px;
  text-align: left;
  text-decoration: none;
}
.account-nav > a:hover {
  color: #45394f;
  background: #f2eee7;
}
.account-nav > a > span {
  color: #a397a5;
}
.account-nav > a > b {
  color: #a95e78;
  font-family: Georgia, serif;
  font-size: 12px;
  font-weight: 400;
}
.community-page {
  background: var(--paper);
}
.community-card {
  background: #fdfbf6;
  border: 1px solid var(--line);
  box-shadow: 0 5px 20px rgba(57,46,66,.045);
}
.community-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 25px 27px 21px;
  border-bottom: 1px solid #e3dcd2;
}
.community-card-head > div > span, .recovery-card > span {
  color: #9a7b47;
  font-family: Georgia, serif;
  font-size: 12px;
  letter-spacing: .17em;
}
.community-card-head h1 {
  margin: 7px 0 5px;
  color: #3d3542;
  font-family: Georgia, "STSong", serif;
  font-size: 24px;
  font-weight: 600;
}
.community-card-head p {
  margin: 0;
  color: #968d96;
  font-size: 12px;
}
.community-card-head > b {
  margin-top: 7px;
  color: #a49aa4;
  font-size: 12px;
  font-weight: 400;
}
.compose-layout {
  display: grid;
  grid-template-columns: minmax(0,1fr) 270px;
  align-items: start;
  gap: 17px;
  padding-bottom: 50px;
}
.compose-form {
  display: grid;
  gap: 18px;
  padding: 24px 27px 28px;
}
.compose-form label {
  position: relative;
  display: grid;
  gap: 8px;
  color: #625964;
  font-size: 12px;
}
.compose-form input, .compose-form select, .compose-form textarea {
  width: 100%;
  color: #3f3743;
  background: #f8f5ee;
  border: 1px solid #dcd4c9;
  border-radius: 3px;
  outline: 0;
  font: inherit;
  font-size: 13px;
}
.compose-form input, .compose-form select {
  height: 42px;
  padding: 0 12px;
}
.compose-form textarea {
  min-height: 310px;
  padding: 13px 14px;
  line-height: 1.9;
  resize: vertical;
}
.compose-form input:focus, .compose-form select:focus, .compose-form textarea:focus {
  background: #fffdf9;
  border-color: #9f8bb2;
  box-shadow: 0 0 0 2px rgba(121,102,216,.08);
}
.compose-form label > small {
  position: absolute;
  right: 9px;
  bottom: 8px;
  color: #aaa1a8;
  font-family: Georgia, serif;
  font-size: 11px;
}
.compose-form label:has(textarea) > small {
  bottom: 10px;
}
.compose-flags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  padding: 14px;
  background: #f3efe8;
  border: 1px solid #e0d8ce;
}
.compose-flags label {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #777078;
  cursor: pointer;
}
.compose-flags input {
  width: 13px;
  height: 13px;
  accent-color: var(--violet);
}
.compose-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding-top: 4px;
}
.compose-actions > a, .compose-actions > button:not(.auth-submit) {
  height: 38px;
  padding: 0 14px;
  color: #766c78;
  background: #f4f0e9;
  border: 1px solid #ddd5cb;
  cursor: pointer;
  font-size: 12px;
  line-height: 36px;
  text-decoration: none;
}
.compose-actions .auth-submit {
  width: 150px;
}
.compose-identity {
  margin-right: auto;
  color: #8e858e;
  font-size: 12px;
}
.quick-thread-card {
  margin-top: 24px;
  margin-bottom: 52px;
  overflow: hidden;
  background: #fdfbf6;
  border: 1px solid var(--line);
  box-shadow: 0 5px 20px rgba(57,46,66,.045);
}
.quick-thread-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 24px 27px 20px;
  background: #f3efe8;
  border-bottom: 1px solid #ded6cc;
}
.quick-thread-head > div > span {
  color: #9a7b47;
  font-family: Georgia, serif;
  font-size: 12px;
  letter-spacing: .17em;
}
.quick-thread-head h2 {
  margin: 7px 0 5px;
  color: #3d3542;
  font-family: Georgia, "STSong", serif;
  font-size: 22px;
  font-weight: 600;
}
.quick-thread-head p {
  margin: 0;
  color: #8e858e;
  font-size: 13px;
}
.quick-thread-head > b {
  margin-top: 7px;
  padding: 6px 9px;
  color: #70588a;
  background: #eee7f2;
  border: 1px solid #d9cde0;
  font-size: 12px;
  font-weight: 500;
}
.quick-compose-form {
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 15px 18px;
}
.quick-compose-form > .form-pair, .quick-compose-form > label, .quick-compose-form > .compose-flags, .quick-compose-form > .compose-actions {
  grid-column: 1 / -1;
}
.quick-compose-form > .image-uploader {
  grid-column: 1 / -1;
}
.quick-compose-form textarea {
  min-height: 190px;
}
.compose-aside {
  display: grid;
  gap: 12px;
}
.mini-guide, .draft-card {
  padding: 20px;
}
.mini-guide > span {
  color: #a08049;
  font-size: 12px;
  letter-spacing: .12em;
}
.mini-guide ol {
  display: grid;
  gap: 11px;
  margin: 16px 0;
  padding-left: 20px;
  color: #6f6671;
  font-size: 12px;
  line-height: 1.7;
}
.mini-guide a {
  color: #715c7b;
  font-size: 12px;
  text-decoration: none;
}
.draft-card b {
  color: #48404d;
  font-size: 12px;
}
.draft-card p {
  margin: 12px 0 6px;
  color: #8e858e;
  font-size: 12px;
}
.draft-card small {
  color: #aaa1a8;
  font-size: 11px;
}
.topic-preview {
  padding: 27px;
}
.preview-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 23px;
  padding-bottom: 13px;
  border-bottom: 1px solid #e4ddd4;
}
.preview-label span {
  color: #9a7b47;
  font-size: 12px;
  letter-spacing: .14em;
}
.preview-label button {
  color: #716377;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.topic-preview h2 {
  margin: 12px 0 17px;
  color: #342d39;
  font-family: Georgia, "STSong", serif;
  font-size: 23px;
}
.preview-author {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 0;
  border-block: 1px solid #ece5dc;
}
.preview-author b, .preview-author small {
  display: block;
}
.preview-author b {
  color: #514755;
  font-size: 12px;
}
.preview-author small {
  margin-top: 4px;
  color: #aaa1aa;
  font-size: 11px;
}
.large-reader-avatar.tiny {
  width: 34px;
  height: 34px;
  border-width: 2px;
  font-size: 12px;
}
.preview-copy {
  min-height: 280px;
  padding: 24px 3px;
  color: #4e4651;
  font-family: Georgia, "STSong", serif;
  font-size: 14px;
  line-height: 2;
}
.preview-copy p {
  margin: 0 0 13px;
}
.invite-field {
  padding: 12px;
  background: #f3efe8;
  border: 1px solid #e0d7cb;
}
.invite-field small {
  color: #9a9099;
  font-size: 11px;
}
.agreement a {
  margin-inline: 2px;
  color: #6651a2;
  text-decoration: none;
}
.auth-options a {
  color: #796984;
  font-size: 12px;
  text-decoration: none;
}
.settings-preferences {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 15px;
  background: #f4f0e9;
  border: 1px solid #ddd5cb;
}
.settings-preferences legend {
  padding: 0 6px;
  color: #655d68;
  font-size: 12px;
}
.settings-preferences label {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #7d747e;
  font-size: 12px;
}
.settings-preferences input {
  width: 13px;
  height: 13px;
  accent-color: var(--violet);
}
.settings-security {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 15px;
  background: #eee8f1;
  border: 1px solid #ddd1e2;
}
.settings-security b, .settings-security small {
  display: block;
}
.settings-security b {
  color: #514558;
  font-size: 12px;
}
.settings-security small {
  margin-top: 4px;
  color: #938895;
  font-size: 11px;
}
.settings-security a {
  padding: 8px 10px;
  color: #fff;
  background: #45364f;
  font-size: 12px;
  text-decoration: none;
}
.reply-composer {
  scroll-margin-top: 20px;
  margin-top: 13px;
  background: #fdfbf6;
  border: 1px solid #dcd4c8;
}
.reply-composer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 64px;
  padding: 10px 15px;
  background: #f3efe8;
  border-bottom: 1px solid #ded6cc;
}
.reply-composer-head > div {
  display: flex;
  align-items: center;
  gap: 10px;
}
.reply-composer-head b, .reply-composer-head small {
  display: block;
}
.reply-composer-head b {
  color: #49404e;
  font-size: 12px;
}
.reply-composer-head small {
  margin-top: 3px;
  color: #999099;
  font-size: 11px;
}
.reply-composer-head > a {
  color: #7a6682;
  font-size: 12px;
  text-decoration: none;
}
.reply-composer form {
  padding: 14px;
}
.reply-composer textarea {
  width: 100%;
  min-height: 155px;
  padding: 12px;
  color: #4b434f;
  background: #fffdf9;
  border: 1px solid #d9d1c7;
  outline: 0;
  font: inherit;
  font-size: 13px;
  line-height: 1.8;
  resize: vertical;
}
.reply-composer textarea:focus {
  border-color: #9f8bb2;
  box-shadow: 0 0 0 2px rgba(121,102,216,.07);
}
.composer-quote {
  margin-bottom: 10px;
  padding: 11px 13px;
  color: #756b76;
  background: #f1ede6;
  border-left: 3px solid #a88bce;
}
.composer-quote > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.composer-quote b {
  color: #685878;
  font-size: 12px;
}
.composer-quote button {
  padding: 3px 7px;
  color: #8b7f8a;
  background: transparent;
  border: 1px solid #d6ccc3;
  cursor: pointer;
  font-size: 12px;
}
.composer-quote p {
  overflow: hidden;
  margin: 6px 0 0;
  font-size: 12px;
  line-height: 1.55;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.reply-tools {
  display: grid;
  grid-template-columns: 1fr auto 105px;
  align-items: center;
  gap: 12px;
  margin-top: 9px;
}
.reply-tools > div {
  display: flex;
  gap: 5px;
}
.reply-tools > div button {
  height: 28px;
  padding: 0 9px;
  color: #766d78;
  background: #f4f0e9;
  border: 1px solid #ddd5cb;
  cursor: pointer;
  font-size: 12px;
}
.reply-tools > span {
  color: #aaa1a8;
  font-family: Georgia, serif;
  font-size: 11px;
}
.reply-tools .reply-primary {
  height: 31px;
}
.form-error {
  margin: -2px 0 2px;
  padding: 9px 11px;
  color: #8f3f52;
  background: #fbf0f1;
  border: 1px solid #e6c9cf;
  border-radius: 3px;
  font-size: 12px;
  line-height: 1.55;
}
.auth-submit:disabled, .reply-primary:disabled {
  cursor: wait;
  opacity: .65;
}
.account-logout {
  width: 100%;
  cursor: pointer;
  font-family: inherit;
}
.reader-written-copy {
  white-space: normal;
}
.reader-written-copy p {
  margin: 0 0 13px;
  white-space: pre-wrap;
  word-break: break-word;
}
.reply-tools a.reply-primary {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
}
.local-draft-restore {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 14px;
  color: #536281;
  background: #f4f7ff;
  border: 1px solid #d8e0f3;
  border-radius: 5px;
}
.local-draft-restore > div {
  display: flex;
  align-items: center;
  gap: 10px;
}
.local-draft-restore span {
  color: #8790a6;
  font-size: 12px;
}
.local-draft-restore button {
  min-height: 30px;
  padding: 0 11px;
  color: #66718a;
  background: #fff;
  border: 1px solid #d4dced;
  border-radius: 4px;
  cursor: pointer;
}
.local-draft-restore button.primary {
  color: #fff;
  background: #5268af;
  border-color: #5268af;
}
.compose-actions .clear-local-draft {
  white-space: nowrap;
}
.image-uploader {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
}
.image-uploader > button {
  min-height: 32px;
  padding: 0 12px;
  color: #675c70;
  background: #f5f1eb;
  border: 1px solid #d9d0c6;
  border-radius: 3px;
  cursor: pointer;
  font-size: 12px;
}
.image-uploader > button:disabled {
  cursor: wait;
  opacity: .65;
}
.image-uploader > small {
  color: #9a9097;
  font-size: 12px;
}
.image-upload-previews {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 90px));
  gap: 8px;
  width: 100%;
}
.image-upload-previews figure {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1;
  margin: 0;
  background: #eee8df;
  border: 1px solid #d9d0c6;
  border-radius: 4px;
}
.image-upload-previews img {
  width: 100%;
  height: 100%;
  padding: 3px;
  background: #f7f3ed;
  object-fit: contain;
}
.image-upload-previews figure > button[aria-label] {
  position: absolute;
  top: 4px;
  right: 4px;
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  padding: 0;
  color: #fff;
  background: rgba(48,39,53,.72);
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  font-size: 16px;
}
.image-upload-previews figure > span {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 6px 5px;
  overflow: hidden;
  color: #fff;
  background: rgba(39,31,44,.78);
  font-size: 12px;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.image-upload-previews .upload-failed {
  border-color: #bd7182;
}
.image-upload-previews .retry-upload {
  position: absolute;
  right: 7px;
  bottom: 28px;
  left: 7px;
  height: 24px;
  color: #fff;
  background: #7966d8;
  border: 0;
  border-radius: 3px;
  cursor: pointer;
  font-size: 12px;
}
.image-uploader.compact {
  margin-top: 9px;
}
.settings-avatar .image-uploader {
  width: auto;
  margin: 0;
}
.settings-avatar .image-uploader > small, .settings-avatar .image-upload-previews {
  display: none;
}
.post-images {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 210px));
  gap: 8px;
  max-width: 660px;
  margin-top: 18px;
}
.post-images.count-1 {
  grid-template-columns: minmax(0, 480px);
  max-width: 480px;
}
.post-images.count-2 {
  grid-template-columns: repeat(2, minmax(0, 260px));
  max-width: 530px;
}
.post-images > button {
  display: block;
  overflow: hidden;
  aspect-ratio: 1;
  padding: 0;
  background: #eee8df;
  border: 1px solid #ddd4ca;
  border-radius: 4px;
  cursor: zoom-in;
}
.post-images.count-1 > button {
  aspect-ratio: 4 / 3;
}
.post-images img {
  display: block;
  width: 100%;
  height: 100%;
  padding: 4px;
  background: #f7f3ed;
  object-fit: contain;
}
.image-lightbox {
  position: fixed;
  z-index: 300;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(16,12,19,.9);
}
.image-lightbox > section {
  position: relative;
  display: grid;
  grid-template-rows: 42px minmax(0,1fr);
  width: min(1060px, 94vw);
  height: min(820px, 92vh);
  color: #f6f0f7;
}
.image-lightbox header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 5px 0 12px;
  font-family: Georgia, serif;
  font-size: 12px;
}
.image-lightbox header button {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  color: #fff;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 50%;
  cursor: pointer;
  font-size: 23px;
}
.image-lightbox header .lightbox-original-action {
  width: auto;
  min-width: 88px;
  height: 36px;
  padding: 0 12px;
  border-radius: 8px;
  font-size: 14px;
  white-space: nowrap;
  margin-left: auto;
  margin-right: 12px;
}
.mobile-return-row {
  display: none;
}
.thread-list-return {
  display: flex;
  margin-bottom: 12px;
}
.thread-list-return a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface, #fff);
  color: inherit;
  text-decoration: none;
}
@media (max-width: 760px) {
  .thread-list-return {
    display: none;
  }
}
@media (max-width: 760px) {
  .mobile-return-row {
    display: flex;
    padding-top: 4px;
    padding-bottom: 2px;
  }
  .mobile-return-row a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 8px;
    color: inherit;
    font-size: 14px;
    text-decoration: none;
  }
}
.lightbox-stage {
  display: grid;
  place-items: center;
  min-height: 0;
}
.lightbox-stage img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.lightbox-prev, .lightbox-next {
  position: absolute;
  top: 50%;
  display: grid;
  place-items: center;
  width: 46px;
  height: 58px;
  color: #fff;
  background: rgba(32,23,39,.72);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 4px;
  cursor: pointer;
  font-size: 32px;
  transform: translateY(-50%);
}
.lightbox-prev {
  left: -58px;
}
.lightbox-next {
  right: -58px;
}
.avatar-crop-backdrop {
  position: fixed;
  z-index: 320;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(24,18,28,.78);
}
.avatar-crop-dialog {
  overflow: hidden;
  width: min(470px, 94vw);
  color: #4a414e;
  background: #fbf8f2;
  border: 1px solid #d6ccc1;
  border-radius: 7px;
  box-shadow: 0 18px 65px rgba(19,13,23,.34);
}
.avatar-crop-dialog > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  border-bottom: 1px solid #e1d9d0;
}
.avatar-crop-dialog > header div {
  display: grid;
  gap: 4px;
}
.avatar-crop-dialog > header b {
  font-size: 15px;
}
.avatar-crop-dialog > header small {
  color: #8f858e;
  font-size: 12px;
}
.avatar-crop-dialog > header button {
  width: 30px;
  height: 30px;
  color: #716676;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 22px;
}
.avatar-crop-stage {
  position: relative;
  height: 370px;
  background: #1d1721;
}
.avatar-zoom {
  display: grid;
  grid-template-columns: 42px 1fr;
  align-items: center;
  gap: 10px;
  padding: 15px 20px 9px;
  color: #746a76;
  font-size: 12px;
}
.avatar-zoom input {
  width: 100%;
  accent-color: #7966d8;
}
.avatar-crop-dialog > footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 10px 20px 18px;
}
.avatar-crop-dialog > footer button {
  min-width: 76px;
  height: 34px;
  color: #675c6c;
  background: #f2eee8;
  border: 1px solid #d8cfc5;
  border-radius: 3px;
  cursor: pointer;
}
.avatar-crop-dialog > footer .confirm {
  color: #fff;
  background: #5c496e;
  border-color: #5c496e;
}
.avatar-crop-dialog > footer button:disabled {
  cursor: wait;
  opacity: .65;
}
.single-thread-layout {
  grid-template-columns: minmax(0, 1fr);
}
.post-user-name {
  max-width: 112px;
  overflow: hidden;
  color: #403844;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.post-user-name:hover {
  color: #6e55a8;
}
.post-footer button:disabled, .top-reply-votes button:disabled {
  cursor: wait;
  opacity: .62;
}
.owner-filter-heading {
  margin-top: 0;
}
.notification-page-card {
  min-height: 570px;
  margin-bottom: 50px;
}
.notification-head > button {
  height: 31px;
  padding: 0 11px;
  color: #6f6076;
  background: #f3efe8;
  border: 1px solid #ddd5cb;
  cursor: pointer;
  font-size: 12px;
}
.notice-tabs {
  display: flex;
  gap: 4px;
  padding: 10px 27px 0;
  border-bottom: 1px solid #e5ded5;
}
.notice-tabs button {
  position: relative;
  height: 42px;
  padding: 0 13px;
  color: #918791;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.notice-tabs button.active {
  color: #493c53;
  font-weight: 700;
}
.notice-tabs button.active::after {
  content: "";
  position: absolute;
  right: 10px;
  bottom: -1px;
  left: 10px;
  height: 2px;
  background: var(--violet);
}
.notice-tabs b {
  display: inline-grid;
  place-items: center;
  min-width: 16px;
  height: 16px;
  margin-left: 3px;
  color: #fff;
  background: #a95e78;
  border-radius: 8px;
  font-family: Georgia, serif;
  font-size: 11px;
}
.notice-list {
  padding: 0 27px 25px;
}
.notice-list > a {
  position: relative;
  display: grid;
  grid-template-columns: 38px minmax(0,1fr) auto;
  align-items: center;
  gap: 13px;
  min-height: 83px;
  color: inherit;
  border-bottom: 1px solid #ebe4dc;
  text-decoration: none;
}
.notice-list > a.unread {
  background: linear-gradient(90deg, rgba(121,102,216,.06), transparent 76%);
}
.notice-list > a > div b {
  color: #4b424f;
  font-size: 12px;
}
.notice-list > a > div p {
  margin: 5px 0 0;
  color: #928993;
  font-size: 12px;
}
.notice-list time {
  color: #aaa1a8;
  font-family: Georgia, serif;
  font-size: 12px;
}
.notice-list > a > i {
  position: absolute;
  top: 50%;
  right: -15px;
  width: 5px;
  height: 5px;
  background: #7966d8;
  border-radius: 50%;
}
.notice-kind {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  font-size: 12px;
}
.notice-kind.kind-回, .notice-kind.kind-引 {
  color: #6651bd;
  background: #eeeafd;
}
.notice-kind.kind-赞 {
  color: #9b5b70;
  background: #f5e7ec;
}
.notice-kind.kind-藏 {
  color: #9c6d2c;
  background: #f6edd8;
}
.notice-kind.kind-务 {
  color: #39738f;
  background: #e7f0f5;
}
.notice-empty {
  display: grid;
  place-items: center;
  min-height: 340px;
  color: #918891;
  text-align: center;
}
.notice-empty span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  color: #6f9b82;
  background: #e7f2eb;
  border-radius: 50%;
  font-size: 15px;
}
.notice-empty b {
  margin-top: -70px;
  color: #5b515e;
  font-size: 12px;
}
.notice-empty p {
  margin-top: -90px;
  font-size: 12px;
}
.public-profile-hero {
  display: grid;
  grid-template-columns: 100px minmax(0,1fr) auto;
  align-items: center;
  min-height: 194px;
  padding: 27px 34px;
  color: #f1ebf3;
  background: linear-gradient(120deg, #17111f, #30223d);
  border: 1px solid #3b2f47;
}
.public-avatar {
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
  color: #7e3e57;
  background: #f0d9e2;
  border: 4px solid rgba(255,255,255,.13);
  border-radius: 50%;
  font-family: Georgia, "STSong", serif;
  font-size: 25px;
}
.public-profile-copy > span {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #8eb19d;
  font-size: 12px;
}
.public-profile-copy > span i {
  width: 5px;
  height: 5px;
  background: #69b792;
  border-radius: 50%;
}
.public-profile-copy h1 {
  margin: 9px 0 5px;
  font-family: Georgia, "STSong", serif;
  font-size: 27px;
  font-weight: 500;
}
.public-profile-copy > p {
  margin: 0;
  color: #a99eae;
  font-size: 12px;
}
.public-profile-copy > div {
  display: flex;
  gap: 15px;
  margin-top: 17px;
  color: #cdb889;
  font-size: 12px;
}
.public-profile-copy > div small {
  color: #857b8b;
}
.public-profile-hero > button {
  height: 34px;
  padding: 0 13px;
  color: #e2d5b7;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(255,255,255,.14);
  cursor: pointer;
  font-size: 12px;
}
.public-profile-layout {
  display: grid;
  grid-template-columns: minmax(0,1fr) 270px;
  align-items: start;
  gap: 16px;
  padding: 16px 0 50px;
}
.profile-tabs {
  display: flex;
  gap: 5px;
  padding: 0 21px;
  border-bottom: 1px solid #e4ddd4;
}
.profile-tabs button {
  position: relative;
  height: 49px;
  padding: 0 14px;
  color: #8d848e;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.profile-tabs button.active {
  color: #4b3d54;
  font-weight: 700;
}
.profile-tabs button.active::after {
  content: "";
  position: absolute;
  right: 10px;
  bottom: -1px;
  left: 10px;
  height: 2px;
  background: var(--violet);
}
.profile-tabs b {
  color: #a498a5;
  font-family: Georgia, serif;
  font-size: 12px;
}
.profile-topic-list {
  padding: 3px 21px 19px;
}
.profile-topic-list article {
  display: grid;
  grid-template-columns: 30px minmax(0,1fr) auto;
  align-items: center;
  min-height: 82px;
  border-bottom: 1px solid #ebe4dc;
}
.profile-topic-list article > span {
  color: #b39b6c;
  font-family: Georgia, serif;
  font-size: 12px;
}
.profile-topic-list a, .profile-topic-list small {
  display: block;
}
.profile-topic-list a {
  color: #4b424f;
  font-size: 12px;
  text-decoration: none;
}
.profile-topic-list small {
  margin-top: 6px;
  color: #9b929b;
  font-size: 12px;
}
.profile-topic-list article > b {
  color: #a69ca7;
  font-size: 13px;
}
.public-profile-aside {
  display: grid;
  gap: 11px;
}
.profile-numbers {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  padding: 17px 8px;
}
.profile-numbers div {
  text-align: center;
  border-right: 1px solid #e6dfd7;
}
.profile-numbers div:last-child {
  border-right: 0;
}
.profile-numbers b, .profile-numbers span {
  display: block;
}
.profile-numbers b {
  color: #514557;
  font-family: Georgia, serif;
  font-size: 17px;
  font-weight: 400;
}
.profile-numbers span {
  margin-top: 5px;
  color: #a096a0;
  font-size: 11px;
}
.profile-badges, .profile-note {
  padding: 19px;
}
.profile-badges > span, .profile-note > b {
  color: #504651;
  font-size: 12px;
}
.profile-badges > div {
  display: flex;
  gap: 8px;
  margin: 14px 0 10px;
}
.profile-badges > div b {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  color: #8a6f3d;
  background: #f4e9cf;
  border: 1px solid #dfcda5;
  border-radius: 50%;
  font-family: "STSong", serif;
}
.profile-badges p, .profile-note p {
  margin: 0;
  color: #958c95;
  font-size: 12px;
  line-height: 1.8;
}
.policy-hero {
  position: relative;
  overflow: hidden;
  min-height: 210px;
  padding: 38px 42px;
  color: #eee8f0;
  background: linear-gradient(118deg, #17111f, #30223d);
  border: 1px solid #3b2e46;
}
.policy-hero::after {
  content: "规";
  position: absolute;
  right: 35px;
  bottom: -55px;
  color: rgba(255,255,255,.035);
  font-family: "STSong", serif;
  font-size: 190px;
}
.privacy-hero::after {
  content: "隐";
}
.policy-hero > span {
  color: #c0a875;
  font-family: Georgia, serif;
  font-size: 12px;
  letter-spacing: .18em;
}
.policy-hero h1 {
  margin: 18px 0 8px;
  font-family: Georgia, "STSong", serif;
  font-size: 32px;
  font-weight: 500;
}
.policy-hero p {
  max-width: 580px;
  margin: 0;
  color: #aaa0ae;
  font-size: 12px;
  line-height: 1.8;
}
.policy-hero small {
  display: block;
  margin-top: 22px;
  color: #746b7a;
  font-size: 11px;
}
.policy-layout {
  display: grid;
  grid-template-columns: minmax(0,1fr) 270px;
  align-items: start;
  gap: 16px;
  padding: 16px 0 50px;
}
.policy-list {
  padding: 9px 28px;
}
.policy-list article {
  display: grid;
  grid-template-columns: 48px minmax(0,1fr);
  gap: 13px;
  padding: 25px 0;
  border-bottom: 1px solid #e8e1d8;
}
.policy-list article:last-child {
  border-bottom: 0;
}
.policy-list article > b {
  color: #b19560;
  font-family: Georgia, serif;
  font-size: 14px;
  font-weight: 400;
}
.policy-list h2 {
  margin: 0 0 8px;
  color: #433a47;
  font-family: Georgia, "STSong", serif;
  font-size: 15px;
}
.policy-list p {
  margin: 0;
  color: #837a84;
  font-size: 13px;
  line-height: 1.9;
}
.policy-aside {
  display: grid;
  gap: 11px;
}
.policy-aside .community-card {
  padding: 20px;
}
.policy-aside b {
  color: #504651;
  font-size: 12px;
}
.policy-aside ul {
  display: grid;
  gap: 9px;
  padding-left: 17px;
  color: #837983;
  font-size: 13px;
  line-height: 1.6;
}
.policy-aside p {
  color: #8e858e;
  font-size: 13px;
  line-height: 1.8;
}
.policy-aside a {
  color: #715c7b;
  font-size: 12px;
  text-decoration: none;
}
.policy-privacy-link {
  display: block;
  padding: 12px;
  color: #6e6075;
  background: #eee8f1;
  border: 1px solid #ddd1e2;
  text-align: center;
}
.privacy-copy {
  margin-top: 16px;
  margin-bottom: 50px;
  padding: 10px 34px 27px;
}
.privacy-copy article {
  padding: 22px 0;
  border-bottom: 1px solid #e8e1d8;
}
.privacy-copy h2 {
  margin: 0 0 9px;
  color: #443b48;
  font-family: Georgia, "STSong", serif;
  font-size: 15px;
}
.privacy-copy p {
  margin: 0;
  color: #817782;
  font-size: 13px;
  line-height: 1.95;
}
.privacy-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  padding-top: 22px;
}
.privacy-actions a {
  padding: 9px 12px;
  color: #695972;
  background: #f2ede6;
  border: 1px solid #ddd4ca;
  font-size: 12px;
  text-decoration: none;
}
.recovery-card {
  max-width: 760px;
  min-height: 520px;
  margin: 20px auto 50px;
  padding: 43px 48px;
}
.recovery-card h1 {
  margin: 12px 0 9px;
  color: #3e3543;
  font-family: Georgia, "STSong", serif;
  font-size: 27px;
}
.recovery-card > p {
  margin: 0;
  color: #8b828c;
  font-size: 12px;
  line-height: 1.8;
}
.recovery-card ol {
  display: grid;
  gap: 0;
  margin: 31px 0;
  padding: 0;
  list-style: none;
  counter-reset: steps;
  border-top: 1px solid #e5ded5;
}
.recovery-card li {
  display: grid;
  grid-template-columns: 170px minmax(0,1fr);
  gap: 18px;
  padding: 19px 0;
  border-bottom: 1px solid #e5ded5;
}
.recovery-card li b {
  color: #574b5d;
  font-size: 12px;
}
.recovery-card li span {
  color: #8c838d;
  font-size: 12px;
  line-height: 1.7;
}
.recovery-card > div {
  display: flex;
  gap: 8px;
}
.recovery-card a {
  padding: 10px 14px;
  color: #fff;
  background: #342940;
  font-size: 12px;
  text-decoration: none;
}
.recovery-card a + a {
  color: #65566d;
  background: #f1ece5;
  border: 1px solid #ddd4ca;
}
.admin-layout {
  display: grid;
  grid-template-columns: 210px minmax(0,1fr);
  align-items: start;
  gap: 14px;
  padding-bottom: 50px;
}
.admin-rail {
  overflow: hidden;
  background: #1a1422;
  border: 1px solid #35293e;
}
.admin-rail > div {
  display: grid;
  grid-template-columns: 36px 1fr;
  align-items: center;
  gap: 10px;
  padding: 18px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.admin-rail > div > span {
  grid-row: span 2;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: #201825;
  background: #d0b67e;
  transform: rotate(45deg);
  font-family: "STSong", serif;
  font-weight: 700;
}
.admin-rail > div b {
  color: #eee8f0;
  font-size: 12px;
}
.admin-rail > div small {
  color: #796f7f;
  font-size: 11px;
}
.admin-rail nav {
  display: grid;
  align-items: initial;
  gap: 0;
  padding: 8px;
}
.admin-rail nav button {
  display: block;
  width: 100%;
  height: 42px;
  padding: 0 12px;
  color: #948a9b;
  text-align: left;
}
.admin-rail nav button.active {
  color: #f1e7cf;
  background: rgba(255,255,255,.065);
  box-shadow: inset 2px 0 #c6a365;
}
.admin-rail nav button.active::after {
  display: none;
}
.admin-rail > a {
  display: block;
  padding: 14px;
  color: #8d8294;
  border-top: 1px solid rgba(255,255,255,.08);
  font-size: 12px;
  text-align: center;
  text-decoration: none;
}
.admin-main {
  display: grid;
  gap: 12px;
}
.admin-stats {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  background: #fdfbf6;
  border: 1px solid var(--line);
}
.admin-stats article {
  padding: 16px;
  border-right: 1px solid #e4ddd4;
}
.admin-stats article:last-child {
  border-right: 0;
}
.admin-stats span, .admin-stats b, .admin-stats small {
  display: block;
}
.admin-stats span {
  color: #9b929b;
  font-size: 12px;
}
.admin-stats b {
  margin: 6px 0 3px;
  color: #4b4050;
  font-family: Georgia, serif;
  font-size: 20px;
  font-weight: 400;
}
.admin-stats small {
  color: #aa9f9e;
  font-size: 11px;
}
.admin-panel {
  min-height: 480px;
}
.admin-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 23px 25px;
  border-bottom: 1px solid #e3dcd2;
}
.admin-panel-head span {
  color: #9c7c48;
  font-family: Georgia, serif;
  font-size: 12px;
  letter-spacing: .16em;
}
.admin-panel-head h1 {
  margin: 7px 0 4px;
  color: #3f3644;
  font-family: Georgia, "STSong", serif;
  font-size: 21px;
}
.admin-panel-head p {
  margin: 0;
  color: #999099;
  font-size: 12px;
}
.admin-panel-head > button {
  height: 32px;
  padding: 0 12px;
  color: #fff;
  background: #3a2d46;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.invite-highlight {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 18px 25px;
  padding: 15px 17px;
  color: #eee8f0;
  background: #241b2e;
}
.invite-highlight span, .invite-highlight b, .invite-highlight small {
  display: block;
}
.invite-highlight span {
  color: #8f8495;
  font-size: 11px;
}
.invite-highlight b {
  margin: 6px 0 4px;
  color: #e2c890;
  font-family: Georgia, monospace;
  font-size: 17px;
  letter-spacing: .12em;
}
.invite-highlight small {
  color: #716778;
  font-size: 11px;
}
.invite-highlight button {
  height: 30px;
  padding: 0 11px;
  color: #d8c8df;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  cursor: pointer;
  font-size: 12px;
}
.admin-table {
  margin: 0 25px 24px;
  border: 1px solid #e0d8ce;
}
.admin-table > div {
  display: grid;
  grid-template-columns: 1.4fr .7fr .9fr 1fr 55px;
  align-items: center;
  min-height: 44px;
  padding: 0 12px;
  border-bottom: 1px solid #e8e1d8;
  color: #756c77;
  font-size: 12px;
}
.admin-table > div:last-child {
  border-bottom: 0;
}
.admin-table .admin-table-head {
  min-height: 34px;
  color: #a098a0;
  background: #f2eee7;
  font-size: 11px;
}
.admin-table button {
  color: #6f5e77;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.status-未使用 {
  color: #4e8a6d;
}
.status-已使用 {
  color: #9d814d;
}
.status-已停用 {
  color: #a36a77;
}
.report-list, .user-admin-list {
  padding: 6px 25px 23px;
}
.report-list article {
  display: grid;
  grid-template-columns: 60px minmax(0,1fr) 70px 50px;
  align-items: center;
  min-height: 68px;
  border-bottom: 1px solid #e8e1d8;
}
.report-list > article > b {
  color: #a18a5e;
  font-family: Georgia, serif;
  font-size: 12px;
}
.report-list span, .report-list a {
  display: block;
}
.report-list span {
  color: #554b58;
  font-size: 12px;
}
.report-list a {
  margin-top: 4px;
  color: #8a7d8d;
  font-size: 12px;
  text-decoration: none;
}
.report-list small {
  color: #a17958;
  font-size: 11px;
}
.report-list button, .user-admin-list button {
  color: #6c5b74;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.user-admin-list article {
  display: grid;
  grid-template-columns: 35px minmax(0,1fr) 70px 50px;
  align-items: center;
  gap: 10px;
  min-height: 65px;
  border-bottom: 1px solid #e8e1d8;
}
.user-admin-list article > span {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  color: #654f79;
  background: #e9e1f1;
  border-radius: 50%;
}
.user-admin-list b, .user-admin-list small {
  display: block;
}
.user-admin-list b {
  color: #4c424f;
  font-size: 12px;
}
.user-admin-list small {
  margin-top: 4px;
  color: #9c939c;
  font-size: 11px;
}
.user-admin-list em {
  color: #7b9b87;
  font-size: 11px;
  font-style: normal;
}
.admin-access-check {
  display: grid;
  place-items: center;
  min-height: 360px;
  margin-block: 18px 50px;
  color: #756b78;
}
.admin-user-search {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 17px 25px 11px;
}
.admin-user-search input {
  width: min(360px, 55%);
  height: 36px;
  padding: 0 12px;
  color: #4f4553;
  background: #fff;
  border: 1px solid #dcd3c8;
  outline: 0;
}
.admin-user-search input:focus {
  border-color: #9f82af;
  box-shadow: 0 0 0 2px rgba(126,91,145,.1);
}
.admin-user-search button {
  height: 36px;
  padding: 0 13px;
  color: #fff;
  background: #3a2d46;
  border: 0;
  cursor: pointer;
}
.admin-user-search button[type="button"] {
  color: #716475;
  background: #eee8e0;
}
.admin-user-search small {
  margin-left: auto;
  color: #958b96;
}
.real-user-admin-list article {
  grid-template-columns: 42px minmax(180px,1.3fr) minmax(170px,1fr) 130px 110px;
  gap: 13px;
  min-height: 105px;
}
.admin-user-avatar {
  display: grid;
  place-items: center;
  overflow: hidden;
  width: 38px;
  height: 38px;
  color: #654f79;
  background: #e9e1f1;
  border: 1px solid #d7cbe0;
  border-radius: 50%;
  font-family: "STSong", serif;
}
.admin-user-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.admin-user-identity > div {
  display: flex;
  align-items: center;
  gap: 6px;
}
.admin-user-identity b {
  color: #4b414e;
  font-size: 12px;
}
.admin-user-identity em {
  padding: 2px 5px;
  color: #7b6438;
  background: #f1e5c9;
  border: 1px solid #dfcca0;
  border-radius: 2px;
  font-size: 12px;
  font-style: normal;
}
.admin-user-identity em.npc {
  color: #725a80;
  background: #eee5f2;
  border-color: #dbcae3;
}
.admin-user-identity code {
  display: block;
  overflow: hidden;
  margin-top: 5px;
  color: #9b929b;
  font-family: Georgia, monospace;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-user-identity small {
  overflow: hidden;
  max-width: 260px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-user-history {
  display: grid;
  gap: 6px;
  color: #8e848f;
  font-size: 12px;
}
.admin-level-control {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
}
.admin-level-control label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  color: #867b87;
  font-size: 12px;
}
.admin-level-control select {
  height: 30px;
  padding: 0 22px 0 8px;
  color: #55495a;
  background: #fff;
  border: 1px solid #dcd3c8;
}
.admin-level-control button, .admin-role-control button {
  height: 30px;
  color: #fff;
  background: #4a3957;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.admin-level-control button:disabled, .admin-role-control button:disabled {
  color: #a19aa2;
  background: #ece7e1;
  cursor: not-allowed;
}
.admin-role-control {
  display: grid;
  gap: 7px;
}
.admin-role-control > span {
  color: #736775;
  font-size: 12px;
}
.admin-role-control button.danger {
  color: #9b5662;
  background: #f2e3e4;
  border: 1px solid #e1c7ca;
}
.admin-empty {
  padding: 45px 10px;
  color: #9b919b;
  text-align: center;
}
.admin-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  padding: 0 25px 22px;
}
.admin-pagination button {
  height: 31px;
  padding: 0 12px;
  color: #66566e;
  background: #f1ece5;
  border: 1px solid #ddd4ca;
  cursor: pointer;
}
.admin-pagination button:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.admin-pagination span {
  color: #8e848f;
  font-size: 12px;
}
.admin-audit {
  margin: 0 25px 25px;
  border: 1px solid #e0d8ce;
}
.admin-audit > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 13px 15px;
  background: #f2eee7;
}
.admin-audit > div b {
  color: #514654;
  font-size: 12px;
}
.admin-audit > div small {
  color: #9b929b;
  font-size: 12px;
}
.admin-audit > p {
  margin: 0;
  padding: 24px 15px;
  color: #9b929b;
  text-align: center;
}
.admin-audit ol {
  margin: 0;
  padding: 0;
  list-style: none;
}
.admin-audit li {
  display: grid;
  grid-template-columns: 145px 90px 120px minmax(120px,1fr);
  gap: 10px;
  align-items: center;
  min-height: 43px;
  padding: 7px 14px;
  border-top: 1px solid #ebe4dc;
  color: #786e79;
  font-size: 12px;
}
.admin-audit li > span {
  color: #9c929c;
}
.admin-audit li > b {
  color: #584c5c;
}
.admin-audit li > em {
  color: #846b94;
  font-style: normal;
}
.admin-audit li > strong {
  overflow: hidden;
  color: #625765;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-audit li > small {
  grid-column: 4;
  overflow: hidden;
  margin-top: -7px;
  color: #aaa1a8;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.content-admin-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 24px;
}
.content-admin-grid button {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 2px 12px;
  min-height: 105px;
  padding: 18px;
  color: #574b5c;
  background: #f5f1ea;
  border: 1px solid #e0d8ce;
  cursor: pointer;
  text-align: left;
}
.content-admin-grid b {
  grid-row: span 2;
  color: #8065a1;
  font-family: Georgia, serif;
  font-size: 28px;
  font-weight: 400;
}
.content-admin-grid span {
  font-size: 12px;
}
.content-admin-grid small {
  color: #9d949d;
  font-size: 11px;
}
.not-found-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 610px;
  text-align: center;
}
.not-found-card > span {
  color: #9d824f;
  font-family: Georgia, serif;
  font-size: 12px;
  letter-spacing: .18em;
}
.not-found-card > b {
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
  margin: 22px 0;
  color: #d1ba86;
  background: #2a2034;
  border: 1px solid #4a3a58;
  transform: rotate(45deg);
  font-family: Georgia, serif;
  font-size: 32px;
}
.not-found-card h1 {
  margin: 0;
  color: #453c49;
  font-family: Georgia, "STSong", serif;
  font-size: 25px;
}
.not-found-card p {
  margin: 10px 0 24px;
  color: #918791;
  font-size: 12px;
}
.not-found-card > div {
  display: flex;
  gap: 8px;
}
.not-found-card a {
  padding: 10px 14px;
  color: #fff;
  background: #342940;
  font-size: 12px;
  text-decoration: none;
}
.not-found-card a + a {
  color: #68596f;
  background: #f1ece5;
  border: 1px solid #ddd4ca;
}
.archive-thread-card {
  margin-bottom: 13px;
  padding: 26px 29px;
}
.archive-thread-card h1 {
  margin: 12px 0 17px;
  color: #3c3441;
  font-family: Georgia, "STSong", serif;
  font-size: 24px;
}
.archive-thread-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 0;
  border-block: 1px solid #e8e1d8;
}
.archive-thread-meta b, .archive-thread-meta small {
  display: block;
}
.archive-thread-meta b {
  color: #514755;
  font-size: 12px;
}
.archive-thread-meta small {
  margin-top: 4px;
  color: #9e959e;
  font-size: 11px;
}
.archive-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 330px;
  text-align: center;
}
.archive-placeholder > span {
  color: #a58953;
  font-family: Georgia, serif;
  font-size: 12px;
  letter-spacing: .18em;
}
.archive-placeholder > b {
  margin-top: 16px;
  color: #514654;
  font-family: Georgia, "STSong", serif;
  font-size: 18px;
}
.archive-placeholder > p {
  max-width: 560px;
  margin: 10px 0 20px;
  color: #8d848e;
  font-size: 13px;
  line-height: 1.9;
}
.archive-placeholder > div {
  display: flex;
  gap: 8px;
}
.archive-placeholder a {
  padding: 9px 12px;
  color: #fff;
  background: #3a2e46;
  font-size: 12px;
  text-decoration: none;
}
.archive-placeholder a + a {
  color: #685a70;
  background: #f0ebe4;
  border: 1px solid #ddd4ca;
}
.archive-reply {
  margin-bottom: 50px;
}
.locked-thread-card {
  margin-bottom: 50px;
}
.locked-placeholder {
  min-height: 390px;
}
.locked-placeholder::before {
  content: "锁";
  display: grid;
  place-items: center;
  width: 66px;
  height: 66px;
  margin-bottom: 22px;
  color: #7580a4;
  background: #eef1f8;
  border: 1px solid #d6dce9;
  border-radius: 50%;
  font-family: "STSong", serif;
  font-size: 24px;
}
body {
  font-size: 15px;
}
.signal-inner, .breadcrumb, .hero-meta, .board-head p, .side-card p, .footer-inner, .thread-columns {
  font-size: 12px;
}
nav button, nav a, .search-button b, .new-thread, .board-tabs button {
  font-size: 13px;
}
.hero-copy > p, .community-card-head p, .account-section-head p, .auth-heading p, .auth-intro > p {
  font-size: 13px;
}
.board-head h2 {
  font-size: 24px;
}
.board-kicker, .community-card-head > div > span {
  font-size: 12px;
}
.thread-title-line strong {
  font-size: 14px;
}
.tag, .hot, .pin {
  font-size: 12px;
}
.thread-author b, .thread-last b, .thread-count b {
  font-size: 12px;
}
.thread-main small, .thread-author small, .thread-count small, .thread-last small {
  font-size: 12px;
}
.side-title span, .side-card h3, .system-head b {
  font-size: 14px;
}
.side-title small, .system-head small, .chapter-range, .hot-tags span {
  font-size: 12px;
}
.thread-heading h2 {
  font-size: 24px;
}
.thread-heading p, .thread-heading-tags, .thread-title-stats span {
  font-size: 12px;
}
.post-user > strong, .post-user-name {
  font-size: 13px;
}
.user-rank, .post-user dl div, .post-meta, .topic-timestamps {
  font-size: 12px;
}
.post-content, .fanfic-copy {
  font-size: 15px;
}
.fanfic-notes, .post-content blockquote {
  font-size: 13px;
}
.post-content blockquote b {
  font-size: 14px;
}
.post-footer button, .all-replies-heading span, .all-replies-heading p, .top-replies-heading p, .top-reply-body > div span, .top-reply-body > div a, .top-reply-body > button {
  font-size: 12px;
}
.top-reply-body > div b {
  font-size: 13px;
}
.top-reply-body p {
  font-size: 14px;
}
.all-replies-heading h3 {
  font-size: 17px;
}
.reply-composer-head b {
  font-size: 14px;
}
.reply-composer-head small, .reply-composer-head > a {
  font-size: 12px;
}
.reply-composer textarea {
  font-size: 14px;
}
.reply-tools > div button, .reply-tools > span, .reply-primary {
  font-size: 12px;
}
.account-stats small, .activity-list small, .activity-list a, .activity-list time {
  font-size: 12px;
}
.profile-card p, .reader-level > span, .profile-card dl div {
  font-size: 13px;
}
.reader-level small {
  font-size: 12px;
}
.reader-status {
  font-size: 12px;
}
.reader-level > span b {
  font-size: 12px;
}
.profile-card h1 {
  font-size: 18px;
}
.account-nav button, .account-nav > a {
  font-size: 12px;
}
.account-nav button > b, .account-nav > a > b {
  font-size: 12px;
}
.account-logout {
  font-size: 12px;
}
.account-section-head h3, .account-welcome h2 {
  font-size: 19px;
}
.account-welcome p, .reading-progress > div, .reading-progress > small {
  font-size: 12px;
}
.auth-form label > span, .form-pair label > span, .compose-form label > span {
  font-size: 12px;
}
.auth-form input, .auth-form select, .compose-form input, .compose-form select, .compose-form textarea, .settings-section input, .settings-section select, .settings-section textarea {
  font-size: 13px;
}
.notice-list > a > div b {
  font-size: 13px;
}
.notice-list > a > div p, .notice-list time, .notice-tabs button {
  font-size: 12px;
}
.policy-list p, .privacy-copy p, .policy-aside p, .policy-aside ul, .archive-placeholder > p {
  font-size: 13px;
}
.admin-table > div, .admin-table button, .report-list span, .report-list a, .user-admin-list b, .user-admin-list small {
  font-size: 12px;
}
@media (max-width: 820px) {
  .compose-layout, .public-profile-layout, .policy-layout, .admin-layout {
    grid-template-columns: 1fr;
  }
  .compose-aside, .policy-aside, .public-profile-aside {
    grid-template-columns: repeat(2,1fr);
  }
  .admin-rail nav {
    grid-template-columns: repeat(4,1fr);
  }
  .admin-rail > a {
    display: none;
  }
  .public-profile-hero {
    grid-template-columns: 90px minmax(0,1fr);
  }
  .public-profile-hero > button {
    grid-column: 2;
    justify-self: start;
  }
}
@media (max-width: 560px) {
  .community-card-head {
    padding: 20px 17px;
  }
  .community-card-head > b {
    display: none;
  }
  .community-card-head h1 {
    font-size: 21px;
  }
  .compose-layout {
    width: 100%;
    gap: 0;
    padding-bottom: 0;
  }
  .compose-card {
    border-inline: 0;
  }
  .compose-form, .topic-preview {
    padding: 19px 16px 25px;
  }
  .compose-form textarea {
    min-height: 230px;
  }
  .compose-flags {
    display: grid;
  }
  .compose-actions {
    flex-wrap: wrap;
  }
  .compose-actions > a {
    margin-right: auto;
  }
  .compose-actions .auth-submit {
    width: 100%;
    order: 3;
  }
  .compose-aside {
    display: none;
  }
  .quick-thread-card {
    width: 100%;
    margin-block: 15px 0;
    border-inline: 0;
  }
  .quick-thread-head {
    padding: 19px 16px;
  }
  .quick-thread-head > b {
    display: none;
  }
  .quick-thread-head h2 {
    font-size: 20px;
  }
  .quick-compose-form {
    grid-template-columns: 1fr;
  }
  .compose-identity {
    width: 100%;
    margin: 0;
  }
  .quick-compose-form .auth-submit {
    width: 100%;
  }
  .reply-tools {
    grid-template-columns: 1fr auto;
  }
  .reply-tools .reply-primary {
    grid-column: 1 / -1;
  }
  .reply-tools > div button:first-child {
    display: none;
  }
  .post-user-name {
    max-width: 130px;
  }
  .local-draft-restore {
    align-items: stretch;
    flex-direction: column;
  }
  .local-draft-restore > div:last-child {
    justify-content: flex-end;
  }
  .image-upload-previews {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .post-images {
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 5px;
  }
  .post-images.count-1 {
    grid-template-columns: 1fr;
  }
  .post-images.count-2 {
    grid-template-columns: 1fr 1fr;
  }
  .image-lightbox {
    padding: 8px;
  }
  .image-lightbox > section {
    width: 100%;
    height: 96vh;
  }
  .lightbox-prev {
    left: 8px;
  }
  .lightbox-next {
    right: 8px;
  }
  .lightbox-prev, .lightbox-next {
    top: auto;
    bottom: 18px;
    width: 54px;
    height: 46px;
    transform: none;
  }
  .avatar-crop-stage {
    height: min(72vw, 350px);
  }
  .avatar-crop-dialog > header small {
    max-width: 250px;
  }
  .notification-page-card {
    width: 100%;
    margin-bottom: 0;
    border-inline: 0;
  }
  .notice-tabs, .notice-list {
    padding-inline: 15px;
  }
  .notice-list > a {
    grid-template-columns: 34px minmax(0,1fr);
  }
  .notice-list time {
    display: none;
  }
  .public-profile-hero {
    width: 100%;
    grid-template-columns: 65px minmax(0,1fr);
    gap: 9px;
    min-height: 220px;
    padding: 22px 18px;
    border-inline: 0;
  }
  .public-avatar {
    width: 58px;
    height: 58px;
    font-size: 18px;
  }
  .public-profile-copy h1 {
    font-size: 22px;
  }
  .public-profile-copy > div {
    display: grid;
    gap: 5px;
  }
  .public-profile-hero > button {
    grid-column: 1 / -1;
    justify-self: stretch;
  }
  .public-profile-layout {
    width: 100%;
    padding-top: 0;
  }
  .profile-feed {
    border-inline: 0;
  }
  .public-profile-aside {
    display: none;
  }
  .policy-hero {
    width: 100%;
    min-height: 230px;
    padding: 31px 22px;
    border-inline: 0;
  }
  .policy-hero h1 {
    max-width: 280px;
    font-size: 27px;
  }
  .policy-layout {
    width: 100%;
    padding-top: 0;
  }
  .policy-list {
    padding: 5px 17px;
    border-inline: 0;
  }
  .policy-list article {
    grid-template-columns: 36px minmax(0,1fr);
  }
  .policy-aside {
    display: none;
  }
  .privacy-copy {
    width: 100%;
    margin-top: 0;
    margin-bottom: 0;
    padding-inline: 20px;
    border-inline: 0;
  }
  .recovery-card {
    width: 100%;
    min-height: 560px;
    margin: 0;
    padding: 31px 21px;
    border-inline: 0;
  }
  .recovery-card h1 {
    font-size: 23px;
  }
  .recovery-card li {
    grid-template-columns: 1fr;
    gap: 7px;
  }
  .admin-layout {
    width: 100%;
    gap: 0;
    padding-bottom: 0;
  }
  .admin-rail > div {
    display: none;
  }
  .admin-rail nav {
    grid-template-columns: 1fr 1fr;
  }
  .admin-stats {
    grid-template-columns: 1fr 1fr;
  }
  .admin-stats article:nth-child(2) {
    border-right: 0;
  }
  .admin-panel {
    border-inline: 0;
  }
  .admin-panel-head {
    padding: 19px 16px;
  }
  .invite-highlight {
    margin-inline: 15px;
  }
  .invite-highlight b {
    font-size: 13px;
  }
  .admin-table {
    overflow-x: auto;
    margin-inline: 15px;
  }
  .admin-table > div {
    min-width: 600px;
  }
  .report-list, .user-admin-list {
    padding-inline: 15px;
  }
  .report-list article {
    grid-template-columns: 52px minmax(0,1fr) 45px;
  }
  .report-list small {
    display: none;
  }
  .content-admin-grid {
    grid-template-columns: 1fr;
    padding: 15px;
  }
  .admin-user-search {
    flex-wrap: wrap;
    padding-inline: 15px;
  }
  .admin-user-search input {
    width: 100%;
  }
  .admin-user-search small {
    width: 100%;
    margin-left: 0;
  }
  .real-user-admin-list article {
    grid-template-columns: 40px minmax(0,1fr);
    gap: 10px;
    padding: 15px 0;
  }
  .admin-user-history, .admin-level-control, .admin-role-control {
    grid-column: 2;
  }
  .admin-level-control, .admin-role-control {
    grid-template-columns: 1fr 1fr;
    align-items: center;
  }
  .admin-audit {
    overflow-x: auto;
    margin-inline: 15px;
  }
  .admin-audit > div, .admin-audit > p, .admin-audit ol {
    min-width: 650px;
  }
  .archive-thread-card, .archive-reply {
    width: 100%;
    margin-bottom: 0;
    border-inline: 0;
  }
  .archive-thread-card {
    padding: 21px 17px;
  }
  .archive-thread-card h1 {
    font-size: 20px;
    line-height: 1.5;
  }
  .archive-placeholder {
    min-height: 300px;
  }
  .archive-placeholder > div {
    flex-direction: column;
    width: 100%;
  }
  .archive-placeholder a {
    text-align: center;
  }
}
.user-orb img, .account-chip span img {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
}
:root {
  --ink: #272727;
  --muted: #777;
  --paper: #f4f4f2;
  --paper-deep: #ececea;
  --line: #d9d9d6;
  --violet: #3e84a8;
  --violet-soft: #e8f2f7;
  --gold: #b57a2a;
  --gold-soft: #f7efe1;
}
html {
  background: #f4f4f2;
}
body {
  color: #272727;
  background: #f4f4f2;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  font-size: 16px;
  line-height: 1.65;
}
.shell {
  width: min(1120px, calc(100% - 36px));
}
.signal-strip {
  height: 30px;
  color: #777;
  background: #f3f3f1;
  border-bottom: 1px solid #dededb;
  letter-spacing: 0;
}
.signal-copy {
  color: #8c8c8c;
}
.site-header {
  height: 64px;
  color: #222;
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid #d9d9d6;
  box-shadow: none;
}
.header-main {
  grid-template-columns: 210px 1fr auto;
  gap: 16px;
}
.brand {
  text-decoration: none;
}
.brand-mark {
  flex-basis: 34px;
  width: 34px;
  height: 34px;
  color: #fff;
  background: #333;
  border: 0;
  border-radius: 3px;
  transform: none;
}
.brand-mark::after {
  color: #fff;
  transform: none;
  font-family: "STSong", "SimSun", serif;
  font-size: 18px;
}
.brand strong {
  color: #222;
  font-family: "STSong", "SimSun", serif;
  font-size: 19px;
  letter-spacing: .09em;
}
.brand small {
  color: #9a9a9a;
  font-size: 10px;
  letter-spacing: .08em;
}
nav button, nav a {
  color: #666;
  font-size: 14px;
}
nav button:hover, nav button.active, nav a:hover, nav a.active {
  color: #222;
}
nav button.active::after, nav a.active::after {
  height: 2px;
  background: #3e84a8;
}
.search-button {
  color: #666;
  background: #f5f5f3;
  border-color: #dededb;
  border-radius: 2px;
}
.search-button span {
  color: #777;
}
.user-orb, .account-chip span {
  color: #276d91;
  background: #edf5f8;
  border-color: #c8dfe9;
}
.auth-header-link, .auth-header-cta, .notification-chip, .account-chip {
  border-radius: 2px;
}
.hero {
  height: 184px;
  color: #222;
  background: #fff;
  border-bottom: 1px solid #d9d9d6;
}
.hero::before, .hero-grid, .issue-stage {
  display: none;
}
.hero-inner {
  align-items: center;
}
.hero-copy {
  width: 100%;
  padding: 0;
}
.eyebrow {
  color: #777;
  font-size: 13px;
  letter-spacing: .04em;
}
.eyebrow span {
  padding: 3px 7px;
  color: #2f7294;
  background: #edf5f8;
  border-color: #c9e0ea;
}
.eyebrow i {
  background: #d8d8d5;
}
.hero h1 {
  margin: 12px 0 5px;
  color: #222;
  font-family: "STSong", "SimSun", serif;
  font-size: 34px;
  line-height: 1.18;
}
.hero h1 br {
  display: none;
}
.hero h1 em {
  margin-left: 12px;
  color: #555;
  font-family: inherit;
  font-size: .62em;
  letter-spacing: .12em;
}
.hero-copy > p {
  color: #777;
  font-size: 14px;
  letter-spacing: 0;
}
.hero-meta {
  margin-top: 14px;
  color: #888;
  font-size: 13px;
}
.hero-meta b {
  color: #333;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
}
.breadcrumb {
  height: 42px;
  color: #8b8b8b;
  font-size: 13px;
}
.breadcrumb b {
  color: #555;
}
.content-grid {
  grid-template-columns: minmax(0,1fr) 250px;
  gap: 14px;
  padding-bottom: 38px;
}
.board-card, .side-card, .community-card, .profile-card, .account-nav, .account-section, .account-welcome, .account-stats, .quick-thread-card {
  background: #fff;
  border-color: #d9d9d6;
  border-radius: 0;
  box-shadow: none;
}
.board-head {
  min-height: 96px;
  padding: 18px 20px;
}
.board-kicker {
  color: #888;
  font-family: inherit;
  font-size: 11px;
  letter-spacing: .08em;
}
.board-head h2 {
  margin: 3px 0;
  color: #242424;
  font-family: "STSong", "SimSun", serif;
  font-size: 24px;
  letter-spacing: .03em;
}
.board-head p {
  color: #777;
  font-size: 13px;
}
.board-category-nav {
  gap: 5px;
  margin-top: 10px;
}
.board-category-nav button {
  padding: 3px 8px;
  color: #626262;
  background: #f7f7f5;
  border-color: #d9d9d6;
  border-radius: 2px;
  font-size: 13px;
}
.board-category-nav button:hover, .board-category-nav button.active {
  color: #fff;
  background: #3e84a8;
  border-color: #3e84a8;
}
.new-thread {
  height: 34px;
  color: #fff;
  background: #333;
  border-color: #333;
  border-radius: 2px;
  box-shadow: none;
  font-size: 13px;
}
.new-thread:hover {
  background: #111;
}
.board-tabs {
  height: 42px;
  padding-inline: 14px;
  background: #f0f0ee;
  border-color: #d9d9d6;
}
.board-tabs button {
  color: #6f6f6f;
  font-size: 13px;
}
.board-tabs button.active {
  color: #222;
}
.board-tabs button.active::after {
  background: #3e84a8;
}
.thread-columns {
  padding-left: 64px;
  color: #999;
  background: #fafafa;
  border-color: #e3e3e0;
  font-size: 12px;
  letter-spacing: .02em;
}
.thread-row {
  grid-template-columns: 50px minmax(0,1fr) 110px 90px 120px;
  min-height: 72px;
  padding: 8px 16px 8px 12px;
  border-color: #e3e3e0;
}
.thread-row:hover {
  background: #f8fbfc;
  box-shadow: inset 3px 0 #3e84a8;
}
.thread-icon {
  width: 26px;
  height: 26px;
  border-radius: 3px;
  font-family: inherit;
}
.thread-title-line strong {
  color: #222;
  font-size: 15px;
  font-weight: 500;
}
.thread-main small, .thread-author small, .thread-count small, .thread-last small {
  color: #999;
  font-size: 12px;
}
.thread-author b, .thread-last b, .thread-count b {
  color: #555;
  font-family: inherit;
  font-size: 13px;
}
.tag, .pin, .hot {
  border-radius: 2px;
  font-size: 11px;
}
.pagination {
  min-height: 58px;
}
.pagination button {
  border-radius: 2px;
  font-size: 13px;
}
.pagination button.current {
  background: #333;
  border-color: #333;
}
.side-card {
  padding: 16px;
}
.serial-card {
  color: #333;
  background: #fff;
  border-color: #d9d9d6;
}
.serial-card::after {
  color: rgba(0,0,0,.03);
}
.serial-card .side-title small, .serial-card p, .chapter-range {
  color: #888;
}
.chapter-number strong {
  color: #3e84a8;
}
.serial-card h3 {
  color: #333;
}
.progress {
  background: #e5e5e2;
}
.progress i {
  background: #3e84a8;
}
.notice-card {
  background: #fbfaf6;
  border-color: #ded9ca;
}
.hot-tags span {
  border-radius: 2px;
}
.quick-thread-card {
  margin-top: 18px;
  margin-bottom: 38px;
}
.quick-thread-head {
  padding: 19px 22px 16px;
  background: #eee;
  border-color: #d9d9d6;
}
.quick-thread-head > div > span {
  color: #777;
  font-family: inherit;
  font-size: 11px;
  letter-spacing: .08em;
}
.quick-thread-head h2 {
  margin: 4px 0 2px;
  color: #222;
  font-family: "STSong", "SimSun", serif;
  font-size: 21px;
}
.quick-thread-head p {
  color: #777;
  font-size: 13px;
}
.quick-thread-head > b {
  color: #2c6f91;
  background: #edf5f8;
  border-color: #c8dfe9;
  border-radius: 2px;
}
footer {
  color: #888;
  background: #f0f0ee;
  border-color: #d5d5d2;
}
.footer-inner {
  min-height: 74px;
}
.footer-inner div b {
  color: #333;
}
.thread-page {
  background: #f4f4f2;
}
.thread-title-card {
  min-height: 88px;
  padding: 18px 20px;
  background: #fff;
  border: 1px solid #d9d9d6;
  border-top: 3px solid #333;
}
.thread-heading h2 {
  margin-top: 8px;
  color: #202020;
  font-family: "STSong", "SimSun", serif;
  font-size: 25px;
}
.thread-title-stats {
  color: #777;
}
.thread-title-stats button {
  border-radius: 2px;
}
.single-thread-layout {
  width: min(1120px, calc(100% - 36px));
}
.forum-post {
  grid-template-columns: 150px minmax(0,1fr);
  background: #fff;
  border: 1px solid #d9d9d6;
  border-top: 0;
  box-shadow: none;
}
.owner-post {
  border-top: 1px solid #d9d9d6;
}
.post-user {
  padding: 18px 14px;
  background: #f5f5f3;
  border-color: #dededb;
}
.profile-avatar {
  width: 54px;
  height: 54px;
  margin-bottom: 8px;
  border: 1px solid #d4d4d1;
  box-shadow: none;
}
.post-user > strong {
  color: #333;
  font-size: 14px;
}
.user-rank {
  color: #777;
  background: transparent;
  border: 0;
  font-size: 12px;
}
.post-user dl {
  margin-top: 15px;
  padding-top: 10px;
  border-color: #ddd;
}
.post-body {
  min-height: 230px;
  padding: 0 20px;
}
.post-meta {
  min-height: 42px;
  color: #999;
  border-color: #e2e2df;
  font-size: 12px;
}
.post-meta a {
  color: #3e84a8;
}
.post-meta b {
  color: #9b6b26;
  background: #f8efe1;
  border-color: #ead4b2;
}
.post-content {
  padding: 22px 3px 30px;
  color: #202020;
  font-size: 16px;
  line-height: 1.95;
}
.post-content p {
  margin: 0 0 13px;
}
.post-content blockquote {
  color: #666;
  background: #f0f0ee;
  border-left-color: #6eabd0;
}
.topic-timestamps {
  color: #999;
  border-color: #e6e6e3;
}
.post-footer {
  min-height: 42px;
  border-color: #e2e2df;
}
.post-footer button {
  color: #666;
  font-size: 13px;
}
.post-footer button.liked, .top-reply-body button.liked {
  color: #c45164;
}
.all-replies-heading, .top-replies-heading {
  min-height: 46px;
  margin-top: 14px;
  padding: 0 18px;
  color: #333;
  background: #e9e9e7;
  border: 1px solid #d5d5d2;
}
.all-replies-heading h3, .top-replies-heading h3 {
  font-family: inherit;
  font-size: 16px;
}
.all-replies-heading span, .top-replies-heading span {
  color: #3e84a8;
}
.top-replies-panel {
  margin-top: 14px;
  background: #fff;
  border: 1px solid #d9d9d6;
}
.top-replies-heading {
  margin: 0;
  border: 0;
  border-bottom: 1px solid #d5d5d2;
}
.top-replies-panel > .top-reply {
  display: grid;
  grid-template-columns: 42px minmax(0,1fr);
  gap: 12px;
  padding: 15px 18px;
  border-bottom: 1px solid #e5e5e2;
}
.top-replies-panel > .top-reply:last-child {
  border-bottom: 0;
}
.profile-avatar.mini {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  margin: 0;
  overflow: hidden;
  border-radius: 3px;
  text-decoration: none;
}
.profile-avatar.mini img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.top-reply-body {
  min-width: 0;
}
.top-reply-body > div {
  display: flex;
  gap: 8px;
  color: #333;
}
.top-reply-body > div a {
  color: #3e84a8;
  text-decoration: none;
}
.top-reply-body p {
  margin: 6px 0;
  color: #222;
  font-size: 15px;
  line-height: 1.75;
}
.top-reply-body > button {
  float: right;
  padding: 2px 0;
  color: #666;
  background: transparent;
  border: 0;
  cursor: pointer;
}
.thread-reward-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 6px 0 12px;
  padding: 12px 14px;
  background: #faf7ef;
  border: 1px solid #e3dac7;
}
.thread-reward-bar > div:first-child {
  display: grid;
  grid-template-columns: auto auto;
  align-items: baseline;
  column-gap: 7px;
}
.thread-reward-bar b {
  color: #a56d22;
  font-size: 20px;
}
.thread-reward-bar span {
  color: #5f584d;
  font-size: 13px;
}
.thread-reward-bar small {
  grid-column: 1 / -1;
  color: #999084;
  font-size: 12px;
}
.thread-reward-bar > div:last-child {
  display: flex;
  gap: 5px;
}
.thread-reward-bar button {
  min-width: 42px;
  height: 30px;
  color: #80571e;
  background: #fff;
  border: 1px solid #d9c39e;
  border-radius: 2px;
  cursor: pointer;
}
.thread-reward-bar button:disabled {
  color: #aaa;
  background: #f1efea;
  border-color: #ddd;
  cursor: not-allowed;
}
.thread-pagination {
  justify-content: center;
  gap: 9px;
  min-height: 54px;
  margin: 0;
  background: #fff;
  border: 1px solid #d9d9d6;
  border-top: 0;
}
.thread-pagination button {
  min-width: 58px;
  height: 36px;
  padding: 0 12px;
  color: #555;
  background: #f5f5f3;
  border: 1px solid #d8d8d5;
  cursor: pointer;
}
.thread-pagination span {
  color: #777;
  font-size: 13px;
}
.reply-composer {
  background: #fff;
  border-color: #d9d9d6;
}
.reply-composer-head {
  background: #e9e9e7;
  border-color: #d5d5d2;
}
.reply-composer textarea {
  color: #222;
  background: #fff;
  border-color: #ccc;
  font-size: 15px;
}
.reply-primary, .auth-submit {
  background: #333;
  border-color: #333;
  border-radius: 2px;
  box-shadow: none;
}
.reply-primary:hover, .auth-submit:hover {
  background: #111;
}
.account-page {
  background: #f4f4f2;
}
.community-card-head {
  background: #eee;
}
.community-card-head > div > span, .recovery-card > span {
  color: #777;
  font-family: inherit;
  letter-spacing: .08em;
}
.community-card-head h1 {
  color: #222;
  font-family: "STSong", "SimSun", serif;
}
.auth-layout {
  background: #fff;
  border: 1px solid #d9d9d6;
}
.auth-intro {
  color: #222;
  background: #f0f0ee;
}
.auth-intro::before {
  display: none;
}
.auth-intro h1 {
  color: #222;
}
.auth-intro > p, .auth-intro-stats, .register-benefits li {
  color: #666;
}
.auth-kicker {
  color: #3e84a8;
}
.auth-card {
  background: #fff;
}
.auth-form input:not([type="checkbox"]), .settings-section input, .settings-section textarea, .settings-section select, .compose-form input, .compose-form select, .compose-form textarea {
  color: #222;
  background: #fff;
  border-color: #ccc;
  border-radius: 2px;
  font-size: 14px;
}
.auth-switch a.active {
  color: #222;
  border-color: #333;
}
.account-layout {
  grid-template-columns: 230px minmax(0,1fr);
}
.profile-card {
  padding-top: 20px;
}
.profile-card h1 {
  color: #222;
}
.account-nav button.active {
  color: #245f7d;
  background: #edf5f8;
  box-shadow: inset 3px 0 #3e84a8;
}
.account-welcome {
  color: #222;
  background: #fff;
  border-top: 3px solid #333;
}
.account-welcome span {
  color: #777;
}
.account-welcome h2 {
  color: #222;
}
.account-welcome p {
  color: #777;
}
.account-welcome > a {
  color: #fff;
  background: #333;
  border-color: #333;
}
.account-section-head h3 {
  color: #222;
  font-family: inherit;
  font-size: 18px;
}
.daily-checkin {
  height: 34px;
  padding: 0 12px;
  color: #fff !important;
  background: #3e84a8 !important;
  border-radius: 2px;
}
.daily-checkin:disabled {
  color: #888 !important;
  background: #e9e9e7 !important;
}
.growth-section {
  display: grid;
  gap: 16px;
}
.growth-summary {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  border: 1px solid #ddd;
}
.growth-summary article {
  min-height: 104px;
  padding: 16px;
  border-right: 1px solid #ddd;
}
.growth-summary article:last-child {
  border-right: 0;
}
.growth-summary span, .growth-summary small, .growth-summary b {
  display: block;
}
.growth-summary span {
  color: #888;
  font-size: 12px;
}
.growth-summary b {
  margin: 7px 0 3px;
  color: #222;
  font-size: 23px;
}
.growth-summary small {
  color: #888;
  font-size: 12px;
}
.activation-zone {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 12px;
}
.activation-code-card, .activation-proof-card, .reader-invites, .experience-rules {
  padding: 18px;
  background: #fafafa;
  border: 1px solid #ddd;
}
.activation-zone span, .reader-invites > div > span {
  color: #3e84a8;
  font-size: 12px;
}
.activation-zone h4, .reader-invites h4, .experience-rules h4 {
  margin: 4px 0 9px;
  color: #222;
  font-size: 17px;
}
.activation-code-card form {
  display: flex;
  gap: 6px;
}
.activation-code-card input {
  min-width: 0;
  flex: 1;
  height: 38px;
  padding: 0 10px;
  border: 1px solid #ccc;
}
.activation-code-card button, .submit-proof, .reader-invites > button {
  height: 38px;
  padding: 0 12px;
  color: #fff;
  background: #333;
  border: 0;
  cursor: pointer;
}
.activation-code-card small, .activation-proof-card p, .reader-invites p, .experience-rules li {
  color: #666;
  font-size: 13px;
  line-height: 1.8;
}
.activation-proof-card p {
  padding: 11px 12px;
  background: #fff8e9;
  border-left: 3px solid #d2a04f;
}
.activation-proof-card .image-uploader {
  margin-top: 12px;
}
.submit-proof {
  margin-top: 10px;
}
.submit-proof:disabled, .reader-invites > button:disabled {
  color: #999;
  background: #ddd;
}
.activation-result {
  display: grid;
  gap: 5px;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid #d6d6d3;
}
.activation-result.pending {
  background: #f7f4e8;
}
.activation-result.approved {
  background: #edf7f0;
}
.activation-result.rejected {
  background: #fbefef;
}
.activation-result code, .reader-invite-list code {
  color: #235f7e;
  font-family: ui-monospace, Consolas, monospace;
  font-size: 14px;
}
.reader-invites {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 12px;
  align-items: start;
}
.reader-invite-list {
  grid-column: 1 / -1;
  display: grid;
  gap: 6px;
}
.reader-invite-list article {
  display: grid;
  grid-template-columns: minmax(0,1fr) 70px 55px;
  align-items: center;
  gap: 8px;
  padding: 9px 11px;
  background: #fff;
  border: 1px solid #ddd;
}
.reader-invite-list span {
  color: #777;
  font-size: 12px;
}
.reader-invite-list button {
  color: #3e84a8;
  background: transparent;
  border: 0;
  cursor: pointer;
}
.experience-rules ul {
  margin: 0;
  padding-left: 21px;
}
.activation-admin-list {
  padding: 12px 22px 24px;
}
.activation-admin-list article {
  display: grid;
  grid-template-columns: 110px minmax(0,1fr) 70px 180px;
  gap: 14px;
  align-items: center;
  min-height: 126px;
  padding: 13px 0;
  border-bottom: 1px solid #ddd;
}
.activation-proof {
  display: block;
  width: 104px;
  height: 96px;
  overflow: hidden;
  border: 1px solid #ccc;
}
.activation-proof img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #f4f4f2;
}
.activation-admin-list article > div:nth-child(2) {
  display: grid;
  gap: 3px;
}
.activation-admin-list small, .activation-admin-list span, .activation-admin-list p {
  margin: 0;
  color: #777;
  font-size: 12px;
}
.activation-status {
  color: #777;
  font-size: 12px;
  font-style: normal;
}
.status-approved {
  color: #43825a;
}
.status-rejected {
  color: #a04f59;
}
.status-pending {
  color: #9b7028;
}
.activation-actions {
  display: flex;
  gap: 6px;
}
.activation-actions button {
  height: 31px;
  padding: 0 9px;
  color: #fff;
  background: #3e84a8;
  border: 0;
  cursor: pointer;
}
.activation-actions button.danger {
  color: #9b4d58;
  background: #f3e6e8;
  border: 1px solid #dec3c7;
}
@media (max-width: 820px) {
  .shell, .single-thread-layout {
    width: min(100% - 24px, 720px);
  }
  .signal-copy {
    display: none;
  }
  .header-main {
    grid-template-columns: auto 1fr auto;
  }
  .header-main > nav {
    justify-content: flex-start;
    overflow-x: auto;
  }
  .content-grid {
    grid-template-columns: 1fr;
  }
  .sidebar {
    grid-template-columns: repeat(2,1fr);
  }
  .account-layout {
    grid-template-columns: 1fr;
  }
  .account-nav {
    grid-template-columns: repeat(3,1fr);
  }
  .activation-zone {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 680px) {
  body {
    font-size: 16px;
    background: #fff;
  }
  .shell, .single-thread-layout {
    width: 100%;
  }
  .signal-strip {
    display: none;
  }
  .site-header {
    height: 54px;
  }
  .header-main {
    width: 100%;
    grid-template-columns: auto minmax(0,1fr) auto;
    padding: 0 12px;
  }
  .brand-mark {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
  }
  .brand strong {
    font-size: 17px;
  }
  .header-main > nav {
    display: flex;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .header-main > nav::-webkit-scrollbar {
    display: none;
  }
  .search-button {
    display: none;
  }
  .auth-header-link, .auth-header-cta {
    height: 30px;
    padding-inline: 8px;
  }
  .hero {
    height: 142px;
    padding: 0 18px;
  }
  .hero h1 {
    margin-top: 8px;
    font-size: 25px;
  }
  .hero h1 em {
    display: block;
    margin: 4px 0 0;
    font-size: 16px;
    letter-spacing: .08em;
  }
  .hero-copy > p {
    font-size: 13px;
  }
  .hero-meta {
    gap: 12px;
    margin-top: 8px;
  }
  .hero-meta span:last-child {
    display: none;
  }
  .breadcrumb {
    height: 38px;
    padding: 0 14px;
    background: #f5f5f3;
    border-bottom: 1px solid #ddd;
  }
  .content-grid {
    padding-bottom: 0;
  }
  .board-card {
    border-inline: 0;
  }
  .board-head {
    display: block;
    min-height: 0;
    padding: 15px 14px 13px;
  }
  .board-head h2 {
    font-size: 21px;
  }
  .board-head p, .board-kicker {
    display: none;
  }
  .board-category-nav {
    margin-top: 9px;
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 2px;
  }
  .board-category-nav button {
    flex: none;
  }
  .new-thread {
    margin-top: 12px;
  }
  .board-tabs {
    height: 40px;
    overflow-x: auto;
    padding-inline: 7px;
  }
  .board-tabs button {
    flex: none;
  }
  .view-mode {
    display: none;
  }
  .thread-row {
    grid-template-columns: 44px minmax(0,1fr) 66px;
    min-height: 82px;
    padding: 9px 10px;
  }
  .thread-title-line {
    flex-wrap: wrap;
  }
  .thread-title-line strong {
    flex-basis: 100%;
    font-size: 15px;
    line-height: 1.45;
    white-space: normal;
  }
  .thread-main small {
    max-width: 240px;
  }
  .thread-last b {
    font-size: 12px;
  }
  .sidebar {
    display: none;
  }
  .pagination {
    padding-inline: 12px;
  }
  .quick-thread-card {
    margin: 12px 0 0;
    border-inline: 0;
  }
  .quick-thread-head {
    padding: 14px;
  }
  .quick-thread-head h2 {
    font-size: 19px;
  }
  .thread-title-card {
    min-height: 0;
    padding: 15px 14px;
    border-inline: 0;
    border-top-width: 2px;
  }
  .thread-heading h2 {
    font-size: 21px;
    line-height: 1.45;
  }
  .thread-title-stats {
    margin-top: 10px;
  }
  .forum-post {
    grid-template-columns: 1fr;
    border-inline: 0;
  }
  .post-user {
    flex-direction: row;
    align-items: center;
    gap: 9px;
    padding: 10px 14px;
    text-align: left;
  }
  .profile-avatar {
    width: 40px;
    height: 40px;
    margin: 0;
    border-radius: 3px;
  }
  .post-user > strong {
    max-width: 150px;
    font-size: 14px;
  }
  .post-user dl {
    display: none;
  }
  .user-rank {
    margin-left: auto;
  }
  .post-body {
    min-height: 190px;
    padding: 0 14px;
  }
  .post-meta {
    min-height: 38px;
  }
  .post-content {
    padding: 18px 0 24px;
    font-size: 19px;
    line-height: 1.85;
  }
  .post-content blockquote {
    font-size: 16px;
    line-height: 1.75;
  }
  .post-content blockquote b {
    font-size: 15px;
  }
  .topic-timestamps {
    display: grid;
    gap: 2px;
    padding-block: 9px;
  }
  .thread-reward-bar {
    align-items: flex-start;
    flex-direction: column;
  }
  .all-replies-heading, .top-replies-heading {
    margin-top: 10px;
    padding: 0 14px;
  }
  .top-replies-panel {
    margin-top: 10px;
    border-inline: 0;
  }
  .top-replies-panel > .top-reply {
    grid-template-columns: 44px minmax(0,1fr) auto;
    padding: 13px 14px;
  }
  .top-reply-body p {
    font-size: 17px;
  }
  .thread-pagination {
    border-inline: 0;
  }
  .reply-composer {
    margin-top: 10px;
    border-inline: 0;
  }
  .reply-composer form {
    padding: 12px;
  }
  .reply-composer textarea {
    min-height: 180px;
    font-size: 17px;
  }
  .account-breadcrumb {
    padding-inline: 14px;
  }
  .auth-layout {
    border-inline: 0;
  }
  .auth-intro {
    min-height: 210px;
    padding: 25px 20px;
  }
  .auth-intro h1 {
    font-size: 28px;
  }
  .account-layout {
    padding-bottom: 0;
  }
  .profile-card, .account-nav, .account-section, .account-welcome, .account-stats {
    border-inline: 0;
  }
  .account-nav {
    grid-template-columns: 1fr 1fr;
  }
  .growth-summary {
    grid-template-columns: 1fr;
  }
  .growth-summary article {
    min-height: 82px;
    border-right: 0;
    border-bottom: 1px solid #ddd;
  }
  .growth-summary article:last-child {
    border-bottom: 0;
  }
  .activation-code-card form {
    flex-direction: column;
  }
  .activation-code-card button {
    width: 100%;
  }
  .reader-invites {
    grid-template-columns: 1fr;
  }
  .reader-invites > button, .reader-invite-list {
    grid-column: 1;
  }
  .reader-invite-list article {
    grid-template-columns: minmax(0,1fr) auto;
  }
  .reader-invite-list button {
    grid-column: 1 / -1;
    justify-self: start;
  }
  .activation-admin-list {
    padding-inline: 14px;
  }
  .activation-admin-list article {
    grid-template-columns: 82px minmax(0,1fr);
  }
  .activation-proof {
    width: 78px;
    height: 78px;
  }
  .activation-status, .activation-actions {
    grid-column: 2;
  }
  .admin-rail nav {
    grid-template-columns: repeat(3,1fr);
  }
}
:root {
  --ink: #25335f;
  --muted: #7882a3;
  --paper: #f5f7ff;
  --paper-deep: #edf1fb;
  --line: #dce3f4;
  --violet: #596fce;
  --violet-soft: #eef1ff;
  --gold: #c99846;
  --gold-soft: #fff6e4;
  --reader-blue: #586fd0;
  --reader-blue-deep: #3f55b2;
  --reader-pink: #d987a6;
}
html {
  background: #f4f7ff;
}
body {
  color: var(--ink);
  background: radial-gradient(circle at 8% 9%, rgba(178,204,255,.28), transparent 24rem),
    radial-gradient(circle at 92% 27%, rgba(209,195,255,.22), transparent 25rem),
    #f5f7ff;
  font-size: 16px;
}
a {
  color: inherit;
}
.shell {
  width: min(1180px, calc(100% - 44px));
}
.signal-strip {
  height: 30px;
  color: #6e789a;
  background: rgba(238,243,255,.9);
  border-color: #dce4f7;
}
.signal-copy {
  color: #64719a;
}
.live-dot {
  box-shadow: 0 0 0 4px rgba(80,210,174,.11);
}
.site-header {
  height: 74px;
  color: var(--ink);
  background: linear-gradient(90deg, rgba(255,255,255,.92), rgba(255,255,255,.74)),
    url('/forum-assets/sky-ribbon.png') center 48% / cover no-repeat;
  border-color: rgba(190,203,235,.72);
  box-shadow: 0 4px 20px rgba(77,95,153,.08);
}
.header-main {
  grid-template-columns: 260px minmax(0,1fr) auto;
  gap: 18px;
}
.brand {
  position: relative;
  min-width: 0;
  gap: 10px;
}
.brand-mark {
  flex-basis: 40px;
  width: 40px;
  height: 40px;
  color: transparent;
  background: linear-gradient(145deg, #687fe0, #455dbd);
  border: 1px solid rgba(57,76,164,.3);
  border-radius: 9px;
  box-shadow: 0 5px 13px rgba(72,91,180,.2);
  transform: none;
}
.brand-mark::after {
  color: #fff;
  font-size: 20px;
  transform: none;
}
.brand strong {
  color: #17264f;
  font-size: 22px;
  letter-spacing: .08em;
}
.brand small {
  color: #6c789e;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .07em;
}
.brand-mascot {
  width: 66px;
  height: 66px;
  margin-left: -5px;
  align-self: flex-end;
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(0 5px 8px rgba(70,87,145,.12));
  pointer-events: none;
}
.header-main nav {
  align-self: stretch;
}
.header-main nav a, .header-main nav button {
  color: #3d4f83;
  font-size: 15px;
  font-weight: 650;
}
.header-main nav a:hover, .header-main nav button:hover, .header-main nav a.active, .header-main nav button.active {
  color: #334ba7;
}
.header-main nav a.active::after, .header-main nav button.active::after {
  height: 3px;
  background: #5870cd;
  border-radius: 3px 3px 0 0;
}
.search-button, .auth-header-link, .auth-header-cta, .notification-chip, .account-chip {
  color: #50608b;
  background: rgba(255,255,255,.72);
  border-color: #dce3f3;
  border-radius: 9px;
  box-shadow: 0 4px 14px rgba(73,90,148,.06);
}
.auth-header-link.active {
  color: #4259b2;
  background: #eef2ff;
  border-color: #cbd6f3;
}
.search-button kbd {
  background: #f0f3fb;
  border-color: #e0e5f2;
}
.user-orb, .account-chip span {
  color: #465bb9;
  background: #edf1ff;
  border-color: #cdd8f4;
  box-shadow: 0 4px 13px rgba(75,92,169,.14);
}
.hero {
  position: relative;
  width: min(1240px, calc(100% - 36px));
  height: 202px;
  margin: 14px auto 0;
  overflow: hidden;
  color: var(--ink);
  background: linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.93) 57%, rgba(245,248,255,.7) 100%),
    url('/forum-assets/sky-ribbon.png') center / cover no-repeat;
  border: 1px solid #dce4f5;
  border-radius: 17px;
  box-shadow: 0 10px 30px rgba(82,99,157,.1);
}
.hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 70px;
  background: linear-gradient(180deg, transparent, rgba(230,237,255,.36));
  pointer-events: none;
}
.hero-inner {
  z-index: 1;
  width: min(1150px, calc(100% - 56px));
}
.hero-copy {
  position: relative;
  z-index: 2;
  width: 62%;
}
.eyebrow {
  color: #66739b;
  font-size: 13px;
}
.eyebrow span {
  color: #5267be;
  background: #f0f3ff;
  border-color: #d8e0f7;
  border-radius: 5px;
}
.eyebrow i {
  background: #cfd7ed;
}
.hero h1 {
  position: relative;
  margin: 14px 0 8px;
  color: #1f3465;
  font-family: "STSong", "SimSun", serif;
  font-size: clamp(34px, 3.6vw, 46px);
  font-weight: 800;
  letter-spacing: .04em;
  line-height: 1.14;
}
.hero h1 .hero-title-main {
  position: relative;
  display: inline-block;
}
.hero h1 .hero-title-main::after {
  content: "";
  position: absolute;
  left: 2px;
  bottom: -5px;
  width: 54px;
  height: 3px;
  border-radius: 3px;
  background: linear-gradient(90deg, #c99846, rgba(201,152,70,.08));
}
.hero h1 em {
  position: relative;
  display: inline-block;
  margin-top: 10px;
  padding: 4px 18px 4px 22px;
  color: #b8862f;
  background: linear-gradient(90deg, rgba(201,152,70,.14), rgba(201,152,70,.03));
  border: 1px solid rgba(201,152,70,.3);
  border-radius: 999px;
  font-size: .38em;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .32em;
}
.hero-copy > p {
  color: #7883a3;
  font-size: 14px;
}
.hero-meta {
  gap: 28px;
  color: #65739d;
  font-size: 13px;
}
.hero-meta b {
  color: #314b9b;
  font-size: 16px;
}
.hero-mascots {
  position: absolute;
  top: 0;
  right: 3%;
  z-index: 2;
  width: 42%;
  height: 100%;
  pointer-events: none;
}
.hero-reader {
  position: absolute;
  right: 18%;
  bottom: -25px;
  width: 235px;
  height: 235px;
  object-fit: contain;
  filter: drop-shadow(0 12px 14px rgba(77,91,155,.13));
}
.hero-puff {
  position: absolute;
  right: 1%;
  top: 42px;
  width: 86px;
  height: 86px;
  object-fit: contain;
  filter: drop-shadow(0 8px 10px rgba(89,103,162,.13));
}
.breadcrumb {
  height: 42px;
  color: #8490ad;
}
.breadcrumb b {
  color: #52618e;
}
.content-grid {
  grid-template-columns: minmax(0,1fr) 270px;
  gap: 16px;
}
.board-card, .side-card, .community-card, .profile-card, .account-nav, .account-section, .account-welcome, .account-stats, .quick-thread-card,
.auth-layout, .compose-card, .notification-page-card, .public-profile-hero, .profile-feed, .policy-hero, .policy-list, .privacy-copy, .recovery-card, .admin-panel, .admin-rail {
  background: rgba(255,255,255,.94);
  border-color: #dbe3f3;
  border-radius: 14px;
  box-shadow: 0 7px 24px rgba(76,94,153,.075);
}
.board-card {
  overflow: hidden;
}
.board-head {
  min-height: 108px;
  padding: 20px 22px;
}
.board-kicker {
  color: #8d98b5;
  letter-spacing: .12em;
}
.board-head h2 {
  color: #314a93;
  font-size: 27px;
}
.board-head p {
  color: #727e9e;
}
.board-category-nav button {
  color: #5f6e98;
  background: #f4f6fd;
  border-color: #dce3f2;
  border-radius: 5px;
}
.board-category-nav button:hover, .board-category-nav button.active {
  color: #fff;
  background: #5a70cc;
  border-color: #5a70cc;
}
.new-thread, .reply-primary, .auth-submit {
  color: #fff;
  background: linear-gradient(135deg, #6178d7, #475db9);
  border-color: #465bb4;
  border-radius: 7px;
  box-shadow: 0 6px 13px rgba(70,90,182,.2);
}
.new-thread:hover, .reply-primary:hover, .auth-submit:hover {
  background: linear-gradient(135deg, #526bcf, #3c50a8);
}
.board-tabs {
  background: #f3f5fb;
  border-color: #dce3f1;
}
.board-tabs button {
  color: #68749a;
}
.board-tabs button.active {
  color: #4058af;
}
.board-tabs button.active::after {
  height: 3px;
  background: #6279d6;
  border-radius: 3px;
}
.thread-columns {
  color: #929bb3;
  background: #fafbff;
  border-color: #e5e9f4;
}
.thread-row {
  border-color: #e8ebf4;
}
.thread-row:hover {
  background: #f7f9ff;
  box-shadow: inset 3px 0 #7184d6;
}
.thread-row.is-locked, .thread-card.is-locked {
  cursor: default;
  background: linear-gradient(90deg, rgba(244,246,252,.72), rgba(255,255,255,.92));
}
.thread-row.is-locked:hover, .thread-card.is-locked:hover {
  background: linear-gradient(90deg, rgba(244,246,252,.72), rgba(255,255,255,.92));
  box-shadow: none;
}
.thread-title-line strong {
  color: #26365f;
  font-weight: 650;
}
.thread-author b, .thread-last b, .thread-count b {
  color: #536184;
}
.thread-main small, .thread-author small, .thread-count small, .thread-last small {
  color: #929ab1;
}
.thread-icon {
  border-radius: 6px;
}
.tag, .pin, .hot {
  border-radius: 4px;
}
.access-lock {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  height: 20px;
  padding: 0 7px;
  color: #727b98;
  background: #edf0f7;
  border: 1px solid #d4d9e7;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}
.npc-inline-editor {
  margin: 14px 0 18px;
  padding: 18px;
  border: 1px solid #cfd8f1;
  border-radius: 10px;
  background: linear-gradient(145deg, #f7f9ff, #fffdf9);
  box-shadow: inset 3px 0 0 #7488d8;
}
.npc-inline-editor-title {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 14px;
}
.npc-inline-editor-title b {
  color: #344471;
  font-size: 16px;
}
.npc-inline-editor-title small {
  color: #7e88a4;
  font-size: 12px;
}
.npc-inline-editor-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.npc-inline-editor label {
  display: grid;
  gap: 6px;
  color: #68738f;
  font-size: 12px;
}
.npc-inline-editor input, .npc-inline-editor select, .npc-inline-editor textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #d7dceb;
  border-radius: 7px;
  background: #fff;
  color: #293351;
  font: inherit;
  font-size: 14px;
  outline: none;
}
.npc-inline-editor input, .npc-inline-editor select {
  min-height: 39px;
  padding: 8px 10px;
}
.npc-inline-editor label.compose-flags {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 6px 10px;
  cursor: pointer;
}
.npc-inline-editor .compose-flags input[type="checkbox"] {
  width: 16px;
  height: 16px;
  min-width: 16px;
  min-height: 16px;
  padding: 0;
  margin: 0;
  flex: 0 0 16px;
  accent-color: var(--violet);
}
.npc-inline-editor textarea {
  min-height: 180px;
  padding: 12px;
  line-height: 1.75;
  resize: vertical;
}
.npc-inline-editor input:focus, .npc-inline-editor select:focus, .npc-inline-editor textarea:focus {
  border-color: #7488d8;
  box-shadow: 0 0 0 3px rgba(116,136,216,.11);
}
.npc-inline-editor-copy {
  margin-top: 11px;
}
.npc-inline-editor-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  margin-top: 13px;
}
.npc-inline-editor-actions button, .npc-inline-editor-actions a {
  min-height: 38px;
  padding: 8px 16px;
  border: 1px solid #d5dbea;
  border-radius: 7px;
  background: #fff;
  color: #586480;
  text-decoration: none;
  cursor: pointer;
}
.npc-inline-editor-actions .reply-primary {
  border-color: #5369c5;
  background: #5369c5;
  color: #fff;
}
.npc-unlock-thread-form {
  margin: 24px 0 4px;
}
.post-more-menu button:not(.danger) {
  color: #465781;
}
@media (max-width: 760px) {
  .npc-inline-editor {
    margin: 10px 0 14px;
    padding: 14px;
  }
  .npc-inline-editor-title {
    display: grid;
    gap: 4px;
  }
  .npc-inline-editor-fields {
    grid-template-columns: 1fr;
  }
  .npc-inline-editor textarea {
    min-height: 150px;
  }
}
.pagination button {
  border-radius: 6px;
}
.pagination button.current {
  background: #5369c5;
  border-color: #5369c5;
  box-shadow: 0 4px 10px rgba(70,88,177,.16);
}
.side-card {
  padding: 17px;
}
.serial-card {
  color: var(--ink);
  background: rgba(255,255,255,.96);
  border-color: #dce3f2;
}
.serial-card h3, .side-card h3 {
  color: #33477f;
}
.chapter-number strong {
  color: #5066c2;
}
.progress {
  background: #e4e8f5;
}
.progress i {
  background: linear-gradient(90deg, #526acb, #8998df);
}
.notice-card {
  background: #fffdf8;
  border-color: #ede2c9;
}
.quick-thread-head {
  background: linear-gradient(90deg, #f1f4ff, #f8f9ff);
  border-color: #dce3f3;
  border-radius: 14px 14px 0 0;
}
.quick-thread-head h2 {
  color: #30477f;
}
footer {
  color: #7d87a3;
  background: #edf1fa;
  border-color: #d8e0f1;
}
.footer-inner div b {
  color: #344a84;
}
.thread-page {
  background: transparent;
}
.thread-title-card {
  position: relative;
  grid-template-columns: minmax(0,1fr) 94px auto;
  min-height: 122px;
  padding: 20px 26px;
  overflow: hidden;
  background: rgba(255,255,255,.95);
  border: 1px solid #dce3f3;
  border-top: 1px solid #dce3f3;
  border-radius: 15px;
  box-shadow: 0 8px 25px rgba(75,93,150,.08);
}
.thread-heading h2 {
  color: #263968;
  font-size: 28px;
}
.thread-heading p {
  color: #77819d;
}
.thread-title-mascot {
  width: 90px;
  height: 90px;
  align-self: end;
  object-fit: contain;
  filter: drop-shadow(0 7px 10px rgba(81,96,157,.11));
  pointer-events: none;
}
.thread-title-stats {
  padding-left: 25px;
  border-left: 1px solid #dce2ef;
}
.thread-title-stats span {
  color: #7782a0;
}
.thread-title-stats span b {
  color: #4359ac;
  font-size: 24px;
}
.thread-title-stats button, .thread-actions button {
  border-radius: 7px;
  border-color: #d9e0f0;
  background: #fff;
  color: #5a688f;
}
.thread-title-stats button.active, .thread-actions button.active {
  color: #4059b4;
  background: #eef2ff;
  border-color: #cbd7f5;
}
.thread-toolbar {
  padding-block: 14px;
}
.thread-toolbar .reply-primary {
  color: #fff;
  background: linear-gradient(135deg, #6178d7, #475db9);
  border-color: #465bb4;
  box-shadow: 0 6px 13px rgba(70,90,182,.2);
}
.single-thread-layout {
  width: min(1180px, calc(100% - 44px));
}
.forum-post {
  grid-template-columns: 170px minmax(0,1fr);
  margin-bottom: 12px;
  overflow: hidden;
  background: rgba(255,255,255,.97);
  border: 1px solid #dce3f2;
  border-radius: 14px;
  box-shadow: 0 5px 18px rgba(73,91,150,.055);
}
.owner-post {
  border-top: 1px solid #dce3f2;
}
.post-user {
  padding: 22px 16px;
  background: linear-gradient(180deg, #f5f7fd, #f1f4fb);
  border-color: #dde4f2;
}
.profile-avatar {
  width: 82px;
  height: 82px;
  margin-bottom: 10px;
  overflow: hidden;
  background: #eef2ff;
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 4px 13px rgba(71,90,160,.17);
}
.profile-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.profile-avatar .npc-mascot-avatar, .npc-mascot-avatar {
  object-fit: contain;
  object-position: 50% 38%;
  background: linear-gradient(145deg, #f0f3ff, #fff7e7);
}
.post-user > strong, .post-user-name {
  color: #2e3e70;
  font-size: 14px;
  font-weight: 700;
}
.user-rank {
  color: #5e6d9a;
  background: #eef2ff;
  border: 1px solid #d6def5;
  border-radius: 5px;
}
.post-user dl {
  border-color: #dce2ee;
}
.post-body {
  min-height: 250px;
  padding: 0 22px;
}
@media (max-width: 680px) {
  .forum-post.forum-reply {
    min-height: 0;
  }
  .forum-reply > .post-body {
    min-height: 0;
  }
  .forum-reply > .post-body > .post-content {
    flex: 0 0 auto;
  }
}
.post-meta {
  color: #8b95af;
  border-color: #e3e8f2;
}
.post-meta a {
  color: #6576b9;
}
.post-meta b {
  color: #9b712d;
  background: #fff5df;
  border-color: #edd8ad;
  border-radius: 4px;
}
.post-content {
  position: relative;
  padding: 24px 5px 32px;
  color: #29365d;
  font-size: 16px;
  line-height: 2;
}
.post-content blockquote, .fanfic-notes {
  color: #637099;
  background: linear-gradient(135deg, #f1f3ff, #fafaff);
  border-color: #d9dff4;
  border-left-color: #8c9ce0;
  border-radius: 3px;
}
.post-content blockquote b {
  color: #4d5fa4;
}
.fanfic-notes {
  position: relative;
  min-height: 118px;
  padding: 16px 145px 7px 18px;
}
.post-note-mascot {
  position: absolute;
  top: 54px;
  right: 14px;
  width: 125px;
  height: 125px;
  object-fit: contain;
  opacity: .96;
  pointer-events: none;
}
.topic-timestamps, .post-footer {
  color: #8b95ad;
  border-color: #e3e7f0;
}
.post-footer button {
  color: #697697;
}
.post-footer button.liked, .top-reply-body button.liked {
  color: #d05e83;
}
.all-replies-heading, .top-replies-heading {
  color: #3b4b7e;
  background: #eef2fb;
  border-color: #dce3f2;
  border-radius: 10px;
}
.top-replies-panel, .reply-composer {
  overflow: hidden;
  background: rgba(255,255,255,.96);
  border-color: #dce3f2;
  border-radius: 14px;
  box-shadow: 0 5px 18px rgba(73,91,150,.055);
}
.top-replies-panel > .top-reply {
  border-color: #e5e9f3;
}
.top-reply-body > div a {
  color: #586ec5;
}
.top-reply-body p {
  color: #2d3a62;
}
.thread-reward-bar {
  background: #fffaf0;
  border-color: #eadfc8;
  border-radius: 8px;
}
.thread-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
  padding: 9px;
  border: 1px solid #dce3f2;
  border-radius: 10px;
}
.thread-page-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 5px;
}
.thread-page-ellipsis {
  display: inline-flex;
  min-width: 24px;
  height: 36px;
  align-items: center;
  justify-content: center;
  color: #7b8194;
  font-size: 16px;
}
.thread-pagination .thread-page-buttons button {
  position: relative;
  min-width: 38px;
  padding: 0 8px;
}
.thread-pagination .thread-page-buttons button.current {
  color: #fff;
  background: #5369c5;
  border-color: #5369c5;
}
.thread-pagination .thread-page-buttons button.locked {
  color: #8b6a85;
  background: #f6eef5;
  border-color: #decad9;
}
.thread-pagination .thread-page-buttons button.current.locked {
  color: #fff;
  background: #8b6685;
  border-color: #8b6685;
}
.thread-pagination .thread-page-buttons button small {
  margin-left: 3px;
  font-size: 9px;
}
.thread-pagination button:disabled {
  cursor: not-allowed;
  opacity: .45;
}
.locked-page-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 280px;
  padding: 34px 20px;
  color: #66708e;
  background: linear-gradient(145deg, #f5f7fc, #fff);
  border: 1px solid #dce3f2;
  text-align: center;
}
.locked-page-panel > span {
  color: #8c7390;
  font-family: Georgia, serif;
  font-size: 11px;
  letter-spacing: .16em;
}
.locked-page-panel > b {
  margin-top: 13px;
  color: #3d4b75;
  font-family: Georgia, "STSong", serif;
  font-size: 20px;
}
.locked-page-panel > p {
  max-width: 520px;
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.8;
}
.reply-composer-head {
  background: linear-gradient(90deg, #eef2ff, #f7f8ff);
  border-color: #dce3f2;
}
.reply-composer textarea {
  color: #2b395f;
  background: #fff;
  border-color: #cfd8ed;
  border-radius: 7px;
}
.community-card-head, .account-welcome, .auth-intro {
  background: linear-gradient(135deg, #eef3ff, #fafbff);
}
.community-card-head h1, .auth-intro h1, .account-welcome h2, .account-section-head h3, .profile-card h1 {
  color: #2d427d;
}
.auth-kicker, .community-card-head > div > span {
  color: #5b70c5;
}
.auth-switch a.active {
  color: #fff;
  background: #5369c5;
  border-color: #5369c5;
}
.auth-form input:not([type="checkbox"]), .settings-section input, .settings-section textarea, .settings-section select, .compose-form input, .compose-form select, .compose-form textarea {
  color: #29365c;
  background: #fbfcff;
  border-color: #d3dced;
  border-radius: 7px;
}
.account-nav button.active {
  color: #4057af;
  background: #eef2ff;
  box-shadow: inset 3px 0 #6579d1;
}
.account-welcome {
  border-top: 1px solid #dbe3f3;
}
.account-welcome > a {
  background: #5268c3;
  border-color: #5268c3;
  border-radius: 7px;
}
.daily-checkin {
  background: #536bc8 !important;
  border-radius: 7px;
}
.activation-code-card, .activation-proof-card, .reader-invites, .experience-rules {
  background: #f8f9fd;
  border-color: #dce3f1;
  border-radius: 9px;
}
@media (max-width: 980px) {
  .header-main {
    grid-template-columns: 220px minmax(0,1fr) auto;
  }
  .brand-mascot {
    display: none;
  }
  .hero-reader {
    right: 8%;
  }
  .hero-puff {
    right: -2%;
  }
  .thread-title-card {
    grid-template-columns: minmax(0,1fr) 72px auto;
  }
  .thread-title-mascot {
    width: 72px;
    height: 72px;
  }
}
@media (max-width: 820px) {
  .shell, .single-thread-layout {
    width: min(100% - 24px, 760px);
  }
  .header-main {
    grid-template-columns: 185px 1fr auto;
  }
  .hero {
    width: calc(100% - 24px);
  }
  .hero-inner {
    width: calc(100% - 38px);
  }
  .hero-copy {
    width: 66%;
  }
  .hero-mascots {
    right: -4%;
    width: 43%;
  }
  .hero-reader {
    right: 4%;
    width: 210px;
    height: 210px;
  }
  .hero-puff {
    display: none;
  }
  .content-grid {
    grid-template-columns: 1fr;
  }
  .thread-title-card {
    grid-template-columns: minmax(0,1fr) 70px auto;
  }
}
@media (max-width: 680px) {
  body {
    background: #f7f9ff;
  }
  .site-header {
    height: 58px;
    background-position: center;
  }
  .header-main {
    width: 100%;
    grid-template-columns: auto minmax(0,1fr) auto;
  }
  .brand-mark {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
    border-radius: 7px;
  }
  .brand strong {
    font-size: 18px;
  }
  .brand-mascot {
    display: none;
  }
  .hero {
    width: 100%;
    height: 122px;
    margin: 0;
    padding: 0 16px;
    border-inline: 0;
    border-top: 0;
    border-radius: 0 0 16px 16px;
  }
  .hero-inner {
    width: 100%;
  }
  .eyebrow {
    display: none;
  }
  .hero-copy {
    width: 78%;
  }
  .hero h1 {
    max-width: 270px;
    margin-top: 4px;
    font-size: 21px;
  }
  .hero h1 em {
    margin-left: 0;
    font-size: 13px;
    letter-spacing: .1em;
    padding: 2px 10px 2px 12px;
  }
  .hero-copy > p {
    display: none;
  }
  .hero-meta {
    gap: 10px;
    margin-top: 3px;
    font-size: 11px;
  }
  .hero-meta b {
    font-size: 13px;
  }
  .hero-mascots {
    right: -30px;
    width: 40%;
  }
  .hero-reader {
    right: 0;
    bottom: -6px;
    width: 100px;
    height: 100px;
    opacity: .9;
  }
  .breadcrumb {
    background: transparent;
    border-color: #e2e8f4;
  }
  .board-card, .quick-thread-card {
    border-radius: 0;
    box-shadow: none;
  }
  .board-category-nav {
    scrollbar-width: none;
  }
  .board-category-nav::-webkit-scrollbar {
    display: none;
  }
  .new-thread {
    width: auto;
    min-width: 102px;
    padding: 0 14px;
    justify-content: center;
    font-size: 13px;
    white-space: nowrap;
  }
  .thread-title-card {
    grid-template-columns: minmax(0,1fr) auto;
    gap: 8px;
    padding: 16px 14px;
    border-inline: 0;
    border-radius: 0;
  }
  .thread-title-mascot {
    display: none;
  }
  .thread-title-stats {
    padding-left: 12px;
  }
  .thread-title-stats span b {
    font-size: 19px;
  }
  .forum-post {
    grid-template-columns: 1fr;
    margin-bottom: 9px;
    border-inline: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .post-user {
    padding: 10px 14px;
  }
  .profile-avatar {
    width: 44px;
    height: 44px;
    margin: 0;
    border-radius: 50%;
  }
  .post-body {
    padding: 0 14px;
  }
  .post-content {
    font-size: 19px;
    line-height: 1.88;
  }
  .fanfic-notes {
    min-height: 0;
    padding-right: 16px;
  }
  .post-note-mascot {
    display: none;
  }
  .top-replies-panel, .reply-composer {
    border-inline: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .account-page .community-card, .account-page .profile-card, .account-page .account-nav, .account-page .account-section, .account-page .account-welcome, .account-page .account-stats {
    border-radius: 0;
    box-shadow: none;
  }
}
.top-replies-panel {
  margin-top: 10px;
}
.top-replies-heading {
  min-height: 0;
  margin-top: 0;
  padding: 8px 14px;
}
.top-replies-heading h3 {
  font-size: 14px;
}
.top-replies-heading p {
  margin: 2px 0 0;
  font-size: 11px;
  line-height: 1.4;
}
.top-replies-heading > span {
  padding: 2px 6px;
  font-size: 11px;
  letter-spacing: .1em;
}
.top-replies-panel > .top-reply {
  grid-template-columns: 44px minmax(0,1fr) auto;
  gap: 10px;
  padding: 8px 14px;
}
.top-replies-panel > .top-reply .profile-avatar.mini {
  width: 30px;
  height: 30px;
}
.top-replies-panel > .top-reply .top-reply-body > div {
  display: flex;
  align-items: center;
  gap: 7px;
}
.top-replies-panel > .top-reply .top-reply-body > div a {
  margin-left: 0;
}
.top-reply {
  grid-template-columns: 44px minmax(0,1fr) auto;
  gap: 10px;
  padding: 8px 14px;
}
.top-reply .mini-avatar {
  width: 28px;
  height: 28px;
  font-size: 11px;
}
.top-reply-votes {
  gap: 1px;
  padding-top: 0;
}
.top-reply-votes > b {
  font-size: 14px;
}
.top-reply-votes > span {
  font-size: 10px;
}
.top-reply-votes > button {
  height: 22px;
  margin-top: 4px;
  padding: 0 7px;
  font-size: 11px;
}
.top-replies-panel article .top-reply-body p {
  margin: 3px 0 1px;
  font-size: 13px;
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (max-width: 560px) {
  .top-replies-heading {
    padding-inline: 12px;
  }
  .top-replies-panel > .top-reply, .top-reply {
    padding: 9px 12px;
  }
  .top-reply {
    grid-template-columns: 44px minmax(0,1fr) auto;
  }
  .top-reply .mini-avatar {
    display: none;
  }
}
.top-reply .mini-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-size: 14px;
}
.top-reply-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.top-reply-head b {
  font-size: 13px;
  color: #403844;
}
.top-reply-head span {
  font-size: 12px;
  color: #918890;
}
.top-reply-head a {
  font-size: 12px;
  color: #8b6bc0;
}
.top-reply-body p {
  margin: 6px 0 8px;
  font-size: 14px;
  line-height: 1.65;
  color: #4a4450;
  white-space: pre-wrap;
  word-break: break-word;
}
.top-reply-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 10px;
}
.top-reply-actions button {
  font-size: 12px;
  color: #7a6a8a;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 2px 6px;
  border-radius: 3px;
}
.top-reply-actions button:hover {
  background: #f0ebe3;
}
.top-reply-actions button.liked {
  color: #c45164;
}
.top-replies-panel .top-reply-body p {
  display: block;
  -webkit-line-clamp: unset;
  -webkit-box-orient: unset;
  overflow: visible;
  white-space: pre-wrap;
  word-break: break-word;
}
.lightbox-zoom-hint {
  position: absolute;
  left: 50%;
  bottom: 14px;
  transform: translateX(-50%);
  font-size: 12px;
  color: rgba(255,255,255,.85);
  background: rgba(0,0,0,.55);
  padding: 3px 10px;
  border-radius: 12px;
  pointer-events: none;
  z-index: 5;
}
@media (max-width: 560px) {
  .top-reply .mini-avatar {
    display: grid;
  }
  .top-reply {
    grid-template-columns: 36px minmax(0,1fr);
    gap: 10px;
    padding: 10px 12px;
  }
  .top-reply-head {
    flex-wrap: wrap;
    gap: 6px;
  }
  .top-reply-head a {
    margin-left: 0;
  }
  .top-reply-actions {
    gap: 8px;
  }
}
.image-lightbox section img {
  max-width: 94vw;
  max-height: 82vh;
}
.header-main > nav {
  gap: 4px;
}
.header-main nav a, .header-main nav button {
  white-space: nowrap;
  padding: 9px 11px;
  flex: none;
}
.header-main nav button {
  background: none;
  border: 0;
  cursor: pointer;
}
@media (max-width: 560px) {
  .header-main nav a, .header-main nav button {
    padding: 8px 9px;
    font-size: 14px;
  }
}
.novel-prose p {
  font-family: -apple-system, "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Noto Sans SC", sans-serif;
}
.novel-prose p {
  cursor: pointer;
}
.novel-prose p:hover {
  background: rgba(88, 112, 205, .045);
  border-radius: 6px;
}
.novel-comment-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 5px;
}
.novel-inline-emoji {
  display: inline-block;
  flex: none;
  margin: 0 2px;
  vertical-align: -4px;
  background-repeat: no-repeat;
  image-rendering: auto;
}
.novel-comment-actions button {
  font-size: 12px;
  color: #7d86a3;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 1px 4px;
}
.novel-comment-actions button:hover {
  color: #455bb2;
}
.novel-comment-actions button.liked {
  color: #c45164;
}
.novel-comment-actions button.danger:hover {
  color: #c0392b;
}
.novel-comment-reply {
  margin-left: 0;
  padding: 12px 0;
  border-left: 0;
}
.novel-comment {
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 8px 10px;
  scroll-margin-top: 85px;
}
.novel-comment-content {
  display: contents;
}
.novel-comment-content > header {
  grid-column: 2;
  min-width: 0;
  justify-content: space-between;
}
.novel-comment-identity {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 7px;
  min-width: 0;
}
.novel-comment-identity b {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.novel-comment-identity time {
  flex-basis: 100%;
  margin: 0;
}
.novel-comment-content > .novel-comment-copy, .novel-comment-content > .novel-comment-reply-box {
  grid-column: 1 / -1;
  min-width: 0;
  overflow-wrap: anywhere;
}
.novel-comment-content .novel-comment-actions {
  margin: 0;
  flex-shrink: 0;
  gap: 3px;
}
.novel-comment-avatar {
  border-radius: 50%;
  flex-shrink: 0;
}
.novel-comment-avatar img {
  display: block;
  border-radius: inherit;
}
.novel-nested-replies {
  margin: 0 0 12px 14px;
  padding: 0 12px;
  background: #f5f7fc;
  border-radius: 8px;
}
.novel-reply-target {
  color: #7d86a3;
  font-size: 11px;
}
.novel-expand-replies {
  padding: 10px 0;
  color: #5369c5;
  background: none;
  border: 0;
  cursor: pointer;
}
.novel-comment.comment-highlight {
  background: #edf1ff;
  outline: 1px solid #bbc8f3;
  border-radius: 6px;
}
.novel-reader-page.night .novel-nested-replies {
  background: #202635;
}
.novel-reader-page.night .comment-highlight {
  background: #30394e;
}
@media (max-width: 600px) {
  .notification-head {
    flex-wrap: wrap;
    gap: 12px;
  }
  .notification-head > button {
    flex-shrink: 0;
    min-height: 36px;
  }
  .novel-nested-replies {
    margin-left: 6px;
    padding-inline: 9px;
  }
}
.novel-comment-reply-box, .novel-comment-edit {
  margin-top: 7px;
  display: grid;
  gap: 6px;
}
.novel-comment-reply-box textarea, .novel-comment-edit textarea {
  width: 100%;
  min-height: 56px;
  border: 1px solid #d8dfed;
  border-radius: 6px;
  padding: 7px 9px;
  font-size: 13px;
  font-family: inherit;
  resize: vertical;
}
.novel-comment-reply-box div, .novel-comment-edit div {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}
.novel-comment-reply-box button, .novel-comment-edit button {
  font-size: 12px;
  color: #fff;
  background: #5a70cc;
  border: 0;
  border-radius: 4px;
  padding: 4px 12px;
  cursor: pointer;
}
.novel-comment-reply-box button:last-child, .novel-comment-edit button:last-child {
  color: #5f6e98;
  background: #eef2ff;
}
.novel-comment-reply-box button:disabled, .novel-comment-edit button:disabled {
  opacity: .55;
  cursor: default;
}
.novel-announcement-bar {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 14px;
  padding: 12px 18px;
  background: #fdf3e3;
  border: 1px solid #f0d9b8;
  border-left: 4px solid #e0a24a;
  border-radius: 8px;
}
.novel-announcement-bar > span {
  flex: none;
  font-size: 12px;
  color: #fff;
  background: #e0a24a;
  padding: 2px 8px;
  border-radius: 3px;
}
.novel-announcement-bar b {
  display: block;
  font-size: 14px;
  color: #6b4a1f;
}
.novel-announcement-bar p {
  margin: 3px 0 0;
  font-size: 13px;
  color: #8a6a3a;
}
.novel-admin-panel {
  width: 100%;
  margin: 0;
}
.novel-catalog-card > header > .novel-admin-panel {
  display: contents;
}
.novel-catalog-card > header > .novel-admin-panel > .novel-admin-toggle {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
}
.novel-catalog-card > header > .novel-admin-panel > .novel-admin-body {
  grid-column: 1 / -1;
  grid-row: 2;
  width: 100%;
}
.novel-admin-toggle {
  font-size: 13px;
  color: #455bb2;
  background: #eef2ff;
  border: 1px solid #cbd6f3;
  border-radius: 6px;
  padding: 6px 14px;
  cursor: pointer;
}
.novel-admin-body {
  margin-top: 10px;
  padding: 16px 18px;
  background: #f8faff;
  border: 1px solid #dce3f1;
  border-radius: 10px;
  display: grid;
  gap: 16px;
}
.novel-admin-body section h4 {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 9px;
  font-size: 14px;
  color: #3d4f83;
}
.novel-admin-body section h4 .novel-icon {
  background: #5a70cc;
}
.novel-admin-row {
  margin-bottom: 8px;
}
.novel-admin-row input, .novel-admin-row select {
  width: 100%;
  padding: 7px 10px;
  font-size: 13px;
  border: 1px solid #d8dfed;
  border-radius: 6px;
  background: #fff;
}
.novel-admin-row textarea {
  width: 100%;
  min-height: 130px;
  padding: 8px 10px;
  font-size: 13px;
  line-height: 1.7;
  border: 1px solid #d8dfed;
  border-radius: 6px;
  resize: vertical;
}
.novel-admin-body section > button {
  font-size: 12px;
  color: #fff;
  background: #5a70cc;
  border: 0;
  border-radius: 5px;
  padding: 5px 14px;
  cursor: pointer;
}
.novel-admin-body section > button:disabled {
  opacity: .5;
  cursor: default;
}
.novel-admin-announcement {
  margin-bottom: 8px;
  padding: 9px 12px;
  background: #fdf3e3;
  border: 1px solid #f0d9b8;
  border-radius: 6px;
}
.novel-admin-announcement b {
  font-size: 13px;
  color: #6b4a1f;
}
.novel-admin-announcement p {
  margin: 3px 0 6px;
  font-size: 12px;
  color: #8a6a3a;
}
.novel-admin-announcement button {
  font-size: 11px;
  color: #c0392b;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 0;
}
.novel-admin-notice {
  margin: 0 0 6px;
  font-size: 12px;
  color: #3a7d3a;
}
.novel-catalog-card > header > .novel-admin-toggle {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
}
.novel-manage-page {
  min-height: 100vh;
}
.novel-manage-shell {
  padding-bottom: 38px;
}
.novel-manage-loading {
  min-height: 470px;
  margin-bottom: 32px;
  padding: 70px 42px;
  background: rgba(255,255,255,.94);
  border: 1px solid #dce3f1;
  border-radius: 16px;
}
.novel-manage-loading h1 {
  margin: 0 0 12px;
  color: #303f70;
  font-family: Georgia, "STSong", serif;
}
.novel-manage-loading p {
  color: #75809d;
}
.novel-manage-loading button {
  min-height: 38px;
  padding: 0 16px;
  color: #fff;
  background: #5369c5;
  border: 0;
  border-radius: 7px;
  cursor: pointer;
}
.novel-manage-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  padding: 30px 34px 27px;
  background: rgba(255,255,255,.96);
  border: 1px solid #dce3f1;
  border-radius: 16px 16px 0 0;
}
.novel-manage-header span, .novel-preview-card > div > span, .novel-announcement-editor > div:first-child > span {
  color: #95a0bd;
  font-family: Georgia, serif;
  font-size: 10px;
  letter-spacing: .18em;
}
.novel-manage-header h1 {
  margin: 6px 0 5px;
  color: #2f3e6d;
  font-family: Georgia, "STSong", serif;
  font-size: 28px;
  font-weight: 600;
}
.novel-manage-header p {
  margin: 0;
  color: #7c87a3;
  font-size: 13px;
}
.novel-manage-header a {
  flex: none;
  padding: 9px 14px;
  color: #5368bd;
  background: #f3f5fd;
  border: 1px solid #d6def2;
  border-radius: 7px;
  font-size: 12px;
  text-decoration: none;
}
.novel-manage-tabs {
  display: flex;
  gap: 4px;
  padding: 0 27px;
  background: #f8f9fd;
  border-inline: 1px solid #dce3f1;
  border-bottom: 1px solid #dce3f1;
}
.novel-manage-tabs button {
  position: relative;
  min-height: 48px;
  padding: 0 18px;
  color: #75809c;
  background: transparent;
  border: 0;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
}
.novel-manage-tabs button.active {
  color: #465bb0;
  font-weight: 700;
}
.novel-manage-tabs button.active::after {
  content: "";
  position: absolute;
  right: 14px;
  bottom: -1px;
  left: 14px;
  height: 3px;
  background: #6077d2;
  border-radius: 3px 3px 0 0;
}
.novel-manage-message {
  padding: 12px 24px;
  border-inline: 1px solid;
  font-size: 13px;
}
.novel-manage-message.error {
  color: #a44655;
  background: #fff2f4;
  border-color: #edcdd3;
}
.novel-manage-message.success {
  color: #34725d;
  background: #eef9f4;
  border-color: #cce9dc;
}
.novel-manage-grid {
  display: grid;
  grid-template-columns: 210px minmax(0,1.4fr) minmax(280px,.8fr);
  gap: 16px;
  align-items: start;
  padding: 20px;
  background: rgba(248,249,253,.86);
  border: 1px solid #dce3f1;
  border-top: 0;
  border-radius: 0 0 16px 16px;
}
.novel-manage-sidebar, .novel-editor-card, .novel-preview-card, .novel-announcement-editor {
  background: #fff;
  border: 1px solid #dce3f1;
  border-radius: 11px;
  box-shadow: 0 5px 18px rgba(48,61,116,.04);
}
.novel-manage-sidebar {
  display: grid;
  gap: 16px;
  padding: 16px;
}
.novel-manage-sidebar > button {
  min-height: 40px;
  color: #5065b9;
  background: #eef2ff;
  border: 1px solid #cad5f1;
  border-radius: 7px;
  cursor: pointer;
  font-weight: 700;
}
.novel-manage-sidebar > button.active {
  color: #fff;
  background: #5369c5;
  border-color: #5369c5;
}
.novel-manage-sidebar label {
  display: grid;
  gap: 7px;
  color: #65708e;
  font-size: 12px;
}
.novel-manage-sidebar select {
  width: 100%;
  height: 38px;
  padding: 0 8px;
  color: #384567;
  background: #fff;
  border: 1px solid #d5ddeb;
  border-radius: 6px;
  font: inherit;
  font-size: 12px;
}
.novel-manage-sidebar p {
  margin: 0;
  color: #98a1b5;
  font-size: 11px;
  line-height: 1.7;
}
.novel-editor-card {
  min-width: 0;
  padding: 21px;
}
.novel-editor-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 17px;
}
.novel-editor-heading span {
  color: #8793b2;
  font-size: 11px;
}
.novel-editor-heading h2 {
  margin: 3px 0 0;
  color: #35446f;
  font-size: 21px;
}
.novel-editor-heading > b {
  color: #8993aa;
  font-size: 11px;
  font-weight: 500;
}
.novel-editor-title, .novel-editor-body, .novel-announcement-editor > label {
  position: relative;
  display: grid;
  gap: 7px;
  color: #66718d;
  font-size: 12px;
}
.novel-editor-title input, .novel-announcement-editor input {
  width: 100%;
  height: 41px;
  padding: 0 58px 0 11px;
  color: #34405f;
  background: #fbfcff;
  border: 1px solid #d4ddec;
  border-radius: 7px;
  outline: 0;
  font: inherit;
  font-size: 14px;
}
.novel-editor-title small, .novel-announcement-editor label small {
  position: absolute;
  right: 10px;
  bottom: 12px;
  color: #a0a8b9;
  font-size: 10px;
}
.novel-format-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  margin: 13px 0 9px;
  padding: 8px;
  background: #f5f7fc;
  border: 1px solid #dce3ef;
  border-radius: 7px;
}
.novel-format-toolbar button {
  min-height: 30px;
  padding: 0 9px;
  color: #596689;
  background: #fff;
  border: 1px solid #d6deec;
  border-radius: 5px;
  cursor: pointer;
  font: inherit;
  font-size: 11px;
}
.novel-format-toolbar > span {
  width: 1px;
  height: 22px;
  margin: 0 2px;
  background: #d7deea;
}
.novel-format-toolbar button.color {
  display: grid;
  place-items: center;
  width: 29px;
  padding: 0;
}
.novel-format-toolbar button.color i {
  width: 12px;
  height: 12px;
  border-radius: 50%;
}
.novel-format-toolbar .indigo i {
  background: #5368bd;
}
.novel-format-toolbar .rose i {
  background: #c45f83;
}
.novel-format-toolbar .gold i {
  background: #a7792f;
}
.novel-format-toolbar .green i {
  background: #3d8869;
}
.novel-format-toolbar .slate i {
  background: #59627a;
}
.novel-editor-body textarea {
  width: 100%;
  min-height: 410px;
  padding: 13px;
  color: #313d5c;
  background: #fff;
  border: 1px solid #cfd9e9;
  border-radius: 7px;
  outline: 0;
  resize: vertical;
  font: 14px/1.85 "Microsoft YaHei", sans-serif;
}
.novel-editor-title input:focus, .novel-editor-body textarea:focus, .novel-announcement-editor input:focus, .novel-announcement-editor textarea:focus {
  border-color: #788bd1;
  box-shadow: 0 0 0 3px rgba(100,122,205,.1);
}
.novel-editor-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-top: 13px;
}
.novel-editor-actions small {
  color: #929bae;
  font-size: 10px;
}
.novel-editor-actions button, .novel-announcement-editor > div:last-child button {
  min-height: 38px;
  padding: 0 18px;
  color: #fff;
  background: #5369c5;
  border: 0;
  border-radius: 7px;
  cursor: pointer;
  font-weight: 700;
}
.novel-editor-actions button:disabled, .novel-announcement-editor button:disabled {
  opacity: .5;
  cursor: default;
}
.novel-preview-card {
  min-width: 0;
  overflow: hidden;
}
.novel-preview-card > div {
  padding: 18px;
  border-bottom: 1px solid #e2e7f1;
}
.novel-preview-card h2 {
  overflow-wrap: anywhere;
  margin: 5px 0 0;
  color: #36436a;
  font-family: Georgia, "STSong", serif;
  font-size: 18px;
}
.novel-preview-card article {
  overflow-y: auto;
  max-height: 580px;
  padding: 20px;
}
.novel-preview-card article p {
  margin: 0 0 1.25em;
  color: #3d4661;
  font-size: 14px;
  line-height: 2;
  text-indent: 2em;
  overflow-wrap: anywhere;
}
.novel-announcement-editor {
  display: grid;
  gap: 18px;
  padding: 28px;
  background: #fff;
  border-radius: 0 0 16px 16px;
}
.novel-announcement-editor h2 {
  margin: 6px 0;
  color: #35446f;
  font-size: 24px;
}
.novel-announcement-editor > div:first-child p {
  margin: 0;
  color: #838da6;
  font-size: 12px;
}
.novel-announcement-current {
  padding: 14px 16px;
  color: #75582f;
  background: #fff8e9;
  border: 1px solid #ead8b4;
  border-radius: 8px;
}
.novel-announcement-current b, .novel-announcement-current strong {
  display: block;
}
.novel-announcement-current b {
  color: #a5844c;
  font-size: 10px;
  letter-spacing: .12em;
}
.novel-announcement-current strong {
  margin-top: 5px;
}
.novel-announcement-current p {
  margin: 5px 0 0;
  font-size: 12px;
  line-height: 1.7;
}
.novel-announcement-editor textarea {
  min-height: 170px;
  padding: 11px;
  color: #34405f;
  background: #fbfcff;
  border: 1px solid #d4ddec;
  border-radius: 7px;
  outline: 0;
  resize: vertical;
  font: 13px/1.7 inherit;
}
.novel-announcement-editor > div:last-child {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
}
.novel-announcement-editor > div:last-child button.danger {
  color: #a54f5b;
  background: #fff0f2;
  border: 1px solid #ebcbd1;
}
@media (max-width: 1080px) {
  .novel-manage-grid {
    grid-template-columns: 190px minmax(0,1fr);
  }
  .novel-preview-card {
    grid-column: 1 / -1;
  }
  .novel-preview-card article {
    max-height: 420px;
  }
}
@media (max-width: 680px) {
  .novel-manage-shell {
    width: 100%;
    padding-bottom: 0;
  }
  .novel-manage-header {
    align-items: flex-start;
    padding: 21px 16px;
    border-inline: 0;
    border-radius: 0;
  }
  .novel-manage-header h1 {
    font-size: 23px;
  }
  .novel-manage-header p {
    max-width: 240px;
    line-height: 1.6;
  }
  .novel-manage-header a {
    padding: 7px 9px;
  }
  .novel-manage-tabs {
    padding-inline: 8px;
    border-inline: 0;
  }
  .novel-manage-grid {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 10px 0 0;
    border-inline: 0;
    border-radius: 0;
  }
  .novel-manage-sidebar, .novel-editor-card, .novel-preview-card {
    border-inline: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .novel-manage-sidebar {
    grid-template-columns: 1fr 1fr;
    align-items: end;
  }
  .novel-manage-sidebar p {
    grid-column: 1 / -1;
  }
  .novel-manage-sidebar > button {
    min-height: 38px;
  }
  .novel-editor-card {
    padding: 16px 13px;
  }
  .novel-editor-body textarea {
    min-height: 340px;
  }
  .novel-format-toolbar {
    overflow-x: auto;
    flex-wrap: nowrap;
  }
  .novel-format-toolbar button {
    flex: none;
  }
  .novel-editor-actions {
    align-items: flex-end;
  }
  .novel-editor-actions small {
    max-width: 180px;
    line-height: 1.5;
  }
  .novel-preview-card article {
    max-height: none;
    padding: 18px 15px;
  }
  .novel-announcement-editor {
    padding: 21px 14px 28px;
    border-inline: 0;
    border-radius: 0;
  }
  .novel-manage-loading {
    width: 100%;
    min-height: 420px;
    margin: 0;
    padding: 50px 20px;
    border-inline: 0;
    border-radius: 0;
  }
}
.thread-mobile-author {
  display: none;
}
@media (max-width: 680px) {
  .thread-row .thread-main {
    min-width: 0;
  }
  .thread-mobile-author {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 5px;
  }
  .thread-mobile-author img, .thread-mobile-author i {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    flex: none;
  }
  .thread-mobile-author i {
    display: grid;
    place-items: center;
    font-style: normal;
    font-size: 10px;
    color: #fff;
    background: #8a8090;
  }
  .thread-mobile-author b {
    font-size: 11px;
    font-weight: 500;
    color: #9d949c;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}
@media (max-width: 560px) {
  .novel-mobile-bottom-bar {
    grid-template-columns: 1fr 66px 66px 66px 1fr;
    height: 66px;
  }
  .novel-mobile-bottom-bar a, .novel-mobile-bottom-bar button {
    gap: 4px;
  }
  .novel-mobile-bottom-bar svg {
    width: 25px;
    height: 25px;
  }
  .novel-mobile-bottom-bar a span, .novel-mobile-bottom-bar button span {
    font-size: 12px;
  }
}
.thread-title-line {
  flex-wrap: nowrap;
}
.thread-title-line strong {
  flex-basis: auto;
  white-space: nowrap;
}
.thread-title-line .pin, .thread-title-line .hot, .thread-title-line .tag {
  flex: none;
}
@media (max-width: 680px) {
  .site-header {
    height: auto;
  }
  .header-main {
    grid-template-columns: auto minmax(0,1fr) auto;
  }
  .header-main > nav {
    grid-column: 1 / -1;
    position: static;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    height: 34px;
    gap: 2px;
    background: transparent;
    border: 0;
    box-shadow: none;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .header-main > nav::-webkit-scrollbar {
    display: none;
  }
  .header-main > nav a, .header-main > nav button {
    flex: none;
    min-width: 0;
    padding: 4px 10px;
    font-size: 14px;
    white-space: nowrap;
  }
  .header-main > nav button {
    background: none;
    border: 0;
    cursor: pointer;
  }
  .header-main > :last-child {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
  }
  body {
    padding-bottom: 0;
  }
  .novel-site-page .header-main > nav, .novel-reader-page .header-main > nav {
    grid-column: auto;
    height: auto;
  }
  .novel-site-page, .novel-reader-page {
    padding-bottom: 0;
  }
}
.thread-title-line {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.thread-title-inner {
  display: inline;
}
.thread-title-line strong {
  display: inline;
  white-space: normal;
  color: #26365f;
  font-weight: 650;
  font-size: 16px;
}
.thread-title-tags {
  position: static;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 3px;
  vertical-align: middle;
}
.thread-title-line .pin, .thread-title-line .hot, .thread-title-line .tag {
  flex: none;
}
@media (max-width: 680px) {
  .thread-row {
    grid-template-columns: 36px minmax(0,1fr);
    min-height: 62px;
    gap: 9px;
    padding: 10px 12px;
  }
  .thread-row .thread-author, .thread-row .thread-count, .thread-row .thread-last {
    display: none;
  }
  .thread-mobile-author {
    gap: 7px;
  }
  .thread-mobile-author b {
    font-size: 12.5px;
    font-weight: 500;
  }
  .thread-mobile-author small {
    font-size: 12px;
    color: #a39aa3;
  }
  .thread-cat-label {
    font-size: 11px;
  }
  .board-category-nav button {
    font-size: 14px;
  }
}
@media (max-width: 560px) {
  .thread-mobile-author small {
    max-width: 130px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}
@media (max-width: 680px) {
  .novel-detail-hero {
    grid-template-columns: 108px minmax(0,1fr);
    gap: 16px;
    padding: 22px 16px;
  }
  .novel-detail-cover {
    width: 108px;
    height: 152px;
  }
  .novel-detail-copy {
    align-self: start;
  }
  .novel-detail-copy h1 {
    font-size: 24px;
  }
  .novel-detail-tags {
    grid-column: auto;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 12px 0 10px;
    justify-content: flex-start;
    align-items: center;
  }
  .novel-detail-tags span {
    flex: none;
    font-size: 13px;
    padding: 5px 11px;
  }
  .novel-intro {
    font-size: 15px;
    line-height: 1.85;
  }
  .novel-detail-actions a {
    height: 47px;
    font-size: 15px;
    gap: 8px;
  }
  .novel-detail-actions a svg {
    width: 19px;
    height: 19px;
  }
}
@media (max-width: 680px) {
  .novel-detail-hero {
    grid-template-columns: 110px minmax(0,1fr);
    gap: 20px;
    padding: 20px 16px;
  }
  .novel-detail-cover {
    width: 110px;
    height: 154px;
    align-self: start;
  }
  .novel-detail-copy {
    align-self: start;
  }
  .novel-detail-copy h1 {
    font-size: 22px;
    margin-top: 0;
  }
  .novel-detail-tags {
    margin: 7px 0 6px;
    gap: 6px;
  }
  .novel-detail-tags span {
    font-size: 11px;
    padding: 4px 8px;
  }
  .novel-intro {
    font-size: 13px;
    line-height: 1.75;
    -webkit-line-clamp: 4;
  }
  .novel-detail-actions a {
    height: 42px;
    font-size: 14px;
    gap: 7px;
  }
  .novel-detail-actions a svg {
    width: 17px;
    height: 17px;
  }
}
.thread-cat-label {
  display: grid;
  place-content: center;
  text-align: center;
  color: #fff;
  font-size: 11px;
  line-height: 1.2;
  width: 38px;
  height: 38px;
  border-radius: 7px;
  flex: none;
}
.thread-cat-label b, .thread-cat-label i {
  display: block;
  font-style: normal;
  font-weight: 600;
  letter-spacing: .02em;
}
.thread-cat-label.gold {
  background: linear-gradient(135deg, #e0a24a, #cd8a2c);
}
.thread-cat-label.violet {
  background: linear-gradient(135deg, #906cc5, #7457ab);
}
.thread-cat-label.rose {
  background: linear-gradient(135deg, #d86a86, #c14f66);
}
.thread-cat-label.green {
  background: linear-gradient(135deg, #5aa77a, #3f8a5f);
}
.thread-cat-label.blue {
  background: linear-gradient(135deg, #5a80d6, #4359ac);
}
@media (max-width: 680px) {
  .thread-cat-label {
    width: 32px;
    height: 32px;
    font-size: 11px;
    border-radius: 6px;
  }
}
.thread-title-line .pin, .thread-title-line .hot {
  color: #fff;
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 400;
  font-family: inherit;
  font-style: normal;
  letter-spacing: 0;
  line-height: 1.5;
  flex: none;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
}
.thread-title-line .pin {
  background: #4a7dde;
}
.thread-title-line .pin.feat {
  background: #d05e83;
}
.thread-title-line .hot {
  background: #e8853a;
}
.new-thread-fab {
  display: none;
}
@media (max-width: 680px) {
  .new-thread {
    display: none;
  }
  .new-thread-fab {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    right: 16px;
    bottom: calc(20px + env(safe-area-inset-bottom));
    z-index: 50;
    width: 54px;
    height: 54px;
    color: #fff;
    background: linear-gradient(135deg, #6178d7, #475db9);
    border-radius: 50%;
    box-shadow: 0 8px 20px rgba(70, 90, 182, .38);
    text-decoration: none;
  }
  .new-thread-fab:active {
    transform: scale(.94);
  }
}
.thread-page .thread-title-card {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "heading stats"
    "admin admin";
  column-gap: 24px;
}
.thread-page .thread-heading {
  grid-area: heading;
  min-width: 0;
}
.thread-page .thread-title-stats {
  grid-area: stats;
}
.thread-admin-bar {
  grid-area: admin;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px;
  min-width: 0;
  margin-top: 12px;
  padding-top: 12px;
  overflow-x: auto;
  border-top: 1px dashed #dce3f2;
  scrollbar-width: none;
}
.thread-admin-bar::-webkit-scrollbar {
  display: none;
}
.thread-admin-bar button {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 6px 12px;
  color: #455bb2;
  background: #eef2ff;
  border: 1px solid #cbd6f3;
  border-radius: 7px;
  font-size: 12px;
  white-space: nowrap;
  cursor: pointer;
}
.thread-admin-bar button:hover {
  background: #e2e9ff;
}
.thread-admin-bar button:active {
  transform: scale(.96);
}
.thread-admin-bar button.danger {
  color: #a43f4e;
  background: #fff1f3;
  border-color: #ebc8ce;
}
.thread-admin-bar button.danger:hover {
  background: #ffe5e9;
  border-color: #dcaab3;
}
.npc-identity-manager {
  display: grid;
  grid-template-columns: minmax(190px,1.2fr) 170px minmax(130px,1fr) 120px auto;
  gap: 9px;
  align-items: end;
  padding: 16px 22px;
  background: #f4f6fc;
  border-bottom: 1px solid #dce2ef;
}
.npc-identity-manager > div b, .npc-identity-manager > div small {
  display: block;
}
.npc-identity-manager > div b {
  color: #34436f;
  font-size: 13px;
}
.npc-identity-manager > div small {
  margin-top: 4px;
  color: #7f899f;
  font-size: 11px;
}
.npc-identity-manager input, .npc-identity-manager select, .npc-thread-form input, .npc-thread-form select, .npc-add-reply input, .npc-add-reply select, .npc-reply-row input, .npc-reply-row select {
  width: 100%;
  height: 35px;
  padding: 0 9px;
  color: #34405f;
  background: #fff;
  border: 1px solid #ccd5e8;
  border-radius: 5px;
  font: inherit;
  font-size: 12px;
}
.npc-identity-manager button, .npc-thread-form button, .npc-add-reply button, .npc-reply-row > button {
  min-height: 35px;
  padding: 0 13px;
  color: #fff;
  background: #5369c5;
  border: 0;
  border-radius: 5px;
  cursor: pointer;
  font-size: 12px;
}
.npc-identity-manager button:disabled, .npc-thread-form button:disabled, .npc-add-reply button:disabled, .npc-reply-row button:disabled {
  opacity: .5;
  cursor: default;
}
.npc-admin-layout {
  display: grid;
  grid-template-columns: 260px minmax(0,1fr);
  min-height: 620px;
}
.npc-thread-index {
  padding: 14px 10px;
  background: #f5f3ee;
  border-right: 1px solid #ddd8cf;
}
.npc-thread-index > p {
  padding: 20px 8px;
  color: #99919a;
  font-size: 12px;
}
.npc-thread-select {
  display: grid;
  gap: 5px;
  min-width: 0;
  width: 100%;
  padding: 11px 9px;
  color: #665d69;
  background: transparent;
  border: 0;
  cursor: pointer;
  text-align: left;
}
.npc-thread-select.active {
  background: #e9edf9;
  box-shadow: inset 3px 0 #6679ca;
}
.npc-thread-index strong {
  overflow: hidden;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.npc-thread-index span {
  overflow: hidden;
  color: #9a929c;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.npc-thread-index {
  align-self: start;
  height: clamp(420px, 68vh, 720px);
  overflow-y: scroll;
  overscroll-behavior: contain;
  scrollbar-color: #aeb8d4 #ece9e3;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
}
.npc-thread-index > b {
  position: sticky;
  top: 0;
  z-index: 1;
  display: block;
  padding: 4px 8px 10px;
  color: #59505d;
  background: #f5f3ee;
  font-size: 12px;
}
.site-search-backdrop {
  position: fixed;
  z-index: 350;
  inset: 0;
  display: grid;
  place-items: start center;
  padding: min(12vh, 110px) 18px 24px;
  background: rgba(20, 27, 48, .48);
  backdrop-filter: blur(5px);
}
.site-search-dialog {
  display: flex;
  overflow: hidden;
  flex-direction: column;
  width: min(720px, 100%);
  max-height: min(720px, 78vh);
  color: #2d385c;
  background: #fbfcff;
  border: 1px solid #dce3f2;
  border-radius: 14px;
  box-shadow: 0 24px 70px rgba(35, 46, 84, .24);
}
.site-search-dialog > header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  padding: 15px 18px;
  border-bottom: 1px solid #e2e7f2;
}
.site-search-dialog > header > span {
  color: #6175c2;
  font-size: 26px;
  line-height: 1;
  transform: rotate(-15deg);
}
.site-search-dialog input {
  width: 100%;
  height: 42px;
  padding: 0;
  color: #283454;
  background: transparent;
  border: 0;
  outline: 0;
  font: 500 16px/1.4 inherit;
}
.site-search-dialog input::placeholder {
  color: #9aa4ba;
}
.site-search-dialog kbd {
  padding: 4px 7px;
  color: #8993aa;
  background: #f0f3f9;
  border: 1px solid #dce2ee;
  border-radius: 5px;
  font-size: 10px;
}
.site-search-dialog > header > button {
  width: 32px;
  height: 32px;
  color: #7e889f;
  background: transparent;
  border: 0;
  cursor: pointer;
  font-size: 22px;
}
.site-search-dialog > nav {
  display: flex;
  gap: 7px;
  padding: 10px 18px;
  background: #f7f9fd;
  border-bottom: 1px solid #e5e9f3;
}
.site-search-dialog > nav button {
  min-width: 60px;
  height: 30px;
  padding: 0 12px;
  color: #707b99;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 15px;
  cursor: pointer;
}
.site-search-dialog > nav button.active {
  color: #4d62b2;
  background: #eef2ff;
  border-color: #d7dff7;
  font-weight: 700;
}
.site-search-results {
  overflow-y: auto;
  flex: 1 1 auto;
  min-height: 190px;
  padding: 10px;
}
.site-search-result {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: start;
  gap: 12px;
  width: 100%;
  padding: 13px 12px;
  color: #33405f;
  text-align: left;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 9px;
  cursor: pointer;
}
.site-search-result:hover, .site-search-result.selected {
  background: #f2f5fc;
  border-color: #dfe5f3;
}
.site-search-result.disabled {
  cursor: not-allowed;
  opacity: .72;
}
.search-result-kind {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 0 7px;
  color: #5267b4;
  background: #eef2ff;
  border: 1px solid #d9e0f6;
  border-radius: 5px;
  font-size: 11px;
}
.search-result-kind.kind-reply {
  color: #41796b;
  background: #edf8f4;
  border-color: #d1e9df;
}
.search-result-kind.kind-novel {
  color: #976e38;
  background: #fff7e9;
  border-color: #eedfbe;
}
.site-search-result b {
  display: block;
  overflow: hidden;
  color: #2e3a60;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.site-search-result p {
  display: -webkit-box;
  overflow: hidden;
  margin: 5px 0 6px;
  color: #68728b;
  font-size: 12px;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.site-search-result small {
  color: #9aa2b4;
  font-size: 11px;
}
.site-search-result > i {
  color: #a5aec2;
  font-style: normal;
  font-size: 18px;
}
.site-search-result mark {
  padding: 0 1px;
  color: #3e56aa;
  background: #fff0a8;
}
.site-search-recents {
  padding: 16px 12px;
}
.site-search-recents > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.site-search-recents > div:first-child button {
  color: #8b94a9;
  background: transparent;
  border: 0;
  cursor: pointer;
}
.site-search-recents > div:last-child {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.site-search-recents > div:last-child button {
  padding: 7px 11px;
  color: #66718e;
  background: #f2f4f9;
  border: 1px solid #e0e4ed;
  border-radius: 16px;
  cursor: pointer;
}
.site-search-recents p, .site-search-empty p {
  color: #8d96aa;
  font-size: 12px;
}
.site-search-empty, .site-search-loading {
  padding: 54px 20px;
  color: #7e889f;
  text-align: center;
}
.site-search-empty b {
  color: #4e5976;
}
.site-search-more {
  display: block;
  width: calc(100% - 24px);
  min-height: 38px;
  margin: 8px 12px 12px;
  color: #5368b5;
  background: #f1f4fc;
  border: 1px solid #dce3f4;
  border-radius: 6px;
  cursor: pointer;
}
.site-search-dialog > footer {
  display: flex;
  justify-content: flex-end;
  gap: 15px;
  padding: 9px 18px;
  color: #9aa2b4;
  background: #f7f9fd;
  border-top: 1px solid #e5e9f3;
  font-size: 10px;
}
@media (max-width: 760px) {
  .header-actions .search-button {
    display: flex;
    width: 34px;
    padding: 0;
    justify-content: center;
  }
  .header-actions .search-button b, .header-actions .search-button kbd {
    display: none;
  }
  .site-search-backdrop {
    align-items: stretch;
    padding: 0;
  }
  .site-search-dialog {
    width: 100%;
    max-height: 100dvh;
    min-height: 100dvh;
    border: 0;
    border-radius: 0;
  }
  .site-search-dialog > header {
    padding: 12px 14px;
  }
  .site-search-dialog > nav {
    overflow-x: auto;
    padding-inline: 14px;
  }
  .site-search-dialog > footer {
    display: none;
  }
  .site-search-results {
    padding: 6px;
  }
  .site-search-result {
    grid-template-columns: 42px minmax(0, 1fr);
    padding: 13px 9px;
  }
  .site-search-result > i {
    display: none;
  }
}
.npc-thread-index::-webkit-scrollbar {
  width: 8px;
}
.npc-thread-index::-webkit-scrollbar-track {
  background: #ece9e3;
}
.npc-thread-index::-webkit-scrollbar-thumb {
  background: #aeb8d4;
  border: 2px solid #ece9e3;
  border-radius: 999px;
}
.npc-thread-index::-webkit-scrollbar-thumb:hover {
  background: #8795ba;
}
.npc-thread-index-row {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  align-items: stretch;
  border-bottom: 1px solid #e3ded6;
}
.home-order-page-tabs {
  display: flex;
  overflow-x: auto;
  gap: 7px;
  padding: 13px 20px;
  background: #f4f6fc;
  border-bottom: 1px solid #dce2ef;
}
.home-order-page-tabs button {
  flex: none;
  height: 30px;
  padding: 0 12px;
  color: #66718c;
  background: #fff;
  border: 1px solid #d5dceb;
  border-radius: 5px;
  cursor: pointer;
  font-size: 12px;
}
.home-order-page-tabs button.active {
  color: #fff;
  background: #5369c5;
  border-color: #5369c5;
}
.home-order-list {
  padding: 0 20px 18px;
}
.home-order-row {
  display: grid;
  grid-template-columns: 190px minmax(0,1fr) 64px;
  gap: 12px;
  align-items: center;
  min-height: 66px;
  padding: 10px 0;
  border-bottom: 1px solid #e6e2dc;
}
.home-order-position {
  color: #7d7182;
  font-size: 11px;
  white-space: nowrap;
}
.home-order-title {
  min-width: 0;
}
.home-order-title > div {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.home-order-title strong {
  overflow: hidden;
  color: #403744;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.home-order-title small {
  display: block;
  overflow: hidden;
  margin-top: 6px;
  color: #918995;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.home-order-title em {
  flex: none;
  padding: 2px 5px;
  border-radius: 3px;
  font-size: 10px;
  font-style: normal;
}
.home-order-title em.npc {
  color: #5267b5;
  background: #edf1ff;
}
.home-order-title em.real {
  color: #7b6238;
  background: #f6edda;
}
.home-order-title em.pinned {
  color: #a64e5d;
  background: #fff0f2;
}
.home-order-title em.fresh {
  color: #2f7254;
  background: #e9f7ef;
}
.home-order-actions {
  display: flex;
  gap: 5px;
  justify-content: flex-end;
}
.home-order-actions button {
  width: 28px;
  height: 28px;
  padding: 0;
  color: #5267b5;
  background: #fff;
  border: 1px solid #cfd7ee;
  border-radius: 4px;
  cursor: pointer;
}
.home-order-actions button:disabled {
  opacity: .3;
  cursor: default;
}
.home-order-empty {
  margin: 0;
  padding: 30px 20px;
  color: #98909a;
  font-size: 12px;
}
.npc-editor-stack {
  min-width: 0;
}
.npc-thread-form {
  padding: 20px 22px 24px;
  border-bottom: 1px solid #dddfe8;
}
.npc-form-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.npc-form-title b, .npc-form-title small {
  display: block;
}
.npc-form-title b {
  color: #34436f;
  font-size: 15px;
}
.npc-form-title small {
  margin-top: 4px;
  color: #9098aa;
  font-size: 11px;
}
.npc-form-title a {
  color: #5369c5;
  font-size: 12px;
  text-decoration: none;
}
.npc-form-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 10px;
}
.npc-form-grid label, .npc-wide-field {
  display: grid;
  gap: 5px;
  color: #70798c;
  font-size: 11px;
}
.npc-wide-field {
  margin-top: 12px;
}
.npc-wide-field > input {
  width: 100%;
}
.npc-thread-form textarea, .npc-add-reply textarea, .npc-reply-row textarea {
  width: 100%;
  min-height: 150px;
  padding: 10px;
  color: #303b59;
  background: #fff;
  border: 1px solid #ccd5e8;
  border-radius: 5px;
  outline: 0;
  font: inherit;
  font-size: 13px;
  line-height: 1.75;
  resize: vertical;
}
.npc-form-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-top: 12px;
}
.npc-form-actions small {
  color: #8a93a6;
  font-size: 11px;
}
.npc-reply-desk {
  padding: 19px 22px 25px;
}
.npc-reply-head {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  color: #3f4b70;
}
.npc-reply-head b {
  font-size: 14px;
}
.npc-reply-head span {
  color: #929bad;
  font-size: 11px;
}
.npc-reply-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 8px;
  padding: 13px 0;
  border-bottom: 1px solid #e2e5ed;
}
.npc-reply-row > div {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 42px 150px 180px 100px;
  gap: 8px;
  align-items: center;
}
.npc-reply-row > div > b {
  color: #5c6ba5;
  font-size: 12px;
}
.npc-reply-row > div label {
  display: flex;
  align-items: center;
  gap: 4px;
  color: #7d8597;
  font-size: 11px;
}
.npc-reply-row textarea {
  min-height: 82px;
}
.npc-add-reply {
  display: grid;
  gap: 10px;
  margin-top: 18px;
  padding: 15px;
  background: #f3f6fc;
  border: 1px solid #dbe2f0;
  border-radius: 7px;
}
.npc-add-reply > b {
  color: #3d4b77;
  font-size: 13px;
}
.npc-add-reply textarea {
  min-height: 110px;
}
.admin-npc-reply {
  margin-top: 10px;
  border-color: #cbd6ef;
}
.admin-npc-reply .reply-composer-head {
  background: #eef2ff;
}
.admin-npc-reply .npc-inline-fields {
  display: grid;
  grid-template-columns: 1fr 190px 110px;
  gap: 9px;
  margin-bottom: 10px;
}
.admin-npc-reply .npc-inline-fields label {
  display: grid;
  gap: 4px;
  color: #78839c;
  font-size: 11px;
}
.admin-npc-reply select, .admin-npc-reply input {
  height: 34px;
  padding: 0 9px;
  color: #34405f;
  background: #fff;
  border: 1px solid #cbd5e9;
  border-radius: 5px;
  font: inherit;
}
@media (max-width: 760px) {
  .npc-identity-manager {
    grid-template-columns: 1fr 1fr;
    padding: 14px;
  }
  .npc-identity-manager > div {
    grid-column: 1 / -1;
  }
  .npc-admin-layout {
    grid-template-columns: 1fr;
  }
  .npc-thread-index {
    display: flex;
    overflow-x: auto;
    gap: 7px;
    border-right: 0;
    border-bottom: 1px solid #ddd8cf;
  }
  .npc-thread-index > b {
    position: sticky;
    left: 0;
    flex: 0 0 112px;
    padding: 18px 8px;
    border-right: 1px solid #ddd8cf;
    text-align: center;
  }
  .npc-thread-index > p {
    display: none;
  }
  .npc-thread-index-row {
    flex: 0 0 210px;
    grid-template-columns: minmax(0,1fr);
    border: 1px solid #ddd8cf;
  }
  .npc-thread-select {
    min-width: 0;
  }
  .npc-thread-form, .npc-reply-desk {
    padding-inline: 14px;
  }
  .npc-form-grid {
    grid-template-columns: 1fr 1fr;
  }
  .npc-reply-row > div {
    grid-template-columns: 42px 1fr;
  }
  .npc-reply-row > div input, .npc-reply-row > div label {
    grid-column: 2;
  }
  .admin-npc-reply .npc-inline-fields {
    grid-template-columns: 1fr;
  }
  .home-order-list {
    padding-inline: 14px;
  }
  .home-order-row {
    grid-template-columns: 1fr 64px;
    gap: 7px;
  }
  .home-order-position {
    grid-column: 1 / -1;
  }
  .home-order-page-tabs {
    padding-inline: 14px;
  }
  .npc-thread-index {
    height: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scrollbar-gutter: auto;
  }
}
.novel-intro-wrap {
  max-width: 700px;
}
.novel-intro {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.novel-intro.expanded {
  display: block;
}
@media (max-width: 760px) {
  .novel-intro {
    -webkit-line-clamp: 5;
  }
}
.novel-intro-toggle {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 8px;
  padding: 0;
  color: #5a70cc;
  background: none;
  border: 0;
  font-size: 12px;
  cursor: pointer;
}
.novel-intro-toggle:hover {
  color: #455bb2;
}
.novel-intro-toggle span {
  font-size: 9px;
}
.novel-size-small {
  font-size: .86em;
}
.novel-size-normal {
  font-size: 1em;
}
.novel-size-large {
  font-size: 1.24em;
}
.novel-color-indigo {
  color: #5368bd;
}
.novel-color-rose {
  color: #c45f83;
}
.novel-color-gold {
  color: #a7792f;
}
.novel-color-green {
  color: #3d8869;
}
.novel-color-slate {
  color: #59627a;
}
.mobile-board-head-spacer {
  display: none;
}
.desktop-board-category-select {
  align-self: center;
  flex: none;
  height: 30px;
  margin-left: 5px;
  padding: 0 28px 0 10px;
  color: #56638e;
  background: #fff;
  border: 1px solid #d8dfef;
  border-radius: 6px;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}
.desktop-new-thread {
  align-self: center;
  flex: none;
  margin-right: 7px;
}
.board-cat-select {
  display: none;
}
@media (max-width: 680px) {
  .mobile-board-head-spacer {
    display: block;
    height: 16px;
  }
  .desktop-board-category-select, .desktop-new-thread {
    display: none;
  }
  .board-head .board-kicker, .board-head h2, .board-head p {
    display: none;
  }
  .board-head {
    min-height: 0;
    padding-block: 8px;
    justify-content: flex-end;
  }
  .board-category-nav {
    display: none;
  }
  .board-filter-tab {
    display: none;
  }
  .tab-spacer {
    display: none;
  }
  .board-cat-select {
    display: block;
    flex: none;
    height: 30px;
    margin: auto 0 auto auto;
    padding: 0 8px;
    color: #5a5a6e;
    background: #f4f6fb;
    border: 1px solid #d8dfef;
    border-radius: 6px;
    font-size: 12px;
    cursor: pointer;
  }
  .quick-thread-card {
    display: none;
  }
}
.real-user-admin-list article {
  grid-template-columns: 42px minmax(175px, 1.3fr) minmax(145px, .9fr) 112px 126px 110px;
}
.admin-post-count-control {
  display: grid;
  gap: 6px;
}
.admin-post-count-control label {
  display: grid;
  gap: 4px;
  color: #867b87;
  font-size: 12px;
}
.admin-post-count-control input {
  width: 100%;
  height: 30px;
  padding: 0 8px;
  color: #55495a;
  background: #fff;
  border: 1px solid #dcd3c8;
}
.admin-post-count-control button {
  height: 30px;
  color: #fff;
  background: #4a3957;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.admin-post-count-control button:disabled {
  color: #a19aa2;
  background: #ece7e1;
  cursor: not-allowed;
}
.npc-create-toggle {
  margin: 0 0 10px;
  padding: 5px 10px;
  color: #5267bb;
  background: #f5f7ff;
  border: 1px dashed #bdc9eb;
  border-radius: 6px;
  cursor: pointer;
  font-size: 12px;
}
.npc-inline-create {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) 150px auto;
  gap: 9px;
  align-items: end;
  margin: 0 0 12px;
  padding: 12px;
  background: #f3f6fd;
  border: 1px solid #d8e0f1;
  border-radius: 7px;
}
.npc-inline-create label {
  display: grid;
  gap: 4px;
  color: #78839c;
  font-size: 11px;
}
.npc-inline-create button {
  height: 34px;
  padding: 0 14px;
  color: #fff;
  background: #5369c5;
  border: 0;
  border-radius: 5px;
  cursor: pointer;
}
.npc-inline-create button:disabled {
  opacity: .5;
  cursor: default;
}
.thread-cat-label {
  position: relative;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  color: #42578f;
  background: linear-gradient(145deg, #fff, #eef2fb);
  border: 1px solid #d3dcef;
  border-radius: 12px;
  box-shadow: 0 4px 10px rgba(66, 83, 137, .08), inset 0 0 0 3px rgba(255,255,255,.7);
}
.thread-cat-label::before,
.thread-cat-label::after {
  content: "";
  position: absolute;
  width: 4px;
  height: 4px;
  background: currentColor;
  transform: rotate(45deg);
  opacity: .4;
}
.thread-cat-label::before {
  top: 5px;
  right: 5px;
}
.thread-cat-label::after {
  bottom: 5px;
  left: 5px;
}
.thread-cat-label span {
  display: grid;
  gap: 1px;
  font-family: "STSong", "Songti SC", serif;
  line-height: 1;
}
.thread-cat-label span b,
.thread-cat-label span i {
  display: block;
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .06em;
  white-space: nowrap;
}
.thread-cat-label.gold {
  color: #9a6c21;
  background: linear-gradient(145deg, #fffdf7, #fff1d6);
  border-color: #ead6ac;
}
.thread-cat-label.violet {
  color: #6658aa;
  background: linear-gradient(145deg, #fcfbff, #eeeaff);
  border-color: #d8d0f2;
}
.thread-cat-label.rose {
  color: #a65773;
  background: linear-gradient(145deg, #fffafd, #fbe7ee);
  border-color: #eacbd6;
}
.thread-cat-label.green {
  color: #4b8269;
  background: linear-gradient(145deg, #fbfffd, #e6f4ed);
  border-color: #c9e2d5;
}
.thread-cat-label.blue {
  color: #4d6fa8;
  background: linear-gradient(145deg, #fbfdff, #e7f0fb);
  border-color: #cad9ed;
}
.thread-title-line .pin,
.thread-title-line .hot,
.thread-card-top .pin,
.thread-card-top .hot {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  min-height: 20px;
  padding: 1px 7px;
  color: #48609f;
  background: #edf2ff;
  border: 1px solid #ccd8f3;
  border-radius: 999px;
  box-shadow: none;
  font-family: inherit;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .02em;
}
.thread-title-line .pin::before,
.thread-card-top .pin::before {
  content: "◆";
  font-size: 7px;
  opacity: .65;
}
.thread-title-line .pin.feat,
.thread-card-top .pin.feat {
  color: #99652c;
  background: #fff7e7;
  border-color: #ead6ac;
}
.thread-title-line .pin.feat::before,
.thread-card-top .pin.feat::before {
  content: "✦";
  font-size: 10px;
}
.thread-title-line .hot,
.thread-card-top .hot {
  color: #a65068;
  background: #fff0f4;
  border-color: #ebcbd5;
}
.thread-title-line .hot::before,
.thread-card-top .hot::before {
  content: "♨";
  font-size: 10px;
}
@media (max-width: 880px) {
  .real-user-admin-list article {
    grid-template-columns: 40px minmax(0, 1fr);
  }
  .admin-user-history, .admin-post-count-control, .admin-level-control, .admin-role-control {
    grid-column: 2;
  }
  .admin-post-count-control, .admin-level-control, .admin-role-control {
    grid-template-columns: 1fr 1fr;
    align-items: center;
  }
}
@media (max-width: 680px) {
  .thread-cat-label {
    width: 34px;
    height: 34px;
    border-radius: 10px;
  }
  .thread-cat-label span b, .thread-cat-label span i {
    font-size: 9px;
  }
  .thread-title-tags {
    flex-wrap: wrap;
    row-gap: 3px;
  }
  .thread-title-line .pin, .thread-title-line .hot {
    min-height: 18px;
    padding-inline: 6px;
    font-size: 10px;
  }
  .thread-page .thread-title-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "heading" "admin" "stats";
  }
  .thread-page .thread-heading,
  .thread-page .thread-admin-bar,
  .thread-page .thread-title-stats {
    grid-column: 1;
    min-width: 0;
  }
  .thread-page .thread-heading h2 {
    overflow-wrap: anywhere;
  }
  .thread-page .thread-admin-bar {
    margin-top: 5px;
    padding-top: 9px;
  }
  .thread-page .thread-title-stats {
    display: flex;
    gap: 20px;
    padding: 10px 0 0;
    border-left: 0;
    border-top: 1px solid #e2e7f2;
  }
  .npc-inline-create {
    grid-template-columns: 1fr;
  }
}
.thread-cat-label {
  justify-self: start;
  width: max-content;
  min-width: 0;
  height: 28px;
  padding: 0 10px;
  border-radius: 7px;
  box-shadow: none;
}
.thread-cat-label.gold,
.thread-cat-label.violet,
.thread-cat-label.rose,
.thread-cat-label.green,
.thread-cat-label.blue {
  background: transparent;
  box-shadow: none;
}
.thread-cat-label::before,
.thread-cat-label::after {
  display: none;
}
.thread-cat-label span {
  display: block;
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .04em;
  white-space: nowrap;
}
.thread-row:not(.thread-row-skeleton) {
  grid-template-columns: 96px minmax(0, 1fr) 110px 90px 120px;
}
.thread-columns {
  padding-left: 112px;
}
@media (max-width: 1050px) {
  .thread-row:not(.thread-row-skeleton) {
    grid-template-columns: 94px minmax(0, 1fr) 90px 70px 90px;
  }
  .thread-columns {
    padding-left: 110px;
  }
}
@media (max-width: 820px) {
  .thread-row:not(.thread-row-skeleton) {
    grid-template-columns: 90px minmax(0, 1fr) 72px;
  }
}
@media (max-width: 680px) {
  .thread-row:not(.thread-row-skeleton) {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 7px;
    min-height: 0;
    padding: 13px 12px;
  }
  .thread-cat-label {
    grid-column: 1;
    justify-self: start;
    width: max-content;
    min-width: 0;
    height: 28px;
    padding-inline: 9px;
    border-radius: 7px;
  }
  .thread-cat-label span {
    font-size: 13px;
  }
  .thread-main {
    grid-column: 1;
    min-width: 0;
  }
  .thread-title-line {
    display: block;
    overflow: visible;
  }
  .thread-title-inner {
    display: inline;
    width: auto;
  }
  .thread-title-line strong {
    display: inline;
    overflow: visible;
    width: auto;
    -webkit-box-orient: initial;
    -webkit-line-clamp: unset;
  }
  .thread-title-tags {
    display: inline-flex;
    flex-wrap: nowrap;
    gap: 4px;
    margin-left: 4px;
    vertical-align: middle;
  }
  .thread-title-line .pin,
  .thread-title-line .hot,
  .thread-title-line .tag {
    overflow: visible;
    max-width: none;
    text-overflow: clip;
    white-space: nowrap;
  }
  .thread-mobile-author {
    display: grid;
    grid-template-columns: auto minmax(0, auto) auto auto;
    align-items: center;
    justify-content: end;
    gap: 7px;
    width: 100%;
    margin-top: 1px;
    text-align: right;
  }
  .thread-mobile-author b,
  .thread-mobile-author small {
    max-width: none;
    line-height: 18px;
  }
  .thread-mobile-author small {
    margin-top: 0;
  }
  .thread-mobile-replies {
    font-size: 12px;
    line-height: 18px;
    white-space: nowrap;
    color: #536184;
  }
}
.serial-card::after {
  pointer-events: none;
}
.serial-card > * {
  position: relative;
  z-index: 1;
}
.serial-chapter-link {
  display: block;
  color: inherit;
  text-decoration: none;
}
.serial-chapter-link h3 {
  transition: color .16s ease;
}
.serial-chapter-link:hover h3 {
  color: #5066c2;
}
.serial-story-progress {
  margin-top: 14px !important;
}
.serial-story-progress b {
  color: #5368bd;
  font-weight: 600;
}
.top-replies-panel {
  overflow: hidden;
  padding-bottom: 2px;
  background: linear-gradient(180deg, #f5f7ff 0, #fbfcff 92px, #f7f9fe 100%);
  border-color: #d9e0ef;
  box-shadow: 0 10px 28px rgba(60, 76, 133, .07);
}
.top-replies-panel .top-replies-heading {
  min-height: 64px;
  padding: 12px 16px;
  background: linear-gradient(90deg, rgba(91, 113, 203, .08), rgba(224, 169, 79, .05));
  border-bottom-color: #dce3f1;
}
.top-replies-panel .top-replies-heading h3 {
  color: #33467d;
  font-size: 15px;
}
.top-replies-panel .top-replies-heading span {
  color: #8a96b5;
  font-size: 11px;
  letter-spacing: .04em;
}
.top-replies-panel .top-replies-heading p {
  color: #8b94aa;
}
.top-replies-panel > .top-reply {
  position: relative;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 11px;
  margin: 10px 12px;
  padding: 12px 14px 12px 16px;
  background: rgba(255, 255, 255, .96);
  border: 1px solid #e0e6f2;
  border-radius: 10px;
  box-shadow: 0 3px 12px rgba(58, 72, 123, .045);
}
.top-replies-panel > .top-reply::before {
  content: "";
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 0;
  width: 3px;
  background: linear-gradient(180deg, #677fd6, #d9a653);
  border-radius: 0 3px 3px 0;
}
.top-replies-panel .top-reply .mini-avatar {
  width: 36px;
  height: 36px;
  overflow: hidden;
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px #dbe2ef;
}
.top-replies-panel .mini-avatar > img {
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  border-radius: inherit;
  object-fit: cover;
  object-position: center;
}
.top-replies-panel .top-reply-head {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 28px;
}
.top-reply-author {
  display: flex;
  min-width: 0;
  align-items: center;
}
.top-reply-author b {
  overflow: hidden;
  color: #2f3d69;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.top-replies-panel .top-reply-actions {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: auto;
}
.top-replies-panel .top-reply-actions a,
.top-replies-panel .top-reply-actions button {
  min-height: 26px;
  padding: 3px 8px;
  color: #66739a;
  background: #f5f7fc;
  border: 1px solid #e1e6f1;
  border-radius: 999px;
  font-size: 11px;
  line-height: 18px;
  text-decoration: none;
}
.top-replies-panel .top-reply-actions a:hover,
.top-replies-panel .top-reply-actions button:hover {
  color: #4358ae;
  background: #edf1ff;
  border-color: #cfd8f1;
}
.top-replies-panel .top-reply-actions button.liked {
  color: #c44e68;
  background: #fff0f4;
  border-color: #f0cbd5;
}
.top-replies-panel .top-reply-body p {
  display: -webkit-box;
  margin: 4px 0 0;
  overflow: hidden;
  color: #4b5572;
  font-size: 13px;
  line-height: 1.65;
  white-space: normal;
  word-break: break-word;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.thread-title-line .pin,
.thread-title-line .hot,
.thread-card-top .pin,
.thread-card-top .hot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 22px;
  padding: 0 8px;
  border: 1px solid currentColor;
  border-radius: 999px;
  box-shadow: none;
  font-family: inherit;
  font-size: 10px;
  font-style: normal;
  font-weight: 650;
  line-height: 1;
  letter-spacing: .02em;
  white-space: nowrap;
}
.thread-title-line .pin,
.thread-card-top .pin {
  color: #4d68c7;
  background: #f6f8ff;
}
.thread-title-line .pin::before,
.thread-card-top .pin::before,
.thread-title-line .hot::before,
.thread-card-top .hot::before {
  content: "";
  display: block;
  width: 5px;
  height: 5px;
  margin-right: 5px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: none;
}
.thread-title-line .pin.feat,
.thread-card-top .pin.feat {
  color: #ac761c;
  background: #fffaf0;
}
.thread-title-line .hot,
.thread-card-top .hot {
  color: #ce5063;
  background: #fff7f8;
}
@media (max-width: 560px) {
  .top-replies-panel > .top-reply {
    grid-template-columns: 36px minmax(0,1fr) auto;
    align-items: center;
    gap: 8px;
    margin: 8px;
    padding: 11px 10px 11px 13px;
  }
  .top-replies-panel .top-reply-body,
  .top-replies-panel .top-reply .top-reply-body > .top-reply-head {
    display: contents;
  }
  .top-replies-panel .mini-avatar {
    grid-column: 1;
    grid-row: 1;
  }
  .top-replies-panel .top-reply-author {
    grid-column: 2;
    grid-row: 1;
  }
  .top-replies-panel .top-reply-actions {
    grid-column: 3;
    grid-row: 1;
    flex-wrap: nowrap;
    margin-left: 0;
    gap: 2px;
  }
  .top-replies-panel .top-reply-body p {
    grid-column: 1 / -1;
    margin: 0;
  }
  .top-replies-panel .top-reply-actions a,
  .top-replies-panel .top-reply-actions button {
    min-height: 24px;
    padding: 2px 5px;
    white-space: nowrap;
  }
}
@media (min-width: 1101px) {
  .novel-manage-grid {
    grid-template-columns: 190px minmax(0, 1fr);
  }
  .novel-editor-card, .novel-preview-card {
    grid-column: 2;
  }
}
.novel-preview-card > .novel-content-blocks {
  overflow-y: auto;
  max-height: 720px;
  padding: 22px;
}
.novel-preview-card .novel-content-blocks .novel-dialogue-message,
.novel-preview-card .novel-content-blocks .novel-letter-modal article {
  overflow: visible;
  max-height: none;
  padding: 0;
}
.novel-prose .novel-dialogue-bubble p,
.novel-preview-card .novel-content-blocks .novel-dialogue-bubble p {
  margin: 0;
  padding: 0;
  color: inherit;
  background: transparent;
  font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 13px;
  line-height: 1.65;
  text-align: left;
  text-indent: 0;
  letter-spacing: 0;
  cursor: inherit;
}
.novel-editor-paragraph > header nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 3px;
}
.novel-editor-paragraph > header nav button {
  min-height: 28px;
  padding: 0 6px;
}
@media (max-width: 720px) {
  .novel-editor-card {
    padding-bottom: 92px;
  }
  .novel-module-toolbox, .novel-module-toolbox.collapsed {
    position: fixed;
    z-index: 80;
    right: 8px;
    bottom: 8px;
    left: 8px;
    order: initial;
    width: auto;
    padding: 6px;
    background: rgba(247, 249, 255, .97);
    border-color: #bcc8e4;
    border-radius: 12px;
    box-shadow: 0 10px 32px rgba(30, 43, 83, .22);
    backdrop-filter: blur(10px);
  }
  .novel-module-toolbox > header, .novel-module-toolbox > p {
    display: none;
  }
  .novel-module-toolbox > div {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    padding: 0;
  }
  .novel-module-toolbox > div > button {
    display: flex;
    min-height: 48px;
    justify-content: center;
    padding: 5px 7px;
    text-align: left;
  }
  .novel-module-toolbox > div > button i {
    flex-basis: 30px;
    height: 30px;
  }
  .novel-module-toolbox button small {
    display: none;
  }
  .novel-block-insertion {
    height: 42px;
    align-items: center;
    opacity: 1;
  }
  .novel-block-insertion button {
    min-height: 40px;
    height: 40px;
    padding: 0 10px;
    border-radius: 20px;
  }
  .novel-editor-paragraph > header {
    align-items: flex-start;
    flex-direction: column;
    padding-block: 7px;
  }
  .novel-editor-paragraph > header nav {
    width: 100%;
    justify-content: flex-start;
  }
  .novel-editor-paragraph > header nav button {
    min-height: 40px;
    padding-inline: 9px;
  }
}
.novel-module-error-count {
  display: inline-block;
  margin-top: 5px;
  padding: 2px 5px;
  color: #a44152;
  background: #fff0f3;
  border: 1px solid #ecc8d0;
  border-radius: 4px;
  font-size: 9px;
  font-style: normal;
}
.novel-editor-paragraph + .novel-module-error-count {
  margin: 4px 0 0 7px;
}
.novel-inspector-errors {
  margin: 10px 10px 0;
  padding: 7px 9px;
  color: #974354;
  background: #fff0f3;
  border: 1px solid #ecc9d1;
  border-radius: 6px;
  font-size: 9px;
}
.novel-inspector-errors p {
  margin: 3px 0;
}
.hero {
  color: var(--ink);
  background: linear-gradient(115deg, #fbfcff, #eef3ff);
  border-color: #d7e0f2;
  box-shadow: 0 10px 30px rgba(82,99,157,.1);
}
.hero.has-custom-banner {
  background-image: linear-gradient(90deg, rgba(250,252,255,.86) 0%, rgba(247,249,255,.5) 34%, rgba(247,249,255,.06) 68%), var(--hero-banner-desktop);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.hero::before {
  display: block;
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(218,226,247,.08));
}
.hero::after {
  height: 68px;
  background: linear-gradient(180deg, transparent, rgba(229,235,250,.2));
}
.hero-grid {
  display: none;
}
.hero-copy {
  width: 45%;
  text-shadow: none;
}
.eyebrow {
  color: #66739b;
}
.eyebrow span {
  color: #5267be;
  background: rgba(240,243,255,.88);
  border-color: #d8e0f7;
}
.eyebrow i {
  background: #cfd7ed;
}
.hero h1 {
  color: #1f3465;
}
.hero h1 .hero-title-main::after {
  background: linear-gradient(90deg, #c99846, rgba(201,152,70,.08));
}
.hero h1 em {
  color: #9a6d25;
  background: rgba(255,248,229,.82);
  border-color: rgba(201,152,70,.34);
}
.hero-copy > p {
  color: #68789c;
}
.hero-meta {
  color: #65739d;
}
.hero-meta b {
  color: #314b9b;
}
.hero-pixel-archer {
  position: absolute;
  bottom: 0;
  left: 30%;
  z-index: 3;
  width: 166px;
  height: auto;
  pointer-events: none;
}
.hero-pixel-archer canvas {
  display: block;
  width: 100%;
  height: auto;
  image-rendering: pixelated;
}
.hero-custom-character {
  position: absolute;
  right: 6%;
  bottom: 0;
  z-index: 3;
  width: min(31%, 330px);
  height: 94%;
  object-fit: contain;
  object-position: center bottom;
  image-rendering: pixelated;
  filter: drop-shadow(0 10px 14px rgba(54,66,112,.15));
  pointer-events: none;
}
.forum-hero-panel {
  display: grid;
  gap: 18px;
}
.forum-hero-preview-switch {
  display: flex;
  gap: 6px;
  justify-self: start;
  padding: 3px;
  background: #f1f4fb;
  border: 1px solid #dce3f1;
  border-radius: 8px;
}
.forum-hero-preview-switch button {
  padding: 7px 12px;
  color: #727d99;
  background: transparent;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
}
.forum-hero-preview-switch button.active {
  color: #314b9b;
  background: #fff;
  box-shadow: 0 1px 4px rgba(63,78,125,.12);
}
.forum-hero-admin-preview {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 190px;
  overflow: hidden;
  padding: 28px 34px;
  background: linear-gradient(115deg, #fbfcff, #eef3ff);
  background-position: center;
  background-size: cover;
  border: 1px solid #d7e0f2;
  border-radius: 13px;
}
.forum-hero-admin-preview.preview-mobile {
  width: min(100%, 420px);
  min-height: 137px;
  justify-self: center;
  padding: 18px 20px;
}
.forum-hero-admin-preview.preview-mobile > div b {
  font-size: 22px;
}
.forum-hero-admin-preview.preview-mobile > img {
  right: 1%;
  width: 40%;
}
.forum-hero-admin-preview > div {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 6px;
  color: #314b9b;
}
.forum-hero-admin-preview > div small {
  color: #66739b;
}
.forum-hero-admin-preview > div b {
  font-family: "STSong", "SimSun", serif;
  font-size: 30px;
}
.forum-hero-admin-preview > div span {
  color: #9a6d25;
  font-size: 13px;
}
.forum-hero-admin-preview > img {
  position: absolute;
  right: 5%;
  bottom: 0;
  width: 30%;
  height: 92%;
  object-fit: contain;
  object-position: center bottom;
  image-rendering: pixelated;
}
.forum-hero-admin-preview > em {
  position: absolute;
  right: 24px;
  bottom: 18px;
  color: #98a3bd;
  font-size: 12px;
  font-style: normal;
}
.forum-hero-controls {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.forum-hero-controls > article {
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 178px;
  padding: 18px;
  background: #f8f9fd;
  border: 1px solid #dce3f1;
  border-radius: 10px;
}
.forum-hero-controls article b {
  color: #4a526d;
  font-size: 14px;
}
.forum-hero-controls article p {
  margin: 5px 0 0;
  color: #8b94ab;
  font-size: 12px;
  line-height: 1.65;
}
.forum-hero-controls button.danger {
  justify-self: start;
  padding: 8px 11px;
  color: #a34d5c;
  background: #fff2f4;
  border: 1px solid #e8cbd1;
  cursor: pointer;
}
.banner-crop-dialog {
  width: min(1040px, calc(100vw - 28px));
}
.banner-crop-stage {
  height: min(56vw, 520px);
  background: #182033;
}
.banner-crop-dialog .reactEasyCrop_CropArea {
  border-color: rgba(255,255,255,.9);
  box-shadow: 0 0 0 9999em rgba(8,13,25,.62);
}
@media (max-width: 820px) {
  .hero-copy {
    width: 47%;
  }
  .hero-pixel-archer {
    left: 32%;
    width: 148px;
  }
}
@media (max-width: 680px) {
  .hero {
    background-position: 58% center;
  }
  .hero.has-custom-banner {
    background-image: linear-gradient(90deg, rgba(250,252,255,.86) 0%, rgba(247,249,255,.5) 34%, rgba(247,249,255,.06) 68%), var(--hero-banner-mobile);
  }
  .hero-copy {
    width: 56%;
  }
  .hero-pixel-archer {
    display: none;
  }
  .hero-custom-character {
    right: 1%;
    width: 39%;
    height: 92%;
  }
  .hero h1 {
    max-width: 190px;
    color: #1f3465;
    text-shadow: 0 1px 8px rgba(255,255,255,.82);
  }
  .hero-meta {
    color: #52638e;
  }
  .forum-hero-controls {
    grid-template-columns: 1fr;
  }
  .forum-hero-admin-preview {
    min-height: 145px;
    padding: 20px;
  }
  .forum-hero-admin-preview > div b {
    font-size: 23px;
  }
  .forum-hero-admin-preview > img {
    width: 42%;
  }
}
.novel-editor-text-section {
  overflow: hidden;
  background: #fff;
  border: 1px solid #dbe2ef;
  border-radius: 9px;
}
.novel-editor-text-section.selected {
  border-color: #7185cf;
  box-shadow: 0 0 0 2px rgba(92,115,198,.1);
}
.novel-editor-text-section > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 45px;
  padding: 7px 10px;
  color: #8490ab;
  background: #fafbfe;
  border-bottom: 1px solid #e5eaf3;
}
.novel-editor-text-section > header span, .novel-editor-text-section > header small {
  display: block;
}
.novel-editor-text-section > header span {
  color: #536285;
  font-size: 11px;
  font-weight: 700;
}
.novel-editor-text-section > header small {
  margin-top: 2px;
  font-size: 9px;
}
.novel-editor-text-section > header button {
  min-height: 30px;
  padding: 0 10px;
  color: #5a6fb9;
  background: #fff;
  border: 1px solid #cfd8ec;
  border-radius: 6px;
  cursor: pointer;
  font-size: 10px;
}
.novel-editor-text-section .novel-format-toolbar {
  position: sticky;
  z-index: 2;
  top: 0;
  margin: 0;
  padding: 7px 8px;
  border: 0;
  border-bottom: 1px solid #e5eaf3;
  border-radius: 0;
}
.novel-editor-text-section textarea {
  display: block;
  width: 100%;
  min-height: 360px;
  padding: 16px;
  color: #303b5b;
  background: #fff;
  border: 0;
  outline: 0;
  resize: vertical;
  font: 14px/1.95 "Microsoft YaHei", sans-serif;
}
.novel-editor-text-section.bounded textarea {
  min-height: 220px;
}
.novel-editor-text-section textarea:focus {
  background: #fefeff;
  box-shadow: inset 0 0 0 2px rgba(113,133,207,.1);
}
.novel-editor-text-section > .novel-module-error-count {
  margin: 0 10px 9px;
}
@media (max-width: 720px) {
  .novel-editor-text-section > header {
    align-items: flex-start;
    flex-direction: column;
  }
  .novel-editor-text-section > header button, .novel-editor-text-section .novel-format-toolbar button {
    min-height: 40px;
  }
  .novel-editor-text-section .novel-format-toolbar {
    overflow-x: auto;
    flex-wrap: nowrap;
  }
  .novel-editor-text-section .novel-format-toolbar button {
    flex: none;
  }
  .novel-editor-text-section textarea, .novel-editor-text-section.bounded textarea {
    min-height: 300px;
    padding: 13px;
  }
}
.novel-manage-shell {
  width: min(1380px, calc(100% - 32px));
  max-width: 1380px;
}
.novel-manage-tabs {
  border-top: 1px solid #dce3f1;
  border-radius: 16px 16px 0 0;
}
.novel-manage-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  padding: 14px;
}
.novel-editor-topbar {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(280px, 1fr) minmax(260px, 420px) minmax(180px, 1fr);
  align-items: center;
  gap: 14px;
  min-width: 0;
  padding: 12px 18px;
  background: #fff;
  border: 1px solid #dce3f1;
  border-radius: 10px;
}
.novel-editor-chapter-tools {
  display: flex;
  grid-column: 1;
  align-items: center;
  justify-self: end;
  gap: 8px;
  min-width: 0;
}
.novel-editor-chapter-tools > button {
  flex: none;
  min-height: 40px;
  padding: 0 14px;
  color: #5065b9;
  background: #eef2ff;
  border: 1px solid #cad5f1;
  border-radius: 7px;
  cursor: pointer;
  font-weight: 700;
}
.novel-editor-chapter-tools > button.active {
  color: #fff;
  background: #5369c5;
  border-color: #5369c5;
}
.novel-editor-chapter-tools select {
  min-width: 0;
  width: min(260px, 26vw);
  height: 40px;
  padding: 0 10px;
  color: #384567;
  background: #fff;
  border: 1px solid #d5ddeb;
  border-radius: 7px;
  font: inherit;
}
.novel-editor-topbar .novel-editor-title {
  display: flex;
  grid-column: 2;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 0;
}
.novel-editor-title > span {
  flex: none;
  color: #6b7693;
  font-size: 13px;
}
.novel-editor-topbar input {
  min-width: 0;
  width: min(100%, 360px);
  padding: 8px 10px;
  color: #35446f;
  text-align: center;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 7px;
  outline: 0;
  font: 700 18px/1.35 Georgia, "STSong", serif;
}
.novel-editor-topbar input:hover,
.novel-editor-topbar input:focus {
  background: #f7f9fe;
  border-color: #cad5f1;
}
.novel-editor-topbar-actions {
  grid-column: 3;
  display: flex;
  gap: 8px;
  justify-self: start;
}
.novel-editor-topbar-actions > button {
  min-height: 40px;
  padding: 0 18px;
  color: #fff;
  background: #5369c5;
  border: 1px solid #5369c5;
  border-radius: 7px;
  cursor: pointer;
  font-weight: 700;
}
.novel-editor-topbar-actions > button.preview {
  color: #5065b9;
  background: #f4f6fd;
  border-color: #cad5f1;
}
.novel-editor-topbar-actions > button:disabled {
  cursor: not-allowed;
  opacity: .55;
}
.novel-editor-card {
  grid-column: 1;
  justify-self: center;
  width: min(100%, 1180px);
  min-width: 0;
}
.novel-advanced-editor-layout {
  display: block;
  margin-top: 0;
}
.novel-document-editor-shell {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}
.novel-editor-sidebar {
  position: sticky;
  top: 12px;
  display: grid;
  gap: 10px;
  max-height: calc(100vh - 24px);
  overflow-y: auto;
  scrollbar-width: thin;
}
.novel-editor-card .novel-module-toolbox,
.novel-editor-card .novel-module-inspector {
  position: static;
  width: 100%;
}
.novel-editor-card .novel-module-toolbox.collapsed {
  width: 100%;
}
.novel-editor-card .novel-module-toolbox > div {
  grid-template-columns: 1fr;
}
.novel-basic-toolbox {
  color: #334064;
  background: #f8f9fd;
  border: 1px solid #d8dfef;
  border-radius: 10px;
}
.novel-basic-toolbox > header {
  min-height: 52px;
  padding: 10px 12px;
  border-bottom: 1px solid #dfe5f1;
}
.novel-basic-toolbox > header span {
  display: block;
  color: #9aa4bc;
  font: 9px/1.2 Georgia, serif;
  letter-spacing: .15em;
}
.novel-basic-toolbox > header b {
  display: block;
  margin-top: 3px;
  font-size: 13px;
}
.novel-basic-toolbox .novel-format-toolbar {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  margin: 0;
  padding: 9px;
  background: transparent;
  border: 0;
}
.novel-basic-toolbox .novel-format-toolbar > button {
  min-height: 36px;
}
.novel-basic-toolbox .novel-format-toolbar > button.convert {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 58px;
  padding: 8px 10px;
  color: #39476f;
  text-align: left;
}
.novel-basic-toolbox button.convert > i {
  display: grid;
  flex: 0 0 30px;
  height: 30px;
  place-items: center;
  color: #fff;
  background: #596fc8;
  border-radius: 5px;
  font-style: normal;
}
.novel-basic-toolbox button.convert span,
.novel-basic-toolbox button.convert b,
.novel-basic-toolbox button.convert small {
  display: block;
}
.novel-basic-toolbox button.convert small {
  margin-top: 3px;
  color: #949db1;
  font-size: 9px;
  line-height: 1.4;
}
.novel-basic-colors {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 5px;
}
.novel-basic-colors button.color {
  width: 100%;
}
.novel-editor-card .novel-module-inspector.empty {
  display: none;
}
.novel-editor-card .novel-document-editor {
  width: 100%;
}
.novel-unified-document-editor {
  overflow: hidden;
  padding: 0;
  background: #fff;
  border: 1px solid #d3dced;
  border-radius: 10px;
}
.novel-unified-editor-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 58px;
  padding: 11px 18px;
  background: #fafbfe;
  border-bottom: 1px solid #e0e6f1;
}
.novel-unified-editor-header span,
.novel-unified-editor-header small {
  display: block;
}
.novel-unified-editor-header span {
  color: #3d4b77;
  font-size: 14px;
  font-weight: 700;
}
.novel-unified-editor-header small {
  margin-top: 3px;
  color: #8c96ab;
  font-size: 11px;
}
.novel-unified-editor-header > button {
  flex: none;
  min-height: 34px;
  padding: 0 12px;
  color: #5368bd;
  background: #eef2ff;
  border: 1px solid #cad5f1;
  border-radius: 6px;
  cursor: pointer;
}
.novel-unified-editor-flow {
  min-height: max(520px, calc(100vh - 330px));
  padding: 14px clamp(18px, 4vw, 48px) 80px;
  background: #fff;
}
.novel-unified-editor-flow .novel-editor-block-wrap {
  margin: 0;
}
.novel-editor-prose-chunk {
  position: relative;
  background: transparent;
  border: 0;
  border-radius: 6px;
}
.novel-editor-prose-chunk > [contenteditable] {
  min-height: 150px;
  padding: 12px 8px;
  color: #303b58;
  outline: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: 15px/2 "Microsoft YaHei", sans-serif;
}
.novel-editor-prose-chunk > [contenteditable]:focus {
  background: #fdfdff;
  box-shadow: inset 3px 0 #d8e0f4;
}
.novel-editor-prose-chunk > [contenteditable]:empty::before {
  content: attr(data-placeholder);
  color: #a0a9bb;
  pointer-events: none;
}
.novel-editor-prose-chunk > .novel-module-error-count {
  position: absolute;
  right: 8px;
  bottom: 3px;
}
.novel-editor-card .novel-editor-text-section textarea {
  min-height: max(520px, calc(100vh - 300px));
}
.novel-editor-card .novel-editor-text-section.bounded textarea {
  min-height: 180px;
}
.novel-editor-card .novel-editor-module-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  min-height: 64px;
  margin: 3px 8px;
  padding: 10px 12px;
  background: #f5f7ff;
  border: 1px dashed #8899d1;
  border-left: 5px solid #6077d2;
  border-radius: 8px;
  box-shadow: none;
  cursor: pointer;
}
.novel-editor-card .novel-editor-module-card > i {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  color: #5368bd;
  background: #fff;
  border: 1px solid #cad5f1;
  border-radius: 50%;
  font-style: normal;
  font-size: 17px;
}
.novel-editor-card .novel-editor-module-card > div {
  min-width: 0;
}
.novel-editor-card .novel-editor-module-card > div span,
.novel-editor-card .novel-editor-module-card > div b {
  display: block;
}
.novel-editor-card .novel-editor-module-card > div span {
  color: #5368bd;
  font-size: 11px;
  font-weight: 700;
}
.novel-editor-card .novel-editor-module-card > div b {
  overflow: hidden;
  margin-top: 3px;
  color: #46516e;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.novel-editor-card .novel-editor-module-card nav {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  justify-content: flex-end;
}
.novel-editor-card .novel-editor-module-card nav button {
  min-height: 28px;
  padding: 0 7px;
}
.novel-editor-card .novel-editor-module-card:hover {
  background: #eef2ff;
  border-color: #6077d2;
}
.novel-unified-editor-flow .novel-block-insertion {
  min-height: 20px;
  margin: 0;
  opacity: .42;
}
.novel-unified-editor-flow .novel-block-insertion:hover,
.novel-unified-editor-flow .novel-block-insertion.active {
  opacity: 1;
}
.novel-unified-editor-flow .novel-block-insertion button {
  font-size: 10px;
}
.novel-editor-actions {
  justify-content: flex-start;
}
.novel-editor-modal-backdrop {
  position: fixed;
  z-index: 140;
  inset: 0;
  display: grid;
  padding: 24px;
  place-items: center;
  background: rgba(24, 31, 55, .66);
  backdrop-filter: blur(5px);
}
.novel-preview-modal,
.novel-module-modal {
  width: min(1040px, calc(100vw - 40px));
  max-height: min(900px, 90vh);
  overflow: hidden;
  background: #fff;
  border: 1px solid #cfd8ec;
  border-radius: 14px;
  box-shadow: 0 24px 70px rgba(18, 27, 57, .3);
}
.novel-preview-modal > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 68px;
  padding: 12px 20px;
  border-bottom: 1px solid #e1e6f0;
}
.novel-preview-modal > header span {
  color: #95a0bd;
  font: 10px Georgia, serif;
  letter-spacing: .18em;
}
.novel-preview-modal > header h2 {
  margin: 4px 0 0;
  color: #36436a;
  font: 600 22px/1.35 Georgia, "STSong", serif;
}
.novel-preview-modal > header button,
.novel-module-modal .novel-module-inspector > header > button {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-size: 22px;
}
.novel-preview-modal > .novel-content-blocks {
  overflow-y: auto;
  min-height: 520px;
  max-height: calc(90vh - 69px);
  padding: 38px clamp(24px, 7vw, 90px) 60px;
}
.novel-preview-modal > .novel-content-blocks > p {
  margin: 0 0 1.25em;
  color: #303a56;
  font-size: 16px;
  line-height: 2.05;
  text-indent: 2em;
}
.novel-module-modal {
  overflow-y: auto;
}
.novel-module-modal .novel-module-inspector {
  position: static;
  width: 100%;
  max-height: none;
  border: 0;
  border-radius: 0;
}
.novel-module-modal .novel-dialogue-inspector {
  grid-template-columns: minmax(260px, .75fr) minmax(360px, 1.25fr);
}
.novel-module-modal .novel-inspector-fields {
  padding: 22px;
}
.novel-module-modal .novel-dialogue-inspector {
  padding: 18px;
}
@media (max-width: 820px) {
  .novel-manage-shell {
    width: 100%;
  }
  .novel-manage-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    padding: 10px 0 0;
  }
  .novel-editor-topbar {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    margin-inline: 10px;
    padding: 10px 12px;
  }
  .novel-editor-chapter-tools {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: auto minmax(0, 1fr);
    justify-self: stretch;
  }
  .novel-editor-chapter-tools select {
    width: 100%;
  }
  .novel-editor-topbar .novel-editor-title {
    grid-column: 1;
    justify-content: flex-start;
  }
  .novel-editor-topbar input {
    text-align: left;
  }
  .novel-editor-topbar-actions {
    grid-column: 2;
    gap: 5px;
    justify-self: end;
  }
  .novel-editor-topbar-actions > button {
    min-height: 44px;
    padding-inline: 11px;
  }
  .novel-editor-card {
    grid-column: 1;
  }
  .novel-document-editor-shell {
    grid-template-columns: minmax(0, 1fr);
  }
  .novel-editor-sidebar {
    position: static;
    order: 2;
    max-height: none;
    overflow: visible;
  }
  .novel-editor-card .novel-module-toolbox,
  .novel-editor-card .novel-module-toolbox.collapsed {
    position: static;
    right: auto;
    bottom: auto;
    left: auto;
    width: 100%;
    height: auto;
    padding: 0;
    box-shadow: none;
    backdrop-filter: none;
  }
  .novel-editor-card .novel-module-toolbox > header {
    display: flex;
  }
  .novel-editor-card .novel-module-toolbox > p {
    display: block;
  }
  .novel-editor-card .novel-module-toolbox > div {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .novel-basic-toolbox .novel-format-toolbar {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .novel-basic-toolbox .novel-format-toolbar > button.convert,
  .novel-basic-colors {
    grid-column: 1 / -1;
  }
  .novel-editor-card .novel-document-editor {
    order: 1;
  }
  .novel-editor-card {
    padding-bottom: 16px;
  }
  .novel-editor-card {
    width: 100%;
  }
  .novel-unified-editor-header {
    align-items: flex-start;
    padding-inline: 13px;
  }
  .novel-unified-editor-header small {
    max-width: 230px;
    line-height: 1.5;
  }
  .novel-unified-editor-flow {
    min-height: max(400px, calc(100vh - 300px));
    padding: 8px 8px 60px;
  }
  .novel-editor-prose-chunk > [contenteditable] {
    min-height: 140px;
    padding-inline: 7px;
    font-size: 15px;
  }
  .novel-editor-card .novel-editor-module-card {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .novel-editor-card .novel-editor-module-card nav {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }
  .novel-editor-modal-backdrop {
    padding: 8px;
  }
  .novel-preview-modal, .novel-module-modal {
    width: calc(100vw - 16px);
    max-height: 94vh;
    border-radius: 10px;
  }
  .novel-preview-modal > .novel-content-blocks {
    min-height: 0;
    max-height: calc(94vh - 69px);
    padding: 26px 20px 44px;
  }
  .novel-preview-modal > .novel-content-blocks > p {
    font-size: 15px;
  }
  .novel-module-modal .novel-dialogue-inspector {
    grid-template-columns: 1fr;
  }
}
.novel-detail-cover-editor {
  position: relative;
  align-self: start;
}
.novel-detail-cover-editor > .novel-detail-cover {
  width: 100%;
}
.novel-cover-edit-button {
  position: absolute;
  z-index: 3;
  right: -10px;
  bottom: 12px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 34px;
  padding: 0 11px;
  color: #fff;
  background: #4f4370;
  border: 2px solid #fff;
  border-radius: 18px;
  box-shadow: 0 5px 16px rgba(41, 31, 64, .24);
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
}
.novel-cover-edit-button span {
  font-size: 15px;
}
.novel-cover-edit-popover {
  position: absolute;
  z-index: 20;
  top: calc(100% + 10px);
  left: 0;
  display: grid;
  gap: 10px;
  width: min(310px, calc(100vw - 32px));
  padding: 14px;
  color: #4c4359;
  background: #fff;
  border: 1px solid #dcd3e3;
  border-radius: 10px;
  box-shadow: 0 18px 45px rgba(40, 30, 57, .2);
}
.novel-cover-edit-popover > b {
  font-size: 14px;
}
.novel-cover-edit-popover .image-uploader {
  display: grid;
  gap: 6px;
}
.novel-cover-edit-popover .image-uploader > button {
  min-height: 38px;
  color: #fff;
  background: #655583;
  border: 0;
  border-radius: 7px;
  cursor: pointer;
}
.novel-cover-edit-popover .image-uploader > small {
  color: #93899d;
  font-size: 10px;
}
.novel-cover-edit-popover > button {
  justify-self: end;
  padding: 5px 10px;
  color: #786e80;
  background: transparent;
  border: 0;
  cursor: pointer;
}
.forum-category-create {
  display: flex;
  gap: 10px;
  padding: 18px 24px;
  border-bottom: 1px solid #ece6de;
}
.forum-category-create input {
  flex: 1;
  min-width: 0;
  height: 40px;
  padding: 0 12px;
  border: 1px solid #d9d0c6;
  border-radius: 6px;
  outline: 0;
}
.forum-category-create button, .forum-category-list button {
  min-height: 34px;
  padding: 0 11px;
  color: #fff;
  background: #493b57;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
}
.forum-category-create button:disabled, .forum-category-list button:disabled {
  cursor: not-allowed;
  opacity: .42;
}
.forum-category-list {
  display: grid;
  gap: 9px;
  padding: 18px 24px 28px;
}
.forum-category-list article {
  display: grid;
  grid-template-columns: auto minmax(160px, 1fr) auto auto auto;
  align-items: end;
  gap: 10px;
  padding: 12px;
  background: #faf8f5;
  border: 1px solid #e5ded5;
  border-radius: 8px;
}
.forum-category-order {
  display: grid;
  grid-template-columns: 30px 30px;
  gap: 4px;
}
.forum-category-order button {
  width: 30px;
  padding: 0;
  color: #675873;
  background: #eee9f1;
}
.forum-category-list label {
  display: grid;
  gap: 5px;
  color: #8a818a;
  font-size: 10px;
}
.forum-category-list input {
  width: 100%;
  height: 34px;
  padding: 0 9px;
  color: #443b4b;
  background: #fff;
  border: 1px solid #d9d0c6;
  border-radius: 5px;
  outline: 0;
}
.forum-category-list article > small {
  align-self: center;
  min-width: 66px;
  color: #978e98;
  font-size: 11px;
}
.forum-category-list button.danger {
  color: #a24350;
  background: #f8e7e9;
}
@media (max-width: 820px) {
  .novel-cover-edit-button {
    right: -6px;
    bottom: 8px;
  }
  .forum-category-create {
    padding-inline: 15px;
  }
  .forum-category-list {
    padding-inline: 15px;
  }
  .forum-category-list article {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
  }
  .forum-category-list label {
    grid-column: 2;
  }
  .forum-category-list article > small {
    grid-column: 2;
  }
  .forum-category-list article > button {
    grid-column: auto;
  }
}
body .career-home-card {
  color: #eef2ff;
  background: radial-gradient(circle at 92% 8%, rgba(154, 171, 255, .28), transparent 115px),
    linear-gradient(145deg, #26366f, #182450 72%);
  border-color: #334783;
  box-shadow: 0 10px 26px rgba(35, 50, 105, .2);
}
body .career-home-card h3 {
  color: #fff;
}
body .toast {
  z-index: 360;
}
.novel-content-blocks > p.novel-paragraph-manual-indent {
  text-indent: 0;
}
.novel-detail-hero {
  display: block;
  min-height: 0;
  padding: 42px 46px 34px;
}
.novel-detail-primary {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 40px;
  align-items: start;
}
.novel-detail-primary .novel-detail-cover-editor {
  width: 260px;
}
.novel-detail-primary .novel-detail-cover {
  display: block;
  box-sizing: border-box;
  aspect-ratio: 1280 / 1700;
  height: auto;
  text-decoration: none;
}
.novel-detail-primary .novel-detail-copy {
  grid-column: auto;
  grid-row: auto;
  align-self: start;
  padding-top: 0;
}
.novel-detail-primary .novel-detail-tags {
  grid-column: auto;
  grid-row: auto;
  margin: 18px 0 14px;
}
.novel-detail-primary .novel-detail-actions {
  grid-column: auto;
  grid-row: auto;
  margin-top: 0;
}
.novel-detail-intro-section {
  border-top: 1px solid #e1e6f0;
  margin-top: 24px;
  padding-top: 18px;
}
.novel-detail-intro-section > h2 {
  margin: 0 0 9px;
  color: #3d4b75;
  font: 600 14px/1.4 Georgia, "STSong", serif;
  letter-spacing: .08em;
}
.novel-detail-intro-section .novel-intro-wrap {
  max-width: none;
}
@media (min-width: 761px) {
  .novel-detail-primary .novel-detail-copy {
    align-self: stretch;
    display: flex;
    flex-direction: column;
  }
  .novel-detail-primary .novel-status-badge {
    align-self: flex-start;
  }
  .novel-detail-primary .novel-detail-tags {
    margin: auto 0 18px;
  }
}
@media (max-width: 760px) {
  .novel-detail-hero {
    padding: 24px 18px 22px;
  }
  .novel-detail-primary {
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 17px;
  }
  .novel-detail-primary .novel-detail-cover-editor {
    width: 112px;
  }
  .novel-detail-primary .novel-detail-copy {
    display: block;
    align-self: start;
  }
  .novel-detail-primary .novel-detail-tags {
    margin: 11px 0 10px;
  }
  .novel-detail-primary .novel-detail-actions {
    gap: 7px;
  }
  .novel-detail-primary .novel-detail-actions a {
    min-width: 0;
    min-height: 42px;
    padding-inline: 8px;
  }
  .novel-detail-intro-section {
    margin-top: 18px;
    padding-top: 15px;
  }
}
@media (max-width: 420px) {
  .novel-detail-hero {
    padding-inline: 14px;
  }
  .novel-detail-primary {
    grid-template-columns: 98px minmax(0, 1fr);
    gap: 14px;
  }
  .novel-detail-primary .novel-detail-cover-editor {
    width: 98px;
  }
  .novel-detail-primary .novel-detail-actions a {
    font-size: 12px;
  }
}
.novel-module-modal {
  display: flex;
  overflow: hidden;
  flex-direction: column;
}
.novel-module-modal > .novel-module-inspector {
  flex: 1 1 auto;
  overflow-y: auto;
  min-height: 0;
}
.novel-module-modal-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 18px;
  background: #f7f9fd;
  border-top: 1px solid #dce3f1;
}
.novel-module-modal-actions small {
  color: #7b849d;
  font-size: 11px;
}
.novel-module-modal-actions > div {
  display: flex;
  gap: 8px;
}
.novel-module-modal-actions button {
  min-width: 108px;
  min-height: 40px;
  padding: 0 16px;
  color: #fff;
  background: #5369c5;
  border: 1px solid #5369c5;
  border-radius: 7px;
  cursor: pointer;
  font-weight: 700;
}
.novel-module-modal-actions button.secondary {
  color: #58668d;
  background: #fff;
  border-color: #d3dbea;
}
@media (max-width: 680px) {
  .novel-module-modal-actions {
    align-items: stretch;
    flex-direction: column;
    gap: 9px;
    padding: 10px 12px;
  }
  .novel-module-modal-actions > div {
    width: 100%;
  }
  .novel-module-modal-actions button {
    flex: 1;
    min-width: 0;
    min-height: 44px;
  }
}
.thread-reading-toolbar {
  position: fixed;
  z-index: 45;
  right: max(18px, calc((100vw - 1220px) / 2 - 68px));
  top: 50%;
  display: grid;
  gap: 6px;
  padding: 7px;
  border: 1px solid #ccd6ee;
  border-radius: 14px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 12px 30px rgba(47, 66, 110, .14);
  transform: translateY(-50%);
  backdrop-filter: blur(10px);
}
.thread-reading-toolbar button {
  display: grid;
  min-width: 48px;
  min-height: 46px;
  place-items: center;
  gap: 1px;
  border: 0;
  border-radius: 9px;
  color: #4e63a7;
  background: transparent;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
}
.thread-reading-toolbar button:hover:not(:disabled) {
  background: #eef2ff;
}
.thread-reading-toolbar button:disabled {
  cursor: default;
  opacity: .36;
}
.thread-reading-toolbar button span {
  font-size: 11px;
}
.thread-reading-new-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 16px 4px;
  color: #536bc3;
  font-size: 13px;
  font-weight: 800;
}
.thread-reading-new-divider::before,
.thread-reading-new-divider::after {
  height: 1px;
  flex: 1;
  content: '';
  background: #cbd6fa;
}
@media (max-width: 760px) {
  .thread-reading-toolbar {
    right: max(8px, env(safe-area-inset-right));
    top: clamp(112px, 30dvh, 260px);
    bottom: auto;
    grid-template-columns: minmax(0, 1fr);
    box-sizing: border-box;
    width: 48px;
    padding: 3px 1px;
    gap: 4px;
    border-radius: 12px;
    box-shadow: 0 3px 12px rgba(47, 66, 110, .10);
    transform: translateY(-50%);
  }
  .thread-reading-toolbar button {
    min-width: 0;
    width: 44px;
    min-height: 44px;
    padding: 2px;
  }
}
.forum-threads-error {
  display: grid;
  min-height: 290px;
  place-content: center;
  justify-items: center;
  gap: 9px;
  padding: 32px;
  color: #686476;
  text-align: center;
}
.forum-threads-error b {
  color: #3f4f88;
  font-size: 18px;
}
.forum-threads-error p {
  margin: 0;
  font-size: 13px;
}
.forum-threads-error button {
  margin-top: 4px;
  padding: 9px 16px;
  border: 1px solid #bdc9ed;
  border-radius: 9px;
  color: #4961b3;
  background: #f4f7ff;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
}
.mobile-site-nav {
  display: none;
}
.nav-coming-soon {
  gap: 5px;
  opacity: .72;
}
.nav-coming-soon small {
  padding: 2px 4px;
  color: #7f89a7;
  background: #edf0f8;
  border-radius: 4px;
  font-size: 9px;
}
.shared-search-link {
  text-decoration: none;
}
.forum-summary-card,
.continue-journey-card {
  display: grid;
  gap: 13px;
}
.summary-loading,
.journey-loading {
  display: grid;
  gap: 8px;
  min-height: 74px;
  align-content: center;
}
.summary-loading i,
.journey-loading i {
  display: block;
  height: 11px;
  background: #e8ecf6;
  border-radius: 999px;
  animation: forum-pulse 1.15s ease-in-out infinite alternate;
}
.summary-loading i:nth-child(2), .journey-loading i:nth-child(2) {
  width: 72%;
}
.summary-loading i:nth-child(3) {
  width: 45%;
}
.summary-error,
.journey-empty,
.account-load-error {
  display: grid;
  gap: 8px;
  color: #717b98;
  font-size: 12px;
}
.summary-error button,
.account-load-error button {
  width: fit-content;
  min-height: 34px;
  padding: 0 11px;
  color: #4f65b4;
  background: #f5f7ff;
  border: 1px solid #cad4f0;
  border-radius: 7px;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
}
.summary-totals {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  overflow: hidden;
  border: 1px solid #e0e5f2;
  border-radius: 9px;
}
.summary-totals span {
  display: grid;
  gap: 2px;
  padding: 10px 4px;
  text-align: center;
  border-right: 1px solid #e5e9f3;
}
.summary-totals span:last-child {
  border-right: 0;
}
.summary-totals b {
  color: #4359aa;
  font-family: Georgia, serif;
  font-size: 17px;
}
.summary-totals small {
  color: #9099b0;
  font-size: 10px;
}
.summary-trending {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.summary-trending li {
  border-top: 1px solid #edf0f6;
}
.summary-trending a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px 8px;
  padding: 10px 1px;
  color: inherit;
  text-decoration: none;
}
.summary-trending a > span {
  grid-column: 1 / -1;
  color: #7f8aaa;
  font-size: 10px;
}
.summary-trending a > b {
  overflow: hidden;
  color: #3d4d7c;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.summary-trending a > small {
  color: #9ba3b6;
  font-size: 10px;
  white-space: nowrap;
}
.summary-empty {
  margin: 0;
  color: #8992a9;
  font-size: 12px;
}
.journey-links {
  display: grid;
  gap: 8px;
}
.journey-links a {
  display: grid;
  gap: 3px;
  padding: 11px 12px;
  color: inherit;
  background: #f8f9fd;
  border: 1px solid #e1e6f2;
  border-radius: 9px;
  text-decoration: none;
}
.journey-links a:hover {
  border-color: #bdc9ed;
  background: #f3f6ff;
}
.journey-links span {
  color: #6878ab;
  font-size: 10px;
}
.journey-links b {
  overflow: hidden;
  color: #35456f;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.journey-links small {
  color: #929bb1;
  font-size: 10px;
}
.journey-empty p {
  margin: 0;
  line-height: 1.6;
}
.journey-empty a {
  width: fit-content;
  color: #5269bd;
  font-weight: 700;
  text-decoration: none;
}
.account-journey-card {
  padding: 18px;
  background: #fff;
  border: 1px solid #dbe3f3;
  border-radius: 14px;
  box-shadow: 0 7px 24px rgba(76,94,153,.075);
}
.account-journey-card .journey-links {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.account-load-error {
  justify-items: start;
  padding: 16px 0;
}
@media (max-width: 760px) {
  body {
    padding-bottom: calc(68px + env(safe-area-inset-bottom));
  }
  .mobile-site-nav {
    position: fixed;
    z-index: 70;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    min-height: calc(58px + env(safe-area-inset-bottom));
    padding: 5px 6px env(safe-area-inset-bottom);
    background: rgba(255,255,255,.96);
    border-top: 1px solid #d6def0;
    box-shadow: 0 -8px 24px rgba(55,72,123,.10);
    backdrop-filter: blur(14px);
  }
  .mobile-site-nav a,
  .mobile-site-nav button {
    position: relative;
    display: grid;
    min-width: 0;
    min-height: 48px;
    place-content: center;
    justify-items: center;
    gap: 2px;
    padding: 0;
    color: #7d88a6;
    background: transparent;
    border: 0;
    border-radius: 9px;
    cursor: pointer;
    font: inherit;
    text-decoration: none;
  }
  .mobile-site-nav a.active {
    color: #4860b5;
    background: #f0f3ff;
  }
  .mobile-site-nav a > span,
  .mobile-site-nav button > span {
    font-size: 18px;
    line-height: 1;
  }
  .mobile-site-nav a > b,
  .mobile-site-nav button > b {
    font-size: 10px;
  }
  .mobile-site-nav a > i {
    position: absolute;
    top: 3px;
    left: calc(50% + 7px);
    min-width: 16px;
    padding: 1px 4px;
    color: #fff;
    background: #d14f70;
    border-radius: 999px;
    font-size: 9px;
    font-style: normal;
    text-align: center;
  }
  .new-thread-fab {
    display: none !important;
  }
  body:has(.career-quiz-backdrop) .mobile-site-nav,
  body:has(input:focus, textarea:focus, [contenteditable="true"]:focus) .mobile-site-nav {
    display: none;
  }
  .account-journey-card {
    border-inline: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .account-journey-card .journey-links {
    grid-template-columns: 1fr;
  }
}
@media (prefers-reduced-motion: reduce) {
  .summary-loading i,
  .journey-loading i {
    animation: none;
  }
  .mobile-site-nav a,
  .journey-links a {
    transition: none;
  }
}
.forum-sticker-tools.forum-sticker-tools {
  display: block;
  width: 100%;
  min-width: 0;
  margin: 8px 0;
  text-align: left;
}
.forum-sticker-tools button {
  font: inherit;
  cursor: pointer;
}
.forum-sticker-tools .forum-sticker-toggle {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 4px 10px;
  color: #5363a4;
  background: #f5f6fd;
  border: 1px solid #d9def2;
  border-radius: 6px;
  font-size: 13px;
}
.forum-sticker-tools .forum-sticker-panel {
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 440px;
  padding: 10px;
  margin: 8px 0;
  border: 1px solid #d9def2;
  border-radius: 10px;
  background: #fff;
}
.forum-sticker-panel header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 0 8px;
  color: #5363a4;
  font-size: 13px;
}
.forum-sticker-panel header button {
  padding: 0 8px;
  height: 28px;
  border: 0;
  background: transparent;
  color: #5363a4;
}
.forum-sticker-tools .forum-sticker-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(64px,1fr));
  gap: 6px;
}
.forum-sticker-tools .forum-sticker-grid button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-width: 0;
  height: auto;
  padding: 5px 2px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: white;
  color: #5363a4;
}
.forum-sticker-tools .forum-sticker-grid button:hover,.forum-sticker-tools .forum-sticker-grid button:focus-visible {
  background: #f3f5ff;
  border-color: #b9c5ee;
  outline: 2px solid #b9c5ee;
  outline-offset: 1px;
}
.forum-sticker-grid img {
  display: block;
  width: 56px;
  height: 56px;
  object-fit: contain;
  border-radius: 4px;
}
.forum-sticker-tools .forum-sticker-item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
}
.forum-sticker-tools .forum-sticker-grid .forum-sticker-favorite {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  width: 28px;
  height: 28px;
  min-height: 28px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #8991b3;
  isolation: isolate;
  touch-action: manipulation;
}
.forum-sticker-tools .forum-sticker-grid .forum-sticker-favorite::before {
  content: '';
  position: absolute;
  inset: 4px;
  z-index: -1;
  border: 1px solid #e0e3f0;
  border-radius: 7px;
  background: rgb(248 248 255 / 94%);
  box-shadow: 0 1px 3px rgb(75 83 132 / 7%);
}
.forum-sticker-tools .forum-sticker-grid .forum-sticker-favorite svg {
  display: block;
  width: 12px;
  height: 12px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linejoin: round;
}
.forum-sticker-tools .forum-sticker-grid .forum-sticker-favorite[aria-pressed="true"] {
  color: #b58b40;
}
.forum-sticker-tools .forum-sticker-grid .forum-sticker-favorite[aria-pressed="true"]::before {
  background: #fff8e9;
  border-color: #ead7ad;
}
.forum-sticker-tools .forum-sticker-grid .forum-sticker-favorite[aria-pressed="true"] svg {
  fill: #e8c778;
}
.forum-sticker-tools .forum-sticker-grid .forum-sticker-favorite:hover {
  background: transparent;
  outline: none;
}
.forum-sticker-tools .forum-sticker-grid .forum-sticker-favorite:focus-visible {
  outline: 2px solid #a8b2dc;
  outline-offset: -2px;
  background: transparent;
}
.forum-sticker-tools .forum-sticker-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}
.forum-sticker-tools .forum-sticker-tabs button {
  border: 1px solid #d9def2;
  border-radius: 7px;
  padding: 6px 14px;
  min-height: 32px;
  background: #fff;
  color: #5363a4;
}
.forum-sticker-tools .forum-sticker-tabs button[aria-selected="true"] {
  background: #eef0ff;
  border-color: #9da9df;
}
.forum-sticker-tools .forum-sticker-empty {
  font-size: 12px;
  color: #7c83a6;
  padding: 12px 0;
}
.forum-sticker-tools .forum-sticker-grid span {
  display: block;
  margin: 0;
  color: #58668b;
  font-size: 12px;
  line-height: 1.4;
  white-space: nowrap;
}
.forum-inline-sticker {
  display: inline-block;
  width: 72px;
  height: 72px;
  max-width: 100%;
  object-fit: contain;
  vertical-align: text-bottom;
  border-radius: 5px;
  margin: 2px 3px 0;
  text-indent: 0;
}
.forum-sticker-tools .forum-sticker-preview {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 2px;
  margin-top: 6px;
}
.forum-sticker-preview .forum-inline-sticker {
  width: 38px;
  height: 38px;
}
.forum-sticker-tools small[role="status"] {
  display: block;
  color: #a6536d;
  font-size: 12px;
}
@media (max-width:600px) {
  .forum-inline-sticker {
    width: 60px;
    height: 60px;
  }
}
@property --tw-rotate-x {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-y {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-z {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-x {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-y {
  syntax: "*";
  inherits: false;
}
@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-ordinal {
  syntax: "*";
  inherits: false;
}
@property --tw-slashed-zero {
  syntax: "*";
  inherits: false;
}
@property --tw-numeric-figure {
  syntax: "*";
  inherits: false;
}
@property --tw-numeric-spacing {
  syntax: "*";
  inherits: false;
}
@property --tw-numeric-fraction {
  syntax: "*";
  inherits: false;
}
@property --tw-outline-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-blur {
  syntax: "*";
  inherits: false;
}
@property --tw-brightness {
  syntax: "*";
  inherits: false;
}
@property --tw-contrast {
  syntax: "*";
  inherits: false;
}
@property --tw-grayscale {
  syntax: "*";
  inherits: false;
}
@property --tw-hue-rotate {
  syntax: "*";
  inherits: false;
}
@property --tw-invert {
  syntax: "*";
  inherits: false;
}
@property --tw-opacity {
  syntax: "*";
  inherits: false;
}
@property --tw-saturate {
  syntax: "*";
  inherits: false;
}
@property --tw-sepia {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false;
}
@layer properties {
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
    *, ::before, ::after, ::backdrop {
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-border-style: solid;
      --tw-ordinal: initial;
      --tw-slashed-zero: initial;
      --tw-numeric-figure: initial;
      --tw-numeric-spacing: initial;
      --tw-numeric-fraction: initial;
      --tw-outline-style: solid;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
    }
  }
}

/* 2026-08-29 visual refinement: restrained adventure-guild BBS layer. */
:root {
  --ui-border: #d9e0ee;
  --ui-radius-compact: 8px;
  --ui-radius-content: 14px;
  --ui-shadow-soft: 0 8px 24px rgba(54, 68, 112, .07);
  --ui-shadow-overlay: 0 24px 70px rgba(27, 35, 67, .22);
  --ui-focus: #6279d0;
}

:where(.forum-home-page, .thread-page, .novel-site-page) {
  --ui-surface: rgba(255, 255, 255, .94);
  --ui-surface-soft: #f5f7fc;
  --ui-ink: #2f3b5e;
  --ui-muted: #8791aa;
}

.forum-home-page :where(.board-card, .side-card:not(.career-home-card)),
.thread-page :where(.thread-title-card, .forum-post, .top-replies-panel, .reply-composer),
.novel-site-page :where(.novel-detail-hero, .novel-stat-card, .novel-catalog-card, .novel-book-comments) {
  border-color: var(--ui-border);
  border-radius: var(--ui-radius-content);
  box-shadow: var(--ui-shadow-soft);
}

.forum-home-page :where(.new-thread, .desktop-new-thread),
.thread-page :where(.thread-title-stats > button, .post-footer button, .thread-pagination button),
.novel-site-page :where(.novel-detail-actions a, .novel-catalog-controls button, .novel-comment-composer button) {
  border-radius: var(--ui-radius-compact);
  transition: color .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.forum-home-page :where(.new-thread, .desktop-new-thread):active,
.thread-page :where(.thread-title-stats > button, .post-footer button, .thread-pagination button):active,
.novel-site-page :where(.novel-detail-actions a, .novel-catalog-controls button, .novel-comment-composer button):active {
  transform: translateY(1px);
}

.forum-home-page :where(.thread-title-line .pin, .thread-title-line .hot),
.thread-page :where(.thread-heading-tags .tag, .thread-heading-tags .pin, .user-rank),
.novel-site-page :where(.novel-status-badge, .novel-detail-tags span) {
  display: inline-flex;
  min-height: 20px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-weight: 700;
  line-height: 1;
}

:where(.forum-home-page, .thread-page, .novel-site-page) :where(button, a):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--ui-focus) 38%, transparent);
  outline-offset: 2px;
}

.thread-page .thread-title-card {
  min-height: 96px;
  padding: 16px 22px;
  border-color: var(--ui-border);
  border-radius: var(--ui-radius-content);
  box-shadow: var(--ui-shadow-soft);
}

.thread-page .thread-heading h2 {
  color: #283454;
  font-size: clamp(19px, 1.8vw, 24px);
  line-height: 1.45;
}

.thread-page .thread-title-stats {
  gap: 12px;
  padding-left: 20px;
  border-left-color: #e3e7f0;
}

.thread-page .thread-title-stats span {
  min-width: 44px;
  color: #98a0b1;
}

.thread-page .thread-title-stats b {
  color: #4b5877;
  font-size: 17px;
}

.thread-page .thread-title-stats > button {
  border-color: #d8deeb;
  border-radius: var(--ui-radius-compact);
  color: #65708b;
  background: #f8f9fc;
}

.thread-page .forum-post {
  grid-template-columns: 132px minmax(0, 1fr);
  overflow: hidden;
  border-color: var(--ui-border);
  border-radius: var(--ui-radius-content);
  box-shadow: 0 5px 18px rgba(54, 68, 112, .045);
}

.thread-page .post-user {
  padding: 20px 12px 16px;
  background: #f2f4f9;
  border-right-color: #dfe4ee;
}

.thread-page .post-user dl {
  border-top-color: #dce2ec;
}

.thread-page .post-body {
  padding: 0 24px;
}

.thread-page .post-meta {
  height: 38px;
  color: #a0a7b5;
  border-bottom-color: #e8ebf2;
}

.thread-page .thread-reading-copy {
  width: 100%;
  max-width: 780px;
  margin-right: auto;
  color: #343d58;
  font-size: 15px;
  line-height: 2;
}

@media (min-width: 821px) {
  .thread-page .thread-reading-copy { max-width: none; }
}

.thread-page .topic-timestamps,
.thread-page .post-meta a {
  color: #a2a9b7;
}

.thread-page .post-footer {
  border-top-color: #e8ebf2;
}

.thread-reading-toolbar {
  opacity: .58;
  transition: opacity .18s ease, box-shadow .18s ease, transform .18s ease;
}

.thread-reading-toolbar:hover,
.thread-reading-toolbar:focus-within {
  opacity: 1;
}

.forum-home-page .thread-title-line strong {
  color: #283657;
  font-size: 15px;
  font-weight: 720;
  line-height: 1.5;
}

.forum-home-page .thread-main > :where(small, .thread-mobile-author),
.forum-home-page :where(.thread-author, .thread-stats, .thread-last) {
  color: #929bb0;
}

.forum-home-page .career-home-card {
  padding: 16px 17px;
  background:
    radial-gradient(circle at 92% 8%, rgba(154, 171, 255, .16), transparent 100px),
    linear-gradient(145deg, #3a4b7c, #2b3969 72%);
  border-color: #53648f;
  box-shadow: 0 6px 18px rgba(35, 50, 105, .12);
}

.forum-home-page .career-home-card::after {
  opacity: .62;
}

.forum-home-page .career-home-sigils {
  margin: 12px 0 9px;
}

.forum-home-page .career-home-sigils i {
  width: 29px;
  height: 29px;
  font-size: 13px;
}

.forum-home-page .career-home-card h3 {
  font-size: 15px;
  line-height: 1.5;
}

.forum-home-page .career-home-card > p {
  margin: 6px 0 11px;
  color: #c0c8e2;
  font-size: 11px;
  line-height: 1.6;
}

.forum-home-page .career-home-card > button {
  min-height: 38px;
}

.thread-page :where(button, a):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--ui-focus) 38%, transparent);
  outline-offset: 2px;
}

.novel-reading-progress {
  position: fixed;
  z-index: 90;
  top: 0;
  right: 0;
  left: 0;
  height: 2px;
  overflow: hidden;
  background: rgba(96, 112, 171, .12);
  pointer-events: none;
}

.novel-reading-progress i {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, #6d7fc6, #b38b55);
  transform-origin: left center;
  transition: transform .12s linear;
}

.novel-reader-site-chrome {
  transition: opacity .22s ease, transform .22s ease;
}

.novel-reader-page.chrome-hidden .novel-reader-site-chrome {
  opacity: 0;
  transform: translateY(-18px);
  pointer-events: none;
}

.novel-reader-page .novel-reader-rail {
  opacity: .5;
  transition: opacity .18s ease, transform .18s ease;
}

.novel-reader-page .novel-reader-rail:hover,
.novel-reader-page .novel-reader-rail:focus-within {
  opacity: 1;
  transform: translateX(2px);
}

.novel-reader-page:not(.night) .novel-reading-card {
  background-color: #fffefa;
  background-image:
    radial-gradient(circle at 18% 12%, rgba(119, 94, 54, .025) 0 1px, transparent 1.5px),
    radial-gradient(circle at 78% 42%, rgba(92, 108, 150, .022) 0 1px, transparent 1.5px),
    repeating-linear-gradient(0deg, rgba(88, 76, 58, .012) 0 1px, transparent 1px 5px);
  background-size: 31px 29px, 37px 41px, auto;
}

.novel-reader-page.night .novel-reading-progress {
  background: rgba(190, 200, 229, .1);
}

.novel-reader-page.night .novel-reading-progress i {
  background: linear-gradient(90deg, #8b9bdd, #b89b75);
}

@media (max-width: 760px) {
  .novel-reader-page.chrome-hidden .novel-reader-site-chrome {
    opacity: 1;
    transform: none;
    pointer-events: auto;
  }

  .novel-reading-progress {
    z-index: 30;
  }

  .thread-page .thread-title-card {
    grid-template-columns: 1fr;
    gap: 13px;
    min-height: 0;
    padding: 15px;
    border-radius: 12px;
  }

  .thread-page .thread-title-stats {
    flex-wrap: wrap;
    gap: 9px;
    padding: 11px 0 0;
    border-top: 1px solid #e3e7f0;
    border-left: 0;
  }

  .thread-page .thread-title-stats > button {
    min-height: 36px;
  }

  .thread-page .forum-post {
    grid-template-columns: 1fr;
    border-radius: 12px;
  }

  .thread-page .post-user {
    flex-direction: row;
    align-items: center;
    gap: 10px;
    padding: 11px 13px;
    border-right: 0;
    border-bottom: 1px solid #dfe4ee;
    text-align: left;
  }

  .thread-page .post-user .profile-avatar {
    width: 40px;
    height: 40px;
    margin: 0;
  }

  .thread-page .post-user .user-rank {
    margin: 0 0 0 auto;
  }

  .thread-page .post-user dl {
    display: none;
  }

  .thread-page .post-body {
    padding: 0 15px;
  }

  .thread-page .thread-reading-copy {
    max-width: none;
    padding-block: 18px 22px;
    font-size: 14px;
  }

  .thread-page .post-list {
    padding-bottom: 82px;
  }

  .thread-reading-toolbar {
    opacity: 1;
  }

}

@media (prefers-reduced-motion: reduce) {
  .forum-home-page *,
  .thread-page *,
  .novel-site-page * {
    scroll-behavior: auto !important;
  }

  .forum-home-page :where(.new-thread, .desktop-new-thread),
  .thread-page :where(.thread-title-stats > button, .post-footer button, .thread-pagination button),
  .novel-site-page :where(.novel-detail-actions a, .novel-catalog-controls button, .novel-comment-composer button) {
    transition: none;
  }

  .thread-reading-toolbar {
    transition: none;
  }

  .novel-reading-progress i,
  .novel-reader-site-chrome,
  .novel-reader-page .novel-reader-rail {
    transition: none;
  }
}
/* Reading tools float above the page without reserving a content gutter. */
.thread-page .thread-reading-toolbar { width: 48px; box-sizing: border-box; padding: 3px 1px; gap: 4px; }
.thread-page .thread-reading-toolbar button { min-width: 0; width: 44px; min-height: 44px; padding: 2px; }
@media (max-width: 1380px) {
  .thread-page .thread-reading-toolbar { right: max(8px, env(safe-area-inset-right)); width: 48px; box-sizing: border-box; padding: 3px 1px; gap: 4px; }
  .thread-page .thread-reading-toolbar button { min-width: 0; width: 44px; min-height: 44px; padding: 2px; }
}
.thread-page .edge-tools.collapsed { padding: 0; border: 0; background: transparent; box-shadow: none; backdrop-filter: none; }
.thread-page .edge-tools { max-height: 100dvh; overflow-y: auto; }
.thread-page .edge-tools .thread-tool-handle { touch-action: none; user-select: none; width: 46px; height: 46px; cursor: grab; }
.thread-page .edge-tools .thread-tool-handle:active { cursor: grabbing; }
.thread-page .edge-tools.collapsed .thread-tool-handle { display: flex; padding: 0; background: transparent; }
.thread-page .edge-tools.collapsed.edge-right .thread-tool-handle { justify-content: flex-end; }
.thread-page .edge-tools.collapsed.edge-left .thread-tool-handle { justify-content: flex-start; }
.thread-page .edge-tools.collapsed .thread-tool-handle span { display: grid; place-items: center; width: 20px; height: 44px; font-size: 25px; border: 1px solid #ccd6ee; border-radius: 10px 0 0 10px; background: rgba(250,251,255,.92); box-shadow: 0 2px 8px #33446618; }
.thread-page .edge-tools.collapsed.edge-left .thread-tool-handle span { border-radius: 0 10px 10px 0; }
.novel-author-note {
  margin: 28px 0;
  padding: clamp(16px, 3vw, 24px);
  border: 1px solid #dce0f2;
  border-radius: 12px;
  background: #f6f7fc;
  color: #535b78;
  overflow-wrap: anywhere;
}
.novel-author-note h2 { margin: 0 0 12px; font-size: 16px; color: #5364a7; }
.novel-author-note p { margin: 0; white-space: pre-wrap; line-height: 1.9; font-size: 15px; }
.night .novel-author-note { background: #252b38; border-color: #434c63; color: #c5cbdb; }
.night .novel-author-note h2 { color: #abb9ef; }
.novel-author-note-editor { display: grid; gap: 10px; margin: 24px 0; }
.novel-author-note-editor textarea { width: 100%; box-sizing: border-box; resize: vertical; padding: 12px; border: 1px solid #dce0f2; border-radius: 8px; background: #fff; color: #333e60; font: inherit; line-height: 1.8; }
.novel-author-note-editor small { color: #727d9c; }
.text-avatar-save { min-height: 42px; padding: 8px 16px; border: 1px solid #9da9d2; border-radius: 8px; background: #f2f4ff; color: #455991; cursor: pointer; }
.text-avatar-save:disabled { opacity: .55; cursor: not-allowed; }
.image-lightbox header .lightbox-close { padding: 0; line-height: 1; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.lightbox-close svg { display: block; flex-shrink: 0; }
.notice-list > a p { white-space: pre-line; overflow-wrap: anywhere; }
.forum-sticker-tools .forum-sticker-grid { max-height: 320px; overflow-y: auto; overscroll-behavior: contain; }
.forum-sticker-pages { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:8px; font-size:12px; }
.forum-sticker-pages button { min-height:36px; padding:4px 10px; border:1px solid #d9def2; border-radius:6px; background:#f6f7ff; color:#5363a4; }
.forum-sticker-pages button:disabled { opacity:.4; cursor:default; }

/* Shared image controls use the forum palette without changing upload rules. */
@media(max-width:680px) {
 .site-header:has(.account-header-actions) { padding-top:12px; height:auto; }
}
.notification-chip > b,.mobile-site-nav a > i {
 display:flex; align-items:center; justify-content:center; box-sizing:border-box;
 width:auto; min-width:20px; height:20px; padding:0 4px; border-radius:999px;
 font-family:Arial,sans-serif; font-size:11px; font-weight:600; font-style:normal;
 line-height:1; letter-spacing:0; font-variant-numeric:tabular-nums; white-space:nowrap;
}
@media(max-width:760px) {
 .thread-desktop-chrome .site-header { height:auto; padding-bottom:16px; }
 .thread-desktop-chrome .header-main { height:auto; min-height:58px; }
 .thread-desktop-chrome .signal-strip,
 .thread-desktop-chrome .mobile-return-row,
 .thread-desktop-chrome .header-main > nav { display:none; }
}
.image-uploader { gap: 10px 12px; }
.image-uploader > .image-upload-trigger { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:8px 16px; border:1px solid #cfd6ed; border-radius:12px; background:#f3f5ff; color:#5263a1; font:inherit; font-size:13px; font-weight:500; box-shadow:0 2px 5px #6572a40a; }
.image-upload-trigger svg { flex-shrink:0; }
.image-uploader > .image-upload-trigger:hover:not(:disabled) { background:#e9edff; border-color:#aab7df; }
.image-uploader > small { flex:1 1 220px; color:#7d87a3; line-height:1.65; }
.image-upload-previews { grid-template-columns:repeat(auto-fill,minmax(90px,110px)); gap:10px; }
.image-upload-previews figure { border:1px solid #dce1f0; border-radius:12px; background:#f7f8fe; }
.image-upload-previews img { background:#f7f8fe; padding:6px; }
.image-upload-previews figure > button[aria-label] { width:32px; height:32px; top:2px; right:2px; background:#fff; color:#65719d; border:1px solid #dce1f0; box-shadow:0 2px 6px #34477818; line-height:1; }
.image-upload-previews .upload-failed { border-color:#bd7182; }
.image-upload-errors { flex:0 0 100%; min-width:0; max-width:100%; margin:0; padding:0; list-style:none; }
.image-upload-errors li { margin:6px 0; padding:10px 12px; border:1px solid #bd718280; border-radius:8px; background:#bd71820d; color:inherit; font-size:13px; line-height:1.6; }
.image-upload-errors strong,.image-upload-errors span { display:block; white-space:normal; overflow-wrap:anywhere; }
.composer-tools-row>.image-uploader>.image-upload-errors { grid-column:1/-1; min-width:0; }
.image-upload-previews .retry-upload { border-radius:7px; min-height:30px; background:#6474b7; }
.post-images > button { border-color:#dce1f0; border-radius:14px; background:#f7f8fe; }
.post-images img { padding:6px; background:#f7f8fe; }
.post-images.post-images-expanded { display:flex; flex-direction:column; gap:16px; width:100%; min-width:0; max-width:100%; }
.post-images.post-images-expanded > button { width:100%; min-width:0; max-width:100%; aspect-ratio:auto; height:auto; background:transparent; border:0; border-radius:8px; }
.post-images.post-images-expanded img { width:100%; max-width:100%; height:auto; padding:0; background:transparent; }
.image-lightbox .lightbox-save-original { display:inline-flex; align-items:center; min-height:36px; padding:0 12px; margin-left:auto; margin-right:12px; border:1px solid rgba(255,255,255,.3); border-radius:8px; color:#fff; background:rgba(255,255,255,.1); font:14px/1.4 sans-serif; text-decoration:none; }
.image-upload-trigger:focus-visible,.post-images > button:focus-visible,.image-lightbox button:focus-visible { outline:3px solid #8999dc; outline-offset:3px; }
.image-lightbox { background:rgba(29,36,61,.83); padding:20px; }
.image-lightbox > section { overflow:hidden; width:min(1060px,100%); height:min(820px,92dvh); grid-template-rows:60px minmax(0,1fr); color:#52618d; background:#f6f7fc; border:1px solid #d6ddef; border-radius:18px; box-shadow:0 20px 70px #101b3940; }
.image-lightbox header { padding:7px 10px 7px 18px; background:#fff; border-bottom:1px solid #e1e5f3; font-family:inherit; font-size:13px; line-height:1.4; }
.image-lightbox header button { width:44px; height:44px; border:1px solid #d6ddef; background:#f4f6ff; color:#59699e; border-radius:12px; }
.image-lightbox header .lightbox-original-action { height:44px; border-radius:12px; }
.lightbox-stage { overflow:hidden; padding:12px 12px 60px; }
.image-lightbox .lightbox-stage img { max-width:100%; max-height:100%; min-height:0; }
.lightbox-prev,.lightbox-next { width:44px; height:44px; top:auto; bottom:10px; transform:none; color:#59699e; border:1px solid #d6ddef; border-radius:12px; background:#fff; }
.lightbox-prev,.lightbox-next { display:flex; align-items:center; justify-content:center; padding:0; line-height:1; }
.lightbox-prev { left:12px; }.lightbox-next { right:12px; }
.lightbox-zoom-hint { bottom:20px; max-width:calc(100% - 132px); text-align:center; background:#e9edf8; color:#65739d; font-size:11px; }
.thread-owner-badge { display:inline-flex; align-items:center; padding:2px 7px; border:1px solid #e7d9b0; border-radius:5px; background:#fff9e9; color:#9a7b3e; font-size:11px; font-weight:500; white-space:nowrap; }
.top-reply-author { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.post-author-line { display:flex; align-items:center; justify-content:center; gap:6px; max-width:100%; min-width:0; }
.post-author-line > strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#2e3e70; font-size:14px; font-weight:700; }
.post-author-line > .thread-owner-badge { flex-shrink:0; }
@media(min-width:761px) and (max-width:820px) {
 .header-actions .search-button { display:flex; width:34px; padding:0; justify-content:center; }
 .header-actions .search-button b,.header-actions .search-button kbd { display:none; }
 .thread-page .thread-title-card { grid-template-columns:minmax(0,1fr); grid-template-areas:"heading" "admin" "stats"; }
 .thread-page .thread-title-stats { display:flex; flex-wrap:wrap; gap:16px; padding:10px 0 0; border-left:0; border-top:1px solid #e2e7f2; }
}
.post-author-ranks { display:flex; align-items:center; justify-content:center; gap:6px; margin-top:5px; }
.post-author-ranks .user-rank { margin:0; }
.post-author-line > .owner-badge-mobile { display:none; }
.thread-category-editor { padding:8px 0 12px; color:#42517b; }
.thread-category-editor form { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.thread-category-editor button,.thread-category-editor select { border:1px solid #cdd6eb; border-radius:6px; background:#f8f9ff; padding:6px 10px; color:inherit; font:inherit; }
.thread-category-editor button { cursor:pointer; }.thread-category-editor button:disabled { opacity:.6; cursor:default; }
.thread-category-editor [role=alert] { color:#b54252; font-size:13px; }
@media(max-width:820px) { .post-author-ranks { display:contents; }.post-author-ranks > .owner-badge-desktop { display:none; }.post-author-line > .owner-badge-mobile { display:inline-flex; } }
@media(max-width:820px) { .post-author-line { justify-content:flex-start; flex:0 1 auto; } }
@media(max-width:600px) {
 .image-lightbox { padding:10px; padding-top:max(10px,env(safe-area-inset-top)); padding-bottom:max(10px,env(safe-area-inset-bottom)); }
 .image-lightbox > section { height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); border-radius:14px; }
 .image-uploader > small { flex-basis:100%; font-size:11px; }
 .image-upload-previews { grid-template-columns:repeat(3,minmax(0,110px)); }
}
.forum-like-count {
 display:inline-block; white-space:nowrap; font-family:Arial,sans-serif;
 letter-spacing:0; word-spacing:0; font-variant-numeric:tabular-nums;
 text-align:center; text-indent:0; direction:ltr; unicode-bidi:isolate;
}
.notice-preferences { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; padding:14px 20px; border-bottom:1px solid #e1e6f1; background:#f8f9ff; }
.notice-preferences label { display:flex; align-items:center; gap:8px; min-height:32px; color:#4d5d91; font-size:13px; cursor:pointer; }
.notice-preferences input { width:18px; height:18px; accent-color:#7371bc; }
.notice-preferences small { color:#8792ad; font-size:12px; }

/* Shared reader-facing controls. Keep prose, reading themes and warning cards independent. */
.account-page { background: #f5f7ff; }
.auth-layout { border-color: var(--ui-border); border-radius: var(--ui-radius-content); overflow: hidden; }
.auth-submit span { color: inherit; }
:root {
  --ui-action: #596bcb;
  --ui-action-hover: #485bb7;
  --ui-control-surface: #f7f8fe;
  --ui-control-ink: #4d5e8a;
  --ui-control-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  --ui-title-font: "STSong", "SimSun", serif;
}
:is(.new-thread, .desktop-new-thread, .auth-submit, .reply-primary),
.fanworks-intro > a, .novel-shelf-actions > .primary, .novel-detail-actions > .primary {
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid var(--ui-action);
  border-radius: var(--ui-radius-compact);
  color: #fff;
  background: var(--ui-action);
  box-shadow: 0 3px 9px rgba(65,82,152,.12);
  font-family: var(--ui-control-font);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  text-decoration: none;
}
:is(.new-thread, .desktop-new-thread, .auth-submit, .reply-primary):hover,
.fanworks-intro > a:hover, .novel-shelf-actions > .primary:hover, .novel-detail-actions > .primary:hover {
  background: var(--ui-action-hover);
  border-color: var(--ui-action-hover);
}
.thread-page .thread-title-stats > button,
.novel-shelf-actions > .secondary, .novel-detail-actions > .secondary,
.notification-head > button, .settings-avatar button, .sponsor-entry .sponsor-button,
.compose-actions > a, .compose-actions > button:not(.auth-submit) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;
  padding: 7px 12px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-compact);
  background: var(--ui-control-surface);
  color: var(--ui-control-ink);
  font-family: var(--ui-control-font);
  font-size: 13px;
  line-height: 1.4;
  text-decoration: none;
}
.auth-form input:not([type="checkbox"]), .settings-section input:not([type="checkbox"]),
.settings-section textarea, .settings-section select {
  border-color: var(--ui-border);
  border-radius: var(--ui-radius-compact);
  background: var(--ui-control-surface);
  color: var(--ui-control-ink);
  font-family: var(--ui-control-font);
}
.auth-switch { background: #eef1fb; border-color: var(--ui-border); border-radius: 10px; }
.auth-switch a { border-radius: 7px; color: #68779a; font-family: var(--ui-control-font); }
.auth-switch a.active { background: var(--ui-action); border-color: var(--ui-action); color: #fff; }
:is(.auth-heading p, .auth-card-foot, .interface-note, .auth-options, .agreement) { color: #697794; }
.auth-card-foot i, .interface-note, .account-section-head { border-color: var(--ui-border); }
.auth-heading > span { color: #6a78a7; }
:is(.fanworks-intro h1, .novel-shelf-hero h1, .auth-intro h1, .auth-heading h2, .notification-head h1) {
  font-family: var(--ui-title-font);
  font-weight: 600;
  color: #2d4270;
  line-height: 1.4;
}
:is(.post-author-line, .post-meta, .post-footer, .notice-tabs, .notice-preferences, .thread-filter-tabs,
    .thread-title-stats, .auth-form label, .settings-section label, .account-nav) {
  font-family: var(--ui-control-font);
}
:is(.auth-card, .settings-section, .notification-page-card) :is(button, a, input, select, textarea):focus-visible {
  outline: 2px solid var(--ui-focus);
  outline-offset: 2px;
}
@media(max-width:680px) {
  .auth-intro { min-height: 0; padding: 18px 20px; }
  .auth-intro h1 { margin: 8px 0; font-size: 25px; }
  .auth-intro h1 br { display: none; }
  .auth-intro > p { max-width: none; margin-bottom: 0; }
  .auth-intro-stats { margin-top: 12px; }
  .auth-intro .register-benefits { margin-top: 12px; }
  .auth-intro .register-benefits li { min-height: 32px; }
  .auth-card { padding: 20px 19px 26px; }
  .auth-heading { margin: 18px 0; }
  .fanworks-intro { padding: 20px 4px 16px; }
  .fanworks-intro h1, .novel-shelf-hero h1, .notification-head h1 { font-size: 26px; }
  .thread-page .thread-title-card:not(:has(.thread-admin-bar)) { grid-template-areas: "heading" "stats"; row-gap: 12px; }
  .thread-page .thread-heading h2 { margin-bottom: 0; }
  .notification-head { padding: 20px 18px; }
  .notice-preferences { padding: 12px 18px; }
}
/* Compact composer controls; expanded content occupies its own full-width row. */
.compose-body-field{display:grid;gap:8px;min-width:0;grid-column:1/-1;font-size:12px;color:#68738f}.compose-body-field>small{text-align:right;color:#aaa1a8;font-size:11px}
.forum-sticker-tools.composer-tools-row{display:grid;grid-template-columns:max-content max-content max-content minmax(0,1fr);gap:8px;align-items:start;min-width:0}
.composer-tools-row>.image-uploader,.composer-tools-row>.composer-file-slot:not([hidden]),.composer-tools-row>.composer-file-slot>.file-attachment-disclosure{display:contents}
.composer-tools-row>.forum-sticker-toggle{grid-column:1;grid-row:1}
.composer-tools-row>.image-uploader:not(.file-attachment-disclosure)>.image-upload-trigger{grid-column:2;grid-row:1}
.composer-tools-row .file-attachment-disclosure>.image-upload-trigger{grid-column:3;grid-row:1}
.composer-tools-row .image-uploader>.image-upload-trigger{height:32px;min-height:32px;padding:4px 10px;gap:4px;border:1px solid #d9def2;border-radius:6px;font-size:13px;font-weight:400;background:#f5f6fd;color:#5363a4;box-shadow:none;white-space:nowrap}
.composer-tools-row .image-upload-trigger svg{width:14px;height:14px}
.composer-tools-row>.forum-sticker-panel,.composer-tools-row>.forum-sticker-preview,.composer-tools-row>small,.composer-tools-row>.image-uploader>small,.composer-tools-row>.image-uploader>.image-upload-previews,.composer-tools-row .file-attachment-uploader{grid-column:1/-1;min-width:0}
.composer-tools-row>.image-uploader>small{position:static;line-height:1.6;font-size:11px}.composer-tools-row .file-attachment-uploader{margin-top:0}
@media(max-width:360px){.forum-sticker-tools.composer-tools-row{column-gap:6px}.composer-tools-row>.forum-sticker-toggle,.composer-tools-row .image-uploader>.image-upload-trigger{padding-inline:6px}}
.account-stats b {
  font-family: Arial, "Microsoft YaHei", sans-serif;
  font-variant-numeric: lining-nums tabular-nums;
}
.post-more-menu .thread-category-editor { padding: 0; font-size: 13px; }
.post-more-menu .thread-category-editor > button { border: 0; border-radius: 0; background: transparent; }
.post-more-menu .thread-category-editor form { width: min(260px, calc(100vw - 80px)); padding: 8px; box-sizing: border-box; }
.post-more-menu .thread-category-editor label { display: grid; gap: 6px; width: 100%; }
.post-more-menu .thread-category-editor select { width: 100%; min-width: 0; }
.post-more-menu .thread-category-editor [role=alert] { max-width: 240px; white-space: normal; }
/* Keep the title typography while making its copy action keyboard accessible. */
.thread-heading .thread-title-copy { display:inline; appearance:none; background:none; border:0; border-radius:3px; padding:0; margin:0; font:inherit; color:inherit; text-align:inherit; line-height:inherit; cursor:pointer; }
.thread-heading .thread-title-copy:focus-visible {outline:2px solid #6876cc;outline-offset:4px;}
.thread-copy-status {color:#6876a3;font-size:12px;}
.thread-copy-status:empty {display:none;}

/* Identity-page masthead, retaining the forum's account utilities. */
@media (min-width: 681px) {
  .site-header:has(.account-header-actions) { height:auto; background:#ffffffdc; border-bottom:1px solid #d9dff2; backdrop-filter:blur(12px); }
  .site-header .header-main:has(.account-header-actions) { display:flex; width:calc(100% - 48px); max-width:1180px; height:auto; padding:23px 0; gap:24px; align-items:center; }
  .site-header .brand { flex:none; gap:12px; }
  .site-header .brand-mark { width:43px; height:43px; flex-basis:43px; border:0; border-radius:11px; background:linear-gradient(135deg,#8190e6,#5265c8); box-shadow:0 5px 12px #5369bf22; }
  .site-header .brand-mark::after {font:700 27px/1 Arial,"Microsoft YaHei",sans-serif;}
  .site-header .brand strong {font:700 23px/1.5 Arial,"Microsoft YaHei",sans-serif;letter-spacing:2px;color:#233969;}
  .site-header .brand small {display:block;font:8px/1.6 Arial,sans-serif;letter-spacing:1.5px;color:#8a95b6;}
  .site-header .header-main > nav {display:flex;position:static;flex:1;min-width:0;height:44px;align-self:center;gap:26px;overflow-x:auto;scrollbar-width:none;}
  .site-header .header-main > nav :is(a,button) {flex:none;white-space:nowrap;padding:8px 0;font:500 14px/1.5 Arial,"Microsoft YaHei",sans-serif;color:#7c89aa;}
  .site-header .header-main > nav .active {color:#596dba;font-weight:700;}
  .site-header .header-main > nav .active::after {left:0;right:0;bottom:0;height:3px;border-radius:3px;background:#7d80d6;}
  .site-header .account-header-actions {flex:none;margin-left:auto;gap:8px;}
  .site-header .account-chip > b {max-width:85px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
}
@media (min-width:681px) and (max-width:1100px) {
  .site-header .header-main:has(.account-header-actions) {flex-wrap:wrap;gap:14px 20px;padding-bottom:0;}
  .site-header .header-main > nav {order:3;flex-basis:100%;width:100%;}
}
.side-card.career-home-card {background:radial-gradient(ellipse at 100% 0,#e4e1f6aa,transparent 70%),linear-gradient(140deg,#ffffffdb,#edf3fcce);border-color:#d9dff2;color:#425981;backdrop-filter:blur(12px);box-shadow:0 8px 24px #3644700c;}
.career-home-card-top span {background:#edf0fc;color:#7787bb;font-weight:600;}
.career-home-card-top small {color:#96a3bd;font:8px/1.5 Arial,sans-serif;letter-spacing:.08em;}
.side-card.career-home-card {padding-top:11px;padding-bottom:11px;}
.side-card.career-home-card .career-home-sigils {gap:8px;margin:8px 0;}
.side-card.career-home-card .career-home-sigils i {width:38px;height:38px;margin:0;color:#8899bf;background:#ffffff90;border:1px solid #d5dff0;box-shadow:0 3px 9px #6175ad09;}
.career-home-sigils svg {width:22px;height:22px;}
.side-card.career-home-card h3 {color:#3c527b;font:600 17px/1.7 Arial,"Microsoft YaHei",sans-serif;}
.side-card.career-home-card > p {color:#7a8bab;line-height:1.9;margin-top:4px;margin-bottom:8px;}
.career-home-start {position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;min-height:42px;padding:0 14px;border:1px solid #6579ca;border-radius:8px;background:#6579ca;color:white;font-size:13px;text-decoration:none;box-shadow:0 4px 12px #5d71c51c;}
.career-home-start:hover {background:#576bbd;}
.career-home-start:focus-visible {outline:2px solid #6579ca;outline-offset:3px;}
/* Shared mobile masthead: identity-page typography, with forum utilities retained. */
@media (max-width: 680px) {
  .site-header:has(.account-header-actions) {
    height: auto; padding: 21px 0 0;
    background: var(--surface, #ffffffdc);
    border-bottom: 1px solid #d9dff2; backdrop-filter: blur(12px);
  }
  .site-header .header-main:has(.account-header-actions) {
    display: grid; grid-template-columns: minmax(0, 1fr) auto;
    width: 100%; height: auto; min-height: 0; padding: 0 16px;
    gap: 14px 10px; box-sizing: border-box;
  }
  .site-header .header-main .brand { grid-column: 1; grid-row: 1; gap: 10px; min-width: 0; }
  .site-header .brand-mark { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 9px; background: linear-gradient(135deg,#8190e6,#5265c8); box-shadow: 0 5px 12px #5369bf22; }
  .site-header .brand-mark::after { font-size: 22px; }
  .site-header .brand strong { display: block; font: 700 19px/1.5 Arial,"Microsoft YaHei",sans-serif; letter-spacing: 2px; }
  .site-header .brand small { display: block; white-space: nowrap; font: 6px/1.6 Arial,sans-serif; letter-spacing: 1px; color: #8a95b6; }
  .site-header .header-main > .account-header-actions { grid-column: 2; grid-row: 1; display: flex; gap: 6px; min-width: 0; }
  .site-header .account-header-actions :is(.search-button,.notification-chip,.account-chip) { width: 32px; height: 34px; min-width: 0; padding: 0; justify-content: center; border-radius: 9px; }
  .site-header .account-header-actions .account-chip > b { display: none; }
  .site-header .header-main:has(.account-header-actions) > nav {
    display: flex; position: static; grid-column: 1 / -1; grid-row: 2;
    width: 100%; min-width: 0; height: 41px; margin: 0; padding: 0;
    justify-content: flex-start; gap: 28px; overflow-x: auto; scrollbar-width: none;
  }
  .site-header .header-main > nav :is(a,button) { flex: none; padding: 8px 0 12px; font: 600 13px/1.5 Arial,"Microsoft YaHei",sans-serif; white-space: nowrap; }
}
.novel-update-strip { display: none; }
.forum-pinned { grid-column: 1 / -1; border-bottom: 1px solid #dce1f2; background: #f8f9ff; }
.forum-pin-heading { display:flex; align-items:center; gap:9px; padding:10px 18px; color:#7884b2; font-size:12px; }
.forum-pin-heading small { color:#a0a8bf; }
.forum-pin-toggle { display:block; width:fit-content; max-width:calc(100% - 24px); margin:5px auto; padding:3px 9px; border:0; border-radius:5px; background:#f2f3fc; color:#6975b1; font:12px/1.5 system-ui; cursor:pointer; }
.forum-pin-toggle:hover { background:#e9ecfa; }
@media(max-width:820px) {
  .forum-home-page .hero-copy { transform:translateY(16px); }
  .hero .novel-update-strip { position:absolute; top:3px; left:12px; right:12px; z-index:5; display:flex; align-items:center; gap:8px; min-width:0; box-sizing:border-box; height:26px; padding:0 10px; border:1px solid #dedff4; border-radius:9px; background:linear-gradient(100deg,#efeffbed,#f7f8ffeb); color:#707bb4; text-decoration:none; font:12px/1.4 system-ui; backdrop-filter:blur(10px); }
  .novel-update-strip svg { width:15px; height:15px; flex-shrink:0; }
  .novel-update-strip span { font-size:11px; font-weight:600; white-space:nowrap; color:#7371af; }
  .novel-update-strip b { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#52618a; font-weight:400; }
  .novel-update-strip i { font-size:20px; font-style:normal; color:#929bc1; }
  .forum-pinned .thread-row { display:flex!important; align-items:center!important; gap:8px; min-height:0!important; padding:12px 14px!important; }
  .forum-pinned .thread-cat-label,.forum-pinned .thread-author,.forum-pinned .thread-last,.forum-pinned .thread-mobile-author { display:none!important; }
  .forum-pinned .thread-main { flex:1; min-width:0; }
  .forum-pinned .thread-title-inner { display:block; }
  .forum-pinned .thread-title-inner strong { font-size:13px; line-height:1.65; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .forum-pinned .thread-title-tags { display:none; }
  .forum-pinned .thread-count { display:block!important; flex:0 0 auto; color:#929cb8; font-size:11px; }
  .forum-pinned .thread-count b { font-weight:400; }
  .forum-pinned .thread-count:after { content:' 回复'; font-size:10px; }
  .forum-pin-heading { padding:9px 14px; }
}
[data-theme="dark"] .forum-pinned { background:#24283b; border-color:#414963; }
[data-theme="dark"] .forum-pin-toggle { background:#30364f; color:#bbc4ef; }

.reader-size-control {border:1px solid var(--line,#dce0ef);border-radius:12px;padding:14px;margin:14px 0}
.reader-size-control div {display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.reader-size-control button,.reader-tool-button {font:inherit;color:inherit;border:1px solid var(--line,#dce0ef);border-radius:9px;background:var(--surface,#fff);padding:9px 13px;cursor:pointer}
.reader-size-control button[aria-pressed=true] {background:#ecebfc;color:#5868b8;border-color:#909ad2}
.reader-size-control small {display:block;line-height:1.6;color:var(--muted,#8490a8)}
@media(max-width:900px){
 html[data-reading-size=small]{--forum-reading-size:14px}
 html[data-reading-size=standard]{--forum-reading-size:16px}
 html[data-reading-size=large]{--forum-reading-size:18px}
 html[data-reading-size=largest]{--forum-reading-size:20px}
 html[data-reading-size] .post-content,html[data-reading-size] .post-content>p,html[data-reading-size] .top-reply-body>p {font-size:var(--forum-reading-size);line-height:1.85;overflow-wrap:anywhere}
}
.post-footer {gap:16px;align-items:center}
.post-footer>button:not([data-post-like]) {order:-1;margin-right:auto}
.thread-page .post-footer>button,
.top-replies-panel .top-reply-actions>a,
.top-replies-panel .top-reply-actions>button {
 display:inline-flex;align-items:center;justify-content:center;gap:6px;
 box-sizing:border-box;min-height:36px;min-width:44px;margin-block:0;padding:6px 8px;
 border:1px solid transparent;border-radius:6px;background:transparent;box-shadow:none;
 font-family:var(--ui-control-font);font-size:12px;font-weight:400;line-height:1;
 color:#69789a;white-space:nowrap;text-decoration:none;touch-action:manipulation;
}
.thread-page .post-footer>button:hover,.top-replies-panel .top-reply-actions>a:hover,.top-replies-panel .top-reply-actions>button:hover {background:#f0f3fb;border-color:transparent;color:#4b60a8}
.thread-page .post-footer>button.liked,.top-replies-panel .top-reply-actions>button.liked {background:transparent;border-color:transparent;color:#c44e68}
.top-replies-panel .top-reply-actions {gap:12px;flex-wrap:wrap;align-items:center}
.top-replies-panel .top-reply-actions>button:not([data-post-like]) {order:-1;margin:0}
.forum-like-icon {display:block;flex:0 0 20px;width:20px;height:20px}
.fanwork-heart {display:inline-flex;align-items:center;justify-content:center;line-height:1}
.post-footer .forum-like-count,.top-reply-actions .forum-like-count {font-size:12px;line-height:1}
@media(max-width:820px){
 .top-replies-panel>.top-reply {display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:8px;padding-bottom:8px}
 .top-replies-panel .top-reply-body,.top-replies-panel .top-reply-body>.top-reply-head {display:contents}
 .top-replies-panel .mini-avatar {grid-column:1;grid-row:1}
 .top-replies-panel .top-reply-author {grid-column:2;grid-row:1;min-width:0}
 .top-replies-panel .top-reply-body>p {grid-column:1/-1;grid-row:2;margin:0}
 .top-replies-panel .top-reply-actions {grid-column:1/-1;grid-row:3;width:100%;margin:0;padding-top:4px;border-top:1px solid #e8ebf2;justify-content:flex-end;gap:8px;flex-wrap:wrap}
 .top-replies-panel .top-reply-actions>button:not([data-post-like]) {margin-right:auto}
 .thread-reward-bar {width:100%;box-sizing:border-box;flex-direction:column;align-items:stretch;gap:12px;padding:14px}
 .thread-reward-bar>div:first-child {width:100%;justify-content:center;text-align:center;row-gap:4px;min-width:0}
 .thread-reward-bar small {overflow-wrap:anywhere;line-height:1.6}
 .thread-reward-bar>div:last-child {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%}
 .thread-reward-bar button {width:100%;min-width:0;height:40px;border-radius:6px;font-family:var(--forum-number-font);font-variant-numeric:lining-nums tabular-nums}
}
@media(pointer:coarse){.thread-page .post-footer>button,.top-replies-panel .top-reply-actions>a,.top-replies-panel .top-reply-actions>button {min-height:44px}}
@media(max-width:820px){.top-replies-panel .top-reply-actions>a,.top-replies-panel .top-reply-actions>button {min-height:28px;padding:4px 6px}}
button.fanwork-likes {min-height:44px;min-width:48px}
.image-lightbox>section {grid-template-rows:auto minmax(0,1fr)}
.image-lightbox header {gap:7px;flex-wrap:wrap;min-height:48px;padding-bottom:8px}
.image-lightbox header .lightbox-original-action {margin:0;min-width:70px;font-size:12px}
.lightbox-stage {overflow:hidden;touch-action:none;position:relative;user-select:none}
.lightbox-stage img {min-height:0;max-height:100%;max-width:100%}
.lightbox-stage .lightbox-zoom-hint {pointer-events:none;position:absolute;bottom:8px;left:50%;transform:translateX(-50%);font-size:12px;white-space:normal;background:#e9edf8;color:#52618d;padding:5px 8px;border-radius:7px}
.reader-saved-tabs {display:flex;gap:10px;margin-bottom:16px}
.reader-saved-tabs button {border:1px solid var(--line,#dce0ef);background:var(--surface,#fff);border-radius:9px;padding:9px 16px;color:inherit;cursor:pointer}
.reader-saved-tabs button[aria-selected=true]{background:#eeedff;color:#5868b8}
.reader-tools-list {display:grid;gap:12px;margin:12px 0}
.reader-tools-list article {display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;border-bottom:1px solid var(--line,#dce0ef)}
.reader-tools-list article>a {min-width:0;overflow-wrap:anywhere;color:inherit}
html[data-theme=dark] .reader-size-control button,html[data-theme=dark] .reader-tool-button,html[data-theme=dark] .reader-saved-tabs button {background:#24283b;border-color:#414963;color:#cbd2ec}
html[data-theme=dark] .reader-size-control button[aria-pressed=true],html[data-theme=dark] .reader-saved-tabs button[aria-selected=true] {background:#394166;border-color:#7b88c4;color:#f1f2ff}

/* Lining, tabular numerals: keep counters on one baseline without changing prose. */
:root {--forum-number-font:Arial,"Helvetica Neue","Microsoft YaHei",sans-serif}
.chapter-number strong,.serial-card::after,.chapter-range,.chapter-range b,
.forum-like-count,.fanwork-likes>span:last-child,.top-reply-actions .top-reply-floor,
.thread-title-stats b,.thread-page .thread-title-stats b,.thread-count,.thread-count b,
.thread-card-stats,.thread-card-stats b,.thread-stats,.thread-stats b,
.account-stats b,.summary-totals b,.auth-intro-stats b,.hero-meta b,
.post-meta time,.post-meta>a,.post-meta a,.post-user dd,
.thread-pagination,.thread-pagination button,.thread-pagination a,.pc-pages,
.chapter-preview-card b,.chapter-preview-card::after,.thread-hero-number strong {
 font-family:var(--forum-number-font);font-variant-numeric:lining-nums tabular-nums;
 font-feature-settings:"lnum" 1,"tnum" 1;letter-spacing:0;
}
.chapter-number {align-items:baseline;gap:8px}
.chapter-number strong {font-size:34px;font-weight:500;line-height:1.15}
.world-depths-preference {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px 18px;background:var(--surface,#f8f9ff);border-bottom:1px solid #dce1f2;color:#56648b}
.world-depths-preference b{font-size:14px}.world-depths-preference p{margin:4px 0 0;font-size:12px;line-height:1.6}
.world-depths-preference>button{flex-shrink:0;min-height:40px;padding:7px 12px;border:1px solid #cdd5ec;border-radius:9px;background:#fff;color:#6775a8;font:inherit;font-size:13px;cursor:pointer}
.world-depths-preference>button[aria-checked=true]{background:#edf0ff;border-color:#7885cf;color:#4355a4}.world-depths-preference>button:disabled{opacity:.65;cursor:wait}
.world-depths-preference .world-depths-preference-error{flex-basis:100%;color:#ae5264}.world-depths-preference-error button{margin-left:8px;color:inherit}
html[data-theme=dark] .world-depths-preference{background:#232839;color:#d4d9eb}html[data-theme=dark] .world-depths-preference>button{background:#2c3448;color:#d4d9eb}

/* Shared opt-in palette. Media and warning stamps deliberately keep their colors. */
:is(.thread-cat-label.slate,.tag.slate,.thread-icon.slate,[data-category="世界深处"] .thread-heading-tags>.tag:first-child){color:#496b70;background:#edf3f3;border-color:#acc2c5}
:is(.thread-cat-label.coral,.tag.coral,.thread-icon.coral,[data-category="版务通知"] .thread-heading-tags>.tag:first-child){color:#b3523d;background:#fff1eb;border-color:#e8b4a5}
html[data-theme=dark] :is(.thread-cat-label.slate,.tag.slate,.thread-icon.slate,[data-category="世界深处"] .thread-heading-tags>.tag:first-child){color:#b3d3d6;background:#293d42;border-color:#63858b}
html[data-theme=dark] :is(.thread-cat-label.coral,.tag.coral,.thread-icon.coral,[data-category="版务通知"] .thread-heading-tags>.tag:first-child){color:#ffbeaa;background:#47332e;border-color:#a36b59}
.home-checkin{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 18px;background:#f5f7fd;border-bottom:1px solid #e1e6f2;color:#7885a3;font:12px/1.5 Arial,"Microsoft YaHei",sans-serif}
.home-checkin :is(button,a){flex:none;padding:5px 12px;border:1px solid #d5ddf5;border-radius:8px;background:#fff;color:#596eaf;font:inherit;text-decoration:none;cursor:pointer}
.home-checkin button:disabled{cursor:default;opacity:.65}
.checkin-short-label{display:none}
@media(max-width:680px){
 .home-support-row{position:relative;display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f7f8fd;border-bottom:1px solid #e2e6f4}
 .home-support-row .forum-sponsor-mobile{flex:1;min-width:0;padding:0;border:0}
 .home-support-row .home-checkin{flex:none;margin-left:auto;padding:0;border:0;background:transparent}
 .home-support-row .home-checkin :is(button,a){display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:4px 12px;border-radius:9px;white-space:nowrap;box-sizing:border-box}
 .home-checkin-compact-mobile .home-checkin-status{display:none}
 .home-checkin-compact-mobile .home-checkin-status.has-error{display:block;position:absolute;z-index:5;top:100%;left:12px;right:12px;padding:8px 12px;border:1px solid #d5ddf5;border-radius:8px;background:#f5f7fd;color:#596eaf;box-shadow:0 3px 12px #0002}
 .home-checkin-compact-mobile .checkin-full-label{display:none}
 .home-checkin-compact-mobile .checkin-short-label{display:inline}
 html[data-theme=dark] .home-support-row{background:#202a3d;border-color:#455574}
 html[data-theme=dark] .home-checkin-status.has-error{background:#29364d;color:#cbd9f3;border-color:#526586}
}
.home-checkin :is(button,a):focus-visible{outline:2px solid #849be9;outline-offset:2px}
html[data-theme=dark] :is(.home-checkin,.all-replies-heading,.top-replies-heading){background:#202a3d;color:#c9d6ed;border-color:#455574}
html[data-theme=dark] :is(.all-replies-heading,.top-replies-heading) h3{color:#e0e6f4}
html[data-theme=dark] :is(.all-replies-heading,.top-replies-heading) :is(span,p){color:#aebdd8}
html[data-theme=dark] .home-checkin :is(button,a){background:#29364d;color:#cbd9f3;border-color:#526586}
.forum-theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:5px;flex:none;min-width:38px;min-height:38px;padding:6px 9px;border:1px solid #d7def3;border-radius:10px;background:#f7f8ff;color:#596ba6;font:12px/1.3 Arial,"Microsoft YaHei",sans-serif;cursor:pointer}
.forum-theme-toggle:focus-visible{outline:2px solid #849be9;outline-offset:3px}
@media(max-width:700px){.forum-theme-toggle{width:34px;min-width:34px;min-height:34px;padding:6px}.forum-theme-toggle span{display:none}}
html[data-theme=dark]{color-scheme:dark;--ink:#dde3f2;--muted:#a8b3cc;--paper:#171d2c;--paper-deep:#20283a;--line:#36415a;--violet:#a6b4f3;--violet-soft:#303952;--gold:#dcc08b;--gold-soft:#393326;--blue:#9ebfe4;--green:#9bcab5;--rose:#dda8bc;background:#111623}
html[data-theme=dark] body{background:#111623;color:#d8dfef}
html[data-theme=dark] :is(.home-page,.reader-page,.thread-page,.account-page,.community-page,.auth-page,.novel-page,.forum-page,.quiz-world,.world,.scene){background:#111623;color:#d8dfef}
html[data-theme=dark] :is(.site-header,.forum-preview-header,.mobile-site-nav,.signal-strip,.site-footer){background:#182031!important;color:#b9c5e0;border-color:#36415a;box-shadow:0 3px 18px #0002}
html[data-theme=dark] :is(.board-card,.side-card,.thread-heading,.post,.reply-composer,.community-card,.auth-card,.account-card,.top-replies-panel,.top-reply,.fanwork-card,.fanworks-card,.thread-card,.collection-card,.profile-card,.site-search-dialog,.file-attachment-modal,.selector-panel,.story-panel,.question-card,.result-card,.quiz-intro,.reset-confirm,.wardrobe,.novel-card,.novel-directory){background:#1b2335!important;color:#d8dfef;border-color:#36415a!important;box-shadow:0 6px 24px #0002}
html[data-theme=dark] :is(.post-author,.post-author-bar,.post-head,.board-tabs,.thread-table-head,.thread-list-head,.thread-row,.thread-row:nth-child(even),.thread-card,.notice-item,.notice-item.unread,.post-more-menu,.composer-quote,.thread-reward-bar,.forum-sponsor-mobile,.sponsor-entry,.forum-sticker-panel,.collection-dialog,.profile-dialog){background:#202a3d!important;color:#d2dcf0;border-color:#36415a!important}
html[data-theme=dark] :is(h1,h2,h3,h4,.brand strong,.forum-preview-brand strong,.thread-title,.thread-card-title,.thread-title-line,.post-content,.reader-written-copy,.fanfic-copy,.story-copy,.result-prose,.question-prompt,.result-name,.story-panel h1){color:#e0e6f4}
html[data-theme=dark] :is(a,.breadcrumb,.thread-author,.thread-last,.post-meta,.post-footer,.post-author-name,.top-reply-author,.board-tabs button,.thread-heading-tags,.thread-count,.thread-card-meta,.thread-card-stats,.forum-preview-crumb,.quiz-kicker,.story-note,.question-meta,.quiz-progress,.forum-pin-heading,.notice-item p){color:#afbedf}
html[data-theme=dark] :is(small,time,.muted,.post-date,.thread-meta,.side-card p,.career-home-description,.thread-copy-status){color:#9eacc7}
html[data-theme=dark] :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),textarea,select){background:#141c2c!important;color:#e0e6f4!important;border-color:#485775!important}
html[data-theme=dark] :is(input,textarea)::placeholder{color:#94a2bd}
html[data-theme=dark] :is(.post-footer button,.top-reply-actions button,.reply-tools button,.forum-sticker-tools button,.thread-heading button,.search-button,.account-chip,.notification-chip,.forum-theme-toggle,.identity-header-actions a,.auth-header-link,.sponsor-button,.pagination a,.pagination button,.board-cat-select,.novel-update-strip,.reader-tool-button,.option,.choice,.secondary-action){background:#273249!important;color:#c9d6f4!important;border-color:#455574!important}
html[data-theme=dark] :is(.post-footer,.top-reply-actions,.post-content blockquote,.thread-row,.notice-item,.board-tabs,.reply-composer-head){border-color:#36415a}
html[data-theme=dark] .post-content blockquote{background:#29344a;color:#bac8e1;border-left-color:#8c9fde}
html[data-theme=dark] .post-content blockquote b{color:#cfdbf8}
html[data-theme=dark] :is(.board-tabs .active,.site-header nav .active,.mobile-site-nav .active,.forum-preview-header nav .active){color:#b2c1ff}
html[data-theme=dark] :is(.pin,.tag,.forum-identity-badge){background:#293b3b;color:#b9dfd0;border-color:#506f63}
html[data-theme=dark] .forum-identity-badge.identity-career{background:#303951;color:#d1dcfa;border-color:#59698f}
html[data-theme=dark] .forum-identity-badge.identity-origin{background:#3a3329;color:#e6d3a7;border-color:#75664d}
html[data-theme=dark] .forum-pinned{background:#20293e;border-color:#36415a}
html[data-theme=dark] .forum-pin-toggle{background:#303c56;color:#c4d0ee}
html[data-theme=dark] :is(.post-footer button.liked,.top-reply-actions button.liked){color:#edabc3!important}
html[data-theme=dark] :is(.site-search-result,.site-search-result.selected){background:#243149;color:#d8e0f3;border-color:#435571}
html[data-theme=dark] :is(.post-more-menu button,.site-search-result b,.site-search-result p,.forum-sticker-grid span){color:#c2cfe9}
html[data-theme=dark] :is(.site-search-backdrop,.modal-backdrop){background:#050915b8}
html[data-theme=dark] .hero{box-shadow:inset 0 0 0 1000px #10182b20}
html[data-theme=dark] .hero h1{color:#273553} /* Banner artwork stays unchanged. */
html[data-theme=dark] :is(.scene-grid,.scene-grain,.sky){opacity:.12}
html[data-theme=dark] :is(.selector-panel,.story-panel,.question-card,.result-card){--ink:#dce5f6;--muted:#adbad3}
html[data-theme=dark] :is(.emblem,.result-emblem,.class-icon,.race-icon,.story-panel svg,.selector-panel svg){color:#b5c7e7}
html[data-theme=dark] :is(.selector-panel button,.specializations button,.question-card button,.result-actions button){background:#26334a;color:#cbd8f1;border-color:#465b7e}
html[data-theme=dark] :is(.selector-panel button.active,.question-card button[aria-pressed=true]){background:#374769;border-color:#a9bafa}
html[data-theme=dark] :is(.forum-post,.post-body,.thread-table,.answer,.origin-result,.badge-toggle,.wear-preview,.file-attachment-card){background:#1b2335!important;color:#d8dfef;border-color:#36415a!important}
html[data-theme=dark] :is(.post-user,.answer-letter,.emblem,.result-emblem,.profile-summary){background:#243149!important;color:#c3d3ee;border-color:#415574}
html[data-theme=dark] :is(.top-reply-body p,.post-user dd,.story-copy p,.origin-result>p,.question-card h1,.result-heading h1,.wardrobe h2){color:#d8e1f2}
html[data-theme=dark] :is(.answer.chosen,.badge-toggle.is-worn){background:#344463!important;border-color:#99ade3!important}
html[data-theme=dark] :is(.thread-title-line strong,.thread-card-title,.serial-card h3,.serial-card .chapter-number,.thread-author a,.thread-last a,.post-user h3){color:#d4dff7!important}
html[data-theme=dark] :is(.thread-columns,footer,.thread-title-card,.post-user,.quick-thread-composer){background:#1c2639!important;color:#acbbd8;border-color:#36415a}
html[data-theme=dark] .sponsor-entry .sponsor-button{background:#273249!important;color:#c9d6f4!important;border-color:#455574!important}
html[data-theme=dark] .mobile-site-nav a.active{background:#2c3855;color:#c4d1ff}
html[data-theme=dark] :is(.career-home-icon,.career-home-icons span,.search-button kbd){background:#293752;color:#b4c7eb}
html[data-theme=dark] :is(.pc-card,.pc-dialog,.warning-editor,.career-quiz-dialog,.avatar-crop-dialog,.file-attachment-modal>div,.auth-form,.account-panel){background:#1b2335!important;color:#d8dfef;border-color:#465571}
html[data-theme=dark] :is(.pc-dialog button,.pc-button,.pc-tools button){background:#2b3851;color:#d1dcf2;border-color:#495b7e}
html[data-theme=dark] .file-attachment-modal{background:#050915b8!important}
html[data-theme=dark] .pc-dialog::backdrop{background:#050915b8}
html[data-theme=dark] :is(.footer-inner b,.footer-inner span,.footer-inner p,.novel-update-strip strong,.novel-update-strip span){color:#b6c4e1}
html[data-theme=dark] .world :is(.hero,.status,.no-results,.kind-tabs,.emblem-glass,.journey-symbol,.career-attribute){background:#202b40!important;color:#c5d4ef;border-color:#455777;box-shadow:0 8px 28px #0002}
html[data-theme=dark] .world :is(.hero h1,.career-attribute strong,.kind-tabs button,.hero p){color:#d3e0f6}
html[data-theme=dark] .world .kind-tabs button.active{background:#354666;color:#dce6ff}
html[data-theme=dark] .world .scene .glass-haze{background:linear-gradient(180deg,#141e30a0,#111623e8)}

/* Editing and media surfaces have their own light defaults; cover the actual
   component wrappers and shared control tokens, without filtering image pixels. */
html[data-theme=dark],html[data-theme=dark] :is(.forum-home-page,.thread-page,.novel-site-page){
 --ui-surface:#1b2335;--ui-surface-soft:#202a3d;--ui-control-surface:#273249;
 --ui-ink:#d8e1f2;--ui-muted:#a8b7d1;--ui-border:#455574;--ui-action:#5369b5;--ui-control-ink:#cbd8ef;
}
html[data-theme=dark] :is(.npc-inline-editor,.compose-card,.compose-form,.compose-preview,.file-attachment-uploader,.file-attachment-list,.local-draft-restore,.npc-inline-create){background:#1b2335!important;color:#d8e1f2;border-color:#455574}
html[data-theme=dark] :is(.reply-composer-head,.image-upload-previews figure,.image-upload-previews img,.post-images>button,.post-images img){background:#202a3d!important;border-color:#455574}
html[data-theme=dark] :is(.npc-inline-editor label,.npc-inline-editor-copy>span,.npc-inline-editor-title b,.reply-composer-head b,.composer-quote b,.compose-body-field>span,.avatar-crop-dialog header b){color:#d8e1f2}
html[data-theme=dark] :is(.npc-inline-editor-actions button,.npc-inline-editor-actions a,.image-uploader>.image-upload-trigger,.avatar-crop-dialog>footer button,.file-attachment-uploader button,.file-attachment-card button,.file-attachment-card a,.file-attachment-modal button){background:#273249!important;color:#d1dcf2;border-color:#526586}
html[data-theme=dark] :is(.npc-inline-editor-actions .reply-primary,.avatar-crop-dialog>footer .confirm,.file-attachment-uploader fieldset>button){background:#4b609f!important;color:#fff}
html[data-theme=dark] :is(.npc-inline-editor small,.image-uploader>small,.avatar-zoom,.file-attachment-uploader-head small,.file-attachment-uploader>p,.file-attachment-manager p){color:#a8b7d1}
html[data-theme=dark] :is(.avatar-crop-backdrop,.image-lightbox){background:#050915eb}
html[data-theme=dark] :is(.image-lightbox>section,.lightbox-stage,.avatar-crop-stage){background:#111827;color:#dce5f7}
html[data-theme=dark] :is(.image-lightbox header,.avatar-crop-dialog>header,.avatar-crop-dialog>footer){background:#1b2335;color:#dce5f7;border-color:#455574}
html[data-theme=dark] :is(.image-lightbox header button,.lightbox-save-original,.lightbox-prev,.lightbox-next){background:#29364c;color:#e0e9fc;border-color:#526586}
html[data-theme=dark] :is(.image-upload-previews .upload-failed,.file-attachment-manager [role=alert]){color:#efb2bc;border-color:#b97583}
html[data-theme=dark] :is(.image-upload-previews figure>button[aria-label],.lightbox-zoom-hint){background:#2a3850;color:#d1def4;border-color:#526586}

/* Shared community headers, quick publishing and notification center. */
html[data-theme=dark] :is(.community-card-head,.quick-thread-card,.quick-thread-head,.compose-flags,.notice-preferences,.notice-tabs){background:#202a3d;color:#c9d6ed;border-color:#455574}
html[data-theme=dark] :is(.community-card-head h1,.quick-thread-head h2,.notice-list>a>div b,.notice-empty b){color:#dce6fa}
html[data-theme=dark] :is(.community-card-head p,.community-card-head>div>span,.community-card-head>b,.quick-thread-head p,.compose-form label,.compose-identity,.notice-list>a>div p,.notice-list time,.notice-empty,.notice-preferences small,.mini-guide li,.draft-card p){color:#aebdd8}
html[data-theme=dark] :is(.notification-head>button,.notice-tabs button,.notification-page-card>button,.notification-page-card [role=alert] button,.quick-thread-head>b){background:#29364d;color:#cbd9f3;border-color:#526586}
html[data-theme=dark] .notice-tabs button.active{background:#354666;color:#e0e9ff}
html[data-theme=dark] .notice-list>a{background:#1b2335;color:#cbd9f3;border-color:#36455e}
html[data-theme=dark] .notice-list>a.unread{background:#26334b}
html[data-theme=dark] .notice-list>a:hover{background:#303e59}
html[data-theme=dark] :is(.notice-kind,.notice-empty span){background:#334361;color:#c4d4fb}
html[data-theme=dark] .notice-kind.kind-赞{background:#493344;color:#f1bbd0}

.npc-preview{--npc-panel:#ffffffdb;--npc-soft:#f3f4fc;--npc-line:#dbe0f0;--npc-ink:#344573;--npc-muted:#8790ab;--npc-accent:#6571c9;min-height:100vh;color:var(--npc-ink);background:radial-gradient(ellipse at 15% 0,#dfe8ff,transparent 50%),#f6f7fd;font:15px/1.65 Arial,"Microsoft YaHei",sans-serif;font-variant-numeric:tabular-nums}
html[data-theme=dark] .npc-preview{--npc-panel:#1b2335;--npc-soft:#232d42;--npc-line:#37445e;--npc-ink:#dde5f5;--npc-muted:#a5b1ca;--npc-accent:#afb9ff;background:#111623}
.npc-preview *{box-sizing:border-box}.npc-preview a{color:var(--npc-accent);text-decoration:none}.npc-preview button,.npc-preview select{font:inherit;color:var(--npc-ink);border:1px solid var(--npc-line);background:var(--npc-soft);border-radius:9px;padding:7px 13px;cursor:pointer}.npc-preview button:disabled{opacity:.45;cursor:default}.npc-preview small{color:var(--npc-muted)}
.npc-header{background:var(--npc-panel);border-bottom:1px solid var(--npc-line)}.npc-header-inner{max-width:1160px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:24px}.npc-brand{display:flex;align-items:center;gap:14px}.npc-brand>b{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,#9097e6,#5c6db8);color:white;font-size:35px}.npc-brand strong{display:block;font-size:29px;letter-spacing:.12em;color:var(--npc-ink)}.npc-brand small{display:block;font-size:9px;letter-spacing:.23em}.npc-header nav{display:flex;gap:17px;align-items:center}.npc-preview a.npc-primary{padding:8px 15px;background:var(--npc-accent);color:var(--npc-panel);border-radius:9px}
.npc-shell{max-width:1100px;margin:auto;padding:24px}.npc-hero{padding:28px 32px;min-height:195px;border:1px solid var(--npc-line);border-radius:20px;background:linear-gradient(110deg,var(--npc-soft) 28%,transparent),url('/forum-assets/emerald-forest-header-preview.webp') center/cover}.npc-hero h1{font:600 34px/1.5 Georgia,"STSong",serif;margin:10px 0;color:var(--npc-ink)}.npc-hero p{display:inline-block;margin:0 15px 0 0;color:#ac843d;background:#fff9e8;padding:1px 15px;border:1px solid #e5d1a3;border-radius:20px;letter-spacing:.2em}.npc-label{font-size:12px;border:1px solid var(--npc-line);border-radius:4px;background:var(--npc-panel);padding:4px 8px}.npc-breadcrumb{font-size:13px;color:var(--npc-muted);margin:20px 8px}.npc-board{border:1px solid var(--npc-line);border-radius:16px;background:var(--npc-panel);overflow:hidden;box-shadow:0 10px 32px #3b568108}.npc-toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px 18px;background:var(--npc-soft);border-bottom:1px solid var(--npc-line)}.npc-toolbar>div{display:flex;gap:8px}.npc-toolbar button{border:0;background:none;border-radius:0;padding:6px}.npc-toolbar button.active{color:var(--npc-accent);border-bottom:3px solid var(--npc-accent);font-weight:bold}
.npc-row{display:flex;gap:15px;align-items:center;padding:18px 22px;border-bottom:1px solid var(--npc-line)}.npc-row>div{flex:1;min-width:0}.npc-thread-icon{font-size:26px;color:var(--npc-accent)}.npc-title{display:block;font-weight:600;overflow-wrap:anywhere}.npc-category{font-size:11px;background:var(--npc-soft);color:var(--npc-accent);border-radius:4px;padding:2px 5px;margin-bottom:3px;display:inline-block}.npc-row small{font-size:12px}.npc-count{font-size:12px;color:var(--npc-muted);white-space:nowrap}.npc-pins{background:var(--npc-soft)}.npc-pins h2{font-size:14px;margin:0;padding:14px 22px 0}.npc-pins h2 small{font-weight:normal;margin-left:10px}.npc-pins summary{width:max-content;max-width:100%;cursor:pointer;font-size:12px;padding:7px 14px;margin:8px auto;color:var(--npc-accent)}.npc-pages{display:flex;justify-content:center;align-items:center;gap:18px;padding:20px}.npc-pages span{font-size:13px}.npc-footnote{text-align:center;color:var(--npc-muted);font-size:12px;margin:28px 0}.npc-state{padding:60px 15px;text-align:center}.npc-state button{display:block;margin:15px auto}.npc-back{font-size:13px}.npc-heading{font-size:24px;margin:18px 0;overflow-wrap:anywhere}.npc-post{padding:24px;border-bottom:1px solid var(--npc-line)}.npc-post>header{display:flex;justify-content:space-between;color:var(--npc-accent);margin-bottom:20px}.npc-post>header span{font-size:12px;color:var(--npc-muted)}.npc-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9}.npc-post blockquote{border-left:3px solid var(--npc-accent);margin:0 0 16px;padding:12px;background:var(--npc-soft)}.npc-main-images button,.npc-reply-images button{display:block;border:0;background:none;padding:0;margin:15px 0;max-width:100%}.npc-main-images img{display:block;max-width:100%;height:auto}.npc-reply-images img{display:block;max-width:180px;max-height:180px;width:auto;height:auto}.npc-image-dialog{position:fixed;inset:0;z-index:1000;background:#101321ed;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px}.npc-image-dialog img{max-height:75vh;max-width:100%;object-fit:contain}.npc-image-dialog>button{align-self:flex-end}
@media(max-width:600px){.npc-header-inner{padding:16px 12px;gap:8px}.npc-brand{gap:8px}.npc-brand>b{width:36px;height:36px;font-size:25px;border-radius:10px}.npc-brand strong{font-size:21px}.npc-brand small{font-size:6px;letter-spacing:.1em}.npc-header nav{gap:8px;font-size:12px}.npc-header nav button{padding:4px 7px}.npc-preview a.npc-primary{padding:6px 8px}.npc-shell{padding:12px}.npc-hero{min-height:166px;padding:20px}.npc-hero h1{font-size:29px}.npc-hero small{display:block;margin-top:8px}.npc-toolbar{padding:10px;font-size:13px;gap:5px}.npc-toolbar select{max-width:112px;padding:5px}.npc-row{padding:13px 12px;gap:10px}.npc-count{font-size:10px}.npc-post{padding:18px 14px}.npc-heading{font-size:21px}.npc-pages{gap:12px}.npc-thread-icon{font-size:21px}}
.npc-join{max-width:820px}.npc-join>.npc-board{margin-top:18px}.npc-join h1{font-size:24px;margin:20px 0}.npc-question{min-width:0;border:1px solid var(--npc-line);border-radius:10px;padding:16px;margin:25px 0}.npc-question legend{font-weight:600;padding:0 6px;overflow-wrap:anywhere}.npc-question label{display:flex;gap:10px;align-items:flex-start;padding:9px;border-radius:6px}.npc-question label:has(input:checked){background:var(--npc-soft)}.npc-question input{margin-top:6px;flex:none}.npc-join-form{display:grid;gap:16px}.npc-join-form>label{display:grid;gap:6px}.npc-join-form input:not([type=checkbox]){width:100%;min-width:0;padding:10px;border:1px solid var(--npc-line);border-radius:7px;background:var(--npc-soft);color:var(--npc-ink)}.npc-join-form>label.npc-agree{display:flex;flex-wrap:wrap;align-items:center;font-size:13px}.npc-local-mail{font-size:12px;color:var(--npc-muted)}.npc-join [role=alert]{color:#bc5968}
/* NPC pages use the original forum CSS; only preview-specific controls live here. */
.npc-forum-category{align-self:center;max-width:130px;min-width:0;margin-left:8px;padding:6px 9px;color:inherit;font:inherit;font-size:12px;border:1px solid var(--line,#dce1f0);border-radius:7px;background:var(--surface,#fff)}
.npc-forum-preview .npc-body{line-height:inherit}
.npc-forum-preview .npc-main-images img{max-width:100%}
.npc-forum-preview .forum-pin-toggle{list-style:none;cursor:pointer}
.npc-forum-preview .npc-image-dialog{color:#fff}
.npc-forum-preview .npc-image-dialog a{color:#cbd4ff}
.npc-forum-preview .npc-image-dialog button{border:1px solid #596483;border-radius:8px;padding:8px 14px;color:#fff;background:#283149;cursor:pointer}
html[data-theme=dark] .npc-forum-category{background:#252c40;border-color:#424c68;color:#dce3f5}
@media(max-width:680px){.npc-forum-category{margin-left:auto;max-width:116px;font-size:12px}.npc-forum-preview .site-header .auth-header-cta{white-space:nowrap}}
