/* Desktop 区域地图挂件. Every selector starts at .pg-region (the region <section> carries it). The painting itself is untouched
   (chapter 2 shows its widened repaint at the very same pixel-safe rect). Widgets carry data-at / data-size chosen by the
   anti-overlap planner in page-region.mjs. */
body.desktop-game .pg-region.ds-region-map{isolation:isolate;--pg-region-pad:calc(var(--pg-u)*2.4)}

/* Chapter 2 widened painting: same size as the original, drawn underneath; the original copy and its blurred bands are hidden. */
body.desktop-game .pg-region:has(>.pg-region-art)>.ds-region-art img,body.desktop-game .pg-region:has(>.pg-region-art)>.ds-map-extend{opacity:0}
body.desktop-game .pg-region .pg-region-art{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.65}
body.desktop-game .pg-region .pg-region-art img{position:absolute;left:var(--map-x,0px);top:var(--map-y,0px);width:var(--map-width,0px);height:var(--map-height,0px);max-width:none;max-height:none}
body.desktop-game .pg-region .pg-region-extend{position:absolute;inset:0;z-index:-2;overflow:hidden;pointer-events:none}
body.desktop-game .pg-region .pg-region-extend img{position:absolute;left:var(--map-x,0px);top:var(--map-y,0px);width:var(--map-width,0px);height:var(--map-height,0px);max-width:none;max-height:none;filter:blur(9px) brightness(.5) saturate(.85)}
body.desktop-game .pg-region .pg-region-extend img.top{transform:translateY(-100%) scaleY(-1)}body.desktop-game .pg-region .pg-region-extend img.bottom{transform:translateY(100%) scaleY(-1)}
body.desktop-game .pg-region .pg-region-extend img.left{transform:translateX(-100%) scaleX(-1)}body.desktop-game .pg-region .pg-region-extend img.right{transform:translateX(100%) scaleX(-1)}
body.desktop-game .pg-region[data-bands="v"] .pg-region-extend img:is(.left,.right),body.desktop-game .pg-region[data-bands="h"] .pg-region-extend img:is(.top,.bottom),body.desktop-game .pg-region[data-bands="none"] .pg-region-extend{display:none}
body.desktop-game .pg-region:not([data-map-ready="true"]) :is(.pg-region-art,.pg-region-extend){visibility:hidden}

