/* The capsule store and the opening (open.html), in the Arceus look. Mobile first.

   The opening choreography is the prototype's, kept beat for beat (three packs you can
   turn, a charge with rings and sparks, a screen shake, the torn pack, a white flash, the
   creature arriving out of the light). Its rules are kept below exactly as they were;
   only the dressing around them moved to the Arceus kit: smoky panels, cream headers,
   gold accents, the purple kept for $QORPO actions. open.js and buy.js build the store
   cards, the reveal card and the buy dialog, so their class names are styled here as is.
   Page-only classes are prefixed s-. Needs arceus.css and body class="arc". */

.s-page{--s-gap:clamp(16px,2.2vw,24px)}

/* ── hero ─────────────────────────────────────────────────────────────── */
.s-hero{position:relative;isolation:isolate;overflow:hidden;padding:clamp(40px,7vw,100px) 0 clamp(40px,6vw,76px);background:var(--a-night)}
.s-hero__art{position:absolute;inset:0;z-index:-3}
.s-hero__art img{width:100%;height:100%;object-fit:cover;object-position:60% 40%;opacity:.5}
.s-hero::before{content:"";position:absolute;inset:0;z-index:-2;
  background:radial-gradient(50% 70% at 80% 50%,rgba(145,70,255,.24),transparent 70%),
             linear-gradient(90deg,rgba(11,13,20,.97) 0%,rgba(11,13,20,.82) 50%,rgba(11,13,20,.35) 100%),
             linear-gradient(0deg,var(--a-night) 0%,transparent 45%)}
