/* =========================================================
   逼翰大戰爭 v8.7 卡片層（js/cards.js）
   =========================================================
   全遊戲共用的卡片：角色卡（基礎銀框／瑟琴藍／超瑟綠／ㄉㄜˋ頂金／幹超瑟紫）、敵人卡（紅／BOSS 黑金）、
   設施卡（青）、道具卡（紫）、基礎卡包的銅／銀／金卡。
   小卡是 104×152 的設計、大卡是 260×380 的設計；其他大小一律用 zoom 縮（.sz-xs／.sz-s／.sz-l／.sz-ml），
   所以升級、牌組、圖鑑、抽卡裡的卡片長得一模一樣。後半是各畫面改成卡片之後的版面。
   載在 deluxe.css 之後、summon.css 之前。 */

/* =================== 卡面 .tc（v8.8 重新設計）===================
   使用者：「我希望能把每張卡片做得更帥一點」。尺寸不變（小卡 104×152、大卡 260×380），只換長相：
   ・外框：稀有度顏色的金屬框（斜向的亮面＋左上亮、右下暗的斜角），裡面是深色卡身（::before，帶一點稀有度的深色）
   ・照片窗：背景依稀有度（--art，下面 :root 的 --art-*），上面蓋一層暗角（::after），左下等級、右上寶石、左上費用牌
   ・名牌：稀有度顏色的漸層＋白字黑邊；小卡最下面一排「★★★　SSR」；大卡照片窗下緣掛緞帶
   ・ㄉㄜˋ頂以上／真形態／BOSS：每隔幾秒一道斜光掃過（.tc-shine，只動 transform）；幹超瑟的照片窗有會閃的像素星星 */
