/* Public reputation: quiet engraved metals over the existing charcoal palette. */
:root {
  --reputation-stone: #aaa69b;
  --reputation-bronze: #be9775;
  --reputation-silver: #bdc5c9;
  --reputation-gold: #d2b779;
  --reputation-platinum: #c1d0c9;
  --reputation-diamond: #c5d8df;
  --reputation-line: #b9ab8c2e;
  --reputation-radius: 7px;
}
.status-admin { --reputation-role: #a9a495; --reputation-role-surface: #a9a4950a; }
.status-mod { --reputation-role: #a6bec5; --reputation-role-surface: #a6bec51a; }
.status-vip { --reputation-role: #b7a8c5; --reputation-role-surface: #b7a8c51a; }
.status-member { --reputation-role: #afbd9a; --reputation-role-surface: #afbd9a17; }
.status-user { --reputation-role: #acb2b3; --reputation-role-surface: #acb2b310; }
.status-guest { --reputation-role: #92988f; --reputation-role-surface: transparent; }
.status-ban { --reputation-role: #b49992; --reputation-role-surface: transparent; }
.reputation-tier-stone { --reputation-metal: var(--reputation-stone); }
.reputation-tier-bronze { --reputation-metal: var(--reputation-bronze); }
.reputation-tier-silver { --reputation-metal: var(--reputation-silver); }
.reputation-tier-gold { --reputation-metal: var(--reputation-gold); }
.reputation-tier-platinum { --reputation-metal: var(--reputation-platinum); }
.reputation-tier-diamond { --reputation-metal: var(--reputation-diamond); }
.user-link.reputation-identity { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 3px 6px; max-width: 100%; min-width: 0; color: var(--bone, #ece5d3); line-height: 1.3; text-decoration: none; vertical-align: baseline; }
.reputation-identity .identity-name { min-width: 0; max-width: 100%; overflow-wrap: anywhere; word-break: break-word; }
.reputation-identity .identity-role { flex: 0 0 auto; padding: 1px 4px; border: 1px solid var(--reputation-line); border-radius: 3px; color: var(--reputation-role, #c3bbab); background: var(--reputation-role-surface, transparent); font: 600 10px/1.2 var(--font-hud, sans-serif); letter-spacing: .035em; white-space: nowrap; }
.reputation-identity .identity-mark { display: inline-block; flex: 0 0 4px; width: 4px; height: 4px; align-self: center; border-radius: 1px; background: var(--reputation-metal, var(--reputation-stone)); transform: rotate(45deg); }
.reputation-identity .identity-rank { color: var(--reputation-metal); font-size: 10px; font-weight: 500; }
.reputation-identity:is(.status-mod, .status-vip, .status-member) .identity-role { border-color: var(--reputation-role); padding: 2px 5px; }
.reputation-identity.status-admin .identity-role { border-color: #a9a49540; }
.reputation-identity.status-ban .identity-role { color: #c7a29c; }
.reputation-identity.reputation-heritage .identity-role { color: var(--reputation-stone); background: transparent; }
a.reputation-identity:hover .identity-name { color: var(--reputation-metal, var(--reputation-stone)); text-decoration: underline; text-underline-offset: 3px; }
.reputation-identity:focus-visible, .reputation-profile a:focus-visible, .reputation-profile summary:focus-visible, .reputation-page a:focus-visible, .reputation-page summary:focus-visible, .reputation-page button:focus-visible { outline: 2px solid var(--reputation-gold); outline-offset: 3px; border-radius: 3px; }
/* Role outlines remain independent from the earned metal line. */
.avatar.reputation-standard, .avatar.reputation-heritage, .avatar.reputation-none { outline: 1px solid var(--reputation-role, var(--reputation-stone)); outline-offset: 2px; box-shadow: 0 0 0 1px #0d1210; }
.avatar.reputation-standard:is(.status-mod, .status-vip, .status-member) { outline-width: 2px; }
.avatar.reputation-standard:is(.reputation-tier-silver, .reputation-tier-gold) { box-shadow: 0 0 0 1px var(--reputation-metal); }
.avatar.reputation-standard:is(.reputation-tier-platinum, .reputation-tier-diamond) { outline-offset: 4px; box-shadow: 0 0 0 1px var(--reputation-metal), 0 0 0 3px #111714; }
.avatar.reputation-heritage { outline-offset: 1px; box-shadow: none; }
.post.reputation-standard, .member-card.reputation-standard, .profile-screen.reputation-standard > .profile-hero { border-left: 3px solid var(--reputation-role); }
.post.reputation-standard:is(.reputation-tier-gold, .reputation-tier-platinum, .reputation-tier-diamond), .member-card.reputation-standard:is(.reputation-tier-gold, .reputation-tier-platinum, .reputation-tier-diamond), .profile-screen.reputation-standard:is(.reputation-tier-gold, .reputation-tier-platinum, .reputation-tier-diamond) > .profile-hero { border-bottom: 2px solid var(--reputation-metal); }
.post.reputation-heritage, .member-card.reputation-heritage, .profile-screen.reputation-heritage > .profile-hero { border-left: 1px solid #a9a49555; }
.forum-author-stack, .post-author > [data-forum-reputation] { min-width: 0; max-width: 100%; }
/* Keep a visible role alongside names in compact rail and profile layouts. */
.shout-meta .user-link.reputation-identity { white-space: normal; overflow: visible; }
.reputation-medal { display: inline-grid; place-items: center; flex: 0 0 52px; width: 52px; height: 52px; color: var(--reputation-metal, var(--reputation-stone)); border-radius: 50%; background: radial-gradient(circle at 35% 25%, #ffffff09, #060907aa 75%); }
.reputation-medal svg { display: block; width: 100%; height: 100%; }
.reputation-medal .medal-inner { opacity: .45; stroke-width: .75; }
.reputation-medal.is-small { width: 30px; height: 30px; flex-basis: 30px; }
.reputation-forum { display: flex; flex-direction: column; align-items: center; gap: 4px; max-width: 100%; margin-top: 4px; color: var(--bone-2, #cfc7b3); font-size: 11px; line-height: 1.35; }
.reputation-forum .reputation-rank-title { max-width: 100%; overflow-wrap: anywhere; color: var(--reputation-metal); font: 600 15px/1.2 var(--font-hud, sans-serif); }
.reputation-points { font-variant-numeric: tabular-nums; color: #c4bdaa; }
.reputation-tenure { color: #a9aca5; font-size: 10px; }
.reputation-featured { display: flex; gap: 4px; align-items: center; }
.reputation-featured-badge { display: inline-flex; }
.reputation-forum.reputation-heritage { gap: 4px; }
.reputation-heritage .reputation-medal { color: var(--reputation-stone); background: transparent; }
.reputation-profile { padding: clamp(16px, 3vw, 28px); margin: 0 0 20px; border-color: var(--reputation-line); border-radius: var(--reputation-radius); background: linear-gradient(115deg, #171d1a, #111716 75%); }
.reputation-profile-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.reputation-profile-head h2 { margin: 4px 0 8px; color: var(--reputation-metal); font-size: clamp(26px, 4vw, 38px); }
.reputation-profile-head p { margin: 0; color: #b7b8ad; font-size: 13px; }
.reputation-profile-score { display: flex; flex: 0 0 auto; flex-direction: column; align-items: flex-end; gap: 4px; text-align: right; }
.reputation-profile-score strong { color: var(--reputation-metal); font: 700 36px/1 var(--font-display, sans-serif); font-variant-numeric: tabular-nums; }
.reputation-profile-score > span { color: #c1bdaF; font-size: 12px; }
.reputation-profile-score a { font-size: 12px; color: #d0bb91; }
.reputation-story { margin: 22px 0; padding-left: 14px; border-left: 2px solid var(--reputation-line); color: #cec8b8; font-size: 14px; line-height: 1.65; overflow-wrap: anywhere; }
.reputation-level-progress { margin: 0 0 22px; }
.reputation-level-progress > small { display: block; margin-top: 6px; color: #b4b8af; font-size: 12px; }
.reputation-progress { height: 4px; overflow: hidden; border-radius: 4px; background: #6d766331; }
.reputation-progress > span { display: block; height: 100%; max-width: 100%; border-radius: inherit; background: var(--reputation-metal, var(--reputation-gold)); opacity: .8; }
.reputation-awards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.reputation-award { min-width: 0; padding: 16px; border: 1px solid var(--reputation-line); border-radius: var(--reputation-radius); background: #080d0b38; }
.reputation-award > header { display: flex; align-items: center; gap: 12px; }
.reputation-award > header > div { min-width: 0; }
.reputation-award h3 { margin: 0 0 4px; color: #e1d9c7; font: 600 20px/1.2 var(--font-hud, sans-serif); overflow-wrap: anywhere; }
.reputation-award header p { margin: 0; color: #b4b8af; font-size: 12px; }
.reputation-award header b { color: var(--reputation-metal); font-weight: 500; }
.reputation-award-description { margin: 12px 0 0; color: #b7b9ae; font-size: 12px; line-height: 1.5; }
.reputation-stages { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; list-style: none; margin: 16px 0; padding: 0; }
.reputation-stage { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; text-align: center; color: #9ca39c; font-size: 10px; line-height: 1.3; }
.reputation-stage small { max-width: 100%; font-size: 9px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.reputation-stage-seal { display: grid; place-items: center; width: 23px; height: 23px; border: 1px solid #596257; border-radius: 50%; color: #9ca39c; font-size: 12px; }
.reputation-stage.is-earned { color: var(--reputation-metal); }
.reputation-stage.is-earned .reputation-stage-seal { color: var(--reputation-metal); border-color: currentColor; background: #bfb08d0a; box-shadow: inset 0 0 0 3px #131915; }
.reputation-next { display: block; margin-top: 8px; color: #bec2b7; font-size: 11px; line-height: 1.4; }
.reputation-next.is-complete { color: var(--reputation-metal); }
.reputation-breakdown { margin-top: 22px; color: #c5c4b8; font-size: 13px; }
.reputation-breakdown summary { width: fit-content; cursor: pointer; padding: 4px 0; }
.reputation-breakdown dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 24px; margin: 12px 0; }
.reputation-breakdown dl > div { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; border-bottom: 1px solid var(--reputation-line); }
.reputation-breakdown dt { min-width: 0; overflow-wrap: anywhere; }
.reputation-breakdown dd { flex-shrink: 0; margin: 0; font-variant-numeric: tabular-nums; }
.reputation-breakdown p { font-size: 12px; line-height: 1.6; }
.reputation-profile.reputation-heritage { background: #141a17; }
.reputation-heritage .reputation-profile-head h2 { color: #cbc7b9; font-size: clamp(24px, 3vw, 30px); }
.reputation-heritage .reputation-awards { grid-template-columns: minmax(0, 1fr); max-width: 600px; }
.reputation-page { display: grid; gap: 20px; min-width: 0; }
.reputation-page .panel { min-width: 0; padding: 22px; border-radius: var(--reputation-radius); border-color: var(--reputation-line); }
.reputation-page h2 { margin: 4px 0 10px; }
.reputation-page-intro { margin: 0; max-width: 760px; color: #bfc0b4; line-height: 1.6; }
.reputation-leaderboard { list-style: none; margin: 16px 0 0; padding: 0; }
.reputation-leader { display: grid; grid-template-columns: 42px 36px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 15px 0; border-top: 1px solid var(--reputation-line); }
.reputation-place { color: #b7b7a9; font: 600 24px/1 var(--font-display, sans-serif); font-variant-numeric: tabular-nums; }
.reputation-leader > .avatar { --size: 36px; }
.reputation-leader-copy { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; gap: 5px; }
.reputation-leader-copy > small { color: var(--reputation-metal); font-size: 12px; }
.reputation-leader-score { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; color: var(--reputation-metal); font-variant-numeric: tabular-nums; }
.reputation-leader-score strong { font-size: 18px; }
.reputation-leader-score small { color: #b0b5aa; font-size: 10px; }
.reputation-guardians > p { color: #b7bbb1; font-size: 13px; line-height: 1.6; }
.reputation-guardian-list { display: flex; flex-wrap: wrap; gap: 14px 30px; }
.reputation-guardian { display: flex; align-items: center; gap: 12px; min-width: 0; max-width: 100%; }
.reputation-guardian > div { min-width: 0; }
.reputation-guardian small { display: block; margin-top: 4px; color: #aaaE9f; font-size: 12px; }
.reputation-rules summary { cursor: pointer; width: fit-content; color: #d8c7a2; font: 600 18px/1.4 var(--font-hud, sans-serif); }
.reputation-rules-content { margin-top: 18px; color: #bec0b5; font-size: 13px; line-height: 1.6; }
.reputation-rules-content p { max-width: 840px; }
.reputation-rules-content h3 { color: #ddd3bd; font: 600 20px/1.3 var(--font-hud, sans-serif); }
.reputation-rule-levels { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 24px; }
.reputation-rule-level { display: flex; flex-direction: column; gap: 4px; padding: 9px 12px; border: 1px solid var(--reputation-line); border-radius: 4px; color: var(--reputation-metal); }
.reputation-rule-level small { color: #b7b7aa; }
.reputation-rule-points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 24px; max-width: 720px; }
.reputation-rule-points > div { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; border-bottom: 1px solid var(--reputation-line); }
.reputation-rule-points dd { flex-shrink: 0; margin: 0; color: #d5c6a4; }
.reputation-pagination { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 16px; font-size: 12px; color: #b6b8ac; }
@media (max-width: 900px) {
  .post-author .reputation-forum { align-items: flex-start; flex-direction: row; flex-wrap: wrap; gap: 4px 8px; text-align: left; }
  .post-author .reputation-forum .reputation-rank-title { font-size: 13px; }
  .post-author .reputation-forum .reputation-featured { flex-basis: 100%; }
  .reputation-awards { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .reputation-profile-head { align-items: flex-start; gap: 12px; }
  .reputation-profile-head h2 { font-size: 26px; }
  .reputation-profile-score strong { font-size: 28px; }
  .reputation-profile-score span { max-width: 105px; font-size: 10px; }
  .reputation-profile-score a { max-width: 105px; font-size: 10px; }
  .reputation-award { padding: 12px; }
  .reputation-stages { gap: 3px; }
  .reputation-stage { font-size: 9px; }
  .reputation-stage small { font-size: 8px; }
  .reputation-breakdown dl, .reputation-rule-points { grid-template-columns: minmax(0, 1fr); }
  .reputation-page .panel { padding: 16px; }
  .reputation-leader { grid-template-columns: 25px 28px minmax(0, 1fr) auto; gap: 8px; }
  .reputation-leader > .avatar { --size: 28px; }
  .reputation-place { font-size: 20px; }
  .reputation-leader-score strong { font-size: 15px; }
  .reputation-leader-copy > small { font-size: 11px; }
  .reputation-leader .identity-role { font-size: 9px; }
}

@media (max-width: 760px) {
  .post-author:has([data-forum-reputation]) { grid-template-columns: 44px minmax(0, 1fr); }
  .post-author > [data-forum-reputation] { grid-column: 2; width: 100%; }
  .post-author:has([data-forum-reputation]) > .avatar { grid-row: 1 / span 2; align-self: start; }
  .post-author:has([data-forum-reputation]) .forum-author-stack { width: 100%; }
}

/* Engraved insignia: readable silhouettes in forum rails, detailed medals in profiles. */
.reputation-medal.reputation-emblem { width: 68px; height: auto; aspect-ratio: 6 / 7; flex-basis: 68px; border-radius: 0; background: none; filter: drop-shadow(0 3px 3px #0005); }
.reputation-emblem.is-small { width: 36px; flex-basis: 36px; }
.reputation-emblem.is-small .emblem-etch { display: none; }
.reputation-emblem.is-locked { filter: none; opacity: .64; }
.reputation-emblem.is-quiet { filter: none; opacity: .85; }
.reputation-featured-badge { border-radius: 4px; text-decoration: none; }
.reputation-featured-badge:hover { background: #cbb57b0d; }
.reputation-featured-badge:focus-visible { outline: 2px solid var(--reputation-gold); outline-offset: 3px; }
.reputation-award-link { display: flex; align-items: center; gap: 14px; min-width: 0; width: 100%; color: inherit; text-decoration: none; border-radius: 4px; }
.reputation-award-link > div { min-width: 0; }
.reputation-award-link:hover h3 { color: var(--reputation-metal); text-decoration: underline; text-underline-offset: 4px; }
.reputation-stage-link { display: grid; place-items: center; width: 100%; min-height: 48px; border-radius: 4px; }
.reputation-stage-link .reputation-emblem { width: min(44px, 100%); }
.reputation-stage-link:hover { background: #cbb57b0d; }
.reputation-heritage .reputation-emblem { max-width: 54px; }
.reputation-heritage .reputation-stage-link .reputation-emblem { width: 30px; }
.reputation-heritage-emblem { flex: 0 0 auto; }

/* Four specific honours stay separate from the points table. */
.reputation-section-heading { margin-bottom: 14px; }
.reputation-section-heading h2 { margin-top: 5px; }
.reputation-section-heading p { margin: 0; color: #b9b8aa; font-size: 13px; line-height: 1.6; }
.reputation-champion-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.reputation-champion { min-width: 0; overflow: hidden; display: flex; flex-direction: column; border: 1px solid var(--reputation-line); border-radius: var(--reputation-radius); background: linear-gradient(155deg, #25261d, #151b17 55%); }
.reputation-champion-category { display: flex; flex-direction: column; align-items: center; gap: 9px; padding: 18px 12px 14px; color: #ddd2b5; text-align: center; text-decoration: none; }
.reputation-champion-category .reputation-emblem { width: 76px; flex-basis: auto; }
.reputation-champion-label { min-height: 44px; font: 600 20px/1.1 var(--font-hud, sans-serif); overflow-wrap: anywhere; }
.reputation-champion-link { display: flex; align-items: center; gap: 3px; color: #b7ab8c; font-size: 10px; }
.reputation-champion-link svg { width: 12px; height: 12px; }
.reputation-champion-category:hover { background: #d5b76d08; }
.reputation-champion-category:hover .reputation-champion-label { color: #f0d697; }
.reputation-champion-winner { display: flex; flex: 1; flex-direction: column; align-items: center; gap: 8px; margin-top: auto; padding: 14px 12px 16px; border-top: 1px solid var(--reputation-line); background: #080c0955; text-align: center; }
.reputation-champion-winner .reputation-identity { justify-content: center; font-size: 12px; }
.reputation-champion-winner p { margin: 0; color: #c8c4b5; font-size: 11px; }
.reputation-champion-winner strong { color: #ddc48a; font-size: 18px; font-variant-numeric: tabular-nums; }
.reputation-champion-winner > small { margin-top: auto; color: #aaaE9f; font-size: 10px; line-height: 1.5; }
.reputation-champion-winner .reputation-champion-tie { color: #d4c5a3; }
.reputation-champion-winner .reputation-champion-empty { color: #c1c2b6; font-size: 13px; }
.reputation-category-nav { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 24px; padding-bottom: 18px; border-bottom: 1px solid var(--reputation-line); }
.reputation-category-nav > a { display: flex; align-items: center; gap: 5px; min-width: 0; padding: 4px 9px 4px 5px; color: #bebfb2; border: 1px solid #c1b58c20; border-radius: 5px; background: #080d0a33; text-decoration: none; font-size: 11px; line-height: 1.3; }
.reputation-category-nav > a > svg { width: 22px; height: 22px; margin: 4px 2px; color: #bbb08d; }
.reputation-category-nav .reputation-emblem { width: 25px; flex-basis: 25px; }
.reputation-category-nav > a:hover { color: #e5d4a7; border-color: #cbb47577; }
.reputation-category-nav > a[aria-current="page"] { color: #f1d59a; border-color: #d1b06c88; background: #c6a05b15; }
.reputation-board-head { display: flex; align-items: center; gap: 18px; }
.reputation-board-head > div { min-width: 0; }
.reputation-board-head .reputation-emblem { flex-shrink: 0; }
.reputation-pagination [aria-disabled="true"] { opacity: .45; pointer-events: none; }
.reputation-leader-score small { max-width: 120px; text-align: right; }
@media (max-width: 1200px) {
  .reputation-champion-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .reputation-champion-grid { gap: 8px; }
  .reputation-champion-category { padding: 12px 9px; gap: 6px; }
  .reputation-champion-category .reputation-emblem { width: 64px; }
  .reputation-champion-label { font-size: 18px; min-height: 40px; }
  .reputation-champion-winner { padding: 12px 8px; }
  .reputation-category-nav { gap: 5px; }
  .reputation-category-nav > a { flex: 1 1 calc(50% - 5px); padding-right: 5px; font-size: 10px; }
  .reputation-board-head { gap: 12px; align-items: flex-start; }
  .reputation-board-head .reputation-emblem { width: 52px; flex-basis: 52px; }
  .reputation-board-head h2 { font-size: 26px; }
  .reputation-award-link { gap: 10px; }
  .reputation-award-link > .reputation-emblem { width: 58px; flex-basis: 58px; }
  .reputation-leader-score small { max-width: 70px; overflow-wrap: anywhere; }
}