.s-hero .a-vignette{z-index:-1}
.s-hero__in{display:grid;grid-template-columns:1fr;gap:26px;align-items:center}
@media(min-width:980px){.s-hero__in{grid-template-columns:1.1fr .9fr}}
.s-hero .a-h1{font-size:clamp(38px,5.6vw,78px);margin:6px 0 4px}
.s-hero .a-lead{max-width:56ch}
.s-hero__cta{margin-top:26px}
.s-facts{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media(min-width:700px){.s-facts{grid-template-columns:repeat(4,minmax(0,1fr))}}
.s-facts li{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--a-r);background:var(--a-smoke);
  box-shadow:var(--a-rim);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.s-facts .a-diamond{margin-top:6px;flex:0 0 auto;width:8px;height:8px}
.s-facts span{display:flex;flex-direction:column;font-size:12.5px;line-height:1.35;color:var(--a-dim)}
.s-facts b{font-family:var(--a-display);font-weight:400;font-size:17px;white-space:nowrap;color:var(--a-cream);letter-spacing:.01em}
.s-cast{position:relative;height:clamp(240px,34vw,470px);pointer-events:none;max-width:560px;width:100%;margin:0 auto}
.s-cast img{position:absolute;bottom:0;height:auto;animation:sBob 7s ease-in-out infinite}
/* the shadow sits on the group, so the three packs cast one soft shadow together */
.s-cast__g{position:absolute;inset:0;filter:drop-shadow(0 30px 40px rgba(0,0,0,.6))}
.s-cast .c1{left:0;bottom:10%;width:36%;rotate:-10deg;animation-delay:-2s}
.s-cast .c2{left:26%;bottom:4%;width:50%;z-index:2}
.s-cast .c3{right:0;bottom:12%;width:36%;rotate:9deg;animation-delay:-4s}
.s-cast::before{content:"";position:absolute;left:8%;right:8%;bottom:0;height:40%;border-radius:50%;
  background:radial-gradient(ellipse,rgba(231,182,74,.34),transparent 70%);filter:blur(22px)}
@keyframes sBob{0%,100%{translate:0 0}50%{translate:0 -12px}}
@media(max-width:979px){.s-cast{height:230px;max-width:420px;order:-1}}

/* ── store cards (built by open.js: .pack and friends) ─────────────────── */
.store{display:grid;grid-template-columns:1fr;gap:var(--s-gap);align-items:stretch;padding-top:6px}
@media(min-width:760px){.store{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.store{grid-template-columns:repeat(4,minmax(0,1fr))}}
.pack{--pc:var(--a-gold);position:relative;display:flex;flex-direction:column;min-width:0;border-radius:var(--a-r-lg);
  background:var(--a-smoke);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  box-shadow:var(--a-rim),var(--a-shadow);padding:0 18px 18px;overflow:hidden;color:var(--a-text);
  transition:transform var(--a-slow) var(--a-ease),box-shadow var(--a-slow) var(--a-ease)}
.pack::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--pc);opacity:.9}
.pack:hover,.pack:focus-within{transform:translateY(-6px);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pc) 55%,transparent),0 30px 60px rgba(0,0,0,.5)}
.pack.best{box-shadow:inset 0 0 0 1px rgba(231,182,74,.55),var(--a-shadow)}
.pack.s-skel{gap:14px;padding-top:22px;min-height:420px}
.pack .shot{margin:0 -18px 16px}
.pack .tag2{font:800 11px/1.2 var(--a-body);letter-spacing:.22em;text-transform:uppercase;color:var(--pc)}
.pack h3{font-family:var(--a-display);font-weight:400;font-size:30px;line-height:1;color:var(--a-cream);margin:6px 0 0;text-transform:none}
.pack .price{font-family:var(--a-display);font-size:36px;line-height:1;margin:14px 0 2px;color:var(--a-gold-hi)}
.pack .usd{font-size:12.5px;color:var(--a-dim);font-weight:600}
.pack .odds{display:flex;gap:3px;margin-top:16px;height:8px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.08)}
.pack .odds i{display:block;height:100%;min-width:2px}
.pack .oddskey{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:10px;font-size:11.5px;font-weight:700;color:var(--a-soft)}
.pack .oddskey span{display:inline-flex;align-items:center;gap:6px}
.pack .oddskey b{width:8px;height:8px;border-radius:2px;transform:rotate(45deg)}
.split3{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}
.split3 div{border-radius:10px;padding:8px 6px;text-align:center;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px var(--a-rule-2)}
.split3 .k{display:block;font-size:9.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--a-dim)}
.split3 .v{display:block;font-family:var(--a-display);font-size:18px;line-height:1.1;margin-top:3px;color:var(--a-cream)}
.split3 .v.burn{color:var(--el-fire)}.split3 .v.tre{color:var(--a-purple-soft)}.split3 .v.fee{color:var(--a-leaf)}
.pack ul{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px}
.pack li{font-size:14px;line-height:1.45;display:flex;gap:10px;align-items:flex-start;color:var(--a-soft)}
.pack li::before{content:"";width:7px;height:7px;background:var(--pc);transform:rotate(45deg);margin-top:7px;flex:0 0 auto}
.guarantee{margin-top:14px;font-size:12.5px;line-height:1.5;color:var(--a-dim);border-top:1px solid var(--a-rule);padding-top:12px}
.guarantee b{color:var(--a-cream)}
.pack .buy{margin-top:auto;padding-top:18px;display:flex;flex-direction:column;gap:9px}
.pack .buy .btn{width:100%}
.pack .buy button[disabled]{opacity:.6;cursor:not-allowed;transform:none}
/* Buttons open.js and buy.js write with the old names, dressed as the kit's buttons:
   paying is a token action (purple), trying is quiet (smoke), everything else gold. */
.arc .btn-y{background:var(--a-grad-gold);color:#2B1E05;text-shadow:0 1px 0 rgba(255,255,255,.35);box-shadow:0 14px 30px rgba(231,182,74,.28)}
.arc .btn-o,.arc .btn-o.on-dark{background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.06));color:var(--a-cream);box-shadow:none}
.arc .btn-o:hover{background:linear-gradient(180deg,rgba(255,255,255,.24),rgba(255,255,255,.1))}
.arc [data-buy].btn,.arc #buyGo.btn{background:linear-gradient(180deg,#A66BFF,#7B34E8);color:#fff;text-shadow:none;box-shadow:0 14px 30px rgba(145,70,255,.32)}
.arc .btn-y::after,.arc .btn-o::after{display:none}
.s-notes{display:grid;gap:8px;margin-top:22px;max-width:86ch}
.s-notes b{color:var(--a-cream)}

/* ── how a purchase works ─────────────────────────────────────────────── */
.s-how{display:grid;grid-template-columns:1fr;gap:var(--s-gap);align-items:start}
@media(min-width:960px){.s-how{grid-template-columns:1.15fr .85fr}}
.s-steplist{list-style:none;margin:0;padding:0}
.s-steplist .a-band{padding-left:16px}
.s-steplist .a-band::before{display:none}
.s-n{flex:0 0 auto;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;
  font:400 16px/1 var(--a-display);color:var(--a-gold-hi);box-shadow:inset 0 0 0 1px rgba(231,182,74,.5)}
