/* Desktop page: 符石召唤. Every selector starts at .pg-summon (optionally after body.desktop-game / an element / an id).
   1u = --pg-u (≈10px at 1080p, 7px at 768). Decoration (backdrop, circle, crystal, dust) never takes clicks. */
body.desktop-game .pg-summon{--u:var(--pg-u);--bd-x:0px;--bd-y:0px;--bd-w:100%;--bd-h:100%;position:absolute;inset:0;overflow:hidden;container:pgsm / size;color:var(--uk-text)}
body.desktop-game .pg-summon .r6{--rc:var(--uk-r6)}body.desktop-game .pg-summon .r5{--rc:var(--uk-r5)}body.desktop-game .pg-summon .r4{--rc:var(--uk-r4)}body.desktop-game .pg-summon .r3{--rc:var(--uk-r3)}

/* ---------- scene: backdrop (pixel-capped, mirrored-blur extension), dais circle, crystal, dust ---------- */
body.desktop-game .pg-summon-scene{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;animation:uk-fade .24s ease-out both}
body.desktop-game .pg-summon-world{position:absolute;inset:0;translate:0 0;transition:translate .7s cubic-bezier(.3,.7,.2,1)}
body.desktop-game .pg-summon.is-revealing .pg-summon-world{translate:var(--scene-dx,0px) 0}
body.desktop-game .pg-summon.is-revealing :is(.pg-summon-crystal,.pg-summon-crystal-glow,.pg-summon-pebble){opacity:0;transition:opacity .45s ease .25s}
body.desktop-game .pg-summon.is-revealing .pg-summon-crystal-glow{animation:none}
body.desktop-game .pg-summon :is(.pg-summon-crystal,.pg-summon-crystal-glow,.pg-summon-pebble){transition:opacity .4s ease}
body.desktop-game .pg-summon-backdrop,body.desktop-game .pg-summon-ext img{position:absolute;left:var(--bd-x);top:var(--bd-y);width:var(--bd-w);height:var(--bd-h);max-width:none;max-height:none;display:block;user-select:none}
body.desktop-game .pg-summon-ext img{filter:blur(12px) brightness(.5) saturate(.85)}
body.desktop-game .pg-summon-ext .l{transform:translateX(-100%) scaleX(-1)}
body.desktop-game .pg-summon-ext .r{transform:translateX(100%) scaleX(-1)}
body.desktop-game .pg-summon-ext .t{transform:translateY(-100%) scaleY(-1)}
body.desktop-game .pg-summon-ext .b{transform:translateY(100%) scaleY(-1)}
body.desktop-game .pg-summon-vignette{position:absolute;inset:0;background:linear-gradient(90deg,#050b13d9 0,#050b1340 16%,transparent 30%,transparent 58%,#050b13a6 74%,#050b13e0 100%),linear-gradient(0deg,#050b13cc 0,#050b1340 20%,transparent 34%),linear-gradient(180deg,#050b1399 0,transparent 18%)}
body.desktop-game .pg-summon-altar{position:absolute;left:calc(var(--bd-x) + var(--bd-w) * .5);top:calc(var(--bd-y) + var(--bd-h) * .758);width:0;height:0}
body.desktop-game .pg-summon-circle{position:absolute;left:0;top:0;width:calc(var(--bd-w) * .42);aspect-ratio:1;transform:translate(-50%,-50%) scaleY(.3)}
body.desktop-game .pg-summon-circle-art{position:absolute;inset:0;width:100%;height:100%;opacity:.9;animation:pg-summon-spin 60s linear infinite}
body.desktop-game .pg-summon-circle-glow{position:absolute;inset:-8%;border-radius:50%;background:radial-gradient(circle,#ffe0a055 0,#ffcf7022 42%,transparent 68%);opacity:.6;animation:pg-summon-breathe 4.2s ease-in-out infinite}
body.desktop-game .pg-summon-crystal{position:absolute;left:0;bottom:calc(var(--bd-h) * .1);height:calc(var(--bd-h) * .25);width:auto;max-width:none;translate:-50% 0;filter:drop-shadow(0 0 14px #ffd27a99) drop-shadow(0 0 34px #ffb84a55);animation:pg-summon-float 4.6s ease-in-out infinite alternate}
body.desktop-game .pg-summon-crystal-glow{position:absolute;left:0;bottom:calc(var(--bd-h) * .08);width:calc(var(--bd-h) * .3);aspect-ratio:1;translate:-50% 0;border-radius:50%;background:radial-gradient(circle,#ffe6a64d,#ffcf7014 45%,transparent 70%);animation:pg-summon-breathe 3.6s ease-in-out infinite}
body.desktop-game .pg-summon-pebble{position:absolute;left:calc(var(--bd-w) * var(--x));top:calc(var(--bd-h) * var(--y));width:calc(var(--bd-w) * .028 * var(--s));height:auto;max-width:none;translate:-50% -50%;filter:brightness(1.5) drop-shadow(0 0 8px #ffcf7099) drop-shadow(0 4px 4px #000a);animation:pg-summon-float 3.8s ease-in-out infinite alternate;animation-delay:calc(var(--d) * -1.3s)}
body.desktop-game .pg-summon-pillar{position:absolute;left:0;bottom:0;width:calc(var(--bd-w) * .18);height:calc(var(--bd-y) + var(--bd-h) * .758 + 4px);translate:-50% 0;background:linear-gradient(90deg,transparent,#ffe7a826 22%,#fff4d0b3 50%,#ffe7a826 78%,transparent);-webkit-mask-image:linear-gradient(0deg,#000 0,#000c 40%,transparent);mask-image:linear-gradient(0deg,#000 0,#000c 40%,transparent);opacity:0;transform-origin:50% 100%}
body.desktop-game .pg-summon-dust{position:absolute;inset:0}
body.desktop-game .pg-summon-dust i{position:absolute;left:calc(14% + var(--x) * 52%);top:calc(18% + var(--y) * 60%);width:3px;height:3px;border-radius:50%;background:#ffeab5;box-shadow:0 0 6px 1px #ffd27a99;opacity:0;animation:pg-summon-mote 7s linear infinite;animation-delay:calc(var(--d) * -1s)}

/* ---------- layout ---------- */
body.desktop-game .pg-summon-main{--pgsm-tab:clamp(calc(var(--u) * 30),28cqw,calc(var(--u) * 46));position:absolute;inset:calc(var(--u) * 5);z-index:2;display:grid;grid-template-columns:minmax(0,1fr) var(--pgsm-tab);grid-template-rows:auto minmax(0,1fr) auto;column-gap:calc(var(--u) * 3);row-gap:calc(var(--u) * 1.6);transition:opacity .25s ease}
body.desktop-game .pg-summon-head{grid-column:1/-1;grid-row:1;min-width:0}
body.desktop-game .pg-summon.is-entering .pg-summon-head .uk-plaque{animation:uk-rise .32s cubic-bezier(.2,.7,.2,1) both}
body.desktop-game .pg-summon-stage{grid-column:1;grid-row:2;position:relative;min-height:0;min-width:0;container:pgsm-stage / size;display:flex;align-items:center;justify-content:space-between;padding:0 calc(var(--u) * 1)}
body.desktop-game .pg-summon-bar{grid-column:1;grid-row:3;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:calc(var(--u) * 2);min-width:0}
body.desktop-game .pg-summon-tablet{grid-column:2;grid-row:2/4;min-height:0;min-width:0;margin:0;display:flex;flex-direction:column;gap:calc(var(--u) * 1.2)}
body.desktop-game .pg-summon.is-entering .pg-summon-tablet{animation:uk-rise .32s cubic-bezier(.2,.7,.2,1) .08s both}

/* ---------- 6★ shrines ---------- */
body.desktop-game .pg-summon-shrine{--fh:min(calc(100cqh - var(--u) * 7.6),calc(27cqw / .5725),calc(var(--u) * 50));position:relative;display:flex;flex-direction:column;align-items:center;gap:calc(var(--u) * .5);margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;transition:transform .2s ease,filter .2s ease}
body.desktop-game .pg-summon.is-entering .pg-summon-shrine{animation:uk-rise .36s cubic-bezier(.2,.7,.2,1) .04s both}
body.desktop-game .pg-summon.is-entering .pg-summon-shrine.is-right{animation-delay:.12s}
body.desktop-game .pg-summon-shrine:hover{transform:translateY(-3px);filter:brightness(1.1)}
body.desktop-game .pg-summon-shrine:focus-visible{outline:2px solid var(--uk-gold-hi);outline-offset:4px}
body.desktop-game .pg-summon-shrine-frame{position:relative;display:block;height:var(--fh);aspect-ratio:813/1420}
body.desktop-game .pg-summon-shrine-arch{position:absolute;inset:0;z-index:2;width:100%;height:100%;filter:drop-shadow(0 12px 14px #000c)}
body.desktop-game .pg-summon-shrine-niche{position:absolute;left:23.4%;right:23.4%;top:17%;bottom:19%;z-index:0;background:radial-gradient(ellipse at 50% 72%,color-mix(in srgb,var(--uk-el,#d4b477) 50%,#0b1622),#05090f 82%)}
body.desktop-game .pg-summon-shrine .pg-summon-shrine-art.collection-portrait{position:absolute;left:23.4%;right:23.4%;top:17%;bottom:19%;z-index:1;height:auto;border-radius:0}
body.desktop-game .pg-summon-shrine-glow{position:absolute;inset:4% 2% 14%;z-index:0;border-radius:46% 46% 6% 6%;box-shadow:0 0 calc(var(--u) * 4) calc(var(--u) * .6) color-mix(in srgb,var(--uk-el,#d4b477) 60%,transparent);opacity:.5;animation:pg-summon-breathe 3.2s ease-in-out infinite}
body.desktop-game .pg-summon-shrine-stars{font-size:calc(var(--u) * 2.1);line-height:1}
body.desktop-game .pg-summon-shrine-stars .uk-stars{letter-spacing:.02em}
body.desktop-game .pg-summon-shrine-name{font-size:max(13px,calc(var(--u) * 1.9))}

/* ---------- pity seal + summon buttons ---------- */
body.desktop-game .pg-summon-seal{grid-column:1;justify-self:start;position:relative;display:flex;flex-direction:column;align-items:center;width:calc(var(--u) * 15.4)}
body.desktop-game .pg-summon.is-entering .pg-summon-seal{animation:uk-rise .32s cubic-bezier(.2,.7,.2,1) .16s both}
body.desktop-game .pg-summon-seal-disc{position:relative;display:block;width:calc(var(--u) * 15);aspect-ratio:1;filter:drop-shadow(0 8px 10px #000b)}
body.desktop-game .pg-summon-seal-disc>img,body.desktop-game .pg-summon-seal-disc>svg{position:absolute;inset:0;width:100%;height:100%;display:block}
body.desktop-game .pg-summon-seal svg rect{fill:#24170b;stroke:#0b0603;stroke-width:.35}
body.desktop-game .pg-summon-seal svg rect.on{fill:#ffd77c;stroke:#fff1c4;stroke-width:.45}
body.desktop-game .pg-summon-seal-num{position:absolute;inset:0;display:flex;align-items:baseline;justify-content:center;padding-top:calc(var(--u) * 4.6);gap:calc(var(--u) * .2)}
body.desktop-game .pg-summon-seal-num b{font:700 calc(var(--u) * 4.8)/1 var(--uk-serif);background:linear-gradient(180deg,#fff0c2,#d9a94f);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 1px #000c)}
body.desktop-game .pg-summon-seal-num small{font:700 max(12px,calc(var(--u) * 1.5))/1 var(--uk-serif);color:#e9cf93;text-shadow:0 1px 2px #000}
body.desktop-game .pg-summon-seal-flash{position:absolute;inset:-10%;border-radius:50%;background:radial-gradient(circle,#fff6d8 0,#ffd27acc 30%,transparent 66%);opacity:0;pointer-events:none}
body.desktop-game .pg-summon-seal-ribbon{position:relative;z-index:2;margin-top:calc(var(--u) * -2.2);min-width:calc(var(--u) * 13);font-size:max(12px,calc(var(--u) * 1.6))}
body.desktop-game .pg-summon-seal.is-refill rect.on{animation:pg-summon-tick .26s ease-out both;animation-delay:calc(var(--k) * 28ms)}
body.desktop-game .pg-summon-seal.is-shatter .pg-summon-seal-disc{animation:pg-summon-shatter .7s ease-out both}
body.desktop-game .pg-summon-seal.is-shatter .pg-summon-seal-flash{animation:pg-summon-flash .8s ease-out both}
body.desktop-game .pg-summon-buttons{grid-column:2;display:flex;align-items:flex-start;gap:calc(var(--u) * 2.4)}
body.desktop-game .pg-summon.is-entering .pg-summon-buttons{animation:uk-rise .32s cubic-bezier(.2,.7,.2,1) .2s both}
body.desktop-game .pg-summon-btn{display:inline-flex;flex-direction:column;align-items:center}
body.desktop-game .pg-summon .pg-summon-go{--uk-bh:clamp(60px,calc(var(--u) * 9.4),120px);min-width:calc(var(--uk-bh) * 2.9);padding:0 calc(var(--uk-bh) * .3)}
body.desktop-game .pg-summon-go .uk-btn-label{display:flex;flex-direction:column;align-items:center;gap:calc(var(--uk-bh) * .03);margin-top:calc(var(--uk-bh) * .01)}
body.desktop-game .pg-summon-btn-name{font:700 max(14px,calc(var(--uk-bh) * .23))/1 var(--uk-serif);letter-spacing:.14em;text-indent:.14em}
body.desktop-game .pg-summon-btn-cost{display:inline-flex;align-items:center;gap:calc(var(--uk-bh) * .04);font:700 max(12px,calc(var(--uk-bh) * .175))/1 var(--uk-serif);letter-spacing:.04em;text-indent:0;color:#fff1c9}
body.desktop-game .pg-summon-btn-cost .uk-icon{--uk-is:max(13px,calc(var(--uk-bh) * .2))}
body.desktop-game .pg-summon-go:disabled .pg-summon-btn-cost .uk-icon{filter:grayscale(1) brightness(.7)}
body.desktop-game .pg-summon-bar-end{grid-column:3}
/* style.css fades every disabled <button> to 40%; the kit's grey cracked stone must stay solid. */
body.desktop-game .pg-summon :is(.uk-btn,.uk-round,.uk-tab):disabled{opacity:1}

/* ---------- stone tablet: tabs + faces ---------- */
body.desktop-game .pg-summon-tabhead{flex:none;display:flex;align-items:center;gap:calc(var(--u) * 1)}
body.desktop-game .pg-summon-tabhead .uk-tabs{width:100%}
body.desktop-game .pg-summon-tabhead .uk-tab{--uk-bh:clamp(32px,calc(var(--u) * 4.6),62px);flex:1;min-width:0;font-size:max(14px,calc(var(--uk-bh) * .4))!important}
body.desktop-game .pg-summon-tabhead.is-sub .uk-panel-title{margin:0;font-size:max(15px,calc(var(--u) * 2.4));white-space:nowrap}
body.desktop-game .pg-summon-face{flex:1;min-height:0;display:flex;flex-direction:column;gap:calc(var(--u) * 1.4)}
body.desktop-game .pg-summon-r{font:700 max(12px,calc(var(--u) * 1.5))/1 var(--uk-serif);color:var(--rc,#d4b477);text-shadow:0 1px 2px #000}

body.desktop-game .pg-summon-pool{flex:1;min-height:0;container:pgsm-pool / size;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:calc(var(--u) * .8) calc(var(--u) * 1)}
body.desktop-game .pg-summon-cell{display:flex;align-items:center;gap:calc(var(--u) * .9);min-width:0;min-height:0;margin:0;padding:calc(var(--u) * .35) calc(var(--u) * .6);border:0;border-radius:calc(var(--u) * .9);background:radial-gradient(ellipse at 28% 50%,#ffffff0f,transparent 70%),linear-gradient(180deg,#0000003d,#0000001a);box-shadow:inset 0 1px 0 #ffffff12,inset 0 -1px 0 #00000059;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background .16s,box-shadow .16s,transform .16s}
body.desktop-game .pg-summon-cell:hover{background:radial-gradient(ellipse at 28% 50%,#f1d89626,transparent 75%),linear-gradient(180deg,#0000002e,#00000014);box-shadow:inset 0 0 0 1px #f1d89659,0 0 10px #f1d89633;transform:translateY(-1px)}
body.desktop-game .pg-summon-cell:focus-visible{outline:2px solid var(--uk-gold-hi);outline-offset:2px}
body.desktop-game .pg-summon-cell .uk-card{--uk-cw:min(calc(var(--u) * 7.8),calc(((100cqh - var(--u) * 3.2) / 5 - var(--u) * .7) * .7636),46cqw);cursor:inherit}
body.desktop-game .pg-summon-cell-text{display:flex;flex-direction:column;gap:calc(var(--u) * .45);min-width:0}
body.desktop-game .pg-summon-cell-text b{font:700 max(13px,calc(var(--u) * 1.9))/1.1 var(--uk-serif);color:#f3e6c4;text-shadow:0 1px 2px #000;white-space:nowrap}
body.desktop-game .pg-summon-cell-text em{font:700 max(12px,calc(var(--u) * 1.5))/1 var(--uk-serif);font-style:normal;color:var(--uk-gold-hi);text-shadow:0 1px 2px #000}

body.desktop-game .pg-summon-face[data-face="odds"]{justify-content:space-between}
body.desktop-game .pg-summon-rates{display:flex;flex-direction:column;gap:calc(var(--u) * 1.2)}
body.desktop-game .pg-summon-rate{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:calc(var(--u) * 1);height:calc(var(--u) * 6.4);padding:0 calc(var(--u) * 1.6) 0 calc(var(--u) * .7);border-radius:calc(var(--u) * 3.2);background:linear-gradient(90deg,color-mix(in srgb,var(--rc) 34%,#171c24) 0,#171c24d9 55%,#12161dcc);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--rc) 60%,transparent),inset 0 2px 7px #000a,0 2px 4px #0007}
body.desktop-game .pg-summon-rate-gem{width:calc(var(--u) * 4.4);height:calc(var(--u) * 5);background:url("./assets/pages/_kit/icon-shard.webp") center/contain no-repeat;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--rc) 70%,transparent))}
body.desktop-game .pg-summon-rate.r6 .pg-summon-rate-gem{filter:hue-rotate(140deg) saturate(1.6) brightness(1.25) drop-shadow(0 0 6px #f0b43c99)}
body.desktop-game .pg-summon-rate.r4 .pg-summon-rate-gem{filter:hue-rotate(-55deg) saturate(.8) brightness(1.15) drop-shadow(0 0 6px #9fb8d699)}
body.desktop-game .pg-summon-rate.r3 .pg-summon-rate-gem{filter:hue-rotate(120deg) saturate(.55) brightness(.9) sepia(.35) drop-shadow(0 0 5px #b07a4a88)}
body.desktop-game .pg-summon-rate-star{font:700 calc(var(--u) * 2.9)/1 var(--uk-serif);color:var(--rc);text-shadow:0 1px 2px #000;min-width:2.4em}
body.desktop-game .pg-summon-rate-bar{position:relative;height:max(6px,calc(var(--u) * 1));border-radius:99px;background:#05080ccc;box-shadow:inset 0 1px 3px #000,0 1px 0 #ffffff14;overflow:hidden}
body.desktop-game .pg-summon-rate-bar i{position:absolute;left:0;top:0;bottom:0;width:calc(var(--p) * 100%);min-width:4px;border-radius:99px;background:linear-gradient(90deg,color-mix(in srgb,var(--rc) 70%,#000),var(--rc) 70%,#fff6d8);box-shadow:0 0 8px color-mix(in srgb,var(--rc) 70%,transparent)}
body.desktop-game .pg-summon-rate em{font:700 calc(var(--u) * 3.1)/1 var(--uk-serif);font-style:normal;color:#fff1c9;text-shadow:0 1px 2px #000;min-width:2.6em;text-align:right}
body.desktop-game .pg-summon-rules{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(var(--u) * .7)}
body.desktop-game .pg-summon-rules li{display:flex;align-items:center;gap:calc(var(--u) * 1);min-height:calc(var(--u) * 5);padding:0 calc(var(--u) * 1) 0 calc(var(--u) * .6);font:400 max(12px,calc(var(--u) * 1.55))/1.35 var(--uk-sans);color:var(--uk-text)}
body.desktop-game .pg-summon-rules .uk-icon{--uk-is:calc(var(--u) * 3)}
body.desktop-game .pg-summon-mini-seal{display:grid;place-items:center;flex:none;width:max(24px,calc(var(--u) * 3.2));aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 40% 35%,#6e4c22,#2e1d0c 70%);box-shadow:0 0 0 2px #c9a25a,0 0 0 3px #3a2410,0 2px 4px #000a;font:700 max(12px,calc(var(--u) * 1.3))/1 var(--uk-serif);font-style:normal;color:#ffe2a0}
body.desktop-game .pg-summon-odds-more{display:flex;justify-content:center}

body.desktop-game .pg-summon-oddslist{list-style:none;margin:0;padding:0;flex:1;min-height:0;display:grid;grid-template-rows:repeat(10,minmax(0,1fr));gap:calc(var(--u) * .45)}
body.desktop-game .pg-summon-oddslist li{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:calc(var(--u) * 1);min-height:0;padding:0 calc(var(--u) * 1.2) 0 calc(var(--u) * .35);border-radius:99px;background:linear-gradient(90deg,color-mix(in srgb,var(--rc) 24%,#151a22),#151a22a6 70%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--rc) 40%,transparent)}
body.desktop-game .pg-summon-oddslist .pg-summon-mini.collection-portrait{display:block;width:auto;height:92%;max-height:calc(var(--u) * 4.4);aspect-ratio:1;border-radius:50%;box-shadow:0 0 0 2px var(--rc);overflow:hidden}
body.desktop-game .pg-summon-oddslist b{font:700 max(12px,calc(var(--u) * 1.6))/1.1 var(--uk-serif);color:#f3e6c4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.desktop-game .pg-summon-oddslist em{font:700 max(12px,calc(var(--u) * 1.6))/1 var(--uk-serif);font-style:normal;color:var(--uk-gold-hi);min-width:3.4em;text-align:right}

body.desktop-game .pg-summon-hero{flex:1;min-height:0;display:flex;flex-direction:column;gap:calc(var(--u) * 1.1)}
body.desktop-game .pg-summon-hero-top{display:flex;align-items:center;gap:calc(var(--u) * 1.6)}
body.desktop-game .pg-summon-hero-top .uk-card{--uk-cw:clamp(124px,calc(var(--u) * 11.5),170px)}
body.desktop-game .pg-summon-hero-id{display:flex;flex-direction:column;gap:calc(var(--u) * .6);min-width:0}
body.desktop-game .pg-summon-hero-id h3{margin:0;font:700 calc(var(--u) * 2.7)/1.15 var(--uk-serif);letter-spacing:.06em;background:linear-gradient(180deg,var(--uk-title-a),var(--uk-title-b));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 1px #000)}
body.desktop-game .pg-summon-hero-stars{font-size:calc(var(--u) * 2);line-height:1}
body.desktop-game .pg-summon-hero-id small{font:400 max(12px,calc(var(--u) * 1.45))/1.3 var(--uk-sans);color:var(--uk-muted)}
body.desktop-game .pg-summon-skill,body.desktop-game .pg-summon-rulebook section{display:flex;align-items:flex-start;gap:calc(var(--u) * .8);padding:calc(var(--u) * .1) calc(var(--u) * .4)}
body.desktop-game .pg-summon-skill .uk-icon{--uk-is:calc(var(--u) * 2.6);margin-top:2px}
body.desktop-game .pg-summon-skill h4,body.desktop-game .pg-summon-rulebook h4{margin:0 0 calc(var(--u) * .35);font:700 max(13px,calc(var(--u) * 1.7))/1.3 var(--uk-serif);color:#f1d896;letter-spacing:.04em}
body.desktop-game .pg-summon-skill p,body.desktop-game .pg-summon-rulebook p{margin:0;font:400 max(12px,calc(var(--u) * 1.45))/1.5 var(--uk-sans);color:var(--uk-text)}
body.desktop-game .pg-summon-own{display:flex;align-items:center;flex-wrap:wrap;gap:calc(var(--u) * .5) calc(var(--u) * .7);margin:0;font:400 max(12px,calc(var(--u) * 1.5))/1.3 var(--uk-sans);color:var(--uk-text)}
body.desktop-game .pg-summon-own b{font:700 1.1em/1 var(--uk-serif);color:#fff1c9}
body.desktop-game .pg-summon-own span{margin-right:calc(var(--u) * .5)}
body.desktop-game .pg-summon-own.is-missing{color:#e3b9a0}
body.desktop-game .pg-summon-hero-go{margin-top:auto;display:flex;justify-content:center}
body.desktop-game .pg-summon-rulebook{flex:1;min-height:0;display:flex;flex-direction:column;gap:calc(var(--u) * .8)}
body.desktop-game .pg-summon-rulebook section{display:block}

/* ---------- summon: flare, then the in-page reveal ---------- */
body.desktop-game .pg-summon.is-summoning .pg-summon-pillar{animation:pg-summon-pillar 1.2s ease-out both}
body.desktop-game .pg-summon.is-summoning .pg-summon-circle-glow{animation:pg-summon-charge .8s ease-out both}
body.desktop-game .pg-summon.is-summoning .pg-summon-circle-art{animation-duration:6s}
body.desktop-game .pg-summon.is-revealing:not(.is-summoning) .pg-summon-pillar{opacity:.32;transition:opacity .6s ease}
body.desktop-game .pg-summon.is-revealing:not(.is-summoning) .pg-summon-circle-glow{opacity:.9;animation:none}
body.desktop-game .pg-summon.is-revealing .pg-summon-main{opacity:0;visibility:hidden;transition:opacity .3s ease .35s,visibility 0s linear .65s}
body.desktop-game .pg-summon-reveal{position:absolute;inset:0;z-index:6;cursor:pointer}
body.desktop-game .pg-summon-reveal.is-done{cursor:default}
body.desktop-game .pg-summon-reveal:focus{outline:none}
body.desktop-game .pg-summon-reveal[hidden]{display:none}
body.desktop-game .pg-summon-reveal::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 56%,#0b16244d 0,#03070cd9 74%);animation:uk-fade .5s ease-out .3s both}
body.desktop-game .pg-summon-reveal-body{position:absolute;inset:calc(var(--u) * 5);display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:calc(var(--u) * 1.6)}
body.desktop-game .pg-summon-rtitle{flex:none;animation:pg-summon-rise .45s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--t-end)}
body.desktop-game .pg-summon-rgrid{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--u) * 2.4)}
body.desktop-game .pg-summon-rrow{display:flex;justify-content:center;gap:calc(var(--u) * 2.2)}
body.desktop-game .pg-summon-rcard{position:relative;display:flex;flex-direction:column;align-items:center;gap:calc(var(--u) * .6);width:max(calc(var(--u) * 18),142px);margin:0;animation:pg-summon-emerge .42s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--t0) + var(--i) * 80ms)}
body.desktop-game .pg-summon-reveal-body.n1 .pg-summon-rcard{width:max(calc(var(--u) * 30),200px)}
body.desktop-game .pg-summon-rcard-flip{position:relative;display:block;transform-style:preserve-3d;animation:pg-summon-flip .48s ease-in-out both;animation-delay:calc(var(--t0) + var(--f))}
body.desktop-game .pg-summon-rcard-front{position:relative;display:block;backface-visibility:hidden;-webkit-backface-visibility:hidden}
body.desktop-game .pg-summon-rcard-back{position:absolute;inset:0;transform:rotateY(180deg);backface-visibility:hidden;-webkit-backface-visibility:hidden;filter:drop-shadow(0 6px 10px #000c)}
body.desktop-game .pg-summon-rcard .uk-card--md{--uk-cw:clamp(118px,calc(var(--u) * 14),180px)}
body.desktop-game .pg-summon-reveal-body.n1 .uk-card--lg{--uk-cw:clamp(150px,calc(var(--u) * 26),300px)}
body.desktop-game .pg-summon-rcard .uk-card-foot .uk-stars{font-size:max(12px,calc(var(--uk-cw) * .085))}
body.desktop-game .pg-summon-rcard-back img{display:block;width:100%;height:100%;object-fit:fill}
body.desktop-game .pg-summon-rcard-wax{position:absolute;right:-6%;top:-5%;z-index:7;width:30%;aspect-ratio:1;background:url("./assets/pages/_kit/icon-wax.webp") center/contain no-repeat;filter:drop-shadow(0 2px 3px #000b)}
body.desktop-game .pg-summon-rcard-aura{position:absolute;left:50%;top:0;width:150%;aspect-ratio:1;translate:-50% -14%;border-radius:50%;pointer-events:none;background:radial-gradient(circle,color-mix(in srgb,var(--rc) 55%,transparent) 0,color-mix(in srgb,var(--rc) 18%,transparent) 42%,transparent 66%);--aura:.35;opacity:0;animation:pg-summon-burst .9s ease-out both;animation-delay:calc(var(--t0) + var(--f) + 180ms)}
body.desktop-game .pg-summon-rcard.r3 .pg-summon-rcard-aura{--aura:.16}
body.desktop-game .pg-summon-rcard.r5 .pg-summon-rcard-aura{--aura:.7}
body.desktop-game .pg-summon-rcard.r6 .pg-summon-rcard-aura{--aura:.95;width:190%;background:radial-gradient(circle,#fff3c8cc 0,#f0b43c80 22%,#f0782e2e 46%,transparent 66%),repeating-conic-gradient(from 0deg,#ffd77a33 0 4deg,transparent 4deg 18deg);-webkit-mask-image:radial-gradient(circle,#000 30%,transparent 68%);mask-image:radial-gradient(circle,#000 30%,transparent 68%)}
body.desktop-game .pg-summon-rcard-name,body.desktop-game .pg-summon-rcard-status{animation:uk-fade .3s ease-out both;animation-delay:calc(var(--t0) + var(--f) + 380ms)}
body.desktop-game .pg-summon-rcard-name{font-size:max(13px,calc(var(--u) * 1.8))}
body.desktop-game .pg-summon-rcard-status{display:flex;align-items:center;justify-content:center;gap:calc(var(--u) * .6);min-height:max(22px,calc(var(--u) * 2.8));white-space:nowrap;font:400 max(12px,calc(var(--u) * 1.4))/1.2 var(--uk-sans);color:var(--uk-text)}
body.desktop-game .pg-summon-pity{display:inline-flex;align-items:center;padding:.18em .55em;border-radius:4px;background:linear-gradient(180deg,#b3261e,#6e1410);box-shadow:inset 0 0 0 1px #f0897a66,0 1px 2px #000a;font:700 max(12px,calc(var(--u) * 1.3))/1 var(--uk-serif);color:#ffe9dc;letter-spacing:.1em}
body.desktop-game .pg-summon-dup{display:inline-flex;align-items:center;gap:calc(var(--u) * .35);color:#e2d4f5}
body.desktop-game .pg-summon-new{font-size:max(12px,calc(var(--u) * 1.4))}
body.desktop-game .pg-summon-rfoot{flex:none;display:grid;place-items:center;min-height:clamp(48px,calc(var(--u) * 6.8),82px)}
body.desktop-game .pg-summon-rfoot>*{grid-area:1/1}
body.desktop-game .pg-summon-skip{font:400 max(12px,calc(var(--u) * 1.5))/1 var(--uk-sans);color:#c9c2ae;letter-spacing:.2em;text-shadow:0 1px 2px #000;animation:pg-summon-blink 1.6s ease-in-out infinite alternate}
body.desktop-game .pg-summon-collect{animation:pg-summon-rise .4s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--t-end)}
body.desktop-game .pg-summon-reveal-body:not(.is-done):not(.is-static) .pg-summon-collect{pointer-events:none;visibility:hidden}
body.desktop-game .pg-summon-reveal-body.has-six .pg-summon-rgrid{animation:pg-summon-shake .45s linear both;animation-delay:calc(var(--t0) + var(--six) + 200ms)}
body.desktop-game .pg-summon-reveal-body:is(.is-done,.is-static) :is(.pg-summon-rcard,.pg-summon-rcard-flip,.pg-summon-rcard-name,.pg-summon-rcard-status,.pg-summon-rtitle,.pg-summon-collect,.pg-summon-rgrid){animation:none}
body.desktop-game .pg-summon-reveal-body:is(.is-done,.is-static) .pg-summon-skip{display:none}
body.desktop-game .pg-summon-reveal-body:is(.is-done,.is-static) .pg-summon-rcard-aura{opacity:var(--aura);animation:pg-summon-pulse 3s ease-in-out infinite}

/* Legacy #summon-result-dialog skin (hooks.summonResults): fills the content area right of the pillar, under the top bar. */
body.desktop-game dialog#summon-result-dialog.pg-summon{--u:var(--pg-u);position:fixed;inset:var(--uk-header) 0 0 calc((100vh - var(--uk-header)) * 694 / 2536);width:auto;height:auto;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;background:radial-gradient(ellipse at 50% 52%,#1d3047 0,#0b1622 52%,#05090f 100%);box-shadow:none;color:var(--uk-text)}
body.desktop-game dialog#summon-result-dialog.pg-summon::backdrop{background:#03070cb3;backdrop-filter:none}
body.desktop-game dialog#summon-result-dialog.pg-summon .pg-summon-dialog{position:absolute;inset:0}
body.desktop-game dialog#summon-result-dialog.pg-summon .pg-summon-collect.primary-button{width:auto;gap:0;letter-spacing:.12em}

/* ---------- narrow windows (taller than 7:5): slimmer tablet, stacked pool cells, smaller buttons ---------- */
@container pgsm (max-aspect-ratio: 7/5){
  body.desktop-game .pg-summon-main{--pgsm-tab:clamp(calc(var(--u) * 27),36cqw,calc(var(--u) * 40));column-gap:calc(var(--u) * 2)}
  body.desktop-game .pg-summon .pg-summon-go{--uk-bh:clamp(52px,calc(var(--u) * 6.6),90px);min-width:calc(var(--uk-bh) * 2.5);padding:0 calc(var(--uk-bh) * .2)}
  body.desktop-game .pg-summon-bar{column-gap:calc(var(--u) * 1.4)}
  body.desktop-game .pg-summon-seal{width:calc(var(--u) * 12.4)}
  body.desktop-game .pg-summon-seal-disc{width:calc(var(--u) * 12)}
  body.desktop-game .pg-summon-seal-num{padding-top:calc(var(--u) * 3.6)}
  body.desktop-game .pg-summon-seal-num b{font-size:calc(var(--u) * 3.8)}
  body.desktop-game .pg-summon-seal-ribbon{min-width:calc(var(--u) * 11)}
  body.desktop-game .pg-summon-buttons{gap:calc(var(--u) * 1.2)}
  body.desktop-game .pg-summon-pool{gap:calc(var(--u) * .6)}
  body.desktop-game .pg-summon-cell{gap:calc(var(--u) * .5);padding:calc(var(--u) * .3)}
  body.desktop-game .pg-summon-cell-text{gap:2px}
  body.desktop-game .pg-summon-cell .uk-card{--uk-cw:min(calc(var(--u) * 6.8),calc(((100cqh - var(--u) * 2.4) / 5 - var(--u) * .6) * .7636),44cqw)}
  body.desktop-game .pg-summon-cell-text b{font-size:max(12px,calc(var(--u) * 1.5))}
  body.desktop-game .pg-summon-hero{gap:calc(var(--u) * .7)}
  body.desktop-game .pg-summon-hero-top .uk-card{--uk-cw:clamp(96px,calc(var(--u) * 10),130px)}
  body.desktop-game .pg-summon-hero-top :is(.uk-card-lv,.uk-stars-n){font-size:12px}
  body.desktop-game .pg-summon-hero-id h3{font-size:max(15px,calc(var(--u) * 2.2))}
  body.desktop-game .pg-summon-hero-stars{font-size:max(12px,calc(var(--u) * 1.5))}
  body.desktop-game :is(.pg-summon-skill,.pg-summon-rulebook section){padding:0 calc(var(--u) * .3)}
}

@keyframes pg-summon-spin{to{transform:rotate(360deg)}}
@keyframes pg-summon-breathe{0%,100%{opacity:.35}50%{opacity:.75}}
@keyframes pg-summon-float{from{transform:translateY(0)}to{transform:translateY(-4%)}}
@keyframes pg-summon-mote{0%{opacity:0;transform:translateY(0)}18%{opacity:.85}80%{opacity:.5}100%{opacity:0;transform:translateY(-120px)}}
@keyframes pg-summon-pillar{0%{opacity:0;transform:scaleX(.25)}35%{opacity:1;transform:scaleX(1.1)}100%{opacity:.55;transform:scaleX(1)}}
@keyframes pg-summon-charge{0%{opacity:.6;transform:scale(1)}60%{opacity:1;transform:scale(1.18)}100%{opacity:1;transform:scale(1.1)}}
@keyframes pg-summon-emerge{from{opacity:0;transform:translateY(calc(var(--u) * 9)) scale(.5)}to{opacity:1;transform:none}}
@keyframes pg-summon-flip{from{transform:rotateY(180deg)}to{transform:rotateY(0deg)}}
@keyframes pg-summon-burst{0%{opacity:0;transform:scale(.4)}30%{opacity:1;transform:scale(1.15)}100%{opacity:var(--aura);transform:scale(1)}}
@keyframes pg-summon-pulse{0%,100%{opacity:var(--aura);transform:scale(1)}50%{opacity:calc(var(--aura) * .7);transform:scale(1.04)}}
@keyframes pg-summon-shake{0%,100%{transform:none}20%{transform:translate(3px,-2px)}40%{transform:translate(-3px,2px)}60%{transform:translate(2px,1px)}80%{transform:translate(-1px,-1px)}}
@keyframes pg-summon-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes pg-summon-blink{from{opacity:.45}to{opacity:1}}
@keyframes pg-summon-tick{from{opacity:0}to{opacity:1}}
@keyframes pg-summon-shatter{0%{transform:none}15%{transform:scale(1.08) rotate(-3deg)}30%{transform:scale(.94) rotate(3deg)}45%{transform:scale(1.04) rotate(-1deg)}100%{transform:none}}
@keyframes pg-summon-flash{0%{opacity:0;transform:scale(.6)}25%{opacity:1;transform:scale(1.1)}100%{opacity:0;transform:scale(1.25)}}

@media (prefers-reduced-motion:reduce){
  body.desktop-game .pg-summon :is(.pg-summon-circle-art,.pg-summon-circle-glow,.pg-summon-crystal,.pg-summon-crystal-glow,.pg-summon-pebble,.pg-summon-shrine-glow,.pg-summon-pillar,.pg-summon-skip,.pg-summon-rcard-aura){animation:none!important}
  body.desktop-game .pg-summon-dust{display:none}
  body.desktop-game .pg-summon-seal :is(rect,.pg-summon-seal-disc,.pg-summon-seal-flash){animation:none!important}
  body.desktop-game .pg-summon-reveal-body .pg-summon-rcard-aura{opacity:var(--aura)}
}
