:root {
  --s-bg: #040405;
  --s-ink: #0a0909;
  --s-panel: rgba(12, 10, 9, .86);
  --s-panel-2: rgba(21, 14, 12, .84);
  --s-red: #c51c18;
  --s-red-hot: #ff3029;
  --s-red-dark: #5c0908;
  --s-gold: #b78a3b;
  --s-gold-hot: #edcf84;
  --s-bone: #eadfcd;
  --s-muted: #a89a8b;
  --s-dim: #6e6259;
  --s-line: rgba(183, 138, 59, .34);
  --s-line-red: rgba(255, 48, 41, .33);
}

* { box-sizing: border-box; }

html { background: var(--s-bg); }

.store-body {
  min-height: 100vh;
  margin: 0;
  background: var(--s-bg);
  color: var(--s-bone);
  font-family: Inter, system-ui, sans-serif;
  overflow-x: hidden;
}

.store-body button { font-family: Inter, system-ui, sans-serif; }

.store-page {
  min-height: 100vh;
  padding: 82px 0 22px;
  background:
    linear-gradient(180deg, rgba(4, 4, 5, .04) 0, rgba(4, 4, 5, .08) 220px, rgba(4, 4, 5, .52) 520px, #040405 760px),
    linear-gradient(90deg, #040405 0%, rgba(4, 4, 5, .58) 9%, rgba(4, 4, 5, .06) 28%, rgba(4, 4, 5, .04) 50%, rgba(4, 4, 5, .1) 72%, rgba(4, 4, 5, .66) 91%, #040405 100%),
    radial-gradient(ellipse at 58% 294px, rgba(255, 48, 41, .2), transparent 25rem),
    radial-gradient(ellipse at 58% 286px, rgba(255, 19, 19, .2), transparent 9rem),
    url("/assets/store/reference/store-hero-immortalis-face.png") 58% -110px / max(125vw, 2100px) auto no-repeat,
    radial-gradient(circle at 10% 28%, rgba(255, 48, 41, .12), transparent 21rem),
    radial-gradient(circle at 90% 70%, rgba(255, 48, 41, .1), transparent 24rem),
    #040405;
  position: relative;
  isolation: isolate;
}

.store-page::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(circle, rgba(255, 48, 41, .75) 0 1px, transparent 2px) 7% 24% / 170px 210px,
    radial-gradient(circle, rgba(237, 207, 132, .48) 0 1px, transparent 2px) 84% 62% / 260px 310px;
  opacity: .28;
  animation: store-ember-drift 28s linear infinite;
}

.store-page::after {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 880px;
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, #040405 0%, rgba(4, 4, 5, .78) 6%, transparent 18%, transparent 82%, rgba(4, 4, 5, .78) 94%, #040405 100%),
    linear-gradient(180deg, rgba(4, 4, 5, .92) 0%, rgba(4, 4, 5, .46) 72px, transparent 176px, transparent 58%, rgba(4, 4, 5, .78) 84%, #040405 100%),
    radial-gradient(ellipse at 50% 42%, transparent 0 34%, rgba(4, 4, 5, .34) 64%, rgba(4, 4, 5, .9) 100%);
}

@keyframes store-ember-drift {
  to { background-position: 7% -360px, 84% -420px, 0 0; }
}

.store-shell {
  width: min(1600px, calc(100vw - 54px));
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.store-hero {
  min-height: clamp(330px, 29vw, 455px);
  display: flex;
  align-items: flex-end;
  position: relative;
  z-index: 0;
  isolation: isolate;
  padding: 0 clamp(16px, 2vw, 28px) clamp(16px, 2vw, 28px);
  overflow: visible;
}

.store-hero::before {
  content: "";
  position: absolute;
  left: 2%;
  right: 2%;
  bottom: -24px;
  height: 190px;
  z-index: 0;
  background:
    radial-gradient(ellipse at 50% 40%, rgba(4, 4, 5, .04), rgba(4, 4, 5, .68) 64%, #040405 100%);
  filter: blur(20px);
  opacity: .86;
}

.store-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(180deg, transparent 0%, rgba(4, 4, 5, .02) 58%, rgba(4, 4, 5, .58) 100%),
    radial-gradient(ellipse at 50% 98%, rgba(183, 138, 59, .16), transparent 18rem);
}

.store-hero-title {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.store-hero-logo {
  position: absolute;
  left: 50%;
  top: clamp(4px, 1.6vw, 20px);
  z-index: 6;
  width: min(900px, 72vw);
  height: auto;
  transform: translateX(-50%);
  opacity: 1;
  filter:
    drop-shadow(0 24px 34px rgba(0, 0, 0, .92))
    drop-shadow(0 0 30px rgba(4, 4, 5, .9))
    drop-shadow(0 0 34px rgba(183, 138, 59, .2))
    drop-shadow(0 0 18px rgba(255, 48, 41, .18));
  pointer-events: none;
  user-select: none;
}

.store-hero-guarantees { position: relative; z-index: 2; }

.store-hero-copy { min-width: 0; max-width: 860px; text-align: center; }

.store-kicker {
  margin: 0 0 7px;
  color: var(--s-gold-hot);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 7px;
  text-transform: uppercase;
}

.store-hero h1 {
  margin: 0;
  color: #d91f18;
  font-family: "Cinzel Decorative", Cinzel, serif;
  font-size: clamp(54px, 7vw, 100px);
  font-weight: 900;
  line-height: .82;
  letter-spacing: 0;
  text-transform: uppercase;
  -webkit-text-stroke: 1px rgba(80, 5, 4, .84);
  text-shadow:
    0 1px 0 rgba(255, 137, 104, .22),
    0 0 15px rgba(255, 48, 41, .48),
    0 0 44px rgba(110, 8, 8, .8),
    0 14px 40px rgba(0, 0, 0, .86);
}

.store-hero h1 span {
  display: block;
  color: #e3d5c1;
  font-family: Cinzel, Georgia, serif;
  font-size: clamp(25px, 2.8vw, 39px);
  line-height: 1;
  text-shadow: 0 10px 24px rgba(0,0,0,.8);
}

.store-line {
  margin: 14px 0 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0 .33em;
  color: #efe3d0;
  font-family: Cinzel, Georgia, serif;
  font-size: 15px;
  line-height: 1.45;
  text-transform: uppercase;
}

.store-line span { display: inline-block; }

.store-intro {
  max-width: 620px;
  margin: 11px auto 0;
  color: var(--s-muted);
  font-size: 13px;
  line-height: 1.58;
}

.store-hero-guarantees {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  border: 1px solid rgba(183, 138, 59, .22);
  background:
    linear-gradient(180deg, rgba(17, 15, 15, .74), rgba(5, 5, 6, .86)),
    rgba(5, 5, 6, .82);
  box-shadow:
    0 18px 48px rgba(0, 0, 0, .46),
    inset 0 1px 0 rgba(237, 207, 132, .08);
  backdrop-filter: blur(9px);
}

.store-hero-guarantee {
  min-width: 0;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 14px 18px;
  border-right: 1px solid rgba(183, 138, 59, .16);
}

.store-hero-guarantee:last-child { border-right: 0; }

.store-hero-guarantee span {
  width: 38px;
  height: 38px;
  display: block;
  position: relative;
  border: 1px solid rgba(183, 138, 59, .46);
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 42%, rgba(237, 207, 132, .14), transparent 42%),
    rgba(6, 6, 7, .78);
  box-shadow:
    0 0 0 5px rgba(183, 138, 59, .07),
    inset 0 0 18px rgba(0, 0, 0, .74);
}

.store-hero-guarantee span::before,
.store-hero-guarantee span::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  background: linear-gradient(135deg, var(--s-gold-hot), var(--s-gold));
  transform: translate(-50%, -50%);
  filter: drop-shadow(0 0 7px rgba(237, 207, 132, .36));
}

.store-hero-guarantee.is-secure span::before {
  width: 15px;
  height: 12px;
  top: 56%;
  border-radius: 2px;
}

.store-hero-guarantee.is-secure span::after {
  width: 13px;
  height: 11px;
  top: 41%;
  background: transparent;
  border: 2px solid var(--s-gold-hot);
  border-bottom: 0;
  border-radius: 9px 9px 0 0;
}

.store-hero-guarantee.is-instant span::before {
  width: 15px;
  height: 22px;
  clip-path: polygon(56% 0, 18% 49%, 47% 49%, 35% 100%, 84% 38%, 54% 38%);
}

.store-hero-guarantee.is-legacy span::before {
  width: 18px;
  height: 18px;
  clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}

.store-hero-guarantee.is-canon span::before {
  width: 18px;
  height: 21px;
  clip-path: polygon(50% 0, 88% 13%, 88% 48%, 50% 100%, 12% 48%, 12% 13%);
}

.store-hero-guarantee.is-elite span::before {
  width: 21px;
  height: 17px;
  clip-path: polygon(0 38%, 24% 58%, 38% 16%, 50% 55%, 62% 16%, 76% 58%, 100% 38%, 88% 100%, 12% 100%);
}

.store-hero-guarantee h2 {
  margin: 0;
  color: var(--s-gold-hot);
  font-family: Cinzel, Georgia, serif;
  font-size: clamp(11px, .86vw, 14px);
  line-height: 1.08;
  text-transform: uppercase;
}

.store-hero-guarantee p {
  margin: 4px 0 0;
  color: rgba(234, 223, 205, .7);
  font-size: clamp(10px, .74vw, 12px);
  line-height: 1.3;
}

.store-seal-card,
.store-product-card,
.store-relic-card,
.store-packs-card,
.store-honor-card {
  background:
    linear-gradient(145deg, rgba(20, 14, 12, .88), rgba(4, 4, 5, .82)),
    url("/assets/store/store-card-texture.png") center / cover;
  border: 1px solid rgba(154, 93, 36, .34);
  border-radius: 4px;
  box-shadow:
    0 24px 72px rgba(0,0,0,.62),
    inset 0 1px 0 rgba(237,207,132,.04),
    inset 0 0 34px rgba(0,0,0,.34);
  position: relative;
  overflow: hidden;
}

.store-seal-card::before,
.store-product-card::before,
.store-relic-card::before,
.store-packs-card::before,
.store-honor-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, transparent, rgba(255,48,41,.28), transparent) top / 100% 1px no-repeat,
    linear-gradient(90deg, transparent, rgba(154,93,36,.3), transparent) bottom / 100% 1px no-repeat,
    radial-gradient(ellipse at 50% 0, rgba(255,48,41,.12), transparent 9rem),
    radial-gradient(ellipse at 50% 100%, rgba(154,93,36,.08), transparent 9rem);
}

