/* A square visual with a quiet, readable product caption over the lower edge. */
body.shop-page .product-tile{min-width:0;border:1px solid #3d4140;border-radius:18px;overflow:hidden;background:#151715}
.product-tile-button{position:relative;isolation:isolate;display:block;width:100%;aspect-ratio:1;padding:0;border:0;background:#151715;color:#f4f5ed;cursor:pointer;text-align:left;overflow:hidden}
.product-tile-visual{position:absolute;inset:0 0 17%;display:grid;place-items:center;pointer-events:none;transition:transform .2s}
.product-tile-visual>img{width:100%;height:100%;object-fit:contain}
.product-tile-visual>.physical-art{width:100%;height:100%;aspect-ratio:auto;border:0}
.product-tile-visual>.rip-product-art{width:100%;height:100%;margin:0;display:flex;align-items:center;justify-content:center}
.product-tile-visual .booster-pack-cutout{height:100%;width:auto;max-width:100%;object-fit:contain}
.product-tile-visual>.digital-starter-showcase{width:100%;height:100%;min-height:0;aspect-ratio:auto;padding:18px;box-sizing:border-box}
.product-tile-visual .foil-art{max-height:100%;width:auto;aspect-ratio:2/3;max-width:65%}
.product-tile-visual>.halloween-pack-frame{width:auto;height:100%;padding:0;border:0;background:none}
.product-tile-visual>.halloween-pack-frame>img:first-child{width:auto;height:100%;max-width:100%;object-fit:contain}
.product-tile-copy{position:absolute;inset:auto 0 0;padding:52px 20px 18px;background:linear-gradient(transparent,#101210ef 32%,#101210 100%);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;pointer-events:none}
.product-tile-name{font-size:19px;line-height:1.25;grid-column:1/-1}.product-tile-summary{font-size:12px;line-height:1.45;color:#c0c6bf;grid-column:1/-1}.product-tile-price{font-size:21px;font-weight:800;color:#ffad54}.product-tile-hint{align-self:center;font-size:11px;color:#cbd6d1}
.product-tile-button:hover .product-tile-visual{transform:scale(1.035)}.product-tile-button:focus-visible{outline:3px solid #38e6ff;outline-offset:-4px}
.product-tile-summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
body.shop-page :is(.physical-products,.apparel-products,.digital-starter-grid,.rip-offers){grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;grid-auto-rows:auto;align-items:start}
body.shop-page .digital-starter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
body.shop-page .digital-starters{padding:0;border:0;background:transparent}
body.shop-page .product-dialog{box-sizing:border-box;width:min(880px,calc(100% - 32px));max-height:90dvh;padding:0;border:1px solid #515850;border-radius:20px;background:#151715;color:#edf2e8;overflow:auto}
.product-dialog::backdrop{background:#000c;backdrop-filter:blur(5px)}
body:has(.product-dialog[open]){overflow:hidden}
.product-dialog-header{position:sticky;top:0;z-index:8;display:flex;gap:20px;align-items:center;justify-content:space-between;padding:18px 24px;background:#151715f5;border-bottom:1px solid #343a34}
.product-dialog-title{font-size:22px;line-height:1.2;margin:0}.product-dialog-close{min-height:44px;padding:10px 18px;border:1px solid #697366;border-radius:8px;background:#20251f;color:#fff;font:700 14px Arial;cursor:pointer}
body.shop-page .product-dialog .product-detail-content{margin:0;border:0;border-radius:0;box-shadow:none;background:#151715;padding:24px;min-width:0;box-sizing:border-box}
.product-dialog .product-detail-content>.physical-art-link{display:block}.product-dialog .physical-art{max-height:320px;aspect-ratio:16/9}
.product-dialog .apparel-product>img{max-height:380px;object-fit:contain}.product-dialog .apparel-copy{padding:24px 0 0;gap:14px}
.product-dialog .physical-product-copy{padding:24px 0 0}.product-dialog .physical-product h3{min-height:0}
.product-dialog .rip-offer{display:flex;flex-direction:column;gap:16px}.product-dialog .rip-offer>strong,.product-dialog .rip-guarantee,.product-dialog .rip-offer-price,.product-dialog .shop-pack-heading{min-height:0}
.product-dialog .rip-product-art{height:260px}.product-dialog .shop-pack-actions{display:grid;gap:12px}.product-dialog .cart-add{margin-top:0!important}
.product-dialog .digital-starter-showcase{max-height:330px;min-height:0;aspect-ratio:auto}.product-dialog .digital-starter-showcase>.foil-art{max-width:190px}.product-dialog .digital-starter-tile{gap:16px}.product-dialog .digital-starter-tile h3{min-height:0}
.product-dialog .halloween-shop{grid-template-columns:minmax(160px,240px) 1fr}.product-dialog .halloween-shop-copy{min-width:0}
body.shop-page .halloween-product-tile{max-width:420px;margin:24px 0}
@media(max-width:1050px){body.shop-page :is(.physical-products,.apparel-products,.digital-starter-grid,.rip-offers){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){body.shop-page :is(.physical-products,.apparel-products,.digital-starter-grid,.rip-offers){gap:12px}.product-tile-copy{padding:36px 12px 12px;gap:4px}.product-tile-name{font-size:15px}.product-tile-summary{font-size:11px}.product-tile-price{font-size:17px}.product-tile-hint{display:none}.product-tile-visual{inset:0 0 26%}.product-dialog-header{padding:14px 16px}.product-dialog-title{font-size:19px}body.shop-page .product-dialog .product-detail-content{padding:16px}.product-dialog .halloween-shop{grid-template-columns:1fr}.product-dialog .halloween-shop-art{max-width:180px}}
@media(prefers-reduced-motion:reduce){.product-tile-visual{transition:none}.product-tile-button:hover .product-tile-visual{transform:none}}
@media(max-width:600px){.product-tile-summary{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-tile-copy{padding-top:28px}.product-tile-visual{inset:0 0 20%}}
@media(min-width:701px){.product-dialog .product-detail-content:is(.apparel-product,.physical-product){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}.product-dialog .apparel-copy,.product-dialog .physical-product-copy{padding:0}.product-dialog .apparel-product>img{height:auto;max-height:none;border-radius:12px}.product-dialog .physical-art{border-radius:12px}}

/* Give each shop product its own row on phones. */
@media(max-width:700px){body.shop-page :is(.physical-products,.apparel-products,.digital-starter-grid,.rip-offers){grid-template-columns:minmax(0,1fr)}}