.s-steplist .a-band:hover .s-n{background:var(--a-gold);color:var(--a-ink)}
.s-side{display:grid;gap:var(--s-gap)}
.s-split,.s-truth{padding:20px 22px;display:flex;flex-direction:column;gap:12px}
.s-truth p{margin:0;font-size:14.5px;line-height:1.55}
.s-truth .btn{align-self:flex-start}
.s-splitbar{display:flex;gap:3px;height:14px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.06)}
.s-splitbar i,.s-splitleg i{display:block;background:var(--a-dim)}
.s-splitbar .burn,.s-splitleg .burn{background:linear-gradient(90deg,#FF9A5C,var(--el-fire))}
.s-splitbar .tre,.s-splitleg .tre{background:linear-gradient(90deg,#A66BFF,#7B34E8)}
.s-splitleg .team{background:var(--a-leaf)}
.s-splitleg{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14px;color:var(--a-soft)}
.s-splitleg li{display:flex;align-items:center;gap:10px}
.s-splitleg i{width:10px;height:10px;border-radius:2px;transform:rotate(45deg);flex:0 0 auto}
.s-splitleg b{font-family:var(--a-display);font-weight:400;font-size:18px;color:var(--a-cream);min-width:44px}

/* ── the theatre ─────────────────────────────────────────────────────── */
.s-theatre{position:relative;background:#06080D}
.openhead{padding:clamp(52px,7vw,96px) 0 26px;background:radial-gradient(70% 90% at 20% 0%,rgba(231,182,74,.08),transparent 70%),linear-gradient(180deg,var(--a-night),#06080D)}
.openhead .a-lead{max-width:62ch}
.openhead .eyebrow{font-size:12px;letter-spacing:.24em;color:var(--a-gold)}
.s-pickrow{margin-top:22px}
.burnline{font-size:13.5px;line-height:1.55;color:var(--a-dim);margin-top:16px;max-width:80ch}
.burnline b{color:var(--el-fire)}
.tierpick{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:var(--a-r-pill);background:var(--a-smoke);box-shadow:var(--a-rim)}
.tierpick button{position:relative;font:800 12px/1 var(--a-body);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;
  height:40px;padding:0 18px 0 30px;border-radius:var(--a-r-pill);border:0;color:var(--a-soft);background:transparent;
  transition:background var(--a-dur) var(--a-ease),color var(--a-dur) var(--a-ease)}
.tierpick button::before{content:"";position:absolute;left:14px;top:50%;width:7px;height:7px;margin-top:-3.5px;background:var(--a-gold);
  transform:rotate(45deg) scale(0);transition:transform var(--a-dur) var(--a-back)}
.tierpick button:hover{color:var(--a-cream);background:rgba(255,255,255,.06)}
.tierpick button[aria-pressed=true]{background:var(--a-cream);color:var(--a-ink)}
.tierpick button[aria-pressed=true]::before{transform:rotate(45deg) scale(1)}

.open{position:relative;min-height:min(86vh,840px);overflow:hidden;
  background:radial-gradient(120% 90% at 50% 40%,rgba(24,16,38,.92),#06080D 70%),#06080D;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  --rar:#FDCA4B}
.open .hint{position:absolute;top:6%;left:0;right:0;text-align:center;z-index:6;transition:opacity .4s var(--ease)}
.open .hint h3{font-family:var(--display);font-size:clamp(22px,3vw,34px);color:#fff}
.open .hint p{color:#8B93A5;font-size:13.5px;margin-top:6px}

.picker{display:flex;gap:clamp(10px,3vw,40px);align-items:center;justify-content:center;width:100%;padding:0 16px}
.pick{position:relative;width:min(28vw,230px);aspect-ratio:.62;perspective:900px;cursor:grab;
  transition:transform .3s cubic-bezier(.34,1.56,.64,1),filter .3s var(--ease),opacity .3s;
  filter:brightness(.74) saturate(.92)}
.pick:active{cursor:grabbing}
.pick:hover{transform:translateY(-14px) scale(1.03);filter:brightness(1)}
.pick.chosen{transform:translateY(-6px) scale(1.12);filter:brightness(1.08);z-index:3}
.pick.gone{opacity:0;transform:scale(.9) translateY(40px);pointer-events:none}
.capsule{position:absolute;inset:0;transform-style:preserve-3d;
  transform:rotateX(4deg) rotateY(-14deg);transition:transform .5s var(--ease);
  animation:capfloat 6s ease-in-out infinite}
.capsule.dragging{transition:none;animation:none}
@keyframes capfloat{0%,100%{translate:0 -8px}50%{translate:0 8px}}
.pick .capsule{animation-duration:7s}
.pick:nth-child(2) .capsule{animation-delay:-2s}
.pick:nth-child(3) .capsule{animation-delay:-4s}
.cap-img{position:absolute;left:50%;top:50%;translate:-50% -50%;width:106%;display:block;
  filter:drop-shadow(0 30px 50px rgba(0,0,0,.9))}
.cap-glow{position:absolute;left:50%;top:50%;translate:-50% -50%;width:150%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,var(--rar),transparent 62%);opacity:.16;filter:blur(38px);z-index:-1;
  transition:opacity .4s var(--ease)}
.pick:hover .cap-glow{opacity:.3}
.cap-shadow{position:absolute;left:50%;bottom:-9%;translate:-50%;width:70%;height:22px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(0,0,0,.75),transparent 70%);filter:blur(9px)}

.stagebar{position:absolute;bottom:5%;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:12px;
  z-index:6;transition:opacity .4s var(--ease)}
.count{font-size:11.5px;color:#7C8496;letter-spacing:.12em;font-weight:700;text-transform:uppercase}
.skip{font-size:11.5px;color:#8B93A5;letter-spacing:.1em;text-transform:uppercase;font-weight:800;
  border-bottom:2px solid rgba(255,255,255,.18);padding-bottom:2px}
.skip:hover{color:#fff}

.charging .capsule{animation:capshake .16s linear infinite}
@keyframes capshake{0%{translate:-1px 0}25%{translate:2px -1px}50%{translate:-2px 1px}75%{translate:1px 1px}100%{translate:-1px 0}}
.ring{position:absolute;left:50%;top:50%;translate:-50% -50%;border-radius:50%;
  border:1px solid var(--rar);opacity:0;pointer-events:none}
.ring.go{animation:ringIn 1.05s var(--ease) forwards}
@keyframes ringIn{0%{width:520px;height:520px;opacity:0}30%{opacity:.55}100%{width:60px;height:60px;opacity:0}}
.torn{position:absolute;left:50%;top:50%;translate:-50% -50%;width:min(62vh,520px);
  opacity:0;pointer-events:none;z-index:35;
  filter:drop-shadow(0 0 60px color-mix(in srgb,var(--rar) 65%,transparent))}
.torn.go{animation:tornIn 1.25s var(--ease) forwards}
@keyframes tornIn{0%{opacity:0;scale:.72}18%{opacity:1;scale:1.02}62%{opacity:1;scale:1.1}100%{opacity:0;scale:1.3}}
.flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:40}
.flash.go{animation:flash 1.1s var(--ease) forwards}
@keyframes flash{0%{opacity:0}8%{opacity:1}24%{opacity:.25}42%{opacity:.9}100%{opacity:0}}
.shakeScreen{animation:screenShake .5s var(--ease)}
@keyframes screenShake{0%,100%{transform:translate(0,0)}20%{transform:translate(-7px,3px)}
  40%{transform:translate(6px,-4px)}60%{transform:translate(-4px,-3px)}80%{transform:translate(4px,3px)}}
.spark{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--rar);pointer-events:none;
  box-shadow:0 0 8px var(--rar);z-index:30}

/* the pack shadow sits on its turning wrapper, so it turns with the pack */
.pick .cap-img{filter:none}
.pick .capsule{filter:drop-shadow(0 30px 50px rgba(0,0,0,.9))}
.open .hint h3{color:var(--a-cream);font-weight:400}
.open .hint p{color:var(--a-dim)}
.count{color:var(--a-dim)}
.skip{color:var(--a-soft);background:none;border:0;border-bottom:1px solid rgba(231,182,74,.5);cursor:pointer;font:800 11.5px/1.4 var(--a-body);letter-spacing:.14em;text-transform:uppercase}
.skip:hover{color:var(--a-gold-hi)}
@media(max-width:600px){.pick{width:30vw}.open{min-height:560px}}

/* ── the reveal ──────────────────────────────────────────────────────── */
.reveal{position:absolute;inset:0;display:grid;grid-template-columns:1.1fr .9fr;opacity:0;pointer-events:none;
  transition:opacity .5s var(--ease);z-index:45}
.reveal.on{opacity:1;pointer-events:auto}
@media(max-width:900px){.reveal{grid-template-columns:1fr;grid-template-rows:minmax(280px,44vh) 1fr;overflow-y:auto}}
.creature-stage{position:relative;display:grid;place-items:center;overflow:hidden}
.aura{position:absolute;width:min(78%,540px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,var(--rar),transparent 62%);opacity:.14;filter:blur(46px)}
.aura.pulse{animation:auraPulse 4.5s ease-in-out infinite}
@keyframes auraPulse{0%,100%{opacity:.14;scale:1}50%{opacity:.3;scale:1.08}}
.halo{position:absolute;width:min(62%,420px);aspect-ratio:1;border-radius:50%;
  border:1px solid color-mix(in srgb,var(--rar) 45%,transparent);opacity:.5;
  background:conic-gradient(from 0deg,transparent,color-mix(in srgb,var(--rar) 22%,transparent),transparent 42%);
  animation:halospin 18s linear infinite}
@keyframes halospin{to{rotate:360deg}}
.floorlight{position:absolute;bottom:8%;left:50%;translate:-50%;width:min(60%,420px);height:60px;border-radius:50%;
  background:radial-gradient(ellipse,color-mix(in srgb,var(--rar) 40%,transparent),transparent 70%);filter:blur(18px)}
.shafts{position:absolute;inset:0;pointer-events:none;opacity:.22;
  background:repeating-conic-gradient(from 0deg at 50% 45%,transparent 0 7deg,color-mix(in srgb,var(--rar) 28%,transparent) 7deg 9deg);
  mask:radial-gradient(circle at 50% 45%,#000 10%,transparent 62%);
  -webkit-mask:radial-gradient(circle at 50% 45%,#000 10%,transparent 62%);
  animation:halospin 60s linear infinite}
.motes{position:absolute;inset:0;pointer-events:none}
.mote{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--rar);
  box-shadow:0 0 9px var(--rar);animation:moterise linear infinite}
@keyframes moterise{0%{transform:translateY(0);opacity:0}12%{opacity:.85}100%{transform:translateY(-70vh);opacity:0}}
.creature{position:relative;width:min(62%,420px);z-index:3;display:grid;place-items:center}
.creature img{width:100%;display:block;filter:drop-shadow(0 30px 44px rgba(0,0,0,.55))}
.creature.silhouette img{filter:brightness(0) drop-shadow(0 0 30px var(--rar))}
.creature.enter{animation:creatureIn 1.1s cubic-bezier(.34,1.56,.64,1)}
@keyframes creatureIn{0%{opacity:0;scale:.6;filter:brightness(6) blur(6px)}
  45%{opacity:1;filter:brightness(2.4) blur(0)}100%{opacity:1;scale:1;filter:brightness(1)}}
.creature.breathe{animation:creatureBreathe 4.2s ease-in-out infinite}
@keyframes creatureBreathe{0%,100%{translate:0 0;scale:1}50%{translate:0 -10px;scale:1.012}}
.creature .fallback{width:min(300px,70%);aspect-ratio:1;
  background:url('/assets/icons/Logo.svg') center/70% no-repeat;filter:invert(1);opacity:.2}
.serialmark{position:absolute;top:22px;left:24px;font-size:11px;color:var(--a-dim);letter-spacing:.2em;
  font-weight:800;z-index:5;text-transform:uppercase}

.info{background:linear-gradient(180deg,rgba(18,18,26,.9),rgba(9,9,14,.96));box-shadow:inset 1px 0 0 var(--a-rule);
  padding:clamp(22px,3vw,36px);display:flex;flex-direction:column;gap:16px;overflow-y:auto;color:var(--a-text)}
@media(max-width:900px){.info{box-shadow:inset 0 1px 0 var(--a-rule)}}
.info>*{flex-shrink:0}
.info .owned{font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--a-dim);line-height:1.5}
.info .owned a{color:var(--a-gold-hi)}
.rar-badge{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;height:28px;
  background:var(--a-cream);color:var(--a-ink);border-radius:var(--a-r-pill);padding:0 14px;
  font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase}
.rar-badge .dot{width:8px;height:8px;background:var(--rar);transform:rotate(45deg)}
.info .cname{font-family:var(--a-display);font-weight:400;font-size:clamp(34px,4.4vw,56px);line-height:.98;color:var(--a-cream);text-transform:none}
.info .meta{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;border-radius:var(--a-r);overflow:hidden;background:var(--a-rule-2)}
.info .meta>div{background:rgba(18,18,26,.9);padding:10px 12px}
.info .meta .k{font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--a-dim)}
.info .meta .v{font-family:var(--a-display);font-size:19px;margin-top:3px;color:var(--a-cream)}
.info .stats{display:flex;flex-direction:column;gap:9px}
.info .srow .l{display:flex;justify-content:space-between;font-size:11px;font-weight:800;
  letter-spacing:.16em;text-transform:uppercase;color:var(--a-dim);margin-bottom:5px}
.info .srow .l b{color:var(--a-cream);font-family:var(--a-display);font-weight:400;font-size:15px;letter-spacing:0}
.info .bar{height:6px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}
.info .bar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--a-gold),var(--a-gold-hi));width:0;transition:width .9s var(--a-ease)}
.info .traits{display:flex;flex-wrap:wrap;gap:7px}
.info .trait{font-size:11.5px;font-weight:700;border-radius:99px;padding:5px 11px;color:var(--a-soft);box-shadow:inset 0 0 0 1px var(--a-rule)}
.info .trait b{color:var(--a-cream)}
.info .ability{border-radius:12px;padding:12px 14px 12px 30px;position:relative;background:var(--a-band);box-shadow:inset 0 0 0 1px var(--a-rule-2)}
.info .ability::before{content:"";position:absolute;left:12px;top:18px;width:7px;height:7px;background:var(--rar);transform:rotate(45deg)}
.info .ability .n{font-family:var(--a-display);font-size:17px;color:var(--a-cream)}
.info .ability .d{font-size:13px;color:var(--a-dim);margin-top:3px}
/* The shard block: the same card as an ability, with the running total drawn under it. */
.info .ability.shards::before{background:var(--a-gold)}
.info .ability.shards .n{color:var(--a-gold-hi)}
.info .ability.shards .bar{margin-top:10px;height:6px;border-radius:99px;background:rgba(255,255,255,.10);overflow:hidden}
.info .ability.shards .bar i{display:block;height:100%;width:0;border-radius:99px;
  background:linear-gradient(90deg,#FED654,#E7B64A);transition:width .9s cubic-bezier(.2,.7,.2,1)}
.info .actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.info .actions .btn{flex:1 1 160px}

/* ── what is inside ─────────────────────────────────────────────────── */
.s-three{display:grid;grid-template-columns:1fr;gap:var(--s-gap)}
@media(min-width:860px){.s-three{grid-template-columns:repeat(3,minmax(0,1fr))}}
.s-three p{margin:0;font-size:14.5px;line-height:1.55}
.s-fair{display:grid;grid-template-columns:1fr;gap:var(--s-gap);margin-top:var(--s-gap)}
@media(min-width:860px){.s-fair{grid-template-columns:1fr 1fr}}
.s-fair__card{padding:clamp(22px,3vw,30px);display:flex;flex-direction:column;gap:10px}
.s-fair__card .a-h3{margin:0}
.s-fair__card p{margin:0;font-size:14.5px;line-height:1.55}
.s-never{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:6px}
@media(min-width:520px){.s-never{grid-template-columns:1fr 1fr}}
.s-never li{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--a-soft)}
.s-never li::before{content:"";flex:0 0 auto;width:10px;height:2px;margin-top:10px;background:var(--a-red)}

/* ── final ──────────────────────────────────────────────────────────── */
.s-final{isolation:isolate;text-align:center}
.s-final__art{position:absolute;inset:0;z-index:-2}
.s-final__art img{width:100%;height:100%;object-fit:cover;opacity:.35}
.s-final::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--a-night),rgba(11,13,20,.55) 40%,var(--a-night))}
.s-final__cta{justify-content:center}

/* ── buying a real capsule (dialog built by buy.js) ─────────────────── */
.buydlg{position:fixed;inset:0;margin:auto;height:fit-content;max-height:calc(100vh - 32px);overflow:auto;border:0;border-radius:var(--a-r-lg);
  padding:0 0 22px;width:min(480px,calc(100vw - 32px));background:rgba(14,14,21,.97);color:var(--a-text);
  box-shadow:var(--a-rim),0 40px 90px rgba(0,0,0,.6)}
.buydlg[open]{animation:sPop var(--a-slow) var(--a-back)}
@keyframes sPop{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
.buydlg::backdrop{background:rgba(5,6,10,.7);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.buydlg>.eyebrow{display:block;background:var(--a-cream);color:var(--a-ink-2);padding:16px 60px 0 24px;font-size:11px;letter-spacing:.22em}
.buydlg h3{margin:0 0 16px;padding:4px 60px 14px 24px;background:var(--a-cream);color:var(--a-ink);font-family:var(--a-display);font-weight:400;font-size:28px;line-height:1.05;text-transform:none}
.buydlg>:not(.x):not(.eyebrow):not(h3){margin-left:24px;margin-right:24px}
.buydlg .x{position:absolute;right:14px;top:14px;z-index:2}
.buydlg .x button{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgba(31,36,48,.08);border:0;font-size:24px;line-height:1;color:var(--a-ink);cursor:pointer;
  transition:background var(--a-fast) var(--a-ease)}
.buydlg .x button:hover{background:rgba(31,36,48,.16)}
.buydlg .qty{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.buydlg .qty button{height:38px;border:0;border-radius:var(--a-r-pill);background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px var(--a-rule);color:var(--a-soft);
  padding:0 14px;font:700 13.5px var(--a-body);cursor:pointer;transition:background var(--a-fast) var(--a-ease),color var(--a-fast) var(--a-ease)}
.buydlg .qty button:hover{color:var(--a-cream)}
.buydlg .qty button[aria-pressed="true"]{background:var(--a-cream);color:var(--a-ink);box-shadow:none}
.buydlg .steps{list-style:none;padding:0;margin-top:0;margin-bottom:12px;counter-reset:s;display:grid;gap:4px}
.buydlg .steps li{counter-increment:s;position:relative;padding:8px 12px 8px 46px;font-size:14px;color:var(--a-dim);border-radius:10px;
  transition:background var(--a-dur) var(--a-ease),color var(--a-dur) var(--a-ease)}
.buydlg .steps li::before{content:counter(s);position:absolute;left:12px;top:50%;margin-top:-12px;width:24px;height:24px;border-radius:50%;
  box-shadow:inset 0 0 0 1px var(--a-rule);color:var(--a-dim);font:700 12px/24px var(--a-body);text-align:center}
.buydlg .steps li.now{background:var(--a-cream);color:var(--a-ink);font-weight:700}
.buydlg .steps li.now::before{background:var(--a-gold);box-shadow:none;color:var(--a-ink)}
.buydlg .steps li.done{color:var(--a-soft)}
.buydlg .steps li.done::before{content:"✓";background:rgba(111,207,95,.18);box-shadow:inset 0 0 0 1px rgba(111,207,95,.6);color:var(--a-leaf)}
.buydlg .quote{display:grid;gap:6px;margin-top:6px;margin-bottom:10px}
.buydlg .quote:empty{display:none}
.buydlg .quote div{display:flex;justify-content:space-between;gap:12px;font-size:14px;border-bottom:1px solid var(--a-rule-2);padding-bottom:6px;color:var(--a-soft)}
.buydlg .quote b{font-variant-numeric:tabular-nums;color:var(--a-cream)}
.buydlg .quote .burn{color:var(--el-fire)}
.buydlg .msg{min-height:1.4em;font-size:14px;color:var(--a-soft);margin-top:6px;margin-bottom:14px}
.buydlg .msg.bad{color:var(--a-red)}
.buydlg .btnrow .btn{width:100%}
.buydlg .btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}
.buydlg .fine{font-size:12px;line-height:1.5;color:var(--a-dim);margin-top:14px;margin-bottom:0}

@media(prefers-reduced-motion:reduce){
  .s-cast img,.buydlg[open]{animation:none}
  .pack,.pack .shot img{transition:none}
}
/* open.js has no colour for the Free tier and writes --pc:undefined inline */
.pack[style*="--pc:undefined"]{--pc:var(--a-leaf)!important}
@media(max-width:560px){
  .tierpick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%}
  .tierpick button{padding:0 4px;letter-spacing:.1em;font-size:11px}
  .tierpick button::before{display:none}
}
