/* A finite card reveal and a strong, written rarity hierarchy. */
.app:has(.upgrade-redesign:not([hidden])){height:100dvh;min-height:0;overflow:hidden}
.upgrade-redesign.shop-view{width:100%;max-width:980px;height:100%;max-height:100%;min-height:0;overflow:hidden}
.upgrade-redesign .shop-view-head{padding:4px 4px 10px}
.upgrade-redesign .shop-title-row{align-items:center}
.upgrade-redesign .shop-title-row h2{font:900 1.6rem/1.1 'Nunito',sans-serif;letter-spacing:-.025em}
.upgrade-redesign .shop-view-head>p{font-size:.8rem;margin-top:5px}
.upgrade-redesign .shop{position:relative;display:flex;flex-direction:column;min-height:0;padding:16px;border-radius:24px;background:var(--season-surface,#fffdf8);border:1px solid var(--season-border,#d5e1d9)}
.upgrade-redesign .shop-draftbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;min-height:34px}
.upgrade-redesign .shop-balance{padding:8px 12px;background:#f9edd3;color:#735328;font-size:.85rem;border-radius:99px;white-space:nowrap;transform-origin:center}
.shelf-progress{display:flex;gap:5px;padding:5px}
.shelf-progress i{width:13px;height:13px;border:2px solid #91b4a7;border-radius:4px;transform:rotate(45deg);background:#eff5f0}
.shelf-progress i.filled{border-color:#39796b;background:#39796b;box-shadow:inset 0 0 0 2px #d8eee4}
.upgrade-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;padding:0 2px 6px}
.upgrade-toolbar p{margin:0;color:var(--season-muted,#647e75);font-size:.7rem;line-height:1.4}

#refreshUpgrades{flex:none;display:grid;grid-template-columns:22px auto;gap:1px 7px;align-items:center;min-height:46px;padding:7px 12px;border:1px solid var(--season-border,#cadcd3);border-radius:13px;background:var(--season-soft,#eef5ee);color:var(--season-ink,#315c50);font:800 .74rem/1.2 'DM Sans',sans-serif}
#refreshUpgrades svg{grid-row:1/3;width:21px;height:21px}
#refreshUpgrades strong{grid-column:2;font-size:.68rem;font-weight:600;text-align:left}
#refreshUpgrades:disabled{opacity:.5;cursor:default}
.upgrade-scroll{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;min-height:0;overflow:hidden;padding:7px 4px 10px}
.upgrade-shelf-frame{position:relative;isolation:isolate;display:flex;flex-direction:column;flex:0 0 auto;width:100%;height:var(--offer-frame-height,min(100%,394px));max-height:100%;min-height:0;padding:14px;border:1px solid var(--season-border,#dce7df);border-radius:24px;background:linear-gradient(140deg,#fffdf666,var(--season-soft,#eef4ec));box-shadow:inset 0 1px 0 #fff9,0 6px 20px #173e4808}
.upgrade-shelf-frame>.season-shop-lights{inset:5px;border-radius:20px;z-index:3}
.upgrade-redesign #upgrades{display:grid;grid-template-columns:repeat(var(--offer-columns,3),minmax(0,1fr));gap:12px;grid-template-rows:repeat(var(--offer-rows,1),minmax(0,1fr));flex:1;min-height:0;max-height:none;overflow:visible;align-items:stretch;padding:0;scrollbar-gutter:auto}
.upgrade-redesign .upgrade{--rarity-edge:#7ea58d;--rarity-ink:#28553e;--rarity-wash:#e3efdf;--rarity-crown:#d1e3c9;position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:stretch;gap:10px;min-width:0;min-height:0;padding:15px 13px 13px;border:3px solid var(--rarity-edge);border-radius:19px;background:linear-gradient(145deg,#fffefa 30%,var(--rarity-wash));box-shadow:0 3px 0 #42614a1a,0 6px 12px #173e480b;overflow:visible;cursor:default;transform-origin:50% 70%}
.upgrade-redesign .upgrade[data-rarity="uncommon"]{--rarity-edge:#6e92b8;--rarity-ink:#264c75;--rarity-wash:#d9eafa;--rarity-crown:#b9d3ef;border-style:double;border-width:4px;background:linear-gradient(125deg,#edf6ff,#fff 38%,#d5e7f8 80%,#f5fbff);box-shadow:0 3px 0 #5d80a44d,0 7px 16px #405d8020}
.upgrade-redesign .upgrade[data-rarity="rare"]{--rarity-edge:#c49327;--rarity-ink:#6d430c;--rarity-wash:#ffe4a0;--rarity-crown:#f0be50;border-width:4px;background:radial-gradient(ellipse at 15% 5%,#fff6b7,transparent 65%),linear-gradient(135deg,#fff0b3,#fff9df 40%,#f8d477 85%,#fff1b8);box-shadow:0 3px 0 #9d6618,0 0 0 2px #fff2bc,0 8px 22px #bd8b333b}
.upgrade-redesign .upgrade[data-rarity="rare"]::after{content:"";position:absolute;inset:4px;border:1px solid #b07c2b8c;border-radius:11px;pointer-events:none;z-index:-1}
.upgrade-redesign .upgrade[data-confirming="true"]{outline:3px solid #285d55;outline-offset:3px}
.upgrade-redesign .upgrade[data-taken="true"]{box-shadow:0 2px 0 #607d6c22;background:#f1f6ee;border-color:#afc4b3}
.upgrade-redesign .upgrade .item-icon{position:relative;isolation:isolate;flex:none;display:grid;place-items:center;align-self:center;width:104px;height:104px;margin:3px 0 1px;background:radial-gradient(circle,#fffdf5 12%,var(--rarity-crown));border:2px solid var(--rarity-edge);border-radius:50%;color:var(--rarity-ink);font-size:2.8rem;box-shadow:0 3px 0 #18432912}
.upgrade-redesign .upgrade .item-icon svg{position:relative;display:block;width:78px;height:78px;max-width:100%;max-height:100%}
.upgrade-redesign .upgrade[data-rarity="rare"] .item-icon::before{content:"";position:absolute;inset:-13px;z-index:-1;border-radius:50%;background:repeating-conic-gradient(from 15deg,#edb33d45 0deg 12deg,transparent 12deg 30deg);mask-image:radial-gradient(circle,#000 25%,transparent 72%)}
.upgrade-redesign .upgrade[data-rarity="rare"] .item-icon::after{content:"✦";position:absolute;right:-8px;top:-8px;font-size:25px;color:#ac711a;text-shadow:0 1px #fff9cf}
.upgrade-redesign .upgrade .item-copy{flex:1;display:flex;flex-direction:column;gap:7px;min-width:0;width:100%}
.offer-meta{display:flex;align-items:center;flex-wrap:wrap;gap:5px}
.offer-rarity{display:flex;align-items:center;gap:5px;padding:5px 7px;border:1px solid var(--rarity-edge);border-radius:6px;font:900 .7rem/1.1 'Nunito',sans-serif;color:var(--rarity-ink);background:var(--rarity-crown);text-transform:uppercase;letter-spacing:.04em}
.rarity-stars{font-size:.68rem;letter-spacing:1px;white-space:nowrap}
[data-rarity="rare"] .offer-rarity{padding:6px 8px;background:linear-gradient(110deg,#f4c652,#fff0a8 50%,#e7ab32);border-color:#ad7317;box-shadow:0 2px 0 #ae792c35}
.offer-area{font-size:.61rem;font-weight:800;color:#52655c}
.upgrade-redesign .upgrade .item-title{font:900 1.2rem/1.16 'Nunito',sans-serif;color:#253e40;overflow-wrap:break-word}
.upgrade-redesign .upgrade .item-title>span{display:block;line-height:1.2}
.upgrade-redesign .upgrade .item-title>[id^="up-"]{display:none}
.upgrade-redesign .upgrade .item-desc{font-size:.83rem;line-height:1.4;color:#415e51;white-space:normal}
.upgrade-redesign .toy-age-note{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.upgrade-redesign .buy{flex:none;min-width:0;width:100%;min-height:44px;padding:11px 7px;margin:auto 0 0;border:0;border-radius:11px;background:#245d50;color:#fff;font-weight:900;font-size:.88rem;line-height:1.2;box-shadow:0 3px 0 #143f38;white-space:normal;touch-action:manipulation}
.upgrade-redesign [data-rarity="uncommon"] .buy{background:#305e8a;box-shadow:0 3px 0 #183e63}
.upgrade-redesign [data-rarity="rare"] .buy{background:#81511a;box-shadow:0 3px 0 #5b340d}
.upgrade-redesign [data-confirming="true"] .buy{background:#183f48;box-shadow:0 3px 0 #092a32}
.upgrade-redesign .buy:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 #143f38}
.upgrade-redesign .buy:disabled{opacity:.5;cursor:default}
.upgrade-redesign [data-taken="true"] .buy{opacity:1;background:#d8e8d8;color:#315c42;box-shadow:none}
.shelf-feedback{flex:none;height:20px;min-height:20px;font-size:.65rem;line-height:1.25;color:var(--season-muted,#5d776b);margin:5px 2px 0}
.upgrade-collection{display:flex;flex:1;flex-direction:column;justify-content:center;min-height:0;overflow:hidden;margin:0;padding:4px 3px;border:0;gap:8px}
#ownedToys{display:grid;flex:none;align-self:center;width:100%;max-width:740px;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:minmax(64px,auto);align-content:start;gap:8px;padding:3px}
.upgrade-redesign #ownedToys .upgrade{display:grid;grid-template-columns:40px minmax(0,1fr) 104px;align-content:center;align-items:center;min-height:64px;padding:8px;gap:6px 8px;border:1px solid var(--season-border,#cedcd2);background:var(--season-soft,#f7faf4);box-shadow:none}
.upgrade-redesign #ownedToys .item-icon{grid-column:1;grid-row:1;width:40px;height:40px;margin:0;border-width:1px}
.upgrade-redesign #ownedToys .item-icon svg{width:34px;height:34px}
.upgrade-redesign #ownedToys .item-copy{display:flex;grid-column:2;grid-row:1;gap:5px}
.upgrade-redesign #ownedToys .item-title{font-size:.9rem}
.upgrade-redesign #ownedToys .offer-meta,.upgrade-redesign #ownedToys .item-desc,.upgrade-redesign #ownedToys .item-icon::before,.upgrade-redesign #ownedToys .item-icon::after{display:none}
.upgrade-redesign #ownedToys .buy{grid-column:3;grid-row:1;width:100%;margin:0;padding:8px 4px;background:#edf4ee;color:#365f50;box-shadow:none;border:1px solid #bdcfc0;font-size:.72rem}
.upgrade-redesign #ownedToys [data-confirming="true"] .buy{background:#183f48;color:#fff}
.owned-toys-empty{margin:auto;text-align:center;max-width:280px;color:var(--season-muted,#5d776b);font-size:.85rem;line-height:1.45}
.owned-toys-pages{display:flex;flex:none;align-self:center;width:100%;max-width:740px;align-items:center;justify-content:space-between;gap:8px;min-height:44px;font-size:.8rem;color:var(--season-muted,#5d776b)}
.owned-toys-pages button{min-height:44px;padding:7px 12px;border:1px solid var(--season-border,#cadcd3);border-radius:12px;background:var(--season-soft,#eef5ee);color:var(--season-ink,#315c50);font-weight:800}
.owned-toys-pages button:disabled{opacity:.45;cursor:default}
.upgrade-empty{text-align:center;padding:35px 15px;color:var(--season-ink,#3d6656)}
.upgrade-empty>span{font-size:2rem;color:#b28a3d}.upgrade-empty h3{font:900 1.2rem 'Nunito',sans-serif}.upgrade-empty p{font-size:.8rem;line-height:1.5;max-width:360px;margin:auto}
.upgrade-redesign [hidden]{display:none!important}
.upgrade-redesign .shop-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:9px 0 env(safe-area-inset-bottom)}
.upgrade-redesign .shop-actions button{min-width:0;min-height:48px;border-radius:15px;font-size:.94rem;margin:0}
#upgradeCollectionToggle{display:flex;align-items:center;justify-content:center;gap:7px;padding:7px 9px;border:1px solid var(--season-border,#c4d8cb);background:var(--season-soft,#edf5ef);color:var(--season-ink,#315f53);font-size:.8rem;font-weight:900;white-space:nowrap}
#upgradeCollectionToggle:disabled{opacity:.5;cursor:default}
#upgradeCollectionIcon{display:grid;place-items:center;width:24px;height:24px;flex:none}
#upgradeCollectionIcon svg{display:block;width:100%;height:100%}
.upgrade-collection-count{display:grid;place-items:center;flex:none;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:var(--season-ink,#315f53);color:var(--season-surface,#fffdf8);font-size:.68rem;line-height:1;font-variant-numeric:tabular-nums}
.upgrade-redesign .upgrade:focus-within{outline:3px solid var(--rarity-ink);outline-offset:3px}
.upgrade-burst{position:absolute;inset:0;pointer-events:none;z-index:4}
.upgrade-burst i{position:absolute;left:50%;top:50%;color:var(--rarity-ink);font-size:20px;font-style:normal;opacity:0}
@media(prefers-reduced-motion:no-preference){
 .upgrade-redesign[data-motion="reroll"] #refreshUpgrades svg{animation:upgrade-spin .65s cubic-bezier(.2,.8,.2,1)}
 .upgrade-redesign:is([data-motion="reroll"],[data-motion="refill"],[data-motion="reveal"]) #upgrades>.upgrade{animation:upgrade-reveal .65s cubic-bezier(.18,.8,.28,1.2) both;animation-delay:calc(var(--offer-index)*.13s)}
 .upgrade-redesign:is([data-motion="reroll"],[data-motion="refill"],[data-motion="reveal"]) #upgrades>.upgrade::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:14px;background:linear-gradient(115deg,transparent 25%,#fff9d8a6 48%,transparent 65%);animation:upgrade-foil .6s ease-out both;animation-delay:calc(.15s + var(--offer-index)*.13s)}
 .upgrade-redesign:is([data-motion="reroll"],[data-motion="refill"],[data-motion="reveal"]) .upgrade[data-rarity="rare"] .item-icon{animation:upgrade-prize .7s ease-out both;animation-delay:calc(.1s + var(--offer-index)*.13s)}
 .purchase-pop{animation:upgrade-purchase .6s cubic-bezier(.2,.7,.3,1)}
 .balance-hit{animation:upgrade-balance .5s ease-out}
 .upgrade-burst i{animation:upgrade-spark .6s ease-out forwards}
}
@keyframes upgrade-spin{to{transform:rotate(540deg)}}
@keyframes upgrade-reveal{0%{opacity:0;transform:perspective(700px) rotateY(85deg) translateY(22px) scale(.84)}45%{opacity:1;transform:perspective(700px) rotateY(-8deg) translateY(-5px) scale(1.025)}100%{opacity:1;transform:perspective(700px) rotateY(0) translateY(0) scale(1)}}
@keyframes upgrade-foil{0%,15%{opacity:0;transform:translateX(-20%)}40%{opacity:.9}100%{opacity:0;transform:translateX(20%)}}
@keyframes upgrade-prize{0%,20%{transform:scale(.72) rotate(-12deg)}55%{transform:scale(1.17) rotate(6deg)}100%{transform:scale(1) rotate(0)}}
@keyframes upgrade-purchase{35%{transform:translateY(-5px) scale(1.035)}65%{transform:translateY(2px) scale(.985)}}
@keyframes upgrade-balance{40%{transform:scale(1.12);background:#f7d17c}}
@keyframes upgrade-spark{0%{opacity:0;transform:rotate(var(--spark-angle)) translateY(0) rotate(calc(-1*var(--spark-angle))) scale(.4)}20%{opacity:1}100%{opacity:0;transform:rotate(var(--spark-angle)) translateY(-80px) rotate(calc(-1*var(--spark-angle))) scale(1.1)}}
/* Proportions follow the actual offer field, never the full screen height.
   Large illustrations, readable copy and a broad purchase button use each card. */
.upgrade-redesign #upgrades>.upgrade{background-clip:padding-box;box-shadow:inset 0 1px 0 #ffffffd9,0 3px 0 #42614a29,0 8px 15px #173e4810}
.upgrade-redesign #upgrades>.upgrade::after{content:"";position:absolute;inset:5px;border:1px solid color-mix(in srgb,var(--rarity-edge) 35%,transparent);border-radius:11px;pointer-events:none;z-index:-1}
.upgrade-redesign #upgrades>.upgrade[data-rarity="uncommon"]{border-color:#7198be;box-shadow:inset 0 1px 0 #fff,0 3px 0 #597b9d,0 8px 18px #30598226}
.upgrade-redesign #upgrades>.upgrade[data-rarity="rare"]{border-color:#c18a22;background:radial-gradient(ellipse at 12% 0%,#fff9d1 0%,transparent 55%),linear-gradient(125deg,#f7cc66 0%,#fff0b4 14%,#fffae5 40%,#efd18a 78%,#ffe7a4 100%);box-shadow:inset 0 1px 0 #fffce6,0 3px 0 #a16a19,0 0 0 2px #fff0ac,0 9px 20px #a36e272e}
.upgrade-redesign #upgrades>.upgrade[data-rarity="rare"]::after{border-color:#b7812d99;box-shadow:inset 0 0 0 1px #fff8d180}
.upgrade-redesign #upgrades .item-icon{background:radial-gradient(ellipse at 35% 25%,#fffef7 0% 20%,var(--rarity-crown) 85%);box-shadow:inset 0 2px 2px #fff9,0 3px 0 #1843291c,0 7px 15px #244c4115}
.upgrade-redesign #upgrades .item-title>span:first-child{font:inherit;color:inherit;min-height:0}
.upgrade-redesign #upgrades .offer-meta{gap:5px 7px}
.upgrade-redesign #upgrades .offer-rarity{font-size:.72rem;padding:5px 7px}
.upgrade-redesign #upgrades .rarity-stars{font-size:.76rem;letter-spacing:1px}
.upgrade-redesign #upgrades .offer-area{font-size:.66rem;line-height:1.3;color:var(--rarity-ink)}
.upgrade-redesign #upgrades .buy{min-height:46px;font-size:.93rem;background-image:linear-gradient(#ffffff10,#ffffff00);box-shadow:inset 0 1px 0 #ffffff33,0 3px 0 #143f38}
.upgrade-redesign #upgrades [data-rarity="uncommon"] .buy{box-shadow:inset 0 1px 0 #ffffff40,0 3px 0 #183e63}
.upgrade-redesign #upgrades [data-rarity="rare"] .buy{background-color:#80501a;box-shadow:inset 0 1px 0 #ffffff4d,0 3px 0 #5b340d}
.upgrade-redesign #upgrades [data-confirming="true"] .buy{background-color:#183f48;box-shadow:0 3px 0 #092a32}
.upgrade-redesign #upgrades [data-taken="true"] .buy{background:#d8e8d8;box-shadow:none}

@media(max-width:680px),(max-height:650px){
 .upgrade-redesign .shop-view-head{padding:2px 3px 6px}
 .upgrade-redesign .shop-view-head>p{font-size:.73rem;line-height:1.2;margin:3px 0 0}
 .upgrade-redesign .shop-title-row h2{font-size:1.35rem}
 .upgrade-redesign .shop{padding:8px 6px;border-radius:21px}
 .upgrade-redesign .shop-draftbar{margin-bottom:3px;min-height:44px;gap:8px;padding-inline:3px}
 .upgrade-redesign .shop-balance{font-size:.76rem;padding:7px 9px}
 .upgrade-toolbar{gap:6px;min-height:20px;padding:0 3px 2px}
 .upgrade-toolbar p{font-size:.64rem}
 .shelf-progress{padding:2px 4px;gap:4px}.shelf-progress i{width:9px;height:9px}
 #refreshUpgrades{padding:5px 8px;font-size:.67rem;grid-template-columns:16px auto;gap:1px 4px;min-height:42px}
 #refreshUpgrades svg{width:16px;height:16px}#refreshUpgrades strong{font-size:.62rem}
 .upgrade-redesign .shop-actions{padding-top:6px}
 .upgrade-redesign .shop-actions button{min-height:44px;font-size:.84rem;border-radius:13px}
 #upgradeCollectionToggle{font-size:.74rem;gap:5px;padding:6px}
 #upgradeCollectionIcon{width:20px;height:20px}.upgrade-collection-count{min-width:18px;height:18px;font-size:.61rem}
}
@media(max-width:680px){
 .upgrade-shelf-frame{height:var(--offer-frame-height,min(100%,554px))}
 .upgrade-redesign #upgrades{--offer-columns:1;--offer-rows:3}
 #ownedToys{grid-template-columns:minmax(0,1fr)}
}
/* Roomy mobile cards recover the earlier full-width purchase row. */
@media(max-width:680px){.upgrade-redesign #upgrades>.upgrade{display:grid;grid-template-columns:62px minmax(0,1fr);grid-template-rows:minmax(0,1fr) 44px;align-items:center;gap:7px 11px;padding:9px 10px;border-radius:17px}.upgrade-redesign #upgrades .item-icon{width:62px;height:62px;margin:0}.upgrade-redesign #upgrades .item-icon svg{width:49px;height:49px}.upgrade-redesign #upgrades .item-copy{gap:4px}.upgrade-redesign #upgrades .item-title{font-size:1.07rem}.upgrade-redesign #upgrades .item-desc{font-size:.74rem;line-height:1.3}.upgrade-redesign #upgrades .offer-rarity{font-size:.62rem;padding:3px 5px}.upgrade-redesign #upgrades .rarity-stars{font-size:.62rem;letter-spacing:0}.upgrade-redesign #upgrades .offer-area{font-size:.6rem}.upgrade-redesign #upgrades .buy{grid-column:1/-1;margin:0;padding:8px;font-size:.86rem;min-height:44px}}
#upgradeShelfFrame[data-card-layout="portrait"] #upgrades{--offer-columns:3;--offer-rows:1}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="portrait"] #upgrades>.upgrade{display:flex;flex-direction:column;gap:10px;padding:15px 13px 13px;border-radius:19px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="portrait"] .item-icon{width:104px;height:104px;margin:3px 0 1px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="portrait"] .item-icon svg{width:78px;height:78px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="portrait"] .item-copy{display:flex;gap:7px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="portrait"] .item-title{font-size:1.2rem}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="portrait"] .item-desc{font-size:.83rem;line-height:1.4}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="portrait"] .buy{margin:auto 0 0;font-size:.93rem;min-height:46px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="roomy"] #upgrades>.upgrade{display:grid;grid-template-columns:62px minmax(0,1fr);grid-template-rows:minmax(0,1fr) 44px;align-items:center;gap:7px 11px;padding:9px 10px;border-radius:17px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="roomy"] .item-icon{width:62px;height:62px;margin:0}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="roomy"] .item-icon svg{width:49px;height:49px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="roomy"] .item-copy{display:flex;gap:4px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="roomy"] .item-title{font-size:1.07rem}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="roomy"] .item-desc{font-size:.74rem;line-height:1.3}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="roomy"] .offer-rarity{font-size:.62rem;padding:3px 5px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="roomy"] .rarity-stars{font-size:.62rem;letter-spacing:0}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="roomy"] .offer-area{font-size:.6rem}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="roomy"] .buy{grid-column:1/-1;grid-row:2;margin:0;padding:8px;font-size:.86rem;min-height:44px}
/* The short layout still uses a real circular illustration and a 44px target. */
.upgrade-redesign #upgradeShelfFrame[data-card-layout="compact"] #upgrades>.upgrade{display:grid;grid-template-columns:48px minmax(0,1fr) 94px;grid-template-rows:auto auto minmax(0,1fr);align-items:center;gap:3px 9px;padding:7px 9px;border-radius:15px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="compact"] .item-icon{grid-column:1;grid-row:1/4;width:48px;height:48px;margin:0;border-width:1px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="compact"] .item-icon svg{width:38px;height:38px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="compact"] .item-copy{display:contents}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="compact"] .offer-meta{grid-column:2/4;grid-row:1;gap:4px 7px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="compact"] .offer-rarity{font-size:.61rem;padding:3px 5px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="compact"] .rarity-stars{font-size:.61rem;letter-spacing:0}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="compact"] .offer-area{font-size:.6rem}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="compact"] .item-title{grid-column:2/4;grid-row:2;align-self:center;font-size:.97rem;line-height:1.15}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="compact"] .item-desc{grid-column:2;grid-row:3;align-self:center;font-size:.68rem;line-height:1.25}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="compact"] .buy{grid-column:3;grid-row:3;margin:0;padding:5px 3px;font-size:.76rem;min-height:44px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="compact"] [data-rarity="rare"] .item-icon::after{font-size:18px;right:-5px;top:-5px}

/* Price is a deliberate, legible part of the button rather than tiny footer copy. */
.upgrade-redesign #upgrades .buy{display:flex;align-items:center;justify-content:center;gap:10px}
.upgrade-redesign #upgrades .offer-separator{display:none}
.upgrade-redesign #upgrades .offer-price{padding:4px 8px;border:1px solid #ffffff26;border-radius:7px;background:#ffffff14;font:900 1.04rem/1.1 'Nunito',sans-serif;white-space:nowrap;font-variant-numeric:tabular-nums}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="compact"] .buy{flex-direction:column;gap:2px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="compact"] .offer-price{font-size:.94rem;padding:2px 4px;border:0;background:none}
/* On the shortest phones, only the upper copy shares space with the portrait.
   The description uses the full lower left side, so it cannot squeeze under it. */
.upgrade-redesign #upgradeShelfFrame[data-card-layout="small"] #upgrades>.upgrade{display:grid;grid-template-columns:minmax(0,1fr) 88px;grid-template-rows:auto auto minmax(0,1fr);align-items:center;gap:2px 8px;padding:5px 8px;border-width:3px;border-radius:14px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="small"] .item-icon{position:absolute;left:8px;top:6px;width:36px;height:36px;margin:0;border-width:1px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="small"] .item-icon svg{width:29px;height:29px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="small"] .item-copy{display:contents}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="small"] .offer-meta{grid-column:1/-1;grid-row:1;gap:3px 5px;padding-left:44px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="small"] .offer-rarity{font-size:.59rem;line-height:1;padding:2px 4px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="small"] .rarity-stars{font-size:.59rem;letter-spacing:0}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="small"] .offer-area{font-size:.57rem;line-height:1.1}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="small"] .item-title{grid-column:1/-1;grid-row:2;font-size:.94rem;line-height:1.1;padding-left:44px}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="small"] .item-desc{grid-column:1;grid-row:3;font-size:.68rem;line-height:1.25}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="small"] .buy{grid-column:2;grid-row:3;flex-direction:column;gap:2px;min-height:44px;margin:0;padding:3px;font-size:.7rem}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="small"] .offer-price{font-size:.94rem;padding:2px 4px;border:0;background:none}
.upgrade-redesign #upgradeShelfFrame[data-card-layout="small"] [data-rarity="rare"] .item-icon::after{font-size:15px;right:-4px;top:-4px}
@media(max-height:620px){.upgrade-redesign .shop-view-head>p{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.upgrade-redesign .shop-title-row h2{font-size:1.25rem}}
@media(max-height:420px){.app:has(.upgrade-redesign:not([hidden])){height:100dvh;min-height:0;overflow:hidden}.upgrade-redesign.shop-view{height:100%;max-height:100%;min-height:0;overflow:hidden}.upgrade-redesign .shop{height:auto;flex:1;min-height:0;overflow:hidden}}
@media(prefers-reduced-motion:reduce){.upgrade-redesign *,.upgrade-redesign *::before,.upgrade-redesign *::after{transition:none!important;animation:none!important}}
@media(forced-colors:active){.upgrade-redesign .upgrade{border-color:CanvasText;background:Canvas;box-shadow:none}.offer-rarity{border:1px solid CanvasText}.upgrade-redesign .buy{border:1px solid ButtonText}.upgrade-burst{display:none}}