.store-seal-card::after,
.store-product-card::after,
.store-relic-card::after,
.store-packs-card::after,
.store-honor-card::after {
  content: "";
  position: absolute;
  inset: 6px;
  z-index: 0;
  pointer-events: none;
  border: 1px solid rgba(154,93,36,.1);
  border-radius: 2px;
  box-shadow:
    inset 0 0 0 1px rgba(0,0,0,.36),
    inset 0 0 48px rgba(0,0,0,.48);
}

.store-seal-card {
  min-height: 228px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 6px;
  padding: 17px 18px 18px;
  text-align: center;
}

.store-seal-card img {
  width: 154px;
  height: 122px;
  object-fit: contain;
  object-position: center;
  filter: drop-shadow(0 12px 18px rgba(0,0,0,.76)) drop-shadow(0 0 20px rgba(255,48,41,.25));
}

.store-seal-card h2,
.store-product-card h3,
.store-relic-card h2,
.store-packs-card h2,
.store-honor-card h2,
.store-benefit-strip h2,
.store-guarantees h2 {
  margin: 0;
  font-family: Cinzel, Georgia, serif;
  text-transform: uppercase;
}

.store-seal-card h2 {
  max-width: 230px;
  color: #f0e4cf;
  font-size: 20px;
  line-height: 1.04;
}

.store-seal-card p {
  max-width: 210px;
  margin: 0 0 7px;
  color: #cbb9a8;
  font-size: 12px;
  line-height: 1.4;
}

.store-button {
  min-height: 32px;
  min-width: 128px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 48, 41, .56);
  border-radius: 5px;
  padding: 0 18px;
  background:
    linear-gradient(180deg, rgba(255,110,70,.2), transparent 48%),
    linear-gradient(135deg, #79110e, #d1201c 62%, #73100d);
  color: #fff;
  box-shadow: 0 0 0 1px rgba(237,207,132,.08) inset, 0 10px 26px rgba(255,48,41,.24);
  cursor: pointer;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: 1.5px;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform .2s, border-color .2s, box-shadow .2s;
}

.store-button:hover,
.store-button:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(237,207,132,.6);
  box-shadow: 0 0 0 1px rgba(237,207,132,.12) inset, 0 12px 32px rgba(255,48,41,.34);
  outline: 0;
}

.store-button:disabled { opacity: .7; cursor: wait; transform: none; }
.store-button-owned:disabled { cursor: default; opacity: 1; }

.store-button-ghost {
  border-color: rgba(183,138,59,.36);
  background: rgba(255,255,255,.035);
  color: var(--s-gold-hot);
}

.store-action-text { position: relative; z-index: 2; }

.blood-particles {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

.blood-particle {
  position: absolute;
  bottom: 4px;
  width: 5px;
  height: 8px;
  border-radius: 50% 50% 50% 0;
  background: #ff3029;
  filter: drop-shadow(0 0 8px rgba(255,48,41,.85));
  transform: rotate(-45deg);
  animation: blood-rise .82s ease-out forwards;
}

@keyframes blood-rise {
  to { opacity: 0; transform: translateY(calc(var(--rise) * -1)) translateX(var(--drift)) rotate(-45deg) scale(.45); }
}

.store-benefit-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: -2px 36px 10px;
  border: 1px solid rgba(183,138,59,.22);
  background: rgba(5,5,6,.72);
  box-shadow: 0 12px 38px rgba(0,0,0,.38);
}

.store-benefit-strip article,
.store-guarantees article {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 9px;
  align-items: center;
  padding: 10px 13px;
  border-right: 1px solid rgba(183,138,59,.18);
}

.store-benefit-strip article:last-child,
.store-guarantees article:last-child { border-right: 0; }

.store-benefit-strip span,
.store-guarantees span {
  width: 29px;
  height: 29px;
  display: block;
  border: 1px solid rgba(183,138,59,.42);
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(255,48,41,.28), rgba(5,5,6,.92) 68%);
  position: relative;
}

