/* Présidex adaptation inspired by simeydotme's public Pen PrQKgo.
   Code reference and MIT notice: THIRD_PARTY_NOTICES.txt. No Pokémon artwork. */
.presidex-holo {
  --shine-x:50%;--shine-y:50%;--tilt-x:0deg;--tilt-y:0deg;--shine-opacity:0;
  position:relative;isolation:isolate;transform:perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
  transform-origin:center;transition:transform .35s ease,box-shadow .25s ease;
}
.presidex-holo::before,.presidex-holo::after {
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:6;
  opacity:var(--shine-opacity);transition:opacity .25s ease;background-position:var(--shine-x) var(--shine-y);
}
.presidex-holo::before {
  background-image:linear-gradient(112deg,transparent 20%,#fff3 35%,#fff8 44%,#6ee7ff66 49%,#fbc8ff66 54%,#fff3 61%,transparent 77%);
  background-size:240% 220%;mix-blend-mode:screen;
}
.presidex-holo::after {
  background-image:radial-gradient(circle at var(--shine-x) var(--shine-y),#ffffffa0,transparent 52%),repeating-linear-gradient(125deg,#ff79bc18 0%,#ffdf9618 14%,#a8efc918 28%,#a5dcff18 42%,#d5b5ff18 56%);
  mix-blend-mode:color-dodge;background-size:100% 100%,180% 180%;
}
.presidex-holo.holo-active {transition:box-shadow .25s ease;box-shadow:0 18px 36px -14px #14284a66,0 0 0 1px #ffffffaa,0 0 18px -6px var(--movement-color,var(--party-color,#5366aa));}
.presidex-holo:focus-visible {outline:3px solid #be3b51;outline-offset:5px;--shine-opacity:.14;}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){
  .presidex-holo,.presidex-holo.holo-active{transform:none!important;transition:none!important;}
  .presidex-holo::before,.presidex-holo::after{display:none;}
}

.card-face.presidex-holo>.portrait{height:auto!important;aspect-ratio:var(--photo-ratio,1.2);}

/* The animated paint is the actual five-pixel border, on all four sides.
   No additional strokes, strips or masked overlay sit above the portrait. */
@property --frame-angle{syntax:"<angle>";inherits:false;initial-value:0deg;}
:is(.card.presidex-holo.rarity-epic,.card.presidex-holo.rarity-legendary,.card-face.presidex-holo.epic,.card-face.presidex-holo.legendary){
 border:var(--card-border,5px) solid transparent;
 background:linear-gradient(var(--movement-color,var(--party-color,#33415e)),var(--movement-color,var(--party-color,#33415e))) padding-box,
 conic-gradient(from var(--frame-angle),#643292 0deg,#aa78dc 38deg,#eee1ff 66deg,#ffffff 82deg,#b294e5 103deg,#61348d 150deg,#ad79d8 206deg,#f4eaff 242deg,#d0b6ed 268deg,#643292 320deg,#643292 360deg) border-box;
 animation:presidex-frame-rotate 7s linear infinite;
 box-shadow:0 12px 25px -17px #15223c80,0 0 16px -8px #a46dd2;
}
:is(.card.presidex-holo.rarity-legendary,.card-face.presidex-holo.legendary){
 background:linear-gradient(var(--movement-color,var(--party-color,#33415e)),var(--movement-color,var(--party-color,#33415e))) padding-box,
 conic-gradient(from var(--frame-angle),#93601f 0deg,#d9ad57 30deg,#fff0bb 60deg,#fffdf2 80deg,#e9c774 106deg,#a16c24 157deg,#deb561 208deg,#fff9dc 240deg,#f2d78e 265deg,#b3863b 318deg,#93601f 360deg) border-box;
 animation-duration:5s;box-shadow:0 12px 25px -17px #15223c80,0 0 18px -8px #d8ae53;
}
.card-face.presidex-holo:is(.epic,.legendary){padding:0;}
@keyframes presidex-frame-rotate{from{--frame-angle:0deg}to{--frame-angle:360deg}}
@media(prefers-reduced-motion:reduce){
 :is(.card.presidex-holo.rarity-epic,.card.presidex-holo.rarity-legendary,.card-face.presidex-holo.epic,.card-face.presidex-holo.legendary){animation:none;--frame-angle:35deg;}
}
.card-face .card-party-logo{display:flex;align-items:center;justify-content:center;width:max-content;max-width:130px;height:32px;margin:9px 0;padding:4px 9px;border-radius:5px;background:#fff;}
.card-face .card-party-logo.surface-dark{background:#1d2944;}
.card-face .card-party-logo img{width:108px;max-width:100%;height:100%;max-height:24px;object-fit:contain;}

/* Finish is independent from rarity: keep the violet/gold rarity frame intact. */
.card-face.finish-classic::before,
.card-face.finish-classic::after{opacity:0;}
.card-face.finish-classic>.portrait>.foil{display:none;}
.card-face.finish-holographic>.portrait>.foil{
 display:block;opacity:.38;mask-image:none;
 background:linear-gradient(115deg,transparent 13%,#7de8ff38 26%,#d6a3ff52 39%,#fff6c666 47%,#b4ffe550 57%,#99baff40 68%,transparent 82%);
 background-size:250% 180%;mix-blend-mode:screen;
 animation:presidex-finish-shimmer 12s ease-in-out infinite alternate;
}
.card-face.finish-holographic.holo-active>.portrait>.foil{opacity:.55;}
.card-face.finish-alternative>.portrait>.foil{
 display:block;opacity:.5;mix-blend-mode:soft-light;
 background-image:radial-gradient(circle,#fff9 1px,transparent 1.5px),linear-gradient(135deg,#ffffff65 0 14%,transparent 14% 80%,#ffffff55 80%);
 background-size:10px 10px,100% 100%;
 mask-image:linear-gradient(135deg,#000 0%,transparent 38%,transparent 68%,#000 100%);
}
.card-face.finish-alternative .card-info{
 background-image:linear-gradient(130deg,#ffffff0d 0 21%,transparent 21% 79%,#ffffff0a 79%);
}
.card-face .card-top{flex-wrap:wrap;align-content:flex-start;}
.card-face .card-top .card-monogram{margin-left:auto;order:2;}
.card-face .card-top .rarity-tag{
 color:#253657;background:#fffffff2;border-color:#ffffffb3;
 text-shadow:none;
}
.card-face .card-top .finish-tag{
 order:3;display:inline-flex;align-items:center;gap:4px;min-width:0;
 max-width:100%;padding:4px 6px;border:1px solid #ffffffb3;border-radius:5px;
 background:#172b48eb;color:#fff;font:750 clamp(7px,3cqw,10px)/1.15 Manrope,system-ui;
 letter-spacing:.02em;white-space:nowrap;
}
.card-face.finish-holographic .finish-tag{background:#e9fcffff;color:#174256;border-color:#9ee1ef;}
.card-face.finish-alternative .finish-tag{background:#fff7ec;color:#674628;border-color:#e7cba4;}
@keyframes presidex-finish-shimmer{
 from{background-position:0% 50%;}
 to{background-position:100% 50%;}
}
@media(prefers-reduced-motion:reduce){
 .card-face.finish-holographic>.portrait>.foil{animation:none;background-position:50% 50%;}
}
