/* GENERATED by web/website/patch-notes/_gen/gen-patchnotes.js — do not edit.
   The patch-note styles, verbatim from the generator, so a patch reads the same
   inside the client as it does on the website. Regenerate:
     node web/website/patch-notes/_gen/gen-patchnotes.js

   The palette is declared on .pn-doc rather than :root on purpose: shell.css
   owns :root on every client page, and these names (--gold, --red, --border)
   overlap it with different values. Scoping them here means the patch body
   resolves its own colours without repainting the chrome around it. */
.pn-doc{
  --bg-dark:#030a12; --bg-card:#07111d; --bg-section:#060e18;
  --gold:#c8aa6e; --gold-light:#e8d090; --gold-dark:#463714; --gold-dk:#785a28;
  --text:#f0e6d2; --text-muted:#a09b8c; --red:#8b2942; --red-light:#c73e5c;
  --blood:#c04040; --teal:#0ac8b9; --green:#5fd47a; --blue:#4a8fb5; --border:rgba(200,170,110,.15);
  font-family:'Alegreya Sans',sans-serif; color:var(--text);
}
.pn-doc a{ color:inherit; }

  .pn-hero{ margin-bottom:2.2rem; position:relative; }
  .pn-topnav{ position:absolute; top:.1rem; right:0; display:flex; gap:.6rem; }
  .pn-topnav-btn{ width:2.3rem; height:2.3rem; border-radius:50%; border:1px solid var(--gold-dk); color:var(--text-muted);
    display:flex; align-items:center; justify-content:center; font-size:1.25rem; text-decoration:none; transition:all .15s; }
  .pn-topnav-btn:hover{ color:var(--gold); border-color:var(--gold); background:rgba(200,170,110,.08); }
  .pn-topnav-btn.disabled{ opacity:.25; pointer-events:none; }
  .pn-eyebrow{ font-family:'Cinzel',serif; font-size:.78rem; letter-spacing:.25em; color:var(--gold-dk); text-transform:uppercase; }
  .pn-title{ font-family:'Cinzel',serif; font-size:2.6rem; font-weight:700; letter-spacing:.03em; margin-top:.3rem;
    background:linear-gradient(135deg,var(--gold-light),var(--gold)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
  .pn-code{ font-family:'Cinzel',serif; font-weight:700; color:var(--text-muted); font-size:1.1rem; margin-left:.6rem; }
  .pn-date{ color:var(--text-muted); font-size:.95rem; margin-top:.4rem; }
  .pn-blurb{ color:var(--text); opacity:.9; max-width:70ch; margin-top:.9rem; line-height:1.55; font-size:1.02rem; }

  /* real commit/hour counters */
  .pn-stats{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:1.3rem; }
  .pn-stat{ background:var(--bg-card); border:1px solid var(--border); border-radius:8px; padding:.6rem 1rem; min-width:6.5rem; }
  .pn-stat .n{ font-family:'Cinzel',serif; font-weight:700; font-size:1.35rem; color:var(--gold-light); line-height:1; }
  .pn-stat .l{ font-size:.62rem; letter-spacing:.08em; color:var(--text-muted); text-transform:uppercase; margin-top:.35rem; font-family:'Cinzel',serif; }
  .pn-stat.accent .n{ color:var(--teal); }
  .pn-stat-run{ margin-left:auto; text-align:right; align-self:center; }
  .pn-stat-run .n{ font-family:'Cinzel',serif; font-weight:700; color:var(--gold); font-size:.95rem; }
  .pn-stat-run .l{ font-size:.6rem; letter-spacing:.08em; color:var(--gold-dk); text-transform:uppercase; font-family:'Cinzel',serif; }
  @media(max-width:560px){ .pn-stat-run{ margin-left:0; width:100%; text-align:left; } }
  .pn-latest{ display:inline-block; font-family:'Cinzel',serif; font-size:.65rem; letter-spacing:.1em; color:var(--bg-dark);
    background:var(--gold); padding:.2rem .6rem; border-radius:3px; margin-left:.7rem; vertical-align:middle; font-weight:700;
    /* The pill sits INSIDE .pn-title, whose gradient trick sets
       -webkit-text-fill-color:transparent — which inherits, and printed this as
       an empty gold block on every latest patch. Paint the text back. */
    -webkit-text-fill-color:var(--bg-dark); }

  .pn-cat{ margin-bottom:2.4rem; }
  .pn-cat-head{ display:flex; align-items:center; gap:.55rem; border-bottom:1px solid var(--border); padding-bottom:.5rem; margin-bottom:1.1rem; }
  .pn-cat-glyph{ font-size:1.15rem; }
  .pn-cat-head h2{ font-family:'Cinzel',serif; font-size:1.05rem; letter-spacing:.1em; font-weight:700; }
  .pn-cat-row{ display:flex; flex-wrap:wrap; gap:1.4rem; }
  .pn-champ{ text-align:center; width:78px; }
  .pn-icon{ width:64px; height:64px; border-radius:50%; overflow:hidden; border:2px solid var(--gold-dk); background:var(--bg-card);
    margin:0 auto; position:relative; box-shadow:0 2px 10px rgba(0,0,0,.4); }
  .pn-icon img{ width:100%; height:100%; object-fit:cover; display:block; }
  .pn-icon-letter{ display:none; width:100%; height:100%; align-items:center; justify-content:center; font-family:'Cinzel',serif;
    font-size:1.6rem; color:var(--gold-light); }
  .pn-icon--fallback .pn-icon-letter{ display:flex; }
  .pn-icon--emoji{ display:flex; align-items:center; justify-content:center; background:var(--bg-section); }
  .pn-icon-emoji{ font-size:1.9rem; line-height:1; }
  .pn-icon-name{ font-size:.72rem; color:var(--text-muted); margin-top:.4rem; letter-spacing:.02em; }

  .pn-sys-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1rem; }
  .pn-sys-card{ background:var(--bg-card); border:1px solid var(--border); border-left:3px solid var(--teal); border-radius:8px; padding:1rem 1.1rem; }
  .pn-sys-name{ font-family:'Cinzel',serif; font-weight:700; color:var(--gold-light); font-size:.92rem; margin-bottom:.4rem; }
  .pn-sys-desc{ font-size:.87rem; color:var(--text-muted); line-height:1.45; }

  /* LoL-style deep change blocks (item-by-item, before ⇒ after) */
  .pn-changes{ margin:2rem 0; }
  .pn-changes > h2{ font-family:'Cinzel',serif; font-size:1.05rem; letter-spacing:.1em; color:var(--gold); border-bottom:1px solid var(--border); padding-bottom:.5rem; margin-bottom:1.4rem; }
  .pn-change{ margin-bottom:1.8rem; padding-bottom:1.6rem; border-bottom:1px solid var(--border); }
  .pn-change:last-child{ border-bottom:none; }
  .pn-change-head{ display:flex; align-items:center; gap:.7rem; margin-bottom:.5rem; }
  .pn-change-port{ width:44px; height:44px; border-radius:50%; overflow:hidden; border:2px solid var(--kind,var(--gold-dk)); flex-shrink:0; background:var(--bg-section); position:relative; }
  .pn-change-port img{ width:100%; height:100%; object-fit:cover; display:block; }
  .pn-change-port .letter,.pn-change-port .emoji{ display:none; width:100%; height:100%; align-items:center; justify-content:center; font-family:'Cinzel',serif; font-weight:700; color:var(--gold-light); font-size:1.2rem; }
  .pn-change-port.no-art .letter{ display:flex; } .pn-change-port.is-emoji .emoji{ display:flex; font-size:1.4rem; }
  .pn-change-name{ font-family:'Cinzel',serif; font-weight:700; font-size:1.25rem; color:var(--gold-light); }
  .pn-change-kind{ font-family:'Cinzel',serif; font-size:.6rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:.2rem .55rem; border-radius:3px; color:var(--bg-dark); background:var(--kind,var(--gold)); }
  .pn-change-note{ border-left:2px solid var(--kind,var(--gold-dk)); padding-left:.9rem; margin:.3rem 0 1rem; color:var(--text-muted); font-style:italic; line-height:1.55; font-size:.95rem; }
  .pn-ability{ margin:.9rem 0 0; }
  .pn-ability-name{ display:flex; align-items:center; gap:.5rem; font-family:'Cinzel',serif; font-weight:700; color:var(--text); font-size:.95rem; margin-bottom:.4rem; }
  .pn-ability-slot{ font-family:'Cinzel',serif; font-weight:700; font-size:.62rem; color:var(--bg-dark); background:var(--kind,var(--gold)); width:1.35rem; height:1.35rem; border-radius:3px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .pn-delta{ list-style:none; display:flex; flex-direction:column; gap:.35rem; padding-left:1.85rem; }
  .pn-delta li{ font-size:.9rem; color:var(--text); line-height:1.5; }
  .pn-delta .k{ color:var(--text-muted); }
  .pn-delta .from{ color:var(--text-muted); text-decoration:none; opacity:.8; }
  .pn-delta .arw{ color:var(--gold-dk); margin:0 .4rem; }
  .pn-delta .to{ color:var(--gold-light); font-weight:700; }
  .pn-delta .txt{ color:var(--text); }
  .pn-kind-buff{ --kind:var(--green); } .pn-kind-nerf{ --kind:var(--red-light); }
  .pn-kind-rework{ --kind:var(--gold); } .pn-kind-adjust{ --kind:var(--blue); } .pn-kind-new{ --kind:var(--teal); }

  .pn-devnote{ margin:0 0 2.2rem; border-left:3px solid var(--gold-dk); background:rgba(200,170,110,.05);
    border-radius:0 8px 8px 0; padding:1.1rem 1.4rem; }
  .pn-devnote-tag{ font-family:'Cinzel',serif; font-size:.66rem; letter-spacing:.16em; color:var(--gold-dk); text-transform:uppercase; margin-bottom:.5rem; }
  .pn-devnote-quote{ font-style:italic; color:var(--gold-light); font-size:1.05rem; line-height:1.65; }
  .pn-devnote-quote::before{ content:'\201C'; }
  .pn-devnote-quote::after{ content:'\201D'; }
  .pn-devnote-sig{ margin-top:.7rem; text-align:right; font-family:'Cinzel',serif; font-size:.85rem; letter-spacing:.1em; color:var(--gold); }

  .pn-incident{ margin:0 0 2.2rem; border:1px solid var(--red-light); border-left:4px solid var(--red-light); border-radius:8px;
    padding:1.1rem 1.3rem; background:rgba(199,62,92,.08); }
  .pn-incident-head{ font-family:'Cinzel',serif; font-weight:700; font-size:.85rem; letter-spacing:.1em; color:var(--red-light);
    margin-bottom:.5rem; display:flex; align-items:center; gap:.5rem; text-transform:uppercase; }
  .pn-incident-body{ font-size:.92rem; color:var(--text); line-height:1.6; }
  .pn-incident-body strong{ color:var(--red-light); }

  .pn-fullnotes{ margin-top:3rem; border-top:1px solid var(--border); padding-top:1.6rem; }
  .pn-fullnotes h2{ font-family:'Cinzel',serif; font-size:1.05rem; letter-spacing:.1em; color:var(--gold); margin-bottom:1rem; }
  .pn-fullnotes ul{ list-style:none; display:flex; flex-direction:column; gap:.6rem; }
  .pn-fullnotes li{ font-size:.92rem; line-height:1.55; color:var(--text); opacity:.92; padding-left:1.1rem; position:relative; }
  .pn-fullnotes li::before{ content:'—'; position:absolute; left:0; color:var(--gold-dk); }

  .pn-pager{ display:flex; justify-content:space-between; margin-top:3rem; }
  .pn-pager a{ font-family:'Cinzel',serif; font-size:.78rem; letter-spacing:.08em; color:var(--text-muted); text-decoration:none;
    border:1px solid var(--border); padding:.6rem 1.1rem; border-radius:6px; transition:all .15s; }
  .pn-pager a:hover{ color:var(--gold); border-color:var(--gold-dk); }

  .pn-index-title{ font-family:'Cinzel',serif; font-size:2.2rem; font-weight:700; letter-spacing:.04em;
    background:linear-gradient(135deg,var(--gold-light),var(--gold)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
  .pn-index-sub{ color:var(--text-muted); margin-top:.4rem; font-size:1.02rem; max-width:60ch; }
  .pn-totals{ display:flex; flex-wrap:wrap; gap:1rem; margin:1.8rem 0 .5rem; }
  .pn-total{ background:var(--bg-card); border:1px solid var(--border); border-radius:10px; padding:1rem 1.4rem; flex:1; min-width:8rem; text-align:center; }
  .pn-total .n{ font-family:'Cinzel',serif; font-weight:700; font-size:2.1rem; color:var(--gold-light); line-height:1; }
  .pn-total.accent .n{ color:var(--teal); }
  .pn-total .l{ font-size:.66rem; letter-spacing:.1em; color:var(--text-muted); text-transform:uppercase; margin-top:.45rem; font-family:'Cinzel',serif; }
  .pn-ramp{ margin:1.6rem 0 .5rem; background:var(--bg-card); border:1px solid var(--border); border-radius:10px; padding:1.3rem 1.4rem 1rem; }
  .pn-ramp-head{ font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-dk); margin-bottom:2.4rem; }
  .pn-ramp-chart{ display:flex; align-items:flex-end; gap:2px; height:130px; }
  .pn-ramp-col{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; position:relative; }
  .pn-ramp-bar{ width:100%; max-width:26px; background:var(--gold-dk); border-radius:2px 2px 0 0; opacity:.5; transition:opacity .15s; }
  .pn-ramp-col.post .pn-ramp-bar{ background:linear-gradient(to top,var(--gold-dk),var(--gold)); opacity:1; }
  .pn-ramp-col.mk-allin .pn-ramp-bar{ background:linear-gradient(to top,var(--gold),var(--teal)); opacity:1; }
  .pn-ramp-col.mk-layoff .pn-ramp-bar{ background:var(--red-light); opacity:.6; }
  .pn-ramp-col:hover .pn-ramp-bar{ opacity:1; }
  .pn-ramp-lbl{ font-size:.6rem; color:var(--text-muted); margin-top:.35rem; font-family:'Cinzel',serif; letter-spacing:.02em; height:.8rem; }
  .pn-ramp-flag{ position:absolute; bottom:calc(100% + .2rem); left:50%; transform:translateX(-50%); white-space:nowrap;
    font-family:'Cinzel',serif; font-size:.62rem; letter-spacing:.06em; font-weight:700; }
  .pn-ramp-flag.flag-allin{ color:var(--teal); }
  .pn-ramp-flag.flag-layoff{ color:var(--red-light); }
  .pn-ramp-cap{ margin-top:1rem; font-size:.9rem; color:var(--text-muted); line-height:1.55; }
  /* One beat per line — the register here is short sentences, so let them stack
     instead of running together into a paragraph. */
  .pn-ramp-cap p{ margin:0 0 .5rem; }
  .pn-ramp-cap p:last-child{ margin-bottom:0; }
  .pn-ramp-cap strong{ color:var(--gold-light); }
  .pn-list{ margin-top:2rem; display:flex; flex-direction:column; }
  .pn-list-row{ display:flex; gap:1.6rem; align-items:flex-start; padding:1.3rem 0; border-bottom:1px solid var(--border);
    text-decoration:none; color:inherit; transition:background .15s; }
  .pn-list-row:hover{ background:rgba(200,170,110,.04); }
  .pn-list-code{ font-family:'Cinzel',serif; font-weight:700; color:var(--gold); font-size:1.1rem; width:110px; flex-shrink:0; padding-top:.15rem; }
  .pn-list-title{ font-family:'Cinzel',serif; font-weight:700; font-size:1.15rem; color:var(--gold-light); }
  .pn-list-date{ font-size:.78rem; color:var(--text-muted); margin-top:.2rem; letter-spacing:.03em; }
  .pn-list-blurb{ font-size:.92rem; color:var(--text); opacity:.85; margin-top:.5rem; line-height:1.5; max-width:75ch; }
  .pn-latest{ display:inline-block; font-family:'Cinzel',serif; font-size:.6rem; letter-spacing:.1em; color:var(--bg-dark);
    background:var(--gold); padding:.15rem .5rem; border-radius:3px; margin-left:.5rem; vertical-align:middle; font-weight:700; }
  .pn-devnote{ margin:1.4rem 0 .5rem; border-left:3px solid var(--gold-dk); background:rgba(200,170,110,.05); border-radius:0 8px 8px 0; padding:1.1rem 1.4rem; max-width:65ch; }
  .pn-devnote-tag{ font-family:'Cinzel',serif; font-size:.66rem; letter-spacing:.16em; color:var(--gold-dk); text-transform:uppercase; margin-bottom:.5rem; }
  .pn-devnote-quote{ font-style:italic; color:var(--gold-light); font-size:1.05rem; line-height:1.65; }
  .pn-devnote-quote::before{ content:'\201C'; } .pn-devnote-quote::after{ content:'\201D'; }
  .pn-devnote-sig{ margin-top:.7rem; text-align:right; font-family:'Cinzel',serif; font-size:.85rem; letter-spacing:.1em; color:var(--gold); }