.store-benefit-strip span::before,
.store-guarantees span::before {
  content: "";
  position: absolute;
  inset: 8px;
  background: linear-gradient(135deg, var(--s-gold-hot), var(--s-red-hot));
  clip-path: polygon(50% 0, 62% 34%, 100% 38%, 70% 59%, 80% 100%, 50% 77%, 20% 100%, 30% 59%, 0 38%, 38% 34%);
}

.store-benefit-strip h2,
.store-guarantees h2 {
  color: var(--s-gold-hot);
  font-size: 12px;
  line-height: 1.05;
}

.store-benefit-strip p,
.store-guarantees p {
  margin: 3px 0 0;
  color: var(--s-muted);
  font-size: 10.5px;
  line-height: 1.25;
}

.store-featured {
  margin-top: clamp(74px, 7vw, 124px);
  padding-top: clamp(28px, 3vw, 46px);
  position: relative;
}

.store-featured::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  width: min(980px, 82vw);
  height: 1px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent, rgba(255, 48, 41, .5), rgba(183, 138, 59, .38), transparent);
  box-shadow: 0 0 28px rgba(255, 48, 41, .16);
  pointer-events: none;
}

.store-monthly {
  margin-top: 18px;
  position: relative;
  isolation: isolate;
}

.store-monthly::before {
  content: "";
  position: absolute;
  inset: 74px 8% auto;
  height: 360px;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 50% 46%, rgba(255, 48, 41, .16), transparent 35%),
    radial-gradient(ellipse at 50% 58%, rgba(183, 138, 59, .12), transparent 48%),
    linear-gradient(90deg, transparent, rgba(183, 138, 59, .14), transparent);
  filter: blur(8px);
  opacity: .9;
}

.store-section-title {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 16px;
  align-items: center;
  max-width: 540px;
  margin: 0 auto 9px;
}

.store-section-title span {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,48,41,.66), rgba(183,138,59,.35));
}

.store-section-title span:last-child {
  background: linear-gradient(90deg, rgba(183,138,59,.35), rgba(255,48,41,.66), transparent);
}

.store-section-title h2 {
  margin: 0;
  color: #eadfcd;
  font-family: Cinzel, Georgia, serif;
  font-size: 17px;
  line-height: 1;
  text-transform: uppercase;
}

.store-section-title-stacked {
  max-width: 780px;
  margin-bottom: 13px;
  text-align: center;
}

.store-section-title-stacked > div {
  display: grid;
  gap: 6px;
  justify-items: center;
}

.store-section-kicker {
  margin: 0;
  color: var(--s-gold-hot);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: 4px;
  line-height: 1;
  text-transform: uppercase;
}

.store-section-title small {
  max-width: 620px;
  color: var(--s-muted);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
}

.store-monthly-support {
  width: min(1120px, 100%);
  display: grid;
  grid-template-columns: minmax(280px, .82fr) minmax(0, 1fr);
  gap: clamp(20px, 3vw, 42px);
  align-items: center;
  margin: 6px auto 34px;
  position: relative;
}

.store-monthly-support::before {
  content: "";
  position: absolute;
  inset: 8% 6% 5%;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 24% 44%, rgba(255, 48, 41, .16), transparent 34%),
    radial-gradient(ellipse at 76% 48%, rgba(183, 138, 59, .14), transparent 40%),
    linear-gradient(90deg, transparent, rgba(183, 138, 59, .08), transparent);
  filter: blur(18px);
  opacity: .9;
}

.store-monthly-ritual {
  width: min(430px, 72vw);
  margin: 0;
  justify-self: end;
  position: relative;
  perspective: 900px;
  filter:
    drop-shadow(0 32px 70px rgba(0, 0, 0, .72))
    drop-shadow(0 0 42px rgba(255, 48, 41, .18));
}

.store-monthly-ritual::before {
  content: "";
  position: absolute;
  inset: 12% 5% 8%;
  z-index: -1;
  background:
    radial-gradient(ellipse, rgba(255, 48, 41, .28), rgba(183, 138, 59, .14) 36%, transparent 70%);
  filter: blur(26px);
  opacity: .86;
  animation: store-monthly-aura 4.6s ease-in-out infinite;
}

.store-monthly-ritual::after {
  content: "";
  position: absolute;
  left: 10%;
  right: 10%;
  bottom: -15px;
  height: 30px;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(0, 0, 0, .72), rgba(0, 0, 0, .24) 55%, transparent 76%);
  filter: blur(8px);
  opacity: .7;
}

.store-monthly-ritual img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  transform: rotateX(4deg);
  animation: store-monthly-float 5.8s ease-in-out infinite;
}

@keyframes store-monthly-float {
  0%, 100% { transform: translateY(0) rotateX(4deg) scale(1); }
  50% { transform: translateY(-10px) rotateX(2deg) scale(1.018); }
}

@keyframes store-monthly-aura {
  0%, 100% { opacity: .62; transform: scale(.96); }
  50% { opacity: 1; transform: scale(1.06); }
}

.store-support-card {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  padding: clamp(22px, 2.6vw, 34px);
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(183, 138, 59, .3);
  border-radius: 4px;
  background:
    linear-gradient(135deg, rgba(16, 13, 12, .88), rgba(7, 6, 7, .76)),
    radial-gradient(ellipse at 0 0, rgba(255, 48, 41, .12), transparent 54%),
    url("/assets/store/store-card-texture.png") center / cover;
  box-shadow:
    0 28px 84px rgba(0, 0, 0, .58),
    inset 0 1px 0 rgba(237, 207, 132, .06),
    inset 0 0 44px rgba(0, 0, 0, .34);
}

.store-support-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, transparent, rgba(255, 48, 41, .38), rgba(237, 207, 132, .22), transparent) top / 100% 1px no-repeat,
    radial-gradient(ellipse at 82% 8%, rgba(237, 207, 132, .13), transparent 34%),
    radial-gradient(ellipse at 8% 100%, rgba(255, 48, 41, .12), transparent 42%);
}

.store-support-card > * {
  position: relative;
  z-index: 1;
}

.store-support-card p {
  margin: 0 0 8px;
  color: var(--s-gold-hot);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: 4px;
  line-height: 1;
  text-transform: uppercase;
}

.store-support-card h3 {
  margin: 0 0 14px;
  color: #f2e7d5;
  font-family: Cinzel, Georgia, serif;
  font-size: clamp(25px, 2.8vw, 42px);
  line-height: .94;
  text-transform: uppercase;
  text-shadow:
    0 16px 34px rgba(0, 0, 0, .78),
    0 0 26px rgba(255, 48, 41, .18);
}

.store-support-copy {
  min-width: 0;
  display: grid;
  gap: 11px;
  color: rgba(234, 223, 205, .78);
  font-size: clamp(13px, .96vw, 15px);
  font-weight: 650;
  line-height: 1.58;
  overflow-wrap: anywhere;
}

.store-support-copy span:last-child {
  margin-top: 2px;
  color: #f5e6a3;
  font-family: Cinzel, Georgia, serif;
  font-size: clamp(14px, 1.06vw, 17px);
  font-weight: 800;
  line-height: 1.35;
}

