.pay-banner{padding:14px 18px;border:1px solid #72d9cf55;border-radius:7px;color:#a7f2df;margin:18px 0;background:#102a30}
.pay-account{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:18px 0}
.pay-login{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.pay-login label{display:grid;gap:5px;flex:1;min-width:130px;font-size:14px}
.pay-login input{width:100%;background:#0b1c27;border:1px solid var(--line);border-radius:6px;padding:11px 12px;color:var(--text)}
.pay-status{margin:14px 0;color:#a7f2df;min-height:25px;overflow-wrap:anywhere}
.pay-status.error{color:#ffb5b5}
.pay-review{width:min(420px,calc(100vw - 32px));border:1px solid #72d9cf55;border-radius:12px;padding:26px;background:#10212c;color:var(--text)}
.pay-review::backdrop{background:#010b15bf}
.pay-review p{margin:14px 0;line-height:1.7}
.pay-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.pay-actions .btn{flex:1;min-width:120px}
.pay-actions .btn:disabled,.pay-login .btn:disabled{opacity:.5;cursor:wait}
.pay-gem-count{font-family:"Chakra Petch",sans-serif;font-size:32px;color:#b88aff;margin:0 0 6px}
#payments-root[hidden],.pay-login[hidden],.pay-account[hidden]{display:none}

.pass-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0 12px;max-width:760px}
.pass-tabs[hidden]{display:none}
.pass-tab{font:inherit;color:var(--muted);border:1px solid var(--line);background:#0b1c27;border-radius:9px;padding:12px 8px;cursor:pointer;min-width:0}
.pass-tab strong,.pass-tab span{display:block}.pass-tab strong{font-size:15px;line-height:1.4;overflow-wrap:anywhere}.pass-tab span{font-size:13px;margin-top:5px}
.pass-tab[aria-selected="true"]{color:var(--text);background:#27352c;border-color:#dfbd75;box-shadow:inset 0 -3px #dfbd75}
.pass-tab[aria-selected="true"] span{color:#efce8a}.pass-tab:focus-visible{outline:2px solid #89e8df;outline-offset:3px}
.shop-grid.pass-selection{grid-template-columns:minmax(0,1fr);max-width:760px}.pass-selection .offer{padding-top:28px}.pass-selection .btn{white-space:normal;text-align:center}
@media(max-width:480px){.pass-tabs{gap:5px}.pass-tab{padding:10px 4px}.pass-tab strong{font-size:12px}.pass-tab span{font-size:12px}}
/* Shop artwork and cards: fixed product composition, flexible text height. */
.shop-grid{gap:18px}.shop-grid .offer{position:relative;overflow:hidden;min-width:0;padding:0;border-radius:18px;border:1px solid #63859855;background:linear-gradient(155deg,#142b3d,#091b2b 70%);box-shadow:0 18px 40px #01081466;display:flex;flex-direction:column}
.offer .product-visual{display:grid;place-items:center;min-height:170px;padding:18px;background:radial-gradient(ellipse at 50% 55%,#aa76ee30,transparent 68%);border-bottom:1px solid #86cce519}
.product-visual img{display:block;width:100%;height:170px;object-fit:contain;filter:drop-shadow(0 8px 16px #05071c77)}
.offer[data-product="privilege"] .product-visual{background:radial-gradient(ellipse,#cda35333,transparent 70%)}
.offer[data-product="super_minicell_pass"] .product-visual{background:radial-gradient(ellipse,#42cec631,transparent 70%)}
.offer .product-copy{padding:22px;min-width:0;display:flex;flex-direction:column;flex:1}.offer h3{font-size:23px;line-height:1.35;margin:10px 0}.offer .price{font-size:29px;color:#f0d599;margin:0 0 14px}.offer ul{font-size:15px;line-height:1.65;padding-left:20px;margin:0 0 22px;flex:1}.offer li+li{margin-top:8px}.offer .btn{align-self:stretch;white-space:normal;text-align:center;min-height:44px}.offer .badge{position:static;align-self:flex-start;font-size:12px;background:#182f3e;color:#91b4c6;margin-bottom:2px}
.pass-selection .offer{display:grid;grid-template-columns:240px minmax(0,1fr);padding:0;min-height:340px}.pass-selection .product-visual{border-bottom:0;border-right:1px solid #86cce519}.pass-selection .product-visual img{height:260px}.pass-selection .product-copy{padding:28px}.shop-grid.pass-selection{max-width:none}.pass-tabs{max-width:none}.pass-tab{background:linear-gradient(135deg,#183248,#0c1d2d);border-radius:12px}.pass-tab[aria-selected="true"]{background:linear-gradient(135deg,#3b3c43,#1d2b35);box-shadow:inset 0 -3px #dfbd75,0 8px 24px #0003}
.gem-pile{position:relative;width:144px;height:128px;filter:drop-shadow(0 8px 12px #ab66f433)}.gem-sprite{position:absolute;width:58px;height:58px;background:url(img/shop/currency-atlas.png) 100% 100%/400% 400% no-repeat}.gem-selection{grid-template-columns:repeat(4,minmax(0,1fr))}.gem-selection .product-visual{min-height:150px;padding:12px}.gem-selection .product-copy{padding:16px}.gem-selection .pay-gem-count{font-size:28px;line-height:1.2}.gem-selection h3{font-size:18px}.gem-selection ul{font-size:13px}.shop-categories .btn:focus-visible{outline:2px solid #8de3e7;outline-offset:3px}
@media(max-width:900px){.gem-selection{grid-template-columns:repeat(2,minmax(0,1fr))}.pass-selection .offer{grid-template-columns:200px minmax(0,1fr)}}
@media(max-width:600px){.pass-selection .offer{display:flex}.pass-selection .product-visual{min-height:190px;border-right:0;border-bottom:1px solid #86cce519;padding:12px}.pass-selection .product-visual img{height:180px}.pass-selection .product-copy{padding:20px}.offer h3{font-size:21px}.offer .price{font-size:27px}.pass-tab strong{font-size:12px}.pay-actions{gap:6px}.pay-actions .btn{min-width:0;padding:12px 6px;font-size:13px}.gem-selection{gap:10px}.gem-selection .product-visual{min-height:112px;padding:0}.gem-selection .gem-pile{transform:scale(.75);margin:-12px}.gem-selection .product-copy{padding:12px}.gem-selection h3{font-size:16px}.gem-selection .price{font-size:21px}.gem-selection .pay-gem-count{font-size:22px}.gem-selection .btn{padding:9px 4px;font-size:13px}.gem-selection ul{font-size:12px;margin-bottom:12px}}
@media(prefers-reduced-motion:no-preference){.pass-tab,.shop-categories .btn{transition:background .15s,border-color .15s}.offer .btn:hover{filter:brightness(1.1)}}
/* Center each gem product, with progressively larger storage containers. */
.gem-selection .product-visual{justify-items:center;align-items:center}.gem-selection .product-copy{text-align:center}.gem-selection ul{list-style:none;padding-left:0}.gem-selection .product-visual img.gem-container{width:168px;height:136px;max-width:100%;object-fit:contain}.gem-selection .gem-container.tier-3,.gem-selection .gem-container.tier-6{transform:scale(.9)}
@media(max-width:600px){.gem-selection .product-visual img.gem-container{width:138px;height:110px}.gem-selection .product-copy{padding:12px 9px}}

/* Purchase login stays compact and scrolls inside the dialog on short screens. */
.pay-login-dialog{max-height:calc(100dvh - 32px);overflow-y:auto;box-sizing:border-box}
.pay-login-dialog .pay-login{display:grid;gap:12px;align-items:stretch}
.pay-login-dialog .pay-login label{min-width:0}
.pay-login-dialog .pay-login input{box-sizing:border-box;min-width:0;font:inherit}
.pay-login-dialog h2{font-size:24px;line-height:1.35;margin:0}
.pay-login-dialog .btn{width:100%;white-space:normal}
.pay-login-dialog .pay-status{margin:12px 0;min-height:0}
.pay-review{max-height:calc(100dvh - 32px);overflow-y:auto;box-sizing:border-box}
@media(max-width:480px){.pay-login-dialog{padding:20px}.pay-login-dialog h2{font-size:22px}}
/* Claude 5 Oct: pack tags + payment methods line */
.product-visual{position:relative}.pay-tag{position:absolute;top:10px;left:10px;padding:3px 10px;border-radius:999px;background:#f0c46a;color:#07131d;font-size:12px;font-weight:500;letter-spacing:.02em}

/* First Purchase uses the complete generated ad, with no overlaid labels. */
.first-purchase-promo{display:block;max-width:960px;margin:28px auto;border-radius:16px;overflow:hidden;border:1px solid #daae5966;box-shadow:0 12px 38px #03131e88;line-height:0}
.first-purchase-promo img{display:block;width:100%;height:auto;aspect-ratio:2.508/1;object-fit:contain}
.first-purchase-promo:focus-visible{outline:3px solid #8ceaf3;outline-offset:5px}
.offer[data-product="first_purchase"] .product-visual{padding:0;min-height:0;background:#05162a}
.offer[data-product="first_purchase"] .product-visual img{width:100%;height:auto;filter:none;object-fit:contain}
.offer[data-product="first_purchase"] .pay-tag{display:none}
@media(max-width:600px){.first-purchase-promo{margin:20px auto;border-radius:10px}}
