/* Motion layer: signature washi-tape wipe, sheens, stamps, bursts, idle life, spring hovers.
   All transform/opacity. body.reduced-motion (Settings) or prefers-reduced-motion turns idle loops off. */

/* ---------- signature transition: three washi-tape strips + 絆 hanko ---------- */
#wipe i { position: absolute; left: -30%; right: -30%; height: 52%; transform: translateX(-140%) rotate(-9deg); box-shadow: 0 .6rem 1.4rem rgba(0,0,0,.25);
  -webkit-mask: conic-gradient(from -45deg at left, #0000 25%, #000 0) left/51% 1.4rem repeat-y, conic-gradient(from 135deg at right, #0000 25%, #000 0) right/51% 1.4rem repeat-y;
  mask: conic-gradient(from -45deg at left, #0000 25%, #000 0) left/51% 1.4rem repeat-y, conic-gradient(from 135deg at right, #0000 25%, #000 0) right/51% 1.4rem repeat-y; width: auto; top: auto; bottom: auto; }
#wipe i:nth-child(1) { top: -22%; background: #ff7aa6 radial-gradient(rgba(255,255,255,.7) .35rem, transparent .4rem) 0 0/2.2rem 2.2rem; }
#wipe i:nth-child(2) { top: 24%; background: #ffd23f repeating-linear-gradient(90deg, rgba(255,255,255,.45) 0 1.2rem, transparent 1.2rem 2.6rem); left: -30%; }
#wipe i:nth-child(3) { top: 68%; background: #2b1b33 radial-gradient(rgba(255,255,255,.1) 22%, transparent 24%) 0 0/1.4rem 1.4rem; }
#wipe .wipe-stamp { position: absolute; left: 50%; top: 50%; width: 14rem; height: 14rem; display: grid; place-items: center; border-radius: 1.2rem; opacity: 0;
  background: #e23a4e; color: #fff6e8; font-family: var(--f-jp); font-size: 9.6rem; line-height: 1; box-shadow: 0 0 0 .4rem #fff6e8, 0 0 0 .7rem #e23a4e, .6rem .8rem 0 rgba(43,27,51,.5);
  transform: translate(-50%, -50%) rotate(-12deg) scale(.2); }
#wipe.in i { animation: tape-in .42s cubic-bezier(.7,0,.25,1) both; }
#wipe.in i:nth-child(2) { animation-delay: .05s; } #wipe.in i:nth-child(3) { animation-delay: .1s; }
#wipe.in .wipe-stamp { animation: wipe-stamp .5s cubic-bezier(.34,1.56,.64,1) .3s both; }
#wipe.out i { animation: tape-out .45s cubic-bezier(.7,0,.3,1) both; transform: translateX(0) rotate(-9deg); }
#wipe.out i:nth-child(2) { animation-delay: .04s; } #wipe.out i:nth-child(1) { animation-delay: .08s; }
#wipe.out .wipe-stamp { opacity: 1; transform: translate(-50%, -50%) rotate(-12deg) scale(1); animation: wipe-stamp-out .3s ease-in both; }
@keyframes tape-in { from { transform: translateX(-140%) rotate(-9deg); } to { transform: translateX(0) rotate(-9deg); } }
@keyframes tape-out { from { transform: translateX(0) rotate(-9deg); } to { transform: translateX(150%) rotate(-9deg); } }
@keyframes wipe-stamp { 0% { opacity: 0; transform: translate(-50%, -50%) rotate(-40deg) scale(3); } 60% { opacity: 1; transform: translate(-50%, -50%) rotate(-10deg) scale(.9); } 100% { opacity: 1; transform: translate(-50%, -50%) rotate(-12deg) scale(1); } }
@keyframes wipe-stamp-out { to { opacity: 0; transform: translate(-50%, -50%) rotate(-12deg) scale(.6); } }

/* screen exit (router adds .is-leaving and animates children) */
.screen.is-leaving { pointer-events: none; }

/* ---------- light sheen over an image's opaque pixels ---------- */
.sheen { position: relative; display: inline-block; line-height: 0; }
.sheen > img { display: block; }
.menu-logo .sheen, .menu-logo img { width: 100%; }
.menu .menu-logo { transform: rotate(-3deg); }
.sheen::after { content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.75) 48%, rgba(255,255,255,.15) 54%, transparent 62%) -150% 0/250% 100% no-repeat;
  -webkit-mask: var(--sheen-mask) center/contain no-repeat; mask: var(--sheen-mask) center/contain no-repeat;
  animation: sheen var(--sheen-every, 4.5s) ease-in-out var(--sheen-delay, 0s) infinite; mix-blend-mode: screen; }
