/* =============================================================================
   Waidrn v2 — page-specific styles, lane b (design pack PR #354).

   Loaded only by the v2 pages in lane b, after /static/v2-pages.css (the shared
   page kit). Every selector is scoped under `html[data-design="v2"] .pg-body`
   so it cannot leak into other lanes, the /works shell or the v1 site.

   Exception, reader only: the prose element `.reader-body` is also styled by the
   per-user /library/reader.css (linked inside the page body, after every head
   stylesheet). Rules that target it here are wrapped in `:where()` so the user's
   reader preferences win the cascade; never set colour/font/measure on
   `.reader-body` or its prose descendants at higher specificity.

   Pages: project (.prj-pg), chapter reader (.rd-pg), library (.lib-pg),
   notifications (.nt-pg).
   ============================================================================= */

/* ---------------------------------------------------------------------------
   CSP-safe progress bars.

   The mockups size their bars with inline `style="width:…"` attributes, which
   the style-src 'self' policy forbids. Lane B renders native <progress>
   elements instead (real value/max, no style attribute) and styles them here.
   --------------------------------------------------------------------------- */
html[data-design="v2"] .pg-body progress {
  -webkit-appearance: none;
  appearance: none;
  display: block;
  width: 100%;
  height: 5px;
  border: 0;
  border-radius: 3px;
  overflow: hidden;
  background: #1b2028;
  color: var(--gold);
}
html[data-design="v2"] .pg-body progress::-webkit-progress-bar {
  background: #1b2028;
  border-radius: 3px;
}
html[data-design="v2"] .pg-body progress::-webkit-progress-value {
  background: var(--gold);
  border-radius: 3px;
}
html[data-design="v2"] .pg-body progress::-moz-progress-bar {
  background: var(--gold);
  border-radius: 3px;
}
html[data-design="v2"] .pg-body progress.rd-rail {
  height: 2px;
  margin: 9px 2px 0;
  border-radius: 1px;
}
html[data-design="v2"] .pg-body progress.progressbar {
  height: 4px;
  border-radius: 2px;
}
html[data-design="v2"] .pg-body progress.pbar2 {
  height: 5px;
  margin: 8px 0 8px;
}

/* Shared lane helpers */
html[data-design="v2"] .pg-body .chiprow {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}
html[data-design="v2"] .pg-body .buy-row {
  display: flex;
  gap: 6px;
  margin-top: 10px;
  flex-wrap: wrap;
}
html[data-design="v2"] .pg-body .buy-row .btn {
  height: 27px;
  font-size: 11px;
  padding: 0 10px;
}
html[data-design="v2"] .pg-body .rowlist {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
html[data-design="v2"] .pg-body summary {
  cursor: pointer;
}
html[data-design="v2"] .pg-body details.panel-card > summary {
  font-family: var(--font-display);
  font-size: 13px;
  color: var(--ink-2);
}
html[data-design="v2"] .pg-body .inline-form {
  display: inline-flex;
  margin: 0;
}

/* =============================================================================
   PROJECT (.prj-pg) — pack: project.html
   hero + stat strip, ladder with STAY/LEAVE on the active rung, evidence,
   discussion, pool / my-pledge / facts aside.
   ============================================================================= */

html[data-design="v2"] .pg-body .prj-pg {
  padding-top: 10px;
}

/* hero: re-lights the shipped .fund-hero anatomy */
html[data-design="v2"] .pg-body .prj-pg .fund-hero {
  grid-template-columns: 108px minmax(0, 1fr);
  gap: 18px;
  margin: 0 0 12px;
  padding: 14px 20px 13px;
  align-items: start;
}
html[data-design="v2"] .pg-body .prj-pg .fund-hero-cover {
  width: 108px;
  height: 152px;
  padding: 0;
  display: block;
}
html[data-design="v2"] .pg-body .prj-pg .fund-hero-cover svg {
  width: 100%;
  height: 100%;
  display: block;
}
html[data-design="v2"] .pg-body .prj-pg .fund-hero-main h1 {
  font-size: 25px;
  margin: 0 0 6px;
  line-height: 1.14;
}
html[data-design="v2"] .pg-body .prj-pg .fund-pitch {
  font-size: 12.5px;
  line-height: 1.55;
  margin-bottom: 6px;
  max-width: none;
}
html[data-design="v2"] .pg-body .prj-pg .fund-hero-meta {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--ink-3);
  margin-bottom: 8px;
  line-height: 1.5;
}
html[data-design="v2"] .pg-body .prj-pg .fund-hero-meta b {
  color: var(--ink-2);
  font-weight: 500;
}
html[data-design="v2"] .pg-body .prj-pg .fund-hero-badges {
  margin-bottom: 8px;
}
html[data-design="v2"] .pg-body .prj-pg .fund-tagbar {
  margin-bottom: 10px;
}
html[data-design="v2"] .pg-body .prj-pg .fund-hero-actions {
  margin-bottom: 0;
}
html[data-design="v2"] .pg-body .prj-pg .fund-strip {
  margin-top: 12px;
  padding-top: 9px;
}
html[data-design="v2"] .pg-body .prj-pg .fund-strip-phase {
  font-size: 10px;
}
html[data-design="v2"] .pg-body .prj-pg .fund-strip-m {
  font-size: 12px;
}
html[data-design="v2"] .pg-body .prj-pg .fund-strip-clock {
  font-size: 11px;
}
html[data-design="v2"] .pg-body .prj-pg .fund-strip-sub {
  display: block;
  font-size: 10px;
  line-height: 1.45;
  margin-top: 1px;
}
html[data-design="v2"] .pg-body .prj-pg .fund-strip-sub b {
  color: var(--ink-2);
  font-weight: 500;
}
html[data-design="v2"] .pg-body .prj-pg .fund-contract-line {
  font-size: 10.5px;
  line-height: 1.55;
}

/* hero banner art: the wide banner is the hero's atmosphere; content stays legible */
html[data-design="v2"] .pg-body .prj-pg .fund-hero .hero-art {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 0;
}
html[data-design="v2"] .pg-body .prj-pg .fund-hero .hero-art svg {
  width: 100%;
  height: 100%;
  display: block;
  opacity: 0.75;
}
html[data-design="v2"] .pg-body .prj-pg .fund-hero .hero-art:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    96deg,
    rgba(11, 13, 17, 0.97) 0%,
    rgba(11, 13, 17, 0.93) 38%,
    rgba(11, 13, 17, 0.72) 64%,
    rgba(11, 13, 17, 0.5) 100%
  );
}
html[data-design="v2"] .pg-body .prj-pg .fund-hero-main {
  position: relative;
  z-index: 2;
}
html[data-design="v2"] .pg-body .prj-pg .fund-hero-cover {
  position: relative;
  z-index: 2;
}
html[data-design="v2"] .pg-body .prj-pg .prj-share {
  display: inline-flex;
  align-items: center;
}
html[data-design="v2"] .pg-body .prj-pg .prj-share summary {
  list-style: none;
}
html[data-design="v2"] .pg-body .prj-pg .prj-share summary::-webkit-details-marker {
  display: none;
}
html[data-design="v2"] .pg-body .prj-pg .prj-share[open] {
  position: relative;
}
html[data-design="v2"] .pg-body .prj-pg .prj-share p,
html[data-design="v2"] .pg-body .prj-pg .prj-share input {
  margin-top: 6px;
}
html[data-design="v2"] .pg-body .prj-pg .prj-share input {
  width: 260px;
  background: var(--bg-2);
  border: 1px solid var(--line-2);
  border-radius: 5px;
  color: var(--ink-2);
  font: inherit;
  font-size: 11px;
  padding: 5px 8px;
  outline: none;
}

/* rights panel */
html[data-design="v2"] .pg-body .prj-pg .prj-rights {
  margin-bottom: 14px;
}
html[data-design="v2"] .pg-body .prj-pg .prj-rights .prj-contrib {
  margin-top: 12px;
  padding-top: 11px;
  border-top: 1px solid var(--line);
}
html[data-design="v2"] .pg-body .prj-pg .prj-rights .pc-head h3 {
  font-size: 12.5px;
}
html[data-design="v2"] .pg-body .prj-pg .prj-rights .pc-head h4 {
  font-family: var(--font-display);
  font-size: 12.5px;
}
html[data-design="v2"] .pg-body .prj-pg .prj-rights .form {
  gap: 9px;
  margin-top: 8px;
}
html[data-design="v2"] .pg-body .prj-pg .prj-rights details > summary {
  margin-top: 8px;
  color: var(--ink-3);
  font-size: 12px;
}
html[data-design="v2"] .pg-body .prj-pg .prj-contrib-list {
  margin-top: 6px;
}
html[data-design="v2"] .pg-body .prj-pg .prj-rights-closed p {
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--ink-3);
}
html[data-design="v2"] .pg-body .prj-pg .prj-contribute {
  margin-top: 10px;
}
html[data-design="v2"] .pg-body .pg .plain-list {
  margin: 6px 0 0;
  padding-left: 18px;
  font-size: 12px;
  line-height: 1.7;
  color: var(--ink-3);
}
html[data-design="v2"] .pg-body .pg .markdown-body {
  font-size: 12.5px;
  line-height: 1.65;
  color: var(--ink-2);
}
html[data-design="v2"] .pg-body .pg .terms-plain {
  white-space: pre-wrap;
  font-family: var(--font-mono);
  font-size: 11.5px;
  color: var(--ink-2);
}