.store-support-copy span,
.store-support-sponsor small {
  display: block;
  max-width: 100%;
  min-width: 0;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.store-support-sponsor {
  display: grid;
  gap: 8px;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid rgba(183, 138, 59, .18);
}

.store-support-sponsor strong {
  color: #eadfcd;
  font-family: Cinzel, Georgia, serif;
  font-size: 15px;
  line-height: 1.2;
  text-transform: uppercase;
}

.store-support-sponsor small {
  min-width: 0;
  max-width: 620px;
  color: var(--s-muted);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.48;
  overflow-wrap: anywhere;
}

.store-support-sponsor a {
  width: fit-content;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 4px;
  padding: 0 15px;
  border: 1px solid rgba(237, 207, 132, .34);
  border-radius: 5px;
  background:
    linear-gradient(135deg, rgba(201, 168, 76, .18), rgba(255, 48, 41, .12)),
    rgba(255, 255, 255, .035);
  color: var(--s-gold-hot);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: 1.7px;
  text-decoration: none;
  text-transform: uppercase;
  box-shadow: 0 16px 38px rgba(0, 0, 0, .24);
  transition: border-color .2s, color .2s, transform .2s, box-shadow .2s;
}

.store-support-sponsor a:hover,
.store-support-sponsor a:focus-visible {
  border-color: rgba(255, 48, 41, .55);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 18px 48px rgba(255, 48, 41, .16);
}

.store-product-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  min-width: 0;
}

.store-product-grid-monthly {
  gap: 22px;
}

.store-featured .store-product-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.store-featured .store-product-card {
  width: min(420px, 100%);
  flex: 0 1 420px;
}

.store-product-card {
  min-width: 0;
  min-height: 420px;
  display: grid;
  grid-template-rows: 198px auto auto auto 1fr auto auto;
  align-content: start;
  justify-items: center;
  gap: 8px;
  padding: 20px 18px 18px;
  text-align: center;
  transition: transform .24s, border-color .24s, box-shadow .24s;
  background:
    radial-gradient(ellipse at 50% 18%, rgba(255,48,41,.024), transparent 13rem),
    linear-gradient(145deg, #111112, #050506 58%, #020203);
}

.store-subscription-card {
  min-height: 620px;
  padding-top: 28px;
}

.store-product-card::after {
  content: "";
  position: absolute;
  inset: 2px;
  z-index: 0;
  pointer-events: none;
  border: 1px solid rgba(154,93,36,.13);
  border-radius: 2px;
  background:
    linear-gradient(90deg, rgba(0,0,0,.16), transparent 12%, transparent 88%, rgba(0,0,0,.16)),
    linear-gradient(180deg, rgba(255,255,255,.035), transparent 18%, transparent 82%, rgba(0,0,0,.2)),
    radial-gradient(ellipse at 50% 22%, rgba(255,48,41,.05), transparent 14rem),
    radial-gradient(ellipse at 50% 58%, rgba(255,255,255,.035), transparent 18rem),
    url("/assets/store/store-fine-grain.png") center / 80px 80px repeat;
  box-shadow:
    inset 0 0 0 1px rgba(0,0,0,.32),
    inset 0 0 44px rgba(0,0,0,.34);
  opacity: .78;
}

.store-product-card > * {
  position: relative;
  z-index: 1;
}

.store-product-card:hover {
  transform: translateY(-3px);
  border-color: rgba(237,207,132,.48);
  box-shadow: 0 26px 78px rgba(0,0,0,.7), 0 0 40px rgba(255,48,41,.15);
}

.store-product-card.is-vial-card {
  border-color: rgba(237, 207, 132, .42);
  background:
    radial-gradient(ellipse at 50% 18%, rgba(255, 48, 41, .038), transparent 13rem),
    linear-gradient(145deg, #121111, #050506 58%, #020203);
  box-shadow:
    0 24px 82px rgba(0,0,0,.66),
    inset 0 1px 0 rgba(237,207,132,.1),
    inset 0 0 34px rgba(255,48,41,.035);
}

.store-product-card.is-vial-card:hover {
  box-shadow:
    0 30px 90px rgba(0,0,0,.74),
    0 0 44px rgba(255,48,41,.22),
    inset 0 0 42px rgba(255,48,41,.1);
}

.store-ribbon {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  max-width: calc(100% - 34px);
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0 20px 0 18px;
  border-radius: 0 4px 0 22px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .12), transparent 42%),
    linear-gradient(135deg, #8a120f, #d8201c 58%, #f23631);
  color: #fff;
  box-shadow:
    0 12px 28px rgba(255, 48, 41, .22),
    inset 0 1px 0 rgba(255, 255, 255, .18);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 2.2px;
  line-height: 1;
  text-transform: uppercase;
}

.store-ribbon::before {
  content: "";
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 12px rgba(255, 255, 255, .72);
}

.store-upgrade-arrow {
  position: absolute;
  top: 58px;
  left: 18px;
  z-index: 3;
}

.store-owned-badge {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 5;
  max-width: calc(100% - 32px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid rgba(245, 230, 163, .32);
  border-radius: 999px;
  background: rgba(201, 168, 76, .1);
  color: var(--s-gold-hot);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 1.7px;
  line-height: 1.05;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
  box-shadow: 0 0 22px rgba(201, 168, 76, .12);
}

.store-upgrade-arrow {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(52, 255, 123, .72);
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 36%, rgba(210,255,228,.78), rgba(52,255,123,.28) 42%, rgba(7,28,15,.92) 74%),
    rgba(6, 18, 10, .92);
  color: #d7ffe4;
  font-size: 18px;
  font-weight: 900;
  text-shadow: 0 0 12px rgba(52,255,123,.92);
  box-shadow:
    0 0 0 0 rgba(52,255,123,.44),
    0 0 24px rgba(52,255,123,.38),
    0 0 52px rgba(52,255,123,.2);
  animation: store-upgrade-arrow-pulse 1.35s ease-in-out infinite;
}

.store-upgrade-arrow::after {
  content: "";
  position: absolute;
  inset: -7px;
  border-radius: inherit;
  border: 1px solid rgba(52, 255, 123, .28);
  opacity: .7;
  animation: store-upgrade-arrow-ring 1.35s ease-out infinite;
}

.store-upgrade-note {
  width: 100%;
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-height: 36px;
  padding: 8px 10px;
  border: 1px solid rgba(245, 230, 163, .16);
  border-radius: 4px;
  background: linear-gradient(135deg, rgba(201,168,76,.07), rgba(255,48,41,.055));
  color: #d7cab5;
  font-size: 10px;
  font-weight: 850;
  line-height: 1.3;
  text-align: left;
}

.store-upgrade-note span {
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(52,255,123,.16);
  color: #caffda;
  font-size: 13px;
  line-height: 1;
  box-shadow: 0 0 18px rgba(52,255,123,.16);
  text-shadow: 0 0 10px rgba(52,255,123,.72);
}

.store-subscription-portal-form {
  width: 100%;
}

.store-subscription-card.is-owned-subscription {
  border-color: rgba(245,230,163,.5);
  box-shadow:
    0 26px 86px rgba(0,0,0,.72),
    0 0 46px rgba(201,168,76,.16),
    inset 0 1px 0 rgba(245,230,163,.14);
}

.store-subscription-card.is-upgrade-subscription {
  border-color: rgba(52,255,123,.46);
  box-shadow:
    0 26px 86px rgba(0,0,0,.72),
    0 0 34px rgba(52,255,123,.12),
    inset 0 1px 0 rgba(210,255,228,.1);
}

.store-button-owned {
  border-color: rgba(245,230,163,.42);
  background: linear-gradient(135deg, rgba(84,62,26,.86), rgba(201,168,76,.24));
  color: #fff7d7;
  box-shadow: 0 0 26px rgba(201,168,76,.14), inset 0 1px 0 rgba(255,255,255,.1);
}

.store-button-upgrade {
  width: 100%;
  border-color: rgba(245,230,163,.5);
  background:
    linear-gradient(135deg, rgba(112, 18, 18, .94), rgba(216, 31, 31, .88)),
    radial-gradient(circle at 50% 0, rgba(245,230,163,.2), transparent 62%);
}

@keyframes store-upgrade-arrow-pulse {
  0%, 100% {
    transform: translateY(0) scale(1);
    filter: brightness(1);
    box-shadow:
      0 0 0 0 rgba(52,255,123,.38),
      0 0 24px rgba(52,255,123,.38),
      0 0 52px rgba(52,255,123,.2);
  }
  45% {
    transform: translateY(-7px) scale(1.1);
    filter: brightness(1.18);
    box-shadow:
      0 0 0 8px rgba(52,255,123,.05),
      0 0 34px rgba(52,255,123,.58),
      0 0 68px rgba(52,255,123,.3);
  }
}

@keyframes store-upgrade-arrow-ring {
  0% {
    opacity: .78;
    transform: scale(.72);
  }
  100% {
    opacity: 0;
    transform: scale(1.42);
  }
}

.store-product-art {
  width: min(100%, 292px);
  min-height: 198px;
  display: grid;
  place-items: center;
  position: relative;
  isolation: isolate;
  margin-top: 2px;
}

.store-product-art::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: -20px -220px 2px;
  width: auto;
  height: auto;
  border-radius: 0;
  border: 0;
  background:
    radial-gradient(ellipse at 50% 44%, rgba(255,48,41,.07), rgba(255,48,41,.025) 28%, transparent 72%),
    radial-gradient(ellipse at 50% 78%, rgba(237,207,132,.04), transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,.025), transparent 42%, rgba(0,0,0,.18)),
    url("/assets/store/store-fine-grain.png") center / 72px 72px repeat;
  box-shadow:
    inset 0 -28px 54px rgba(0,0,0,.28),
    inset 0 0 70px rgba(0,0,0,.28);
  opacity: .58;
}

