/* Sorting fever is scoped separately to preserve concurrent work on other games. */
.sort-meter[hidden],.sort-recap[hidden]{display:none}
.sort-meter{padding:12px 22px;background:#e4eddf;border-top:1px solid #d3dfca;color:#285b49}
.sort-meter>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:center}
.sort-meter strong{font-size:16px}.sort-meter span{font-size:13px}
.sort-charge{display:flex;gap:5px;margin-top:8px}.sort-charge i{height:6px;flex:1;border-radius:5px;background:#c5d6bd}.sort-charge i.lit{background:#46876b}
.sort-meter.is-fever{background:#ffe6a5;color:#79520c}.sort-meter.is-fever .lit{background:#cf931f}
.game-page[data-game=sort] .stage-label{display:none}
.game-page[data-game=sort] .play-feedback{top:8%;font-size:17px;padding:8px 14px}
.game-page[data-game=sort] .playfield{aspect-ratio:900/440;max-height:460px;min-height:300px}
.game-page[data-game=sort] .playfield:has(#welcome:not([hidden])){min-height:430px;max-height:none}
.game-page[data-game=sort] .playfield:has(#result:not([hidden])){min-height:660px;max-height:none}
.game-page[data-game=sort] #left{background:#fce8c9;border-color:#d5b891;box-shadow:0 3px 0 #cfb08b}
.game-page[data-game=sort] #right{background:#f9d9ce;border-color:#dfa796;box-shadow:0 3px 0 #d7aa9a}
.game-page[data-game=sort] .game-controls button{min-height:54px;min-width:130px}
.game-page[data-game=sort] .game-controls button:active{transform:translateY(2px);box-shadow:none!important}
.sort-recap{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:4px 0 12px;padding:12px 16px;border-radius:12px;background:#e9efdf;font-size:12px;color:#425d46;width:min(100%,410px)}
.sort-recap strong{display:block;font-size:18px;margin-top:3px}
.game-page[data-game=sort] #result-message{max-width:420px;font-size:16px}
.game-page[data-game=sort] #welcome .reward-hint{font-size:13px}
.game-page[data-game=sort] #welcome-description{font-size:17px}
.game-page[data-game=sort] #welcome-art{width:180px;height:105px}
@media(max-width:700px){
 .game-page[data-game=sort] .playfield{aspect-ratio:auto;height:clamp(230px,calc(100dvh - 350px),430px);min-height:230px;max-height:none}
 .game-page[data-game=sort] .active-game-heading h2{font-size:22px}
 .game-page[data-game=sort] .active-game-heading>button{padding:4px 8px;min-height:32px;font-size:14px}
 .game-page[data-game=sort] .active-game-heading{margin-top:12px}
 .sort-meter{padding:10px 12px}.sort-meter>div:first-child{align-items:flex-start;gap:4px;flex-direction:column}.sort-meter strong{font-size:15px}.sort-meter span{font-size:12px}.sort-charge{margin-top:6px}
 .game-page[data-game=sort] .game-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px}
 .game-page[data-game=sort] #left{grid-column:1;grid-row:1}.game-page[data-game=sort] #right{grid-column:2;grid-row:1}
 .game-page[data-game=sort] #combo{grid-column:1/-1;grid-row:2;font-size:13px;line-height:1.4}
 .game-page[data-game=sort] .game-controls button{min-width:0;min-height:50px}
 .game-page[data-game=sort] .playfield:has(#welcome:not([hidden])){height:auto;min-height:440px}
 .game-page[data-game=sort] .playfield:has(#result:not([hidden])){height:auto;min-height:740px}
 .sort-recap{gap:6px;padding:10px 8px}.sort-recap strong{font-size:16px}
 .game-page[data-game=sort] .overlay{padding:18px 12px}
}

/* Rainbow 60: rarity is conveyed by a name, mark, points, and wrap color. */
.sort-loot{margin:8px 0 0;font-size:13px;font-weight:700;line-height:1.5}
.sort-meter.is-rainbow{background:linear-gradient(110deg,#fde4e6,#fff0c2,#d8f1e1,#d8effb,#e9dafa);color:#513961}
.sort-meter.is-rainbow .sort-charge i.lit{background:#9870b6}
.game-page[data-game=sort] .health strong{color:#236e65;font-size:22px}
.game-page[data-game=sort] .rainbow-feedback{background:linear-gradient(100deg,#ffd7e0,#ffedb7,#ceeedc,#d4e8ff,#e9d1f6);color:#613466;border:2px solid #fff9ee;box-shadow:0 5px 22px #76518b33}
.sort-recap{display:block;margin-bottom:10px}
.sort-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.sort-catches{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px}
.sort-catches>span{border-radius:8px;padding:6px;border:1px solid #d5ddcc;background:#fff9ed}
.sort-catches strong{font-size:15px;margin:0}
.sort-catches [data-rarity=rainbow]{background:linear-gradient(110deg,#ffdedf,#fff0bf,#d5efdd,#d8eafa,#e8d8f4);border-color:#c3a5d1}
.sort-odds{margin:20px 0;padding:18px 20px;background:#fff9f1;border:1px solid #d9dfd0;border-radius:18px;color:#355448}
.sort-odds[hidden]{display:none}.sort-odds summary{font-weight:700;cursor:pointer;min-height:34px;line-height:1.7}
#sort-odds-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
#sort-odds-list>div{border:1px solid #d2d7cf;background:#efede5;border-radius:12px;padding:14px;text-align:center}
#sort-odds-list strong{display:block;font-size:24px;margin:6px 0}#sort-odds-list small{display:block;font-size:12px}
#sort-odds-list [data-rarity=green]{background:#d9eedc}#sort-odds-list [data-rarity=blue]{background:#d7eaf7}#sort-odds-list [data-rarity=purple]{background:#eaddf5}#sort-odds-list [data-rarity=gold]{background:#fff0c0}#sort-odds-list [data-rarity=rainbow]{background:linear-gradient(120deg,#ffdedf,#fff0bf,#d5efdd,#d8eafa,#e8d8f4);border:2px solid #b28ac8}
.sort-odds p{font-size:14px;line-height:1.8;margin:14px 0 0}
.game-page[data-game=sort] .playfield:has(#result:not([hidden])){min-height:800px}
@media(max-width:700px){
 .game-page[data-game=sort] .playfield{height:clamp(230px,calc(100dvh - 395px),430px)}
 .game-page[data-game=sort] .playfield:has(#welcome:not([hidden])){min-height:480px}
 .game-page[data-game=sort] .playfield:has(#result:not([hidden])){min-height:840px}
 .sort-loot{font-size:12px;margin-top:6px}.sort-odds{padding:14px}#sort-odds-list{grid-template-columns:repeat(2,1fr)}
 .game-page[data-game=sort] .health strong{font-size:20px}
}
