/* The keeper and purse stay in place; only the stock ledger scrolls. */
.shell.stage-shop>.tavern-room{display:grid;grid-template-columns:minmax(0,.9fr) minmax(340px,1.1fr);grid-template-rows:minmax(0,1fr);gap:30px;width:min(1180px,100%);max-width:1180px;margin:0 auto;padding:62px 28px 18px;overflow:hidden}
.tavern-host{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;position:relative;align-items:stretch}
.stage-shop .tavern-host .screen-title{max-width:none;margin:0;text-align:center}
.stage-shop .tavern-host .screen-title h1{margin:4px 0;font-size:30px;letter-spacing:5px}
.stage-shop .tavern-host .screen-title>p:last-child{display:none}
.stage-shop .tavern-host .tavern-vista{position:relative;inset:auto;width:100%;height:auto;min-height:0}
.stage-shop .tavern-host .merchant-greeting{position:relative;inset:auto;width:100%;margin:0;padding:10px 0 0;background:none}
.stage-shop .merchant-greeting span{font:9px/1.4 'Knightle Quill';letter-spacing:1.4px}
.stage-shop .merchant-greeting p{margin:6px 0 0;font:italic 13px/1.4 Georgia;color:#dec79d;min-height:18px}
.stage-shop .merchant-greeting.thanking p{color:#f4dc9f}
.stage-shop .tavern-stock{min-width:0;min-height:0;display:flex;flex-direction:column;padding:16px 17px 8px;overflow:hidden}
.tavern-stock .stock-heading{flex:none;padding-bottom:12px;min-height:52px;gap:8px}
.stock-purse{position:relative;flex:none;min-width:90px}
.stock-purse b{font-variant-numeric:tabular-nums}
.tavern-stock .shop-tabs{flex:none;margin:0;min-height:38px}
.tavern-stock .shop-tabs button{min-width:0;min-height:38px;padding:6px 2px}
.shop-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8e764b #151b16;scroll-padding:8px;padding:0 6px 0 0}
.tavern-stock .shop-card{grid-template-columns:46px minmax(0,1fr) 86px;gap:12px;padding:17px 0}
.stage-shop .tavern-stock .shop-card>div:nth-child(2){min-width:0}
.tavern-stock .shop-icon{width:46px;height:56px}
.tavern-stock .shop-card h2{font-size:16px;line-height:1.3}
.tavern-stock .shop-card p{font-size:12px}
.tavern-stock .stock-footnote{margin-bottom:4px}
.tavern-stock .shop-return{flex:none;width:100%;margin:7px 0 0;min-height:30px;padding:6px;font-size:9px}
.stock-purse.purse-draining b{color:#ffe4a1;text-shadow:0 0 10px #d3a65c66}
.store-debit{position:absolute;top:0;right:0;pointer-events:none;font:14px 'Knightle Herald';color:#f0c27b;animation:store-debit-rise 1.4s both;animation-delay:var(--debit-age,0ms)}
@keyframes store-debit-rise{0%{opacity:0;transform:translateY(3px)}20%{opacity:1;transform:translateY(-13px)}70%{opacity:1;transform:translateY(-21px)}100%{opacity:0;transform:translateY(-28px)}}
/* Payment stays inside its original price tag, with no card-size change. */
.purchase-tag{position:relative;isolation:isolate;overflow:hidden}
.purchase-tag .price-face{display:flex;align-items:center;justify-content:center;gap:4px;min-height:22px}
.purchase-tag .purchase-result{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:4px;font:8px/1.2 'Knightle Quill';letter-spacing:.2px;color:#e8dba6;opacity:0;transform:translateY(8px);transition:opacity .18s,transform .18s}
.purchase-tag .purchase-check{font:bold 17px Georgia;color:#c8d9a0}
.purchase-tag .purchase-line{position:absolute;height:2px;bottom:2px;left:3px;right:3px;background:#d7b66d;transform-origin:left;transform:scaleX(var(--purchase-progress,0));box-shadow:0 0 7px #c8984266}
.purchase-tag.buying:disabled{opacity:1;background:#a4873c25;color:#efd294}
.purchase-tag.buying .price-face{font:14px 'Knightle Herald';transition:opacity .16s,transform .16s}
.purchase-tag.buying .paying-face .coin-icon{animation:price-coin-paid .7s steps(8,end) both;animation-delay:var(--purchase-age,0ms)}
.purchase-tag[data-purchase-phase="sealed"] .price-face,.purchase-tag[data-purchase-phase="settling"] .price-face{opacity:0;transform:translateY(-12px)}
.purchase-tag[data-purchase-phase="sealed"] .purchase-result,.purchase-tag[data-purchase-phase="settling"] .purchase-result{opacity:1;transform:translateY(0)}
.purchase-tag[data-purchase-phase="settling"] .purchase-line{opacity:0;transition:opacity .2s}
.purchase-tag.tag-arrived{animation:price-ready .2s ease-out both}
@keyframes price-coin-paid{0%{transform:translateY(0) scaleX(1);opacity:1}35%{transform:translateY(-4px) scaleX(.3);opacity:1}65%{transform:translateY(-3px) scaleX(1);opacity:1}100%{transform:translateY(-12px) scaleX(.3);opacity:0}}
@keyframes price-ready{from{opacity:.3}to{opacity:1}}
.armory-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.armory-heading>div{min-width:0}
.armory-heading .stock-purse{margin:0 4px 0 10px;text-align:right}
.preview-card .purchase-tag .coin-icon{width:19px;height:19px}
@media(max-width:700px){
 .shell.stage-shop>.tavern-room{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,.84fr) minmax(0,1.16fr);gap:10px;padding:42px 12px 8px}
 .stage-shop .tavern-host .screen-title h1{font-size:26px;line-height:1.1;margin:0 0 3px}
 .stage-shop .tavern-host .screen-title .eyebrow{font-size:6px;line-height:1.4;margin:0 0 4px}
 .stage-shop .tavern-host .merchant-greeting{padding:5px 0 0}
 .stage-shop .merchant-greeting span{font-size:7px;letter-spacing:.8px}
 .stage-shop .merchant-greeting p{font-size:11px;line-height:1.3;margin-top:3px;min-height:15px}
 .stage-shop .tavern-stock{padding:10px 11px 5px}
 .tavern-stock .stock-heading{min-height:42px;padding-bottom:8px}
 .stock-heading>span{font-size:12px;letter-spacing:1px}
 .stock-heading>span small{font-size:10px;margin-top:3px}
 .stock-purse{grid-template-columns:20px auto;gap:2px 4px;min-width:90px}
 .stock-purse b{font-size:22px}.stock-purse .coin-icon{width:20px;height:20px}
 .tavern-stock .shop-tabs button{font-size:6px;line-height:1.5;min-height:34px}
 .tavern-stock .shop-card{grid-template-columns:36px minmax(0,1fr) 70px;gap:8px;padding:14px 0}
 .tavern-stock .shop-icon{width:36px;height:45px}
 .tavern-stock .shop-card h2{font-size:14px;margin-bottom:5px}.tavern-stock .shop-card p{font-size:11px;line-height:1.4}
 .tavern-stock .shop-card small{font-size:8px;line-height:1.4;margin-top:6px}
 .tavern-stock .buy{font-size:12px;min-height:40px}
 .tavern-stock .buy:disabled{font-size:6px}
 .purchase-tag .purchase-result{font-size:6px}.purchase-tag .purchase-check{font-size:15px}
 .armory-heading{text-align:left!important;align-items:center}.armory-heading .stock-purse b{font-size:20px}
 .armory-heading .stock-purse{min-width:80px;margin-left:0}.armory-heading h1{font-size:26px}
}
@media(orientation:landscape) and (max-height:500px){
 .shell.stage-shop>.tavern-room{grid-template-columns:minmax(0,.8fr) minmax(340px,1.2fr);grid-template-rows:minmax(0,1fr);gap:18px;padding:50px 18px 8px}
 .stage-shop .tavern-host .screen-title h1{font-size:24px}.stage-shop .tavern-host .screen-title .eyebrow{display:none}
 .stage-shop .merchant-greeting{padding-top:3px}.stage-shop .merchant-greeting span{font-size:6px}.stage-shop .merchant-greeting p{font-size:10px;margin-top:3px}
 .stage-shop .tavern-stock{padding:8px 12px 4px}.tavern-stock .stock-heading{min-height:36px;padding-bottom:5px}
 .stock-heading>span small,.stock-purse small{display:none}.stock-purse b{font-size:21px}
 .tavern-stock .shop-tabs button{min-height:30px;font-size:6px}.tavern-stock .shop-tabs{min-height:30px}
}
@media(prefers-reduced-motion:reduce){.store-debit,.purchase-tag.buying .paying-face .coin-icon,.purchase-tag.tag-arrived{animation:none}.purchase-tag .price-face,.purchase-tag .purchase-result{transition:none}.store-debit{top:-16px}}
