/* Rankings use the shared portal, type scale, item slots and navigation. */
body[data-section="rankings"]{--section:#eac777}
.rankingpage{--selling:#89df9a;--mastery:#81c9ed;--achievements:#d4b0ee;padding-top:42px}
.rankingpage [hidden],.playerdialog [hidden]{display:none!important}
.rankingpage .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.rulelist small{display:block;font-size:11px;color:#a4b9ad;margin-top:3px;overflow-wrap:anywhere}
.rankingintro{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:36px}
.rankeyebrow{font-size:12px;letter-spacing:2px;font-weight:600;color:#b4cbb9;margin:0 0 15px}
.rankingintro h1{font-size:clamp(24px,3vw,34px);margin:0 0 14px;color:#f3f6ed;line-height:1.6}
.rankingintro p:not(.rankeyebrow){font-size:var(--fs-body);color:#bfd1c4;margin:0}
.ruleslink{font-size:14px;color:#dfce9f;white-space:nowrap;text-decoration:none;padding-bottom:4px}
.ruleslink:hover{text-decoration:underline;text-underline-offset:5px}
.ruleslink span{margin-left:10px}
.boardmeta{display:flex;justify-content:space-between;gap:12px 22px;align-items:center;border-top:1px solid #3c4b4166;padding:18px 0 25px;flex-wrap:wrap}
.boardperiod{display:flex;align-items:center;gap:10px;font-size:14px}
.boardperiod b{font-weight:600;color:#e4ede2}.boardperiod #player-count{color:#a4b8aa;margin-left:8px}
.periodmarker{width:7px;height:7px;background:#dfc17c;box-shadow:0 0 0 4px #eac77710}
#freshness{font-size:12px;color:#9bb1a2;margin:0}#freshness.stale{color:#e9c77c}
.ranksectionhead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px}
.ranksectionhead h2{font-family:var(--pixel);font-size:var(--fs-sm);line-height:1.8;margin:0;color:#eaf1e5}
.ranksectionhead>span{font-size:13px;color:#a5b9ac}
.leaders{display:grid;grid-template-columns:1.12fr 1fr 1fr;gap:16px;min-height:190px}
.leader{position:relative;display:flex;flex-direction:column;text-align:left;min-width:0;width:100%;padding:22px;background:#202d25;border:1px solid #415647;border-top:3px solid #8aa798;cursor:pointer;color:#edf5e9;font-family:var(--sans);box-shadow:0 12px 26px #0003;transition:background .15s,border-color .15s}
.leader:first-child{background:linear-gradient(115deg,#35402b,#263428 65%);border-color:#827249;border-top-color:#eac777}
.leader:nth-child(3){border-top-color:#ba9071}
.leader:hover{background:#304638;border-color:#9dbda4}
.leaderlabel{font-size:11px;letter-spacing:1.5px;color:#b2c7b6;font-weight:600;display:flex;justify-content:space-between;margin-bottom:18px}.leader:first-child .leaderlabel{color:#e9ce8a}
.leaderidentity{display:flex;align-items:center;gap:14px;min-width:0}.leadername{font-size:18px;font-weight:600;overflow-wrap:anywhere;line-height:1.4}
.leaderidentity>span{min-width:0}.leaderfocus{display:block;font-size:12px;color:#adbfaf;margin-top:5px}
.head{display:block;flex:0 0 auto;image-rendering:pixelated;background:#172b21;border:1px solid #5c7463;object-fit:contain}
.leaderscore{display:flex;align-items:baseline;gap:8px;margin:20px 0 13px}.leaderscore b{font-family:var(--pixel);font-size:var(--fs-lg);color:#d9eed7}.leader:first-child .leaderscore b{color:#efcf83}
.leaderscore span{font-size:12px;color:#b4c7b7}.leaderbars{display:flex;gap:3px;height:5px;width:100%;background:#ffffff0c}
.leaderbars i{height:100%;min-width:0}.leaderbars .selling{background:#89df9a}.leaderbars .mastery{background:#81c9ed}.leaderbars .achievements{background:#d4b0ee}
.leaderhint{font-size:12px;display:flex;justify-content:space-between;gap:8px;color:#b4c7b7;margin-top:12px}.leaderhint>span:last-child{white-space:nowrap}
.loadingboard{grid-column:1/-1;background:#202d25;border:1px solid #415647;display:grid;place-items:center;color:#b4c7b7;min-height:200px;font-size:var(--fs-note)}
.rankingboard{margin-top:30px;background:#17231ded;border:1px solid #3e5044;box-shadow:0 16px 32px #0003}
.boardtools{padding:19px 20px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ranktabs{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.ranktabs button{font-family:var(--sans);font-size:14px;font-weight:600;border:1px solid transparent;cursor:pointer;padding:10px 13px;min-height:44px;background:transparent;color:#b7c6ba}
.ranktabs button:hover{color:#edf5e9;background:#293c2f}.ranktabs button[aria-pressed="true"]{background:#314638;border-color:#56785f;color:#e8f7e4;box-shadow:inset 0 -2px #97dba3}
.ranktabs button span{font-size:11px;color:#a1b4a5;font-weight:400;margin-left:5px}
.ranksearch{display:flex;align-items:center;gap:10px;padding:0 12px;background:#101c15;border:1px solid #425948;min-width:180px;max-width:240px;flex:1}
.ranksearch>span[aria-hidden]{font-size:26px;color:#a5baa9;line-height:1}.ranksearch input{width:100%;background:none;border:0;color:#edf4e8;font-family:var(--sans);font-size:14px;min-height:44px;min-width:0;outline:none}.ranksearch:focus-within{outline:2px solid #51b9fb;outline-offset:2px}.ranksearch input::placeholder{color:#9caf9f}
.boarddescription{margin:14px 22px 20px;color:#a5b9aa;font-size:13px}
.standings-scroll{overflow-x:auto}.standings{border-collapse:collapse;width:100%;font-size:14px;white-space:nowrap;text-align:left;font-variant-numeric:tabular-nums}
.standings th{padding:12px 16px;background:#233329;color:#b0c5b4;font-size:11px;font-weight:600;letter-spacing:.6px;text-transform:uppercase}
.standings th:first-child,.standings td:first-child{padding-left:24px;width:74px}.standings th:last-child,.standings td:last-child{padding-right:24px;width:46px}
.standings td{padding:15px 16px;border-bottom:1px solid #34463b80;color:#d6e4d6;height:73px}
.standings tbody tr{cursor:pointer}.standings tbody tr:hover{background:#26392d}.standings .toprow{background:#28362a44}
.ranknumber{font-weight:600;color:#9fb5a6}.toprow .ranknumber{color:#e9ce8a}
.playercell{display:flex;align-items:center;gap:12px;min-width:170px}.playerlink{color:#edf5e9;font-family:var(--sans);font-size:14px;font-weight:600;text-decoration:none;background:none;border:0;padding:6px 0;cursor:pointer;text-align:left}.playerlink:hover{text-decoration:underline;text-underline-offset:4px}
.statcell{min-width:90px}.statvalue{display:block;font-size:13px}.statbar{display:block;width:68px;height:3px;background:#ffffff10;margin-top:7px}.statbar i{display:block;height:100%}.selling-col .statbar i{background:#89df9a}.mastery-col .statbar i{background:#81c9ed}.achievements-col .statbar i{background:#d4b0ee}
.scorecell{font-weight:600;color:#d9eccb!important;text-align:right;font-size:17px}.standings #score-heading{text-align:right}.rowarrow{color:#8ba68f;font-size:18px}
.boardfoot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding:18px 22px}.boardfoot p{margin:0;color:#a1b8a7;font-size:12px}
.rankbutton{padding:10px 16px;min-height:42px;cursor:pointer;background:#304936;border:1px solid #587d61;color:#e1f0df;font-size:13px;font-family:var(--sans)}.rankbutton:hover{background:#42634a}
.boardempty,.loaderror{padding:28px;text-align:center;font-size:var(--fs-note);color:#c4d7c7}.loaderror h3{color:#efcf83}.boardempty button{display:block;margin:14px auto 0}
.scoring-section{margin-top:46px;scroll-margin-top:100px}.scorepaths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.scorepath{display:flex;align-items:flex-start;gap:15px;padding:21px 0;border-top:1px solid #546c5680;min-width:0}.scorepath>div{min-width:0}.scorepath h3{font-size:16px;font-weight:600;margin:0 0 9px;color:#e1eddc}.scorepath h3 span{display:block;font-size:12px;margin-top:3px;color:#89df9a;font-weight:400}.mastery-path h3 span{color:#81c9ed}.achievement-path h3 span{color:#d4b0ee}
.scorepath p{font-size:14px;line-height:1.75;color:#b2c6b7;margin:0 0 12px}.scorepath a{font-size:12px;text-decoration:none;color:#d9e8d5}.scorepath a:hover{text-decoration:underline;text-underline-offset:4px}.scorepath a span{margin-left:5px}
.scoringdetails{margin-top:14px;border-top:1px solid #405245;border-bottom:1px solid #405245;font-size:14px;scroll-margin-top:110px}.scoringdetails>summary{cursor:pointer;padding:20px 0;color:#dcebd7;font-weight:600}.scoringdetails>summary>span{font-size:12px;color:#9eb4a4;margin-left:14px;font-weight:400}.rulesgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;padding:8px 0 22px}.rulesgrid h3{font-size:15px;color:#e3eddc;margin:0 0 10px}.rulesgrid p,.rulesnote{color:#b2c6b7;font-size:13px}.rulelist{list-style:none;padding:0;margin:0}.rulelist li{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px solid #3b4e4266;color:#bcd0c1;font-size:12px}.rulelist b{font-weight:600;white-space:nowrap;color:#e0eddb}.rulesnote{margin:0 0 20px;max-width:100ch;line-height:1.8}
.playerdialog{--selling:#89df9a;--mastery:#81c9ed;--achievements:#d4b0ee;background:#1b2a21;color:#e9f2e5;border:1px solid #6a866b;border-top:3px solid #dec487;padding:0;width:min(780px,calc(100% - 28px));max-height:calc(100svh - 40px);box-shadow:0 24px 80px #000b;font-family:var(--sans)}
.playerdialog::backdrop{background:#050c09cc;backdrop-filter:blur(4px)}body:has(.playerdialog[open]){overflow:hidden}
.dialogbar{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:1;background:#203126;border-bottom:1px solid #415b47;padding:8px 18px;font-size:11px;letter-spacing:1.5px;color:#b4cbb6}.dialogbar button{border:0;background:none;font-size:19px;color:#e5edde;cursor:pointer;width:44px;height:44px}
#player-profile{padding:26px}.profilehero{display:flex;align-items:center;gap:18px}.profilehero h2{font-size:clamp(18px,4vw,25px);margin:0;overflow-wrap:anywhere}.profilehero p{font-size:13px;color:#b3c7b7;margin:4px 0 0}.profiletotal{margin-left:auto;text-align:right;white-space:nowrap}.profiletotal b{font-family:var(--pixel);font-size:var(--fs-lg);color:#edcf87}.profiletotal small{display:block;color:#b3c7b7;font-size:11px;margin-top:7px}
.profilemetrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:25px}.profilemetric{padding:15px;background:#273b2d;border:1px solid #425d49}.profilemetric h3{font-size:13px;color:#bed0c0;margin:0 0 8px;font-weight:400}.profilemetric b{font-size:22px;font-weight:600;color:#dcebd3}.profilemetric small{font-size:11px;color:#a7bfad;margin-left:5px}.profilemetric p{font-size:12px;color:#b4c9b7;margin:8px 0 0;overflow-wrap:anywhere}.profilemetric .statbar{width:100%}
.profilesection{margin-top:27px}.profilesection h3{font-size:16px;color:#e0edda;margin:0 0 12px}.profilesection>p{color:#b1c5b6;font-size:13px}
.placement-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.placement{padding:13px 12px;background:#24372a;border:1px solid #425d49;border-top:2px solid #a4b7b9;min-width:0}.placement:first-child{border-top-color:#eac777}.placement:nth-child(3){border-top-color:#ba9071}.placement>span{display:block;font-size:11px;color:#b5cbbb}.placement>b{display:block;margin:8px 0;font-size:21px;font-weight:600;color:#e2ecdc}.placement small{font-size:12px;font-weight:400;color:#b5cbbb}.moreplacements{margin-top:12px}.moreplacements>summary{padding:10px 0;font-size:13px;cursor:pointer;color:#b9d6e6}
.nextmilestone{border-left:3px solid #88bb8e;padding:13px 16px;background:#293e2f;margin-top:22px;color:#c3d8c7;font-size:13px}.nextmilestone b{display:block;color:#e2efdb;margin-bottom:4px}.itemmilestones{display:flex;flex-direction:column;gap:8px}.milestoneitem{display:flex;align-items:center;gap:12px;border-bottom:1px solid #3b5142;padding:8px 0;font-size:13px}.milestoneitem>span:last-child{margin-left:auto;color:#a6cae1;text-align:right;font-size:12px;white-space:nowrap}.milestoneitem b{font-size:13px;font-weight:600}.milestoneitem small{display:block;color:#afc5b4;font-size:11px;margin-top:4px}
.badgelist{display:flex;flex-wrap:wrap;gap:9px}.badgechip{display:flex;align-items:center;gap:9px;background:#2e3835;border:1px solid #535b59;padding:8px 10px;font-size:12px;color:#e1d6ed}.badgechip b{font-size:11px;color:#d3b3e9;font-weight:400;margin-left:5px}
@media(max-width:1100px){.ranktabs button{padding:10px}.ranktabs button span{display:none}.leader{padding:18px}.leadername{font-size:16px}}
@media(max-width:800px){.rankingintro{align-items:flex-start;flex-direction:column;gap:15px}.leaders{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.leaderidentity{align-items:flex-start;flex-direction:column;gap:10px}.leadername{font-size:14px}.leaderfocus{font-size:11px}.leaderlabel{font-size:10px;letter-spacing:.5px}.leaderlabel>span:last-child{display:none}.leaderscore b{font-size:var(--fs-md)}.leaderscore{gap:4px;flex-wrap:wrap;margin-top:15px}.leaderhint{font-size:11px}.scorepaths{grid-template-columns:1fr;gap:0}.scorepath h3 span{display:inline;margin-left:10px}.ranksectionhead{flex-wrap:wrap;gap:5px}.rulesgrid{grid-template-columns:1fr;gap:24px}.standings th,.standings td{padding-left:10px;padding-right:10px}.standings .mastery-col,.standings .achievements-col{display:none}.standings th:first-child,.standings td:first-child{padding-left:16px;width:56px}.standings th:last-child,.standings td:last-child{padding-right:14px}.playercell{min-width:155px}.profiletotal b{font-size:var(--fs-md)}}
@media(max-width:520px){.rankingpage{padding:28px 14px 50px}.rankingintro h1{font-size:24px}.rankingintro p:not(.rankeyebrow){font-size:16px}.rankeyebrow{font-size:10px;letter-spacing:1.2px}.rankingintro{margin-bottom:22px}.boardmeta{gap:10px;padding-bottom:23px}.ranksectionhead h2{font-size:var(--fs-xs)}.ranksectionhead>span{font-size:11px}.leader{padding:12px}.leaderidentity .head{width:36px;height:36px}.leadername{font-size:12px}.leaderfocus{display:none}.leaderlabel{margin-bottom:12px}.leaderscore b{font-size:var(--fs-xs)}.leaderhint{display:none}.leaders{min-height:0}.leaderscore span{font-size:10px}.leaderbars{margin-top:auto}.rankingboard{margin-top:24px}.boardtools{padding:12px 12px 0;gap:12px}.ranktabs{width:100%;justify-content:space-between;gap:0}.ranktabs button{font-size:12px;padding:9px}.ranksearch{max-width:none;width:100%}.boarddescription{margin:13px;font-size:12px}.standings .selling-col{display:none}.standings td{height:68px}.scorecell{font-size:15px}.playercell{gap:9px;min-width:140px}.playercell .head{width:28px;height:28px}.playerlink{font-size:12px}.boardfoot{padding:16px 13px}.scoring-section{margin-top:32px}.scorepath{padding:18px 0}.scoringdetails>summary>span{display:block;margin:5px 0 0 18px;font-size:11px}#player-profile{padding:18px}.profilehero{gap:12px;flex-wrap:wrap}.profilehero .head{width:42px;height:42px}.profilehero h2{font-size:18px}.profiletotal{margin-left:0;width:100%;text-align:left;padding-top:8px}.profiletotal small{display:inline;margin-left:10px}.profilemetrics{gap:7px}.profilemetric{padding:10px}.profilemetric h3{font-size:11px}.profilemetric b{font-size:18px}.profilemetric small{display:block;margin-left:0}.families{grid-template-columns:1fr}.milestoneitem>span:last-child{font-size:10px}}
@media(max-width:520px){
  .placement-summary{gap:7px}.placement{padding:10px 8px}.placement>b{font-size:18px}.placement small{display:block}.placement>span{font-size:10px}.milestoneitem>span:nth-child(2){min-width:0;overflow-wrap:anywhere}
  .rankingintro h1{font-size:clamp(20px,6.15vw,24px)}
  .leaderscore{display:block}.leaderscore>span{display:block;margin-top:5px}
  .standings{table-layout:fixed}.standings th:first-child{width:52px}
  .standings #score-heading{width:82px}.standings th:last-child,.standings td:last-child{display:none}
  .playercell{min-width:0}.playerlink{min-width:0;overflow-wrap:anywhere;white-space:normal}
}
@media(max-width:360px){.leader{padding:10px}.leaderscore b{font-size:var(--fs-2xs)}.ranktabs button{padding:9px 6px}}
@media(prefers-reduced-motion:reduce){.leader{transition:none}}