.store-pack::before {
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.72) 18%, #000 46%, rgba(0,0,0,.5) 78%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.72) 18%, #000 46%, rgba(0,0,0,.5) 78%, transparent 100%);
}

.store-product-art::before {
  -webkit-mask-image:
    linear-gradient(90deg, transparent 0%, rgba(0,0,0,.58) 15%, #000 30%, #000 70%, rgba(0,0,0,.58) 85%, transparent 100%),
    linear-gradient(180deg, transparent 0%, rgba(0,0,0,.72) 18%, #000 46%, rgba(0,0,0,.5) 78%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image:
    linear-gradient(90deg, transparent 0%, rgba(0,0,0,.58) 15%, #000 30%, #000 70%, rgba(0,0,0,.58) 85%, transparent 100%),
    linear-gradient(180deg, transparent 0%, rgba(0,0,0,.72) 18%, #000 46%, rgba(0,0,0,.5) 78%, transparent 100%);
  mask-composite: intersect;
}

.store-product-art::after {
  content: "";
  position: absolute;
  bottom: 25px;
  z-index: 1;
  width: min(150px, 54%);
  height: 13px;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(0,0,0,.58), rgba(0,0,0,.2) 48%, transparent 76%);
  filter: blur(4px);
  opacity: .68;
}

.store-product-art img {
  width: min(238px, 90%);
  height: 164px;
  max-height: none;
  object-fit: contain;
  position: relative;
  z-index: 3;
  mix-blend-mode: screen;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.66) 8%, #000 20%, #000 80%, rgba(0,0,0,.66) 92%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.66) 8%, #000 20%, #000 80%, rgba(0,0,0,.66) 92%, transparent 100%);
  filter:
    contrast(1.1)
    saturate(1.12)
    drop-shadow(0 12px 16px rgba(0,0,0,.86))
    drop-shadow(0 0 17px rgba(255,48,41,.17));
}

.store-product-art img.is-reference-art {
  width: min(248px, 92%);
  height: 168px;
  opacity: .96;
  mix-blend-mode: screen;
  -webkit-mask-image:
    linear-gradient(90deg, transparent 0%, rgba(0,0,0,.36) 7%, rgba(0,0,0,.9) 18%, #000 35%, #000 65%, rgba(0,0,0,.9) 82%, rgba(0,0,0,.36) 93%, transparent 100%),
    linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 8%, #000 22%, #000 74%, rgba(0,0,0,.42) 90%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image:
    linear-gradient(90deg, transparent 0%, rgba(0,0,0,.36) 7%, rgba(0,0,0,.9) 18%, #000 35%, #000 65%, rgba(0,0,0,.9) 82%, rgba(0,0,0,.36) 93%, transparent 100%),
    linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 8%, #000 22%, #000 74%, rgba(0,0,0,.42) 90%, transparent 100%);
  mask-composite: intersect;
  filter:
    contrast(1.16)
    saturate(1.18)
    brightness(.98)
    drop-shadow(0 13px 18px rgba(0,0,0,.88))
    drop-shadow(0 0 18px rgba(255,48,41,.14));
}

.store-product-art img.is-vial-art {
  display: block;
  width: 248px;
  height: 178px;
  max-width: 112%;
  object-fit: contain;
  opacity: 1;
  visibility: visible;
  mix-blend-mode: normal;
  filter:
    contrast(1.08)
    saturate(1.16)
    drop-shadow(0 15px 16px rgba(0,0,0,.9))
    drop-shadow(0 0 18px rgba(255,48,41,.22))
    drop-shadow(0 0 4px rgba(237,207,132,.22));
}

.store-product-art img.is-vial-art[src*="blood-vial-single"] {
  width: 118px;
  height: 182px;
  max-width: 76%;
}

.store-vial-object {
  width: 258px;
  height: 184px;
  display: block;
  position: relative;
  z-index: 3;
  background-position: center bottom;
  background-size: contain;
  background-repeat: no-repeat;
  isolation: isolate;
  filter:
    contrast(1.08)
    saturate(1.16)
    drop-shadow(0 15px 16px rgba(0,0,0,.9))
    drop-shadow(0 0 18px rgba(255,48,41,.24))
    drop-shadow(0 0 4px rgba(237,207,132,.22));
}

.store-vial-object.is-single-vial {
  width: 122px;
  height: 188px;
}

.store-vial-object::before,
.store-vial-object::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background-position: center bottom;
  background-size: contain;
  background-repeat: no-repeat;
  -webkit-mask: var(--vial-image) center bottom / contain no-repeat;
  mask: var(--vial-image) center bottom / contain no-repeat;
}

.store-vial-object::before {
  background:
    radial-gradient(ellipse at 46% 70%, rgba(255,0,0,.42), transparent 28%),
    radial-gradient(ellipse at 58% 58%, rgba(255,72,40,.34), transparent 24%),
    linear-gradient(104deg, transparent 20%, rgba(255,58,35,0) 34%, rgba(255,70,45,.4) 46%, rgba(255,214,150,.18) 52%, rgba(255,0,0,.12) 58%, transparent 72%);
  background-size: 100% 100%, 100% 100%, 230% 100%;
  mix-blend-mode: screen;
  opacity: .78;
  animation: store-liquid-sheen 5.4s ease-in-out infinite;
}

.store-vial-object::after {
  background:
    linear-gradient(100deg, transparent 22%, rgba(255,230,190,.34) 39%, transparent 49%),
    radial-gradient(ellipse at 54% 22%, rgba(255,255,255,.24), transparent 18%),
    radial-gradient(ellipse at 43% 86%, rgba(255,45,30,.28), transparent 22%);
  background-size: 250% 100%, 100% 100%, 100% 100%;
  mix-blend-mode: color-dodge;
  opacity: .38;
  animation: store-glass-glint 4.2s ease-in-out infinite;
}

@keyframes store-liquid-sheen {
  0%, 100% { background-position: center bottom, center bottom, 115% 50%; opacity: .55; }
  48% { background-position: center bottom, center bottom, 8% 50%; opacity: .86; }
}

@keyframes store-glass-glint {
  0%, 100% { background-position: 120% 50%, center bottom, center bottom; opacity: .24; }
  42% { background-position: 0 50%, center bottom, center bottom; opacity: .48; }
}

.store-product-card.is-vial-card .store-product-art::before {
  inset: -22px -220px 2px;
  width: auto;
  height: auto;
  border-radius: 0;
  border-color: rgba(237,207,132,.3);
  background:
    radial-gradient(ellipse at 50% 44%, rgba(255,48,41,.11), rgba(255,48,41,.035) 32%, transparent 72%),
    radial-gradient(ellipse at 50% 82%, rgba(237,207,132,.045), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.03), transparent 42%, rgba(0,0,0,.18)),
    url("/assets/store/store-fine-grain.png") center / 72px 72px repeat;
  box-shadow:
    inset 0 -28px 54px rgba(0,0,0,.3),
    inset 0 0 70px rgba(0,0,0,.28);
  opacity: .64;
}

.store-product-card.is-vial-card .store-product-art::after {
  width: min(116px, 48%);
  height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,.62), rgba(0,0,0,.22) 48%, transparent 76%);
}

