/* PAC-MAN-inspired bonus stage. All rules are limited to the public store. */
.pac-store-page {
  --pac-black: #080914;
  --pac-panel: #10152b;
  --pac-blue: #416cff;
  --pac-yellow: #ffe447;
  --pac-cream: #ffdfb6;
  --pac-white: #f5f6ff;
  --pac-muted: #b8c1dd;
  --pac-cyan: #52e4ed;
  --pac-font:var(--ludicon-number-font),  'Ludicon Pixel', ui-monospace, monospace;
  background: var(--pac-black);
}
.pac-store-page .portal-main {
  padding-block: clamp(28px, 4vw, 50px) 64px;
  color: var(--pac-white);
  background: repeating-linear-gradient(0deg, transparent 0 3px, #ffffff02 3px 4px), var(--pac-black);
}
.pac-store-page .portal-main > .container { width: min(1180px, calc(100% - 48px)); }
.pac-store-page .section-kicker { margin: 0 0 12px; color: var(--pac-cyan); font: 600 .85rem/1.5 var(--pac-font); letter-spacing: .09em; }
.pac-store-page .pac-store-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(260px, .8fr);
  align-items: center;
  gap: 30px 44px;
  margin: 0 0 48px;
  padding: clamp(24px, 3vw, 40px);
  border: 3px solid var(--pac-blue);
  border-radius: 16px;
  outline: 1px solid var(--pac-blue);
  outline-offset: -9px;
  background: var(--pac-black);
  box-shadow: 0 0 0 4px #0c183a;
}
.pac-store-page .pac-store-intro { min-width: 0; }
.pac-store-page .pac-store-intro .section-kicker { display: flex; align-items: center; gap: 20px; }
.pac-store-page .pac-store-intro .section-kicker > span { color: #ff929c; letter-spacing: 0; }
.pac-store-page .pac-store-hero h1 { margin: 0 0 20px; color: var(--pac-yellow); font: 700 clamp(3rem, 5.6vw, 5.6rem)/.93 var(--pac-font); text-transform: uppercase; letter-spacing: -.035em; text-shadow: 4px 4px 0 #b47415; }
.pac-store-page .pac-store-hero h1 > span { display: block; }
.pac-store-page .pac-store-intro > p:last-child { max-width: 580px; margin: 0; color: var(--pac-muted); font-size: 1rem; line-height: 1.7; }
.pac-store-maze { position: relative; min-width: 0; margin: 0; padding-bottom: 28px; }
.pac-store-maze img { display: block; width: 100%; height: auto; image-rendering: pixelated; }
.pac-store-maze figcaption { position: absolute; bottom: 0; width: 100%; text-align: center; color: var(--pac-yellow); font: 600 1.25rem/1.3 var(--pac-font); letter-spacing: .16em; }
.pac-store-status { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 22px; padding-top: 24px; border-top: 2px dotted #8789a6; }
.pac-store-status > p { margin: 0; max-width: 420px; color: var(--pac-muted); font-size: .9rem; line-height: 1.6; }
.pac-store-status .pac-store-ready { display: flex; align-items: center; gap: 14px; color: var(--pac-cream); font: 500 1rem/1.5 var(--pac-font); }
.pac-store-page .wallet-inline { display: grid; grid-template-columns: auto auto; gap: 8px 20px; align-items: center; min-width: 0; margin: 0; padding: 12px 18px; border: 2px solid var(--pac-blue); border-radius: 0; background: var(--pac-panel); }
.pac-store-page .wallet-inline > span { color: var(--pac-muted); font-size: .85rem; }
.pac-store-page .wallet-inline > strong { color: var(--pac-yellow); font: 600 1.6rem/1.3 var(--pac-font); }
.pac-store-page .wallet-inline small { color: var(--pac-white); font: 500 1rem/1.3 var(--pac-font); }
.pac-catalog-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px; margin-bottom: 26px; }
.pac-store-page .pac-catalog-heading .section-kicker { margin-bottom: 6px; }
.pac-store-page .pac-catalog-heading h2 { margin: 0; color: var(--pac-white); font: 600 clamp(1.65rem, 3vw, 2.5rem)/1.2 var(--pac-font); letter-spacing: -.02em; }
.pac-mini { display: inline-block; width: 28px; height: 28px; flex: 0 0 28px; background: var(--pac-yellow); clip-path: polygon(25% 0, 75% 0, 75% 10%, 90% 10%, 90% 25%, 55% 50%, 90% 75%, 90% 90%, 75% 90%, 75% 100%, 25% 100%, 25% 90%, 10% 90%, 10% 75%, 0 75%, 0 25%, 10% 25%, 10% 10%, 25% 10%); }
.pac-pellet-trail { display: flex; align-items: center; gap: 18px; }
.pac-pellet-trail > span:not(.pac-mini):not(.pac-ghost) { width: 5px; height: 5px; background: var(--pac-cream); }
.pac-ghost { position: relative; display: inline-block; width: 28px; height: 30px; background: #ff929c; clip-path: polygon(25% 0, 75% 0, 75% 10%, 90% 10%, 90% 25%, 100% 25%, 100% 100%, 80% 100%, 80% 85%, 60% 85%, 60% 100%, 40% 100%, 40% 85%, 20% 85%, 20% 100%, 0 100%, 0 25%, 10% 25%, 10% 10%, 25% 10%); }
.pac-ghost::before { content: ''; position: absolute; top: 9px; left: 5px; width: 7px; height: 10px; background: white; box-shadow: 11px 0 white; }
.pac-ghost::after { content: ''; position: absolute; top: 12px; left: 8px; width: 4px; height: 6px; background: #1c3fbd; box-shadow: 11px 0 #1c3fbd; }
.pac-store-page .catalog-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: stretch; gap: 24px 20px; margin-bottom: 40px; }
.pac-store-page .catalog-grid > .store-product-card {
  position: relative; display: flex; flex-direction: column; gap: 18px;
  width: 100%; min-width: 0; max-width: none; margin: 0; padding: 16px;
  border: 2px solid var(--pac-blue); border-radius: 8px;
  outline: 1px solid #416cff70; outline-offset: -6px;
  color: var(--pac-white); background: var(--pac-panel); box-shadow: 4px 4px 0 #182657;
  transition: border-color 160ms ease, transform 160ms ease;
}
.pac-store-page .store-product-card::after { content: ''; position: absolute; left: 20px; right: 20px; top: -3px; height: 4px; background: radial-gradient(circle, var(--pac-cream) 2px, transparent 2.5px) center / 24px 4px repeat-x, var(--pac-black); pointer-events: none; }
.pac-store-page .store-product-card:hover { transform: translateY(-3px); border-color: var(--pac-yellow); }
.pac-store-page .store-product-card .ui-image-button { display: grid; place-items: center; width: 100%; height: 184px; padding: 10px; border: 1px solid #8297d6; border-radius: 2px; background: #fff; overflow: hidden; }
.pac-store-page .store-product-card .ui-image-button img { display: block; width: 100%; height: 162px; object-fit: contain; }
.pac-product-placeholder { display: grid; place-items: center; height: 184px; border: 1px solid #354b84; background: repeating-linear-gradient(0deg, transparent 0 19px, #416cff12 19px 20px), repeating-linear-gradient(90deg, transparent 0 19px, #416cff12 19px 20px); }
.pac-product-placeholder .pac-ghost { transform: scale(2); background: var(--pac-cyan); }
.pac-product-copy { display: grid; gap: 15px; min-width: 0; }
.pac-store-page .store-product-card h2 { min-height: 2.7em; margin: 0; color: var(--pac-white); font: 700 1.05rem/1.4 'Google Sans', Arial, sans-serif; letter-spacing: 0; overflow-wrap: anywhere; }
.pac-store-page .store-product-card .field-label-row { min-width: 0; gap: 8px; align-items: start; }
.pac-store-page .store-price { display: block; color: var(--pac-yellow); font: 600 1.25rem/1.4 var(--pac-font); overflow-wrap: anywhere; }
.pac-store-page .store-product-card .field-help-trigger { width: 44px; height: 44px; min-width: 44px; min-height: 44px; border-color: var(--pac-cyan); border-radius: 0; color: var(--pac-cyan); background: #111c35; }
.pac-store-page .store-product-card .field-help-trigger:hover { color: var(--pac-black); background: var(--pac-cyan); }
.pac-store-page .field-help-panel { border: 2px solid var(--pac-blue); border-radius: 4px; color: var(--pac-white); background: #111a32; box-shadow: 4px 4px 0 #0008; }
.pac-store-page .field-help-panel strong { color: var(--pac-yellow); }
.pac-store-page .store-product-card > :is(form, .button, .muted) { margin-top: auto; }
.pac-store-page .store-product-card .muted { margin-bottom: 0; color: var(--pac-muted); font-size: .9rem; line-height: 1.6; }
.pac-store-page .store-product-card .button { width: 100%; min-height: 48px; padding: 12px 10px; border: 2px solid var(--pac-yellow); border-radius: 2px; color: var(--pac-black); background: var(--pac-yellow); box-shadow: 3px 3px 0 #94731c; font-size: .77rem; line-height: 1.4; letter-spacing: .025em; }
.pac-store-page .store-product-card .button:hover:not(:disabled) { color: var(--pac-black); background: #fff5a8; }
.pac-store-page .store-product-card .button:disabled { color: #c0c9e1; background: #242d49; border-color: #53617f; box-shadow: 3px 3px 0 #060913; opacity: 1; cursor: not-allowed; }
.pac-store-page .store-product-card .button-secondary { color: var(--pac-cyan); background: #101b37; border-color: var(--pac-blue); box-shadow: 3px 3px 0 #060913; }
.pac-store-page .dashboard-empty { grid-column: 1 / -1; padding: 36px 24px; border: 2px dashed var(--pac-blue); color: var(--pac-muted); background: var(--pac-panel); text-align: center; }
.pac-store-page .portal-main .form-message-error { color: #ffe0e4; background: #322030; border: 2px solid #ff929c; border-radius: 0; }

/* Private purchase history and the existing purchase/lightbox dialogs. */
.pac-store-page .pac-purchase-history { padding: 26px; border: 2px solid var(--pac-blue); border-radius: 8px; color: var(--pac-white); background: var(--pac-panel); box-shadow: 4px 4px 0 #182657; }
.pac-store-page .pac-purchase-history header { margin-bottom: 20px; }
.pac-store-page .pac-purchase-history h2 { color: var(--pac-yellow); font: 600 2rem/1.2 var(--pac-font); }
.pac-store-page .dashboard-alert-table :is(th, td) { color: var(--pac-muted); background: transparent; border-color: #2b3d71; }
.pac-store-page .dashboard-alert-table tr { color: var(--pac-muted); background: var(--pac-panel); border-color: #2b3d71; border-radius: 0; }
.pac-store-page .dashboard-alert-table td::before { color: var(--pac-cyan); font-family: var(--pac-font); }
.pac-store-page .dashboard-alert-table th { color: var(--pac-cyan); font: 600 .85rem/1.5 var(--pac-font); }
.pac-store-page .dashboard-alert-table td strong { color: var(--pac-yellow); }
.pac-store-page .pac-purchase-history .button { min-height: 44px; padding: 10px 12px; color: var(--pac-cyan); border: 1px solid var(--pac-blue); border-radius: 0; background: #172044; box-shadow: none; }
.pac-store-page :is(.confirmation-dialog, .ui-lightbox) { border: 3px solid var(--pac-blue); border-radius: 8px; outline: 1px solid var(--pac-blue); outline-offset: -8px; color: var(--pac-white); background: var(--pac-black); box-shadow: 6px 6px 0 #152352; }
.pac-store-page :is(.confirmation-dialog, .ui-lightbox)::backdrop { background: #080914d9; }
.pac-store-page .confirmation-dialog { width: min(540px, calc(100vw - 32px)); padding: 32px; }
.pac-store-page .confirmation-dialog h2 { color: var(--pac-yellow); font: 600 1.85rem/1.25 var(--pac-font); overflow-wrap: anywhere; }
.pac-store-page .confirmation-dialog p { color: var(--pac-muted); line-height: 1.65; }
.pac-store-page .confirmation-dialog p strong { color: var(--pac-yellow); }
.pac-store-page .confirmation-dialog .section-kicker { color: var(--pac-cyan); }
.pac-store-page .confirmation-dialog .button { min-height: 46px; border: 2px solid var(--pac-blue); border-radius: 0; }
.pac-store-page .confirmation-dialog .button-primary { color: var(--pac-black); background: var(--pac-yellow); border-color: var(--pac-yellow); }
.pac-store-page .confirmation-dialog .button-secondary { color: var(--pac-white); background: var(--pac-panel); }
.pac-store-page :is(.confirmation-dialog, .ui-lightbox) .admin-modal-close { width: 44px; height: 44px; border: 2px solid var(--pac-blue); border-radius: 0; color: var(--pac-white); background: var(--pac-panel); }
.pac-store-page :is(.portal-main, .confirmation-dialog, .ui-lightbox) :is(a, button):focus-visible { outline: 3px solid var(--pac-cyan); outline-offset: 4px; }
@media (max-width: 1050px) {
  .pac-store-page .catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 16px; }
  .pac-store-page .pac-store-hero { grid-template-columns: minmax(0, 1fr) minmax(230px, .8fr); gap: 26px; }
}
@media (max-width: 780px) {
  .pac-store-page .portal-main > .container { width: calc(100% - 32px); }
  .pac-store-page .pac-store-hero { grid-template-columns: minmax(0, 1fr); padding: 28px; margin-bottom: 34px; }
  .pac-store-page .pac-store-hero h1 { font-size: clamp(3.5rem, 10vw, 5rem); }
  .pac-store-maze { width: min(360px, 100%); justify-self: center; }
  .pac-store-status { gap: 18px; }
  .pac-store-page .wallet-inline { width: 100%; grid-template-columns: minmax(0, 1fr) auto; }
  .pac-store-page .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 16px; }
  .pac-store-page .store-product-card .ui-image-button { height: 164px; }
  .pac-store-page .store-product-card .ui-image-button img { height: 142px; }
  .pac-product-placeholder { height: 164px; }
  .pac-store-page .pac-purchase-history { padding: 22px 16px; }
}
@media (max-width: 520px) {
  .pac-store-page .pac-store-hero { padding: 26px 20px; gap: 24px; }
  .pac-store-page .pac-store-intro > p:last-child { font-size: .98rem; }
  .pac-store-page .pac-store-intro .section-kicker { gap: 16px; font-size: .8rem; }
  .pac-store-maze { width: min(264px, 100%); }
  .pac-catalog-heading { gap: 22px; }
  .pac-pellet-trail { gap: 16px; }
  .pac-store-page .catalog-grid { grid-template-columns: minmax(0, 1fr); }
  .pac-store-page .catalog-grid > .store-product-card { padding: 20px; gap: 18px; }
  .pac-store-page .store-product-card .ui-image-button { height: 210px; }
  .pac-store-page .store-product-card .ui-image-button img { height: 188px; }
  .pac-product-placeholder { height: 210px; }
  .pac-store-page .store-product-card h2 { min-height: 0; font-size: 1.12rem; }
  .pac-store-page .store-price { font-size: 1.4rem; }
  .pac-store-page .confirmation-dialog { padding: 28px 22px; }
  .pac-store-page .confirmation-dialog h2 { font-size: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) {
  .pac-store-page .store-product-card { transition: none; }
  .pac-store-page .store-product-card:hover { transform: none; }
}
/* Compact bonus-stage top, using the existing maze art. */
.pac-store-page .pac-store-hero { grid-template-columns:minmax(0,1fr) minmax(180px,260px); gap:18px 32px; padding:24px 30px; margin-bottom:28px; border-radius:4px; background:linear-gradient(110deg,#101833,#080914 70%); }
.pac-store-page .pac-store-hero h1 { font-size:clamp(2.6rem,5vw,4rem); margin-bottom:12px; }
.pac-store-page .pac-store-hero h1 > span { display:inline; }
.pac-store-page .pac-store-intro > p:last-child { font-size:.95rem; line-height:1.5; }
.pac-store-page .pac-store-maze { max-width:260px; padding-bottom:16px; }
.pac-store-page .pac-store-maze img { max-height:146px; object-fit:contain; }
.pac-store-page .pac-store-maze figcaption { font-size:.85rem; }
.pac-store-page .pac-store-status { gap:10px; padding-top:14px; }
.pac-store-page .pac-store-status .wallet-inline { padding:7px 12px; }
@media(max-width:600px) {
  .pac-store-page .pac-store-hero { grid-template-columns:minmax(0,1fr); padding:22px 18px; gap:14px; }
  .pac-store-page .pac-store-maze { display:none; }
  .pac-store-page .pac-store-hero h1 { font-size:clamp(2.25rem,10vw,3.5rem); }
  .pac-store-page .pac-store-status { align-items:flex-start; }
}
.pac-store-page .pac-store-status > p:not(.pac-store-ready) { color:var(--pac-muted); }
