/* Desktop page: 编队 (formation altar) + the in-battle team popup. Every selector starts at .pg-team (after body.desktop-game / element / id).
   Unit: --tu = the shell's 1u, shrunk only when the page is too narrow for the 150 × 90 design box (1440×900), so nothing ever overlaps or scrolls. */
body.desktop-game .pg-team{--tu:min(var(--pg-u),calc((100vw - var(--ds-rail,0px) - var(--pg-u)*10)/150));position:absolute;inset:0;overflow:hidden;color:var(--uk-text);background:#07101b}

/* Background: moonlit temple, never shown above its native pixels (JS sizes .pg-team-bg-img); a blurred copy fills any remainder. */
body.desktop-game .pg-team-bg{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
body.desktop-game .pg-team-bg-blur{position:absolute;inset:-24px;background:url("./assets/pages/team/temple.webp") center/cover no-repeat;filter:blur(18px) brightness(.55);display:none}
body.desktop-game .pg-team.is-capped .pg-team-bg-blur{display:block}
body.desktop-game .pg-team-bg-img{position:absolute;left:50%;top:50%;width:100%;height:100%;transform:translate(-50%,-50%);background:url("./assets/pages/team/temple.webp") center/100% 100% no-repeat}
body.desktop-game .pg-team.is-capped .pg-team-bg-img{-webkit-mask-image:radial-gradient(ellipse 72% 70% at 50% 50%,#000 76%,transparent 100%);mask-image:radial-gradient(ellipse 72% 70% at 50% 50%,#000 76%,transparent 100%)}
body.desktop-game .pg-team-bg-shade{position:absolute;inset:0;background:linear-gradient(90deg,#03080ecc,transparent 16%,transparent 84%,#03080e99),linear-gradient(180deg,#05101a66 0%,transparent 22%,transparent 46%,#050c15b3 66%,#040a12e6 100%)}
body.desktop-game .pg-team-fire{position:absolute;width:13%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#ffb35a66,#ff7a2a26 45%,transparent 70%);mix-blend-mode:screen;animation:pg-team-flicker 2.6s ease-in-out infinite alternate}
body.desktop-game .pg-team-fire.is-left{left:3.4%;top:27%}
body.desktop-game .pg-team-fire.is-right{right:1.6%;top:27%;animation-delay:-1.3s}

/* Stage: the 150 × 90 design box, centred; ≥5u from the page frame on every side. Kit parts inside use --pg-u = --tu. */
body.desktop-game .pg-team-stage{--pg-u:var(--tu);--uk-body:max(var(--uk-min,12px),calc(var(--tu)*1.45));--uk-pad:calc(var(--tu)*2.4);--uk-gap:calc(var(--tu)*1.6);--tm-small:max(var(--uk-min,12px),calc(var(--tu)*1.3));position:absolute;inset:0;z-index:1;margin:auto;width:calc(var(--tu)*150);height:calc(var(--tu)*90);display:grid;grid-template-rows:calc(var(--tu)*7.6) calc(var(--tu)*32) var(--tm-bond,max(calc(var(--tu)*7.6),52px)) minmax(0,1fr);row-gap:calc(var(--tu)*1.1)}

/* Header: plaque · three steles · back + i */
body.desktop-game .pg-team-head{display:flex;align-items:center;gap:var(--uk-gap);min-width:0}
body.desktop-game .pg-team-head>.uk-plaque{flex:none}
body.desktop-game .pg-team-steles{flex:1;min-width:0;display:flex;justify-content:center;gap:calc(var(--tu)*1.6)}
body.desktop-game .pg-team-stele{display:flex;align-items:center;gap:calc(var(--tu)*1.1);box-sizing:border-box;width:max(calc(var(--tu)*21),150px);height:calc(var(--tu)*7);padding:0 calc(var(--tu)*.8);border-style:solid;border-color:transparent;border-width:calc(var(--tu)*.9) calc(var(--tu)*1.1);border-image:url("./assets/pages/_kit/panel.webp") 200 fill / calc(var(--tu)*1.6) stretch;filter:drop-shadow(0 5px 8px #000a)}
body.desktop-game .pg-team-stele .uk-icon{--uk-is:calc(var(--tu)*3.4)}
body.desktop-game .pg-team-stele-text{display:flex;flex-direction:column;justify-content:center;gap:calc(var(--tu)*.3);flex:1;min-width:0;line-height:1}
body.desktop-game .pg-team-stele-text b{font:700 calc(var(--tu)*2.9)/1 var(--uk-serif);color:#f6ead0;font-variant-numeric:tabular-nums lining-nums;text-shadow:0 2px 3px #000c;white-space:nowrap}
body.desktop-game .pg-team-stele-text small{font:400 var(--tm-small)/1.1 var(--uk-sans);color:#d5c9ab;letter-spacing:.06em;white-space:nowrap}
body.desktop-game .pg-team-stele-text>span{display:flex;align-items:baseline;gap:calc(var(--tu)*.8);white-space:nowrap}
body.desktop-game .pg-team-stele-delta{display:inline-flex;align-items:baseline}
body.desktop-game .pg-team-stele-delta .uk-delta{font-size:max(var(--uk-min,12px),calc(var(--tu)*1.6));text-shadow:0 1px 2px #000}
body.desktop-game .pg-team-stele.is-up b{animation:pg-team-glow-up .5s ease-out}
body.desktop-game .pg-team-tools{flex:none;display:flex;align-items:center;gap:calc(var(--tu)*1.2)}
body.desktop-game .pg-team-tools .uk-round[aria-pressed="true"]{filter:brightness(1.15) drop-shadow(0 0 10px #ffd27acc) drop-shadow(0 3px 5px #000b)}

/* Altar: six seats on a carved ledge; leader seat a size larger; a gem pillar parts the five members from the friend. */
body.desktop-game .pg-team-altar{position:relative;min-height:0}
body.desktop-game .pg-team-slab{position:absolute;left:50%;bottom:0;width:calc(var(--tu)*116);height:calc(var(--tu)*6.9);transform:translateX(-50%);background:url("./assets/pages/team/ledge.webp") center top/100% auto no-repeat;-webkit-mask-image:linear-gradient(180deg,#000 62%,transparent);mask-image:linear-gradient(180deg,#000 62%,transparent);filter:brightness(.72) saturate(.9);pointer-events:none}
body.desktop-game .pg-team-seats{position:absolute;left:0;right:0;bottom:calc(var(--tu)*5.5);display:flex;justify-content:center;align-items:flex-end;gap:calc(var(--tu)*.8)}
body.desktop-game .pg-team-seat{--tm-cw:calc(var(--tu)*12.6);position:relative;display:flex;flex-direction:column;align-items:center;width:calc(var(--tm-cw) + var(--tu)*3.6)}
body.desktop-game .pg-team-seat.is-leader{--tm-cw:calc(var(--tu)*13.8)}
body.desktop-game .pg-team-seat{container-type:inline-size}
@container (max-width:140px){body.desktop-game .pg-team-seat .uk-card-foot .uk-stars{display:none}body.desktop-game .pg-team-seat .uk-card-foot .uk-stars-n{display:inline}}
body.desktop-game .pg-team-seat .uk-card{--uk-cw:var(--tm-cw);z-index:1;transition:transform .25s ease,filter .2s ease}
body.desktop-game .pg-team-seat.is-leader .uk-card .uk-card-glow{box-shadow:0 0 calc(var(--tm-cw)*.3) calc(var(--tm-cw)*.06) #f1d89677}
body.desktop-game .pg-team-plinth{position:relative;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:calc(var(--tu)*5);margin-top:calc(var(--tu)*-.4);background:url("./assets/pages/team/plinth.webp") center bottom/100% 100% no-repeat;filter:drop-shadow(0 6px 8px #000b)}
body.desktop-game .pg-team-plate{--h:calc(var(--tu)*2.8);display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;max-width:calc(100% - var(--tu)*1.6);height:var(--h);margin-top:calc(var(--tu)*1);padding:0 calc(var(--tu)*.5);border-style:solid;border-color:transparent;border-width:calc(var(--h)*120/635) calc(var(--h)*560/635);border-image:url("./assets/desktop/nav/plaque.webp") 120 620 fill / calc(var(--h)*120/635) calc(var(--h)*560/635) stretch;font:700 max(var(--uk-min,12px),calc(var(--tu)*1.55))/1 var(--uk-serif);color:#f3dfae;letter-spacing:.08em;text-indent:.08em;white-space:nowrap;text-shadow:0 1px 2px #000}
body.desktop-game .pg-team-divider{position:relative;align-self:flex-end;flex:none;width:calc(var(--tu)*19*274/874);height:calc(var(--tu)*19);margin:0 calc(var(--tu)*.6) calc(var(--tu)*.3);background:url("./assets/pages/team/pillar.webp") center bottom/100% 100% no-repeat;filter:brightness(.85) drop-shadow(0 6px 8px #000b);pointer-events:none}
/* Picked seat: gold arrow above, card lifts and breathes (kit is-selected). */
body.desktop-game .pg-team-arrow{position:absolute;left:50%;top:calc(var(--tm-cw)*-.48 - var(--tu)*1.2);z-index:3;width:calc(var(--tu)*2.6);height:calc(var(--tu)*2);transform:translateX(-50%);opacity:0;background:linear-gradient(180deg,#fff3c4,#e2b15a 60%,#8a6a32);clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 0 6px #ffd27a);pointer-events:none;transition:opacity .2s}
body.desktop-game .pg-team-seat:not(.is-leader) .pg-team-arrow{top:calc(var(--tm-cw)*-.2 - var(--tu)*1.4)}
body.desktop-game .pg-team-seat.is-picked .pg-team-arrow{opacity:1;animation:pg-team-bob 1.2s ease-in-out infinite alternate}
body.desktop-game .pg-team-seat.is-picked .uk-card{filter:brightness(1.1)}
body.desktop-game .pg-team.is-picking .pg-team-seat:not(.is-picked) .uk-card{filter:brightness(.82) saturate(.85)}
body.desktop-game .pg-team-seat.is-flash .uk-card{animation:pg-team-flip .6s cubic-bezier(.3,.7,.3,1)}
body.desktop-game .pg-team-seat.is-flash .uk-card::before{content:"";position:absolute;inset:-4%;z-index:7;border-radius:6px;background:radial-gradient(ellipse at 50% 45%,#fff6d2cc,#f1d89666 40%,transparent 70%);pointer-events:none;animation:pg-team-flash .6s ease-out both}
body.desktop-game .pg-team-seat.is-drop-ok .uk-card{transform:translateY(-4px);filter:brightness(1.15) drop-shadow(0 0 10px #f1d896)}
body.desktop-game .pg-team-seat.is-drop-bad .uk-card{filter:grayscale(.4) drop-shadow(0 0 10px #e0584a)}
body.desktop-game .pg-team-seat.is-drop-bad .uk-card::before{content:"";position:absolute;inset:0;z-index:7;border-radius:6px;box-shadow:inset 0 0 0 3px #e0584a,inset 0 0 26px #e0584a88;pointer-events:none}
body.desktop-game .pg-team.is-dragging .pg-team-seat .uk-card{cursor:copy}

/* Bond line: leader sigil × friend sigil joined by a gold thread; six element gems + races in the middle. */
body.desktop-game .pg-team-bond{position:relative;display:grid;grid-template-columns:minmax(0,1fr) max(calc(var(--tu)*27),172px) minmax(0,1fr);align-items:center;gap:calc(var(--tu)*1.6);width:calc(var(--tu)*132);margin:0 auto;min-height:0}
body.desktop-game .pg-team-bond-line{position:absolute;left:calc(var(--tu)*7.6);right:calc(var(--tu)*7.6);top:calc(var(--tu)*1.3);z-index:0;height:2px;background:linear-gradient(90deg,#f1d89600,#f1d896 12%,#f1d896cc 42%,#fff2c4 50%,#9fd0ffcc 58%,#9fd0ff 88%,#9fd0ff00);box-shadow:0 0 8px #f1d89688;pointer-events:none}
body.desktop-game .pg-team-skill{position:relative;z-index:1;display:flex;align-items:center;gap:calc(var(--tu)*1.2);min-width:0}
body.desktop-game .pg-team-skill.is-friend{flex-direction:row-reverse;text-align:right}
body.desktop-game .pg-team-sigil{position:relative;flex:none;width:calc(var(--tu)*7.2);aspect-ratio:1;border-radius:50%;overflow:hidden;background:radial-gradient(circle,#0b1622cc 30%,#0b162200 70%)}
body.desktop-game .pg-team-sigil img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 6px #f1d89688);pointer-events:none}
body.desktop-game .pg-team-sigil.is-friend img{filter:drop-shadow(0 0 6px #6fb7ff88)}
body.desktop-game .pg-team-sigil.is-lit img{animation:pg-team-relight .9s ease-out}
body.desktop-game .pg-team-skill-text{display:flex;flex-direction:column;gap:calc(var(--tu)*.3);min-width:0;margin:0;padding-top:calc(var(--tu)*1.8)}
body.desktop-game .pg-team-skill-text b{font:700 max(var(--uk-min,12px),calc(var(--tu)*1.7))/1.15 var(--uk-serif);letter-spacing:.06em;color:var(--uk-gold-hi);text-shadow:0 1px 2px #000}
body.desktop-game .pg-team-skill.is-friend .pg-team-skill-text b{color:#bfe0ff}
body.desktop-game .pg-team-skill-text span{font:400 max(var(--uk-min,12px),calc(var(--tu)*1.4))/1.35 var(--uk-sans);color:var(--uk-text);text-shadow:0 1px 2px #000,0 0 6px #000;text-wrap:pretty}
body.desktop-game .pg-team-mid{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:calc(var(--tu)*.4);min-width:0}
body.desktop-game .pg-team-times{display:grid;place-items:center;width:calc(var(--tu)*2.8);height:calc(var(--tu)*2.8);border-radius:50%;background:radial-gradient(circle,#fff6d2,#f1d896 40%,#8a6a3200 72%);color:#3a2410;font:700 calc(var(--tu)*2)/1 var(--uk-serif);text-shadow:0 0 6px #fff;filter:drop-shadow(0 0 8px #f1d896aa)}
body.desktop-game .pg-team-comp{display:flex;justify-content:center;gap:calc(var(--tu)*.5);margin:0;padding:0;list-style:none}
body.desktop-game .pg-team-comp li{display:flex;flex-direction:column;align-items:center;gap:calc(var(--tu)*.25);width:max(calc(var(--tu)*4),26px)}
body.desktop-game .pg-team-comp .uk-gem{--uk-gs:max(20px,calc(var(--tu)*2.6))}
body.desktop-game .pg-team-comp small{font:400 var(--tm-small)/1 var(--uk-sans);color:#d5c9ab;white-space:nowrap;text-shadow:0 1px 2px #000}

/* Lower row: roster · candidate stone · save */
body.desktop-game .pg-team-lower{display:grid;grid-template-columns:auto minmax(0,1fr) max(calc(var(--tu)*25),180px);gap:calc(var(--tu)*1.6);min-height:0}
body.desktop-game .pg-team-lower>.uk-panel{--uk-pb:clamp(22px,calc(var(--tu)*3.4),46px);min-height:0;padding:calc(var(--tu)*.6) calc(var(--tu)*.8)}
body.desktop-game .pg-team-roster{display:flex;gap:calc(var(--tu)*1.2)}
body.desktop-game .pg-team-filter{display:flex;flex-direction:column;justify-content:center;gap:calc(var(--tu)*.9)}
body.desktop-game .pg-team-filter .uk-gem{--uk-gs:var(--tm-gem,max(34px,calc(var(--tu)*3.6)))}
body.desktop-game .pg-team-roster-main{position:relative;display:flex;flex-direction:column;gap:calc(var(--tu)*.7);min-width:0;min-height:0}
body.desktop-game .pg-team-caption{margin:0;font:700 max(var(--uk-min,12px),calc(var(--tu)*1.6))/1.2 var(--uk-serif);color:var(--uk-gold-hi);letter-spacing:.06em;white-space:nowrap}
body.desktop-game .pg-team-grid{--tm-pw:calc(var(--tu)*9.4);display:grid;grid-template-columns:repeat(5,var(--tm-pw));grid-auto-rows:calc(var(--tm-pw)*825/630);gap:max(16px,calc(var(--tu)*2.2)) calc(var(--tu)*1);padding-top:max(8px,calc(var(--tu)*.9));align-content:start}
body.desktop-game .pg-team-cell{position:relative;display:block}
body.desktop-game .pg-team-cell>.uk-card{--uk-cw:var(--tm-pw,calc(var(--tu)*9.4))}
body.desktop-game .pg-team-tag{position:absolute;right:-6%;top:-4%;z-index:8;padding:.15em .45em .2em;border-radius:3px;background:linear-gradient(180deg,#3d6a3a,#1f3d1e);box-shadow:0 0 0 1px #9fd08b88,0 2px 4px #000a;color:#e8f6d8;font:700 max(var(--uk-min,12px),calc(var(--tu)*1.15))/1 var(--uk-serif);font-style:normal;letter-spacing:.06em;pointer-events:none}
body.desktop-game .pg-team-tag.is-borrow{background:linear-gradient(180deg,#2c5a8c,#173253);box-shadow:0 0 0 1px #9fd0ff88,0 2px 4px #000a;color:#e6f3ff}
body.desktop-game .pg-team-empty{grid-column:1/-1;margin:auto 0;font:400 var(--uk-body)/1.5 var(--uk-sans);color:var(--uk-muted)}
body.desktop-game .pg-team-pager{position:absolute;right:0;top:calc(var(--tu)*-.6)}

body.desktop-game .pg-team-cand{display:flex;flex-direction:column;gap:calc(var(--tu)*.7);min-width:0}
body.desktop-game .pg-team-cand-top{display:flex;align-items:center;gap:calc(var(--tu)*1.4);min-width:0}
body.desktop-game .pg-team-cand-card.uk-card{--uk-cw:calc(var(--tu)*7.4)}
body.desktop-game .pg-team-cand-id{display:flex;flex-direction:column;gap:calc(var(--tu)*.5);min-width:0}
body.desktop-game .pg-team-cand-name{margin:0;font:700 max(14px,calc(var(--tu)*2.3))/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 #000)}
body.desktop-game .pg-team-cand-meta{margin:0;font:400 var(--tm-small)/1.3 var(--uk-sans);color:var(--uk-muted)}
body.desktop-game .pg-team-cand-stats{display:flex;flex-wrap:wrap;gap:calc(var(--tu)*.4) calc(var(--tu)*1.6);margin:0}
body.desktop-game .pg-team-cand-stats .uk-stat b{font-size:max(13px,calc(var(--tu)*1.9))}
body.desktop-game .pg-team-cand-stats .uk-icon{--uk-is:max(16px,calc(var(--tu)*2.1))}
body.desktop-game .pg-team-cand-skill{display:flex;align-items:flex-start;gap:calc(var(--tu)*.8);min-width:0}
body.desktop-game .pg-team-cand-skill .uk-icon{--uk-is:max(16px,calc(var(--tu)*2.2));margin-top:.1em}
body.desktop-game .pg-team-cand-skill p{margin:0;font:400 var(--uk-body)/1.38 var(--uk-sans);color:var(--uk-text);text-wrap:pretty}
body.desktop-game .pg-team-cand-skill b{margin-right:.6em;font:700 1em/1.38 var(--uk-serif);color:var(--uk-gold-hi);letter-spacing:.04em}
body.desktop-game .pg-team-cand-foot{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--tu)*1);margin-top:auto;min-width:0}
body.desktop-game .pg-team-cand-delta{display:flex;align-items:center;flex-wrap:wrap;gap:calc(var(--tu)*.3) calc(var(--tu)*1.1);margin:0;min-width:0;font:400 var(--tm-small)/1.2 var(--uk-sans);color:var(--uk-muted)}
body.desktop-game .pg-team-dlabel{color:#d5c9ab;font-family:var(--uk-serif);font-weight:700}
body.desktop-game .pg-team-dstat{display:inline-flex;align-items:center;gap:calc(var(--tu)*.3);white-space:nowrap}
body.desktop-game .pg-team-dstat small{font:inherit;color:var(--uk-muted)}
body.desktop-game .pg-team-dstat .uk-delta{font-size:max(var(--uk-min,12px),calc(var(--tu)*1.5))}
body.desktop-game .pg-team-same{font-style:normal;color:#8e979c}
body.desktop-game .pg-team-reason{color:var(--uk-down);font:400 var(--tm-small)/1.2 var(--uk-sans)}
body.desktop-game .pg-team-cand-foot .uk-btn{flex:none}
body.desktop-game .pg-team-rules{display:flex;flex-direction:column;gap:calc(var(--tu)*.6);min-height:0}
body.desktop-game .pg-team-rules p{margin:0;font:400 var(--uk-body)/1.45 var(--uk-sans);color:var(--uk-text);text-wrap:pretty}
body.desktop-game .pg-team-cand.is-tight{gap:calc(var(--tu)*.4)}
body.desktop-game .pg-team-cand.is-tight .pg-team-cand-card,body.desktop-game .pg-team-cand.is-tight .pg-team-rules-howto{display:none}
body.desktop-game .pg-team-cand.is-tightest .pg-team-cand-stats,body.desktop-game .pg-team-cand.is-tighter .pg-team-cand-desc,body.desktop-game .pg-team-cand.is-tighter .pg-team-rules-more{display:none}
body.desktop-game .pg-team.is-short-names .pg-team-plate-pre{display:none}
body.desktop-game .pg-team-notice{color:var(--uk-gold-hi)!important}
body.desktop-game .pg-team-cand.is-rules{animation:pg-team-turn .32s ease-out}

body.desktop-game .pg-team-save{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:calc(var(--tu)*.8);min-width:0;padding-bottom:calc(var(--tu)*1.2)}
body.desktop-game .pg-team-save-state{margin:0;font:400 var(--tm-small)/1.3 var(--uk-sans);color:var(--uk-muted);text-align:center;text-shadow:0 1px 2px #000}
body.desktop-game .pg-team-save-state.is-dirty{color:var(--uk-gold-hi);font-family:var(--uk-serif);font-weight:700}
body.desktop-game .pg-team-save .uk-btn{max-width:100%}
body.desktop-game .pg-team-save-warn{margin:0;font:700 var(--tm-small)/1.2 var(--uk-serif);color:var(--uk-down);text-shadow:0 1px 2px #000}

/* Entrance: background fades, cards rise from their seats one after another (0.15s), blocks fade up. */
body.desktop-game .pg-team.is-entering .pg-team-bg{animation:pg-team-fade .24s ease-out both}
body.desktop-game .pg-team.is-entering .pg-team-seat .uk-card{animation:pg-team-rise .5s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 130ms + 100ms)}
body.desktop-game .pg-team.is-entering :is(.pg-team-head,.pg-team-bond,.pg-team-lower>*){animation:pg-team-up .32s cubic-bezier(.2,.7,.2,1) both}
body.desktop-game .pg-team.is-entering .pg-team-bond{animation-delay:.5s}
body.desktop-game .pg-team.is-entering .pg-team-lower>*{animation-delay:.6s}

@keyframes pg-team-rise{from{opacity:0;transform:translateY(28%) scale(.96)}to{opacity:1;transform:none}}
@keyframes pg-team-up{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes pg-team-fade{from{opacity:0}to{opacity:1}}
@keyframes pg-team-flip{0%{transform:perspective(600px) rotateY(0)}45%{transform:perspective(600px) rotateY(90deg)}55%{transform:perspective(600px) rotateY(-90deg)}100%{transform:perspective(600px) rotateY(0)}}
@keyframes pg-team-flash{0%{opacity:0}35%{opacity:1}100%{opacity:0}}
@keyframes pg-team-bob{from{transform:translate(-50%,0)}to{transform:translate(-50%,-5px)}}
@keyframes pg-team-relight{0%{filter:brightness(1) drop-shadow(0 0 6px #fff0)}35%{filter:brightness(1.9) drop-shadow(0 0 18px #fff6d2)}100%{filter:brightness(1) drop-shadow(0 0 6px #fff0)}}
@keyframes pg-team-glow-up{0%{color:#b9f7b0;text-shadow:0 0 12px #6fd36f}100%{color:#f6ead0}}
@keyframes pg-team-flicker{0%{opacity:.55;transform:scale(.96)}100%{opacity:1;transform:scale(1.04)}}
@keyframes pg-team-turn{from{opacity:0;transform:perspective(900px) rotateY(-14deg)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  body.desktop-game .pg-team :is(.pg-team-fire,.pg-team-arrow,.pg-team-bg,.pg-team-seat .uk-card,.pg-team-head,.pg-team-bond,.pg-team-lower>*,.pg-team-sigil img,.pg-team-cand,.pg-team-stele b){animation:none!important}
  body.desktop-game .pg-team .pg-team-seat .uk-card::before{animation:none!important;opacity:0}
}

/* ------------------------------------------------------------------------------------------------------------
   In-battle popup (#team-dialog skinned with class pg-team): a small stone slab under the battle top bar, cards instead of selects.
   --pu = one popup unit (height-driven, no upper cap: at 2560×1440 the slab grows with the hero / enemy details beside it;
   body text ≥14px from 1080p up, 12px floor at 1366). */
body.desktop-game dialog#team-dialog.pg-team{--pu:min(calc((100vh - var(--ds-top,58px))/100),calc(100vw/150));--pg-u:var(--pu);--tu:var(--pu);--uk-body:max(12px,calc(var(--pu)*1.45));--tm-small:max(12px,calc(var(--pu)*1.4));position:fixed;inset:var(--ds-top,58px) 0 0;box-sizing:border-box;width:calc(var(--pu)*120);max-width:calc(100vw - 32px);height:max-content;max-height:calc(100vh - var(--ds-top,58px) - 16px);margin:auto;padding:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible;color:var(--uk-text)}
body.desktop-game dialog#team-dialog.pg-team::backdrop{background:#01070bb8;backdrop-filter:blur(6px)}
body.desktop-game #team-dialog.pg-team .pg-team-pop{--uk-pb:clamp(24px,calc(var(--pu)*3.6),40px);display:flex;flex-direction:column;gap:calc(var(--pu)*1.2);padding:calc(var(--pu)*.6) calc(var(--pu)*1.2);font:400 var(--uk-body)/1.45 var(--uk-sans)}
body.desktop-game #team-dialog.pg-team .pg-team-pop-head{display:flex;align-items:center;gap:calc(var(--pu)*1.6)}
body.desktop-game #team-dialog.pg-team .pg-team-pop-head .uk-plaque{--pg-u:calc(var(--pu)*.8);flex:none}
body.desktop-game #team-dialog.pg-team .pg-team-pop-stats{flex:1;display:flex;justify-content:center;flex-wrap:wrap;gap:calc(var(--pu)*.6) calc(var(--pu)*2.4);margin:0;min-width:0}
body.desktop-game #team-dialog.pg-team .pg-team-pop-stats .uk-stat b{font-size:max(14px,calc(var(--pu)*2.4))}
body.desktop-game #team-dialog.pg-team .pg-team-pop-stats .uk-stat small{font-size:var(--tm-small)}
body.desktop-game #team-dialog.pg-team .pg-team-pop-seats{display:flex;justify-content:center;align-items:flex-end;gap:calc(var(--pu)*1.2);padding-top:calc(var(--pu)*2.6)}
body.desktop-game #team-dialog.pg-team .pg-team-pop-seat{display:flex;flex-direction:column;align-items:center;gap:calc(var(--pu)*.5);width:calc(var(--pu)*13)}
body.desktop-game #team-dialog.pg-team .pg-team-pop-card.uk-card{--uk-cw:calc(var(--pu)*11.6)}
body.desktop-game #team-dialog.pg-team .pg-team-pop-seat:first-child .pg-team-pop-card.uk-card{--uk-cw:calc(var(--pu)*12.6)}
body.desktop-game #team-dialog.pg-team .pg-team-pop-name{font:700 max(12px,calc(var(--pu)*1.5))/1.2 var(--uk-serif);color:#f3dfae;letter-spacing:.04em;white-space:nowrap;text-shadow:0 1px 2px #000}
body.desktop-game #team-dialog.pg-team .pg-team-pop-seat.is-picked .pg-team-pop-name{color:#fff6d2}
body.desktop-game #team-dialog.pg-team .pg-team-pop-divider{align-self:flex-start;flex:none;width:calc(var(--pu)*3.6);height:calc(var(--pu)*3.6*874/274);margin-top:calc(var(--pu)*1);background:url("./assets/pages/team/pillar.webp") center/100% 100% no-repeat;filter:brightness(.85) drop-shadow(0 4px 6px #000a)}
body.desktop-game #team-dialog.pg-team .pg-team-pop-bond{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:calc(var(--pu)*1.2)}
body.desktop-game #team-dialog.pg-team .pg-team-pop-bond p{display:flex;align-items:center;gap:calc(var(--pu)*1);margin:0;min-width:0}
body.desktop-game #team-dialog.pg-team .pg-team-pop-bond p:last-child{flex-direction:row-reverse;text-align:right}
body.desktop-game #team-dialog.pg-team .pg-team-pop-bond .pg-team-sigil{width:calc(var(--pu)*5.4)}
body.desktop-game #team-dialog.pg-team .pg-team-pop-bond span{display:flex;flex-direction:column;gap:2px;min-width:0;font:400 var(--uk-body)/1.35 var(--uk-sans);color:var(--uk-text);text-wrap:pretty}
body.desktop-game #team-dialog.pg-team .pg-team-pop-bond b{font:700 max(12px,calc(var(--pu)*1.6))/1.2 var(--uk-serif);color:var(--uk-gold-hi);letter-spacing:.05em}
body.desktop-game #team-dialog.pg-team .pg-team-pop-bond p:last-child b{color:#bfe0ff}
body.desktop-game #team-dialog.pg-team .pg-team-pop-times{display:grid;place-items:center;width:calc(var(--pu)*2.8);height:calc(var(--pu)*2.8);border-radius:50%;background:radial-gradient(circle,#fff6d2,#f1d896 40%,#8a6a3200 72%);color:#3a2410;font:700 calc(var(--pu)*2)/1 var(--uk-serif);font-style:normal}
body.desktop-game #team-dialog.pg-team .pg-team-pop-roster{position:relative;display:flex;flex-direction:column;align-items:center;gap:calc(var(--pu)*.7);padding:calc(var(--pu)*.4) calc(var(--pu)*1.2) 0}
body.desktop-game #team-dialog.pg-team .pg-team-pop-caption{margin:0;font:700 max(12px,calc(var(--pu)*1.5))/1.2 var(--uk-serif);color:var(--uk-gold-hi);letter-spacing:.05em}
body.desktop-game #team-dialog.pg-team .pg-team-pop-grid{position:relative;display:flex;justify-content:center;gap:calc(var(--pu)*.9);padding:calc(var(--pu)*.6) calc(var(--pu)*3) calc(var(--pu)*2.9)}
body.desktop-game #team-dialog.pg-team .pg-team-pop-grid::after{content:"";position:absolute;left:0;right:0;bottom:0;z-index:-1;height:calc(var(--pu)*3.8);box-sizing:border-box;border-style:solid;border-color:transparent;border-width:0 calc(var(--pu)*3.8*300/235);border-image:url("./assets/pages/team/ledge.webp") 0 300 fill / 0 calc(var(--pu)*3.8*300/235) round;filter:brightness(.8) drop-shadow(0 6px 8px #000a);pointer-events:none}
body.desktop-game #team-dialog.pg-team .pg-team-pop-mid{display:flex;flex-direction:column;align-items:center;gap:calc(var(--pu)*.4)}
body.desktop-game #team-dialog.pg-team .pg-team-pop-pick.uk-card{--uk-cw:calc(var(--pu)*7.6)}
body.desktop-game #team-dialog.pg-team .pg-team-pop-info{margin:0;min-height:calc(1.35em * 2);max-width:100%;font:400 var(--uk-body)/1.35 var(--uk-sans);color:var(--uk-muted);text-align:center}
body.desktop-game #team-dialog.pg-team .pg-team-pop-info b{font-family:var(--uk-serif);color:#f3dfae}
body.desktop-game #team-dialog.pg-team .pg-team-pager{position:absolute;right:calc(var(--pu)*1);top:calc(var(--pu)*.6)}
body.desktop-game #team-dialog.pg-team .pg-team-pop-foot{display:flex;align-items:center;justify-content:flex-end;gap:calc(var(--pu)*1.6)}
body.desktop-game #team-dialog.pg-team .pg-team-pop-note{margin:0;font:400 var(--tm-small)/1.3 var(--uk-sans);color:var(--uk-muted)}
body.desktop-game #team-dialog.pg-team .pg-team-save-warn{margin:0;font:700 var(--tm-small)/1.2 var(--uk-serif);color:var(--uk-down);text-shadow:0 1px 2px #000}
body.desktop-game #team-dialog.pg-team .pg-team-tag{position:absolute;right:-6%;top:-5%;z-index:8;padding:.15em .4em .2em;border-radius:3px;background:linear-gradient(180deg,#3d6a3a,#1f3d1e);box-shadow:0 0 0 1px #9fd08b88;color:#e8f6d8;font:700 max(12px,calc(var(--pu)*1.25))/1 var(--uk-serif);font-style:normal;pointer-events:none}
body.desktop-game #team-dialog.pg-team .pg-team-tag.is-borrow{background:linear-gradient(180deg,#2c5a8c,#173253);box-shadow:0 0 0 1px #9fd0ff88;color:#e6f3ff}
body.desktop-game #team-dialog.pg-team .pg-team-cell{position:relative;display:block}
body.desktop-game #team-dialog.pg-team .pg-team-sigil{position:relative;flex:none;aspect-ratio:1;border-radius:50%;overflow:hidden}
body.desktop-game #team-dialog.pg-team .pg-team-sigil img{display:block;width:100%;height:100%;object-fit:contain}
@media (prefers-reduced-motion:reduce){body.desktop-game #team-dialog.pg-team .pg-team-sigil img{animation:none!important}}