.store-product-card h3 {
  max-width: 100%;
  min-height: 50px;
  color: #f0e4cf;
  font-size: 22px;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.store-product-card p {
  align-self: start;
  margin: 0;
  color: #a99887;
  font-size: 14px;
  line-height: 1.4;
}

.store-blood-line {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  margin-top: 1px;
  color: var(--s-gold-hot);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .4px;
  line-height: 1.2;
}

.store-product-perks {
  width: 100%;
  display: grid;
  gap: 8px;
  align-self: start;
  margin: 2px 0 0;
  padding: 0;
  list-style: none;
  text-align: left;
}

.store-product-perks li {
  min-width: 0;
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr);
  gap: 7px;
  color: #8f8177;
  font-size: 12.5px;
  line-height: 1.35;
}

.store-product-perks li::before {
  content: "";
  width: 5px;
  height: 5px;
  margin-top: .45em;
  border-radius: 50%;
  background: var(--s-red-hot);
  box-shadow: 0 0 8px rgba(255,48,41,.58);
}

.store-price {
  display: grid;
  gap: 3px;
  justify-items: center;
  margin: 2px 0;
}

.store-price b {
  color: var(--s-red-hot);
  font-family: Cinzel, Georgia, serif;
  font-size: 36px;
  font-weight: 700;
  line-height: 1;
  text-shadow: 0 0 16px rgba(255,48,41,.28);
}

.store-price small {
  color: var(--s-gold-hot);
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}

.store-price span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 18px;
  padding: 3px 9px;
  border: 1px solid rgba(183, 138, 59, .22);
  border-radius: 999px;
  background: rgba(237, 207, 132, .055);
  color: #d4c5ad;
  font-size: 10.5px;
  font-weight: 850;
  line-height: 1;
}

.store-product-card .store-button {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 0 10px;
  font-size: 10.5px;
}

.store-lower-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr 1.05fr;
  gap: 11px;
  margin-top: 28px;
}

.store-relic-card,
.store-honor-card {
  min-height: 176px;
  display: grid;
  grid-template-columns: 174px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 14px 16px;
}

.store-relic-card img,
.store-honor-card img {
  width: 164px;
  height: 132px;
  object-fit: contain;
  mix-blend-mode: screen;
  filter: contrast(1.08) saturate(1.1) drop-shadow(0 14px 18px rgba(0,0,0,.75));
}

.store-relic-card p,
.store-honor-card p {
  margin: 0 0 4px;
  color: var(--s-red-hot);
  font-family: Cinzel, Georgia, serif;
  font-size: 13px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
}

.store-relic-card h2,
.store-honor-card h2 {
  color: var(--s-gold-hot);
  font-size: 20px;
  line-height: 1.05;
}

.store-relic-card span,
.store-honor-card span {
  display: block;
  margin-top: 6px;
  color: var(--s-muted);
  font-size: 12px;
  line-height: 1.4;
}

.store-price-left { justify-items: start; margin: 9px 0 7px; }
.store-relic-card .store-button { width: min(100%, 300px); }

.store-packs-card {
  min-height: 196px;
  padding: 13px 16px 14px;
  text-align: center;
}

.store-packs-card h2 {
  margin-bottom: 7px;
  color: #eadfcd;
  font-size: 17px;
  line-height: 1;
}

.store-pack-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 9px;
}

.store-pack {
  min-width: 0;
  min-height: 126px;
  display: grid;
  grid-template-rows: 66px 25px 17px 13px;
  justify-items: center;
  gap: 1px;
  position: relative;
  overflow: hidden;
  padding: 7px 5px 6px;
  border: 1px solid rgba(183,138,59,.38);
  border-radius: 4px;
  background:
    linear-gradient(180deg, rgba(237,207,132,.06), transparent 28%, rgba(0,0,0,.22)),
    radial-gradient(ellipse at 50% 21%, rgba(255,48,41,.14), transparent 4.4rem),
    url("/assets/store/store-card-texture.png") center / 250px auto;
  color: inherit;
  cursor: pointer;
  box-shadow:
    inset 0 0 0 1px rgba(0,0,0,.32),
    inset 0 -18px 32px rgba(0,0,0,.42);
  transition: transform .2s, border-color .2s, box-shadow .2s;
}

.store-pack::before {
  content: "";
  position: absolute;
  inset: 7px 7px auto;
  z-index: 0;
  height: 66px;
  border: 1px solid rgba(183,138,59,.18);
  border-radius: 4px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.04), transparent 38%, rgba(0,0,0,.34)),
    radial-gradient(ellipse at center, rgba(255,48,41,.25), transparent 64%),
    url("/assets/store/store-card-texture.png") center / 220px auto;
  box-shadow:
    inset 0 1px 0 rgba(237,207,132,.13),
    inset 0 -18px 28px rgba(0,0,0,.54),
    0 10px 22px rgba(0,0,0,.3);
  opacity: .9;
}

.store-pack::after {
  content: "";
  position: absolute;
  top: 62px;
  z-index: 0;
  width: 58px;
  height: 10px;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(255,48,41,.32), rgba(0,0,0,.68) 60%, transparent 76%);
  filter: blur(1px);
}

.store-pack:hover,
.store-pack:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(255,48,41,.42);
  box-shadow: 0 12px 26px rgba(255,48,41,.12);
  outline: 0;
}

