button { touch-action:manipulation; }
button:not(:disabled) { pointer-events:auto; }
.title-fauna,.titlebox::before,.titlebox::after,.card::before,.card::after,.card .art::after { pointer-events:none!important; }
.shop-panel { width:min(94vw,760px); border-color:#b99a50; box-shadow:0 0 55px #d5aa3e22,0 30px 100px #000; }
.shop-head { display:flex; align-items:center; justify-content:space-between; gap:14px; border-bottom:1px solid #90763f55; padding-bottom:10px; }
.shop-head small { color:#699c9c; letter-spacing:.2em; }
.shop-head h2 { text-align:left; margin:0; }
.shop-deck-view{min-height:32px;padding:5px 9px;border:1px solid #548185;border-radius:999px;background:#0a2229;color:#d7f5f2;font-size:11px;font-weight:900;white-space:nowrap}.shop-deck-view span{display:inline-grid;min-width:20px;height:20px;place-items:center;margin-left:3px;border-radius:999px;background:#45d5cc;color:#041515}.shop-deck-view:active{border-color:#ffe17b;transform:translateY(1px)}#collectionModal.shop-deck-preview{z-index:48}
.shop-wallet { border:1px solid #61c9c1; border-radius:999px; padding:8px 14px; background:#092026; color:#d9fffa; font-weight:900; }
.shop-resources { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:6px; }
.shop-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:16px 0; }
.shop-item,.shop-card { border:1px solid #46656c; border-radius:8px; background:linear-gradient(145deg,#102831,#071218); padding:12px; color:#e7f3f3; text-align:left; cursor:pointer; box-shadow:inset 0 1px #ffffff12,0 6px 14px #0007; }
.shop-item { display:grid; grid-template-columns:42px 1fr auto; grid-template-areas:'icon name price' 'icon desc price'; gap:3px 8px; align-items:center; }
.shop-item i { grid-area:icon; font-style:normal; font-size:28px; text-align:center; }
.shop-item b { grid-area:name; color:#f0d487; }
.shop-item span { grid-area:desc; color:#9fb7ba; font-size:12px; }
.shop-item strong { grid-area:price; color:#83ebe2; white-space:nowrap; }
.shop-item:active,.shop-card:active { transform:scale(.98); filter:brightness(1.3); }
.shop-item:disabled{opacity:.48;filter:grayscale(.5);cursor:not-allowed}.shop-price-note{margin:4px 0 10px!important;padding:7px 10px;border:1px solid #5d777c;border-radius:7px;background:#08171d;color:#aeece6!important;font-size:12px}.rare-shop-card{border-color:#d8b650;background:linear-gradient(145deg,#443212,#151006)}
.rare-stock { border-color:#d8b650; background:linear-gradient(145deg,#443212,#151006); }
.upgrade-stock { border-color:#8668c9; background:linear-gradient(145deg,#2b1b4c,#0c0817); }
.shop-stock-section{grid-column:1/-1;padding:11px;border:1px solid #38545d;border-radius:10px;background:#050f16}.shop-stock-section h3{margin:0;color:#e9cf89}.shop-stock-section>p{margin:3px 0 10px!important;font-size:11px}.shop-market{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.market-item{display:grid;grid-template-columns:1fr auto;gap:4px 8px;padding:11px;border:1px solid #45636b;border-radius:8px;background:linear-gradient(145deg,#102831,#071218);color:#e7f3f3;text-align:left;cursor:pointer}.market-item b{color:#e9d28f}.market-item span{grid-column:1/-1;color:#afc4c6;font-size:11px;line-height:1.45}.market-item small{grid-column:1/-1;color:#7ee7dd;font-weight:900}.market-item i{grid-row:1/3;grid-column:2;font-style:normal;font-size:30px}.market-item.rare-stock{border-color:#d5b458;background:linear-gradient(145deg,#443212,#151006)}.market-item.abyss-stock{border-color:#9a72d8;background:linear-gradient(145deg,#2d1d52,#0b0817)}.market-item.uncommon-stock{border-color:#5e9e9a}.market-item.relic-stock{border-color:#b99a50;background:linear-gradient(145deg,#2e2918,#0d1518)}.market-item:disabled{opacity:.42;filter:grayscale(.6);cursor:not-allowed}.sold-out-note{grid-column:1/-1;color:#7f9b9e}.relic-market{grid-template-columns:repeat(3,minmax(0,1fr))}
.shop-adjust{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;padding:8px;border:1px solid #76505b;border-radius:8px;background:#1b0c13}.shop-adjust span{padding:4px 8px;border-radius:999px;background:#481d29;color:#ffc0ca;font-size:11px;font-weight:900}.shop-adjust .discount{background:#123f38;color:#93f3df}
.shop-choose { grid-column:1/-1; min-height:100%; display:flex; flex-direction:column; }
.shop-card-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; touch-action:pan-y; margin:8px 0; padding:2px 2px 10px; }
.shop-back{flex:0 0 auto;position:sticky;bottom:0;z-index:3;width:100%;min-height:42px;margin-top:auto;background:#0d222a}
.shop-grid:has(.shop-choose){overflow:hidden}
.shop-card { display:grid; grid-template-columns:58px minmax(0,1fr); gap:4px 9px; align-items:start; }
.shop-card>.shop-card-art{grid-column:1;grid-row:1/5;width:56px;height:56px;margin:0}
.shop-card b { grid-column:2; color:#f0d487; }
.shop-card span { grid-column:2; color:#9fb7ba; font-size:11px; }
.shop-card small { grid-column:2; color:#718e93; font-size:10px; }
.shop-card .effect-before { color:#a9babc; line-height:1.45; }
.shop-card .effect-after { color:#7ff5e7; line-height:1.45; padding-top:4px; border-top:1px solid #4e777755; }
.shop-art-wrap{position:relative;grid-column:1;grid-row:1/5;width:64px;height:64px;flex:0 0 64px}.shop-art-wrap>.shop-card-art{width:100%!important;height:100%!important;margin:0!important}.shop-cost-badge{position:absolute;z-index:5;top:-7px;left:-7px;width:30px;height:30px;display:grid;place-items:center;border:2px solid #164b4c;border-radius:50%;background:radial-gradient(circle at 38% 30%,#cafff8,#42d8ce 58%,#0a5758 62%);color:#031313;font:900 15px Cinzel,serif;font-style:normal;text-shadow:0 1px #fff8;box-shadow:0 0 12px #55e9dd,0 4px 7px #000b}.rare-stock .shop-cost-badge{border-color:#70510a;background:radial-gradient(circle at 38% 30%,#fffbd1,#e6b938 58%,#654100 62%);box-shadow:0 0 12px #ffe56e,0 4px 7px #000b}.abyss-stock .shop-cost-badge{border-color:#35206c;background:radial-gradient(circle at 38% 30%,#d7fffc,#7b6ee9 48%,#26134f 66%);color:#fff;box-shadow:0 0 13px #79fff4,0 4px 7px #000b}.shop-card>.shop-art-wrap{width:56px;height:56px;grid-column:1;grid-row:1/5}.shop-market .market-item>.shop-art-wrap{grid-column:1;grid-row:1}
.beast-card .beast-location { margin-bottom:5px; color:#72ded7; font-weight:900; }
#shopMessage { min-height:22px; color:#7ff5e7; font-weight:900; opacity:0; transition:.2s; }
#shopMessage.show { opacity:1; }
.node:has(+ *) { touch-action:manipulation; }
@media(max-width:600px){.shop-panel{padding:14px 10px}.shop-grid{grid-template-columns:1fr;max-height:58vh;overflow:auto}.shop-item{padding:10px}.shop-card-list,.shop-market,.relic-market{grid-template-columns:1fr}.shop-head h2{font-size:20px}.shop-resources{max-width:220px}.shop-wallet{padding:5px 9px;font-size:12px}.shop-deck-view{padding:4px 7px;font-size:10px}}

/* Puffer manager and illustrated shop cards */
.shop-market .market-item{grid-template-columns:auto minmax(0,1fr)}
.shop-market .market-item>div{display:flex;min-width:0;flex-direction:column;gap:3px}.shop-market .market-item>div b,.shop-market .market-item>div span,.shop-market .market-item>div small{grid-column:auto}.shop-market .market-item>i{grid-column:1;grid-row:1;font-style:normal;font-size:30px}.shop-market .market-item.relic-stock{grid-template-columns:38px minmax(0,1fr)}.shop-market .market-item.relic-stock b,.shop-market .market-item.relic-stock span,.shop-market .market-item.relic-stock small{grid-column:2}
.shop-keeper{position:absolute;z-index:3;right:10px;top:56px;width:min(520px,calc(100% - 20px));height:92px;pointer-events:none}.shop-keeper img{position:absolute;right:-3px;top:0;width:105px;height:auto;filter:drop-shadow(0 8px 10px #000a);animation:keeperBob 3s ease-in-out infinite}.keeper-speech{position:absolute;left:0;right:104px;top:7px;width:auto;min-height:48px;padding:8px 13px;border:2px solid #d8b961;border-radius:14px 14px 3px 14px;background:#fff9d9;color:#18313a;font-size:11px;font-weight:900;line-height:1.45;text-align:left;box-shadow:0 6px 15px #0008;transform-origin:bottom right}.keeper-speech::after{content:"";position:absolute;right:-10px;bottom:4px;border-width:7px 0 0 12px;border-style:solid;border-color:transparent transparent transparent #d8b961}.keeper-speech.pop{animation:keeperTalk .38s cubic-bezier(.2,.9,.25,1.3)}.shop-panel>p{padding-right:0;min-height:72px;text-align:left;color:transparent}.shop-panel>#shopMessage{padding-right:0;text-align:left}
@keyframes keeperBob{50%{transform:translateY(-5px) rotate(2deg)}}@keyframes keeperTalk{from{opacity:.25;transform:scale(.72)}to{opacity:1;transform:scale(1)}}
@media(max-width:600px){.shop-grid{max-height:55vh}.shop-keeper{position:relative;right:auto;top:auto;width:100%;height:74px;margin:3px 0}.shop-keeper img{right:2px;bottom:-4px;width:78px}.keeper-speech{right:70px;top:5px;width:min(230px,calc(100% - 76px));min-height:42px}.shop-panel>p{display:none}.shop-panel>#shopMessage{padding-right:0;text-align:center;min-height:18px}.shop-card-art{width:48px;height:48px}}
@media(prefers-reduced-motion:reduce){.shop-keeper img,.keeper-speech{animation:none!important}}

/* Compact shop shell: the exit stays visible and both markets fold away. */
.shop-panel{height:min(92dvh,760px);max-height:92dvh;overflow:hidden;display:flex;flex-direction:column;padding:14px 16px 12px}.shop-head{min-height:48px;padding-bottom:6px}.shop-head small{font-size:9px}.shop-head h2{font-size:20px}.shop-wallet{padding:5px 10px;font-size:12px}.shop-panel>p{margin:3px 0!important;line-height:1.4!important}.shop-panel>#shopMessage{min-height:18px;font-size:12px}.shop-grid{flex:1 1 0;min-height:0;overflow-x:hidden;overflow-y:scroll;-webkit-overflow-scrolling:touch;touch-action:pan-y;margin:3px 0 8px;padding:2px 3px 18px}.shop-exit{position:relative;z-index:6;flex:0 0 auto;width:100%;min-height:46px;margin:0;box-shadow:0 -8px 24px #03070ddd,0 0 18px #dcae4d44,0 5px 0 #674514}
.shop-keeper{top:56px;height:92px;width:min(520px,calc(100% - 20px))}.shop-keeper img{width:108px;right:-2px;top:0;bottom:auto;filter:drop-shadow(0 7px 9px #000c) drop-shadow(0 0 8px #e9c65a77)}.keeper-speech{left:0;right:106px;width:auto;min-height:46px;padding:7px 12px;font-size:10px}.shop-panel>p{padding-right:0}.shop-panel>#shopMessage{padding-right:0}
.shop-accordion{padding:0!important;overflow:hidden}.shop-accordion>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:50px;padding:11px 13px;cursor:pointer;background:linear-gradient(145deg,#102831,#071218);touch-action:manipulation}.shop-accordion>summary::-webkit-details-marker{display:none}.shop-accordion>summary b{color:#efd184}.shop-accordion>summary span{color:#78e6dc;font-size:11px;font-weight:900}.shop-accordion>summary::after{content:'⌄';color:#e6c76e;font-size:20px;transition:transform .2s}.shop-accordion[open]>summary::after{transform:rotate(180deg)}.shop-accordion[open]>summary{border-bottom:1px solid #527078}.shop-accordion>p{margin:8px 10px 5px!important;font-size:10px!important}.shop-accordion>.shop-market{padding:6px 9px 10px}
.shop-adjust{order:0}.shop-accordion[data-market="cards"]{order:1}.shop-accordion[data-market="relics"]{order:2}.shop-item{order:3}
@media(max-width:600px){.shop-panel{height:94dvh;max-height:94dvh;padding:9px 8px 8px}.shop-head{min-height:42px}.shop-head h2{font-size:17px}.shop-head small{display:none}.shop-resources{max-width:none;flex-wrap:nowrap}.shop-wallet{padding:4px 8px}.shop-keeper{position:absolute;right:8px;top:50px;width:calc(100% - 16px);height:76px;margin:0}.shop-keeper img{right:0;top:0;width:76px}.keeper-speech{left:0;right:76px;top:5px;width:auto;min-height:44px;padding:6px 10px;font-size:10px}.shop-panel>p{display:block;min-height:68px;margin:0!important}.shop-panel>#shopMessage{min-height:15px;font-size:10px}.shop-grid{display:flex;flex-direction:column;gap:8px;max-height:none;margin:2px 0 5px;padding-bottom:18px}.shop-item{width:100%;min-height:58px;padding:8px}.shop-accordion{width:100%;flex:0 0 auto}.shop-accordion>summary{min-height:46px;padding:9px 11px}.shop-exit{min-height:48px}.shop-card-list,.shop-market,.relic-market{grid-template-columns:1fr}.shop-choose{height:100%;min-height:0}.shop-card-list{flex:1 1 0}.shop-panel>p,.shop-panel>#shopMessage{padding-right:0}}
.shop-panel>p{visibility:hidden!important}