:root{
  --art-t0:radial-gradient(circle at 50% 78%,#e8f5ff 0%,#58b4ff 30%,#0e2f6a 94%);
  --art-t1:repeating-conic-gradient(from 0deg at 50% 82%,#ffffff17 0 9deg,#fff0 9deg 18deg),radial-gradient(circle at 50% 78%,#ecffec 0%,#48e07a 30%,#0b4f25 94%);
  --art-t2:repeating-conic-gradient(from 0deg at 50% 82%,#fff6c24d 0 7deg,#fff0 7deg 15deg),radial-gradient(circle at 50% 78%,#fffbe8 0%,#ffd75e 26%,#c07a0a 58%,#3a2004 98%);
  --art-t3:radial-gradient(40% 32% at 20% 26%,#ff7be070,#fff0),radial-gradient(42% 34% at 82% 22%,#8f8bff80,#fff0),radial-gradient(56% 40% at 62% 90%,#b86bffa8,#fff0),
    repeating-conic-gradient(from 0deg at 50% 82%,#ffffff1f 0 6deg,#fff0 6deg 13deg),radial-gradient(circle at 50% 78%,#fff 0%,#d9a8ff 24%,#6a2ab0 62%,#170838 100%);
  --art-base:repeating-linear-gradient(45deg,#ffffff17 0 4px,#fff0 4px 8px),radial-gradient(circle at 50% 78%,#fff 0%,#c9d2e0 30%,#4a5670 94%);
  --art-b0:repeating-linear-gradient(45deg,#ffffff14 0 4px,#fff0 4px 8px),radial-gradient(circle at 50% 78%,#fff0e0 0%,#e8945a 30%,#4a260c 94%);
  --art-foe:repeating-linear-gradient(-45deg,#fff0 0 7px,#0000002e 7px 14px),radial-gradient(circle at 50% 78%,#ffd6cc 0%,#e0392b 32%,#3a0806 96%);
  --art-boss:repeating-conic-gradient(from 0deg at 50% 84%,#ff6a2a2e 0 8deg,#fff0 8deg 16deg),radial-gradient(circle at 50% 80%,#ffe9a8 0%,#ff8a2a 22%,#7a1606 58%,#0a0302 100%);
  --art-fac:linear-gradient(#ffffff21 1px,#fff0 1px) 0 0/9px 9px,linear-gradient(90deg,#ffffff21 1px,#fff0 1px) 0 0/9px 9px,radial-gradient(circle at 50% 50%,#5ae0c8 0%,#16695e 56%,#062a26 100%);
  --art-item:repeating-linear-gradient(45deg,#ffffff12 0 2px,#fff0 2px 10px),repeating-linear-gradient(-45deg,#ffffff12 0 2px,#fff0 2px 10px),radial-gradient(circle at 50% 50%,#f3ecff 0%,#9a6aff 30%,#24104a 94%);
  --art-lock:repeating-linear-gradient(45deg,#ffffff0a 0 6px,#fff0 6px 12px),radial-gradient(circle at 50% 70%,#4a4660 0%,#1a1826 94%);
}
.tc{--f1:#6fb8ff;--f2:#2a5fb0;--fd:#0e2f6a;--fl:#cfeaff;--art:var(--art-t0);
  --bev:inset 2px 2px 0 #ffffffb8,inset -2px -2px 0 #0000006b;
  --metal:linear-gradient(160deg,var(--f1) 0%,var(--f2) 40%,var(--fl) 58%,var(--f2) 76%,var(--f1) 100%);
  position:absolute;inset:0;isolation:isolate;display:flex;flex-direction:column;padding:4px;overflow:hidden;border:3px solid #000;
  background:linear-gradient(135deg,#ffffff8c 0%,#fff0 18%,#fff0 78%,#00000059 100%),var(--metal);
  box-shadow:var(--bev),0 5px 0 #0009}
.tc::before{content:"";position:absolute;inset:4px;background:linear-gradient(var(--fd),#0c0a16 72%);box-shadow:0 0 0 1.5px #000}
.tc>*{position:relative}
.tc.fr-t1{--f1:#72f0a0;--f2:#1f9a55;--fd:#0b4f25;--fl:#d2ffd0;--art:var(--art-t1)}
.tc.fr-t2,.tc.fr-b2{--f1:#ffe27a;--f2:#d99a1a;--fd:#6a3f04;--fl:#fff1b8;--art:var(--art-t2)}
.tc.fr-t3{--f1:#d9a8ff;--f2:#7a3ad0;--fd:#2a0a55;--fl:#f3e6ff;--art:var(--art-t3);
  --metal:linear-gradient(135deg,#f0dcff,#8a4ad6,#ff9ae4,#5a2ab0,#d9a8ff,#8a4ad6);
  background-size:100% 100%,300% 300%;animation:tc-rainbow 3s linear infinite}
@keyframes tc-rainbow{to{background-position:0 0,300% 300%}}
.tc.fr-base,.tc.fr-b1{--f1:#f4f7ff;--f2:#8e9ab0;--fd:#2e3a4c;--fl:#ffffff;--art:var(--art-base)}
.tc.fr-b0{--f1:#f0b07a;--f2:#9a5424;--fd:#4a260c;--fl:#ffe0c2;--art:var(--art-b0)}
.tc.fr-foe{--f1:#ff8a7a;--f2:#9a2418;--fd:#3a0a06;--fl:#ffc0b4;--art:var(--art-foe)}
.tc.fr-boss{--f1:#ffcf4a;--f2:#3a2408;--fd:#1a0e04;--fl:#ffe9a8;--art:var(--art-boss);
  --metal:linear-gradient(155deg,#ffcf4a 0%,#5a3a0c 30%,#1a0e04 60%,#ffcf4a 100%)}
.tc.fr-fac{--f1:#86ead8;--f2:#1f7a70;--fd:#0a3a34;--fl:#d0fff6;--art:var(--art-fac)}
.tc.fr-item{--f1:#c7b0ff;--f2:#5a3aa8;--fd:#24104a;--fl:#efe6ff;--art:var(--art-item)}
.tc.locked{--f1:#6a6680;--f2:#34304a;--fd:#16141f;--fl:#8a86a0;--art:var(--art-lock);animation:none;background-size:auto;
  --metal:linear-gradient(160deg,#6a6680,#34304a 42%,#6a6680 60%,#34304a 80%,#6a6680)}

/* ---- 照片窗 ---- */
.tc-win{flex:0 0 98px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;border:2px solid #000;
  background:var(--art);box-shadow:0 0 0 1px var(--fl)}
.tc-win::before{content:"";position:absolute;inset:0;pointer-events:none}
.tc-win::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(#fff0 58%,#00000073);box-shadow:inset 0 0 12px #000000a6}
.tc-win canvas{position:relative;display:block;flex:0 0 auto}
/* 幹超瑟：照片窗裡會閃的像素星星（在人物後面） */
.tc.fr-t3:not(.locked) .tc-win::before{background:
    linear-gradient(#fff,#fff) 14% 18%/2px 2px no-repeat,linear-gradient(#fff,#fff) 74% 10%/3px 3px no-repeat,
    linear-gradient(#f3e6ff,#f3e6ff) 90% 40%/2px 2px no-repeat,linear-gradient(#c8c0ff,#c8c0ff) 30% 46%/2px 2px no-repeat,
    linear-gradient(#fff,#fff) 56% 26%/2px 2px no-repeat,linear-gradient(#ff9ae4,#ff9ae4) 8% 64%/3px 3px no-repeat,
    linear-gradient(#fff,#fff) 84% 70%/2px 2px no-repeat;
  animation:tc-twinkle 1.3s steps(2) infinite}
@keyframes tc-twinkle{50%{opacity:.2}}
/* 真形態：照片窗內圈金邊（蓋在人物上面） */
.tc.evo .tc-win::after{box-shadow:inset 0 0 0 2px #ffe27a,inset 0 0 14px #ffd75e99,inset 0 0 12px #000000a6}
.tc-holo{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;mix-blend-mode:color-dodge;
  background:linear-gradient(115deg,#fff0 22%,#ff7be070 36%,#8fe6ff70 50%,#ffe27a70 64%,#fff0 78%);background-size:260% 260%;
  background-position:var(--mx,50%) var(--my,50%)}
.tc.fr-t2 .tc-holo,.tc.fr-t3 .tc-holo,.tc.evo .tc-holo,.tc.fr-boss .tc-holo{opacity:.85}
.tc:not(.big).fr-t2 .tc-holo,.tc:not(.big).fr-t3 .tc-holo,.tc:not(.big).evo .tc-holo,.tc:not(.big).fr-boss .tc-holo{animation:tc-holo 3.2s ease-in-out infinite alternate}
@keyframes tc-holo{from{background-position:0% 0%}to{background-position:100% 100%}}
.tc-lv{position:absolute;left:2px;bottom:2px;z-index:2;padding:0 4px;font-size:9.5px;font-weight:900;line-height:12px;color:#fff;background:#000000c0;border:1.5px solid #000}
.tc-lv.max{color:#3d2308;background:linear-gradient(90deg,#ffe27a,#ffca4a)}
.tc-lock{position:absolute;left:50%;top:50%;z-index:2;width:26px;height:26px;margin:-13px 0 0 -13px}
.tc-lock .pxi{width:26px;height:26px;opacity:.85}

/* ---- 左上費用牌、右上稀有度寶石 ---- */
.tc-cost{position:absolute;left:5px;top:5px;z-index:3;display:flex;align-items:center;gap:1px;height:16px;padding:0 4px 0 2px;white-space:nowrap;
  font-size:11px;font-weight:900;line-height:1;color:#ffe27a;text-shadow:0 1px 0 #000;
  background:linear-gradient(#302844,#0c0a14);border:1.5px solid #000;box-shadow:inset 0 0 0 1px #ffd75e80,0 2px 0 #0009}
.tc-cost .pxi{width:12px;height:12px}
.tc-gem{position:absolute;right:7px;top:7px;z-index:3;width:11px;height:11px;transform:rotate(45deg);border:1.5px solid #000;
  background:linear-gradient(135deg,var(--fl) 0%,var(--f1) 38%,var(--f2) 74%,var(--fd) 100%);box-shadow:0 0 6px var(--f1),0 2px 0 #0009}
.tc-gem::after{content:"";position:absolute;left:1px;top:1px;width:3px;height:3px;background:#fff}
.tc.fr-t3 .tc-gem{background:linear-gradient(135deg,#fff,#d9a8ff 30%,#8a4ad6 62%,#ff7be0);animation:tc-gem 1.6s ease-in-out infinite alternate}
@keyframes tc-gem{to{filter:brightness(1.35) drop-shadow(0 0 4px #d9a8ff)}}
.tc-gem.ico{right:4px;top:4px;width:18px;height:18px;transform:none;border:0;background:none;box-shadow:none;filter:drop-shadow(0 1px 0 #000)}
.tc-gem.ico::after{display:none}
.tc-gem.ico .pxi{width:18px;height:18px}
.tc.locked .tc-gem{filter:grayscale(1) brightness(.7);box-shadow:none;animation:none}

/* ---- 名牌、最下面一排 ---- */
.tc-plate{display:flex;align-items:center;justify-content:center;height:19px;margin-top:3px;padding:0 3px;
  background:linear-gradient(#ffffff2e,#fff0 55%),linear-gradient(var(--f2),var(--fd));border:1.5px solid #000;box-shadow:inset 0 1px 0 #ffffff59}
.tc-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:900;line-height:1.2;color:#fff;
  text-shadow:1px 0 0 #000,-1px 0 0 #000,0 1px 0 #000,0 -1px 0 #000}
.tc.locked .tc-name{color:#c9c5d8}
.tc-foot{display:flex;justify-content:space-between;align-items:center;height:15px;margin-top:2px;padding:0 3px}
.tc-foot.solo{justify-content:center}
.tc-stars{font-size:10.5px;line-height:1;letter-spacing:.5px;color:#ffd75e;text-shadow:0 1px 0 #000,0 0 4px #ffb52a}
.tc.fr-t3:not(.locked) .tc-stars{color:#f3e6ff;text-shadow:0 1px 0 #000,0 0 5px #b86bff}      /* v8.9 幹超瑟＝紫：星星也是紫白色 */
.tc-lab{white-space:nowrap;font-size:10px;font-weight:900;letter-spacing:1px;line-height:1;color:var(--f1);text-shadow:0 1px 0 #000}
.tc.fr-t3:not(.locked) .tc-lab{color:#fff0;text-shadow:none;background:linear-gradient(90deg,#f0dcff,#d9a8ff,#ff9ae4,#c8a0ff);
  -webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 1px 0 #000)}
.tc.locked .tc-lab,.tc.locked .tc-stars{color:#8a86a0;text-shadow:0 1px 0 #000}

/* ---- 掃過去的一道光（ㄉㄜˋ頂以上、真形態、BOSS）---- */
.tc-shine{position:absolute;inset:0;z-index:4;display:none;overflow:hidden;pointer-events:none}
.tc-shine::before{content:"";position:absolute;top:-20%;bottom:-20%;left:-60%;width:40%;
  background:linear-gradient(100deg,#fff0,#ffffff6b 50%,#fff0);transform:skewX(-14deg);animation:tc-shine 4.4s ease-in-out infinite}
@keyframes tc-shine{0%,64%{transform:translateX(0) skewX(-14deg)}100%{transform:translateX(430%) skewX(-14deg)}}
.tc.fr-t2 .tc-shine,.tc.fr-t3 .tc-shine,.tc.fr-b2 .tc-shine,.tc.fr-boss .tc-shine,.tc.evo .tc-shine{display:block}
.tcard:nth-child(3n+1) .tc-shine::before{animation-delay:-1.5s}
.tcard:nth-child(3n+2) .tc-shine::before{animation-delay:-3s}

/* ---- 大卡：照片窗下緣的緞帶、能力值（圖示）、介紹 ---- */
.tc.big{padding:7px;border-width:4px}
.tc.big::before{inset:7px;box-shadow:0 0 0 2px #000}
.tc.big::after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;background:        /* 四個角的鉚釘 */
    linear-gradient(var(--fl),var(--fl)) left 1px top 1px/3px 3px no-repeat,linear-gradient(#0009,#0009) left 2px top 2px/3px 3px no-repeat,
    linear-gradient(var(--fl),var(--fl)) right 2px top 1px/3px 3px no-repeat,linear-gradient(#0009,#0009) right 1px top 2px/3px 3px no-repeat,
    linear-gradient(var(--fl),var(--fl)) left 1px bottom 2px/3px 3px no-repeat,linear-gradient(#0009,#0009) left 2px bottom 1px/3px 3px no-repeat,
    linear-gradient(var(--fl),var(--fl)) right 2px bottom 2px/3px 3px no-repeat,linear-gradient(#0009,#0009) right 1px bottom 1px/3px 3px no-repeat}
.tc.big .tc-win{flex:0 0 206px;border-width:3px;box-shadow:0 0 0 1.5px var(--fl)}
.tc.big .tc-win::after{box-shadow:inset 0 0 26px #000000a6}
.tc.big.evo .tc-win::after{box-shadow:inset 0 0 0 3px #ffe27a,inset 0 0 22px #ffd75e99,inset 0 0 26px #000000a6}
.tc.big .tc-cost{left:9px;top:9px;height:26px;gap:2px;padding:0 9px 0 4px;font-size:17px;border-width:2px;box-shadow:inset 0 0 0 1.5px #ffd75e80,0 3px 0 #0009}
.tc.big .tc-cost .pxi{width:19px;height:19px}
.tc.big .tc-gem{right:13px;top:13px;width:18px;height:18px;border-width:2px;box-shadow:0 0 10px var(--f1),0 3px 0 #0009}
.tc.big .tc-gem::after{left:2px;top:2px;width:5px;height:5px}
.tc.big .tc-gem.ico{right:8px;top:8px;width:30px;height:30px}
.tc.big .tc-gem.ico .pxi{width:30px;height:30px}
.tc.big .tc-lv{left:5px;bottom:5px;padding:1px 8px;font-size:15px;line-height:18px;border-width:2px}
.tc.big .tc-lock,.tc.big .tc-lock .pxi{width:48px;height:48px}
.tc.big .tc-lock{margin:-24px 0 0 -24px}
.tc-rib{align-self:center;z-index:2;margin-top:-12px;padding:0 14px;white-space:nowrap;font-size:12.5px;font-weight:900;letter-spacing:2px;line-height:18px;color:#fff;
  text-shadow:0 1px 0 #000;background:linear-gradient(#ffffff38,#fff0 50%),linear-gradient(var(--f2),var(--fd));border:2px solid #000;
  box-shadow:inset 0 0 0 1px var(--fl),0 2px 0 #0009}
.tc.fr-t3:not(.locked) .tc-rib{background:linear-gradient(#ffffff38,#fff0 50%),linear-gradient(90deg,#c24ac0,#6a2aa8,#2a6ab8,#c24ac0);background-size:100% 100%,200% 100%;animation:tc-rib 3s linear infinite}
@keyframes tc-rib{to{background-position:0 0,200% 0}}
.tc.big .tc-plate{justify-content:space-between;height:30px;margin-top:4px;padding:0 10px;border-width:2px}
.tc.big .tc-name{font-size:19px;text-shadow:1.5px 0 0 #000,-1.5px 0 0 #000,0 1.5px 0 #000,0 -1.5px 0 #000,0 2.5px 0 #000}
.tc.big .tc-stars{font-size:15px;letter-spacing:1px}
.tc-stats{display:flex;gap:4px;margin-top:5px}
.tc-stats span{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;padding:2px 0 1px;font-size:9.5px;font-weight:800;line-height:1.25;color:#bfb6d6;
  background:#0000008c;border:1.5px solid #000;box-shadow:inset 0 2px 0 var(--f1)}
.tc-stats b{display:flex;align-items:center;gap:3px;font-size:14px;color:#fff;white-space:nowrap}
.tc-stats .pxi{width:14px;height:14px;flex:0 0 auto}
.tc-desc{flex:1;min-height:0;margin-top:5px;padding:4px 7px;font-size:11px;font-weight:700;line-height:1.5;color:#efe6d6;overflow:hidden;
  background:#00000073;border:1.5px solid #000;box-shadow:inset 0 0 0 1px #ffffff14}
.tc-no{position:absolute;right:5px;bottom:2px;font-style:normal;font-size:9px;font-weight:900;letter-spacing:1px;color:var(--f1);opacity:.75}

/* =================== 卡背（cardBackHTML，v9.0 第三版：像素卡背）===================
   52×76 格的像素圖（cards.js 的 cardBackPixels，每種顏色一張，存在 :root 的 --pxb-*），外層 .omenX 決定用哪一張（--pxb）；
   --bc／--bgl 是外發光的顏色（召喚那邊的一閃一閃也用），--bl 是名牌上的字 */
.omen0{--bc:#58b4ff;--bgl:#58b4ff88;--bl:#cfeaff;--pxb:var(--pxb-0)}
.omen1{--bc:#48e07a;--bgl:#48e07a99;--bl:#d2ffd0;--pxb:var(--pxb-1)}
.omen2{--bc:#ffc53d;--bgl:#ffc53daa;--bl:#fff1b8;--pxb:var(--pxb-2)}
.omen3{--bc:#b86bff;--bgl:#b86bffb0;--bl:#ecd9ff;--pxb:var(--pxb-3)}
.omenB{--bc:#e6edf8;--bgl:#dfe9f766;--bl:#ffffff;--pxb:var(--pxb-B)}
.omenF{--bc:#ff7a6a;--bgl:#ff5a4a88;--bl:#ffd6cf;--pxb:var(--pxb-F)}
.omenX{--bc:#ffcf4a;--bgl:#ff7a2aaa;--bl:#ffe9b0;--pxb:var(--pxb-X)}
.omenC{--bc:#86ead8;--bgl:#3ad0b888;--bl:#d2fff8;--pxb:var(--pxb-C)}
.omenI{--bc:#c7b0ff;--bgl:#9a6aff88;--bl:#e6dcff;--pxb:var(--pxb-I)}
.smc-back{position:absolute;inset:0;overflow:hidden;isolation:isolate;background:var(--pxb,var(--pxb-B)) center/100% 100% no-repeat;
  image-rendering:pixelated;box-shadow:0 0 16px var(--bgl),0 5px 0 #0009}
.smc-glint{position:absolute;left:50%;top:50%;width:52%;aspect-ratio:1;border-radius:50%;pointer-events:none;mix-blend-mode:screen;
  background:radial-gradient(closest-side,#ffffffb8,var(--bgl) 40%,#fff0 72%);transform:translate(-50%,-50%);animation:smc-glint 2.4s ease-in-out infinite}
@keyframes smc-glint{0%,100%{opacity:.3;transform:translate(-50%,-50%) scale(.78)}50%{opacity:.85;transform:translate(-50%,-50%) scale(1.04)}}
.smc-title,.smc-logo{position:absolute;left:0;right:0;height:12px;text-align:center;font-weight:900;line-height:12px;white-space:nowrap;color:var(--bl);
  text-shadow:0 1px 0 #000,0 0 5px var(--bgl)}
.smc-title{top:21px;font-size:8.5px;letter-spacing:2px}
.smc-logo{bottom:21px;font-size:6px;letter-spacing:.5px}
.smc-sheen{position:absolute;inset:-40% -60%;pointer-events:none;background:linear-gradient(105deg,#fff0 44%,#ffffff2a 50%,#fff0 56%);animation:smc-sheen 2.8s ease-in-out infinite}
@keyframes smc-sheen{0%,40%{transform:translateX(-60%)}100%{transform:translateX(60%)}}
/* 大卡的卡背（全螢幕登場、卡片檢視）：同一張像素圖放大 5 倍 */
.smc-back.big .smc-title{top:52px;height:30px;line-height:30px;font-size:19px;letter-spacing:5px}
.smc-back.big .smc-logo{bottom:52px;height:30px;line-height:30px;font-size:13px;letter-spacing:1px}
.smc-back.big .smc-glint{animation-duration:3s}

/* =================== 一整張卡 .tcard（外框＋徽章），大小用 zoom =================== */
.tcard{position:relative;flex:0 0 auto;width:104px;height:152px}
.tcard.big{width:260px;height:380px}
.tcard.sz-s{zoom:.78}
.tcard.sz-xs{zoom:.62}
.tcard.big.sz-l{zoom:.8}
.tcard.big.sz-ml{zoom:.62}
.tcard.pick{cursor:pointer;transition:transform .15s,filter .15s}
.tcard.pick:hover{transform:translateY(-5px);filter:brightness(1.06)}
.tcard.sel .tc{box-shadow:var(--bev),0 0 0 3px #fff,0 0 0 6px #000,0 0 22px var(--f1)}
.tcard.sel{z-index:2}
.tcard.dim .tc{filter:grayscale(.55) brightness(.6)}
/* v9.6 可以升真型態了：卡片外面一圈脈動的金色封印光（一階＝暖墨照片，覺醒才恢復原色）。畫在卡片後面，不動卡面本身的陰影 */
.tcard.canevo{z-index:1}                     /* 自己一層：後面那圈光（z-index:-1）才不會掉到面板底下 */
.tcard.canevo::before{content:"";position:absolute;inset:-4px;z-index:-1;border-radius:10px;pointer-events:none;
  box-shadow:0 0 0 2px #ffd75e,0 0 14px 3px #ffd75ecc;animation:tcard-canevo 1.5s ease-in-out infinite}
@keyframes tcard-canevo{0%,100%{box-shadow:0 0 0 2px #ffd75e,0 0 10px 2px #ffd75e99;opacity:.85}50%{box-shadow:0 0 0 3px #fff3c4,0 0 22px 7px #ffd75ee6;opacity:1}}
/* v9.6 覺醒演出：真型態的原色從照片窗底部往上灌回來（ui.js playEvolution 的 .evo-flood），前緣一道金光 */
#evo-overlay .evo-flood{position:absolute;left:0;bottom:0;z-index:0;display:block;pointer-events:none;clip-path:inset(100% 0 0 0)}
#evo-overlay .evo-flood-edge{position:absolute;left:0;right:0;bottom:0;z-index:2;height:10px;opacity:0;pointer-events:none;
  background:linear-gradient(#fff0,#fff9 40%,#ffe27a 50%,#fff9 60%,#fff0);box-shadow:0 0 14px 4px #ffd75ecc}
#evo-overlay.charge .evo-flood{animation:evo-flood 1.3s cubic-bezier(.45,.05,.35,1) forwards}
#evo-overlay.charge .evo-flood-edge{animation:evo-flood-edge 1.3s cubic-bezier(.45,.05,.35,1) forwards}
@keyframes evo-flood{from{clip-path:inset(100% 0 0 0);filter:brightness(1.4) saturate(1.15)}to{clip-path:inset(0 0 0 0);filter:brightness(1.03) saturate(1.05)}}
@keyframes evo-flood-edge{0%{bottom:0;opacity:0}8%{opacity:1}92%{opacity:1}100%{bottom:calc(100% - 10px);opacity:0}}
.tcard.nope{animation:tcard-nope .3s}
@keyframes tcard-nope{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
/* 徽章（卡片外緣） */
.tcb{position:absolute;z-index:3;font-style:normal;font-weight:900;border:2px solid #000;line-height:1}
.tcb-slot{left:-8px;bottom:-8px;width:24px;height:24px;display:grid;place-items:center;font-size:14px;color:#3d2308;background:linear-gradient(#fff3c4,#ffca4a);box-shadow:0 2px 0 #0008}
.tcb-plus{right:-7px;top:19px;padding:2px 5px;font-size:11px;color:#fff;background:#b4530a;transform:rotate(6deg)}
.tcb-evo{left:-7px;top:22px;padding:2px 4px;font-size:11px;color:#3d2308;background:linear-gradient(#fff3c4,#ffca4a)}
.tcb-bond{right:-6px;bottom:-6px;width:22px;height:22px;display:grid;place-items:center;background:#ffd6ec}
.tcb-bond .pxi{width:14px;height:14px}
.tcb-bond.s5{background:linear-gradient(#fff3c4,#ffca4a);box-shadow:0 0 8px #ffd75e}
.tcb-up{left:50%;top:-14px;margin-left:-12px;width:24px;height:24px;display:grid;place-items:center;background:#48e07a;animation:tcb-up 1s ease-in-out infinite}
.tcb-up.evo{background:#d2a9f5}
.tcb-up .pxi{width:16px;height:16px}
@keyframes tcb-up{50%{transform:translateY(-3px)}}
.tcard.big .tcb{zoom:1.6}
.tcb-new{left:-7px;top:19px;padding:2px 5px;font-size:11px;color:#3d2308;background:linear-gradient(#fff3c4,#ffca4a);transform:rotate(-6deg)}
/* 照片窗內緣隨等級換色：Lv.10 銀、Lv.20 金、Lv.30 彩虹（卡片的「等級框」） */
.tcard.lvt1 .tc-win{outline:2px solid #eef3fb;outline-offset:-5px}
.tcard.lvt2 .tc-win{outline:2px solid #ffd75e;outline-offset:-5px}
.tcard.lvt3 .tc-win{outline:2px solid #ff9ae4;outline-offset:-5px;animation:tcard-lvt3 2.4s linear infinite}
@keyframes tcard-lvt3{0%,100%{outline-color:#ff9ae4}25%{outline-color:#ffe27a}50%{outline-color:#8fe6ff}75%{outline-color:#b98cff}}
/* 升級的那一下：卡片閃光、浮起來 */
.tcard.lvup{animation:tcard-lvup .75s cubic-bezier(.2,1.4,.4,1)}
@keyframes tcard-lvup{0%{filter:brightness(1)}18%{filter:brightness(2.6);transform:translateY(-10px) scale(1.05)}100%{filter:none;transform:none}}

/* =================== 卡片升級（#scr-upgrade）=================== */
#scr-upgrade .upx-body{gap:10px;padding:10px 12px 12px}
#scr-upgrade .upx-left{flex:0 0 376px}
#scr-upgrade .upx-grid,#scr-upgrade[data-tab="fnd"] .upx-grid{grid-template-columns:repeat(4,81px);justify-content:center;gap:14px 9px;padding:12px 6px 14px 4px}
#scr-upgrade .upx-detail{flex:1;min-width:0}
.upx-stage{--sc:#3a6ab8;position:relative;flex:0 0 236px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;overflow:hidden;
  border:4px solid #000;background:radial-gradient(80% 60% at 50% 42%,var(--sc) 0%,#141026 78%);box-shadow:inset 0 0 0 2px #ffffff1c,inset 0 0 40px #000a,0 5px 0 #00000059}
.upx-stage.fr-base{--sc:#6a7a94}
.upx-stage.fr-t1{--sc:#1f8a4a}
.upx-stage.fr-t2{--sc:#b8760a}
.upx-stage.fr-t3{--sc:#9a3ab0}
.upx-stage.fr-fac{--sc:#1f7a70}
.upx-rays{position:absolute;left:50%;top:44%;width:900px;height:900px;margin:-450px 0 0 -450px;pointer-events:none;
  background:repeating-conic-gradient(#ffffff12 0 6deg,#0000 6deg 14deg);animation:sms-spin 40s linear infinite}
.upx-hold{position:relative;z-index:1}
.upx-hold .tcard{transition:transform .12s ease-out}
.upx-lvrow{position:relative;z-index:1;display:flex;align-items:center;gap:12px}
.upx-lvrow .upx-lvbig{position:static}
.upx-nav{width:30px;height:30px;padding:0;cursor:pointer;font-family:inherit;font-size:13px;font-weight:900;color:#1c1c1c;
  background:linear-gradient(#d4d4d4,#b8b8b8);border:3px solid #000;box-shadow:inset 2px 2px 0 #efefef,inset -2px -2px 0 #8a8a8a,0 3px 0 #0008}
.upx-nav:hover{filter:brightness(1.08)}
.upx-nav:active{transform:translateY(2px)}
.upx-stage .upx-pop{top:38%}
.upx-abil{flex:0 0 auto;display:flex;flex-wrap:wrap;gap:3px;margin:7px 12px 0}
.upx-none .pxi-cards{width:48px;height:48px}

/* =================== 超小卡（牌組、牌庫、換夥伴…）：縮到 62% 之後字要放大才讀得到 =================== */
.tcard.sz-xs .tc-foot{display:none}                  /* 稀有度看框的顏色就知道，空間讓給照片 */
.tcard.sz-xs .tc-win{flex:1 1 auto}
.tcard.sz-xs .tc-cost{height:21px;padding:0 5px 0 3px;font-size:15px}
.tcard.sz-xs .tc-cost .pxi{width:16px;height:16px}
.tcard.sz-xs .tc-gem:not(.ico){right:8px;top:8px;width:14px;height:14px}
.tcard.sz-xs .tc-lv{font-size:14px;line-height:16px;padding:0 5px}
.tcard.sz-xs .tc-plate{height:26px}
.tcard.sz-xs .tc-name{font-size:17px}
.tcard.sz-xs .tcb{zoom:1.35}
.tcard.in .tc{filter:brightness(.6) saturate(.55)}
.tcard.drag-src{opacity:.35}

/* =================== 牌組編成（#scr-lineup）=================== */
#scr-lineup .lnx-body{padding:10px 12px 10px}
#scr-lineup .lnx-side{flex:0 0 240px}
#scr-lineup .lnx-deploy{padding:22px 6px 9px}
#scr-lineup .lnx-slots{display:flex;justify-content:space-between;gap:0}
#scr-lineup .lnx-slot{flex:0 0 auto;width:65px;height:95px;padding:0;background:none;border:0;box-shadow:none;display:block;cursor:grab}
#scr-lineup .lnx-slot:not(.empty):hover{box-shadow:none}
#scr-lineup .lnx-slot.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:default;
  border:3px dashed #ffffff40;background:repeating-linear-gradient(45deg,#00000030 0 6px,#0000 6px 12px),#2a2418;box-shadow:inset 0 2px 8px #000a}
#scr-lineup.dragging .lnx-slot.empty{border-color:#ffd75e;background:repeating-linear-gradient(45deg,#ffd75e33 0 6px,#0000 6px 12px),#2a2418}
.lnx-ekey{font-size:13px;font-weight:900;color:#ffd75e99}
#scr-lineup .lnx-slot.drop-over{transform:scale(1.07);box-shadow:none!important;filter:drop-shadow(0 0 10px #ffd75e)}
#scr-lineup .lnx-slot.drop-over.empty{border-color:#fff}
#scr-lineup .lnx-pool{grid-template-columns:repeat(auto-fill,65px);justify-content:space-between;gap:12px 4px;padding:10px 4px 8px}
#scr-lineup .lnx-pool .tcard{cursor:grab;touch-action:none;user-select:none}
.lnx-ghost{padding:0!important;background:none!important;border:0!important;box-shadow:none!important;filter:drop-shadow(0 12px 14px #000b)}
/* 右邊：一張小卡＋名字＋數值 */
.lnx-info{min-height:0}
#scr-lineup .lnx-ihead{align-items:flex-start;gap:8px}
.lnx-icard{flex:0 0 auto;padding:2px 0 4px 2px}
#scr-lineup .lnx-iname{gap:4px}
#scr-lineup .lnx-iname b{font-size:15px}
#scr-lineup .lnx-itags{margin-top:2px;max-height:58px}
#scr-lineup .lnx-istats{margin-top:4px}

/* =================== 圖鑑＝卡冊（#scr-dex）=================== */
#scr-dex .dex-body{gap:10px;padding:10px 12px 12px}
#scr-dex .dex-left{flex:0 0 376px}
#scr-dex .dex-grid{grid-template-columns:repeat(4,81px);justify-content:center;gap:14px 9px;padding:12px 6px 14px 4px}
#scr-dex .dex-detail{width:auto;flex:1;min-width:0}
.dex-stage{flex:0 0 236px}
.dex-stage.fr-foe{--sc:#9a2418}
.dex-stage.fr-boss{--sc:#6a4a10}
.dex-stage.locked,.dex-stage:has(.tcard.locked){--sc:#3a3650}
.dex-cover{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .4s}
.dex-stage.cover .dex-cover{opacity:.5}
.dex-stage.cover .upx-rays{opacity:.4}
.dex-no{min-width:64px;text-align:center;font-size:15px;font-weight:900;letter-spacing:1px;color:#fff;
  filter:drop-shadow(2px 0 0 #000) drop-shadow(-2px 0 0 #000) drop-shadow(0 2px 0 #000) drop-shadow(0 -2px 0 #000)}

/* =================== 戰鬥的出擊鈕＝手上的卡（#unit-row .ubtn，大小維持 80×66）=================== */
/* v8.8：跟新的卡面同一套 —— 稀有度金屬框、照片背景（--art-*），費用在深色條上 */
#unit-row .ubtn{--f1:#f4f7ff;--f2:#8e9ab0;--fd:#2e3a4c;--fl:#ffffff;--art:var(--art-base);
  --metal:linear-gradient(160deg,var(--f1) 0%,var(--f2) 40%,var(--fl) 58%,var(--f2) 76%,var(--f1) 100%);
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  padding:3px 3px 0;border:3px solid #000;border-radius:0;
  background:linear-gradient(135deg,#ffffff8c 0%,#fff0 18%,#fff0 78%,#00000059 100%),var(--metal);
  box-shadow:inset 1px 1px 0 #ffffffa0,inset -1px -1px 0 #0006,0 4px 0 #000b,0 6px 10px #00000059}
#unit-row .ubtn.fr-t0{--f1:#6fb8ff;--f2:#2a5fb0;--fd:#0e2f6a;--fl:#cfeaff;--art:var(--art-t0)}
#unit-row .ubtn.fr-t1{--f1:#72f0a0;--f2:#1f9a55;--fd:#0b4f25;--fl:#d2ffd0;--art:var(--art-t1)}
#unit-row .ubtn.fr-t2{--f1:#ffe27a;--f2:#d99a1a;--fd:#6a3f04;--fl:#fff1b8;--art:var(--art-t2)}
#unit-row .ubtn.fr-t3{--f1:#d9a8ff;--f2:#7a3ad0;--fd:#2a0a55;--fl:#f3e6ff;--art:var(--art-t3);
  --metal:linear-gradient(135deg,#f0dcff,#8a4ad6,#ff9ae4,#5a2ab0,#d9a8ff,#8a4ad6);background-size:100% 100%,300% 300%;animation:tc-rainbow 3s linear infinite}
#unit-row .ubtn canvas{box-shadow:0 0 0 2px #000,0 0 0 3px var(--fl);background:var(--art)}
#unit-row .ubtn.evo canvas{box-shadow:0 0 0 2px #000,0 0 0 3px var(--fl),inset 0 0 0 2px #ffe27a}
#unit-row .ubtn::after{left:3px;right:3px;top:3px;height:38px}
#unit-row .ubtn .u-cost{left:3px;right:3px;bottom:3px;height:17px;line-height:15px;font-size:12px;color:#ffe27a;letter-spacing:.5px;
  background:#000000c8;border:1.5px solid #000;border-top:1.5px solid #000;box-shadow:none;text-shadow:0 1px 0 #000}
#unit-row .ubtn.poor .u-cost{color:#9a92a8;background:#000000a0}
#unit-row .ubtn .u-key{left:0;top:0;right:auto;width:15px;height:15px;display:grid;place-items:center;font-size:10px;font-weight:900;line-height:1;
  color:#3d2308;background:linear-gradient(#fff3c4,#ffca4a);border:1.5px solid #000;text-shadow:none}
#unit-row .ubtn .u-cd{left:3px;right:3px;top:3px;bottom:22px}
#unit-row .ubtn .u-cdbar{left:6px;right:6px;bottom:23px}
#unit-row .ubtn .u-bond{left:auto;right:1px;top:1px}

/* =================== 卡片覺醒（真形態進化，#evo-overlay）=================== */
.tcard.big.sz-evo{zoom:.72}
#evo-overlay .evo-stage{display:grid;place-items:center;height:300px}
#evo-overlay .evo-card{grid-area:1/1}
#evo-overlay .evo-card .tc-holo{animation:tc-holo 2.6s ease-in-out infinite alternate}
#evo-overlay.burst #evo-new .tcard{filter:drop-shadow(0 0 22px #ffd75e)}

/* =================== 換夥伴（#mascot-overlay）：夥伴也是卡 =================== */
#mascot-overlay .mascot-grid{grid-template-columns:repeat(auto-fill,81px);justify-content:center;gap:18px 12px;padding:14px 10px 18px}
.tcard.mcard .mi-stage{position:absolute;left:50%;bottom:-11px;z-index:3;transform:translateX(-50%);white-space:nowrap;border:1.5px solid #000;zoom:1.28}

/* =================== 結算：獲得新卡片 =================== */
.res-unlock .ru-cards{display:flex;gap:12px;padding:4px 6px 6px}
.tcard.ru-new{animation:ru-flip .7s cubic-bezier(.2,1.3,.4,1) both}
@keyframes ru-flip{0%{transform:perspective(600px) rotateY(90deg) scale(.7);filter:brightness(3)}60%{filter:brightness(1.6)}100%{transform:none;filter:none}}

/* =================== 儲藏庫：道具卡 =================== */
#scr-storage .sto-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:22px 14px;padding:10px 4px 20px}
.tcard.sto-card{animation:sto-in .4s cubic-bezier(.2,1.3,.4,1) var(--d,0s) both}
@keyframes sto-in{from{opacity:0;transform:translateY(14px) scale(.9)}}
.tcard.sto-card.empty .tc{filter:grayscale(.7) brightness(.7)}
.tcard.sto-card.on .tc{box-shadow:var(--bev),0 0 0 3px #8ef07a,0 0 18px #8ef07a}
.sto-cstate{position:absolute;left:50%;bottom:-12px;z-index:3;transform:translateX(-50%);display:inline-flex;align-items:center;gap:2px;white-space:nowrap;
  padding:0 6px;font-style:normal;font-size:10px;font-weight:900;line-height:15px;color:#fff;background:#6b5c42;border:1.5px solid #000;zoom:1.28}
.sto-cstate.on{color:#1c1206;background:linear-gradient(#d8ff8a,#6fc23a)}
.sto-cstate .pxi{width:11px;height:11px}
.tcard.sto-card.lvup{animation:tcard-lvup .75s cubic-bezier(.2,1.4,.4,1)}

/* =================== 卡片檢視（v8.9，cardViewerOpen；圖鑑點大卡或「檢視」）===================
   有厚度的 3D 卡：.cv-front／.cv-back 兩面在 ±3px，四個 .cv-edge 是側邊（轉到側面看得到卡的厚度）；
   --lx／--ly＝反光的位置、--mx／--my＝閃卡光澤的位置（JS 依角度算） */
#card-viewer{position:absolute;inset:0;z-index:85;overflow:hidden;user-select:none;
  background:radial-gradient(60% 70% at 50% 46%,#2e2656 0%,#130f26 60%,#07060e 100%)}
#card-viewer.in{animation:cv-fade .25s ease-out}
@keyframes cv-fade{from{opacity:0}}
.cv-bg{position:absolute;left:50%;top:46%;width:1500px;height:1500px;margin:-750px 0 0 -750px;pointer-events:none;
  background:repeating-conic-gradient(#ffffff09 0 6deg,#fff0 6deg 15deg);animation:sms-spin 120s linear infinite}
.cv-stage{position:absolute;left:0;right:0;top:44px;bottom:60px;perspective:1100px;cursor:grab;touch-action:none}
.cv-stage.drag{cursor:grabbing}
.cv-rot{position:absolute;left:50%;top:50%;width:260px;height:380px;margin:-190px 0 0 -130px;transform-style:preserve-3d;will-change:transform}
.cv-card{position:absolute;inset:0;transform-style:preserve-3d;animation:cv-bob 4s ease-in-out infinite}
@keyframes cv-bob{50%{transform:translateY(-7px)}}
.cv-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.cv-front{transform:translateZ(3px)}
.cv-back{transform:rotateY(180deg) translateZ(3px)}
.cv-face::after{content:"";position:absolute;inset:0;z-index:6;pointer-events:none;
  background:radial-gradient(circle at var(--lx,40%) var(--ly,25%),#ffffff40 0%,#fff0 46%),linear-gradient(115deg,#fff0 40%,#ffffff12 50%,#fff0 60%)}
.cv-front .tc-holo{opacity:.9}
.cv-edge{position:absolute;background:linear-gradient(90deg,#000a,var(--edge) 28%,#ffffff80 50%,var(--edge) 72%,#000a)}
.cv-edge.l,.cv-edge.r{top:0;bottom:0;width:6px}
.cv-edge.l{left:-3px;transform:rotateY(-90deg)}
.cv-edge.r{right:-3px;transform:rotateY(90deg)}
.cv-edge.t,.cv-edge.b{left:0;right:0;height:6px;background:linear-gradient(#000a,var(--edge) 28%,#ffffff80 50%,var(--edge) 72%,#000a)}
.cv-edge.t{top:-3px;transform:rotateX(90deg)}
.cv-edge.b{bottom:-3px;transform:rotateX(-90deg)}
.cv-shadow{position:absolute;left:50%;bottom:4px;width:230px;height:24px;margin-left:-115px;border-radius:50%;pointer-events:none;
  background:radial-gradient(closest-side,#000b,#0000)}
.cv-top{position:absolute;left:0;right:0;top:10px;display:flex;justify-content:center;align-items:baseline;gap:12px;pointer-events:none}
.cv-top b{font-size:21px;font-weight:900;letter-spacing:3px;color:#fff;
  filter:drop-shadow(2px 0 0 #000) drop-shadow(-2px 0 0 #000) drop-shadow(0 2px 0 #000) drop-shadow(0 -2px 0 #000)}
.cv-top span{font-size:12.5px;font-weight:800;color:#c9c0ea;text-shadow:0 1px 0 #000}
.cv-bar{position:absolute;left:0;right:0;bottom:12px;display:flex;justify-content:center;gap:10px}
.cv-bar .px-btn{min-width:66px;padding:6px 14px;font-size:14px}
.cv-bar .px-btn.hidden{display:none}
.cv-hint{position:absolute;left:14px;bottom:20px;font-size:11px;font-weight:800;color:#9a90c0;pointer-events:none}
/* 圖鑑展示台上的「檢視」鈕；大卡本身也可以點 */
.dex-view{position:absolute;right:8px;top:8px;z-index:3;display:flex;align-items:center;gap:3px;padding:3px 9px 3px 5px;cursor:pointer;font-family:inherit;
  font-size:12px;font-weight:900;color:#1c1c1c;background:linear-gradient(#ffe39a,#f0b429);border:3px solid #000;box-shadow:inset 1px 1px 0 #fff6d0,inset -1px -1px 0 #a9761a,0 3px 0 #0008}
.dex-view:hover{filter:brightness(1.08)}
.dex-view .pxi{width:16px;height:16px}
.dex-stage .upx-hold .tcard{cursor:zoom-in}
/* =================== v9.0「減少特效」：卡片的閃光與掃光停掉 =================== */
body.fx-lite .tc-shine,body.fx-lite .tc-holo{animation:none!important;opacity:0}
/* =================== v9.0 正卡（作者親簽）：遊戲王卡風格 —— 照片上的簽名、卡名燙金、右下角的雷射防偽標籤（cards.js 的 cardSignHTML／tcHTML）===================
   使用者：「正卡參考遊戲王卡設計，右下角有雷射標籤」→ 標籤是銀色底＋會流動變色的全像彩虹＋細斜紋＋中間壓一個「正」字（像遊戲王右下角那張防偽貼紙） */
.tc.sig{box-shadow:var(--bev),0 0 0 2px #ffe27a,0 0 14px #ffd75ecc,0 5px 0 #0009}
/* v9.14 簽名簽在整張卡的右下角（不再橫跨照片）：小卡壓在名牌＋最下面那排的右邊、大卡在介紹框的右下（編號、雷射標籤上面） */
.tc-sign{position:absolute;right:2px;bottom:9px;z-index:5;width:60%;height:auto;overflow:visible;pointer-events:none;transform:rotate(-9deg);transform-origin:100% 100%}
.tc.big .tc-sign{right:30px;bottom:9px;width:40%}
.tc.big.sig .tc-no{right:auto;left:8px}                                    /* 編號讓給簽名：移到介紹框左下 */
.tc.sig:not(.big) .tc-foot{justify-content:flex-start}                    /* 小卡：最下面那排靠左，右邊給簽名 */
.tc.sig:not(.big) .tc-foot:not(.solo) .tc-lab{display:none}               /* 有星星的：稀有度看星星和框色就知道 */
.tc-sign path{fill:none;stroke:#fff3c4;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 0 #3d2308) drop-shadow(0 0 1.5px #000) drop-shadow(0 0 3px #000c)}
.tc-sign.img{max-height:24%;object-fit:contain;object-position:100% 100%;filter:drop-shadow(0 1px 0 #000a) drop-shadow(0 0 2px #0008)}   /* 使用者上傳的簽名圖（SIG_IMAGE） */
.tc.sig .tc-name{color:#fff0;background:linear-gradient(100deg,#fff6d0 0%,#ffd75e 28%,#ffffff 48%,#ffd75e 68%,#fff6d0 100%) 0 0/250% 100%;
  -webkit-background-clip:text;background-clip:text;text-shadow:none;
  filter:drop-shadow(1px 0 0 #000) drop-shadow(-1px 0 0 #000) drop-shadow(0 1px 0 #000) drop-shadow(0 -1px 0 #000);animation:tc-foilname 3s linear infinite}
@keyframes tc-foilname{to{background-position:250% 0}}
/* v9.4 使用者：「雷射標籤裡的{正}字拿掉，同時把標籤縮小，目前這樣太大」 */
.tc-holoseal{position:absolute;right:4px;bottom:4px;z-index:6;width:9px;height:9px;border-radius:2px;overflow:hidden;cursor:help;
  background:linear-gradient(115deg,#ff9ad8,#ffe27a,#9affc8,#8fd8ff,#c8a0ff,#ff9ad8,#ffe27a) 0 0/300% 300%,#dfe4ee;
  box-shadow:0 0 0 1px #000b,inset 0 0 0 1px #ffffffb0,0 1px 2px #000c;animation:tc-holoseal 2.6s linear infinite}
.tc-holoseal::before{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(45deg,#ffffff40 0 1px,#fff0 1px 3px),radial-gradient(circle at 50% 50%,#fff0 30%,#ffffff70 34%,#fff0 42%)}
.tc-holoseal::after{content:none}
.tc.big .tc-holoseal{right:9px;bottom:9px;width:18px;height:18px;border-radius:3px;box-shadow:0 0 0 1.5px #000b,inset 0 0 0 1.5px #ffffffb0,0 2px 4px #000c}
@keyframes tc-holoseal{to{background-position:300% 300%,0 0}}
.tc.sig .tc-foot{padding-right:13px}
body.fx-lite .tc-holoseal,body.fx-lite .tc.sig .tc-name{animation:none}
.tc-foil{position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:color-dodge;opacity:.55;
  background:linear-gradient(115deg,#0000 25%,#ffe27a66 38%,#ff9ae455 46%,#8fe6ff55 54%,#ffe27a66 62%,#0000 75%);background-size:260% 100%;animation:tc-foil 3.2s linear infinite}
@keyframes tc-foil{from{background-position:130% 0}to{background-position:-130% 0}}
body.fx-lite .tc-foil{animation:none;opacity:.3}
/* =================== v9.0 卡槽卡（基礎召喚抽到的「○○的卡槽」）：照片窗左上一個卡匣、下緣一排金色接點 =================== */
.tc-cart{position:absolute;left:4px;top:4px;z-index:3;width:26px;height:26px;filter:drop-shadow(0 2px 0 #000a)}
.tc-cart .pxi{width:26px;height:26px}
.tc.big .tc-cart{left:10px;top:10px;width:54px;height:54px}
.tc.big .tc-cart .pxi{width:54px;height:54px}
.tc.slotc .tc-win::after{background:linear-gradient(#fff0 58%,#00000073),
  repeating-linear-gradient(90deg,#ffd75e 0 4px,#c98a1e 4px 6px,#fff0 6px 9px) left 6% bottom 3px/88% 6px no-repeat}
.smc-badge.slot,.sms-badge.slot{color:#fff;background:linear-gradient(#5f8cc4,#2d5588)}

/* v9.13 角色簡介（使用者寫的「角色簡介.txt」，cards.js 的 cardOf）：暖一點的字色；字多的縮小，整段塞得進卡片 */
.tc-desc.bio{color:#ffe9c4}
.tc-desc.bio.long{font-size:10px;line-height:1.42}
.tc-desc.bio.xl{font-size:9.5px;line-height:1.36;padding:3px 6px}