.store-pack img {
  width: 62px;
  height: 66px;
  object-fit: contain;
  position: relative;
  z-index: 2;
  mix-blend-mode: screen;
  filter: contrast(1.08) saturate(1.1) drop-shadow(0 9px 12px rgba(0,0,0,.72));
}

.store-pack img.is-vial-art {
  display: block;
  width: 74px;
  height: 68px;
  object-fit: contain;
  opacity: 1;
  visibility: visible;
  mix-blend-mode: normal;
  filter:
    contrast(1.08)
    saturate(1.15)
    drop-shadow(0 10px 11px rgba(0,0,0,.86))
    drop-shadow(0 0 12px rgba(255,48,41,.22));
}

.store-pack-vial {
  width: 74px;
  height: 68px;
  display: block;
  position: relative;
  z-index: 2;
  background-position: center bottom;
  background-size: contain;
  background-repeat: no-repeat;
  filter:
    contrast(1.08)
    saturate(1.15)
    drop-shadow(0 10px 11px rgba(0,0,0,.86))
    drop-shadow(0 0 12px rgba(255,48,41,.22));
}

.store-pack-vial.is-single-vial {
  width: 38px;
  height: 68px;
}

.store-pack span {
  max-width: 100%;
  color: #eadfcd;
  font-family: Cinzel, Georgia, serif;
  font-size: 9.5px;
  line-height: 1.1;
  text-transform: uppercase;
  overflow: hidden;
  position: relative;
  z-index: 2;
}

.store-pack b {
  color: var(--s-red-hot);
  font-family: Cinzel, Georgia, serif;
  font-size: 15px;
  line-height: 1;
  position: relative;
  z-index: 2;
}

.store-pack small {
  color: var(--s-gold-hot);
  font-size: 8px;
  line-height: 1;
  position: relative;
  z-index: 2;
}

.store-wide-link { width: min(100%, 320px); min-height: 29px; }

.store-honor-card {
  grid-template-columns: 172px minmax(0, 1fr);
}

.store-honor-card h2 {
  color: #e4d8c4;
  font-size: 17px;
  line-height: 1.2;
  text-transform: none;
}

.store-honor-card strong {
  display: block;
  margin-top: 9px;
  color: var(--s-red-hot);
  font-family: Cinzel, Georgia, serif;
  font-size: 35px;
  line-height: .92;
}

.store-honor-card .store-button { margin-top: 9px; }

.store-guarantees {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  margin: 12px 78px 0;
  border-top: 1px solid rgba(183,138,59,.16);
}

.pact-ritual-overlay {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: grid;
  place-items: center;
  padding: 20px;
  background: radial-gradient(circle at 50% 28%, rgba(255,48,41,.24), transparent 27rem), rgba(3,3,4,.86);
  opacity: 0;
  pointer-events: none;
  backdrop-filter: blur(16px);
  transition: opacity .24s;
}

.pact-ritual-overlay.show { opacity: 1; pointer-events: auto; }

.pact-ritual-card {
  width: min(880px, calc(100vw - 28px));
  min-height: 420px;
  display: grid;
  grid-template-columns: minmax(250px, 360px) minmax(0, 1fr);
  gap: 24px;
  position: relative;
  padding: 27px;
  border: 1px solid rgba(237,207,132,.36);
  background: linear-gradient(145deg, rgba(24,14,12,.98), rgba(5,5,6,.98)), url("/assets/store/store-card-texture.png") center / cover;
  box-shadow: 0 40px 120px rgba(0,0,0,.78), 0 0 60px rgba(255,48,41,.18);
  clip-path: polygon(0 16px, 16px 0, calc(100% - 16px) 0, 100% 16px, 100% calc(100% - 16px), calc(100% - 16px) 100%, 16px 100%, 0 calc(100% - 16px));
}

.pact-ritual-x {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 3;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(237,207,132,.28);
  border-radius: 5px;
  background: rgba(0,0,0,.32);
  color: var(--s-gold-hot);
  cursor: pointer;
}

.pact-ritual-stage {
  min-height: 320px;
  display: grid;
  place-items: center;
  position: relative;
}

.pact-ritual-stage::before {
  content: "";
  position: absolute;
  width: 320px;
  max-width: 95%;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1px solid rgba(183,138,59,.24);
  background: radial-gradient(circle, rgba(255,48,41,.16), transparent 62%);
  box-shadow: 0 0 50px rgba(255,48,41,.15), inset 0 0 40px rgba(237,207,132,.07);
}

.pact-ritual-stage img {
  position: relative;
  z-index: 1;
  width: min(300px, 90%);
  max-height: 310px;
  object-fit: contain;
  filter: drop-shadow(0 24px 26px rgba(0,0,0,.75)) drop-shadow(0 0 24px rgba(255,48,41,.22));
}

.pact-ritual-copy {
  display: grid;
  align-content: center;
  gap: 12px;
}

.pact-ritual-copy p {
  margin: 0;
  color: var(--s-gold-hot);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: 2.4px;
  text-transform: uppercase;
}

.pact-ritual-copy h2 {
  margin: 0;
  color: #fff;
  font-family: Cinzel, Georgia, serif;
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1;
  text-transform: uppercase;
}

.pact-ritual-copy h2 span { display: block; color: var(--s-red-hot); }
.pact-ritual-copy > span { color: var(--s-muted); font-size: 14px; line-height: 1.65; }
#pact-blood-reward { color: var(--s-gold-hot); font-family: Cinzel, Georgia, serif; font-size: 24px; }
.pact-ritual-actions { display: flex; flex-wrap: wrap; gap: 9px; }

.pact-spark {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  transform: rotate(var(--angle)) translateX(0);
  box-shadow: 0 0 14px currentColor;
  animation: pact-spark var(--duration) ease-out forwards;
}

@keyframes pact-spark {
  to { opacity: 0; transform: rotate(var(--angle)) translateX(var(--distance)); }
}

.store-toast {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 560;
  width: min(420px, calc(100vw - 36px));
  min-height: 46px;
  display: flex;
  align-items: center;
  padding: 13px 15px;
  border: 1px solid rgba(237,207,132,.32);
  border-radius: 7px;
  background: linear-gradient(135deg, rgba(24,14,12,.98), rgba(5,5,6,.98));
  color: #f0e4cf;
  box-shadow: 0 22px 70px rgba(0,0,0,.58), 0 0 30px rgba(255,48,41,.18);
  font-size: 13px;
  line-height: 1.4;
  opacity: 0;
  pointer-events: none;
  transform: translateY(12px);
  transition: opacity .2s, transform .2s;
}

.store-toast.show { opacity: 1; transform: none; }