/* two-column body */
html[data-design="v2"] .pg-body .prj-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 356px;
  gap: 20px;
  align-items: start;
}
html[data-design="v2"] .pg-body .prj-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
html[data-design="v2"] .pg-body .prj-main .sec-head {
  margin: 0 0 7px;
}
html[data-design="v2"] .pg-body .prj-aside {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}

/* ladder */
html[data-design="v2"] .pg-body .prj-pg .ladder {
  background: var(--panel);
}
html[data-design="v2"] .pg-body .prj-pg .ladder-head {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 120px 110px 92px;
  gap: 10px;
  align-items: center;
  padding: 6px 14px;
  border-bottom: 1px solid var(--line);
  background: #0a0c0f;
}
html[data-design="v2"] .pg-body .prj-pg .ladder-head span {
  font-family: var(--font-mono);
  font-size: 8.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .prj-pg .ladder-head .r {
  text-align: right;
}
html[data-design="v2"] .pg-body .prj-pg .ladder .rung {
  padding: 9px 14px;
}
html[data-design="v2"] .pg-body .prj-pg .rung .nm .m {
  white-space: normal;
  line-height: 1.4;
}
html[data-design="v2"] .pg-body .prj-pg .rung .t .mark {
  font-size: 8px;
}
html[data-design="v2"] .pg-body .prj-pg .rung .stchip {
  font-size: 9px;
}
html[data-design="v2"] .pg-body .prj-pg .rung.active {
  background: linear-gradient(90deg, #151203, #0f1216 72%);
}
html[data-design="v2"] .pg-body .prj-pg .rung.active .nm .t {
  color: var(--gold);
}
html[data-design="v2"] .pg-body .prj-pg .rung .ev {
  flex-wrap: wrap;
  gap: 8px 12px;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .prj-pg .rung .ev .btn {
  color: var(--ink-2);
}
html[data-design="v2"] .pg-body .prj-pg .rung .ev .btn:hover {
  color: var(--ink);
}

/* STAY / LEAVE decision on the active rung — never red */
html[data-design="v2"] .pg-body .prj-pg .decision {
  grid-column: 1 / -1;
  margin-top: 7px;
  border: 1px solid var(--gold-dim);
  border-radius: 9px;
  background: #0c0b07;
  padding: 8px 11px 9px;
}
html[data-design="v2"] .pg-body .prj-pg .decision-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding-bottom: 7px;
  border-bottom: 1px solid #2a2414;
}
html[data-design="v2"] .pg-body .prj-pg .decision-head .dclock {
  color: var(--gold);
  font-size: 13px;
  line-height: 1;
}
html[data-design="v2"] .pg-body .prj-pg .decision-head .dclock-line {
  font-size: 11.5px;
  color: var(--ink-3);
  font-family: var(--font-mono);
}
html[data-design="v2"] .pg-body .prj-pg .decision-head .dclock-line b {
  color: var(--gold);
  font-weight: 500;
}
html[data-design="v2"] .pg-body .prj-pg .decision-head .stchip {
  margin-left: auto;
}
html[data-design="v2"] .pg-body .prj-pg .decision-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin-top: 7px;
}
html[data-design="v2"] .pg-body .prj-pg .dcol {
  padding: 2px 14px 2px 0;
  min-width: 0;
}
html[data-design="v2"] .pg-body .prj-pg .dcol.leave {
  padding: 2px 0 2px 16px;
  border-left: 1px solid #2a2414;
}
html[data-design="v2"] .pg-body .prj-pg .dc-k {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-3);
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
}
html[data-design="v2"] .pg-body .prj-pg .dcol.stay .dc-k {
  color: var(--green);
}
html[data-design="v2"] .pg-body .prj-pg .dcol.leave .dc-k {
  color: var(--ink-2);
}
html[data-design="v2"] .pg-body .prj-pg .dc-k span {
  font-family: var(--font-ui);
  font-size: 9.5px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .prj-pg .dc-v {
  margin-top: 4px;
  font-size: 12px;
  color: var(--ink-2);
}
html[data-design="v2"] .pg-body .prj-pg .dc-v b {
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 500;
  margin-right: 3px;
}
html[data-design="v2"] .pg-body .prj-pg .dc-s {
  font-size: 9.5px;
  color: var(--ink-3);
  margin-top: 3px;
  line-height: 1.45;
}
html[data-design="v2"] .pg-body .prj-pg .decision-foot {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 7px;
  padding-top: 7px;
  border-top: 1px solid #2a2414;
}
html[data-design="v2"] .pg-body .prj-pg .decision-foot .faint {
  font-size: 10px;
  flex: 1 1 260px;
  line-height: 1.5;
}
html[data-design="v2"] .pg-body .prj-pg .dbtns {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}
html[data-design="v2"] .pg-body .prj-pg .dbtns .btn,
html[data-design="v2"] .pg-body .prj-pg .leavebtn {
  height: 26px;
  font-size: 11px;
}
html[data-design="v2"] .pg-body .prj-pg .leavebtn {
  display: inline-flex;
  align-items: center;
  padding: 0 11px;
  border-radius: 6px;
  border: 1px solid var(--gold-dim);
  color: var(--gold);
  background: transparent;
  font-weight: 600;
  cursor: pointer;
}
html[data-design="v2"] .pg-body .prj-pg .decision > p.small {
  margin-top: 6px;
}

/* ladder footnote */
html[data-design="v2"] .pg-body .prj-note {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  border: 1px solid var(--line);
  border-left: 3px solid var(--gold-dim);
  border-radius: 0 8px 8px 0;
  background: linear-gradient(90deg, #12100a, var(--panel) 72%);
  padding: 10px 12px;
  font-size: 11px;
  line-height: 1.6;
  color: var(--ink-3);
}
html[data-design="v2"] .pg-body .prj-note .lockglyph {
  width: 11px;
  height: 11px;
  border: 1.4px solid var(--faint);
  border-radius: 2px;
  margin-top: 3px;
  flex: 0 0 auto;
  position: relative;
}
html[data-design="v2"] .pg-body .prj-note .lockglyph:after {
  content: "";
  position: absolute;
  left: 1px;
  top: -5px;
  width: 6px;
  height: 5px;
  border: 1.4px solid var(--faint);
  border-bottom: 0;
  border-radius: 3px 3px 0 0;
}
html[data-design="v2"] .pg-body .prj-note .ink2 {
  color: var(--ink-2);
}

/* sections below the ladder */
html[data-design="v2"] .pg-body .prj-sec {
  display: block;
}
html[data-design="v2"] .pg-body .prj-sec .panel-card {
  padding: 0 14px;
}
html[data-design="v2"] .pg-body .ev-card {
  padding: 2px 14px 10px;
}
html[data-design="v2"] .pg-body .ev-row {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto 60px;
  gap: 11px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
html[data-design="v2"] .pg-body .ev-row:last-of-type {
  border-bottom: 0;
}
html[data-design="v2"] .pg-body .ev-num {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .ev-tx {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
html[data-design="v2"] .pg-body .ev-tx b {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink-2);
}
html[data-design="v2"] .pg-body .ev-tx .mono {
  font-size: 10px;
  color: var(--faint);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
html[data-design="v2"] .pg-body .ev-when {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--faint);
  text-align: right;
}
html[data-design="v2"] .pg-body .ev-foot {
  font-size: 10.5px;
  color: var(--faint);
  padding: 9px 0 2px;
  border-top: 1px solid var(--line);
  margin-top: 2px;
}
html[data-design="v2"] .pg-body .ev-detail {
  padding: 0 0 9px 41px;
  border-bottom: 1px solid var(--line);
  margin: 0;
}
html[data-design="v2"] .pg-body .ev-detail:last-of-type {
  border-bottom: 0;
}
html[data-design="v2"] .pg-body .threads-card {
  padding: 2px 6px;
}
html[data-design="v2"] .pg-body .threads-card .threadrow {
  padding: 9px 8px;
}

/* claim vote + tally */
html[data-design="v2"] .pg-body .prj-tally {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 18px;
  margin: 8px 0 10px;
  padding: 8px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

/* pool panel */
html[data-design="v2"] .pg-body .prj-aside .side-card {
  padding: 13px;
}
html[data-design="v2"] .pg-body .prj-aside .side-card h3 {
  margin-bottom: 9px;
}
html[data-design="v2"] .pg-body .prj-aside .pbar2 {
  margin: 8px 0 5px;
}
html[data-design="v2"] .pg-body .prj-aside .prow {
  font-size: 10.5px;
  padding: 2.5px 0;
}
html[data-design="v2"] .pg-body .prj-aside .prow b {
  font-size: 10.5px;
}
html[data-design="v2"] .pg-body .prj-aside .prow.total {
  border-top: 1px solid var(--line);
  margin-top: 5px;
  padding-top: 6px;
}
html[data-design="v2"] .pg-body .prj-aside .prow.total b {
  color: var(--gold);
}
html[data-design="v2"] .pg-body .prj-aside .poolbig {
  font-size: 27px;
  line-height: 1.1;
}
html[data-design="v2"] .pg-body .prj-aside .poolbig small {
  font-size: 10.5px;
}
html[data-design="v2"] .pg-body .prj-pg .reconcile {
  display: grid;
  grid-template-columns: 15px minmax(0, 1fr);
  gap: 2px 6px;
  margin-top: 9px;
  padding: 8px 9px;
  border: 1px solid #2e4a33;
  border-radius: 6px;
  background: #0b1410;
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--ink-2);
}
html[data-design="v2"] .pg-body .prj-pg .reconcile .ok {
  color: var(--green);
}
html[data-design="v2"] .pg-body .prj-pg .waidrail {
  margin-top: 9px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
  font-size: 9.5px;
  line-height: 1.5;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .prj-pg .pool-foot {
  display: flex;
  gap: 6px;
  align-items: baseline;
  margin-top: 9px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
  font-size: 10px;
  color: var(--ink-3);
}
html[data-design="v2"] .pg-body .prj-pg .pool-foot a {
  color: var(--ink-2);
}
html[data-design="v2"] .pg-body .prj-pg .pool-foot a:hover {
  color: var(--accent);
}
html[data-design="v2"] .pg-body .prj-pg .prj-patrons {
  margin-top: 9px;
}
html[data-design="v2"] .pg-body .prj-pg .prj-patrons summary {
  font-size: 11px;
  color: var(--ink-2);
}
html[data-design="v2"] .pg-body .prj-aside .pledge {
  margin-top: 0;
}
html[data-design="v2"] .pg-body .prj-aside .pledge + .pledge {
  margin-top: 9px;
}
html[data-design="v2"] .pg-body .prj-aside .pledge .ph .pt {
  font-size: 11px;
}
html[data-design="v2"] .pg-body .prj-aside .pledge .form {
  gap: 7px;
  margin-top: 8px;
}
html[data-design="v2"] .pg-body .prj-aside .pledge .field span {
  font-size: 9.5px;
}
html[data-design="v2"] .pg-body .prj-aside .pledge .form-actions .btn {
  height: 25px;
  font-size: 10.5px;
}
html[data-design="v2"] .pg-body .prj-aside .my-pledge-card .form {
  gap: 8px;
  margin-top: 9px;
}
html[data-design="v2"] .pg-body .prj-aside .my-pledge-card .field span {
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-3);
}
html[data-design="v2"] .pg-body .prj-aside .my-pledge-card .checkline {
  font-size: 10.5px;
}
html[data-design="v2"] .pg-body .prj-aside .my-pledge-card .btn.amber {
  border-color: var(--gold-dim);
  color: var(--gold);
  background: transparent;
}
html[data-design="v2"] .pg-body .prj-aside .pledge-foot {
  font-size: 9.5px;
  color: var(--faint);
  margin-top: 8px;
}
html[data-design="v2"] .pg-body .prj-aside .lockrow {
  margin-top: 9px;
}
html[data-design="v2"] .pg-body .prj-steps,
html[data-design="v2"] .pg-body .prj-disclosure {
  margin-top: 10px;
  font-size: 10.5px;
}
html[data-design="v2"] .pg-body .prj-steps ol {
  margin: 6px 0;
  padding-left: 17px;
}
html[data-design="v2"] .pg-body .prj-steps summary,
html[data-design="v2"] .pg-body .prj-disclosure summary {
  color: var(--ink-3);
  font-size: 11px;
}
html[data-design="v2"] .pg-body .prj-aside .fact {
  font-size: 10.5px;
  padding: 2.5px 0;
}
html[data-design="v2"] .pg-body .prj-aside .fact b {
  font-size: 10.5px;
}
html[data-design="v2"] .pg-body .prj-aside .fact .mono {
  font-size: 10px;
}
html[data-design="v2"] .pg-body .prj-pg .creator-mini {
  display: flex;
  gap: 9px;
  align-items: center;
  margin-top: 10px;
  padding-top: 9px;
  border-top: 1px solid var(--line);
}
html[data-design="v2"] .pg-body .prj-pg .creator-mini .cava {
  width: 30px;
  height: 30px;
  font-size: 11px;
  border: 1px solid var(--line-2);
  border-radius: 50%;
  display: grid;
  place-items: center;
  overflow: hidden;
  flex: 0 0 auto;
}
html[data-design="v2"] .pg-body .prj-pg .creator-mini .cava svg {
  width: 30px;
  height: 30px;
  display: block;
}
html[data-design="v2"] .pg-body .prj-pg .creator-mini .cn {
  font-size: 11.5px;
  font-weight: 600;
  display: block;
}
html[data-design="v2"] .pg-body .prj-pg .creator-mini .cm {
  font-size: 9.5px;
  color: var(--faint);
  display: block;
  margin-top: 1px;
}
html[data-design="v2"] .pg-body .prj-actions {
  margin-top: 9px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}

/* stalled banner */
html[data-design="v2"] .pg-body .prj-stalled {
  margin-bottom: 14px;
  border-color: var(--gold-dim);
}
html[data-design="v2"] .pg-body .prj-stalled .pc-head h3 {
  color: var(--gold);
}
html[data-design="v2"] .pg-body .prj-mega {
  margin-top: 18px;
}

/* responsive */
@media (max-width: 1180px) {
  html[data-design="v2"] .pg-body .prj-pg .fund-hero {
    grid-template-columns: 112px minmax(0, 1fr);
    padding: 16px 18px 14px;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-hero-cover {
    width: 112px;
    height: 158px;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-hero-main h1 {
    font-size: 24px;
  }
  html[data-design="v2"] .pg-body .prj-grid {
    grid-template-columns: minmax(0, 1fr) 318px;
  }
}
@media (max-width: 980px) {
  html[data-design="v2"] .pg-body .prj-grid {
    grid-template-columns: 1fr;
  }
  html[data-design="v2"] .pg-body .prj-aside {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    align-items: start;
  }
  html[data-design="v2"] .pg-body .prj-aside .pool-card {
    grid-column: 1 / -1;
  }
}
@media (max-width: 760px) {
  html[data-design="v2"] .pg-body .prj-pg {
    padding-top: 8px;
    padding-left: 10px;
    padding-right: 10px;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-hero {
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 11px;
    padding: 12px;
    margin-bottom: 10px;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-hero-cover {
    width: 88px;
    height: 124px;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-hero-main h1 {
    font-size: 19px;
    line-height: 1.15;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-hero-badges {
    gap: 4px;
    margin-bottom: 6px;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-pitch {
    font-size: 11.5px;
    line-height: 1.5;
    margin-bottom: 5px;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-hero-meta {
    font-size: 9px;
    margin-bottom: 7px;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-hero-actions .btn {
    height: 26px;
    font-size: 10px;
    padding: 0 8px;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-strip {
    gap: 2px 8px;
    margin-top: 9px;
    padding-top: 7px;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-strip-phase {
    font-size: 9px;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-strip-m {
    font-size: 11px;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-strip-clock {
    font-size: 9.5px;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-strip-sub {
    font-size: 9px;
  }
  html[data-design="v2"] .pg-body .prj-aside {
    grid-template-columns: 1fr;
  }
  html[data-design="v2"] .pg-body .prj-pg .ladder-head {
    display: none;
  }
  html[data-design="v2"] .pg-body .prj-main .sec-head {
    flex-wrap: nowrap;
    gap: 8px;
    align-items: baseline;
  }
  html[data-design="v2"] .pg-body .prj-main .sec-head .meta {
    display: none;
  }
  html[data-design="v2"] .pg-body .prj-main .sec-head a {
    white-space: nowrap;
    font-size: 10.5px;
  }
  html[data-design="v2"] .pg-body .prj-pg .ladder .rung {
    grid-template-columns: 30px minmax(0, 1fr) auto;
    gap: 3px 9px;
    padding: 10px 11px;
    align-items: start;
  }
  html[data-design="v2"] .pg-body .prj-pg .rung .num {
    grid-column: 1;
    grid-row: 1;
  }
  html[data-design="v2"] .pg-body .prj-pg .rung .nm {
    grid-column: 2;
    grid-row: 1;
  }
  html[data-design="v2"] .pg-body .prj-pg .rung .st {
    grid-column: 3;
    grid-row: 1;
  }
  html[data-design="v2"] .pg-body .prj-pg .rung .tg {
    grid-column: 2;
    grid-row: auto;
    text-align: left;
    font-size: 10.5px;
    color: var(--ink-3);
    margin-top: 4px;
  }
  html[data-design="v2"] .pg-body .prj-pg .rung .tg:before {
    content: "target ";
    font-family: var(--font-mono);
    font-size: 8.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
  }
  html[data-design="v2"] .pg-body .prj-pg .rung .sh {
    grid-column: 2;
    grid-row: auto;
    text-align: left;
    font-size: 10.5px;
    color: var(--ink-3);
    margin-top: 0;
  }
  html[data-design="v2"] .pg-body .prj-pg .rung .sh:before {
    content: "share  ";
    font-family: var(--font-mono);
    font-size: 8.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
  }
  html[data-design="v2"] .pg-body .prj-pg .rung .nm .t {
    white-space: normal;
    font-size: 12.5px;
  }
  html[data-design="v2"] .pg-body .prj-pg .rung.active .decision {
    margin-top: 8px;
    padding: 9px 10px;
  }
  html[data-design="v2"] .pg-body .prj-pg .decision-cols {
    grid-template-columns: 1fr;
    gap: 9px;
  }
  html[data-design="v2"] .pg-body .prj-pg .dcol {
    padding: 0;
  }
  html[data-design="v2"] .pg-body .prj-pg .dcol.leave {
    padding: 9px 0 0;
    border-left: 0;
    border-top: 1px solid #2a2414;
  }
  html[data-design="v2"] .pg-body .prj-pg .decision-foot {
    flex-direction: column;
    align-items: stretch;
  }
  html[data-design="v2"] .pg-body .prj-pg .dbtns .btn,
  html[data-design="v2"] .pg-body .prj-pg .dbtns .leavebtn {
    flex: 1;
    justify-content: center;
  }
  html[data-design="v2"] .pg-body .ev-row {
    grid-template-columns: 24px minmax(0, 1fr) auto;
    gap: 8px;
  }
  html[data-design="v2"] .pg-body .ev-when {
    display: none;
  }
  html[data-design="v2"] .pg-body .ev-tx .mono {
    white-space: normal;
  }
  html[data-design="v2"] .pg-body .ev-detail {
    padding-left: 32px;
  }
  html[data-design="v2"] .pg-body .prj-pg .decision-head .stchip {
    margin-left: 0;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-hero .hero-art svg {
    opacity: 0.55;
  }
}
@media (max-width: 430px) {
  html[data-design="v2"] .pg-body .prj-pg .fund-hero {
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 10px;
    padding: 11px;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-hero-cover {
    width: 78px;
    height: 110px;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-hero-main h1 {
    font-size: 18px;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-strip-sub {
    display: none;
  }
  html[data-design="v2"] .pg-body .prj-pg .fund-hero .hero-art {
    display: none;
  }
  html[data-design="v2"] .pg-body .prj-pg .ladder-head {
    display: none;
  }
}

/* =============================================================================
   READER (.rd-pg) — pack: reader.html
   chapter bar + 68ch serif column + chapter TOC.
   ============================================================================= */

html[data-design="v2"] .pg-body .rd-pg {
  max-width: 1120px;
  padding: 12px 22px 34px;
}
html[data-design="v2"] .pg-body .rd-pg .chapbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
  padding: 11px 16px;
}
html[data-design="v2"] .pg-body .rd-pg .chapnav {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .rd-pg .chapnav .cn-arrow {
  font-family: var(--font-mono);
  font-size: 15px;
  line-height: 1;
  color: var(--ink-3);
}
html[data-design="v2"] .pg-body .rd-pg .chapnav:hover .cn-arrow {
  color: var(--gold);
}
html[data-design="v2"] .pg-body .rd-pg .chapnav:hover .cn-t {
  color: var(--ink);
}
html[data-design="v2"] .pg-body .rd-pg .chapnav .cn-tx {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}
html[data-design="v2"] .pg-body .rd-pg .chapnav .cn-k {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}
html[data-design="v2"] .pg-body .rd-pg .chapnav .cn-t {
  font-size: 11.5px;
  color: var(--ink-3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
html[data-design="v2"] .pg-body .rd-pg .chapnav.next {
  justify-content: flex-end;
  text-align: right;
}
html[data-design="v2"] .pg-body .rd-pg .chapmid {
  min-width: 0;
  text-align: center;
}
html[data-design="v2"] .pg-body .rd-pg .chapmid .worktitle {
  font-family: var(--font-display);
  font-size: 17px;
  line-height: 1.2;
  color: var(--ink);
  letter-spacing: 0.1px;
}
html[data-design="v2"] .pg-body .rd-pg .chapmid .worktitle:hover {
  color: var(--gold);
}
html[data-design="v2"] .pg-body .rd-pg .chapnow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 4px;
  flex-wrap: wrap;
}
html[data-design="v2"] .pg-body .rd-pg .chapnow .pill {
  height: 19px;
  font-size: 9px;
  padding: 0 7px;
}
html[data-design="v2"] .pg-body .rd-pg .chapnow .chapname {
  font-size: 11.5px;
  color: var(--ink-2);
}
html[data-design="v2"] .pg-body .rd-pg .chapstats {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  margin-top: 5px;
  flex-wrap: wrap;
  font-family: var(--font-mono);
  font-size: 9.5px;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .rd-pg .chapstats .st {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  color: var(--ink-3);
}

/* grid + prose */
html[data-design="v2"] .pg-body .rd-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 264px;
  gap: 26px;
  align-items: start;
  margin-top: 16px;
}
html[data-design="v2"] .pg-body .rd-main {
  min-width: 0;
}
/* Reader typography (font family/size/line-height/measure, colour and paper
   background) is owned by the per-user /library/reader.css rule sheet, which is
   linked inside the page body after every head stylesheet. Lane rules must not
   compete with it: only layout fallbacks here, wrapped in :where() so the
   selector carries zero prefix specificity and reader.css wins the tie. No
   colour is set on .reader-body or its prose descendants — a light/sepia reader
   theme has to be able to recolour the prose through inheritance. */
:where(html[data-design="v2"] .pg-body .rd-main) .reader-body {
  max-width: 68ch;
  margin: 0 auto;
}
html[data-design="v2"] .pg-body .rd-kicker {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: inherit;
  opacity: 0.8;
}
html[data-design="v2"] .pg-body .rd-title {
  font-family: var(--font-display);
  font-size: 28px;
  line-height: 1.12;
  color: inherit;
  margin: 5px 0 6px;
  letter-spacing: 0.2px;
}
html[data-design="v2"] .pg-body .rd-byline {
  font-family: var(--font-mono);
  font-size: 10px;
  color: inherit;
  opacity: 0.72;
  border-bottom: 1px solid currentColor;
  padding-bottom: 13px;
  margin-bottom: 22px;
}
html[data-design="v2"] .pg-body .rd-byline b {
  color: inherit;
  font-weight: 500;
}
html[data-design="v2"] .pg-body .rd-main .chapter-notes {
  margin-top: 22px;
  padding: 11px 13px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
}
html[data-design="v2"] .pg-body .rd-main .chapter-notes h3 {
  font-family: var(--font-display);
  font-size: 13px;
  color: var(--ink-2);
  margin-bottom: 6px;
}
html[data-design="v2"] .pg-body .rd-main .chapter-notes p {
  font-size: 12px;
  line-height: 1.65;
  color: var(--ink-3);
}
html[data-design="v2"] .pg-body .reader-notice {
  border: 1px solid var(--line-2);
  border-left: 3px solid var(--gold-dim);
  border-radius: 0 7px 7px 0;
  background: var(--bg-2);
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1.6;
  color: var(--ink-3);
  margin: 14px 0;
}
html[data-design="v2"] .pg-body .reader-notice.ok {
  border-left-color: var(--green);
  margin: 16px 0;
}
html[data-design="v2"] .pg-body .reader-power {
  max-width: 68ch;
  margin: 10px auto 0;
  font-size: 10.5px;
}

/* reader foot */
html[data-design="v2"] .pg-body .rd-main .reader-foot {
  max-width: 68ch;
  margin: 28px auto 0;
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
  border-top: 1px solid var(--line);
  padding-top: 14px;
}
html[data-design="v2"] .pg-body .ft-spacer {
  flex: 1;
}
html[data-design="v2"] .pg-body .ft-note {
  font-family: var(--font-mono);
  font-size: 9.5px;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .kudos-on {
  color: var(--gold);
  border-color: var(--gold-dim);
}
html[data-design="v2"] .pg-body .reader-foot-note {
  max-width: 68ch;
  margin: 9px auto 0;
  font-family: var(--font-mono);
  font-size: 9.5px;
  color: var(--faint);
  line-height: 1.65;
}
html[data-design="v2"] .pg-body .rd-prefs {
  max-width: 68ch;
  margin: 18px auto 0;
  padding: 12px 14px;
}
html[data-design="v2"] .pg-body .rd-prefs .form {
  margin-top: 10px;
  gap: 10px;
}
html[data-design="v2"] .pg-body .rd-prefs input[type="range"] {
  accent-color: var(--gold);
}
html[data-design="v2"] .pg-body .rd-prefs .field span {
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-3);
}

/* comments */
html[data-design="v2"] .pg-body .rd-comments {
  max-width: 68ch;
  margin: 30px auto 0;
}
html[data-design="v2"] .pg-body .rd-comments .sec-head {
  flex-wrap: wrap;
}
html[data-design="v2"] .pg-body .rd-comments .cm-card {
  padding: 0 14px;
}
html[data-design="v2"] .pg-body .rd-comments .cm {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 10px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
html[data-design="v2"] .pg-body .rd-comments .cm:last-of-type,
html[data-design="v2"] .pg-body .rd-comments .cm-reply:last-child {
  border-bottom: 0;
}
html[data-design="v2"] .pg-body .rd-comments .cm svg.identicon {
  border-radius: 50%;
  width: 30px;
  height: 30px;
}
html[data-design="v2"] .pg-body .rd-comments .cm-head {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}
html[data-design="v2"] .pg-body .rd-comments .cm-author {
  font-weight: 600;
  font-size: 12px;
  color: var(--ink);
}
html[data-design="v2"] .pg-body .rd-comments .cm-author:hover {
  color: var(--accent);
}
html[data-design="v2"] .pg-body .rd-comments .cm-when {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .rd-comments .cm-body {
  font-size: 12.5px;
  line-height: 1.66;
  color: var(--ink-2);
  margin-top: 5px;
}
html[data-design="v2"] .pg-body .rd-comments .cm-foot {
  display: flex;
  gap: 7px;
  align-items: center;
  margin-top: 6px;
  font-size: 10px;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .rd-comments .cm-foot .btn {
  height: 24px;
  font-size: 10px;
  padding: 0 8px;
}
html[data-design="v2"] .pg-body .rd-comments .cm-reply {
  margin-left: 26px;
  border-left: 1px solid var(--line);
  padding-left: 12px;
}
html[data-design="v2"] .pg-body .rd-comments .cm-compose {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 6px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}
html[data-design="v2"] .pg-body .rd-comments .cm-compose .textarea {
  width: 100%;
  min-height: 70px;
}
html[data-design="v2"] .pg-body .rd-comments .cm-reply-box {
  margin-top: 6px;
}
html[data-design="v2"] .pg-body .rd-comments .cm-reply-box summary {
  font-size: 10.5px;
  color: var(--ink-3);
}
html[data-design="v2"] .pg-body .rd-comments .cm-reply-box .form {
  margin-top: 7px;
  gap: 7px;
}

/* chapter TOC aside */
html[data-design="v2"] .pg-body .rd-aside {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  position: sticky;
  top: 64px;
}
html[data-design="v2"] .pg-body .rd-aside .side-card {
  padding: 13px;
}
html[data-design="v2"] .pg-body .rd-aside .side-card h3 {
  margin-bottom: 9px;
}
html[data-design="v2"] .pg-body .rd-aside .toc a {
  align-items: center;
  gap: 7px;
  padding: 6px 7px;
}
html[data-design="v2"] .pg-body .rd-aside .toc .t {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
html[data-design="v2"] .pg-body .rd-aside .toc .st {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .rd-aside .toc .st.now {
  color: var(--gold);
}
html[data-design="v2"] .pg-body .rd-prog {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}
html[data-design="v2"] .pg-body .rd-prog-tx {
  font-size: 9.5px;
  color: var(--faint);
  margin-top: 5px;
  font-family: var(--font-mono);
}
html[data-design="v2"] .pg-body .rd-aside .fact {
  font-size: 10px;
  padding: 2.5px 0;
}
html[data-design="v2"] .pg-body .rd-aside .fact b {
  font-size: 10px;
}
html[data-design="v2"] .pg-body .rd-tags {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}
html[data-design="v2"] .pg-body .rd-tags .mtag,
html[data-design="v2"] .pg-body .rd-tags .pill {
  font-size: 9.5px;
  padding: 1px 5px;
}
html[data-design="v2"] .pg-body .rd-notes {
  margin-top: 10px;
  padding-top: 9px;
  border-top: 1px solid var(--line);
  font-size: 10px;
  line-height: 1.6;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .rd-notes b {
  color: var(--ink-3);
  font-weight: 600;
}

@media (max-width: 1000px) {
  html[data-design="v2"] .pg-body .rd-pg {
    max-width: none;
  }
}
@media (max-width: 900px) {
  html[data-design="v2"] .pg-body .rd-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }
  html[data-design="v2"] .pg-body .rd-aside {
    display: none;
  }
}
@media (max-width: 760px) {
  html[data-design="v2"] .pg-body .rd-pg {
    padding: 8px 10px 30px;
  }
  html[data-design="v2"] .pg-body .rd-pg .chapbar {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 9px;
    padding: 9px 10px;
    border-radius: 8px;
  }
  html[data-design="v2"] .pg-body .rd-pg .chapnav .cn-t {
    display: none;
  }
  html[data-design="v2"] .pg-body .rd-pg .chapnav .cn-k {
    font-size: 8px;
    letter-spacing: 0.06em;
    color: var(--ink-3);
    white-space: nowrap;
  }
  html[data-design="v2"] .pg-body .rd-pg .chapnav .cn-arrow {
    font-size: 13px;
    color: var(--ink-3);
  }
  html[data-design="v2"] .pg-body .rd-pg .chapmid .worktitle {
    font-size: 14.5px;
  }
  html[data-design="v2"] .pg-body .rd-pg .chapnow {
    margin-top: 2px;
    gap: 5px;
  }
  html[data-design="v2"] .pg-body .rd-pg .chapnow .chapname {
    font-size: 10.5px;
  }
  html[data-design="v2"] .pg-body .rd-pg .chapnow .pill {
    height: 17px;
    font-size: 8px;
  }
  html[data-design="v2"] .pg-body .rd-pg .chapstats {
    gap: 9px;
    font-size: 8.5px;
    margin-top: 3px;
  }
  html[data-design="v2"] .pg-body .rd-grid {
    margin-top: 12px;
  }
  html[data-design="v2"] .pg-body .rd-title {
    font-size: 23px;
  }
  html[data-design="v2"] .pg-body .rd-byline {
    font-size: 9px;
    padding-bottom: 11px;
    margin-bottom: 18px;
  }
  html[data-design="v2"] .pg-body .rd-main .reader-foot {
    margin-top: 22px;
  }
  html[data-design="v2"] .pg-body .ft-note {
    display: none;
  }
  html[data-design="v2"] .pg-body .rd-comments {
    margin-top: 24px;
  }
}

/* =============================================================================
   LIBRARY (.lib-pg) — pack: library.html
   stat tiles + continue-reading rows + shelves.
   ============================================================================= */

html[data-design="v2"] .pg-body .lib-pg {
  padding-top: 14px;
}
html[data-design="v2"] .pg-body .lib-pg .pg-head {
  margin-bottom: 10px;
}
html[data-design="v2"] .pg-body .lib-pg .pg-title .glyph {
  font-size: 19px;
}
html[data-design="v2"] .pg-body .lib-pg .pg-desc {
  max-width: 78ch;
}
html[data-design="v2"] .pg-body .lib-pg .pg-actions .btn {
  height: 29px;
}

/* stat tiles */
html[data-design="v2"] .pg-body .lib-pg .lib-stats {
  gap: 9px;
}
html[data-design="v2"] .pg-body .lib-pg .lib-stat {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 9px;
  align-items: center;
  padding: 10px 11px;
  border-radius: var(--radius-sm);
}
html[data-design="v2"] .pg-body .lib-pg .lib-stat:hover {
  border-color: var(--line-2);
  background: var(--panel-2);
}
html[data-design="v2"] .pg-body .lib-pg .ls-ico {
  width: 25px;
  height: 25px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line-2);
  background: var(--bg-2);
  color: var(--gold);
  font-size: 11px;
}
html[data-design="v2"] .pg-body .lib-pg .ls-body {
  min-width: 0;
  display: block;
}
html[data-design="v2"] .pg-body .lib-pg .lib-stat .v {
  font-size: 19px;
  line-height: 1.1;
  display: block;
}
html[data-design="v2"] .pg-body .lib-pg .lib-stat .k {
  display: block;
  font-size: 8.5px;
  letter-spacing: 0.13em;
  margin-top: 1px;
}
html[data-design="v2"] .pg-body .lib-pg .lib-stat .d {
  display: block;
  font-size: 9px;
  color: var(--faint);
  margin-top: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* grid */
html[data-design="v2"] .pg-body .lib-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 326px;
  gap: 22px;
  align-items: start;
  margin-top: 12px;
}
html[data-design="v2"] .pg-body .lib-main {
  min-width: 0;
}
html[data-design="v2"] .pg-body .lib-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* reading rows */
html[data-design="v2"] .pg-body .lib-pg .lib-book {
  grid-template-columns: 46px minmax(0, 1fr) 206px 96px;
  grid-template-areas: "cv tx prog cta";
  gap: 13px;
  align-items: center;
  padding: 9px 12px;
  border-radius: 8px;
}
html[data-design="v2"] .pg-body .lib-pg .lib-book:hover {
  border-color: var(--line-2);
}
html[data-design="v2"] .pg-body .lb-cv {
  grid-area: cv;
  display: block;
  width: 46px;
  height: 69px;
  border-radius: 3px;
  overflow: hidden;
  border: 1px solid var(--line-2);
  flex: 0 0 auto;
}
html[data-design="v2"] .pg-body .lb-cv svg {
  width: 100%;
  height: 100%;
  display: block;
}
html[data-design="v2"] .pg-body .lb-tx {
  grid-area: tx;
  min-width: 0;
}
html[data-design="v2"] .pg-body .lb-tx .t {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
html[data-design="v2"] .pg-body .lb-tx .t:hover {
  color: var(--gold);
}
html[data-design="v2"] .pg-body .lb-tx .t .pill {
  height: 18px;
  font-size: 8.5px;
  padding: 0 6px;
}
html[data-design="v2"] .pg-body .lb-tx .m {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 10px;
  color: var(--faint);
  margin-top: 4px;
}
html[data-design="v2"] .pg-body .lb-tx .m .mtag {
  font-size: 9px;
  padding: 1px 5px;
}
html[data-design="v2"] .pg-body .lib-progress {
  grid-area: prog;
  min-width: 0;
}
html[data-design="v2"] .pg-body .lib-progress .n {
  font-size: 9.5px;
  color: var(--faint);
  margin-top: 5px;
  font-family: var(--font-mono);
}
html[data-design="v2"] .pg-body .lib-pg .progressbar {
  height: 4px;
}
html[data-design="v2"] .pg-body .lb-cta {
  grid-area: cta;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}
html[data-design="v2"] .pg-body .lb-cta .btn {
  height: 27px;
  font-size: 11px;
  padding: 0 12px;
  justify-content: center;
}
html[data-design="v2"] .pg-body .lb-cta .inline-form .btn {
  height: 22px;
  font-size: 9.5px;
  padding: 0 6px;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .lb-when {
  font-family: var(--font-mono);
  font-size: 8.5px;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .lib-pg .lib-book.done {
  background: linear-gradient(90deg, #0b1410, var(--panel) 64%);
  border-color: #24402f;
}
html[data-design="v2"] .pg-body .lib-tip {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  margin-top: 10px;
  padding: 9px 11px;
  border: 1px dashed var(--line-2);
  border-radius: 7px;
  background: var(--bg-2);
  font-size: 10.5px;
  line-height: 1.55;
  color: var(--ink-3);
}
html[data-design="v2"] .pg-body .lib-tip .tip-ico {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
  flex: 0 0 auto;
  margin-top: 5px;
}
html[data-design="v2"] .pg-body .lib-tip b {
  color: var(--ink-2);
  font-weight: 500;
}

/* aside */
html[data-design="v2"] .pg-body .lib-aside {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  position: sticky;
  top: 66px;
}
html[data-design="v2"] .pg-body .lib-aside .side-card {
  padding: 13px;
}
html[data-design="v2"] .pg-body .lib-aside .side-card h3 {
  margin-bottom: 9px;
}
html[data-design="v2"] .pg-body .lib-up {
  display: grid;
  grid-template-columns: 19px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: start;
  padding: 6px 0;
  border-bottom: 1px solid var(--line);
}
html[data-design="v2"] .pg-body .lib-up:last-child {
  border-bottom: 0;
  padding-bottom: 2px;
}
html[data-design="v2"] .pg-body .lib-up:hover .lu-t {
  color: var(--ink);
}
html[data-design="v2"] .pg-body .lu-ico {
  width: 18px;
  height: 18px;
  border: 1px solid var(--line-2);
  border-radius: 4px;
  display: grid;
  place-items: center;
  font-size: 9px;
  color: var(--gold);
  background: var(--bg-2);
  margin-top: 1px;
}
html[data-design="v2"] .pg-body .lu-tx {
  min-width: 0;
}
html[data-design="v2"] .pg-body .lu-t {
  display: block;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--ink-2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
html[data-design="v2"] .pg-body .lu-e {
  display: block;
  font-size: 9.5px;
  color: var(--faint);
  margin-top: 1px;
  line-height: 1.4;
}
html[data-design="v2"] .pg-body .lu-when {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--faint);
  white-space: nowrap;
}

/* shelves */
html[data-design="v2"] .pg-body .lib-shelves {
  margin-top: 18px;
}
html[data-design="v2"] .pg-body .shelf-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 11px;
}
html[data-design="v2"] .pg-body .shelf-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel);
  padding: 12px;
  min-width: 0;
}
html[data-design="v2"] .pg-body .shelf-card:hover {
  border-color: var(--gold-dim);
  background: var(--panel-2);
}
html[data-design="v2"] .pg-body .sh-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
html[data-design="v2"] .pg-body .sh-ico {
  width: 25px;
  height: 25px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line-2);
  background: var(--bg-2);
  color: var(--gold);
  font-size: 11px;
}
html[data-design="v2"] .pg-body .sh-name {
  font-family: var(--font-display);
  font-size: 14.5px;
  color: var(--ink);
  margin-top: 9px;
  letter-spacing: 0.1px;
}
html[data-design="v2"] .pg-body .sh-types {
  font-size: 8px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--faint);
  margin-top: 3px;
}
html[data-design="v2"] .pg-body .sh-desc {
  font-size: 10.5px;
  line-height: 1.55;
  color: var(--ink-3);
  flex: 1;
  margin-top: 9px;
}
html[data-design="v2"] .pg-body .sh-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
  font-size: 9px;
}
html[data-design="v2"] .pg-body .sh-foot .faint {
  font-family: var(--font-mono);
}
html[data-design="v2"] .pg-body .sh-foot .acc {
  color: var(--accent);
  white-space: nowrap;
}
html[data-design="v2"] .pg-body .pagination {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-top: 12px;
}

@media (max-width: 1180px) {
  html[data-design="v2"] .pg-body .lib-grid {
    grid-template-columns: minmax(0, 1fr) 300px;
  }
  html[data-design="v2"] .pg-body .lib-pg .lib-book {
    grid-template-columns: 44px minmax(0, 1fr) 176px 86px;
    gap: 11px;
  }
  html[data-design="v2"] .pg-body .shelf-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 1000px) {
  html[data-design="v2"] .pg-body .lib-grid {
    grid-template-columns: 1fr;
  }
  html[data-design="v2"] .pg-body .lib-aside {
    display: none;
  }
}
@media (max-width: 760px) {
  html[data-design="v2"] .pg-body .lib-pg {
    padding: 10px 12px 30px;
  }
  html[data-design="v2"] .pg-body .lib-pg .pg-actions .btn {
    flex: 1;
    justify-content: center;
  }
  html[data-design="v2"] .pg-body .lib-pg .lib-stat {
    padding: 9px 10px;
  }
  html[data-design="v2"] .pg-body .lib-pg .lib-stat .v {
    font-size: 17px;
  }
  html[data-design="v2"] .pg-body .lib-pg .lib-stat .d {
    font-size: 8.5px;
  }
  html[data-design="v2"] .pg-body .lib-pg .lib-book {
    grid-template-columns: 46px minmax(0, 1fr) auto;
    grid-template-areas: "cv tx cta" "cv prog cta";
    gap: 5px 10px;
    padding: 9px 10px;
  }
  html[data-design="v2"] .pg-body .lib-pg .lib-book .lib-progress {
    grid-column: 2;
    width: 100%;
  }
  html[data-design="v2"] .pg-body .lib-pg .lb-cta {
    align-self: center;
  }
  html[data-design="v2"] .pg-body .lb-cta .btn {
    height: 26px;
    font-size: 10.5px;
    padding: 0 10px;
  }
  html[data-design="v2"] .pg-body .lb-when {
    display: none;
  }
  html[data-design="v2"] .pg-body .lb-cv {
    height: 64px;
    width: 43px;
  }
  html[data-design="v2"] .pg-body .lb-tx .t {
    font-size: 12.5px;
  }
  html[data-design="v2"] .pg-body .lb-tx .m {
    font-size: 9.5px;
  }
  html[data-design="v2"] .pg-body .lib-main .sec-head {
    flex-wrap: nowrap;
    gap: 8px;
    align-items: baseline;
  }
  html[data-design="v2"] .pg-body .lib-main .sec-head .meta {
    display: none;
  }
  html[data-design="v2"] .pg-body .lib-main .sec-head a {
    white-space: nowrap;
    font-size: 10.5px;
  }
}
@media (max-width: 560px) {
  html[data-design="v2"] .pg-body .shelf-grid {
    grid-template-columns: 1fr;
  }
  html[data-design="v2"] .pg-body .lib-pg .lib-stats {
    gap: 7px;
  }
  html[data-design="v2"] .pg-body .lib-pg .lib-stat {
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 7px;
  }
  html[data-design="v2"] .pg-body .lib-pg .ls-ico {
    width: 23px;
    height: 23px;
    font-size: 10px;
  }
  html[data-design="v2"] .pg-body .lib-tip {
    font-size: 10px;
  }
}

/* =============================================================================
   NOTIFICATIONS (.nt-pg) — pack: notifications.html
   filters, day groups, typed rows, quiet-sidebar hints.
   ============================================================================= */

html[data-design="v2"] .pg-body .nt-pg {
  padding-top: 14px;
}
html[data-design="v2"] .pg-body .nt-pg .pg-head {
  margin-bottom: 12px;
}
html[data-design="v2"] .pg-body .nt-pg .pg-title .glyph {
  font-size: 17px;
}
html[data-design="v2"] .pg-body .nt-pg .pg-actions .btn {
  height: 29px;
}

/* toolbar */
html[data-design="v2"] .pg-body .nt-toolbar {
  display: flex;
  align-items: center;
  gap: 14px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 14px;
}
html[data-design="v2"] .pg-body .nt-toolbar .tabs {
  flex: 1;
  border-bottom: 0;
  min-width: 0;
}
html[data-design="v2"] .pg-body .nt-toolbar .tab {
  padding: 8px 11px;
}
html[data-design="v2"] .pg-body .nt-tools {
  display: flex;
  align-items: center;
  gap: 9px;
  padding-bottom: 5px;
  flex: 0 0 auto;
}
html[data-design="v2"] .pg-body .nt-tools .mono {
  font-size: 9px;
  letter-spacing: 0.04em;
}
html[data-design="v2"] .pg-body .nt-tools .seg a {
  padding: 4px 9px;
  font-size: 10px;
}

/* layout */
html[data-design="v2"] .pg-body .nt-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 318px;
  gap: 22px;
  align-items: start;
}
html[data-design="v2"] .pg-body .nt-main {
  min-width: 0;
}
html[data-design="v2"] .pg-body .nt-aside {
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: sticky;
  top: 66px;
  min-width: 0;
}
html[data-design="v2"] .pg-body .nt-aside .side-card {
  padding: 13px;
}
html[data-design="v2"] .pg-body .nt-aside .side-card h3 {
  margin-bottom: 9px;
}

/* day groups */
html[data-design="v2"] .pg-body .nt-day {
  margin-bottom: 16px;
}
html[data-design="v2"] .pg-body .day-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 0 2px 6px;
  border-bottom: 1px solid var(--line);
}
html[data-design="v2"] .pg-body .day-k {
  font-family: var(--font-display);
  font-size: 13px;
  color: var(--ink);
}
html[data-design="v2"] .pg-body .day-d {
  font-family: var(--font-mono);
  font-size: 9.5px;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .day-c {
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--gold);
  letter-spacing: 0.05em;
}
html[data-design="v2"] .pg-body .day-c.read {
  color: var(--faint);
}

/* rows */
html[data-design="v2"] .pg-body .nt-pg .notif-list {
  background: var(--panel);
}
html[data-design="v2"] .pg-body .nt-pg .notif-row {
  display: grid;
  grid-template-columns: 27px minmax(0, 1fr) 46px;
  gap: 11px;
  align-items: start;
  padding: 11px 13px;
  position: relative;
}
html[data-design="v2"] .pg-body .nt-pg .notif-row .nt-body {
  display: block;
  flex: none;
  min-width: 0;
  font-size: 12px;
  line-height: 1.55;
}
html[data-design="v2"] .pg-body .nt-pg .notif-row.unread {
  background: linear-gradient(90deg, rgba(232, 177, 76, 0.075), transparent 46%);
}
html[data-design="v2"] .pg-body .nt-pg .notif-row.unread::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--gold);
}
html[data-design="v2"] .pg-body .nt-ico {
  width: 25px;
  height: 25px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line-2);
  background: var(--bg-2);
  flex: 0 0 auto;
  margin-top: 1px;
  font-size: 11px;
}
html[data-design="v2"] .pg-body .nt-ico.reply,
html[data-design="v2"] .pg-body .nt-ico.mention {
  color: var(--accent);
  border-color: #2e3a48;
  background: #0f1720;
}
html[data-design="v2"] .pg-body .nt-ico.kudos {
  color: var(--green);
  border-color: #2e4a33;
  background: #0b1410;
}
html[data-design="v2"] .pg-body .nt-ico.funding {
  color: var(--gold);
  border-color: var(--gold-dim);
  background: #151003;
}
html[data-design="v2"] .pg-body .nt-ico.fork {
  color: var(--violet);
  border-color: #3a3348;
  background: #120e1c;
}
html[data-design="v2"] .pg-body .nt-ico.system,
html[data-design="v2"] .pg-body .nt-ico.quote {
  color: var(--ink-3);
}
html[data-design="v2"] .pg-body .nt-ico.sm {
  width: 18px;
  height: 18px;
  border-radius: 4px;
  margin-top: 0;
  font-size: 9px;
}
html[data-design="v2"] .pg-body .nt-line {
  font-size: 12px;
  line-height: 1.55;
  color: var(--ink-3);
}
html[data-design="v2"] .pg-body .nt-line b {
  color: var(--ink);
  font-weight: 600;
}
html[data-design="v2"] .pg-body .nt-line b a {
  color: var(--ink);
}
html[data-design="v2"] .pg-body .nt-pg .notif-row.unread .nt-line {
  color: var(--ink-2);
}
html[data-design="v2"] .pg-body .nt-type {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--faint);
  border: 1px solid var(--line-2);
  border-radius: 3px;
  padding: 0 4px;
  margin-left: 5px;
  white-space: nowrap;
  vertical-align: 1px;
}
html[data-design="v2"] .pg-body .nt-quote {
  margin-top: 5px;
  padding: 5px 9px;
  border-left: 2px solid var(--line-2);
  background: var(--bg-2);
  border-radius: 0 4px 4px 0;
  font-size: 10.5px;
  line-height: 1.5;
  color: var(--ink-3);
  max-width: 88ch;
}
html[data-design="v2"] .pg-body .nt-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 6px;
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .nt-meta a {
  color: var(--accent);
}
html[data-design="v2"] .pg-body .nt-meta a:hover {
  color: #a9dcff;
}
html[data-design="v2"] .pg-body .nt-meta .dotsep {
  color: var(--line-2);
}
html[data-design="v2"] .pg-body .nt-meta .inline-form {
  display: inline-flex;
}
html[data-design="v2"] .pg-body .nt-meta .markread {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  color: var(--faint);
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}
html[data-design="v2"] .pg-body .nt-meta .markread:hover {
  color: var(--ink-2);
}
html[data-design="v2"] .pg-body .nt-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 7px;
  padding-top: 1px;
}
html[data-design="v2"] .pg-body .nt-time {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .nt-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
}
html[data-design="v2"] .pg-body .nt-more {
  font-family: var(--font-mono);
  font-size: 9.5px;
  color: var(--faint);
  padding: 2px 2px 0;
}
html[data-design="v2"] .pg-body .nt-more a {
  color: var(--accent);
}
html[data-design="v2"] .pg-body .nt-more .faint {
  color: var(--faint);
}

/* unread-by-type */
html[data-design="v2"] .pg-body .ubt {
  display: flex;
  flex-direction: column;
}
html[data-design="v2"] .pg-body .ub-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 5px 0;
  border-bottom: 1px solid var(--line);
}
html[data-design="v2"] .pg-body .ub-row:last-child {
  border-bottom: 0;
}
html[data-design="v2"] .pg-body .ub-k {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  color: var(--ink-3);
}
html[data-design="v2"] .pg-body .ub-n {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--ink-2);
}
html[data-design="v2"] .pg-body .ub-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--line-2);
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .ub-total b {
  font-weight: 500;
  color: var(--green);
}

/* quiet categories */
html[data-design="v2"] .pg-body .eq-row {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  padding: 7px 0;
  border-bottom: 1px dashed var(--line);
  font-size: 10px;
  line-height: 1.5;
  color: var(--faint);
}
html[data-design="v2"] .pg-body .eq-row:last-child {
  border-bottom: 0;
}
html[data-design="v2"] .pg-body .eq-row b {
  display: block;
  color: var(--ink-3);
  font-weight: 600;
  margin-bottom: 1px;
}
html[data-design="v2"] .pg-body .eq-ico {
  width: 17px;
  height: 17px;
  border-radius: 4px;
  border: 1px dashed var(--line-2);
  display: grid;
  place-items: center;
  font-size: 8px;
  color: var(--green);
  flex: 0 0 auto;
  margin-top: 1px;
}
html[data-design="v2"] .pg-body .eq-ico.gold {
  color: var(--gold);
}

@media (max-width: 1180px) {
  html[data-design="v2"] .pg-body .nt-grid {
    grid-template-columns: minmax(0, 1fr) 296px;
  }
}
@media (max-width: 980px) {
  html[data-design="v2"] .pg-body .nt-grid {
    grid-template-columns: 1fr;
  }
  html[data-design="v2"] .pg-body .nt-aside {
    display: none;
  }
  html[data-design="v2"] .pg-body .nt-pg .pg-head .pg-actions {
    width: 100%;
  }
}
@media (max-width: 760px) {
  html[data-design="v2"] .pg-body .nt-pg {
    padding: 10px 12px 30px;
  }
  html[data-design="v2"] .pg-body .nt-pg .pg-actions .btn {
    flex: 1;
    justify-content: center;
    height: 28px;
  }
  html[data-design="v2"] .pg-body .nt-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    margin-bottom: 11px;
    border-bottom: 0;
  }
  html[data-design="v2"] .pg-body .nt-toolbar .tabs {
    border-bottom: 1px solid var(--line);
  }
  html[data-design="v2"] .pg-body .nt-toolbar .tab {
    padding: 8px 9px;
    font-size: 11px;
  }
  html[data-design="v2"] .pg-body .nt-tools {
    display: none;
  }
  html[data-design="v2"] .pg-body .day-head {
    padding-bottom: 5px;
  }
  html[data-design="v2"] .pg-body .nt-pg .notif-row {
    grid-template-columns: 25px minmax(0, 1fr);
    gap: 9px;
    padding: 10px 11px;
  }
  html[data-design="v2"] .pg-body .nt-right {
    display: none;
  }
  html[data-design="v2"] .pg-body .nt-pg .notif-row.unread::after {
    content: "";
    position: absolute;
    right: 11px;
    top: 13px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--gold);
  }
  html[data-design="v2"] .pg-body .nt-line {
    font-size: 11.5px;
  }
  html[data-design="v2"] .pg-body .nt-quote {
    font-size: 10px;
    max-width: none;
  }
  html[data-design="v2"] .pg-body .nt-meta {
    gap: 7px;
    font-size: 8.5px;
  }
  html[data-design="v2"] .pg-body .nt-type {
    display: none;
  }
  html[data-design="v2"] .pg-body .nt-more {
    font-size: 9px;
    line-height: 1.6;
  }
}
@media (max-width: 560px) {
  html[data-design="v2"] .pg-body .nt-delivery {
    display: none;
  }
  html[data-design="v2"] .pg-body .nt-pg .pg-title {
    font-size: 20px;
  }
  html[data-design="v2"] .pg-body .nt-toolbar .tab {
    padding: 7px 7px;
    font-size: 10.5px;
    gap: 5px;
  }
  html[data-design="v2"] .pg-body .nt-toolbar .tab .count {
    font-size: 9px;
    padding: 0 4px;
  }
  html[data-design="v2"] .pg-body .nt-pg .pg-desc {
    font-size: 11.5px;
  }
}

/* =============================================================================
   #485 — project feature sections ported from the v1.3 page (lane B).
   The route appends the copyright-waiting card, bonus sub-contract, aggregate
   predictions and fork lineage after the v2 body, using the same v1 templates
   as the v1.3 page. They are direct children of main.pg-body, so these rules
   align them with the .pg canvas and give them page-kit material.
   ============================================================================= */

html[data-design="v2"] .pg-body .copyright-waiting,
html[data-design="v2"] .pg-body .bonus-section,
html[data-design="v2"] .pg-body .prediction-card,
html[data-design="v2"] .pg-body .fork-graph {
  width: calc(100% - 44px); max-width: 1316px; margin: 16px auto 0;
  padding: 18px 20px; border-radius: var(--radius);
  border: 1px solid var(--line); background: var(--panel);
  color: var(--ink-2);
}
html[data-design="v2"] .pg-body .fork-graph { margin-bottom: 28px; }

html[data-design="v2"] .pg-body :is(.copyright-waiting, .bonus-section, .prediction-card, .fork-graph) h2 {
  font-family: var(--font-display); font-size: 16.5px; font-weight: 600;
  color: var(--ink); margin: 0 0 8px;
}

/* ---- copyright waiting state (rights.rs) -------------------------------- */
html[data-design="v2"] .pg-body .copyright-waiting { border-color: var(--line-2); }
html[data-design="v2"] .pg-body .copyright-waiting .card-head {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  margin-bottom: 6px;
}
html[data-design="v2"] .pg-body .copyright-waiting .card-head h2 { margin: 0; }
html[data-design="v2"] .pg-body .copyright-waiting .stats-row { margin: 12px 0; }
html[data-design="v2"] .pg-body .copyright-waiting .button-row .btn { white-space: nowrap; }

/* ---- bonus sub-contract (projects.rs bonus_section) -------------------- */
html[data-design="v2"] .pg-body .bonus-section .bonus-item {
  margin-top: 12px; padding: 14px 16px; border-radius: var(--radius-sm);
  border: 1px solid var(--line); background: var(--panel-2);
}
html[data-design="v2"] .pg-body .bonus-item .bonus-item-head {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px;
  align-items: start;
}
html[data-design="v2"] .pg-body .bonus-item .bonus-item-head h3 {
  font-family: var(--font-display); font-size: 14px; font-weight: 600;
  color: var(--ink); margin: 0;
}
html[data-design="v2"] .pg-body .bonus-item .bonus-item-head .badge,
html[data-design="v2"] .pg-body .bonus-item .bonus-item-head > .small { justify-self: end; }
html[data-design="v2"] .pg-body .bonus-item .bonus-item-head p,
html[data-design="v2"] .pg-body .bonus-item .contract-facts { grid-column: 1 / -1; }
html[data-design="v2"] .pg-body .bonus-item .bonus-actions {
  display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px;
  padding-top: 12px; border-top: 1px solid var(--line);
}
html[data-design="v2"] .pg-body .bonus-item .bonus-actions .stack-form { margin: 0; }
html[data-design="v2"] .pg-body .bonus-item details.stack-form > summary {
  cursor: pointer; color: var(--accent); font-size: 12px;
}
html[data-design="v2"] .pg-body .bonus-item details.stack-form > summary:focus-visible {
  outline: 2px solid var(--accent); outline-offset: 2px;
}

/* ---- aggregate predictions (projects.rs prediction_card) --------------- */
html[data-design="v2"] .pg-body .prediction-card { border-color: var(--line); }
html[data-design="v2"] .pg-body .prediction-card p { margin: 6px 0; }
html[data-design="v2"] .pg-body .prediction-card strong { color: var(--gold); }

/* ---- fork lineage (projects.rs fork_graph_section) --------------------- */
html[data-design="v2"] .pg-body .fork-graph .lineage-row {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
  margin: 10px 0; padding: 8px 10px; border-radius: var(--radius-sm);
  border: 1px solid var(--line); background: var(--bg-2);
}
html[data-design="v2"] .pg-body .fork-graph .lineage-row a { color: var(--accent); }
html[data-design="v2"] .pg-body .fork-graph .lineage-row a:hover { color: var(--ink); }
html[data-design="v2"] .pg-body .fork-graph .fork-list {
  margin: 8px 0 0; padding: 0; list-style: none;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 6px 14px;
}
html[data-design="v2"] .pg-body .fork-graph .fork-list li {
  padding: 7px 10px; border: 1px solid var(--line); border-radius: var(--radius-sm);
  background: var(--panel-2); font-size: 12.5px; min-width: 0;
  overflow-wrap: anywhere;
}
html[data-design="v2"] .pg-body .fork-graph .fork-list a { color: var(--ink-2); font-weight: 500; }
html[data-design="v2"] .pg-body .fork-graph .fork-list a:hover { color: var(--gold); }
html[data-design="v2"] .pg-body .fork-graph > p .btn { margin-top: 10px; }

/* focus rings: the ported v1 buttons are plain .btn links/forms */
html[data-design="v2"] .pg-body :is(.copyright-waiting, .bonus-section, .prediction-card, .fork-graph) a:focus-visible,
html[data-design="v2"] .pg-body :is(.copyright-waiting, .bonus-section, .prediction-card, .fork-graph) button:focus-visible,
html[data-design="v2"] .pg-body :is(.copyright-waiting, .bonus-section, .prediction-card, .fork-graph) summary:focus-visible,
html[data-design="v2"] .pg-body :is(.copyright-waiting, .bonus-section, .prediction-card, .fork-graph) input:focus-visible {
  outline: 2px solid var(--accent); outline-offset: 2px;
}

@media (max-width: 900px) {
  html[data-design="v2"] .pg-body .copyright-waiting,
  html[data-design="v2"] .pg-body .bonus-section,
  html[data-design="v2"] .pg-body .prediction-card,
  html[data-design="v2"] .pg-body .fork-graph { width: calc(100% - 24px); padding: 14px; }
  html[data-design="v2"] .pg-body .bonus-item .bonus-item-head { grid-template-columns: 1fr; }
  html[data-design="v2"] .pg-body .bonus-item .bonus-item-head .badge { justify-self: start; }
}

@media (max-width: 640px) {
  html[data-design="v2"] .pg-body .bonus-item { padding: 12px; }
  html[data-design="v2"] .pg-body .bonus-item .bonus-actions .btn,
  html[data-design="v2"] .pg-body .copyright-waiting .button-row .btn { flex: 1 1 auto; justify-content: center; }
}

@media (forced-colors: active) {
  html[data-design="v2"] .pg-body :is(.copyright-waiting, .bonus-section, .prediction-card, .fork-graph),
  html[data-design="v2"] .pg-body .bonus-item,
  html[data-design="v2"] .pg-body .fork-graph .fork-list li { border: 1px solid CanvasText; }
}

/* #485: the /works card rules absolutely position `.card .badge` (cover art
   corner chip). The ported v1 sections reuse `.card`, but their badges are
   inline status labels — restore the flow so the head never overlaps. */
html[data-design="v2"] .pg-body :is(.copyright-waiting, .bonus-section, .prediction-card, .fork-graph) .badge,
html[data-design="v2"] .pg-body .bonus-item .badge {
  position: static; left: auto; top: auto; right: auto; bottom: auto; z-index: auto;
}
html[data-design="v2"] .pg-body .bonus-item .bonus-item-head .badge { margin-top: 2px; }
