/* V5.2 — cartes collector et combat cinématique. Cinq niveaux VISUELS CUMULATIFS.
   Référence de principe : frame break / 3D / foil / animated border de card games. */
:root{--rare-glint:#eaf9ff}
/* Image intégrale, sans aucune bande noire opaque. */
.ki-card{--light-angle:112deg;isolation:isolate;transform-style:preserve-3d;perspective:1100px;transition:transform .3s cubic-bezier(.19,.7,.2,1),filter .3s ease;filter:drop-shadow(0 9px 8px #0d305747)}
.ki-card-shell{position:relative;border-radius:16px!important;overflow:hidden;transform-style:preserve-3d;border:3px solid var(--rare)!important;box-shadow:0 1px 0 #ffffffc9 inset,0 3px 0 #082e48,0 10px 18px #10497b38!important;background:#cedde9;transition:box-shadow .25s ease}
.ki-card-shell::after{background:linear-gradient(135deg,#ffffff46,transparent 24% 67%,#ffffff14)!important;opacity:.32}
.card-name,.fight-unit .card-name{background:none!important;box-shadow:none!important;bottom:0!important;left:0;right:0;padding:25px 7px 8px!important;border:0!important;pointer-events:none;z-index:10;text-align:left;transform:translateZ(18px)}
.card-name b{color:white!important;font-weight:1000!important;font-size:clamp(12px,1.1vw,18px)!important;line-height:1.02;letter-spacing:-.25px;text-shadow:0 2px 3px #081c3f,0 0 8px #081c3f,1px -1px 1px #02152b}
.card-name span{font-size:8px!important;opacity:.97;font-weight:900!important;color:#f1f7ff!important;text-shadow:0 1px 3px #061f42,0 0 6px #092443}
/* Orbes remplacés par des gemmes translucides facettées, chiffre seul. */
.stat-bubble,.fight-unit .stat-bubble{width:37px!important;height:34px!important;min-width:0!important;min-height:0!important;padding:3px!important;display:grid!important;place-items:center!important;border:1px solid #ffffffd1!important;border-radius:9px 9px 11px 11px!important;clip-path:polygon(18% 0,82% 0,100% 25%,100% 78%,79% 100%,19% 100%,0 78%,0 25%);box-shadow:inset 0 3px 0 #fff6,inset 0 -5px 9px #101b3f56,0 3px 5px #021934a6!important;filter:drop-shadow(0 2px 3px #001a3990);z-index:11;transform:translateZ(20px)}
.stat-bubble:before{content:"";position:absolute;inset:3px;clip-path:polygon(20% 0,80% 0,100% 38%,80% 100%,20% 100%,0 38%);background:linear-gradient(142deg,#ffffff5e,transparent 38%,#ffffff24 75%,transparent);pointer-events:none}
.stat-bubble b{z-index:1;font-size:12px!important;font-variant-numeric:tabular-nums;font-weight:1000!important;letter-spacing:-.4px;text-shadow:0 1px 3px #000a!important;color:white!important}
.stat-atk{top:7px!important;left:6px!important;background:linear-gradient(140deg,#ff7f70,#ef373d 40%,#ab1d3f)!important}
.stat-vit{top:7px!important;right:6px!important;background:linear-gradient(140deg,#8be8ff,#238af3 42%,#1649ac)!important}
.stat-hp{bottom:49px!important;left:6px!important;background:linear-gradient(140deg,#ffe597,#ffb62c 42%,#bd6f16)!important}
.led-rail{top:30%!important;right:-9px!important;gap:6px!important;z-index:13!important}
.ability-led{width:18px!important;height:18px!important;border-radius:50%!important;border:1px solid #fffe!important;background:radial-gradient(circle at 35% 30%,#fff8,transparent 30%),#173c65!important;box-shadow:inset 0 1px 0 #ffffff9a,0 2px 4px #05162d,0 0 8px var(--rare)!important;font-size:11px!important}
.ability-led.is-used{filter:grayscale(1);opacity:.42}
/* 1: commun = carton mat / 2: uncommon = liseré + halo / 3: rare = vrai foil / 4: epic = prisme + flares / 5: legendary = reflet animé et or. */
.rarity-common .ki-card-shell{box-shadow:0 2px 0 #d3d8e2,0 8px 15px #203b5f3a!important}
.rarity-uncommon .ki-card-shell{box-shadow:inset 0 0 11px #7cfac956,0 3px 0 #0b7650,0 0 14px #1bb67155,0 11px 20px #082c4f50!important}
.rarity-rare .ki-card-shell{box-shadow:inset 0 0 15px #63c3ff77,0 3px 0 #1a6699,0 0 19px #3a9fff66,0 12px 22px #10387258!important}
.rarity-rare .card-rarity-foil,.rarity-epic .card-rarity-foil,.rarity-legendary .card-rarity-foil{opacity:.24!important;background:repeating-linear-gradient(var(--light-angle),transparent 0 34px,#ffffff63 48px,transparent 55px 95px),linear-gradient(105deg,transparent,#eaffff4d,transparent);mix-blend-mode:screen}
.rarity-epic .ki-card-shell{box-shadow:inset 0 0 18px #cd8cfaa1,0 3px 0 #6a27a5,0 0 26px #af5bfa8c,0 14px 25px #46247b61!important}
.rarity-epic .card-rarity-foil{opacity:.36!important;animation:v52Prism 5s ease-in-out infinite alternate!important}
.rarity-epic .ki-card-shell::after,.rarity-legendary .ki-card-shell::after{opacity:.85;background:linear-gradient(118deg,transparent 24%,#ffffff71 36%,transparent 47%,#dd84ff24 75%,transparent)!important;mix-blend-mode:screen}
.rarity-legendary .ki-card-shell{border:3px solid #ffe28b!important;box-shadow:inset 0 0 22px #fff4adab,0 3px 0 #b57521,0 0 22px #ffc441ae,0 0 38px #ffdf5885,0 16px 28px #b17b2e84!important;animation:v52GoldenHalo 3.9s ease-in-out infinite alternate}
.rarity-legendary .card-rarity-foil{opacity:.50!important;background:conic-gradient(from 25deg at 50% 50%,transparent 0deg,#fff6bd9e 44deg,transparent 85deg,#f0b3ff55 124deg,transparent 159deg,#ffd56399 230deg,transparent 295deg)!important;animation:v52HoloRotate 7s linear infinite!important}
.rarity-legendary .ki-card-shell:before{content:"";position:absolute;inset:-50%;z-index:5;pointer-events:none;background:linear-gradient(107deg,transparent 40%,#fffdc6b9 49%,#ffe88c94 50%,transparent 57%);transform:translateX(-92%) rotate(9deg);animation:v52LegendShine 5.2s ease-in-out infinite}
.rarity-legendary .card-name b{text-shadow:0 1px 3px #082347,0 0 7px #082347,0 0 13px #ffeaa0!important}
.ki-card[data-action]:hover{transform:translateY(-7px) perspective(600px) rotateY(-4deg) rotateX(3deg) scale(1.03);filter:drop-shadow(0 17px 14px #11395d66)}
.preview-tilt{filter:drop-shadow(0 22px 28px #0a2b557d);transform-style:preserve-3d!important}
.preview-tilt .ki-card{transform:translateZ(0)}
.v51-gold-open .preview-tilt{animation:v52GoldReveal .9s ease-out both!important}
.v51-gold-open .preview-scene:before{background:conic-gradient(from 0deg,transparent,#fff1a6b8,transparent,#ffffed,transparent,#ffcf79ad,transparent);animation:v52Burst 1.15s ease-out both!important}
@keyframes v52Prism{to{background-position:120px 0;filter:hue-rotate(18deg)}}
@keyframes v52GoldenHalo{to{filter:drop-shadow(0 0 8px #ffdd7a77)}}
@keyframes v52HoloRotate{to{transform:rotate(360deg)}}
@keyframes v52LegendShine{0%,52%{transform:translateX(-90%) rotate(9deg)}80%,100%{transform:translateX(93%) rotate(9deg)}}
@keyframes v52GoldReveal{0%{transform:scale(.7) rotateY(-29deg);opacity:.6}55%{transform:scale(1.12) rotateY(5deg)}100%{transform:scale(1)}}
@keyframes v52Burst{0%{transform:scale(.3) rotate(0);opacity:1}100%{transform:scale(2) rotate(190deg);opacity:0}}
/* Battle KO cut-in: full fighter portrait appears big, flashes and dissolves. */
.battle-wrap{position:relative}
.v52-ko-cinematic{position:absolute;top:68px;left:50%;width:min(360px,79vw);height:330px;z-index:60;transform:translateX(-50%);pointer-events:none;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 10px 20px #001a3f);animation:v52KoExit .98s ease-in both}
.v52-ko-art{height:290px;width:220px;overflow:hidden;border-radius:21px;border:2px solid #fff;background:#0b2f5e;box-shadow:0 0 30px #fff,0 0 70px #fa523d;transform:rotate(-4deg)}
.v52-ko-art .art-img{height:100%;width:100%;object-fit:cover;object-position:center 22%}
.v52-ko-copy{position:absolute;bottom:30px;left:10%;right:10%;display:grid;justify-items:center;gap:2px;color:white;text-shadow:0 3px 3px #071a31,0 0 9px #091c37;font-weight:1000}
.v52-ko-copy strong{font-size:20px;text-transform:uppercase}.v52-ko-copy span{font-size:10px}.v52-ko-copy b{font:1000 64px/1 var(--display);color:#ff644e;-webkit-text-stroke:1px white}
@keyframes v52KoExit{0%{opacity:0;scale:.55;filter:brightness(3)}20%{opacity:1;scale:1.06}65%{opacity:1;scale:1}100%{opacity:0;scale:.75;filter:blur(9px)}}
.v51-live-event{border-radius:20px;min-height:72px}
.v52-live-portrait{width:52px;height:54px;border-radius:12px;overflow:hidden;flex:none;border:2px solid #bce9ff;box-shadow:0 0 15px #fff3}
.v52-live-portrait .art-img{height:100%;width:100%;object-fit:cover}
.fight-unit.unit-strike{animation:v52Strike .5s cubic-bezier(.2,.8,.4,1)}
.fight-team.enemy .fight-unit.unit-strike{animation:v52StrikeEnemy .5s cubic-bezier(.2,.8,.4,1)}
.fight-unit.unit-impact{animation:v52Impact .54s ease-out}
.fight-unit.unit-ultimate{animation:v52Ultimate 1.05s ease-out}
.fight-unit.unit-defend{animation:v52Defense .55s ease-out}
.fight-unit.unit-heal{animation:v52Heal .75s ease-out}
@keyframes v52Strike{0%{transform:translate(0,0) scale(1)}43%{transform:translate(68px,-12px) scale(1.26) rotate(-9deg);filter:brightness(1.65) drop-shadow(0 0 20px #ff9025)}76%{transform:translate(35px,-3px) scale(1.05)}100%{transform:none}}
@keyframes v52StrikeEnemy{0%{transform:translate(0,0) scale(1)}43%{transform:translate(-68px,-12px) scale(1.26) rotate(9deg);filter:brightness(1.65) drop-shadow(0 0 20px #b676ff)}76%{transform:translate(-35px,-3px) scale(1.05)}100%{transform:none}}
@keyframes v52Impact{0%,100%{transform:translateX(0)}20%{transform:translateX(-9px) rotate(-5deg) scale(.92);filter:brightness(2)}39%{transform:translateX(11px) rotate(4deg)}54%{transform:translateX(-6px)}}
@keyframes v52Ultimate{0%{filter:brightness(1)}30%{transform:translateY(-32px) scale(1.4);filter:brightness(2) drop-shadow(0 0 35px gold)}62%{transform:translateY(-15px) scale(1.16)}100%{transform:none}}
@keyframes v52Defense{45%{transform:scale(1.17);filter:drop-shadow(0 0 24px #3dc9ff)}}
@keyframes v52Heal{45%{transform:translateY(-18px) scale(1.12);filter:drop-shadow(0 0 24px #20ff96)}}
/* Minimal desktop and mobile: no cramped bubbles on 3v9 boards */
.fight-unit .stat-bubble{width:24px!important;height:22px!important}.fight-unit .stat-bubble b{font-size:9px!important}
@media(max-width:680px){.stat-bubble{width:30px!important;height:28px!important}.stat-bubble b{font-size:10px!important}.fight-unit .stat-bubble{width:18px!important;height:17px!important;border-width:0!important}.fight-unit .stat-bubble b{font-size:7px!important}.v52-ko-cinematic{height:260px;top:85px}.v52-ko-art{width:160px;height:220px}.v52-ko-copy{bottom:13px}.v52-live-portrait{width:36px;height:39px}.v51-live-event{gap:7px;padding:7px!important}.v51-live-event>span{width:34px;height:34px}}
@media(prefers-reduced-motion:reduce){.rarity-epic .card-rarity-foil,.rarity-legendary .card-rarity-foil,.rarity-legendary .ki-card-shell,.rarity-legendary .ki-card-shell:before,.v52-ko-cinematic,.fight-unit,.preview-tilt{animation:none!important}}
/* Kill legacy opaque footer and vignette: type overlays actual artwork. */
.ki-card .card-name,.ki-card.small .card-name,.fight-unit .ki-card .card-name{background:transparent!important;min-height:0!important;box-shadow:none!important;padding:16px 7px 7px!important}
.ki-card .art-vignette{background:linear-gradient(180deg,transparent 55%,#09244a0a 68%,#10213b44 100%)!important}

.v52-effects{background:#eaf5ff;border:1px solid #d4e8fa;border-radius:13px;padding:9px 12px;margin-top:14px;color:#164c7d}.v52-effects summary{cursor:pointer;font-weight:1000;font-size:12px;letter-spacing:.5px;list-style-position:inside}.v52-effects[open] .effect-list{margin-top:12px;max-height:225px;overflow-y:auto}.preview-detail h2{margin:12px 0 5px!important}.preview-detail>p{font-size:10px!important}.preview-scene{perspective:1150px}
/* Roguelike extended gameplay layer */
.ki-reward{border:1px solid rgba(255,199,91,.3);border-radius:22px;padding:clamp(16px,3vw,32px);background:linear-gradient(135deg,rgba(255,183,66,.11),rgba(42,67,113,.23));margin:20px 0}.ki-reward-header span{color:#ffd890;letter-spacing:.12em;font-size:12px;font-weight:900}.ki-reward-header h2{font-size:clamp(24px,4vw,40px);margin:8px 0}.ki-reward-header p{max-width:58ch;opacity:.8}.ki-reward-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.ki-reward-card{appearance:none;text-align:left;display:flex;flex-direction:column;gap:12px;min-height:210px;border:1px solid rgba(247,199,111,.45);border-radius:16px;padding:20px;background:linear-gradient(150deg,#172338,#27395b);color:#fff;cursor:pointer;transition:transform .2s,border-color .2s}.ki-reward-card:hover,.ki-reward-card:focus-visible{transform:translateY(-5px);border-color:#ffdf83}.ki-reward-card>span{font-size:42px;color:#ffe6a2}.ki-reward-card strong{font-size:18px}.ki-reward-card small{font-size:13px;opacity:.8;flex:1}.ki-reward-card em{font-size:11px;color:#ffe6a2;font-style:normal;font-weight:800}.ki-fallen{background:rgba(221,68,76,.12);border:1px solid rgba(221,68,76,.35);padding:12px 15px;border-radius:12px;margin:14px 0;font-weight:700}.ki-vacant{display:flex;justify-content:center;align-items:center;min-height:130px;background:rgba(177,41,54,.12);border:1px dashed rgba(255,98,104,.55);border-radius:12px;color:#ffb8bb}.route-choice small{font-size:10px;opacity:.78;display:block;margin-top:3px}@media(max-width:650px){.ki-reward-grid{grid-template-columns:1fr}.ki-reward-card{min-height:140px}}