@media (max-width: 1280px) {
  .store-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .store-product-card { min-height: 400px; }
  .store-subscription-card { min-height: 560px; }
  .store-lower-grid { grid-template-columns: 1fr; }
  .store-hero-guarantees { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .store-hero-guarantee:nth-child(3) { border-right: 0; }
  .store-hero-guarantee:nth-child(n+4) { border-top: 1px solid rgba(183, 138, 59, .14); }
  .store-guarantees { margin-inline: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .store-page {
    padding-top: 112px;
    background:
      linear-gradient(180deg, rgba(4, 4, 5, .05) 0, rgba(4, 4, 5, .14) 292px, rgba(4, 4, 5, .68) 640px, #040405 840px),
      linear-gradient(90deg, #040405 0%, rgba(4, 4, 5, .28) 18%, rgba(4, 4, 5, .08) 50%, rgba(4, 4, 5, .34) 82%, #040405 100%),
      radial-gradient(ellipse at 58% 336px, rgba(255, 48, 41, .18), transparent 17rem),
      radial-gradient(ellipse at 58% 292px, rgba(255, 19, 19, .17), transparent 7rem),
      url("/assets/store/reference/store-hero-immortalis-face.png") 58% 92px / auto 560px no-repeat,
      #040405;
  }
  .store-shell { width: min(calc(100% - 24px), 1510px); }
  .store-hero { min-height: 470px; padding: 16px; }
  .store-hero-logo { top: 18px; width: min(720px, 88vw); }
  .store-hero-guarantees { grid-template-columns: 1fr; }
  .store-hero-guarantee,
  .store-hero-guarantee:nth-child(3) {
    border-right: 0;
    border-top: 1px solid rgba(183, 138, 59, .14);
  }
  .store-hero-guarantee:first-child { border-top: 0; }
  .store-kicker { letter-spacing: 4px; font-size: 9px; }
  .store-hero h1 { font-size: clamp(42px, 12vw, 70px); }
  .store-hero h1 span { font-size: clamp(24px, 6vw, 34px); }
  .store-line { font-size: 13px; }
  .store-line { display: grid; gap: 2px; justify-content: start; }
  .store-intro { margin-left: 0; max-width: 360px; }
  .store-monthly::before { inset: 92px 2% auto; height: 300px; }
  .store-monthly-support {
    grid-template-columns: 1fr;
    gap: 22px;
    margin-bottom: 28px;
  }
  .store-monthly-ritual {
    width: min(360px, 82vw);
    justify-self: center;
  }
  .store-featured { margin-top: 64px; padding-top: 30px; }
  .store-seal-card { max-width: 420px; justify-self: center; width: 100%; }
  .store-benefit-strip { margin: 10px 0; grid-template-columns: 1fr; }
  .store-benefit-strip article { border-right: 0; border-bottom: 1px solid rgba(183,138,59,.16); }
  .store-benefit-strip article:last-child { border-bottom: 0; }
  .store-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .store-relic-card,
  .store-honor-card { grid-template-columns: 140px minmax(0, 1fr); }
  .store-relic-card img,
  .store-honor-card img { width: 132px; height: 110px; }
  .store-pack-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .store-guarantees { grid-template-columns: 1fr; }
  .store-guarantees article { border-right: 0; border-bottom: 1px solid rgba(183,138,59,.14); }
}

@media (max-width: 560px) {
  .store-page {
    padding-top: 96px;
    background:
      linear-gradient(180deg, rgba(4, 4, 5, .03) 0, rgba(4, 4, 5, .16) 272px, rgba(4, 4, 5, .74) 585px, #040405 760px),
      linear-gradient(90deg, #040405 0%, rgba(4, 4, 5, .2) 18%, rgba(4, 4, 5, .06) 50%, rgba(4, 4, 5, .24) 82%, #040405 100%),
      radial-gradient(ellipse at 58% 304px, rgba(255, 48, 41, .16), transparent 15rem),
      radial-gradient(ellipse at 58% 250px, rgba(255, 19, 19, .16), transparent 6rem),
      url("/assets/store/reference/store-hero-immortalis-face.png") 58% 68px / auto 430px no-repeat,
      #040405;
  }
  .store-shell { width: min(calc(100% - 26px), 1510px); }
  .store-hero { min-height: 520px; padding: 12px; }
  .store-hero-logo { top: 22px; width: min(500px, 96vw); }
  .store-hero-guarantee { grid-template-columns: 38px minmax(0, 1fr); gap: 10px; padding: 10px 12px; }
  .store-hero-guarantee span { width: 32px; height: 32px; }
  .store-hero h1 { font-size: 38px; line-height: .88; }
  .store-hero h1 span { font-size: 23px; }
  .store-monthly::before { inset: 110px 0 auto; height: 250px; }
  .store-monthly-support {
    gap: 18px;
    width: min(320px, calc(100vw - 52px));
    max-width: min(320px, calc(100vw - 52px));
    justify-items: center;
    margin: 4px auto 24px;
    overflow: hidden;
  }
  .store-monthly-ritual { width: min(300px, 80vw); }
  .store-support-card {
    width: min(320px, calc(100vw - 52px));
    max-width: min(320px, calc(100vw - 52px));
    padding: 22px 18px;
  }
  .store-support-card p { font-size: 9px; letter-spacing: 3px; }
  .store-support-copy { font-size: 11.5px; line-height: 1.5; }
  .store-support-copy span:last-child { font-size: 12.2px; }
  .store-support-sponsor small { font-size: 11px; }
  .store-support-sponsor a { width: 100%; }
  .store-featured { margin-top: 52px; padding-top: 26px; }
  .store-section-title { grid-template-columns: 1fr; }
  .store-section-title > span { display: none; }
  .store-product-grid { grid-template-columns: 1fr; }
  .store-featured .store-product-card { width: 100%; flex-basis: 100%; }
  .store-owned-badge {
    top: 12px;
    left: 12px;
    max-width: calc(100% - 24px);
    min-height: 30px;
    padding: 0 11px;
    font-size: 8px;
    letter-spacing: 1.25px;
  }
  .store-ribbon {
    left: 0;
    right: auto;
    max-width: calc(100% - 24px);
    min-height: 36px;
    gap: 8px;
    padding: 0 15px 0 14px;
    border-radius: 0 0 18px 4px;
    font-size: 9px;
    letter-spacing: 1.6px;
  }
  .store-ribbon::before { width: 7px; height: 7px; }
  .store-product-card { min-height: 0; grid-template-rows: 206px auto auto auto auto auto auto; padding-inline: 13px; }
  .store-product-card h3 { width: 100%; max-width: 310px; min-height: 0; justify-self: center; font-size: 18px; overflow-wrap: anywhere; word-break: normal; }
  .store-product-card p { width: 100%; max-width: 300px; justify-self: center; }
  .store-product-perks { max-width: 300px; justify-self: center; }
  .store-product-card .store-button { width: min(100%, 330px); }
  .store-relic-card,
  .store-honor-card { grid-template-columns: 1fr; text-align: center; }
  .store-relic-card img,
  .store-honor-card img { justify-self: center; width: 176px; height: 130px; }
  .store-price-left { justify-items: center; }
  .store-pack-row { grid-template-columns: 1fr; }
  .store-pack { min-height: 78px; grid-template-columns: 62px minmax(0, 1fr) auto; grid-template-rows: auto auto; align-items: center; text-align: left; justify-items: start; padding: 8px; }
  .store-pack img { grid-row: 1 / span 2; width: 55px; height: 56px; }
  .store-pack small { grid-column: 2 / span 2; }
  .pact-ritual-card { grid-template-columns: 1fr; padding: 18px; max-height: calc(100vh - 24px); overflow: auto; }
  .pact-ritual-stage { min-height: 230px; }
  .pact-ritual-copy { text-align: center; }
  .pact-ritual-actions { display: grid; }
  .pact-ritual-actions .store-button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .store-product-card::after,
  .store-product-art::before,
  .store-product-card.is-vial-card .store-product-art::before,
  .store-monthly-ritual::before,
  .store-monthly-ritual img,
  .store-vial-object::before,
  .store-vial-object::after {
    animation: none;
  }
}