/* Difficulty mood: hard = cold blue, hell = a ring of dark red embers. */
body.desktop-game .pg-region .pg-region-tint{position:absolute;inset:0;z-index:1;pointer-events:none;transition:opacity .4s}
body.desktop-game .pg-region .pg-region-tint.is-normal{opacity:0}
body.desktop-game .pg-region .pg-region-tint.is-hard{background:linear-gradient(180deg,#1d3f7a40,#0a1b3a33 60%,#06102266);mix-blend-mode:multiply}
body.desktop-game .pg-region .pg-region-tint.is-hell{background:radial-gradient(ellipse at 50% 52%,transparent 48%,#4a0a0499 88%,#2a0402cc),linear-gradient(180deg,#3a060300,#3a060355);animation:pg-region-ember 4.8s ease-in-out infinite}
body.desktop-game .pg-region .pg-region-tint.is-asura{background:radial-gradient(ellipse at 50% 52%,transparent 44%,#3d0618aa 86%,#1c0210dd),linear-gradient(180deg,#2a041400,#2a041466);animation:pg-region-ember 3.6s ease-in-out infinite}

/* ---------- heading: round back medallion + nameplate, emblem + title plaque, chapter ribbon, seal gems ---------- */
body.desktop-game .pg-region .pg-region-head{position:absolute;left:var(--pg-region-pad);top:calc(var(--pg-u)*2);z-index:4;display:flex;align-items:flex-start;gap:calc(var(--pg-u)*1.6);max-width:62%;pointer-events:none}
body.desktop-game .pg-region .pg-region-head>*{pointer-events:auto}
body.desktop-game .pg-region .pg-region-back{display:flex;flex-direction:column;align-items:center;gap:calc(var(--pg-u)*.3)}
body.desktop-game .pg-region .pg-region-backbtn.ds-back{margin:0;padding:0;border:0;background:url("./assets/pages/_kit/icon-medal.webp") center/contain no-repeat;color:var(--uk-gold-hi)!important;--uk-rs:clamp(44px,calc(var(--pg-u)*6.6),84px);font-size:calc(var(--uk-rs)*.42)!important;letter-spacing:0}
body.desktop-game .pg-region .pg-region-backbtn.ds-back:hover,body.desktop-game .pg-region .pg-region-backbtn.ds-back:focus-visible{filter:brightness(1.18) drop-shadow(0 0 10px #ffd27acc)}
body.desktop-game .pg-region .pg-region-backname{font-size:max(var(--uk-min,12px),calc(var(--pg-u)*1.5))}
body.desktop-game .pg-region .pg-region-titlebox{display:flex;flex-direction:column;align-items:flex-start;gap:calc(var(--pg-u)*.7);min-width:0}
body.desktop-game .pg-region .pg-region-titlerow{display:flex;align-items:center}
body.desktop-game .pg-region .pg-region-emblem{--uk-el-c:var(--uk-el,#d4b477);position:relative;z-index:1;display:grid;place-items:center;flex:none;width:calc(var(--pg-u)*7.6);height:calc(var(--pg-u)*7.6);margin-right:calc(var(--pg-u)*-2.2);border-radius:50%;background:url("./assets/pages/_kit/icon-medal.webp") center/contain no-repeat;filter:drop-shadow(0 0 calc(var(--pg-u)*1.2) color-mix(in srgb,var(--uk-el-c) 70%,transparent)) drop-shadow(0 4px 6px #000c)}
body.desktop-game .pg-region .pg-region-emblem b{font:700 calc(var(--pg-u)*3.4)/1 var(--uk-serif);background:linear-gradient(180deg,#fff1c9,var(--uk-el-c));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 1px #000)}
body.desktop-game .pg-region .pg-region-plaque{min-width:calc(var(--pg-u)*24);padding-left:calc(var(--pg-u)*4.8)}
body.desktop-game .pg-region .pg-region-sub{display:flex;align-items:center;gap:calc(var(--pg-u)*1.2);padding-left:calc(var(--pg-u)*5.4)}
body.desktop-game .pg-region .pg-region-chapter{--rb-h:2.15em;font-size:max(var(--uk-min,13px),calc(var(--pg-u)*1.55));box-sizing:border-box;height:var(--rb-h);max-width:none;padding:0 .35em calc(var(--rb-h)*62/190);border-style:solid;border-color:transparent;border-width:0 calc(var(--rb-h)*170/190);border-image:url("./assets/pages/_kit/icon-ribbon.webp") 0 170 fill / 0 calc(var(--rb-h)*170/190) stretch;background:none;line-height:1;letter-spacing:.08em;color:#fff6e0;text-shadow:0 1px 1px #001028,0 0 5px #001a3add,0 0 2px #000}
body.desktop-game .pg-region .pg-region-progress{display:flex;align-items:center;gap:calc(var(--pg-u)*.7);white-space:nowrap}
body.desktop-game .pg-region .pg-region-gems{display:flex;gap:calc(var(--pg-u)*.35)}
body.desktop-game .pg-region .pg-region-gem{display:block;width:calc(var(--pg-u)*2);height:calc(var(--pg-u)*2);border-radius:50%;background:radial-gradient(circle at 35% 30%,#59616b,#1d232b 70%);box-shadow:0 0 0 1px #8a6a32,inset 0 1px 2px #000}
body.desktop-game .pg-region .pg-region-gems.fire .pg-region-gem.is-lit{background:url("./assets/orbs/fire-128.webp") center/cover}
body.desktop-game .pg-region .pg-region-gems.water .pg-region-gem.is-lit{background:url("./assets/orbs/water-128.webp") center/cover}
body.desktop-game .pg-region .pg-region-gems.wood .pg-region-gem.is-lit{background:url("./assets/orbs/wood-128.webp") center/cover}
body.desktop-game .pg-region .pg-region-gems.light .pg-region-gem.is-lit{background:url("./assets/orbs/light-128.webp") center/cover}
body.desktop-game .pg-region .pg-region-gems.dark .pg-region-gem.is-lit{background:url("./assets/orbs/dark-128.webp") center/cover}
body.desktop-game .pg-region .pg-region-gem.is-lit{box-shadow:0 0 0 1px #f1d896,0 0 8px color-mix(in srgb,var(--uk-el,#d4b477) 80%,transparent)}
body.desktop-game .pg-region .pg-region-progress small{font:700 max(var(--uk-min,12px),calc(var(--pg-u)*1.45))/1 var(--uk-serif);color:#f1dfb3;text-shadow:0 1px 3px #000,0 0 6px #000}
body.desktop-game .pg-region .pg-region-head[data-size="compact"] .pg-region-emblem{width:calc(var(--pg-u)*6.2);height:calc(var(--pg-u)*6.2)}
body.desktop-game .pg-region .pg-region-head[data-size="compact"] .pg-region-plaque,body.desktop-game .pg-region .pg-region-head[data-size="mini"] .pg-region-plaque{--pg-u:calc(var(--ds-colh,700px)/120)}
body.desktop-game .pg-region .pg-region-head[data-size="mini"] :is(.pg-region-chapter,.pg-region-backname){display:none}
body.desktop-game .pg-region .pg-region-head[data-size="mini"] .pg-region-emblem{width:calc(var(--pg-u)*5.6);height:calc(var(--pg-u)*5.6)}

/* ---------- difficulty seals ---------- */
body.desktop-game .pg-region .pg-region-difficulty{position:absolute;z-index:4;display:flex;flex-direction:column;align-items:center;gap:calc(var(--pg-u)*.7);--seal:calc(var(--pg-u)*8.6)}
body.desktop-game .pg-region .pg-region-difficulty[data-at="tr"]{right:var(--pg-region-pad);top:calc(var(--pg-u)*2)}
body.desktop-game .pg-region .pg-region-difficulty[data-at="tl"]{left:var(--pg-region-pad);top:calc(var(--pg-region-below,140px) + var(--pg-u)*1.4);align-items:flex-start}
body.desktop-game .pg-region .pg-region-difficulty[data-at="bl"]{left:var(--pg-region-pad);bottom:var(--pg-region-pad);align-items:flex-start}
body.desktop-game .pg-region .pg-region-difficulty[data-at="bc"]{left:50%;bottom:var(--pg-region-pad);transform:translateX(-50%)}
body.desktop-game .pg-region .pg-region-difficulty[data-size="compact"]{--seal:calc(var(--pg-u)*6.6)}
body.desktop-game .pg-region .pg-region-difficulty[data-size="mini"]{--seal:calc(var(--pg-u)*5.2)}
body.desktop-game .pg-region .pg-region-difficulty[data-size="mini"] .pg-region-effect{display:none}
body.desktop-game .pg-region .pg-region-seals{display:flex;gap:calc(var(--seal)*.14)}
body.desktop-game .pg-region .pg-region-seal{position:relative;display:grid;place-items:center;width:var(--seal);height:var(--seal);margin:0;padding:0;border:0;border-radius:50%;background:none;cursor:pointer;transition:transform .2s,filter .2s;filter:brightness(.82) saturate(.85) drop-shadow(0 4px 6px #000b)}
body.desktop-game .pg-region .pg-region-seal-art{position:absolute;inset:0;background:url("./assets/pages/region/seal-normal.webp") center/contain no-repeat}
body.desktop-game .pg-region .pg-region-seal.is-hard .pg-region-seal-art{background-image:url("./assets/pages/region/seal-hard.webp")}
body.desktop-game .pg-region .pg-region-seal.is-hell .pg-region-seal-art{background-image:url("./assets/pages/region/seal-hell.webp")}
body.desktop-game .pg-region .pg-region-seal.is-asura .pg-region-seal-art{background-image:url("./assets/pages/region/seal-asura.webp")}
body.desktop-game .pg-region .pg-region-seal>b{position:relative;z-index:2;font:700 max(var(--uk-min,13px),calc(var(--seal)*.26))/1 var(--uk-serif);letter-spacing:.06em;color:#fff4d8;text-shadow:0 1px 2px #000,0 0 6px #000c}
body.desktop-game .pg-region .pg-region-seal-chain{position:absolute;inset:-6%;z-index:1;background:url("./assets/pages/region/chains.webp") center/contain no-repeat;opacity:.92;filter:drop-shadow(0 2px 2px #000)}
body.desktop-game .pg-region .pg-region-seal:hover,body.desktop-game .pg-region .pg-region-seal:focus-visible{filter:brightness(1.02) drop-shadow(0 4px 6px #000b);outline:none}
body.desktop-game .pg-region .pg-region-seal.selected{transform:translateY(calc(var(--seal)*-.06)) scale(1.1);filter:drop-shadow(0 0 calc(var(--seal)*.16) #ffd27acc) drop-shadow(0 6px 8px #000c);animation:pg-region-stamp .42s cubic-bezier(.3,1.5,.5,1) both}
body.desktop-game .pg-region .pg-region-seal.is-locked:not(.selected) .pg-region-seal-art{filter:grayscale(.5) brightness(.75)}
body.desktop-game .pg-region .pg-region-effect{display:flex;flex-direction:column;align-items:center;gap:2px;margin:0;box-sizing:border-box;height:auto;min-height:max(26px,calc(var(--pg-u)*3.4));padding:calc(var(--pg-u)*.2) calc(var(--pg-u)*1.4);border-style:solid;border-color:transparent;border-width:calc(max(26px,var(--pg-u)*3.4)*120/635) calc(max(26px,var(--pg-u)*3.4)*620/635);border-image:url("./assets/desktop/nav/plaque.webp") 120 620 fill / calc(max(26px,var(--pg-u)*3.4)*120/635) calc(max(26px,var(--pg-u)*3.4)*620/635) stretch;filter:drop-shadow(0 4px 6px #000b);white-space:nowrap;animation:pg-region-fade .35s ease-out both}
body.desktop-game .pg-region .pg-region-effect>span{font:700 max(var(--uk-min,12px),calc(var(--pg-u)*1.55))/1.25 var(--uk-serif);color:#f3dfae;letter-spacing:.04em;text-shadow:0 1px 2px #000}
body.desktop-game .pg-region .pg-region-effect>small{font:400 max(var(--uk-min,12px),calc(var(--pg-u)*1.3))/1.2 var(--uk-sans);color:#ff9d8f;text-shadow:0 1px 2px #000}
body.desktop-game .pg-region .pg-region-difficulty[data-size="compact"] .pg-region-effect>span{font-size:max(var(--uk-min,12px),calc(var(--pg-u)*1.35))}

/* ---------- legend: one small stone plate, three icons + three words ---------- */
body.desktop-game .pg-region .pg-region-legend{position:absolute;z-index:4;display:flex;align-items:center;gap:calc(var(--pg-u)*1.6);box-sizing:border-box;height:max(30px,calc(var(--pg-u)*4.6));padding:0 calc(var(--pg-u)*1.2);border-style:solid;border-color:transparent;border-width:calc(max(30px,var(--pg-u)*4.6)*120/635) calc(max(30px,var(--pg-u)*4.6)*620/635);border-image:url("./assets/desktop/nav/plaque.webp") 120 620 fill / calc(max(30px,var(--pg-u)*4.6)*120/635) calc(max(30px,var(--pg-u)*4.6)*620/635) stretch;filter:drop-shadow(0 4px 8px #000c)}
body.desktop-game .pg-region .pg-region-legend[data-at="br"]{right:var(--pg-region-pad);bottom:var(--pg-region-pad)}
body.desktop-game .pg-region .pg-region-legend[data-at="bl"]{left:var(--pg-region-pad);bottom:var(--pg-region-pad)}
body.desktop-game .pg-region .pg-region-legend[data-at="tr"]{right:var(--pg-region-pad);top:calc(var(--pg-u)*2)}
body.desktop-game .pg-region .pg-region-legend[data-at="bc"]{left:50%;bottom:var(--pg-region-pad);transform:translateX(-50%)}
body.desktop-game .pg-region .pg-region-legend>span{display:inline-flex;align-items:center;gap:calc(var(--pg-u)*.5);font:700 max(var(--uk-min,12px),calc(var(--pg-u)*1.5))/1 var(--uk-serif);color:#f3dfae;white-space:nowrap;text-shadow:0 1px 2px #000}
body.desktop-game .pg-region .pg-region-legend[data-size="compact"]{gap:calc(var(--pg-u)*1);height:max(28px,calc(var(--pg-u)*3.8))}
body.desktop-game .pg-region .pg-region-key{position:relative;display:block;width:calc(var(--pg-u)*3.2);height:calc(var(--pg-u)*3.2);background:url("./assets/pages/region/node.webp") center/contain no-repeat}
body.desktop-game .pg-region .pg-region-key.is-cleared{filter:brightness(1.25) sepia(.35) drop-shadow(0 0 5px #f1d896)}
body.desktop-game .pg-region .pg-region-key.is-current{filter:drop-shadow(0 0 5px #ff9a3c) drop-shadow(0 0 2px #ffb45c)}
body.desktop-game .pg-region .pg-region-key.is-locked{filter:grayscale(.8) brightness(.7)}
body.desktop-game .pg-region .pg-region-key.is-locked::after{content:"";position:absolute;inset:-12%;background:url("./assets/pages/region/chains.webp") center/contain no-repeat}

/* ---------- stage nodes: gold-rimmed stone sigils, crowned boss ring, name plate ---------- */
body.desktop-game .pg-region .ds-stage-node{--sig:clamp(40px,calc(var(--pg-u)*6.6),84px);--boss:clamp(70px,calc(var(--pg-u)*11.5),150px);--anchor:calc(var(--sig)*.5);width:max-content;max-width:none;gap:calc(var(--pg-u)*.5);padding:0;transform:translate(-50%,calc(var(--anchor)*-1));text-shadow:none;outline:none}
body.desktop-game .pg-region .ds-stage-node.boss{--anchor:calc(var(--boss)*.664)}
body.desktop-game .pg-region .pg-region-sigil{position:relative;display:block;flex:none;width:var(--sig);height:var(--sig);animation:pg-region-wave .45s ease-out both;animation-delay:calc(var(--i,0)*45ms)}
body.desktop-game .pg-region .pg-region-node-art{position:absolute;inset:0;background:url("./assets/pages/region/node.webp") center/contain no-repeat;filter:drop-shadow(0 4px 5px #000c);transition:filter .2s,transform .2s}
body.desktop-game .pg-region .pg-region-num{position:absolute;inset:0;z-index:3;display:grid;place-items:center;font:700 calc(var(--sig)*.3)/1 var(--uk-serif);font-style:normal;color:#f1dfb3;text-shadow:0 1px 2px #000,0 0 6px #000;font-variant-numeric:tabular-nums}
body.desktop-game .pg-region .ds-stage-node.cleared .pg-region-node-art{filter:brightness(1.18) sepia(.3) drop-shadow(0 0 calc(var(--sig)*.18) #f1d896aa) drop-shadow(0 4px 5px #000c)}
body.desktop-game .pg-region .ds-stage-node.cleared .pg-region-num{color:#fff4d4}
body.desktop-game .pg-region .ds-stage-node.locked .pg-region-node-art{filter:grayscale(.85) brightness(.62) drop-shadow(0 4px 5px #000c)}
body.desktop-game .pg-region .ds-stage-node.locked .pg-region-num{color:#a9adb0}
body.desktop-game .pg-region .pg-region-node-chains{position:absolute;inset:-8%;z-index:2;background:url("./assets/pages/region/chains.webp") center/contain no-repeat;opacity:.9;pointer-events:none}
body.desktop-game .pg-region .pg-region-flame{position:absolute;inset:-26%;z-index:0;border-radius:50%;background:radial-gradient(circle,transparent 34%,color-mix(in srgb,var(--pg-region-el,#ff8a3c) 45%,#ff9a3c99) 47%,#ffb45c44 57%,transparent 70%);filter:blur(2px);animation:pg-region-breathe 2.6s ease-in-out infinite;pointer-events:none}
body.desktop-game .pg-region .pg-region-flame::before,body.desktop-game .pg-region .pg-region-flame::after{content:"";position:absolute;left:50%;top:6%;width:5%;height:5%;border-radius:50%;background:#ffd58a;box-shadow:0 0 6px #ff9a3c;animation:pg-region-spark 2.2s ease-out infinite}
body.desktop-game .pg-region .pg-region-flame::after{left:30%;top:16%;animation-delay:1.1s}
/* boss: real portrait inside the crowned ring; anchor = ring centre; a slow aura in the region's colour */
body.desktop-game .pg-region .pg-region-sigil.is-boss{width:var(--boss);height:calc(var(--boss)*730/635)}
body.desktop-game .pg-region .pg-region-sigil.is-boss::before{content:"";position:absolute;left:50.9%;top:57.8%;width:118%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--pg-region-el,#d4b477) 55%,transparent) 30%,transparent 68%);animation:pg-region-aura 5s ease-in-out infinite;pointer-events:none}
body.desktop-game .pg-region .pg-region-sigil.is-boss .pg-region-flame{inset:auto;left:50.9%;top:57.8%;width:112%;aspect-ratio:1;transform:translate(-50%,-50%)}
body.desktop-game .pg-region .pg-region-boss-art.ds-boss-badge{position:absolute;inset:auto;left:50.9%;top:57.8%;width:70%;height:auto;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;overflow:hidden;background:#0b1622}
body.desktop-game .pg-region .pg-region-sigil.is-boss .pg-region-boss-art.ds-boss-badge{position:absolute;left:50.9%;top:57.8%}
body.desktop-game .pg-region .pg-region-boss-ring{position:absolute;inset:0;z-index:1;background:url("./assets/pages/region/boss-frame.webp") center/100% 100% no-repeat;filter:drop-shadow(0 5px 7px #000c)}
body.desktop-game .pg-region .ds-stage-node.boss.locked .pg-region-boss-art{filter:grayscale(.75) brightness(.6)}
body.desktop-game .pg-region .ds-stage-node.boss .pg-region-node-chains{inset:14% 6% -2%}
body.desktop-game .pg-region .ds-stage-node.boss.cleared .pg-region-boss-ring{filter:brightness(1.12) drop-shadow(0 0 10px #f1d896aa) drop-shadow(0 5px 7px #000c)}
/* plate */
body.desktop-game .pg-region .pg-region-plate{position:relative;display:flex;flex-direction:column;align-items:center;gap:1px;transition:transform .2s}
body.desktop-game .pg-region .ds-stage-node .pg-region-plate strong{--np-h:max(24px,calc(var(--pg-u)*2.9));display:flex;align-items:center;justify-content:center;box-sizing:border-box;max-width:none;height:var(--np-h);margin:0;padding:0;border-style:solid;border-color:transparent;border-width:calc(var(--np-h)*120/635) calc(var(--np-h)*620/635);border-radius:0;border-image:url("./assets/desktop/nav/plaque.webp") 120 620 fill / calc(var(--np-h)*120/635) calc(var(--np-h)*620/635) stretch;background:none;box-shadow:none;font:700 max(var(--uk-min,13px),calc(var(--pg-u)*1.75))/1 var(--uk-serif);letter-spacing:.06em;color:#f6e7c0;white-space:nowrap;text-shadow:0 1px 2px #000;filter:drop-shadow(0 3px 4px #000a)}
body.desktop-game .pg-region .ds-stage-node .pg-region-plate small{display:block;margin:0;padding:0 calc(var(--pg-u)*.9);font:400 max(var(--uk-min,12px),calc(var(--pg-u)*1.4))/1.35 var(--uk-sans);letter-spacing:.06em;color:#dfe3e0;background:linear-gradient(90deg,transparent,#07111bcc 20%,#07111bcc 80%,transparent);white-space:nowrap}
body.desktop-game .pg-region .ds-stage-node .pg-region-plate small.is-stars{color:#f6d27a;letter-spacing:-.02em;text-shadow:0 0 6px #ffd27a88}
body.desktop-game .pg-region .ds-stage-node.current .pg-region-plate small{color:#ffd9a0}
body.desktop-game .pg-region .ds-stage-node.locked .pg-region-plate strong{color:#c9ccc9}
body.desktop-game .pg-region .pg-region-tip{--tp-b:clamp(10px,calc(var(--pg-u)*1.2),16px);position:absolute;left:50%;top:calc(100% + 4px);z-index:6;transform:translate(-50%,-4px);box-sizing:border-box;padding:calc(var(--pg-u)*.15) calc(var(--pg-u)*.5);border:var(--tp-b) solid transparent;border-radius:0;border-image:url("./assets/pages/_kit/panel.webp") 200 fill / var(--tp-b) stretch;background:none;box-shadow:none;filter:drop-shadow(0 4px 6px #000c);font:400 max(var(--uk-min,12px),calc(var(--pg-u)*1.4))/1.3 var(--uk-sans);font-style:normal;color:#f3e6c4;text-shadow:0 1px 2px #000;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .16s,transform .16s}
body.desktop-game .pg-region .ds-stage-node:is(:hover,:focus-visible) .pg-region-tip{opacity:1;transform:translate(-50%,0)}
body.desktop-game .pg-region .ds-stage-node:is(:hover,:focus-visible) .pg-region-plate{transform:translateY(-2px)}
body.desktop-game .pg-region .ds-stage-node:is(:hover,:focus-visible) :is(.pg-region-node-art,.pg-region-boss-ring){filter:brightness(1.25) drop-shadow(0 0 10px #ffd27acc) drop-shadow(0 4px 5px #000c)}
body.desktop-game .pg-region .ds-stage-node:is(.selected,[aria-current]) .pg-region-sigil::after{content:"";position:absolute;inset:-14%;z-index:3;border-radius:50%;box-shadow:0 0 0 2px #f1d896,0 0 14px 4px #f1d89688;pointer-events:none;animation:uk-breathe 2.4s ease-in-out infinite}
body.desktop-game .pg-region .ds-stage-node.boss:is(.selected,[aria-current]) .pg-region-sigil::after{inset:auto;left:50.9%;top:57.8%;width:78%;aspect-ratio:1;transform:translate(-50%,-50%)}
body.desktop-game .pg-region .ds-stage-node:focus-visible .pg-region-plate strong{filter:drop-shadow(0 0 2px #f1d896) drop-shadow(0 0 6px #f1d896aa) drop-shadow(0 3px 4px #000a)}

/* routes: element-coloured glowing trail; cleared segments solid; a fresh clear draws itself once */
body.desktop-game .pg-region .ds-stage-routes path{stroke:color-mix(in srgb,var(--pg-region-el,#d4b477) 50%,#c5b896);stroke-opacity:.55;stroke-width:.28;stroke-dasharray:.7 .8;filter:none}
body.desktop-game .pg-region .ds-stage-routes path.cleared{stroke:color-mix(in srgb,var(--pg-region-el,#d4b477) 55%,#ffe7a8);stroke-opacity:.95;stroke-width:.42;stroke-dasharray:none;filter:drop-shadow(0 0 .5px var(--pg-region-el,#ffd27a))}
body.desktop-game .pg-region .ds-stage-routes path.pg-region-fresh{stroke-dasharray:1;stroke-dashoffset:1;animation:pg-region-draw 1.4s ease-out .3s forwards}

@keyframes pg-region-stamp{0%{transform:perspective(400px) rotateY(80deg) scale(1.25)}70%{transform:translateY(calc(var(--seal)*-.06)) scale(1.04)}100%{transform:translateY(calc(var(--seal)*-.06)) scale(1.1)}}
@keyframes pg-region-fade{from{opacity:0}to{opacity:1}}
@keyframes pg-region-wave{from{opacity:0}to{opacity:1}}
@keyframes pg-region-breathe{0%,100%{opacity:.55;transform:scale(.94)}50%{opacity:1;transform:scale(1.04)}}
body.desktop-game .pg-region .pg-region-sigil.is-boss .pg-region-flame{animation-name:pg-region-breathe-boss}
@keyframes pg-region-breathe-boss{0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(.94)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.04)}}
@keyframes pg-region-spark{0%{opacity:0;transform:translateY(0)}20%{opacity:1}100%{opacity:0;transform:translateY(-260%)}}
@keyframes pg-region-aura{0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(.96)}50%{opacity:.9;transform:translate(-50%,-50%) scale(1.04)}}
@keyframes pg-region-ember{0%,100%{opacity:.85}50%{opacity:1}}
@keyframes pg-region-draw{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){
  body.desktop-game .pg-region :is(.pg-region-tint,.pg-region-seal,.pg-region-effect,.pg-region-sigil,.pg-region-flame){animation:none!important}
  body.desktop-game .pg-region .pg-region-sigil::before,body.desktop-game .pg-region .pg-region-sigil::after,body.desktop-game .pg-region .pg-region-flame::before,body.desktop-game .pg-region .pg-region-flame::after{animation:none!important}
  body.desktop-game .pg-region .ds-stage-routes path.pg-region-fresh{animation:none;stroke-dashoffset:0}
  body.desktop-game .pg-region :is(.pg-region-plate,.pg-region-tip,.pg-region-node-art,.pg-region-seal){transition:none!important}
}

/* ch56-asura-provisional：第五、六章修罗印记的「暂定」小签（颜色同 page-rift 的暂定）。贴在印记圆内下沿，不改印记尺寸。 */
body.desktop-game .pg-region .pg-region-seal>.pg-draft-tag{position:absolute;left:50%;bottom:2%;z-index:3;transform:translateX(-50%);padding:1px 4px;border-radius:6px;background:#1b0d0bd9;font:400 max(11px,calc(var(--seal)*.16))/1.1 var(--uk-sans);font-style:normal;color:#ff9f8a;white-space:nowrap;pointer-events:none}
body.desktop-game .pg-region .pg-region-effect>.pg-draft-tag{margin-left:6px;font:400 max(11px,.9em)/1 var(--uk-sans);font-style:normal;color:#ff9f8a}
