/* Desktop 出战准备「封印之门」 + 战斗规则「封印卷轴」. Every selector starts at .pg-prep (optionally after body.desktop-game / an element / an id).
   Layout unit: var(--pg-u) = (window height − top bar) / 100 → ~10px at 1080p, ~7px at 768. Fixed grid areas: nothing overlaps, nothing scrolls. */

/* ── Screen grid: head / road / scout on the left, the seal gate + depart note on the right, the stone ledge across the bottom ── */
body.desktop-game section.pg-prep{--u:var(--pg-u);--pad:calc(var(--u)*5);--gap:calc(var(--u)*1.6);--gate-w:clamp(calc(var(--u)*34),27%,calc(var(--u)*46));
  display:grid;box-sizing:border-box;padding:var(--pad);grid-template-columns:minmax(0,1fr) var(--gate-w);
  grid-template-rows:auto minmax(0,1fr) calc(var(--u)*22) calc(var(--u)*21);grid-template-areas:"head side" "road side" "scout side" "ledge ledge";
  column-gap:calc(var(--u)*2.4);row-gap:var(--gap);color:var(--uk-text);font:400 var(--uk-body)/1.5 var(--uk-sans);background:#05090f}
body.desktop-game section.pg-prep>*{position:relative;z-index:1;min-width:0}
body.desktop-game section.pg-prep>.pg-prep-bg{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
body.desktop-game .pg-prep-bg-blur{position:absolute;inset:-6%;background:center/cover no-repeat;filter:blur(16px) brightness(.5) saturate(1.1)}
body.desktop-game .pg-prep .pg-prep-art{position:absolute;inset:0}
body.desktop-game .pg-prep .pg-prep-art img{-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent),linear-gradient(transparent,#000 6%,#000 94%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent),linear-gradient(transparent,#000 6%,#000 94%,transparent);mask-composite:intersect;transform-origin:62% 55%}
body.desktop-game .pg-prep-bg-shade{position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 58% 42%,transparent 35%,#05090fb0 100%),linear-gradient(90deg,#05090fd0,transparent 22%,transparent 70%,#05090f80),linear-gradient(180deg,#05090f99,transparent 26%,transparent 58%,#05090fd8 88%)}
/* Harder seals burn brighter behind the gate (design: 「难度封印…背景的火光变强」). */
body.desktop-game section.pg-prep>.pg-prep-bg::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .6s ease;background:radial-gradient(ellipse 60% 55% at 72% 62%,#ff6a1a40,transparent 70%),radial-gradient(ellipse 80% 40% at 40% 100%,#ff4a1a33,transparent 70%);mix-blend-mode:screen}
body.desktop-game section.pg-prep[data-difficulty="hard"]>.pg-prep-bg::after{opacity:.6}
body.desktop-game section.pg-prep[data-difficulty="hell"]>.pg-prep-bg::after{opacity:1}
body.desktop-game .pg-prep-embers i{position:absolute;bottom:-2%;width:calc(var(--u)*.5);height:calc(var(--u)*.5);border-radius:50%;background:radial-gradient(circle,#ffd18a,#ff7a2a 45%,transparent 70%);opacity:0;animation:pg-prep-ember 9s linear infinite}
body.desktop-game .pg-prep-embers i:nth-child(1){left:12%;animation-delay:0s}body.desktop-game .pg-prep-embers i:nth-child(2){left:24%;animation-delay:-3.1s;animation-duration:11s}
body.desktop-game .pg-prep-embers i:nth-child(3){left:37%;animation-delay:-6.4s}body.desktop-game .pg-prep-embers i:nth-child(4){left:49%;animation-delay:-1.7s;animation-duration:12s}
body.desktop-game .pg-prep-embers i:nth-child(5){left:58%;animation-delay:-4.9s}body.desktop-game .pg-prep-embers i:nth-child(6){left:66%;animation-delay:-8.2s;animation-duration:10s}
body.desktop-game .pg-prep-embers i:nth-child(7){left:31%;animation-delay:-2.5s;animation-duration:13s}body.desktop-game .pg-prep-embers i:nth-child(8){left:8%;animation-delay:-7.3s}
@keyframes pg-prep-ember{0%{transform:translate3d(0,0,0) scale(.6);opacity:0}12%{opacity:.85}80%{opacity:.4}100%{transform:translate3d(calc(var(--pg-u)*3),calc(var(--pg-u)*-70),0) scale(1);opacity:0}}
body.desktop-game .pg-prep.is-entering .pg-prep-art img{animation:pg-prep-push 2s cubic-bezier(.2,.6,.2,1) both}
@keyframes pg-prep-push{from{transform:scale(1)}to{transform:scale(1.035)}}
body.desktop-game .pg-prep:not(.is-entering) .pg-prep-art img{transform:scale(1.035)}

/* ── Head: back tab + layer pips / inheritance chain; title plaque + difficulty seals ── */
body.desktop-game .pg-prep-head{grid-area:head;display:flex;flex-direction:column;gap:calc(var(--u)*.9);align-items:flex-start}
body.desktop-game .pg-prep-row1,body.desktop-game .pg-prep-row2{display:flex;align-items:center;gap:calc(var(--u)*2);max-width:100%}
body.desktop-game .pg-prep .pg-prep-back{flex:none}
body.desktop-game .pg-prep-waves{display:inline-flex;align-items:center;gap:calc(var(--u)*.9);min-width:0;padding:calc(var(--u)*.4) calc(var(--u)*1.2);border-radius:calc(var(--u)*2);color:#d9c9a0;cursor:help;background:radial-gradient(ellipse at center,#0b1622c8 30%,transparent 75%)}
body.desktop-game .pg-prep-waves:focus-visible{outline:2px solid var(--uk-gold-hi);outline-offset:2px}
body.desktop-game .pg-prep-waves>b{font:700 max(13px,calc(var(--u)*1.75))/1 var(--uk-serif);letter-spacing:.06em;color:#f1d896;white-space:nowrap;text-shadow:0 1px 2px #000}
body.desktop-game .pg-prep-pips{display:inline-flex;align-items:flex-end;gap:calc(var(--u)*.15)}
body.desktop-game .pg-prep-pip{display:block;width:calc(var(--u)*1.25);height:calc(var(--u)*1.95);background:url("./assets/pages/prep/ember.webp") center/contain no-repeat;filter:drop-shadow(0 0 4px #ff8a2a88)}
body.desktop-game .pg-prep-pip.is-boss{width:calc(var(--u)*1.55);height:calc(var(--u)*2.4);filter:hue-rotate(-18deg) saturate(1.5) drop-shadow(0 0 6px #ff3b1fcc)}
body.desktop-game .pg-prep-chain{display:inline-flex;align-items:center;gap:calc(var(--u)*.35);opacity:.9}
body.desktop-game .pg-prep-chain img{width:calc(var(--u)*1.9);height:calc(var(--u)*1.9);display:block}
body.desktop-game .pg-prep-chain-arrow{display:block;width:calc(var(--u)*.7);height:calc(var(--u)*.7);border-top:2px solid #c9a25a;border-right:2px solid #c9a25a;transform:rotate(45deg);opacity:.8}
body.desktop-game .pg-prep-chain em{font:700 max(var(--uk-min,12px),calc(var(--u)*1.35))/1 var(--uk-serif);font-style:normal;color:#c9b88f;white-space:nowrap}
body.desktop-game .pg-prep .pg-prep-title{flex:0 1 auto;min-width:0;max-width:100%}
body.desktop-game .pg-prep .pg-prep-title.is-long .uk-plaque-text{font-size:calc(var(--u)*3.3)}
body.desktop-game .pg-prep-seals{display:flex;gap:calc(var(--u)*1.2);flex:none}
body.desktop-game .pg-prep-seal{position:relative;display:flex;flex-direction:column;align-items:center;gap:calc(var(--u)*.2);margin:0;padding:0;border:0;background:none;cursor:pointer;color:#cdbf9c;transition:transform .18s ease,filter .18s ease}
body.desktop-game .pg-prep-seal-gem{display:block;width:calc(var(--u)*5.2);height:calc(var(--u)*5.2);background:center/contain no-repeat;filter:brightness(.6) saturate(.7) drop-shadow(0 3px 4px #000c);transition:filter .2s ease}
body.desktop-game .pg-prep-seal.is-normal .pg-prep-seal-gem{background-image:url("./assets/pages/prep/seal-normal.webp")}
body.desktop-game .pg-prep-seal.is-hard .pg-prep-seal-gem{background-image:url("./assets/pages/prep/seal-hard.webp")}
body.desktop-game .pg-prep-seal.is-hell .pg-prep-seal-gem{background-image:url("./assets/pages/prep/seal-hell.webp")}
body.desktop-game .pg-prep-seal.is-asura .pg-prep-seal-gem{background-image:url("./assets/pages/prep/seal-asura.webp")}
body.desktop-game .pg-prep-seal-name{font:700 max(var(--uk-min,12px),calc(var(--u)*1.5))/1 var(--uk-serif);letter-spacing:.1em;text-indent:.1em;text-shadow:0 1px 2px #000,0 0 6px #000}
body.desktop-game .pg-prep-seal.is-selected{transform:scale(1.08);color:#fff1c9}
body.desktop-game .pg-prep-seal.is-selected .pg-prep-seal-gem{filter:brightness(1.12) drop-shadow(0 0 10px #ffd27acc) drop-shadow(0 3px 4px #000c)}
body.desktop-game .pg-prep-seal:not(.is-selected):hover{transform:translateY(-2px)}
body.desktop-game .pg-prep-seal:not(.is-selected):hover .pg-prep-seal-gem{filter:brightness(.9) drop-shadow(0 3px 4px #000c)}
body.desktop-game .pg-prep-seal.is-locked .pg-prep-seal-gem{filter:grayscale(.55) brightness(.42) drop-shadow(0 3px 4px #000c)}
body.desktop-game .pg-prep-seal.is-locked.is-selected .pg-prep-seal-gem{filter:grayscale(.3) brightness(.7) drop-shadow(0 0 8px #e0584a99)}
body.desktop-game .pg-prep-seal.is-locked::after{content:"";position:absolute;left:50%;top:calc(var(--u)*-.3);width:calc(var(--u)*5.6);height:calc(var(--u)*5.8);transform:translateX(-50%);background:url("./assets/pages/prep/chains.webp") center/contain no-repeat;pointer-events:none;filter:drop-shadow(0 2px 2px #000)}
body.desktop-game .pg-prep:not(.is-entering) .pg-prep-seal.is-locked.is-selected::after{animation:pg-prep-rattle-x .45s ease-in-out 1}
@keyframes pg-prep-rattle-x{0%,100%{transform:translateX(-50%)}25%{transform:translateX(-50%) rotate(-7deg)}50%{transform:translateX(-50%) rotate(6deg)}75%{transform:translateX(-50%) rotate(-3deg)}}
body.desktop-game .pg-prep-seal:focus-visible{outline:2px solid var(--uk-gold-hi);outline-offset:3px;border-radius:8px}

/* ── Road of steles: one stele per layer, sized by the road height and the count (container units) ── */
body.desktop-game .pg-prep-road{grid-area:road;container-type:size;display:flex;align-items:flex-end;justify-content:space-evenly;gap:calc(var(--u)*1.2);min-height:0}
body.desktop-game .pg-prep-stele{--w:min(calc(100cqh*1536/2752),calc((100cqw - (var(--pg-steles) - 1)*var(--pg-u)*1.2)/var(--pg-steles)),calc(var(--pg-u)*19));
  position:relative;flex:none;width:var(--w);aspect-ratio:1536/2752;margin:0;padding:0;border:0;background:url("./assets/pages/prep/stele.webp") center/100% 100% no-repeat;cursor:pointer;container-type:inline-size;color:inherit;
  filter:brightness(.82) drop-shadow(0 8px 12px #000b);transition:transform .2s ease,filter .2s ease}
body.desktop-game .pg-prep-stele:hover{transform:translateY(-3px);filter:brightness(.95) drop-shadow(0 10px 14px #000c)}
body.desktop-game .pg-prep-stele.is-selected{filter:brightness(1.04) drop-shadow(0 0 10px #f1d896cc) drop-shadow(0 0 2px #f6e2a8) drop-shadow(0 10px 14px #000c)}
body.desktop-game .pg-prep-stele:focus-visible{outline:2px solid var(--uk-gold-hi);outline-offset:4px;border-radius:40% 40% 6px 6px}
body.desktop-game .pg-prep-stele-medal{position:absolute;left:50%;top:16.6%;width:30%;aspect-ratio:1;transform:translate(-50%,-50%);display:grid;place-items:center;background:url("./assets/pages/_kit/icon-medal.webp") center/contain no-repeat;font:700 max(12px,12cqw)/1 var(--uk-serif);letter-spacing:-.04em;color:#f6e2a8;text-shadow:0 1px 2px #000;filter:drop-shadow(0 2px 3px #000a)}
body.desktop-game .pg-prep-stele.is-selected .pg-prep-stele-medal{filter:drop-shadow(0 0 6px #ffd27a) drop-shadow(0 2px 3px #000a)}
body.desktop-game .pg-prep-preempt{position:absolute;right:2%;top:2%;width:28%;aspect-ratio:1;display:grid;place-items:end center;background:url("./assets/pages/prep/preempt.webp") center/contain no-repeat;filter:drop-shadow(0 0 6px #ff3b1faa)}
body.desktop-game .pg-prep-preempt b{transform:translateY(70%);font:700 max(12px,8cqw)/1 var(--uk-serif);color:#ffb4a4;text-shadow:0 1px 2px #000,0 0 4px #000}
body.desktop-game .pg-prep-stele-face{position:absolute;left:19%;right:19%;top:28%;bottom:17%;display:flex;flex-direction:column;align-items:center;justify-content:space-evenly}
body.desktop-game .pg-prep-stele-foe{--p:46cqw;position:relative;display:flex;align-items:center;justify-content:center;gap:2cqw;width:100%}
body.desktop-game .pg-prep-stele-face[data-count="1"] .pg-prep-stele-foe{--p:54cqw;flex-direction:column;gap:3cqw}
body.desktop-game .pg-prep-stele-face[data-count="2"] .pg-prep-stele-foe{--p:40cqw}
body.desktop-game .pg-prep-stele-face[data-count="3"] .pg-prep-stele-foe{--p:31cqw}
body.desktop-game .pg-prep .pg-prep-stele-img{flex:none;width:var(--p);height:var(--p);border-radius:50%;background:radial-gradient(circle at 50% 40%,#22344a,#0a121c 70%);box-shadow:0 0 0 2px #b8955a,0 0 0 4px #2a1d0e,inset 0 0 8px #000,0 0 10px color-mix(in srgb,var(--uk-el,#d4b477) 45%,transparent)}
body.desktop-game .pg-prep-mini-coins{display:flex;flex-direction:column;gap:1cqw}
body.desktop-game .pg-prep-stele-face[data-count="1"] .pg-prep-mini-coins{flex-direction:row}
body.desktop-game .pg-prep-mini-coins .pg-prep-coin{--c:max(24px,17cqw)}
body.desktop-game .pg-prep-stele-face[data-count="3"] .pg-prep-mini-coins .pg-prep-coin:nth-child(n+2){display:none}
body.desktop-game .pg-prep.is-entering .pg-prep-stele.is-rising{animation:pg-prep-rise .6s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--pg-i,0)*120ms + 120ms)}
@keyframes pg-prep-rise{from{opacity:0;transform:translateY(22%)}to{opacity:1;transform:none}}

/* ── Condition coins: gold = 常规, red = 危险, violet = 第二阶段 (Ⅱ) ── */
body.desktop-game .pg-prep-coin{--c:max(25px,calc(var(--u)*2.5));display:inline-flex;align-items:center;gap:calc(var(--u)*.45);flex:none;vertical-align:middle;cursor:help;outline:none}
body.desktop-game .pg-prep-coin>i{position:relative;display:grid;place-items:center;flex:none;width:var(--c);height:var(--c);background:url("./assets/pages/prep/coin-gold.webp") center/contain no-repeat;font:700 max(var(--uk-min,12px),calc(var(--c)*.48))/1 var(--uk-serif);font-style:normal;color:#3a2410;text-shadow:0 1px 0 #f6e2a888;filter:drop-shadow(0 1px 2px #000b)}
body.desktop-game .pg-prep-coin.is-red>i{background-image:url("./assets/pages/prep/coin-red.webp");color:#ffe9d6;text-shadow:0 1px 1px #000}
body.desktop-game .pg-prep-coin.is-violet{margin-right:calc(var(--c)*.22)}
body.desktop-game .pg-prep-coin.is-violet>i{background-image:url("./assets/pages/prep/coin-violet.webp");color:#f3e6ff;text-shadow:0 1px 1px #000}
body.desktop-game .pg-prep-coin{position:relative}
body.desktop-game .pg-prep-coin>sup{position:absolute;left:calc(var(--c)*.62);top:calc(var(--c)*-.18);display:grid;place-items:center;min-width:max(15px,calc(var(--c)*.5));height:max(15px,calc(var(--c)*.5));border-radius:50%;background:#2a1440;box-shadow:0 0 0 1px #c9a0f0;font:700 max(var(--uk-min,12px),calc(var(--c)*.36))/1 var(--uk-serif);color:#f0e0ff;pointer-events:none}
body.desktop-game .pg-prep-coin.is-more>i{background:radial-gradient(circle,#3a2d1a,#120c06 70%);border-radius:50%;box-shadow:0 0 0 1px #b8955a;color:#f1d896;font-size:max(var(--uk-min,12px),calc(var(--c)*.4))}
body.desktop-game .pg-prep-coin>em{font:700 max(var(--uk-min,12px),calc(var(--u)*1.4))/1.1 var(--uk-serif);font-style:normal;color:#e9dcbc;white-space:nowrap}
body.desktop-game .pg-prep-coin:hover>i,body.desktop-game .pg-prep-coin:focus-visible>i{filter:brightness(1.18) drop-shadow(0 0 5px #ffd27a)}
body.desktop-game .pg-prep-plain{font:700 max(var(--uk-min,12px),calc(var(--u)*1.35))/1.2 var(--uk-serif);color:#b8b09a;white-space:nowrap}

/* ── Scout plaque (stone panel) with the fixed 说明槽 at its right end ── */
body.desktop-game .pg-prep .pg-prep-scout{grid-area:scout;--uk-pb:max(18px,calc(var(--u)*2.4));display:grid;grid-template-columns:minmax(0,1fr) clamp(calc(var(--u)*24),34%,calc(var(--u)*38));gap:calc(var(--u)*1.4);padding:calc(var(--u)*.2) calc(var(--u)*.6);min-height:0;align-items:stretch;filter:drop-shadow(0 8px 14px #000a)}
body.desktop-game .pg-prep-scout-body{display:flex;flex-direction:column;gap:calc(var(--u)*.9);min-width:0;min-height:0;overflow:hidden}
body.desktop-game .pg-prep-scout-body.is-swap{animation:pg-prep-fade .26s ease-out both}
@keyframes pg-prep-fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
body.desktop-game .pg-prep-scout-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:calc(var(--u)*.4) calc(var(--u)*1.4);flex:none}
body.desktop-game .pg-prep-scout-head b{font:700 max(14px,calc(var(--u)*2.1))/1.1 var(--uk-serif);letter-spacing:.08em;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 #000c)}
body.desktop-game .pg-prep-scout-head small{font:400 max(var(--uk-min,12px),calc(var(--u)*1.3))/1.2 var(--uk-sans);color:#c3c9c6}
body.desktop-game .pg-prep-scout-head small.is-preempt{color:#ff9d86}
body.desktop-game .pg-prep-foes{display:flex;gap:calc(var(--u)*1.2);flex:1;min-height:0;align-items:stretch}
body.desktop-game .pg-prep-foe{flex:1 1 0;max-width:calc(var(--u)*36);min-width:0;overflow:clip;overflow-clip-margin:6px;display:flex;align-items:center;gap:calc(var(--u)*.9)}
body.desktop-game .pg-prep-foe-art{position:relative;flex:none;width:calc(var(--u)*7.6);height:calc(var(--u)*7.6)}
body.desktop-game .pg-prep-foes[data-count="3"] .pg-prep-foe-art{width:calc(var(--u)*6.4);height:calc(var(--u)*6.4)}
body.desktop-game .pg-prep .pg-prep-foe-gem{position:absolute;right:0;bottom:0;--uk-gs:calc(var(--u)*2.3)}
body.desktop-game .pg-prep .pg-prep-foe-img{width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 50% 38%,#26384e,#0a121c 72%);box-shadow:0 0 0 2px #c9a25a,0 0 0 4px #2a1d0e,inset 0 0 10px #000,0 0 12px color-mix(in srgb,var(--uk-el,#d4b477) 50%,transparent)}
body.desktop-game .pg-prep-foe-text{display:flex;flex-direction:column;gap:calc(var(--u)*.45);min-width:0}
body.desktop-game .pg-prep-foe-name{display:flex;align-items:center;gap:calc(var(--u)*.4);min-width:0;font:700 max(13px,calc(var(--u)*1.75))/1.32 var(--uk-serif);color:#f3e6c4;text-shadow:0 1px 2px #000}
body.desktop-game .pg-prep-foe-name>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.desktop-game .pg-prep-foe-stats{display:flex;align-items:center;gap:calc(var(--u)*1);white-space:nowrap}
body.desktop-game .pg-prep-foe-stats>span{display:inline-flex;align-items:center;gap:calc(var(--u)*.3);cursor:help}
body.desktop-game .pg-prep-foe-stats b{font:700 max(var(--uk-min,12px),calc(var(--u)*1.5))/1 var(--uk-serif);color:#f3ead2}
body.desktop-game .pg-prep-foe-stats small{font:700 max(var(--uk-min,12px),calc(var(--u)*1.1))/1 var(--uk-serif);color:#c9a25a;margin-left:calc(var(--u)*.15)}
body.desktop-game .pg-prep-foe-stats{flex-wrap:wrap;row-gap:calc(var(--u)*.2)}
body.desktop-game .pg-prep-foes.is-boss{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:calc(var(--u)*1.4)}
body.desktop-game .pg-prep-foe.is-lead{display:grid;grid-template-columns:auto minmax(0,1fr);align-content:center;column-gap:calc(var(--u)*.9);row-gap:calc(var(--u)*.6);max-width:none}
body.desktop-game .pg-prep-foe.is-lead .pg-prep-foe-art{width:calc(var(--u)*6.6);height:calc(var(--u)*6.6)}
body.desktop-game .pg-prep-coinrow{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--u)*.45) calc(var(--u)*.55);min-width:0}
body.desktop-game .pg-prep-coinrow .pg-prep-coins{display:contents}
body.desktop-game .pg-prep-retinue{display:flex;flex-direction:column;justify-content:center;gap:calc(var(--u)*.8);min-width:0}
body.desktop-game .pg-prep-foe.is-compact{max-width:none;flex:none}
body.desktop-game .pg-prep-foe.is-compact .pg-prep-foe-art{width:calc(var(--u)*4.8);height:calc(var(--u)*4.8)}
body.desktop-game .pg-prep .pg-prep-foe.is-compact .pg-prep-foe-gem{--uk-gs:calc(var(--u)*1.8)}
body.desktop-game .pg-prep-foe.is-compact .pg-prep-foe-text{gap:calc(var(--u)*.25)}
body.desktop-game .pg-prep-foe.is-compact .pg-prep-foe-name{font-size:max(var(--uk-min,12px),calc(var(--u)*1.5))}
body.desktop-game .pg-prep-foe-line{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--u)*.3) calc(var(--u)*.8);min-width:0}
body.desktop-game .pg-prep-foe-line .pg-prep-coins{display:contents}
body.desktop-game .pg-prep-coins{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--u)*.4) calc(var(--u)*.7);min-width:0}
body.desktop-game .pg-prep-coins.is-phase2{gap:calc(var(--u)*.35)}
body.desktop-game .pg-prep-conds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(var(--u)*.7) calc(var(--u)*1.6);align-content:start;min-height:0;overflow:hidden}
body.desktop-game .pg-prep-cond{display:flex;gap:calc(var(--u)*.7);align-items:flex-start;margin:0;font:400 max(var(--uk-min,12px),calc(var(--u)*1.3))/1.35 var(--uk-sans);color:#d8d2c2}
body.desktop-game .pg-prep-cond>span:last-child{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.desktop-game .pg-prep-cond b{font:700 max(var(--uk-min,12px),calc(var(--u)*1.4))/1.2 var(--uk-serif);color:#f1d896;margin-right:calc(var(--u)*.5)}
body.desktop-game .pg-prep-conds.is-tight .pg-prep-cond>span:last-child{-webkit-line-clamp:1}
body.desktop-game .pg-prep-conds.is-tighter{grid-template-columns:repeat(3,minmax(0,1fr))}
body.desktop-game .pg-prep-conds.is-tighter .pg-prep-cond{align-items:center}
body.desktop-game .pg-prep-conds.is-tighter .pg-prep-cond>span:last-child{font-size:0}
body.desktop-game .pg-prep-conds.is-tighter .pg-prep-cond b{font-size:max(var(--uk-min,12px),calc(var(--u)*1.4))}
body.desktop-game .pg-prep-cond.is-empty{grid-column:1/-1;font:700 max(13px,calc(var(--u)*1.7))/1.4 var(--uk-serif);color:#e9dcbc}
body.desktop-game .pg-prep-slot{display:flex;flex-direction:column;gap:calc(var(--u)*.4);min-height:0;overflow:hidden;box-sizing:border-box;padding:calc(var(--u)*.9) calc(var(--u)*3.2 - 10px) calc(var(--u)*.5);border-style:solid;border-color:transparent;border-width:max(9px,calc(var(--u)*1.25));border-image:url("./assets/pages/prep/slot.webp") 70 fill / max(9px,calc(var(--u)*1.25)) stretch;filter:drop-shadow(0 3px 5px #0009)}
body.desktop-game .pg-prep-slot b{flex:none;font:700 max(13px,calc(var(--u)*1.6))/1.2 var(--uk-serif);color:#f1d896;text-shadow:0 1px 2px #000}
body.desktop-game .pg-prep-slot p{margin:0;font:400 max(var(--uk-min,12px),calc(var(--u)*1.3))/1.38 var(--uk-sans);color:#e2ddd0;text-shadow:0 1px 1px #000;display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical;overflow:hidden}

/* ── The seal gate (Elden-Ring-like threshold): boss form behind a drifting golden fog veil, name over a long thin health bar ── */
body.desktop-game .pg-prep-side{grid-area:side;display:flex;flex-direction:column;gap:calc(var(--u)*1.2);min-height:0}
body.desktop-game .pg-prep-gate{flex:1 1 0;min-height:0;display:flex;flex-direction:column;gap:calc(var(--u)*.7)}
body.desktop-game .pg-prep-gate-slot{flex:1 1 0;min-height:0;container-type:size;display:flex;justify-content:center;align-items:flex-end}
body.desktop-game .pg-prep-gate-frame{position:relative;flex:none;width:min(100cqw,calc(100cqh*1695/2528));aspect-ratio:1695/2528;margin:0;padding:0;border:0;background:none;cursor:pointer;container-type:inline-size;color:inherit;filter:drop-shadow(0 12px 18px #000c);transition:filter .25s ease,transform .25s ease}
body.desktop-game .pg-prep-gate-frame:hover{transform:translateY(-2px)}
body.desktop-game .pg-prep-gate.is-selected .pg-prep-gate-frame{filter:drop-shadow(0 0 12px #f1d896aa) drop-shadow(0 12px 18px #000c)}
body.desktop-game .pg-prep-gate-frame:focus-visible{outline:2px solid var(--uk-gold-hi);outline-offset:4px;border-radius:45% 45% 4px 4px}
body.desktop-game .pg-prep-gate-window{position:absolute;left:22%;right:21.6%;top:14.6%;bottom:38.2%;z-index:1;overflow:hidden;border-radius:50% 50% 0 0/26% 26% 0 0;background:radial-gradient(ellipse at 50% 70%,#2a1a10,#07090d 75%)}
body.desktop-game .pg-prep-gate-art{position:absolute;inset:0;z-index:2;background:url("./assets/pages/prep/gate-frame.webp") center/100% 100% no-repeat;pointer-events:none}
body.desktop-game .pg-prep .pg-prep-boss{position:absolute;left:0;top:0;max-width:none;max-height:none;display:block;transition:opacity .4s ease}
body.desktop-game .pg-prep .pg-prep-boss:not([data-pixel-safe]){opacity:0}
body.desktop-game .pg-prep .pg-prep-boss[data-fade-top]{-webkit-mask-image:linear-gradient(180deg,transparent,#000 9%);mask-image:linear-gradient(180deg,transparent,#000 9%)}
body.desktop-game .pg-prep .pg-prep-boss-video{position:absolute;left:0;top:0;object-fit:cover;opacity:0;transition:opacity .6s ease}
body.desktop-game .pg-prep .pg-prep-boss-video.is-playing{opacity:1}
body.desktop-game .pg-prep .pg-prep-boss-video[data-fade-top]{-webkit-mask-image:linear-gradient(180deg,transparent,#000 7%);mask-image:linear-gradient(180deg,transparent,#000 7%)}
body.desktop-game .pg-prep-door{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.85)}
body.desktop-game .pg-prep-runes{position:absolute;left:50%;top:46%;width:92%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;mix-blend-mode:screen;opacity:.42;
  background:radial-gradient(circle,transparent 60%,#ff3b1f55 61%,transparent 62.5%,transparent 66%,#ff5a2a88 67%,transparent 68.5%),repeating-conic-gradient(from 0deg,#ff6a3a99 0 2.2deg,transparent 2.2deg 7deg);
  -webkit-mask:radial-gradient(circle,transparent 62%,#000 63%,#000 66%,transparent 67%);mask:radial-gradient(circle,transparent 62%,#000 63%,#000 66%,transparent 67%);animation:pg-prep-spin 36s linear infinite}
body.desktop-game .pg-prep-runes::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,transparent 61%,#ff6a3acc 61.5%,transparent 62.5%,transparent 66.5%,#ff6a3acc 67%,transparent 68%)}
@keyframes pg-prep-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
body.desktop-game .pg-prep-fog{position:absolute;inset:0;pointer-events:none;transition:opacity .5s ease;opacity:.92;background:linear-gradient(90deg,#f3dcab10,#f6e2b42c 30%,#fbe9c23a 50%,#f6e2b42c 70%,#f3dcab10),linear-gradient(180deg,#f3dcab10,transparent 40%)}
body.desktop-game .pg-prep-fog::before,body.desktop-game .pg-prep-fog::after{content:"";position:absolute;inset:-10% -40%}
body.desktop-game .pg-prep-fog::before{background:linear-gradient(0deg,#f0d49acc,#e6c27f55 18%,transparent 46%),radial-gradient(ellipse 40% 22% at 30% 88%,#f6dfae99,transparent 70%),radial-gradient(ellipse 36% 18% at 72% 80%,#f2d7a080,transparent 70%);animation:pg-prep-fog 16s ease-in-out infinite alternate}
body.desktop-game .pg-prep-fog::after{background:radial-gradient(ellipse 30% 46% at 22% 40%,#e9cf9a2e,transparent 70%),radial-gradient(ellipse 34% 40% at 78% 34%,#e9cf9a28,transparent 70%),linear-gradient(180deg,#05080c99,transparent 30%);animation:pg-prep-fog 22s ease-in-out infinite alternate-reverse}
@keyframes pg-prep-fog{from{transform:translate3d(-6%,0,0)}to{transform:translate3d(6%,-2%,0)}}
body.desktop-game .pg-prep-gate-frame:hover .pg-prep-fog,body.desktop-game .pg-prep-gate.is-selected .pg-prep-fog{opacity:.55}
body.desktop-game .pg-prep-gate.is-door .pg-prep-fog::after{background:linear-gradient(180deg,#05080c66,transparent 35%)}
body.desktop-game .pg-prep-gate-medal{position:absolute;left:50%;top:18%;z-index:3;width:15.5%;aspect-ratio:1;transform:translate(-50%,-50%);display:grid;place-items:center;background:url("./assets/pages/_kit/icon-medal.webp") center/contain no-repeat;font:700 max(12px,6.4cqw)/1 var(--uk-serif);letter-spacing:-.04em;color:#f6e2a8;text-shadow:0 1px 2px #000;filter:drop-shadow(0 2px 4px #000c)}
body.desktop-game .pg-prep-ribbon{position:absolute;left:19%;right:19%;top:50.5%;z-index:3;aspect-ratio:3168/1344;background:url("./assets/pages/prep/ribbon.webp") center/100% 100% no-repeat;filter:drop-shadow(0 4px 5px #000b);pointer-events:none}
body.desktop-game .pg-prep-ribbon b{position:absolute;left:18%;right:18%;top:12%;height:44%;display:grid;place-items:center;font:700 max(12px,5.3cqw)/1 var(--uk-serif);letter-spacing:.16em;text-indent:.16em;color:#ffe9c4;text-shadow:0 1px 0 #4a0710,0 2px 3px #000a;white-space:nowrap}
body.desktop-game .pg-prep-ribbon.is-door b{color:#f6e2a8}
body.desktop-game .pg-prep-gate-plaque{position:absolute;left:23.5%;right:23.5%;top:70%;bottom:17%;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2cqw;text-align:center}
body.desktop-game .pg-prep-gate-title{max-width:100%;padding:0 2px;font:700 max(13px,5.9cqw)/1.1 var(--uk-serif);letter-spacing:.04em;background:linear-gradient(180deg,#fbe9bf,#c9a25a);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 0 #1b0f04) drop-shadow(0 2px 2px #000);white-space:nowrap}
body.desktop-game .pg-prep-gate-plaque small{font:700 max(12px,4.2cqw)/1.15 var(--uk-serif);color:#e5d3a6;text-shadow:0 1px 2px #000}
body.desktop-game .pg-prep-gate-plaque small.is-calm{font-weight:400;font-family:var(--uk-sans);color:#d4ccb6}
body.desktop-game .pg-prep-hpbar{position:relative;display:block;width:100%;height:max(5px,1.9cqw);box-sizing:border-box;border:1px solid #b8955a;background:#140405;box-shadow:0 0 0 1px #000,inset 0 0 3px #000}
body.desktop-game .pg-prep-hpbar i{position:absolute;inset:1px;background:linear-gradient(180deg,#c43a2a,#7a120c 70%,#4c0907);box-shadow:inset 0 1px 0 #ff8a6a66}
body.desktop-game .pg-prep-gate-stats{flex:none;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:calc(var(--u)*.5) calc(var(--u)*.6)}
body.desktop-game .pg-prep-gate-cd,body.desktop-game .pg-prep-gate-pre{display:inline-flex;align-items:center;gap:calc(var(--u)*.3);padding-right:calc(var(--u)*.4);cursor:help;outline:none}
body.desktop-game .pg-prep-gate-cd b,body.desktop-game .pg-prep-gate-pre b{font:700 max(var(--uk-min,12px),calc(var(--u)*1.6))/1 var(--uk-serif);color:#f3ead2;text-shadow:0 1px 2px #000}
body.desktop-game .pg-prep-gate-pre b{color:#ff9d86}
body.desktop-game .pg-prep-flame{display:block;width:calc(var(--u)*2.5);height:calc(var(--u)*2.5);background:url("./assets/pages/prep/preempt.webp") center/contain no-repeat;filter:drop-shadow(0 0 4px #ff3b1f99)}
body.desktop-game .pg-prep-gate-cd:focus-visible,body.desktop-game .pg-prep-gate-pre:focus-visible,body.desktop-game .pg-prep-coin:focus-visible{outline:2px solid var(--uk-gold-hi);outline-offset:2px;border-radius:4px}
body.desktop-game .pg-prep-depart{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--u)*.3);box-sizing:border-box;min-height:calc(var(--u)*5.6);padding:0 calc(var(--u)*3.4);text-align:center;border-style:solid;border-color:transparent;border-width:calc(var(--u)*5.6*120/635) calc(var(--u)*5.6*620/635);border-image:url("./assets/desktop/nav/plaque.webp") 120 620 fill / calc(var(--u)*5.6*120/635) calc(var(--u)*5.6*620/635) stretch;filter:drop-shadow(0 4px 8px #000b)}
body.desktop-game .pg-prep-depart strong{font:700 max(13px,calc(var(--u)*1.8))/1.1 var(--uk-serif);letter-spacing:.08em;color:#f6e2a8;text-shadow:0 1px 2px #000;white-space:nowrap}
body.desktop-game .pg-prep-depart small{font:400 max(var(--uk-min,12px),calc(var(--u)*1.25))/1.2 var(--uk-sans);color:#cfc6b0;white-space:nowrap}
body.desktop-game .pg-prep-depart.is-locked strong{color:#f0b0a4}
body.desktop-game .pg-prep-depart.is-locked small{color:#ff8a78;font-weight:700}

/* ── Stone ledge: team medallion + stats, the six hero cards, 破封之策, 出战 ── */
body.desktop-game .pg-prep .pg-prep-ledge{grid-area:ledge;--uk-pb:max(16px,calc(var(--u)*2.1));display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:var(--gap);padding:calc(var(--u)*.3) calc(var(--u)*.9);min-height:0;filter:drop-shadow(0 -4px 14px #0008)}
body.desktop-game .pg-prep-teamcol{display:flex;flex-direction:column;gap:calc(var(--u)*.7);align-self:center}
body.desktop-game .pg-prep-team{display:flex;align-items:center;gap:calc(var(--u)*.8);margin:0;padding:0;border:0;background:none;cursor:pointer;color:#f1d896;transition:transform .16s,filter .16s}
body.desktop-game .pg-prep-team-icon{display:block;flex:none;width:calc(var(--u)*5.4);height:calc(var(--u)*5.4);background:url("./assets/pages/prep/team.webp") center/contain no-repeat;filter:drop-shadow(0 3px 4px #000b)}
body.desktop-game .pg-prep-team-label{font:700 max(13px,calc(var(--u)*1.7))/1 var(--uk-serif);letter-spacing:.1em;text-shadow:0 1px 2px #000;white-space:nowrap}
body.desktop-game .pg-prep-team:hover{transform:translateY(-2px);filter:brightness(1.15)}
body.desktop-game .pg-prep-team:focus-visible{outline:2px solid var(--uk-gold-hi);outline-offset:3px;border-radius:30px}
body.desktop-game .pg-prep-stats{display:flex;flex-direction:column;gap:calc(var(--u)*.45)}
body.desktop-game .pg-prep .pg-prep-stats .uk-stat b{font-size:max(14px,calc(var(--u)*2.1))}
body.desktop-game .pg-prep .pg-prep-stats .uk-icon{--uk-is:calc(var(--u)*2.3)}
body.desktop-game .pg-prep-party{display:flex;align-items:flex-end;gap:calc(var(--u)*.8);align-self:end;padding-bottom:calc(var(--u)*.2)}
body.desktop-game .pg-prep .pg-prep-party .uk-cardbox{gap:calc(var(--u)*.4)}
body.desktop-game .pg-prep .pg-prep-party .uk-card{--uk-cw:calc(var(--u)*9.4)}
body.desktop-game .pg-prep .pg-prep-party .uk-card-foot,body.desktop-game .pg-prep .pg-prep-party .uk-card-lv,body.desktop-game .pg-prep .pg-prep-party .uk-stars-n{font-size:max(12px,calc(var(--uk-cw)*.11))}
body.desktop-game .pg-prep .pg-prep-party .uk-card-ribbon{font-size:max(12px,calc(var(--uk-cw)*.12))}
body.desktop-game .pg-prep .pg-prep-party .uk-nameplate{height:max(22px,calc(var(--u)*3));padding:0 calc(var(--u)*.2);font-size:max(var(--uk-min,12px),calc(var(--u)*1.6))}
body.desktop-game .pg-prep .pg-prep-party .uk-card.is-cued{transform:translateY(-4px);filter:brightness(1.18) drop-shadow(0 0 10px #ffd27a)}
body.desktop-game .pg-prep-plan{align-self:stretch;container-type:inline-size;font-size:var(--u);display:flex;flex-direction:column;justify-content:center;gap:calc(var(--u)*.6);min-width:0;min-height:0;overflow:hidden}
body.desktop-game .pg-prep-plan>div{display:flex;flex-direction:column;gap:calc(var(--u)*.6);min-height:0}
body.desktop-game .pg-prep-plan-head{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u)*1)}
body.desktop-game .pg-prep-plan-head h2{margin:0;font:700 max(14px,calc(var(--u)*2))/1 var(--uk-serif);letter-spacing:.12em;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 #000c);white-space:nowrap}
body.desktop-game .pg-prep .pg-prep-plan-pager .uk-round{--uk-rs:max(28px,calc(var(--u)*3.2))}
body.desktop-game .pg-prep .pg-prep-plan-pager .uk-pager-count{font-size:max(var(--uk-min,12px),calc(var(--u)*1.4))}
body.desktop-game .pg-prep-tools{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(var(--u)*.45)}
body.desktop-game .pg-prep-tool{display:grid;grid-template-columns:auto auto auto minmax(0,1fr);align-items:center;gap:calc(var(--u)*.7);min-height:calc(var(--u)*2.7);padding:0 calc(var(--u)*.5);border-radius:calc(var(--u)*1.4);cursor:help;outline:none;background:linear-gradient(90deg,#0b162288,transparent 85%)}
body.desktop-game .pg-prep-tool:hover,body.desktop-game .pg-prep-tool:focus-visible{background:linear-gradient(90deg,#4a3a1c99,transparent 90%)}
body.desktop-game .pg-prep-tool:focus-visible{box-shadow:0 0 0 2px var(--uk-gold-hi)}
body.desktop-game .pg-prep-tool .pg-prep-coin{--c:max(24px,calc(var(--u)*2.4))}
body.desktop-game .pg-prep-tool>b{font:700 max(var(--uk-min,12px),calc(var(--u)*1.45))/1.1 var(--uk-serif);color:#f3e6c4;white-space:nowrap}
body.desktop-game .pg-prep-tool.is-risk>b{color:#ffb0a0}
body.desktop-game .pg-prep-tool>small{font:400 max(var(--uk-min,12px),calc(var(--u)*1.2))/1.2 var(--uk-sans);color:#c8c1ad;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.desktop-game .pg-prep-faces{display:flex;gap:calc(var(--u)*.25)}
body.desktop-game .pg-prep .pg-prep-face{position:relative;display:block;width:calc(var(--u)*2.4);height:calc(var(--u)*2.4);border-radius:50%;overflow:hidden;box-shadow:0 0 0 1.5px #d4b477,0 1px 3px #000}
body.desktop-game .pg-prep-quill{display:block;width:calc(var(--u)*2.4);height:calc(var(--u)*2.4);background:url("./assets/pages/prep/mech-quill.webp") center/contain no-repeat}
body.desktop-game .pg-prep-plan-empty{margin:0;font:400 max(var(--uk-min,12px),calc(var(--u)*1.35))/1.5 var(--uk-sans);color:#d8d2c2}
@container (max-width:44em){body.desktop-game .pg-prep-tool{grid-template-columns:auto minmax(0,1fr) auto}body.desktop-game .pg-prep-tool>small{display:none}}
body.desktop-game .pg-prep-start{position:relative;display:flex;justify-content:center;align-items:center;align-self:center;padding-right:calc(var(--u)*.4)}
body.desktop-game .pg-prep-start-btn{position:relative;display:block;width:calc(var(--u)*13.4);aspect-ratio:779/799;margin:0;padding:0;border:0;background:none;cursor:pointer;color:inherit;transition:transform .18s ease,filter .18s ease}
body.desktop-game .pg-prep-start-btn::before{content:"";position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle,#ffb04a88,#ff6a1a33 45%,transparent 70%);animation:pg-prep-pulse 2.6s ease-in-out infinite;pointer-events:none}
body.desktop-game .pg-prep-start-art{position:absolute;inset:0;background:url("./assets/pages/prep/start.webp") center/contain no-repeat;filter:drop-shadow(0 6px 10px #000c)}
body.desktop-game .pg-prep-start-label{position:absolute;left:50%;bottom:0;transform:translateX(-50%);display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:calc(var(--u)*4);padding:0;border-style:solid;border-color:transparent;border-width:calc(var(--u)*4*120/635) calc(var(--u)*4*560/635);border-image:url("./assets/desktop/nav/plaque.webp") 120 620 fill / calc(var(--u)*4*120/635) calc(var(--u)*4*560/635) stretch;font:700 max(15px,calc(var(--u)*2.2))/1 var(--uk-serif);letter-spacing:.16em;text-indent:.16em;color:#fff1c9;text-shadow:0 0 8px #ff9a3a,0 1px 2px #000;white-space:nowrap;filter:drop-shadow(0 3px 4px #000b)}
body.desktop-game .pg-prep-start-btn:not(:disabled):hover{transform:scale(1.04);filter:brightness(1.12)}
body.desktop-game .pg-prep-start-btn:not(:disabled):active{transform:scale(.98)}
body.desktop-game .pg-prep-start-btn:focus-visible{outline:2px solid var(--uk-gold-hi);outline-offset:4px;border-radius:50%}
body.desktop-game .pg-prep-start-btn:disabled{pointer-events:none;cursor:default}
body.desktop-game .pg-prep-start-btn:disabled::before{display:none}
body.desktop-game .pg-prep-start-btn:disabled .pg-prep-start-art{background-image:url("./assets/pages/prep/start-locked.webp");filter:saturate(.55) brightness(.86) drop-shadow(0 6px 10px #000c)}
body.desktop-game .pg-prep-start-btn:disabled .pg-prep-start-label{color:#cfc6b4;text-shadow:0 1px 2px #000;filter:grayscale(.6) brightness(.92)}
body.desktop-game .pg-prep-start:has(.pg-prep-start-btn:disabled){cursor:not-allowed}
body.desktop-game .pg-prep-start-btn.is-shaking .pg-prep-start-art{animation:pg-prep-rattle .42s ease-in-out}
body.desktop-game .pg-prep-depart.is-shaking small{animation:pg-prep-flash .6s ease-in-out}
@keyframes pg-prep-pulse{0%,100%{opacity:.45;transform:scale(.96)}50%{opacity:1;transform:scale(1.06)}}
@keyframes pg-prep-rattle{0%,100%{transform:none}20%{transform:rotate(-4deg)}40%{transform:rotate(4deg)}60%{transform:rotate(-3deg)}80%{transform:rotate(2deg)}}
@keyframes pg-prep-flash{0%,100%{opacity:1}30%,70%{opacity:.35}}

/* Entrance: blocks rise 12px and fade in, staggered (style guide §9). */
body.desktop-game .pg-prep.is-entering :is(.pg-prep-head,.pg-prep-scout,.pg-prep-side,.pg-prep-ledge){animation:pg-prep-in .34s cubic-bezier(.2,.7,.2,1) both}
body.desktop-game .pg-prep.is-entering .pg-prep-scout{animation-delay:.08s}
body.desktop-game .pg-prep.is-entering .pg-prep-side{animation-delay:.16s}
body.desktop-game .pg-prep.is-entering .pg-prep-ledge{animation-delay:.24s}
@keyframes pg-prep-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ── 封印卷轴: the battle-start rules dialog (#tutorial-dialog gets .pg-prep when the sealScroll hook renders it) ── */
body.desktop-game dialog#tutorial-dialog.pg-prep{--sw:min(max(1000px,92.6vh),70vw,calc(86vh*2368/1573),calc((100vh - 136px)*2368/1573));--s:calc(var(--sw)/100);position:fixed;box-sizing:border-box;width:var(--sw);max-width:none;height:auto;max-height:none;aspect-ratio:2368/1573;margin:auto;padding:0;border:0;border-radius:0;overflow:visible;color:var(--uk-text);background:url("./assets/pages/prep/scroll.webp") center/100% 100% no-repeat;box-shadow:none;filter:drop-shadow(0 24px 40px #000d)}
body.desktop-game dialog#tutorial-dialog.pg-prep[open]{animation:pg-prep-unroll .42s cubic-bezier(.2,.7,.2,1) both}
@keyframes pg-prep-unroll{from{opacity:0;transform:scaleY(.12)}60%{opacity:1}to{opacity:1;transform:none}}
body.desktop-game dialog#tutorial-dialog.pg-prep::backdrop{background:radial-gradient(ellipse at 50% 45%,#140b0499,#02050af2 75%);backdrop-filter:blur(6px)}
body.desktop-game dialog#tutorial-dialog.pg-prep>.modal-close{position:absolute;right:1.2%;top:1.4%;z-index:3;width:calc(var(--s)*5);height:calc(var(--s)*5);display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:url("./assets/pages/_kit/icon-medal.webp") center/contain no-repeat;color:#f6e2a8;font:700 calc(var(--s)*2.6)/1 var(--uk-serif);text-shadow:0 1px 2px #000;filter:drop-shadow(0 3px 5px #000b);cursor:pointer}
body.desktop-game dialog#tutorial-dialog.pg-prep>.modal-close:hover{filter:brightness(1.15) drop-shadow(0 0 8px #ffd27a99)}
body.desktop-game dialog#tutorial-dialog.pg-prep>.eyebrow{position:absolute;left:0;right:0;top:12.6%;justify-content:center;gap:calc(var(--s)*1.2);font:700 max(var(--uk-min,12px),calc(var(--s)*1.3))/1 var(--uk-serif);letter-spacing:.3em;text-indent:.3em;color:#c9b88f}
body.desktop-game dialog#tutorial-dialog.pg-prep>h2#tutorial-title{position:absolute;left:50%;top:0;z-index:2;transform:translate(-50%,-14%);margin:0;box-sizing:border-box;height:calc(var(--s)*7.2);display:flex;align-items:center;justify-content:center;padding:0 calc(var(--s)*6.4);border-style:solid;border-color:transparent;border-width:calc(var(--s)*7.2*120/635) calc(var(--s)*7.2*620/635);border-image:url("./assets/desktop/nav/plaque.webp") 120 620 fill / calc(var(--s)*7.2*120/635) calc(var(--s)*7.2*620/635) stretch;white-space:nowrap;font:700 calc(var(--s)*3)/1 var(--uk-serif);letter-spacing:.16em;text-indent:.16em;color:#f6e2a8;text-shadow:0 1px 0 #1b0f04,0 2px 3px #000;filter:drop-shadow(0 6px 8px #000b)}
body.desktop-game dialog#tutorial-dialog.pg-prep>#tutorial-content{position:absolute;left:12.4%;right:12.4%;top:17.6%;bottom:16.4%;z-index:1}
body.desktop-game dialog#tutorial-dialog.pg-prep>.primary-button{position:absolute;left:50%;bottom:1.2%;z-index:2;transform:translateX(-50%);width:auto;min-width:calc(var(--s)*30);--bh:calc(var(--s)*6);height:var(--bh);display:inline-flex;align-items:center;justify-content:center;gap:0;margin:0;padding:0 calc(var(--bh)*.6);border-style:solid;border-color:transparent;border-radius:0;border-width:calc(var(--bh)*120/423) calc(var(--bh)*200/423);border-image:url("./assets/pages/_kit/btn-primary.webp") 120 200 fill / calc(var(--bh)*120/423) calc(var(--bh)*200/423) stretch;background:none;color:#3a2410;font:700 max(14px,calc(var(--s)*2.1))/1 var(--uk-serif);letter-spacing:.14em;text-indent:.14em;text-shadow:0 1px 0 #f6e2a880;white-space:nowrap;cursor:pointer;filter:drop-shadow(0 4px 6px #000b);transition:transform .16s ease,filter .16s ease}
body.desktop-game dialog#tutorial-dialog.pg-prep>.primary-button:hover{transform:translateX(-50%) translateY(-2px);filter:brightness(1.12) drop-shadow(0 6px 8px #000b)}
body.desktop-game dialog#tutorial-dialog.pg-prep>.primary-button:focus-visible{outline:2px solid #f1d896;outline-offset:4px}
body.desktop-game .pg-prep-scroll{position:absolute;inset:0;display:flex;flex-direction:column}
body.desktop-game .pg-prep-rules{flex:1;min-height:0;display:grid;gap:calc(var(--s)*2) calc(var(--s)*3);align-content:center}
body.desktop-game .pg-prep-rules[hidden]{display:none}
body.desktop-game .pg-prep-rules.is-col{grid-template-columns:minmax(0,1fr);max-width:calc(var(--s)*56);width:100%;margin:0 auto}
body.desktop-game .pg-prep-rules.is-2x2{grid-template-columns:repeat(2,minmax(0,1fr))}
body.desktop-game .pg-prep-rules.is-3x2{grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(var(--s)*1.6) calc(var(--s)*1.8)}
body.desktop-game .pg-prep-rule{display:flex;align-items:center;gap:calc(var(--s)*1.6);min-width:0;animation:pg-prep-light .4s ease-out both;animation-delay:calc(.28s + var(--pg-i,0)*90ms)}
@keyframes pg-prep-light{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
body.desktop-game .pg-prep-medal{position:relative;display:block;flex:none;width:calc(var(--s)*11);height:calc(var(--s)*11);border-radius:50%;filter:drop-shadow(0 4px 6px #000c)}
body.desktop-game .pg-prep-rules.is-3x2 .pg-prep-medal{width:calc(var(--s)*8.6);height:calc(var(--s)*8.6)}
body.desktop-game .pg-prep-rules.is-col .pg-prep-medal{width:calc(var(--s)*12);height:calc(var(--s)*12)}
body.desktop-game .pg-prep-rule h3{margin:0 0 calc(var(--s)*.6);font:700 max(15px,calc(var(--s)*2.2))/1.2 var(--uk-serif);letter-spacing:.06em;background:linear-gradient(180deg,#f8e6b4,#c9a25a);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 1px #000)}
body.desktop-game .pg-prep-rule p{margin:0;font:400 max(13px,calc(var(--s)*1.55))/1.5 var(--uk-sans);color:#e6e0d0}
body.desktop-game .pg-prep-rules.is-3x2 .pg-prep-rule h3{font-size:max(14px,calc(var(--s)*1.9))}
body.desktop-game .pg-prep-rules.is-3x2 .pg-prep-rule p{font-size:max(var(--uk-min,12px),calc(var(--s)*1.35))}
body.desktop-game .pg-prep-scroll-pager{position:absolute;right:0;bottom:calc(var(--s)*-.4)}
body.desktop-game .pg-prep-codex{position:static}
body.desktop-game .pg-prep-codex-toggle{position:absolute;left:calc(var(--s)*-1);bottom:calc(var(--s)*-.9);z-index:2;display:flex;align-items:center;gap:calc(var(--s)*.8);list-style:none;cursor:pointer;font:700 max(13px,calc(var(--s)*1.7))/1 var(--uk-serif);letter-spacing:.14em;color:#f1d896;text-shadow:0 1px 2px #000}
body.desktop-game .pg-prep-codex-toggle::-webkit-details-marker{display:none}
body.desktop-game .pg-prep-codex-toggle::marker{content:""}
body.desktop-game .pg-prep-codex-icon{display:block;width:calc(var(--s)*5.4);height:calc(var(--s)*5.4);background:url("./assets/pages/prep/mech-codex.webp") center/contain no-repeat;filter:drop-shadow(0 3px 4px #000b);transition:transform .16s,filter .16s}
body.desktop-game .pg-prep-codex-toggle:hover .pg-prep-codex-icon,body.desktop-game .pg-prep-codex[open] .pg-prep-codex-icon{transform:scale(1.06);filter:brightness(1.15) drop-shadow(0 0 8px #ffd27a99)}
body.desktop-game .pg-prep-codex-toggle:focus-visible{outline:2px solid #f1d896;outline-offset:3px;border-radius:30px}
body.desktop-game .pg-prep-codex-text{position:absolute;left:0;right:0;top:0;bottom:calc(var(--s)*5.6);z-index:1;overflow:auto;padding:calc(var(--s)*1.4) calc(var(--s)*2);border-radius:calc(var(--s)*1);background:radial-gradient(ellipse at 50% 0,#1a2436f2,#0a111cf7 70%);box-shadow:inset 0 0 0 1px #c9a25a55,inset 0 0 24px #000;scrollbar-width:thin;scrollbar-color:#8a6a32 transparent;outline:none}
body.desktop-game .pg-prep-codex-text section{margin:0 0 calc(var(--s)*1.4)}
body.desktop-game .pg-prep-codex-text h4{margin:0 0 calc(var(--s)*.4);font:700 max(14px,calc(var(--s)*1.8))/1.2 var(--uk-serif);color:#f1d896}
body.desktop-game .pg-prep-codex-text p{margin:0;font:400 max(13px,calc(var(--s)*1.5))/1.65 var(--uk-sans);color:#e6e0d0}
body.desktop-game .pg-prep-codex[open]~.pg-prep-scroll-pager,body.desktop-game .pg-prep-scroll:has(.pg-prep-codex[open]) .pg-prep-rules{visibility:hidden}

@media (prefers-reduced-motion:reduce){
  body.desktop-game .pg-prep :is(.pg-prep-embers i,.pg-prep-runes,.pg-prep-art img,.pg-prep-stele,.pg-prep-scout-body,.pg-prep-head,.pg-prep-scout,.pg-prep-side,.pg-prep-ledge,.pg-prep-start-art,.pg-prep-depart small){animation:none!important}
  body.desktop-game .pg-prep-embers{display:none}
  body.desktop-game .pg-prep-fog::before,body.desktop-game .pg-prep-fog::after,body.desktop-game .pg-prep-start-btn::before,body.desktop-game .pg-prep-seal::after{animation:none!important}
  body.desktop-game .pg-prep .pg-prep-art img{transform:none!important}
  body.desktop-game dialog#tutorial-dialog.pg-prep[open],body.desktop-game dialog#tutorial-dialog.pg-prep .pg-prep-rule{animation:none!important}
  body.desktop-game .pg-prep :is(.pg-prep-stele,.pg-prep-gate-frame,.pg-prep-seal,.pg-prep-start-btn,.pg-prep-team){transition:none!important}
}

/* ch56-asura-provisional：第五、六章修罗印记 / 敌情标题的「暂定」小签（颜色同 page-rift 的暂定）。印记上的小签绝对定位，不改印记行宽。 */
body.desktop-game .pg-prep-seal>.pg-draft-tag{position:absolute;top:calc(var(--u)*-.4);right:calc(var(--u)*-.9);z-index:3;padding:1px 4px;border-radius:6px;background:#1b0d0bd9;font:400 max(11px,calc(var(--u)*1.1))/1.1 var(--uk-sans);font-style:normal;letter-spacing:0;text-indent:0;color:#ff9f8a;white-space:nowrap;pointer-events:none}
body.desktop-game .pg-prep-waves .pg-draft-tag{margin-left:4px;font:400 max(11px,calc(var(--u)*1.1))/1 var(--uk-sans);font-style:normal;color:#ff9f8a;white-space:nowrap}