@keyframes sheen { 0%, 62% { background-position: -150% 0; } 85%, 100% { background-position: 150% 0; } }

/* ---------- motion kit elements ---------- */
.mo-flash { position: absolute; inset: 0; pointer-events: none; z-index: 40; mix-blend-mode: screen; }
.mo-burst { position: absolute; width: 0; height: 0; pointer-events: none; z-index: 41; }
.mo-burst .mo-ring { position: absolute; left: 0; top: 0; width: 16rem; height: 16rem; border-radius: 50%; border: .5rem solid; opacity: 0; }
.mo-burst .mo-shard { opacity: 0; }
.mo-burst .mo-shard { position: absolute; left: 0; top: 0; border-radius: .2rem; border: .12rem solid rgba(43,27,51,.6); }
.mo-stamp { position: absolute; left: 50%; top: 50%; z-index: 30; pointer-events: none; padding: .15em .45em .1em; border: .16em solid var(--sc); border-radius: .25em; color: var(--sc);
  font-family: var(--f-manga); letter-spacing: .06em; line-height: 1; white-space: nowrap; background: rgba(255,250,240,.88); box-shadow: inset 0 0 0 .06em rgba(255,255,255,.7);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.4 2.15'/%3E%3C/filter%3E%3Crect width='80' height='80' filter='url(%23n)'/%3E%3C/svg%3E");
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.4 2.15'/%3E%3C/filter%3E%3Crect width='80' height='80' filter='url(%23n)'/%3E%3C/svg%3E"); }
.mo-sweep { position: absolute; left: -10%; right: -10%; top: 40%; z-index: 45; height: 11rem; display: flex; flex-direction: column; align-items: center; justify-content: center; pointer-events: none;
  background: var(--bc); border-top: .5rem solid var(--ink); border-bottom: .5rem solid var(--ink); box-shadow: 0 1rem 0 rgba(43,27,51,.35);
  background-image: repeating-linear-gradient(90deg, rgba(255,255,255,.3) 0 .3rem, transparent .3rem 3rem); }
.mo-sweep b { font-family: var(--f-manga); font-weight: 400; font-size: 7rem; line-height: 1; letter-spacing: .06em; color: #fff; -webkit-text-stroke: .25rem var(--ink); paint-order: stroke fill; text-shadow: .5rem .5rem 0 var(--pink); transform: skewX(12deg); }
.mo-sweep small { font-family: var(--f-jp); font-size: 1.6rem; color: var(--ink); transform: skewX(12deg); }

/* ---------- idle life ---------- */
.deco-stickers .sticker { animation: sticker-float 5s ease-in-out infinite; animation-delay: calc(var(--d, 0) * -1s); }
@keyframes sticker-float { 0%,100% { translate: 0 0; } 50% { translate: 0 -.5rem; } }
.deco-notes .note { transition: transform .4s var(--ease-pop); }
[data-depth] { will-change: translate; }

/* spring hovers: everything focusable lifts with overshoot */
.btn, .menu-item, .sel-card, .cup-poster, .ct-ticket, .preset, .lo-slot, .dj-scroll, .dj-drill, .lb-tab, .col-tab, .diff-stamp { transition-timing-function: cubic-bezier(.34,1.8,.5,1) !important; }

/* ---------- reduced motion (Settings → Accessibility) ---------- */
body.reduced-motion .fx-petals, body.reduced-motion .fx-sparkles, body.reduced-motion .sheen::after { display: none; }
body.reduced-motion *, body.reduced-motion *::before, body.reduced-motion *::after { animation-iteration-count: 1 !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
body.reduced-motion #wipe.in i, body.reduced-motion #wipe.out i { animation: none; }
body.reduced-motion #wipe.in { background: rgba(43,27,51,.9); transition: none; }
@media (prefers-reduced-motion: reduce) { .fx-petals, .fx-sparkles, .sheen::after { display: none; } }

/* ================= CHARACTER SELECT motion ================= */
.sel-card { transform: perspective(38rem) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) rotate(var(--rot)); transition: transform .32s cubic-bezier(.34,1.8,.5,1), box-shadow .25s ease-out !important; }
.sel-card:hover, .sel-card.cursor { transform: perspective(38rem) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(-.45rem) scale(1.06); box-shadow: .6rem .9rem 0 rgba(43,27,51,.55), 0 1.2rem 1.6rem rgba(43,27,51,.25); }
.sel-card.cursor { outline-color: transparent; animation: pop-in .45s var(--ease-pop) both; animation-delay: calc(var(--i) * 22ms + 80ms); }
.sel-card-img { perspective: 30rem; background: transparent; border-color: transparent; }
.sel-flip { position: absolute; inset: 0; transform-style: preserve-3d; transition: transform .55s cubic-bezier(.34,1.56,.64,1); }
.sel-card.flipped .sel-flip { transform: rotateY(180deg); }
.sel-face { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; border: .15rem solid var(--ink); overflow: hidden; background: var(--cc); }
.sel-face img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; display: block; }
.sel-face.back { transform: rotateY(180deg); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .3rem;
  background: radial-gradient(circle, #fff 0 30%, transparent 31%) center/1.1rem 1.1rem, linear-gradient(160deg, var(--pc, var(--pink)), color-mix(in srgb, var(--pc, var(--pink)), #2b1b33 25%)); }
.sel-back-icon { width: 62%; aspect-ratio: 1; border-radius: 50%; overflow: hidden; border: .22rem solid #fff; box-shadow: 0 0 0 .18rem var(--ink), .2rem .3rem 0 rgba(0,0,0,.3); background: #fff; }
.sel-back-icon img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
.sel-back-name { font-family: var(--f-manga); font-weight: 400; color: #fff; font-size: 1.3rem; letter-spacing: .06em; -webkit-text-stroke: .06rem var(--ink); paint-order: stroke fill; }
.sel-card .card-stamp { top: 70%; z-index: 6; }
.sel-card.flipped .sel-card-label { visibility: hidden; }
.sel-card.picked { box-shadow: .3rem .35rem 0 rgba(43,27,51,.85), 0 0 1.4rem .2rem color-mix(in srgb, var(--cc), transparent 40%); }

.sel-cursor { position: absolute; left: 0; top: 0; z-index: 8; pointer-events: none; opacity: 0; transition: opacity .15s; }
.sel-cursor.on { opacity: 1; }
.sel-cursor-frame { position: absolute; inset: calc(-.6rem - var(--k) * .32rem); border-radius: .7rem; border: .2rem solid #fff; box-shadow: 0 0 0 .45rem var(--pc), 0 0 0 .62rem var(--ink), 0 0 1.8rem .5rem color-mix(in srgb, var(--pc), transparent 35%); animation: cursor-breathe 1s ease-in-out infinite; }
.sel-cursor-frame i { position: absolute; width: 1.9rem; height: 1.9rem; border: .5rem solid #fff; filter: drop-shadow(0 0 .12rem var(--ink)) drop-shadow(0 0 .12rem var(--ink)); }
.sel-cursor-frame .c1 { left: -1rem; top: -1rem; border-right: 0; border-bottom: 0; border-radius: .5rem 0 0 0; }
.sel-cursor-frame .c2 { right: -1rem; top: -1rem; border-left: 0; border-bottom: 0; border-radius: 0 .5rem 0 0; }
.sel-cursor-frame .c3 { left: -1rem; bottom: -1rem; border-right: 0; border-top: 0; border-radius: 0 0 0 .5rem; }
.sel-cursor-frame .c4 { right: -1rem; bottom: -1rem; border-left: 0; border-top: 0; border-radius: 0 0 .5rem 0; }
.sel-cursor-tag { position: absolute; right: -.4rem; top: -1.5rem; padding: .05rem .55rem .1rem; border-radius: .4rem; background: var(--pc); color: #fff; border: .16rem solid var(--ink); font-family: var(--f-manga); font-size: 1.25rem; letter-spacing: .04em; box-shadow: .12rem .15rem 0 var(--ink); animation: tag-bob .6s ease-in-out infinite alternate; }
.sel-cursor:nth-child(odd) .sel-cursor-tag { right: auto; left: -.4rem; }
@keyframes cursor-breathe { 50% { box-shadow: 0 0 0 .55rem var(--pc), 0 0 0 .72rem var(--ink), 0 0 2.6rem .8rem color-mix(in srgb, var(--pc), transparent 25%); } }

.sc-bg { inset: -4%; }
.sc-photo { overflow: visible; } .sc-photo > .sc-bg { clip-path: inset(4%); }
.sc-full { animation: breathe 3.4s ease-in-out .6s infinite; }
@keyframes breathe { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-.55rem) scale(1.018); } }
.sc-polaroid { animation: breathe 3.4s ease-in-out infinite; }
.sc-stats .statbar > i { animation: bar-fill .7s cubic-bezier(.22,1.2,.36,1) both; animation-delay: calc(var(--i) * 55ms + 120ms); }
.stat-row .statbar { --i: inherit; }
@keyframes bar-fill { from { width: 0; } }
.stat-val { animation: pop-in .4s var(--ease-pop) both; animation-delay: calc(var(--i) * 55ms + 300ms); }

.ps-press { animation: press-pulse-sm 1.3s ease-in-out infinite; }
@keyframes press-pulse-sm { 50% { transform: scale(1.07); background: #fff6d6; border-color: var(--pc); } }
.ps-ready { display: inline-flex; align-items: center; gap: .4rem; }
.ps-check { display: inline-grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: #fff; color: #2fa36b; border: .14rem solid var(--ink); font-style: normal; font-size: 1.1rem; font-family: var(--f-ui); font-weight: 900; }
.pslot.is-active .ps-badge { animation: badge-bob 1.2s ease-in-out infinite; }
@keyframes badge-bob { 50% { transform: rotate(-3deg) translateY(-.3rem); } }

/* leaderboard */
.lb-stats .sheen { position: relative; }
.lb-badge { width: 12.4rem; height: 12.4rem; object-fit: contain; }
.lb-rank .sheen img { width: 8.8rem; height: 8.8rem; object-fit: contain; transition: transform .25s var(--ease-pop); }
.lb-rank:hover .sheen img, .lb-rank.mine .sheen img { transform: scale(1.1) rotate(-4deg); }
.lb-row { transition: transform .25s cubic-bezier(.34,1.8,.5,1); } .lb-row:hover { transform: translateX(-.5rem) scale(1.01); }

/* unlock reveal: card flip */
.ul-art { perspective: 60rem; }
.ul-flip { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; animation: ul-flip 1s cubic-bezier(.34,1.4,.64,1) .35s both; }
@keyframes ul-flip { 0% { transform: rotateY(0) scale(.6); } 30% { transform: rotateY(0) scale(1); } 100% { transform: rotateY(180deg) scale(1); } }
.ul-face { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; display: grid; place-items: center; }
.ul-back { border-radius: .8rem; border: .3rem solid var(--ink); background: repeating-linear-gradient(45deg, #ff7aa6 0 1.2rem, #ff5f8f 1.2rem 2.4rem); box-shadow: var(--shadow); }
.ul-back img { width: 60%; height: 60%; object-fit: contain; } .ul-back b { position: absolute; font-size: 6rem; color: #fff; -webkit-text-stroke: .2rem var(--ink); paint-order: stroke fill; }
.ul-front { transform: rotateY(180deg); }
.ul-front img { width: 100%; height: 100%; object-fit: contain; }
.ul-art.k-character .ul-front img, .ul-art.k-court .ul-front img { object-fit: cover; border: .3rem solid var(--ink); border-radius: .6rem; box-shadow: var(--shadow); background: #fff; }
.ul-art { animation: none; }

/* bracket: connector draw-in, arrival, medal */
.bk-match::after { transform-origin: 0 50%; }
.bk-match.fresh::after { animation: line-draw .5s cubic-bezier(.65,0,.35,1) .5s both; background: var(--pink); height: .32rem; }
@keyframes line-draw { from { transform: scaleX(0); } }
.bk-match.arrive { animation: arrive .6s cubic-bezier(.34,1.56,.64,1) 1s both; }
@keyframes arrive { from { opacity: 0; transform: translateX(-3rem) scale(.9); } }
.bk-trophy { position: relative; }
.bk-medal { position: absolute; left: 50%; top: 52%; margin-left: -4rem; width: 8rem; display: flex; flex-direction: column; align-items: center; z-index: 3; }
.bk-ribbon { width: 4.4rem; height: 3.6rem; background: linear-gradient(90deg, #e23a4e 0 33%, #fff 33% 66%, #3f8cff 66%); clip-path: polygon(0 0, 100% 0, 80% 100%, 50% 75%, 20% 100%); border: .14rem solid var(--ink); }
.bk-disc { width: 7rem; height: 7rem; margin-top: -.6rem; border-radius: 50%; display: grid; place-items: center; align-content: center; border: .25rem solid var(--ink); box-shadow: inset 0 0 0 .4rem rgba(255,255,255,.45), .3rem .4rem 0 rgba(43,27,51,.5); line-height: .9; }
.bk-medal.gold .bk-disc { background: radial-gradient(circle at 35% 30%, #fff6c4, #f0b429 55%, #b07a10); }
.bk-medal.silver .bk-disc { background: radial-gradient(circle at 35% 30%, #fff, #c5cbd8 55%, #7d8496); }
.bk-medal.bronze .bk-disc { background: radial-gradient(circle at 35% 30%, #ffe1c4, #d0874a 55%, #8a4f1f); }
.bk-disc b { font-family: 'Dela Gothic One', var(--f-manga); font-weight: 400; font-size: 2.8rem; color: var(--ink); } .bk-disc small { font-weight: 900; font-size: .75rem; letter-spacing: .1em; }
.bk-medal .bk-disc { animation: medal-shine 3s ease-in-out 2s infinite; } @keyframes medal-shine { 50% { filter: brightness(1.2); } }
.vsx-ctl { display: flex; flex-wrap: wrap; gap: .5rem .9rem; justify-content: center; margin-top: .7rem; font-size: .9rem; font-weight: 900; }
.vsx-ctl > span { display: inline-flex; align-items: center; gap: .3rem; }

.select.is-go .sel-grid, .select.is-go .sel-right { opacity: .85 !important; transform: scale(.985); }

/* Kizuna Assist */
.ps-assist { position: absolute; right: .6rem; bottom: .45rem; display: inline-flex; align-items: center; gap: .3rem; padding: .1rem .55rem .1rem .15rem; border: .16rem solid var(--ink); border-radius: 99px; background: #fff; font-weight: 900; font-size: .78rem; letter-spacing: .04em; cursor: pointer; box-shadow: .1rem .14rem 0 var(--ink); transition: transform .2s cubic-bezier(.34,1.8,.5,1); }
.ps-assist-ico { width: 1.8rem; height: 1.8rem; display: inline-flex; filter: grayscale(1) opacity(.55); transition: filter .2s; } .ps-assist-ico svg { width: 100%; height: 100%; }
.ps-assist.on { background: #ffe1ec; color: #c4223d; } .ps-assist.on .ps-assist-ico { filter: none; animation: badge-bob 1.4s ease-in-out infinite; }
.ps-assist:hover, .ps-assist.is-focus { transform: translateY(-.15rem) scale(1.05); outline: .2rem solid var(--pc); }
.pslot .ps-dev { bottom: auto; top: .4rem; right: 2.4rem; }
.pslot .ps-mini.swap { top: .35rem; bottom: auto; right: 2.3rem; min-width: 1.8rem; height: 1.8rem; }
.pslot .ps-dev { top: .3rem; right: 4.5rem; font-size: 1.1rem; }
.pslot .ps-team { top: .35rem; right: .8rem; }
.ps-assist { right: .6rem; bottom: .5rem; font-size: .82rem; padding-right: .7rem; }
.pslot:has(.ps-assist) .ps-body { padding-right: 6.2rem; }
/* select: ego / handicap / details */
.ps-ego { display: flex; flex-direction: column; gap: .05rem; min-width: 7rem; } .ps-ego b { font-size: .72rem; font-weight: 900; color: var(--ink-2); white-space: nowrap; }
.ps-ego-range { width: 7rem; accent-color: var(--pc); height: 1rem; margin: 0; }
.ps-cpu { max-width: 13rem; align-items: center; }
.ps-hcap { position: absolute; left: 6.2rem; bottom: .45rem; padding: 0 .4rem; border: .14rem solid var(--ink); border-radius: .4rem; background: #fff; color: #e9b43a; font-size: .95rem; letter-spacing: .05em; cursor: pointer; }
.ps-hcap:hover, .ps-hcap.is-focus { background: #fff3c4; }
.sc-details { position: absolute; left: .8rem; bottom: .5rem; padding: .1rem .6rem; border: .14rem solid var(--ink); border-radius: .4rem; background: #fff; font-weight: 900; font-size: .8rem; cursor: pointer; }
.sc-special .sc-sp-desc { margin-bottom: 1.8rem; }
.modal-card.details { max-width: min(84rem, 94vw); }
.det { display: grid; grid-template-columns: 24rem 1fr; gap: 1.6rem; }
.det-art { border: .2rem solid var(--ink); border-radius: .5rem; overflow: hidden; background: var(--pink-3); align-self: start; aspect-ratio: 1.2; } .det-art img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; }
.det-head { display: flex; align-items: baseline; gap: .8rem; flex-wrap: wrap; } .det-head b { font-size: 2.4rem; } .det-head small { color: var(--ink-2); }
.det-stats { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem 1.2rem; margin: .6rem 0; }
.det-stat { display: grid; grid-template-columns: 1.6rem 5.4rem 1fr; grid-template-rows: auto auto; align-items: center; column-gap: .4rem; } .det-stat b { font-size: .85rem; } .det-stat small { grid-column: 2 / -1; font-size: .78rem; color: var(--ink-soft); }
.det-stat .statbar > i { animation: bar-fill .7s cubic-bezier(.22,1.2,.36,1) both; animation-delay: calc(var(--i) * 55ms); }
.det-special { padding: .7rem .9rem; border: .16rem solid var(--ink); border-radius: .5rem; background: #ffeef4; } .det-special small { font-size: .75rem; font-weight: 900; color: var(--pink); } .det-special b { display: block; font-size: 2rem; color: #d6204f; line-height: 1; } .det-special p { margin: .3rem 0 0; }
.det-pair { display: flex; gap: .5rem; margin-top: .6rem; }
.pslot .ps-cpu { position: absolute; right: .5rem; top: .45rem; bottom: .45rem; max-width: none; display: flex; flex-direction: column; align-items: stretch; justify-content: space-between; gap: .2rem; }
.pslot .ps-cpu > div:not(.ps-ego) { display: flex; }
.pslot:has(.ps-cpu) .ps-body { padding-right: 8.4rem; }
.pslot:has(.ps-cpu) .ps-team { right: 9rem; }
.ps-cpu .ps-btns { display: flex; gap: .2rem; justify-content: flex-end; }
.ps-cpu .ps-mini { min-width: 1.7rem; height: 1.7rem; font-size: .75rem; }
.ps-ego-range { width: 100%; }
/* KK-031: the READY! stamp sits on the portrait so the name stays readable; notes overlap the hero art, not vice versa */
.sel-card .card-stamp { top: 40%; }
.select .deco-notes { z-index: 6; }
.pslot .ps-cpu { width: 8rem; }
