body #hub-content .vault-stage.chest-inventory{display:grid!important;grid-template-rows:auto minmax(0,1fr) auto auto auto;gap:7px;padding:14px!important}
.inventory-title{margin:0!important;font:700 clamp(19px,2.3vw,30px)/1.1 Georgia,serif!important;color:#ffe5a7}
.inventory-wheel{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;min-height:0;width:100%;gap:4px}
.inventory-center{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;height:100%;gap:4px;background:radial-gradient(ellipse,#a877d53d,transparent 68%)}
body #hub-content .inventory-chest{display:block;min-height:0;flex:1;width:100%;max-height:240px;object-fit:contain;filter:drop-shadow(0 8px 10px #160d27)}
.inventory-kind{font:700 clamp(14px,1.8vw,22px)/1.1 Georgia,serif;color:#ffeac1}
.inventory-count{font-size:12px;color:#e0c6ee}
body #hub-content .inventory-arrow{width:44px;height:48px;padding:0;font:32px Georgia,serif;border:1px solid #d6b47e;border-radius:50%;color:#ffe8ac;background:linear-gradient(#755594,#32213f);cursor:pointer}
.inventory-dots{display:flex;justify-content:center;gap:7px;height:5px}.inventory-dots span{height:5px;width:5px;border-radius:50%;background:#887098}.inventory-dots .active{background:#ffe19d;box-shadow:0 0 6px #ffe19d}
.inventory-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
body #hub-content .inventory-actions button,.inventory-summary>button{min-height:44px;padding:7px 10px;border:1px solid #c9a773;border-bottom:3px solid #6d4e35;border-radius:12px;background:linear-gradient(#72578c,#382545);font:700 15px/1.15 Georgia,serif;color:#ffe8af;cursor:pointer}
body #hub-content .inventory-actions .inventory-open{background:linear-gradient(#e5cb8a,#af8952);color:#2e203b}
.inventory-actions button:disabled{opacity:.45;cursor:default!important}
.inventory-status{margin:0!important;font-size:12px;min-height:0}.inventory-status:empty{display:none}
.inventory-summary{grid-row:2/-1;display:flex;flex-direction:column;gap:8px;overflow:hidden;min-height:0;width:100%;padding:8px;box-sizing:border-box}.inventory-summary h3{margin:0;font:700 20px Georgia,serif;color:#ffe5ad;flex:none}.inventory-summary p{font-size:12px;margin:0}.inventory-currencies{display:flex;justify-content:center;gap:12px;flex:none}.inventory-summary>button{margin:0;flex:none;align-self:center;width:min(100%,240px)}
.inventory-reward-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));grid-auto-rows:max-content;align-content:start;gap:9px;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:3px 5px 5px;outline-offset:-2px}
.inventory-reward-tile{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:7px!important;border:1px solid var(--rarity)!important;border-radius:13px!important;background:linear-gradient(145deg,#45304f,#251c33)!important;color:#f9e8c8;text-align:center}
.inventory-reward-art{position:relative;width:100%;height:78px;flex:none}.inventory-reward-art>svg,.inventory-reward-art>img,.inventory-reward-art>canvas,.inventory-reward-art>button{display:block;width:100%!important;height:100%!important;object-fit:contain;border:0!important;padding:0!important;background:transparent!important;box-shadow:none!important}.inventory-reward-art button canvas{width:100%!important;height:100%!important;object-fit:contain}
.inventory-reward-count{position:absolute;right:0;bottom:0;padding:3px 7px;border:1px solid #d8b981;border-radius:8px;background:#21172feF;color:#ffe9b1;font:700 13px system-ui;pointer-events:none}
.inventory-reward-tile>strong{font:700 12px/1.25 Georgia,serif;overflow-wrap:anywhere}.inventory-reward-tile>small{font:10px/1.3 system-ui;color:#cbb8d8}.inventory-summary-note{flex:none}
.inventory-summary .reward-currency{display:flex;align-items:center;gap:7px}.inventory-summary .reward-currency>svg{width:30px;height:30px}.inventory-summary .reward-currency>span{display:flex;flex-direction:column}.inventory-summary .reward-currency small{font-size:10px}
@media(max-height:550px){.inventory-summary{gap:5px;padding:3px}.inventory-summary h3{font-size:15px}.inventory-reward-grid{grid-template-columns:repeat(auto-fit,minmax(83px,1fr));gap:5px}.inventory-reward-art{height:49px}.inventory-reward-tile{padding:4px!important}.inventory-reward-tile>strong{font-size:10px}.inventory-reward-tile>small{font-size:9px}.inventory-summary .reward-currency>svg{width:22px;height:22px}.inventory-summary>button{min-height:40px;font-size:12px}}
.chest-inventory [hidden]{display:none!important}
@media(max-height:400px){body #hub-content .vault-stage.chest-inventory{padding:8px!important;gap:4px}.inventory-title{font-size:18px!important}.inventory-kind{font-size:13px}.inventory-count{font-size:11px}.inventory-actions{gap:5px}body #hub-content .inventory-actions button{font-size:12px;padding:4px}.inventory-center{gap:2px}.inventory-chest{max-height:95px!important}}

@media(max-height:400px){body #hub-content .vault-stage.chest-inventory{grid-template-rows:auto minmax(0,1fr) auto auto}.inventory-dots{display:none}.inventory-center{overflow:hidden}.inventory-chest{max-height:calc(100% - 32px)!important}}

body #hub-content .inventory-wheel{overflow:hidden;align-self:stretch}body #hub-content .inventory-center{display:grid;grid-template-rows:minmax(0,1fr) auto auto;justify-items:center;overflow:hidden;width:100%}body #hub-content .inventory-chest{height:100%;width:100%;min-height:0;max-height:240px;object-fit:contain} @media(max-height:400px){body #hub-content .inventory-chest{max-height:100%!important}}
/* Academy vault: the same parchment-gold trim and violet stone as World Chat. */
body #hub-dialog[data-tab=rewards],body #chest-dialog{background:linear-gradient(#201a2be8,#211a30ed),url('art/academy-honors.svg') center/cover!important;color:#ede1d0;border-color:#b49a68!important}
body #hub-dialog[data-tab=rewards] .hub-heading{background:linear-gradient(100deg,#292135,#1c1628)!important;border-bottom:1px solid #b49a6870!important;box-shadow:0 3px 15px #110b20}
body #hub-dialog[data-tab=rewards] #hub-title,body #chest-dialog h2{font-family:Georgia,serif!important;color:#f0d8a4!important}
body #hub-dialog[data-tab=rewards] #hub-content{background:transparent!important}
body #hub-dialog[data-tab=rewards] .vault-stage.chest-inventory,body #hub-dialog[data-tab=rewards] .vault-progress,body #hub-dialog[data-tab=rewards] .vault-shop,body #hub-dialog[data-tab=rewards] .bazaar-feature,body #hub-dialog[data-tab=rewards] .chest-guide-panel{border:1px solid #b49a68!important;border-bottom:4px solid #665039!important;background:linear-gradient(#211a3299,#211a32dd),url('art/academy-honors.svg') center/cover!important;box-shadow:inset 0 0 0 3px #1c172880,inset 0 0 0 4px #d1b98633,0 7px 18px #100a2255!important;color:#eee0c8!important}
body #hub-dialog[data-tab=rewards] h3,body #hub-dialog[data-tab=rewards] .vault-shop strong{font-family:Georgia,serif!important;color:#f0d8a4!important}
body #hub-dialog[data-tab=rewards] button,body #chest-dialog button{border-color:#ab9065!important;border-bottom-color:#594330!important;background:linear-gradient(#635044,#3c2c3b)!important;color:#f4dfb7!important;font-family:Georgia,serif!important}
body #hub-dialog[data-tab=rewards] button:hover:not(:disabled){box-shadow:inset 0 0 0 1px #ead49c77,0 0 14px #bba2ee44!important;filter:brightness(1.12)}
body #hub-dialog[data-tab=rewards] .inventory-open{background:linear-gradient(#e5cb8a,#af8952)!important;color:#2e203b!important}
body #hub-dialog[data-tab=rewards] .inventory-scene{position:relative;align-self:stretch;width:100%;height:100%;min-height:0;max-height:290px;isolation:isolate}
body #hub-dialog[data-tab=rewards] .inventory-scene .inventory-chest{position:absolute;inset:8% 10% 19%;width:80%;height:73%;max-height:none!important;object-fit:contain;z-index:1;animation:vault-float 4s ease-in-out infinite;animation-play-state:paused}
body #hub-dialog[data-tab=rewards][open] .inventory-scene .inventory-chest{animation-play-state:running}
.inventory-circle{position:absolute;left:15%;right:15%;bottom:8%;height:15%;border:1px solid #dec99a;border-radius:50%;background:radial-gradient(ellipse,#c39beb55,#86639422 60%,transparent 70%);box-shadow:0 3px #695172,0 6px #21182d,0 0 15px #b695e63d}
.inventory-circle::before{content:'';position:absolute;inset:18% 8%;border:1px dashed #dbc49b;border-radius:50%}
.inventory-circle::after{content:'✧ · ✦ · ✧';position:absolute;inset:0;color:#dfc89a;font-size:clamp(9px,1.3vw,16px);line-height:1.2;letter-spacing:4px;text-align:center}
@media(max-height:400px){body #hub-dialog[data-tab=rewards] .inventory-scene .inventory-chest{inset:6% 8% 20%;width:84%;height:74%;animation-name:inventory-phone-float}.inventory-circle{left:17%;right:17%;bottom:6%;height:14%}.inventory-circle::after{font-size:8px;letter-spacing:2px}}
@keyframes inventory-phone-float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-3px) rotate(3deg)}}
@media(prefers-reduced-motion:reduce){body #hub-dialog[data-tab=rewards] .inventory-scene .inventory-chest{animation:none}}

body #hub-content .vault-stage.chest-inventory{grid-template-columns:minmax(0,1fr)}body #hub-content .inventory-center{grid-template-columns:minmax(0,1fr)}body #hub-dialog[data-tab=rewards] .inventory-scene{min-width:0}body #hub-dialog[data-tab=rewards] .inventory-scene .inventory-chest{max-width:none!important}
/* Earned Scholar Marks illuminate the engraved academy shield and open book. */
body #hub-dialog .vault-gems .scholar-crest{fill:none;stroke:none;overflow:visible;filter:none}
body #hub-dialog .scholar-crest .crest-shield{fill:#2b2338;stroke:#877453;stroke-width:1.6}
body #hub-dialog .scholar-crest .crest-book{fill:none;stroke:#928274;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
body #hub-dialog .scholar-crest .crest-star{fill:#948166;stroke:none}
body #hub-dialog .vault-gems .lit .scholar-crest{filter:drop-shadow(0 0 4px #f8cf78aa)}
body #hub-dialog .vault-gems .lit .crest-shield{fill:#695033;stroke:#ffe2a0;stroke-width:1.8}
body #hub-dialog .vault-gems .lit .crest-book{stroke:#fff1cb}
body #hub-dialog .vault-gems .lit .crest-star{fill:#fff4b8}
body #hub-dialog[data-tab=rewards] .mt-vault .vault-shop.academy-shop-chest{flex:0 0 142px!important;min-height:142px!important;height:142px!important;display:grid!important;grid-template-columns:minmax(0,1.1fr) minmax(90px,.9fr);align-items:center!important;gap:6px!important;padding:8px 12px!important;overflow:hidden;border-radius:22px!important}
body #hub-dialog[data-tab=rewards] .academy-shop-chest>.academy-shop-chest-art{position:static;width:100%!important;height:122px!important;max-width:none!important;max-height:none!important;object-fit:contain;transform:rotate(-3deg);filter:drop-shadow(0 5px 5px #100b21aa);transition:transform .22s ease}
body #hub-dialog[data-tab=rewards] .academy-shop-chest:hover>.academy-shop-chest-art{transform:translateY(-3px) rotate(0)}
body #hub-dialog[data-tab=rewards] .academy-shop-chest>.academy-shop-chest-label{display:flex;flex-direction:column;gap:6px;max-width:none!important}
body #hub-dialog[data-tab=rewards] .academy-shop-chest-label strong{max-width:none;font:700 21px/1.1 Georgia,serif!important}
.academy-shop-chest-label small{font:12px/1.3 Georgia,serif;color:#dfc999}
@media(max-height:500px){body #hub-dialog[data-tab=rewards] .mt-vault .vault-shop.academy-shop-chest{flex-basis:92px!important;min-height:92px!important;height:92px!important;padding:4px 8px!important;gap:3px!important}body #hub-dialog[data-tab=rewards] .academy-shop-chest>.academy-shop-chest-art{height:80px!important}body #hub-dialog[data-tab=rewards] .academy-shop-chest-label strong{font-size:17px!important}.academy-shop-chest-label small{font-size:10px}}
@media(prefers-reduced-motion:reduce){body #hub-dialog[data-tab=rewards] .academy-shop-chest>.academy-shop-chest-art{transition:none}}
@media(max-height:400px){body #hub-dialog[data-tab=rewards] .mt-vault .vault-progress{flex:0 0 auto;padding:6px 8px!important}body #hub-dialog[data-tab=rewards] .vault-progress h3{font-size:17px!important;margin:2px 0!important}body #hub-dialog[data-tab=rewards] .vault-gems{margin:3px 0!important}body #hub-dialog[data-tab=rewards] .vault-earn{font-size:10px!important;white-space:nowrap;margin:3px 0 0!important}body #hub-dialog[data-tab=rewards] .mt-vault .vault-side{gap:7px;padding-bottom:0}body #hub-dialog[data-tab=rewards] .mt-vault .vault-shop.academy-shop-chest{flex-basis:82px!important;min-height:82px!important;height:82px!important}body #hub-dialog[data-tab=rewards] .academy-shop-chest>.academy-shop-chest-art{height:70px!important}}
/* Reward Road lives alongside the chest shop inside the vault. */
body #lobby.home-menu .home-rewards #journey-next{display:none!important}
body.hex-desktop-screens #lobby.home-menu .lobby-tools>.home-rewards{grid-template-rows:16px minmax(60px,1fr)!important}
#phone-rewards-menu .phone-reward-choices{grid-template-columns:1fr}
body #hub-dialog[data-tab=rewards] .mt-vault .academy-road-link{flex-basis:118px!important;min-height:118px!important;height:118px!important}
body #hub-dialog[data-tab=rewards] .academy-road-link>.academy-shop-chest-art{height:100px!important}
@media(max-height:500px){body #hub-dialog[data-tab=rewards] .mt-vault .academy-road-link{flex-basis:82px!important;min-height:82px!important;height:82px!important}body #hub-dialog[data-tab=rewards] .academy-road-link>.academy-shop-chest-art{height:70px!important}}

/* Cosmetic chest identities: direct selection and one concise reward promise. */
.inventory-rewards{margin:2px 0!important;text-align:center;color:#eddcaf;font:700 13px/1.3 system-ui}
body #hub-content .inventory-dots{height:auto;display:flex;flex-wrap:wrap;gap:4px}
body #hub-content .inventory-dots button{min-height:32px;padding:5px 9px;border:1px solid #a58ab3;border-radius:10px;background:#30253f;color:#eee0ff;font:700 12px system-ui}
body #hub-content .inventory-dots button.active{background:#e1c88e;color:#2d2140;box-shadow:0 0 0 2px #f4da9355}
.chest-odds{font:12px/1.4 system-ui;color:#eee0ff;max-width:520px}
.chest-odds summary{cursor:pointer;text-align:center;min-height:25px;color:#ffdfa0}
.chest-odds p{max-height:105px;overflow:auto;padding:8px;margin:0;background:#211a30;border-radius:8px}
@media(max-height:550px){body #hub-content .inventory-chest{max-height:105px}.inventory-rewards{font-size:11px}.chest-odds{font-size:11px}.chest-odds p{max-height:60px}body #hub-content .inventory-dots button{min-height:28px;padding:4px 7px}}

@media(max-height:550px){
 body #hub-dialog[data-tab=rewards] .inventory-center{display:grid;grid-template-columns:42% minmax(0,1fr);grid-template-rows:auto auto auto auto;align-content:center;gap:3px;overflow:visible;position:relative}
 body #hub-dialog[data-tab=rewards] .inventory-scene{grid-column:1;grid-row:1/5;min-height:95px;height:100%}
 .inventory-center>.inventory-kind,.inventory-center>.inventory-count,.inventory-center>.inventory-rewards,.inventory-center>.chest-odds{grid-column:2;text-align:center}
 .inventory-center>.chest-odds[open] p{position:absolute;left:0;right:0;top:0;z-index:5;max-height:80px;box-shadow:0 0 0 1px #cbb375}
 body #hub-content .inventory-dots{flex-wrap:nowrap;gap:3px}
 body #hub-content .inventory-dots button{padding:4px;font-size:10px}
}

@media(max-height:550px){
 .bazaar-offer .chest-odds{position:relative;margin:0!important}
 .bazaar-offer .chest-odds summary{min-height:22px!important;padding:2px 8px!important;margin:0!important;font-size:11px!important}
 .bazaar-offer .chest-odds[open] p{position:absolute;bottom:100%;left:0;right:0;z-index:5;max-height:100px;box-shadow:0 0 0 1px #cbb375}
 .bazaar-offer>p{margin:2px 0!important;font-size:12px!important}
}

/* A ready chest is the vault's primary action; unavailable chests stay quiet. */
body #hub-dialog[data-tab=rewards] .inventory-actions .inventory-open:not(:disabled){
 position:relative;isolation:isolate;overflow:hidden;
 background:linear-gradient(125deg,#fff4bd,#ffdb78 55%,#ebba55)!important;
 color:#33203f!important;border:2px solid #fff5c6!important;border-bottom:4px solid #b68337!important;
 font-weight:800;text-shadow:0 1px #fff5cc;box-shadow:0 0 0 2px #efc97655,0 0 19px #ffc65a99,0 5px 10px #170d28!important;
}
body #hub-dialog[data-tab=rewards] .inventory-open:not(:disabled)::before{
 content:'✦';display:inline-block;margin-right:7px;color:#79511f;text-shadow:0 0 8px #fff;
 animation:chest-ready-star 2.8s ease-in-out infinite;animation-play-state:paused;
}
body #hub-dialog[data-tab=rewards] .inventory-open:not(:disabled)::after{
 content:'';position:absolute;inset:-70% -35%;pointer-events:none;z-index:-1;
 background:linear-gradient(110deg,transparent 40%,#ffffffa6 49%,transparent 58%);
 transform:translateX(-80%);animation:chest-ready-shine 4.5s ease-in-out infinite;animation-play-state:paused;
}
body #hub-dialog[data-tab=rewards][open] .inventory-open:not(:disabled)::before,
body #hub-dialog[data-tab=rewards][open] .inventory-open:not(:disabled)::after{animation-play-state:running}
body #hub-dialog[data-tab=rewards] .inventory-open:focus-visible{outline:3px solid #fde8ac;outline-offset:4px}
@keyframes chest-ready-star{0%,100%{opacity:.7;transform:scale(.85) rotate(-10deg)}50%{opacity:1;transform:scale(1.17) rotate(12deg)}}
@keyframes chest-ready-shine{0%,52%{transform:translateX(-80%);opacity:0}58%{opacity:.8}88%,100%{transform:translateX(80%);opacity:0}}
@media(prefers-reduced-motion:reduce){body #hub-dialog[data-tab=rewards] .inventory-open::before,body #hub-dialog[data-tab=rewards] .inventory-open::after{animation:none!important}}
html[data-motion=gentle] #hub-dialog[data-tab=rewards] .inventory-open::before,html[data-motion=gentle] #hub-dialog[data-tab=rewards] .inventory-open::after{animation:none!important}
/* Keep the reward scroll track visible beside large Open All hauls. */
.inventory-summary .inventory-reward-grid{overflow-y:scroll!important;overflow-x:hidden!important;scrollbar-width:auto!important;scrollbar-color:#d7b578 #30213f!important;scrollbar-gutter:stable!important;padding-right:8px}
.inventory-summary .inventory-reward-grid::-webkit-scrollbar{width:12px!important;display:block!important}
.inventory-summary .inventory-reward-grid::-webkit-scrollbar-track{background:#30213f;border:1px solid #80618f;border-radius:8px}
.inventory-summary .inventory-reward-grid::-webkit-scrollbar-thumb{background:linear-gradient(#efd49b,#b38a55);border:2px solid #30213f;border-radius:8px;min-height:30px}
.inventory-summary .inventory-reward-grid::-webkit-scrollbar-thumb:hover{background:#ffe3a4}
/* A summary occupies one bounded menu row; its item grid owns all scrolling. */
body #hub-content .vault-stage.chest-inventory:has(>.inventory-summary){grid-template-rows:minmax(0,1fr)!important;min-height:0!important;min-width:0!important;overflow:hidden!important;box-sizing:border-box!important}
body #hub-content .vault-stage.chest-inventory:has(>.inventory-summary)>.inventory-title,body #hub-content .vault-stage.chest-inventory:has(>.inventory-summary)>.inventory-status{display:none!important}
body #hub-content .vault-stage.chest-inventory>.inventory-summary{grid-row:1!important;grid-column:1!important;height:100%!important;max-height:100%!important;min-width:0!important;max-width:100%!important;margin:0!important}
.inventory-summary .inventory-reward-grid{box-sizing:border-box!important;min-width:0!important;max-width:100%!important;flex:1 1 0!important;scrollbar-width:thin!important;padding-right:5px!important}
.inventory-summary .inventory-reward-grid::-webkit-scrollbar{width:8px!important}
.inventory-summary .inventory-reward-grid::-webkit-scrollbar-thumb{min-height:20px}

/* Mid-height screens: the right-column shortcut cards share the column height instead of pushing Season Pass below the fold. */
@media(min-height:501px){
 body #hub-dialog[data-tab=rewards] .mt-vault .vault-side>.vault-shop.academy-shop-chest{flex:1 1 142px!important;height:auto!important;min-height:86px!important;max-height:142px}
 body #hub-dialog[data-tab=rewards] .mt-vault .vault-side>.academy-road-link{flex:1 1 118px!important;max-height:118px}
 body #hub-dialog[data-tab=rewards] .mt-vault .vault-side>.academy-shop-chest>.academy-shop-chest-art{max-height:calc(100% - 8px)!important;min-height:0!important}
}
